[tor-commits] [styleguide/master] Add updates with assets

hiro at torproject.org hiro at torproject.org
Tue Jul 9 13:32:19 UTC 2019


commit dd829425816eef310f6781113d913f44e16a4404
Author: hiro <hiro at torproject.org>
Date:   Tue Jul 9 14:44:09 2019 +0200

    Add updates with assets
---
 .gitignore                                         |   23 +-
 .gitmodules                                        |    3 +
 assets/javascript                                  |    1 +
 assets/javascript/dist/alert.js                    |  176 -
 assets/javascript/dist/alert.js.map                |    1 -
 assets/javascript/dist/button.js                   |  167 -
 assets/javascript/dist/button.js.map               |    1 -
 assets/javascript/dist/carousel.js                 |  504 --
 assets/javascript/dist/carousel.js.map             |    1 -
 assets/javascript/dist/collapse.js                 |  371 -
 assets/javascript/dist/collapse.js.map             |    1 -
 assets/javascript/dist/dropdown.js                 |  443 --
 assets/javascript/dist/dropdown.js.map             |    1 -
 assets/javascript/dist/index.js                    |   23 -
 assets/javascript/dist/index.js.map                |    1 -
 assets/javascript/dist/modal.js                    |  580 --
 assets/javascript/dist/modal.js.map                |    1 -
 assets/javascript/dist/popover.js                  |  192 -
 assets/javascript/dist/popover.js.map              |    1 -
 assets/javascript/dist/scrollspy.js                |  315 -
 assets/javascript/dist/scrollspy.js.map            |    1 -
 assets/javascript/dist/tab.js                      |  259 -
 assets/javascript/dist/tab.js.map                  |    1 -
 assets/javascript/dist/tooltip.js                  |  665 --
 assets/javascript/dist/tooltip.js.map              |    1 -
 assets/javascript/dist/util.js                     |  142 -
 assets/javascript/dist/util.js.map                 |    1 -
 assets/javascript/src/alert.js                     |  194 -
 assets/javascript/src/button.js                    |  187 -
 assets/javascript/src/carousel.js                  |  524 --
 assets/javascript/src/collapse.js                  |  409 --
 assets/javascript/src/dropdown.js                  |  450 --
 assets/javascript/src/index.js                     |   50 -
 assets/javascript/src/modal.js                     |  590 --
 assets/javascript/src/popover.js                   |  194 -
 assets/javascript/src/scrollspy.js                 |  340 -
 assets/javascript/src/tab.js                       |  287 -
 assets/javascript/src/tooltip.js                   |  733 --
 assets/javascript/src/util.js                      |  166 -
 assets/javascript/tests/.eslintrc.json             |   46 -
 assets/javascript/tests/README.md                  |   61 -
 assets/javascript/tests/index.html                 |  129 -
 assets/javascript/tests/unit/alert.js              |   79 -
 assets/javascript/tests/unit/button.js             |  176 -
 assets/javascript/tests/unit/carousel.js           |  921 ---
 assets/javascript/tests/unit/collapse.js           |  745 --
 assets/javascript/tests/unit/dropdown.js           |  652 --
 assets/javascript/tests/unit/modal.js              |  692 --
 assets/javascript/tests/unit/popover.js            |  413 --
 assets/javascript/tests/unit/scrollspy.js          |  659 --
 assets/javascript/tests/unit/tab.js                |  385 -
 assets/javascript/tests/unit/tooltip.js            |  851 ---
 assets/javascript/tests/vendor/qunit.css           |  436 --
 assets/javascript/tests/vendor/qunit.js            | 5048 -------------
 assets/javascript/tests/visual/alert.html          |   51 -
 assets/javascript/tests/visual/button.html         |   51 -
 assets/javascript/tests/visual/carousel.html       |   56 -
 assets/javascript/tests/visual/collapse.html       |   64 -
 assets/javascript/tests/visual/dropdown.html       |  126 -
 assets/javascript/tests/visual/modal.html          |  231 -
 assets/javascript/tests/visual/popover.html        |   47 -
 assets/javascript/tests/visual/scrollspy.html      |   96 -
 assets/javascript/tests/visual/tab.html            |  233 -
 assets/javascript/tests/visual/tooltip.html        |   71 -
 assets/scss                                        |    1 +
 assets/scss/_alert.scss                            |   49 -
 assets/scss/_badge.scss                            |   47 -
 assets/scss/_breadcrumb.scss                       |   38 -
 assets/scss/_button-group.scss                     |  207 -
 assets/scss/_buttons.scss                          |  136 -
 assets/scss/_card.scss                             |  259 -
 assets/scss/_carousel.scss                         |  191 -
 assets/scss/_close.scss                            |   29 -
 assets/scss/_code.scss                             |   64 -
 assets/scss/_component-examples.scss               |  438 --
 assets/scss/_custom-forms.scss                     |  257 -
 assets/scss/_dropdown.scss                         |  103 -
 assets/scss/_forms.scss                            |  358 -
 assets/scss/_functions.scss                        |   86 -
 assets/scss/_grid.scss                             |   52 -
 assets/scss/_images.scss                           |   43 -
 assets/scss/_input-group.scss                      |  186 -
 assets/scss/_jumbotron.scss                        |   16 -
 assets/scss/_list-group.scss                       |  114 -
 assets/scss/_media.scss                            |    8 -
 assets/scss/_mixins.scss                           |   42 -
 assets/scss/_modal.scss                            |  153 -
 assets/scss/_nav.scss                              |  118 -
 assets/scss/_navbar.scss                           |  306 -
 assets/scss/_pagination.scss                       |   64 -
 assets/scss/_popover.scss                          |  194 -
 assets/scss/_print.scss                            |  110 -
 assets/scss/_progress.scss                         |   30 -
 assets/scss/_reboot.scss                           |  504 --
 assets/scss/_root.scss                             |   19 -
 assets/scss/_sidebar.scss                          |  166 -
 assets/scss/_tables.scss                           |  180 -
 assets/scss/_tooltip.scss                          |  107 -
 assets/scss/_tor-variables.scss                    |   60 -
 assets/scss/_tor.scss                              |  497 --
 assets/scss/_transitions.scss                      |   36 -
 assets/scss/_type.scss                             |  125 -
 assets/scss/_utilities.scss                        |   14 -
 assets/scss/_variables.scss                        |  828 ---
 assets/scss/bootstrap-grid.scss                    |   35 -
 assets/scss/bootstrap-reboot.scss                  |   12 -
 assets/scss/bootstrap.scss                         |   45 -
 assets/scss/mixins/_alert.scss                     |   13 -
 assets/scss/mixins/_background-variant.scss        |   20 -
 assets/scss/mixins/_badge.scss                     |   12 -
 assets/scss/mixins/_border-radius.scss             |   35 -
 assets/scss/mixins/_box-shadow.scss                |    5 -
 assets/scss/mixins/_breakpoints.scss               |  119 -
 assets/scss/mixins/_buttons.scss                   |   94 -
 assets/scss/mixins/_caret.scss                     |   35 -
 assets/scss/mixins/_clearfix.scss                  |    7 -
 assets/scss/mixins/_float.scss                     |   11 -
 assets/scss/mixins/_forms.scss                     |  108 -
 assets/scss/mixins/_gradients.scss                 |   45 -
 assets/scss/mixins/_grid-framework.scss            |   69 -
 assets/scss/mixins/_grid.scss                      |   52 -
 assets/scss/mixins/_hover.scss                     |   61 -
 assets/scss/mixins/_image.scss                     |   36 -
 assets/scss/mixins/_list-group.scss                |   24 -
 assets/scss/mixins/_lists.scss                     |    7 -
 assets/scss/mixins/_nav-divider.scss               |   10 -
 assets/scss/mixins/_navbar-align.scss              |   10 -
 assets/scss/mixins/_pagination.scss                |   22 -
 assets/scss/mixins/_reset-text.scss                |   17 -
 assets/scss/mixins/_resize.scss                    |    6 -
 assets/scss/mixins/_screen-reader.scss             |   35 -
 assets/scss/mixins/_size.scss                      |    6 -
 assets/scss/mixins/_table-row.scss                 |   30 -
 assets/scss/mixins/_text-emphasis.scss             |   14 -
 assets/scss/mixins/_text-hide.scss                 |    8 -
 assets/scss/mixins/_text-truncate.scss             |    8 -
 assets/scss/mixins/_transition.scss                |    9 -
 assets/scss/mixins/_visibility.scss                |    7 -
 assets/scss/utilities/_align.scss                  |    8 -
 assets/scss/utilities/_background.scss             |   19 -
 assets/scss/utilities/_borders.scss                |   54 -
 assets/scss/utilities/_clearfix.scss               |    3 -
 assets/scss/utilities/_display.scss                |   56 -
 assets/scss/utilities/_embed.scss                  |   52 -
 assets/scss/utilities/_flex.scss                   |   46 -
 assets/scss/utilities/_float.scss                  |    9 -
 assets/scss/utilities/_position.scss               |   36 -
 assets/scss/utilities/_screenreaders.scss          |   11 -
 assets/scss/utilities/_sizing.scss                 |   12 -
 assets/scss/utilities/_spacing.scss                |   51 -
 assets/scss/utilities/_text.scss                   |   52 -
 assets/scss/utilities/_visibility.scss             |   11 -
 assets/static/bootstrap-grid.css                   | 1168 ---
 assets/static/bootstrap-grid.css.map               |    7 -
 assets/static/bootstrap-reboot.css                 |  279 -
 assets/static/bootstrap-reboot.css.map             |    7 -
 assets/static/bootstrap.css                        | 7425 --------------------
 assets/static/bootstrap.css.map                    |    7 -
 assets/static/collapse.min.js                      |    1 -
 assets/static/css                                  |    1 +
 assets/static/fonts                                |    1 +
 assets/static/fonts/SourceCodePro/OFL.txt          |   93 -
 .../fonts/SourceCodePro/SourceCodePro-Black.ttf    |  Bin 120356 -> 0 bytes
 .../fonts/SourceCodePro/SourceCodePro-Bold.ttf     |  Bin 120504 -> 0 bytes
 .../SourceCodePro/SourceCodePro-ExtraLight.ttf     |  Bin 121568 -> 0 bytes
 .../fonts/SourceCodePro/SourceCodePro-Light.ttf    |  Bin 121284 -> 0 bytes
 .../fonts/SourceCodePro/SourceCodePro-Medium.ttf   |  Bin 120244 -> 0 bytes
 .../fonts/SourceCodePro/SourceCodePro-Regular.ttf  |  Bin 120548 -> 0 bytes
 .../fonts/SourceCodePro/SourceCodePro-Semibold.ttf |  Bin 120252 -> 0 bytes
 assets/static/fonts/SourceSansPro/OFL.txt          |   93 -
 .../fonts/SourceSansPro/SourceSansPro-Black.ttf    |  Bin 288824 -> 0 bytes
 .../SourceSansPro/SourceSansPro-BlackItalic.ttf    |  Bin 102944 -> 0 bytes
 .../fonts/SourceSansPro/SourceSansPro-Bold.ttf     |  Bin 290916 -> 0 bytes
 .../SourceSansPro/SourceSansPro-BoldItalic.ttf     |  Bin 103200 -> 0 bytes
 .../SourceSansPro/SourceSansPro-ExtraLight.ttf     |  Bin 291112 -> 0 bytes
 .../SourceSansPro-ExtraLightItalic.ttf             |  Bin 104304 -> 0 bytes
 .../fonts/SourceSansPro/SourceSansPro-Italic.ttf   |  Bin 103828 -> 0 bytes
 .../fonts/SourceSansPro/SourceSansPro-Light.ttf    |  Bin 292680 -> 0 bytes
 .../SourceSansPro/SourceSansPro-LightItalic.ttf    |  Bin 104156 -> 0 bytes
 .../fonts/SourceSansPro/SourceSansPro-Regular.ttf  |  Bin 293516 -> 0 bytes
 .../fonts/SourceSansPro/SourceSansPro-SemiBold.ttf |  Bin 291864 -> 0 bytes
 .../SourceSansPro/SourceSansPro-SemiBoldItalic.ttf |  Bin 103556 -> 0 bytes
 assets/static/fonts/SourceSerifPro/OFL.txt         |   93 -
 .../fonts/SourceSerifPro/SourceSerifPro-Bold.ttf   |  Bin 113188 -> 0 bytes
 .../SourceSerifPro/SourceSerifPro-Regular.ttf      |  Bin 113640 -> 0 bytes
 .../SourceSerifPro/SourceSerifPro-Semibold.ttf     |  Bin 114352 -> 0 bytes
 assets/static/fonts/TorIcons/tor-icons.eot         |  Bin 8076 -> 0 bytes
 assets/static/fonts/TorIcons/tor-icons.svg         |  102 -
 assets/static/fonts/TorIcons/tor-icons.ttf         |  Bin 7904 -> 0 bytes
 assets/static/fonts/TorIcons/tor-icons.woff        |  Bin 4724 -> 0 bytes
 assets/static/fonts/TorIcons/tor-icons.woff2       |  Bin 3984 -> 0 bytes
 assets/static/fonts/open-iconic/.gitignore         |    1 -
 assets/static/fonts/open-iconic/FONT-LICENSE       |   86 -
 assets/static/fonts/open-iconic/ICON-LICENSE       |   21 -
 assets/static/fonts/open-iconic/README.md          |  114 -
 assets/static/fonts/open-iconic/bower.json         |   21 -
 .../open-iconic/font/css/open-iconic-bootstrap.css |  952 ---
 .../font/css/open-iconic-bootstrap.less            |  960 ---
 .../font/css/open-iconic-bootstrap.min.css         |    1 -
 .../font/css/open-iconic-bootstrap.scss            |  958 ---
 .../font/css/open-iconic-bootstrap.styl            |  954 ---
 .../font/css/open-iconic-foundation.css            | 1395 ----
 .../font/css/open-iconic-foundation.less           | 1397 ----
 .../font/css/open-iconic-foundation.min.css        |    1 -
 .../font/css/open-iconic-foundation.scss           | 1398 ----
 .../font/css/open-iconic-foundation.styl           | 1392 ----
 .../fonts/open-iconic/font/css/open-iconic.css     |  511 --
 .../fonts/open-iconic/font/css/open-iconic.less    |  962 ---
 .../fonts/open-iconic/font/css/open-iconic.min.css |    1 -
 .../fonts/open-iconic/font/css/open-iconic.scss    |  963 ---
 .../fonts/open-iconic/font/css/open-iconic.styl    |  733 --
 .../fonts/open-iconic/font/fonts/open-iconic.eot   |  Bin 28196 -> 0 bytes
 .../fonts/open-iconic/font/fonts/open-iconic.otf   |  Bin 20996 -> 0 bytes
 .../fonts/open-iconic/font/fonts/open-iconic.svg   |  543 --
 .../fonts/open-iconic/font/fonts/open-iconic.ttf   |  Bin 28028 -> 0 bytes
 .../fonts/open-iconic/font/fonts/open-iconic.woff  |  Bin 14984 -> 0 bytes
 assets/static/fonts/open-iconic/package.json       |   36 -
 .../fonts/open-iconic/png/account-login-2x.png     |  Bin 191 -> 0 bytes
 .../fonts/open-iconic/png/account-login-3x.png     |  Bin 217 -> 0 bytes
 .../fonts/open-iconic/png/account-login-4x.png     |  Bin 246 -> 0 bytes
 .../fonts/open-iconic/png/account-login-6x.png     |  Bin 310 -> 0 bytes
 .../fonts/open-iconic/png/account-login-8x.png     |  Bin 391 -> 0 bytes
 .../static/fonts/open-iconic/png/account-login.png |  Bin 140 -> 0 bytes
 .../fonts/open-iconic/png/account-logout-2x.png    |  Bin 186 -> 0 bytes
 .../fonts/open-iconic/png/account-logout-3x.png    |  Bin 211 -> 0 bytes
 .../fonts/open-iconic/png/account-logout-4x.png    |  Bin 234 -> 0 bytes
 .../fonts/open-iconic/png/account-logout-6x.png    |  Bin 296 -> 0 bytes
 .../fonts/open-iconic/png/account-logout-8x.png    |  Bin 378 -> 0 bytes
 .../fonts/open-iconic/png/account-logout.png       |  Bin 140 -> 0 bytes
 .../fonts/open-iconic/png/action-redo-2x.png       |  Bin 247 -> 0 bytes
 .../fonts/open-iconic/png/action-redo-3x.png       |  Bin 338 -> 0 bytes
 .../fonts/open-iconic/png/action-redo-4x.png       |  Bin 417 -> 0 bytes
 .../fonts/open-iconic/png/action-redo-6x.png       |  Bin 582 -> 0 bytes
 .../fonts/open-iconic/png/action-redo-8x.png       |  Bin 779 -> 0 bytes
 .../static/fonts/open-iconic/png/action-redo.png   |  Bin 180 -> 0 bytes
 .../fonts/open-iconic/png/action-undo-2x.png       |  Bin 238 -> 0 bytes
 .../fonts/open-iconic/png/action-undo-3x.png       |  Bin 322 -> 0 bytes
 .../fonts/open-iconic/png/action-undo-4x.png       |  Bin 414 -> 0 bytes
 .../fonts/open-iconic/png/action-undo-6x.png       |  Bin 572 -> 0 bytes
 .../fonts/open-iconic/png/action-undo-8x.png       |  Bin 760 -> 0 bytes
 .../static/fonts/open-iconic/png/action-undo.png   |  Bin 173 -> 0 bytes
 .../fonts/open-iconic/png/align-center-2x.png      |  Bin 134 -> 0 bytes
 .../fonts/open-iconic/png/align-center-3x.png      |  Bin 147 -> 0 bytes
 .../fonts/open-iconic/png/align-center-4x.png      |  Bin 154 -> 0 bytes
 .../fonts/open-iconic/png/align-center-6x.png      |  Bin 179 -> 0 bytes
 .../fonts/open-iconic/png/align-center-8x.png      |  Bin 218 -> 0 bytes
 .../static/fonts/open-iconic/png/align-center.png  |  Bin 123 -> 0 bytes
 .../static/fonts/open-iconic/png/align-left-2x.png |  Bin 134 -> 0 bytes
 .../static/fonts/open-iconic/png/align-left-3x.png |  Bin 148 -> 0 bytes
 .../static/fonts/open-iconic/png/align-left-4x.png |  Bin 154 -> 0 bytes
 .../static/fonts/open-iconic/png/align-left-6x.png |  Bin 179 -> 0 bytes
 .../static/fonts/open-iconic/png/align-left-8x.png |  Bin 214 -> 0 bytes
 assets/static/fonts/open-iconic/png/align-left.png |  Bin 119 -> 0 bytes
 .../fonts/open-iconic/png/align-right-2x.png       |  Bin 132 -> 0 bytes
 .../fonts/open-iconic/png/align-right-3x.png       |  Bin 145 -> 0 bytes
 .../fonts/open-iconic/png/align-right-4x.png       |  Bin 152 -> 0 bytes
 .../fonts/open-iconic/png/align-right-6x.png       |  Bin 175 -> 0 bytes
 .../fonts/open-iconic/png/align-right-8x.png       |  Bin 212 -> 0 bytes
 .../static/fonts/open-iconic/png/align-right.png   |  Bin 119 -> 0 bytes
 .../static/fonts/open-iconic/png/aperture-2x.png   |  Bin 405 -> 0 bytes
 .../static/fonts/open-iconic/png/aperture-3x.png   |  Bin 556 -> 0 bytes
 .../static/fonts/open-iconic/png/aperture-4x.png   |  Bin 723 -> 0 bytes
 .../static/fonts/open-iconic/png/aperture-6x.png   |  Bin 1076 -> 0 bytes
 .../static/fonts/open-iconic/png/aperture-8x.png   |  Bin 1412 -> 0 bytes
 assets/static/fonts/open-iconic/png/aperture.png   |  Bin 219 -> 0 bytes
 .../fonts/open-iconic/png/arrow-bottom-2x.png      |  Bin 215 -> 0 bytes
 .../fonts/open-iconic/png/arrow-bottom-3x.png      |  Bin 256 -> 0 bytes
 .../fonts/open-iconic/png/arrow-bottom-4x.png      |  Bin 297 -> 0 bytes
 .../fonts/open-iconic/png/arrow-bottom-6x.png      |  Bin 407 -> 0 bytes
 .../fonts/open-iconic/png/arrow-bottom-8x.png      |  Bin 524 -> 0 bytes
 .../static/fonts/open-iconic/png/arrow-bottom.png  |  Bin 149 -> 0 bytes
 .../open-iconic/png/arrow-circle-bottom-2x.png     |  Bin 301 -> 0 bytes
 .../open-iconic/png/arrow-circle-bottom-3x.png     |  Bin 430 -> 0 bytes
 .../open-iconic/png/arrow-circle-bottom-4x.png     |  Bin 547 -> 0 bytes
 .../open-iconic/png/arrow-circle-bottom-6x.png     |  Bin 780 -> 0 bytes
 .../open-iconic/png/arrow-circle-bottom-8x.png     |  Bin 1033 -> 0 bytes
 .../fonts/open-iconic/png/arrow-circle-bottom.png  |  Bin 190 -> 0 bytes
 .../fonts/open-iconic/png/arrow-circle-left-2x.png |  Bin 275 -> 0 bytes
 .../fonts/open-iconic/png/arrow-circle-left-3x.png |  Bin 395 -> 0 bytes
 .../fonts/open-iconic/png/arrow-circle-left-4x.png |  Bin 503 -> 0 bytes
 .../fonts/open-iconic/png/arrow-circle-left-6x.png |  Bin 743 -> 0 bytes
 .../fonts/open-iconic/png/arrow-circle-left-8x.png |  Bin 992 -> 0 bytes
 .../fonts/open-iconic/png/arrow-circle-left.png    |  Bin 181 -> 0 bytes
 .../open-iconic/png/arrow-circle-right-2x.png      |  Bin 277 -> 0 bytes
 .../open-iconic/png/arrow-circle-right-3x.png      |  Bin 394 -> 0 bytes
 .../open-iconic/png/arrow-circle-right-4x.png      |  Bin 506 -> 0 bytes
 .../open-iconic/png/arrow-circle-right-6x.png      |  Bin 743 -> 0 bytes
 .../open-iconic/png/arrow-circle-right-8x.png      |  Bin 985 -> 0 bytes
 .../fonts/open-iconic/png/arrow-circle-right.png   |  Bin 182 -> 0 bytes
 .../fonts/open-iconic/png/arrow-circle-top-2x.png  |  Bin 286 -> 0 bytes
 .../fonts/open-iconic/png/arrow-circle-top-3x.png  |  Bin 394 -> 0 bytes
 .../fonts/open-iconic/png/arrow-circle-top-4x.png  |  Bin 516 -> 0 bytes
 .../fonts/open-iconic/png/arrow-circle-top-6x.png  |  Bin 758 -> 0 bytes
 .../fonts/open-iconic/png/arrow-circle-top-8x.png  |  Bin 1015 -> 0 bytes
 .../fonts/open-iconic/png/arrow-circle-top.png     |  Bin 189 -> 0 bytes
 .../static/fonts/open-iconic/png/arrow-left-2x.png |  Bin 199 -> 0 bytes
 .../static/fonts/open-iconic/png/arrow-left-3x.png |  Bin 235 -> 0 bytes
 .../static/fonts/open-iconic/png/arrow-left-4x.png |  Bin 282 -> 0 bytes
 .../static/fonts/open-iconic/png/arrow-left-6x.png |  Bin 370 -> 0 bytes
 .../static/fonts/open-iconic/png/arrow-left-8x.png |  Bin 467 -> 0 bytes
 assets/static/fonts/open-iconic/png/arrow-left.png |  Bin 145 -> 0 bytes
 .../fonts/open-iconic/png/arrow-right-2x.png       |  Bin 199 -> 0 bytes
 .../fonts/open-iconic/png/arrow-right-3x.png       |  Bin 239 -> 0 bytes
 .../fonts/open-iconic/png/arrow-right-4x.png       |  Bin 286 -> 0 bytes
 .../fonts/open-iconic/png/arrow-right-6x.png       |  Bin 415 -> 0 bytes
 .../fonts/open-iconic/png/arrow-right-8x.png       |  Bin 522 -> 0 bytes
 .../static/fonts/open-iconic/png/arrow-right.png   |  Bin 147 -> 0 bytes
 .../open-iconic/png/arrow-thick-bottom-2x.png      |  Bin 176 -> 0 bytes
 .../open-iconic/png/arrow-thick-bottom-3x.png      |  Bin 213 -> 0 bytes
 .../open-iconic/png/arrow-thick-bottom-4x.png      |  Bin 253 -> 0 bytes
 .../open-iconic/png/arrow-thick-bottom-6x.png      |  Bin 353 -> 0 bytes
 .../open-iconic/png/arrow-thick-bottom-8x.png      |  Bin 485 -> 0 bytes
 .../fonts/open-iconic/png/arrow-thick-bottom.png   |  Bin 142 -> 0 bytes
 .../fonts/open-iconic/png/arrow-thick-left-2x.png  |  Bin 178 -> 0 bytes
 .../fonts/open-iconic/png/arrow-thick-left-3x.png  |  Bin 212 -> 0 bytes
 .../fonts/open-iconic/png/arrow-thick-left-4x.png  |  Bin 244 -> 0 bytes
 .../fonts/open-iconic/png/arrow-thick-left-6x.png  |  Bin 344 -> 0 bytes
 .../fonts/open-iconic/png/arrow-thick-left-8x.png  |  Bin 444 -> 0 bytes
 .../fonts/open-iconic/png/arrow-thick-left.png     |  Bin 138 -> 0 bytes
 .../fonts/open-iconic/png/arrow-thick-right-2x.png |  Bin 187 -> 0 bytes
 .../fonts/open-iconic/png/arrow-thick-right-3x.png |  Bin 216 -> 0 bytes
 .../fonts/open-iconic/png/arrow-thick-right-4x.png |  Bin 266 -> 0 bytes
 .../fonts/open-iconic/png/arrow-thick-right-6x.png |  Bin 398 -> 0 bytes
 .../fonts/open-iconic/png/arrow-thick-right-8x.png |  Bin 508 -> 0 bytes
 .../fonts/open-iconic/png/arrow-thick-right.png    |  Bin 143 -> 0 bytes
 .../fonts/open-iconic/png/arrow-thick-top-2x.png   |  Bin 183 -> 0 bytes
 .../fonts/open-iconic/png/arrow-thick-top-3x.png   |  Bin 215 -> 0 bytes
 .../fonts/open-iconic/png/arrow-thick-top-4x.png   |  Bin 253 -> 0 bytes
 .../fonts/open-iconic/png/arrow-thick-top-6x.png   |  Bin 372 -> 0 bytes
 .../fonts/open-iconic/png/arrow-thick-top-8x.png   |  Bin 518 -> 0 bytes
 .../fonts/open-iconic/png/arrow-thick-top.png      |  Bin 144 -> 0 bytes
 .../static/fonts/open-iconic/png/arrow-top-2x.png  |  Bin 205 -> 0 bytes
 .../static/fonts/open-iconic/png/arrow-top-3x.png  |  Bin 242 -> 0 bytes
 .../static/fonts/open-iconic/png/arrow-top-4x.png  |  Bin 292 -> 0 bytes
 .../static/fonts/open-iconic/png/arrow-top-6x.png  |  Bin 401 -> 0 bytes
 .../static/fonts/open-iconic/png/arrow-top-8x.png  |  Bin 545 -> 0 bytes
 assets/static/fonts/open-iconic/png/arrow-top.png  |  Bin 155 -> 0 bytes
 assets/static/fonts/open-iconic/png/audio-2x.png   |  Bin 341 -> 0 bytes
 assets/static/fonts/open-iconic/png/audio-3x.png   |  Bin 493 -> 0 bytes
 assets/static/fonts/open-iconic/png/audio-4x.png   |  Bin 628 -> 0 bytes
 assets/static/fonts/open-iconic/png/audio-6x.png   |  Bin 893 -> 0 bytes
 assets/static/fonts/open-iconic/png/audio-8x.png   |  Bin 1264 -> 0 bytes
 .../fonts/open-iconic/png/audio-spectrum-2x.png    |  Bin 160 -> 0 bytes
 .../fonts/open-iconic/png/audio-spectrum-3x.png    |  Bin 174 -> 0 bytes
 .../fonts/open-iconic/png/audio-spectrum-4x.png    |  Bin 192 -> 0 bytes
 .../fonts/open-iconic/png/audio-spectrum-6x.png    |  Bin 225 -> 0 bytes
 .../fonts/open-iconic/png/audio-spectrum-8x.png    |  Bin 293 -> 0 bytes
 .../fonts/open-iconic/png/audio-spectrum.png       |  Bin 132 -> 0 bytes
 assets/static/fonts/open-iconic/png/audio.png      |  Bin 199 -> 0 bytes
 assets/static/fonts/open-iconic/png/badge-2x.png   |  Bin 226 -> 0 bytes
 assets/static/fonts/open-iconic/png/badge-3x.png   |  Bin 289 -> 0 bytes
 assets/static/fonts/open-iconic/png/badge-4x.png   |  Bin 376 -> 0 bytes
 assets/static/fonts/open-iconic/png/badge-6x.png   |  Bin 545 -> 0 bytes
 assets/static/fonts/open-iconic/png/badge-8x.png   |  Bin 724 -> 0 bytes
 assets/static/fonts/open-iconic/png/badge.png      |  Bin 169 -> 0 bytes
 assets/static/fonts/open-iconic/png/ban-2x.png     |  Bin 357 -> 0 bytes
 assets/static/fonts/open-iconic/png/ban-3x.png     |  Bin 509 -> 0 bytes
 assets/static/fonts/open-iconic/png/ban-4x.png     |  Bin 687 -> 0 bytes
 assets/static/fonts/open-iconic/png/ban-6x.png     |  Bin 991 -> 0 bytes
 assets/static/fonts/open-iconic/png/ban-8x.png     |  Bin 1386 -> 0 bytes
 assets/static/fonts/open-iconic/png/ban.png        |  Bin 210 -> 0 bytes
 .../static/fonts/open-iconic/png/bar-chart-2x.png  |  Bin 157 -> 0 bytes
 .../static/fonts/open-iconic/png/bar-chart-3x.png  |  Bin 165 -> 0 bytes
 .../static/fonts/open-iconic/png/bar-chart-4x.png  |  Bin 174 -> 0 bytes
 .../static/fonts/open-iconic/png/bar-chart-6x.png  |  Bin 207 -> 0 bytes
 .../static/fonts/open-iconic/png/bar-chart-8x.png  |  Bin 271 -> 0 bytes
 assets/static/fonts/open-iconic/png/bar-chart.png  |  Bin 137 -> 0 bytes
 assets/static/fonts/open-iconic/png/basket-2x.png  |  Bin 273 -> 0 bytes
 assets/static/fonts/open-iconic/png/basket-3x.png  |  Bin 362 -> 0 bytes
 assets/static/fonts/open-iconic/png/basket-4x.png  |  Bin 451 -> 0 bytes
 assets/static/fonts/open-iconic/png/basket-6x.png  |  Bin 628 -> 0 bytes
 assets/static/fonts/open-iconic/png/basket-8x.png  |  Bin 827 -> 0 bytes
 assets/static/fonts/open-iconic/png/basket.png     |  Bin 181 -> 0 bytes
 .../fonts/open-iconic/png/battery-empty-2x.png     |  Bin 201 -> 0 bytes
 .../fonts/open-iconic/png/battery-empty-3x.png     |  Bin 219 -> 0 bytes
 .../fonts/open-iconic/png/battery-empty-4x.png     |  Bin 245 -> 0 bytes
 .../fonts/open-iconic/png/battery-empty-6x.png     |  Bin 281 -> 0 bytes
 .../fonts/open-iconic/png/battery-empty-8x.png     |  Bin 336 -> 0 bytes
 .../static/fonts/open-iconic/png/battery-empty.png |  Bin 155 -> 0 bytes
 .../fonts/open-iconic/png/battery-full-2x.png      |  Bin 184 -> 0 bytes
 .../fonts/open-iconic/png/battery-full-3x.png      |  Bin 202 -> 0 bytes
 .../fonts/open-iconic/png/battery-full-4x.png      |  Bin 215 -> 0 bytes
 .../fonts/open-iconic/png/battery-full-6x.png      |  Bin 255 -> 0 bytes
 .../fonts/open-iconic/png/battery-full-8x.png      |  Bin 311 -> 0 bytes
 .../static/fonts/open-iconic/png/battery-full.png  |  Bin 156 -> 0 bytes
 assets/static/fonts/open-iconic/png/beaker-2x.png  |  Bin 304 -> 0 bytes
 assets/static/fonts/open-iconic/png/beaker-3x.png  |  Bin 393 -> 0 bytes
 assets/static/fonts/open-iconic/png/beaker-4x.png  |  Bin 505 -> 0 bytes
 assets/static/fonts/open-iconic/png/beaker-6x.png  |  Bin 713 -> 0 bytes
 assets/static/fonts/open-iconic/png/beaker-8x.png  |  Bin 955 -> 0 bytes
 assets/static/fonts/open-iconic/png/beaker.png     |  Bin 206 -> 0 bytes
 assets/static/fonts/open-iconic/png/bell-2x.png    |  Bin 254 -> 0 bytes
 assets/static/fonts/open-iconic/png/bell-3x.png    |  Bin 334 -> 0 bytes
 assets/static/fonts/open-iconic/png/bell-4x.png    |  Bin 431 -> 0 bytes
 assets/static/fonts/open-iconic/png/bell-6x.png    |  Bin 594 -> 0 bytes
 assets/static/fonts/open-iconic/png/bell-8x.png    |  Bin 804 -> 0 bytes
 assets/static/fonts/open-iconic/png/bell.png       |  Bin 176 -> 0 bytes
 .../static/fonts/open-iconic/png/bluetooth-2x.png  |  Bin 286 -> 0 bytes
 .../static/fonts/open-iconic/png/bluetooth-3x.png  |  Bin 423 -> 0 bytes
 .../static/fonts/open-iconic/png/bluetooth-4x.png  |  Bin 431 -> 0 bytes
 .../static/fonts/open-iconic/png/bluetooth-6x.png  |  Bin 636 -> 0 bytes
 .../static/fonts/open-iconic/png/bluetooth-8x.png  |  Bin 822 -> 0 bytes
 assets/static/fonts/open-iconic/png/bluetooth.png  |  Bin 207 -> 0 bytes
 assets/static/fonts/open-iconic/png/bold-2x.png    |  Bin 268 -> 0 bytes
 assets/static/fonts/open-iconic/png/bold-3x.png    |  Bin 367 -> 0 bytes
 assets/static/fonts/open-iconic/png/bold-4x.png    |  Bin 443 -> 0 bytes
 assets/static/fonts/open-iconic/png/bold-6x.png    |  Bin 661 -> 0 bytes
 assets/static/fonts/open-iconic/png/bold-8x.png    |  Bin 892 -> 0 bytes
 assets/static/fonts/open-iconic/png/bold.png       |  Bin 184 -> 0 bytes
 assets/static/fonts/open-iconic/png/bolt-2x.png    |  Bin 204 -> 0 bytes
 assets/static/fonts/open-iconic/png/bolt-3x.png    |  Bin 238 -> 0 bytes
 assets/static/fonts/open-iconic/png/bolt-4x.png    |  Bin 275 -> 0 bytes
 assets/static/fonts/open-iconic/png/bolt-6x.png    |  Bin 335 -> 0 bytes
 assets/static/fonts/open-iconic/png/bolt-8x.png    |  Bin 420 -> 0 bytes
 assets/static/fonts/open-iconic/png/bolt.png       |  Bin 163 -> 0 bytes
 assets/static/fonts/open-iconic/png/book-2x.png    |  Bin 205 -> 0 bytes
 assets/static/fonts/open-iconic/png/book-3x.png    |  Bin 260 -> 0 bytes
 assets/static/fonts/open-iconic/png/book-4x.png    |  Bin 305 -> 0 bytes
 assets/static/fonts/open-iconic/png/book-6x.png    |  Bin 425 -> 0 bytes
 assets/static/fonts/open-iconic/png/book-8x.png    |  Bin 554 -> 0 bytes
 assets/static/fonts/open-iconic/png/book.png       |  Bin 165 -> 0 bytes
 .../static/fonts/open-iconic/png/bookmark-2x.png   |  Bin 152 -> 0 bytes
 .../static/fonts/open-iconic/png/bookmark-3x.png   |  Bin 174 -> 0 bytes
 .../static/fonts/open-iconic/png/bookmark-4x.png   |  Bin 196 -> 0 bytes
 .../static/fonts/open-iconic/png/bookmark-6x.png   |  Bin 253 -> 0 bytes
 .../static/fonts/open-iconic/png/bookmark-8x.png   |  Bin 343 -> 0 bytes
 assets/static/fonts/open-iconic/png/bookmark.png   |  Bin 131 -> 0 bytes
 assets/static/fonts/open-iconic/png/box-2x.png     |  Bin 157 -> 0 bytes
 assets/static/fonts/open-iconic/png/box-3x.png     |  Bin 170 -> 0 bytes
 assets/static/fonts/open-iconic/png/box-4x.png     |  Bin 184 -> 0 bytes
 assets/static/fonts/open-iconic/png/box-6x.png     |  Bin 216 -> 0 bytes
 assets/static/fonts/open-iconic/png/box-8x.png     |  Bin 283 -> 0 bytes
 assets/static/fonts/open-iconic/png/box.png        |  Bin 141 -> 0 bytes
 .../static/fonts/open-iconic/png/briefcase-2x.png  |  Bin 193 -> 0 bytes
 .../static/fonts/open-iconic/png/briefcase-3x.png  |  Bin 230 -> 0 bytes
 .../static/fonts/open-iconic/png/briefcase-4x.png  |  Bin 262 -> 0 bytes
 .../static/fonts/open-iconic/png/briefcase-6x.png  |  Bin 352 -> 0 bytes
 .../static/fonts/open-iconic/png/briefcase-8x.png  |  Bin 462 -> 0 bytes
 assets/static/fonts/open-iconic/png/briefcase.png  |  Bin 151 -> 0 bytes
 .../fonts/open-iconic/png/british-pound-2x.png     |  Bin 275 -> 0 bytes
 .../fonts/open-iconic/png/british-pound-3x.png     |  Bin 359 -> 0 bytes
 .../fonts/open-iconic/png/british-pound-4x.png     |  Bin 462 -> 0 bytes
 .../fonts/open-iconic/png/british-pound-6x.png     |  Bin 675 -> 0 bytes
 .../fonts/open-iconic/png/british-pound-8x.png     |  Bin 861 -> 0 bytes
 .../static/fonts/open-iconic/png/british-pound.png |  Bin 179 -> 0 bytes
 assets/static/fonts/open-iconic/png/browser-2x.png |  Bin 174 -> 0 bytes
 assets/static/fonts/open-iconic/png/browser-3x.png |  Bin 236 -> 0 bytes
 assets/static/fonts/open-iconic/png/browser-4x.png |  Bin 260 -> 0 bytes
 assets/static/fonts/open-iconic/png/browser-6x.png |  Bin 375 -> 0 bytes
 assets/static/fonts/open-iconic/png/browser-8x.png |  Bin 518 -> 0 bytes
 assets/static/fonts/open-iconic/png/browser.png    |  Bin 150 -> 0 bytes
 assets/static/fonts/open-iconic/png/brush-2x.png   |  Bin 316 -> 0 bytes
 assets/static/fonts/open-iconic/png/brush-3x.png   |  Bin 398 -> 0 bytes
 assets/static/fonts/open-iconic/png/brush-4x.png   |  Bin 513 -> 0 bytes
 assets/static/fonts/open-iconic/png/brush-6x.png   |  Bin 758 -> 0 bytes
 assets/static/fonts/open-iconic/png/brush-8x.png   |  Bin 975 -> 0 bytes
 assets/static/fonts/open-iconic/png/brush.png      |  Bin 186 -> 0 bytes
 assets/static/fonts/open-iconic/png/bug-2x.png     |  Bin 352 -> 0 bytes
 assets/static/fonts/open-iconic/png/bug-3x.png     |  Bin 508 -> 0 bytes
 assets/static/fonts/open-iconic/png/bug-4x.png     |  Bin 658 -> 0 bytes
 assets/static/fonts/open-iconic/png/bug-6x.png     |  Bin 955 -> 0 bytes
 assets/static/fonts/open-iconic/png/bug-8x.png     |  Bin 1275 -> 0 bytes
 assets/static/fonts/open-iconic/png/bug.png        |  Bin 204 -> 0 bytes
 .../static/fonts/open-iconic/png/bullhorn-2x.png   |  Bin 253 -> 0 bytes
 .../static/fonts/open-iconic/png/bullhorn-3x.png   |  Bin 308 -> 0 bytes
 .../static/fonts/open-iconic/png/bullhorn-4x.png   |  Bin 387 -> 0 bytes
 .../static/fonts/open-iconic/png/bullhorn-6x.png   |  Bin 524 -> 0 bytes
 .../static/fonts/open-iconic/png/bullhorn-8x.png   |  Bin 683 -> 0 bytes
 assets/static/fonts/open-iconic/png/bullhorn.png   |  Bin 175 -> 0 bytes
 .../static/fonts/open-iconic/png/calculator-2x.png |  Bin 189 -> 0 bytes
 .../static/fonts/open-iconic/png/calculator-3x.png |  Bin 205 -> 0 bytes
 .../static/fonts/open-iconic/png/calculator-4x.png |  Bin 220 -> 0 bytes
 .../static/fonts/open-iconic/png/calculator-6x.png |  Bin 260 -> 0 bytes
 .../static/fonts/open-iconic/png/calculator-8x.png |  Bin 329 -> 0 bytes
 assets/static/fonts/open-iconic/png/calculator.png |  Bin 154 -> 0 bytes
 .../static/fonts/open-iconic/png/calendar-2x.png   |  Bin 176 -> 0 bytes
 .../static/fonts/open-iconic/png/calendar-3x.png   |  Bin 187 -> 0 bytes
 .../static/fonts/open-iconic/png/calendar-4x.png   |  Bin 204 -> 0 bytes
 .../static/fonts/open-iconic/png/calendar-6x.png   |  Bin 238 -> 0 bytes
 .../static/fonts/open-iconic/png/calendar-8x.png   |  Bin 299 -> 0 bytes
 assets/static/fonts/open-iconic/png/calendar.png   |  Bin 145 -> 0 bytes
 .../static/fonts/open-iconic/png/camera-slr-2x.png |  Bin 325 -> 0 bytes
 .../static/fonts/open-iconic/png/camera-slr-3x.png |  Bin 424 -> 0 bytes
 .../static/fonts/open-iconic/png/camera-slr-4x.png |  Bin 558 -> 0 bytes
 .../static/fonts/open-iconic/png/camera-slr-6x.png |  Bin 844 -> 0 bytes
 .../static/fonts/open-iconic/png/camera-slr-8x.png |  Bin 1134 -> 0 bytes
 assets/static/fonts/open-iconic/png/camera-slr.png |  Bin 195 -> 0 bytes
 .../fonts/open-iconic/png/caret-bottom-2x.png      |  Bin 152 -> 0 bytes
 .../fonts/open-iconic/png/caret-bottom-3x.png      |  Bin 172 -> 0 bytes
 .../fonts/open-iconic/png/caret-bottom-4x.png      |  Bin 191 -> 0 bytes
 .../fonts/open-iconic/png/caret-bottom-6x.png      |  Bin 232 -> 0 bytes
 .../fonts/open-iconic/png/caret-bottom-8x.png      |  Bin 270 -> 0 bytes
 .../static/fonts/open-iconic/png/caret-bottom.png  |  Bin 129 -> 0 bytes
 .../static/fonts/open-iconic/png/caret-left-2x.png |  Bin 167 -> 0 bytes
 .../static/fonts/open-iconic/png/caret-left-3x.png |  Bin 199 -> 0 bytes
 .../static/fonts/open-iconic/png/caret-left-4x.png |  Bin 231 -> 0 bytes
 .../static/fonts/open-iconic/png/caret-left-6x.png |  Bin 326 -> 0 bytes
 .../static/fonts/open-iconic/png/caret-left-8x.png |  Bin 408 -> 0 bytes
 assets/static/fonts/open-iconic/png/caret-left.png |  Bin 135 -> 0 bytes
 .../fonts/open-iconic/png/caret-right-2x.png       |  Bin 169 -> 0 bytes
 .../fonts/open-iconic/png/caret-right-3x.png       |  Bin 199 -> 0 bytes
 .../fonts/open-iconic/png/caret-right-4x.png       |  Bin 234 -> 0 bytes
 .../fonts/open-iconic/png/caret-right-6x.png       |  Bin 283 -> 0 bytes
 .../fonts/open-iconic/png/caret-right-8x.png       |  Bin 337 -> 0 bytes
 .../static/fonts/open-iconic/png/caret-right.png   |  Bin 130 -> 0 bytes
 .../static/fonts/open-iconic/png/caret-top-2x.png  |  Bin 148 -> 0 bytes
 .../static/fonts/open-iconic/png/caret-top-3x.png  |  Bin 173 -> 0 bytes
 .../static/fonts/open-iconic/png/caret-top-4x.png  |  Bin 193 -> 0 bytes
 .../static/fonts/open-iconic/png/caret-top-6x.png  |  Bin 245 -> 0 bytes
 .../static/fonts/open-iconic/png/caret-top-8x.png  |  Bin 302 -> 0 bytes
 assets/static/fonts/open-iconic/png/caret-top.png  |  Bin 126 -> 0 bytes
 assets/static/fonts/open-iconic/png/cart-2x.png    |  Bin 215 -> 0 bytes
 assets/static/fonts/open-iconic/png/cart-3x.png    |  Bin 277 -> 0 bytes
 assets/static/fonts/open-iconic/png/cart-4x.png    |  Bin 336 -> 0 bytes
 assets/static/fonts/open-iconic/png/cart-6x.png    |  Bin 479 -> 0 bytes
 assets/static/fonts/open-iconic/png/cart-8x.png    |  Bin 632 -> 0 bytes
 assets/static/fonts/open-iconic/png/cart.png       |  Bin 160 -> 0 bytes
 assets/static/fonts/open-iconic/png/chat-2x.png    |  Bin 173 -> 0 bytes
 assets/static/fonts/open-iconic/png/chat-3x.png    |  Bin 192 -> 0 bytes
 assets/static/fonts/open-iconic/png/chat-4x.png    |  Bin 220 -> 0 bytes
 assets/static/fonts/open-iconic/png/chat-6x.png    |  Bin 274 -> 0 bytes
 assets/static/fonts/open-iconic/png/chat-8x.png    |  Bin 352 -> 0 bytes
 assets/static/fonts/open-iconic/png/chat.png       |  Bin 141 -> 0 bytes
 assets/static/fonts/open-iconic/png/check-2x.png   |  Bin 220 -> 0 bytes
 assets/static/fonts/open-iconic/png/check-3x.png   |  Bin 257 -> 0 bytes
 assets/static/fonts/open-iconic/png/check-4x.png   |  Bin 314 -> 0 bytes
 assets/static/fonts/open-iconic/png/check-6x.png   |  Bin 430 -> 0 bytes
 assets/static/fonts/open-iconic/png/check-8x.png   |  Bin 557 -> 0 bytes
 assets/static/fonts/open-iconic/png/check.png      |  Bin 169 -> 0 bytes
 .../fonts/open-iconic/png/chevron-bottom-2x.png    |  Bin 175 -> 0 bytes
 .../fonts/open-iconic/png/chevron-bottom-3x.png    |  Bin 213 -> 0 bytes
 .../fonts/open-iconic/png/chevron-bottom-4x.png    |  Bin 238 -> 0 bytes
 .../fonts/open-iconic/png/chevron-bottom-6x.png    |  Bin 301 -> 0 bytes
 .../fonts/open-iconic/png/chevron-bottom-8x.png    |  Bin 372 -> 0 bytes
 .../fonts/open-iconic/png/chevron-bottom.png       |  Bin 153 -> 0 bytes
 .../fonts/open-iconic/png/chevron-left-2x.png      |  Bin 192 -> 0 bytes
 .../fonts/open-iconic/png/chevron-left-3x.png      |  Bin 211 -> 0 bytes
 .../fonts/open-iconic/png/chevron-left-4x.png      |  Bin 250 -> 0 bytes
 .../fonts/open-iconic/png/chevron-left-6x.png      |  Bin 351 -> 0 bytes
 .../fonts/open-iconic/png/chevron-left-8x.png      |  Bin 423 -> 0 bytes
 .../static/fonts/open-iconic/png/chevron-left.png  |  Bin 142 -> 0 bytes
 .../fonts/open-iconic/png/chevron-right-2x.png     |  Bin 192 -> 0 bytes
 .../fonts/open-iconic/png/chevron-right-3x.png     |  Bin 191 -> 0 bytes
 .../fonts/open-iconic/png/chevron-right-4x.png     |  Bin 248 -> 0 bytes
 .../fonts/open-iconic/png/chevron-right-6x.png     |  Bin 346 -> 0 bytes
 .../fonts/open-iconic/png/chevron-right-8x.png     |  Bin 419 -> 0 bytes
 .../static/fonts/open-iconic/png/chevron-right.png |  Bin 142 -> 0 bytes
 .../fonts/open-iconic/png/chevron-top-2x.png       |  Bin 170 -> 0 bytes
 .../fonts/open-iconic/png/chevron-top-3x.png       |  Bin 204 -> 0 bytes
 .../fonts/open-iconic/png/chevron-top-4x.png       |  Bin 229 -> 0 bytes
 .../fonts/open-iconic/png/chevron-top-6x.png       |  Bin 306 -> 0 bytes
 .../fonts/open-iconic/png/chevron-top-8x.png       |  Bin 397 -> 0 bytes
 .../static/fonts/open-iconic/png/chevron-top.png   |  Bin 140 -> 0 bytes
 .../fonts/open-iconic/png/circle-check-2x.png      |  Bin 328 -> 0 bytes
 .../fonts/open-iconic/png/circle-check-3x.png      |  Bin 455 -> 0 bytes
 .../fonts/open-iconic/png/circle-check-4x.png      |  Bin 568 -> 0 bytes
 .../fonts/open-iconic/png/circle-check-6x.png      |  Bin 824 -> 0 bytes
 .../fonts/open-iconic/png/circle-check-8x.png      |  Bin 1062 -> 0 bytes
 .../static/fonts/open-iconic/png/circle-check.png  |  Bin 216 -> 0 bytes
 .../static/fonts/open-iconic/png/circle-x-2x.png   |  Bin 319 -> 0 bytes
 .../static/fonts/open-iconic/png/circle-x-3x.png   |  Bin 444 -> 0 bytes
 .../static/fonts/open-iconic/png/circle-x-4x.png   |  Bin 564 -> 0 bytes
 .../static/fonts/open-iconic/png/circle-x-6x.png   |  Bin 819 -> 0 bytes
 .../static/fonts/open-iconic/png/circle-x-8x.png   |  Bin 1069 -> 0 bytes
 assets/static/fonts/open-iconic/png/circle-x.png   |  Bin 200 -> 0 bytes
 .../static/fonts/open-iconic/png/clipboard-2x.png  |  Bin 178 -> 0 bytes
 .../static/fonts/open-iconic/png/clipboard-3x.png  |  Bin 209 -> 0 bytes
 .../static/fonts/open-iconic/png/clipboard-4x.png  |  Bin 229 -> 0 bytes
 .../static/fonts/open-iconic/png/clipboard-6x.png  |  Bin 307 -> 0 bytes
 .../static/fonts/open-iconic/png/clipboard-8x.png  |  Bin 391 -> 0 bytes
 assets/static/fonts/open-iconic/png/clipboard.png  |  Bin 145 -> 0 bytes
 assets/static/fonts/open-iconic/png/clock-2x.png   |  Bin 378 -> 0 bytes
 assets/static/fonts/open-iconic/png/clock-3x.png   |  Bin 559 -> 0 bytes
 assets/static/fonts/open-iconic/png/clock-4x.png   |  Bin 734 -> 0 bytes
 assets/static/fonts/open-iconic/png/clock-6x.png   |  Bin 1078 -> 0 bytes
 assets/static/fonts/open-iconic/png/clock-8x.png   |  Bin 1460 -> 0 bytes
 assets/static/fonts/open-iconic/png/clock.png      |  Bin 217 -> 0 bytes
 assets/static/fonts/open-iconic/png/cloud-2x.png   |  Bin 240 -> 0 bytes
 assets/static/fonts/open-iconic/png/cloud-3x.png   |  Bin 320 -> 0 bytes
 assets/static/fonts/open-iconic/png/cloud-4x.png   |  Bin 386 -> 0 bytes
 assets/static/fonts/open-iconic/png/cloud-6x.png   |  Bin 581 -> 0 bytes
 assets/static/fonts/open-iconic/png/cloud-8x.png   |  Bin 776 -> 0 bytes
 .../fonts/open-iconic/png/cloud-download-2x.png    |  Bin 269 -> 0 bytes
 .../fonts/open-iconic/png/cloud-download-3x.png    |  Bin 383 -> 0 bytes
 .../fonts/open-iconic/png/cloud-download-4x.png    |  Bin 471 -> 0 bytes
 .../fonts/open-iconic/png/cloud-download-6x.png    |  Bin 681 -> 0 bytes
 .../fonts/open-iconic/png/cloud-download-8x.png    |  Bin 908 -> 0 bytes
 .../fonts/open-iconic/png/cloud-download.png       |  Bin 192 -> 0 bytes
 .../fonts/open-iconic/png/cloud-upload-2x.png      |  Bin 251 -> 0 bytes
 .../fonts/open-iconic/png/cloud-upload-3x.png      |  Bin 355 -> 0 bytes
 .../fonts/open-iconic/png/cloud-upload-4x.png      |  Bin 416 -> 0 bytes
 .../fonts/open-iconic/png/cloud-upload-6x.png      |  Bin 606 -> 0 bytes
 .../fonts/open-iconic/png/cloud-upload-8x.png      |  Bin 822 -> 0 bytes
 .../static/fonts/open-iconic/png/cloud-upload.png  |  Bin 185 -> 0 bytes
 assets/static/fonts/open-iconic/png/cloud.png      |  Bin 180 -> 0 bytes
 assets/static/fonts/open-iconic/png/cloudy-2x.png  |  Bin 302 -> 0 bytes
 assets/static/fonts/open-iconic/png/cloudy-3x.png  |  Bin 415 -> 0 bytes
 assets/static/fonts/open-iconic/png/cloudy-4x.png  |  Bin 538 -> 0 bytes
 assets/static/fonts/open-iconic/png/cloudy-6x.png  |  Bin 813 -> 0 bytes
 assets/static/fonts/open-iconic/png/cloudy-8x.png  |  Bin 1089 -> 0 bytes
 assets/static/fonts/open-iconic/png/cloudy.png     |  Bin 199 -> 0 bytes
 assets/static/fonts/open-iconic/png/code-2x.png    |  Bin 179 -> 0 bytes
 assets/static/fonts/open-iconic/png/code-3x.png    |  Bin 228 -> 0 bytes
 assets/static/fonts/open-iconic/png/code-4x.png    |  Bin 267 -> 0 bytes
 assets/static/fonts/open-iconic/png/code-6x.png    |  Bin 373 -> 0 bytes
 assets/static/fonts/open-iconic/png/code-8x.png    |  Bin 474 -> 0 bytes
 assets/static/fonts/open-iconic/png/code.png       |  Bin 141 -> 0 bytes
 assets/static/fonts/open-iconic/png/cog-2x.png     |  Bin 338 -> 0 bytes
 assets/static/fonts/open-iconic/png/cog-3x.png     |  Bin 477 -> 0 bytes
 assets/static/fonts/open-iconic/png/cog-4x.png     |  Bin 625 -> 0 bytes
 assets/static/fonts/open-iconic/png/cog-6x.png     |  Bin 918 -> 0 bytes
 assets/static/fonts/open-iconic/png/cog-8x.png     |  Bin 1225 -> 0 bytes
 assets/static/fonts/open-iconic/png/cog.png        |  Bin 187 -> 0 bytes
 .../fonts/open-iconic/png/collapse-down-2x.png     |  Bin 147 -> 0 bytes
 .../fonts/open-iconic/png/collapse-down-3x.png     |  Bin 166 -> 0 bytes
 .../fonts/open-iconic/png/collapse-down-4x.png     |  Bin 179 -> 0 bytes
 .../fonts/open-iconic/png/collapse-down-6x.png     |  Bin 213 -> 0 bytes
 .../fonts/open-iconic/png/collapse-down-8x.png     |  Bin 255 -> 0 bytes
 .../static/fonts/open-iconic/png/collapse-down.png |  Bin 131 -> 0 bytes
 .../fonts/open-iconic/png/collapse-left-2x.png     |  Bin 181 -> 0 bytes
 .../fonts/open-iconic/png/collapse-left-3x.png     |  Bin 202 -> 0 bytes
 .../fonts/open-iconic/png/collapse-left-4x.png     |  Bin 224 -> 0 bytes
 .../fonts/open-iconic/png/collapse-left-6x.png     |  Bin 287 -> 0 bytes
 .../fonts/open-iconic/png/collapse-left-8x.png     |  Bin 389 -> 0 bytes
 .../static/fonts/open-iconic/png/collapse-left.png |  Bin 143 -> 0 bytes
 .../fonts/open-iconic/png/collapse-right-2x.png    |  Bin 176 -> 0 bytes
 .../fonts/open-iconic/png/collapse-right-3x.png    |  Bin 198 -> 0 bytes
 .../fonts/open-iconic/png/collapse-right-4x.png    |  Bin 221 -> 0 bytes
 .../fonts/open-iconic/png/collapse-right-6x.png    |  Bin 281 -> 0 bytes
 .../fonts/open-iconic/png/collapse-right-8x.png    |  Bin 395 -> 0 bytes
 .../fonts/open-iconic/png/collapse-right.png       |  Bin 141 -> 0 bytes
 .../fonts/open-iconic/png/collapse-up-2x.png       |  Bin 146 -> 0 bytes
 .../fonts/open-iconic/png/collapse-up-3x.png       |  Bin 163 -> 0 bytes
 .../fonts/open-iconic/png/collapse-up-4x.png       |  Bin 178 -> 0 bytes
 .../fonts/open-iconic/png/collapse-up-6x.png       |  Bin 226 -> 0 bytes
 .../fonts/open-iconic/png/collapse-up-8x.png       |  Bin 289 -> 0 bytes
 .../static/fonts/open-iconic/png/collapse-up.png   |  Bin 129 -> 0 bytes
 assets/static/fonts/open-iconic/png/command-2x.png |  Bin 277 -> 0 bytes
 assets/static/fonts/open-iconic/png/command-3x.png |  Bin 353 -> 0 bytes
 assets/static/fonts/open-iconic/png/command-4x.png |  Bin 487 -> 0 bytes
 assets/static/fonts/open-iconic/png/command-6x.png |  Bin 612 -> 0 bytes
 assets/static/fonts/open-iconic/png/command-8x.png |  Bin 806 -> 0 bytes
 assets/static/fonts/open-iconic/png/command.png    |  Bin 169 -> 0 bytes
 .../fonts/open-iconic/png/comment-square-2x.png    |  Bin 163 -> 0 bytes
 .../fonts/open-iconic/png/comment-square-3x.png    |  Bin 182 -> 0 bytes
 .../fonts/open-iconic/png/comment-square-4x.png    |  Bin 199 -> 0 bytes
 .../fonts/open-iconic/png/comment-square-6x.png    |  Bin 245 -> 0 bytes
 .../fonts/open-iconic/png/comment-square-8x.png    |  Bin 322 -> 0 bytes
 .../fonts/open-iconic/png/comment-square.png       |  Bin 140 -> 0 bytes
 assets/static/fonts/open-iconic/png/compass-2x.png |  Bin 384 -> 0 bytes
 assets/static/fonts/open-iconic/png/compass-3x.png |  Bin 592 -> 0 bytes
 assets/static/fonts/open-iconic/png/compass-4x.png |  Bin 775 -> 0 bytes
 assets/static/fonts/open-iconic/png/compass-6x.png |  Bin 1136 -> 0 bytes
 assets/static/fonts/open-iconic/png/compass-8x.png |  Bin 1557 -> 0 bytes
 assets/static/fonts/open-iconic/png/compass.png    |  Bin 225 -> 0 bytes
 .../static/fonts/open-iconic/png/contrast-2x.png   |  Bin 312 -> 0 bytes
 .../static/fonts/open-iconic/png/contrast-3x.png   |  Bin 455 -> 0 bytes
 .../static/fonts/open-iconic/png/contrast-4x.png   |  Bin 595 -> 0 bytes
 .../static/fonts/open-iconic/png/contrast-6x.png   |  Bin 848 -> 0 bytes
 .../static/fonts/open-iconic/png/contrast-8x.png   |  Bin 1127 -> 0 bytes
 assets/static/fonts/open-iconic/png/contrast.png   |  Bin 196 -> 0 bytes
 .../fonts/open-iconic/png/copywriting-2x.png       |  Bin 155 -> 0 bytes
 .../fonts/open-iconic/png/copywriting-3x.png       |  Bin 175 -> 0 bytes
 .../fonts/open-iconic/png/copywriting-4x.png       |  Bin 198 -> 0 bytes
 .../fonts/open-iconic/png/copywriting-6x.png       |  Bin 243 -> 0 bytes
 .../fonts/open-iconic/png/copywriting-8x.png       |  Bin 300 -> 0 bytes
 .../static/fonts/open-iconic/png/copywriting.png   |  Bin 127 -> 0 bytes
 .../fonts/open-iconic/png/credit-card-2x.png       |  Bin 157 -> 0 bytes
 .../fonts/open-iconic/png/credit-card-3x.png       |  Bin 163 -> 0 bytes
 .../fonts/open-iconic/png/credit-card-4x.png       |  Bin 175 -> 0 bytes
 .../fonts/open-iconic/png/credit-card-6x.png       |  Bin 226 -> 0 bytes
 .../fonts/open-iconic/png/credit-card-8x.png       |  Bin 277 -> 0 bytes
 .../static/fonts/open-iconic/png/credit-card.png   |  Bin 145 -> 0 bytes
 assets/static/fonts/open-iconic/png/crop-2x.png    |  Bin 195 -> 0 bytes
 assets/static/fonts/open-iconic/png/crop-3x.png    |  Bin 240 -> 0 bytes
 assets/static/fonts/open-iconic/png/crop-4x.png    |  Bin 268 -> 0 bytes
 assets/static/fonts/open-iconic/png/crop-6x.png    |  Bin 395 -> 0 bytes
 assets/static/fonts/open-iconic/png/crop-8x.png    |  Bin 501 -> 0 bytes
 assets/static/fonts/open-iconic/png/crop.png       |  Bin 155 -> 0 bytes
 .../static/fonts/open-iconic/png/dashboard-2x.png  |  Bin 414 -> 0 bytes
 .../static/fonts/open-iconic/png/dashboard-3x.png  |  Bin 601 -> 0 bytes
 .../static/fonts/open-iconic/png/dashboard-4x.png  |  Bin 787 -> 0 bytes
 .../static/fonts/open-iconic/png/dashboard-6x.png  |  Bin 1157 -> 0 bytes
 .../static/fonts/open-iconic/png/dashboard-8x.png  |  Bin 1611 -> 0 bytes
 assets/static/fonts/open-iconic/png/dashboard.png  |  Bin 220 -> 0 bytes
 .../open-iconic/png/data-transfer-download-2x.png  |  Bin 171 -> 0 bytes
 .../open-iconic/png/data-transfer-download-3x.png  |  Bin 189 -> 0 bytes
 .../open-iconic/png/data-transfer-download-4x.png  |  Bin 214 -> 0 bytes
 .../open-iconic/png/data-transfer-download-6x.png  |  Bin 263 -> 0 bytes
 .../open-iconic/png/data-transfer-download-8x.png  |  Bin 329 -> 0 bytes
 .../open-iconic/png/data-transfer-download.png     |  Bin 138 -> 0 bytes
 .../open-iconic/png/data-transfer-upload-2x.png    |  Bin 159 -> 0 bytes
 .../open-iconic/png/data-transfer-upload-3x.png    |  Bin 182 -> 0 bytes
 .../open-iconic/png/data-transfer-upload-4x.png    |  Bin 200 -> 0 bytes
 .../open-iconic/png/data-transfer-upload-6x.png    |  Bin 260 -> 0 bytes
 .../open-iconic/png/data-transfer-upload-8x.png    |  Bin 339 -> 0 bytes
 .../fonts/open-iconic/png/data-transfer-upload.png |  Bin 134 -> 0 bytes
 assets/static/fonts/open-iconic/png/delete-2x.png  |  Bin 223 -> 0 bytes
 assets/static/fonts/open-iconic/png/delete-3x.png  |  Bin 286 -> 0 bytes
 assets/static/fonts/open-iconic/png/delete-4x.png  |  Bin 329 -> 0 bytes
 assets/static/fonts/open-iconic/png/delete-6x.png  |  Bin 449 -> 0 bytes
 assets/static/fonts/open-iconic/png/delete-8x.png  |  Bin 605 -> 0 bytes
 assets/static/fonts/open-iconic/png/delete.png     |  Bin 181 -> 0 bytes
 assets/static/fonts/open-iconic/png/dial-2x.png    |  Bin 314 -> 0 bytes
 assets/static/fonts/open-iconic/png/dial-3x.png    |  Bin 449 -> 0 bytes
 assets/static/fonts/open-iconic/png/dial-4x.png    |  Bin 579 -> 0 bytes
 assets/static/fonts/open-iconic/png/dial-6x.png    |  Bin 860 -> 0 bytes
 assets/static/fonts/open-iconic/png/dial-8x.png    |  Bin 1159 -> 0 bytes
 assets/static/fonts/open-iconic/png/dial.png       |  Bin 196 -> 0 bytes
 .../static/fonts/open-iconic/png/document-2x.png   |  Bin 184 -> 0 bytes
 .../static/fonts/open-iconic/png/document-3x.png   |  Bin 207 -> 0 bytes
 .../static/fonts/open-iconic/png/document-4x.png   |  Bin 231 -> 0 bytes
 .../static/fonts/open-iconic/png/document-6x.png   |  Bin 278 -> 0 bytes
 .../static/fonts/open-iconic/png/document-8x.png   |  Bin 357 -> 0 bytes
 assets/static/fonts/open-iconic/png/document.png   |  Bin 150 -> 0 bytes
 assets/static/fonts/open-iconic/png/dollar-2x.png  |  Bin 309 -> 0 bytes
 assets/static/fonts/open-iconic/png/dollar-3x.png  |  Bin 410 -> 0 bytes
 assets/static/fonts/open-iconic/png/dollar-4x.png  |  Bin 494 -> 0 bytes
 assets/static/fonts/open-iconic/png/dollar-6x.png  |  Bin 702 -> 0 bytes
 assets/static/fonts/open-iconic/png/dollar-8x.png  |  Bin 910 -> 0 bytes
 assets/static/fonts/open-iconic/png/dollar.png     |  Bin 187 -> 0 bytes
 .../open-iconic/png/double-quote-sans-left-2x.png  |  Bin 162 -> 0 bytes
 .../open-iconic/png/double-quote-sans-left-3x.png  |  Bin 177 -> 0 bytes
 .../open-iconic/png/double-quote-sans-left-4x.png  |  Bin 195 -> 0 bytes
 .../open-iconic/png/double-quote-sans-left-6x.png  |  Bin 228 -> 0 bytes
 .../open-iconic/png/double-quote-sans-left-8x.png  |  Bin 313 -> 0 bytes
 .../open-iconic/png/double-quote-sans-left.png     |  Bin 138 -> 0 bytes
 .../open-iconic/png/double-quote-sans-right-2x.png |  Bin 164 -> 0 bytes
 .../open-iconic/png/double-quote-sans-right-3x.png |  Bin 188 -> 0 bytes
 .../open-iconic/png/double-quote-sans-right-4x.png |  Bin 208 -> 0 bytes
 .../open-iconic/png/double-quote-sans-right-6x.png |  Bin 264 -> 0 bytes
 .../open-iconic/png/double-quote-sans-right-8x.png |  Bin 353 -> 0 bytes
 .../open-iconic/png/double-quote-sans-right.png    |  Bin 138 -> 0 bytes
 .../open-iconic/png/double-quote-serif-left-2x.png |  Bin 194 -> 0 bytes
 .../open-iconic/png/double-quote-serif-left-3x.png |  Bin 230 -> 0 bytes
 .../open-iconic/png/double-quote-serif-left-4x.png |  Bin 284 -> 0 bytes
 .../open-iconic/png/double-quote-serif-left-6x.png |  Bin 385 -> 0 bytes
 .../open-iconic/png/double-quote-serif-left-8x.png |  Bin 519 -> 0 bytes
 .../open-iconic/png/double-quote-serif-left.png    |  Bin 161 -> 0 bytes
 .../png/double-quote-serif-right-2x.png            |  Bin 199 -> 0 bytes
 .../png/double-quote-serif-right-3x.png            |  Bin 247 -> 0 bytes
 .../png/double-quote-serif-right-4x.png            |  Bin 297 -> 0 bytes
 .../png/double-quote-serif-right-6x.png            |  Bin 401 -> 0 bytes
 .../png/double-quote-serif-right-8x.png            |  Bin 538 -> 0 bytes
 .../open-iconic/png/double-quote-serif-right.png   |  Bin 153 -> 0 bytes
 assets/static/fonts/open-iconic/png/droplet-2x.png |  Bin 314 -> 0 bytes
 assets/static/fonts/open-iconic/png/droplet-3x.png |  Bin 448 -> 0 bytes
 assets/static/fonts/open-iconic/png/droplet-4x.png |  Bin 541 -> 0 bytes
 assets/static/fonts/open-iconic/png/droplet-6x.png |  Bin 804 -> 0 bytes
 assets/static/fonts/open-iconic/png/droplet-8x.png |  Bin 1059 -> 0 bytes
 assets/static/fonts/open-iconic/png/droplet.png    |  Bin 202 -> 0 bytes
 assets/static/fonts/open-iconic/png/eject-2x.png   |  Bin 206 -> 0 bytes
 assets/static/fonts/open-iconic/png/eject-3x.png   |  Bin 233 -> 0 bytes
 assets/static/fonts/open-iconic/png/eject-4x.png   |  Bin 268 -> 0 bytes
 assets/static/fonts/open-iconic/png/eject-6x.png   |  Bin 354 -> 0 bytes
 assets/static/fonts/open-iconic/png/eject-8x.png   |  Bin 446 -> 0 bytes
 assets/static/fonts/open-iconic/png/eject.png      |  Bin 169 -> 0 bytes
 .../static/fonts/open-iconic/png/elevator-2x.png   |  Bin 166 -> 0 bytes
 .../static/fonts/open-iconic/png/elevator-3x.png   |  Bin 193 -> 0 bytes
 .../static/fonts/open-iconic/png/elevator-4x.png   |  Bin 221 -> 0 bytes
 .../static/fonts/open-iconic/png/elevator-6x.png   |  Bin 290 -> 0 bytes
 .../static/fonts/open-iconic/png/elevator-8x.png   |  Bin 357 -> 0 bytes
 assets/static/fonts/open-iconic/png/elevator.png   |  Bin 134 -> 0 bytes
 .../static/fonts/open-iconic/png/ellipses-2x.png   |  Bin 128 -> 0 bytes
 .../static/fonts/open-iconic/png/ellipses-3x.png   |  Bin 139 -> 0 bytes
 .../static/fonts/open-iconic/png/ellipses-4x.png   |  Bin 141 -> 0 bytes
 .../static/fonts/open-iconic/png/ellipses-6x.png   |  Bin 154 -> 0 bytes
 .../static/fonts/open-iconic/png/ellipses-8x.png   |  Bin 179 -> 0 bytes
 assets/static/fonts/open-iconic/png/ellipses.png   |  Bin 118 -> 0 bytes
 .../fonts/open-iconic/png/envelope-closed-2x.png   |  Bin 179 -> 0 bytes
 .../fonts/open-iconic/png/envelope-closed-3x.png   |  Bin 198 -> 0 bytes
 .../fonts/open-iconic/png/envelope-closed-4x.png   |  Bin 222 -> 0 bytes
 .../fonts/open-iconic/png/envelope-closed-6x.png   |  Bin 280 -> 0 bytes
 .../fonts/open-iconic/png/envelope-closed-8x.png   |  Bin 368 -> 0 bytes
 .../fonts/open-iconic/png/envelope-closed.png      |  Bin 151 -> 0 bytes
 .../fonts/open-iconic/png/envelope-open-2x.png     |  Bin 237 -> 0 bytes
 .../fonts/open-iconic/png/envelope-open-3x.png     |  Bin 274 -> 0 bytes
 .../fonts/open-iconic/png/envelope-open-4x.png     |  Bin 308 -> 0 bytes
 .../fonts/open-iconic/png/envelope-open-6x.png     |  Bin 394 -> 0 bytes
 .../fonts/open-iconic/png/envelope-open-8x.png     |  Bin 522 -> 0 bytes
 .../static/fonts/open-iconic/png/envelope-open.png |  Bin 171 -> 0 bytes
 assets/static/fonts/open-iconic/png/euro-2x.png    |  Bin 313 -> 0 bytes
 assets/static/fonts/open-iconic/png/euro-3x.png    |  Bin 415 -> 0 bytes
 assets/static/fonts/open-iconic/png/euro-4x.png    |  Bin 552 -> 0 bytes
 assets/static/fonts/open-iconic/png/euro-6x.png    |  Bin 787 -> 0 bytes
 assets/static/fonts/open-iconic/png/euro-8x.png    |  Bin 1038 -> 0 bytes
 assets/static/fonts/open-iconic/png/euro.png       |  Bin 189 -> 0 bytes
 assets/static/fonts/open-iconic/png/excerpt-2x.png |  Bin 149 -> 0 bytes
 assets/static/fonts/open-iconic/png/excerpt-3x.png |  Bin 161 -> 0 bytes
 assets/static/fonts/open-iconic/png/excerpt-4x.png |  Bin 170 -> 0 bytes
 assets/static/fonts/open-iconic/png/excerpt-6x.png |  Bin 190 -> 0 bytes
 assets/static/fonts/open-iconic/png/excerpt-8x.png |  Bin 229 -> 0 bytes
 assets/static/fonts/open-iconic/png/excerpt.png    |  Bin 128 -> 0 bytes
 .../fonts/open-iconic/png/expand-down-2x.png       |  Bin 147 -> 0 bytes
 .../fonts/open-iconic/png/expand-down-3x.png       |  Bin 166 -> 0 bytes
 .../fonts/open-iconic/png/expand-down-4x.png       |  Bin 179 -> 0 bytes
 .../fonts/open-iconic/png/expand-down-6x.png       |  Bin 213 -> 0 bytes
 .../fonts/open-iconic/png/expand-down-8x.png       |  Bin 256 -> 0 bytes
 .../static/fonts/open-iconic/png/expand-down.png   |  Bin 130 -> 0 bytes
 .../fonts/open-iconic/png/expand-left-2x.png       |  Bin 178 -> 0 bytes
 .../fonts/open-iconic/png/expand-left-3x.png       |  Bin 197 -> 0 bytes
 .../fonts/open-iconic/png/expand-left-4x.png       |  Bin 220 -> 0 bytes
 .../fonts/open-iconic/png/expand-left-6x.png       |  Bin 281 -> 0 bytes
 .../fonts/open-iconic/png/expand-left-8x.png       |  Bin 388 -> 0 bytes
 .../static/fonts/open-iconic/png/expand-left.png   |  Bin 143 -> 0 bytes
 .../fonts/open-iconic/png/expand-right-2x.png      |  Bin 178 -> 0 bytes
 .../fonts/open-iconic/png/expand-right-3x.png      |  Bin 205 -> 0 bytes
 .../fonts/open-iconic/png/expand-right-4x.png      |  Bin 224 -> 0 bytes
 .../fonts/open-iconic/png/expand-right-6x.png      |  Bin 285 -> 0 bytes
 .../fonts/open-iconic/png/expand-right-8x.png      |  Bin 379 -> 0 bytes
 .../static/fonts/open-iconic/png/expand-right.png  |  Bin 139 -> 0 bytes
 .../static/fonts/open-iconic/png/expand-up-2x.png  |  Bin 146 -> 0 bytes
 .../static/fonts/open-iconic/png/expand-up-3x.png  |  Bin 163 -> 0 bytes
 .../static/fonts/open-iconic/png/expand-up-4x.png  |  Bin 178 -> 0 bytes
 .../static/fonts/open-iconic/png/expand-up-6x.png  |  Bin 227 -> 0 bytes
 .../static/fonts/open-iconic/png/expand-up-8x.png  |  Bin 289 -> 0 bytes
 assets/static/fonts/open-iconic/png/expand-up.png  |  Bin 130 -> 0 bytes
 .../fonts/open-iconic/png/external-link-2x.png     |  Bin 189 -> 0 bytes
 .../fonts/open-iconic/png/external-link-3x.png     |  Bin 223 -> 0 bytes
 .../fonts/open-iconic/png/external-link-4x.png     |  Bin 253 -> 0 bytes
 .../fonts/open-iconic/png/external-link-6x.png     |  Bin 334 -> 0 bytes
 .../fonts/open-iconic/png/external-link-8x.png     |  Bin 466 -> 0 bytes
 .../static/fonts/open-iconic/png/external-link.png |  Bin 152 -> 0 bytes
 assets/static/fonts/open-iconic/png/eye-2x.png     |  Bin 311 -> 0 bytes
 assets/static/fonts/open-iconic/png/eye-3x.png     |  Bin 437 -> 0 bytes
 assets/static/fonts/open-iconic/png/eye-4x.png     |  Bin 588 -> 0 bytes
 assets/static/fonts/open-iconic/png/eye-6x.png     |  Bin 887 -> 0 bytes
 assets/static/fonts/open-iconic/png/eye-8x.png     |  Bin 1195 -> 0 bytes
 assets/static/fonts/open-iconic/png/eye.png        |  Bin 198 -> 0 bytes
 .../static/fonts/open-iconic/png/eyedropper-2x.png |  Bin 324 -> 0 bytes
 .../static/fonts/open-iconic/png/eyedropper-3x.png |  Bin 451 -> 0 bytes
 .../static/fonts/open-iconic/png/eyedropper-4x.png |  Bin 562 -> 0 bytes
 .../static/fonts/open-iconic/png/eyedropper-6x.png |  Bin 745 -> 0 bytes
 .../static/fonts/open-iconic/png/eyedropper-8x.png |  Bin 1040 -> 0 bytes
 assets/static/fonts/open-iconic/png/eyedropper.png |  Bin 209 -> 0 bytes
 assets/static/fonts/open-iconic/png/file-2x.png    |  Bin 167 -> 0 bytes
 assets/static/fonts/open-iconic/png/file-3x.png    |  Bin 187 -> 0 bytes
 assets/static/fonts/open-iconic/png/file-4x.png    |  Bin 207 -> 0 bytes
 assets/static/fonts/open-iconic/png/file-6x.png    |  Bin 253 -> 0 bytes
 assets/static/fonts/open-iconic/png/file-8x.png    |  Bin 334 -> 0 bytes
 assets/static/fonts/open-iconic/png/file.png       |  Bin 145 -> 0 bytes
 assets/static/fonts/open-iconic/png/fire-2x.png    |  Bin 303 -> 0 bytes
 assets/static/fonts/open-iconic/png/fire-3x.png    |  Bin 426 -> 0 bytes
 assets/static/fonts/open-iconic/png/fire-4x.png    |  Bin 506 -> 0 bytes
 assets/static/fonts/open-iconic/png/fire-6x.png    |  Bin 757 -> 0 bytes
 assets/static/fonts/open-iconic/png/fire-8x.png    |  Bin 999 -> 0 bytes
 assets/static/fonts/open-iconic/png/fire.png       |  Bin 175 -> 0 bytes
 assets/static/fonts/open-iconic/png/flag-2x.png    |  Bin 194 -> 0 bytes
 assets/static/fonts/open-iconic/png/flag-3x.png    |  Bin 231 -> 0 bytes
 assets/static/fonts/open-iconic/png/flag-4x.png    |  Bin 269 -> 0 bytes
 assets/static/fonts/open-iconic/png/flag-6x.png    |  Bin 344 -> 0 bytes
 assets/static/fonts/open-iconic/png/flag-8x.png    |  Bin 481 -> 0 bytes
 assets/static/fonts/open-iconic/png/flag.png       |  Bin 156 -> 0 bytes
 assets/static/fonts/open-iconic/png/flash-2x.png   |  Bin 198 -> 0 bytes
 assets/static/fonts/open-iconic/png/flash-3x.png   |  Bin 243 -> 0 bytes
 assets/static/fonts/open-iconic/png/flash-4x.png   |  Bin 284 -> 0 bytes
 assets/static/fonts/open-iconic/png/flash-6x.png   |  Bin 346 -> 0 bytes
 assets/static/fonts/open-iconic/png/flash-8x.png   |  Bin 430 -> 0 bytes
 assets/static/fonts/open-iconic/png/flash.png      |  Bin 151 -> 0 bytes
 assets/static/fonts/open-iconic/png/folder-2x.png  |  Bin 142 -> 0 bytes
 assets/static/fonts/open-iconic/png/folder-3x.png  |  Bin 167 -> 0 bytes
 assets/static/fonts/open-iconic/png/folder-4x.png  |  Bin 176 -> 0 bytes
 assets/static/fonts/open-iconic/png/folder-6x.png  |  Bin 226 -> 0 bytes
 assets/static/fonts/open-iconic/png/folder-8x.png  |  Bin 296 -> 0 bytes
 assets/static/fonts/open-iconic/png/folder.png     |  Bin 131 -> 0 bytes
 assets/static/fonts/open-iconic/png/fork-2x.png    |  Bin 290 -> 0 bytes
 assets/static/fonts/open-iconic/png/fork-3x.png    |  Bin 410 -> 0 bytes
 assets/static/fonts/open-iconic/png/fork-4x.png    |  Bin 537 -> 0 bytes
 assets/static/fonts/open-iconic/png/fork-6x.png    |  Bin 779 -> 0 bytes
 assets/static/fonts/open-iconic/png/fork-8x.png    |  Bin 1042 -> 0 bytes
 assets/static/fonts/open-iconic/png/fork.png       |  Bin 176 -> 0 bytes
 .../fonts/open-iconic/png/fullscreen-enter-2x.png  |  Bin 199 -> 0 bytes
 .../fonts/open-iconic/png/fullscreen-enter-3x.png  |  Bin 229 -> 0 bytes
 .../fonts/open-iconic/png/fullscreen-enter-4x.png  |  Bin 280 -> 0 bytes
 .../fonts/open-iconic/png/fullscreen-enter-6x.png  |  Bin 388 -> 0 bytes
 .../fonts/open-iconic/png/fullscreen-enter-8x.png  |  Bin 480 -> 0 bytes
 .../fonts/open-iconic/png/fullscreen-enter.png     |  Bin 155 -> 0 bytes
 .../fonts/open-iconic/png/fullscreen-exit-2x.png   |  Bin 201 -> 0 bytes
 .../fonts/open-iconic/png/fullscreen-exit-3x.png   |  Bin 230 -> 0 bytes
 .../fonts/open-iconic/png/fullscreen-exit-4x.png   |  Bin 273 -> 0 bytes
 .../fonts/open-iconic/png/fullscreen-exit-6x.png   |  Bin 376 -> 0 bytes
 .../fonts/open-iconic/png/fullscreen-exit-8x.png   |  Bin 467 -> 0 bytes
 .../fonts/open-iconic/png/fullscreen-exit.png      |  Bin 160 -> 0 bytes
 assets/static/fonts/open-iconic/png/globe-2x.png   |  Bin 392 -> 0 bytes
 assets/static/fonts/open-iconic/png/globe-3x.png   |  Bin 578 -> 0 bytes
 assets/static/fonts/open-iconic/png/globe-4x.png   |  Bin 761 -> 0 bytes
 assets/static/fonts/open-iconic/png/globe-6x.png   |  Bin 1147 -> 0 bytes
 assets/static/fonts/open-iconic/png/globe-8x.png   |  Bin 1584 -> 0 bytes
 assets/static/fonts/open-iconic/png/globe.png      |  Bin 223 -> 0 bytes
 assets/static/fonts/open-iconic/png/graph-2x.png   |  Bin 211 -> 0 bytes
 assets/static/fonts/open-iconic/png/graph-3x.png   |  Bin 264 -> 0 bytes
 assets/static/fonts/open-iconic/png/graph-4x.png   |  Bin 320 -> 0 bytes
 assets/static/fonts/open-iconic/png/graph-6x.png   |  Bin 455 -> 0 bytes
 assets/static/fonts/open-iconic/png/graph-8x.png   |  Bin 615 -> 0 bytes
 assets/static/fonts/open-iconic/png/graph.png      |  Bin 160 -> 0 bytes
 .../fonts/open-iconic/png/grid-four-up-2x.png      |  Bin 126 -> 0 bytes
 .../fonts/open-iconic/png/grid-four-up-3x.png      |  Bin 145 -> 0 bytes
 .../fonts/open-iconic/png/grid-four-up-4x.png      |  Bin 146 -> 0 bytes
 .../fonts/open-iconic/png/grid-four-up-6x.png      |  Bin 175 -> 0 bytes
 .../fonts/open-iconic/png/grid-four-up-8x.png      |  Bin 218 -> 0 bytes
 .../static/fonts/open-iconic/png/grid-four-up.png  |  Bin 116 -> 0 bytes
 .../fonts/open-iconic/png/grid-three-up-2x.png     |  Bin 134 -> 0 bytes
 .../fonts/open-iconic/png/grid-three-up-3x.png     |  Bin 146 -> 0 bytes
 .../fonts/open-iconic/png/grid-three-up-4x.png     |  Bin 152 -> 0 bytes
 .../fonts/open-iconic/png/grid-three-up-6x.png     |  Bin 178 -> 0 bytes
 .../fonts/open-iconic/png/grid-three-up-8x.png     |  Bin 244 -> 0 bytes
 .../static/fonts/open-iconic/png/grid-three-up.png |  Bin 121 -> 0 bytes
 .../fonts/open-iconic/png/grid-two-up-2x.png       |  Bin 134 -> 0 bytes
 .../fonts/open-iconic/png/grid-two-up-3x.png       |  Bin 145 -> 0 bytes
 .../fonts/open-iconic/png/grid-two-up-4x.png       |  Bin 150 -> 0 bytes
 .../fonts/open-iconic/png/grid-two-up-6x.png       |  Bin 174 -> 0 bytes
 .../fonts/open-iconic/png/grid-two-up-8x.png       |  Bin 235 -> 0 bytes
 .../static/fonts/open-iconic/png/grid-two-up.png   |  Bin 126 -> 0 bytes
 .../static/fonts/open-iconic/png/hard-drive-2x.png |  Bin 192 -> 0 bytes
 .../static/fonts/open-iconic/png/hard-drive-3x.png |  Bin 230 -> 0 bytes
 .../static/fonts/open-iconic/png/hard-drive-4x.png |  Bin 271 -> 0 bytes
 .../static/fonts/open-iconic/png/hard-drive-6x.png |  Bin 360 -> 0 bytes
 .../static/fonts/open-iconic/png/hard-drive-8x.png |  Bin 489 -> 0 bytes
 assets/static/fonts/open-iconic/png/hard-drive.png |  Bin 164 -> 0 bytes
 assets/static/fonts/open-iconic/png/header-2x.png  |  Bin 182 -> 0 bytes
 assets/static/fonts/open-iconic/png/header-3x.png  |  Bin 220 -> 0 bytes
 assets/static/fonts/open-iconic/png/header-4x.png  |  Bin 244 -> 0 bytes
 assets/static/fonts/open-iconic/png/header-6x.png  |  Bin 307 -> 0 bytes
 assets/static/fonts/open-iconic/png/header-8x.png  |  Bin 386 -> 0 bytes
 assets/static/fonts/open-iconic/png/header.png     |  Bin 151 -> 0 bytes
 .../static/fonts/open-iconic/png/headphones-2x.png |  Bin 255 -> 0 bytes
 .../static/fonts/open-iconic/png/headphones-3x.png |  Bin 337 -> 0 bytes
 .../static/fonts/open-iconic/png/headphones-4x.png |  Bin 411 -> 0 bytes
 .../static/fonts/open-iconic/png/headphones-6x.png |  Bin 582 -> 0 bytes
 .../static/fonts/open-iconic/png/headphones-8x.png |  Bin 802 -> 0 bytes
 assets/static/fonts/open-iconic/png/headphones.png |  Bin 184 -> 0 bytes
 assets/static/fonts/open-iconic/png/heart-2x.png   |  Bin 254 -> 0 bytes
 assets/static/fonts/open-iconic/png/heart-3x.png   |  Bin 328 -> 0 bytes
 assets/static/fonts/open-iconic/png/heart-4x.png   |  Bin 395 -> 0 bytes
 assets/static/fonts/open-iconic/png/heart-6x.png   |  Bin 550 -> 0 bytes
 assets/static/fonts/open-iconic/png/heart-8x.png   |  Bin 713 -> 0 bytes
 assets/static/fonts/open-iconic/png/heart.png      |  Bin 176 -> 0 bytes
 assets/static/fonts/open-iconic/png/home-2x.png    |  Bin 207 -> 0 bytes
 assets/static/fonts/open-iconic/png/home-3x.png    |  Bin 246 -> 0 bytes
 assets/static/fonts/open-iconic/png/home-4x.png    |  Bin 279 -> 0 bytes
 assets/static/fonts/open-iconic/png/home-6x.png    |  Bin 358 -> 0 bytes
 assets/static/fonts/open-iconic/png/home-8x.png    |  Bin 456 -> 0 bytes
 assets/static/fonts/open-iconic/png/home.png       |  Bin 166 -> 0 bytes
 assets/static/fonts/open-iconic/png/image-2x.png   |  Bin 187 -> 0 bytes
 assets/static/fonts/open-iconic/png/image-3x.png   |  Bin 217 -> 0 bytes
 assets/static/fonts/open-iconic/png/image-4x.png   |  Bin 246 -> 0 bytes
 assets/static/fonts/open-iconic/png/image-6x.png   |  Bin 312 -> 0 bytes
 assets/static/fonts/open-iconic/png/image-8x.png   |  Bin 396 -> 0 bytes
 assets/static/fonts/open-iconic/png/image.png      |  Bin 144 -> 0 bytes
 assets/static/fonts/open-iconic/png/inbox-2x.png   |  Bin 176 -> 0 bytes
 assets/static/fonts/open-iconic/png/inbox-3x.png   |  Bin 192 -> 0 bytes
 assets/static/fonts/open-iconic/png/inbox-4x.png   |  Bin 208 -> 0 bytes
 assets/static/fonts/open-iconic/png/inbox-6x.png   |  Bin 257 -> 0 bytes
 assets/static/fonts/open-iconic/png/inbox-8x.png   |  Bin 369 -> 0 bytes
 assets/static/fonts/open-iconic/png/inbox.png      |  Bin 147 -> 0 bytes
 .../static/fonts/open-iconic/png/infinity-2x.png   |  Bin 287 -> 0 bytes
 .../static/fonts/open-iconic/png/infinity-3x.png   |  Bin 406 -> 0 bytes
 .../static/fonts/open-iconic/png/infinity-4x.png   |  Bin 525 -> 0 bytes
 .../static/fonts/open-iconic/png/infinity-6x.png   |  Bin 784 -> 0 bytes
 .../static/fonts/open-iconic/png/infinity-8x.png   |  Bin 1031 -> 0 bytes
 assets/static/fonts/open-iconic/png/infinity.png   |  Bin 171 -> 0 bytes
 assets/static/fonts/open-iconic/png/info-2x.png    |  Bin 265 -> 0 bytes
 assets/static/fonts/open-iconic/png/info-3x.png    |  Bin 387 -> 0 bytes
 assets/static/fonts/open-iconic/png/info-4x.png    |  Bin 452 -> 0 bytes
 assets/static/fonts/open-iconic/png/info-6x.png    |  Bin 678 -> 0 bytes
 assets/static/fonts/open-iconic/png/info-8x.png    |  Bin 918 -> 0 bytes
 assets/static/fonts/open-iconic/png/info.png       |  Bin 181 -> 0 bytes
 assets/static/fonts/open-iconic/png/italic-2x.png  |  Bin 231 -> 0 bytes
 assets/static/fonts/open-iconic/png/italic-3x.png  |  Bin 268 -> 0 bytes
 assets/static/fonts/open-iconic/png/italic-4x.png  |  Bin 293 -> 0 bytes
 assets/static/fonts/open-iconic/png/italic-6x.png  |  Bin 403 -> 0 bytes
 assets/static/fonts/open-iconic/png/italic-8x.png  |  Bin 443 -> 0 bytes
 assets/static/fonts/open-iconic/png/italic.png     |  Bin 177 -> 0 bytes
 .../fonts/open-iconic/png/justify-center-2x.png    |  Bin 135 -> 0 bytes
 .../fonts/open-iconic/png/justify-center-3x.png    |  Bin 147 -> 0 bytes
 .../fonts/open-iconic/png/justify-center-4x.png    |  Bin 153 -> 0 bytes
 .../fonts/open-iconic/png/justify-center-6x.png    |  Bin 173 -> 0 bytes
 .../fonts/open-iconic/png/justify-center-8x.png    |  Bin 210 -> 0 bytes
 .../fonts/open-iconic/png/justify-center.png       |  Bin 122 -> 0 bytes
 .../fonts/open-iconic/png/justify-left-2x.png      |  Bin 131 -> 0 bytes
 .../fonts/open-iconic/png/justify-left-3x.png      |  Bin 145 -> 0 bytes
 .../fonts/open-iconic/png/justify-left-4x.png      |  Bin 150 -> 0 bytes
 .../fonts/open-iconic/png/justify-left-6x.png      |  Bin 170 -> 0 bytes
 .../fonts/open-iconic/png/justify-left-8x.png      |  Bin 207 -> 0 bytes
 .../static/fonts/open-iconic/png/justify-left.png  |  Bin 117 -> 0 bytes
 .../fonts/open-iconic/png/justify-right-2x.png     |  Bin 132 -> 0 bytes
 .../fonts/open-iconic/png/justify-right-3x.png     |  Bin 145 -> 0 bytes
 .../fonts/open-iconic/png/justify-right-4x.png     |  Bin 151 -> 0 bytes
 .../fonts/open-iconic/png/justify-right-6x.png     |  Bin 170 -> 0 bytes
 .../fonts/open-iconic/png/justify-right-8x.png     |  Bin 207 -> 0 bytes
 .../static/fonts/open-iconic/png/justify-right.png |  Bin 118 -> 0 bytes
 assets/static/fonts/open-iconic/png/key-2x.png     |  Bin 249 -> 0 bytes
 assets/static/fonts/open-iconic/png/key-3x.png     |  Bin 325 -> 0 bytes
 assets/static/fonts/open-iconic/png/key-4x.png     |  Bin 390 -> 0 bytes
 assets/static/fonts/open-iconic/png/key-6x.png     |  Bin 569 -> 0 bytes
 assets/static/fonts/open-iconic/png/key-8x.png     |  Bin 806 -> 0 bytes
 assets/static/fonts/open-iconic/png/key.png        |  Bin 175 -> 0 bytes
 assets/static/fonts/open-iconic/png/laptop-2x.png  |  Bin 173 -> 0 bytes
 assets/static/fonts/open-iconic/png/laptop-3x.png  |  Bin 207 -> 0 bytes
 assets/static/fonts/open-iconic/png/laptop-4x.png  |  Bin 232 -> 0 bytes
 assets/static/fonts/open-iconic/png/laptop-6x.png  |  Bin 298 -> 0 bytes
 assets/static/fonts/open-iconic/png/laptop-8x.png  |  Bin 378 -> 0 bytes
 assets/static/fonts/open-iconic/png/laptop.png     |  Bin 147 -> 0 bytes
 assets/static/fonts/open-iconic/png/layers-2x.png  |  Bin 161 -> 0 bytes
 assets/static/fonts/open-iconic/png/layers-3x.png  |  Bin 178 -> 0 bytes
 assets/static/fonts/open-iconic/png/layers-4x.png  |  Bin 187 -> 0 bytes
 assets/static/fonts/open-iconic/png/layers-6x.png  |  Bin 224 -> 0 bytes
 assets/static/fonts/open-iconic/png/layers-8x.png  |  Bin 291 -> 0 bytes
 assets/static/fonts/open-iconic/png/layers.png     |  Bin 138 -> 0 bytes
 .../static/fonts/open-iconic/png/lightbulb-2x.png  |  Bin 228 -> 0 bytes
 .../static/fonts/open-iconic/png/lightbulb-3x.png  |  Bin 304 -> 0 bytes
 .../static/fonts/open-iconic/png/lightbulb-4x.png  |  Bin 366 -> 0 bytes
 .../static/fonts/open-iconic/png/lightbulb-6x.png  |  Bin 535 -> 0 bytes
 .../static/fonts/open-iconic/png/lightbulb-8x.png  |  Bin 691 -> 0 bytes
 assets/static/fonts/open-iconic/png/lightbulb.png  |  Bin 192 -> 0 bytes
 .../fonts/open-iconic/png/link-broken-2x.png       |  Bin 329 -> 0 bytes
 .../fonts/open-iconic/png/link-broken-3x.png       |  Bin 463 -> 0 bytes
 .../fonts/open-iconic/png/link-broken-4x.png       |  Bin 577 -> 0 bytes
 .../fonts/open-iconic/png/link-broken-6x.png       |  Bin 876 -> 0 bytes
 .../fonts/open-iconic/png/link-broken-8x.png       |  Bin 1198 -> 0 bytes
 .../static/fonts/open-iconic/png/link-broken.png   |  Bin 202 -> 0 bytes
 .../fonts/open-iconic/png/link-intact-2x.png       |  Bin 350 -> 0 bytes
 .../fonts/open-iconic/png/link-intact-3x.png       |  Bin 496 -> 0 bytes
 .../fonts/open-iconic/png/link-intact-4x.png       |  Bin 630 -> 0 bytes
 .../fonts/open-iconic/png/link-intact-6x.png       |  Bin 941 -> 0 bytes
 .../fonts/open-iconic/png/link-intact-8x.png       |  Bin 1257 -> 0 bytes
 .../static/fonts/open-iconic/png/link-intact.png   |  Bin 215 -> 0 bytes
 assets/static/fonts/open-iconic/png/list-2x.png    |  Bin 160 -> 0 bytes
 assets/static/fonts/open-iconic/png/list-3x.png    |  Bin 180 -> 0 bytes
 assets/static/fonts/open-iconic/png/list-4x.png    |  Bin 201 -> 0 bytes
 assets/static/fonts/open-iconic/png/list-6x.png    |  Bin 285 -> 0 bytes
 assets/static/fonts/open-iconic/png/list-8x.png    |  Bin 375 -> 0 bytes
 .../static/fonts/open-iconic/png/list-rich-2x.png  |  Bin 150 -> 0 bytes
 .../static/fonts/open-iconic/png/list-rich-3x.png  |  Bin 162 -> 0 bytes
 .../static/fonts/open-iconic/png/list-rich-4x.png  |  Bin 170 -> 0 bytes
 .../static/fonts/open-iconic/png/list-rich-6x.png  |  Bin 198 -> 0 bytes
 .../static/fonts/open-iconic/png/list-rich-8x.png  |  Bin 257 -> 0 bytes
 assets/static/fonts/open-iconic/png/list-rich.png  |  Bin 129 -> 0 bytes
 assets/static/fonts/open-iconic/png/list.png       |  Bin 118 -> 0 bytes
 .../static/fonts/open-iconic/png/location-2x.png   |  Bin 223 -> 0 bytes
 .../static/fonts/open-iconic/png/location-3x.png   |  Bin 267 -> 0 bytes
 .../static/fonts/open-iconic/png/location-4x.png   |  Bin 310 -> 0 bytes
 .../static/fonts/open-iconic/png/location-6x.png   |  Bin 413 -> 0 bytes
 .../static/fonts/open-iconic/png/location-8x.png   |  Bin 519 -> 0 bytes
 assets/static/fonts/open-iconic/png/location.png   |  Bin 174 -> 0 bytes
 .../fonts/open-iconic/png/lock-locked-2x.png       |  Bin 196 -> 0 bytes
 .../fonts/open-iconic/png/lock-locked-3x.png       |  Bin 244 -> 0 bytes
 .../fonts/open-iconic/png/lock-locked-4x.png       |  Bin 273 -> 0 bytes
 .../fonts/open-iconic/png/lock-locked-6x.png       |  Bin 404 -> 0 bytes
 .../fonts/open-iconic/png/lock-locked-8x.png       |  Bin 532 -> 0 bytes
 .../static/fonts/open-iconic/png/lock-locked.png   |  Bin 152 -> 0 bytes
 .../fonts/open-iconic/png/lock-unlocked-2x.png     |  Bin 196 -> 0 bytes
 .../fonts/open-iconic/png/lock-unlocked-3x.png     |  Bin 241 -> 0 bytes
 .../fonts/open-iconic/png/lock-unlocked-4x.png     |  Bin 274 -> 0 bytes
 .../fonts/open-iconic/png/lock-unlocked-6x.png     |  Bin 407 -> 0 bytes
 .../fonts/open-iconic/png/lock-unlocked-8x.png     |  Bin 545 -> 0 bytes
 .../static/fonts/open-iconic/png/lock-unlocked.png |  Bin 154 -> 0 bytes
 assets/static/fonts/open-iconic/png/loop-2x.png    |  Bin 218 -> 0 bytes
 assets/static/fonts/open-iconic/png/loop-3x.png    |  Bin 257 -> 0 bytes
 assets/static/fonts/open-iconic/png/loop-4x.png    |  Bin 307 -> 0 bytes
 assets/static/fonts/open-iconic/png/loop-6x.png    |  Bin 401 -> 0 bytes
 assets/static/fonts/open-iconic/png/loop-8x.png    |  Bin 518 -> 0 bytes
 .../fonts/open-iconic/png/loop-circular-2x.png     |  Bin 261 -> 0 bytes
 .../fonts/open-iconic/png/loop-circular-3x.png     |  Bin 345 -> 0 bytes
 .../fonts/open-iconic/png/loop-circular-4x.png     |  Bin 436 -> 0 bytes
 .../fonts/open-iconic/png/loop-circular-6x.png     |  Bin 627 -> 0 bytes
 .../fonts/open-iconic/png/loop-circular-8x.png     |  Bin 832 -> 0 bytes
 .../static/fonts/open-iconic/png/loop-circular.png |  Bin 181 -> 0 bytes
 .../fonts/open-iconic/png/loop-square-2x.png       |  Bin 218 -> 0 bytes
 .../fonts/open-iconic/png/loop-square-3x.png       |  Bin 270 -> 0 bytes
 .../fonts/open-iconic/png/loop-square-4x.png       |  Bin 319 -> 0 bytes
 .../fonts/open-iconic/png/loop-square-6x.png       |  Bin 391 -> 0 bytes
 .../fonts/open-iconic/png/loop-square-8x.png       |  Bin 506 -> 0 bytes
 .../static/fonts/open-iconic/png/loop-square.png   |  Bin 150 -> 0 bytes
 assets/static/fonts/open-iconic/png/loop.png       |  Bin 155 -> 0 bytes
 .../fonts/open-iconic/png/magnifying-glass-2x.png  |  Bin 349 -> 0 bytes
 .../fonts/open-iconic/png/magnifying-glass-3x.png  |  Bin 492 -> 0 bytes
 .../fonts/open-iconic/png/magnifying-glass-4x.png  |  Bin 647 -> 0 bytes
 .../fonts/open-iconic/png/magnifying-glass-6x.png  |  Bin 965 -> 0 bytes
 .../fonts/open-iconic/png/magnifying-glass-8x.png  |  Bin 1286 -> 0 bytes
 .../fonts/open-iconic/png/magnifying-glass.png     |  Bin 199 -> 0 bytes
 assets/static/fonts/open-iconic/png/map-2x.png     |  Bin 241 -> 0 bytes
 assets/static/fonts/open-iconic/png/map-3x.png     |  Bin 323 -> 0 bytes
 assets/static/fonts/open-iconic/png/map-4x.png     |  Bin 386 -> 0 bytes
 assets/static/fonts/open-iconic/png/map-6x.png     |  Bin 550 -> 0 bytes
 assets/static/fonts/open-iconic/png/map-8x.png     |  Bin 796 -> 0 bytes
 .../static/fonts/open-iconic/png/map-marker-2x.png |  Bin 312 -> 0 bytes
 .../static/fonts/open-iconic/png/map-marker-3x.png |  Bin 427 -> 0 bytes
 .../static/fonts/open-iconic/png/map-marker-4x.png |  Bin 572 -> 0 bytes
 .../static/fonts/open-iconic/png/map-marker-6x.png |  Bin 839 -> 0 bytes
 .../static/fonts/open-iconic/png/map-marker-8x.png |  Bin 1154 -> 0 bytes
 assets/static/fonts/open-iconic/png/map-marker.png |  Bin 205 -> 0 bytes
 assets/static/fonts/open-iconic/png/map.png        |  Bin 169 -> 0 bytes
 .../fonts/open-iconic/png/media-pause-2x.png       |  Bin 127 -> 0 bytes
 .../fonts/open-iconic/png/media-pause-3x.png       |  Bin 138 -> 0 bytes
 .../fonts/open-iconic/png/media-pause-4x.png       |  Bin 148 -> 0 bytes
 .../fonts/open-iconic/png/media-pause-6x.png       |  Bin 174 -> 0 bytes
 .../fonts/open-iconic/png/media-pause-8x.png       |  Bin 233 -> 0 bytes
 .../static/fonts/open-iconic/png/media-pause.png   |  Bin 118 -> 0 bytes
 .../static/fonts/open-iconic/png/media-play-2x.png |  Bin 164 -> 0 bytes
 .../static/fonts/open-iconic/png/media-play-3x.png |  Bin 192 -> 0 bytes
 .../static/fonts/open-iconic/png/media-play-4x.png |  Bin 219 -> 0 bytes
 .../static/fonts/open-iconic/png/media-play-6x.png |  Bin 270 -> 0 bytes
 .../static/fonts/open-iconic/png/media-play-8x.png |  Bin 323 -> 0 bytes
 assets/static/fonts/open-iconic/png/media-play.png |  Bin 133 -> 0 bytes
 .../fonts/open-iconic/png/media-record-2x.png      |  Bin 236 -> 0 bytes
 .../fonts/open-iconic/png/media-record-3x.png      |  Bin 314 -> 0 bytes
 .../fonts/open-iconic/png/media-record-4x.png      |  Bin 400 -> 0 bytes
 .../fonts/open-iconic/png/media-record-6x.png      |  Bin 537 -> 0 bytes
 .../fonts/open-iconic/png/media-record-8x.png      |  Bin 786 -> 0 bytes
 .../static/fonts/open-iconic/png/media-record.png  |  Bin 166 -> 0 bytes
 .../open-iconic/png/media-skip-backward-2x.png     |  Bin 191 -> 0 bytes
 .../open-iconic/png/media-skip-backward-3x.png     |  Bin 227 -> 0 bytes
 .../open-iconic/png/media-skip-backward-4x.png     |  Bin 262 -> 0 bytes
 .../open-iconic/png/media-skip-backward-6x.png     |  Bin 338 -> 0 bytes
 .../open-iconic/png/media-skip-backward-8x.png     |  Bin 421 -> 0 bytes
 .../fonts/open-iconic/png/media-skip-backward.png  |  Bin 147 -> 0 bytes
 .../open-iconic/png/media-skip-forward-2x.png      |  Bin 199 -> 0 bytes
 .../open-iconic/png/media-skip-forward-3x.png      |  Bin 233 -> 0 bytes
 .../open-iconic/png/media-skip-forward-4x.png      |  Bin 264 -> 0 bytes
 .../open-iconic/png/media-skip-forward-6x.png      |  Bin 335 -> 0 bytes
 .../open-iconic/png/media-skip-forward-8x.png      |  Bin 417 -> 0 bytes
 .../fonts/open-iconic/png/media-skip-forward.png   |  Bin 157 -> 0 bytes
 .../open-iconic/png/media-step-backward-2x.png     |  Bin 195 -> 0 bytes
 .../open-iconic/png/media-step-backward-3x.png     |  Bin 226 -> 0 bytes
 .../open-iconic/png/media-step-backward-4x.png     |  Bin 262 -> 0 bytes
 .../open-iconic/png/media-step-backward-6x.png     |  Bin 333 -> 0 bytes
 .../open-iconic/png/media-step-backward-8x.png     |  Bin 419 -> 0 bytes
 .../fonts/open-iconic/png/media-step-backward.png  |  Bin 156 -> 0 bytes
 .../open-iconic/png/media-step-forward-2x.png      |  Bin 197 -> 0 bytes
 .../open-iconic/png/media-step-forward-3x.png      |  Bin 227 -> 0 bytes
 .../open-iconic/png/media-step-forward-4x.png      |  Bin 261 -> 0 bytes
 .../open-iconic/png/media-step-forward-6x.png      |  Bin 339 -> 0 bytes
 .../open-iconic/png/media-step-forward-8x.png      |  Bin 433 -> 0 bytes
 .../fonts/open-iconic/png/media-step-forward.png   |  Bin 161 -> 0 bytes
 .../static/fonts/open-iconic/png/media-stop-2x.png |  Bin 125 -> 0 bytes
 .../static/fonts/open-iconic/png/media-stop-3x.png |  Bin 136 -> 0 bytes
 .../static/fonts/open-iconic/png/media-stop-4x.png |  Bin 146 -> 0 bytes
 .../static/fonts/open-iconic/png/media-stop-6x.png |  Bin 176 -> 0 bytes
 .../static/fonts/open-iconic/png/media-stop-8x.png |  Bin 235 -> 0 bytes
 assets/static/fonts/open-iconic/png/media-stop.png |  Bin 119 -> 0 bytes
 .../fonts/open-iconic/png/medical-cross-2x.png     |  Bin 140 -> 0 bytes
 .../fonts/open-iconic/png/medical-cross-3x.png     |  Bin 152 -> 0 bytes
 .../fonts/open-iconic/png/medical-cross-4x.png     |  Bin 164 -> 0 bytes
 .../fonts/open-iconic/png/medical-cross-6x.png     |  Bin 198 -> 0 bytes
 .../fonts/open-iconic/png/medical-cross-8x.png     |  Bin 270 -> 0 bytes
 .../static/fonts/open-iconic/png/medical-cross.png |  Bin 133 -> 0 bytes
 assets/static/fonts/open-iconic/png/menu-2x.png    |  Bin 143 -> 0 bytes
 assets/static/fonts/open-iconic/png/menu-3x.png    |  Bin 155 -> 0 bytes
 assets/static/fonts/open-iconic/png/menu-4x.png    |  Bin 158 -> 0 bytes
 assets/static/fonts/open-iconic/png/menu-6x.png    |  Bin 178 -> 0 bytes
 assets/static/fonts/open-iconic/png/menu-8x.png    |  Bin 203 -> 0 bytes
 assets/static/fonts/open-iconic/png/menu.png       |  Bin 122 -> 0 bytes
 .../static/fonts/open-iconic/png/microphone-2x.png |  Bin 319 -> 0 bytes
 .../static/fonts/open-iconic/png/microphone-3x.png |  Bin 446 -> 0 bytes
 .../static/fonts/open-iconic/png/microphone-4x.png |  Bin 563 -> 0 bytes
 .../static/fonts/open-iconic/png/microphone-6x.png |  Bin 800 -> 0 bytes
 .../static/fonts/open-iconic/png/microphone-8x.png |  Bin 1050 -> 0 bytes
 assets/static/fonts/open-iconic/png/microphone.png |  Bin 197 -> 0 bytes
 assets/static/fonts/open-iconic/png/minus-2x.png   |  Bin 125 -> 0 bytes
 assets/static/fonts/open-iconic/png/minus-3x.png   |  Bin 133 -> 0 bytes
 assets/static/fonts/open-iconic/png/minus-4x.png   |  Bin 134 -> 0 bytes
 assets/static/fonts/open-iconic/png/minus-6x.png   |  Bin 148 -> 0 bytes
 assets/static/fonts/open-iconic/png/minus-8x.png   |  Bin 170 -> 0 bytes
 assets/static/fonts/open-iconic/png/minus.png      |  Bin 119 -> 0 bytes
 assets/static/fonts/open-iconic/png/monitor-2x.png |  Bin 190 -> 0 bytes
 assets/static/fonts/open-iconic/png/monitor-3x.png |  Bin 231 -> 0 bytes
 assets/static/fonts/open-iconic/png/monitor-4x.png |  Bin 256 -> 0 bytes
 assets/static/fonts/open-iconic/png/monitor-6x.png |  Bin 353 -> 0 bytes
 assets/static/fonts/open-iconic/png/monitor-8x.png |  Bin 471 -> 0 bytes
 assets/static/fonts/open-iconic/png/monitor.png    |  Bin 155 -> 0 bytes
 assets/static/fonts/open-iconic/png/moon-2x.png    |  Bin 308 -> 0 bytes
 assets/static/fonts/open-iconic/png/moon-3x.png    |  Bin 412 -> 0 bytes
 assets/static/fonts/open-iconic/png/moon-4x.png    |  Bin 511 -> 0 bytes
 assets/static/fonts/open-iconic/png/moon-6x.png    |  Bin 730 -> 0 bytes
 assets/static/fonts/open-iconic/png/moon-8x.png    |  Bin 992 -> 0 bytes
 assets/static/fonts/open-iconic/png/moon.png       |  Bin 201 -> 0 bytes
 assets/static/fonts/open-iconic/png/move-2x.png    |  Bin 188 -> 0 bytes
 assets/static/fonts/open-iconic/png/move-3x.png    |  Bin 297 -> 0 bytes
 assets/static/fonts/open-iconic/png/move-4x.png    |  Bin 264 -> 0 bytes
 assets/static/fonts/open-iconic/png/move-6x.png    |  Bin 361 -> 0 bytes
 assets/static/fonts/open-iconic/png/move-8x.png    |  Bin 459 -> 0 bytes
 assets/static/fonts/open-iconic/png/move.png       |  Bin 160 -> 0 bytes
 .../fonts/open-iconic/png/musical-note-2x.png      |  Bin 258 -> 0 bytes
 .../fonts/open-iconic/png/musical-note-3x.png      |  Bin 342 -> 0 bytes
 .../fonts/open-iconic/png/musical-note-4x.png      |  Bin 423 -> 0 bytes
 .../fonts/open-iconic/png/musical-note-6x.png      |  Bin 578 -> 0 bytes
 .../fonts/open-iconic/png/musical-note-8x.png      |  Bin 787 -> 0 bytes
 .../static/fonts/open-iconic/png/musical-note.png  |  Bin 175 -> 0 bytes
 .../static/fonts/open-iconic/png/paperclip-2x.png  |  Bin 398 -> 0 bytes
 .../static/fonts/open-iconic/png/paperclip-3x.png  |  Bin 591 -> 0 bytes
 .../static/fonts/open-iconic/png/paperclip-4x.png  |  Bin 730 -> 0 bytes
 .../static/fonts/open-iconic/png/paperclip-6x.png  |  Bin 1155 -> 0 bytes
 .../static/fonts/open-iconic/png/paperclip-8x.png  |  Bin 1491 -> 0 bytes
 assets/static/fonts/open-iconic/png/paperclip.png  |  Bin 214 -> 0 bytes
 assets/static/fonts/open-iconic/png/pencil-2x.png  |  Bin 200 -> 0 bytes
 assets/static/fonts/open-iconic/png/pencil-3x.png  |  Bin 229 -> 0 bytes
 assets/static/fonts/open-iconic/png/pencil-4x.png  |  Bin 266 -> 0 bytes
 assets/static/fonts/open-iconic/png/pencil-6x.png  |  Bin 355 -> 0 bytes
 assets/static/fonts/open-iconic/png/pencil-8x.png  |  Bin 439 -> 0 bytes
 assets/static/fonts/open-iconic/png/pencil.png     |  Bin 146 -> 0 bytes
 assets/static/fonts/open-iconic/png/people-2x.png  |  Bin 327 -> 0 bytes
 assets/static/fonts/open-iconic/png/people-3x.png  |  Bin 455 -> 0 bytes
 assets/static/fonts/open-iconic/png/people-4x.png  |  Bin 604 -> 0 bytes
 assets/static/fonts/open-iconic/png/people-6x.png  |  Bin 876 -> 0 bytes
 assets/static/fonts/open-iconic/png/people-8x.png  |  Bin 1220 -> 0 bytes
 assets/static/fonts/open-iconic/png/people.png     |  Bin 201 -> 0 bytes
 assets/static/fonts/open-iconic/png/person-2x.png  |  Bin 282 -> 0 bytes
 assets/static/fonts/open-iconic/png/person-3x.png  |  Bin 385 -> 0 bytes
 assets/static/fonts/open-iconic/png/person-4x.png  |  Bin 490 -> 0 bytes
 assets/static/fonts/open-iconic/png/person-6x.png  |  Bin 689 -> 0 bytes
 assets/static/fonts/open-iconic/png/person-8x.png  |  Bin 952 -> 0 bytes
 assets/static/fonts/open-iconic/png/person.png     |  Bin 187 -> 0 bytes
 assets/static/fonts/open-iconic/png/phone-2x.png   |  Bin 181 -> 0 bytes
 assets/static/fonts/open-iconic/png/phone-3x.png   |  Bin 224 -> 0 bytes
 assets/static/fonts/open-iconic/png/phone-4x.png   |  Bin 257 -> 0 bytes
 assets/static/fonts/open-iconic/png/phone-6x.png   |  Bin 329 -> 0 bytes
 assets/static/fonts/open-iconic/png/phone-8x.png   |  Bin 452 -> 0 bytes
 assets/static/fonts/open-iconic/png/phone.png      |  Bin 146 -> 0 bytes
 .../static/fonts/open-iconic/png/pie-chart-2x.png  |  Bin 316 -> 0 bytes
 .../static/fonts/open-iconic/png/pie-chart-3x.png  |  Bin 431 -> 0 bytes
 .../static/fonts/open-iconic/png/pie-chart-4x.png  |  Bin 547 -> 0 bytes
 .../static/fonts/open-iconic/png/pie-chart-6x.png  |  Bin 755 -> 0 bytes
 .../static/fonts/open-iconic/png/pie-chart-8x.png  |  Bin 1056 -> 0 bytes
 assets/static/fonts/open-iconic/png/pie-chart.png  |  Bin 214 -> 0 bytes
 assets/static/fonts/open-iconic/png/pin-2x.png     |  Bin 202 -> 0 bytes
 assets/static/fonts/open-iconic/png/pin-3x.png     |  Bin 254 -> 0 bytes
 assets/static/fonts/open-iconic/png/pin-4x.png     |  Bin 309 -> 0 bytes
 assets/static/fonts/open-iconic/png/pin-6x.png     |  Bin 417 -> 0 bytes
 assets/static/fonts/open-iconic/png/pin-8x.png     |  Bin 555 -> 0 bytes
 assets/static/fonts/open-iconic/png/pin.png        |  Bin 161 -> 0 bytes
 .../fonts/open-iconic/png/play-circle-2x.png       |  Bin 286 -> 0 bytes
 .../fonts/open-iconic/png/play-circle-3x.png       |  Bin 398 -> 0 bytes
 .../fonts/open-iconic/png/play-circle-4x.png       |  Bin 513 -> 0 bytes
 .../fonts/open-iconic/png/play-circle-6x.png       |  Bin 731 -> 0 bytes
 .../fonts/open-iconic/png/play-circle-8x.png       |  Bin 988 -> 0 bytes
 .../static/fonts/open-iconic/png/play-circle.png   |  Bin 189 -> 0 bytes
 assets/static/fonts/open-iconic/png/plus-2x.png    |  Bin 139 -> 0 bytes
 assets/static/fonts/open-iconic/png/plus-3x.png    |  Bin 152 -> 0 bytes
 assets/static/fonts/open-iconic/png/plus-4x.png    |  Bin 163 -> 0 bytes
 assets/static/fonts/open-iconic/png/plus-6x.png    |  Bin 196 -> 0 bytes
 assets/static/fonts/open-iconic/png/plus-8x.png    |  Bin 270 -> 0 bytes
 assets/static/fonts/open-iconic/png/plus.png       |  Bin 126 -> 0 bytes
 .../fonts/open-iconic/png/power-standby-2x.png     |  Bin 322 -> 0 bytes
 .../fonts/open-iconic/png/power-standby-3x.png     |  Bin 464 -> 0 bytes
 .../fonts/open-iconic/png/power-standby-4x.png     |  Bin 613 -> 0 bytes
 .../fonts/open-iconic/png/power-standby-6x.png     |  Bin 910 -> 0 bytes
 .../fonts/open-iconic/png/power-standby-8x.png     |  Bin 1236 -> 0 bytes
 .../static/fonts/open-iconic/png/power-standby.png |  Bin 200 -> 0 bytes
 assets/static/fonts/open-iconic/png/print-2x.png   |  Bin 188 -> 0 bytes
 assets/static/fonts/open-iconic/png/print-3x.png   |  Bin 205 -> 0 bytes
 assets/static/fonts/open-iconic/png/print-4x.png   |  Bin 222 -> 0 bytes
 assets/static/fonts/open-iconic/png/print-6x.png   |  Bin 264 -> 0 bytes
 assets/static/fonts/open-iconic/png/print-8x.png   |  Bin 323 -> 0 bytes
 assets/static/fonts/open-iconic/png/print.png      |  Bin 154 -> 0 bytes
 assets/static/fonts/open-iconic/png/project-2x.png |  Bin 163 -> 0 bytes
 assets/static/fonts/open-iconic/png/project-3x.png |  Bin 170 -> 0 bytes
 assets/static/fonts/open-iconic/png/project-4x.png |  Bin 194 -> 0 bytes
 assets/static/fonts/open-iconic/png/project-6x.png |  Bin 226 -> 0 bytes
 assets/static/fonts/open-iconic/png/project-8x.png |  Bin 287 -> 0 bytes
 assets/static/fonts/open-iconic/png/project.png    |  Bin 144 -> 0 bytes
 assets/static/fonts/open-iconic/png/pulse-2x.png   |  Bin 351 -> 0 bytes
 assets/static/fonts/open-iconic/png/pulse-3x.png   |  Bin 443 -> 0 bytes
 assets/static/fonts/open-iconic/png/pulse-4x.png   |  Bin 585 -> 0 bytes
 assets/static/fonts/open-iconic/png/pulse-6x.png   |  Bin 871 -> 0 bytes
 assets/static/fonts/open-iconic/png/pulse-8x.png   |  Bin 1152 -> 0 bytes
 assets/static/fonts/open-iconic/png/pulse.png      |  Bin 207 -> 0 bytes
 .../fonts/open-iconic/png/puzzle-piece-2x.png      |  Bin 236 -> 0 bytes
 .../fonts/open-iconic/png/puzzle-piece-3x.png      |  Bin 295 -> 0 bytes
 .../fonts/open-iconic/png/puzzle-piece-4x.png      |  Bin 380 -> 0 bytes
 .../fonts/open-iconic/png/puzzle-piece-6x.png      |  Bin 537 -> 0 bytes
 .../fonts/open-iconic/png/puzzle-piece-8x.png      |  Bin 739 -> 0 bytes
 .../static/fonts/open-iconic/png/puzzle-piece.png  |  Bin 170 -> 0 bytes
 .../fonts/open-iconic/png/question-mark-2x.png     |  Bin 272 -> 0 bytes
 .../fonts/open-iconic/png/question-mark-3x.png     |  Bin 357 -> 0 bytes
 .../fonts/open-iconic/png/question-mark-4x.png     |  Bin 457 -> 0 bytes
 .../fonts/open-iconic/png/question-mark-6x.png     |  Bin 665 -> 0 bytes
 .../fonts/open-iconic/png/question-mark-8x.png     |  Bin 861 -> 0 bytes
 .../static/fonts/open-iconic/png/question-mark.png |  Bin 177 -> 0 bytes
 assets/static/fonts/open-iconic/png/rain-2x.png    |  Bin 309 -> 0 bytes
 assets/static/fonts/open-iconic/png/rain-3x.png    |  Bin 434 -> 0 bytes
 assets/static/fonts/open-iconic/png/rain-4x.png    |  Bin 551 -> 0 bytes
 assets/static/fonts/open-iconic/png/rain-6x.png    |  Bin 770 -> 0 bytes
 assets/static/fonts/open-iconic/png/rain-8x.png    |  Bin 1076 -> 0 bytes
 assets/static/fonts/open-iconic/png/rain.png       |  Bin 201 -> 0 bytes
 assets/static/fonts/open-iconic/png/random-2x.png  |  Bin 365 -> 0 bytes
 assets/static/fonts/open-iconic/png/random-3x.png  |  Bin 496 -> 0 bytes
 assets/static/fonts/open-iconic/png/random-4x.png  |  Bin 635 -> 0 bytes
 assets/static/fonts/open-iconic/png/random-6x.png  |  Bin 875 -> 0 bytes
 assets/static/fonts/open-iconic/png/random-8x.png  |  Bin 1119 -> 0 bytes
 assets/static/fonts/open-iconic/png/random.png     |  Bin 215 -> 0 bytes
 assets/static/fonts/open-iconic/png/reload-2x.png  |  Bin 336 -> 0 bytes
 assets/static/fonts/open-iconic/png/reload-3x.png  |  Bin 477 -> 0 bytes
 assets/static/fonts/open-iconic/png/reload-4x.png  |  Bin 630 -> 0 bytes
 assets/static/fonts/open-iconic/png/reload-6x.png  |  Bin 891 -> 0 bytes
 assets/static/fonts/open-iconic/png/reload-8x.png  |  Bin 1208 -> 0 bytes
 assets/static/fonts/open-iconic/png/reload.png     |  Bin 209 -> 0 bytes
 .../fonts/open-iconic/png/resize-both-2x.png       |  Bin 218 -> 0 bytes
 .../fonts/open-iconic/png/resize-both-3x.png       |  Bin 247 -> 0 bytes
 .../fonts/open-iconic/png/resize-both-4x.png       |  Bin 296 -> 0 bytes
 .../fonts/open-iconic/png/resize-both-6x.png       |  Bin 416 -> 0 bytes
 .../fonts/open-iconic/png/resize-both-8x.png       |  Bin 541 -> 0 bytes
 .../static/fonts/open-iconic/png/resize-both.png   |  Bin 160 -> 0 bytes
 .../fonts/open-iconic/png/resize-height-2x.png     |  Bin 234 -> 0 bytes
 .../fonts/open-iconic/png/resize-height-3x.png     |  Bin 277 -> 0 bytes
 .../fonts/open-iconic/png/resize-height-4x.png     |  Bin 330 -> 0 bytes
 .../fonts/open-iconic/png/resize-height-6x.png     |  Bin 426 -> 0 bytes
 .../fonts/open-iconic/png/resize-height-8x.png     |  Bin 536 -> 0 bytes
 .../static/fonts/open-iconic/png/resize-height.png |  Bin 166 -> 0 bytes
 .../fonts/open-iconic/png/resize-width-2x.png      |  Bin 228 -> 0 bytes
 .../fonts/open-iconic/png/resize-width-3x.png      |  Bin 271 -> 0 bytes
 .../fonts/open-iconic/png/resize-width-4x.png      |  Bin 315 -> 0 bytes
 .../fonts/open-iconic/png/resize-width-6x.png      |  Bin 406 -> 0 bytes
 .../fonts/open-iconic/png/resize-width-8x.png      |  Bin 510 -> 0 bytes
 .../static/fonts/open-iconic/png/resize-width.png  |  Bin 160 -> 0 bytes
 assets/static/fonts/open-iconic/png/rss-2x.png     |  Bin 393 -> 0 bytes
 assets/static/fonts/open-iconic/png/rss-3x.png     |  Bin 560 -> 0 bytes
 assets/static/fonts/open-iconic/png/rss-4x.png     |  Bin 745 -> 0 bytes
 assets/static/fonts/open-iconic/png/rss-6x.png     |  Bin 1104 -> 0 bytes
 assets/static/fonts/open-iconic/png/rss-8x.png     |  Bin 1519 -> 0 bytes
 assets/static/fonts/open-iconic/png/rss-alt-2x.png |  Bin 345 -> 0 bytes
 assets/static/fonts/open-iconic/png/rss-alt-3x.png |  Bin 485 -> 0 bytes
 assets/static/fonts/open-iconic/png/rss-alt-4x.png |  Bin 632 -> 0 bytes
 assets/static/fonts/open-iconic/png/rss-alt-6x.png |  Bin 948 -> 0 bytes
 assets/static/fonts/open-iconic/png/rss-alt-8x.png |  Bin 1279 -> 0 bytes
 assets/static/fonts/open-iconic/png/rss-alt.png    |  Bin 217 -> 0 bytes
 assets/static/fonts/open-iconic/png/rss.png        |  Bin 224 -> 0 bytes
 assets/static/fonts/open-iconic/png/script-2x.png  |  Bin 210 -> 0 bytes
 assets/static/fonts/open-iconic/png/script-3x.png  |  Bin 268 -> 0 bytes
 assets/static/fonts/open-iconic/png/script-4x.png  |  Bin 305 -> 0 bytes
 assets/static/fonts/open-iconic/png/script-6x.png  |  Bin 442 -> 0 bytes
 assets/static/fonts/open-iconic/png/script-8x.png  |  Bin 577 -> 0 bytes
 assets/static/fonts/open-iconic/png/script.png     |  Bin 160 -> 0 bytes
 assets/static/fonts/open-iconic/png/share-2x.png   |  Bin 278 -> 0 bytes
 assets/static/fonts/open-iconic/png/share-3x.png   |  Bin 371 -> 0 bytes
 assets/static/fonts/open-iconic/png/share-4x.png   |  Bin 468 -> 0 bytes
 assets/static/fonts/open-iconic/png/share-6x.png   |  Bin 711 -> 0 bytes
 assets/static/fonts/open-iconic/png/share-8x.png   |  Bin 907 -> 0 bytes
 .../fonts/open-iconic/png/share-boxed-2x.png       |  Bin 256 -> 0 bytes
 .../fonts/open-iconic/png/share-boxed-3x.png       |  Bin 338 -> 0 bytes
 .../fonts/open-iconic/png/share-boxed-4x.png       |  Bin 404 -> 0 bytes
 .../fonts/open-iconic/png/share-boxed-6x.png       |  Bin 553 -> 0 bytes
 .../fonts/open-iconic/png/share-boxed-8x.png       |  Bin 742 -> 0 bytes
 .../static/fonts/open-iconic/png/share-boxed.png   |  Bin 179 -> 0 bytes
 assets/static/fonts/open-iconic/png/share.png      |  Bin 188 -> 0 bytes
 assets/static/fonts/open-iconic/png/shield-2x.png  |  Bin 341 -> 0 bytes
 assets/static/fonts/open-iconic/png/shield-3x.png  |  Bin 465 -> 0 bytes
 assets/static/fonts/open-iconic/png/shield-4x.png  |  Bin 586 -> 0 bytes
 assets/static/fonts/open-iconic/png/shield-6x.png  |  Bin 876 -> 0 bytes
 assets/static/fonts/open-iconic/png/shield-8x.png  |  Bin 1191 -> 0 bytes
 assets/static/fonts/open-iconic/png/shield.png     |  Bin 206 -> 0 bytes
 assets/static/fonts/open-iconic/png/signal-2x.png  |  Bin 147 -> 0 bytes
 assets/static/fonts/open-iconic/png/signal-3x.png  |  Bin 165 -> 0 bytes
 assets/static/fonts/open-iconic/png/signal-4x.png  |  Bin 174 -> 0 bytes
 assets/static/fonts/open-iconic/png/signal-6x.png  |  Bin 206 -> 0 bytes
 assets/static/fonts/open-iconic/png/signal-8x.png  |  Bin 276 -> 0 bytes
 assets/static/fonts/open-iconic/png/signal.png     |  Bin 133 -> 0 bytes
 .../static/fonts/open-iconic/png/signpost-2x.png   |  Bin 184 -> 0 bytes
 .../static/fonts/open-iconic/png/signpost-3x.png   |  Bin 205 -> 0 bytes
 .../static/fonts/open-iconic/png/signpost-4x.png   |  Bin 227 -> 0 bytes
 .../static/fonts/open-iconic/png/signpost-6x.png   |  Bin 293 -> 0 bytes
 .../static/fonts/open-iconic/png/signpost-8x.png   |  Bin 370 -> 0 bytes
 assets/static/fonts/open-iconic/png/signpost.png   |  Bin 138 -> 0 bytes
 .../fonts/open-iconic/png/sort-ascending-2x.png    |  Bin 204 -> 0 bytes
 .../fonts/open-iconic/png/sort-ascending-3x.png    |  Bin 232 -> 0 bytes
 .../fonts/open-iconic/png/sort-ascending-4x.png    |  Bin 256 -> 0 bytes
 .../fonts/open-iconic/png/sort-ascending-6x.png    |  Bin 317 -> 0 bytes
 .../fonts/open-iconic/png/sort-ascending-8x.png    |  Bin 409 -> 0 bytes
 .../fonts/open-iconic/png/sort-ascending.png       |  Bin 147 -> 0 bytes
 .../fonts/open-iconic/png/sort-descending-2x.png   |  Bin 199 -> 0 bytes
 .../fonts/open-iconic/png/sort-descending-3x.png   |  Bin 231 -> 0 bytes
 .../fonts/open-iconic/png/sort-descending-4x.png   |  Bin 254 -> 0 bytes
 .../fonts/open-iconic/png/sort-descending-6x.png   |  Bin 314 -> 0 bytes
 .../fonts/open-iconic/png/sort-descending-8x.png   |  Bin 406 -> 0 bytes
 .../fonts/open-iconic/png/sort-descending.png      |  Bin 150 -> 0 bytes
 .../fonts/open-iconic/png/spreadsheet-2x.png       |  Bin 182 -> 0 bytes
 .../fonts/open-iconic/png/spreadsheet-3x.png       |  Bin 200 -> 0 bytes
 .../fonts/open-iconic/png/spreadsheet-4x.png       |  Bin 224 -> 0 bytes
 .../fonts/open-iconic/png/spreadsheet-6x.png       |  Bin 309 -> 0 bytes
 .../fonts/open-iconic/png/spreadsheet-8x.png       |  Bin 404 -> 0 bytes
 .../static/fonts/open-iconic/png/spreadsheet.png   |  Bin 141 -> 0 bytes
 assets/static/fonts/open-iconic/png/star-2x.png    |  Bin 254 -> 0 bytes
 assets/static/fonts/open-iconic/png/star-3x.png    |  Bin 324 -> 0 bytes
 assets/static/fonts/open-iconic/png/star-4x.png    |  Bin 379 -> 0 bytes
 assets/static/fonts/open-iconic/png/star-6x.png    |  Bin 501 -> 0 bytes
 assets/static/fonts/open-iconic/png/star-8x.png    |  Bin 634 -> 0 bytes
 assets/static/fonts/open-iconic/png/star.png       |  Bin 178 -> 0 bytes
 assets/static/fonts/open-iconic/png/sun-2x.png     |  Bin 258 -> 0 bytes
 assets/static/fonts/open-iconic/png/sun-3x.png     |  Bin 356 -> 0 bytes
 assets/static/fonts/open-iconic/png/sun-4x.png     |  Bin 421 -> 0 bytes
 assets/static/fonts/open-iconic/png/sun-6x.png     |  Bin 619 -> 0 bytes
 assets/static/fonts/open-iconic/png/sun-8x.png     |  Bin 860 -> 0 bytes
 assets/static/fonts/open-iconic/png/sun.png        |  Bin 175 -> 0 bytes
 assets/static/fonts/open-iconic/png/tablet-2x.png  |  Bin 186 -> 0 bytes
 assets/static/fonts/open-iconic/png/tablet-3x.png  |  Bin 237 -> 0 bytes
 assets/static/fonts/open-iconic/png/tablet-4x.png  |  Bin 268 -> 0 bytes
 assets/static/fonts/open-iconic/png/tablet-6x.png  |  Bin 349 -> 0 bytes
 assets/static/fonts/open-iconic/png/tablet-8x.png  |  Bin 487 -> 0 bytes
 assets/static/fonts/open-iconic/png/tablet.png     |  Bin 155 -> 0 bytes
 assets/static/fonts/open-iconic/png/tag-2x.png     |  Bin 219 -> 0 bytes
 assets/static/fonts/open-iconic/png/tag-3x.png     |  Bin 267 -> 0 bytes
 assets/static/fonts/open-iconic/png/tag-4x.png     |  Bin 322 -> 0 bytes
 assets/static/fonts/open-iconic/png/tag-6x.png     |  Bin 467 -> 0 bytes
 assets/static/fonts/open-iconic/png/tag-8x.png     |  Bin 593 -> 0 bytes
 assets/static/fonts/open-iconic/png/tag.png        |  Bin 168 -> 0 bytes
 assets/static/fonts/open-iconic/png/tags-2x.png    |  Bin 204 -> 0 bytes
 assets/static/fonts/open-iconic/png/tags-3x.png    |  Bin 236 -> 0 bytes
 assets/static/fonts/open-iconic/png/tags-4x.png    |  Bin 280 -> 0 bytes
 assets/static/fonts/open-iconic/png/tags-6x.png    |  Bin 358 -> 0 bytes
 assets/static/fonts/open-iconic/png/tags-8x.png    |  Bin 500 -> 0 bytes
 assets/static/fonts/open-iconic/png/tags.png       |  Bin 187 -> 0 bytes
 assets/static/fonts/open-iconic/png/target-2x.png  |  Bin 414 -> 0 bytes
 assets/static/fonts/open-iconic/png/target-3x.png  |  Bin 612 -> 0 bytes
 assets/static/fonts/open-iconic/png/target-4x.png  |  Bin 833 -> 0 bytes
 assets/static/fonts/open-iconic/png/target-6x.png  |  Bin 1253 -> 0 bytes
 assets/static/fonts/open-iconic/png/target-8x.png  |  Bin 1694 -> 0 bytes
 assets/static/fonts/open-iconic/png/target.png     |  Bin 216 -> 0 bytes
 assets/static/fonts/open-iconic/png/task-2x.png    |  Bin 210 -> 0 bytes
 assets/static/fonts/open-iconic/png/task-3x.png    |  Bin 257 -> 0 bytes
 assets/static/fonts/open-iconic/png/task-4x.png    |  Bin 295 -> 0 bytes
 assets/static/fonts/open-iconic/png/task-6x.png    |  Bin 387 -> 0 bytes
 assets/static/fonts/open-iconic/png/task-8x.png    |  Bin 551 -> 0 bytes
 assets/static/fonts/open-iconic/png/task.png       |  Bin 174 -> 0 bytes
 .../static/fonts/open-iconic/png/terminal-2x.png   |  Bin 218 -> 0 bytes
 .../static/fonts/open-iconic/png/terminal-3x.png   |  Bin 243 -> 0 bytes
 .../static/fonts/open-iconic/png/terminal-4x.png   |  Bin 278 -> 0 bytes
 .../static/fonts/open-iconic/png/terminal-6x.png   |  Bin 369 -> 0 bytes
 .../static/fonts/open-iconic/png/terminal-8x.png   |  Bin 462 -> 0 bytes
 assets/static/fonts/open-iconic/png/terminal.png   |  Bin 173 -> 0 bytes
 assets/static/fonts/open-iconic/png/text-2x.png    |  Bin 178 -> 0 bytes
 assets/static/fonts/open-iconic/png/text-3x.png    |  Bin 233 -> 0 bytes
 assets/static/fonts/open-iconic/png/text-4x.png    |  Bin 247 -> 0 bytes
 assets/static/fonts/open-iconic/png/text-6x.png    |  Bin 336 -> 0 bytes
 assets/static/fonts/open-iconic/png/text-8x.png    |  Bin 449 -> 0 bytes
 assets/static/fonts/open-iconic/png/text.png       |  Bin 155 -> 0 bytes
 .../static/fonts/open-iconic/png/thumb-down-2x.png |  Bin 238 -> 0 bytes
 .../static/fonts/open-iconic/png/thumb-down-3x.png |  Bin 301 -> 0 bytes
 .../static/fonts/open-iconic/png/thumb-down-4x.png |  Bin 387 -> 0 bytes
 .../static/fonts/open-iconic/png/thumb-down-6x.png |  Bin 530 -> 0 bytes
 .../static/fonts/open-iconic/png/thumb-down-8x.png |  Bin 722 -> 0 bytes
 assets/static/fonts/open-iconic/png/thumb-down.png |  Bin 171 -> 0 bytes
 .../static/fonts/open-iconic/png/thumb-up-2x.png   |  Bin 233 -> 0 bytes
 .../static/fonts/open-iconic/png/thumb-up-3x.png   |  Bin 303 -> 0 bytes
 .../static/fonts/open-iconic/png/thumb-up-4x.png   |  Bin 363 -> 0 bytes
 .../static/fonts/open-iconic/png/thumb-up-6x.png   |  Bin 534 -> 0 bytes
 .../static/fonts/open-iconic/png/thumb-up-8x.png   |  Bin 690 -> 0 bytes
 assets/static/fonts/open-iconic/png/thumb-up.png   |  Bin 157 -> 0 bytes
 assets/static/fonts/open-iconic/png/timer-2x.png   |  Bin 380 -> 0 bytes
 assets/static/fonts/open-iconic/png/timer-3x.png   |  Bin 549 -> 0 bytes
 assets/static/fonts/open-iconic/png/timer-4x.png   |  Bin 720 -> 0 bytes
 assets/static/fonts/open-iconic/png/timer-6x.png   |  Bin 1077 -> 0 bytes
 assets/static/fonts/open-iconic/png/timer-8x.png   |  Bin 1476 -> 0 bytes
 assets/static/fonts/open-iconic/png/timer.png      |  Bin 210 -> 0 bytes
 .../static/fonts/open-iconic/png/transfer-2x.png   |  Bin 188 -> 0 bytes
 .../static/fonts/open-iconic/png/transfer-3x.png   |  Bin 221 -> 0 bytes
 .../static/fonts/open-iconic/png/transfer-4x.png   |  Bin 259 -> 0 bytes
 .../static/fonts/open-iconic/png/transfer-6x.png   |  Bin 332 -> 0 bytes
 .../static/fonts/open-iconic/png/transfer-8x.png   |  Bin 395 -> 0 bytes
 assets/static/fonts/open-iconic/png/transfer.png   |  Bin 140 -> 0 bytes
 assets/static/fonts/open-iconic/png/trash-2x.png   |  Bin 204 -> 0 bytes
 assets/static/fonts/open-iconic/png/trash-3x.png   |  Bin 232 -> 0 bytes
 assets/static/fonts/open-iconic/png/trash-4x.png   |  Bin 283 -> 0 bytes
 assets/static/fonts/open-iconic/png/trash-6x.png   |  Bin 373 -> 0 bytes
 assets/static/fonts/open-iconic/png/trash-8x.png   |  Bin 527 -> 0 bytes
 assets/static/fonts/open-iconic/png/trash.png      |  Bin 146 -> 0 bytes
 .../static/fonts/open-iconic/png/underline-2x.png  |  Bin 209 -> 0 bytes
 .../static/fonts/open-iconic/png/underline-3x.png  |  Bin 257 -> 0 bytes
 .../static/fonts/open-iconic/png/underline-4x.png  |  Bin 310 -> 0 bytes
 .../static/fonts/open-iconic/png/underline-6x.png  |  Bin 432 -> 0 bytes
 .../static/fonts/open-iconic/png/underline-8x.png  |  Bin 572 -> 0 bytes
 assets/static/fonts/open-iconic/png/underline.png  |  Bin 166 -> 0 bytes
 .../open-iconic/png/vertical-align-bottom-2x.png   |  Bin 192 -> 0 bytes
 .../open-iconic/png/vertical-align-bottom-3x.png   |  Bin 204 -> 0 bytes
 .../open-iconic/png/vertical-align-bottom-4x.png   |  Bin 218 -> 0 bytes
 .../open-iconic/png/vertical-align-bottom-6x.png   |  Bin 257 -> 0 bytes
 .../open-iconic/png/vertical-align-bottom-8x.png   |  Bin 315 -> 0 bytes
 .../open-iconic/png/vertical-align-bottom.png      |  Bin 160 -> 0 bytes
 .../open-iconic/png/vertical-align-center-2x.png   |  Bin 191 -> 0 bytes
 .../open-iconic/png/vertical-align-center-3x.png   |  Bin 209 -> 0 bytes
 .../open-iconic/png/vertical-align-center-4x.png   |  Bin 230 -> 0 bytes
 .../open-iconic/png/vertical-align-center-6x.png   |  Bin 264 -> 0 bytes
 .../open-iconic/png/vertical-align-center-8x.png   |  Bin 303 -> 0 bytes
 .../open-iconic/png/vertical-align-center.png      |  Bin 149 -> 0 bytes
 .../open-iconic/png/vertical-align-top-2x.png      |  Bin 186 -> 0 bytes
 .../open-iconic/png/vertical-align-top-3x.png      |  Bin 203 -> 0 bytes
 .../open-iconic/png/vertical-align-top-4x.png      |  Bin 220 -> 0 bytes
 .../open-iconic/png/vertical-align-top-6x.png      |  Bin 254 -> 0 bytes
 .../open-iconic/png/vertical-align-top-8x.png      |  Bin 303 -> 0 bytes
 .../fonts/open-iconic/png/vertical-align-top.png   |  Bin 153 -> 0 bytes
 assets/static/fonts/open-iconic/png/video-2x.png   |  Bin 172 -> 0 bytes
 assets/static/fonts/open-iconic/png/video-3x.png   |  Bin 211 -> 0 bytes
 assets/static/fonts/open-iconic/png/video-4x.png   |  Bin 223 -> 0 bytes
 assets/static/fonts/open-iconic/png/video-6x.png   |  Bin 307 -> 0 bytes
 assets/static/fonts/open-iconic/png/video-8x.png   |  Bin 381 -> 0 bytes
 assets/static/fonts/open-iconic/png/video.png      |  Bin 144 -> 0 bytes
 .../fonts/open-iconic/png/volume-high-2x.png       |  Bin 284 -> 0 bytes
 .../fonts/open-iconic/png/volume-high-3x.png       |  Bin 367 -> 0 bytes
 .../fonts/open-iconic/png/volume-high-4x.png       |  Bin 477 -> 0 bytes
 .../fonts/open-iconic/png/volume-high-6x.png       |  Bin 682 -> 0 bytes
 .../fonts/open-iconic/png/volume-high-8x.png       |  Bin 948 -> 0 bytes
 .../static/fonts/open-iconic/png/volume-high.png   |  Bin 183 -> 0 bytes
 .../static/fonts/open-iconic/png/volume-low-2x.png |  Bin 209 -> 0 bytes
 .../static/fonts/open-iconic/png/volume-low-3x.png |  Bin 256 -> 0 bytes
 .../static/fonts/open-iconic/png/volume-low-4x.png |  Bin 307 -> 0 bytes
 .../static/fonts/open-iconic/png/volume-low-6x.png |  Bin 402 -> 0 bytes
 .../static/fonts/open-iconic/png/volume-low-8x.png |  Bin 519 -> 0 bytes
 assets/static/fonts/open-iconic/png/volume-low.png |  Bin 143 -> 0 bytes
 .../static/fonts/open-iconic/png/volume-off-2x.png |  Bin 167 -> 0 bytes
 .../static/fonts/open-iconic/png/volume-off-3x.png |  Bin 198 -> 0 bytes
 .../static/fonts/open-iconic/png/volume-off-4x.png |  Bin 227 -> 0 bytes
 .../static/fonts/open-iconic/png/volume-off-6x.png |  Bin 297 -> 0 bytes
 .../static/fonts/open-iconic/png/volume-off-8x.png |  Bin 375 -> 0 bytes
 assets/static/fonts/open-iconic/png/volume-off.png |  Bin 145 -> 0 bytes
 assets/static/fonts/open-iconic/png/warning-2x.png |  Bin 292 -> 0 bytes
 assets/static/fonts/open-iconic/png/warning-3x.png |  Bin 388 -> 0 bytes
 assets/static/fonts/open-iconic/png/warning-4x.png |  Bin 471 -> 0 bytes
 assets/static/fonts/open-iconic/png/warning-6x.png |  Bin 679 -> 0 bytes
 assets/static/fonts/open-iconic/png/warning-8x.png |  Bin 876 -> 0 bytes
 assets/static/fonts/open-iconic/png/warning.png    |  Bin 197 -> 0 bytes
 assets/static/fonts/open-iconic/png/wifi-2x.png    |  Bin 311 -> 0 bytes
 assets/static/fonts/open-iconic/png/wifi-3x.png    |  Bin 403 -> 0 bytes
 assets/static/fonts/open-iconic/png/wifi-4x.png    |  Bin 522 -> 0 bytes
 assets/static/fonts/open-iconic/png/wifi-6x.png    |  Bin 748 -> 0 bytes
 assets/static/fonts/open-iconic/png/wifi-8x.png    |  Bin 1008 -> 0 bytes
 assets/static/fonts/open-iconic/png/wifi.png       |  Bin 200 -> 0 bytes
 assets/static/fonts/open-iconic/png/wrench-2x.png  |  Bin 265 -> 0 bytes
 assets/static/fonts/open-iconic/png/wrench-3x.png  |  Bin 389 -> 0 bytes
 assets/static/fonts/open-iconic/png/wrench-4x.png  |  Bin 486 -> 0 bytes
 assets/static/fonts/open-iconic/png/wrench-6x.png  |  Bin 738 -> 0 bytes
 assets/static/fonts/open-iconic/png/wrench-8x.png  |  Bin 977 -> 0 bytes
 assets/static/fonts/open-iconic/png/wrench.png     |  Bin 196 -> 0 bytes
 assets/static/fonts/open-iconic/png/x-2x.png       |  Bin 315 -> 0 bytes
 assets/static/fonts/open-iconic/png/x-3x.png       |  Bin 401 -> 0 bytes
 assets/static/fonts/open-iconic/png/x-4x.png       |  Bin 524 -> 0 bytes
 assets/static/fonts/open-iconic/png/x-6x.png       |  Bin 706 -> 0 bytes
 assets/static/fonts/open-iconic/png/x-8x.png       |  Bin 929 -> 0 bytes
 assets/static/fonts/open-iconic/png/x.png          |  Bin 206 -> 0 bytes
 assets/static/fonts/open-iconic/png/yen-2x.png     |  Bin 236 -> 0 bytes
 assets/static/fonts/open-iconic/png/yen-3x.png     |  Bin 304 -> 0 bytes
 assets/static/fonts/open-iconic/png/yen-4x.png     |  Bin 361 -> 0 bytes
 assets/static/fonts/open-iconic/png/yen-6x.png     |  Bin 508 -> 0 bytes
 assets/static/fonts/open-iconic/png/yen-8x.png     |  Bin 670 -> 0 bytes
 assets/static/fonts/open-iconic/png/yen.png        |  Bin 166 -> 0 bytes
 assets/static/fonts/open-iconic/png/zoom-in-2x.png |  Bin 358 -> 0 bytes
 assets/static/fonts/open-iconic/png/zoom-in-3x.png |  Bin 507 -> 0 bytes
 assets/static/fonts/open-iconic/png/zoom-in-4x.png |  Bin 678 -> 0 bytes
 assets/static/fonts/open-iconic/png/zoom-in-6x.png |  Bin 1021 -> 0 bytes
 assets/static/fonts/open-iconic/png/zoom-in-8x.png |  Bin 1382 -> 0 bytes
 assets/static/fonts/open-iconic/png/zoom-in.png    |  Bin 208 -> 0 bytes
 .../static/fonts/open-iconic/png/zoom-out-2x.png   |  Bin 356 -> 0 bytes
 .../static/fonts/open-iconic/png/zoom-out-3x.png   |  Bin 501 -> 0 bytes
 .../static/fonts/open-iconic/png/zoom-out-4x.png   |  Bin 671 -> 0 bytes
 .../static/fonts/open-iconic/png/zoom-out-6x.png   |  Bin 1021 -> 0 bytes
 .../static/fonts/open-iconic/png/zoom-out-8x.png   |  Bin 1355 -> 0 bytes
 assets/static/fonts/open-iconic/png/zoom-out.png   |  Bin 205 -> 0 bytes
 .../fonts/open-iconic/sprite/open-iconic.html      |  929 ---
 .../fonts/open-iconic/sprite/open-iconic.min.svg   |    1 -
 .../fonts/open-iconic/sprite/open-iconic.svg       |  452 --
 assets/static/fonts/open-iconic/sprite/sprite.html |  926 ---
 .../static/fonts/open-iconic/sprite/sprite.min.svg |    1 -
 assets/static/fonts/open-iconic/sprite/sprite.svg  |  673 --
 .../static/fonts/open-iconic/svg/account-login.svg |    3 -
 .../fonts/open-iconic/svg/account-logout.svg       |    3 -
 .../static/fonts/open-iconic/svg/action-redo.svg   |    3 -
 .../static/fonts/open-iconic/svg/action-undo.svg   |    3 -
 .../static/fonts/open-iconic/svg/align-center.svg  |    3 -
 assets/static/fonts/open-iconic/svg/align-left.svg |    3 -
 .../static/fonts/open-iconic/svg/align-right.svg   |    3 -
 assets/static/fonts/open-iconic/svg/aperture.svg   |    4 -
 .../static/fonts/open-iconic/svg/arrow-bottom.svg  |    3 -
 .../fonts/open-iconic/svg/arrow-circle-bottom.svg  |    3 -
 .../fonts/open-iconic/svg/arrow-circle-left.svg    |    3 -
 .../fonts/open-iconic/svg/arrow-circle-right.svg   |    3 -
 .../fonts/open-iconic/svg/arrow-circle-top.svg     |    3 -
 assets/static/fonts/open-iconic/svg/arrow-left.svg |    3 -
 .../static/fonts/open-iconic/svg/arrow-right.svg   |    3 -
 .../fonts/open-iconic/svg/arrow-thick-bottom.svg   |    3 -
 .../fonts/open-iconic/svg/arrow-thick-left.svg     |    3 -
 .../fonts/open-iconic/svg/arrow-thick-right.svg    |    3 -
 .../fonts/open-iconic/svg/arrow-thick-top.svg      |    3 -
 assets/static/fonts/open-iconic/svg/arrow-top.svg  |    3 -
 .../fonts/open-iconic/svg/audio-spectrum.svg       |    3 -
 assets/static/fonts/open-iconic/svg/audio.svg      |    4 -
 assets/static/fonts/open-iconic/svg/badge.svg      |    3 -
 assets/static/fonts/open-iconic/svg/ban.svg        |    3 -
 assets/static/fonts/open-iconic/svg/bar-chart.svg  |    3 -
 assets/static/fonts/open-iconic/svg/basket.svg     |    4 -
 .../static/fonts/open-iconic/svg/battery-empty.svg |    3 -
 .../static/fonts/open-iconic/svg/battery-full.svg  |    3 -
 assets/static/fonts/open-iconic/svg/beaker.svg     |    4 -
 assets/static/fonts/open-iconic/svg/bell.svg       |    3 -
 assets/static/fonts/open-iconic/svg/bluetooth.svg  |    3 -
 assets/static/fonts/open-iconic/svg/bold.svg       |    3 -
 assets/static/fonts/open-iconic/svg/bolt.svg       |    3 -
 assets/static/fonts/open-iconic/svg/book.svg       |    3 -
 assets/static/fonts/open-iconic/svg/bookmark.svg   |    3 -
 assets/static/fonts/open-iconic/svg/box.svg        |    3 -
 assets/static/fonts/open-iconic/svg/briefcase.svg  |    4 -
 .../static/fonts/open-iconic/svg/british-pound.svg |    4 -
 assets/static/fonts/open-iconic/svg/browser.svg    |    4 -
 assets/static/fonts/open-iconic/svg/brush.svg      |    4 -
 assets/static/fonts/open-iconic/svg/bug.svg        |    4 -
 assets/static/fonts/open-iconic/svg/bullhorn.svg   |    4 -
 assets/static/fonts/open-iconic/svg/calculator.svg |    3 -
 assets/static/fonts/open-iconic/svg/calendar.svg   |    3 -
 assets/static/fonts/open-iconic/svg/camera-slr.svg |    4 -
 .../static/fonts/open-iconic/svg/caret-bottom.svg  |    3 -
 assets/static/fonts/open-iconic/svg/caret-left.svg |    3 -
 .../static/fonts/open-iconic/svg/caret-right.svg   |    3 -
 assets/static/fonts/open-iconic/svg/caret-top.svg  |    3 -
 assets/static/fonts/open-iconic/svg/cart.svg       |    4 -
 assets/static/fonts/open-iconic/svg/chat.svg       |    3 -
 assets/static/fonts/open-iconic/svg/check.svg      |    3 -
 .../fonts/open-iconic/svg/chevron-bottom.svg       |    3 -
 .../static/fonts/open-iconic/svg/chevron-left.svg  |    3 -
 .../static/fonts/open-iconic/svg/chevron-right.svg |    3 -
 .../static/fonts/open-iconic/svg/chevron-top.svg   |    3 -
 .../static/fonts/open-iconic/svg/circle-check.svg  |    3 -
 assets/static/fonts/open-iconic/svg/circle-x.svg   |    3 -
 assets/static/fonts/open-iconic/svg/clipboard.svg  |    3 -
 assets/static/fonts/open-iconic/svg/clock.svg      |    3 -
 .../fonts/open-iconic/svg/cloud-download.svg       |    4 -
 .../static/fonts/open-iconic/svg/cloud-upload.svg  |    3 -
 assets/static/fonts/open-iconic/svg/cloud.svg      |    3 -
 assets/static/fonts/open-iconic/svg/cloudy.svg     |    4 -
 assets/static/fonts/open-iconic/svg/code.svg       |    3 -
 assets/static/fonts/open-iconic/svg/cog.svg        |    4 -
 .../static/fonts/open-iconic/svg/collapse-down.svg |    3 -
 .../static/fonts/open-iconic/svg/collapse-left.svg |    3 -
 .../fonts/open-iconic/svg/collapse-right.svg       |    3 -
 .../static/fonts/open-iconic/svg/collapse-up.svg   |    3 -
 assets/static/fonts/open-iconic/svg/command.svg    |    4 -
 .../fonts/open-iconic/svg/comment-square.svg       |    3 -
 assets/static/fonts/open-iconic/svg/compass.svg    |    3 -
 assets/static/fonts/open-iconic/svg/contrast.svg   |    3 -
 .../static/fonts/open-iconic/svg/copywriting.svg   |    3 -
 .../static/fonts/open-iconic/svg/credit-card.svg   |    3 -
 assets/static/fonts/open-iconic/svg/crop.svg       |    3 -
 assets/static/fonts/open-iconic/svg/dashboard.svg  |    4 -
 .../open-iconic/svg/data-transfer-download.svg     |    3 -
 .../fonts/open-iconic/svg/data-transfer-upload.svg |    3 -
 assets/static/fonts/open-iconic/svg/delete.svg     |    3 -
 assets/static/fonts/open-iconic/svg/dial.svg       |    3 -
 assets/static/fonts/open-iconic/svg/document.svg   |    3 -
 assets/static/fonts/open-iconic/svg/dollar.svg     |    4 -
 .../open-iconic/svg/double-quote-sans-left.svg     |    3 -
 .../open-iconic/svg/double-quote-sans-right.svg    |    3 -
 .../open-iconic/svg/double-quote-serif-left.svg    |    3 -
 .../open-iconic/svg/double-quote-serif-right.svg   |    3 -
 assets/static/fonts/open-iconic/svg/droplet.svg    |    3 -
 assets/static/fonts/open-iconic/svg/eject.svg      |    3 -
 assets/static/fonts/open-iconic/svg/elevator.svg   |    3 -
 assets/static/fonts/open-iconic/svg/ellipses.svg   |    3 -
 .../fonts/open-iconic/svg/envelope-closed.svg      |    3 -
 .../static/fonts/open-iconic/svg/envelope-open.svg |    3 -
 assets/static/fonts/open-iconic/svg/euro.svg       |    4 -
 assets/static/fonts/open-iconic/svg/excerpt.svg    |    3 -
 .../static/fonts/open-iconic/svg/expand-down.svg   |    3 -
 .../static/fonts/open-iconic/svg/expand-left.svg   |    3 -
 .../static/fonts/open-iconic/svg/expand-right.svg  |    3 -
 assets/static/fonts/open-iconic/svg/expand-up.svg  |    3 -
 .../static/fonts/open-iconic/svg/external-link.svg |    3 -
 assets/static/fonts/open-iconic/svg/eye.svg        |    4 -
 assets/static/fonts/open-iconic/svg/eyedropper.svg |    4 -
 assets/static/fonts/open-iconic/svg/file.svg       |    3 -
 assets/static/fonts/open-iconic/svg/fire.svg       |    3 -
 assets/static/fonts/open-iconic/svg/flag.svg       |    3 -
 assets/static/fonts/open-iconic/svg/flash.svg      |    3 -
 assets/static/fonts/open-iconic/svg/folder.svg     |    3 -
 assets/static/fonts/open-iconic/svg/fork.svg       |    4 -
 .../fonts/open-iconic/svg/fullscreen-enter.svg     |    3 -
 .../fonts/open-iconic/svg/fullscreen-exit.svg      |    3 -
 assets/static/fonts/open-iconic/svg/globe.svg      |    4 -
 assets/static/fonts/open-iconic/svg/graph.svg      |    3 -
 .../static/fonts/open-iconic/svg/grid-four-up.svg  |    4 -
 .../static/fonts/open-iconic/svg/grid-three-up.svg |    3 -
 .../static/fonts/open-iconic/svg/grid-two-up.svg   |    3 -
 assets/static/fonts/open-iconic/svg/hard-drive.svg |    4 -
 assets/static/fonts/open-iconic/svg/header.svg     |    3 -
 assets/static/fonts/open-iconic/svg/headphones.svg |    3 -
 assets/static/fonts/open-iconic/svg/heart.svg      |    4 -
 assets/static/fonts/open-iconic/svg/home.svg       |    3 -
 assets/static/fonts/open-iconic/svg/image.svg      |    3 -
 assets/static/fonts/open-iconic/svg/inbox.svg      |    3 -
 assets/static/fonts/open-iconic/svg/infinity.svg   |    4 -
 assets/static/fonts/open-iconic/svg/info.svg       |    4 -
 assets/static/fonts/open-iconic/svg/italic.svg     |    3 -
 .../fonts/open-iconic/svg/justify-center.svg       |    3 -
 .../static/fonts/open-iconic/svg/justify-left.svg  |    3 -
 .../static/fonts/open-iconic/svg/justify-right.svg |    3 -
 assets/static/fonts/open-iconic/svg/key.svg        |    3 -
 assets/static/fonts/open-iconic/svg/laptop.svg     |    3 -
 assets/static/fonts/open-iconic/svg/layers.svg     |    3 -
 assets/static/fonts/open-iconic/svg/lightbulb.svg  |    4 -
 .../static/fonts/open-iconic/svg/link-broken.svg   |    4 -
 .../static/fonts/open-iconic/svg/link-intact.svg   |    4 -
 assets/static/fonts/open-iconic/svg/list-rich.svg  |    3 -
 assets/static/fonts/open-iconic/svg/list.svg       |    4 -
 assets/static/fonts/open-iconic/svg/location.svg   |    3 -
 .../static/fonts/open-iconic/svg/lock-locked.svg   |    3 -
 .../static/fonts/open-iconic/svg/lock-unlocked.svg |    3 -
 .../static/fonts/open-iconic/svg/loop-circular.svg |    3 -
 .../static/fonts/open-iconic/svg/loop-square.svg   |    3 -
 assets/static/fonts/open-iconic/svg/loop.svg       |    3 -
 .../fonts/open-iconic/svg/magnifying-glass.svg     |    4 -
 assets/static/fonts/open-iconic/svg/map-marker.svg |    3 -
 assets/static/fonts/open-iconic/svg/map.svg        |    4 -
 .../static/fonts/open-iconic/svg/media-pause.svg   |    3 -
 assets/static/fonts/open-iconic/svg/media-play.svg |    3 -
 .../static/fonts/open-iconic/svg/media-record.svg  |    3 -
 .../fonts/open-iconic/svg/media-skip-backward.svg  |    3 -
 .../fonts/open-iconic/svg/media-skip-forward.svg   |    3 -
 .../fonts/open-iconic/svg/media-step-backward.svg  |    3 -
 .../fonts/open-iconic/svg/media-step-forward.svg   |    3 -
 assets/static/fonts/open-iconic/svg/media-stop.svg |    3 -
 .../static/fonts/open-iconic/svg/medical-cross.svg |    3 -
 assets/static/fonts/open-iconic/svg/menu.svg       |    3 -
 assets/static/fonts/open-iconic/svg/microphone.svg |    4 -
 assets/static/fonts/open-iconic/svg/minus.svg      |    3 -
 assets/static/fonts/open-iconic/svg/monitor.svg    |    3 -
 assets/static/fonts/open-iconic/svg/moon.svg       |    3 -
 assets/static/fonts/open-iconic/svg/move.svg       |    3 -
 .../static/fonts/open-iconic/svg/musical-note.svg  |    3 -
 assets/static/fonts/open-iconic/svg/paperclip.svg  |    4 -
 assets/static/fonts/open-iconic/svg/pencil.svg     |    3 -
 assets/static/fonts/open-iconic/svg/people.svg     |    4 -
 assets/static/fonts/open-iconic/svg/person.svg     |    3 -
 assets/static/fonts/open-iconic/svg/phone.svg      |    3 -
 assets/static/fonts/open-iconic/svg/pie-chart.svg  |    4 -
 assets/static/fonts/open-iconic/svg/pin.svg        |    3 -
 .../static/fonts/open-iconic/svg/play-circle.svg   |    3 -
 assets/static/fonts/open-iconic/svg/plus.svg       |    3 -
 .../static/fonts/open-iconic/svg/power-standby.svg |    4 -
 assets/static/fonts/open-iconic/svg/print.svg      |    3 -
 assets/static/fonts/open-iconic/svg/project.svg    |    3 -
 assets/static/fonts/open-iconic/svg/pulse.svg      |    3 -
 .../static/fonts/open-iconic/svg/puzzle-piece.svg  |    4 -
 .../static/fonts/open-iconic/svg/question-mark.svg |    4 -
 assets/static/fonts/open-iconic/svg/rain.svg       |    4 -
 assets/static/fonts/open-iconic/svg/random.svg     |    4 -
 assets/static/fonts/open-iconic/svg/reload.svg     |    3 -
 .../static/fonts/open-iconic/svg/resize-both.svg   |    3 -
 .../static/fonts/open-iconic/svg/resize-height.svg |    3 -
 .../static/fonts/open-iconic/svg/resize-width.svg  |    3 -
 assets/static/fonts/open-iconic/svg/rss-alt.svg    |    3 -
 assets/static/fonts/open-iconic/svg/rss.svg        |    3 -
 assets/static/fonts/open-iconic/svg/script.svg     |    3 -
 .../static/fonts/open-iconic/svg/share-boxed.svg   |    3 -
 assets/static/fonts/open-iconic/svg/share.svg      |    3 -
 assets/static/fonts/open-iconic/svg/shield.svg     |    4 -
 assets/static/fonts/open-iconic/svg/signal.svg     |    3 -
 assets/static/fonts/open-iconic/svg/signpost.svg   |    3 -
 .../fonts/open-iconic/svg/sort-ascending.svg       |    3 -
 .../fonts/open-iconic/svg/sort-descending.svg      |    3 -
 .../static/fonts/open-iconic/svg/spreadsheet.svg   |    3 -
 assets/static/fonts/open-iconic/svg/star.svg       |    3 -
 assets/static/fonts/open-iconic/svg/sun.svg        |    4 -
 assets/static/fonts/open-iconic/svg/tablet.svg     |    3 -
 assets/static/fonts/open-iconic/svg/tag.svg        |    3 -
 assets/static/fonts/open-iconic/svg/tags.svg       |    3 -
 assets/static/fonts/open-iconic/svg/target.svg     |    3 -
 assets/static/fonts/open-iconic/svg/task.svg       |    3 -
 assets/static/fonts/open-iconic/svg/terminal.svg   |    3 -
 assets/static/fonts/open-iconic/svg/text.svg       |    3 -
 assets/static/fonts/open-iconic/svg/thumb-down.svg |    3 -
 assets/static/fonts/open-iconic/svg/thumb-up.svg   |    4 -
 assets/static/fonts/open-iconic/svg/timer.svg      |    4 -
 assets/static/fonts/open-iconic/svg/transfer.svg   |    3 -
 assets/static/fonts/open-iconic/svg/trash.svg      |    3 -
 assets/static/fonts/open-iconic/svg/underline.svg  |    3 -
 .../open-iconic/svg/vertical-align-bottom.svg      |    4 -
 .../open-iconic/svg/vertical-align-center.svg      |    4 -
 .../fonts/open-iconic/svg/vertical-align-top.svg   |    4 -
 assets/static/fonts/open-iconic/svg/video.svg      |    3 -
 .../static/fonts/open-iconic/svg/volume-high.svg   |    4 -
 assets/static/fonts/open-iconic/svg/volume-low.svg |    3 -
 assets/static/fonts/open-iconic/svg/volume-off.svg |    3 -
 assets/static/fonts/open-iconic/svg/warning.svg    |    3 -
 assets/static/fonts/open-iconic/svg/wifi.svg       |    4 -
 assets/static/fonts/open-iconic/svg/wrench.svg     |    4 -
 assets/static/fonts/open-iconic/svg/x.svg          |    3 -
 assets/static/fonts/open-iconic/svg/yen.svg        |    3 -
 assets/static/fonts/open-iconic/svg/zoom-in.svg    |    4 -
 assets/static/fonts/open-iconic/svg/zoom-out.svg   |    4 -
 .../fonts/open-iconic/webp/account-login-2x.webp   |  Bin 140 -> 0 bytes
 .../fonts/open-iconic/webp/account-login-3x.webp   |  Bin 166 -> 0 bytes
 .../fonts/open-iconic/webp/account-login-4x.webp   |  Bin 168 -> 0 bytes
 .../fonts/open-iconic/webp/account-login-6x.webp   |  Bin 180 -> 0 bytes
 .../fonts/open-iconic/webp/account-login-8x.webp   |  Bin 200 -> 0 bytes
 .../fonts/open-iconic/webp/account-login.webp      |  Bin 118 -> 0 bytes
 .../fonts/open-iconic/webp/account-logout-2x.webp  |  Bin 132 -> 0 bytes
 .../fonts/open-iconic/webp/account-logout-3x.webp  |  Bin 160 -> 0 bytes
 .../fonts/open-iconic/webp/account-logout-4x.webp  |  Bin 168 -> 0 bytes
 .../fonts/open-iconic/webp/account-logout-6x.webp  |  Bin 184 -> 0 bytes
 .../fonts/open-iconic/webp/account-logout-8x.webp  |  Bin 196 -> 0 bytes
 .../fonts/open-iconic/webp/account-logout.webp     |  Bin 114 -> 0 bytes
 .../fonts/open-iconic/webp/action-redo-2x.webp     |  Bin 190 -> 0 bytes
 .../fonts/open-iconic/webp/action-redo-3x.webp     |  Bin 256 -> 0 bytes
 .../fonts/open-iconic/webp/action-redo-4x.webp     |  Bin 306 -> 0 bytes
 .../fonts/open-iconic/webp/action-redo-6x.webp     |  Bin 404 -> 0 bytes
 .../fonts/open-iconic/webp/action-redo-8x.webp     |  Bin 486 -> 0 bytes
 .../static/fonts/open-iconic/webp/action-redo.webp |  Bin 142 -> 0 bytes
 .../fonts/open-iconic/webp/action-undo-2x.webp     |  Bin 182 -> 0 bytes
 .../fonts/open-iconic/webp/action-undo-3x.webp     |  Bin 248 -> 0 bytes
 .../fonts/open-iconic/webp/action-undo-4x.webp     |  Bin 298 -> 0 bytes
 .../fonts/open-iconic/webp/action-undo-6x.webp     |  Bin 396 -> 0 bytes
 .../fonts/open-iconic/webp/action-undo-8x.webp     |  Bin 508 -> 0 bytes
 .../static/fonts/open-iconic/webp/action-undo.webp |  Bin 140 -> 0 bytes
 .../fonts/open-iconic/webp/align-center-2x.webp    |  Bin 100 -> 0 bytes
 .../fonts/open-iconic/webp/align-center-3x.webp    |  Bin 116 -> 0 bytes
 .../fonts/open-iconic/webp/align-center-4x.webp    |  Bin 122 -> 0 bytes
 .../fonts/open-iconic/webp/align-center-6x.webp    |  Bin 128 -> 0 bytes
 .../fonts/open-iconic/webp/align-center-8x.webp    |  Bin 132 -> 0 bytes
 .../fonts/open-iconic/webp/align-center.webp       |  Bin 90 -> 0 bytes
 .../fonts/open-iconic/webp/align-left-2x.webp      |  Bin 100 -> 0 bytes
 .../fonts/open-iconic/webp/align-left-3x.webp      |  Bin 116 -> 0 bytes
 .../fonts/open-iconic/webp/align-left-4x.webp      |  Bin 114 -> 0 bytes
 .../fonts/open-iconic/webp/align-left-6x.webp      |  Bin 128 -> 0 bytes
 .../fonts/open-iconic/webp/align-left-8x.webp      |  Bin 132 -> 0 bytes
 .../static/fonts/open-iconic/webp/align-left.webp  |  Bin 92 -> 0 bytes
 .../fonts/open-iconic/webp/align-right-2x.webp     |  Bin 100 -> 0 bytes
 .../fonts/open-iconic/webp/align-right-3x.webp     |  Bin 116 -> 0 bytes
 .../fonts/open-iconic/webp/align-right-4x.webp     |  Bin 114 -> 0 bytes
 .../fonts/open-iconic/webp/align-right-6x.webp     |  Bin 124 -> 0 bytes
 .../fonts/open-iconic/webp/align-right-8x.webp     |  Bin 132 -> 0 bytes
 .../static/fonts/open-iconic/webp/align-right.webp |  Bin 94 -> 0 bytes
 .../static/fonts/open-iconic/webp/aperture-2x.webp |  Bin 278 -> 0 bytes
 .../static/fonts/open-iconic/webp/aperture-3x.webp |  Bin 372 -> 0 bytes
 .../static/fonts/open-iconic/webp/aperture-4x.webp |  Bin 466 -> 0 bytes
 .../static/fonts/open-iconic/webp/aperture-6x.webp |  Bin 650 -> 0 bytes
 .../static/fonts/open-iconic/webp/aperture-8x.webp |  Bin 826 -> 0 bytes
 assets/static/fonts/open-iconic/webp/aperture.webp |  Bin 170 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-bottom-2x.webp    |  Bin 156 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-bottom-3x.webp    |  Bin 192 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-bottom-4x.webp    |  Bin 216 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-bottom-6x.webp    |  Bin 262 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-bottom-8x.webp    |  Bin 314 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-bottom.webp       |  Bin 122 -> 0 bytes
 .../open-iconic/webp/arrow-circle-bottom-2x.webp   |  Bin 208 -> 0 bytes
 .../open-iconic/webp/arrow-circle-bottom-3x.webp   |  Bin 286 -> 0 bytes
 .../open-iconic/webp/arrow-circle-bottom-4x.webp   |  Bin 354 -> 0 bytes
 .../open-iconic/webp/arrow-circle-bottom-6x.webp   |  Bin 526 -> 0 bytes
 .../open-iconic/webp/arrow-circle-bottom-8x.webp   |  Bin 680 -> 0 bytes
 .../open-iconic/webp/arrow-circle-bottom.webp      |  Bin 148 -> 0 bytes
 .../open-iconic/webp/arrow-circle-left-2x.webp     |  Bin 206 -> 0 bytes
 .../open-iconic/webp/arrow-circle-left-3x.webp     |  Bin 282 -> 0 bytes
 .../open-iconic/webp/arrow-circle-left-4x.webp     |  Bin 348 -> 0 bytes
 .../open-iconic/webp/arrow-circle-left-6x.webp     |  Bin 470 -> 0 bytes
 .../open-iconic/webp/arrow-circle-left-8x.webp     |  Bin 684 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-circle-left.webp  |  Bin 142 -> 0 bytes
 .../open-iconic/webp/arrow-circle-right-2x.webp    |  Bin 210 -> 0 bytes
 .../open-iconic/webp/arrow-circle-right-3x.webp    |  Bin 282 -> 0 bytes
 .../open-iconic/webp/arrow-circle-right-4x.webp    |  Bin 346 -> 0 bytes
 .../open-iconic/webp/arrow-circle-right-6x.webp    |  Bin 480 -> 0 bytes
 .../open-iconic/webp/arrow-circle-right-8x.webp    |  Bin 684 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-circle-right.webp |  Bin 144 -> 0 bytes
 .../open-iconic/webp/arrow-circle-top-2x.webp      |  Bin 208 -> 0 bytes
 .../open-iconic/webp/arrow-circle-top-3x.webp      |  Bin 278 -> 0 bytes
 .../open-iconic/webp/arrow-circle-top-4x.webp      |  Bin 344 -> 0 bytes
 .../open-iconic/webp/arrow-circle-top-6x.webp      |  Bin 462 -> 0 bytes
 .../open-iconic/webp/arrow-circle-top-8x.webp      |  Bin 616 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-circle-top.webp   |  Bin 148 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-left-2x.webp      |  Bin 150 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-left-3x.webp      |  Bin 186 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-left-4x.webp      |  Bin 210 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-left-6x.webp      |  Bin 276 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-left-8x.webp      |  Bin 306 -> 0 bytes
 .../static/fonts/open-iconic/webp/arrow-left.webp  |  Bin 122 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-right-2x.webp     |  Bin 150 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-right-3x.webp     |  Bin 190 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-right-4x.webp     |  Bin 210 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-right-6x.webp     |  Bin 278 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-right-8x.webp     |  Bin 338 -> 0 bytes
 .../static/fonts/open-iconic/webp/arrow-right.webp |  Bin 124 -> 0 bytes
 .../open-iconic/webp/arrow-thick-bottom-2x.webp    |  Bin 146 -> 0 bytes
 .../open-iconic/webp/arrow-thick-bottom-3x.webp    |  Bin 170 -> 0 bytes
 .../open-iconic/webp/arrow-thick-bottom-4x.webp    |  Bin 194 -> 0 bytes
 .../open-iconic/webp/arrow-thick-bottom-6x.webp    |  Bin 234 -> 0 bytes
 .../open-iconic/webp/arrow-thick-bottom-8x.webp    |  Bin 284 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-thick-bottom.webp |  Bin 112 -> 0 bytes
 .../open-iconic/webp/arrow-thick-left-2x.webp      |  Bin 136 -> 0 bytes
 .../open-iconic/webp/arrow-thick-left-3x.webp      |  Bin 164 -> 0 bytes
 .../open-iconic/webp/arrow-thick-left-4x.webp      |  Bin 188 -> 0 bytes
 .../open-iconic/webp/arrow-thick-left-6x.webp      |  Bin 260 -> 0 bytes
 .../open-iconic/webp/arrow-thick-left-8x.webp      |  Bin 332 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-thick-left.webp   |  Bin 118 -> 0 bytes
 .../open-iconic/webp/arrow-thick-right-2x.webp     |  Bin 144 -> 0 bytes
 .../open-iconic/webp/arrow-thick-right-3x.webp     |  Bin 172 -> 0 bytes
 .../open-iconic/webp/arrow-thick-right-4x.webp     |  Bin 188 -> 0 bytes
 .../open-iconic/webp/arrow-thick-right-6x.webp     |  Bin 262 -> 0 bytes
 .../open-iconic/webp/arrow-thick-right-8x.webp     |  Bin 328 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-thick-right.webp  |  Bin 118 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-thick-top-2x.webp |  Bin 136 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-thick-top-3x.webp |  Bin 164 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-thick-top-4x.webp |  Bin 188 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-thick-top-6x.webp |  Bin 230 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-thick-top-8x.webp |  Bin 286 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-thick-top.webp    |  Bin 118 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-top-2x.webp       |  Bin 152 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-top-3x.webp       |  Bin 192 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-top-4x.webp       |  Bin 212 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-top-6x.webp       |  Bin 258 -> 0 bytes
 .../fonts/open-iconic/webp/arrow-top-8x.webp       |  Bin 314 -> 0 bytes
 .../static/fonts/open-iconic/webp/arrow-top.webp   |  Bin 122 -> 0 bytes
 assets/static/fonts/open-iconic/webp/audio-2x.webp |  Bin 246 -> 0 bytes
 assets/static/fonts/open-iconic/webp/audio-3x.webp |  Bin 344 -> 0 bytes
 assets/static/fonts/open-iconic/webp/audio-4x.webp |  Bin 420 -> 0 bytes
 assets/static/fonts/open-iconic/webp/audio-6x.webp |  Bin 570 -> 0 bytes
 assets/static/fonts/open-iconic/webp/audio-8x.webp |  Bin 770 -> 0 bytes
 .../fonts/open-iconic/webp/audio-spectrum-2x.webp  |  Bin 102 -> 0 bytes
 .../fonts/open-iconic/webp/audio-spectrum-3x.webp  |  Bin 120 -> 0 bytes
 .../fonts/open-iconic/webp/audio-spectrum-4x.webp  |  Bin 116 -> 0 bytes
 .../fonts/open-iconic/webp/audio-spectrum-6x.webp  |  Bin 124 -> 0 bytes
 .../fonts/open-iconic/webp/audio-spectrum-8x.webp  |  Bin 130 -> 0 bytes
 .../fonts/open-iconic/webp/audio-spectrum.webp     |  Bin 94 -> 0 bytes
 assets/static/fonts/open-iconic/webp/audio.webp    |  Bin 156 -> 0 bytes
 assets/static/fonts/open-iconic/webp/badge-2x.webp |  Bin 164 -> 0 bytes
 assets/static/fonts/open-iconic/webp/badge-3x.webp |  Bin 216 -> 0 bytes
 assets/static/fonts/open-iconic/webp/badge-4x.webp |  Bin 252 -> 0 bytes
 assets/static/fonts/open-iconic/webp/badge-6x.webp |  Bin 332 -> 0 bytes
 assets/static/fonts/open-iconic/webp/badge-8x.webp |  Bin 416 -> 0 bytes
 assets/static/fonts/open-iconic/webp/badge.webp    |  Bin 130 -> 0 bytes
 assets/static/fonts/open-iconic/webp/ban-2x.webp   |  Bin 258 -> 0 bytes
 assets/static/fonts/open-iconic/webp/ban-3x.webp   |  Bin 364 -> 0 bytes
 assets/static/fonts/open-iconic/webp/ban-4x.webp   |  Bin 480 -> 0 bytes
 assets/static/fonts/open-iconic/webp/ban-6x.webp   |  Bin 624 -> 0 bytes
 assets/static/fonts/open-iconic/webp/ban-8x.webp   |  Bin 794 -> 0 bytes
 assets/static/fonts/open-iconic/webp/ban.webp      |  Bin 158 -> 0 bytes
 .../fonts/open-iconic/webp/bar-chart-2x.webp       |  Bin 104 -> 0 bytes
 .../fonts/open-iconic/webp/bar-chart-3x.webp       |  Bin 122 -> 0 bytes
 .../fonts/open-iconic/webp/bar-chart-4x.webp       |  Bin 118 -> 0 bytes
 .../fonts/open-iconic/webp/bar-chart-6x.webp       |  Bin 126 -> 0 bytes
 .../fonts/open-iconic/webp/bar-chart-8x.webp       |  Bin 126 -> 0 bytes
 .../static/fonts/open-iconic/webp/bar-chart.webp   |  Bin 96 -> 0 bytes
 .../static/fonts/open-iconic/webp/basket-2x.webp   |  Bin 200 -> 0 bytes
 .../static/fonts/open-iconic/webp/basket-3x.webp   |  Bin 282 -> 0 bytes
 .../static/fonts/open-iconic/webp/basket-4x.webp   |  Bin 334 -> 0 bytes
 .../static/fonts/open-iconic/webp/basket-6x.webp   |  Bin 440 -> 0 bytes
 .../static/fonts/open-iconic/webp/basket-8x.webp   |  Bin 500 -> 0 bytes
 assets/static/fonts/open-iconic/webp/basket.webp   |  Bin 140 -> 0 bytes
 .../fonts/open-iconic/webp/battery-empty-2x.webp   |  Bin 144 -> 0 bytes
 .../fonts/open-iconic/webp/battery-empty-3x.webp   |  Bin 164 -> 0 bytes
 .../fonts/open-iconic/webp/battery-empty-4x.webp   |  Bin 170 -> 0 bytes
 .../fonts/open-iconic/webp/battery-empty-6x.webp   |  Bin 178 -> 0 bytes
 .../fonts/open-iconic/webp/battery-empty-8x.webp   |  Bin 190 -> 0 bytes
 .../fonts/open-iconic/webp/battery-empty.webp      |  Bin 122 -> 0 bytes
 .../fonts/open-iconic/webp/battery-full-2x.webp    |  Bin 142 -> 0 bytes
 .../fonts/open-iconic/webp/battery-full-3x.webp    |  Bin 154 -> 0 bytes
 .../fonts/open-iconic/webp/battery-full-4x.webp    |  Bin 160 -> 0 bytes
 .../fonts/open-iconic/webp/battery-full-6x.webp    |  Bin 172 -> 0 bytes
 .../fonts/open-iconic/webp/battery-full-8x.webp    |  Bin 178 -> 0 bytes
 .../fonts/open-iconic/webp/battery-full.webp       |  Bin 120 -> 0 bytes
 .../static/fonts/open-iconic/webp/beaker-2x.webp   |  Bin 216 -> 0 bytes
 .../static/fonts/open-iconic/webp/beaker-3x.webp   |  Bin 298 -> 0 bytes
 .../static/fonts/open-iconic/webp/beaker-4x.webp   |  Bin 376 -> 0 bytes
 .../static/fonts/open-iconic/webp/beaker-6x.webp   |  Bin 472 -> 0 bytes
 .../static/fonts/open-iconic/webp/beaker-8x.webp   |  Bin 594 -> 0 bytes
 assets/static/fonts/open-iconic/webp/beaker.webp   |  Bin 150 -> 0 bytes
 assets/static/fonts/open-iconic/webp/bell-2x.webp  |  Bin 186 -> 0 bytes
 assets/static/fonts/open-iconic/webp/bell-3x.webp  |  Bin 240 -> 0 bytes
 assets/static/fonts/open-iconic/webp/bell-4x.webp  |  Bin 294 -> 0 bytes
 assets/static/fonts/open-iconic/webp/bell-6x.webp  |  Bin 384 -> 0 bytes
 assets/static/fonts/open-iconic/webp/bell-8x.webp  |  Bin 462 -> 0 bytes
 assets/static/fonts/open-iconic/webp/bell.webp     |  Bin 138 -> 0 bytes
 .../fonts/open-iconic/webp/bluetooth-2x.webp       |  Bin 202 -> 0 bytes
 .../fonts/open-iconic/webp/bluetooth-3x.webp       |  Bin 282 -> 0 bytes
 .../fonts/open-iconic/webp/bluetooth-4x.webp       |  Bin 312 -> 0 bytes
 .../fonts/open-iconic/webp/bluetooth-6x.webp       |  Bin 410 -> 0 bytes
 .../fonts/open-iconic/webp/bluetooth-8x.webp       |  Bin 522 -> 0 bytes
 .../static/fonts/open-iconic/webp/bluetooth.webp   |  Bin 148 -> 0 bytes
 assets/static/fonts/open-iconic/webp/bold-2x.webp  |  Bin 200 -> 0 bytes
 assets/static/fonts/open-iconic/webp/bold-3x.webp  |  Bin 276 -> 0 bytes
 assets/static/fonts/open-iconic/webp/bold-4x.webp  |  Bin 332 -> 0 bytes
 assets/static/fonts/open-iconic/webp/bold-6x.webp  |  Bin 446 -> 0 bytes
 assets/static/fonts/open-iconic/webp/bold-8x.webp  |  Bin 520 -> 0 bytes
 assets/static/fonts/open-iconic/webp/bold.webp     |  Bin 140 -> 0 bytes
 assets/static/fonts/open-iconic/webp/bolt-2x.webp  |  Bin 160 -> 0 bytes
 assets/static/fonts/open-iconic/webp/bolt-3x.webp  |  Bin 194 -> 0 bytes
 assets/static/fonts/open-iconic/webp/bolt-4x.webp  |  Bin 202 -> 0 bytes
 assets/static/fonts/open-iconic/webp/bolt-6x.webp  |  Bin 202 -> 0 bytes
 assets/static/fonts/open-iconic/webp/bolt-8x.webp  |  Bin 208 -> 0 bytes
 assets/static/fonts/open-iconic/webp/bolt.webp     |  Bin 130 -> 0 bytes
 assets/static/fonts/open-iconic/webp/book-2x.webp  |  Bin 146 -> 0 bytes
 assets/static/fonts/open-iconic/webp/book-3x.webp  |  Bin 190 -> 0 bytes
 assets/static/fonts/open-iconic/webp/book-4x.webp  |  Bin 214 -> 0 bytes
 assets/static/fonts/open-iconic/webp/book-6x.webp  |  Bin 254 -> 0 bytes
 assets/static/fonts/open-iconic/webp/book-8x.webp  |  Bin 304 -> 0 bytes
 assets/static/fonts/open-iconic/webp/book.webp     |  Bin 128 -> 0 bytes
 .../static/fonts/open-iconic/webp/bookmark-2x.webp |  Bin 114 -> 0 bytes
 .../static/fonts/open-iconic/webp/bookmark-3x.webp |  Bin 138 -> 0 bytes
 .../static/fonts/open-iconic/webp/bookmark-4x.webp |  Bin 140 -> 0 bytes
 .../static/fonts/open-iconic/webp/bookmark-6x.webp |  Bin 156 -> 0 bytes
 .../static/fonts/open-iconic/webp/bookmark-8x.webp |  Bin 186 -> 0 bytes
 assets/static/fonts/open-iconic/webp/bookmark.webp |  Bin 102 -> 0 bytes
 assets/static/fonts/open-iconic/webp/box-2x.webp   |  Bin 120 -> 0 bytes
 assets/static/fonts/open-iconic/webp/box-3x.webp   |  Bin 146 -> 0 bytes
 assets/static/fonts/open-iconic/webp/box-4x.webp   |  Bin 146 -> 0 bytes
 assets/static/fonts/open-iconic/webp/box-6x.webp   |  Bin 152 -> 0 bytes
 assets/static/fonts/open-iconic/webp/box-8x.webp   |  Bin 160 -> 0 bytes
 assets/static/fonts/open-iconic/webp/box.webp      |  Bin 108 -> 0 bytes
 .../fonts/open-iconic/webp/briefcase-2x.webp       |  Bin 154 -> 0 bytes
 .../fonts/open-iconic/webp/briefcase-3x.webp       |  Bin 188 -> 0 bytes
 .../fonts/open-iconic/webp/briefcase-4x.webp       |  Bin 194 -> 0 bytes
 .../fonts/open-iconic/webp/briefcase-6x.webp       |  Bin 226 -> 0 bytes
 .../fonts/open-iconic/webp/briefcase-8x.webp       |  Bin 260 -> 0 bytes
 .../static/fonts/open-iconic/webp/briefcase.webp   |  Bin 128 -> 0 bytes
 .../fonts/open-iconic/webp/british-pound-2x.webp   |  Bin 198 -> 0 bytes
 .../fonts/open-iconic/webp/british-pound-3x.webp   |  Bin 266 -> 0 bytes
 .../fonts/open-iconic/webp/british-pound-4x.webp   |  Bin 320 -> 0 bytes
 .../fonts/open-iconic/webp/british-pound-6x.webp   |  Bin 426 -> 0 bytes
 .../fonts/open-iconic/webp/british-pound-8x.webp   |  Bin 508 -> 0 bytes
 .../fonts/open-iconic/webp/british-pound.webp      |  Bin 134 -> 0 bytes
 .../static/fonts/open-iconic/webp/browser-2x.webp  |  Bin 132 -> 0 bytes
 .../static/fonts/open-iconic/webp/browser-3x.webp  |  Bin 176 -> 0 bytes
 .../static/fonts/open-iconic/webp/browser-4x.webp  |  Bin 188 -> 0 bytes
 .../static/fonts/open-iconic/webp/browser-6x.webp  |  Bin 240 -> 0 bytes
 .../static/fonts/open-iconic/webp/browser-8x.webp  |  Bin 278 -> 0 bytes
 assets/static/fonts/open-iconic/webp/browser.webp  |  Bin 122 -> 0 bytes
 assets/static/fonts/open-iconic/webp/brush-2x.webp |  Bin 226 -> 0 bytes
 assets/static/fonts/open-iconic/webp/brush-3x.webp |  Bin 296 -> 0 bytes
 assets/static/fonts/open-iconic/webp/brush-4x.webp |  Bin 364 -> 0 bytes
 assets/static/fonts/open-iconic/webp/brush-6x.webp |  Bin 450 -> 0 bytes
 assets/static/fonts/open-iconic/webp/brush-8x.webp |  Bin 568 -> 0 bytes
 assets/static/fonts/open-iconic/webp/brush.webp    |  Bin 146 -> 0 bytes
 assets/static/fonts/open-iconic/webp/bug-2x.webp   |  Bin 262 -> 0 bytes
 assets/static/fonts/open-iconic/webp/bug-3x.webp   |  Bin 370 -> 0 bytes
 assets/static/fonts/open-iconic/webp/bug-4x.webp   |  Bin 432 -> 0 bytes
 assets/static/fonts/open-iconic/webp/bug-6x.webp   |  Bin 602 -> 0 bytes
 assets/static/fonts/open-iconic/webp/bug-8x.webp   |  Bin 774 -> 0 bytes
 assets/static/fonts/open-iconic/webp/bug.webp      |  Bin 158 -> 0 bytes
 .../static/fonts/open-iconic/webp/bullhorn-2x.webp |  Bin 190 -> 0 bytes
 .../static/fonts/open-iconic/webp/bullhorn-3x.webp |  Bin 234 -> 0 bytes
 .../static/fonts/open-iconic/webp/bullhorn-4x.webp |  Bin 270 -> 0 bytes
 .../static/fonts/open-iconic/webp/bullhorn-6x.webp |  Bin 340 -> 0 bytes
 .../static/fonts/open-iconic/webp/bullhorn-8x.webp |  Bin 432 -> 0 bytes
 assets/static/fonts/open-iconic/webp/bullhorn.webp |  Bin 134 -> 0 bytes
 .../fonts/open-iconic/webp/calculator-2x.webp      |  Bin 136 -> 0 bytes
 .../fonts/open-iconic/webp/calculator-3x.webp      |  Bin 152 -> 0 bytes
 .../fonts/open-iconic/webp/calculator-4x.webp      |  Bin 158 -> 0 bytes
 .../fonts/open-iconic/webp/calculator-6x.webp      |  Bin 162 -> 0 bytes
 .../fonts/open-iconic/webp/calculator-8x.webp      |  Bin 168 -> 0 bytes
 .../static/fonts/open-iconic/webp/calculator.webp  |  Bin 112 -> 0 bytes
 .../static/fonts/open-iconic/webp/calendar-2x.webp |  Bin 126 -> 0 bytes
 .../static/fonts/open-iconic/webp/calendar-3x.webp |  Bin 144 -> 0 bytes
 .../static/fonts/open-iconic/webp/calendar-4x.webp |  Bin 148 -> 0 bytes
 .../static/fonts/open-iconic/webp/calendar-6x.webp |  Bin 152 -> 0 bytes
 .../static/fonts/open-iconic/webp/calendar-8x.webp |  Bin 160 -> 0 bytes
 assets/static/fonts/open-iconic/webp/calendar.webp |  Bin 110 -> 0 bytes
 .../fonts/open-iconic/webp/camera-slr-2x.webp      |  Bin 232 -> 0 bytes
 .../fonts/open-iconic/webp/camera-slr-3x.webp      |  Bin 330 -> 0 bytes
 .../fonts/open-iconic/webp/camera-slr-4x.webp      |  Bin 392 -> 0 bytes
 .../fonts/open-iconic/webp/camera-slr-6x.webp      |  Bin 496 -> 0 bytes
 .../fonts/open-iconic/webp/camera-slr-8x.webp      |  Bin 692 -> 0 bytes
 .../static/fonts/open-iconic/webp/camera-slr.webp  |  Bin 154 -> 0 bytes
 .../fonts/open-iconic/webp/caret-bottom-2x.webp    |  Bin 122 -> 0 bytes
 .../fonts/open-iconic/webp/caret-bottom-3x.webp    |  Bin 150 -> 0 bytes
 .../fonts/open-iconic/webp/caret-bottom-4x.webp    |  Bin 166 -> 0 bytes
 .../fonts/open-iconic/webp/caret-bottom-6x.webp    |  Bin 184 -> 0 bytes
 .../fonts/open-iconic/webp/caret-bottom-8x.webp    |  Bin 216 -> 0 bytes
 .../fonts/open-iconic/webp/caret-bottom.webp       |  Bin 108 -> 0 bytes
 .../fonts/open-iconic/webp/caret-left-2x.webp      |  Bin 120 -> 0 bytes
 .../fonts/open-iconic/webp/caret-left-3x.webp      |  Bin 138 -> 0 bytes
 .../fonts/open-iconic/webp/caret-left-4x.webp      |  Bin 140 -> 0 bytes
 .../fonts/open-iconic/webp/caret-left-6x.webp      |  Bin 146 -> 0 bytes
 .../fonts/open-iconic/webp/caret-left-8x.webp      |  Bin 152 -> 0 bytes
 .../static/fonts/open-iconic/webp/caret-left.webp  |  Bin 104 -> 0 bytes
 .../fonts/open-iconic/webp/caret-right-2x.webp     |  Bin 122 -> 0 bytes
 .../fonts/open-iconic/webp/caret-right-3x.webp     |  Bin 140 -> 0 bytes
 .../fonts/open-iconic/webp/caret-right-4x.webp     |  Bin 142 -> 0 bytes
 .../fonts/open-iconic/webp/caret-right-6x.webp     |  Bin 144 -> 0 bytes
 .../fonts/open-iconic/webp/caret-right-8x.webp     |  Bin 152 -> 0 bytes
 .../static/fonts/open-iconic/webp/caret-right.webp |  Bin 104 -> 0 bytes
 .../fonts/open-iconic/webp/caret-top-2x.webp       |  Bin 122 -> 0 bytes
 .../fonts/open-iconic/webp/caret-top-3x.webp       |  Bin 150 -> 0 bytes
 .../fonts/open-iconic/webp/caret-top-4x.webp       |  Bin 166 -> 0 bytes
 .../fonts/open-iconic/webp/caret-top-6x.webp       |  Bin 180 -> 0 bytes
 .../fonts/open-iconic/webp/caret-top-8x.webp       |  Bin 212 -> 0 bytes
 .../static/fonts/open-iconic/webp/caret-top.webp   |  Bin 108 -> 0 bytes
 assets/static/fonts/open-iconic/webp/cart-2x.webp  |  Bin 166 -> 0 bytes
 assets/static/fonts/open-iconic/webp/cart-3x.webp  |  Bin 220 -> 0 bytes
 assets/static/fonts/open-iconic/webp/cart-4x.webp  |  Bin 260 -> 0 bytes
 assets/static/fonts/open-iconic/webp/cart-6x.webp  |  Bin 346 -> 0 bytes
 assets/static/fonts/open-iconic/webp/cart-8x.webp  |  Bin 432 -> 0 bytes
 assets/static/fonts/open-iconic/webp/cart.webp     |  Bin 132 -> 0 bytes
 assets/static/fonts/open-iconic/webp/chat-2x.webp  |  Bin 116 -> 0 bytes
 assets/static/fonts/open-iconic/webp/chat-3x.webp  |  Bin 142 -> 0 bytes
 assets/static/fonts/open-iconic/webp/chat-4x.webp  |  Bin 146 -> 0 bytes
 assets/static/fonts/open-iconic/webp/chat-6x.webp  |  Bin 158 -> 0 bytes
 assets/static/fonts/open-iconic/webp/chat-8x.webp  |  Bin 168 -> 0 bytes
 assets/static/fonts/open-iconic/webp/chat.webp     |  Bin 106 -> 0 bytes
 assets/static/fonts/open-iconic/webp/check-2x.webp |  Bin 160 -> 0 bytes
 assets/static/fonts/open-iconic/webp/check-3x.webp |  Bin 202 -> 0 bytes
 assets/static/fonts/open-iconic/webp/check-4x.webp |  Bin 240 -> 0 bytes
 assets/static/fonts/open-iconic/webp/check-6x.webp |  Bin 274 -> 0 bytes
 assets/static/fonts/open-iconic/webp/check-8x.webp |  Bin 366 -> 0 bytes
 assets/static/fonts/open-iconic/webp/check.webp    |  Bin 140 -> 0 bytes
 .../fonts/open-iconic/webp/chevron-bottom-2x.webp  |  Bin 132 -> 0 bytes
 .../fonts/open-iconic/webp/chevron-bottom-3x.webp  |  Bin 184 -> 0 bytes
 .../fonts/open-iconic/webp/chevron-bottom-4x.webp  |  Bin 194 -> 0 bytes
 .../fonts/open-iconic/webp/chevron-bottom-6x.webp  |  Bin 224 -> 0 bytes
 .../fonts/open-iconic/webp/chevron-bottom-8x.webp  |  Bin 286 -> 0 bytes
 .../fonts/open-iconic/webp/chevron-bottom.webp     |  Bin 120 -> 0 bytes
 .../fonts/open-iconic/webp/chevron-left-2x.webp    |  Bin 134 -> 0 bytes
 .../fonts/open-iconic/webp/chevron-left-3x.webp    |  Bin 166 -> 0 bytes
 .../fonts/open-iconic/webp/chevron-left-4x.webp    |  Bin 174 -> 0 bytes
 .../fonts/open-iconic/webp/chevron-left-6x.webp    |  Bin 190 -> 0 bytes
 .../fonts/open-iconic/webp/chevron-left-8x.webp    |  Bin 214 -> 0 bytes
 .../fonts/open-iconic/webp/chevron-left.webp       |  Bin 104 -> 0 bytes
 .../fonts/open-iconic/webp/chevron-right-2x.webp   |  Bin 132 -> 0 bytes
 .../fonts/open-iconic/webp/chevron-right-3x.webp   |  Bin 164 -> 0 bytes
 .../fonts/open-iconic/webp/chevron-right-4x.webp   |  Bin 174 -> 0 bytes
 .../fonts/open-iconic/webp/chevron-right-6x.webp   |  Bin 188 -> 0 bytes
 .../fonts/open-iconic/webp/chevron-right-8x.webp   |  Bin 212 -> 0 bytes
 .../fonts/open-iconic/webp/chevron-right.webp      |  Bin 118 -> 0 bytes
 .../fonts/open-iconic/webp/chevron-top-2x.webp     |  Bin 132 -> 0 bytes
 .../fonts/open-iconic/webp/chevron-top-3x.webp     |  Bin 166 -> 0 bytes
 .../fonts/open-iconic/webp/chevron-top-4x.webp     |  Bin 192 -> 0 bytes
 .../fonts/open-iconic/webp/chevron-top-6x.webp     |  Bin 226 -> 0 bytes
 .../fonts/open-iconic/webp/chevron-top-8x.webp     |  Bin 270 -> 0 bytes
 .../static/fonts/open-iconic/webp/chevron-top.webp |  Bin 114 -> 0 bytes
 .../fonts/open-iconic/webp/circle-check-2x.webp    |  Bin 238 -> 0 bytes
 .../fonts/open-iconic/webp/circle-check-3x.webp    |  Bin 336 -> 0 bytes
 .../fonts/open-iconic/webp/circle-check-4x.webp    |  Bin 386 -> 0 bytes
 .../fonts/open-iconic/webp/circle-check-6x.webp    |  Bin 522 -> 0 bytes
 .../fonts/open-iconic/webp/circle-check-8x.webp    |  Bin 706 -> 0 bytes
 .../fonts/open-iconic/webp/circle-check.webp       |  Bin 158 -> 0 bytes
 .../static/fonts/open-iconic/webp/circle-x-2x.webp |  Bin 230 -> 0 bytes
 .../static/fonts/open-iconic/webp/circle-x-3x.webp |  Bin 318 -> 0 bytes
 .../static/fonts/open-iconic/webp/circle-x-4x.webp |  Bin 392 -> 0 bytes
 .../static/fonts/open-iconic/webp/circle-x-6x.webp |  Bin 536 -> 0 bytes
 .../static/fonts/open-iconic/webp/circle-x-8x.webp |  Bin 696 -> 0 bytes
 assets/static/fonts/open-iconic/webp/circle-x.webp |  Bin 152 -> 0 bytes
 .../fonts/open-iconic/webp/clipboard-2x.webp       |  Bin 130 -> 0 bytes
 .../fonts/open-iconic/webp/clipboard-3x.webp       |  Bin 164 -> 0 bytes
 .../fonts/open-iconic/webp/clipboard-4x.webp       |  Bin 164 -> 0 bytes
 .../fonts/open-iconic/webp/clipboard-6x.webp       |  Bin 198 -> 0 bytes
 .../fonts/open-iconic/webp/clipboard-8x.webp       |  Bin 218 -> 0 bytes
 .../static/fonts/open-iconic/webp/clipboard.webp   |  Bin 114 -> 0 bytes
 assets/static/fonts/open-iconic/webp/clock-2x.webp |  Bin 270 -> 0 bytes
 assets/static/fonts/open-iconic/webp/clock-3x.webp |  Bin 402 -> 0 bytes
 assets/static/fonts/open-iconic/webp/clock-4x.webp |  Bin 512 -> 0 bytes
 assets/static/fonts/open-iconic/webp/clock-6x.webp |  Bin 670 -> 0 bytes
 assets/static/fonts/open-iconic/webp/clock-8x.webp |  Bin 868 -> 0 bytes
 assets/static/fonts/open-iconic/webp/clock.webp    |  Bin 156 -> 0 bytes
 assets/static/fonts/open-iconic/webp/cloud-2x.webp |  Bin 176 -> 0 bytes
 assets/static/fonts/open-iconic/webp/cloud-3x.webp |  Bin 244 -> 0 bytes
 assets/static/fonts/open-iconic/webp/cloud-4x.webp |  Bin 282 -> 0 bytes
 assets/static/fonts/open-iconic/webp/cloud-6x.webp |  Bin 362 -> 0 bytes
 assets/static/fonts/open-iconic/webp/cloud-8x.webp |  Bin 434 -> 0 bytes
 .../fonts/open-iconic/webp/cloud-download-2x.webp  |  Bin 202 -> 0 bytes
 .../fonts/open-iconic/webp/cloud-download-3x.webp  |  Bin 302 -> 0 bytes
 .../fonts/open-iconic/webp/cloud-download-4x.webp  |  Bin 342 -> 0 bytes
 .../fonts/open-iconic/webp/cloud-download-6x.webp  |  Bin 468 -> 0 bytes
 .../fonts/open-iconic/webp/cloud-download-8x.webp  |  Bin 570 -> 0 bytes
 .../fonts/open-iconic/webp/cloud-download.webp     |  Bin 146 -> 0 bytes
 .../fonts/open-iconic/webp/cloud-upload-2x.webp    |  Bin 188 -> 0 bytes
 .../fonts/open-iconic/webp/cloud-upload-3x.webp    |  Bin 270 -> 0 bytes
 .../fonts/open-iconic/webp/cloud-upload-4x.webp    |  Bin 306 -> 0 bytes
 .../fonts/open-iconic/webp/cloud-upload-6x.webp    |  Bin 400 -> 0 bytes
 .../fonts/open-iconic/webp/cloud-upload-8x.webp    |  Bin 534 -> 0 bytes
 .../fonts/open-iconic/webp/cloud-upload.webp       |  Bin 142 -> 0 bytes
 assets/static/fonts/open-iconic/webp/cloud.webp    |  Bin 140 -> 0 bytes
 .../static/fonts/open-iconic/webp/cloudy-2x.webp   |  Bin 220 -> 0 bytes
 .../static/fonts/open-iconic/webp/cloudy-3x.webp   |  Bin 314 -> 0 bytes
 .../static/fonts/open-iconic/webp/cloudy-4x.webp   |  Bin 380 -> 0 bytes
 .../static/fonts/open-iconic/webp/cloudy-6x.webp   |  Bin 478 -> 0 bytes
 .../static/fonts/open-iconic/webp/cloudy-8x.webp   |  Bin 612 -> 0 bytes
 assets/static/fonts/open-iconic/webp/cloudy.webp   |  Bin 158 -> 0 bytes
 assets/static/fonts/open-iconic/webp/code-2x.webp  |  Bin 132 -> 0 bytes
 assets/static/fonts/open-iconic/webp/code-3x.webp  |  Bin 184 -> 0 bytes
 assets/static/fonts/open-iconic/webp/code-4x.webp  |  Bin 208 -> 0 bytes
 assets/static/fonts/open-iconic/webp/code-6x.webp  |  Bin 254 -> 0 bytes
 assets/static/fonts/open-iconic/webp/code-8x.webp  |  Bin 290 -> 0 bytes
 assets/static/fonts/open-iconic/webp/code.webp     |  Bin 108 -> 0 bytes
 assets/static/fonts/open-iconic/webp/cog-2x.webp   |  Bin 236 -> 0 bytes
 assets/static/fonts/open-iconic/webp/cog-3x.webp   |  Bin 328 -> 0 bytes
 assets/static/fonts/open-iconic/webp/cog-4x.webp   |  Bin 406 -> 0 bytes
 assets/static/fonts/open-iconic/webp/cog-6x.webp   |  Bin 548 -> 0 bytes
 assets/static/fonts/open-iconic/webp/cog-8x.webp   |  Bin 722 -> 0 bytes
 assets/static/fonts/open-iconic/webp/cog.webp      |  Bin 144 -> 0 bytes
 .../fonts/open-iconic/webp/collapse-down-2x.webp   |  Bin 116 -> 0 bytes
 .../fonts/open-iconic/webp/collapse-down-3x.webp   |  Bin 138 -> 0 bytes
 .../fonts/open-iconic/webp/collapse-down-4x.webp   |  Bin 148 -> 0 bytes
 .../fonts/open-iconic/webp/collapse-down-6x.webp   |  Bin 164 -> 0 bytes
 .../fonts/open-iconic/webp/collapse-down-8x.webp   |  Bin 186 -> 0 bytes
 .../fonts/open-iconic/webp/collapse-down.webp      |  Bin 104 -> 0 bytes
 .../fonts/open-iconic/webp/collapse-left-2x.webp   |  Bin 120 -> 0 bytes
 .../fonts/open-iconic/webp/collapse-left-3x.webp   |  Bin 142 -> 0 bytes
 .../fonts/open-iconic/webp/collapse-left-4x.webp   |  Bin 142 -> 0 bytes
 .../fonts/open-iconic/webp/collapse-left-6x.webp   |  Bin 148 -> 0 bytes
 .../fonts/open-iconic/webp/collapse-left-8x.webp   |  Bin 154 -> 0 bytes
 .../fonts/open-iconic/webp/collapse-left.webp      |  Bin 100 -> 0 bytes
 .../fonts/open-iconic/webp/collapse-right-2x.webp  |  Bin 120 -> 0 bytes
 .../fonts/open-iconic/webp/collapse-right-3x.webp  |  Bin 144 -> 0 bytes
 .../fonts/open-iconic/webp/collapse-right-4x.webp  |  Bin 144 -> 0 bytes
 .../fonts/open-iconic/webp/collapse-right-6x.webp  |  Bin 150 -> 0 bytes
 .../fonts/open-iconic/webp/collapse-right-8x.webp  |  Bin 156 -> 0 bytes
 .../fonts/open-iconic/webp/collapse-right.webp     |  Bin 100 -> 0 bytes
 .../fonts/open-iconic/webp/collapse-up-2x.webp     |  Bin 116 -> 0 bytes
 .../fonts/open-iconic/webp/collapse-up-3x.webp     |  Bin 138 -> 0 bytes
 .../fonts/open-iconic/webp/collapse-up-4x.webp     |  Bin 148 -> 0 bytes
 .../fonts/open-iconic/webp/collapse-up-6x.webp     |  Bin 164 -> 0 bytes
 .../fonts/open-iconic/webp/collapse-up-8x.webp     |  Bin 186 -> 0 bytes
 .../static/fonts/open-iconic/webp/collapse-up.webp |  Bin 104 -> 0 bytes
 .../static/fonts/open-iconic/webp/command-2x.webp  |  Bin 202 -> 0 bytes
 .../static/fonts/open-iconic/webp/command-3x.webp  |  Bin 268 -> 0 bytes
 .../static/fonts/open-iconic/webp/command-4x.webp  |  Bin 360 -> 0 bytes
 .../static/fonts/open-iconic/webp/command-6x.webp  |  Bin 424 -> 0 bytes
 .../static/fonts/open-iconic/webp/command-8x.webp  |  Bin 532 -> 0 bytes
 assets/static/fonts/open-iconic/webp/command.webp  |  Bin 132 -> 0 bytes
 .../fonts/open-iconic/webp/comment-square-2x.webp  |  Bin 122 -> 0 bytes
 .../fonts/open-iconic/webp/comment-square-3x.webp  |  Bin 144 -> 0 bytes
 .../fonts/open-iconic/webp/comment-square-4x.webp  |  Bin 142 -> 0 bytes
 .../fonts/open-iconic/webp/comment-square-6x.webp  |  Bin 152 -> 0 bytes
 .../fonts/open-iconic/webp/comment-square-8x.webp  |  Bin 166 -> 0 bytes
 .../fonts/open-iconic/webp/comment-square.webp     |  Bin 110 -> 0 bytes
 .../static/fonts/open-iconic/webp/compass-2x.webp  |  Bin 274 -> 0 bytes
 .../static/fonts/open-iconic/webp/compass-3x.webp  |  Bin 420 -> 0 bytes
 .../static/fonts/open-iconic/webp/compass-4x.webp  |  Bin 548 -> 0 bytes
 .../static/fonts/open-iconic/webp/compass-6x.webp  |  Bin 732 -> 0 bytes
 .../static/fonts/open-iconic/webp/compass-8x.webp  |  Bin 944 -> 0 bytes
 assets/static/fonts/open-iconic/webp/compass.webp  |  Bin 154 -> 0 bytes
 .../static/fonts/open-iconic/webp/contrast-2x.webp |  Bin 224 -> 0 bytes
 .../static/fonts/open-iconic/webp/contrast-3x.webp |  Bin 324 -> 0 bytes
 .../static/fonts/open-iconic/webp/contrast-4x.webp |  Bin 414 -> 0 bytes
 .../static/fonts/open-iconic/webp/contrast-6x.webp |  Bin 540 -> 0 bytes
 .../static/fonts/open-iconic/webp/contrast-8x.webp |  Bin 688 -> 0 bytes
 assets/static/fonts/open-iconic/webp/contrast.webp |  Bin 146 -> 0 bytes
 .../fonts/open-iconic/webp/copywriting-2x.webp     |  Bin 120 -> 0 bytes
 .../fonts/open-iconic/webp/copywriting-3x.webp     |  Bin 148 -> 0 bytes
 .../fonts/open-iconic/webp/copywriting-4x.webp     |  Bin 148 -> 0 bytes
 .../fonts/open-iconic/webp/copywriting-6x.webp     |  Bin 176 -> 0 bytes
 .../fonts/open-iconic/webp/copywriting-8x.webp     |  Bin 190 -> 0 bytes
 .../static/fonts/open-iconic/webp/copywriting.webp |  Bin 102 -> 0 bytes
 .../fonts/open-iconic/webp/credit-card-2x.webp     |  Bin 114 -> 0 bytes
 .../fonts/open-iconic/webp/credit-card-3x.webp     |  Bin 140 -> 0 bytes
 .../fonts/open-iconic/webp/credit-card-4x.webp     |  Bin 140 -> 0 bytes
 .../fonts/open-iconic/webp/credit-card-6x.webp     |  Bin 156 -> 0 bytes
 .../fonts/open-iconic/webp/credit-card-8x.webp     |  Bin 164 -> 0 bytes
 .../static/fonts/open-iconic/webp/credit-card.webp |  Bin 112 -> 0 bytes
 assets/static/fonts/open-iconic/webp/crop-2x.webp  |  Bin 130 -> 0 bytes
 assets/static/fonts/open-iconic/webp/crop-3x.webp  |  Bin 178 -> 0 bytes
 assets/static/fonts/open-iconic/webp/crop-4x.webp  |  Bin 178 -> 0 bytes
 assets/static/fonts/open-iconic/webp/crop-6x.webp  |  Bin 206 -> 0 bytes
 assets/static/fonts/open-iconic/webp/crop-8x.webp  |  Bin 220 -> 0 bytes
 assets/static/fonts/open-iconic/webp/crop.webp     |  Bin 120 -> 0 bytes
 .../fonts/open-iconic/webp/dashboard-2x.webp       |  Bin 284 -> 0 bytes
 .../fonts/open-iconic/webp/dashboard-3x.webp       |  Bin 428 -> 0 bytes
 .../fonts/open-iconic/webp/dashboard-4x.webp       |  Bin 562 -> 0 bytes
 .../fonts/open-iconic/webp/dashboard-6x.webp       |  Bin 748 -> 0 bytes
 .../fonts/open-iconic/webp/dashboard-8x.webp       |  Bin 976 -> 0 bytes
 .../static/fonts/open-iconic/webp/dashboard.webp   |  Bin 156 -> 0 bytes
 .../webp/data-transfer-download-2x.webp            |  Bin 124 -> 0 bytes
 .../webp/data-transfer-download-3x.webp            |  Bin 154 -> 0 bytes
 .../webp/data-transfer-download-4x.webp            |  Bin 164 -> 0 bytes
 .../webp/data-transfer-download-6x.webp            |  Bin 176 -> 0 bytes
 .../webp/data-transfer-download-8x.webp            |  Bin 206 -> 0 bytes
 .../open-iconic/webp/data-transfer-download.webp   |  Bin 108 -> 0 bytes
 .../open-iconic/webp/data-transfer-upload-2x.webp  |  Bin 124 -> 0 bytes
 .../open-iconic/webp/data-transfer-upload-3x.webp  |  Bin 154 -> 0 bytes
 .../open-iconic/webp/data-transfer-upload-4x.webp  |  Bin 162 -> 0 bytes
 .../open-iconic/webp/data-transfer-upload-6x.webp  |  Bin 180 -> 0 bytes
 .../open-iconic/webp/data-transfer-upload-8x.webp  |  Bin 204 -> 0 bytes
 .../open-iconic/webp/data-transfer-upload.webp     |  Bin 108 -> 0 bytes
 .../static/fonts/open-iconic/webp/delete-2x.webp   |  Bin 186 -> 0 bytes
 .../static/fonts/open-iconic/webp/delete-3x.webp   |  Bin 242 -> 0 bytes
 .../static/fonts/open-iconic/webp/delete-4x.webp   |  Bin 266 -> 0 bytes
 .../static/fonts/open-iconic/webp/delete-6x.webp   |  Bin 336 -> 0 bytes
 .../static/fonts/open-iconic/webp/delete-8x.webp   |  Bin 406 -> 0 bytes
 assets/static/fonts/open-iconic/webp/delete.webp   |  Bin 144 -> 0 bytes
 assets/static/fonts/open-iconic/webp/dial-2x.webp  |  Bin 224 -> 0 bytes
 assets/static/fonts/open-iconic/webp/dial-3x.webp  |  Bin 320 -> 0 bytes
 assets/static/fonts/open-iconic/webp/dial-4x.webp  |  Bin 410 -> 0 bytes
 assets/static/fonts/open-iconic/webp/dial-6x.webp  |  Bin 522 -> 0 bytes
 assets/static/fonts/open-iconic/webp/dial-8x.webp  |  Bin 686 -> 0 bytes
 assets/static/fonts/open-iconic/webp/dial.webp     |  Bin 148 -> 0 bytes
 .../static/fonts/open-iconic/webp/document-2x.webp |  Bin 124 -> 0 bytes
 .../static/fonts/open-iconic/webp/document-3x.webp |  Bin 154 -> 0 bytes
 .../static/fonts/open-iconic/webp/document-4x.webp |  Bin 156 -> 0 bytes
 .../static/fonts/open-iconic/webp/document-6x.webp |  Bin 164 -> 0 bytes
 .../static/fonts/open-iconic/webp/document-8x.webp |  Bin 172 -> 0 bytes
 assets/static/fonts/open-iconic/webp/document.webp |  Bin 106 -> 0 bytes
 .../static/fonts/open-iconic/webp/dollar-2x.webp   |  Bin 218 -> 0 bytes
 .../static/fonts/open-iconic/webp/dollar-3x.webp   |  Bin 304 -> 0 bytes
 .../static/fonts/open-iconic/webp/dollar-4x.webp   |  Bin 354 -> 0 bytes
 .../static/fonts/open-iconic/webp/dollar-6x.webp   |  Bin 428 -> 0 bytes
 .../static/fonts/open-iconic/webp/dollar-8x.webp   |  Bin 502 -> 0 bytes
 assets/static/fonts/open-iconic/webp/dollar.webp   |  Bin 140 -> 0 bytes
 .../webp/double-quote-sans-left-2x.webp            |  Bin 122 -> 0 bytes
 .../webp/double-quote-sans-left-3x.webp            |  Bin 146 -> 0 bytes
 .../webp/double-quote-sans-left-4x.webp            |  Bin 144 -> 0 bytes
 .../webp/double-quote-sans-left-6x.webp            |  Bin 148 -> 0 bytes
 .../webp/double-quote-sans-left-8x.webp            |  Bin 156 -> 0 bytes
 .../open-iconic/webp/double-quote-sans-left.webp   |  Bin 108 -> 0 bytes
 .../webp/double-quote-sans-right-2x.webp           |  Bin 122 -> 0 bytes
 .../webp/double-quote-sans-right-3x.webp           |  Bin 144 -> 0 bytes
 .../webp/double-quote-sans-right-4x.webp           |  Bin 142 -> 0 bytes
 .../webp/double-quote-sans-right-6x.webp           |  Bin 144 -> 0 bytes
 .../webp/double-quote-sans-right-8x.webp           |  Bin 152 -> 0 bytes
 .../open-iconic/webp/double-quote-sans-right.webp  |  Bin 110 -> 0 bytes
 .../webp/double-quote-serif-left-2x.webp           |  Bin 150 -> 0 bytes
 .../webp/double-quote-serif-left-3x.webp           |  Bin 202 -> 0 bytes
 .../webp/double-quote-serif-left-4x.webp           |  Bin 222 -> 0 bytes
 .../webp/double-quote-serif-left-6x.webp           |  Bin 282 -> 0 bytes
 .../webp/double-quote-serif-left-8x.webp           |  Bin 344 -> 0 bytes
 .../open-iconic/webp/double-quote-serif-left.webp  |  Bin 126 -> 0 bytes
 .../webp/double-quote-serif-right-2x.webp          |  Bin 154 -> 0 bytes
 .../webp/double-quote-serif-right-3x.webp          |  Bin 208 -> 0 bytes
 .../webp/double-quote-serif-right-4x.webp          |  Bin 232 -> 0 bytes
 .../webp/double-quote-serif-right-6x.webp          |  Bin 282 -> 0 bytes
 .../webp/double-quote-serif-right-8x.webp          |  Bin 352 -> 0 bytes
 .../open-iconic/webp/double-quote-serif-right.webp |  Bin 128 -> 0 bytes
 .../static/fonts/open-iconic/webp/droplet-2x.webp  |  Bin 228 -> 0 bytes
 .../static/fonts/open-iconic/webp/droplet-3x.webp  |  Bin 316 -> 0 bytes
 .../static/fonts/open-iconic/webp/droplet-4x.webp  |  Bin 392 -> 0 bytes
 .../static/fonts/open-iconic/webp/droplet-6x.webp  |  Bin 486 -> 0 bytes
 .../static/fonts/open-iconic/webp/droplet-8x.webp  |  Bin 614 -> 0 bytes
 assets/static/fonts/open-iconic/webp/droplet.webp  |  Bin 158 -> 0 bytes
 assets/static/fonts/open-iconic/webp/eject-2x.webp |  Bin 154 -> 0 bytes
 assets/static/fonts/open-iconic/webp/eject-3x.webp |  Bin 188 -> 0 bytes
 assets/static/fonts/open-iconic/webp/eject-4x.webp |  Bin 204 -> 0 bytes
 assets/static/fonts/open-iconic/webp/eject-6x.webp |  Bin 250 -> 0 bytes
 assets/static/fonts/open-iconic/webp/eject-8x.webp |  Bin 296 -> 0 bytes
 assets/static/fonts/open-iconic/webp/eject.webp    |  Bin 132 -> 0 bytes
 .../static/fonts/open-iconic/webp/elevator-2x.webp |  Bin 128 -> 0 bytes
 .../static/fonts/open-iconic/webp/elevator-3x.webp |  Bin 166 -> 0 bytes
 .../static/fonts/open-iconic/webp/elevator-4x.webp |  Bin 184 -> 0 bytes
 .../static/fonts/open-iconic/webp/elevator-6x.webp |  Bin 210 -> 0 bytes
 .../static/fonts/open-iconic/webp/elevator-8x.webp |  Bin 248 -> 0 bytes
 assets/static/fonts/open-iconic/webp/elevator.webp |  Bin 104 -> 0 bytes
 .../static/fonts/open-iconic/webp/ellipses-2x.webp |  Bin 94 -> 0 bytes
 .../static/fonts/open-iconic/webp/ellipses-3x.webp |  Bin 112 -> 0 bytes
 .../static/fonts/open-iconic/webp/ellipses-4x.webp |  Bin 112 -> 0 bytes
 .../static/fonts/open-iconic/webp/ellipses-6x.webp |  Bin 120 -> 0 bytes
 .../static/fonts/open-iconic/webp/ellipses-8x.webp |  Bin 126 -> 0 bytes
 assets/static/fonts/open-iconic/webp/ellipses.webp |  Bin 92 -> 0 bytes
 .../fonts/open-iconic/webp/envelope-closed-2x.webp |  Bin 116 -> 0 bytes
 .../fonts/open-iconic/webp/envelope-closed-3x.webp |  Bin 140 -> 0 bytes
 .../fonts/open-iconic/webp/envelope-closed-4x.webp |  Bin 154 -> 0 bytes
 .../fonts/open-iconic/webp/envelope-closed-6x.webp |  Bin 180 -> 0 bytes
 .../fonts/open-iconic/webp/envelope-closed-8x.webp |  Bin 198 -> 0 bytes
 .../fonts/open-iconic/webp/envelope-closed.webp    |  Bin 104 -> 0 bytes
 .../fonts/open-iconic/webp/envelope-open-2x.webp   |  Bin 158 -> 0 bytes
 .../fonts/open-iconic/webp/envelope-open-3x.webp   |  Bin 196 -> 0 bytes
 .../fonts/open-iconic/webp/envelope-open-4x.webp   |  Bin 190 -> 0 bytes
 .../fonts/open-iconic/webp/envelope-open-6x.webp   |  Bin 214 -> 0 bytes
 .../fonts/open-iconic/webp/envelope-open-8x.webp   |  Bin 244 -> 0 bytes
 .../fonts/open-iconic/webp/envelope-open.webp      |  Bin 130 -> 0 bytes
 assets/static/fonts/open-iconic/webp/euro-2x.webp  |  Bin 222 -> 0 bytes
 assets/static/fonts/open-iconic/webp/euro-3x.webp  |  Bin 318 -> 0 bytes
 assets/static/fonts/open-iconic/webp/euro-4x.webp  |  Bin 362 -> 0 bytes
 assets/static/fonts/open-iconic/webp/euro-6x.webp  |  Bin 480 -> 0 bytes
 assets/static/fonts/open-iconic/webp/euro-8x.webp  |  Bin 608 -> 0 bytes
 assets/static/fonts/open-iconic/webp/euro.webp     |  Bin 152 -> 0 bytes
 .../static/fonts/open-iconic/webp/excerpt-2x.webp  |  Bin 104 -> 0 bytes
 .../static/fonts/open-iconic/webp/excerpt-3x.webp  |  Bin 124 -> 0 bytes
 .../static/fonts/open-iconic/webp/excerpt-4x.webp  |  Bin 122 -> 0 bytes
 .../static/fonts/open-iconic/webp/excerpt-6x.webp  |  Bin 128 -> 0 bytes
 .../static/fonts/open-iconic/webp/excerpt-8x.webp  |  Bin 136 -> 0 bytes
 assets/static/fonts/open-iconic/webp/excerpt.webp  |  Bin 94 -> 0 bytes
 .../fonts/open-iconic/webp/expand-down-2x.webp     |  Bin 116 -> 0 bytes
 .../fonts/open-iconic/webp/expand-down-3x.webp     |  Bin 138 -> 0 bytes
 .../fonts/open-iconic/webp/expand-down-4x.webp     |  Bin 148 -> 0 bytes
 .../fonts/open-iconic/webp/expand-down-6x.webp     |  Bin 164 -> 0 bytes
 .../fonts/open-iconic/webp/expand-down-8x.webp     |  Bin 186 -> 0 bytes
 .../static/fonts/open-iconic/webp/expand-down.webp |  Bin 104 -> 0 bytes
 .../fonts/open-iconic/webp/expand-left-2x.webp     |  Bin 120 -> 0 bytes
 .../fonts/open-iconic/webp/expand-left-3x.webp     |  Bin 144 -> 0 bytes
 .../fonts/open-iconic/webp/expand-left-4x.webp     |  Bin 144 -> 0 bytes
 .../fonts/open-iconic/webp/expand-left-6x.webp     |  Bin 148 -> 0 bytes
 .../fonts/open-iconic/webp/expand-left-8x.webp     |  Bin 152 -> 0 bytes
 .../static/fonts/open-iconic/webp/expand-left.webp |  Bin 100 -> 0 bytes
 .../fonts/open-iconic/webp/expand-right-2x.webp    |  Bin 120 -> 0 bytes
 .../fonts/open-iconic/webp/expand-right-3x.webp    |  Bin 142 -> 0 bytes
 .../fonts/open-iconic/webp/expand-right-4x.webp    |  Bin 142 -> 0 bytes
 .../fonts/open-iconic/webp/expand-right-6x.webp    |  Bin 150 -> 0 bytes
 .../fonts/open-iconic/webp/expand-right-8x.webp    |  Bin 156 -> 0 bytes
 .../fonts/open-iconic/webp/expand-right.webp       |  Bin 102 -> 0 bytes
 .../fonts/open-iconic/webp/expand-up-2x.webp       |  Bin 116 -> 0 bytes
 .../fonts/open-iconic/webp/expand-up-3x.webp       |  Bin 138 -> 0 bytes
 .../fonts/open-iconic/webp/expand-up-4x.webp       |  Bin 148 -> 0 bytes
 .../fonts/open-iconic/webp/expand-up-6x.webp       |  Bin 164 -> 0 bytes
 .../fonts/open-iconic/webp/expand-up-8x.webp       |  Bin 186 -> 0 bytes
 .../static/fonts/open-iconic/webp/expand-up.webp   |  Bin 104 -> 0 bytes
 .../fonts/open-iconic/webp/external-link-2x.webp   |  Bin 132 -> 0 bytes
 .../fonts/open-iconic/webp/external-link-3x.webp   |  Bin 168 -> 0 bytes
 .../fonts/open-iconic/webp/external-link-4x.webp   |  Bin 182 -> 0 bytes
 .../fonts/open-iconic/webp/external-link-6x.webp   |  Bin 210 -> 0 bytes
 .../fonts/open-iconic/webp/external-link-8x.webp   |  Bin 240 -> 0 bytes
 .../fonts/open-iconic/webp/external-link.webp      |  Bin 110 -> 0 bytes
 assets/static/fonts/open-iconic/webp/eye-2x.webp   |  Bin 236 -> 0 bytes
 assets/static/fonts/open-iconic/webp/eye-3x.webp   |  Bin 340 -> 0 bytes
 assets/static/fonts/open-iconic/webp/eye-4x.webp   |  Bin 446 -> 0 bytes
 assets/static/fonts/open-iconic/webp/eye-6x.webp   |  Bin 574 -> 0 bytes
 assets/static/fonts/open-iconic/webp/eye-8x.webp   |  Bin 748 -> 0 bytes
 assets/static/fonts/open-iconic/webp/eye.webp      |  Bin 148 -> 0 bytes
 .../fonts/open-iconic/webp/eyedropper-2x.webp      |  Bin 244 -> 0 bytes
 .../fonts/open-iconic/webp/eyedropper-3x.webp      |  Bin 330 -> 0 bytes
 .../fonts/open-iconic/webp/eyedropper-4x.webp      |  Bin 400 -> 0 bytes
 .../fonts/open-iconic/webp/eyedropper-6x.webp      |  Bin 472 -> 0 bytes
 .../fonts/open-iconic/webp/eyedropper-8x.webp      |  Bin 560 -> 0 bytes
 .../static/fonts/open-iconic/webp/eyedropper.webp  |  Bin 160 -> 0 bytes
 assets/static/fonts/open-iconic/webp/file-2x.webp  |  Bin 114 -> 0 bytes
 assets/static/fonts/open-iconic/webp/file-3x.webp  |  Bin 134 -> 0 bytes
 assets/static/fonts/open-iconic/webp/file-4x.webp  |  Bin 138 -> 0 bytes
 assets/static/fonts/open-iconic/webp/file-6x.webp  |  Bin 144 -> 0 bytes
 assets/static/fonts/open-iconic/webp/file-8x.webp  |  Bin 150 -> 0 bytes
 assets/static/fonts/open-iconic/webp/file.webp     |  Bin 102 -> 0 bytes
 assets/static/fonts/open-iconic/webp/fire-2x.webp  |  Bin 218 -> 0 bytes
 assets/static/fonts/open-iconic/webp/fire-3x.webp  |  Bin 310 -> 0 bytes
 assets/static/fonts/open-iconic/webp/fire-4x.webp  |  Bin 388 -> 0 bytes
 assets/static/fonts/open-iconic/webp/fire-6x.webp  |  Bin 528 -> 0 bytes
 assets/static/fonts/open-iconic/webp/fire-8x.webp  |  Bin 680 -> 0 bytes
 assets/static/fonts/open-iconic/webp/fire.webp     |  Bin 146 -> 0 bytes
 assets/static/fonts/open-iconic/webp/flag-2x.webp  |  Bin 134 -> 0 bytes
 assets/static/fonts/open-iconic/webp/flag-3x.webp  |  Bin 170 -> 0 bytes
 assets/static/fonts/open-iconic/webp/flag-4x.webp  |  Bin 174 -> 0 bytes
 assets/static/fonts/open-iconic/webp/flag-6x.webp  |  Bin 218 -> 0 bytes
 assets/static/fonts/open-iconic/webp/flag-8x.webp  |  Bin 254 -> 0 bytes
 assets/static/fonts/open-iconic/webp/flag.webp     |  Bin 114 -> 0 bytes
 assets/static/fonts/open-iconic/webp/flash-2x.webp |  Bin 178 -> 0 bytes
 assets/static/fonts/open-iconic/webp/flash-3x.webp |  Bin 220 -> 0 bytes
 assets/static/fonts/open-iconic/webp/flash-4x.webp |  Bin 204 -> 0 bytes
 assets/static/fonts/open-iconic/webp/flash-6x.webp |  Bin 238 -> 0 bytes
 assets/static/fonts/open-iconic/webp/flash-8x.webp |  Bin 270 -> 0 bytes
 assets/static/fonts/open-iconic/webp/flash.webp    |  Bin 136 -> 0 bytes
 .../static/fonts/open-iconic/webp/folder-2x.webp   |  Bin 112 -> 0 bytes
 .../static/fonts/open-iconic/webp/folder-3x.webp   |  Bin 138 -> 0 bytes
 .../static/fonts/open-iconic/webp/folder-4x.webp   |  Bin 138 -> 0 bytes
 .../static/fonts/open-iconic/webp/folder-6x.webp   |  Bin 150 -> 0 bytes
 .../static/fonts/open-iconic/webp/folder-8x.webp   |  Bin 164 -> 0 bytes
 assets/static/fonts/open-iconic/webp/folder.webp   |  Bin 104 -> 0 bytes
 assets/static/fonts/open-iconic/webp/fork-2x.webp  |  Bin 206 -> 0 bytes
 assets/static/fonts/open-iconic/webp/fork-3x.webp  |  Bin 302 -> 0 bytes
 assets/static/fonts/open-iconic/webp/fork-4x.webp  |  Bin 386 -> 0 bytes
 assets/static/fonts/open-iconic/webp/fork-6x.webp  |  Bin 500 -> 0 bytes
 assets/static/fonts/open-iconic/webp/fork-8x.webp  |  Bin 630 -> 0 bytes
 assets/static/fonts/open-iconic/webp/fork.webp     |  Bin 134 -> 0 bytes
 .../open-iconic/webp/fullscreen-enter-2x.webp      |  Bin 136 -> 0 bytes
 .../open-iconic/webp/fullscreen-enter-3x.webp      |  Bin 174 -> 0 bytes
 .../open-iconic/webp/fullscreen-enter-4x.webp      |  Bin 190 -> 0 bytes
 .../open-iconic/webp/fullscreen-enter-6x.webp      |  Bin 208 -> 0 bytes
 .../open-iconic/webp/fullscreen-enter-8x.webp      |  Bin 248 -> 0 bytes
 .../fonts/open-iconic/webp/fullscreen-enter.webp   |  Bin 108 -> 0 bytes
 .../fonts/open-iconic/webp/fullscreen-exit-2x.webp |  Bin 134 -> 0 bytes
 .../fonts/open-iconic/webp/fullscreen-exit-3x.webp |  Bin 174 -> 0 bytes
 .../fonts/open-iconic/webp/fullscreen-exit-4x.webp |  Bin 194 -> 0 bytes
 .../fonts/open-iconic/webp/fullscreen-exit-6x.webp |  Bin 236 -> 0 bytes
 .../fonts/open-iconic/webp/fullscreen-exit-8x.webp |  Bin 276 -> 0 bytes
 .../fonts/open-iconic/webp/fullscreen-exit.webp    |  Bin 108 -> 0 bytes
 assets/static/fonts/open-iconic/webp/globe-2x.webp |  Bin 274 -> 0 bytes
 assets/static/fonts/open-iconic/webp/globe-3x.webp |  Bin 404 -> 0 bytes
 assets/static/fonts/open-iconic/webp/globe-4x.webp |  Bin 482 -> 0 bytes
 assets/static/fonts/open-iconic/webp/globe-6x.webp |  Bin 682 -> 0 bytes
 assets/static/fonts/open-iconic/webp/globe-8x.webp |  Bin 878 -> 0 bytes
 assets/static/fonts/open-iconic/webp/globe.webp    |  Bin 164 -> 0 bytes
 assets/static/fonts/open-iconic/webp/graph-2x.webp |  Bin 152 -> 0 bytes
 assets/static/fonts/open-iconic/webp/graph-3x.webp |  Bin 204 -> 0 bytes
 assets/static/fonts/open-iconic/webp/graph-4x.webp |  Bin 240 -> 0 bytes
 assets/static/fonts/open-iconic/webp/graph-6x.webp |  Bin 308 -> 0 bytes
 assets/static/fonts/open-iconic/webp/graph-8x.webp |  Bin 390 -> 0 bytes
 assets/static/fonts/open-iconic/webp/graph.webp    |  Bin 122 -> 0 bytes
 .../fonts/open-iconic/webp/grid-four-up-2x.webp    |  Bin 92 -> 0 bytes
 .../fonts/open-iconic/webp/grid-four-up-3x.webp    |  Bin 116 -> 0 bytes
 .../fonts/open-iconic/webp/grid-four-up-4x.webp    |  Bin 112 -> 0 bytes
 .../fonts/open-iconic/webp/grid-four-up-6x.webp    |  Bin 122 -> 0 bytes
 .../fonts/open-iconic/webp/grid-four-up-8x.webp    |  Bin 126 -> 0 bytes
 .../fonts/open-iconic/webp/grid-four-up.webp       |  Bin 84 -> 0 bytes
 .../fonts/open-iconic/webp/grid-three-up-2x.webp   |  Bin 98 -> 0 bytes
 .../fonts/open-iconic/webp/grid-three-up-3x.webp   |  Bin 118 -> 0 bytes
 .../fonts/open-iconic/webp/grid-three-up-4x.webp   |  Bin 120 -> 0 bytes
 .../fonts/open-iconic/webp/grid-three-up-6x.webp   |  Bin 126 -> 0 bytes
 .../fonts/open-iconic/webp/grid-three-up-8x.webp   |  Bin 126 -> 0 bytes
 .../fonts/open-iconic/webp/grid-three-up.webp      |  Bin 92 -> 0 bytes
 .../fonts/open-iconic/webp/grid-two-up-2x.webp     |  Bin 96 -> 0 bytes
 .../fonts/open-iconic/webp/grid-two-up-3x.webp     |  Bin 110 -> 0 bytes
 .../fonts/open-iconic/webp/grid-two-up-4x.webp     |  Bin 118 -> 0 bytes
 .../fonts/open-iconic/webp/grid-two-up-6x.webp     |  Bin 122 -> 0 bytes
 .../fonts/open-iconic/webp/grid-two-up-8x.webp     |  Bin 124 -> 0 bytes
 .../static/fonts/open-iconic/webp/grid-two-up.webp |  Bin 92 -> 0 bytes
 .../fonts/open-iconic/webp/hard-drive-2x.webp      |  Bin 146 -> 0 bytes
 .../fonts/open-iconic/webp/hard-drive-3x.webp      |  Bin 180 -> 0 bytes
 .../fonts/open-iconic/webp/hard-drive-4x.webp      |  Bin 192 -> 0 bytes
 .../fonts/open-iconic/webp/hard-drive-6x.webp      |  Bin 228 -> 0 bytes
 .../fonts/open-iconic/webp/hard-drive-8x.webp      |  Bin 274 -> 0 bytes
 .../static/fonts/open-iconic/webp/hard-drive.webp  |  Bin 120 -> 0 bytes
 .../static/fonts/open-iconic/webp/header-2x.webp   |  Bin 130 -> 0 bytes
 .../static/fonts/open-iconic/webp/header-3x.webp   |  Bin 162 -> 0 bytes
 .../static/fonts/open-iconic/webp/header-4x.webp   |  Bin 172 -> 0 bytes
 .../static/fonts/open-iconic/webp/header-6x.webp   |  Bin 206 -> 0 bytes
 .../static/fonts/open-iconic/webp/header-8x.webp   |  Bin 240 -> 0 bytes
 assets/static/fonts/open-iconic/webp/header.webp   |  Bin 116 -> 0 bytes
 .../fonts/open-iconic/webp/headphones-2x.webp      |  Bin 190 -> 0 bytes
 .../fonts/open-iconic/webp/headphones-3x.webp      |  Bin 256 -> 0 bytes
 .../fonts/open-iconic/webp/headphones-4x.webp      |  Bin 306 -> 0 bytes
 .../fonts/open-iconic/webp/headphones-6x.webp      |  Bin 396 -> 0 bytes
 .../fonts/open-iconic/webp/headphones-8x.webp      |  Bin 512 -> 0 bytes
 .../static/fonts/open-iconic/webp/headphones.webp  |  Bin 144 -> 0 bytes
 assets/static/fonts/open-iconic/webp/heart-2x.webp |  Bin 186 -> 0 bytes
 assets/static/fonts/open-iconic/webp/heart-3x.webp |  Bin 242 -> 0 bytes
 assets/static/fonts/open-iconic/webp/heart-4x.webp |  Bin 284 -> 0 bytes
 assets/static/fonts/open-iconic/webp/heart-6x.webp |  Bin 366 -> 0 bytes
 assets/static/fonts/open-iconic/webp/heart-8x.webp |  Bin 468 -> 0 bytes
 assets/static/fonts/open-iconic/webp/heart.webp    |  Bin 138 -> 0 bytes
 assets/static/fonts/open-iconic/webp/home-2x.webp  |  Bin 158 -> 0 bytes
 assets/static/fonts/open-iconic/webp/home-3x.webp  |  Bin 194 -> 0 bytes
 assets/static/fonts/open-iconic/webp/home-4x.webp  |  Bin 212 -> 0 bytes
 assets/static/fonts/open-iconic/webp/home-6x.webp  |  Bin 252 -> 0 bytes
 assets/static/fonts/open-iconic/webp/home-8x.webp  |  Bin 300 -> 0 bytes
 assets/static/fonts/open-iconic/webp/home.webp     |  Bin 134 -> 0 bytes
 assets/static/fonts/open-iconic/webp/image-2x.webp |  Bin 134 -> 0 bytes
 assets/static/fonts/open-iconic/webp/image-3x.webp |  Bin 162 -> 0 bytes
 assets/static/fonts/open-iconic/webp/image-4x.webp |  Bin 164 -> 0 bytes
 assets/static/fonts/open-iconic/webp/image-6x.webp |  Bin 192 -> 0 bytes
 assets/static/fonts/open-iconic/webp/image-8x.webp |  Bin 204 -> 0 bytes
 assets/static/fonts/open-iconic/webp/image.webp    |  Bin 112 -> 0 bytes
 assets/static/fonts/open-iconic/webp/inbox-2x.webp |  Bin 126 -> 0 bytes
 assets/static/fonts/open-iconic/webp/inbox-3x.webp |  Bin 152 -> 0 bytes
 assets/static/fonts/open-iconic/webp/inbox-4x.webp |  Bin 156 -> 0 bytes
 assets/static/fonts/open-iconic/webp/inbox-6x.webp |  Bin 164 -> 0 bytes
 assets/static/fonts/open-iconic/webp/inbox-8x.webp |  Bin 184 -> 0 bytes
 assets/static/fonts/open-iconic/webp/inbox.webp    |  Bin 118 -> 0 bytes
 .../static/fonts/open-iconic/webp/infinity-2x.webp |  Bin 214 -> 0 bytes
 .../static/fonts/open-iconic/webp/infinity-3x.webp |  Bin 314 -> 0 bytes
 .../static/fonts/open-iconic/webp/infinity-4x.webp |  Bin 360 -> 0 bytes
 .../static/fonts/open-iconic/webp/infinity-6x.webp |  Bin 500 -> 0 bytes
 .../static/fonts/open-iconic/webp/infinity-8x.webp |  Bin 628 -> 0 bytes
 assets/static/fonts/open-iconic/webp/infinity.webp |  Bin 134 -> 0 bytes
 assets/static/fonts/open-iconic/webp/info-2x.webp  |  Bin 186 -> 0 bytes
 assets/static/fonts/open-iconic/webp/info-3x.webp  |  Bin 276 -> 0 bytes
 assets/static/fonts/open-iconic/webp/info-4x.webp  |  Bin 328 -> 0 bytes
 assets/static/fonts/open-iconic/webp/info-6x.webp  |  Bin 448 -> 0 bytes
 assets/static/fonts/open-iconic/webp/info-8x.webp  |  Bin 532 -> 0 bytes
 assets/static/fonts/open-iconic/webp/info.webp     |  Bin 136 -> 0 bytes
 .../static/fonts/open-iconic/webp/italic-2x.webp   |  Bin 170 -> 0 bytes
 .../static/fonts/open-iconic/webp/italic-3x.webp   |  Bin 212 -> 0 bytes
 .../static/fonts/open-iconic/webp/italic-4x.webp   |  Bin 222 -> 0 bytes
 .../static/fonts/open-iconic/webp/italic-6x.webp   |  Bin 252 -> 0 bytes
 .../static/fonts/open-iconic/webp/italic-8x.webp   |  Bin 258 -> 0 bytes
 assets/static/fonts/open-iconic/webp/italic.webp   |  Bin 134 -> 0 bytes
 .../fonts/open-iconic/webp/justify-center-2x.webp  |  Bin 100 -> 0 bytes
 .../fonts/open-iconic/webp/justify-center-3x.webp  |  Bin 114 -> 0 bytes
 .../fonts/open-iconic/webp/justify-center-4x.webp  |  Bin 122 -> 0 bytes
 .../fonts/open-iconic/webp/justify-center-6x.webp  |  Bin 126 -> 0 bytes
 .../fonts/open-iconic/webp/justify-center-8x.webp  |  Bin 130 -> 0 bytes
 .../fonts/open-iconic/webp/justify-center.webp     |  Bin 90 -> 0 bytes
 .../fonts/open-iconic/webp/justify-left-2x.webp    |  Bin 96 -> 0 bytes
 .../fonts/open-iconic/webp/justify-left-3x.webp    |  Bin 116 -> 0 bytes
 .../fonts/open-iconic/webp/justify-left-4x.webp    |  Bin 116 -> 0 bytes
 .../fonts/open-iconic/webp/justify-left-6x.webp    |  Bin 122 -> 0 bytes
 .../fonts/open-iconic/webp/justify-left-8x.webp    |  Bin 128 -> 0 bytes
 .../fonts/open-iconic/webp/justify-left.webp       |  Bin 92 -> 0 bytes
 .../fonts/open-iconic/webp/justify-right-2x.webp   |  Bin 96 -> 0 bytes
 .../fonts/open-iconic/webp/justify-right-3x.webp   |  Bin 116 -> 0 bytes
 .../fonts/open-iconic/webp/justify-right-4x.webp   |  Bin 112 -> 0 bytes
 .../fonts/open-iconic/webp/justify-right-6x.webp   |  Bin 124 -> 0 bytes
 .../fonts/open-iconic/webp/justify-right-8x.webp   |  Bin 128 -> 0 bytes
 .../fonts/open-iconic/webp/justify-right.webp      |  Bin 94 -> 0 bytes
 assets/static/fonts/open-iconic/webp/key-2x.webp   |  Bin 190 -> 0 bytes
 assets/static/fonts/open-iconic/webp/key-3x.webp   |  Bin 252 -> 0 bytes
 assets/static/fonts/open-iconic/webp/key-4x.webp   |  Bin 296 -> 0 bytes
 assets/static/fonts/open-iconic/webp/key-6x.webp   |  Bin 392 -> 0 bytes
 assets/static/fonts/open-iconic/webp/key-8x.webp   |  Bin 506 -> 0 bytes
 assets/static/fonts/open-iconic/webp/key.webp      |  Bin 140 -> 0 bytes
 .../static/fonts/open-iconic/webp/laptop-2x.webp   |  Bin 132 -> 0 bytes
 .../static/fonts/open-iconic/webp/laptop-3x.webp   |  Bin 172 -> 0 bytes
 .../static/fonts/open-iconic/webp/laptop-4x.webp   |  Bin 170 -> 0 bytes
 .../static/fonts/open-iconic/webp/laptop-6x.webp   |  Bin 186 -> 0 bytes
 .../static/fonts/open-iconic/webp/laptop-8x.webp   |  Bin 212 -> 0 bytes
 assets/static/fonts/open-iconic/webp/laptop.webp   |  Bin 122 -> 0 bytes
 .../static/fonts/open-iconic/webp/layers-2x.webp   |  Bin 108 -> 0 bytes
 .../static/fonts/open-iconic/webp/layers-3x.webp   |  Bin 126 -> 0 bytes
 .../static/fonts/open-iconic/webp/layers-4x.webp   |  Bin 122 -> 0 bytes
 .../static/fonts/open-iconic/webp/layers-6x.webp   |  Bin 130 -> 0 bytes
 .../static/fonts/open-iconic/webp/layers-8x.webp   |  Bin 132 -> 0 bytes
 assets/static/fonts/open-iconic/webp/layers.webp   |  Bin 96 -> 0 bytes
 .../fonts/open-iconic/webp/lightbulb-2x.webp       |  Bin 188 -> 0 bytes
 .../fonts/open-iconic/webp/lightbulb-3x.webp       |  Bin 250 -> 0 bytes
 .../fonts/open-iconic/webp/lightbulb-4x.webp       |  Bin 298 -> 0 bytes
 .../fonts/open-iconic/webp/lightbulb-6x.webp       |  Bin 384 -> 0 bytes
 .../fonts/open-iconic/webp/lightbulb-8x.webp       |  Bin 462 -> 0 bytes
 .../static/fonts/open-iconic/webp/lightbulb.webp   |  Bin 144 -> 0 bytes
 .../fonts/open-iconic/webp/link-broken-2x.webp     |  Bin 246 -> 0 bytes
 .../fonts/open-iconic/webp/link-broken-3x.webp     |  Bin 348 -> 0 bytes
 .../fonts/open-iconic/webp/link-broken-4x.webp     |  Bin 420 -> 0 bytes
 .../fonts/open-iconic/webp/link-broken-6x.webp     |  Bin 510 -> 0 bytes
 .../fonts/open-iconic/webp/link-broken-8x.webp     |  Bin 672 -> 0 bytes
 .../static/fonts/open-iconic/webp/link-broken.webp |  Bin 152 -> 0 bytes
 .../fonts/open-iconic/webp/link-intact-2x.webp     |  Bin 270 -> 0 bytes
 .../fonts/open-iconic/webp/link-intact-3x.webp     |  Bin 372 -> 0 bytes
 .../fonts/open-iconic/webp/link-intact-4x.webp     |  Bin 410 -> 0 bytes
 .../fonts/open-iconic/webp/link-intact-6x.webp     |  Bin 566 -> 0 bytes
 .../fonts/open-iconic/webp/link-intact-8x.webp     |  Bin 720 -> 0 bytes
 .../static/fonts/open-iconic/webp/link-intact.webp |  Bin 162 -> 0 bytes
 assets/static/fonts/open-iconic/webp/list-2x.webp  |  Bin 120 -> 0 bytes
 assets/static/fonts/open-iconic/webp/list-3x.webp  |  Bin 152 -> 0 bytes
 assets/static/fonts/open-iconic/webp/list-4x.webp  |  Bin 164 -> 0 bytes
 assets/static/fonts/open-iconic/webp/list-6x.webp  |  Bin 202 -> 0 bytes
 assets/static/fonts/open-iconic/webp/list-8x.webp  |  Bin 220 -> 0 bytes
 .../fonts/open-iconic/webp/list-rich-2x.webp       |  Bin 104 -> 0 bytes
 .../fonts/open-iconic/webp/list-rich-3x.webp       |  Bin 122 -> 0 bytes
 .../fonts/open-iconic/webp/list-rich-4x.webp       |  Bin 122 -> 0 bytes
 .../fonts/open-iconic/webp/list-rich-6x.webp       |  Bin 124 -> 0 bytes
 .../fonts/open-iconic/webp/list-rich-8x.webp       |  Bin 132 -> 0 bytes
 .../static/fonts/open-iconic/webp/list-rich.webp   |  Bin 92 -> 0 bytes
 assets/static/fonts/open-iconic/webp/list.webp     |  Bin 108 -> 0 bytes
 .../static/fonts/open-iconic/webp/location-2x.webp |  Bin 158 -> 0 bytes
 .../static/fonts/open-iconic/webp/location-3x.webp |  Bin 198 -> 0 bytes
 .../static/fonts/open-iconic/webp/location-4x.webp |  Bin 218 -> 0 bytes
 .../static/fonts/open-iconic/webp/location-6x.webp |  Bin 266 -> 0 bytes
 .../static/fonts/open-iconic/webp/location-8x.webp |  Bin 310 -> 0 bytes
 assets/static/fonts/open-iconic/webp/location.webp |  Bin 126 -> 0 bytes
 .../fonts/open-iconic/webp/lock-locked-2x.webp     |  Bin 148 -> 0 bytes
 .../fonts/open-iconic/webp/lock-locked-3x.webp     |  Bin 188 -> 0 bytes
 .../fonts/open-iconic/webp/lock-locked-4x.webp     |  Bin 214 -> 0 bytes
 .../fonts/open-iconic/webp/lock-locked-6x.webp     |  Bin 272 -> 0 bytes
 .../fonts/open-iconic/webp/lock-locked-8x.webp     |  Bin 328 -> 0 bytes
 .../static/fonts/open-iconic/webp/lock-locked.webp |  Bin 118 -> 0 bytes
 .../fonts/open-iconic/webp/lock-unlocked-2x.webp   |  Bin 144 -> 0 bytes
 .../fonts/open-iconic/webp/lock-unlocked-3x.webp   |  Bin 184 -> 0 bytes
 .../fonts/open-iconic/webp/lock-unlocked-4x.webp   |  Bin 212 -> 0 bytes
 .../fonts/open-iconic/webp/lock-unlocked-6x.webp   |  Bin 270 -> 0 bytes
 .../fonts/open-iconic/webp/lock-unlocked-8x.webp   |  Bin 324 -> 0 bytes
 .../fonts/open-iconic/webp/lock-unlocked.webp      |  Bin 116 -> 0 bytes
 assets/static/fonts/open-iconic/webp/loop-2x.webp  |  Bin 160 -> 0 bytes
 assets/static/fonts/open-iconic/webp/loop-3x.webp  |  Bin 204 -> 0 bytes
 assets/static/fonts/open-iconic/webp/loop-4x.webp  |  Bin 234 -> 0 bytes
 assets/static/fonts/open-iconic/webp/loop-6x.webp  |  Bin 270 -> 0 bytes
 assets/static/fonts/open-iconic/webp/loop-8x.webp  |  Bin 322 -> 0 bytes
 .../fonts/open-iconic/webp/loop-circular-2x.webp   |  Bin 198 -> 0 bytes
 .../fonts/open-iconic/webp/loop-circular-3x.webp   |  Bin 266 -> 0 bytes
 .../fonts/open-iconic/webp/loop-circular-4x.webp   |  Bin 334 -> 0 bytes
 .../fonts/open-iconic/webp/loop-circular-6x.webp   |  Bin 452 -> 0 bytes
 .../fonts/open-iconic/webp/loop-circular-8x.webp   |  Bin 582 -> 0 bytes
 .../fonts/open-iconic/webp/loop-circular.webp      |  Bin 144 -> 0 bytes
 .../fonts/open-iconic/webp/loop-square-2x.webp     |  Bin 156 -> 0 bytes
 .../fonts/open-iconic/webp/loop-square-3x.webp     |  Bin 220 -> 0 bytes
 .../fonts/open-iconic/webp/loop-square-4x.webp     |  Bin 224 -> 0 bytes
 .../fonts/open-iconic/webp/loop-square-6x.webp     |  Bin 270 -> 0 bytes
 .../fonts/open-iconic/webp/loop-square-8x.webp     |  Bin 314 -> 0 bytes
 .../static/fonts/open-iconic/webp/loop-square.webp |  Bin 132 -> 0 bytes
 assets/static/fonts/open-iconic/webp/loop.webp     |  Bin 126 -> 0 bytes
 .../open-iconic/webp/magnifying-glass-2x.webp      |  Bin 254 -> 0 bytes
 .../open-iconic/webp/magnifying-glass-3x.webp      |  Bin 378 -> 0 bytes
 .../open-iconic/webp/magnifying-glass-4x.webp      |  Bin 432 -> 0 bytes
 .../open-iconic/webp/magnifying-glass-6x.webp      |  Bin 612 -> 0 bytes
 .../open-iconic/webp/magnifying-glass-8x.webp      |  Bin 792 -> 0 bytes
 .../fonts/open-iconic/webp/magnifying-glass.webp   |  Bin 152 -> 0 bytes
 assets/static/fonts/open-iconic/webp/map-2x.webp   |  Bin 166 -> 0 bytes
 assets/static/fonts/open-iconic/webp/map-3x.webp   |  Bin 226 -> 0 bytes
 assets/static/fonts/open-iconic/webp/map-4x.webp   |  Bin 260 -> 0 bytes
 assets/static/fonts/open-iconic/webp/map-6x.webp   |  Bin 356 -> 0 bytes
 assets/static/fonts/open-iconic/webp/map-8x.webp   |  Bin 440 -> 0 bytes
 .../fonts/open-iconic/webp/map-marker-2x.webp      |  Bin 228 -> 0 bytes
 .../fonts/open-iconic/webp/map-marker-3x.webp      |  Bin 318 -> 0 bytes
 .../fonts/open-iconic/webp/map-marker-4x.webp      |  Bin 412 -> 0 bytes
 .../fonts/open-iconic/webp/map-marker-6x.webp      |  Bin 528 -> 0 bytes
 .../fonts/open-iconic/webp/map-marker-8x.webp      |  Bin 700 -> 0 bytes
 .../static/fonts/open-iconic/webp/map-marker.webp  |  Bin 150 -> 0 bytes
 assets/static/fonts/open-iconic/webp/map.webp      |  Bin 132 -> 0 bytes
 .../fonts/open-iconic/webp/media-pause-2x.webp     |  Bin 92 -> 0 bytes
 .../fonts/open-iconic/webp/media-pause-3x.webp     |  Bin 112 -> 0 bytes
 .../fonts/open-iconic/webp/media-pause-4x.webp     |  Bin 118 -> 0 bytes
 .../fonts/open-iconic/webp/media-pause-6x.webp     |  Bin 118 -> 0 bytes
 .../fonts/open-iconic/webp/media-pause-8x.webp     |  Bin 120 -> 0 bytes
 .../static/fonts/open-iconic/webp/media-pause.webp |  Bin 90 -> 0 bytes
 .../fonts/open-iconic/webp/media-play-2x.webp      |  Bin 122 -> 0 bytes
 .../fonts/open-iconic/webp/media-play-3x.webp      |  Bin 142 -> 0 bytes
 .../fonts/open-iconic/webp/media-play-4x.webp      |  Bin 136 -> 0 bytes
 .../fonts/open-iconic/webp/media-play-6x.webp      |  Bin 140 -> 0 bytes
 .../fonts/open-iconic/webp/media-play-8x.webp      |  Bin 146 -> 0 bytes
 .../static/fonts/open-iconic/webp/media-play.webp  |  Bin 108 -> 0 bytes
 .../fonts/open-iconic/webp/media-record-2x.webp    |  Bin 176 -> 0 bytes
 .../fonts/open-iconic/webp/media-record-3x.webp    |  Bin 228 -> 0 bytes
 .../fonts/open-iconic/webp/media-record-4x.webp    |  Bin 266 -> 0 bytes
 .../fonts/open-iconic/webp/media-record-6x.webp    |  Bin 358 -> 0 bytes
 .../fonts/open-iconic/webp/media-record-8x.webp    |  Bin 450 -> 0 bytes
 .../fonts/open-iconic/webp/media-record.webp       |  Bin 132 -> 0 bytes
 .../open-iconic/webp/media-skip-backward-2x.webp   |  Bin 140 -> 0 bytes
 .../open-iconic/webp/media-skip-backward-3x.webp   |  Bin 166 -> 0 bytes
 .../open-iconic/webp/media-skip-backward-4x.webp   |  Bin 172 -> 0 bytes
 .../open-iconic/webp/media-skip-backward-6x.webp   |  Bin 174 -> 0 bytes
 .../open-iconic/webp/media-skip-backward-8x.webp   |  Bin 180 -> 0 bytes
 .../open-iconic/webp/media-skip-backward.webp      |  Bin 118 -> 0 bytes
 .../open-iconic/webp/media-skip-forward-2x.webp    |  Bin 136 -> 0 bytes
 .../open-iconic/webp/media-skip-forward-3x.webp    |  Bin 168 -> 0 bytes
 .../open-iconic/webp/media-skip-forward-4x.webp    |  Bin 174 -> 0 bytes
 .../open-iconic/webp/media-skip-forward-6x.webp    |  Bin 176 -> 0 bytes
 .../open-iconic/webp/media-skip-forward-8x.webp    |  Bin 182 -> 0 bytes
 .../fonts/open-iconic/webp/media-skip-forward.webp |  Bin 120 -> 0 bytes
 .../open-iconic/webp/media-step-backward-2x.webp   |  Bin 156 -> 0 bytes
 .../open-iconic/webp/media-step-backward-3x.webp   |  Bin 184 -> 0 bytes
 .../open-iconic/webp/media-step-backward-4x.webp   |  Bin 186 -> 0 bytes
 .../open-iconic/webp/media-step-backward-6x.webp   |  Bin 188 -> 0 bytes
 .../open-iconic/webp/media-step-backward-8x.webp   |  Bin 186 -> 0 bytes
 .../open-iconic/webp/media-step-backward.webp      |  Bin 126 -> 0 bytes
 .../open-iconic/webp/media-step-forward-2x.webp    |  Bin 158 -> 0 bytes
 .../open-iconic/webp/media-step-forward-3x.webp    |  Bin 178 -> 0 bytes
 .../open-iconic/webp/media-step-forward-4x.webp    |  Bin 180 -> 0 bytes
 .../open-iconic/webp/media-step-forward-6x.webp    |  Bin 176 -> 0 bytes
 .../open-iconic/webp/media-step-forward-8x.webp    |  Bin 180 -> 0 bytes
 .../fonts/open-iconic/webp/media-step-forward.webp |  Bin 128 -> 0 bytes
 .../fonts/open-iconic/webp/media-stop-2x.webp      |  Bin 96 -> 0 bytes
 .../fonts/open-iconic/webp/media-stop-3x.webp      |  Bin 112 -> 0 bytes
 .../fonts/open-iconic/webp/media-stop-4x.webp      |  Bin 114 -> 0 bytes
 .../fonts/open-iconic/webp/media-stop-6x.webp      |  Bin 118 -> 0 bytes
 .../fonts/open-iconic/webp/media-stop-8x.webp      |  Bin 122 -> 0 bytes
 .../static/fonts/open-iconic/webp/media-stop.webp  |  Bin 90 -> 0 bytes
 .../fonts/open-iconic/webp/medical-cross-2x.webp   |  Bin 98 -> 0 bytes
 .../fonts/open-iconic/webp/medical-cross-3x.webp   |  Bin 116 -> 0 bytes
 .../fonts/open-iconic/webp/medical-cross-4x.webp   |  Bin 110 -> 0 bytes
 .../fonts/open-iconic/webp/medical-cross-6x.webp   |  Bin 122 -> 0 bytes
 .../fonts/open-iconic/webp/medical-cross-8x.webp   |  Bin 126 -> 0 bytes
 .../fonts/open-iconic/webp/medical-cross.webp      |  Bin 92 -> 0 bytes
 assets/static/fonts/open-iconic/webp/menu-2x.webp  |  Bin 110 -> 0 bytes
 assets/static/fonts/open-iconic/webp/menu-3x.webp  |  Bin 126 -> 0 bytes
 assets/static/fonts/open-iconic/webp/menu-4x.webp  |  Bin 126 -> 0 bytes
 assets/static/fonts/open-iconic/webp/menu-6x.webp  |  Bin 130 -> 0 bytes
 assets/static/fonts/open-iconic/webp/menu-8x.webp  |  Bin 132 -> 0 bytes
 assets/static/fonts/open-iconic/webp/menu.webp     |  Bin 102 -> 0 bytes
 .../fonts/open-iconic/webp/microphone-2x.webp      |  Bin 232 -> 0 bytes
 .../fonts/open-iconic/webp/microphone-3x.webp      |  Bin 336 -> 0 bytes
 .../fonts/open-iconic/webp/microphone-4x.webp      |  Bin 398 -> 0 bytes
 .../fonts/open-iconic/webp/microphone-6x.webp      |  Bin 532 -> 0 bytes
 .../fonts/open-iconic/webp/microphone-8x.webp      |  Bin 676 -> 0 bytes
 .../static/fonts/open-iconic/webp/microphone.webp  |  Bin 152 -> 0 bytes
 assets/static/fonts/open-iconic/webp/minus-2x.webp |  Bin 92 -> 0 bytes
 assets/static/fonts/open-iconic/webp/minus-3x.webp |  Bin 106 -> 0 bytes
 assets/static/fonts/open-iconic/webp/minus-4x.webp |  Bin 106 -> 0 bytes
 assets/static/fonts/open-iconic/webp/minus-6x.webp |  Bin 108 -> 0 bytes
 assets/static/fonts/open-iconic/webp/minus-8x.webp |  Bin 116 -> 0 bytes
 assets/static/fonts/open-iconic/webp/minus.webp    |  Bin 92 -> 0 bytes
 .../static/fonts/open-iconic/webp/monitor-2x.webp  |  Bin 138 -> 0 bytes
 .../static/fonts/open-iconic/webp/monitor-3x.webp  |  Bin 178 -> 0 bytes
 .../static/fonts/open-iconic/webp/monitor-4x.webp  |  Bin 186 -> 0 bytes
 .../static/fonts/open-iconic/webp/monitor-6x.webp  |  Bin 218 -> 0 bytes
 .../static/fonts/open-iconic/webp/monitor-8x.webp  |  Bin 252 -> 0 bytes
 assets/static/fonts/open-iconic/webp/monitor.webp  |  Bin 122 -> 0 bytes
 assets/static/fonts/open-iconic/webp/moon-2x.webp  |  Bin 214 -> 0 bytes
 assets/static/fonts/open-iconic/webp/moon-3x.webp  |  Bin 290 -> 0 bytes
 assets/static/fonts/open-iconic/webp/moon-4x.webp  |  Bin 360 -> 0 bytes
 assets/static/fonts/open-iconic/webp/moon-6x.webp  |  Bin 442 -> 0 bytes
 assets/static/fonts/open-iconic/webp/moon-8x.webp  |  Bin 550 -> 0 bytes
 assets/static/fonts/open-iconic/webp/moon.webp     |  Bin 148 -> 0 bytes
 assets/static/fonts/open-iconic/webp/move-2x.webp  |  Bin 136 -> 0 bytes
 assets/static/fonts/open-iconic/webp/move-3x.webp  |  Bin 194 -> 0 bytes
 assets/static/fonts/open-iconic/webp/move-4x.webp  |  Bin 196 -> 0 bytes
 assets/static/fonts/open-iconic/webp/move-6x.webp  |  Bin 236 -> 0 bytes
 assets/static/fonts/open-iconic/webp/move-8x.webp  |  Bin 270 -> 0 bytes
 assets/static/fonts/open-iconic/webp/move.webp     |  Bin 124 -> 0 bytes
 .../fonts/open-iconic/webp/musical-note-2x.webp    |  Bin 192 -> 0 bytes
 .../fonts/open-iconic/webp/musical-note-3x.webp    |  Bin 258 -> 0 bytes
 .../fonts/open-iconic/webp/musical-note-4x.webp    |  Bin 296 -> 0 bytes
 .../fonts/open-iconic/webp/musical-note-6x.webp    |  Bin 392 -> 0 bytes
 .../fonts/open-iconic/webp/musical-note-8x.webp    |  Bin 462 -> 0 bytes
 .../fonts/open-iconic/webp/musical-note.webp       |  Bin 140 -> 0 bytes
 .../fonts/open-iconic/webp/paperclip-2x.webp       |  Bin 286 -> 0 bytes
 .../fonts/open-iconic/webp/paperclip-3x.webp       |  Bin 406 -> 0 bytes
 .../fonts/open-iconic/webp/paperclip-4x.webp       |  Bin 504 -> 0 bytes
 .../fonts/open-iconic/webp/paperclip-6x.webp       |  Bin 724 -> 0 bytes
 .../fonts/open-iconic/webp/paperclip-8x.webp       |  Bin 924 -> 0 bytes
 .../static/fonts/open-iconic/webp/paperclip.webp   |  Bin 170 -> 0 bytes
 .../static/fonts/open-iconic/webp/pencil-2x.webp   |  Bin 136 -> 0 bytes
 .../static/fonts/open-iconic/webp/pencil-3x.webp   |  Bin 176 -> 0 bytes
 .../static/fonts/open-iconic/webp/pencil-4x.webp   |  Bin 188 -> 0 bytes
 .../static/fonts/open-iconic/webp/pencil-6x.webp   |  Bin 210 -> 0 bytes
 .../static/fonts/open-iconic/webp/pencil-8x.webp   |  Bin 254 -> 0 bytes
 assets/static/fonts/open-iconic/webp/pencil.webp   |  Bin 112 -> 0 bytes
 .../static/fonts/open-iconic/webp/people-2x.webp   |  Bin 236 -> 0 bytes
 .../static/fonts/open-iconic/webp/people-3x.webp   |  Bin 332 -> 0 bytes
 .../static/fonts/open-iconic/webp/people-4x.webp   |  Bin 396 -> 0 bytes
 .../static/fonts/open-iconic/webp/people-6x.webp   |  Bin 546 -> 0 bytes
 .../static/fonts/open-iconic/webp/people-8x.webp   |  Bin 708 -> 0 bytes
 assets/static/fonts/open-iconic/webp/people.webp   |  Bin 156 -> 0 bytes
 .../static/fonts/open-iconic/webp/person-2x.webp   |  Bin 202 -> 0 bytes
 .../static/fonts/open-iconic/webp/person-3x.webp   |  Bin 272 -> 0 bytes
 .../static/fonts/open-iconic/webp/person-4x.webp   |  Bin 338 -> 0 bytes
 .../static/fonts/open-iconic/webp/person-6x.webp   |  Bin 416 -> 0 bytes
 .../static/fonts/open-iconic/webp/person-8x.webp   |  Bin 540 -> 0 bytes
 assets/static/fonts/open-iconic/webp/person.webp   |  Bin 146 -> 0 bytes
 assets/static/fonts/open-iconic/webp/phone-2x.webp |  Bin 128 -> 0 bytes
 assets/static/fonts/open-iconic/webp/phone-3x.webp |  Bin 158 -> 0 bytes
 assets/static/fonts/open-iconic/webp/phone-4x.webp |  Bin 170 -> 0 bytes
 assets/static/fonts/open-iconic/webp/phone-6x.webp |  Bin 190 -> 0 bytes
 assets/static/fonts/open-iconic/webp/phone-8x.webp |  Bin 224 -> 0 bytes
 assets/static/fonts/open-iconic/webp/phone.webp    |  Bin 114 -> 0 bytes
 .../fonts/open-iconic/webp/pie-chart-2x.webp       |  Bin 238 -> 0 bytes
 .../fonts/open-iconic/webp/pie-chart-3x.webp       |  Bin 314 -> 0 bytes
 .../fonts/open-iconic/webp/pie-chart-4x.webp       |  Bin 386 -> 0 bytes
 .../fonts/open-iconic/webp/pie-chart-6x.webp       |  Bin 474 -> 0 bytes
 .../fonts/open-iconic/webp/pie-chart-8x.webp       |  Bin 630 -> 0 bytes
 .../static/fonts/open-iconic/webp/pie-chart.webp   |  Bin 162 -> 0 bytes
 assets/static/fonts/open-iconic/webp/pin-2x.webp   |  Bin 146 -> 0 bytes
 assets/static/fonts/open-iconic/webp/pin-3x.webp   |  Bin 188 -> 0 bytes
 assets/static/fonts/open-iconic/webp/pin-4x.webp   |  Bin 216 -> 0 bytes
 assets/static/fonts/open-iconic/webp/pin-6x.webp   |  Bin 264 -> 0 bytes
 assets/static/fonts/open-iconic/webp/pin-8x.webp   |  Bin 314 -> 0 bytes
 assets/static/fonts/open-iconic/webp/pin.webp      |  Bin 126 -> 0 bytes
 .../fonts/open-iconic/webp/play-circle-2x.webp     |  Bin 216 -> 0 bytes
 .../fonts/open-iconic/webp/play-circle-3x.webp     |  Bin 292 -> 0 bytes
 .../fonts/open-iconic/webp/play-circle-4x.webp     |  Bin 360 -> 0 bytes
 .../fonts/open-iconic/webp/play-circle-6x.webp     |  Bin 524 -> 0 bytes
 .../fonts/open-iconic/webp/play-circle-8x.webp     |  Bin 674 -> 0 bytes
 .../static/fonts/open-iconic/webp/play-circle.webp |  Bin 150 -> 0 bytes
 assets/static/fonts/open-iconic/webp/plus-2x.webp  |  Bin 98 -> 0 bytes
 assets/static/fonts/open-iconic/webp/plus-3x.webp  |  Bin 110 -> 0 bytes
 assets/static/fonts/open-iconic/webp/plus-4x.webp  |  Bin 118 -> 0 bytes
 assets/static/fonts/open-iconic/webp/plus-6x.webp  |  Bin 122 -> 0 bytes
 assets/static/fonts/open-iconic/webp/plus-8x.webp  |  Bin 124 -> 0 bytes
 assets/static/fonts/open-iconic/webp/plus.webp     |  Bin 92 -> 0 bytes
 .../fonts/open-iconic/webp/power-standby-2x.webp   |  Bin 240 -> 0 bytes
 .../fonts/open-iconic/webp/power-standby-3x.webp   |  Bin 348 -> 0 bytes
 .../fonts/open-iconic/webp/power-standby-4x.webp   |  Bin 446 -> 0 bytes
 .../fonts/open-iconic/webp/power-standby-6x.webp   |  Bin 588 -> 0 bytes
 .../fonts/open-iconic/webp/power-standby-8x.webp   |  Bin 760 -> 0 bytes
 .../fonts/open-iconic/webp/power-standby.webp      |  Bin 154 -> 0 bytes
 assets/static/fonts/open-iconic/webp/print-2x.webp |  Bin 138 -> 0 bytes
 assets/static/fonts/open-iconic/webp/print-3x.webp |  Bin 160 -> 0 bytes
 assets/static/fonts/open-iconic/webp/print-4x.webp |  Bin 168 -> 0 bytes
 assets/static/fonts/open-iconic/webp/print-6x.webp |  Bin 172 -> 0 bytes
 assets/static/fonts/open-iconic/webp/print-8x.webp |  Bin 180 -> 0 bytes
 assets/static/fonts/open-iconic/webp/print.webp    |  Bin 122 -> 0 bytes
 .../static/fonts/open-iconic/webp/project-2x.webp  |  Bin 108 -> 0 bytes
 .../static/fonts/open-iconic/webp/project-3x.webp  |  Bin 128 -> 0 bytes
 .../static/fonts/open-iconic/webp/project-4x.webp  |  Bin 122 -> 0 bytes
 .../static/fonts/open-iconic/webp/project-6x.webp  |  Bin 130 -> 0 bytes
 .../static/fonts/open-iconic/webp/project-8x.webp  |  Bin 134 -> 0 bytes
 assets/static/fonts/open-iconic/webp/project.webp  |  Bin 94 -> 0 bytes
 assets/static/fonts/open-iconic/webp/pulse-2x.webp |  Bin 228 -> 0 bytes
 assets/static/fonts/open-iconic/webp/pulse-3x.webp |  Bin 328 -> 0 bytes
 assets/static/fonts/open-iconic/webp/pulse-4x.webp |  Bin 402 -> 0 bytes
 assets/static/fonts/open-iconic/webp/pulse-6x.webp |  Bin 508 -> 0 bytes
 assets/static/fonts/open-iconic/webp/pulse-8x.webp |  Bin 646 -> 0 bytes
 assets/static/fonts/open-iconic/webp/pulse.webp    |  Bin 156 -> 0 bytes
 .../fonts/open-iconic/webp/puzzle-piece-2x.webp    |  Bin 176 -> 0 bytes
 .../fonts/open-iconic/webp/puzzle-piece-3x.webp    |  Bin 220 -> 0 bytes
 .../fonts/open-iconic/webp/puzzle-piece-4x.webp    |  Bin 272 -> 0 bytes
 .../fonts/open-iconic/webp/puzzle-piece-6x.webp    |  Bin 344 -> 0 bytes
 .../fonts/open-iconic/webp/puzzle-piece-8x.webp    |  Bin 432 -> 0 bytes
 .../fonts/open-iconic/webp/puzzle-piece.webp       |  Bin 124 -> 0 bytes
 .../fonts/open-iconic/webp/question-mark-2x.webp   |  Bin 200 -> 0 bytes
 .../fonts/open-iconic/webp/question-mark-3x.webp   |  Bin 268 -> 0 bytes
 .../fonts/open-iconic/webp/question-mark-4x.webp   |  Bin 334 -> 0 bytes
 .../fonts/open-iconic/webp/question-mark-6x.webp   |  Bin 416 -> 0 bytes
 .../fonts/open-iconic/webp/question-mark-8x.webp   |  Bin 518 -> 0 bytes
 .../fonts/open-iconic/webp/question-mark.webp      |  Bin 146 -> 0 bytes
 assets/static/fonts/open-iconic/webp/rain-2x.webp  |  Bin 232 -> 0 bytes
 assets/static/fonts/open-iconic/webp/rain-3x.webp  |  Bin 334 -> 0 bytes
 assets/static/fonts/open-iconic/webp/rain-4x.webp  |  Bin 394 -> 0 bytes
 assets/static/fonts/open-iconic/webp/rain-6x.webp  |  Bin 490 -> 0 bytes
 assets/static/fonts/open-iconic/webp/rain-8x.webp  |  Bin 648 -> 0 bytes
 assets/static/fonts/open-iconic/webp/rain.webp     |  Bin 150 -> 0 bytes
 .../static/fonts/open-iconic/webp/random-2x.webp   |  Bin 262 -> 0 bytes
 .../static/fonts/open-iconic/webp/random-3x.webp   |  Bin 368 -> 0 bytes
 .../static/fonts/open-iconic/webp/random-4x.webp   |  Bin 420 -> 0 bytes
 .../static/fonts/open-iconic/webp/random-6x.webp   |  Bin 580 -> 0 bytes
 .../static/fonts/open-iconic/webp/random-8x.webp   |  Bin 736 -> 0 bytes
 assets/static/fonts/open-iconic/webp/random.webp   |  Bin 162 -> 0 bytes
 .../static/fonts/open-iconic/webp/reload-2x.webp   |  Bin 240 -> 0 bytes
 .../static/fonts/open-iconic/webp/reload-3x.webp   |  Bin 348 -> 0 bytes
 .../static/fonts/open-iconic/webp/reload-4x.webp   |  Bin 406 -> 0 bytes
 .../static/fonts/open-iconic/webp/reload-6x.webp   |  Bin 556 -> 0 bytes
 .../static/fonts/open-iconic/webp/reload-8x.webp   |  Bin 710 -> 0 bytes
 assets/static/fonts/open-iconic/webp/reload.webp   |  Bin 154 -> 0 bytes
 .../fonts/open-iconic/webp/resize-both-2x.webp     |  Bin 166 -> 0 bytes
 .../fonts/open-iconic/webp/resize-both-3x.webp     |  Bin 192 -> 0 bytes
 .../fonts/open-iconic/webp/resize-both-4x.webp     |  Bin 198 -> 0 bytes
 .../fonts/open-iconic/webp/resize-both-6x.webp     |  Bin 246 -> 0 bytes
 .../fonts/open-iconic/webp/resize-both-8x.webp     |  Bin 280 -> 0 bytes
 .../static/fonts/open-iconic/webp/resize-both.webp |  Bin 132 -> 0 bytes
 .../fonts/open-iconic/webp/resize-height-2x.webp   |  Bin 172 -> 0 bytes
 .../fonts/open-iconic/webp/resize-height-3x.webp   |  Bin 218 -> 0 bytes
 .../fonts/open-iconic/webp/resize-height-4x.webp   |  Bin 242 -> 0 bytes
 .../fonts/open-iconic/webp/resize-height-6x.webp   |  Bin 304 -> 0 bytes
 .../fonts/open-iconic/webp/resize-height-8x.webp   |  Bin 360 -> 0 bytes
 .../fonts/open-iconic/webp/resize-height.webp      |  Bin 126 -> 0 bytes
 .../fonts/open-iconic/webp/resize-width-2x.webp    |  Bin 172 -> 0 bytes
 .../fonts/open-iconic/webp/resize-width-3x.webp    |  Bin 220 -> 0 bytes
 .../fonts/open-iconic/webp/resize-width-4x.webp    |  Bin 250 -> 0 bytes
 .../fonts/open-iconic/webp/resize-width-6x.webp    |  Bin 304 -> 0 bytes
 .../fonts/open-iconic/webp/resize-width-8x.webp    |  Bin 366 -> 0 bytes
 .../fonts/open-iconic/webp/resize-width.webp       |  Bin 130 -> 0 bytes
 assets/static/fonts/open-iconic/webp/rss-2x.webp   |  Bin 276 -> 0 bytes
 assets/static/fonts/open-iconic/webp/rss-3x.webp   |  Bin 380 -> 0 bytes
 assets/static/fonts/open-iconic/webp/rss-4x.webp   |  Bin 488 -> 0 bytes
 assets/static/fonts/open-iconic/webp/rss-6x.webp   |  Bin 680 -> 0 bytes
 assets/static/fonts/open-iconic/webp/rss-8x.webp   |  Bin 882 -> 0 bytes
 .../static/fonts/open-iconic/webp/rss-alt-2x.webp  |  Bin 258 -> 0 bytes
 .../static/fonts/open-iconic/webp/rss-alt-3x.webp  |  Bin 374 -> 0 bytes
 .../static/fonts/open-iconic/webp/rss-alt-4x.webp  |  Bin 420 -> 0 bytes
 .../static/fonts/open-iconic/webp/rss-alt-6x.webp  |  Bin 590 -> 0 bytes
 .../static/fonts/open-iconic/webp/rss-alt-8x.webp  |  Bin 756 -> 0 bytes
 assets/static/fonts/open-iconic/webp/rss-alt.webp  |  Bin 168 -> 0 bytes
 assets/static/fonts/open-iconic/webp/rss.webp      |  Bin 164 -> 0 bytes
 .../static/fonts/open-iconic/webp/script-2x.webp   |  Bin 144 -> 0 bytes
 .../static/fonts/open-iconic/webp/script-3x.webp   |  Bin 188 -> 0 bytes
 .../static/fonts/open-iconic/webp/script-4x.webp   |  Bin 204 -> 0 bytes
 .../static/fonts/open-iconic/webp/script-6x.webp   |  Bin 258 -> 0 bytes
 .../static/fonts/open-iconic/webp/script-8x.webp   |  Bin 314 -> 0 bytes
 assets/static/fonts/open-iconic/webp/script.webp   |  Bin 122 -> 0 bytes
 assets/static/fonts/open-iconic/webp/share-2x.webp |  Bin 200 -> 0 bytes
 assets/static/fonts/open-iconic/webp/share-3x.webp |  Bin 278 -> 0 bytes
 assets/static/fonts/open-iconic/webp/share-4x.webp |  Bin 344 -> 0 bytes
 assets/static/fonts/open-iconic/webp/share-6x.webp |  Bin 428 -> 0 bytes
 assets/static/fonts/open-iconic/webp/share-8x.webp |  Bin 530 -> 0 bytes
 .../fonts/open-iconic/webp/share-boxed-2x.webp     |  Bin 196 -> 0 bytes
 .../fonts/open-iconic/webp/share-boxed-3x.webp     |  Bin 238 -> 0 bytes
 .../fonts/open-iconic/webp/share-boxed-4x.webp     |  Bin 282 -> 0 bytes
 .../fonts/open-iconic/webp/share-boxed-6x.webp     |  Bin 350 -> 0 bytes
 .../fonts/open-iconic/webp/share-boxed-8x.webp     |  Bin 446 -> 0 bytes
 .../static/fonts/open-iconic/webp/share-boxed.webp |  Bin 138 -> 0 bytes
 assets/static/fonts/open-iconic/webp/share.webp    |  Bin 144 -> 0 bytes
 .../static/fonts/open-iconic/webp/shield-2x.webp   |  Bin 250 -> 0 bytes
 .../static/fonts/open-iconic/webp/shield-3x.webp   |  Bin 352 -> 0 bytes
 .../static/fonts/open-iconic/webp/shield-4x.webp   |  Bin 404 -> 0 bytes
 .../static/fonts/open-iconic/webp/shield-6x.webp   |  Bin 554 -> 0 bytes
 .../static/fonts/open-iconic/webp/shield-8x.webp   |  Bin 710 -> 0 bytes
 assets/static/fonts/open-iconic/webp/shield.webp   |  Bin 162 -> 0 bytes
 .../static/fonts/open-iconic/webp/signal-2x.webp   |  Bin 98 -> 0 bytes
 .../static/fonts/open-iconic/webp/signal-3x.webp   |  Bin 114 -> 0 bytes
 .../static/fonts/open-iconic/webp/signal-4x.webp   |  Bin 112 -> 0 bytes
 .../static/fonts/open-iconic/webp/signal-6x.webp   |  Bin 124 -> 0 bytes
 .../static/fonts/open-iconic/webp/signal-8x.webp   |  Bin 130 -> 0 bytes
 assets/static/fonts/open-iconic/webp/signal.webp   |  Bin 96 -> 0 bytes
 .../static/fonts/open-iconic/webp/signpost-2x.webp |  Bin 112 -> 0 bytes
 .../static/fonts/open-iconic/webp/signpost-3x.webp |  Bin 146 -> 0 bytes
 .../static/fonts/open-iconic/webp/signpost-4x.webp |  Bin 154 -> 0 bytes
 .../static/fonts/open-iconic/webp/signpost-6x.webp |  Bin 172 -> 0 bytes
 .../static/fonts/open-iconic/webp/signpost-8x.webp |  Bin 186 -> 0 bytes
 assets/static/fonts/open-iconic/webp/signpost.webp |  Bin 98 -> 0 bytes
 .../fonts/open-iconic/webp/sort-ascending-2x.webp  |  Bin 148 -> 0 bytes
 .../fonts/open-iconic/webp/sort-ascending-3x.webp  |  Bin 184 -> 0 bytes
 .../fonts/open-iconic/webp/sort-ascending-4x.webp  |  Bin 198 -> 0 bytes
 .../fonts/open-iconic/webp/sort-ascending-6x.webp  |  Bin 228 -> 0 bytes
 .../fonts/open-iconic/webp/sort-ascending-8x.webp  |  Bin 252 -> 0 bytes
 .../fonts/open-iconic/webp/sort-ascending.webp     |  Bin 120 -> 0 bytes
 .../fonts/open-iconic/webp/sort-descending-2x.webp |  Bin 148 -> 0 bytes
 .../fonts/open-iconic/webp/sort-descending-3x.webp |  Bin 182 -> 0 bytes
 .../fonts/open-iconic/webp/sort-descending-4x.webp |  Bin 198 -> 0 bytes
 .../fonts/open-iconic/webp/sort-descending-6x.webp |  Bin 228 -> 0 bytes
 .../fonts/open-iconic/webp/sort-descending-8x.webp |  Bin 252 -> 0 bytes
 .../fonts/open-iconic/webp/sort-descending.webp    |  Bin 120 -> 0 bytes
 .../fonts/open-iconic/webp/spreadsheet-2x.webp     |  Bin 132 -> 0 bytes
 .../fonts/open-iconic/webp/spreadsheet-3x.webp     |  Bin 154 -> 0 bytes
 .../fonts/open-iconic/webp/spreadsheet-4x.webp     |  Bin 166 -> 0 bytes
 .../fonts/open-iconic/webp/spreadsheet-6x.webp     |  Bin 198 -> 0 bytes
 .../fonts/open-iconic/webp/spreadsheet-8x.webp     |  Bin 218 -> 0 bytes
 .../static/fonts/open-iconic/webp/spreadsheet.webp |  Bin 118 -> 0 bytes
 assets/static/fonts/open-iconic/webp/star-2x.webp  |  Bin 178 -> 0 bytes
 assets/static/fonts/open-iconic/webp/star-3x.webp  |  Bin 240 -> 0 bytes
 assets/static/fonts/open-iconic/webp/star-4x.webp  |  Bin 282 -> 0 bytes
 assets/static/fonts/open-iconic/webp/star-6x.webp  |  Bin 358 -> 0 bytes
 assets/static/fonts/open-iconic/webp/star-8x.webp  |  Bin 456 -> 0 bytes
 assets/static/fonts/open-iconic/webp/star.webp     |  Bin 140 -> 0 bytes
 assets/static/fonts/open-iconic/webp/sun-2x.webp   |  Bin 186 -> 0 bytes
 assets/static/fonts/open-iconic/webp/sun-3x.webp   |  Bin 282 -> 0 bytes
 assets/static/fonts/open-iconic/webp/sun-4x.webp   |  Bin 326 -> 0 bytes
 assets/static/fonts/open-iconic/webp/sun-6x.webp   |  Bin 426 -> 0 bytes
 assets/static/fonts/open-iconic/webp/sun-8x.webp   |  Bin 546 -> 0 bytes
 assets/static/fonts/open-iconic/webp/sun.webp      |  Bin 136 -> 0 bytes
 .../static/fonts/open-iconic/webp/tablet-2x.webp   |  Bin 130 -> 0 bytes
 .../static/fonts/open-iconic/webp/tablet-3x.webp   |  Bin 164 -> 0 bytes
 .../static/fonts/open-iconic/webp/tablet-4x.webp   |  Bin 178 -> 0 bytes
 .../static/fonts/open-iconic/webp/tablet-6x.webp   |  Bin 210 -> 0 bytes
 .../static/fonts/open-iconic/webp/tablet-8x.webp   |  Bin 264 -> 0 bytes
 assets/static/fonts/open-iconic/webp/tablet.webp   |  Bin 118 -> 0 bytes
 assets/static/fonts/open-iconic/webp/tag-2x.webp   |  Bin 160 -> 0 bytes
 assets/static/fonts/open-iconic/webp/tag-3x.webp   |  Bin 200 -> 0 bytes
 assets/static/fonts/open-iconic/webp/tag-4x.webp   |  Bin 224 -> 0 bytes
 assets/static/fonts/open-iconic/webp/tag-6x.webp   |  Bin 272 -> 0 bytes
 assets/static/fonts/open-iconic/webp/tag-8x.webp   |  Bin 336 -> 0 bytes
 assets/static/fonts/open-iconic/webp/tag.webp      |  Bin 122 -> 0 bytes
 assets/static/fonts/open-iconic/webp/tags-2x.webp  |  Bin 162 -> 0 bytes
 assets/static/fonts/open-iconic/webp/tags-3x.webp  |  Bin 194 -> 0 bytes
 assets/static/fonts/open-iconic/webp/tags-4x.webp  |  Bin 220 -> 0 bytes
 assets/static/fonts/open-iconic/webp/tags-6x.webp  |  Bin 272 -> 0 bytes
 assets/static/fonts/open-iconic/webp/tags-8x.webp  |  Bin 320 -> 0 bytes
 assets/static/fonts/open-iconic/webp/tags.webp     |  Bin 130 -> 0 bytes
 .../static/fonts/open-iconic/webp/target-2x.webp   |  Bin 286 -> 0 bytes
 .../static/fonts/open-iconic/webp/target-3x.webp   |  Bin 444 -> 0 bytes
 .../static/fonts/open-iconic/webp/target-4x.webp   |  Bin 578 -> 0 bytes
 .../static/fonts/open-iconic/webp/target-6x.webp   |  Bin 766 -> 0 bytes
 .../static/fonts/open-iconic/webp/target-8x.webp   |  Bin 1020 -> 0 bytes
 assets/static/fonts/open-iconic/webp/target.webp   |  Bin 152 -> 0 bytes
 assets/static/fonts/open-iconic/webp/task-2x.webp  |  Bin 152 -> 0 bytes
 assets/static/fonts/open-iconic/webp/task-3x.webp  |  Bin 200 -> 0 bytes
 assets/static/fonts/open-iconic/webp/task-4x.webp  |  Bin 210 -> 0 bytes
 assets/static/fonts/open-iconic/webp/task-6x.webp  |  Bin 248 -> 0 bytes
 assets/static/fonts/open-iconic/webp/task-8x.webp  |  Bin 280 -> 0 bytes
 assets/static/fonts/open-iconic/webp/task.webp     |  Bin 124 -> 0 bytes
 .../static/fonts/open-iconic/webp/terminal-2x.webp |  Bin 158 -> 0 bytes
 .../static/fonts/open-iconic/webp/terminal-3x.webp |  Bin 196 -> 0 bytes
 .../static/fonts/open-iconic/webp/terminal-4x.webp |  Bin 194 -> 0 bytes
 .../static/fonts/open-iconic/webp/terminal-6x.webp |  Bin 226 -> 0 bytes
 .../static/fonts/open-iconic/webp/terminal-8x.webp |  Bin 254 -> 0 bytes
 assets/static/fonts/open-iconic/webp/terminal.webp |  Bin 136 -> 0 bytes
 assets/static/fonts/open-iconic/webp/text-2x.webp  |  Bin 138 -> 0 bytes
 assets/static/fonts/open-iconic/webp/text-3x.webp  |  Bin 174 -> 0 bytes
 assets/static/fonts/open-iconic/webp/text-4x.webp  |  Bin 176 -> 0 bytes
 assets/static/fonts/open-iconic/webp/text-6x.webp  |  Bin 212 -> 0 bytes
 assets/static/fonts/open-iconic/webp/text-8x.webp  |  Bin 244 -> 0 bytes
 assets/static/fonts/open-iconic/webp/text.webp     |  Bin 120 -> 0 bytes
 .../fonts/open-iconic/webp/thumb-down-2x.webp      |  Bin 168 -> 0 bytes
 .../fonts/open-iconic/webp/thumb-down-3x.webp      |  Bin 218 -> 0 bytes
 .../fonts/open-iconic/webp/thumb-down-4x.webp      |  Bin 256 -> 0 bytes
 .../fonts/open-iconic/webp/thumb-down-6x.webp      |  Bin 314 -> 0 bytes
 .../fonts/open-iconic/webp/thumb-down-8x.webp      |  Bin 394 -> 0 bytes
 .../static/fonts/open-iconic/webp/thumb-down.webp  |  Bin 130 -> 0 bytes
 .../static/fonts/open-iconic/webp/thumb-up-2x.webp |  Bin 168 -> 0 bytes
 .../static/fonts/open-iconic/webp/thumb-up-3x.webp |  Bin 220 -> 0 bytes
 .../static/fonts/open-iconic/webp/thumb-up-4x.webp |  Bin 256 -> 0 bytes
 .../static/fonts/open-iconic/webp/thumb-up-6x.webp |  Bin 324 -> 0 bytes
 .../static/fonts/open-iconic/webp/thumb-up-8x.webp |  Bin 412 -> 0 bytes
 assets/static/fonts/open-iconic/webp/thumb-up.webp |  Bin 134 -> 0 bytes
 assets/static/fonts/open-iconic/webp/timer-2x.webp |  Bin 262 -> 0 bytes
 assets/static/fonts/open-iconic/webp/timer-3x.webp |  Bin 368 -> 0 bytes
 assets/static/fonts/open-iconic/webp/timer-4x.webp |  Bin 466 -> 0 bytes
 assets/static/fonts/open-iconic/webp/timer-6x.webp |  Bin 652 -> 0 bytes
 assets/static/fonts/open-iconic/webp/timer-8x.webp |  Bin 856 -> 0 bytes
 assets/static/fonts/open-iconic/webp/timer.webp    |  Bin 166 -> 0 bytes
 .../static/fonts/open-iconic/webp/transfer-2x.webp |  Bin 138 -> 0 bytes
 .../static/fonts/open-iconic/webp/transfer-3x.webp |  Bin 172 -> 0 bytes
 .../static/fonts/open-iconic/webp/transfer-4x.webp |  Bin 186 -> 0 bytes
 .../static/fonts/open-iconic/webp/transfer-6x.webp |  Bin 218 -> 0 bytes
 .../static/fonts/open-iconic/webp/transfer-8x.webp |  Bin 242 -> 0 bytes
 assets/static/fonts/open-iconic/webp/transfer.webp |  Bin 116 -> 0 bytes
 assets/static/fonts/open-iconic/webp/trash-2x.webp |  Bin 146 -> 0 bytes
 assets/static/fonts/open-iconic/webp/trash-3x.webp |  Bin 188 -> 0 bytes
 assets/static/fonts/open-iconic/webp/trash-4x.webp |  Bin 206 -> 0 bytes
 assets/static/fonts/open-iconic/webp/trash-6x.webp |  Bin 254 -> 0 bytes
 assets/static/fonts/open-iconic/webp/trash-8x.webp |  Bin 312 -> 0 bytes
 assets/static/fonts/open-iconic/webp/trash.webp    |  Bin 118 -> 0 bytes
 .../fonts/open-iconic/webp/underline-2x.webp       |  Bin 156 -> 0 bytes
 .../fonts/open-iconic/webp/underline-3x.webp       |  Bin 190 -> 0 bytes
 .../fonts/open-iconic/webp/underline-4x.webp       |  Bin 218 -> 0 bytes
 .../fonts/open-iconic/webp/underline-6x.webp       |  Bin 276 -> 0 bytes
 .../fonts/open-iconic/webp/underline-8x.webp       |  Bin 334 -> 0 bytes
 .../static/fonts/open-iconic/webp/underline.webp   |  Bin 126 -> 0 bytes
 .../open-iconic/webp/vertical-align-bottom-2x.webp |  Bin 134 -> 0 bytes
 .../open-iconic/webp/vertical-align-bottom-3x.webp |  Bin 168 -> 0 bytes
 .../open-iconic/webp/vertical-align-bottom-4x.webp |  Bin 164 -> 0 bytes
 .../open-iconic/webp/vertical-align-bottom-6x.webp |  Bin 178 -> 0 bytes
 .../open-iconic/webp/vertical-align-bottom-8x.webp |  Bin 178 -> 0 bytes
 .../open-iconic/webp/vertical-align-bottom.webp    |  Bin 122 -> 0 bytes
 .../open-iconic/webp/vertical-align-center-2x.webp |  Bin 138 -> 0 bytes
 .../open-iconic/webp/vertical-align-center-3x.webp |  Bin 176 -> 0 bytes
 .../open-iconic/webp/vertical-align-center-4x.webp |  Bin 176 -> 0 bytes
 .../open-iconic/webp/vertical-align-center-6x.webp |  Bin 190 -> 0 bytes
 .../open-iconic/webp/vertical-align-center-8x.webp |  Bin 194 -> 0 bytes
 .../open-iconic/webp/vertical-align-center.webp    |  Bin 118 -> 0 bytes
 .../open-iconic/webp/vertical-align-top-2x.webp    |  Bin 136 -> 0 bytes
 .../open-iconic/webp/vertical-align-top-3x.webp    |  Bin 174 -> 0 bytes
 .../open-iconic/webp/vertical-align-top-4x.webp    |  Bin 168 -> 0 bytes
 .../open-iconic/webp/vertical-align-top-6x.webp    |  Bin 182 -> 0 bytes
 .../open-iconic/webp/vertical-align-top-8x.webp    |  Bin 182 -> 0 bytes
 .../fonts/open-iconic/webp/vertical-align-top.webp |  Bin 124 -> 0 bytes
 assets/static/fonts/open-iconic/webp/video-2x.webp |  Bin 126 -> 0 bytes
 assets/static/fonts/open-iconic/webp/video-3x.webp |  Bin 158 -> 0 bytes
 assets/static/fonts/open-iconic/webp/video-4x.webp |  Bin 170 -> 0 bytes
 assets/static/fonts/open-iconic/webp/video-6x.webp |  Bin 212 -> 0 bytes
 assets/static/fonts/open-iconic/webp/video-8x.webp |  Bin 234 -> 0 bytes
 assets/static/fonts/open-iconic/webp/video.webp    |  Bin 114 -> 0 bytes
 .../fonts/open-iconic/webp/volume-high-2x.webp     |  Bin 208 -> 0 bytes
 .../fonts/open-iconic/webp/volume-high-3x.webp     |  Bin 286 -> 0 bytes
 .../fonts/open-iconic/webp/volume-high-4x.webp     |  Bin 346 -> 0 bytes
 .../fonts/open-iconic/webp/volume-high-6x.webp     |  Bin 440 -> 0 bytes
 .../fonts/open-iconic/webp/volume-high-8x.webp     |  Bin 570 -> 0 bytes
 .../static/fonts/open-iconic/webp/volume-high.webp |  Bin 144 -> 0 bytes
 .../fonts/open-iconic/webp/volume-low-2x.webp      |  Bin 150 -> 0 bytes
 .../fonts/open-iconic/webp/volume-low-3x.webp      |  Bin 182 -> 0 bytes
 .../fonts/open-iconic/webp/volume-low-4x.webp      |  Bin 206 -> 0 bytes
 .../fonts/open-iconic/webp/volume-low-6x.webp      |  Bin 258 -> 0 bytes
 .../fonts/open-iconic/webp/volume-low-8x.webp      |  Bin 296 -> 0 bytes
 .../static/fonts/open-iconic/webp/volume-low.webp  |  Bin 120 -> 0 bytes
 .../fonts/open-iconic/webp/volume-off-2x.webp      |  Bin 132 -> 0 bytes
 .../fonts/open-iconic/webp/volume-off-3x.webp      |  Bin 152 -> 0 bytes
 .../fonts/open-iconic/webp/volume-off-4x.webp      |  Bin 162 -> 0 bytes
 .../fonts/open-iconic/webp/volume-off-6x.webp      |  Bin 200 -> 0 bytes
 .../fonts/open-iconic/webp/volume-off-8x.webp      |  Bin 230 -> 0 bytes
 .../static/fonts/open-iconic/webp/volume-off.webp  |  Bin 112 -> 0 bytes
 .../static/fonts/open-iconic/webp/warning-2x.webp  |  Bin 206 -> 0 bytes
 .../static/fonts/open-iconic/webp/warning-3x.webp  |  Bin 276 -> 0 bytes
 .../static/fonts/open-iconic/webp/warning-4x.webp  |  Bin 320 -> 0 bytes
 .../static/fonts/open-iconic/webp/warning-6x.webp  |  Bin 402 -> 0 bytes
 .../static/fonts/open-iconic/webp/warning-8x.webp  |  Bin 504 -> 0 bytes
 assets/static/fonts/open-iconic/webp/warning.webp  |  Bin 146 -> 0 bytes
 assets/static/fonts/open-iconic/webp/wifi-2x.webp  |  Bin 224 -> 0 bytes
 assets/static/fonts/open-iconic/webp/wifi-3x.webp  |  Bin 300 -> 0 bytes
 assets/static/fonts/open-iconic/webp/wifi-4x.webp  |  Bin 332 -> 0 bytes
 assets/static/fonts/open-iconic/webp/wifi-6x.webp  |  Bin 458 -> 0 bytes
 assets/static/fonts/open-iconic/webp/wifi-8x.webp  |  Bin 568 -> 0 bytes
 assets/static/fonts/open-iconic/webp/wifi.webp     |  Bin 148 -> 0 bytes
 .../static/fonts/open-iconic/webp/wrench-2x.webp   |  Bin 204 -> 0 bytes
 .../static/fonts/open-iconic/webp/wrench-3x.webp   |  Bin 296 -> 0 bytes
 .../static/fonts/open-iconic/webp/wrench-4x.webp   |  Bin 342 -> 0 bytes
 .../static/fonts/open-iconic/webp/wrench-6x.webp   |  Bin 420 -> 0 bytes
 .../static/fonts/open-iconic/webp/wrench-8x.webp   |  Bin 516 -> 0 bytes
 assets/static/fonts/open-iconic/webp/wrench.webp   |  Bin 144 -> 0 bytes
 assets/static/fonts/open-iconic/webp/x-2x.webp     |  Bin 228 -> 0 bytes
 assets/static/fonts/open-iconic/webp/x-3x.webp     |  Bin 308 -> 0 bytes
 assets/static/fonts/open-iconic/webp/x-4x.webp     |  Bin 384 -> 0 bytes
 assets/static/fonts/open-iconic/webp/x-6x.webp     |  Bin 480 -> 0 bytes
 assets/static/fonts/open-iconic/webp/x-8x.webp     |  Bin 580 -> 0 bytes
 assets/static/fonts/open-iconic/webp/x.webp        |  Bin 156 -> 0 bytes
 assets/static/fonts/open-iconic/webp/yen-2x.webp   |  Bin 184 -> 0 bytes
 assets/static/fonts/open-iconic/webp/yen-3x.webp   |  Bin 236 -> 0 bytes
 assets/static/fonts/open-iconic/webp/yen-4x.webp   |  Bin 266 -> 0 bytes
 assets/static/fonts/open-iconic/webp/yen-6x.webp   |  Bin 344 -> 0 bytes
 assets/static/fonts/open-iconic/webp/yen-8x.webp   |  Bin 436 -> 0 bytes
 assets/static/fonts/open-iconic/webp/yen.webp      |  Bin 136 -> 0 bytes
 .../static/fonts/open-iconic/webp/zoom-in-2x.webp  |  Bin 256 -> 0 bytes
 .../static/fonts/open-iconic/webp/zoom-in-3x.webp  |  Bin 382 -> 0 bytes
 .../static/fonts/open-iconic/webp/zoom-in-4x.webp  |  Bin 452 -> 0 bytes
 .../static/fonts/open-iconic/webp/zoom-in-6x.webp  |  Bin 634 -> 0 bytes
 .../static/fonts/open-iconic/webp/zoom-in-8x.webp  |  Bin 828 -> 0 bytes
 assets/static/fonts/open-iconic/webp/zoom-in.webp  |  Bin 160 -> 0 bytes
 .../static/fonts/open-iconic/webp/zoom-out-2x.webp |  Bin 250 -> 0 bytes
 .../static/fonts/open-iconic/webp/zoom-out-3x.webp |  Bin 372 -> 0 bytes
 .../static/fonts/open-iconic/webp/zoom-out-4x.webp |  Bin 438 -> 0 bytes
 .../static/fonts/open-iconic/webp/zoom-out-6x.webp |  Bin 610 -> 0 bytes
 .../static/fonts/open-iconic/webp/zoom-out-8x.webp |  Bin 798 -> 0 bytes
 assets/static/fonts/open-iconic/webp/zoom-out.webp |  Bin 160 -> 0 bytes
 assets/static/js                                   |    1 +
 assets/static/js/anchor.min.js                     |    6 -
 assets/static/js/bootstrap.bundle.js               | 6287 -----------------
 assets/static/js/bootstrap.bundle.js.map           |    1 -
 assets/static/js/bootstrap.bundle.min.js           |    7 -
 assets/static/js/bootstrap.bundle.min.js.map       |    1 -
 assets/static/js/bootstrap.js                      | 3850 ----------
 assets/static/js/bootstrap.js.map                  |    1 -
 assets/static/js/bootstrap.min.js                  |    7 -
 assets/static/js/bootstrap.min.js.map              |    1 -
 assets/static/js/clipboard.min.js                  |    7 -
 assets/static/js/holder.min.js                     |   13 -
 assets/static/js/jquery-3.2.1.min.js               |    4 -
 assets/static/js/jquery-slim.min.js                |    4 -
 assets/static/js/popper.min.js                     |    4 -
 assets/static/js/scrollspy.min.js                  |    1 -
 assets/static/js/util.min.js                       |    1 -
 assets/static/style.css                            |   42 -
 configs/i18n.ini                                   |    1 +
 databags/alternatives.ini                          |    5 +
 i18n/_compiled/en/LC_MESSAGES/contents.mo          |  Bin 363 -> 581 bytes
 i18n/contents+en.po                                |   73 +-
 i18n/contents.pot                                  |   62 +-
 lego                                               |    1 +
 packages                                           |    1 +
 styleguide.lektorproject                           |    1 +
 templates/footer.html                              |    8 +-
 templates/header.html                              |    1 +
 templates/layout.html                              |    8 +-
 templates/navbar.html                              |   32 +-
 3152 files changed, 165 insertions(+), 64650 deletions(-)

diff --git a/.gitignore b/.gitignore
index 98e0705..925e84d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,28 @@
-scss
+node_modules
 
 .sass-cache
 .DS_Store
 
+cache
+
+.ruby-version
+
 public
+*.mo
+*.po
+contents+*.lr
+
+*.ipynb*
+
+*.egg-info
+*.pyc
+__pycache__
+
+### Lektor Temps ###
+*~*
+
+### Idea (IDE) ###
+.idea/
 
 ### Emacs ###
 # -*- mode: gitignore; -*-
@@ -27,6 +46,8 @@ tramp
 /eshell/history
 /eshell/lastdir
 
+node_modules
+
 # elpa packages
 /elpa/
 
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..d246c46
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "lego"]
+	path = lego
+	url = https://git.torproject.org/project/web/lego.git
diff --git a/assets/javascript b/assets/javascript
new file mode 120000
index 0000000..c8db05e
--- /dev/null
+++ b/assets/javascript
@@ -0,0 +1 @@
+../lego/assests/javascript
\ No newline at end of file
diff --git a/assets/javascript/dist/alert.js b/assets/javascript/dist/alert.js
deleted file mode 100755
index c7ba7ed..0000000
--- a/assets/javascript/dist/alert.js
+++ /dev/null
@@ -1,176 +0,0 @@
-function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
-
-function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): alert.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-var Alert = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-  var NAME = 'alert';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.alert';
-  var EVENT_KEY = "." + DATA_KEY;
-  var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var TRANSITION_DURATION = 150;
-  var Selector = {
-    DISMISS: '[data-dismiss="alert"]'
-  };
-  var Event = {
-    CLOSE: "close" + EVENT_KEY,
-    CLOSED: "closed" + EVENT_KEY,
-    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
-  };
-  var ClassName = {
-    ALERT: 'alert',
-    FADE: 'fade',
-    SHOW: 'show'
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Alert =
-  /*#__PURE__*/
-  function () {
-    function Alert(element) {
-      this._element = element;
-    } // getters
-
-
-    var _proto = Alert.prototype;
-
-    // public
-    _proto.close = function close(element) {
-      element = element || this._element;
-
-      var rootElement = this._getRootElement(element);
-
-      var customEvent = this._triggerCloseEvent(rootElement);
-
-      if (customEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      this._removeElement(rootElement);
-    };
-
-    _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
-      this._element = null;
-    }; // private
-
-
-    _proto._getRootElement = function _getRootElement(element) {
-      var selector = Util.getSelectorFromElement(element);
-      var parent = false;
-
-      if (selector) {
-        parent = $(selector)[0];
-      }
-
-      if (!parent) {
-        parent = $(element).closest("." + ClassName.ALERT)[0];
-      }
-
-      return parent;
-    };
-
-    _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
-      var closeEvent = $.Event(Event.CLOSE);
-      $(element).trigger(closeEvent);
-      return closeEvent;
-    };
-
-    _proto._removeElement = function _removeElement(element) {
-      var _this = this;
-
-      $(element).removeClass(ClassName.SHOW);
-
-      if (!Util.supportsTransitionEnd() || !$(element).hasClass(ClassName.FADE)) {
-        this._destroyElement(element);
-
-        return;
-      }
-
-      $(element).one(Util.TRANSITION_END, function (event) {
-        return _this._destroyElement(element, event);
-      }).emulateTransitionEnd(TRANSITION_DURATION);
-    };
-
-    _proto._destroyElement = function _destroyElement(element) {
-      $(element).detach().trigger(Event.CLOSED).remove();
-    }; // static
-
-
-    Alert._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var $element = $(this);
-        var data = $element.data(DATA_KEY);
-
-        if (!data) {
-          data = new Alert(this);
-          $element.data(DATA_KEY, data);
-        }
-
-        if (config === 'close') {
-          data[config](this);
-        }
-      });
-    };
-
-    Alert._handleDismiss = function _handleDismiss(alertInstance) {
-      return function (event) {
-        if (event) {
-          event.preventDefault();
-        }
-
-        alertInstance.close(this);
-      };
-    };
-
-    _createClass(Alert, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }]);
-
-    return Alert;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-
-  $(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME] = Alert._jQueryInterface;
-  $.fn[NAME].Constructor = Alert;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Alert._jQueryInterface;
-  };
-
-  return Alert;
-}($);
-//# sourceMappingURL=alert.js.map
\ No newline at end of file
diff --git a/assets/javascript/dist/alert.js.map b/assets/javascript/dist/alert.js.map
deleted file mode 100755
index 90309fe..0000000
--- a/assets/javascript/dist/alert.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/alert.js"],"names":["Alert","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","TRANSITION_DURATION","Selector","DISMISS","Event","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","element","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","selector","Util","getSelectorFromElement","parent","closest","closeEvent","trigger","removeClass","supportsTransitionEnd","hasClass","_destroyElement","one","TRANSITION_END","event","emulateTransitionEnd","detach","remove","_jQueryInterface","config","each","$element","data","_handleDismiss","alertInstance","preventDefault","document","on","Constructor","noConflict"],"mappings":"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","file":"alert.js","sourcesContent":["import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-be
 ta.2): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'alert'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.alert'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n\n  const Selector = {\n    DISMISS : '[data-dismiss=\"alert\"]'\n  }\n\n  const Event = {\n    CLOSE          : `close${EVENT_KEY}`,\n    CLOSED         : `closed${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    ALERT : 'alert',\n    FADE  : 'fad
 e',\n    SHOW  : 'show'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Alert {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    close(element) {\n      element = element || this._element\n\n      const rootElement = this._getRootElement(element)\n      const customEvent = this._triggerCloseEvent(rootElement)\n\n      if (customEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._removeElement(rootElement)\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n\n    // private\n\n    _getRootElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      let parent     = false\n\n      if (selector) {\n  
       parent = $(selector)[0]\n      }\n\n      if (!parent) {\n        parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n      }\n\n      return parent\n    }\n\n    _triggerCloseEvent(element) {\n      const closeEvent = $.Event(Event.CLOSE)\n\n      $(element).trigger(closeEvent)\n      return closeEvent\n    }\n\n    _removeElement(element) {\n      $(element).removeClass(ClassName.SHOW)\n\n      if (!Util.supportsTransitionEnd() ||\n          !$(element).hasClass(ClassName.FADE)) {\n        this._destroyElement(element)\n        return\n      }\n\n      $(element)\n        .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n        .emulateTransitionEnd(TRANSITION_DURATION)\n    }\n\n    _destroyElement(element) {\n      $(element)\n        .detach()\n        .trigger(Event.CLOSED)\n        .remove()\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $element = $(this)\n        let
  data       = $element.data(DATA_KEY)\n\n        if (!data) {\n          data = new Alert(this)\n          $element.data(DATA_KEY, data)\n        }\n\n        if (config === 'close') {\n          data[config](this)\n        }\n      })\n    }\n\n    static _handleDismiss(alertInstance) {\n      return function (event) {\n        if (event) {\n          event.preventDefault()\n        }\n\n        alertInstance.close(this)\n      }\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(\n    Event.CLICK_DATA_API,\n    Selector.DISMISS,\n    Alert._handleDismiss(new Alert())\n  )\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Alert._j
 QueryInterface\n  $.fn[NAME].Constructor = Alert\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Alert._jQueryInterface\n  }\n\n  return Alert\n\n})($)\n\nexport default Alert\n"]}
\ No newline at end of file
diff --git a/assets/javascript/dist/button.js b/assets/javascript/dist/button.js
deleted file mode 100755
index 5f4acdb..0000000
--- a/assets/javascript/dist/button.js
+++ /dev/null
@@ -1,167 +0,0 @@
-function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
-
-function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): button.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-var Button = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-  var NAME = 'button';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.button';
-  var EVENT_KEY = "." + DATA_KEY;
-  var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var ClassName = {
-    ACTIVE: 'active',
-    BUTTON: 'btn',
-    FOCUS: 'focus'
-  };
-  var Selector = {
-    DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
-    DATA_TOGGLE: '[data-toggle="buttons"]',
-    INPUT: 'input',
-    ACTIVE: '.active',
-    BUTTON: '.btn'
-  };
-  var Event = {
-    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
-    FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY)
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Button =
-  /*#__PURE__*/
-  function () {
-    function Button(element) {
-      this._element = element;
-    } // getters
-
-
-    var _proto = Button.prototype;
-
-    // public
-    _proto.toggle = function toggle() {
-      var triggerChangeEvent = true;
-      var addAriaPressed = true;
-      var rootElement = $(this._element).closest(Selector.DATA_TOGGLE)[0];
-
-      if (rootElement) {
-        var input = $(this._element).find(Selector.INPUT)[0];
-
-        if (input) {
-          if (input.type === 'radio') {
-            if (input.checked && $(this._element).hasClass(ClassName.ACTIVE)) {
-              triggerChangeEvent = false;
-            } else {
-              var activeElement = $(rootElement).find(Selector.ACTIVE)[0];
-
-              if (activeElement) {
-                $(activeElement).removeClass(ClassName.ACTIVE);
-              }
-            }
-          }
-
-          if (triggerChangeEvent) {
-            if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
-              return;
-            }
-
-            input.checked = !$(this._element).hasClass(ClassName.ACTIVE);
-            $(input).trigger('change');
-          }
-
-          input.focus();
-          addAriaPressed = false;
-        }
-      }
-
-      if (addAriaPressed) {
-        this._element.setAttribute('aria-pressed', !$(this._element).hasClass(ClassName.ACTIVE));
-      }
-
-      if (triggerChangeEvent) {
-        $(this._element).toggleClass(ClassName.ACTIVE);
-      }
-    };
-
-    _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
-      this._element = null;
-    }; // static
-
-
-    Button._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var data = $(this).data(DATA_KEY);
-
-        if (!data) {
-          data = new Button(this);
-          $(this).data(DATA_KEY, data);
-        }
-
-        if (config === 'toggle') {
-          data[config]();
-        }
-      });
-    };
-
-    _createClass(Button, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }]);
-
-    return Button;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-
-  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
-    event.preventDefault();
-    var button = event.target;
-
-    if (!$(button).hasClass(ClassName.BUTTON)) {
-      button = $(button).closest(Selector.BUTTON);
-    }
-
-    Button._jQueryInterface.call($(button), 'toggle');
-  }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
-    var button = $(event.target).closest(Selector.BUTTON)[0];
-    $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
-  });
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME] = Button._jQueryInterface;
-  $.fn[NAME].Constructor = Button;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Button._jQueryInterface;
-  };
-
-  return Button;
-}($);
-//# sourceMappingURL=button.js.map
\ No newline at end of file
diff --git a/assets/javascript/dist/button.js.map b/assets/javascript/dist/button.js.map
deleted file mode 100755
index 3be178a..0000000
--- a/assets/javascript/dist/button.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/button.js"],"names":["Button","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","ClassName","ACTIVE","BUTTON","FOCUS","Selector","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","Event","CLICK_DATA_API","FOCUS_BLUR_DATA_API","element","_element","toggle","triggerChangeEvent","addAriaPressed","rootElement","closest","input","find","type","checked","hasClass","activeElement","removeClass","hasAttribute","classList","contains","trigger","focus","setAttribute","toggleClass","dispose","removeData","_jQueryInterface","config","each","data","document","on","event","preventDefault","button","target","call","test","Constructor","noConflict"],"mappings":"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","file":"button.js","sourcesContent":["import $ from 'jquery'\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'button'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.button'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n\n  const ClassName = {\n    ACTIVE : 'active',\n    BUTTON : 'btn',\n    FOCUS  : 'fo
 cus'\n  }\n\n  const Selector = {\n    DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n    DATA_TOGGLE        : '[data-toggle=\"buttons\"]',\n    INPUT              : 'input',\n    ACTIVE             : '.active',\n    BUTTON             : '.btn'\n  }\n\n  const Event = {\n    CLICK_DATA_API      : `click${EVENT_KEY}${DATA_API_KEY}`,\n    FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} `\n                        + `blur${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Button {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    toggle() {\n      let triggerChangeEvent = true\n      let addAriaPressed = true\n      const rootElement      = $(this._element).closest(
 \n        Selector.DATA_TOGGLE\n      )[0]\n\n      if (rootElement) {\n        const input = $(this._element).find(Selector.INPUT)[0]\n\n        if (input) {\n          if (input.type === 'radio') {\n            if (input.checked &&\n              $(this._element).hasClass(ClassName.ACTIVE)) {\n              triggerChangeEvent = false\n\n            } else {\n              const activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n              if (activeElement) {\n                $(activeElement).removeClass(ClassName.ACTIVE)\n              }\n            }\n          }\n\n          if (triggerChangeEvent) {\n            if (input.hasAttribute('disabled') ||\n              rootElement.hasAttribute('disabled') ||\n              input.classList.contains('disabled') ||\n              rootElement.classList.contains('disabled')) {\n              return\n            }\n            input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n            $(input).trigger('change')
 \n          }\n\n          input.focus()\n          addAriaPressed = false\n        }\n\n      }\n\n      if (addAriaPressed) {\n        this._element.setAttribute('aria-pressed',\n          !$(this._element).hasClass(ClassName.ACTIVE))\n      }\n\n      if (triggerChangeEvent) {\n        $(this._element).toggleClass(ClassName.ACTIVE)\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n\n        if (!data) {\n          data = new Button(this)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (config === 'toggle') {\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ---------------------------------------------------------------------
 ---\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      event.preventDefault()\n\n      let button = event.target\n\n      if (!$(button).hasClass(ClassName.BUTTON)) {\n        button = $(button).closest(Selector.BUTTON)\n      }\n\n      Button._jQueryInterface.call($(button), 'toggle')\n    })\n    .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      const button = $(event.target).closest(Selector.BUTTON)[0]\n      $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Button._jQueryInterface\n  $.fn[NAME].Constructor = Button\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Button._jQueryInterface\n  }\n\n  return Button\
 n\n})($)\n\nexport default Button\n"]}
\ No newline at end of file
diff --git a/assets/javascript/dist/carousel.js b/assets/javascript/dist/carousel.js
deleted file mode 100755
index befa01f..0000000
--- a/assets/javascript/dist/carousel.js
+++ /dev/null
@@ -1,504 +0,0 @@
-function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
-
-function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): carousel.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-var Carousel = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-  var NAME = 'carousel';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.carousel';
-  var EVENT_KEY = "." + DATA_KEY;
-  var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var TRANSITION_DURATION = 600;
-  var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
-
-  var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
-
-  var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
-
-  var Default = {
-    interval: 5000,
-    keyboard: true,
-    slide: false,
-    pause: 'hover',
-    wrap: true
-  };
-  var DefaultType = {
-    interval: '(number|boolean)',
-    keyboard: 'boolean',
-    slide: '(boolean|string)',
-    pause: '(string|boolean)',
-    wrap: 'boolean'
-  };
-  var Direction = {
-    NEXT: 'next',
-    PREV: 'prev',
-    LEFT: 'left',
-    RIGHT: 'right'
-  };
-  var Event = {
-    SLIDE: "slide" + EVENT_KEY,
-    SLID: "slid" + EVENT_KEY,
-    KEYDOWN: "keydown" + EVENT_KEY,
-    MOUSEENTER: "mouseenter" + EVENT_KEY,
-    MOUSELEAVE: "mouseleave" + EVENT_KEY,
-    TOUCHEND: "touchend" + EVENT_KEY,
-    LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY,
-    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
-  };
-  var ClassName = {
-    CAROUSEL: 'carousel',
-    ACTIVE: 'active',
-    SLIDE: 'slide',
-    RIGHT: 'carousel-item-right',
-    LEFT: 'carousel-item-left',
-    NEXT: 'carousel-item-next',
-    PREV: 'carousel-item-prev',
-    ITEM: 'carousel-item'
-  };
-  var Selector = {
-    ACTIVE: '.active',
-    ACTIVE_ITEM: '.active.carousel-item',
-    ITEM: '.carousel-item',
-    NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
-    INDICATORS: '.carousel-indicators',
-    DATA_SLIDE: '[data-slide], [data-slide-to]',
-    DATA_RIDE: '[data-ride="carousel"]'
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Carousel =
-  /*#__PURE__*/
-  function () {
-    function Carousel(element, config) {
-      this._items = null;
-      this._interval = null;
-      this._activeElement = null;
-      this._isPaused = false;
-      this._isSliding = false;
-      this.touchTimeout = null;
-      this._config = this._getConfig(config);
-      this._element = $(element)[0];
-      this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0];
-
-      this._addEventListeners();
-    } // getters
-
-
-    var _proto = Carousel.prototype;
-
-    // public
-    _proto.next = function next() {
-      if (!this._isSliding) {
-        this._slide(Direction.NEXT);
-      }
-    };
-
-    _proto.nextWhenVisible = function nextWhenVisible() {
-      // Don't call next when the page isn't visible
-      // or the carousel or its parent isn't visible
-      if (!document.hidden && $(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden') {
-        this.next();
-      }
-    };
-
-    _proto.prev = function prev() {
-      if (!this._isSliding) {
-        this._slide(Direction.PREV);
-      }
-    };
-
-    _proto.pause = function pause(event) {
-      if (!event) {
-        this._isPaused = true;
-      }
-
-      if ($(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) {
-        Util.triggerTransitionEnd(this._element);
-        this.cycle(true);
-      }
-
-      clearInterval(this._interval);
-      this._interval = null;
-    };
-
-    _proto.cycle = function cycle(event) {
-      if (!event) {
-        this._isPaused = false;
-      }
-
-      if (this._interval) {
-        clearInterval(this._interval);
-        this._interval = null;
-      }
-
-      if (this._config.interval && !this._isPaused) {
-        this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
-      }
-    };
-
-    _proto.to = function to(index) {
-      var _this = this;
-
-      this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];
-
-      var activeIndex = this._getItemIndex(this._activeElement);
-
-      if (index > this._items.length - 1 || index < 0) {
-        return;
-      }
-
-      if (this._isSliding) {
-        $(this._element).one(Event.SLID, function () {
-          return _this.to(index);
-        });
-        return;
-      }
-
-      if (activeIndex === index) {
-        this.pause();
-        this.cycle();
-        return;
-      }
-
-      var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;
-
-      this._slide(direction, this._items[index]);
-    };
-
-    _proto.dispose = function dispose() {
-      $(this._element).off(EVENT_KEY);
-      $.removeData(this._element, DATA_KEY);
-      this._items = null;
-      this._config = null;
-      this._element = null;
-      this._interval = null;
-      this._isPaused = null;
-      this._isSliding = null;
-      this._activeElement = null;
-      this._indicatorsElement = null;
-    }; // private
-
-
-    _proto._getConfig = function _getConfig(config) {
-      config = $.extend({}, Default, config);
-      Util.typeCheckConfig(NAME, config, DefaultType);
-      return config;
-    };
-
-    _proto._addEventListeners = function _addEventListeners() {
-      var _this2 = this;
-
-      if (this._config.keyboard) {
-        $(this._element).on(Event.KEYDOWN, function (event) {
-          return _this2._keydown(event);
-        });
-      }
-
-      if (this._config.pause === 'hover') {
-        $(this._element).on(Event.MOUSEENTER, function (event) {
-          return _this2.pause(event);
-        }).on(Event.MOUSELEAVE, function (event) {
-          return _this2.cycle(event);
-        });
-
-        if ('ontouchstart' in document.documentElement) {
-          // if it's a touch-enabled device, mouseenter/leave are fired as
-          // part of the mouse compatibility events on first tap - the carousel
-          // would stop cycling until user tapped out of it;
-          // here, we listen for touchend, explicitly pause the carousel
-          // (as if it's the second time we tap on it, mouseenter compat event
-          // is NOT fired) and after a timeout (to allow for mouse compatibility
-          // events to fire) we explicitly restart cycling
-          $(this._element).on(Event.TOUCHEND, function () {
-            _this2.pause();
-
-            if (_this2.touchTimeout) {
-              clearTimeout(_this2.touchTimeout);
-            }
-
-            _this2.touchTimeout = setTimeout(function (event) {
-              return _this2.cycle(event);
-            }, TOUCHEVENT_COMPAT_WAIT + _this2._config.interval);
-          });
-        }
-      }
-    };
-
-    _proto._keydown = function _keydown(event) {
-      if (/input|textarea/i.test(event.target.tagName)) {
-        return;
-      }
-
-      switch (event.which) {
-        case ARROW_LEFT_KEYCODE:
-          event.preventDefault();
-          this.prev();
-          break;
-
-        case ARROW_RIGHT_KEYCODE:
-          event.preventDefault();
-          this.next();
-          break;
-
-        default:
-          return;
-      }
-    };
-
-    _proto._getItemIndex = function _getItemIndex(element) {
-      this._items = $.makeArray($(element).parent().find(Selector.ITEM));
-      return this._items.indexOf(element);
-    };
-
-    _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
-      var isNextDirection = direction === Direction.NEXT;
-      var isPrevDirection = direction === Direction.PREV;
-
-      var activeIndex = this._getItemIndex(activeElement);
-
-      var lastItemIndex = this._items.length - 1;
-      var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
-
-      if (isGoingToWrap && !this._config.wrap) {
-        return activeElement;
-      }
-
-      var delta = direction === Direction.PREV ? -1 : 1;
-      var itemIndex = (activeIndex + delta) % this._items.length;
-      return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
-    };
-
-    _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
-      var targetIndex = this._getItemIndex(relatedTarget);
-
-      var fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0]);
-
-      var slideEvent = $.Event(Event.SLIDE, {
-        relatedTarget: relatedTarget,
-        direction: eventDirectionName,
-        from: fromIndex,
-        to: targetIndex
-      });
-      $(this._element).trigger(slideEvent);
-      return slideEvent;
-    };
-
-    _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
-      if (this._indicatorsElement) {
-        $(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
-
-        var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
-
-        if (nextIndicator) {
-          $(nextIndicator).addClass(ClassName.ACTIVE);
-        }
-      }
-    };
-
-    _proto._slide = function _slide(direction, element) {
-      var _this3 = this;
-
-      var activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];
-
-      var activeElementIndex = this._getItemIndex(activeElement);
-
-      var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
-
-      var nextElementIndex = this._getItemIndex(nextElement);
-
-      var isCycling = Boolean(this._interval);
-      var directionalClassName;
-      var orderClassName;
-      var eventDirectionName;
-
-      if (direction === Direction.NEXT) {
-        directionalClassName = ClassName.LEFT;
-        orderClassName = ClassName.NEXT;
-        eventDirectionName = Direction.LEFT;
-      } else {
-        directionalClassName = ClassName.RIGHT;
-        orderClassName = ClassName.PREV;
-        eventDirectionName = Direction.RIGHT;
-      }
-
-      if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {
-        this._isSliding = false;
-        return;
-      }
-
-      var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
-
-      if (slideEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      if (!activeElement || !nextElement) {
-        // some weirdness is happening, so we bail
-        return;
-      }
-
-      this._isSliding = true;
-
-      if (isCycling) {
-        this.pause();
-      }
-
-      this._setActiveIndicatorElement(nextElement);
-
-      var slidEvent = $.Event(Event.SLID, {
-        relatedTarget: nextElement,
-        direction: eventDirectionName,
-        from: activeElementIndex,
-        to: nextElementIndex
-      });
-
-      if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.SLIDE)) {
-        $(nextElement).addClass(orderClassName);
-        Util.reflow(nextElement);
-        $(activeElement).addClass(directionalClassName);
-        $(nextElement).addClass(directionalClassName);
-        $(activeElement).one(Util.TRANSITION_END, function () {
-          $(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName.ACTIVE);
-          $(activeElement).removeClass(ClassName.ACTIVE + " " + orderClassName + " " + directionalClassName);
-          _this3._isSliding = false;
-          setTimeout(function () {
-            return $(_this3._element).trigger(slidEvent);
-          }, 0);
-        }).emulateTransitionEnd(TRANSITION_DURATION);
-      } else {
-        $(activeElement).removeClass(ClassName.ACTIVE);
-        $(nextElement).addClass(ClassName.ACTIVE);
-        this._isSliding = false;
-        $(this._element).trigger(slidEvent);
-      }
-
-      if (isCycling) {
-        this.cycle();
-      }
-    }; // static
-
-
-    Carousel._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var data = $(this).data(DATA_KEY);
-
-        var _config = $.extend({}, Default, $(this).data());
-
-        if (typeof config === 'object') {
-          $.extend(_config, config);
-        }
-
-        var action = typeof config === 'string' ? config : _config.slide;
-
-        if (!data) {
-          data = new Carousel(this, _config);
-          $(this).data(DATA_KEY, data);
-        }
-
-        if (typeof config === 'number') {
-          data.to(config);
-        } else if (typeof action === 'string') {
-          if (typeof data[action] === 'undefined') {
-            throw new Error("No method named \"" + action + "\"");
-          }
-
-          data[action]();
-        } else if (_config.interval) {
-          data.pause();
-          data.cycle();
-        }
-      });
-    };
-
-    Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
-      var selector = Util.getSelectorFromElement(this);
-
-      if (!selector) {
-        return;
-      }
-
-      var target = $(selector)[0];
-
-      if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {
-        return;
-      }
-
-      var config = $.extend({}, $(target).data(), $(this).data());
-      var slideIndex = this.getAttribute('data-slide-to');
-
-      if (slideIndex) {
-        config.interval = false;
-      }
-
-      Carousel._jQueryInterface.call($(target), config);
-
-      if (slideIndex) {
-        $(target).data(DATA_KEY).to(slideIndex);
-      }
-
-      event.preventDefault();
-    };
-
-    _createClass(Carousel, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }, {
-      key: "Default",
-      get: function get() {
-        return Default;
-      }
-    }]);
-
-    return Carousel;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-
-  $(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
-  $(window).on(Event.LOAD_DATA_API, function () {
-    $(Selector.DATA_RIDE).each(function () {
-      var $carousel = $(this);
-
-      Carousel._jQueryInterface.call($carousel, $carousel.data());
-    });
-  });
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME] = Carousel._jQueryInterface;
-  $.fn[NAME].Constructor = Carousel;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Carousel._jQueryInterface;
-  };
-
-  return Carousel;
-}($);
-//# sourceMappingURL=carousel.js.map
\ No newline at end of file
diff --git a/assets/javascript/dist/carousel.js.map b/assets/javascript/dist/carousel.js.map
deleted file mode 100755
index e746685..0000000
--- a/assets/javascript/dist/carousel.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/carousel.js"],"names":["Carousel","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","TRANSITION_DURATION","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","Default","interval","keyboard","slide","pause","wrap","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","Event","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHEND","LOAD_DATA_API","CLICK_DATA_API","ClassName","CAROUSEL","ACTIVE","ITEM","Selector","ACTIVE_ITEM","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","element","config","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_element","_indicatorsElement","find","_addEventListeners","next","_slide","nextWhenVisible","document","hidden","is","css","prev","event","Util","supportsTransitionEnd","triggerTransitionEnd","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","length",
 "one","direction","dispose","off","removeData","extend","typeCheckConfig","on","_keydown","documentElement","clearTimeout","setTimeout","test","target","tagName","which","preventDefault","makeArray","parent","indexOf","_getItemByDirection","activeElement","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","trigger","_setActiveIndicatorElement","removeClass","nextIndicator","children","addClass","activeElementIndex","nextElement","nextElementIndex","isCycling","Boolean","directionalClassName","orderClassName","hasClass","isDefaultPrevented","slidEvent","reflow","TRANSITION_END","emulateTransitionEnd","_jQueryInterface","each","data","action","Error","_dataApiClickHandler","selector","getSelectorFromElement","slideIndex","getAttribute","call","window","$carousel","Constructor","noConflict"],"mappings":"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","file":"carousel.js","sourcesContent":["import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ---------------------------------------------------------
 ---------------\n   */\n\n  const NAME                   = 'carousel'\n  const VERSION                = '4.0.0-beta.2'\n  const DATA_KEY               = 'bs.carousel'\n  const EVENT_KEY              = `.${DATA_KEY}`\n  const DATA_API_KEY           = '.data-api'\n  const JQUERY_NO_CONFLICT     = $.fn[NAME]\n  const TRANSITION_DURATION    = 600\n  const ARROW_LEFT_KEYCODE     = 37 // KeyboardEvent.which value for left arrow key\n  const ARROW_RIGHT_KEYCODE    = 39 // KeyboardEvent.which value for right arrow key\n  const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n  const Default = {\n    interval : 5000,\n    keyboard : true,\n    slide    : false,\n    pause    : 'hover',\n    wrap     : true\n  }\n\n  const DefaultType = {\n    interval : '(number|boolean)',\n    keyboard : 'boolean',\n    slide    : '(boolean|string)',\n    pause    : '(string|boolean)',\n    wrap     : 'boolean'\n  }\n\n  const Direction = {\n    NEXT     : 'next',\n    PRE
 V     : 'prev',\n    LEFT     : 'left',\n    RIGHT    : 'right'\n  }\n\n  const Event = {\n    SLIDE          : `slide${EVENT_KEY}`,\n    SLID           : `slid${EVENT_KEY}`,\n    KEYDOWN        : `keydown${EVENT_KEY}`,\n    MOUSEENTER     : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE     : `mouseleave${EVENT_KEY}`,\n    TOUCHEND       : `touchend${EVENT_KEY}`,\n    LOAD_DATA_API  : `load${EVENT_KEY}${DATA_API_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    CAROUSEL : 'carousel',\n    ACTIVE   : 'active',\n    SLIDE    : 'slide',\n    RIGHT    : 'carousel-item-right',\n    LEFT     : 'carousel-item-left',\n    NEXT     : 'carousel-item-next',\n    PREV     : 'carousel-item-prev',\n    ITEM     : 'carousel-item'\n  }\n\n  const Selector = {\n    ACTIVE      : '.active',\n    ACTIVE_ITEM : '.active.carousel-item',\n    ITEM        : '.carousel-item',\n    NEXT_PREV   : '.carousel-item-next, .carousel-item-prev',\n    INDICATORS  : '.car
 ousel-indicators',\n    DATA_SLIDE  : '[data-slide], [data-slide-to]',\n    DATA_RIDE   : '[data-ride=\"carousel\"]'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Carousel {\n\n    constructor(element, config) {\n      this._items             = null\n      this._interval          = null\n      this._activeElement     = null\n\n      this._isPaused          = false\n      this._isSliding         = false\n\n      this.touchTimeout       = null\n\n      this._config            = this._getConfig(config)\n      this._element           = $(element)[0]\n      this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n      this._addEventListeners()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // publi
 c\n\n    next() {\n      if (!this._isSliding) {\n        this._slide(Direction.NEXT)\n      }\n    }\n\n    nextWhenVisible() {\n      // Don't call next when the page isn't visible\n      // or the carousel or its parent isn't visible\n      if (!document.hidden &&\n        ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n        this.next()\n      }\n    }\n\n    prev() {\n      if (!this._isSliding) {\n        this._slide(Direction.PREV)\n      }\n    }\n\n    pause(event) {\n      if (!event) {\n        this._isPaused = true\n      }\n\n      if ($(this._element).find(Selector.NEXT_PREV)[0] &&\n        Util.supportsTransitionEnd()) {\n        Util.triggerTransitionEnd(this._element)\n        this.cycle(true)\n      }\n\n      clearInterval(this._interval)\n      this._interval = null\n    }\n\n    cycle(event) {\n      if (!event) {\n        this._isPaused = false\n      }\n\n      if (this._interval) {\n        clearInterval(this._interv
 al)\n        this._interval = null\n      }\n\n      if (this._config.interval && !this._isPaused) {\n        this._interval = setInterval(\n          (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n          this._config.interval\n        )\n      }\n    }\n\n    to(index) {\n      this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n      const activeIndex = this._getItemIndex(this._activeElement)\n\n      if (index > this._items.length - 1 || index < 0) {\n        return\n      }\n\n      if (this._isSliding) {\n        $(this._element).one(Event.SLID, () => this.to(index))\n        return\n      }\n\n      if (activeIndex === index) {\n        this.pause()\n        this.cycle()\n        return\n      }\n\n      const direction = index > activeIndex ?\n        Direction.NEXT :\n        Direction.PREV\n\n      this._slide(direction, this._items[index])\n    }\n\n    dispose() {\n      $(this._element).off(EVENT_KEY)\n      $.removeData
 (this._element, DATA_KEY)\n\n      this._items             = null\n      this._config            = null\n      this._element           = null\n      this._interval          = null\n      this._isPaused          = null\n      this._isSliding         = null\n      this._activeElement     = null\n      this._indicatorsElement = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = $.extend({}, Default, config)\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _addEventListeners() {\n      if (this._config.keyboard) {\n        $(this._element)\n          .on(Event.KEYDOWN, (event) => this._keydown(event))\n      }\n\n      if (this._config.pause === 'hover') {\n        $(this._element)\n          .on(Event.MOUSEENTER, (event) => this.pause(event))\n          .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n        if ('ontouchstart' in document.documentElement) {\n          // if it's a touch-enabled device, mouseenter/le
 ave are fired as\n          // part of the mouse compatibility events on first tap - the carousel\n          // would stop cycling until user tapped out of it;\n          // here, we listen for touchend, explicitly pause the carousel\n          // (as if it's the second time we tap on it, mouseenter compat event\n          // is NOT fired) and after a timeout (to allow for mouse compatibility\n          // events to fire) we explicitly restart cycling\n          $(this._element).on(Event.TOUCHEND, () => {\n            this.pause()\n            if (this.touchTimeout) {\n              clearTimeout(this.touchTimeout)\n            }\n            this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n          })\n        }\n      }\n    }\n\n    _keydown(event) {\n      if (/input|textarea/i.test(event.target.tagName)) {\n        return\n      }\n\n      switch (event.which) {\n        case ARROW_LEFT_KEYCODE:\n          event.preve
 ntDefault()\n          this.prev()\n          break\n        case ARROW_RIGHT_KEYCODE:\n          event.preventDefault()\n          this.next()\n          break\n        default:\n          return\n      }\n    }\n\n    _getItemIndex(element) {\n      this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n      return this._items.indexOf(element)\n    }\n\n    _getItemByDirection(direction, activeElement) {\n      const isNextDirection = direction === Direction.NEXT\n      const isPrevDirection = direction === Direction.PREV\n      const activeIndex     = this._getItemIndex(activeElement)\n      const lastItemIndex   = this._items.length - 1\n      const isGoingToWrap   = isPrevDirection && activeIndex === 0 ||\n                              isNextDirection && activeIndex === lastItemIndex\n\n      if (isGoingToWrap && !this._config.wrap) {\n        return activeElement\n      }\n\n      const delta     = direction === Direction.PREV ? -1 : 1\n      const itemIndex = (a
 ctiveIndex + delta) % this._items.length\n\n      return itemIndex === -1 ?\n        this._items[this._items.length - 1] : this._items[itemIndex]\n    }\n\n\n    _triggerSlideEvent(relatedTarget, eventDirectionName) {\n      const targetIndex = this._getItemIndex(relatedTarget)\n      const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n      const slideEvent = $.Event(Event.SLIDE, {\n        relatedTarget,\n        direction: eventDirectionName,\n        from: fromIndex,\n        to: targetIndex\n      })\n\n      $(this._element).trigger(slideEvent)\n\n      return slideEvent\n    }\n\n    _setActiveIndicatorElement(element) {\n      if (this._indicatorsElement) {\n        $(this._indicatorsElement)\n          .find(Selector.ACTIVE)\n          .removeClass(ClassName.ACTIVE)\n\n        const nextIndicator = this._indicatorsElement.children[\n          this._getItemIndex(element)\n        ]\n\n        if (nextIndicator) {\n          $(nextIndicator).
 addClass(ClassName.ACTIVE)\n        }\n      }\n    }\n\n    _slide(direction, element) {\n      const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n      const activeElementIndex = this._getItemIndex(activeElement)\n      const nextElement   = element || activeElement &&\n        this._getItemByDirection(direction, activeElement)\n      const nextElementIndex = this._getItemIndex(nextElement)\n      const isCycling = Boolean(this._interval)\n\n      let directionalClassName\n      let orderClassName\n      let eventDirectionName\n\n      if (direction === Direction.NEXT) {\n        directionalClassName = ClassName.LEFT\n        orderClassName = ClassName.NEXT\n        eventDirectionName = Direction.LEFT\n      } else {\n        directionalClassName = ClassName.RIGHT\n        orderClassName = ClassName.PREV\n        eventDirectionName = Direction.RIGHT\n      }\n\n      if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n        this._isSliding = false
 \n        return\n      }\n\n      const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n      if (slideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (!activeElement || !nextElement) {\n        // some weirdness is happening, so we bail\n        return\n      }\n\n      this._isSliding = true\n\n      if (isCycling) {\n        this.pause()\n      }\n\n      this._setActiveIndicatorElement(nextElement)\n\n      const slidEvent = $.Event(Event.SLID, {\n        relatedTarget: nextElement,\n        direction: eventDirectionName,\n        from: activeElementIndex,\n        to: nextElementIndex\n      })\n\n      if (Util.supportsTransitionEnd() &&\n        $(this._element).hasClass(ClassName.SLIDE)) {\n\n        $(nextElement).addClass(orderClassName)\n\n        Util.reflow(nextElement)\n\n        $(activeElement).addClass(directionalClassName)\n        $(nextElement).addClass(directionalClassName)\n\n        $(activeElement)\n          .one(Ut
 il.TRANSITION_END, () => {\n            $(nextElement)\n              .removeClass(`${directionalClassName} ${orderClassName}`)\n              .addClass(ClassName.ACTIVE)\n\n            $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n            this._isSliding = false\n\n            setTimeout(() => $(this._element).trigger(slidEvent), 0)\n\n          })\n          .emulateTransitionEnd(TRANSITION_DURATION)\n\n      } else {\n        $(activeElement).removeClass(ClassName.ACTIVE)\n        $(nextElement).addClass(ClassName.ACTIVE)\n\n        this._isSliding = false\n        $(this._element).trigger(slidEvent)\n      }\n\n      if (isCycling) {\n        this.cycle()\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = $.extend({}, Default, $(this).data())\n\n        if (typeof config === 'object') {\n   
        $.extend(_config, config)\n        }\n\n        const action = typeof config === 'string' ? config : _config.slide\n\n        if (!data) {\n          data = new Carousel(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'number') {\n          data.to(config)\n        } else if (typeof action === 'string') {\n          if (typeof data[action] === 'undefined') {\n            throw new Error(`No method named \"${action}\"`)\n          }\n          data[action]()\n        } else if (_config.interval) {\n          data.pause()\n          data.cycle()\n        }\n      })\n    }\n\n    static _dataApiClickHandler(event) {\n      const selector = Util.getSelectorFromElement(this)\n\n      if (!selector) {\n        return\n      }\n\n      const target = $(selector)[0]\n\n      if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n        return\n      }\n\n      const config     = $.extend({}, $(target).data(), $(this).data())\n 
      const slideIndex = this.getAttribute('data-slide-to')\n\n      if (slideIndex) {\n        config.interval = false\n      }\n\n      Carousel._jQueryInterface.call($(target), config)\n\n      if (slideIndex) {\n        $(target).data(DATA_KEY).to(slideIndex)\n      }\n\n      event.preventDefault()\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    $(Selector.DATA_RIDE).each(function () {\n      const $carousel = $(this)\n      Carousel._jQueryInterface.call($carousel, $carousel.data())\n    })\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ---------------------------------------------------------
 ---------------\n   */\n\n  $.fn[NAME]             = Carousel._jQueryInterface\n  $.fn[NAME].Constructor = Carousel\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Carousel._jQueryInterface\n  }\n\n  return Carousel\n\n})($)\n\nexport default Carousel\n"]}
\ No newline at end of file
diff --git a/assets/javascript/dist/collapse.js b/assets/javascript/dist/collapse.js
deleted file mode 100755
index 26d1086..0000000
--- a/assets/javascript/dist/collapse.js
+++ /dev/null
@@ -1,371 +0,0 @@
-function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
-
-function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): collapse.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-var Collapse = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-  var NAME = 'collapse';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.collapse';
-  var EVENT_KEY = "." + DATA_KEY;
-  var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var TRANSITION_DURATION = 600;
-  var Default = {
-    toggle: true,
-    parent: ''
-  };
-  var DefaultType = {
-    toggle: 'boolean',
-    parent: '(string|element)'
-  };
-  var Event = {
-    SHOW: "show" + EVENT_KEY,
-    SHOWN: "shown" + EVENT_KEY,
-    HIDE: "hide" + EVENT_KEY,
-    HIDDEN: "hidden" + EVENT_KEY,
-    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
-  };
-  var ClassName = {
-    SHOW: 'show',
-    COLLAPSE: 'collapse',
-    COLLAPSING: 'collapsing',
-    COLLAPSED: 'collapsed'
-  };
-  var Dimension = {
-    WIDTH: 'width',
-    HEIGHT: 'height'
-  };
-  var Selector = {
-    ACTIVES: '.show, .collapsing',
-    DATA_TOGGLE: '[data-toggle="collapse"]'
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Collapse =
-  /*#__PURE__*/
-  function () {
-    function Collapse(element, config) {
-      this._isTransitioning = false;
-      this._element = element;
-      this._config = this._getConfig(config);
-      this._triggerArray = $.makeArray($("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
-      var tabToggles = $(Selector.DATA_TOGGLE);
-
-      for (var i = 0; i < tabToggles.length; i++) {
-        var elem = tabToggles[i];
-        var selector = Util.getSelectorFromElement(elem);
-
-        if (selector !== null && $(selector).filter(element).length > 0) {
-          this._triggerArray.push(elem);
-        }
-      }
-
-      this._parent = this._config.parent ? this._getParent() : null;
-
-      if (!this._config.parent) {
-        this._addAriaAndCollapsedClass(this._element, this._triggerArray);
-      }
-
-      if (this._config.toggle) {
-        this.toggle();
-      }
-    } // getters
-
-
-    var _proto = Collapse.prototype;
-
-    // public
-    _proto.toggle = function toggle() {
-      if ($(this._element).hasClass(ClassName.SHOW)) {
-        this.hide();
-      } else {
-        this.show();
-      }
-    };
-
-    _proto.show = function show() {
-      var _this = this;
-
-      if (this._isTransitioning || $(this._element).hasClass(ClassName.SHOW)) {
-        return;
-      }
-
-      var actives;
-      var activesData;
-
-      if (this._parent) {
-        actives = $.makeArray($(this._parent).children().children(Selector.ACTIVES));
-
-        if (!actives.length) {
-          actives = null;
-        }
-      }
-
-      if (actives) {
-        activesData = $(actives).data(DATA_KEY);
-
-        if (activesData && activesData._isTransitioning) {
-          return;
-        }
-      }
-
-      var startEvent = $.Event(Event.SHOW);
-      $(this._element).trigger(startEvent);
-
-      if (startEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      if (actives) {
-        Collapse._jQueryInterface.call($(actives), 'hide');
-
-        if (!activesData) {
-          $(actives).data(DATA_KEY, null);
-        }
-      }
-
-      var dimension = this._getDimension();
-
-      $(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
-      this._element.style[dimension] = 0;
-
-      if (this._triggerArray.length) {
-        $(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
-      }
-
-      this.setTransitioning(true);
-
-      var complete = function complete() {
-        $(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
-        _this._element.style[dimension] = '';
-
-        _this.setTransitioning(false);
-
-        $(_this._element).trigger(Event.SHOWN);
-      };
-
-      if (!Util.supportsTransitionEnd()) {
-        complete();
-        return;
-      }
-
-      var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
-      var scrollSize = "scroll" + capitalizedDimension;
-      $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
-      this._element.style[dimension] = this._element[scrollSize] + "px";
-    };
-
-    _proto.hide = function hide() {
-      var _this2 = this;
-
-      if (this._isTransitioning || !$(this._element).hasClass(ClassName.SHOW)) {
-        return;
-      }
-
-      var startEvent = $.Event(Event.HIDE);
-      $(this._element).trigger(startEvent);
-
-      if (startEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      var dimension = this._getDimension();
-
-      this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
-      Util.reflow(this._element);
-      $(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
-
-      if (this._triggerArray.length) {
-        for (var i = 0; i < this._triggerArray.length; i++) {
-          var trigger = this._triggerArray[i];
-          var selector = Util.getSelectorFromElement(trigger);
-
-          if (selector !== null) {
-            var $elem = $(selector);
-
-            if (!$elem.hasClass(ClassName.SHOW)) {
-              $(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
-            }
-          }
-        }
-      }
-
-      this.setTransitioning(true);
-
-      var complete = function complete() {
-        _this2.setTransitioning(false);
-
-        $(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
-      };
-
-      this._element.style[dimension] = '';
-
-      if (!Util.supportsTransitionEnd()) {
-        complete();
-        return;
-      }
-
-      $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
-    };
-
-    _proto.setTransitioning = function setTransitioning(isTransitioning) {
-      this._isTransitioning = isTransitioning;
-    };
-
-    _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
-      this._config = null;
-      this._parent = null;
-      this._element = null;
-      this._triggerArray = null;
-      this._isTransitioning = null;
-    }; // private
-
-
-    _proto._getConfig = function _getConfig(config) {
-      config = $.extend({}, Default, config);
-      config.toggle = Boolean(config.toggle); // coerce string values
-
-      Util.typeCheckConfig(NAME, config, DefaultType);
-      return config;
-    };
-
-    _proto._getDimension = function _getDimension() {
-      var hasWidth = $(this._element).hasClass(Dimension.WIDTH);
-      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
-    };
-
-    _proto._getParent = function _getParent() {
-      var _this3 = this;
-
-      var parent = null;
-
-      if (Util.isElement(this._config.parent)) {
-        parent = this._config.parent; // it's a jQuery object
-
-        if (typeof this._config.parent.jquery !== 'undefined') {
-          parent = this._config.parent[0];
-        }
-      } else {
-        parent = $(this._config.parent)[0];
-      }
-
-      var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
-      $(parent).find(selector).each(function (i, element) {
-        _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
-      });
-      return parent;
-    };
-
-    _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
-      if (element) {
-        var isOpen = $(element).hasClass(ClassName.SHOW);
-
-        if (triggerArray.length) {
-          $(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
-        }
-      }
-    }; // static
-
-
-    Collapse._getTargetFromElement = function _getTargetFromElement(element) {
-      var selector = Util.getSelectorFromElement(element);
-      return selector ? $(selector)[0] : null;
-    };
-
-    Collapse._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var $this = $(this);
-        var data = $this.data(DATA_KEY);
-
-        var _config = $.extend({}, Default, $this.data(), typeof config === 'object' && config);
-
-        if (!data && _config.toggle && /show|hide/.test(config)) {
-          _config.toggle = false;
-        }
-
-        if (!data) {
-          data = new Collapse(this, _config);
-          $this.data(DATA_KEY, data);
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error("No method named \"" + config + "\"");
-          }
-
-          data[config]();
-        }
-      });
-    };
-
-    _createClass(Collapse, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }, {
-      key: "Default",
-      get: function get() {
-        return Default;
-      }
-    }]);
-
-    return Collapse;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-
-  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
-    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
-    if (event.currentTarget.tagName === 'A') {
-      event.preventDefault();
-    }
-
-    var $trigger = $(this);
-    var selector = Util.getSelectorFromElement(this);
-    $(selector).each(function () {
-      var $target = $(this);
-      var data = $target.data(DATA_KEY);
-      var config = data ? 'toggle' : $trigger.data();
-
-      Collapse._jQueryInterface.call($target, config);
-    });
-  });
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME] = Collapse._jQueryInterface;
-  $.fn[NAME].Constructor = Collapse;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Collapse._jQueryInterface;
-  };
-
-  return Collapse;
-}($);
-//# sourceMappingURL=collapse.js.map
\ No newline at end of file
diff --git a/assets/javascript/dist/collapse.js.map b/assets/javascript/dist/collapse.js.map
deleted file mode 100755
index c1f9c97..0000000
--- a/assets/javascript/dist/collapse.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/collapse.js"],"names":["Collapse","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","TRANSITION_DURATION","Default","toggle","parent","DefaultType","Event","SHOW","SHOWN","HIDE","HIDDEN","CLICK_DATA_API","ClassName","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","Selector","ACTIVES","DATA_TOGGLE","element","config","_isTransitioning","_element","_config","_getConfig","_triggerArray","makeArray","id","tabToggles","i","length","elem","selector","Util","getSelectorFromElement","filter","push","_parent","_getParent","_addAriaAndCollapsedClass","hasClass","hide","show","actives","activesData","children","data","startEvent","trigger","isDefaultPrevented","_jQueryInterface","call","dimension","_getDimension","removeClass","addClass","style","attr","setTransitioning","complete","supportsTransitionEnd","capitalizedDimension","toUpperCase","slice","scrollSize","one","TRANSITION_END","emulateTransitionEnd","ge
 tBoundingClientRect","reflow","$elem","isTransitioning","dispose","removeData","extend","Boolean","typeCheckConfig","hasWidth","isElement","jquery","find","each","_getTargetFromElement","triggerArray","isOpen","toggleClass","$this","test","Error","document","on","event","currentTarget","tagName","preventDefault","$trigger","$target","Constructor","noConflict"],"mappings":"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","file":"collapse.js","sourcesContent":["import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'collapse'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.collapse'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 600\n\n  const Default = {\n    toggle : true,\n  
   parent : ''\n  }\n\n  const DefaultType = {\n    toggle : 'boolean',\n    parent : '(string|element)'\n  }\n\n  const Event = {\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SHOW       : 'show',\n    COLLAPSE   : 'collapse',\n    COLLAPSING : 'collapsing',\n    COLLAPSED  : 'collapsed'\n  }\n\n  const Dimension = {\n    WIDTH  : 'width',\n    HEIGHT : 'height'\n  }\n\n  const Selector = {\n    ACTIVES     : '.show, .collapsing',\n    DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Collapse {\n\n    constructor(element, config) {\n      this._isTransitioning = fa
 lse\n      this._element         = element\n      this._config          = this._getConfig(config)\n      this._triggerArray    = $.makeArray($(\n        `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n        `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n      ))\n      const tabToggles = $(Selector.DATA_TOGGLE)\n      for (let i = 0; i < tabToggles.length; i++) {\n        const elem = tabToggles[i]\n        const selector = Util.getSelectorFromElement(elem)\n        if (selector !== null && $(selector).filter(element).length > 0) {\n          this._triggerArray.push(elem)\n        }\n      }\n\n      this._parent = this._config.parent ? this._getParent() : null\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n      }\n\n      if (this._config.toggle) {\n        this.toggle()\n      }\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default
 () {\n      return Default\n    }\n\n\n    // public\n\n    toggle() {\n      if ($(this._element).hasClass(ClassName.SHOW)) {\n        this.hide()\n      } else {\n        this.show()\n      }\n    }\n\n    show() {\n      if (this._isTransitioning ||\n        $(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      let actives\n      let activesData\n\n      if (this._parent) {\n        actives = $.makeArray($(this._parent).children().children(Selector.ACTIVES))\n        if (!actives.length) {\n          actives = null\n        }\n      }\n\n      if (actives) {\n        activesData = $(actives).data(DATA_KEY)\n        if (activesData && activesData._isTransitioning) {\n          return\n        }\n      }\n\n      const startEvent = $.Event(Event.SHOW)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($(actives), 'hide')\n        i
 f (!activesData) {\n          $(actives).data(DATA_KEY, null)\n        }\n      }\n\n      const dimension = this._getDimension()\n\n      $(this._element)\n        .removeClass(ClassName.COLLAPSE)\n        .addClass(ClassName.COLLAPSING)\n\n      this._element.style[dimension] = 0\n\n      if (this._triggerArray.length) {\n        $(this._triggerArray)\n          .removeClass(ClassName.COLLAPSED)\n          .attr('aria-expanded', true)\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .addClass(ClassName.SHOW)\n\n        this._element.style[dimension] = ''\n\n        this.setTransitioning(false)\n\n        $(this._element).trigger(Event.SHOWN)\n      }\n\n      if (!Util.supportsTransitionEnd()) {\n        complete()\n        return\n      }\n\n      const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n   
    const scrollSize           = `scroll${capitalizedDimension}`\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(TRANSITION_DURATION)\n\n      this._element.style[dimension] = `${this._element[scrollSize]}px`\n    }\n\n    hide() {\n      if (this._isTransitioning ||\n        !$(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      const startEvent = $.Event(Event.HIDE)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      const dimension       = this._getDimension()\n\n      this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n      Util.reflow(this._element)\n\n      $(this._element)\n        .addClass(ClassName.COLLAPSING)\n        .removeClass(ClassName.COLLAPSE)\n        .removeClass(ClassName.SHOW)\n\n      if (this._triggerArray.length) {\n        for (let i = 0; i < this._triggerArray.length; 
 i++) {\n          const trigger = this._triggerArray[i]\n          const selector = Util.getSelectorFromElement(trigger)\n          if (selector !== null) {\n            const $elem = $(selector)\n            if (!$elem.hasClass(ClassName.SHOW)) {\n              $(trigger).addClass(ClassName.COLLAPSED)\n                   .attr('aria-expanded', false)\n            }\n          }\n        }\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        this.setTransitioning(false)\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .trigger(Event.HIDDEN)\n      }\n\n      this._element.style[dimension] = ''\n\n      if (!Util.supportsTransitionEnd()) {\n        complete()\n        return\n      }\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(TRANSITION_DURATION)\n    }\n\n    setTransitioning(isTransitioning) {\n      this._isTransi
 tioning = isTransitioning\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      this._config          = null\n      this._parent          = null\n      this._element         = null\n      this._triggerArray    = null\n      this._isTransitioning = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = $.extend({}, Default, config)\n      config.toggle = Boolean(config.toggle) // coerce string values\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _getDimension() {\n      const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n    }\n\n    _getParent() {\n      let parent = null\n      if (Util.isElement(this._config.parent)) {\n        parent = this._config.parent\n\n        // it's a jQuery object\n        if (typeof this._config.parent.jquery !== 'undefined') {\n          parent = this._config.parent[0]\n        }\n      } else {
 \n        parent = $(this._config.parent)[0]\n      }\n\n      const selector =\n        `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n      $(parent).find(selector).each((i, element) => {\n        this._addAriaAndCollapsedClass(\n          Collapse._getTargetFromElement(element),\n          [element]\n        )\n      })\n\n      return parent\n    }\n\n    _addAriaAndCollapsedClass(element, triggerArray) {\n      if (element) {\n        const isOpen = $(element).hasClass(ClassName.SHOW)\n\n        if (triggerArray.length) {\n          $(triggerArray)\n            .toggleClass(ClassName.COLLAPSED, !isOpen)\n            .attr('aria-expanded', isOpen)\n        }\n      }\n    }\n\n\n    // static\n\n    static _getTargetFromElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      return selector ? $(selector)[0] : null\n    }\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this   = 
 $(this)\n        let data      = $this.data(DATA_KEY)\n        const _config = $.extend(\n          {},\n          Default,\n          $this.data(),\n          typeof config === 'object' && config\n        )\n\n        if (!data && _config.toggle && /show|hide/.test(config)) {\n          _config.toggle = false\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    // preventDefault only for
  <a> elements (which change the URL) not inside the collapsible element\n    if (event.currentTarget.tagName === 'A') {\n      event.preventDefault()\n    }\n\n    const $trigger = $(this)\n    const selector = Util.getSelectorFromElement(this)\n    $(selector).each(function () {\n      const $target = $(this)\n      const data    = $target.data(DATA_KEY)\n      const config  = data ? 'toggle' : $trigger.data()\n      Collapse._jQueryInterface.call($target, config)\n    })\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Collapse._jQueryInterface\n  $.fn[NAME].Constructor = Collapse\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Collapse._jQueryInterface\n  }\n\n  return Collapse\n\n})($)\n\nexport default Collapse\n"]}
\ No newline at end of file
diff --git a/assets/javascript/dist/dropdown.js b/assets/javascript/dist/dropdown.js
deleted file mode 100755
index 0fc2dc8..0000000
--- a/assets/javascript/dist/dropdown.js
+++ /dev/null
@@ -1,443 +0,0 @@
-function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
-
-function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): dropdown.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-var Dropdown = function () {
-  /**
-   * Check for Popper dependency
-   * Popper - https://popper.js.org
-   */
-  if (typeof Popper === 'undefined') {
-    throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)');
-  }
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-
-
-  var NAME = 'dropdown';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.dropdown';
-  var EVENT_KEY = "." + DATA_KEY;
-  var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
-
-  var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
-
-  var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
-
-  var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
-
-  var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
-
-  var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
-
-  var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
-  var Event = {
-    HIDE: "hide" + EVENT_KEY,
-    HIDDEN: "hidden" + EVENT_KEY,
-    SHOW: "show" + EVENT_KEY,
-    SHOWN: "shown" + EVENT_KEY,
-    CLICK: "click" + EVENT_KEY,
-    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
-    KEYDOWN_DATA_API: "keydown" + EVENT_KEY + DATA_API_KEY,
-    KEYUP_DATA_API: "keyup" + EVENT_KEY + DATA_API_KEY
-  };
-  var ClassName = {
-    DISABLED: 'disabled',
-    SHOW: 'show',
-    DROPUP: 'dropup',
-    MENURIGHT: 'dropdown-menu-right',
-    MENULEFT: 'dropdown-menu-left'
-  };
-  var Selector = {
-    DATA_TOGGLE: '[data-toggle="dropdown"]',
-    FORM_CHILD: '.dropdown form',
-    MENU: '.dropdown-menu',
-    NAVBAR_NAV: '.navbar-nav',
-    VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'
-  };
-  var AttachmentMap = {
-    TOP: 'top-start',
-    TOPEND: 'top-end',
-    BOTTOM: 'bottom-start',
-    BOTTOMEND: 'bottom-end'
-  };
-  var Default = {
-    offset: 0,
-    flip: true
-  };
-  var DefaultType = {
-    offset: '(number|string|function)',
-    flip: 'boolean'
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Dropdown =
-  /*#__PURE__*/
-  function () {
-    function Dropdown(element, config) {
-      this._element = element;
-      this._popper = null;
-      this._config = this._getConfig(config);
-      this._menu = this._getMenuElement();
-      this._inNavbar = this._detectNavbar();
-
-      this._addEventListeners();
-    } // getters
-
-
-    var _proto = Dropdown.prototype;
-
-    // public
-    _proto.toggle = function toggle() {
-      if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {
-        return;
-      }
-
-      var parent = Dropdown._getParentFromElement(this._element);
-
-      var isActive = $(this._menu).hasClass(ClassName.SHOW);
-
-      Dropdown._clearMenus();
-
-      if (isActive) {
-        return;
-      }
-
-      var relatedTarget = {
-        relatedTarget: this._element
-      };
-      var showEvent = $.Event(Event.SHOW, relatedTarget);
-      $(parent).trigger(showEvent);
-
-      if (showEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      var element = this._element; // for dropup with alignment we use the parent as popper container
-
-      if ($(parent).hasClass(ClassName.DROPUP)) {
-        if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {
-          element = parent;
-        }
-      }
-
-      this._popper = new Popper(element, this._menu, this._getPopperConfig()); // if this is a touch-enabled device we add extra
-      // empty mouseover listeners to the body's immediate children;
-      // only needed because of broken event delegation on iOS
-      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
-
-      if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) {
-        $('body').children().on('mouseover', null, $.noop);
-      }
-
-      this._element.focus();
-
-      this._element.setAttribute('aria-expanded', true);
-
-      $(this._menu).toggleClass(ClassName.SHOW);
-      $(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.SHOWN, relatedTarget));
-    };
-
-    _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
-      $(this._element).off(EVENT_KEY);
-      this._element = null;
-      this._menu = null;
-
-      if (this._popper !== null) {
-        this._popper.destroy();
-      }
-
-      this._popper = null;
-    };
-
-    _proto.update = function update() {
-      this._inNavbar = this._detectNavbar();
-
-      if (this._popper !== null) {
-        this._popper.scheduleUpdate();
-      }
-    }; // private
-
-
-    _proto._addEventListeners = function _addEventListeners() {
-      var _this = this;
-
-      $(this._element).on(Event.CLICK, function (event) {
-        event.preventDefault();
-        event.stopPropagation();
-
-        _this.toggle();
-      });
-    };
-
-    _proto._getConfig = function _getConfig(config) {
-      config = $.extend({}, this.constructor.Default, $(this._element).data(), config);
-      Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
-      return config;
-    };
-
-    _proto._getMenuElement = function _getMenuElement() {
-      if (!this._menu) {
-        var parent = Dropdown._getParentFromElement(this._element);
-
-        this._menu = $(parent).find(Selector.MENU)[0];
-      }
-
-      return this._menu;
-    };
-
-    _proto._getPlacement = function _getPlacement() {
-      var $parentDropdown = $(this._element).parent();
-      var placement = AttachmentMap.BOTTOM; // Handle dropup
-
-      if ($parentDropdown.hasClass(ClassName.DROPUP)) {
-        placement = AttachmentMap.TOP;
-
-        if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
-          placement = AttachmentMap.TOPEND;
-        }
-      } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
-        placement = AttachmentMap.BOTTOMEND;
-      }
-
-      return placement;
-    };
-
-    _proto._detectNavbar = function _detectNavbar() {
-      return $(this._element).closest('.navbar').length > 0;
-    };
-
-    _proto._getPopperConfig = function _getPopperConfig() {
-      var _this2 = this;
-
-      var offsetConf = {};
-
-      if (typeof this._config.offset === 'function') {
-        offsetConf.fn = function (data) {
-          data.offsets = $.extend({}, data.offsets, _this2._config.offset(data.offsets) || {});
-          return data;
-        };
-      } else {
-        offsetConf.offset = this._config.offset;
-      }
-
-      var popperConfig = {
-        placement: this._getPlacement(),
-        modifiers: {
-          offset: offsetConf,
-          flip: {
-            enabled: this._config.flip
-          }
-        } // Disable Popper.js for Dropdown in Navbar
-
-      };
-
-      if (this._inNavbar) {
-        popperConfig.modifiers.applyStyle = {
-          enabled: !this._inNavbar
-        };
-      }
-
-      return popperConfig;
-    }; // static
-
-
-    Dropdown._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var data = $(this).data(DATA_KEY);
-
-        var _config = typeof config === 'object' ? config : null;
-
-        if (!data) {
-          data = new Dropdown(this, _config);
-          $(this).data(DATA_KEY, data);
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error("No method named \"" + config + "\"");
-          }
-
-          data[config]();
-        }
-      });
-    };
-
-    Dropdown._clearMenus = function _clearMenus(event) {
-      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
-        return;
-      }
-
-      var toggles = $.makeArray($(Selector.DATA_TOGGLE));
-
-      for (var i = 0; i < toggles.length; i++) {
-        var parent = Dropdown._getParentFromElement(toggles[i]);
-
-        var context = $(toggles[i]).data(DATA_KEY);
-        var relatedTarget = {
-          relatedTarget: toggles[i]
-        };
-
-        if (!context) {
-          continue;
-        }
-
-        var dropdownMenu = context._menu;
-
-        if (!$(parent).hasClass(ClassName.SHOW)) {
-          continue;
-        }
-
-        if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $.contains(parent, event.target)) {
-          continue;
-        }
-
-        var hideEvent = $.Event(Event.HIDE, relatedTarget);
-        $(parent).trigger(hideEvent);
-
-        if (hideEvent.isDefaultPrevented()) {
-          continue;
-        } // if this is a touch-enabled device we remove the extra
-        // empty mouseover listeners we added for iOS support
-
-
-        if ('ontouchstart' in document.documentElement) {
-          $('body').children().off('mouseover', null, $.noop);
-        }
-
-        toggles[i].setAttribute('aria-expanded', 'false');
-        $(dropdownMenu).removeClass(ClassName.SHOW);
-        $(parent).removeClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget));
-      }
-    };
-
-    Dropdown._getParentFromElement = function _getParentFromElement(element) {
-      var parent;
-      var selector = Util.getSelectorFromElement(element);
-
-      if (selector) {
-        parent = $(selector)[0];
-      }
-
-      return parent || element.parentNode;
-    };
-
-    Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
-      if (!REGEXP_KEYDOWN.test(event.which) || /button/i.test(event.target.tagName) && event.which === SPACE_KEYCODE || /input|textarea/i.test(event.target.tagName)) {
-        return;
-      }
-
-      event.preventDefault();
-      event.stopPropagation();
-
-      if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
-        return;
-      }
-
-      var parent = Dropdown._getParentFromElement(this);
-
-      var isActive = $(parent).hasClass(ClassName.SHOW);
-
-      if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
-        if (event.which === ESCAPE_KEYCODE) {
-          var toggle = $(parent).find(Selector.DATA_TOGGLE)[0];
-          $(toggle).trigger('focus');
-        }
-
-        $(this).trigger('click');
-        return;
-      }
-
-      var items = $(parent).find(Selector.VISIBLE_ITEMS).get();
-
-      if (!items.length) {
-        return;
-      }
-
-      var index = items.indexOf(event.target);
-
-      if (event.which === ARROW_UP_KEYCODE && index > 0) {
-        // up
-        index--;
-      }
-
-      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
-        // down
-        index++;
-      }
-
-      if (index < 0) {
-        index = 0;
-      }
-
-      items[index].focus();
-    };
-
-    _createClass(Dropdown, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }, {
-      key: "Default",
-      get: function get() {
-        return Default;
-      }
-    }, {
-      key: "DefaultType",
-      get: function get() {
-        return DefaultType;
-      }
-    }]);
-
-    return Dropdown;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-
-  $(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + " " + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
-    event.preventDefault();
-    event.stopPropagation();
-
-    Dropdown._jQueryInterface.call($(this), 'toggle');
-  }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
-    e.stopPropagation();
-  });
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME] = Dropdown._jQueryInterface;
-  $.fn[NAME].Constructor = Dropdown;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Dropdown._jQueryInterface;
-  };
-
-  return Dropdown;
-}($, Popper);
-//# sourceMappingURL=dropdown.js.map
\ No newline at end of file
diff --git a/assets/javascript/dist/dropdown.js.map b/assets/javascript/dist/dropdown.js.map
deleted file mode 100755
index 8699ec5..0000000
--- a/assets/javascript/dist/dropdown.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/dropdown.js"],"names":["Dropdown","Popper","Error","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","RegExp","Event","HIDE","HIDDEN","SHOW","SHOWN","CLICK","CLICK_DATA_API","KEYDOWN_DATA_API","KEYUP_DATA_API","ClassName","DISABLED","DROPUP","MENURIGHT","MENULEFT","Selector","DATA_TOGGLE","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","Default","offset","flip","DefaultType","element","config","_element","_popper","_config","_getConfig","_menu","_getMenuElement","_inNavbar","_detectNavbar","_addEventListeners","toggle","disabled","hasClass","parent","_getParentFromElement","isActive","_clearMenus","relatedTarget","showEvent","trigger","isDefaultPrevented","_getPopperConfig","document","documentElement","closest","length","children","on"
 ,"noop","focus","setAttribute","toggleClass","dispose","removeData","off","destroy","update","scheduleUpdate","event","preventDefault","stopPropagation","extend","constructor","data","Util","typeCheckConfig","find","_getPlacement","$parentDropdown","placement","offsetConf","offsets","popperConfig","modifiers","enabled","applyStyle","_jQueryInterface","each","which","type","toggles","makeArray","i","context","dropdownMenu","test","target","tagName","contains","hideEvent","removeClass","selector","getSelectorFromElement","parentNode","_dataApiKeydownHandler","items","get","index","indexOf","call","e","Constructor","noConflict"],"mappings":";;;;AAKA;;;;;;AAOA,IAAMA,WAAY,YAAM;AAEtB;;;;AAIA,MAAI,OAAOC,MAAP,KAAkB,WAAtB,EAAmC;AACjC,UAAM,IAAIC,KAAJ,CAAU,8DAAV,CAAN;AACD;AAED;;;;;;;AAMA,MAAMC,OAA2B,UAAjC;AACA,MAAMC,UAA2B,cAAjC;AACA,MAAMC,WAA2B,aAAjC;AACA,MAAMC,kBAA+BD,QAArC;AACA,MAAME,eAA2B,WAAjC;AACA,MAAMC,qBAA2BC,EAAEC,EAAF,CAAKP,IAAL,CAAjC;AACA,MAAMQ,iBAA2B,EAAjC,CAtBsB,CAsBc;;AACpC,MAAMC,
 gBAA2B,EAAjC,CAvBsB,CAuBc;;AACpC,MAAMC,cAA2B,CAAjC,CAxBsB,CAwBa;;AACnC,MAAMC,mBAA2B,EAAjC,CAzBsB,CAyBc;;AACpC,MAAMC,qBAA2B,EAAjC,CA1BsB,CA0Bc;;AACpC,MAAMC,2BAA2B,CAAjC,CA3BsB,CA2Ba;;AACnC,MAAMC,iBAA2B,IAAIC,MAAJ,CAAcJ,gBAAd,SAAkCC,kBAAlC,SAAwDJ,cAAxD,CAAjC;AAEA,MAAMQ,QAAQ;AACZC,mBAA0Bd,SADd;AAEZe,uBAA4Bf,SAFhB;AAGZgB,mBAA0BhB,SAHd;AAIZiB,qBAA2BjB,SAJf;AAKZkB,qBAA2BlB,SALf;AAMZmB,8BAA2BnB,SAA3B,GAAuCC,YAN3B;AAOZmB,kCAA6BpB,SAA7B,GAAyCC,YAP7B;AAQZoB,8BAA2BrB,SAA3B,GAAuCC;AAR3B,GAAd;AAWA,MAAMqB,YAAY;AAChBC,cAAY,UADI;AAEhBP,UAAY,MAFI;AAGhBQ,YAAY,QAHI;AAIhBC,eAAY,qBAJI;AAKhBC,cAAY;AALI,GAAlB;AAQA,MAAMC,WAAW;AACfC,iBAAgB,0BADD;AAEfC,gBAAgB,gBAFD;AAGfC,UAAgB,gBAHD;AAIfC,gBAAgB,aAJD;AAKfC,mBAAgB;AALD,GAAjB;AAQA,MAAMC,gBAAgB;AACpBC,SAAY,WADQ;AAEpBC,YAAY,SAFQ;AAGpBC,YAAY,cAHQ;AAIpBC,eAAY;AAJQ,GAAtB;AAOA,MAAMC,UAAU;AACdC,YAAc,CADA;AAEdC,UAAc;AAFA,GAAhB;AAKA,MAAMC,cAAc;AAClBF,YAAc,0BADI;AAElBC,UAAc;AAIhB;;;;;;AANoB,GAApB;;AArEsB,MAiFhB9C,QAjFgB;AAAA;AAAA;AAmFpB,sBAAYgD,OAAZ,EAAqBC,MAArB,EAA6B;A
 AC3B,WAAKC,QAAL,GAAiBF,OAAjB;AACA,WAAKG,OAAL,GAAiB,IAAjB;AACA,WAAKC,OAAL,GAAiB,KAAKC,UAAL,CAAgBJ,MAAhB,CAAjB;AACA,WAAKK,KAAL,GAAiB,KAAKC,eAAL,EAAjB;AACA,WAAKC,SAAL,GAAiB,KAAKC,aAAL,EAAjB;;AAEA,WAAKC,kBAAL;AACD,KA3FmB,CA8FpB;;;AA9FoB;;AA4GpB;AA5GoB,WA8GpBC,MA9GoB,qBA8GX;AACP,UAAI,KAAKT,QAAL,CAAcU,QAAd,IAA0BnD,EAAE,KAAKyC,QAAP,EAAiBW,QAAjB,CAA0BjC,UAAUC,QAApC,CAA9B,EAA6E;AAC3E;AACD;;AAED,UAAMiC,SAAW9D,SAAS+D,qBAAT,CAA+B,KAAKb,QAApC,CAAjB;;AACA,UAAMc,WAAWvD,EAAE,KAAK6C,KAAP,EAAcO,QAAd,CAAuBjC,UAAUN,IAAjC,CAAjB;;AAEAtB,eAASiE,WAAT;;AAEA,UAAID,QAAJ,EAAc;AACZ;AACD;;AAED,UAAME,gBAAgB;AACpBA,uBAAgB,KAAKhB;AADD,OAAtB;AAGA,UAAMiB,YAAY1D,EAAEU,KAAF,CAAQA,MAAMG,IAAd,EAAoB4C,aAApB,CAAlB;AAEAzD,QAAEqD,MAAF,EAAUM,OAAV,CAAkBD,SAAlB;;AAEA,UAAIA,UAAUE,kBAAV,EAAJ,EAAoC;AAClC;AACD;;AAED,UAAIrB,UAAU,KAAKE,QAAnB,CAzBO,CA0BP;;AACA,UAAIzC,EAAEqD,MAAF,EAAUD,QAAV,CAAmBjC,UAAUE,MAA7B,CAAJ,EAA0C;AACxC,YAAIrB,EAAE,KAAK6C,KAAP,EAAcO,QAAd,CAAuBjC,UAAUI,QAAjC,KAA8CvB,EAAE,KAAK6C,KAAP,EAAcO,QAAd,CAAuBjC,UAAUG,SAAjC
 ,CAAlD,EAA+F;AAC7FiB,oBAAUc,MAAV;AACD;AACF;;AACD,WAAKX,OAAL,GAAe,IAAIlD,MAAJ,CAAW+C,OAAX,EAAoB,KAAKM,KAAzB,EAAgC,KAAKgB,gBAAL,EAAhC,CAAf,CAhCO,CAkCP;AACA;AACA;AACA;;AACA,UAAI,kBAAkBC,SAASC,eAA3B,IACD,CAAC/D,EAAEqD,MAAF,EAAUW,OAAV,CAAkBxC,SAASI,UAA3B,EAAuCqC,MAD3C,EACmD;AACjDjE,UAAE,MAAF,EAAUkE,QAAV,GAAqBC,EAArB,CAAwB,WAAxB,EAAqC,IAArC,EAA2CnE,EAAEoE,IAA7C;AACD;;AAED,WAAK3B,QAAL,CAAc4B,KAAd;;AACA,WAAK5B,QAAL,CAAc6B,YAAd,CAA2B,eAA3B,EAA4C,IAA5C;;AAEAtE,QAAE,KAAK6C,KAAP,EAAc0B,WAAd,CAA0BpD,UAAUN,IAApC;AACAb,QAAEqD,MAAF,EACGkB,WADH,CACepD,UAAUN,IADzB,EAEG8C,OAFH,CAEW3D,EAAEU,KAAF,CAAQA,MAAMI,KAAd,EAAqB2C,aAArB,CAFX;AAGD,KAhKmB;;AAAA,WAkKpBe,OAlKoB,sBAkKV;AACRxE,QAAEyE,UAAF,CAAa,KAAKhC,QAAlB,EAA4B7C,QAA5B;AACAI,QAAE,KAAKyC,QAAP,EAAiBiC,GAAjB,CAAqB7E,SAArB;AACA,WAAK4C,QAAL,GAAgB,IAAhB;AACA,WAAKI,KAAL,GAAa,IAAb;;AACA,UAAI,KAAKH,OAAL,KAAiB,IAArB,EAA2B;AACzB,aAAKA,OAAL,CAAaiC,OAAb;AACD;;AACD,WAAKjC,OAAL,GAAe,IAAf;AACD,KA3KmB;;AAAA,WA6KpBkC,MA7KoB,qBA6KX;AACP,WAAK7B,SAAL,GAAiB,KAAKC,aAAL,EAAj
 B;;AACA,UAAI,KAAKN,OAAL,KAAiB,IAArB,EAA2B;AACzB,aAAKA,OAAL,CAAamC,cAAb;AACD;AACF,KAlLmB,EAoLpB;;;AApLoB,WAsLpB5B,kBAtLoB,iCAsLC;AAAA;;AACnBjD,QAAE,KAAKyC,QAAP,EAAiB0B,EAAjB,CAAoBzD,MAAMK,KAA1B,EAAiC,UAAC+D,KAAD,EAAW;AAC1CA,cAAMC,cAAN;AACAD,cAAME,eAAN;;AACA,cAAK9B,MAAL;AACD,OAJD;AAKD,KA5LmB;;AAAA,WA8LpBN,UA9LoB,uBA8LTJ,MA9LS,EA8LD;AACjBA,eAASxC,EAAEiF,MAAF,CACP,EADO,EAEP,KAAKC,WAAL,CAAiB/C,OAFV,EAGPnC,EAAE,KAAKyC,QAAP,EAAiB0C,IAAjB,EAHO,EAIP3C,MAJO,CAAT;AAOA4C,WAAKC,eAAL,CACE3F,IADF,EAEE8C,MAFF,EAGE,KAAK0C,WAAL,CAAiB5C,WAHnB;AAMA,aAAOE,MAAP;AACD,KA7MmB;;AAAA,WA+MpBM,eA/MoB,8BA+MF;AAChB,UAAI,CAAC,KAAKD,KAAV,EAAiB;AACf,YAAMQ,SAAS9D,SAAS+D,qBAAT,CAA+B,KAAKb,QAApC,CAAf;;AACA,aAAKI,KAAL,GAAa7C,EAAEqD,MAAF,EAAUiC,IAAV,CAAe9D,SAASG,IAAxB,EAA8B,CAA9B,CAAb;AACD;;AACD,aAAO,KAAKkB,KAAZ;AACD,KArNmB;;AAAA,WAuNpB0C,aAvNoB,4BAuNJ;AACd,UAAMC,kBAAkBxF,EAAE,KAAKyC,QAAP,EAAiBY,MAAjB,EAAxB;AACA,UAAIoC,YAAY3D,cAAcG,MAA9B,CAFc,CAId;;AACA,UAAIuD,gBAAgBpC,QAAhB,CAAyBjC,UAAUE,MAAnC,CAAJ,EAAgD;AAC9CoE,oBAAY3D
 ,cAAcC,GAA1B;;AACA,YAAI/B,EAAE,KAAK6C,KAAP,EAAcO,QAAd,CAAuBjC,UAAUG,SAAjC,CAAJ,EAAiD;AAC/CmE,sBAAY3D,cAAcE,MAA1B;AACD;AACF,OALD,MAKO,IAAIhC,EAAE,KAAK6C,KAAP,EAAcO,QAAd,CAAuBjC,UAAUG,SAAjC,CAAJ,EAAiD;AACtDmE,oBAAY3D,cAAcI,SAA1B;AACD;;AACD,aAAOuD,SAAP;AACD,KArOmB;;AAAA,WAuOpBzC,aAvOoB,4BAuOJ;AACd,aAAOhD,EAAE,KAAKyC,QAAP,EAAiBuB,OAAjB,CAAyB,SAAzB,EAAoCC,MAApC,GAA6C,CAApD;AACD,KAzOmB;;AAAA,WA2OpBJ,gBA3OoB,+BA2OD;AAAA;;AACjB,UAAM6B,aAAa,EAAnB;;AACA,UAAI,OAAO,KAAK/C,OAAL,CAAaP,MAApB,KAA+B,UAAnC,EAA+C;AAC7CsD,mBAAWzF,EAAX,GAAgB,UAACkF,IAAD,EAAU;AACxBA,eAAKQ,OAAL,GAAe3F,EAAEiF,MAAF,CAAS,EAAT,EAAaE,KAAKQ,OAAlB,EAA2B,OAAKhD,OAAL,CAAaP,MAAb,CAAoB+C,KAAKQ,OAAzB,KAAqC,EAAhE,CAAf;AACA,iBAAOR,IAAP;AACD,SAHD;AAID,OALD,MAKO;AACLO,mBAAWtD,MAAX,GAAoB,KAAKO,OAAL,CAAaP,MAAjC;AACD;;AACD,UAAMwD,eAAe;AACnBH,mBAAY,KAAKF,aAAL,EADO;AAEnBM,mBAAY;AACVzD,kBAASsD,UADC;AAEVrD,gBAAO;AACLyD,qBAAU,KAAKnD,OAAL,CAAaN;AADlB;AAFG,SAFO,CAUrB;;AAVqB,OAArB;;AAWA,UAAI,KAAKU,SAAT,EAAoB;AAClB6C,qBAAaC,SAAb,CAAuBE,UAAvB,GAAoC;A
 AClCD,mBAAS,CAAC,KAAK/C;AADmB,SAApC;AAGD;;AACD,aAAO6C,YAAP;AACD,KAtQmB,EAwQpB;;;AAxQoB,aA0QbI,gBA1Qa,6BA0QIxD,MA1QJ,EA0QY;AAC9B,aAAO,KAAKyD,IAAL,CAAU,YAAY;AAC3B,YAAId,OAAOnF,EAAE,IAAF,EAAQmF,IAAR,CAAavF,QAAb,CAAX;;AACA,YAAM+C,UAAU,OAAOH,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsC,IAAtD;;AAEA,YAAI,CAAC2C,IAAL,EAAW;AACTA,iBAAO,IAAI5F,QAAJ,CAAa,IAAb,EAAmBoD,OAAnB,CAAP;AACA3C,YAAE,IAAF,EAAQmF,IAAR,CAAavF,QAAb,EAAuBuF,IAAvB;AACD;;AAED,YAAI,OAAO3C,MAAP,KAAkB,QAAtB,EAAgC;AAC9B,cAAI,OAAO2C,KAAK3C,MAAL,CAAP,KAAwB,WAA5B,EAAyC;AACvC,kBAAM,IAAI/C,KAAJ,wBAA8B+C,MAA9B,QAAN;AACD;;AACD2C,eAAK3C,MAAL;AACD;AACF,OAfM,CAAP;AAgBD,KA3RmB;;AAAA,aA6RbgB,WA7Ra,wBA6RDsB,KA7RC,EA6RM;AACxB,UAAIA,UAAUA,MAAMoB,KAAN,KAAgB3F,wBAAhB,IACZuE,MAAMqB,IAAN,KAAe,OAAf,IAA0BrB,MAAMoB,KAAN,KAAgB9F,WADxC,CAAJ,EAC0D;AACxD;AACD;;AAED,UAAMgG,UAAUpG,EAAEqG,SAAF,CAAYrG,EAAEwB,SAASC,WAAX,CAAZ,CAAhB;;AACA,WAAK,IAAI6E,IAAI,CAAb,EAAgBA,IAAIF,QAAQnC,MAA5B,EAAoCqC,GAApC,EAAyC;AACvC,YAAMjD,SAAgB9D,SAAS+D,qBAAT,CAA+B8C,QAAQE,CAAR,CAA/B,CAAtB;;AA
 CA,YAAMC,UAAgBvG,EAAEoG,QAAQE,CAAR,CAAF,EAAcnB,IAAd,CAAmBvF,QAAnB,CAAtB;AACA,YAAM6D,gBAAgB;AACpBA,yBAAgB2C,QAAQE,CAAR;AADI,SAAtB;;AAIA,YAAI,CAACC,OAAL,EAAc;AACZ;AACD;;AAED,YAAMC,eAAeD,QAAQ1D,KAA7B;;AACA,YAAI,CAAC7C,EAAEqD,MAAF,EAAUD,QAAV,CAAmBjC,UAAUN,IAA7B,CAAL,EAAyC;AACvC;AACD;;AAED,YAAIiE,UAAUA,MAAMqB,IAAN,KAAe,OAAf,IACV,kBAAkBM,IAAlB,CAAuB3B,MAAM4B,MAAN,CAAaC,OAApC,CADU,IACsC7B,MAAMqB,IAAN,KAAe,OAAf,IAA0BrB,MAAMoB,KAAN,KAAgB9F,WAD1F,KAEGJ,EAAE4G,QAAF,CAAWvD,MAAX,EAAmByB,MAAM4B,MAAzB,CAFP,EAEyC;AACvC;AACD;;AAED,YAAMG,YAAY7G,EAAEU,KAAF,CAAQA,MAAMC,IAAd,EAAoB8C,aAApB,CAAlB;AACAzD,UAAEqD,MAAF,EAAUM,OAAV,CAAkBkD,SAAlB;;AACA,YAAIA,UAAUjD,kBAAV,EAAJ,EAAoC;AAClC;AACD,SA1BsC,CA4BvC;AACA;;;AACA,YAAI,kBAAkBE,SAASC,eAA/B,EAAgD;AAC9C/D,YAAE,MAAF,EAAUkE,QAAV,GAAqBQ,GAArB,CAAyB,WAAzB,EAAsC,IAAtC,EAA4C1E,EAAEoE,IAA9C;AACD;;AAEDgC,gBAAQE,CAAR,EAAWhC,YAAX,CAAwB,eAAxB,EAAyC,OAAzC;AAEAtE,UAAEwG,YAAF,EAAgBM,WAAhB,CAA4B3F,UAAUN,IAAtC;AACAb,UAAEqD,MAAF,EACGyD,WADH,CACe3F,UAAUN,IADzB,EAEG8C,OAFH,CAEW3D
 ,EAAEU,KAAF,CAAQA,MAAME,MAAd,EAAsB6C,aAAtB,CAFX;AAGD;AACF,KA7UmB;;AAAA,aA+UbH,qBA/Ua,kCA+USf,OA/UT,EA+UkB;AACpC,UAAIc,MAAJ;AACA,UAAM0D,WAAW3B,KAAK4B,sBAAL,CAA4BzE,OAA5B,CAAjB;;AAEA,UAAIwE,QAAJ,EAAc;AACZ1D,iBAASrD,EAAE+G,QAAF,EAAY,CAAZ,CAAT;AACD;;AAED,aAAO1D,UAAUd,QAAQ0E,UAAzB;AACD,KAxVmB;;AAAA,aA0VbC,sBA1Va,mCA0VUpC,KA1VV,EA0ViB;AACnC,UAAI,CAACtE,eAAeiG,IAAf,CAAoB3B,MAAMoB,KAA1B,CAAD,IAAqC,UAAUO,IAAV,CAAe3B,MAAM4B,MAAN,CAAaC,OAA5B,KAAwC7B,MAAMoB,KAAN,KAAgB/F,aAA7F,IACD,kBAAkBsG,IAAlB,CAAuB3B,MAAM4B,MAAN,CAAaC,OAApC,CADH,EACiD;AAC/C;AACD;;AAED7B,YAAMC,cAAN;AACAD,YAAME,eAAN;;AAEA,UAAI,KAAK7B,QAAL,IAAiBnD,EAAE,IAAF,EAAQoD,QAAR,CAAiBjC,UAAUC,QAA3B,CAArB,EAA2D;AACzD;AACD;;AAED,UAAMiC,SAAW9D,SAAS+D,qBAAT,CAA+B,IAA/B,CAAjB;;AACA,UAAMC,WAAWvD,EAAEqD,MAAF,EAAUD,QAAV,CAAmBjC,UAAUN,IAA7B,CAAjB;;AAEA,UAAI,CAAC0C,QAAD,KAAcuB,MAAMoB,KAAN,KAAgBhG,cAAhB,IAAkC4E,MAAMoB,KAAN,KAAgB/F,aAAhE,KACCoD,aAAauB,MAAMoB,KAAN,KAAgBhG,cAAhB,IAAkC4E,MAAMoB,KAAN,KAAgB/F,aAA/D,CADL,EACoF;AAElF,YAAI2E,MAAMoB,KAAN,KAA
 gBhG,cAApB,EAAoC;AAClC,cAAMgD,SAASlD,EAAEqD,MAAF,EAAUiC,IAAV,CAAe9D,SAASC,WAAxB,EAAqC,CAArC,CAAf;AACAzB,YAAEkD,MAAF,EAAUS,OAAV,CAAkB,OAAlB;AACD;;AAED3D,UAAE,IAAF,EAAQ2D,OAAR,CAAgB,OAAhB;AACA;AACD;;AAED,UAAMwD,QAAQnH,EAAEqD,MAAF,EAAUiC,IAAV,CAAe9D,SAASK,aAAxB,EAAuCuF,GAAvC,EAAd;;AAEA,UAAI,CAACD,MAAMlD,MAAX,EAAmB;AACjB;AACD;;AAED,UAAIoD,QAAQF,MAAMG,OAAN,CAAcxC,MAAM4B,MAApB,CAAZ;;AAEA,UAAI5B,MAAMoB,KAAN,KAAgB7F,gBAAhB,IAAoCgH,QAAQ,CAAhD,EAAmD;AAAE;AACnDA;AACD;;AAED,UAAIvC,MAAMoB,KAAN,KAAgB5F,kBAAhB,IAAsC+G,QAAQF,MAAMlD,MAAN,GAAe,CAAjE,EAAoE;AAAE;AACpEoD;AACD;;AAED,UAAIA,QAAQ,CAAZ,EAAe;AACbA,gBAAQ,CAAR;AACD;;AAEDF,YAAME,KAAN,EAAahD,KAAb;AACD,KA3YmB;;AAAA;AAAA;AAAA,0BAgGC;AACnB,eAAO1E,OAAP;AACD;AAlGmB;AAAA;AAAA,0BAoGC;AACnB,eAAOwC,OAAP;AACD;AAtGmB;AAAA;AAAA,0BAwGK;AACvB,eAAOG,WAAP;AACD;AA1GmB;;AAAA;AAAA;AAgZtB;;;;;;;AAMAtC,IAAE8D,QAAF,EACGK,EADH,CACMzD,MAAMO,gBADZ,EAC8BO,SAASC,WADvC,EACqDlC,SAAS2H,sBAD9D,EAEG/C,EAFH,CAEMzD,MAAMO,gBAFZ,EAE8BO,SAASG,IAFvC,EAE6CpC,SAAS2H,sBAFtD,EAGG/C,EAHH,
 CAGSzD,MAAMM,cAHf,SAGiCN,MAAMQ,cAHvC,EAGyD3B,SAASiE,WAHlE,EAIGW,EAJH,CAIMzD,MAAMM,cAJZ,EAI4BQ,SAASC,WAJrC,EAIkD,UAAUqD,KAAV,EAAiB;AAC/DA,UAAMC,cAAN;AACAD,UAAME,eAAN;;AACAzF,aAASyG,gBAAT,CAA0BuB,IAA1B,CAA+BvH,EAAE,IAAF,CAA/B,EAAwC,QAAxC;AACD,GARH,EASGmE,EATH,CASMzD,MAAMM,cATZ,EAS4BQ,SAASE,UATrC,EASiD,UAAC8F,CAAD,EAAO;AACpDA,MAAExC,eAAF;AACD,GAXH;AAcA;;;;;;AAMAhF,IAAEC,EAAF,CAAKP,IAAL,IAAyBH,SAASyG,gBAAlC;AACAhG,IAAEC,EAAF,CAAKP,IAAL,EAAW+H,WAAX,GAAyBlI,QAAzB;;AACAS,IAAEC,EAAF,CAAKP,IAAL,EAAWgI,UAAX,GAAyB,YAAY;AACnC1H,MAAEC,EAAF,CAAKP,IAAL,IAAaK,kBAAb;AACA,WAAOR,SAASyG,gBAAhB;AACD,GAHD;;AAKA,SAAOzG,QAAP;AAED,CAnbgB,CAmbdS,CAnbc,EAmbXR,MAnbW,CAAjB","file":"dropdown.js","sourcesContent":["import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * -------
 -------------------------------------------------------------------\n */\n\nconst Dropdown = (() => {\n\n  /**\n   * Check for Popper dependency\n   * Popper - https://popper.js.org\n   */\n  if (typeof Popper === 'undefined') {\n    throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                     = 'dropdown'\n  const VERSION                  = '4.0.0-beta.2'\n  const DATA_KEY                 = 'bs.dropdown'\n  const EVENT_KEY                = `.${DATA_KEY}`\n  const DATA_API_KEY             = '.data-api'\n  const JQUERY_NO_CONFLICT       = $.fn[NAME]\n  const ESCAPE_KEYCODE           = 27 // KeyboardEvent.which value for Escape (Esc) key\n  const SPACE_KEYCODE            = 32 // KeyboardEvent.which value for space key\n  const TAB_KEYCODE 
              = 9 // KeyboardEvent.which value for tab key\n  const ARROW_UP_KEYCODE         = 38 // KeyboardEvent.which value for up arrow key\n  const ARROW_DOWN_KEYCODE       = 40 // KeyboardEvent.which value for down arrow key\n  const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n  const REGEXP_KEYDOWN           = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n  const Event = {\n    HIDE             : `hide${EVENT_KEY}`,\n    HIDDEN           : `hidden${EVENT_KEY}`,\n    SHOW             : `show${EVENT_KEY}`,\n    SHOWN            : `shown${EVENT_KEY}`,\n    CLICK            : `click${EVENT_KEY}`,\n    CLICK_DATA_API   : `click${EVENT_KEY}${DATA_API_KEY}`,\n    KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n    KEYUP_DATA_API   : `keyup${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DISABLED  : 'disabled',\n    SHOW      : 'show',\n    DROPUP    : 'dropup',\n  
   MENURIGHT : 'dropdown-menu-right',\n    MENULEFT  : 'dropdown-menu-left'\n  }\n\n  const Selector = {\n    DATA_TOGGLE   : '[data-toggle=\"dropdown\"]',\n    FORM_CHILD    : '.dropdown form',\n    MENU          : '.dropdown-menu',\n    NAVBAR_NAV    : '.navbar-nav',\n    VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled)'\n  }\n\n  const AttachmentMap = {\n    TOP       : 'top-start',\n    TOPEND    : 'top-end',\n    BOTTOM    : 'bottom-start',\n    BOTTOMEND : 'bottom-end'\n  }\n\n  const Default = {\n    offset      : 0,\n    flip        : true\n  }\n\n  const DefaultType = {\n    offset      : '(number|string|function)',\n    flip        : 'boolean'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Dropdown {\n\n    constructor(element, config) {\n      this._element  = element\n      this._popper   = nul
 l\n      this._config   = this._getConfig(config)\n      this._menu     = this._getMenuElement()\n      this._inNavbar = this._detectNavbar()\n\n      this._addEventListeners()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n    // public\n\n    toggle() {\n      if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      const parent   = Dropdown._getParentFromElement(this._element)\n      const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n      Dropdown._clearMenus()\n\n      if (isActive) {\n        return\n      }\n\n      const relatedTarget = {\n        relatedTarget : this._element\n      }\n      const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n      $(parent).trigger(showEvent)\n\n      if (showEvent.isDefaultPrevented()) {\n        return\n  
     }\n\n      let element = this._element\n      // for dropup with alignment we use the parent as popper container\n      if ($(parent).hasClass(ClassName.DROPUP)) {\n        if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {\n          element = parent\n        }\n      }\n      this._popper = new Popper(element, this._menu, this._getPopperConfig())\n\n      // if this is a touch-enabled device we add extra\n      // empty mouseover listeners to the body's immediate children;\n      // only needed because of broken event delegation on iOS\n      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n      if ('ontouchstart' in document.documentElement &&\n         !$(parent).closest(Selector.NAVBAR_NAV).length) {\n        $('body').children().on('mouseover', null, $.noop)\n      }\n\n      this._element.focus()\n      this._element.setAttribute('aria-expanded', true)\n\n      $(this._menu).toggleClass(ClassName.SHOW
 )\n      $(parent)\n        .toggleClass(ClassName.SHOW)\n        .trigger($.Event(Event.SHOWN, relatedTarget))\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      $(this._element).off(EVENT_KEY)\n      this._element = null\n      this._menu = null\n      if (this._popper !== null) {\n        this._popper.destroy()\n      }\n      this._popper = null\n    }\n\n    update() {\n      this._inNavbar = this._detectNavbar()\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate()\n      }\n    }\n\n    // private\n\n    _addEventListeners() {\n      $(this._element).on(Event.CLICK, (event) => {\n        event.preventDefault()\n        event.stopPropagation()\n        this.toggle()\n      })\n    }\n\n    _getConfig(config) {\n      config = $.extend(\n        {},\n        this.constructor.Default,\n        $(this._element).data(),\n        config\n      )\n\n      Util.typeCheckConfig(\n        NAME,\n        config,\n        this.constructor.D
 efaultType\n      )\n\n      return config\n    }\n\n    _getMenuElement() {\n      if (!this._menu) {\n        const parent = Dropdown._getParentFromElement(this._element)\n        this._menu = $(parent).find(Selector.MENU)[0]\n      }\n      return this._menu\n    }\n\n    _getPlacement() {\n      const $parentDropdown = $(this._element).parent()\n      let placement = AttachmentMap.BOTTOM\n\n      // Handle dropup\n      if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n        placement = AttachmentMap.TOP\n        if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n          placement = AttachmentMap.TOPEND\n        }\n      } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n        placement = AttachmentMap.BOTTOMEND\n      }\n      return placement\n    }\n\n    _detectNavbar() {\n      return $(this._element).closest('.navbar').length > 0\n    }\n\n    _getPopperConfig() {\n      const offsetConf = {}\n      if (typeof this._config.offset === 'function') {\n        
 offsetConf.fn = (data) => {\n          data.offsets = $.extend({}, data.offsets, this._config.offset(data.offsets) || {})\n          return data\n        }\n      } else {\n        offsetConf.offset = this._config.offset\n      }\n      const popperConfig = {\n        placement : this._getPlacement(),\n        modifiers : {\n          offset : offsetConf,\n          flip : {\n            enabled : this._config.flip\n          }\n        }\n      }\n\n      // Disable Popper.js for Dropdown in Navbar\n      if (this._inNavbar) {\n        popperConfig.modifiers.applyStyle = {\n          enabled: !this._inNavbar\n        }\n      }\n      return popperConfig\n    }\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' ? config : null\n\n        if (!data) {\n          data = new Dropdown(this, _config)\n          $(this).data(DATA_KEY, data)\n        
 }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n    static _clearMenus(event) {\n      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n        event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n        return\n      }\n\n      const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n      for (let i = 0; i < toggles.length; i++) {\n        const parent        = Dropdown._getParentFromElement(toggles[i])\n        const context       = $(toggles[i]).data(DATA_KEY)\n        const relatedTarget = {\n          relatedTarget : toggles[i]\n        }\n\n        if (!context) {\n          continue\n        }\n\n        const dropdownMenu = context._menu\n        if (!$(parent).hasClass(ClassName.SHOW)) {\n          continue\n        }\n\n        if (event && (event.type === 'click' &&\n        
     /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE)\n            && $.contains(parent, event.target)) {\n          continue\n        }\n\n        const hideEvent = $.Event(Event.HIDE, relatedTarget)\n        $(parent).trigger(hideEvent)\n        if (hideEvent.isDefaultPrevented()) {\n          continue\n        }\n\n        // if this is a touch-enabled device we remove the extra\n        // empty mouseover listeners we added for iOS support\n        if ('ontouchstart' in document.documentElement) {\n          $('body').children().off('mouseover', null, $.noop)\n        }\n\n        toggles[i].setAttribute('aria-expanded', 'false')\n\n        $(dropdownMenu).removeClass(ClassName.SHOW)\n        $(parent)\n          .removeClass(ClassName.SHOW)\n          .trigger($.Event(Event.HIDDEN, relatedTarget))\n      }\n    }\n\n    static _getParentFromElement(element) {\n      let parent\n      const selector = Util.getSelectorFromEleme
 nt(element)\n\n      if (selector) {\n        parent = $(selector)[0]\n      }\n\n      return parent || element.parentNode\n    }\n\n    static _dataApiKeydownHandler(event) {\n      if (!REGEXP_KEYDOWN.test(event.which) || /button/i.test(event.target.tagName) && event.which === SPACE_KEYCODE ||\n         /input|textarea/i.test(event.target.tagName)) {\n        return\n      }\n\n      event.preventDefault()\n      event.stopPropagation()\n\n      if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      const parent   = Dropdown._getParentFromElement(this)\n      const isActive = $(parent).hasClass(ClassName.SHOW)\n\n      if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n           isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n\n        if (event.which === ESCAPE_KEYCODE) {\n          const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n          $(toggle).trigger('foc
 us')\n        }\n\n        $(this).trigger('click')\n        return\n      }\n\n      const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n      if (!items.length) {\n        return\n      }\n\n      let index = items.indexOf(event.target)\n\n      if (event.which === ARROW_UP_KEYCODE && index > 0) { // up\n        index--\n      }\n\n      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // down\n        index++\n      }\n\n      if (index < 0) {\n        index = 0\n      }\n\n      items[index].focus()\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE,  Dropdown._dataApiKeydownHandler)\n    .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n    .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DA
 TA_API}`, Dropdown._clearMenus)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault()\n      event.stopPropagation()\n      Dropdown._jQueryInterface.call($(this), 'toggle')\n    })\n    .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n      e.stopPropagation()\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Dropdown._jQueryInterface\n  $.fn[NAME].Constructor = Dropdown\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Dropdown._jQueryInterface\n  }\n\n  return Dropdown\n\n})($, Popper)\n\nexport default Dropdown\n"]}
\ No newline at end of file
diff --git a/assets/javascript/dist/index.js b/assets/javascript/dist/index.js
deleted file mode 100755
index e68e952..0000000
--- a/assets/javascript/dist/index.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-alpha.6): index.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-(function () {
-  if (typeof $ === 'undefined') {
-    throw new Error('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
-  }
-
-  var version = $.fn.jquery.split(' ')[0].split('.');
-  var minMajor = 1;
-  var ltMajor = 2;
-  var minMinor = 9;
-  var minPatch = 1;
-  var maxMajor = 4;
-
-  if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
-    throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
-  }
-})($);
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/assets/javascript/dist/index.js.map b/assets/javascript/dist/index.js.map
deleted file mode 100755
index 65de13f..0000000
--- a/assets/javascript/dist/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/index.js"],"names":["$","Error","version","fn","jquery","split","minMajor","ltMajor","minMinor","minPatch","maxMajor"],"mappings":"AAaA;;;;;;AAOA,CAAC,YAAM;AACL,MAAI,OAAOA,CAAP,KAAa,WAAjB,EAA8B;AAC5B,UAAM,IAAIC,KAAJ,CAAU,kGAAV,CAAN;AACD;;AAED,MAAMC,UAAUF,EAAEG,EAAF,CAAKC,MAAL,CAAYC,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,EAA0BA,KAA1B,CAAgC,GAAhC,CAAhB;AACA,MAAMC,WAAW,CAAjB;AACA,MAAMC,UAAW,CAAjB;AACA,MAAMC,WAAW,CAAjB;AACA,MAAMC,WAAW,CAAjB;AACA,MAAMC,WAAW,CAAjB;;AAEA,MAAIR,QAAQ,CAAR,IAAaK,OAAb,IAAwBL,QAAQ,CAAR,IAAaM,QAArC,IAAiDN,QAAQ,CAAR,MAAeI,QAAf,IAA2BJ,QAAQ,CAAR,MAAeM,QAA1C,IAAsDN,QAAQ,CAAR,IAAaO,QAApH,IAAgIP,QAAQ,CAAR,KAAcQ,QAAlJ,EAA4J;AAC1J,UAAM,IAAIT,KAAJ,CAAU,8EAAV,CAAN;AACD;AACF,CAfD,EAeGD,CAfH","file":"index.js","sourcesContent":["import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Po
 pover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(() => {\n  if (typeof $ === 'undefined') {\n    throw new Error('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n  }\n\n  const version = $.fn.jquery.split(' ')[0].split('.')\n  const minMajor = 1\n  const ltMajor  = 2\n  const minMinor = 9\n  const minPatch = 1\n  const maxMajor = 4\n\n  if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n    throw new Error('Bootstrap\\'s JavaScript requires 
 at least jQuery v1.9.1 but less than v4.0.0')\n  }\n})($)\n\nexport {\n  Util,\n  Alert,\n  Button,\n  Carousel,\n  Collapse,\n  Dropdown,\n  Modal,\n  Popover,\n  Scrollspy,\n  Tab,\n  Tooltip\n}\n"]}
\ No newline at end of file
diff --git a/assets/javascript/dist/modal.js b/assets/javascript/dist/modal.js
deleted file mode 100755
index 4cbd955..0000000
--- a/assets/javascript/dist/modal.js
+++ /dev/null
@@ -1,580 +0,0 @@
-function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
-
-function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): modal.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-var Modal = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-  var NAME = 'modal';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.modal';
-  var EVENT_KEY = "." + DATA_KEY;
-  var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var TRANSITION_DURATION = 300;
-  var BACKDROP_TRANSITION_DURATION = 150;
-  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
-
-  var Default = {
-    backdrop: true,
-    keyboard: true,
-    focus: true,
-    show: true
-  };
-  var DefaultType = {
-    backdrop: '(boolean|string)',
-    keyboard: 'boolean',
-    focus: 'boolean',
-    show: 'boolean'
-  };
-  var Event = {
-    HIDE: "hide" + EVENT_KEY,
-    HIDDEN: "hidden" + EVENT_KEY,
-    SHOW: "show" + EVENT_KEY,
-    SHOWN: "shown" + EVENT_KEY,
-    FOCUSIN: "focusin" + EVENT_KEY,
-    RESIZE: "resize" + EVENT_KEY,
-    CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
-    KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY,
-    MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY,
-    MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY,
-    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
-  };
-  var ClassName = {
-    SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
-    BACKDROP: 'modal-backdrop',
-    OPEN: 'modal-open',
-    FADE: 'fade',
-    SHOW: 'show'
-  };
-  var Selector = {
-    DIALOG: '.modal-dialog',
-    DATA_TOGGLE: '[data-toggle="modal"]',
-    DATA_DISMISS: '[data-dismiss="modal"]',
-    FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
-    STICKY_CONTENT: '.sticky-top',
-    NAVBAR_TOGGLER: '.navbar-toggler'
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Modal =
-  /*#__PURE__*/
-  function () {
-    function Modal(element, config) {
-      this._config = this._getConfig(config);
-      this._element = element;
-      this._dialog = $(element).find(Selector.DIALOG)[0];
-      this._backdrop = null;
-      this._isShown = false;
-      this._isBodyOverflowing = false;
-      this._ignoreBackdropClick = false;
-      this._originalBodyPadding = 0;
-      this._scrollbarWidth = 0;
-    } // getters
-
-
-    var _proto = Modal.prototype;
-
-    // public
-    _proto.toggle = function toggle(relatedTarget) {
-      return this._isShown ? this.hide() : this.show(relatedTarget);
-    };
-
-    _proto.show = function show(relatedTarget) {
-      var _this = this;
-
-      if (this._isTransitioning || this._isShown) {
-        return;
-      }
-
-      if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {
-        this._isTransitioning = true;
-      }
-
-      var showEvent = $.Event(Event.SHOW, {
-        relatedTarget: relatedTarget
-      });
-      $(this._element).trigger(showEvent);
-
-      if (this._isShown || showEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      this._isShown = true;
-
-      this._checkScrollbar();
-
-      this._setScrollbar();
-
-      this._adjustDialog();
-
-      $(document.body).addClass(ClassName.OPEN);
-
-      this._setEscapeEvent();
-
-      this._setResizeEvent();
-
-      $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
-        return _this.hide(event);
-      });
-      $(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
-        $(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
-          if ($(event.target).is(_this._element)) {
-            _this._ignoreBackdropClick = true;
-          }
-        });
-      });
-
-      this._showBackdrop(function () {
-        return _this._showElement(relatedTarget);
-      });
-    };
-
-    _proto.hide = function hide(event) {
-      var _this2 = this;
-
-      if (event) {
-        event.preventDefault();
-      }
-
-      if (this._isTransitioning || !this._isShown) {
-        return;
-      }
-
-      var hideEvent = $.Event(Event.HIDE);
-      $(this._element).trigger(hideEvent);
-
-      if (!this._isShown || hideEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      this._isShown = false;
-      var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);
-
-      if (transition) {
-        this._isTransitioning = true;
-      }
-
-      this._setEscapeEvent();
-
-      this._setResizeEvent();
-
-      $(document).off(Event.FOCUSIN);
-      $(this._element).removeClass(ClassName.SHOW);
-      $(this._element).off(Event.CLICK_DISMISS);
-      $(this._dialog).off(Event.MOUSEDOWN_DISMISS);
-
-      if (transition) {
-        $(this._element).one(Util.TRANSITION_END, function (event) {
-          return _this2._hideModal(event);
-        }).emulateTransitionEnd(TRANSITION_DURATION);
-      } else {
-        this._hideModal();
-      }
-    };
-
-    _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
-      $(window, document, this._element, this._backdrop).off(EVENT_KEY);
-      this._config = null;
-      this._element = null;
-      this._dialog = null;
-      this._backdrop = null;
-      this._isShown = null;
-      this._isBodyOverflowing = null;
-      this._ignoreBackdropClick = null;
-      this._scrollbarWidth = null;
-    };
-
-    _proto.handleUpdate = function handleUpdate() {
-      this._adjustDialog();
-    }; // private
-
-
-    _proto._getConfig = function _getConfig(config) {
-      config = $.extend({}, Default, config);
-      Util.typeCheckConfig(NAME, config, DefaultType);
-      return config;
-    };
-
-    _proto._showElement = function _showElement(relatedTarget) {
-      var _this3 = this;
-
-      var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);
-
-      if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
-        // don't move modals dom position
-        document.body.appendChild(this._element);
-      }
-
-      this._element.style.display = 'block';
-
-      this._element.removeAttribute('aria-hidden');
-
-      this._element.scrollTop = 0;
-
-      if (transition) {
-        Util.reflow(this._element);
-      }
-
-      $(this._element).addClass(ClassName.SHOW);
-
-      if (this._config.focus) {
-        this._enforceFocus();
-      }
-
-      var shownEvent = $.Event(Event.SHOWN, {
-        relatedTarget: relatedTarget
-      });
-
-      var transitionComplete = function transitionComplete() {
-        if (_this3._config.focus) {
-          _this3._element.focus();
-        }
-
-        _this3._isTransitioning = false;
-        $(_this3._element).trigger(shownEvent);
-      };
-
-      if (transition) {
-        $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION);
-      } else {
-        transitionComplete();
-      }
-    };
-
-    _proto._enforceFocus = function _enforceFocus() {
-      var _this4 = this;
-
-      $(document).off(Event.FOCUSIN) // guard against infinite focus loop
-      .on(Event.FOCUSIN, function (event) {
-        if (document !== event.target && _this4._element !== event.target && !$(_this4._element).has(event.target).length) {
-          _this4._element.focus();
-        }
-      });
-    };
-
-    _proto._setEscapeEvent = function _setEscapeEvent() {
-      var _this5 = this;
-
-      if (this._isShown && this._config.keyboard) {
-        $(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
-          if (event.which === ESCAPE_KEYCODE) {
-            event.preventDefault();
-
-            _this5.hide();
-          }
-        });
-      } else if (!this._isShown) {
-        $(this._element).off(Event.KEYDOWN_DISMISS);
-      }
-    };
-
-    _proto._setResizeEvent = function _setResizeEvent() {
-      var _this6 = this;
-
-      if (this._isShown) {
-        $(window).on(Event.RESIZE, function (event) {
-          return _this6.handleUpdate(event);
-        });
-      } else {
-        $(window).off(Event.RESIZE);
-      }
-    };
-
-    _proto._hideModal = function _hideModal() {
-      var _this7 = this;
-
-      this._element.style.display = 'none';
-
-      this._element.setAttribute('aria-hidden', true);
-
-      this._isTransitioning = false;
-
-      this._showBackdrop(function () {
-        $(document.body).removeClass(ClassName.OPEN);
-
-        _this7._resetAdjustments();
-
-        _this7._resetScrollbar();
-
-        $(_this7._element).trigger(Event.HIDDEN);
-      });
-    };
-
-    _proto._removeBackdrop = function _removeBackdrop() {
-      if (this._backdrop) {
-        $(this._backdrop).remove();
-        this._backdrop = null;
-      }
-    };
-
-    _proto._showBackdrop = function _showBackdrop(callback) {
-      var _this8 = this;
-
-      var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
-
-      if (this._isShown && this._config.backdrop) {
-        var doAnimate = Util.supportsTransitionEnd() && animate;
-        this._backdrop = document.createElement('div');
-        this._backdrop.className = ClassName.BACKDROP;
-
-        if (animate) {
-          $(this._backdrop).addClass(animate);
-        }
-
-        $(this._backdrop).appendTo(document.body);
-        $(this._element).on(Event.CLICK_DISMISS, function (event) {
-          if (_this8._ignoreBackdropClick) {
-            _this8._ignoreBackdropClick = false;
-            return;
-          }
-
-          if (event.target !== event.currentTarget) {
-            return;
-          }
-
-          if (_this8._config.backdrop === 'static') {
-            _this8._element.focus();
-          } else {
-            _this8.hide();
-          }
-        });
-
-        if (doAnimate) {
-          Util.reflow(this._backdrop);
-        }
-
-        $(this._backdrop).addClass(ClassName.SHOW);
-
-        if (!callback) {
-          return;
-        }
-
-        if (!doAnimate) {
-          callback();
-          return;
-        }
-
-        $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
-      } else if (!this._isShown && this._backdrop) {
-        $(this._backdrop).removeClass(ClassName.SHOW);
-
-        var callbackRemove = function callbackRemove() {
-          _this8._removeBackdrop();
-
-          if (callback) {
-            callback();
-          }
-        };
-
-        if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {
-          $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
-        } else {
-          callbackRemove();
-        }
-      } else if (callback) {
-        callback();
-      }
-    }; // ----------------------------------------------------------------------
-    // the following methods are used to handle overflowing modals
-    // todo (fat): these should probably be refactored out of modal.js
-    // ----------------------------------------------------------------------
-
-
-    _proto._adjustDialog = function _adjustDialog() {
-      var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
-
-      if (!this._isBodyOverflowing && isModalOverflowing) {
-        this._element.style.paddingLeft = this._scrollbarWidth + "px";
-      }
-
-      if (this._isBodyOverflowing && !isModalOverflowing) {
-        this._element.style.paddingRight = this._scrollbarWidth + "px";
-      }
-    };
-
-    _proto._resetAdjustments = function _resetAdjustments() {
-      this._element.style.paddingLeft = '';
-      this._element.style.paddingRight = '';
-    };
-
-    _proto._checkScrollbar = function _checkScrollbar() {
-      var rect = document.body.getBoundingClientRect();
-      this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
-      this._scrollbarWidth = this._getScrollbarWidth();
-    };
-
-    _proto._setScrollbar = function _setScrollbar() {
-      var _this9 = this;
-
-      if (this._isBodyOverflowing) {
-        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
-        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
-        // Adjust fixed content padding
-        $(Selector.FIXED_CONTENT).each(function (index, element) {
-          var actualPadding = $(element)[0].style.paddingRight;
-          var calculatedPadding = $(element).css('padding-right');
-          $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
-        }); // Adjust sticky content margin
-
-        $(Selector.STICKY_CONTENT).each(function (index, element) {
-          var actualMargin = $(element)[0].style.marginRight;
-          var calculatedMargin = $(element).css('margin-right');
-          $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
-        }); // Adjust navbar-toggler margin
-
-        $(Selector.NAVBAR_TOGGLER).each(function (index, element) {
-          var actualMargin = $(element)[0].style.marginRight;
-          var calculatedMargin = $(element).css('margin-right');
-          $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + "px");
-        }); // Adjust body padding
-
-        var actualPadding = document.body.style.paddingRight;
-        var calculatedPadding = $('body').css('padding-right');
-        $('body').data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
-      }
-    };
-
-    _proto._resetScrollbar = function _resetScrollbar() {
-      // Restore fixed content padding
-      $(Selector.FIXED_CONTENT).each(function (index, element) {
-        var padding = $(element).data('padding-right');
-
-        if (typeof padding !== 'undefined') {
-          $(element).css('padding-right', padding).removeData('padding-right');
-        }
-      }); // Restore sticky content and navbar-toggler margin
-
-      $(Selector.STICKY_CONTENT + ", " + Selector.NAVBAR_TOGGLER).each(function (index, element) {
-        var margin = $(element).data('margin-right');
-
-        if (typeof margin !== 'undefined') {
-          $(element).css('margin-right', margin).removeData('margin-right');
-        }
-      }); // Restore body padding
-
-      var padding = $('body').data('padding-right');
-
-      if (typeof padding !== 'undefined') {
-        $('body').css('padding-right', padding).removeData('padding-right');
-      }
-    };
-
-    _proto._getScrollbarWidth = function _getScrollbarWidth() {
-      // thx d.walsh
-      var scrollDiv = document.createElement('div');
-      scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
-      document.body.appendChild(scrollDiv);
-      var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
-      document.body.removeChild(scrollDiv);
-      return scrollbarWidth;
-    }; // static
-
-
-    Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
-      return this.each(function () {
-        var data = $(this).data(DATA_KEY);
-
-        var _config = $.extend({}, Modal.Default, $(this).data(), typeof config === 'object' && config);
-
-        if (!data) {
-          data = new Modal(this, _config);
-          $(this).data(DATA_KEY, data);
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error("No method named \"" + config + "\"");
-          }
-
-          data[config](relatedTarget);
-        } else if (_config.show) {
-          data.show(relatedTarget);
-        }
-      });
-    };
-
-    _createClass(Modal, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }, {
-      key: "Default",
-      get: function get() {
-        return Default;
-      }
-    }]);
-
-    return Modal;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-
-  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
-    var _this10 = this;
-
-    var target;
-    var selector = Util.getSelectorFromElement(this);
-
-    if (selector) {
-      target = $(selector)[0];
-    }
-
-    var config = $(target).data(DATA_KEY) ? 'toggle' : $.extend({}, $(target).data(), $(this).data());
-
-    if (this.tagName === 'A' || this.tagName === 'AREA') {
-      event.preventDefault();
-    }
-
-    var $target = $(target).one(Event.SHOW, function (showEvent) {
-      if (showEvent.isDefaultPrevented()) {
-        // only register focus restorer if modal will actually get shown
-        return;
-      }
-
-      $target.one(Event.HIDDEN, function () {
-        if ($(_this10).is(':visible')) {
-          _this10.focus();
-        }
-      });
-    });
-
-    Modal._jQueryInterface.call($(target), config, this);
-  });
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME] = Modal._jQueryInterface;
-  $.fn[NAME].Constructor = Modal;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Modal._jQueryInterface;
-  };
-
-  return Modal;
-}($);
-//# sourceMappingURL=modal.js.map
\ No newline at end of file
diff --git a/assets/javascript/dist/modal.js.map b/assets/javascript/dist/modal.js.map
deleted file mode 100755
index 9280b55..0000000
--- a/assets/javascript/dist/modal.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/modal.js"],"names":["Modal","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","TRANSITION_DURATION","BACKDROP_TRANSITION_DURATION","ESCAPE_KEYCODE","Default","backdrop","keyboard","focus","show","DefaultType","Event","HIDE","HIDDEN","SHOW","SHOWN","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","CLICK_DATA_API","ClassName","SCROLLBAR_MEASURER","BACKDROP","OPEN","FADE","Selector","DIALOG","DATA_TOGGLE","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","NAVBAR_TOGGLER","element","config","_config","_getConfig","_element","_dialog","find","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_originalBodyPadding","_scrollbarWidth","toggle","relatedTarget","hide","_isTransitioning","Util","supportsTransitionEnd","hasClass","showEvent","trigger","isDefaultPrevented","_checkScrollbar","_setScrollbar","_adjustDialog","document","body","addClass","_setEscapeEvent","_setR
 esizeEvent","on","event","one","target","is","_showBackdrop","_showElement","preventDefault","hideEvent","transition","off","removeClass","TRANSITION_END","_hideModal","emulateTransitionEnd","dispose","removeData","window","handleUpdate","extend","typeCheckConfig","parentNode","nodeType","Node","ELEMENT_NODE","appendChild","style","display","removeAttribute","scrollTop","reflow","_enforceFocus","shownEvent","transitionComplete","has","length","which","setAttribute","_resetAdjustments","_resetScrollbar","_removeBackdrop","remove","callback","animate","doAnimate","createElement","className","appendTo","currentTarget","callbackRemove","isModalOverflowing","scrollHeight","documentElement","clientHeight","paddingLeft","paddingRight","rect","getBoundingClientRect","left","right","innerWidth","_getScrollbarWidth","each","index","actualPadding","calculatedPadding","css","data","parseFloat","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width
 ","clientWidth","removeChild","_jQueryInterface","Error","selector","getSelectorFromElement","tagName","$target","call","Constructor","noConflict"],"mappings":"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","file":"modal.js","sourcesContent":["import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                         = 'modal'\n  const VERSION                      = '4.0.0-beta.2'\n  const DATA_KEY                     = 'bs.modal'\n  const EVENT_KEY                    = `.${DATA_KEY}`\n  const DATA_API_KEY                 = '.data-api'\n  const JQUERY_NO_CONFLICT           = $.fn[NAME]\n  const TR
 ANSITION_DURATION          = 300\n  const BACKDROP_TRANSITION_DURATION = 150\n  const ESCAPE_KEYCODE               = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n  const Default = {\n    backdrop : true,\n    keyboard : true,\n    focus    : true,\n    show     : true\n  }\n\n  const DefaultType = {\n    backdrop : '(boolean|string)',\n    keyboard : 'boolean',\n    focus    : 'boolean',\n    show     : 'boolean'\n  }\n\n  const Event = {\n    HIDE              : `hide${EVENT_KEY}`,\n    HIDDEN            : `hidden${EVENT_KEY}`,\n    SHOW              : `show${EVENT_KEY}`,\n    SHOWN             : `shown${EVENT_KEY}`,\n    FOCUSIN           : `focusin${EVENT_KEY}`,\n    RESIZE            : `resize${EVENT_KEY}`,\n    CLICK_DISMISS     : `click.dismiss${EVENT_KEY}`,\n    KEYDOWN_DISMISS   : `keydown.dismiss${EVENT_KEY}`,\n    MOUSEUP_DISMISS   : `mouseup.dismiss${EVENT_KEY}`,\n    MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n    CLICK_DATA_API    : `click${EVENT_KE
 Y}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n    BACKDROP           : 'modal-backdrop',\n    OPEN               : 'modal-open',\n    FADE               : 'fade',\n    SHOW               : 'show'\n  }\n\n  const Selector = {\n    DIALOG             : '.modal-dialog',\n    DATA_TOGGLE        : '[data-toggle=\"modal\"]',\n    DATA_DISMISS       : '[data-dismiss=\"modal\"]',\n    FIXED_CONTENT      : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n    STICKY_CONTENT     : '.sticky-top',\n    NAVBAR_TOGGLER     : '.navbar-toggler'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Modal {\n\n    constructor(element, config) {\n      this._config              = this._getConfig(config)\n      this._element             = element\n      this._dialog              = $(e
 lement).find(Selector.DIALOG)[0]\n      this._backdrop            = null\n      this._isShown             = false\n      this._isBodyOverflowing   = false\n      this._ignoreBackdropClick = false\n      this._originalBodyPadding = 0\n      this._scrollbarWidth      = 0\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    toggle(relatedTarget) {\n      return this._isShown ? this.hide() : this.show(relatedTarget)\n    }\n\n    show(relatedTarget) {\n      if (this._isTransitioning || this._isShown) {\n        return\n      }\n\n      if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {\n        this._isTransitioning = true\n      }\n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget\n      })\n\n      $(this._element).trigger(showEvent)\n\n      if (this._isShown || showEvent.isDefaultPrevented()) {\n        return\n    
   }\n\n      this._isShown = true\n\n      this._checkScrollbar()\n      this._setScrollbar()\n\n      this._adjustDialog()\n\n      $(document.body).addClass(ClassName.OPEN)\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(this._element).on(\n        Event.CLICK_DISMISS,\n        Selector.DATA_DISMISS,\n        (event) => this.hide(event)\n      )\n\n      $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n        $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n          if ($(event.target).is(this._element)) {\n            this._ignoreBackdropClick = true\n          }\n        })\n      })\n\n      this._showBackdrop(() => this._showElement(relatedTarget))\n    }\n\n    hide(event) {\n      if (event) {\n        event.preventDefault()\n      }\n\n      if (this._isTransitioning || !this._isShown) {\n        return\n      }\n\n      const hideEvent = $.Event(Event.HIDE)\n\n      $(this._element).trigger(hideEvent)\n\n      if (!this._isShown || h
 ideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown = false\n\n      const transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)\n\n      if (transition) {\n        this._isTransitioning = true\n      }\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(document).off(Event.FOCUSIN)\n\n      $(this._element).removeClass(ClassName.SHOW)\n\n      $(this._element).off(Event.CLICK_DISMISS)\n      $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n      if (transition) {\n\n        $(this._element)\n          .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n          .emulateTransitionEnd(TRANSITION_DURATION)\n      } else {\n        this._hideModal()\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n      this._config              = null\n      this._element             = null\n      this.
 _dialog              = null\n      this._backdrop            = null\n      this._isShown             = null\n      this._isBodyOverflowing   = null\n      this._ignoreBackdropClick = null\n      this._scrollbarWidth      = null\n    }\n\n    handleUpdate() {\n      this._adjustDialog()\n    }\n\n    // private\n\n    _getConfig(config) {\n      config = $.extend({}, Default, config)\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _showElement(relatedTarget) {\n      const transition = Util.supportsTransitionEnd() &&\n        $(this._element).hasClass(ClassName.FADE)\n\n      if (!this._element.parentNode ||\n         this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n        // don't move modals dom position\n        document.body.appendChild(this._element)\n      }\n\n      this._element.style.display = 'block'\n      this._element.removeAttribute('aria-hidden')\n      this._element.scrollTop = 0\n\n      if (transition) {\n       
  Util.reflow(this._element)\n      }\n\n      $(this._element).addClass(ClassName.SHOW)\n\n      if (this._config.focus) {\n        this._enforceFocus()\n      }\n\n      const shownEvent = $.Event(Event.SHOWN, {\n        relatedTarget\n      })\n\n      const transitionComplete = () => {\n        if (this._config.focus) {\n          this._element.focus()\n        }\n        this._isTransitioning = false\n        $(this._element).trigger(shownEvent)\n      }\n\n      if (transition) {\n        $(this._dialog)\n          .one(Util.TRANSITION_END, transitionComplete)\n          .emulateTransitionEnd(TRANSITION_DURATION)\n      } else {\n        transitionComplete()\n      }\n    }\n\n    _enforceFocus() {\n      $(document)\n        .off(Event.FOCUSIN) // guard against infinite focus loop\n        .on(Event.FOCUSIN, (event) => {\n          if (document !== event.target &&\n              this._element !== event.target &&\n              !$(this._element).has(event.target).length) {\n   
          this._element.focus()\n          }\n        })\n    }\n\n    _setEscapeEvent() {\n      if (this._isShown && this._config.keyboard) {\n        $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n          if (event.which === ESCAPE_KEYCODE) {\n            event.preventDefault()\n            this.hide()\n          }\n        })\n\n      } else if (!this._isShown) {\n        $(this._element).off(Event.KEYDOWN_DISMISS)\n      }\n    }\n\n    _setResizeEvent() {\n      if (this._isShown) {\n        $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n      } else {\n        $(window).off(Event.RESIZE)\n      }\n    }\n\n    _hideModal() {\n      this._element.style.display = 'none'\n      this._element.setAttribute('aria-hidden', true)\n      this._isTransitioning = false\n      this._showBackdrop(() => {\n        $(document.body).removeClass(ClassName.OPEN)\n        this._resetAdjustments()\n        this._resetScrollbar()\n        $(this._element).trigger(Even
 t.HIDDEN)\n      })\n    }\n\n    _removeBackdrop() {\n      if (this._backdrop) {\n        $(this._backdrop).remove()\n        this._backdrop = null\n      }\n    }\n\n    _showBackdrop(callback) {\n      const animate = $(this._element).hasClass(ClassName.FADE) ?\n        ClassName.FADE : ''\n\n      if (this._isShown && this._config.backdrop) {\n        const doAnimate = Util.supportsTransitionEnd() && animate\n\n        this._backdrop = document.createElement('div')\n        this._backdrop.className = ClassName.BACKDROP\n\n        if (animate) {\n          $(this._backdrop).addClass(animate)\n        }\n\n        $(this._backdrop).appendTo(document.body)\n\n        $(this._element).on(Event.CLICK_DISMISS, (event) => {\n          if (this._ignoreBackdropClick) {\n            this._ignoreBackdropClick = false\n            return\n          }\n          if (event.target !== event.currentTarget) {\n            return\n          }\n          if (this._config.backdrop === 'static') {\
 n            this._element.focus()\n          } else {\n            this.hide()\n          }\n        })\n\n        if (doAnimate) {\n          Util.reflow(this._backdrop)\n        }\n\n        $(this._backdrop).addClass(ClassName.SHOW)\n\n        if (!callback) {\n          return\n        }\n\n        if (!doAnimate) {\n          callback()\n          return\n        }\n\n        $(this._backdrop)\n          .one(Util.TRANSITION_END, callback)\n          .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n\n      } else if (!this._isShown && this._backdrop) {\n        $(this._backdrop).removeClass(ClassName.SHOW)\n\n        const callbackRemove = () => {\n          this._removeBackdrop()\n          if (callback) {\n            callback()\n          }\n        }\n\n        if (Util.supportsTransitionEnd() &&\n           $(this._element).hasClass(ClassName.FADE)) {\n          $(this._backdrop)\n            .one(Util.TRANSITION_END, callbackRemove)\n            .emulateTransitionEnd
 (BACKDROP_TRANSITION_DURATION)\n        } else {\n          callbackRemove()\n        }\n\n      } else if (callback) {\n        callback()\n      }\n    }\n\n\n    // ----------------------------------------------------------------------\n    // the following methods are used to handle overflowing modals\n    // todo (fat): these should probably be refactored out of modal.js\n    // ----------------------------------------------------------------------\n\n    _adjustDialog() {\n      const isModalOverflowing =\n        this._element.scrollHeight > document.documentElement.clientHeight\n\n      if (!this._isBodyOverflowing && isModalOverflowing) {\n        this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n      }\n\n      if (this._isBodyOverflowing && !isModalOverflowing) {\n        this._element.style.paddingRight = `${this._scrollbarWidth}px`\n      }\n    }\n\n    _resetAdjustments() {\n      this._element.style.paddingLeft = ''\n      this._element.style.paddingRig
 ht = ''\n    }\n\n    _checkScrollbar() {\n      const rect = document.body.getBoundingClientRect()\n      this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n      this._scrollbarWidth = this._getScrollbarWidth()\n    }\n\n    _setScrollbar() {\n      if (this._isBodyOverflowing) {\n        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n        // Adjust fixed content padding\n        $(Selector.FIXED_CONTENT).each((index, element) => {\n          const actualPadding = $(element)[0].style.paddingRight\n          const calculatedPadding = $(element).css('padding-right')\n          $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust sticky content margin\n        $(Selector.STICKY_CONTENT).each((index, element) => {\n          c
 onst actualMargin = $(element)[0].style.marginRight\n          const calculatedMargin = $(element).css('margin-right')\n          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n        })\n\n        // Adjust navbar-toggler margin\n        $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n          const actualMargin = $(element)[0].style.marginRight\n          const calculatedMargin = $(element).css('margin-right')\n          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust body padding\n        const actualPadding = document.body.style.paddingRight\n        const calculatedPadding = $('body').css('padding-right')\n        $('body').data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n      }\n    }\n\n    _resetScrollbar() 
 {\n      // Restore fixed content padding\n      $(Selector.FIXED_CONTENT).each((index, element) => {\n        const padding = $(element).data('padding-right')\n        if (typeof padding !== 'undefined') {\n          $(element).css('padding-right', padding).removeData('padding-right')\n        }\n      })\n\n      // Restore sticky content and navbar-toggler margin\n      $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {\n        const margin = $(element).data('margin-right')\n        if (typeof margin !== 'undefined') {\n          $(element).css('margin-right', margin).removeData('margin-right')\n        }\n      })\n\n      // Restore body padding\n      const padding = $('body').data('padding-right')\n      if (typeof padding !== 'undefined') {\n        $('body').css('padding-right', padding).removeData('padding-right')\n      }\n    }\n\n    _getScrollbarWidth() { // thx d.walsh\n      const scrollDiv = document.createElement('div')\n      s
 crollDiv.className = ClassName.SCROLLBAR_MEASURER\n      document.body.appendChild(scrollDiv)\n      const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n      document.body.removeChild(scrollDiv)\n      return scrollbarWidth\n    }\n\n\n    // static\n\n    static _jQueryInterface(config, relatedTarget) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = $.extend(\n          {},\n          Modal.Default,\n          $(this).data(),\n          typeof config === 'object' && config\n        )\n\n        if (!data) {\n          data = new Modal(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config](relatedTarget)\n        } else if (_config.show) {\n          data.show(relatedTarget)\n  
       }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    let target\n    const selector = Util.getSelectorFromElement(this)\n\n    if (selector) {\n      target = $(selector)[0]\n    }\n\n    const config = $(target).data(DATA_KEY) ?\n      'toggle' : $.extend({}, $(target).data(), $(this).data())\n\n    if (this.tagName === 'A' || this.tagName === 'AREA') {\n      event.preventDefault()\n    }\n\n    const $target = $(target).one(Event.SHOW, (showEvent) => {\n      if (showEvent.isDefaultPrevented()) {\n        // only register focus restorer if modal will actually get shown\n        return\n      }\n\n      $target.one(Event.HIDDEN, () => {\n        if ($(this).is(':visible')) {\n          this.focus()\n        }\n  
     })\n    })\n\n    Modal._jQueryInterface.call($(target), config, this)\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Modal._jQueryInterface\n  $.fn[NAME].Constructor = Modal\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Modal._jQueryInterface\n  }\n\n  return Modal\n\n})($)\n\nexport default Modal\n"]}
\ No newline at end of file
diff --git a/assets/javascript/dist/popover.js b/assets/javascript/dist/popover.js
deleted file mode 100755
index 6d69f0c..0000000
--- a/assets/javascript/dist/popover.js
+++ /dev/null
@@ -1,192 +0,0 @@
-function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
-
-function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
-
-function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): popover.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-var Popover = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-  var NAME = 'popover';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.popover';
-  var EVENT_KEY = "." + DATA_KEY;
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var CLASS_PREFIX = 'bs-popover';
-  var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
-  var Default = $.extend({}, Tooltip.Default, {
-    placement: 'right',
-    trigger: 'click',
-    content: '',
-    template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
-  });
-  var DefaultType = $.extend({}, Tooltip.DefaultType, {
-    content: '(string|element|function)'
-  });
-  var ClassName = {
-    FADE: 'fade',
-    SHOW: 'show'
-  };
-  var Selector = {
-    TITLE: '.popover-header',
-    CONTENT: '.popover-body'
-  };
-  var Event = {
-    HIDE: "hide" + EVENT_KEY,
-    HIDDEN: "hidden" + EVENT_KEY,
-    SHOW: "show" + EVENT_KEY,
-    SHOWN: "shown" + EVENT_KEY,
-    INSERTED: "inserted" + EVENT_KEY,
-    CLICK: "click" + EVENT_KEY,
-    FOCUSIN: "focusin" + EVENT_KEY,
-    FOCUSOUT: "focusout" + EVENT_KEY,
-    MOUSEENTER: "mouseenter" + EVENT_KEY,
-    MOUSELEAVE: "mouseleave" + EVENT_KEY
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Popover =
-  /*#__PURE__*/
-  function (_Tooltip) {
-    _inheritsLoose(Popover, _Tooltip);
-
-    function Popover() {
-      return _Tooltip.apply(this, arguments) || this;
-    }
-
-    var _proto = Popover.prototype;
-
-    // overrides
-    _proto.isWithContent = function isWithContent() {
-      return this.getTitle() || this._getContent();
-    };
-
-    _proto.addAttachmentClass = function addAttachmentClass(attachment) {
-      $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
-    };
-
-    _proto.getTipElement = function getTipElement() {
-      this.tip = this.tip || $(this.config.template)[0];
-      return this.tip;
-    };
-
-    _proto.setContent = function setContent() {
-      var $tip = $(this.getTipElement()); // we use append for html objects to maintain js events
-
-      this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
-      this.setElementContent($tip.find(Selector.CONTENT), this._getContent());
-      $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
-    }; // private
-
-
-    _proto._getContent = function _getContent() {
-      return this.element.getAttribute('data-content') || (typeof this.config.content === 'function' ? this.config.content.call(this.element) : this.config.content);
-    };
-
-    _proto._cleanTipClass = function _cleanTipClass() {
-      var $tip = $(this.getTipElement());
-      var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
-
-      if (tabClass !== null && tabClass.length > 0) {
-        $tip.removeClass(tabClass.join(''));
-      }
-    }; // static
-
-
-    Popover._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var data = $(this).data(DATA_KEY);
-
-        var _config = typeof config === 'object' ? config : null;
-
-        if (!data && /destroy|hide/.test(config)) {
-          return;
-        }
-
-        if (!data) {
-          data = new Popover(this, _config);
-          $(this).data(DATA_KEY, data);
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error("No method named \"" + config + "\"");
-          }
-
-          data[config]();
-        }
-      });
-    };
-
-    _createClass(Popover, null, [{
-      key: "VERSION",
-      // getters
-      get: function get() {
-        return VERSION;
-      }
-    }, {
-      key: "Default",
-      get: function get() {
-        return Default;
-      }
-    }, {
-      key: "NAME",
-      get: function get() {
-        return NAME;
-      }
-    }, {
-      key: "DATA_KEY",
-      get: function get() {
-        return DATA_KEY;
-      }
-    }, {
-      key: "Event",
-      get: function get() {
-        return Event;
-      }
-    }, {
-      key: "EVENT_KEY",
-      get: function get() {
-        return EVENT_KEY;
-      }
-    }, {
-      key: "DefaultType",
-      get: function get() {
-        return DefaultType;
-      }
-    }]);
-
-    return Popover;
-  }(Tooltip);
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-
-  $.fn[NAME] = Popover._jQueryInterface;
-  $.fn[NAME].Constructor = Popover;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Popover._jQueryInterface;
-  };
-
-  return Popover;
-}($);
-//# sourceMappingURL=popover.js.map
\ No newline at end of file
diff --git a/assets/javascript/dist/popover.js.map b/assets/javascript/dist/popover.js.map
deleted file mode 100755
index 20481b3..0000000
--- a/assets/javascript/dist/popover.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/popover.js"],"names":["Popover","NAME","VERSION","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","CLASS_PREFIX","BSCLS_PREFIX_REGEX","RegExp","Default","extend","Tooltip","placement","trigger","content","template","DefaultType","ClassName","FADE","SHOW","Selector","TITLE","CONTENT","Event","HIDE","HIDDEN","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","isWithContent","getTitle","_getContent","addAttachmentClass","attachment","getTipElement","addClass","tip","config","setContent","$tip","setElementContent","find","removeClass","element","getAttribute","call","_cleanTipClass","tabClass","attr","match","length","join","_jQueryInterface","each","data","_config","test","Error","Constructor","noConflict"],"mappings":"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","file":"popover.js","sourcesContent":["import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'popover'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.popover'\n  const EVENT_KEY           = `.
 ${DATA_KEY}`\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const CLASS_PREFIX        = 'bs-popover'\n  const BSCLS_PREFIX_REGEX  = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n  const Default = $.extend({}, Tooltip.Default, {\n    placement : 'right',\n    trigger   : 'click',\n    content   : '',\n    template  : '<div class=\"popover\" role=\"tooltip\">'\n              + '<div class=\"arrow\"></div>'\n              + '<h3 class=\"popover-header\"></h3>'\n              + '<div class=\"popover-body\"></div></div>'\n  })\n\n  const DefaultType = $.extend({}, Tooltip.DefaultType, {\n    content : '(string|element|function)'\n  })\n\n  const ClassName = {\n    FADE : 'fade',\n    SHOW : 'show'\n  }\n\n  const Selector = {\n    TITLE   : '.popover-header',\n    CONTENT : '.popover-body'\n  }\n\n  const Event = {\n    HIDE       : `hide${EVENT_KEY}`,\n    HIDDEN     : `hidden${EVENT_KEY}`,\n    SHOW       : `show${EVENT_KEY}`,\n    SHOWN      : `shown${EVENT_KEY}`,\n    INSERTED  
  : `inserted${EVENT_KEY}`,\n    CLICK      : `click${EVENT_KEY}`,\n    FOCUSIN    : `focusin${EVENT_KEY}`,\n    FOCUSOUT   : `focusout${EVENT_KEY}`,\n    MOUSEENTER : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE : `mouseleave${EVENT_KEY}`\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Popover extends Tooltip {\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get NAME() {\n      return NAME\n    }\n\n    static get DATA_KEY() {\n      return DATA_KEY\n    }\n\n    static get Event() {\n      return Event\n    }\n\n    static get EVENT_KEY() {\n      return EVENT_KEY\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n\n    // overrides\n\n    isWithContent() {\n      return this.getTitle() || thi
 s._getContent()\n    }\n\n    addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n    }\n\n    getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0]\n      return this.tip\n    }\n\n    setContent() {\n      const $tip = $(this.getTipElement())\n\n      // we use append for html objects to maintain js events\n      this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n      this.setElementContent($tip.find(Selector.CONTENT), this._getContent())\n\n      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n    }\n\n    // private\n\n    _getContent() {\n      return this.element.getAttribute('data-content')\n        || (typeof this.config.content === 'function' ?\n              this.config.content.call(this.element) :\n              this.config.content)\n    }\n\n    _cleanTipClass() {\n      const $tip = $(this.getTipElement())\n      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_R
 EGEX)\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''))\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' ? config : null\n\n        if (!data && /destroy|hide/.test(config)) {\n          return\n        }\n\n        if (!data) {\n          data = new Popover(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Popov
 er._jQueryInterface\n  $.fn[NAME].Constructor = Popover\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Popover._jQueryInterface\n  }\n\n  return Popover\n\n})($)\n\nexport default Popover\n"]}
\ No newline at end of file
diff --git a/assets/javascript/dist/scrollspy.js b/assets/javascript/dist/scrollspy.js
deleted file mode 100755
index 6e4c429..0000000
--- a/assets/javascript/dist/scrollspy.js
+++ /dev/null
@@ -1,315 +0,0 @@
-function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
-
-function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): scrollspy.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-var ScrollSpy = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-  var NAME = 'scrollspy';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.scrollspy';
-  var EVENT_KEY = "." + DATA_KEY;
-  var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var Default = {
-    offset: 10,
-    method: 'auto',
-    target: ''
-  };
-  var DefaultType = {
-    offset: 'number',
-    method: 'string',
-    target: '(string|element)'
-  };
-  var Event = {
-    ACTIVATE: "activate" + EVENT_KEY,
-    SCROLL: "scroll" + EVENT_KEY,
-    LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY
-  };
-  var ClassName = {
-    DROPDOWN_ITEM: 'dropdown-item',
-    DROPDOWN_MENU: 'dropdown-menu',
-    ACTIVE: 'active'
-  };
-  var Selector = {
-    DATA_SPY: '[data-spy="scroll"]',
-    ACTIVE: '.active',
-    NAV_LIST_GROUP: '.nav, .list-group',
-    NAV_LINKS: '.nav-link',
-    NAV_ITEMS: '.nav-item',
-    LIST_ITEMS: '.list-group-item',
-    DROPDOWN: '.dropdown',
-    DROPDOWN_ITEMS: '.dropdown-item',
-    DROPDOWN_TOGGLE: '.dropdown-toggle'
-  };
-  var OffsetMethod = {
-    OFFSET: 'offset',
-    POSITION: 'position'
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var ScrollSpy =
-  /*#__PURE__*/
-  function () {
-    function ScrollSpy(element, config) {
-      var _this = this;
-
-      this._element = element;
-      this._scrollElement = element.tagName === 'BODY' ? window : element;
-      this._config = this._getConfig(config);
-      this._selector = this._config.target + " " + Selector.NAV_LINKS + "," + (this._config.target + " " + Selector.LIST_ITEMS + ",") + (this._config.target + " " + Selector.DROPDOWN_ITEMS);
-      this._offsets = [];
-      this._targets = [];
-      this._activeTarget = null;
-      this._scrollHeight = 0;
-      $(this._scrollElement).on(Event.SCROLL, function (event) {
-        return _this._process(event);
-      });
-      this.refresh();
-
-      this._process();
-    } // getters
-
-
-    var _proto = ScrollSpy.prototype;
-
-    // public
-    _proto.refresh = function refresh() {
-      var _this2 = this;
-
-      var autoMethod = this._scrollElement !== this._scrollElement.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET;
-      var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
-      var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
-      this._offsets = [];
-      this._targets = [];
-      this._scrollHeight = this._getScrollHeight();
-      var targets = $.makeArray($(this._selector));
-      targets.map(function (element) {
-        var target;
-        var targetSelector = Util.getSelectorFromElement(element);
-
-        if (targetSelector) {
-          target = $(targetSelector)[0];
-        }
-
-        if (target) {
-          var targetBCR = target.getBoundingClientRect();
-
-          if (targetBCR.width || targetBCR.height) {
-            // todo (fat): remove sketch reliance on jQuery position/offset
-            return [$(target)[offsetMethod]().top + offsetBase, targetSelector];
-          }
-        }
-
-        return null;
-      }).filter(function (item) {
-        return item;
-      }).sort(function (a, b) {
-        return a[0] - b[0];
-      }).forEach(function (item) {
-        _this2._offsets.push(item[0]);
-
-        _this2._targets.push(item[1]);
-      });
-    };
-
-    _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
-      $(this._scrollElement).off(EVENT_KEY);
-      this._element = null;
-      this._scrollElement = null;
-      this._config = null;
-      this._selector = null;
-      this._offsets = null;
-      this._targets = null;
-      this._activeTarget = null;
-      this._scrollHeight = null;
-    }; // private
-
-
-    _proto._getConfig = function _getConfig(config) {
-      config = $.extend({}, Default, config);
-
-      if (typeof config.target !== 'string') {
-        var id = $(config.target).attr('id');
-
-        if (!id) {
-          id = Util.getUID(NAME);
-          $(config.target).attr('id', id);
-        }
-
-        config.target = "#" + id;
-      }
-
-      Util.typeCheckConfig(NAME, config, DefaultType);
-      return config;
-    };
-
-    _proto._getScrollTop = function _getScrollTop() {
-      return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
-    };
-
-    _proto._getScrollHeight = function _getScrollHeight() {
-      return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
-    };
-
-    _proto._getOffsetHeight = function _getOffsetHeight() {
-      return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
-    };
-
-    _proto._process = function _process() {
-      var scrollTop = this._getScrollTop() + this._config.offset;
-
-      var scrollHeight = this._getScrollHeight();
-
-      var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
-
-      if (this._scrollHeight !== scrollHeight) {
-        this.refresh();
-      }
-
-      if (scrollTop >= maxScroll) {
-        var target = this._targets[this._targets.length - 1];
-
-        if (this._activeTarget !== target) {
-          this._activate(target);
-        }
-
-        return;
-      }
-
-      if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
-        this._activeTarget = null;
-
-        this._clear();
-
-        return;
-      }
-
-      for (var i = this._offsets.length; i--;) {
-        var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
-
-        if (isActiveTarget) {
-          this._activate(this._targets[i]);
-        }
-      }
-    };
-
-    _proto._activate = function _activate(target) {
-      this._activeTarget = target;
-
-      this._clear();
-
-      var queries = this._selector.split(','); // eslint-disable-next-line arrow-body-style
-
-
-      queries = queries.map(function (selector) {
-        return selector + "[data-target=\"" + target + "\"]," + (selector + "[href=\"" + target + "\"]");
-      });
-      var $link = $(queries.join(','));
-
-      if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
-        $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
-        $link.addClass(ClassName.ACTIVE);
-      } else {
-        // Set triggered link as active
-        $link.addClass(ClassName.ACTIVE); // Set triggered links parents as active
-        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
-
-        $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS + ", " + Selector.LIST_ITEMS).addClass(ClassName.ACTIVE); // Handle special case when .nav-link is inside .nav-item
-
-        $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE);
-      }
-
-      $(this._scrollElement).trigger(Event.ACTIVATE, {
-        relatedTarget: target
-      });
-    };
-
-    _proto._clear = function _clear() {
-      $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
-    }; // static
-
-
-    ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var data = $(this).data(DATA_KEY);
-
-        var _config = typeof config === 'object' && config;
-
-        if (!data) {
-          data = new ScrollSpy(this, _config);
-          $(this).data(DATA_KEY, data);
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error("No method named \"" + config + "\"");
-          }
-
-          data[config]();
-        }
-      });
-    };
-
-    _createClass(ScrollSpy, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }, {
-      key: "Default",
-      get: function get() {
-        return Default;
-      }
-    }]);
-
-    return ScrollSpy;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-
-  $(window).on(Event.LOAD_DATA_API, function () {
-    var scrollSpys = $.makeArray($(Selector.DATA_SPY));
-
-    for (var i = scrollSpys.length; i--;) {
-      var $spy = $(scrollSpys[i]);
-
-      ScrollSpy._jQueryInterface.call($spy, $spy.data());
-    }
-  });
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME] = ScrollSpy._jQueryInterface;
-  $.fn[NAME].Constructor = ScrollSpy;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return ScrollSpy._jQueryInterface;
-  };
-
-  return ScrollSpy;
-}($);
-//# sourceMappingURL=scrollspy.js.map
\ No newline at end of file
diff --git a/assets/javascript/dist/scrollspy.js.map b/assets/javascript/dist/scrollspy.js.map
deleted file mode 100755
index 454c729..0000000
--- a/assets/javascript/dist/scrollspy.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/scrollspy.js"],"names":["ScrollSpy","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","Default","offset","method","target","DefaultType","Event","ACTIVATE","SCROLL","LOAD_DATA_API","ClassName","DROPDOWN_ITEM","DROPDOWN_MENU","ACTIVE","Selector","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","element","config","_element","_scrollElement","tagName","window","_config","_getConfig","_selector","_offsets","_targets","_activeTarget","_scrollHeight","on","event","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","makeArray","map","targetSelector","Util","getSelectorFromElement","targetBCR","getBoundingClientRect","width","height","top","filter","item","sort","a","b","forEach","push","dispose","removeData","off","extend","id","attr","getUID","typeCheckConfig","pageYOffset"
 ,"scrollTop","scrollHeight","Math","max","document","body","documentElement","_getOffsetHeight","innerHeight","maxScroll","length","_activate","_clear","i","isActiveTarget","queries","split","selector","$link","join","hasClass","closest","find","addClass","parents","prev","children","trigger","relatedTarget","removeClass","_jQueryInterface","each","data","Error","scrollSpys","$spy","call","Constructor","noConflict"],"mappings":"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","file":"scrollspy.js","sourcesContent":["import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * ----------------------------------------------
 ----------------------------\n * Bootstrap (v4.0.0-beta.2): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME               = 'scrollspy'\n  const VERSION            = '4.0.0-beta.2'\n  const DATA_KEY           = 'bs.scrollspy'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const DATA_API_KEY       = '.data-api'\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Default = {\n    offset : 10,\n    method : 'auto',\n    target : ''\n  }\n\n  const DefaultType = {\n    offset : 'number',\n    method : 'string',\n    target : '(string|element)'\n  }\n\n  const Event = {\n    ACTIVATE      : `activate${EVENT_KEY}`,\n    SCROLL  
       : `scroll${EVENT_KEY}`,\n    LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DROPDOWN_ITEM : 'dropdown-item',\n    DROPDOWN_MENU : 'dropdown-menu',\n    ACTIVE        : 'active'\n  }\n\n  const Selector = {\n    DATA_SPY        : '[data-spy=\"scroll\"]',\n    ACTIVE          : '.active',\n    NAV_LIST_GROUP  : '.nav, .list-group',\n    NAV_LINKS       : '.nav-link',\n    NAV_ITEMS       : '.nav-item',\n    LIST_ITEMS      : '.list-group-item',\n    DROPDOWN        : '.dropdown',\n    DROPDOWN_ITEMS  : '.dropdown-item',\n    DROPDOWN_TOGGLE : '.dropdown-toggle'\n  }\n\n  const OffsetMethod = {\n    OFFSET   : 'offset',\n    POSITION : 'position'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class ScrollSpy {\n\n    constructor(element, config) {\n      this._element       = element
 \n      this._scrollElement = element.tagName === 'BODY' ? window : element\n      this._config        = this._getConfig(config)\n      this._selector      = `${this._config.target} ${Selector.NAV_LINKS},`\n                          + `${this._config.target} ${Selector.LIST_ITEMS},`\n                          + `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n      this._offsets       = []\n      this._targets       = []\n      this._activeTarget  = null\n      this._scrollHeight  = 0\n\n      $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n      this.refresh()\n      this._process()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    refresh() {\n      const autoMethod = this._scrollElement !== this._scrollElement.window ?\n        OffsetMethod.POSITION : OffsetMethod.OFFSET\n\n      const offsetMethod = this._config.method === 'auto
 ' ?\n        autoMethod : this._config.method\n\n      const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n        this._getScrollTop() : 0\n\n      this._offsets = []\n      this._targets = []\n\n      this._scrollHeight = this._getScrollHeight()\n\n      const targets = $.makeArray($(this._selector))\n\n      targets\n        .map((element) => {\n          let target\n          const targetSelector = Util.getSelectorFromElement(element)\n\n          if (targetSelector) {\n            target = $(targetSelector)[0]\n          }\n\n          if (target) {\n            const targetBCR = target.getBoundingClientRect()\n            if (targetBCR.width || targetBCR.height) {\n              // todo (fat): remove sketch reliance on jQuery position/offset\n              return [\n                $(target)[offsetMethod]().top + offsetBase,\n                targetSelector\n              ]\n            }\n          }\n          return null\n        })\n        .filter((item)  => item)
 \n        .sort((a, b)    => a[0] - b[0])\n        .forEach((item) => {\n          this._offsets.push(item[0])\n          this._targets.push(item[1])\n        })\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      $(this._scrollElement).off(EVENT_KEY)\n\n      this._element       = null\n      this._scrollElement = null\n      this._config        = null\n      this._selector      = null\n      this._offsets       = null\n      this._targets       = null\n      this._activeTarget  = null\n      this._scrollHeight  = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = $.extend({}, Default, config)\n\n      if (typeof config.target !== 'string') {\n        let id = $(config.target).attr('id')\n        if (!id) {\n          id = Util.getUID(NAME)\n          $(config.target).attr('id', id)\n        }\n        config.target = `#${id}`\n      }\n\n      Util.typeCheckConfig(NAME, config, DefaultType)\n\n      return config\n    }\n\n    _ge
 tScrollTop() {\n      return this._scrollElement === window ?\n          this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n    }\n\n    _getScrollHeight() {\n      return this._scrollElement.scrollHeight || Math.max(\n        document.body.scrollHeight,\n        document.documentElement.scrollHeight\n      )\n    }\n\n    _getOffsetHeight() {\n      return this._scrollElement === window ?\n          window.innerHeight : this._scrollElement.getBoundingClientRect().height\n    }\n\n    _process() {\n      const scrollTop    = this._getScrollTop() + this._config.offset\n      const scrollHeight = this._getScrollHeight()\n      const maxScroll    = this._config.offset\n        + scrollHeight\n        - this._getOffsetHeight()\n\n      if (this._scrollHeight !== scrollHeight) {\n        this.refresh()\n      }\n\n      if (scrollTop >= maxScroll) {\n        const target = this._targets[this._targets.length - 1]\n\n        if (this._activeTarget !== target) {\n          thi
 s._activate(target)\n        }\n        return\n      }\n\n      if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n        this._activeTarget = null\n        this._clear()\n        return\n      }\n\n      for (let i = this._offsets.length; i--;) {\n        const isActiveTarget = this._activeTarget !== this._targets[i]\n            && scrollTop >= this._offsets[i]\n            && (typeof this._offsets[i + 1] === 'undefined' ||\n                scrollTop < this._offsets[i + 1])\n\n        if (isActiveTarget) {\n          this._activate(this._targets[i])\n        }\n      }\n    }\n\n    _activate(target) {\n      this._activeTarget = target\n\n      this._clear()\n\n      let queries = this._selector.split(',')\n      // eslint-disable-next-line arrow-body-style\n      queries     = queries.map((selector) => {\n        return `${selector}[data-target=\"${target}\"],` +\n               `${selector}[href=\"${target}\"]`\n      })\n\n      const $link = 
 $(queries.join(','))\n\n      if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n        $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n        $link.addClass(ClassName.ACTIVE)\n      } else {\n        // Set triggered link as active\n        $link.addClass(ClassName.ACTIVE)\n        // Set triggered links parents as active\n        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n        $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n        // Handle special case when .nav-link is inside .nav-item\n        $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n      }\n\n      $(this._scrollElement).trigger(Event.ACTIVATE, {\n        relatedTarget: target\n      })\n    }\n\n    _clear() {\n      $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACT
 IVE)\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' && config\n\n        if (!data) {\n          data = new ScrollSpy(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n    for (let i = scrollSpys.length; i--;) {\n      const $spy = $(scrollSpys[i])\n      ScrollSpy._jQuer
 yInterface.call($spy, $spy.data())\n    }\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = ScrollSpy._jQueryInterface\n  $.fn[NAME].Constructor = ScrollSpy\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return ScrollSpy._jQueryInterface\n  }\n\n  return ScrollSpy\n\n})($)\n\nexport default ScrollSpy\n"]}
\ No newline at end of file
diff --git a/assets/javascript/dist/tab.js b/assets/javascript/dist/tab.js
deleted file mode 100755
index c8bcd12..0000000
--- a/assets/javascript/dist/tab.js
+++ /dev/null
@@ -1,259 +0,0 @@
-function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
-
-function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): tab.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-var Tab = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-  var NAME = 'tab';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.tab';
-  var EVENT_KEY = "." + DATA_KEY;
-  var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var TRANSITION_DURATION = 150;
-  var Event = {
-    HIDE: "hide" + EVENT_KEY,
-    HIDDEN: "hidden" + EVENT_KEY,
-    SHOW: "show" + EVENT_KEY,
-    SHOWN: "shown" + EVENT_KEY,
-    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
-  };
-  var ClassName = {
-    DROPDOWN_MENU: 'dropdown-menu',
-    ACTIVE: 'active',
-    DISABLED: 'disabled',
-    FADE: 'fade',
-    SHOW: 'show'
-  };
-  var Selector = {
-    DROPDOWN: '.dropdown',
-    NAV_LIST_GROUP: '.nav, .list-group',
-    ACTIVE: '.active',
-    ACTIVE_UL: '> li > .active',
-    DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
-    DROPDOWN_TOGGLE: '.dropdown-toggle',
-    DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Tab =
-  /*#__PURE__*/
-  function () {
-    function Tab(element) {
-      this._element = element;
-    } // getters
-
-
-    var _proto = Tab.prototype;
-
-    // public
-    _proto.show = function show() {
-      var _this = this;
-
-      if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName.ACTIVE) || $(this._element).hasClass(ClassName.DISABLED)) {
-        return;
-      }
-
-      var target;
-      var previous;
-      var listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0];
-      var selector = Util.getSelectorFromElement(this._element);
-
-      if (listElement) {
-        var itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE;
-        previous = $.makeArray($(listElement).find(itemSelector));
-        previous = previous[previous.length - 1];
-      }
-
-      var hideEvent = $.Event(Event.HIDE, {
-        relatedTarget: this._element
-      });
-      var showEvent = $.Event(Event.SHOW, {
-        relatedTarget: previous
-      });
-
-      if (previous) {
-        $(previous).trigger(hideEvent);
-      }
-
-      $(this._element).trigger(showEvent);
-
-      if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      if (selector) {
-        target = $(selector)[0];
-      }
-
-      this._activate(this._element, listElement);
-
-      var complete = function complete() {
-        var hiddenEvent = $.Event(Event.HIDDEN, {
-          relatedTarget: _this._element
-        });
-        var shownEvent = $.Event(Event.SHOWN, {
-          relatedTarget: previous
-        });
-        $(previous).trigger(hiddenEvent);
-        $(_this._element).trigger(shownEvent);
-      };
-
-      if (target) {
-        this._activate(target, target.parentNode, complete);
-      } else {
-        complete();
-      }
-    };
-
-    _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
-      this._element = null;
-    }; // private
-
-
-    _proto._activate = function _activate(element, container, callback) {
-      var _this2 = this;
-
-      var activeElements;
-
-      if (container.nodeName === 'UL') {
-        activeElements = $(container).find(Selector.ACTIVE_UL);
-      } else {
-        activeElements = $(container).children(Selector.ACTIVE);
-      }
-
-      var active = activeElements[0];
-      var isTransitioning = callback && Util.supportsTransitionEnd() && active && $(active).hasClass(ClassName.FADE);
-
-      var complete = function complete() {
-        return _this2._transitionComplete(element, active, isTransitioning, callback);
-      };
-
-      if (active && isTransitioning) {
-        $(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
-      } else {
-        complete();
-      }
-
-      if (active) {
-        $(active).removeClass(ClassName.SHOW);
-      }
-    };
-
-    _proto._transitionComplete = function _transitionComplete(element, active, isTransitioning, callback) {
-      if (active) {
-        $(active).removeClass(ClassName.ACTIVE);
-        var dropdownChild = $(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
-
-        if (dropdownChild) {
-          $(dropdownChild).removeClass(ClassName.ACTIVE);
-        }
-
-        if (active.getAttribute('role') === 'tab') {
-          active.setAttribute('aria-selected', false);
-        }
-      }
-
-      $(element).addClass(ClassName.ACTIVE);
-
-      if (element.getAttribute('role') === 'tab') {
-        element.setAttribute('aria-selected', true);
-      }
-
-      if (isTransitioning) {
-        Util.reflow(element);
-        $(element).addClass(ClassName.SHOW);
-      } else {
-        $(element).removeClass(ClassName.FADE);
-      }
-
-      if (element.parentNode && $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
-        var dropdownElement = $(element).closest(Selector.DROPDOWN)[0];
-
-        if (dropdownElement) {
-          $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
-        }
-
-        element.setAttribute('aria-expanded', true);
-      }
-
-      if (callback) {
-        callback();
-      }
-    }; // static
-
-
-    Tab._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var $this = $(this);
-        var data = $this.data(DATA_KEY);
-
-        if (!data) {
-          data = new Tab(this);
-          $this.data(DATA_KEY, data);
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error("No method named \"" + config + "\"");
-          }
-
-          data[config]();
-        }
-      });
-    };
-
-    _createClass(Tab, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }]);
-
-    return Tab;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-
-  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
-    event.preventDefault();
-
-    Tab._jQueryInterface.call($(this), 'show');
-  });
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME] = Tab._jQueryInterface;
-  $.fn[NAME].Constructor = Tab;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Tab._jQueryInterface;
-  };
-
-  return Tab;
-}($);
-//# sourceMappingURL=tab.js.map
\ No newline at end of file
diff --git a/assets/javascript/dist/tab.js.map b/assets/javascript/dist/tab.js.map
deleted file mode 100755
index 861bed0..0000000
--- a/assets/javascript/dist/tab.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/tab.js"],"names":["Tab","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","$","fn","TRANSITION_DURATION","Event","HIDE","HIDDEN","SHOW","SHOWN","CLICK_DATA_API","ClassName","DROPDOWN_MENU","ACTIVE","DISABLED","FADE","Selector","DROPDOWN","NAV_LIST_GROUP","ACTIVE_UL","DATA_TOGGLE","DROPDOWN_TOGGLE","DROPDOWN_ACTIVE_CHILD","element","_element","show","parentNode","nodeType","Node","ELEMENT_NODE","hasClass","target","previous","listElement","closest","selector","Util","getSelectorFromElement","itemSelector","nodeName","makeArray","find","length","hideEvent","relatedTarget","showEvent","trigger","isDefaultPrevented","_activate","complete","hiddenEvent","shownEvent","dispose","removeData","container","callback","activeElements","children","active","isTransitioning","supportsTransitionEnd","_transitionComplete","one","TRANSITION_END","emulateTransitionEnd","removeClass","dropdownChild","getAttribute","setAttribute","addClass","refl
 ow","dropdownElement","_jQueryInterface","config","each","$this","data","Error","document","on","event","preventDefault","call","Constructor","noConflict"],"mappings":"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","file":"tab.js","sourcesContent":["import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Ta
 b = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'tab'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.tab'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n\n  const Event = {\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DROPDOWN_MENU : 'dropdown-menu',\n    ACTIVE        : 'active',\n    DISABLED      : 'disabled',\n    FADE          : 'fade',\n    SHOW          : 'show'\n  }\n\n  const Selector = {\n    DROPDOWN              : '.dro
 pdown',\n    NAV_LIST_GROUP        : '.nav, .list-group',\n    ACTIVE                : '.active',\n    ACTIVE_UL             : '> li > .active',\n    DATA_TOGGLE           : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n    DROPDOWN_TOGGLE       : '.dropdown-toggle',\n    DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Tab {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    show() {\n      if (this._element.parentNode &&\n          this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n          $(this._element).hasClass(ClassName.ACTIVE) ||\n          $(this._element).hasClass(ClassName.DISABLED)) {\n        return
 \n      }\n\n      let target\n      let previous\n      const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n      const selector    = Util.getSelectorFromElement(this._element)\n\n      if (listElement) {\n        const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n        previous = $.makeArray($(listElement).find(itemSelector))\n        previous = previous[previous.length - 1]\n      }\n\n      const hideEvent = $.Event(Event.HIDE, {\n        relatedTarget: this._element\n      })\n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget: previous\n      })\n\n      if (previous) {\n        $(previous).trigger(hideEvent)\n      }\n\n      $(this._element).trigger(showEvent)\n\n      if (showEvent.isDefaultPrevented() ||\n         hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (selector) {\n        target = $(selector)[0]\n      }\n\n      this._activate(\n        this._element,\n   
      listElement\n      )\n\n      const complete = () => {\n        const hiddenEvent = $.Event(Event.HIDDEN, {\n          relatedTarget: this._element\n        })\n\n        const shownEvent = $.Event(Event.SHOWN, {\n          relatedTarget: previous\n        })\n\n        $(previous).trigger(hiddenEvent)\n        $(this._element).trigger(shownEvent)\n      }\n\n      if (target) {\n        this._activate(target, target.parentNode, complete)\n      } else {\n        complete()\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n\n    // private\n\n    _activate(element, container, callback) {\n      let activeElements\n      if (container.nodeName === 'UL') {\n        activeElements = $(container).find(Selector.ACTIVE_UL)\n      } else {\n        activeElements = $(container).children(Selector.ACTIVE)\n      }\n\n      const active          = activeElements[0]\n      const isTransitioning = callback\n        && Util
 .supportsTransitionEnd()\n        && (active && $(active).hasClass(ClassName.FADE))\n\n      const complete = () => this._transitionComplete(\n        element,\n        active,\n        isTransitioning,\n        callback\n      )\n\n      if (active && isTransitioning) {\n        $(active)\n          .one(Util.TRANSITION_END, complete)\n          .emulateTransitionEnd(TRANSITION_DURATION)\n\n      } else {\n        complete()\n      }\n\n      if (active) {\n        $(active).removeClass(ClassName.SHOW)\n      }\n    }\n\n    _transitionComplete(element, active, isTransitioning, callback) {\n      if (active) {\n        $(active).removeClass(ClassName.ACTIVE)\n\n        const dropdownChild = $(active.parentNode).find(\n          Selector.DROPDOWN_ACTIVE_CHILD\n        )[0]\n\n        if (dropdownChild) {\n          $(dropdownChild).removeClass(ClassName.ACTIVE)\n        }\n\n        if (active.getAttribute('role') === 'tab') {\n          active.setAttribute('aria-selected', false)\n
         }\n      }\n\n      $(element).addClass(ClassName.ACTIVE)\n      if (element.getAttribute('role') === 'tab') {\n        element.setAttribute('aria-selected', true)\n      }\n\n      if (isTransitioning) {\n        Util.reflow(element)\n        $(element).addClass(ClassName.SHOW)\n      } else {\n        $(element).removeClass(ClassName.FADE)\n      }\n\n      if (element.parentNode &&\n          $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n\n        const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n        if (dropdownElement) {\n          $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n        }\n\n        element.setAttribute('aria-expanded', true)\n      }\n\n      if (callback) {\n        callback()\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this = $(this)\n        let data    = $this.data(DATA_KEY)\n\n        if (!data) {\n 
          data = new Tab(this)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault()\n      Tab._jQueryInterface.call($(this), 'show')\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Tab._jQueryInterface\n  $.fn[NAME].Constructor = Tab\n  $.fn[NAME].noConflict  = 
 function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Tab._jQueryInterface\n  }\n\n  return Tab\n\n})($)\n\nexport default Tab\n"]}
\ No newline at end of file
diff --git a/assets/javascript/dist/tooltip.js b/assets/javascript/dist/tooltip.js
deleted file mode 100755
index c00a813..0000000
--- a/assets/javascript/dist/tooltip.js
+++ /dev/null
@@ -1,665 +0,0 @@
-function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
-
-function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): tooltip.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-var Tooltip = function () {
-  /**
-   * Check for Popper dependency
-   * Popper - https://popper.js.org
-   */
-  if (typeof Popper === 'undefined') {
-    throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)');
-  }
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-
-
-  var NAME = 'tooltip';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.tooltip';
-  var EVENT_KEY = "." + DATA_KEY;
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var TRANSITION_DURATION = 150;
-  var CLASS_PREFIX = 'bs-tooltip';
-  var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
-  var DefaultType = {
-    animation: 'boolean',
-    template: 'string',
-    title: '(string|element|function)',
-    trigger: 'string',
-    delay: '(number|object)',
-    html: 'boolean',
-    selector: '(string|boolean)',
-    placement: '(string|function)',
-    offset: '(number|string)',
-    container: '(string|element|boolean)',
-    fallbackPlacement: '(string|array)'
-  };
-  var AttachmentMap = {
-    AUTO: 'auto',
-    TOP: 'top',
-    RIGHT: 'right',
-    BOTTOM: 'bottom',
-    LEFT: 'left'
-  };
-  var Default = {
-    animation: true,
-    template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',
-    trigger: 'hover focus',
-    title: '',
-    delay: 0,
-    html: false,
-    selector: false,
-    placement: 'top',
-    offset: 0,
-    container: false,
-    fallbackPlacement: 'flip'
-  };
-  var HoverState = {
-    SHOW: 'show',
-    OUT: 'out'
-  };
-  var Event = {
-    HIDE: "hide" + EVENT_KEY,
-    HIDDEN: "hidden" + EVENT_KEY,
-    SHOW: "show" + EVENT_KEY,
-    SHOWN: "shown" + EVENT_KEY,
-    INSERTED: "inserted" + EVENT_KEY,
-    CLICK: "click" + EVENT_KEY,
-    FOCUSIN: "focusin" + EVENT_KEY,
-    FOCUSOUT: "focusout" + EVENT_KEY,
-    MOUSEENTER: "mouseenter" + EVENT_KEY,
-    MOUSELEAVE: "mouseleave" + EVENT_KEY
-  };
-  var ClassName = {
-    FADE: 'fade',
-    SHOW: 'show'
-  };
-  var Selector = {
-    TOOLTIP: '.tooltip',
-    TOOLTIP_INNER: '.tooltip-inner',
-    ARROW: '.arrow'
-  };
-  var Trigger = {
-    HOVER: 'hover',
-    FOCUS: 'focus',
-    CLICK: 'click',
-    MANUAL: 'manual'
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Tooltip =
-  /*#__PURE__*/
-  function () {
-    function Tooltip(element, config) {
-      // private
-      this._isEnabled = true;
-      this._timeout = 0;
-      this._hoverState = '';
-      this._activeTrigger = {};
-      this._popper = null; // protected
-
-      this.element = element;
-      this.config = this._getConfig(config);
-      this.tip = null;
-
-      this._setListeners();
-    } // getters
-
-
-    var _proto = Tooltip.prototype;
-
-    // public
-    _proto.enable = function enable() {
-      this._isEnabled = true;
-    };
-
-    _proto.disable = function disable() {
-      this._isEnabled = false;
-    };
-
-    _proto.toggleEnabled = function toggleEnabled() {
-      this._isEnabled = !this._isEnabled;
-    };
-
-    _proto.toggle = function toggle(event) {
-      if (!this._isEnabled) {
-        return;
-      }
-
-      if (event) {
-        var dataKey = this.constructor.DATA_KEY;
-        var context = $(event.currentTarget).data(dataKey);
-
-        if (!context) {
-          context = new this.constructor(event.currentTarget, this._getDelegateConfig());
-          $(event.currentTarget).data(dataKey, context);
-        }
-
-        context._activeTrigger.click = !context._activeTrigger.click;
-
-        if (context._isWithActiveTrigger()) {
-          context._enter(null, context);
-        } else {
-          context._leave(null, context);
-        }
-      } else {
-        if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {
-          this._leave(null, this);
-
-          return;
-        }
-
-        this._enter(null, this);
-      }
-    };
-
-    _proto.dispose = function dispose() {
-      clearTimeout(this._timeout);
-      $.removeData(this.element, this.constructor.DATA_KEY);
-      $(this.element).off(this.constructor.EVENT_KEY);
-      $(this.element).closest('.modal').off('hide.bs.modal');
-
-      if (this.tip) {
-        $(this.tip).remove();
-      }
-
-      this._isEnabled = null;
-      this._timeout = null;
-      this._hoverState = null;
-      this._activeTrigger = null;
-
-      if (this._popper !== null) {
-        this._popper.destroy();
-      }
-
-      this._popper = null;
-      this.element = null;
-      this.config = null;
-      this.tip = null;
-    };
-
-    _proto.show = function show() {
-      var _this = this;
-
-      if ($(this.element).css('display') === 'none') {
-        throw new Error('Please use show on visible elements');
-      }
-
-      var showEvent = $.Event(this.constructor.Event.SHOW);
-
-      if (this.isWithContent() && this._isEnabled) {
-        $(this.element).trigger(showEvent);
-        var isInTheDom = $.contains(this.element.ownerDocument.documentElement, this.element);
-
-        if (showEvent.isDefaultPrevented() || !isInTheDom) {
-          return;
-        }
-
-        var tip = this.getTipElement();
-        var tipId = Util.getUID(this.constructor.NAME);
-        tip.setAttribute('id', tipId);
-        this.element.setAttribute('aria-describedby', tipId);
-        this.setContent();
-
-        if (this.config.animation) {
-          $(tip).addClass(ClassName.FADE);
-        }
-
-        var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
-
-        var attachment = this._getAttachment(placement);
-
-        this.addAttachmentClass(attachment);
-        var container = this.config.container === false ? document.body : $(this.config.container);
-        $(tip).data(this.constructor.DATA_KEY, this);
-
-        if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {
-          $(tip).appendTo(container);
-        }
-
-        $(this.element).trigger(this.constructor.Event.INSERTED);
-        this._popper = new Popper(this.element, tip, {
-          placement: attachment,
-          modifiers: {
-            offset: {
-              offset: this.config.offset
-            },
-            flip: {
-              behavior: this.config.fallbackPlacement
-            },
-            arrow: {
-              element: Selector.ARROW
-            }
-          },
-          onCreate: function onCreate(data) {
-            if (data.originalPlacement !== data.placement) {
-              _this._handlePopperPlacementChange(data);
-            }
-          },
-          onUpdate: function onUpdate(data) {
-            _this._handlePopperPlacementChange(data);
-          }
-        });
-        $(tip).addClass(ClassName.SHOW); // if this is a touch-enabled device we add extra
-        // empty mouseover listeners to the body's immediate children;
-        // only needed because of broken event delegation on iOS
-        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
-
-        if ('ontouchstart' in document.documentElement) {
-          $('body').children().on('mouseover', null, $.noop);
-        }
-
-        var complete = function complete() {
-          if (_this.config.animation) {
-            _this._fixTransition();
-          }
-
-          var prevHoverState = _this._hoverState;
-          _this._hoverState = null;
-          $(_this.element).trigger(_this.constructor.Event.SHOWN);
-
-          if (prevHoverState === HoverState.OUT) {
-            _this._leave(null, _this);
-          }
-        };
-
-        if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {
-          $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION);
-        } else {
-          complete();
-        }
-      }
-    };
-
-    _proto.hide = function hide(callback) {
-      var _this2 = this;
-
-      var tip = this.getTipElement();
-      var hideEvent = $.Event(this.constructor.Event.HIDE);
-
-      var complete = function complete() {
-        if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
-          tip.parentNode.removeChild(tip);
-        }
-
-        _this2._cleanTipClass();
-
-        _this2.element.removeAttribute('aria-describedby');
-
-        $(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
-
-        if (_this2._popper !== null) {
-          _this2._popper.destroy();
-        }
-
-        if (callback) {
-          callback();
-        }
-      };
-
-      $(this.element).trigger(hideEvent);
-
-      if (hideEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      $(tip).removeClass(ClassName.SHOW); // if this is a touch-enabled device we remove the extra
-      // empty mouseover listeners we added for iOS support
-
-      if ('ontouchstart' in document.documentElement) {
-        $('body').children().off('mouseover', null, $.noop);
-      }
-
-      this._activeTrigger[Trigger.CLICK] = false;
-      this._activeTrigger[Trigger.FOCUS] = false;
-      this._activeTrigger[Trigger.HOVER] = false;
-
-      if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {
-        $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
-      } else {
-        complete();
-      }
-
-      this._hoverState = '';
-    };
-
-    _proto.update = function update() {
-      if (this._popper !== null) {
-        this._popper.scheduleUpdate();
-      }
-    }; // protected
-
-
-    _proto.isWithContent = function isWithContent() {
-      return Boolean(this.getTitle());
-    };
-
-    _proto.addAttachmentClass = function addAttachmentClass(attachment) {
-      $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
-    };
-
-    _proto.getTipElement = function getTipElement() {
-      this.tip = this.tip || $(this.config.template)[0];
-      return this.tip;
-    };
-
-    _proto.setContent = function setContent() {
-      var $tip = $(this.getTipElement());
-      this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
-      $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
-    };
-
-    _proto.setElementContent = function setElementContent($element, content) {
-      var html = this.config.html;
-
-      if (typeof content === 'object' && (content.nodeType || content.jquery)) {
-        // content is a DOM node or a jQuery
-        if (html) {
-          if (!$(content).parent().is($element)) {
-            $element.empty().append(content);
-          }
-        } else {
-          $element.text($(content).text());
-        }
-      } else {
-        $element[html ? 'html' : 'text'](content);
-      }
-    };
-
-    _proto.getTitle = function getTitle() {
-      var title = this.element.getAttribute('data-original-title');
-
-      if (!title) {
-        title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
-      }
-
-      return title;
-    }; // private
-
-
-    _proto._getAttachment = function _getAttachment(placement) {
-      return AttachmentMap[placement.toUpperCase()];
-    };
-
-    _proto._setListeners = function _setListeners() {
-      var _this3 = this;
-
-      var triggers = this.config.trigger.split(' ');
-      triggers.forEach(function (trigger) {
-        if (trigger === 'click') {
-          $(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {
-            return _this3.toggle(event);
-          });
-        } else if (trigger !== Trigger.MANUAL) {
-          var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;
-          var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;
-          $(_this3.element).on(eventIn, _this3.config.selector, function (event) {
-            return _this3._enter(event);
-          }).on(eventOut, _this3.config.selector, function (event) {
-            return _this3._leave(event);
-          });
-        }
-
-        $(_this3.element).closest('.modal').on('hide.bs.modal', function () {
-          return _this3.hide();
-        });
-      });
-
-      if (this.config.selector) {
-        this.config = $.extend({}, this.config, {
-          trigger: 'manual',
-          selector: ''
-        });
-      } else {
-        this._fixTitle();
-      }
-    };
-
-    _proto._fixTitle = function _fixTitle() {
-      var titleType = typeof this.element.getAttribute('data-original-title');
-
-      if (this.element.getAttribute('title') || titleType !== 'string') {
-        this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
-        this.element.setAttribute('title', '');
-      }
-    };
-
-    _proto._enter = function _enter(event, context) {
-      var dataKey = this.constructor.DATA_KEY;
-      context = context || $(event.currentTarget).data(dataKey);
-
-      if (!context) {
-        context = new this.constructor(event.currentTarget, this._getDelegateConfig());
-        $(event.currentTarget).data(dataKey, context);
-      }
-
-      if (event) {
-        context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
-      }
-
-      if ($(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {
-        context._hoverState = HoverState.SHOW;
-        return;
-      }
-
-      clearTimeout(context._timeout);
-      context._hoverState = HoverState.SHOW;
-
-      if (!context.config.delay || !context.config.delay.show) {
-        context.show();
-        return;
-      }
-
-      context._timeout = setTimeout(function () {
-        if (context._hoverState === HoverState.SHOW) {
-          context.show();
-        }
-      }, context.config.delay.show);
-    };
-
-    _proto._leave = function _leave(event, context) {
-      var dataKey = this.constructor.DATA_KEY;
-      context = context || $(event.currentTarget).data(dataKey);
-
-      if (!context) {
-        context = new this.constructor(event.currentTarget, this._getDelegateConfig());
-        $(event.currentTarget).data(dataKey, context);
-      }
-
-      if (event) {
-        context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
-      }
-
-      if (context._isWithActiveTrigger()) {
-        return;
-      }
-
-      clearTimeout(context._timeout);
-      context._hoverState = HoverState.OUT;
-
-      if (!context.config.delay || !context.config.delay.hide) {
-        context.hide();
-        return;
-      }
-
-      context._timeout = setTimeout(function () {
-        if (context._hoverState === HoverState.OUT) {
-          context.hide();
-        }
-      }, context.config.delay.hide);
-    };
-
-    _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
-      for (var trigger in this._activeTrigger) {
-        if (this._activeTrigger[trigger]) {
-          return true;
-        }
-      }
-
-      return false;
-    };
-
-    _proto._getConfig = function _getConfig(config) {
-      config = $.extend({}, this.constructor.Default, $(this.element).data(), config);
-
-      if (typeof config.delay === 'number') {
-        config.delay = {
-          show: config.delay,
-          hide: config.delay
-        };
-      }
-
-      if (typeof config.title === 'number') {
-        config.title = config.title.toString();
-      }
-
-      if (typeof config.content === 'number') {
-        config.content = config.content.toString();
-      }
-
-      Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
-      return config;
-    };
-
-    _proto._getDelegateConfig = function _getDelegateConfig() {
-      var config = {};
-
-      if (this.config) {
-        for (var key in this.config) {
-          if (this.constructor.Default[key] !== this.config[key]) {
-            config[key] = this.config[key];
-          }
-        }
-      }
-
-      return config;
-    };
-
-    _proto._cleanTipClass = function _cleanTipClass() {
-      var $tip = $(this.getTipElement());
-      var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
-
-      if (tabClass !== null && tabClass.length > 0) {
-        $tip.removeClass(tabClass.join(''));
-      }
-    };
-
-    _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {
-      this._cleanTipClass();
-
-      this.addAttachmentClass(this._getAttachment(data.placement));
-    };
-
-    _proto._fixTransition = function _fixTransition() {
-      var tip = this.getTipElement();
-      var initConfigAnimation = this.config.animation;
-
-      if (tip.getAttribute('x-placement') !== null) {
-        return;
-      }
-
-      $(tip).removeClass(ClassName.FADE);
-      this.config.animation = false;
-      this.hide();
-      this.show();
-      this.config.animation = initConfigAnimation;
-    }; // static
-
-
-    Tooltip._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var data = $(this).data(DATA_KEY);
-
-        var _config = typeof config === 'object' && config;
-
-        if (!data && /dispose|hide/.test(config)) {
-          return;
-        }
-
-        if (!data) {
-          data = new Tooltip(this, _config);
-          $(this).data(DATA_KEY, data);
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error("No method named \"" + config + "\"");
-          }
-
-          data[config]();
-        }
-      });
-    };
-
-    _createClass(Tooltip, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }, {
-      key: "Default",
-      get: function get() {
-        return Default;
-      }
-    }, {
-      key: "NAME",
-      get: function get() {
-        return NAME;
-      }
-    }, {
-      key: "DATA_KEY",
-      get: function get() {
-        return DATA_KEY;
-      }
-    }, {
-      key: "Event",
-      get: function get() {
-        return Event;
-      }
-    }, {
-      key: "EVENT_KEY",
-      get: function get() {
-        return EVENT_KEY;
-      }
-    }, {
-      key: "DefaultType",
-      get: function get() {
-        return DefaultType;
-      }
-    }]);
-
-    return Tooltip;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-
-  $.fn[NAME] = Tooltip._jQueryInterface;
-  $.fn[NAME].Constructor = Tooltip;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Tooltip._jQueryInterface;
-  };
-
-  return Tooltip;
-}($, Popper);
-//# sourceMappingURL=tooltip.js.map
\ No newline at end of file
diff --git a/assets/javascript/dist/tooltip.js.map b/assets/javascript/dist/tooltip.js.map
deleted file mode 100755
index c3180bc..0000000
--- a/assets/javascript/dist/tooltip.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/tooltip.js"],"names":["Tooltip","Popper","Error","NAME","VERSION","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","$","fn","TRANSITION_DURATION","CLASS_PREFIX","BSCLS_PREFIX_REGEX","RegExp","DefaultType","animation","template","title","trigger","delay","html","selector","placement","offset","container","fallbackPlacement","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default","HoverState","SHOW","OUT","Event","HIDE","HIDDEN","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","ClassName","FADE","Selector","TOOLTIP","TOOLTIP_INNER","ARROW","Trigger","HOVER","FOCUS","MANUAL","element","config","_isEnabled","_timeout","_hoverState","_activeTrigger","_popper","_getConfig","tip","_setListeners","enable","disable","toggleEnabled","toggle","event","dataKey","constructor","context","currentTarget","data","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","hasClass","dispose","clearTimeout","removeDa
 ta","off","closest","remove","destroy","show","css","showEvent","isWithContent","isInTheDom","contains","ownerDocument","documentElement","isDefaultPrevented","tipId","Util","getUID","setAttribute","setContent","addClass","call","attachment","_getAttachment","addAttachmentClass","document","body","appendTo","modifiers","flip","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","children","on","noop","complete","_fixTransition","prevHoverState","supportsTransitionEnd","one","TRANSITION_END","emulateTransitionEnd","_TRANSITION_DURATION","hide","callback","hideEvent","parentNode","removeChild","_cleanTipClass","removeAttribute","removeClass","update","scheduleUpdate","Boolean","getTitle","$tip","setElementContent","find","$element","content","nodeType","jquery","parent","is","empty","append","text","getAttribute","toUpperCase","triggers","split","forEach","eventIn","eventOut","extend","_fixTitle","titleType","type","setTimeout","toString","typeCh
 eckConfig","key","tabClass","attr","match","length","join","initConfigAnimation","_jQueryInterface","each","_config","test","Constructor","noConflict"],"mappings":"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","file":"tooltip.js","sourcesContent":["import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (() => {\n\n  /**\n   * Check for Popper dependency\n   * Popper - https://popper.js.org\n   */\n  if (typeof Popper === 'undefined') {\n    throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'tooltip'\n  const VERSION             = '4.0.0-beta.2'\n
   const DATA_KEY            = 'bs.tooltip'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n  const CLASS_PREFIX        = 'bs-tooltip'\n  const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n  const DefaultType = {\n    animation           : 'boolean',\n    template            : 'string',\n    title               : '(string|element|function)',\n    trigger             : 'string',\n    delay               : '(number|object)',\n    html                : 'boolean',\n    selector            : '(string|boolean)',\n    placement           : '(string|function)',\n    offset              : '(number|string)',\n    container           : '(string|element|boolean)',\n    fallbackPlacement   : '(string|array)'\n  }\n\n  const AttachmentMap = {\n    AUTO   : 'auto',\n    TOP    : 'top',\n    RIGHT  : 'right',\n    BOTTOM : 'bottom',\n    LEFT   : 'left'\n  }\n\n  const Default = {\n    animation 
           : true,\n    template            : '<div class=\"tooltip\" role=\"tooltip\">'\n                        + '<div class=\"arrow\"></div>'\n                        + '<div class=\"tooltip-inner\"></div></div>',\n    trigger             : 'hover focus',\n    title               : '',\n    delay               : 0,\n    html                : false,\n    selector            : false,\n    placement           : 'top',\n    offset              : 0,\n    container           : false,\n    fallbackPlacement   : 'flip'\n  }\n\n  const HoverState = {\n    SHOW : 'show',\n    OUT  : 'out'\n  }\n\n  const Event = {\n    HIDE       : `hide${EVENT_KEY}`,\n    HIDDEN     : `hidden${EVENT_KEY}`,\n    SHOW       : `show${EVENT_KEY}`,\n    SHOWN      : `shown${EVENT_KEY}`,\n    INSERTED   : `inserted${EVENT_KEY}`,\n    CLICK      : `click${EVENT_KEY}`,\n    FOCUSIN    : `focusin${EVENT_KEY}`,\n    FOCUSOUT   : `focusout${EVENT_KEY}`,\n    MOUSEENTER : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE : `
 mouseleave${EVENT_KEY}`\n  }\n\n  const ClassName = {\n    FADE : 'fade',\n    SHOW : 'show'\n  }\n\n  const Selector = {\n    TOOLTIP       : '.tooltip',\n    TOOLTIP_INNER : '.tooltip-inner',\n    ARROW         : '.arrow'\n  }\n\n  const Trigger = {\n    HOVER  : 'hover',\n    FOCUS  : 'focus',\n    CLICK  : 'click',\n    MANUAL : 'manual'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Tooltip {\n\n    constructor(element, config) {\n\n      // private\n      this._isEnabled     = true\n      this._timeout       = 0\n      this._hoverState    = ''\n      this._activeTrigger = {}\n      this._popper        = null\n\n      // protected\n      this.element = element\n      this.config  = this._getConfig(config)\n      this.tip     = null\n\n      this._setListeners()\n\n    }\n\n\n    // getters\n\n    static get VERSI
 ON() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get NAME() {\n      return NAME\n    }\n\n    static get DATA_KEY() {\n      return DATA_KEY\n    }\n\n    static get Event() {\n      return Event\n    }\n\n    static get EVENT_KEY() {\n      return EVENT_KEY\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n\n    // public\n\n    enable() {\n      this._isEnabled = true\n    }\n\n    disable() {\n      this._isEnabled = false\n    }\n\n    toggleEnabled() {\n      this._isEnabled = !this._isEnabled\n    }\n\n    toggle(event) {\n      if (!this._isEnabled) {\n        return\n      }\n\n      if (event) {\n        const dataKey = this.constructor.DATA_KEY\n        let context = $(event.currentTarget).data(dataKey)\n\n        if (!context) {\n          context = new this.constructor(\n            event.currentTarget,\n            this._getDelegateConfig()\n          )\n          $(event.currentTarg
 et).data(dataKey, context)\n        }\n\n        context._activeTrigger.click = !context._activeTrigger.click\n\n        if (context._isWithActiveTrigger()) {\n          context._enter(null, context)\n        } else {\n          context._leave(null, context)\n        }\n\n      } else {\n\n        if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n          this._leave(null, this)\n          return\n        }\n\n        this._enter(null, this)\n      }\n    }\n\n    dispose() {\n      clearTimeout(this._timeout)\n\n      $.removeData(this.element, this.constructor.DATA_KEY)\n\n      $(this.element).off(this.constructor.EVENT_KEY)\n      $(this.element).closest('.modal').off('hide.bs.modal')\n\n      if (this.tip) {\n        $(this.tip).remove()\n      }\n\n      this._isEnabled     = null\n      this._timeout       = null\n      this._hoverState    = null\n      this._activeTrigger = null\n      if (this._popper !== null) {\n        this._popper.destroy()\n      }\n\n      thi
 s._popper = null\n      this.element = null\n      this.config  = null\n      this.tip     = null\n    }\n\n    show() {\n      if ($(this.element).css('display') === 'none') {\n        throw new Error('Please use show on visible elements')\n      }\n\n      const showEvent = $.Event(this.constructor.Event.SHOW)\n      if (this.isWithContent() && this._isEnabled) {\n        $(this.element).trigger(showEvent)\n\n        const isInTheDom = $.contains(\n          this.element.ownerDocument.documentElement,\n          this.element\n        )\n\n        if (showEvent.isDefaultPrevented() || !isInTheDom) {\n          return\n        }\n\n        const tip   = this.getTipElement()\n        const tipId = Util.getUID(this.constructor.NAME)\n\n        tip.setAttribute('id', tipId)\n        this.element.setAttribute('aria-describedby', tipId)\n\n        this.setContent()\n\n        if (this.config.animation) {\n          $(tip).addClass(ClassName.FADE)\n        }\n\n        const placement  = 
 typeof this.config.placement === 'function' ?\n          this.config.placement.call(this, tip, this.element) :\n          this.config.placement\n\n        const attachment = this._getAttachment(placement)\n        this.addAttachmentClass(attachment)\n\n        const container = this.config.container === false ? document.body : $(this.config.container)\n\n        $(tip).data(this.constructor.DATA_KEY, this)\n\n        if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n          $(tip).appendTo(container)\n        }\n\n        $(this.element).trigger(this.constructor.Event.INSERTED)\n\n        this._popper = new Popper(this.element, tip, {\n          placement: attachment,\n          modifiers: {\n            offset: {\n              offset: this.config.offset\n            },\n            flip: {\n              behavior: this.config.fallbackPlacement\n            },\n            arrow: {\n              element: Selector.ARROW\n            }\n          },\n      
     onCreate: (data) => {\n            if (data.originalPlacement !== data.placement) {\n              this._handlePopperPlacementChange(data)\n            }\n          },\n          onUpdate : (data) => {\n            this._handlePopperPlacementChange(data)\n          }\n        })\n\n        $(tip).addClass(ClassName.SHOW)\n\n        // if this is a touch-enabled device we add extra\n        // empty mouseover listeners to the body's immediate children;\n        // only needed because of broken event delegation on iOS\n        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n        if ('ontouchstart' in document.documentElement) {\n          $('body').children().on('mouseover', null, $.noop)\n        }\n\n        const complete = () => {\n          if (this.config.animation) {\n            this._fixTransition()\n          }\n          const prevHoverState = this._hoverState\n          this._hoverState     = null\n\n          $(this.element).trigger(this.c
 onstructor.Event.SHOWN)\n\n          if (prevHoverState === HoverState.OUT) {\n            this._leave(null, this)\n          }\n        }\n\n        if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {\n          $(this.tip)\n            .one(Util.TRANSITION_END, complete)\n            .emulateTransitionEnd(Tooltip._TRANSITION_DURATION)\n        } else {\n          complete()\n        }\n      }\n    }\n\n    hide(callback) {\n      const tip       = this.getTipElement()\n      const hideEvent = $.Event(this.constructor.Event.HIDE)\n      const complete  = () => {\n        if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n          tip.parentNode.removeChild(tip)\n        }\n\n        this._cleanTipClass()\n        this.element.removeAttribute('aria-describedby')\n        $(this.element).trigger(this.constructor.Event.HIDDEN)\n        if (this._popper !== null) {\n          this._popper.destroy()\n        }\n\n        if (callback) {\n          c
 allback()\n        }\n      }\n\n      $(this.element).trigger(hideEvent)\n\n      if (hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      $(tip).removeClass(ClassName.SHOW)\n\n      // if this is a touch-enabled device we remove the extra\n      // empty mouseover listeners we added for iOS support\n      if ('ontouchstart' in document.documentElement) {\n        $('body').children().off('mouseover', null, $.noop)\n      }\n\n      this._activeTrigger[Trigger.CLICK] = false\n      this._activeTrigger[Trigger.FOCUS] = false\n      this._activeTrigger[Trigger.HOVER] = false\n\n      if (Util.supportsTransitionEnd() &&\n          $(this.tip).hasClass(ClassName.FADE)) {\n\n        $(tip)\n          .one(Util.TRANSITION_END, complete)\n          .emulateTransitionEnd(TRANSITION_DURATION)\n\n      } else {\n        complete()\n      }\n\n      this._hoverState = ''\n\n    }\n\n    update() {\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate()\n     
  }\n    }\n\n    // protected\n\n    isWithContent() {\n      return Boolean(this.getTitle())\n    }\n\n    addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n    }\n\n    getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0]\n      return this.tip\n    }\n\n    setContent() {\n      const $tip = $(this.getTipElement())\n      this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n    }\n\n    setElementContent($element, content) {\n      const html = this.config.html\n      if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n        // content is a DOM node or a jQuery\n        if (html) {\n          if (!$(content).parent().is($element)) {\n            $element.empty().append(content)\n          }\n        } else {\n          $element.text($(content).text())\n        }\n      } else {\n        $elem
 ent[html ? 'html' : 'text'](content)\n      }\n    }\n\n    getTitle() {\n      let title = this.element.getAttribute('data-original-title')\n\n      if (!title) {\n        title = typeof this.config.title === 'function' ?\n          this.config.title.call(this.element) :\n          this.config.title\n      }\n\n      return title\n    }\n\n\n    // private\n\n    _getAttachment(placement) {\n      return AttachmentMap[placement.toUpperCase()]\n    }\n\n    _setListeners() {\n      const triggers = this.config.trigger.split(' ')\n\n      triggers.forEach((trigger) => {\n        if (trigger === 'click') {\n          $(this.element).on(\n            this.constructor.Event.CLICK,\n            this.config.selector,\n            (event) => this.toggle(event)\n          )\n\n        } else if (trigger !== Trigger.MANUAL) {\n          const eventIn  = trigger === Trigger.HOVER ?\n            this.constructor.Event.MOUSEENTER :\n            this.constructor.Event.FOCUSIN\n          const ev
 entOut = trigger === Trigger.HOVER ?\n            this.constructor.Event.MOUSELEAVE :\n            this.constructor.Event.FOCUSOUT\n\n          $(this.element)\n            .on(\n              eventIn,\n              this.config.selector,\n              (event) => this._enter(event)\n            )\n            .on(\n              eventOut,\n              this.config.selector,\n              (event) => this._leave(event)\n            )\n        }\n\n        $(this.element).closest('.modal').on(\n          'hide.bs.modal',\n          () => this.hide()\n        )\n      })\n\n      if (this.config.selector) {\n        this.config = $.extend({}, this.config, {\n          trigger  : 'manual',\n          selector : ''\n        })\n      } else {\n        this._fixTitle()\n      }\n    }\n\n    _fixTitle() {\n      const titleType = typeof this.element.getAttribute('data-original-title')\n      if (this.element.getAttribute('title') ||\n         titleType !== 'string') {\n        this.elem
 ent.setAttribute(\n          'data-original-title',\n          this.element.getAttribute('title') || ''\n        )\n        this.element.setAttribute('title', '')\n      }\n    }\n\n    _enter(event, context) {\n      const dataKey = this.constructor.DATA_KEY\n\n      context = context || $(event.currentTarget).data(dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      if (event) {\n        context._activeTrigger[\n          event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n        ] = true\n      }\n\n      if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||\n         context._hoverState === HoverState.SHOW) {\n        context._hoverState = HoverState.SHOW\n        return\n      }\n\n      clearTimeout(context._timeout)\n\n      context._hoverState = HoverState.SHOW\n\n      if (!context.config.d
 elay || !context.config.delay.show) {\n        context.show()\n        return\n      }\n\n      context._timeout = setTimeout(() => {\n        if (context._hoverState === HoverState.SHOW) {\n          context.show()\n        }\n      }, context.config.delay.show)\n    }\n\n    _leave(event, context) {\n      const dataKey = this.constructor.DATA_KEY\n\n      context = context || $(event.currentTarget).data(dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      if (event) {\n        context._activeTrigger[\n          event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n        ] = false\n      }\n\n      if (context._isWithActiveTrigger()) {\n        return\n      }\n\n      clearTimeout(context._timeout)\n\n      context._hoverState = HoverState.OUT\n\n      if (!context.config.delay || !context.config.dela
 y.hide) {\n        context.hide()\n        return\n      }\n\n      context._timeout = setTimeout(() => {\n        if (context._hoverState === HoverState.OUT) {\n          context.hide()\n        }\n      }, context.config.delay.hide)\n    }\n\n    _isWithActiveTrigger() {\n      for (const trigger in this._activeTrigger) {\n        if (this._activeTrigger[trigger]) {\n          return true\n        }\n      }\n\n      return false\n    }\n\n    _getConfig(config) {\n      config = $.extend(\n        {},\n        this.constructor.Default,\n        $(this.element).data(),\n        config\n      )\n\n      if (typeof config.delay === 'number') {\n        config.delay = {\n          show : config.delay,\n          hide : config.delay\n        }\n      }\n\n      if (typeof config.title === 'number') {\n        config.title = config.title.toString()\n      }\n\n      if (typeof config.content === 'number') {\n        config.content = config.content.toString()\n      }\n\n      Util.type
 CheckConfig(\n        NAME,\n        config,\n        this.constructor.DefaultType\n      )\n\n      return config\n    }\n\n    _getDelegateConfig() {\n      const config = {}\n\n      if (this.config) {\n        for (const key in this.config) {\n          if (this.constructor.Default[key] !== this.config[key]) {\n            config[key] = this.config[key]\n          }\n        }\n      }\n\n      return config\n    }\n\n    _cleanTipClass() {\n      const $tip = $(this.getTipElement())\n      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''))\n      }\n    }\n\n    _handlePopperPlacementChange(data) {\n      this._cleanTipClass()\n      this.addAttachmentClass(this._getAttachment(data.placement))\n    }\n\n    _fixTransition() {\n      const tip                 = this.getTipElement()\n      const initConfigAnimation = this.config.animation\n      if (tip.getAttribute('x-p
 lacement') !== null) {\n        return\n      }\n      $(tip).removeClass(ClassName.FADE)\n      this.config.animation = false\n      this.hide()\n      this.show()\n      this.config.animation = initConfigAnimation\n    }\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' && config\n\n        if (!data && /dispose|hide/.test(config)) {\n          return\n        }\n\n        if (!data) {\n          data = new Tooltip(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ----------------------
 --------------------------------------------------\n   */\n\n  $.fn[NAME]             = Tooltip._jQueryInterface\n  $.fn[NAME].Constructor = Tooltip\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Tooltip._jQueryInterface\n  }\n\n  return Tooltip\n\n})($, Popper)\n\nexport default Tooltip\n"]}
\ No newline at end of file
diff --git a/assets/javascript/dist/util.js b/assets/javascript/dist/util.js
deleted file mode 100755
index a4df072..0000000
--- a/assets/javascript/dist/util.js
+++ /dev/null
@@ -1,142 +0,0 @@
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): util.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-var Util = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Private TransitionEnd Helpers
-   * ------------------------------------------------------------------------
-   */
-  var transition = false;
-  var MAX_UID = 1000000;
-  var TransitionEndEvent = {
-    WebkitTransition: 'webkitTransitionEnd',
-    MozTransition: 'transitionend',
-    OTransition: 'oTransitionEnd otransitionend',
-    transition: 'transitionend' // shoutout AngusCroll (https://goo.gl/pxwQGp)
-
-  };
-
-  function toType(obj) {
-    return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
-  }
-
-  function getSpecialTransitionEndEvent() {
-    return {
-      bindType: transition.end,
-      delegateType: transition.end,
-      handle: function handle(event) {
-        if ($(event.target).is(this)) {
-          return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
-        }
-
-        return undefined; // eslint-disable-line no-undefined
-      }
-    };
-  }
-
-  function transitionEndTest() {
-    if (window.QUnit) {
-      return false;
-    }
-
-    var el = document.createElement('bootstrap');
-
-    for (var name in TransitionEndEvent) {
-      if (typeof el.style[name] !== 'undefined') {
-        return {
-          end: TransitionEndEvent[name]
-        };
-      }
-    }
-
-    return false;
-  }
-
-  function transitionEndEmulator(duration) {
-    var _this = this;
-
-    var called = false;
-    $(this).one(Util.TRANSITION_END, function () {
-      called = true;
-    });
-    setTimeout(function () {
-      if (!called) {
-        Util.triggerTransitionEnd(_this);
-      }
-    }, duration);
-    return this;
-  }
-
-  function setTransitionEndSupport() {
-    transition = transitionEndTest();
-    $.fn.emulateTransitionEnd = transitionEndEmulator;
-
-    if (Util.supportsTransitionEnd()) {
-      $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
-    }
-  }
-  /**
-   * --------------------------------------------------------------------------
-   * Public Util Api
-   * --------------------------------------------------------------------------
-   */
-
-
-  var Util = {
-    TRANSITION_END: 'bsTransitionEnd',
-    getUID: function getUID(prefix) {
-      do {
-        // eslint-disable-next-line no-bitwise
-        prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
-      } while (document.getElementById(prefix));
-
-      return prefix;
-    },
-    getSelectorFromElement: function getSelectorFromElement(element) {
-      var selector = element.getAttribute('data-target');
-
-      if (!selector || selector === '#') {
-        selector = element.getAttribute('href') || '';
-      }
-
-      try {
-        var $selector = $(document).find(selector);
-        return $selector.length > 0 ? selector : null;
-      } catch (error) {
-        return null;
-      }
-    },
-    reflow: function reflow(element) {
-      return element.offsetHeight;
-    },
-    triggerTransitionEnd: function triggerTransitionEnd(element) {
-      $(element).trigger(transition.end);
-    },
-    supportsTransitionEnd: function supportsTransitionEnd() {
-      return Boolean(transition);
-    },
-    isElement: function isElement(obj) {
-      return (obj[0] || obj).nodeType;
-    },
-    typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
-      for (var property in configTypes) {
-        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
-          var expectedTypes = configTypes[property];
-          var value = config[property];
-          var valueType = value && Util.isElement(value) ? 'element' : toType(value);
-
-          if (!new RegExp(expectedTypes).test(valueType)) {
-            throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
-          }
-        }
-      }
-    }
-  };
-  setTransitionEndSupport();
-  return Util;
-}($);
-//# sourceMappingURL=util.js.map
\ No newline at end of file
diff --git a/assets/javascript/dist/util.js.map b/assets/javascript/dist/util.js.map
deleted file mode 100755
index b0d0327..0000000
--- a/assets/javascript/dist/util.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/util.js"],"names":["Util","transition","MAX_UID","TransitionEndEvent","WebkitTransition","MozTransition","OTransition","toType","obj","toString","call","match","toLowerCase","getSpecialTransitionEndEvent","bindType","end","delegateType","handle","event","$","target","is","handleObj","handler","apply","arguments","undefined","transitionEndTest","window","QUnit","el","document","createElement","name","style","transitionEndEmulator","duration","called","one","TRANSITION_END","setTimeout","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","supportsTransitionEnd","special","getUID","prefix","Math","random","getElementById","getSelectorFromElement","element","selector","getAttribute","$selector","find","length","error","reflow","offsetHeight","trigger","Boolean","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","RegExp
 ","test","Error","toUpperCase"],"mappings":"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
 A0JVmB,CA1JU,CAAb","file":"util.js","sourcesContent":["import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Private TransitionEnd Helpers\n   * ------------------------------------------------------------------------\n   */\n\n  let transition = false\n\n  const MAX_UID = 1000000\n\n  const TransitionEndEvent = {\n    WebkitTransition : 'webkitTransitionEnd',\n    MozTransition    : 'transitionend',\n    OTransition      : 'oTransitionEnd otransitionend',\n    transition       : 'transitionend'\n  }\n\n  // shoutout AngusCroll (https://goo.gl/pxwQGp)\n  function toType(obj) {\n    return {}.toString.call(obj).m
 atch(/\\s([a-zA-Z]+)/)[1].toLowerCase()\n  }\n\n  function getSpecialTransitionEndEvent() {\n    return {\n      bindType: transition.end,\n      delegateType: transition.end,\n      handle(event) {\n        if ($(event.target).is(this)) {\n          return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n        }\n        return undefined // eslint-disable-line no-undefined\n      }\n    }\n  }\n\n  function transitionEndTest() {\n    if (window.QUnit) {\n      return false\n    }\n\n    const el = document.createElement('bootstrap')\n\n    for (const name in TransitionEndEvent) {\n      if (typeof el.style[name] !== 'undefined') {\n        return {\n          end: TransitionEndEvent[name]\n        }\n      }\n    }\n\n    return false\n  }\n\n  function transitionEndEmulator(duration) {\n    let called = false\n\n    $(this).one(Util.TRANSITION_END, () => {\n      called = true\n    })\n\n    setTimeout(() => {\n      if (!called) {\n     
    Util.triggerTransitionEnd(this)\n      }\n    }, duration)\n\n    return this\n  }\n\n  function setTransitionEndSupport() {\n    transition = transitionEndTest()\n\n    $.fn.emulateTransitionEnd = transitionEndEmulator\n\n    if (Util.supportsTransitionEnd()) {\n      $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n    }\n  }\n\n\n  /**\n   * --------------------------------------------------------------------------\n   * Public Util Api\n   * --------------------------------------------------------------------------\n   */\n\n  const Util = {\n\n    TRANSITION_END: 'bsTransitionEnd',\n\n    getUID(prefix) {\n      do {\n        // eslint-disable-next-line no-bitwise\n        prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n      } while (document.getElementById(prefix))\n      return prefix\n    },\n\n    getSelectorFromElement(element) {\n      let selector = element.getAttribute('data-target')\n      if (!selector ||
  selector === '#') {\n        selector = element.getAttribute('href') || ''\n      }\n\n      try {\n        const $selector = $(document).find(selector)\n        return $selector.length > 0 ? selector : null\n      } catch (error) {\n        return null\n      }\n    },\n\n    reflow(element) {\n      return element.offsetHeight\n    },\n\n    triggerTransitionEnd(element) {\n      $(element).trigger(transition.end)\n    },\n\n    supportsTransitionEnd() {\n      return Boolean(transition)\n    },\n\n    isElement(obj) {\n      return (obj[0] || obj).nodeType\n    },\n\n    typeCheckConfig(componentName, config, configTypes) {\n      for (const property in configTypes) {\n        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n          const expectedTypes = configTypes[property]\n          const value         = config[property]\n          const valueType     = value && Util.isElement(value) ?\n                                'element' : toType(value)\n\n       
    if (!new RegExp(expectedTypes).test(valueType)) {\n            throw new Error(\n              `${componentName.toUpperCase()}: ` +\n              `Option \"${property}\" provided type \"${valueType}\" ` +\n              `but expected type \"${expectedTypes}\".`)\n          }\n        }\n      }\n    }\n  }\n\n  setTransitionEndSupport()\n\n  return Util\n\n})($)\n\nexport default Util\n"]}
\ No newline at end of file
diff --git a/assets/javascript/src/alert.js b/assets/javascript/src/alert.js
deleted file mode 100755
index 420aa84..0000000
--- a/assets/javascript/src/alert.js
+++ /dev/null
@@ -1,194 +0,0 @@
-import $ from 'jquery'
-import Util from './util'
-
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): alert.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-const Alert = (() => {
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-
-  const NAME                = 'alert'
-  const VERSION             = '4.0.0-beta.2'
-  const DATA_KEY            = 'bs.alert'
-  const EVENT_KEY           = `.${DATA_KEY}`
-  const DATA_API_KEY        = '.data-api'
-  const JQUERY_NO_CONFLICT  = $.fn[NAME]
-  const TRANSITION_DURATION = 150
-
-  const Selector = {
-    DISMISS : '[data-dismiss="alert"]'
-  }
-
-  const Event = {
-    CLOSE          : `close${EVENT_KEY}`,
-    CLOSED         : `closed${EVENT_KEY}`,
-    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`
-  }
-
-  const ClassName = {
-    ALERT : 'alert',
-    FADE  : 'fade',
-    SHOW  : 'show'
-  }
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Class Definition
-   * ------------------------------------------------------------------------
-   */
-
-  class Alert {
-
-    constructor(element) {
-      this._element = element
-    }
-
-
-    // getters
-
-    static get VERSION() {
-      return VERSION
-    }
-
-
-    // public
-
-    close(element) {
-      element = element || this._element
-
-      const rootElement = this._getRootElement(element)
-      const customEvent = this._triggerCloseEvent(rootElement)
-
-      if (customEvent.isDefaultPrevented()) {
-        return
-      }
-
-      this._removeElement(rootElement)
-    }
-
-    dispose() {
-      $.removeData(this._element, DATA_KEY)
-      this._element = null
-    }
-
-
-    // private
-
-    _getRootElement(element) {
-      const selector = Util.getSelectorFromElement(element)
-      let parent     = false
-
-      if (selector) {
-        parent = $(selector)[0]
-      }
-
-      if (!parent) {
-        parent = $(element).closest(`.${ClassName.ALERT}`)[0]
-      }
-
-      return parent
-    }
-
-    _triggerCloseEvent(element) {
-      const closeEvent = $.Event(Event.CLOSE)
-
-      $(element).trigger(closeEvent)
-      return closeEvent
-    }
-
-    _removeElement(element) {
-      $(element).removeClass(ClassName.SHOW)
-
-      if (!Util.supportsTransitionEnd() ||
-          !$(element).hasClass(ClassName.FADE)) {
-        this._destroyElement(element)
-        return
-      }
-
-      $(element)
-        .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))
-        .emulateTransitionEnd(TRANSITION_DURATION)
-    }
-
-    _destroyElement(element) {
-      $(element)
-        .detach()
-        .trigger(Event.CLOSED)
-        .remove()
-    }
-
-
-    // static
-
-    static _jQueryInterface(config) {
-      return this.each(function () {
-        const $element = $(this)
-        let data       = $element.data(DATA_KEY)
-
-        if (!data) {
-          data = new Alert(this)
-          $element.data(DATA_KEY, data)
-        }
-
-        if (config === 'close') {
-          data[config](this)
-        }
-      })
-    }
-
-    static _handleDismiss(alertInstance) {
-      return function (event) {
-        if (event) {
-          event.preventDefault()
-        }
-
-        alertInstance.close(this)
-      }
-    }
-
-  }
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-  $(document).on(
-    Event.CLICK_DATA_API,
-    Selector.DISMISS,
-    Alert._handleDismiss(new Alert())
-  )
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME]             = Alert._jQueryInterface
-  $.fn[NAME].Constructor = Alert
-  $.fn[NAME].noConflict  = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT
-    return Alert._jQueryInterface
-  }
-
-  return Alert
-
-})($)
-
-export default Alert
diff --git a/assets/javascript/src/button.js b/assets/javascript/src/button.js
deleted file mode 100755
index 9227da9..0000000
--- a/assets/javascript/src/button.js
+++ /dev/null
@@ -1,187 +0,0 @@
-import $ from 'jquery'
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): button.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-const Button = (() => {
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-
-  const NAME                = 'button'
-  const VERSION             = '4.0.0-beta.2'
-  const DATA_KEY            = 'bs.button'
-  const EVENT_KEY           = `.${DATA_KEY}`
-  const DATA_API_KEY        = '.data-api'
-  const JQUERY_NO_CONFLICT  = $.fn[NAME]
-
-  const ClassName = {
-    ACTIVE : 'active',
-    BUTTON : 'btn',
-    FOCUS  : 'focus'
-  }
-
-  const Selector = {
-    DATA_TOGGLE_CARROT : '[data-toggle^="button"]',
-    DATA_TOGGLE        : '[data-toggle="buttons"]',
-    INPUT              : 'input',
-    ACTIVE             : '.active',
-    BUTTON             : '.btn'
-  }
-
-  const Event = {
-    CLICK_DATA_API      : `click${EVENT_KEY}${DATA_API_KEY}`,
-    FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} `
-                        + `blur${EVENT_KEY}${DATA_API_KEY}`
-  }
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Class Definition
-   * ------------------------------------------------------------------------
-   */
-
-  class Button {
-
-    constructor(element) {
-      this._element = element
-    }
-
-
-    // getters
-
-    static get VERSION() {
-      return VERSION
-    }
-
-
-    // public
-
-    toggle() {
-      let triggerChangeEvent = true
-      let addAriaPressed = true
-      const rootElement      = $(this._element).closest(
-        Selector.DATA_TOGGLE
-      )[0]
-
-      if (rootElement) {
-        const input = $(this._element).find(Selector.INPUT)[0]
-
-        if (input) {
-          if (input.type === 'radio') {
-            if (input.checked &&
-              $(this._element).hasClass(ClassName.ACTIVE)) {
-              triggerChangeEvent = false
-
-            } else {
-              const activeElement = $(rootElement).find(Selector.ACTIVE)[0]
-
-              if (activeElement) {
-                $(activeElement).removeClass(ClassName.ACTIVE)
-              }
-            }
-          }
-
-          if (triggerChangeEvent) {
-            if (input.hasAttribute('disabled') ||
-              rootElement.hasAttribute('disabled') ||
-              input.classList.contains('disabled') ||
-              rootElement.classList.contains('disabled')) {
-              return
-            }
-            input.checked = !$(this._element).hasClass(ClassName.ACTIVE)
-            $(input).trigger('change')
-          }
-
-          input.focus()
-          addAriaPressed = false
-        }
-
-      }
-
-      if (addAriaPressed) {
-        this._element.setAttribute('aria-pressed',
-          !$(this._element).hasClass(ClassName.ACTIVE))
-      }
-
-      if (triggerChangeEvent) {
-        $(this._element).toggleClass(ClassName.ACTIVE)
-      }
-    }
-
-    dispose() {
-      $.removeData(this._element, DATA_KEY)
-      this._element = null
-    }
-
-
-    // static
-
-    static _jQueryInterface(config) {
-      return this.each(function () {
-        let data = $(this).data(DATA_KEY)
-
-        if (!data) {
-          data = new Button(this)
-          $(this).data(DATA_KEY, data)
-        }
-
-        if (config === 'toggle') {
-          data[config]()
-        }
-      })
-    }
-
-  }
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-  $(document)
-    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {
-      event.preventDefault()
-
-      let button = event.target
-
-      if (!$(button).hasClass(ClassName.BUTTON)) {
-        button = $(button).closest(Selector.BUTTON)
-      }
-
-      Button._jQueryInterface.call($(button), 'toggle')
-    })
-    .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {
-      const button = $(event.target).closest(Selector.BUTTON)[0]
-      $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))
-    })
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME]             = Button._jQueryInterface
-  $.fn[NAME].Constructor = Button
-  $.fn[NAME].noConflict  = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT
-    return Button._jQueryInterface
-  }
-
-  return Button
-
-})($)
-
-export default Button
diff --git a/assets/javascript/src/carousel.js b/assets/javascript/src/carousel.js
deleted file mode 100755
index 964f7fd..0000000
--- a/assets/javascript/src/carousel.js
+++ /dev/null
@@ -1,524 +0,0 @@
-import $ from 'jquery'
-import Util from './util'
-
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): carousel.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-const Carousel = (() => {
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-
-  const NAME                   = 'carousel'
-  const VERSION                = '4.0.0-beta.2'
-  const DATA_KEY               = 'bs.carousel'
-  const EVENT_KEY              = `.${DATA_KEY}`
-  const DATA_API_KEY           = '.data-api'
-  const JQUERY_NO_CONFLICT     = $.fn[NAME]
-  const TRANSITION_DURATION    = 600
-  const ARROW_LEFT_KEYCODE     = 37 // KeyboardEvent.which value for left arrow key
-  const ARROW_RIGHT_KEYCODE    = 39 // KeyboardEvent.which value for right arrow key
-  const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch
-
-  const Default = {
-    interval : 5000,
-    keyboard : true,
-    slide    : false,
-    pause    : 'hover',
-    wrap     : true
-  }
-
-  const DefaultType = {
-    interval : '(number|boolean)',
-    keyboard : 'boolean',
-    slide    : '(boolean|string)',
-    pause    : '(string|boolean)',
-    wrap     : 'boolean'
-  }
-
-  const Direction = {
-    NEXT     : 'next',
-    PREV     : 'prev',
-    LEFT     : 'left',
-    RIGHT    : 'right'
-  }
-
-  const Event = {
-    SLIDE          : `slide${EVENT_KEY}`,
-    SLID           : `slid${EVENT_KEY}`,
-    KEYDOWN        : `keydown${EVENT_KEY}`,
-    MOUSEENTER     : `mouseenter${EVENT_KEY}`,
-    MOUSELEAVE     : `mouseleave${EVENT_KEY}`,
-    TOUCHEND       : `touchend${EVENT_KEY}`,
-    LOAD_DATA_API  : `load${EVENT_KEY}${DATA_API_KEY}`,
-    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`
-  }
-
-  const ClassName = {
-    CAROUSEL : 'carousel',
-    ACTIVE   : 'active',
-    SLIDE    : 'slide',
-    RIGHT    : 'carousel-item-right',
-    LEFT     : 'carousel-item-left',
-    NEXT     : 'carousel-item-next',
-    PREV     : 'carousel-item-prev',
-    ITEM     : 'carousel-item'
-  }
-
-  const Selector = {
-    ACTIVE      : '.active',
-    ACTIVE_ITEM : '.active.carousel-item',
-    ITEM        : '.carousel-item',
-    NEXT_PREV   : '.carousel-item-next, .carousel-item-prev',
-    INDICATORS  : '.carousel-indicators',
-    DATA_SLIDE  : '[data-slide], [data-slide-to]',
-    DATA_RIDE   : '[data-ride="carousel"]'
-  }
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Class Definition
-   * ------------------------------------------------------------------------
-   */
-
-  class Carousel {
-
-    constructor(element, config) {
-      this._items             = null
-      this._interval          = null
-      this._activeElement     = null
-
-      this._isPaused          = false
-      this._isSliding         = false
-
-      this.touchTimeout       = null
-
-      this._config            = this._getConfig(config)
-      this._element           = $(element)[0]
-      this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]
-
-      this._addEventListeners()
-    }
-
-
-    // getters
-
-    static get VERSION() {
-      return VERSION
-    }
-
-    static get Default() {
-      return Default
-    }
-
-
-    // public
-
-    next() {
-      if (!this._isSliding) {
-        this._slide(Direction.NEXT)
-      }
-    }
-
-    nextWhenVisible() {
-      // Don't call next when the page isn't visible
-      // or the carousel or its parent isn't visible
-      if (!document.hidden &&
-        ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {
-        this.next()
-      }
-    }
-
-    prev() {
-      if (!this._isSliding) {
-        this._slide(Direction.PREV)
-      }
-    }
-
-    pause(event) {
-      if (!event) {
-        this._isPaused = true
-      }
-
-      if ($(this._element).find(Selector.NEXT_PREV)[0] &&
-        Util.supportsTransitionEnd()) {
-        Util.triggerTransitionEnd(this._element)
-        this.cycle(true)
-      }
-
-      clearInterval(this._interval)
-      this._interval = null
-    }
-
-    cycle(event) {
-      if (!event) {
-        this._isPaused = false
-      }
-
-      if (this._interval) {
-        clearInterval(this._interval)
-        this._interval = null
-      }
-
-      if (this._config.interval && !this._isPaused) {
-        this._interval = setInterval(
-          (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),
-          this._config.interval
-        )
-      }
-    }
-
-    to(index) {
-      this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]
-
-      const activeIndex = this._getItemIndex(this._activeElement)
-
-      if (index > this._items.length - 1 || index < 0) {
-        return
-      }
-
-      if (this._isSliding) {
-        $(this._element).one(Event.SLID, () => this.to(index))
-        return
-      }
-
-      if (activeIndex === index) {
-        this.pause()
-        this.cycle()
-        return
-      }
-
-      const direction = index > activeIndex ?
-        Direction.NEXT :
-        Direction.PREV
-
-      this._slide(direction, this._items[index])
-    }
-
-    dispose() {
-      $(this._element).off(EVENT_KEY)
-      $.removeData(this._element, DATA_KEY)
-
-      this._items             = null
-      this._config            = null
-      this._element           = null
-      this._interval          = null
-      this._isPaused          = null
-      this._isSliding         = null
-      this._activeElement     = null
-      this._indicatorsElement = null
-    }
-
-
-    // private
-
-    _getConfig(config) {
-      config = $.extend({}, Default, config)
-      Util.typeCheckConfig(NAME, config, DefaultType)
-      return config
-    }
-
-    _addEventListeners() {
-      if (this._config.keyboard) {
-        $(this._element)
-          .on(Event.KEYDOWN, (event) => this._keydown(event))
-      }
-
-      if (this._config.pause === 'hover') {
-        $(this._element)
-          .on(Event.MOUSEENTER, (event) => this.pause(event))
-          .on(Event.MOUSELEAVE, (event) => this.cycle(event))
-        if ('ontouchstart' in document.documentElement) {
-          // if it's a touch-enabled device, mouseenter/leave are fired as
-          // part of the mouse compatibility events on first tap - the carousel
-          // would stop cycling until user tapped out of it;
-          // here, we listen for touchend, explicitly pause the carousel
-          // (as if it's the second time we tap on it, mouseenter compat event
-          // is NOT fired) and after a timeout (to allow for mouse compatibility
-          // events to fire) we explicitly restart cycling
-          $(this._element).on(Event.TOUCHEND, () => {
-            this.pause()
-            if (this.touchTimeout) {
-              clearTimeout(this.touchTimeout)
-            }
-            this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)
-          })
-        }
-      }
-    }
-
-    _keydown(event) {
-      if (/input|textarea/i.test(event.target.tagName)) {
-        return
-      }
-
-      switch (event.which) {
-        case ARROW_LEFT_KEYCODE:
-          event.preventDefault()
-          this.prev()
-          break
-        case ARROW_RIGHT_KEYCODE:
-          event.preventDefault()
-          this.next()
-          break
-        default:
-          return
-      }
-    }
-
-    _getItemIndex(element) {
-      this._items = $.makeArray($(element).parent().find(Selector.ITEM))
-      return this._items.indexOf(element)
-    }
-
-    _getItemByDirection(direction, activeElement) {
-      const isNextDirection = direction === Direction.NEXT
-      const isPrevDirection = direction === Direction.PREV
-      const activeIndex     = this._getItemIndex(activeElement)
-      const lastItemIndex   = this._items.length - 1
-      const isGoingToWrap   = isPrevDirection && activeIndex === 0 ||
-                              isNextDirection && activeIndex === lastItemIndex
-
-      if (isGoingToWrap && !this._config.wrap) {
-        return activeElement
-      }
-
-      const delta     = direction === Direction.PREV ? -1 : 1
-      const itemIndex = (activeIndex + delta) % this._items.length
-
-      return itemIndex === -1 ?
-        this._items[this._items.length - 1] : this._items[itemIndex]
-    }
-
-
-    _triggerSlideEvent(relatedTarget, eventDirectionName) {
-      const targetIndex = this._getItemIndex(relatedTarget)
-      const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])
-      const slideEvent = $.Event(Event.SLIDE, {
-        relatedTarget,
-        direction: eventDirectionName,
-        from: fromIndex,
-        to: targetIndex
-      })
-
-      $(this._element).trigger(slideEvent)
-
-      return slideEvent
-    }
-
-    _setActiveIndicatorElement(element) {
-      if (this._indicatorsElement) {
-        $(this._indicatorsElement)
-          .find(Selector.ACTIVE)
-          .removeClass(ClassName.ACTIVE)
-
-        const nextIndicator = this._indicatorsElement.children[
-          this._getItemIndex(element)
-        ]
-
-        if (nextIndicator) {
-          $(nextIndicator).addClass(ClassName.ACTIVE)
-        }
-      }
-    }
-
-    _slide(direction, element) {
-      const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]
-      const activeElementIndex = this._getItemIndex(activeElement)
-      const nextElement   = element || activeElement &&
-        this._getItemByDirection(direction, activeElement)
-      const nextElementIndex = this._getItemIndex(nextElement)
-      const isCycling = Boolean(this._interval)
-
-      let directionalClassName
-      let orderClassName
-      let eventDirectionName
-
-      if (direction === Direction.NEXT) {
-        directionalClassName = ClassName.LEFT
-        orderClassName = ClassName.NEXT
-        eventDirectionName = Direction.LEFT
-      } else {
-        directionalClassName = ClassName.RIGHT
-        orderClassName = ClassName.PREV
-        eventDirectionName = Direction.RIGHT
-      }
-
-      if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {
-        this._isSliding = false
-        return
-      }
-
-      const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)
-      if (slideEvent.isDefaultPrevented()) {
-        return
-      }
-
-      if (!activeElement || !nextElement) {
-        // some weirdness is happening, so we bail
-        return
-      }
-
-      this._isSliding = true
-
-      if (isCycling) {
-        this.pause()
-      }
-
-      this._setActiveIndicatorElement(nextElement)
-
-      const slidEvent = $.Event(Event.SLID, {
-        relatedTarget: nextElement,
-        direction: eventDirectionName,
-        from: activeElementIndex,
-        to: nextElementIndex
-      })
-
-      if (Util.supportsTransitionEnd() &&
-        $(this._element).hasClass(ClassName.SLIDE)) {
-
-        $(nextElement).addClass(orderClassName)
-
-        Util.reflow(nextElement)
-
-        $(activeElement).addClass(directionalClassName)
-        $(nextElement).addClass(directionalClassName)
-
-        $(activeElement)
-          .one(Util.TRANSITION_END, () => {
-            $(nextElement)
-              .removeClass(`${directionalClassName} ${orderClassName}`)
-              .addClass(ClassName.ACTIVE)
-
-            $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)
-
-            this._isSliding = false
-
-            setTimeout(() => $(this._element).trigger(slidEvent), 0)
-
-          })
-          .emulateTransitionEnd(TRANSITION_DURATION)
-
-      } else {
-        $(activeElement).removeClass(ClassName.ACTIVE)
-        $(nextElement).addClass(ClassName.ACTIVE)
-
-        this._isSliding = false
-        $(this._element).trigger(slidEvent)
-      }
-
-      if (isCycling) {
-        this.cycle()
-      }
-    }
-
-
-    // static
-
-    static _jQueryInterface(config) {
-      return this.each(function () {
-        let data      = $(this).data(DATA_KEY)
-        const _config = $.extend({}, Default, $(this).data())
-
-        if (typeof config === 'object') {
-          $.extend(_config, config)
-        }
-
-        const action = typeof config === 'string' ? config : _config.slide
-
-        if (!data) {
-          data = new Carousel(this, _config)
-          $(this).data(DATA_KEY, data)
-        }
-
-        if (typeof config === 'number') {
-          data.to(config)
-        } else if (typeof action === 'string') {
-          if (typeof data[action] === 'undefined') {
-            throw new Error(`No method named "${action}"`)
-          }
-          data[action]()
-        } else if (_config.interval) {
-          data.pause()
-          data.cycle()
-        }
-      })
-    }
-
-    static _dataApiClickHandler(event) {
-      const selector = Util.getSelectorFromElement(this)
-
-      if (!selector) {
-        return
-      }
-
-      const target = $(selector)[0]
-
-      if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {
-        return
-      }
-
-      const config     = $.extend({}, $(target).data(), $(this).data())
-      const slideIndex = this.getAttribute('data-slide-to')
-
-      if (slideIndex) {
-        config.interval = false
-      }
-
-      Carousel._jQueryInterface.call($(target), config)
-
-      if (slideIndex) {
-        $(target).data(DATA_KEY).to(slideIndex)
-      }
-
-      event.preventDefault()
-    }
-
-  }
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-  $(document)
-    .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)
-
-  $(window).on(Event.LOAD_DATA_API, () => {
-    $(Selector.DATA_RIDE).each(function () {
-      const $carousel = $(this)
-      Carousel._jQueryInterface.call($carousel, $carousel.data())
-    })
-  })
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME]             = Carousel._jQueryInterface
-  $.fn[NAME].Constructor = Carousel
-  $.fn[NAME].noConflict  = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT
-    return Carousel._jQueryInterface
-  }
-
-  return Carousel
-
-})($)
-
-export default Carousel
diff --git a/assets/javascript/src/collapse.js b/assets/javascript/src/collapse.js
deleted file mode 100755
index 8e84d7b..0000000
--- a/assets/javascript/src/collapse.js
+++ /dev/null
@@ -1,409 +0,0 @@
-import $ from 'jquery'
-import Util from './util'
-
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): collapse.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-const Collapse = (() => {
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-
-  const NAME                = 'collapse'
-  const VERSION             = '4.0.0-beta.2'
-  const DATA_KEY            = 'bs.collapse'
-  const EVENT_KEY           = `.${DATA_KEY}`
-  const DATA_API_KEY        = '.data-api'
-  const JQUERY_NO_CONFLICT  = $.fn[NAME]
-  const TRANSITION_DURATION = 600
-
-  const Default = {
-    toggle : true,
-    parent : ''
-  }
-
-  const DefaultType = {
-    toggle : 'boolean',
-    parent : '(string|element)'
-  }
-
-  const Event = {
-    SHOW           : `show${EVENT_KEY}`,
-    SHOWN          : `shown${EVENT_KEY}`,
-    HIDE           : `hide${EVENT_KEY}`,
-    HIDDEN         : `hidden${EVENT_KEY}`,
-    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`
-  }
-
-  const ClassName = {
-    SHOW       : 'show',
-    COLLAPSE   : 'collapse',
-    COLLAPSING : 'collapsing',
-    COLLAPSED  : 'collapsed'
-  }
-
-  const Dimension = {
-    WIDTH  : 'width',
-    HEIGHT : 'height'
-  }
-
-  const Selector = {
-    ACTIVES     : '.show, .collapsing',
-    DATA_TOGGLE : '[data-toggle="collapse"]'
-  }
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Class Definition
-   * ------------------------------------------------------------------------
-   */
-
-  class Collapse {
-
-    constructor(element, config) {
-      this._isTransitioning = false
-      this._element         = element
-      this._config          = this._getConfig(config)
-      this._triggerArray    = $.makeArray($(
-        `[data-toggle="collapse"][href="#${element.id}"],` +
-        `[data-toggle="collapse"][data-target="#${element.id}"]`
-      ))
-      const tabToggles = $(Selector.DATA_TOGGLE)
-      for (let i = 0; i < tabToggles.length; i++) {
-        const elem = tabToggles[i]
-        const selector = Util.getSelectorFromElement(elem)
-        if (selector !== null && $(selector).filter(element).length > 0) {
-          this._triggerArray.push(elem)
-        }
-      }
-
-      this._parent = this._config.parent ? this._getParent() : null
-
-      if (!this._config.parent) {
-        this._addAriaAndCollapsedClass(this._element, this._triggerArray)
-      }
-
-      if (this._config.toggle) {
-        this.toggle()
-      }
-    }
-
-
-    // getters
-
-    static get VERSION() {
-      return VERSION
-    }
-
-    static get Default() {
-      return Default
-    }
-
-
-    // public
-
-    toggle() {
-      if ($(this._element).hasClass(ClassName.SHOW)) {
-        this.hide()
-      } else {
-        this.show()
-      }
-    }
-
-    show() {
-      if (this._isTransitioning ||
-        $(this._element).hasClass(ClassName.SHOW)) {
-        return
-      }
-
-      let actives
-      let activesData
-
-      if (this._parent) {
-        actives = $.makeArray($(this._parent).children().children(Selector.ACTIVES))
-        if (!actives.length) {
-          actives = null
-        }
-      }
-
-      if (actives) {
-        activesData = $(actives).data(DATA_KEY)
-        if (activesData && activesData._isTransitioning) {
-          return
-        }
-      }
-
-      const startEvent = $.Event(Event.SHOW)
-      $(this._element).trigger(startEvent)
-      if (startEvent.isDefaultPrevented()) {
-        return
-      }
-
-      if (actives) {
-        Collapse._jQueryInterface.call($(actives), 'hide')
-        if (!activesData) {
-          $(actives).data(DATA_KEY, null)
-        }
-      }
-
-      const dimension = this._getDimension()
-
-      $(this._element)
-        .removeClass(ClassName.COLLAPSE)
-        .addClass(ClassName.COLLAPSING)
-
-      this._element.style[dimension] = 0
-
-      if (this._triggerArray.length) {
-        $(this._triggerArray)
-          .removeClass(ClassName.COLLAPSED)
-          .attr('aria-expanded', true)
-      }
-
-      this.setTransitioning(true)
-
-      const complete = () => {
-        $(this._element)
-          .removeClass(ClassName.COLLAPSING)
-          .addClass(ClassName.COLLAPSE)
-          .addClass(ClassName.SHOW)
-
-        this._element.style[dimension] = ''
-
-        this.setTransitioning(false)
-
-        $(this._element).trigger(Event.SHOWN)
-      }
-
-      if (!Util.supportsTransitionEnd()) {
-        complete()
-        return
-      }
-
-      const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)
-      const scrollSize           = `scroll${capitalizedDimension}`
-
-      $(this._element)
-        .one(Util.TRANSITION_END, complete)
-        .emulateTransitionEnd(TRANSITION_DURATION)
-
-      this._element.style[dimension] = `${this._element[scrollSize]}px`
-    }
-
-    hide() {
-      if (this._isTransitioning ||
-        !$(this._element).hasClass(ClassName.SHOW)) {
-        return
-      }
-
-      const startEvent = $.Event(Event.HIDE)
-      $(this._element).trigger(startEvent)
-      if (startEvent.isDefaultPrevented()) {
-        return
-      }
-
-      const dimension       = this._getDimension()
-
-      this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`
-
-      Util.reflow(this._element)
-
-      $(this._element)
-        .addClass(ClassName.COLLAPSING)
-        .removeClass(ClassName.COLLAPSE)
-        .removeClass(ClassName.SHOW)
-
-      if (this._triggerArray.length) {
-        for (let i = 0; i < this._triggerArray.length; i++) {
-          const trigger = this._triggerArray[i]
-          const selector = Util.getSelectorFromElement(trigger)
-          if (selector !== null) {
-            const $elem = $(selector)
-            if (!$elem.hasClass(ClassName.SHOW)) {
-              $(trigger).addClass(ClassName.COLLAPSED)
-                   .attr('aria-expanded', false)
-            }
-          }
-        }
-      }
-
-      this.setTransitioning(true)
-
-      const complete = () => {
-        this.setTransitioning(false)
-        $(this._element)
-          .removeClass(ClassName.COLLAPSING)
-          .addClass(ClassName.COLLAPSE)
-          .trigger(Event.HIDDEN)
-      }
-
-      this._element.style[dimension] = ''
-
-      if (!Util.supportsTransitionEnd()) {
-        complete()
-        return
-      }
-
-      $(this._element)
-        .one(Util.TRANSITION_END, complete)
-        .emulateTransitionEnd(TRANSITION_DURATION)
-    }
-
-    setTransitioning(isTransitioning) {
-      this._isTransitioning = isTransitioning
-    }
-
-    dispose() {
-      $.removeData(this._element, DATA_KEY)
-
-      this._config          = null
-      this._parent          = null
-      this._element         = null
-      this._triggerArray    = null
-      this._isTransitioning = null
-    }
-
-
-    // private
-
-    _getConfig(config) {
-      config = $.extend({}, Default, config)
-      config.toggle = Boolean(config.toggle) // coerce string values
-      Util.typeCheckConfig(NAME, config, DefaultType)
-      return config
-    }
-
-    _getDimension() {
-      const hasWidth = $(this._element).hasClass(Dimension.WIDTH)
-      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT
-    }
-
-    _getParent() {
-      let parent = null
-      if (Util.isElement(this._config.parent)) {
-        parent = this._config.parent
-
-        // it's a jQuery object
-        if (typeof this._config.parent.jquery !== 'undefined') {
-          parent = this._config.parent[0]
-        }
-      } else {
-        parent = $(this._config.parent)[0]
-      }
-
-      const selector =
-        `[data-toggle="collapse"][data-parent="${this._config.parent}"]`
-
-      $(parent).find(selector).each((i, element) => {
-        this._addAriaAndCollapsedClass(
-          Collapse._getTargetFromElement(element),
-          [element]
-        )
-      })
-
-      return parent
-    }
-
-    _addAriaAndCollapsedClass(element, triggerArray) {
-      if (element) {
-        const isOpen = $(element).hasClass(ClassName.SHOW)
-
-        if (triggerArray.length) {
-          $(triggerArray)
-            .toggleClass(ClassName.COLLAPSED, !isOpen)
-            .attr('aria-expanded', isOpen)
-        }
-      }
-    }
-
-
-    // static
-
-    static _getTargetFromElement(element) {
-      const selector = Util.getSelectorFromElement(element)
-      return selector ? $(selector)[0] : null
-    }
-
-    static _jQueryInterface(config) {
-      return this.each(function () {
-        const $this   = $(this)
-        let data      = $this.data(DATA_KEY)
-        const _config = $.extend(
-          {},
-          Default,
-          $this.data(),
-          typeof config === 'object' && config
-        )
-
-        if (!data && _config.toggle && /show|hide/.test(config)) {
-          _config.toggle = false
-        }
-
-        if (!data) {
-          data = new Collapse(this, _config)
-          $this.data(DATA_KEY, data)
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error(`No method named "${config}"`)
-          }
-          data[config]()
-        }
-      })
-    }
-
-  }
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
-    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
-    if (event.currentTarget.tagName === 'A') {
-      event.preventDefault()
-    }
-
-    const $trigger = $(this)
-    const selector = Util.getSelectorFromElement(this)
-    $(selector).each(function () {
-      const $target = $(this)
-      const data    = $target.data(DATA_KEY)
-      const config  = data ? 'toggle' : $trigger.data()
-      Collapse._jQueryInterface.call($target, config)
-    })
-  })
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME]             = Collapse._jQueryInterface
-  $.fn[NAME].Constructor = Collapse
-  $.fn[NAME].noConflict  = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT
-    return Collapse._jQueryInterface
-  }
-
-  return Collapse
-
-})($)
-
-export default Collapse
diff --git a/assets/javascript/src/dropdown.js b/assets/javascript/src/dropdown.js
deleted file mode 100755
index 8fdddd6..0000000
--- a/assets/javascript/src/dropdown.js
+++ /dev/null
@@ -1,450 +0,0 @@
-import $ from 'jquery'
-import Popper from 'popper.js'
-import Util from './util'
-
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): dropdown.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-const Dropdown = (() => {
-
-  /**
-   * Check for Popper dependency
-   * Popper - https://popper.js.org
-   */
-  if (typeof Popper === 'undefined') {
-    throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)')
-  }
-
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-
-  const NAME                     = 'dropdown'
-  const VERSION                  = '4.0.0-beta.2'
-  const DATA_KEY                 = 'bs.dropdown'
-  const EVENT_KEY                = `.${DATA_KEY}`
-  const DATA_API_KEY             = '.data-api'
-  const JQUERY_NO_CONFLICT       = $.fn[NAME]
-  const ESCAPE_KEYCODE           = 27 // KeyboardEvent.which value for Escape (Esc) key
-  const SPACE_KEYCODE            = 32 // KeyboardEvent.which value for space key
-  const TAB_KEYCODE              = 9 // KeyboardEvent.which value for tab key
-  const ARROW_UP_KEYCODE         = 38 // KeyboardEvent.which value for up arrow key
-  const ARROW_DOWN_KEYCODE       = 40 // KeyboardEvent.which value for down arrow key
-  const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)
-  const REGEXP_KEYDOWN           = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)
-
-  const Event = {
-    HIDE             : `hide${EVENT_KEY}`,
-    HIDDEN           : `hidden${EVENT_KEY}`,
-    SHOW             : `show${EVENT_KEY}`,
-    SHOWN            : `shown${EVENT_KEY}`,
-    CLICK            : `click${EVENT_KEY}`,
-    CLICK_DATA_API   : `click${EVENT_KEY}${DATA_API_KEY}`,
-    KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,
-    KEYUP_DATA_API   : `keyup${EVENT_KEY}${DATA_API_KEY}`
-  }
-
-  const ClassName = {
-    DISABLED  : 'disabled',
-    SHOW      : 'show',
-    DROPUP    : 'dropup',
-    MENURIGHT : 'dropdown-menu-right',
-    MENULEFT  : 'dropdown-menu-left'
-  }
-
-  const Selector = {
-    DATA_TOGGLE   : '[data-toggle="dropdown"]',
-    FORM_CHILD    : '.dropdown form',
-    MENU          : '.dropdown-menu',
-    NAVBAR_NAV    : '.navbar-nav',
-    VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled)'
-  }
-
-  const AttachmentMap = {
-    TOP       : 'top-start',
-    TOPEND    : 'top-end',
-    BOTTOM    : 'bottom-start',
-    BOTTOMEND : 'bottom-end'
-  }
-
-  const Default = {
-    offset      : 0,
-    flip        : true
-  }
-
-  const DefaultType = {
-    offset      : '(number|string|function)',
-    flip        : 'boolean'
-  }
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Class Definition
-   * ------------------------------------------------------------------------
-   */
-
-  class Dropdown {
-
-    constructor(element, config) {
-      this._element  = element
-      this._popper   = null
-      this._config   = this._getConfig(config)
-      this._menu     = this._getMenuElement()
-      this._inNavbar = this._detectNavbar()
-
-      this._addEventListeners()
-    }
-
-
-    // getters
-
-    static get VERSION() {
-      return VERSION
-    }
-
-    static get Default() {
-      return Default
-    }
-
-    static get DefaultType() {
-      return DefaultType
-    }
-
-    // public
-
-    toggle() {
-      if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {
-        return
-      }
-
-      const parent   = Dropdown._getParentFromElement(this._element)
-      const isActive = $(this._menu).hasClass(ClassName.SHOW)
-
-      Dropdown._clearMenus()
-
-      if (isActive) {
-        return
-      }
-
-      const relatedTarget = {
-        relatedTarget : this._element
-      }
-      const showEvent = $.Event(Event.SHOW, relatedTarget)
-
-      $(parent).trigger(showEvent)
-
-      if (showEvent.isDefaultPrevented()) {
-        return
-      }
-
-      let element = this._element
-      // for dropup with alignment we use the parent as popper container
-      if ($(parent).hasClass(ClassName.DROPUP)) {
-        if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {
-          element = parent
-        }
-      }
-      this._popper = new Popper(element, this._menu, this._getPopperConfig())
-
-      // if this is a touch-enabled device we add extra
-      // empty mouseover listeners to the body's immediate children;
-      // only needed because of broken event delegation on iOS
-      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
-      if ('ontouchstart' in document.documentElement &&
-         !$(parent).closest(Selector.NAVBAR_NAV).length) {
-        $('body').children().on('mouseover', null, $.noop)
-      }
-
-      this._element.focus()
-      this._element.setAttribute('aria-expanded', true)
-
-      $(this._menu).toggleClass(ClassName.SHOW)
-      $(parent)
-        .toggleClass(ClassName.SHOW)
-        .trigger($.Event(Event.SHOWN, relatedTarget))
-    }
-
-    dispose() {
-      $.removeData(this._element, DATA_KEY)
-      $(this._element).off(EVENT_KEY)
-      this._element = null
-      this._menu = null
-      if (this._popper !== null) {
-        this._popper.destroy()
-      }
-      this._popper = null
-    }
-
-    update() {
-      this._inNavbar = this._detectNavbar()
-      if (this._popper !== null) {
-        this._popper.scheduleUpdate()
-      }
-    }
-
-    // private
-
-    _addEventListeners() {
-      $(this._element).on(Event.CLICK, (event) => {
-        event.preventDefault()
-        event.stopPropagation()
-        this.toggle()
-      })
-    }
-
-    _getConfig(config) {
-      config = $.extend(
-        {},
-        this.constructor.Default,
-        $(this._element).data(),
-        config
-      )
-
-      Util.typeCheckConfig(
-        NAME,
-        config,
-        this.constructor.DefaultType
-      )
-
-      return config
-    }
-
-    _getMenuElement() {
-      if (!this._menu) {
-        const parent = Dropdown._getParentFromElement(this._element)
-        this._menu = $(parent).find(Selector.MENU)[0]
-      }
-      return this._menu
-    }
-
-    _getPlacement() {
-      const $parentDropdown = $(this._element).parent()
-      let placement = AttachmentMap.BOTTOM
-
-      // Handle dropup
-      if ($parentDropdown.hasClass(ClassName.DROPUP)) {
-        placement = AttachmentMap.TOP
-        if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
-          placement = AttachmentMap.TOPEND
-        }
-      } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
-        placement = AttachmentMap.BOTTOMEND
-      }
-      return placement
-    }
-
-    _detectNavbar() {
-      return $(this._element).closest('.navbar').length > 0
-    }
-
-    _getPopperConfig() {
-      const offsetConf = {}
-      if (typeof this._config.offset === 'function') {
-        offsetConf.fn = (data) => {
-          data.offsets = $.extend({}, data.offsets, this._config.offset(data.offsets) || {})
-          return data
-        }
-      } else {
-        offsetConf.offset = this._config.offset
-      }
-      const popperConfig = {
-        placement : this._getPlacement(),
-        modifiers : {
-          offset : offsetConf,
-          flip : {
-            enabled : this._config.flip
-          }
-        }
-      }
-
-      // Disable Popper.js for Dropdown in Navbar
-      if (this._inNavbar) {
-        popperConfig.modifiers.applyStyle = {
-          enabled: !this._inNavbar
-        }
-      }
-      return popperConfig
-    }
-
-    // static
-
-    static _jQueryInterface(config) {
-      return this.each(function () {
-        let data = $(this).data(DATA_KEY)
-        const _config = typeof config === 'object' ? config : null
-
-        if (!data) {
-          data = new Dropdown(this, _config)
-          $(this).data(DATA_KEY, data)
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error(`No method named "${config}"`)
-          }
-          data[config]()
-        }
-      })
-    }
-
-    static _clearMenus(event) {
-      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||
-        event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
-        return
-      }
-
-      const toggles = $.makeArray($(Selector.DATA_TOGGLE))
-      for (let i = 0; i < toggles.length; i++) {
-        const parent        = Dropdown._getParentFromElement(toggles[i])
-        const context       = $(toggles[i]).data(DATA_KEY)
-        const relatedTarget = {
-          relatedTarget : toggles[i]
-        }
-
-        if (!context) {
-          continue
-        }
-
-        const dropdownMenu = context._menu
-        if (!$(parent).hasClass(ClassName.SHOW)) {
-          continue
-        }
-
-        if (event && (event.type === 'click' &&
-            /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE)
-            && $.contains(parent, event.target)) {
-          continue
-        }
-
-        const hideEvent = $.Event(Event.HIDE, relatedTarget)
-        $(parent).trigger(hideEvent)
-        if (hideEvent.isDefaultPrevented()) {
-          continue
-        }
-
-        // if this is a touch-enabled device we remove the extra
-        // empty mouseover listeners we added for iOS support
-        if ('ontouchstart' in document.documentElement) {
-          $('body').children().off('mouseover', null, $.noop)
-        }
-
-        toggles[i].setAttribute('aria-expanded', 'false')
-
-        $(dropdownMenu).removeClass(ClassName.SHOW)
-        $(parent)
-          .removeClass(ClassName.SHOW)
-          .trigger($.Event(Event.HIDDEN, relatedTarget))
-      }
-    }
-
-    static _getParentFromElement(element) {
-      let parent
-      const selector = Util.getSelectorFromElement(element)
-
-      if (selector) {
-        parent = $(selector)[0]
-      }
-
-      return parent || element.parentNode
-    }
-
-    static _dataApiKeydownHandler(event) {
-      if (!REGEXP_KEYDOWN.test(event.which) || /button/i.test(event.target.tagName) && event.which === SPACE_KEYCODE ||
-         /input|textarea/i.test(event.target.tagName)) {
-        return
-      }
-
-      event.preventDefault()
-      event.stopPropagation()
-
-      if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
-        return
-      }
-
-      const parent   = Dropdown._getParentFromElement(this)
-      const isActive = $(parent).hasClass(ClassName.SHOW)
-
-      if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||
-           isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
-
-        if (event.which === ESCAPE_KEYCODE) {
-          const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]
-          $(toggle).trigger('focus')
-        }
-
-        $(this).trigger('click')
-        return
-      }
-
-      const items = $(parent).find(Selector.VISIBLE_ITEMS).get()
-
-      if (!items.length) {
-        return
-      }
-
-      let index = items.indexOf(event.target)
-
-      if (event.which === ARROW_UP_KEYCODE && index > 0) { // up
-        index--
-      }
-
-      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // down
-        index++
-      }
-
-      if (index < 0) {
-        index = 0
-      }
-
-      items[index].focus()
-    }
-
-  }
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-  $(document)
-    .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE,  Dropdown._dataApiKeydownHandler)
-    .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)
-    .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)
-    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
-      event.preventDefault()
-      event.stopPropagation()
-      Dropdown._jQueryInterface.call($(this), 'toggle')
-    })
-    .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {
-      e.stopPropagation()
-    })
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME]             = Dropdown._jQueryInterface
-  $.fn[NAME].Constructor = Dropdown
-  $.fn[NAME].noConflict  = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT
-    return Dropdown._jQueryInterface
-  }
-
-  return Dropdown
-
-})($, Popper)
-
-export default Dropdown
diff --git a/assets/javascript/src/index.js b/assets/javascript/src/index.js
deleted file mode 100755
index f30b94c..0000000
--- a/assets/javascript/src/index.js
+++ /dev/null
@@ -1,50 +0,0 @@
-import $ from 'jquery'
-import Alert from './alert'
-import Button from './button'
-import Carousel from './carousel'
-import Collapse from './collapse'
-import Dropdown from './dropdown'
-import Modal from './modal'
-import Popover from './popover'
-import Scrollspy from './scrollspy'
-import Tab from './tab'
-import Tooltip from './tooltip'
-import Util from './util'
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-alpha.6): index.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-(() => {
-  if (typeof $ === 'undefined') {
-    throw new Error('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.')
-  }
-
-  const version = $.fn.jquery.split(' ')[0].split('.')
-  const minMajor = 1
-  const ltMajor  = 2
-  const minMinor = 9
-  const minPatch = 1
-  const maxMajor = 4
-
-  if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
-    throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')
-  }
-})($)
-
-export {
-  Util,
-  Alert,
-  Button,
-  Carousel,
-  Collapse,
-  Dropdown,
-  Modal,
-  Popover,
-  Scrollspy,
-  Tab,
-  Tooltip
-}
diff --git a/assets/javascript/src/modal.js b/assets/javascript/src/modal.js
deleted file mode 100755
index 07fdc9f..0000000
--- a/assets/javascript/src/modal.js
+++ /dev/null
@@ -1,590 +0,0 @@
-import $ from 'jquery'
-import Util from './util'
-
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): modal.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-const Modal = (() => {
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-
-  const NAME                         = 'modal'
-  const VERSION                      = '4.0.0-beta.2'
-  const DATA_KEY                     = 'bs.modal'
-  const EVENT_KEY                    = `.${DATA_KEY}`
-  const DATA_API_KEY                 = '.data-api'
-  const JQUERY_NO_CONFLICT           = $.fn[NAME]
-  const TRANSITION_DURATION          = 300
-  const BACKDROP_TRANSITION_DURATION = 150
-  const ESCAPE_KEYCODE               = 27 // KeyboardEvent.which value for Escape (Esc) key
-
-  const Default = {
-    backdrop : true,
-    keyboard : true,
-    focus    : true,
-    show     : true
-  }
-
-  const DefaultType = {
-    backdrop : '(boolean|string)',
-    keyboard : 'boolean',
-    focus    : 'boolean',
-    show     : 'boolean'
-  }
-
-  const Event = {
-    HIDE              : `hide${EVENT_KEY}`,
-    HIDDEN            : `hidden${EVENT_KEY}`,
-    SHOW              : `show${EVENT_KEY}`,
-    SHOWN             : `shown${EVENT_KEY}`,
-    FOCUSIN           : `focusin${EVENT_KEY}`,
-    RESIZE            : `resize${EVENT_KEY}`,
-    CLICK_DISMISS     : `click.dismiss${EVENT_KEY}`,
-    KEYDOWN_DISMISS   : `keydown.dismiss${EVENT_KEY}`,
-    MOUSEUP_DISMISS   : `mouseup.dismiss${EVENT_KEY}`,
-    MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,
-    CLICK_DATA_API    : `click${EVENT_KEY}${DATA_API_KEY}`
-  }
-
-  const ClassName = {
-    SCROLLBAR_MEASURER : 'modal-scrollbar-measure',
-    BACKDROP           : 'modal-backdrop',
-    OPEN               : 'modal-open',
-    FADE               : 'fade',
-    SHOW               : 'show'
-  }
-
-  const Selector = {
-    DIALOG             : '.modal-dialog',
-    DATA_TOGGLE        : '[data-toggle="modal"]',
-    DATA_DISMISS       : '[data-dismiss="modal"]',
-    FIXED_CONTENT      : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
-    STICKY_CONTENT     : '.sticky-top',
-    NAVBAR_TOGGLER     : '.navbar-toggler'
-  }
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Class Definition
-   * ------------------------------------------------------------------------
-   */
-
-  class Modal {
-
-    constructor(element, config) {
-      this._config              = this._getConfig(config)
-      this._element             = element
-      this._dialog              = $(element).find(Selector.DIALOG)[0]
-      this._backdrop            = null
-      this._isShown             = false
-      this._isBodyOverflowing   = false
-      this._ignoreBackdropClick = false
-      this._originalBodyPadding = 0
-      this._scrollbarWidth      = 0
-    }
-
-
-    // getters
-
-    static get VERSION() {
-      return VERSION
-    }
-
-    static get Default() {
-      return Default
-    }
-
-
-    // public
-
-    toggle(relatedTarget) {
-      return this._isShown ? this.hide() : this.show(relatedTarget)
-    }
-
-    show(relatedTarget) {
-      if (this._isTransitioning || this._isShown) {
-        return
-      }
-
-      if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {
-        this._isTransitioning = true
-      }
-
-      const showEvent = $.Event(Event.SHOW, {
-        relatedTarget
-      })
-
-      $(this._element).trigger(showEvent)
-
-      if (this._isShown || showEvent.isDefaultPrevented()) {
-        return
-      }
-
-      this._isShown = true
-
-      this._checkScrollbar()
-      this._setScrollbar()
-
-      this._adjustDialog()
-
-      $(document.body).addClass(ClassName.OPEN)
-
-      this._setEscapeEvent()
-      this._setResizeEvent()
-
-      $(this._element).on(
-        Event.CLICK_DISMISS,
-        Selector.DATA_DISMISS,
-        (event) => this.hide(event)
-      )
-
-      $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {
-        $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {
-          if ($(event.target).is(this._element)) {
-            this._ignoreBackdropClick = true
-          }
-        })
-      })
-
-      this._showBackdrop(() => this._showElement(relatedTarget))
-    }
-
-    hide(event) {
-      if (event) {
-        event.preventDefault()
-      }
-
-      if (this._isTransitioning || !this._isShown) {
-        return
-      }
-
-      const hideEvent = $.Event(Event.HIDE)
-
-      $(this._element).trigger(hideEvent)
-
-      if (!this._isShown || hideEvent.isDefaultPrevented()) {
-        return
-      }
-
-      this._isShown = false
-
-      const transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)
-
-      if (transition) {
-        this._isTransitioning = true
-      }
-
-      this._setEscapeEvent()
-      this._setResizeEvent()
-
-      $(document).off(Event.FOCUSIN)
-
-      $(this._element).removeClass(ClassName.SHOW)
-
-      $(this._element).off(Event.CLICK_DISMISS)
-      $(this._dialog).off(Event.MOUSEDOWN_DISMISS)
-
-      if (transition) {
-
-        $(this._element)
-          .one(Util.TRANSITION_END, (event) => this._hideModal(event))
-          .emulateTransitionEnd(TRANSITION_DURATION)
-      } else {
-        this._hideModal()
-      }
-    }
-
-    dispose() {
-      $.removeData(this._element, DATA_KEY)
-
-      $(window, document, this._element, this._backdrop).off(EVENT_KEY)
-
-      this._config              = null
-      this._element             = null
-      this._dialog              = null
-      this._backdrop            = null
-      this._isShown             = null
-      this._isBodyOverflowing   = null
-      this._ignoreBackdropClick = null
-      this._scrollbarWidth      = null
-    }
-
-    handleUpdate() {
-      this._adjustDialog()
-    }
-
-    // private
-
-    _getConfig(config) {
-      config = $.extend({}, Default, config)
-      Util.typeCheckConfig(NAME, config, DefaultType)
-      return config
-    }
-
-    _showElement(relatedTarget) {
-      const transition = Util.supportsTransitionEnd() &&
-        $(this._element).hasClass(ClassName.FADE)
-
-      if (!this._element.parentNode ||
-         this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
-        // don't move modals dom position
-        document.body.appendChild(this._element)
-      }
-
-      this._element.style.display = 'block'
-      this._element.removeAttribute('aria-hidden')
-      this._element.scrollTop = 0
-
-      if (transition) {
-        Util.reflow(this._element)
-      }
-
-      $(this._element).addClass(ClassName.SHOW)
-
-      if (this._config.focus) {
-        this._enforceFocus()
-      }
-
-      const shownEvent = $.Event(Event.SHOWN, {
-        relatedTarget
-      })
-
-      const transitionComplete = () => {
-        if (this._config.focus) {
-          this._element.focus()
-        }
-        this._isTransitioning = false
-        $(this._element).trigger(shownEvent)
-      }
-
-      if (transition) {
-        $(this._dialog)
-          .one(Util.TRANSITION_END, transitionComplete)
-          .emulateTransitionEnd(TRANSITION_DURATION)
-      } else {
-        transitionComplete()
-      }
-    }
-
-    _enforceFocus() {
-      $(document)
-        .off(Event.FOCUSIN) // guard against infinite focus loop
-        .on(Event.FOCUSIN, (event) => {
-          if (document !== event.target &&
-              this._element !== event.target &&
-              !$(this._element).has(event.target).length) {
-            this._element.focus()
-          }
-        })
-    }
-
-    _setEscapeEvent() {
-      if (this._isShown && this._config.keyboard) {
-        $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {
-          if (event.which === ESCAPE_KEYCODE) {
-            event.preventDefault()
-            this.hide()
-          }
-        })
-
-      } else if (!this._isShown) {
-        $(this._element).off(Event.KEYDOWN_DISMISS)
-      }
-    }
-
-    _setResizeEvent() {
-      if (this._isShown) {
-        $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))
-      } else {
-        $(window).off(Event.RESIZE)
-      }
-    }
-
-    _hideModal() {
-      this._element.style.display = 'none'
-      this._element.setAttribute('aria-hidden', true)
-      this._isTransitioning = false
-      this._showBackdrop(() => {
-        $(document.body).removeClass(ClassName.OPEN)
-        this._resetAdjustments()
-        this._resetScrollbar()
-        $(this._element).trigger(Event.HIDDEN)
-      })
-    }
-
-    _removeBackdrop() {
-      if (this._backdrop) {
-        $(this._backdrop).remove()
-        this._backdrop = null
-      }
-    }
-
-    _showBackdrop(callback) {
-      const animate = $(this._element).hasClass(ClassName.FADE) ?
-        ClassName.FADE : ''
-
-      if (this._isShown && this._config.backdrop) {
-        const doAnimate = Util.supportsTransitionEnd() && animate
-
-        this._backdrop = document.createElement('div')
-        this._backdrop.className = ClassName.BACKDROP
-
-        if (animate) {
-          $(this._backdrop).addClass(animate)
-        }
-
-        $(this._backdrop).appendTo(document.body)
-
-        $(this._element).on(Event.CLICK_DISMISS, (event) => {
-          if (this._ignoreBackdropClick) {
-            this._ignoreBackdropClick = false
-            return
-          }
-          if (event.target !== event.currentTarget) {
-            return
-          }
-          if (this._config.backdrop === 'static') {
-            this._element.focus()
-          } else {
-            this.hide()
-          }
-        })
-
-        if (doAnimate) {
-          Util.reflow(this._backdrop)
-        }
-
-        $(this._backdrop).addClass(ClassName.SHOW)
-
-        if (!callback) {
-          return
-        }
-
-        if (!doAnimate) {
-          callback()
-          return
-        }
-
-        $(this._backdrop)
-          .one(Util.TRANSITION_END, callback)
-          .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)
-
-      } else if (!this._isShown && this._backdrop) {
-        $(this._backdrop).removeClass(ClassName.SHOW)
-
-        const callbackRemove = () => {
-          this._removeBackdrop()
-          if (callback) {
-            callback()
-          }
-        }
-
-        if (Util.supportsTransitionEnd() &&
-           $(this._element).hasClass(ClassName.FADE)) {
-          $(this._backdrop)
-            .one(Util.TRANSITION_END, callbackRemove)
-            .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)
-        } else {
-          callbackRemove()
-        }
-
-      } else if (callback) {
-        callback()
-      }
-    }
-
-
-    // ----------------------------------------------------------------------
-    // the following methods are used to handle overflowing modals
-    // todo (fat): these should probably be refactored out of modal.js
-    // ----------------------------------------------------------------------
-
-    _adjustDialog() {
-      const isModalOverflowing =
-        this._element.scrollHeight > document.documentElement.clientHeight
-
-      if (!this._isBodyOverflowing && isModalOverflowing) {
-        this._element.style.paddingLeft = `${this._scrollbarWidth}px`
-      }
-
-      if (this._isBodyOverflowing && !isModalOverflowing) {
-        this._element.style.paddingRight = `${this._scrollbarWidth}px`
-      }
-    }
-
-    _resetAdjustments() {
-      this._element.style.paddingLeft = ''
-      this._element.style.paddingRight = ''
-    }
-
-    _checkScrollbar() {
-      const rect = document.body.getBoundingClientRect()
-      this._isBodyOverflowing = rect.left + rect.right < window.innerWidth
-      this._scrollbarWidth = this._getScrollbarWidth()
-    }
-
-    _setScrollbar() {
-      if (this._isBodyOverflowing) {
-        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
-        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
-
-        // Adjust fixed content padding
-        $(Selector.FIXED_CONTENT).each((index, element) => {
-          const actualPadding = $(element)[0].style.paddingRight
-          const calculatedPadding = $(element).css('padding-right')
-          $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)
-        })
-
-        // Adjust sticky content margin
-        $(Selector.STICKY_CONTENT).each((index, element) => {
-          const actualMargin = $(element)[0].style.marginRight
-          const calculatedMargin = $(element).css('margin-right')
-          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)
-        })
-
-        // Adjust navbar-toggler margin
-        $(Selector.NAVBAR_TOGGLER).each((index, element) => {
-          const actualMargin = $(element)[0].style.marginRight
-          const calculatedMargin = $(element).css('margin-right')
-          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)
-        })
-
-        // Adjust body padding
-        const actualPadding = document.body.style.paddingRight
-        const calculatedPadding = $('body').css('padding-right')
-        $('body').data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)
-      }
-    }
-
-    _resetScrollbar() {
-      // Restore fixed content padding
-      $(Selector.FIXED_CONTENT).each((index, element) => {
-        const padding = $(element).data('padding-right')
-        if (typeof padding !== 'undefined') {
-          $(element).css('padding-right', padding).removeData('padding-right')
-        }
-      })
-
-      // Restore sticky content and navbar-toggler margin
-      $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {
-        const margin = $(element).data('margin-right')
-        if (typeof margin !== 'undefined') {
-          $(element).css('margin-right', margin).removeData('margin-right')
-        }
-      })
-
-      // Restore body padding
-      const padding = $('body').data('padding-right')
-      if (typeof padding !== 'undefined') {
-        $('body').css('padding-right', padding).removeData('padding-right')
-      }
-    }
-
-    _getScrollbarWidth() { // thx d.walsh
-      const scrollDiv = document.createElement('div')
-      scrollDiv.className = ClassName.SCROLLBAR_MEASURER
-      document.body.appendChild(scrollDiv)
-      const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth
-      document.body.removeChild(scrollDiv)
-      return scrollbarWidth
-    }
-
-
-    // static
-
-    static _jQueryInterface(config, relatedTarget) {
-      return this.each(function () {
-        let data      = $(this).data(DATA_KEY)
-        const _config = $.extend(
-          {},
-          Modal.Default,
-          $(this).data(),
-          typeof config === 'object' && config
-        )
-
-        if (!data) {
-          data = new Modal(this, _config)
-          $(this).data(DATA_KEY, data)
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error(`No method named "${config}"`)
-          }
-          data[config](relatedTarget)
-        } else if (_config.show) {
-          data.show(relatedTarget)
-        }
-      })
-    }
-
-  }
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
-    let target
-    const selector = Util.getSelectorFromElement(this)
-
-    if (selector) {
-      target = $(selector)[0]
-    }
-
-    const config = $(target).data(DATA_KEY) ?
-      'toggle' : $.extend({}, $(target).data(), $(this).data())
-
-    if (this.tagName === 'A' || this.tagName === 'AREA') {
-      event.preventDefault()
-    }
-
-    const $target = $(target).one(Event.SHOW, (showEvent) => {
-      if (showEvent.isDefaultPrevented()) {
-        // only register focus restorer if modal will actually get shown
-        return
-      }
-
-      $target.one(Event.HIDDEN, () => {
-        if ($(this).is(':visible')) {
-          this.focus()
-        }
-      })
-    })
-
-    Modal._jQueryInterface.call($(target), config, this)
-  })
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME]             = Modal._jQueryInterface
-  $.fn[NAME].Constructor = Modal
-  $.fn[NAME].noConflict  = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT
-    return Modal._jQueryInterface
-  }
-
-  return Modal
-
-})($)
-
-export default Modal
diff --git a/assets/javascript/src/popover.js b/assets/javascript/src/popover.js
deleted file mode 100755
index ff697d8..0000000
--- a/assets/javascript/src/popover.js
+++ /dev/null
@@ -1,194 +0,0 @@
-import $ from 'jquery'
-import Tooltip from './tooltip'
-
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): popover.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-const Popover = (() => {
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-
-  const NAME                = 'popover'
-  const VERSION             = '4.0.0-beta.2'
-  const DATA_KEY            = 'bs.popover'
-  const EVENT_KEY           = `.${DATA_KEY}`
-  const JQUERY_NO_CONFLICT  = $.fn[NAME]
-  const CLASS_PREFIX        = 'bs-popover'
-  const BSCLS_PREFIX_REGEX  = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g')
-
-  const Default = $.extend({}, Tooltip.Default, {
-    placement : 'right',
-    trigger   : 'click',
-    content   : '',
-    template  : '<div class="popover" role="tooltip">'
-              + '<div class="arrow"></div>'
-              + '<h3 class="popover-header"></h3>'
-              + '<div class="popover-body"></div></div>'
-  })
-
-  const DefaultType = $.extend({}, Tooltip.DefaultType, {
-    content : '(string|element|function)'
-  })
-
-  const ClassName = {
-    FADE : 'fade',
-    SHOW : 'show'
-  }
-
-  const Selector = {
-    TITLE   : '.popover-header',
-    CONTENT : '.popover-body'
-  }
-
-  const Event = {
-    HIDE       : `hide${EVENT_KEY}`,
-    HIDDEN     : `hidden${EVENT_KEY}`,
-    SHOW       : `show${EVENT_KEY}`,
-    SHOWN      : `shown${EVENT_KEY}`,
-    INSERTED   : `inserted${EVENT_KEY}`,
-    CLICK      : `click${EVENT_KEY}`,
-    FOCUSIN    : `focusin${EVENT_KEY}`,
-    FOCUSOUT   : `focusout${EVENT_KEY}`,
-    MOUSEENTER : `mouseenter${EVENT_KEY}`,
-    MOUSELEAVE : `mouseleave${EVENT_KEY}`
-  }
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Class Definition
-   * ------------------------------------------------------------------------
-   */
-
-  class Popover extends Tooltip {
-
-
-    // getters
-
-    static get VERSION() {
-      return VERSION
-    }
-
-    static get Default() {
-      return Default
-    }
-
-    static get NAME() {
-      return NAME
-    }
-
-    static get DATA_KEY() {
-      return DATA_KEY
-    }
-
-    static get Event() {
-      return Event
-    }
-
-    static get EVENT_KEY() {
-      return EVENT_KEY
-    }
-
-    static get DefaultType() {
-      return DefaultType
-    }
-
-
-    // overrides
-
-    isWithContent() {
-      return this.getTitle() || this._getContent()
-    }
-
-    addAttachmentClass(attachment) {
-      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)
-    }
-
-    getTipElement() {
-      this.tip = this.tip || $(this.config.template)[0]
-      return this.tip
-    }
-
-    setContent() {
-      const $tip = $(this.getTipElement())
-
-      // we use append for html objects to maintain js events
-      this.setElementContent($tip.find(Selector.TITLE), this.getTitle())
-      this.setElementContent($tip.find(Selector.CONTENT), this._getContent())
-
-      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)
-    }
-
-    // private
-
-    _getContent() {
-      return this.element.getAttribute('data-content')
-        || (typeof this.config.content === 'function' ?
-              this.config.content.call(this.element) :
-              this.config.content)
-    }
-
-    _cleanTipClass() {
-      const $tip = $(this.getTipElement())
-      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)
-      if (tabClass !== null && tabClass.length > 0) {
-        $tip.removeClass(tabClass.join(''))
-      }
-    }
-
-
-    // static
-
-    static _jQueryInterface(config) {
-      return this.each(function () {
-        let data      = $(this).data(DATA_KEY)
-        const _config = typeof config === 'object' ? config : null
-
-        if (!data && /destroy|hide/.test(config)) {
-          return
-        }
-
-        if (!data) {
-          data = new Popover(this, _config)
-          $(this).data(DATA_KEY, data)
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error(`No method named "${config}"`)
-          }
-          data[config]()
-        }
-      })
-    }
-  }
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME]             = Popover._jQueryInterface
-  $.fn[NAME].Constructor = Popover
-  $.fn[NAME].noConflict  = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT
-    return Popover._jQueryInterface
-  }
-
-  return Popover
-
-})($)
-
-export default Popover
diff --git a/assets/javascript/src/scrollspy.js b/assets/javascript/src/scrollspy.js
deleted file mode 100755
index a0e24dd..0000000
--- a/assets/javascript/src/scrollspy.js
+++ /dev/null
@@ -1,340 +0,0 @@
-import $ from 'jquery'
-import Util from './util'
-
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): scrollspy.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-const ScrollSpy = (() => {
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-
-  const NAME               = 'scrollspy'
-  const VERSION            = '4.0.0-beta.2'
-  const DATA_KEY           = 'bs.scrollspy'
-  const EVENT_KEY          = `.${DATA_KEY}`
-  const DATA_API_KEY       = '.data-api'
-  const JQUERY_NO_CONFLICT = $.fn[NAME]
-
-  const Default = {
-    offset : 10,
-    method : 'auto',
-    target : ''
-  }
-
-  const DefaultType = {
-    offset : 'number',
-    method : 'string',
-    target : '(string|element)'
-  }
-
-  const Event = {
-    ACTIVATE      : `activate${EVENT_KEY}`,
-    SCROLL        : `scroll${EVENT_KEY}`,
-    LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`
-  }
-
-  const ClassName = {
-    DROPDOWN_ITEM : 'dropdown-item',
-    DROPDOWN_MENU : 'dropdown-menu',
-    ACTIVE        : 'active'
-  }
-
-  const Selector = {
-    DATA_SPY        : '[data-spy="scroll"]',
-    ACTIVE          : '.active',
-    NAV_LIST_GROUP  : '.nav, .list-group',
-    NAV_LINKS       : '.nav-link',
-    NAV_ITEMS       : '.nav-item',
-    LIST_ITEMS      : '.list-group-item',
-    DROPDOWN        : '.dropdown',
-    DROPDOWN_ITEMS  : '.dropdown-item',
-    DROPDOWN_TOGGLE : '.dropdown-toggle'
-  }
-
-  const OffsetMethod = {
-    OFFSET   : 'offset',
-    POSITION : 'position'
-  }
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Class Definition
-   * ------------------------------------------------------------------------
-   */
-
-  class ScrollSpy {
-
-    constructor(element, config) {
-      this._element       = element
-      this._scrollElement = element.tagName === 'BODY' ? window : element
-      this._config        = this._getConfig(config)
-      this._selector      = `${this._config.target} ${Selector.NAV_LINKS},`
-                          + `${this._config.target} ${Selector.LIST_ITEMS},`
-                          + `${this._config.target} ${Selector.DROPDOWN_ITEMS}`
-      this._offsets       = []
-      this._targets       = []
-      this._activeTarget  = null
-      this._scrollHeight  = 0
-
-      $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))
-
-      this.refresh()
-      this._process()
-    }
-
-
-    // getters
-
-    static get VERSION() {
-      return VERSION
-    }
-
-    static get Default() {
-      return Default
-    }
-
-
-    // public
-
-    refresh() {
-      const autoMethod = this._scrollElement !== this._scrollElement.window ?
-        OffsetMethod.POSITION : OffsetMethod.OFFSET
-
-      const offsetMethod = this._config.method === 'auto' ?
-        autoMethod : this._config.method
-
-      const offsetBase = offsetMethod === OffsetMethod.POSITION ?
-        this._getScrollTop() : 0
-
-      this._offsets = []
-      this._targets = []
-
-      this._scrollHeight = this._getScrollHeight()
-
-      const targets = $.makeArray($(this._selector))
-
-      targets
-        .map((element) => {
-          let target
-          const targetSelector = Util.getSelectorFromElement(element)
-
-          if (targetSelector) {
-            target = $(targetSelector)[0]
-          }
-
-          if (target) {
-            const targetBCR = target.getBoundingClientRect()
-            if (targetBCR.width || targetBCR.height) {
-              // todo (fat): remove sketch reliance on jQuery position/offset
-              return [
-                $(target)[offsetMethod]().top + offsetBase,
-                targetSelector
-              ]
-            }
-          }
-          return null
-        })
-        .filter((item)  => item)
-        .sort((a, b)    => a[0] - b[0])
-        .forEach((item) => {
-          this._offsets.push(item[0])
-          this._targets.push(item[1])
-        })
-    }
-
-    dispose() {
-      $.removeData(this._element, DATA_KEY)
-      $(this._scrollElement).off(EVENT_KEY)
-
-      this._element       = null
-      this._scrollElement = null
-      this._config        = null
-      this._selector      = null
-      this._offsets       = null
-      this._targets       = null
-      this._activeTarget  = null
-      this._scrollHeight  = null
-    }
-
-
-    // private
-
-    _getConfig(config) {
-      config = $.extend({}, Default, config)
-
-      if (typeof config.target !== 'string') {
-        let id = $(config.target).attr('id')
-        if (!id) {
-          id = Util.getUID(NAME)
-          $(config.target).attr('id', id)
-        }
-        config.target = `#${id}`
-      }
-
-      Util.typeCheckConfig(NAME, config, DefaultType)
-
-      return config
-    }
-
-    _getScrollTop() {
-      return this._scrollElement === window ?
-          this._scrollElement.pageYOffset : this._scrollElement.scrollTop
-    }
-
-    _getScrollHeight() {
-      return this._scrollElement.scrollHeight || Math.max(
-        document.body.scrollHeight,
-        document.documentElement.scrollHeight
-      )
-    }
-
-    _getOffsetHeight() {
-      return this._scrollElement === window ?
-          window.innerHeight : this._scrollElement.getBoundingClientRect().height
-    }
-
-    _process() {
-      const scrollTop    = this._getScrollTop() + this._config.offset
-      const scrollHeight = this._getScrollHeight()
-      const maxScroll    = this._config.offset
-        + scrollHeight
-        - this._getOffsetHeight()
-
-      if (this._scrollHeight !== scrollHeight) {
-        this.refresh()
-      }
-
-      if (scrollTop >= maxScroll) {
-        const target = this._targets[this._targets.length - 1]
-
-        if (this._activeTarget !== target) {
-          this._activate(target)
-        }
-        return
-      }
-
-      if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
-        this._activeTarget = null
-        this._clear()
-        return
-      }
-
-      for (let i = this._offsets.length; i--;) {
-        const isActiveTarget = this._activeTarget !== this._targets[i]
-            && scrollTop >= this._offsets[i]
-            && (typeof this._offsets[i + 1] === 'undefined' ||
-                scrollTop < this._offsets[i + 1])
-
-        if (isActiveTarget) {
-          this._activate(this._targets[i])
-        }
-      }
-    }
-
-    _activate(target) {
-      this._activeTarget = target
-
-      this._clear()
-
-      let queries = this._selector.split(',')
-      // eslint-disable-next-line arrow-body-style
-      queries     = queries.map((selector) => {
-        return `${selector}[data-target="${target}"],` +
-               `${selector}[href="${target}"]`
-      })
-
-      const $link = $(queries.join(','))
-
-      if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
-        $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)
-        $link.addClass(ClassName.ACTIVE)
-      } else {
-        // Set triggered link as active
-        $link.addClass(ClassName.ACTIVE)
-        // Set triggered links parents as active
-        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
-        $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)
-        // Handle special case when .nav-link is inside .nav-item
-        $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)
-      }
-
-      $(this._scrollElement).trigger(Event.ACTIVATE, {
-        relatedTarget: target
-      })
-    }
-
-    _clear() {
-      $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)
-    }
-
-
-    // static
-
-    static _jQueryInterface(config) {
-      return this.each(function () {
-        let data      = $(this).data(DATA_KEY)
-        const _config = typeof config === 'object' && config
-
-        if (!data) {
-          data = new ScrollSpy(this, _config)
-          $(this).data(DATA_KEY, data)
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error(`No method named "${config}"`)
-          }
-          data[config]()
-        }
-      })
-    }
-
-
-  }
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-  $(window).on(Event.LOAD_DATA_API, () => {
-    const scrollSpys = $.makeArray($(Selector.DATA_SPY))
-
-    for (let i = scrollSpys.length; i--;) {
-      const $spy = $(scrollSpys[i])
-      ScrollSpy._jQueryInterface.call($spy, $spy.data())
-    }
-  })
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME]             = ScrollSpy._jQueryInterface
-  $.fn[NAME].Constructor = ScrollSpy
-  $.fn[NAME].noConflict  = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT
-    return ScrollSpy._jQueryInterface
-  }
-
-  return ScrollSpy
-
-})($)
-
-export default ScrollSpy
diff --git a/assets/javascript/src/tab.js b/assets/javascript/src/tab.js
deleted file mode 100755
index 982121c..0000000
--- a/assets/javascript/src/tab.js
+++ /dev/null
@@ -1,287 +0,0 @@
-import $ from 'jquery'
-import Util from './util'
-
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): tab.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-const Tab = (() => {
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-
-  const NAME                = 'tab'
-  const VERSION             = '4.0.0-beta.2'
-  const DATA_KEY            = 'bs.tab'
-  const EVENT_KEY           = `.${DATA_KEY}`
-  const DATA_API_KEY        = '.data-api'
-  const JQUERY_NO_CONFLICT  = $.fn[NAME]
-  const TRANSITION_DURATION = 150
-
-  const Event = {
-    HIDE           : `hide${EVENT_KEY}`,
-    HIDDEN         : `hidden${EVENT_KEY}`,
-    SHOW           : `show${EVENT_KEY}`,
-    SHOWN          : `shown${EVENT_KEY}`,
-    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`
-  }
-
-  const ClassName = {
-    DROPDOWN_MENU : 'dropdown-menu',
-    ACTIVE        : 'active',
-    DISABLED      : 'disabled',
-    FADE          : 'fade',
-    SHOW          : 'show'
-  }
-
-  const Selector = {
-    DROPDOWN              : '.dropdown',
-    NAV_LIST_GROUP        : '.nav, .list-group',
-    ACTIVE                : '.active',
-    ACTIVE_UL             : '> li > .active',
-    DATA_TOGGLE           : '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
-    DROPDOWN_TOGGLE       : '.dropdown-toggle',
-    DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'
-  }
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Class Definition
-   * ------------------------------------------------------------------------
-   */
-
-  class Tab {
-
-    constructor(element) {
-      this._element = element
-    }
-
-
-    // getters
-
-    static get VERSION() {
-      return VERSION
-    }
-
-
-    // public
-
-    show() {
-      if (this._element.parentNode &&
-          this._element.parentNode.nodeType === Node.ELEMENT_NODE &&
-          $(this._element).hasClass(ClassName.ACTIVE) ||
-          $(this._element).hasClass(ClassName.DISABLED)) {
-        return
-      }
-
-      let target
-      let previous
-      const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]
-      const selector    = Util.getSelectorFromElement(this._element)
-
-      if (listElement) {
-        const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE
-        previous = $.makeArray($(listElement).find(itemSelector))
-        previous = previous[previous.length - 1]
-      }
-
-      const hideEvent = $.Event(Event.HIDE, {
-        relatedTarget: this._element
-      })
-
-      const showEvent = $.Event(Event.SHOW, {
-        relatedTarget: previous
-      })
-
-      if (previous) {
-        $(previous).trigger(hideEvent)
-      }
-
-      $(this._element).trigger(showEvent)
-
-      if (showEvent.isDefaultPrevented() ||
-         hideEvent.isDefaultPrevented()) {
-        return
-      }
-
-      if (selector) {
-        target = $(selector)[0]
-      }
-
-      this._activate(
-        this._element,
-        listElement
-      )
-
-      const complete = () => {
-        const hiddenEvent = $.Event(Event.HIDDEN, {
-          relatedTarget: this._element
-        })
-
-        const shownEvent = $.Event(Event.SHOWN, {
-          relatedTarget: previous
-        })
-
-        $(previous).trigger(hiddenEvent)
-        $(this._element).trigger(shownEvent)
-      }
-
-      if (target) {
-        this._activate(target, target.parentNode, complete)
-      } else {
-        complete()
-      }
-    }
-
-    dispose() {
-      $.removeData(this._element, DATA_KEY)
-      this._element = null
-    }
-
-
-    // private
-
-    _activate(element, container, callback) {
-      let activeElements
-      if (container.nodeName === 'UL') {
-        activeElements = $(container).find(Selector.ACTIVE_UL)
-      } else {
-        activeElements = $(container).children(Selector.ACTIVE)
-      }
-
-      const active          = activeElements[0]
-      const isTransitioning = callback
-        && Util.supportsTransitionEnd()
-        && (active && $(active).hasClass(ClassName.FADE))
-
-      const complete = () => this._transitionComplete(
-        element,
-        active,
-        isTransitioning,
-        callback
-      )
-
-      if (active && isTransitioning) {
-        $(active)
-          .one(Util.TRANSITION_END, complete)
-          .emulateTransitionEnd(TRANSITION_DURATION)
-
-      } else {
-        complete()
-      }
-
-      if (active) {
-        $(active).removeClass(ClassName.SHOW)
-      }
-    }
-
-    _transitionComplete(element, active, isTransitioning, callback) {
-      if (active) {
-        $(active).removeClass(ClassName.ACTIVE)
-
-        const dropdownChild = $(active.parentNode).find(
-          Selector.DROPDOWN_ACTIVE_CHILD
-        )[0]
-
-        if (dropdownChild) {
-          $(dropdownChild).removeClass(ClassName.ACTIVE)
-        }
-
-        if (active.getAttribute('role') === 'tab') {
-          active.setAttribute('aria-selected', false)
-        }
-      }
-
-      $(element).addClass(ClassName.ACTIVE)
-      if (element.getAttribute('role') === 'tab') {
-        element.setAttribute('aria-selected', true)
-      }
-
-      if (isTransitioning) {
-        Util.reflow(element)
-        $(element).addClass(ClassName.SHOW)
-      } else {
-        $(element).removeClass(ClassName.FADE)
-      }
-
-      if (element.parentNode &&
-          $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
-
-        const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]
-        if (dropdownElement) {
-          $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)
-        }
-
-        element.setAttribute('aria-expanded', true)
-      }
-
-      if (callback) {
-        callback()
-      }
-    }
-
-
-    // static
-
-    static _jQueryInterface(config) {
-      return this.each(function () {
-        const $this = $(this)
-        let data    = $this.data(DATA_KEY)
-
-        if (!data) {
-          data = new Tab(this)
-          $this.data(DATA_KEY, data)
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error(`No method named "${config}"`)
-          }
-          data[config]()
-        }
-      })
-    }
-
-  }
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-  $(document)
-    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
-      event.preventDefault()
-      Tab._jQueryInterface.call($(this), 'show')
-    })
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME]             = Tab._jQueryInterface
-  $.fn[NAME].Constructor = Tab
-  $.fn[NAME].noConflict  = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT
-    return Tab._jQueryInterface
-  }
-
-  return Tab
-
-})($)
-
-export default Tab
diff --git a/assets/javascript/src/tooltip.js b/assets/javascript/src/tooltip.js
deleted file mode 100755
index ee721a1..0000000
--- a/assets/javascript/src/tooltip.js
+++ /dev/null
@@ -1,733 +0,0 @@
-import $ from 'jquery'
-import Popper from 'popper.js'
-import Util from './util'
-
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): tooltip.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-const Tooltip = (() => {
-
-  /**
-   * Check for Popper dependency
-   * Popper - https://popper.js.org
-   */
-  if (typeof Popper === 'undefined') {
-    throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)')
-  }
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-
-  const NAME                = 'tooltip'
-  const VERSION             = '4.0.0-beta.2'
-  const DATA_KEY            = 'bs.tooltip'
-  const EVENT_KEY           = `.${DATA_KEY}`
-  const JQUERY_NO_CONFLICT  = $.fn[NAME]
-  const TRANSITION_DURATION = 150
-  const CLASS_PREFIX        = 'bs-tooltip'
-  const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g')
-
-  const DefaultType = {
-    animation           : 'boolean',
-    template            : 'string',
-    title               : '(string|element|function)',
-    trigger             : 'string',
-    delay               : '(number|object)',
-    html                : 'boolean',
-    selector            : '(string|boolean)',
-    placement           : '(string|function)',
-    offset              : '(number|string)',
-    container           : '(string|element|boolean)',
-    fallbackPlacement   : '(string|array)'
-  }
-
-  const AttachmentMap = {
-    AUTO   : 'auto',
-    TOP    : 'top',
-    RIGHT  : 'right',
-    BOTTOM : 'bottom',
-    LEFT   : 'left'
-  }
-
-  const Default = {
-    animation           : true,
-    template            : '<div class="tooltip" role="tooltip">'
-                        + '<div class="arrow"></div>'
-                        + '<div class="tooltip-inner"></div></div>',
-    trigger             : 'hover focus',
-    title               : '',
-    delay               : 0,
-    html                : false,
-    selector            : false,
-    placement           : 'top',
-    offset              : 0,
-    container           : false,
-    fallbackPlacement   : 'flip'
-  }
-
-  const HoverState = {
-    SHOW : 'show',
-    OUT  : 'out'
-  }
-
-  const Event = {
-    HIDE       : `hide${EVENT_KEY}`,
-    HIDDEN     : `hidden${EVENT_KEY}`,
-    SHOW       : `show${EVENT_KEY}`,
-    SHOWN      : `shown${EVENT_KEY}`,
-    INSERTED   : `inserted${EVENT_KEY}`,
-    CLICK      : `click${EVENT_KEY}`,
-    FOCUSIN    : `focusin${EVENT_KEY}`,
-    FOCUSOUT   : `focusout${EVENT_KEY}`,
-    MOUSEENTER : `mouseenter${EVENT_KEY}`,
-    MOUSELEAVE : `mouseleave${EVENT_KEY}`
-  }
-
-  const ClassName = {
-    FADE : 'fade',
-    SHOW : 'show'
-  }
-
-  const Selector = {
-    TOOLTIP       : '.tooltip',
-    TOOLTIP_INNER : '.tooltip-inner',
-    ARROW         : '.arrow'
-  }
-
-  const Trigger = {
-    HOVER  : 'hover',
-    FOCUS  : 'focus',
-    CLICK  : 'click',
-    MANUAL : 'manual'
-  }
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Class Definition
-   * ------------------------------------------------------------------------
-   */
-
-  class Tooltip {
-
-    constructor(element, config) {
-
-      // private
-      this._isEnabled     = true
-      this._timeout       = 0
-      this._hoverState    = ''
-      this._activeTrigger = {}
-      this._popper        = null
-
-      // protected
-      this.element = element
-      this.config  = this._getConfig(config)
-      this.tip     = null
-
-      this._setListeners()
-
-    }
-
-
-    // getters
-
-    static get VERSION() {
-      return VERSION
-    }
-
-    static get Default() {
-      return Default
-    }
-
-    static get NAME() {
-      return NAME
-    }
-
-    static get DATA_KEY() {
-      return DATA_KEY
-    }
-
-    static get Event() {
-      return Event
-    }
-
-    static get EVENT_KEY() {
-      return EVENT_KEY
-    }
-
-    static get DefaultType() {
-      return DefaultType
-    }
-
-
-    // public
-
-    enable() {
-      this._isEnabled = true
-    }
-
-    disable() {
-      this._isEnabled = false
-    }
-
-    toggleEnabled() {
-      this._isEnabled = !this._isEnabled
-    }
-
-    toggle(event) {
-      if (!this._isEnabled) {
-        return
-      }
-
-      if (event) {
-        const dataKey = this.constructor.DATA_KEY
-        let context = $(event.currentTarget).data(dataKey)
-
-        if (!context) {
-          context = new this.constructor(
-            event.currentTarget,
-            this._getDelegateConfig()
-          )
-          $(event.currentTarget).data(dataKey, context)
-        }
-
-        context._activeTrigger.click = !context._activeTrigger.click
-
-        if (context._isWithActiveTrigger()) {
-          context._enter(null, context)
-        } else {
-          context._leave(null, context)
-        }
-
-      } else {
-
-        if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {
-          this._leave(null, this)
-          return
-        }
-
-        this._enter(null, this)
-      }
-    }
-
-    dispose() {
-      clearTimeout(this._timeout)
-
-      $.removeData(this.element, this.constructor.DATA_KEY)
-
-      $(this.element).off(this.constructor.EVENT_KEY)
-      $(this.element).closest('.modal').off('hide.bs.modal')
-
-      if (this.tip) {
-        $(this.tip).remove()
-      }
-
-      this._isEnabled     = null
-      this._timeout       = null
-      this._hoverState    = null
-      this._activeTrigger = null
-      if (this._popper !== null) {
-        this._popper.destroy()
-      }
-
-      this._popper = null
-      this.element = null
-      this.config  = null
-      this.tip     = null
-    }
-
-    show() {
-      if ($(this.element).css('display') === 'none') {
-        throw new Error('Please use show on visible elements')
-      }
-
-      const showEvent = $.Event(this.constructor.Event.SHOW)
-      if (this.isWithContent() && this._isEnabled) {
-        $(this.element).trigger(showEvent)
-
-        const isInTheDom = $.contains(
-          this.element.ownerDocument.documentElement,
-          this.element
-        )
-
-        if (showEvent.isDefaultPrevented() || !isInTheDom) {
-          return
-        }
-
-        const tip   = this.getTipElement()
-        const tipId = Util.getUID(this.constructor.NAME)
-
-        tip.setAttribute('id', tipId)
-        this.element.setAttribute('aria-describedby', tipId)
-
-        this.setContent()
-
-        if (this.config.animation) {
-          $(tip).addClass(ClassName.FADE)
-        }
-
-        const placement  = typeof this.config.placement === 'function' ?
-          this.config.placement.call(this, tip, this.element) :
-          this.config.placement
-
-        const attachment = this._getAttachment(placement)
-        this.addAttachmentClass(attachment)
-
-        const container = this.config.container === false ? document.body : $(this.config.container)
-
-        $(tip).data(this.constructor.DATA_KEY, this)
-
-        if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {
-          $(tip).appendTo(container)
-        }
-
-        $(this.element).trigger(this.constructor.Event.INSERTED)
-
-        this._popper = new Popper(this.element, tip, {
-          placement: attachment,
-          modifiers: {
-            offset: {
-              offset: this.config.offset
-            },
-            flip: {
-              behavior: this.config.fallbackPlacement
-            },
-            arrow: {
-              element: Selector.ARROW
-            }
-          },
-          onCreate: (data) => {
-            if (data.originalPlacement !== data.placement) {
-              this._handlePopperPlacementChange(data)
-            }
-          },
-          onUpdate : (data) => {
-            this._handlePopperPlacementChange(data)
-          }
-        })
-
-        $(tip).addClass(ClassName.SHOW)
-
-        // if this is a touch-enabled device we add extra
-        // empty mouseover listeners to the body's immediate children;
-        // only needed because of broken event delegation on iOS
-        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
-        if ('ontouchstart' in document.documentElement) {
-          $('body').children().on('mouseover', null, $.noop)
-        }
-
-        const complete = () => {
-          if (this.config.animation) {
-            this._fixTransition()
-          }
-          const prevHoverState = this._hoverState
-          this._hoverState     = null
-
-          $(this.element).trigger(this.constructor.Event.SHOWN)
-
-          if (prevHoverState === HoverState.OUT) {
-            this._leave(null, this)
-          }
-        }
-
-        if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {
-          $(this.tip)
-            .one(Util.TRANSITION_END, complete)
-            .emulateTransitionEnd(Tooltip._TRANSITION_DURATION)
-        } else {
-          complete()
-        }
-      }
-    }
-
-    hide(callback) {
-      const tip       = this.getTipElement()
-      const hideEvent = $.Event(this.constructor.Event.HIDE)
-      const complete  = () => {
-        if (this._hoverState !== HoverState.SHOW && tip.parentNode) {
-          tip.parentNode.removeChild(tip)
-        }
-
-        this._cleanTipClass()
-        this.element.removeAttribute('aria-describedby')
-        $(this.element).trigger(this.constructor.Event.HIDDEN)
-        if (this._popper !== null) {
-          this._popper.destroy()
-        }
-
-        if (callback) {
-          callback()
-        }
-      }
-
-      $(this.element).trigger(hideEvent)
-
-      if (hideEvent.isDefaultPrevented()) {
-        return
-      }
-
-      $(tip).removeClass(ClassName.SHOW)
-
-      // if this is a touch-enabled device we remove the extra
-      // empty mouseover listeners we added for iOS support
-      if ('ontouchstart' in document.documentElement) {
-        $('body').children().off('mouseover', null, $.noop)
-      }
-
-      this._activeTrigger[Trigger.CLICK] = false
-      this._activeTrigger[Trigger.FOCUS] = false
-      this._activeTrigger[Trigger.HOVER] = false
-
-      if (Util.supportsTransitionEnd() &&
-          $(this.tip).hasClass(ClassName.FADE)) {
-
-        $(tip)
-          .one(Util.TRANSITION_END, complete)
-          .emulateTransitionEnd(TRANSITION_DURATION)
-
-      } else {
-        complete()
-      }
-
-      this._hoverState = ''
-
-    }
-
-    update() {
-      if (this._popper !== null) {
-        this._popper.scheduleUpdate()
-      }
-    }
-
-    // protected
-
-    isWithContent() {
-      return Boolean(this.getTitle())
-    }
-
-    addAttachmentClass(attachment) {
-      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)
-    }
-
-    getTipElement() {
-      this.tip = this.tip || $(this.config.template)[0]
-      return this.tip
-    }
-
-    setContent() {
-      const $tip = $(this.getTipElement())
-      this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())
-      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)
-    }
-
-    setElementContent($element, content) {
-      const html = this.config.html
-      if (typeof content === 'object' && (content.nodeType || content.jquery)) {
-        // content is a DOM node or a jQuery
-        if (html) {
-          if (!$(content).parent().is($element)) {
-            $element.empty().append(content)
-          }
-        } else {
-          $element.text($(content).text())
-        }
-      } else {
-        $element[html ? 'html' : 'text'](content)
-      }
-    }
-
-    getTitle() {
-      let title = this.element.getAttribute('data-original-title')
-
-      if (!title) {
-        title = typeof this.config.title === 'function' ?
-          this.config.title.call(this.element) :
-          this.config.title
-      }
-
-      return title
-    }
-
-
-    // private
-
-    _getAttachment(placement) {
-      return AttachmentMap[placement.toUpperCase()]
-    }
-
-    _setListeners() {
-      const triggers = this.config.trigger.split(' ')
-
-      triggers.forEach((trigger) => {
-        if (trigger === 'click') {
-          $(this.element).on(
-            this.constructor.Event.CLICK,
-            this.config.selector,
-            (event) => this.toggle(event)
-          )
-
-        } else if (trigger !== Trigger.MANUAL) {
-          const eventIn  = trigger === Trigger.HOVER ?
-            this.constructor.Event.MOUSEENTER :
-            this.constructor.Event.FOCUSIN
-          const eventOut = trigger === Trigger.HOVER ?
-            this.constructor.Event.MOUSELEAVE :
-            this.constructor.Event.FOCUSOUT
-
-          $(this.element)
-            .on(
-              eventIn,
-              this.config.selector,
-              (event) => this._enter(event)
-            )
-            .on(
-              eventOut,
-              this.config.selector,
-              (event) => this._leave(event)
-            )
-        }
-
-        $(this.element).closest('.modal').on(
-          'hide.bs.modal',
-          () => this.hide()
-        )
-      })
-
-      if (this.config.selector) {
-        this.config = $.extend({}, this.config, {
-          trigger  : 'manual',
-          selector : ''
-        })
-      } else {
-        this._fixTitle()
-      }
-    }
-
-    _fixTitle() {
-      const titleType = typeof this.element.getAttribute('data-original-title')
-      if (this.element.getAttribute('title') ||
-         titleType !== 'string') {
-        this.element.setAttribute(
-          'data-original-title',
-          this.element.getAttribute('title') || ''
-        )
-        this.element.setAttribute('title', '')
-      }
-    }
-
-    _enter(event, context) {
-      const dataKey = this.constructor.DATA_KEY
-
-      context = context || $(event.currentTarget).data(dataKey)
-
-      if (!context) {
-        context = new this.constructor(
-          event.currentTarget,
-          this._getDelegateConfig()
-        )
-        $(event.currentTarget).data(dataKey, context)
-      }
-
-      if (event) {
-        context._activeTrigger[
-          event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER
-        ] = true
-      }
-
-      if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||
-         context._hoverState === HoverState.SHOW) {
-        context._hoverState = HoverState.SHOW
-        return
-      }
-
-      clearTimeout(context._timeout)
-
-      context._hoverState = HoverState.SHOW
-
-      if (!context.config.delay || !context.config.delay.show) {
-        context.show()
-        return
-      }
-
-      context._timeout = setTimeout(() => {
-        if (context._hoverState === HoverState.SHOW) {
-          context.show()
-        }
-      }, context.config.delay.show)
-    }
-
-    _leave(event, context) {
-      const dataKey = this.constructor.DATA_KEY
-
-      context = context || $(event.currentTarget).data(dataKey)
-
-      if (!context) {
-        context = new this.constructor(
-          event.currentTarget,
-          this._getDelegateConfig()
-        )
-        $(event.currentTarget).data(dataKey, context)
-      }
-
-      if (event) {
-        context._activeTrigger[
-          event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER
-        ] = false
-      }
-
-      if (context._isWithActiveTrigger()) {
-        return
-      }
-
-      clearTimeout(context._timeout)
-
-      context._hoverState = HoverState.OUT
-
-      if (!context.config.delay || !context.config.delay.hide) {
-        context.hide()
-        return
-      }
-
-      context._timeout = setTimeout(() => {
-        if (context._hoverState === HoverState.OUT) {
-          context.hide()
-        }
-      }, context.config.delay.hide)
-    }
-
-    _isWithActiveTrigger() {
-      for (const trigger in this._activeTrigger) {
-        if (this._activeTrigger[trigger]) {
-          return true
-        }
-      }
-
-      return false
-    }
-
-    _getConfig(config) {
-      config = $.extend(
-        {},
-        this.constructor.Default,
-        $(this.element).data(),
-        config
-      )
-
-      if (typeof config.delay === 'number') {
-        config.delay = {
-          show : config.delay,
-          hide : config.delay
-        }
-      }
-
-      if (typeof config.title === 'number') {
-        config.title = config.title.toString()
-      }
-
-      if (typeof config.content === 'number') {
-        config.content = config.content.toString()
-      }
-
-      Util.typeCheckConfig(
-        NAME,
-        config,
-        this.constructor.DefaultType
-      )
-
-      return config
-    }
-
-    _getDelegateConfig() {
-      const config = {}
-
-      if (this.config) {
-        for (const key in this.config) {
-          if (this.constructor.Default[key] !== this.config[key]) {
-            config[key] = this.config[key]
-          }
-        }
-      }
-
-      return config
-    }
-
-    _cleanTipClass() {
-      const $tip = $(this.getTipElement())
-      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)
-      if (tabClass !== null && tabClass.length > 0) {
-        $tip.removeClass(tabClass.join(''))
-      }
-    }
-
-    _handlePopperPlacementChange(data) {
-      this._cleanTipClass()
-      this.addAttachmentClass(this._getAttachment(data.placement))
-    }
-
-    _fixTransition() {
-      const tip                 = this.getTipElement()
-      const initConfigAnimation = this.config.animation
-      if (tip.getAttribute('x-placement') !== null) {
-        return
-      }
-      $(tip).removeClass(ClassName.FADE)
-      this.config.animation = false
-      this.hide()
-      this.show()
-      this.config.animation = initConfigAnimation
-    }
-
-    // static
-
-    static _jQueryInterface(config) {
-      return this.each(function () {
-        let data      = $(this).data(DATA_KEY)
-        const _config = typeof config === 'object' && config
-
-        if (!data && /dispose|hide/.test(config)) {
-          return
-        }
-
-        if (!data) {
-          data = new Tooltip(this, _config)
-          $(this).data(DATA_KEY, data)
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error(`No method named "${config}"`)
-          }
-          data[config]()
-        }
-      })
-    }
-  }
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME]             = Tooltip._jQueryInterface
-  $.fn[NAME].Constructor = Tooltip
-  $.fn[NAME].noConflict  = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT
-    return Tooltip._jQueryInterface
-  }
-
-  return Tooltip
-
-})($, Popper)
-
-export default Tooltip
diff --git a/assets/javascript/src/util.js b/assets/javascript/src/util.js
deleted file mode 100755
index 16d114b..0000000
--- a/assets/javascript/src/util.js
+++ /dev/null
@@ -1,166 +0,0 @@
-import $ from 'jquery'
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): util.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-const Util = (() => {
-
-
-  /**
-   * ------------------------------------------------------------------------
-   * Private TransitionEnd Helpers
-   * ------------------------------------------------------------------------
-   */
-
-  let transition = false
-
-  const MAX_UID = 1000000
-
-  const TransitionEndEvent = {
-    WebkitTransition : 'webkitTransitionEnd',
-    MozTransition    : 'transitionend',
-    OTransition      : 'oTransitionEnd otransitionend',
-    transition       : 'transitionend'
-  }
-
-  // shoutout AngusCroll (https://goo.gl/pxwQGp)
-  function toType(obj) {
-    return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase()
-  }
-
-  function getSpecialTransitionEndEvent() {
-    return {
-      bindType: transition.end,
-      delegateType: transition.end,
-      handle(event) {
-        if ($(event.target).is(this)) {
-          return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params
-        }
-        return undefined // eslint-disable-line no-undefined
-      }
-    }
-  }
-
-  function transitionEndTest() {
-    if (window.QUnit) {
-      return false
-    }
-
-    const el = document.createElement('bootstrap')
-
-    for (const name in TransitionEndEvent) {
-      if (typeof el.style[name] !== 'undefined') {
-        return {
-          end: TransitionEndEvent[name]
-        }
-      }
-    }
-
-    return false
-  }
-
-  function transitionEndEmulator(duration) {
-    let called = false
-
-    $(this).one(Util.TRANSITION_END, () => {
-      called = true
-    })
-
-    setTimeout(() => {
-      if (!called) {
-        Util.triggerTransitionEnd(this)
-      }
-    }, duration)
-
-    return this
-  }
-
-  function setTransitionEndSupport() {
-    transition = transitionEndTest()
-
-    $.fn.emulateTransitionEnd = transitionEndEmulator
-
-    if (Util.supportsTransitionEnd()) {
-      $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()
-    }
-  }
-
-
-  /**
-   * --------------------------------------------------------------------------
-   * Public Util Api
-   * --------------------------------------------------------------------------
-   */
-
-  const Util = {
-
-    TRANSITION_END: 'bsTransitionEnd',
-
-    getUID(prefix) {
-      do {
-        // eslint-disable-next-line no-bitwise
-        prefix += ~~(Math.random() * MAX_UID) // "~~" acts like a faster Math.floor() here
-      } while (document.getElementById(prefix))
-      return prefix
-    },
-
-    getSelectorFromElement(element) {
-      let selector = element.getAttribute('data-target')
-      if (!selector || selector === '#') {
-        selector = element.getAttribute('href') || ''
-      }
-
-      try {
-        const $selector = $(document).find(selector)
-        return $selector.length > 0 ? selector : null
-      } catch (error) {
-        return null
-      }
-    },
-
-    reflow(element) {
-      return element.offsetHeight
-    },
-
-    triggerTransitionEnd(element) {
-      $(element).trigger(transition.end)
-    },
-
-    supportsTransitionEnd() {
-      return Boolean(transition)
-    },
-
-    isElement(obj) {
-      return (obj[0] || obj).nodeType
-    },
-
-    typeCheckConfig(componentName, config, configTypes) {
-      for (const property in configTypes) {
-        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
-          const expectedTypes = configTypes[property]
-          const value         = config[property]
-          const valueType     = value && Util.isElement(value) ?
-                                'element' : toType(value)
-
-          if (!new RegExp(expectedTypes).test(valueType)) {
-            throw new Error(
-              `${componentName.toUpperCase()}: ` +
-              `Option "${property}" provided type "${valueType}" ` +
-              `but expected type "${expectedTypes}".`)
-          }
-        }
-      }
-    }
-  }
-
-  setTransitionEndSupport()
-
-  return Util
-
-})($)
-
-export default Util
diff --git a/assets/javascript/tests/.eslintrc.json b/assets/javascript/tests/.eslintrc.json
deleted file mode 100755
index 1452045..0000000
--- a/assets/javascript/tests/.eslintrc.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
-  "env": {
-    "es6": false,
-    "qunit": true,
-    "jquery": true
-  },
-  "globals": {
-    "Util": false
-  },
-  "parserOptions": {
-    "ecmaVersion": 5,
-    "sourceType": "script"
-  },
-  "extends": "../.eslintrc.json",
-  "rules": {
-    // Best Practices
-    "consistent-return": "off",
-    "no-alert": "off",
-    "no-console": "off",
-    "no-empty-function": "off",
-    "no-extend-native": "off",
-    "no-magic-numbers": "off",
-    "vars-on-top": "off",
-
-    // NodeJS and CommonJS
-    "global-require": "off",
-    "no-process-env": "off",
-    "no-process-exit": "off",
-    "no-sync": "off",
-
-    // Stylistic Issues
-    "brace-style": "off",
-    "func-style": "off",
-    "max-statements-per-line": "off",
-    "object-curly-newline": "off",
-    "object-property-newline": "off",
-    "spaced-comment": "off",
-
-    // ECMAScript 6
-    "no-var": "off",
-    "object-shorthand": "off",
-    "prefer-arrow-callback": "off",
-    "prefer-template": "off",
-    "prefer-rest-params": "off"
-  }
-}
diff --git a/assets/javascript/tests/README.md b/assets/javascript/tests/README.md
deleted file mode 100755
index 8c8c2f1..0000000
--- a/assets/javascript/tests/README.md
+++ /dev/null
@@ -1,61 +0,0 @@
-## How does Bootstrap's test suite work?
-
-Bootstrap uses [QUnit](https://qunitjs.com/), a powerful, easy-to-use JavaScript unit test framework. Each plugin has a file dedicated to its tests in `unit/<plugin-name>.js`.
-
-* `unit/` contains the unit test files for each Bootstrap plugin.
-* `vendor/` contains third-party testing-related code (QUnit and jQuery).
-* `visual/` contains "visual" tests which are run interactively in real browsers and require manual verification by humans.
-
-To run the unit test suite via [PhantomJS](http://phantomjs.org/), run `npm run js-test`.
-
-To run the unit test suite via a real web browser, open `index.html` in the browser.
-
-
-## How do I add a new unit test?
-
-1. Locate and open the file dedicated to the plugin which you need to add tests to (`unit/<plugin-name>.js`).
-2. Review the [QUnit API Documentation](https://api.qunitjs.com/) and use the existing tests as references for how to structure your new tests.
-3. Write the necessary unit test(s) for the new or revised functionality.
-4. Run `npm run js-test` to see the results of your newly-added test(s).
-
-**Note:** Your new unit tests should fail before your changes are applied to the plugin, and should pass after your changes are applied to the plugin.
-
-## What should a unit test look like?
-
-* Each test should have a unique name clearly stating what unit is being tested.
-* Each test should test only one unit per test, although one test can include several assertions. Create multiple tests for multiple units of functionality.
-* Each test should begin with [`assert.expect`](https://api.qunitjs.com/assert/expect/) to ensure that the expected assertions are run.
-* Each test should follow the project's [JavaScript Code Guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md#js)
-
-### Example tests
-
-```javascript
-// Synchronous test
-QUnit.test('should describe the unit being tested', function (assert) {
-  assert.expect(1)
-  var templateHTML = '<div class="alert alert-danger fade show">'
-      + '<a class="close" href="#" data-dismiss="alert">×</a>'
-      + '<p><strong>Template necessary for the test.</p>'
-      + '</div>'
-  var $alert = $(templateHTML).appendTo('#qunit-fixture').bootstrapAlert()
-
-  $alert.find('.close').trigger('click')
-
-  // Make assertion
-  assert.strictEqual($alert.hasClass('show'), false, 'remove .show class on .close click')
-})
-
-// Asynchronous test
-QUnit.test('should describe the unit being tested', function (assert) {
-  assert.expect(1)
-  var done = assert.async()
-
-  $('<div title="tooltip title"></div>')
-    .appendTo('#qunit-fixture')
-    .on('shown.bs.tooltip', function () {
-      assert.ok(true, '"shown" event was fired after calling "show"')
-      done()
-    })
-    .bootstrapTooltip('show')
-})
-```
diff --git a/assets/javascript/tests/index.html b/assets/javascript/tests/index.html
deleted file mode 100755
index ad5b643..0000000
--- a/assets/javascript/tests/index.html
+++ /dev/null
@@ -1,129 +0,0 @@
-<!doctype html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-    <title>Bootstrap Plugin Test Suite</title>
-
-    <!-- jQuery -->
-    <script src="../../assets/js/vendor/jquery-slim.min.js"></script>
-    <script src="../../assets/js/vendor/popper.min.js"></script>
-
-    <!-- QUnit -->
-    <link rel="stylesheet" href="vendor/qunit.css" media="screen">
-    <script src="vendor/qunit.js"></script>
-
-    <script>
-      // Disable jQuery event aliases to ensure we don't accidentally use any of them
-      [
-        'blur',
-        'focus',
-        'focusin',
-        'focusout',
-        'resize',
-        'scroll',
-        'click',
-        'dblclick',
-        'mousedown',
-        'mouseup',
-        'mousemove',
-        'mouseover',
-        'mouseout',
-        'mouseenter',
-        'mouseleave',
-        'change',
-        'select',
-        'submit',
-        'keydown',
-        'keypress',
-        'keyup',
-        'contextmenu'
-      ].forEach(function(eventAlias) {
-        $.fn[eventAlias] = function() {
-          throw new Error('Using the ".' + eventAlias + '()" method is not allowed, so that Bootstrap can be compatible with custom jQuery builds which exclude the "event aliases" module that defines said method. See https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md#js')
-        }
-      })
-
-      // Require assert.expect in each test
-      QUnit.config.requireExpects = true
-
-      // See https://github.com/axemclion/grunt-saucelabs#test-result-details-with-qunit
-      var log = []
-      var testName
-
-      QUnit.done(function(testResults) {
-        var tests = []
-        for (var i = 0; i < log.length; i++) {
-          var details = log[i]
-          tests.push({
-            name: details.name,
-            result: details.result,
-            expected: details.expected,
-            actual: details.actual,
-            source: details.source
-          })
-        }
-        testResults.tests = tests
-
-        window.global_test_results = testResults
-      })
-
-      QUnit.testStart(function(testDetails) {
-        QUnit.log(function(details) {
-          if (!details.result) {
-            details.name = testDetails.name
-            log.push(details)
-          }
-        })
-      })
-
-      // Cleanup
-      QUnit.testDone(function () {
-        $('#modal-test, .modal-backdrop').remove()
-      })
-
-      // Display fixture on-screen on iOS to avoid false positives
-      // See https://github.com/twbs/bootstrap/pull/15955
-      if (/iPhone|iPad|iPod/.test(navigator.userAgent)) {
-        QUnit.begin(function() {
-          $('#qunit-fixture').css({ top: 0, left: 0 })
-        })
-
-        QUnit.done(function() {
-          $('#qunit-fixture').css({ top: '', left: '' })
-        })
-      }
-    </script>
-
-    <!-- Transpiled Plugins -->
-    <script src="../dist/util.js"></script>
-    <script src="../dist/alert.js"></script>
-    <script src="../dist/button.js"></script>
-    <script src="../dist/carousel.js"></script>
-    <script src="../dist/collapse.js"></script>
-    <script src="../dist/dropdown.js"></script>
-    <script src="../dist/modal.js"></script>
-    <script src="../dist/scrollspy.js"></script>
-    <script src="../dist/tab.js"></script>
-    <script src="../dist/tooltip.js"></script>
-    <script src="../dist/popover.js"></script>
-
-    <!-- Unit Tests -->
-    <script src="unit/alert.js"></script>
-    <script src="unit/button.js"></script>
-    <script src="unit/carousel.js"></script>
-    <script src="unit/collapse.js"></script>
-    <script src="unit/dropdown.js"></script>
-    <script src="unit/modal.js"></script>
-    <script src="unit/scrollspy.js"></script>
-    <script src="unit/tab.js"></script>
-    <script src="unit/tooltip.js"></script>
-    <script src="unit/popover.js"></script>
-  </head>
-  <body>
-    <div id="qunit-container">
-      <div id="qunit"></div>
-      <div id="qunit-fixture"></div>
-    </div>
-  </body>
-</html>
diff --git a/assets/javascript/tests/unit/alert.js b/assets/javascript/tests/unit/alert.js
deleted file mode 100755
index aee2b70..0000000
--- a/assets/javascript/tests/unit/alert.js
+++ /dev/null
@@ -1,79 +0,0 @@
-$(function () {
-  'use strict'
-
-  QUnit.module('alert plugin')
-
-  QUnit.test('should be defined on jquery object', function (assert) {
-    assert.expect(1)
-    assert.ok($(document.body).alert, 'alert method is defined')
-  })
-
-  QUnit.module('alert', {
-    beforeEach: function () {
-      // Run all tests in noConflict mode -- it's the only way to ensure that the plugin works in noConflict mode
-      $.fn.bootstrapAlert = $.fn.alert.noConflict()
-    },
-    afterEach: function () {
-      $.fn.alert = $.fn.bootstrapAlert
-      delete $.fn.bootstrapAlert
-    }
-  })
-
-  QUnit.test('should provide no conflict', function (assert) {
-    assert.expect(1)
-    assert.strictEqual(typeof $.fn.alert, 'undefined', 'alert was set back to undefined (org value)')
-  })
-
-  QUnit.test('should return jquery collection containing the element', function (assert) {
-    assert.expect(2)
-    var $el = $('<div/>')
-    var $alert = $el.bootstrapAlert()
-    assert.ok($alert instanceof $, 'returns jquery collection')
-    assert.strictEqual($alert[0], $el[0], 'collection contains element')
-  })
-
-  QUnit.test('should fade element out on clicking .close', function (assert) {
-    assert.expect(1)
-    var alertHTML = '<div class="alert alert-danger fade show">'
-        + '<a class="close" href="#" data-dismiss="alert">×</a>'
-        + '<p><strong>Holy guacamole!</strong> Best check yo self, you\'re not looking too good.</p>'
-        + '</div>'
-
-    var $alert = $(alertHTML).bootstrapAlert().appendTo($('#qunit-fixture'))
-
-    $alert.find('.close').trigger('click')
-
-    assert.strictEqual($alert.hasClass('show'), false, 'remove .show class on .close click')
-  })
-
-  QUnit.test('should remove element when clicking .close', function (assert) {
-    assert.expect(2)
-    var alertHTML = '<div class="alert alert-danger fade show">'
-        + '<a class="close" href="#" data-dismiss="alert">×</a>'
-        + '<p><strong>Holy guacamole!</strong> Best check yo self, you\'re not looking too good.</p>'
-        + '</div>'
-    var $alert = $(alertHTML).appendTo('#qunit-fixture').bootstrapAlert()
-
-    assert.notEqual($('#qunit-fixture').find('.alert').length, 0, 'element added to dom')
-
-    $alert.find('.close').trigger('click')
-
-    assert.strictEqual($('#qunit-fixture').find('.alert').length, 0, 'element removed from dom')
-  })
-
-  QUnit.test('should not fire closed when close is prevented', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-    $('<div class="alert"/>')
-      .on('close.bs.alert', function (e) {
-        e.preventDefault()
-        assert.ok(true, 'close event fired')
-        done()
-      })
-      .on('closed.bs.alert', function () {
-        assert.ok(false, 'closed event fired')
-      })
-      .bootstrapAlert('close')
-  })
-
-})
diff --git a/assets/javascript/tests/unit/button.js b/assets/javascript/tests/unit/button.js
deleted file mode 100755
index e2a51bb..0000000
--- a/assets/javascript/tests/unit/button.js
+++ /dev/null
@@ -1,176 +0,0 @@
-$(function () {
-  'use strict'
-
-  QUnit.module('button plugin')
-
-  QUnit.test('should be defined on jquery object', function (assert) {
-    assert.expect(1)
-    assert.ok($(document.body).button, 'button method is defined')
-  })
-
-  QUnit.module('button', {
-    beforeEach: function () {
-      // Run all tests in noConflict mode -- it's the only way to ensure that the plugin works in noConflict mode
-      $.fn.bootstrapButton = $.fn.button.noConflict()
-    },
-    afterEach: function () {
-      $.fn.button = $.fn.bootstrapButton
-      delete $.fn.bootstrapButton
-    }
-  })
-
-  QUnit.test('should provide no conflict', function (assert) {
-    assert.expect(1)
-    assert.strictEqual(typeof $.fn.button, 'undefined', 'button was set back to undefined (org value)')
-  })
-
-  QUnit.test('should return jquery collection containing the element', function (assert) {
-    assert.expect(2)
-    var $el = $('<div/>')
-    var $button = $el.bootstrapButton()
-    assert.ok($button instanceof $, 'returns jquery collection')
-    assert.strictEqual($button[0], $el[0], 'collection contains element')
-  })
-
-  QUnit.test('should toggle active', function (assert) {
-    assert.expect(2)
-    var $btn = $('<button class="btn" data-toggle="button">mdo</button>')
-    assert.ok(!$btn.hasClass('active'), 'btn does not have active class')
-    $btn.bootstrapButton('toggle')
-    assert.ok($btn.hasClass('active'), 'btn has class active')
-  })
-
-  QUnit.test('should toggle active when btn children are clicked', function (assert) {
-    assert.expect(2)
-    var $btn = $('<button class="btn" data-toggle="button">mdo</button>')
-    var $inner = $('<i/>')
-    $btn
-      .append($inner)
-      .appendTo('#qunit-fixture')
-    assert.ok(!$btn.hasClass('active'), 'btn does not have active class')
-    $inner.trigger('click')
-    assert.ok($btn.hasClass('active'), 'btn has class active')
-  })
-
-  QUnit.test('should toggle aria-pressed', function (assert) {
-    assert.expect(2)
-    var $btn = $('<button class="btn" data-toggle="button" aria-pressed="false">redux</button>')
-    assert.strictEqual($btn.attr('aria-pressed'), 'false', 'btn aria-pressed state is false')
-    $btn.bootstrapButton('toggle')
-    assert.strictEqual($btn.attr('aria-pressed'), 'true', 'btn aria-pressed state is true')
-  })
-
-  QUnit.test('should toggle aria-pressed on buttons with container', function (assert) {
-    assert.expect(1)
-    var groupHTML = '<div class="btn-group" data-toggle="buttons">' +
-        '<button id="btn1" class="btn btn-secondary" type="button">One</button>' +
-        '<button class="btn btn-secondary" type="button">Two</button>' +
-      '</div>'
-    $('#qunit-fixture').append(groupHTML)
-    $('#btn1').bootstrapButton('toggle')
-    assert.strictEqual($('#btn1').attr('aria-pressed'), 'true')
-  })
-
-  QUnit.test('should toggle aria-pressed when btn children are clicked', function (assert) {
-    assert.expect(2)
-    var $btn = $('<button class="btn" data-toggle="button" aria-pressed="false">redux</button>')
-    var $inner = $('<i/>')
-    $btn
-      .append($inner)
-      .appendTo('#qunit-fixture')
-    assert.strictEqual($btn.attr('aria-pressed'), 'false', 'btn aria-pressed state is false')
-    $inner.trigger('click')
-    assert.strictEqual($btn.attr('aria-pressed'), 'true', 'btn aria-pressed state is true')
-  })
-
-  QUnit.test('should trigger input change event when toggled button has input field', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    var groupHTML = '<div class="btn-group" data-toggle="buttons">'
-      + '<label class="btn btn-primary">'
-      + '<input type="radio" id="radio" autocomplete="off">Radio'
-      + '</label>'
-      + '</div>'
-    var $group = $(groupHTML).appendTo('#qunit-fixture')
-
-    $group.find('input').on('change', function (e) {
-      e.preventDefault()
-      assert.ok(true, 'change event fired')
-      done()
-    })
-
-    $group.find('label').trigger('click')
-  })
-
-  QUnit.test('should check for closest matching toggle', function (assert) {
-    assert.expect(12)
-    var groupHTML = '<div class="btn-group" data-toggle="buttons">'
-      + '<label class="btn btn-primary active">'
-      + '<input type="radio" name="options" id="option1" checked="true"> Option 1'
-      + '</label>'
-      + '<label class="btn btn-primary">'
-      + '<input type="radio" name="options" id="option2"> Option 2'
-      + '</label>'
-      + '<label class="btn btn-primary">'
-      + '<input type="radio" name="options" id="option3"> Option 3'
-      + '</label>'
-      + '</div>'
-    var $group = $(groupHTML).appendTo('#qunit-fixture')
-
-    var $btn1 = $group.children().eq(0)
-    var $btn2 = $group.children().eq(1)
-
-    assert.ok($btn1.hasClass('active'), 'btn1 has active class')
-    assert.ok($btn1.find('input').prop('checked'), 'btn1 is checked')
-    assert.ok(!$btn2.hasClass('active'), 'btn2 does not have active class')
-    assert.ok(!$btn2.find('input').prop('checked'), 'btn2 is not checked')
-    $btn2.find('input').trigger('click')
-    assert.ok(!$btn1.hasClass('active'), 'btn1 does not have active class')
-    assert.ok(!$btn1.find('input').prop('checked'), 'btn1 is not checked')
-    assert.ok($btn2.hasClass('active'), 'btn2 has active class')
-    assert.ok($btn2.find('input').prop('checked'), 'btn2 is checked')
-
-    $btn2.find('input').trigger('click') // clicking an already checked radio should not un-check it
-    assert.ok(!$btn1.hasClass('active'), 'btn1 does not have active class')
-    assert.ok(!$btn1.find('input').prop('checked'), 'btn1 is not checked')
-    assert.ok($btn2.hasClass('active'), 'btn2 has active class')
-    assert.ok($btn2.find('input').prop('checked'), 'btn2 is checked')
-  })
-
-  QUnit.test('should not add aria-pressed on labels for radio/checkbox inputs in a data-toggle="buttons" group', function (assert) {
-    assert.expect(2)
-    var groupHTML = '<div class="btn-group" data-toggle="buttons">'
-      + '<label class="btn btn-primary"><input type="checkbox" autocomplete="off"> Checkbox</label>'
-      + '<label class="btn btn-primary"><input type="radio" name="options" autocomplete="off"> Radio</label>'
-      + '</div>'
-    var $group = $(groupHTML).appendTo('#qunit-fixture')
-
-    var $btn1 = $group.children().eq(0)
-    var $btn2 = $group.children().eq(1)
-
-    $btn1.find('input').trigger('click')
-    assert.ok($btn1.is(':not([aria-pressed])'), 'label for nested checkbox input has not been given an aria-pressed attribute')
-
-    $btn2.find('input').trigger('click')
-    assert.ok($btn2.is(':not([aria-pressed])'), 'label for nested radio input has not been given an aria-pressed attribute')
-  })
-
-  QUnit.test('should handle disabled attribute on non-button elements', function (assert) {
-    assert.expect(2)
-    var groupHTML = '  <div class="btn-group disabled" data-toggle="buttons" aria-disabled="true" disabled>'
-      + '<label class="btn btn-danger disabled" aria-disabled="true" disabled>'
-      + '<input type="checkbox" aria-disabled="true" autocomplete="off" disabled class="disabled"/>'
-      + '</label>'
-      + '</div>'
-    var $group = $(groupHTML).appendTo('#qunit-fixture')
-
-    var $btn = $group.children().eq(0)
-    var $input = $btn.children().eq(0)
-
-    $btn.trigger('click')
-    assert.ok($btn.is(':not(.active)'), 'button did not become active')
-    assert.ok(!$input.is(':checked'), 'checkbox did not get checked')
-  })
-
-})
diff --git a/assets/javascript/tests/unit/carousel.js b/assets/javascript/tests/unit/carousel.js
deleted file mode 100755
index 521b24c..0000000
--- a/assets/javascript/tests/unit/carousel.js
+++ /dev/null
@@ -1,921 +0,0 @@
-$(function () {
-  'use strict'
-
-  QUnit.module('carousel plugin')
-
-  QUnit.test('should be defined on jQuery object', function (assert) {
-    assert.expect(1)
-    assert.ok($(document.body).carousel, 'carousel method is defined')
-  })
-
-  QUnit.module('carousel', {
-    beforeEach: function () {
-      // Run all tests in noConflict mode -- it's the only way to ensure that the plugin works in noConflict mode
-      $.fn.bootstrapCarousel = $.fn.carousel.noConflict()
-    },
-    afterEach: function () {
-      $.fn.carousel = $.fn.bootstrapCarousel
-      delete $.fn.bootstrapCarousel
-    }
-  })
-
-  QUnit.test('should provide no conflict', function (assert) {
-    assert.expect(1)
-    assert.strictEqual(typeof $.fn.carousel, 'undefined', 'carousel was set back to undefined (orig value)')
-  })
-
-  QUnit.test('should throw explicit error on undefined method', function (assert) {
-    assert.expect(1)
-    var $el = $('<div/>')
-    $el.bootstrapCarousel()
-    try {
-      $el.bootstrapCarousel('noMethod')
-    }
-    catch (err) {
-      assert.strictEqual(err.message, 'No method named "noMethod"')
-    }
-  })
-
-  QUnit.test('should return jquery collection containing the element', function (assert) {
-    assert.expect(2)
-    var $el = $('<div/>')
-    var $carousel = $el.bootstrapCarousel()
-    assert.ok($carousel instanceof $, 'returns jquery collection')
-    assert.strictEqual($carousel[0], $el[0], 'collection contains element')
-  })
-
-  QUnit.test('should type check config options', function (assert) {
-    assert.expect(2)
-
-    var message
-    var expectedMessage = 'CAROUSEL: Option "interval" provided type "string" but expected type "(number|boolean)".'
-    var config = {
-      interval: 'fat sux'
-    }
-
-    try {
-      $('<div/>').bootstrapCarousel(config)
-    } catch (e) {
-      message = e.message
-    }
-
-    assert.ok(message === expectedMessage, 'correct error message')
-
-    config = {
-      keyboard: document.createElement('div')
-    }
-    expectedMessage = 'CAROUSEL: Option "keyboard" provided type "element" but expected type "boolean".'
-
-    try {
-      $('<div/>').bootstrapCarousel(config)
-    } catch (e) {
-      message = e.message
-    }
-
-    assert.ok(message === expectedMessage, 'correct error message')
-  })
-
-
-  QUnit.test('should not fire slid when slide is prevented', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-    $('<div class="carousel"/>')
-      .on('slide.bs.carousel', function (e) {
-        e.preventDefault()
-        assert.ok(true, 'slide event fired')
-        done()
-      })
-      .on('slid.bs.carousel', function () {
-        assert.ok(false, 'slid event fired')
-      })
-      .bootstrapCarousel('next')
-  })
-
-  QUnit.test('should reset when slide is prevented', function (assert) {
-    assert.expect(6)
-    var carouselHTML = '<div id="carousel-example-generic" class="carousel slide">'
-        + '<ol class="carousel-indicators">'
-        + '<li data-target="#carousel-example-generic" data-slide-to="0" class="active"/>'
-        + '<li data-target="#carousel-example-generic" data-slide-to="1"/>'
-        + '<li data-target="#carousel-example-generic" data-slide-to="2"/>'
-        + '</ol>'
-        + '<div class="carousel-inner">'
-        + '<div class="carousel-item active">'
-        + '<div class="carousel-caption"/>'
-        + '</div>'
-        + '<div class="carousel-item">'
-        + '<div class="carousel-caption"/>'
-        + '</div>'
-        + '<div class="carousel-item">'
-        + '<div class="carousel-caption"/>'
-        + '</div>'
-        + '</div>'
-        + '<a class="left carousel-control" href="#carousel-example-generic" data-slide="prev"/>'
-        + '<a class="right carousel-control" href="#carousel-example-generic" data-slide="next"/>'
-        + '</div>'
-    var $carousel = $(carouselHTML)
-
-    var done = assert.async()
-    $carousel
-      .one('slide.bs.carousel', function (e) {
-        e.preventDefault()
-        setTimeout(function () {
-          assert.ok($carousel.find('.carousel-item:eq(0)').is('.active'), 'first item still active')
-          assert.ok($carousel.find('.carousel-indicators li:eq(0)').is('.active'), 'first indicator still active')
-          $carousel.bootstrapCarousel('next')
-        }, 0)
-      })
-      .one('slid.bs.carousel', function () {
-        setTimeout(function () {
-          assert.ok(!$carousel.find('.carousel-item:eq(0)').is('.active'), 'first item still active')
-          assert.ok(!$carousel.find('.carousel-indicators li:eq(0)').is('.active'), 'first indicator still active')
-          assert.ok($carousel.find('.carousel-item:eq(1)').is('.active'), 'second item active')
-          assert.ok($carousel.find('.carousel-indicators li:eq(1)').is('.active'), 'second indicator active')
-          done()
-        }, 0)
-      })
-      .bootstrapCarousel('next')
-  })
-
-  QUnit.test('should fire slide event with direction', function (assert) {
-    assert.expect(4)
-    var carouselHTML = '<div id="myCarousel" class="carousel slide">'
-        + '<div class="carousel-inner">'
-        + '<div class="carousel-item active">'
-        + '<img alt="">'
-        + '<div class="carousel-caption">'
-        + '<h4>First Thumbnail label</h4>'
-        + '<p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec '
-        + 'id elit non mi porta gravida at eget metus. Nullam id dolor id nibh '
-        + 'ultricies vehicula ut id elit.</p>'
-        + '</div>'
-        + '</div>'
-        + '<div class="carousel-item">'
-        + '<img alt="">'
-        + '<div class="carousel-caption">'
-        + '<h4>Second Thumbnail label</h4>'
-        + '<p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec '
-        + 'id elit non mi porta gravida at eget metus. Nullam id dolor id nibh '
-        + 'ultricies vehicula ut id elit.</p>'
-        + '</div>'
-        + '</div>'
-        + '<div class="carousel-item">'
-        + '<img alt="">'
-        + '<div class="carousel-caption">'
-        + '<h4>Third Thumbnail label</h4>'
-        + '<p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec '
-        + 'id elit non mi porta gravida at eget metus. Nullam id dolor id nibh '
-        + 'ultricies vehicula ut id elit.</p>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-        + '<a class="left carousel-control" href="#myCarousel" data-slide="prev">‹</a>'
-        + '<a class="right carousel-control" href="#myCarousel" data-slide="next">›</a>'
-        + '</div>'
-    var $carousel = $(carouselHTML)
-
-    var done = assert.async()
-
-    $carousel
-      .one('slide.bs.carousel', function (e) {
-        assert.ok(e.direction, 'direction present on next')
-        assert.strictEqual(e.direction, 'left', 'direction is left on next')
-
-        $carousel
-          .one('slide.bs.carousel', function (e) {
-            assert.ok(e.direction, 'direction present on prev')
-            assert.strictEqual(e.direction, 'right', 'direction is right on prev')
-            done()
-          })
-          .bootstrapCarousel('prev')
-      })
-      .bootstrapCarousel('next')
-  })
-
-  QUnit.test('should fire slid event with direction', function (assert) {
-    assert.expect(4)
-    var carouselHTML = '<div id="myCarousel" class="carousel slide">'
-        + '<div class="carousel-inner">'
-        + '<div class="carousel-item active">'
-        + '<img alt="">'
-        + '<div class="carousel-caption">'
-        + '<h4>First Thumbnail label</h4>'
-        + '<p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec '
-        + 'id elit non mi porta gravida at eget metus. Nullam id dolor id nibh '
-        + 'ultricies vehicula ut id elit.</p>'
-        + '</div>'
-        + '</div>'
-        + '<div class="carousel-item">'
-        + '<img alt="">'
-        + '<div class="carousel-caption">'
-        + '<h4>Second Thumbnail label</h4>'
-        + '<p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec '
-        + 'id elit non mi porta gravida at eget metus. Nullam id dolor id nibh '
-        + 'ultricies vehicula ut id elit.</p>'
-        + '</div>'
-        + '</div>'
-        + '<div class="carousel-item">'
-        + '<img alt="">'
-        + '<div class="carousel-caption">'
-        + '<h4>Third Thumbnail label</h4>'
-        + '<p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec '
-        + 'id elit non mi porta gravida at eget metus. Nullam id dolor id nibh '
-        + 'ultricies vehicula ut id elit.</p>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-        + '<a class="left carousel-control" href="#myCarousel" data-slide="prev">‹</a>'
-        + '<a class="right carousel-control" href="#myCarousel" data-slide="next">›</a>'
-        + '</div>'
-    var $carousel = $(carouselHTML)
-
-    var done = assert.async()
-
-    $carousel
-      .one('slid.bs.carousel', function (e) {
-        assert.ok(e.direction, 'direction present on next')
-        assert.strictEqual(e.direction, 'left', 'direction is left on next')
-
-        $carousel
-          .one('slid.bs.carousel', function (e) {
-            assert.ok(e.direction, 'direction present on prev')
-            assert.strictEqual(e.direction, 'right', 'direction is right on prev')
-            done()
-          })
-          .bootstrapCarousel('prev')
-      })
-      .bootstrapCarousel('next')
-  })
-
-  QUnit.test('should fire slide event with relatedTarget', function (assert) {
-    assert.expect(2)
-    var template = '<div id="myCarousel" class="carousel slide">'
-        + '<div class="carousel-inner">'
-        + '<div class="carousel-item active">'
-        + '<img alt="">'
-        + '<div class="carousel-caption">'
-        + '<h4>First Thumbnail label</h4>'
-        + '<p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec '
-        + 'id elit non mi porta gravida at eget metus. Nullam id dolor id nibh '
-        + 'ultricies vehicula ut id elit.</p>'
-        + '</div>'
-        + '</div>'
-        + '<div class="carousel-item">'
-        + '<img alt="">'
-        + '<div class="carousel-caption">'
-        + '<h4>Second Thumbnail label</h4>'
-        + '<p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec '
-        + 'id elit non mi porta gravida at eget metus. Nullam id dolor id nibh '
-        + 'ultricies vehicula ut id elit.</p>'
-        + '</div>'
-        + '</div>'
-        + '<div class="carousel-item">'
-        + '<img alt="">'
-        + '<div class="carousel-caption">'
-        + '<h4>Third Thumbnail label</h4>'
-        + '<p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec '
-        + 'id elit non mi porta gravida at eget metus. Nullam id dolor id nibh '
-        + 'ultricies vehicula ut id elit.</p>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-        + '<a class="left carousel-control" href="#myCarousel" data-slide="prev">‹</a>'
-        + '<a class="right carousel-control" href="#myCarousel" data-slide="next">›</a>'
-        + '</div>'
-
-    var done = assert.async()
-
-    $(template)
-      .on('slide.bs.carousel', function (e) {
-        assert.ok(e.relatedTarget, 'relatedTarget present')
-        assert.ok($(e.relatedTarget).hasClass('carousel-item'), 'relatedTarget has class "item"')
-        done()
-      })
-      .bootstrapCarousel('next')
-  })
-
-  QUnit.test('should fire slid event with relatedTarget', function (assert) {
-    assert.expect(2)
-    var template = '<div id="myCarousel" class="carousel slide">'
-        + '<div class="carousel-inner">'
-        + '<div class="carousel-item active">'
-        + '<img alt="">'
-        + '<div class="carousel-caption">'
-        + '<h4>First Thumbnail label</h4>'
-        + '<p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec '
-        + 'id elit non mi porta gravida at eget metus. Nullam id dolor id nibh '
-        + 'ultricies vehicula ut id elit.</p>'
-        + '</div>'
-        + '</div>'
-        + '<div class="carousel-item">'
-        + '<img alt="">'
-        + '<div class="carousel-caption">'
-        + '<h4>Second Thumbnail label</h4>'
-        + '<p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec '
-        + 'id elit non mi porta gravida at eget metus. Nullam id dolor id nibh '
-        + 'ultricies vehicula ut id elit.</p>'
-        + '</div>'
-        + '</div>'
-        + '<div class="carousel-item">'
-        + '<img alt="">'
-        + '<div class="carousel-caption">'
-        + '<h4>Third Thumbnail label</h4>'
-        + '<p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec '
-        + 'id elit non mi porta gravida at eget metus. Nullam id dolor id nibh '
-        + 'ultricies vehicula ut id elit.</p>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-        + '<a class="left carousel-control" href="#myCarousel" data-slide="prev">‹</a>'
-        + '<a class="right carousel-control" href="#myCarousel" data-slide="next">›</a>'
-        + '</div>'
-
-    var done = assert.async()
-
-    $(template)
-      .on('slid.bs.carousel', function (e) {
-        assert.ok(e.relatedTarget, 'relatedTarget present')
-        assert.ok($(e.relatedTarget).hasClass('carousel-item'), 'relatedTarget has class "item"')
-        done()
-      })
-      .bootstrapCarousel('next')
-  })
-
-  QUnit.test('should fire slid and slide events with from and to', function (assert) {
-    assert.expect(4)
-    var template = '<div id="myCarousel" class="carousel slide">'
-        + '<div class="carousel-inner">'
-        + '<div class="carousel-item active">'
-        + '<img alt="">'
-        + '<div class="carousel-caption">'
-        + '<h4>First Thumbnail label</h4>'
-        + '</div>'
-        + '</div>'
-        + '<div class="carousel-item">'
-        + '<img alt="">'
-        + '<div class="carousel-caption">'
-        + '<h4>Second Thumbnail label</h4>'
-        + '</div>'
-        + '</div>'
-        + '<div class="carousel-item">'
-        + '<img alt="">'
-        + '<div class="carousel-caption">'
-        + '<h4>Third Thumbnail label</h4>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-        + '<a class="left carousel-control" href="#myCarousel" data-slide="prev">‹</a>'
-        + '<a class="right carousel-control" href="#myCarousel" data-slide="next">›</a>'
-        + '</div>'
-
-    var done = assert.async()
-    $(template)
-      .on('slid.bs.carousel', function (e) {
-        assert.ok(typeof e.from !== 'undefined', 'from present')
-        assert.ok(typeof e.to !== 'undefined', 'to present')
-        $(this).off()
-        done()
-      })
-      .on('slide.bs.carousel', function (e) {
-        assert.ok(typeof e.from !== 'undefined', 'from present')
-        assert.ok(typeof e.to !== 'undefined', 'to present')
-        $(this).off('slide.bs.carousel')
-      })
-      .bootstrapCarousel('next')
-  })
-
-  QUnit.test('should set interval from data attribute', function (assert) {
-    assert.expect(4)
-    var templateHTML = '<div id="myCarousel" class="carousel slide">'
-        + '<div class="carousel-inner">'
-        + '<div class="carousel-item active">'
-        + '<img alt="">'
-        + '<div class="carousel-caption">'
-        + '<h4>First Thumbnail label</h4>'
-        + '<p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec '
-        + 'id elit non mi porta gravida at eget metus. Nullam id dolor id nibh '
-        + 'ultricies vehicula ut id elit.</p>'
-        + '</div>'
-        + '</div>'
-        + '<div class="carousel-item">'
-        + '<img alt="">'
-        + '<div class="carousel-caption">'
-        + '<h4>Second Thumbnail label</h4>'
-        + '<p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec '
-        + 'id elit non mi porta gravida at eget metus. Nullam id dolor id nibh '
-        + 'ultricies vehicula ut id elit.</p>'
-        + '</div>'
-        + '</div>'
-        + '<div class="carousel-item">'
-        + '<img alt="">'
-        + '<div class="carousel-caption">'
-        + '<h4>Third Thumbnail label</h4>'
-        + '<p>Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec '
-        + 'id elit non mi porta gravida at eget metus. Nullam id dolor id nibh '
-        + 'ultricies vehicula ut id elit.</p>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-        + '<a class="left carousel-control" href="#myCarousel" data-slide="prev">‹</a>'
-        + '<a class="right carousel-control" href="#myCarousel" data-slide="next">›</a>'
-        + '</div>'
-    var $carousel = $(templateHTML)
-    $carousel.attr('data-interval', 1814)
-
-    $carousel.appendTo('body')
-    $('[data-slide]').first().trigger('click')
-    assert.strictEqual($carousel.data('bs.carousel')._config.interval, 1814)
-    $carousel.remove()
-
-    $carousel.appendTo('body').attr('data-modal', 'foobar')
-    $('[data-slide]').first().trigger('click')
-    assert.strictEqual($carousel.data('bs.carousel')._config.interval, 1814, 'even if there is an data-modal attribute set')
-    $carousel.remove()
-
-    $carousel.appendTo('body')
-    $('[data-slide]').first().trigger('click')
-    $carousel.attr('data-interval', 1860)
-    $('[data-slide]').first().trigger('click')
-    assert.strictEqual($carousel.data('bs.carousel')._config.interval, 1814, 'attributes should be read only on initialization')
-    $carousel.remove()
-
-    $carousel.attr('data-interval', false)
-    $carousel.appendTo('body')
-    $carousel.bootstrapCarousel(1)
-    assert.strictEqual($carousel.data('bs.carousel')._config.interval, false, 'data attribute has higher priority than default options')
-    $carousel.remove()
-  })
-
-  QUnit.test('should skip over non-items when using item indices', function (assert) {
-    assert.expect(2)
-    var templateHTML = '<div id="myCarousel" class="carousel" data-interval="1814">'
-        + '<div class="carousel-inner">'
-        + '<div class="carousel-item active">'
-        + '<img alt="">'
-        + '</div>'
-        + '<script type="text/x-metamorph" id="thingy"/>'
-        + '<div class="carousel-item">'
-        + '<img alt="">'
-        + '</div>'
-        + '<div class="carousel-item">'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-    var $template = $(templateHTML)
-
-    $template.bootstrapCarousel()
-
-    assert.strictEqual($template.find('.carousel-item')[0], $template.find('.active')[0], 'first item active')
-
-    $template.bootstrapCarousel(1)
-
-    assert.strictEqual($template.find('.carousel-item')[1], $template.find('.active')[0], 'second item active')
-  })
-
-  QUnit.test('should skip over non-items when using next/prev methods', function (assert) {
-    assert.expect(2)
-    var templateHTML = '<div id="myCarousel" class="carousel" data-interval="1814">'
-        + '<div class="carousel-inner">'
-        + '<div class="carousel-item active">'
-        + '<img alt="">'
-        + '</div>'
-        + '<script type="text/x-metamorph" id="thingy"/>'
-        + '<div class="carousel-item">'
-        + '<img alt="">'
-        + '</div>'
-        + '<div class="carousel-item">'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-    var $template = $(templateHTML)
-
-    $template.bootstrapCarousel()
-
-    assert.strictEqual($template.find('.carousel-item')[0], $template.find('.active')[0], 'first item active')
-
-    $template.bootstrapCarousel('next')
-
-    assert.strictEqual($template.find('.carousel-item')[1], $template.find('.active')[0], 'second item active')
-  })
-
-  QUnit.test('should go to previous item if left arrow key is pressed', function (assert) {
-    assert.expect(2)
-    var templateHTML = '<div id="myCarousel" class="carousel" data-interval="false">'
-        + '<div class="carousel-inner">'
-        + '<div id="first" class="carousel-item">'
-        + '<img alt="">'
-        + '</div>'
-        + '<div id="second" class="carousel-item active">'
-        + '<img alt="">'
-        + '</div>'
-        + '<div id="third" class="carousel-item">'
-        + '<img alt="">'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-    var $template = $(templateHTML)
-
-    $template.bootstrapCarousel()
-
-    assert.strictEqual($template.find('.carousel-item')[1], $template.find('.active')[0], 'second item active')
-
-    $template.trigger($.Event('keydown', { which: 37 }))
-
-    assert.strictEqual($template.find('.carousel-item')[0], $template.find('.active')[0], 'first item active')
-  })
-
-  QUnit.test('should go to next item if right arrow key is pressed', function (assert) {
-    assert.expect(2)
-    var templateHTML = '<div id="myCarousel" class="carousel" data-interval="false">'
-        + '<div class="carousel-inner">'
-        + '<div id="first" class="carousel-item active">'
-        + '<img alt="">'
-        + '</div>'
-        + '<div id="second" class="carousel-item">'
-        + '<img alt="">'
-        + '</div>'
-        + '<div id="third" class="carousel-item">'
-        + '<img alt="">'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-    var $template = $(templateHTML)
-
-    $template.bootstrapCarousel()
-
-    assert.strictEqual($template.find('.carousel-item')[0], $template.find('.active')[0], 'first item active')
-
-    $template.trigger($.Event('keydown', { which: 39 }))
-
-    assert.strictEqual($template.find('.carousel-item')[1], $template.find('.active')[0], 'second item active')
-  })
-
-  QUnit.test('should not prevent keydown if key is not ARROW_LEFT or ARROW_RIGHT', function (assert) {
-    assert.expect(2)
-    var templateHTML = '<div id="myCarousel" class="carousel" data-interval="false">'
-        + '<div class="carousel-inner">'
-        + '<div id="first" class="carousel-item active">'
-        + '<img alt="">'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-    var $template = $(templateHTML)
-
-    $template.bootstrapCarousel()
-    var done = assert.async()
-
-    var eventArrowDown = $.Event('keydown', { which: 40 })
-    var eventArrowUp   = $.Event('keydown', { which: 38 })
-
-    $template.one('keydown', function (event) {
-      assert.strictEqual(event.isDefaultPrevented(), false)
-    })
-
-    $template.trigger(eventArrowDown)
-
-    $template.one('keydown', function (event) {
-      assert.strictEqual(event.isDefaultPrevented(), false)
-      done()
-    })
-
-    $template.trigger(eventArrowUp)
-  })
-
-  QUnit.test('should support disabling the keyboard navigation', function (assert) {
-    assert.expect(3)
-    var templateHTML = '<div id="myCarousel" class="carousel" data-interval="false" data-keyboard="false">'
-        + '<div class="carousel-inner">'
-        + '<div id="first" class="carousel-item active">'
-        + '<img alt="">'
-        + '</div>'
-        + '<div id="second" class="carousel-item">'
-        + '<img alt="">'
-        + '</div>'
-        + '<div id="third" class="carousel-item">'
-        + '<img alt="">'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-    var $template = $(templateHTML)
-
-    $template.bootstrapCarousel()
-
-    assert.strictEqual($template.find('.carousel-item')[0], $template.find('.active')[0], 'first item active')
-
-    $template.trigger($.Event('keydown', { which: 39 }))
-
-    assert.strictEqual($template.find('.carousel-item')[0], $template.find('.active')[0], 'first item still active after right arrow press')
-
-    $template.trigger($.Event('keydown', { which: 37 }))
-
-    assert.strictEqual($template.find('.carousel-item')[0], $template.find('.active')[0], 'first item still active after left arrow press')
-  })
-
-  QUnit.test('should ignore keyboard events within <input>s and <textarea>s', function (assert) {
-    assert.expect(7)
-    var templateHTML = '<div id="myCarousel" class="carousel" data-interval="false">'
-        + '<div class="carousel-inner">'
-        + '<div id="first" class="carousel-item active">'
-        + '<img alt="">'
-        + '<input type="text" id="in-put">'
-        + '<textarea id="text-area"></textarea>'
-        + '</div>'
-        + '<div id="second" class="carousel-item">'
-        + '<img alt="">'
-        + '</div>'
-        + '<div id="third" class="carousel-item">'
-        + '<img alt="">'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-    var $template = $(templateHTML)
-    var $input = $template.find('#in-put')
-    var $textarea = $template.find('#text-area')
-
-    assert.strictEqual($input.length, 1, 'found <input>')
-    assert.strictEqual($textarea.length, 1, 'found <textarea>')
-
-    $template.bootstrapCarousel()
-
-    assert.strictEqual($template.find('.carousel-item')[0], $template.find('.active')[0], 'first item active')
-
-
-    $input.trigger($.Event('keydown', { which: 39 }))
-    assert.strictEqual($template.find('.carousel-item')[0], $template.find('.active')[0], 'first item still active after right arrow press in <input>')
-
-    $input.trigger($.Event('keydown', { which: 37 }))
-    assert.strictEqual($template.find('.carousel-item')[0], $template.find('.active')[0], 'first item still active after left arrow press in <input>')
-
-
-    $textarea.trigger($.Event('keydown', { which: 39 }))
-    assert.strictEqual($template.find('.carousel-item')[0], $template.find('.active')[0], 'first item still active after right arrow press in <textarea>')
-
-    $textarea.trigger($.Event('keydown', { which: 37 }))
-    assert.strictEqual($template.find('.carousel-item')[0], $template.find('.active')[0], 'first item still active after left arrow press in <textarea>')
-  })
-
-  QUnit.test('should wrap around from end to start when wrap option is true', function (assert) {
-    assert.expect(3)
-    var carouselHTML = '<div id="carousel-example-generic" class="carousel slide" data-wrap="true">'
-        + '<ol class="carousel-indicators">'
-        + '<li data-target="#carousel-example-generic" data-slide-to="0" class="active"/>'
-        + '<li data-target="#carousel-example-generic" data-slide-to="1"/>'
-        + '<li data-target="#carousel-example-generic" data-slide-to="2"/>'
-        + '</ol>'
-        + '<div class="carousel-inner">'
-        + '<div class="carousel-item active" id="one">'
-        + '<div class="carousel-caption"/>'
-        + '</div>'
-        + '<div class="carousel-item" id="two">'
-        + '<div class="carousel-caption"/>'
-        + '</div>'
-        + '<div class="carousel-item" id="three">'
-        + '<div class="carousel-caption"/>'
-        + '</div>'
-        + '</div>'
-        + '<a class="left carousel-control" href="#carousel-example-generic" data-slide="prev"/>'
-        + '<a class="right carousel-control" href="#carousel-example-generic" data-slide="next"/>'
-        + '</div>'
-    var $carousel = $(carouselHTML)
-    var getActiveId = function () { return $carousel.find('.carousel-item.active').attr('id') }
-
-    var done = assert.async()
-
-    $carousel
-      .one('slid.bs.carousel', function () {
-        assert.strictEqual(getActiveId(), 'two', 'carousel slid from 1st to 2nd slide')
-        $carousel
-          .one('slid.bs.carousel', function () {
-            assert.strictEqual(getActiveId(), 'three', 'carousel slid from 2nd to 3rd slide')
-            $carousel
-              .one('slid.bs.carousel', function () {
-                assert.strictEqual(getActiveId(), 'one', 'carousel wrapped around and slid from 3rd to 1st slide')
-                done()
-              })
-              .bootstrapCarousel('next')
-          })
-          .bootstrapCarousel('next')
-      })
-      .bootstrapCarousel('next')
-  })
-
-  QUnit.test('should wrap around from start to end when wrap option is true', function (assert) {
-    assert.expect(1)
-    var carouselHTML = '<div id="carousel-example-generic" class="carousel slide" data-wrap="true">'
-        + '<ol class="carousel-indicators">'
-        + '<li data-target="#carousel-example-generic" data-slide-to="0" class="active"/>'
-        + '<li data-target="#carousel-example-generic" data-slide-to="1"/>'
-        + '<li data-target="#carousel-example-generic" data-slide-to="2"/>'
-        + '</ol>'
-        + '<div class="carousel-inner">'
-        + '<div class="carousel-item active" id="one">'
-        + '<div class="carousel-caption"/>'
-        + '</div>'
-        + '<div class="carousel-item" id="two">'
-        + '<div class="carousel-caption"/>'
-        + '</div>'
-        + '<div class="carousel-item" id="three">'
-        + '<div class="carousel-caption"/>'
-        + '</div>'
-        + '</div>'
-        + '<a class="left carousel-control" href="#carousel-example-generic" data-slide="prev"/>'
-        + '<a class="right carousel-control" href="#carousel-example-generic" data-slide="next"/>'
-        + '</div>'
-    var $carousel = $(carouselHTML)
-
-    var done = assert.async()
-
-    $carousel
-      .on('slid.bs.carousel', function () {
-        assert.strictEqual($carousel.find('.carousel-item.active').attr('id'), 'three', 'carousel wrapped around and slid from 1st to 3rd slide')
-        done()
-      })
-      .bootstrapCarousel('prev')
-  })
-
-  QUnit.test('should stay at the end when the next method is called and wrap is false', function (assert) {
-    assert.expect(3)
-    var carouselHTML = '<div id="carousel-example-generic" class="carousel slide" data-wrap="false">'
-        + '<ol class="carousel-indicators">'
-        + '<li data-target="#carousel-example-generic" data-slide-to="0" class="active"/>'
-        + '<li data-target="#carousel-example-generic" data-slide-to="1"/>'
-        + '<li data-target="#carousel-example-generic" data-slide-to="2"/>'
-        + '</ol>'
-        + '<div class="carousel-inner">'
-        + '<div class="carousel-item active" id="one">'
-        + '<div class="carousel-caption"/>'
-        + '</div>'
-        + '<div class="carousel-item" id="two">'
-        + '<div class="carousel-caption"/>'
-        + '</div>'
-        + '<div class="carousel-item" id="three">'
-        + '<div class="carousel-caption"/>'
-        + '</div>'
-        + '</div>'
-        + '<a class="left carousel-control" href="#carousel-example-generic" data-slide="prev"/>'
-        + '<a class="right carousel-control" href="#carousel-example-generic" data-slide="next"/>'
-        + '</div>'
-    var $carousel = $(carouselHTML)
-    var getActiveId = function () { return $carousel.find('.carousel-item.active').attr('id') }
-
-    var done = assert.async()
-
-    $carousel
-      .one('slid.bs.carousel', function () {
-        assert.strictEqual(getActiveId(), 'two', 'carousel slid from 1st to 2nd slide')
-        $carousel
-          .one('slid.bs.carousel', function () {
-            assert.strictEqual(getActiveId(), 'three', 'carousel slid from 2nd to 3rd slide')
-            $carousel
-              .one('slid.bs.carousel', function () {
-                assert.ok(false, 'carousel slid when it should not have slid')
-              })
-              .bootstrapCarousel('next')
-            assert.strictEqual(getActiveId(), 'three', 'carousel did not wrap around and stayed on 3rd slide')
-            done()
-          })
-          .bootstrapCarousel('next')
-      })
-      .bootstrapCarousel('next')
-  })
-
-  QUnit.test('should stay at the start when the prev method is called and wrap is false', function (assert) {
-    assert.expect(1)
-    var carouselHTML = '<div id="carousel-example-generic" class="carousel slide" data-wrap="false">'
-        + '<ol class="carousel-indicators">'
-        + '<li data-target="#carousel-example-generic" data-slide-to="0" class="active"/>'
-        + '<li data-target="#carousel-example-generic" data-slide-to="1"/>'
-        + '<li data-target="#carousel-example-generic" data-slide-to="2"/>'
-        + '</ol>'
-        + '<div class="carousel-inner">'
-        + '<div class="carousel-item active" id="one">'
-        + '<div class="carousel-caption"/>'
-        + '</div>'
-        + '<div class="carousel-item" id="two">'
-        + '<div class="carousel-caption"/>'
-        + '</div>'
-        + '<div class="carousel-item" id="three">'
-        + '<div class="carousel-caption"/>'
-        + '</div>'
-        + '</div>'
-        + '<a class="left carousel-control" href="#carousel-example-generic" data-slide="prev"/>'
-        + '<a class="right carousel-control" href="#carousel-example-generic" data-slide="next"/>'
-        + '</div>'
-    var $carousel = $(carouselHTML)
-
-    $carousel
-      .on('slid.bs.carousel', function () {
-        assert.ok(false, 'carousel slid when it should not have slid')
-      })
-      .bootstrapCarousel('prev')
-    assert.strictEqual($carousel.find('.carousel-item.active').attr('id'), 'one', 'carousel did not wrap around and stayed on 1st slide')
-  })
-
-  QUnit.test('should not prevent keydown for inputs and textareas', function (assert) {
-    assert.expect(2)
-    var templateHTML = '<div id="myCarousel" class="carousel" data-interval="false">'
-        + '<div class="carousel-inner">'
-          + '<div id="first" class="carousel-item">'
-            + '<input type="text" id="inputText" />'
-          + '</div>'
-          + '<div id="second" class="carousel-item active">'
-            + '<textarea id="txtArea"></textarea>'
-          + '</div>'
-        + '</div>'
-        + '</div>'
-    var $template = $(templateHTML)
-    var done = assert.async()
-    $template.appendTo('#qunit-fixture')
-    var $inputText = $template.find('#inputText')
-    var $textArea = $template.find('#txtArea')
-    $template.bootstrapCarousel()
-
-    var eventKeyDown = $.Event('keydown', { which: 65 }) // 65 for "a"
-    $inputText.on('keydown', function (event) {
-      assert.strictEqual(event.isDefaultPrevented(), false)
-    })
-    $inputText.trigger(eventKeyDown)
-
-    $textArea.on('keydown', function (event) {
-      assert.strictEqual(event.isDefaultPrevented(), false)
-      done()
-    })
-    $textArea.trigger(eventKeyDown)
-  })
-
-  QUnit.test('Should not go to the next item when the carousel is not visible', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-    var html = '<div id="myCarousel" class="carousel slide" data-interval="50" style="display: none;">'
-             + '  <div class="carousel-inner">'
-             + '    <div id="firstItem" class="carousel-item active">'
-             + '      <img alt="">'
-             + '    </div>'
-             + '    <div class="carousel-item">'
-             + '      <img alt="">'
-             + '    </div>'
-             + '    <div class="carousel-item">'
-             + '      <img alt="">'
-             + '    </div>'
-             + '  <a class="left carousel-control" href="#myCarousel" data-slide="prev">‹</a>'
-             + '  <a class="right carousel-control" href="#myCarousel" data-slide="next">›</a>'
-             + '</div>'
-    var $html = $(html)
-    $html
-      .appendTo('#qunit-fixture')
-      .bootstrapCarousel()
-
-    var $firstItem = $('#firstItem')
-    setTimeout(function () {
-      assert.ok($firstItem.hasClass('active'))
-      $html
-        .bootstrapCarousel('dispose')
-        .attr('style', 'visibility: hidden;')
-        .bootstrapCarousel()
-
-      setTimeout(function () {
-        assert.ok($firstItem.hasClass('active'))
-        done()
-      }, 80)
-    }, 80)
-  })
-
-  QUnit.test('Should not go to the next item when the parent of the carousel is not visible', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-    var html = '<div id="parent" style="display: none;">'
-             + '  <div id="myCarousel" class="carousel slide" data-interval="50" style="display: none;">'
-             + '    <div class="carousel-inner">'
-             + '      <div id="firstItem" class="carousel-item active">'
-             + '        <img alt="">'
-             + '      </div>'
-             + '      <div class="carousel-item">'
-             + '        <img alt="">'
-             + '      </div>'
-             + '      <div class="carousel-item">'
-             + '        <img alt="">'
-             + '      </div>'
-             + '    <a class="left carousel-control" href="#myCarousel" data-slide="prev">‹</a>'
-             + '    <a class="right carousel-control" href="#myCarousel" data-slide="next">›</a>'
-             + '  </div>'
-             + '</div>'
-    var $html = $(html)
-    $html.appendTo('#qunit-fixture')
-    var $parent = $html.find('#parent')
-    var $carousel = $html.find('#myCarousel')
-    $carousel.bootstrapCarousel()
-    var $firstItem = $('#firstItem')
-
-    setTimeout(function () {
-      assert.ok($firstItem.hasClass('active'))
-      $carousel.bootstrapCarousel('dispose')
-      $parent.attr('style', 'visibility: hidden;')
-      $carousel.bootstrapCarousel()
-
-      setTimeout(function () {
-        assert.ok($firstItem.hasClass('active'))
-        done()
-      }, 80)
-    }, 80)
-  })
-})
diff --git a/assets/javascript/tests/unit/collapse.js b/assets/javascript/tests/unit/collapse.js
deleted file mode 100755
index c36fe25..0000000
--- a/assets/javascript/tests/unit/collapse.js
+++ /dev/null
@@ -1,745 +0,0 @@
-$(function () {
-  'use strict'
-
-  QUnit.module('collapse plugin')
-
-  QUnit.test('should be defined on jquery object', function (assert) {
-    assert.expect(1)
-    assert.ok($(document.body).collapse, 'collapse method is defined')
-  })
-
-  QUnit.module('collapse', {
-    beforeEach: function () {
-      // Run all tests in noConflict mode -- it's the only way to ensure that the plugin works in noConflict mode
-      $.fn.bootstrapCollapse = $.fn.collapse.noConflict()
-    },
-    afterEach: function () {
-      $.fn.collapse = $.fn.bootstrapCollapse
-      delete $.fn.bootstrapCollapse
-    }
-  })
-
-  QUnit.test('should provide no conflict', function (assert) {
-    assert.expect(1)
-    assert.strictEqual(typeof $.fn.collapse, 'undefined', 'collapse was set back to undefined (org value)')
-  })
-
-  QUnit.test('should throw explicit error on undefined method', function (assert) {
-    assert.expect(1)
-    var $el = $('<div/>')
-    $el.bootstrapCollapse()
-    try {
-      $el.bootstrapCollapse('noMethod')
-    }
-    catch (err) {
-      assert.strictEqual(err.message, 'No method named "noMethod"')
-    }
-  })
-
-  QUnit.test('should return jquery collection containing the element', function (assert) {
-    assert.expect(2)
-    var $el = $('<div/>')
-    var $collapse = $el.bootstrapCollapse()
-    assert.ok($collapse instanceof $, 'returns jquery collection')
-    assert.strictEqual($collapse[0], $el[0], 'collection contains element')
-  })
-
-  QUnit.test('should show a collapsed element', function (assert) {
-    assert.expect(2)
-    var $el = $('<div class="collapse"/>').bootstrapCollapse('show')
-
-    assert.ok($el.hasClass('show'), 'has class "show"')
-    assert.ok(!/height/i.test($el.attr('style')), 'has height reset')
-  })
-
-
-  QUnit.test('should show multiple collapsed elements', function (assert) {
-    assert.expect(4)
-    var done = assert.async()
-    var $target = $('<a role="button" data-toggle="collapse" class="collapsed" href=".multi"/>').appendTo('#qunit-fixture')
-    var $el = $('<div class="collapse multi"/>').appendTo('#qunit-fixture')
-    var $el2 = $('<div class="collapse multi"/>').appendTo('#qunit-fixture')
-    $el.one('shown.bs.collapse', function () {
-      assert.ok($el.hasClass('show'), 'has class "show"')
-      assert.ok(!/height/i.test($el.attr('style')), 'has height reset')
-    })
-    $el2.one('shown.bs.collapse', function () {
-      assert.ok($el2.hasClass('show'), 'has class "show"')
-      assert.ok(!/height/i.test($el2.attr('style')), 'has height reset')
-      done()
-    })
-    $target.trigger('click')
-  })
-
-  QUnit.test('should collapse only the first collapse', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-    var html = [
-      '<div class="panel-group" id="accordion1">',
-      '<div class="panel">',
-      '<div id="collapse1" class="collapse"/>',
-      '</div>',
-      '</div>',
-      '<div class="panel-group" id="accordion2">',
-      '<div class="panel">',
-      '<div id="collapse2" class="collapse show"/>',
-      '</div>',
-      '</div>'
-    ].join('')
-    $(html).appendTo('#qunit-fixture')
-    var $el1 = $('#collapse1')
-    var $el2 = $('#collapse2')
-    $el1.one('shown.bs.collapse', function () {
-      assert.ok($el1.hasClass('show'))
-      assert.ok($el2.hasClass('show'))
-      done()
-    }).bootstrapCollapse('show')
-  })
-
-  QUnit.test('should hide a collapsed element', function (assert) {
-    assert.expect(1)
-    var $el = $('<div class="collapse"/>').bootstrapCollapse('hide')
-
-    assert.ok(!$el.hasClass('show'), 'does not have class "show"')
-  })
-
-  QUnit.test('should not fire shown when show is prevented', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    $('<div class="collapse"/>')
-      .on('show.bs.collapse', function (e) {
-        e.preventDefault()
-        assert.ok(true, 'show event fired')
-        done()
-      })
-      .on('shown.bs.collapse', function () {
-        assert.ok(false, 'shown event fired')
-      })
-      .bootstrapCollapse('show')
-  })
-
-  QUnit.test('should reset style to auto after finishing opening collapse', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-
-    $('<div class="collapse" style="height: 0px"/>')
-      .on('show.bs.collapse', function () {
-        assert.strictEqual(this.style.height, '0px', 'height is 0px')
-      })
-      .on('shown.bs.collapse', function () {
-        assert.strictEqual(this.style.height, '', 'height is auto')
-        done()
-      })
-      .bootstrapCollapse('show')
-  })
-
-  QUnit.test('should reset style to auto after finishing closing collapse', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    $('<div class="collapse"/>')
-      .on('shown.bs.collapse', function () {
-        $(this).bootstrapCollapse('hide')
-      })
-      .on('hidden.bs.collapse', function () {
-        assert.strictEqual(this.style.height, '', 'height is auto')
-        done()
-      })
-      .bootstrapCollapse('show')
-  })
-
-  QUnit.test('should remove "collapsed" class from target when collapse is shown', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    var $target = $('<a role="button" data-toggle="collapse" class="collapsed" href="#test1"/>').appendTo('#qunit-fixture')
-
-    $('<div id="test1"/>')
-      .appendTo('#qunit-fixture')
-      .on('shown.bs.collapse', function () {
-        assert.ok(!$target.hasClass('collapsed'), 'target does not have collapsed class')
-        done()
-      })
-
-    $target.trigger('click')
-  })
-
-  QUnit.test('should add "collapsed" class to target when collapse is hidden', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    var $target = $('<a role="button" data-toggle="collapse" href="#test1"/>').appendTo('#qunit-fixture')
-
-    $('<div id="test1" class="show"/>')
-      .appendTo('#qunit-fixture')
-      .on('hidden.bs.collapse', function () {
-        assert.ok($target.hasClass('collapsed'), 'target has collapsed class')
-        done()
-      })
-
-    $target.trigger('click')
-  })
-
-  QUnit.test('should remove "collapsed" class from all triggers targeting the collapse when the collapse is shown', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-
-    var $target = $('<a role="button" data-toggle="collapse" class="collapsed" href="#test1"/>').appendTo('#qunit-fixture')
-    var $alt = $('<a role="button" data-toggle="collapse" class="collapsed" href="#test1"/>').appendTo('#qunit-fixture')
-
-    $('<div id="test1"/>')
-      .appendTo('#qunit-fixture')
-      .on('shown.bs.collapse', function () {
-        assert.ok(!$target.hasClass('collapsed'), 'target trigger does not have collapsed class')
-        assert.ok(!$alt.hasClass('collapsed'), 'alt trigger does not have collapsed class')
-        done()
-      })
-
-    $target.trigger('click')
-  })
-
-  QUnit.test('should add "collapsed" class to all triggers targeting the collapse when the collapse is hidden', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-
-    var $target = $('<a role="button" data-toggle="collapse" href="#test1"/>').appendTo('#qunit-fixture')
-    var $alt = $('<a role="button" data-toggle="collapse" href="#test1"/>').appendTo('#qunit-fixture')
-
-    $('<div id="test1" class="show"/>')
-      .appendTo('#qunit-fixture')
-      .on('hidden.bs.collapse', function () {
-        assert.ok($target.hasClass('collapsed'), 'target has collapsed class')
-        assert.ok($alt.hasClass('collapsed'), 'alt trigger has collapsed class')
-        done()
-      })
-
-    $target.trigger('click')
-  })
-
-  QUnit.test('should not close a collapse when initialized with "show" option if already shown', function (assert) {
-    assert.expect(0)
-    var done = assert.async()
-
-    var $test = $('<div id="test1" class="show"/>')
-      .appendTo('#qunit-fixture')
-      .on('hide.bs.collapse', function () {
-        assert.ok(false)
-      })
-
-    $test.bootstrapCollapse('show')
-
-    setTimeout(done, 0)
-  })
-
-  QUnit.test('should open a collapse when initialized with "show" option if not already shown', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    var $test = $('<div id="test1" />')
-      .appendTo('#qunit-fixture')
-      .on('show.bs.collapse', function () {
-        assert.ok(true)
-      })
-
-    $test.bootstrapCollapse('show')
-
-    setTimeout(done, 0)
-  })
-
-  QUnit.test('should not show a collapse when initialized with "hide" option if already hidden', function (assert) {
-    assert.expect(0)
-    var done = assert.async()
-
-    $('<div class="collapse"></div>')
-      .appendTo('#qunit-fixture')
-      .on('show.bs.collapse', function () {
-        assert.ok(false, 'showing a previously-uninitialized hidden collapse when the "hide" method is called')
-      })
-      .bootstrapCollapse('hide')
-
-    setTimeout(done, 0)
-  })
-
-  QUnit.test('should hide a collapse when initialized with "hide" option if not already hidden', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    $('<div class="collapse show"></div>')
-      .appendTo('#qunit-fixture')
-      .on('hide.bs.collapse', function () {
-        assert.ok(true, 'hiding a previously-uninitialized shown collapse when the "hide" method is called')
-      })
-      .bootstrapCollapse('hide')
-
-    setTimeout(done, 0)
-  })
-
-  QUnit.test('should remove "collapsed" class from active accordion target', function (assert) {
-    assert.expect(3)
-    var done = assert.async()
-
-    var accordionHTML = '<div id="accordion">'
-        + '<div class="card"/>'
-        + '<div class="card"/>'
-        + '<div class="card"/>'
-        + '</div>'
-    var $groups = $(accordionHTML).appendTo('#qunit-fixture').find('.card')
-
-    var $target1 = $('<a role="button" data-toggle="collapse" href="#body1" />').appendTo($groups.eq(0))
-
-    $('<div id="body1" class="show" data-parent="#accordion"/>').appendTo($groups.eq(0))
-
-    var $target2 = $('<a class="collapsed" data-toggle="collapse" role="button" href="#body2" />').appendTo($groups.eq(1))
-
-    $('<div id="body2" data-parent="#accordion"/>').appendTo($groups.eq(1))
-
-    var $target3 = $('<a class="collapsed" data-toggle="collapse" role="button" href="#body3" />').appendTo($groups.eq(2))
-
-    $('<div id="body3" data-parent="#accordion"/>')
-      .appendTo($groups.eq(2))
-      .on('shown.bs.collapse', function () {
-        assert.ok($target1.hasClass('collapsed'), 'inactive target 1 does have class "collapsed"')
-        assert.ok($target2.hasClass('collapsed'), 'inactive target 2 does have class "collapsed"')
-        assert.ok(!$target3.hasClass('collapsed'), 'active target 3 does not have class "collapsed"')
-
-        done()
-      })
-
-    $target3.trigger('click')
-  })
-
-  QUnit.test('should allow dots in data-parent', function (assert) {
-    assert.expect(3)
-    var done = assert.async()
-
-    var accordionHTML = '<div class="accordion">'
-        + '<div class="card"/>'
-        + '<div class="card"/>'
-        + '<div class="card"/>'
-        + '</div>'
-    var $groups = $(accordionHTML).appendTo('#qunit-fixture').find('.card')
-
-    var $target1 = $('<a role="button" data-toggle="collapse" href="#body1"/>').appendTo($groups.eq(0))
-
-    $('<div id="body1" class="show" data-parent=".accordion"/>').appendTo($groups.eq(0))
-
-    var $target2 = $('<a class="collapsed" data-toggle="collapse" role="button" href="#body2"/>').appendTo($groups.eq(1))
-
-    $('<div id="body2" data-parent=".accordion"/>').appendTo($groups.eq(1))
-
-    var $target3 = $('<a class="collapsed" data-toggle="collapse" role="button" href="#body3"/>').appendTo($groups.eq(2))
-
-    $('<div id="body3" data-parent=".accordion"/>')
-      .appendTo($groups.eq(2))
-      .on('shown.bs.collapse', function () {
-        assert.ok($target1.hasClass('collapsed'), 'inactive target 1 does have class "collapsed"')
-        assert.ok($target2.hasClass('collapsed'), 'inactive target 2 does have class "collapsed"')
-        assert.ok(!$target3.hasClass('collapsed'), 'active target 3 does not have class "collapsed"')
-
-        done()
-      })
-
-    $target3.trigger('click')
-  })
-
-  QUnit.test('should set aria-expanded="true" on trigger/control when collapse is shown', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    var $target = $('<a role="button" data-toggle="collapse" class="collapsed" href="#test1" aria-expanded="false"/>').appendTo('#qunit-fixture')
-
-    $('<div id="test1"/>')
-      .appendTo('#qunit-fixture')
-      .on('shown.bs.collapse', function () {
-        assert.strictEqual($target.attr('aria-expanded'), 'true', 'aria-expanded on target is "true"')
-        done()
-      })
-
-    $target.trigger('click')
-  })
-
-  QUnit.test('should set aria-expanded="false" on trigger/control when collapse is hidden', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    var $target = $('<a role="button" data-toggle="collapse" href="#test1" aria-expanded="true"/>').appendTo('#qunit-fixture')
-
-    $('<div id="test1" class="show"/>')
-      .appendTo('#qunit-fixture')
-      .on('hidden.bs.collapse', function () {
-        assert.strictEqual($target.attr('aria-expanded'), 'false', 'aria-expanded on target is "false"')
-        done()
-      })
-
-    $target.trigger('click')
-  })
-
-  QUnit.test('should set aria-expanded="true" on all triggers targeting the collapse when the collapse is shown', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-
-    var $target = $('<a role="button" data-toggle="collapse" class="collapsed" href="#test1" aria-expanded="false"/>').appendTo('#qunit-fixture')
-    var $alt = $('<a role="button" data-toggle="collapse" class="collapsed" href="#test1" aria-expanded="false"/>').appendTo('#qunit-fixture')
-
-    $('<div id="test1"/>')
-      .appendTo('#qunit-fixture')
-      .on('shown.bs.collapse', function () {
-        assert.strictEqual($target.attr('aria-expanded'), 'true', 'aria-expanded on trigger/control is "true"')
-        assert.strictEqual($alt.attr('aria-expanded'), 'true', 'aria-expanded on alternative trigger/control is "true"')
-        done()
-      })
-
-    $target.trigger('click')
-  })
-
-  QUnit.test('should set aria-expanded="false" on all triggers targeting the collapse when the collapse is hidden', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-
-    var $target = $('<a role="button" data-toggle="collapse" href="#test1" aria-expanded="true"/>').appendTo('#qunit-fixture')
-    var $alt = $('<a role="button" data-toggle="collapse" href="#test1" aria-expanded="true"/>').appendTo('#qunit-fixture')
-
-    $('<div id="test1" class="show"/>')
-      .appendTo('#qunit-fixture')
-      .on('hidden.bs.collapse', function () {
-        assert.strictEqual($target.attr('aria-expanded'), 'false', 'aria-expanded on trigger/control is "false"')
-        assert.strictEqual($alt.attr('aria-expanded'), 'false', 'aria-expanded on alternative trigger/control is "false"')
-        done()
-      })
-
-    $target.trigger('click')
-  })
-
-  QUnit.test('should change aria-expanded from active accordion trigger/control to "false" and set the trigger/control for the newly active one to "true"', function (assert) {
-    assert.expect(3)
-    var done = assert.async()
-
-    var accordionHTML = '<div id="accordion">'
-        + '<div class="card"/>'
-        + '<div class="card"/>'
-        + '<div class="card"/>'
-        + '</div>'
-    var $groups = $(accordionHTML).appendTo('#qunit-fixture').find('.card')
-
-    var $target1 = $('<a role="button" data-toggle="collapse" aria-expanded="true" href="#body1"/>').appendTo($groups.eq(0))
-
-    $('<div id="body1" class="show" data-parent="#accordion"/>').appendTo($groups.eq(0))
-
-    var $target2 = $('<a role="button" data-toggle="collapse" aria-expanded="false" href="#body2" class="collapsed" aria-expanded="false" />').appendTo($groups.eq(1))
-
-    $('<div id="body2" data-parent="#accordion"/>').appendTo($groups.eq(1))
-
-    var $target3 = $('<a class="collapsed" data-toggle="collapse" aria-expanded="false" role="button" href="#body3"/>').appendTo($groups.eq(2))
-
-    $('<div id="body3" data-parent="#accordion"/>')
-      .appendTo($groups.eq(2))
-      .on('shown.bs.collapse', function () {
-        assert.strictEqual($target1.attr('aria-expanded'), 'false', 'inactive trigger/control 1 has aria-expanded="false"')
-        assert.strictEqual($target2.attr('aria-expanded'), 'false', 'inactive trigger/control 2 has aria-expanded="false"')
-        assert.strictEqual($target3.attr('aria-expanded'), 'true', 'active trigger/control 3 has aria-expanded="true"')
-
-        done()
-      })
-
-    $target3.trigger('click')
-  })
-
-  QUnit.test('should not fire show event if show is prevented because other element is still transitioning', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    var accordionHTML = '<div id="accordion">'
-        + '<div class="card"/>'
-        + '<div class="card"/>'
-        + '</div>'
-    var showFired = false
-    var $groups   = $(accordionHTML).appendTo('#qunit-fixture').find('.card')
-
-    var $target1 = $('<a role="button" data-toggle="collapse" href="#body1"/>').appendTo($groups.eq(0))
-
-    $('<div id="body1" class="collapse" data-parent="#accordion"/>')
-      .appendTo($groups.eq(0))
-      .on('show.bs.collapse', function () {
-        showFired = true
-      })
-
-    var $target2 = $('<a role="button" data-toggle="collapse" href="#body2"/>').appendTo($groups.eq(1))
-    var $body2   = $('<div id="body2" class="collapse" data-parent="#accordion"/>').appendTo($groups.eq(1))
-
-    $target2.trigger('click')
-
-    $body2
-      .toggleClass('show collapsing')
-      .data('bs.collapse')._isTransitioning = 1
-
-    $target1.trigger('click')
-
-    setTimeout(function () {
-      assert.ok(!showFired, 'show event did not fire')
-      done()
-    }, 1)
-  })
-
-  QUnit.test('should add "collapsed" class to target when collapse is hidden via manual invocation', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    var $target = $('<a role="button" data-toggle="collapse" href="#test1"/>').appendTo('#qunit-fixture')
-
-    $('<div id="test1" class="show"/>')
-      .appendTo('#qunit-fixture')
-      .on('hidden.bs.collapse', function () {
-        assert.ok($target.hasClass('collapsed'))
-        done()
-      })
-      .bootstrapCollapse('hide')
-  })
-
-  QUnit.test('should remove "collapsed" class from target when collapse is shown via manual invocation', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    var $target = $('<a role="button" data-toggle="collapse" class="collapsed" href="#test1"/>').appendTo('#qunit-fixture')
-
-    $('<div id="test1"/>')
-      .appendTo('#qunit-fixture')
-      .on('shown.bs.collapse', function () {
-        assert.ok(!$target.hasClass('collapsed'))
-        done()
-      })
-      .bootstrapCollapse('show')
-  })
-
-  QUnit.test('should allow accordion to use children other than card', function (assert) {
-    assert.expect(4)
-    var done = assert.async()
-    var accordionHTML = '<div id="accordion">'
-        + '<div class="item">'
-        + '<a id="linkTrigger" data-parent="#accordion" data-toggle="collapse" href="#collapseOne" aria-expanded="false" aria-controls="collapseOne"></a>'
-        + '<div id="collapseOne" class="collapse" role="tabpanel" aria-labelledby="headingThree"></div>'
-        + '</div>'
-        + '<div class="item">'
-        + '<a id="linkTriggerTwo" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo"></a>'
-        + '<div id="collapseTwo" class="collapse show" role="tabpanel" aria-labelledby="headingTwo"></div>'
-        + '</div>'
-        + '</div>'
-
-    $(accordionHTML).appendTo('#qunit-fixture')
-    var $trigger = $('#linkTrigger')
-    var $triggerTwo = $('#linkTriggerTwo')
-    var $collapseOne = $('#collapseOne')
-    var $collapseTwo = $('#collapseTwo')
-    $collapseOne.on('shown.bs.collapse', function () {
-      assert.ok($collapseOne.hasClass('show'), '#collapseOne is shown')
-      assert.ok(!$collapseTwo.hasClass('show'), '#collapseTwo is not shown')
-      $collapseTwo.on('shown.bs.collapse', function () {
-        assert.ok(!$collapseOne.hasClass('show'), '#collapseOne is not shown')
-        assert.ok($collapseTwo.hasClass('show'), '#collapseTwo is shown')
-        done()
-      })
-      $triggerTwo.trigger($.Event('click'))
-    })
-    $trigger.trigger($.Event('click'))
-  })
-
-  QUnit.test('should collapse accordion children but not nested accordion children', function (assert) {
-    assert.expect(9)
-    var done = assert.async()
-    $('<div id="accordion">'
-        + '<div class="item">'
-        + '<a id="linkTrigger" data-parent="#accordion" data-toggle="collapse" href="#collapseOne" aria-expanded="false" aria-controls="collapseOne"></a>'
-        + '<div id="collapseOne" class="collapse" role="tabpanel" aria-labelledby="headingThree">'
-        + '<div id="nestedAccordion">'
-        + '<div class="item">'
-        + '<a id="nestedLinkTrigger" data-parent="#nestedAccordion" data-toggle="collapse" href="#nestedCollapseOne" aria-expanded="false" aria-controls="nestedCollapseOne"></a>'
-        + '<div id="nestedCollapseOne" class="collapse" role="tabpanel" aria-labelledby="headingThree">'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-        + '<div class="item">'
-        + '<a id="linkTriggerTwo" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo"></a>'
-        + '<div id="collapseTwo" class="collapse show" role="tabpanel" aria-labelledby="headingTwo"></div>'
-        + '</div>'
-        + '</div>').appendTo('#qunit-fixture')
-    var $trigger = $('#linkTrigger')
-    var $triggerTwo = $('#linkTriggerTwo')
-    var $nestedTrigger = $('#nestedLinkTrigger')
-    var $collapseOne = $('#collapseOne')
-    var $collapseTwo = $('#collapseTwo')
-    var $nestedCollapseOne = $('#nestedCollapseOne')
-
-
-    $collapseOne.one('shown.bs.collapse', function () {
-      assert.ok($collapseOne.hasClass('show'), '#collapseOne is shown')
-      assert.ok(!$collapseTwo.hasClass('show'), '#collapseTwo is not shown')
-      assert.ok(!$('#nestedCollapseOne').hasClass('show'), '#nestedCollapseOne is not shown')
-      $nestedCollapseOne.one('shown.bs.collapse', function () {
-        assert.ok($collapseOne.hasClass('show'), '#collapseOne is shown')
-        assert.ok(!$collapseTwo.hasClass('show'), '#collapseTwo is not shown')
-        assert.ok($nestedCollapseOne.hasClass('show'), '#nestedCollapseOne is shown')
-        $collapseTwo.one('shown.bs.collapse', function () {
-          assert.ok(!$collapseOne.hasClass('show'), '#collapseOne is not shown')
-          assert.ok($collapseTwo.hasClass('show'), '#collapseTwo is shown')
-          assert.ok($nestedCollapseOne.hasClass('show'), '#nestedCollapseOne is shown')
-          done()
-        })
-        $triggerTwo.trigger($.Event('click'))
-      })
-      $nestedTrigger.trigger($.Event('click'))
-    })
-    $trigger.trigger($.Event('click'))
-  })
-
-  QUnit.test('should not prevent event for input', function (assert) {
-    assert.expect(3)
-    var done = assert.async()
-    var $target = $('<input type="checkbox" data-toggle="collapse" data-target="#collapsediv1" />').appendTo('#qunit-fixture')
-
-    $('<div id="collapsediv1"/>')
-      .appendTo('#qunit-fixture')
-      .on('shown.bs.collapse', function () {
-        assert.ok($(this).hasClass('show'))
-        assert.ok($target.attr('aria-expanded') === 'true')
-        assert.ok($target.prop('checked'))
-        done()
-      })
-
-    $target.trigger($.Event('click'))
-  })
-
-  QUnit.test('should add "collapsed" class to triggers only when all the targeted collapse are hidden', function (assert) {
-    assert.expect(9)
-    var done = assert.async()
-
-    var $trigger1 = $('<a role="button" data-toggle="collapse" href="#test1"/>').appendTo('#qunit-fixture')
-    var $trigger2 = $('<a role="button" data-toggle="collapse" href="#test2"/>').appendTo('#qunit-fixture')
-    var $trigger3 = $('<a role="button" data-toggle="collapse" href=".multi"/>').appendTo('#qunit-fixture')
-
-    var $target1 = $('<div id="test1" class="multi"/>').appendTo('#qunit-fixture')
-    var $target2 = $('<div id="test2" class="multi"/>').appendTo('#qunit-fixture')
-
-    $target2.one('shown.bs.collapse', function () {
-      assert.ok(!$trigger1.hasClass('collapsed'), 'trigger1 does not have collapsed class')
-      assert.ok(!$trigger2.hasClass('collapsed'), 'trigger2 does not have collapsed class')
-      assert.ok(!$trigger3.hasClass('collapsed'), 'trigger3 does not have collapsed class')
-      $target2.one('hidden.bs.collapse', function () {
-        assert.ok(!$trigger1.hasClass('collapsed'), 'trigger1 does not have collapsed class')
-        assert.ok($trigger2.hasClass('collapsed'), 'trigger2 has collapsed class')
-        assert.ok(!$trigger3.hasClass('collapsed'), 'trigger3 does not have collapsed class')
-        $target1.one('hidden.bs.collapse', function () {
-          assert.ok($trigger1.hasClass('collapsed'), 'trigger1 has collapsed class')
-          assert.ok($trigger2.hasClass('collapsed'), 'trigger2 has collapsed class')
-          assert.ok($trigger3.hasClass('collapsed'), 'trigger3 has collapsed class')
-          done()
-        })
-        $trigger1.trigger('click')
-      })
-      $trigger2.trigger('click')
-    })
-    $trigger3.trigger('click')
-  })
-
-  QUnit.test('should set aria-expanded="true" to triggers targetting shown collaspe and aria-expanded="false" only when all the targeted collapses are shown', function (assert) {
-    assert.expect(9)
-    var done = assert.async()
-
-    var $trigger1 = $('<a role="button" data-toggle="collapse" href="#test1"/>').appendTo('#qunit-fixture')
-    var $trigger2 = $('<a role="button" data-toggle="collapse" href="#test2"/>').appendTo('#qunit-fixture')
-    var $trigger3 = $('<a role="button" data-toggle="collapse" href=".multi"/>').appendTo('#qunit-fixture')
-
-    var $target1 = $('<div id="test1" class="multi collapse"/>').appendTo('#qunit-fixture')
-    var $target2 = $('<div id="test2" class="multi collapse"/>').appendTo('#qunit-fixture')
-
-    $target2.one('shown.bs.collapse', function () {
-      assert.strictEqual($trigger1.attr('aria-expanded'), 'true', 'aria-expanded on trigger1 is "true"')
-      assert.strictEqual($trigger2.attr('aria-expanded'), 'true', 'aria-expanded on trigger2 is "true"')
-      assert.strictEqual($trigger3.attr('aria-expanded'), 'true', 'aria-expanded on trigger3 is "true"')
-      $target2.one('hidden.bs.collapse', function () {
-        assert.strictEqual($trigger1.attr('aria-expanded'), 'true', 'aria-expanded on trigger1 is "true"')
-        assert.strictEqual($trigger2.attr('aria-expanded'), 'false', 'aria-expanded on trigger2 is "false"')
-        assert.strictEqual($trigger3.attr('aria-expanded'), 'true', 'aria-expanded on trigger3 is "true"')
-        $target1.one('hidden.bs.collapse', function () {
-          assert.strictEqual($trigger1.attr('aria-expanded'), 'false', 'aria-expanded on trigger1 is "fasle"')
-          assert.strictEqual($trigger2.attr('aria-expanded'), 'false', 'aria-expanded on trigger2 is "false"')
-          assert.strictEqual($trigger3.attr('aria-expanded'), 'false', 'aria-expanded on trigger3 is "false"')
-          done()
-        })
-        $trigger1.trigger('click')
-      })
-      $trigger2.trigger('click')
-    })
-    $trigger3.trigger('click')
-  })
-
-  QUnit.test('should not prevent interactions inside the collapse element', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-
-    var $target = $('<input type="checkbox" data-toggle="collapse" data-target="#collapsediv1" />').appendTo('#qunit-fixture')
-    var htmlCollapse =
-      '<div id="collapsediv1" class="collapse">' +
-      ' <input type="checkbox" id="testCheckbox" />' +
-      '</div>'
-
-    $(htmlCollapse)
-      .appendTo('#qunit-fixture')
-      .on('shown.bs.collapse', function () {
-        assert.ok($target.prop('checked'), '$trigger is checked')
-        var $testCheckbox = $('#testCheckbox')
-        $testCheckbox.trigger($.Event('click'))
-        setTimeout(function () {
-          assert.ok($testCheckbox.prop('checked'), '$testCheckbox is checked too')
-          done()
-        }, 5)
-      })
-
-    $target.trigger($.Event('click'))
-  })
-
-  QUnit.test('should allow jquery object in parent config', function (assert) {
-    assert.expect(1)
-    var html =
-    '<div class="my-collapse">' +
-    '  <div class="item">' +
-    '    <a data-toggle="collapse" href="#">Toggle item</a>' +
-    '    <div class="collapse">Lorem ipsum</div>' +
-    '  </div>' +
-    '</div>'
-
-    $(html).appendTo('#qunit-fixture')
-    try {
-      $('[data-toggle="collapse"]').bootstrapCollapse({
-        parent: $('.my-collapse')
-      })
-      assert.ok(true, 'collapse correctly created')
-    }
-    catch (e) {
-      assert.ok(false, 'collapse not created')
-    }
-  })
-
-  QUnit.test('should allow DOM object in parent config', function (assert) {
-    assert.expect(1)
-    var html =
-    '<div class="my-collapse">' +
-    '  <div class="item">' +
-    '    <a data-toggle="collapse" href="#">Toggle item</a>' +
-    '    <div class="collapse">Lorem ipsum</div>' +
-    '  </div>' +
-    '</div>'
-
-    $(html).appendTo('#qunit-fixture')
-    try {
-      $('[data-toggle="collapse"]').bootstrapCollapse({
-        parent: $('.my-collapse')[0]
-      })
-      assert.ok(true, 'collapse correctly created')
-    }
-    catch (e) {
-      assert.ok(false, 'collapse not created')
-    }
-  })
-})
diff --git a/assets/javascript/tests/unit/dropdown.js b/assets/javascript/tests/unit/dropdown.js
deleted file mode 100755
index 0b808cc..0000000
--- a/assets/javascript/tests/unit/dropdown.js
+++ /dev/null
@@ -1,652 +0,0 @@
-$(function () {
-  'use strict'
-
-  QUnit.module('dropdowns plugin')
-
-  QUnit.test('should be defined on jquery object', function (assert) {
-    assert.expect(1)
-    assert.ok($(document.body).dropdown, 'dropdown method is defined')
-  })
-
-  QUnit.module('dropdowns', {
-    beforeEach: function () {
-      // Run all tests in noConflict mode -- it's the only way to ensure that the plugin works in noConflict mode
-      $.fn.bootstrapDropdown = $.fn.dropdown.noConflict()
-    },
-    afterEach: function () {
-      $.fn.dropdown = $.fn.bootstrapDropdown
-      delete $.fn.bootstrapDropdown
-    }
-  })
-
-  QUnit.test('should provide no conflict', function (assert) {
-    assert.expect(1)
-    assert.strictEqual(typeof $.fn.dropdown, 'undefined', 'dropdown was set back to undefined (org value)')
-  })
-
-  QUnit.test('should throw explicit error on undefined method', function (assert) {
-    assert.expect(1)
-    var $el = $('<div/>')
-    $el.bootstrapDropdown()
-    try {
-      $el.bootstrapDropdown('noMethod')
-    }
-    catch (err) {
-      assert.strictEqual(err.message, 'No method named "noMethod"')
-    }
-  })
-
-  QUnit.test('should return jquery collection containing the element', function (assert) {
-    assert.expect(2)
-    var $el = $('<div/>')
-    var $dropdown = $el.bootstrapDropdown()
-    assert.ok($dropdown instanceof $, 'returns jquery collection')
-    assert.strictEqual($dropdown[0], $el[0], 'collection contains element')
-  })
-
-  QUnit.test('should not open dropdown if target is disabled via attribute', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-    var dropdownHTML = '<div class="tabs">'
-        + '<div class="dropdown">'
-        + '<button disabled href="#" class="btn dropdown-toggle" data-toggle="dropdown">Dropdown</button>'
-        + '<div class="dropdown-menu">'
-        + '<a class="dropdown-item" href="#">Secondary link</a>'
-        + '<a class="dropdown-item" href="#">Something else here</a>'
-        + '<div class="divider"/>'
-        + '<a class="dropdown-item" href="#">Another link</a>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-    $(dropdownHTML).appendTo('#qunit-fixture')
-    var $dropdown = $('#qunit-fixture').find('[data-toggle="dropdown"]').bootstrapDropdown()
-    $dropdown.on('click', function () {
-      assert.ok(!$dropdown.parent('.dropdown').hasClass('show'))
-      done()
-    })
-    $dropdown.trigger($.Event('click'))
-  })
-
-  QUnit.test('should set aria-expanded="true" on target when dropdown menu is shown', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-    var dropdownHTML = '<div class="tabs">'
-        + '<div class="dropdown">'
-        + '<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false">Dropdown</a>'
-        + '<div class="dropdown-menu">'
-        + '<a class="dropdown-item" href="#">Secondary link</a>'
-        + '<a class="dropdown-item" href="#">Something else here</a>'
-        + '<div class="divider"/>'
-        + '<a class="dropdown-item" href="#">Another link</a>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-    var $dropdown = $(dropdownHTML)
-          .appendTo('#qunit-fixture')
-          .find('[data-toggle="dropdown"]')
-          .bootstrapDropdown()
-    $dropdown
-      .parent('.dropdown')
-      .on('shown.bs.dropdown', function () {
-        assert.strictEqual($dropdown.attr('aria-expanded'), 'true', 'aria-expanded is set to string "true" on click')
-        done()
-      })
-    $dropdown.trigger('click')
-  })
-
-  QUnit.test('should set aria-expanded="false" on target when dropdown menu is hidden', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-    var dropdownHTML = '<div class="tabs">'
-        + '<div class="dropdown">'
-        + '<a href="#" class="dropdown-toggle" aria-expanded="false" data-toggle="dropdown">Dropdown</a>'
-        + '<div class="dropdown-menu">'
-        + '<a class="dropdown-item" href="#">Secondary link</a>'
-        + '<a class="dropdown-item" href="#">Something else here</a>'
-        + '<div class="divider"/>'
-        + '<a class="dropdown-item" href="#">Another link</a>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-    var $dropdown = $(dropdownHTML)
-      .appendTo('#qunit-fixture')
-      .find('[data-toggle="dropdown"]')
-      .bootstrapDropdown()
-
-    $dropdown
-      .parent('.dropdown')
-      .on('hidden.bs.dropdown', function () {
-        assert.strictEqual($dropdown.attr('aria-expanded'), 'false', 'aria-expanded is set to string "false" on hide')
-        done()
-      })
-
-    $dropdown.trigger('click')
-    $(document.body).trigger('click')
-  })
-
-  QUnit.test('should not open dropdown if target is disabled via class', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-    var dropdownHTML = '<div class="tabs">'
-        + '<div class="dropdown">'
-        + '<button href="#" class="btn dropdown-toggle disabled" data-toggle="dropdown">Dropdown</button>'
-        + '<div class="dropdown-menu">'
-        + '<a class="dropdown-item" href="#">Secondary link</a>'
-        + '<a class="dropdown-item" href="#">Something else here</a>'
-        + '<div class="divider"/>'
-        + '<a class="dropdown-item" href="#">Another link</a>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-
-    $(dropdownHTML).appendTo('#qunit-fixture')
-    var $dropdown = $('#qunit-fixture').find('[data-toggle="dropdown"]').bootstrapDropdown()
-    $dropdown.on('click', function () {
-      assert.ok(!$dropdown.parent('.dropdown').hasClass('show'))
-      done()
-    })
-    $dropdown.trigger($.Event('click'))
-  })
-
-  QUnit.test('should add class show to menu if clicked', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-    var dropdownHTML = '<div class="tabs">'
-        + '<div class="dropdown">'
-        + '<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>'
-        + '<div class="dropdown-menu">'
-        + '<a class="dropdown-item" href="#">Secondary link</a>'
-        + '<a class="dropdown-item" href="#">Something else here</a>'
-        + '<div class="divider"/>'
-        + '<a class="dropdown-item" href="#">Another link</a>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-    var $dropdown = $(dropdownHTML).find('[data-toggle="dropdown"]').bootstrapDropdown()
-    $dropdown
-      .parent('.dropdown')
-      .on('shown.bs.dropdown', function () {
-        assert.ok($dropdown.parent('.dropdown').hasClass('show'), '"show" class added on click')
-        done()
-      })
-    $dropdown.trigger('click')
-  })
-
-  QUnit.test('should test if element has a # before assuming it\'s a selector', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-    var dropdownHTML = '<div class="tabs">'
-        + '<div class="dropdown">'
-        + '<a href="/foo/" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>'
-        + '<div class="dropdown-menu">'
-        + '<a class="dropdown-item" href="#">Secondary link</a>'
-        + '<a class="dropdown-item" href="#">Something else here</a>'
-        + '<div class="divider"/>'
-        + '<a class="dropdown-item" href="#">Another link</a>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-    var $dropdown = $(dropdownHTML).find('[data-toggle="dropdown"]').bootstrapDropdown()
-    $dropdown
-      .parent('.dropdown')
-      .on('shown.bs.dropdown', function () {
-        assert.ok($dropdown.parent('.dropdown').hasClass('show'), '"show" class added on click')
-        done()
-      })
-    $dropdown.trigger('click')
-  })
-
-
-  QUnit.test('should remove "show" class if body is clicked', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-    var dropdownHTML = '<div class="tabs">'
-        + '<div class="dropdown">'
-        + '<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>'
-        + '<div class="dropdown-menu">'
-        + '<a class="dropdown-item" href="#">Secondary link</a>'
-        + '<a class="dropdown-item" href="#">Something else here</a>'
-        + '<div class="divider"/>'
-        + '<a class="dropdown-item" href="#">Another link</a>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-    var $dropdown = $(dropdownHTML)
-      .appendTo('#qunit-fixture')
-      .find('[data-toggle="dropdown"]')
-      .bootstrapDropdown()
-
-    $dropdown
-      .parent('.dropdown')
-      .on('shown.bs.dropdown', function () {
-        assert.ok($dropdown.parent('.dropdown').hasClass('show'), '"show" class added on click')
-        $(document.body).trigger('click')
-      }).on('hidden.bs.dropdown', function () {
-        assert.ok(!$dropdown.parent('.dropdown').hasClass('show'), '"show" class removed')
-        done()
-      })
-    $dropdown.trigger('click')
-  })
-
-  QUnit.test('should remove "show" class if tabbing outside of menu', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-    var dropdownHTML = '<div class="tabs">'
-        + '<div class="dropdown">'
-        + '<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>'
-        + '<div class="dropdown-menu">'
-        + '<a class="dropdown-item" href="#">Secondary link</a>'
-        + '<a class="dropdown-item" href="#">Something else here</a>'
-        + '<div class="dropdown-divider"/>'
-        + '<a class="dropdown-item" href="#">Another link</a>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-    var $dropdown = $(dropdownHTML)
-       .appendTo('#qunit-fixture')
-       .find('[data-toggle="dropdown"]')
-       .bootstrapDropdown()
-    $dropdown
-     .parent('.dropdown')
-     .on('shown.bs.dropdown', function () {
-       assert.ok($dropdown.parent('.dropdown').hasClass('show'), '"show" class added on click')
-       var e = $.Event('keyup')
-       e.which = 9 // Tab
-       $(document.body).trigger(e)
-     }).on('hidden.bs.dropdown', function () {
-       assert.ok(!$dropdown.parent('.dropdown').hasClass('show'), '"show" class removed')
-       done()
-     })
-    $dropdown.trigger('click')
-  })
-
-  QUnit.test('should remove "show" class if body is clicked, with multiple dropdowns', function (assert) {
-    assert.expect(7)
-    var done = assert.async()
-    var dropdownHTML = '<div class="nav">'
-        + '<div class="dropdown" id="testmenu">'
-        + '<a class="dropdown-toggle" data-toggle="dropdown" href="#testmenu">Test menu <span class="caret"/></a>'
-        + '<div class="dropdown-menu">'
-        + '<a class="dropdown-item" href="#sub1">Submenu 1</a>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-        + '<div class="btn-group">'
-        + '<button class="btn">Actions</button>'
-        + '<button class="btn dropdown-toggle" data-toggle="dropdown"></button>'
-        + '<div class="dropdown-menu">'
-        + '<a class="dropdown-item" href="#">Action 1</a>'
-        + '</div>'
-        + '</div>'
-    var $dropdowns = $(dropdownHTML).appendTo('#qunit-fixture').find('[data-toggle="dropdown"]')
-    var $first = $dropdowns.first()
-    var $last = $dropdowns.last()
-
-    assert.strictEqual($dropdowns.length, 2, 'two dropdowns')
-
-    $first.parent('.dropdown')
-    .on('shown.bs.dropdown', function () {
-      assert.strictEqual($first.parents('.show').length, 1, '"show" class added on click')
-      assert.strictEqual($('#qunit-fixture .dropdown-menu.show').length, 1, 'only one dropdown is shown')
-      $(document.body).trigger('click')
-    }).on('hidden.bs.dropdown', function () {
-      assert.strictEqual($('#qunit-fixture .dropdown-menu.show').length, 0, '"show" class removed')
-      $last.trigger('click')
-    })
-
-    $last.parent('.btn-group')
-    .on('shown.bs.dropdown', function () {
-      assert.strictEqual($last.parent('.show').length, 1, '"show" class added on click')
-      assert.strictEqual($('#qunit-fixture .dropdown-menu.show').length, 1, 'only one dropdown is shown')
-      $(document.body).trigger('click')
-    }).on('hidden.bs.dropdown', function () {
-      assert.strictEqual($('#qunit-fixture .dropdown-menu.show').length, 0, '"show" class removed')
-      done()
-    })
-    $first.trigger('click')
-  })
-
-  QUnit.test('should remove "show" class if body if tabbing outside of menu, with multiple dropdowns', function (assert) {
-    assert.expect(7)
-    var done = assert.async()
-    var dropdownHTML = '<div class="nav">'
-        + '<div class="dropdown" id="testmenu">'
-        + '<a class="dropdown-toggle" data-toggle="dropdown" href="#testmenu">Test menu <span class="caret"/></a>'
-        + '<div class="dropdown-menu">'
-        + '<a class="dropdown-item" href="#sub1">Submenu 1</a>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-        + '<div class="btn-group">'
-        + '<button class="btn">Actions</button>'
-        + '<button class="btn dropdown-toggle" data-toggle="dropdown"><span class="caret"/></button>'
-        + '<div class="dropdown-menu">'
-        + '<a class="dropdown-item" href="#">Action 1</a>'
-        + '</div>'
-        + '</div>'
-    var $dropdowns = $(dropdownHTML).appendTo('#qunit-fixture').find('[data-toggle="dropdown"]')
-    var $first = $dropdowns.first()
-    var $last = $dropdowns.last()
-
-    assert.strictEqual($dropdowns.length, 2, 'two dropdowns')
-
-    $first.parent('.dropdown')
-    .on('shown.bs.dropdown', function () {
-      assert.strictEqual($first.parents('.show').length, 1, '"show" class added on click')
-      assert.strictEqual($('#qunit-fixture .dropdown-menu.show').length, 1, 'only one dropdown is shown')
-      var e = $.Event('keyup')
-      e.which = 9 // Tab
-      $(document.body).trigger(e)
-    }).on('hidden.bs.dropdown', function () {
-      assert.strictEqual($('#qunit-fixture .dropdown-menu.show').length, 0, '"show" class removed')
-      $last.trigger('click')
-    })
-
-    $last.parent('.btn-group')
-    .on('shown.bs.dropdown', function () {
-      assert.strictEqual($last.parent('.show').length, 1, '"show" class added on click')
-      assert.strictEqual($('#qunit-fixture .dropdown-menu.show').length, 1, 'only one dropdown is shown')
-      var e = $.Event('keyup')
-      e.which = 9 // Tab
-      $(document.body).trigger(e)
-    }).on('hidden.bs.dropdown', function () {
-      assert.strictEqual($('#qunit-fixture .dropdown-menu.show').length, 0, '"show" class removed')
-      done()
-    })
-    $first.trigger('click')
-  })
-
-  QUnit.test('should fire show and hide event', function (assert) {
-    assert.expect(2)
-    var dropdownHTML = '<div class="tabs">'
-        + '<div class="dropdown">'
-        + '<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>'
-        + '<div class="dropdown-menu">'
-        + '<a class="dropdown-item" href="#">Secondary link</a>'
-        + '<a class="dropdown-item" href="#">Something else here</a>'
-        + '<div class="divider"/>'
-        + '<a class="dropdown-item" href="#">Another link</a>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-    var $dropdown = $(dropdownHTML)
-      .appendTo('#qunit-fixture')
-      .find('[data-toggle="dropdown"]')
-      .bootstrapDropdown()
-
-    var done = assert.async()
-
-    $dropdown
-      .parent('.dropdown')
-      .on('show.bs.dropdown', function () {
-        assert.ok(true, 'show was fired')
-      })
-      .on('hide.bs.dropdown', function () {
-        assert.ok(true, 'hide was fired')
-        done()
-      })
-
-    $dropdown.trigger('click')
-    $(document.body).trigger('click')
-  })
-
-
-  QUnit.test('should fire shown and hidden event', function (assert) {
-    assert.expect(2)
-    var dropdownHTML = '<div class="tabs">'
-        + '<div class="dropdown">'
-        + '<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>'
-        + '<div class="dropdown-menu">'
-        + '<a class="dropdown-item" href="#">Secondary link</a>'
-        + '<a class="dropdown-item" href="#">Something else here</a>'
-        + '<div class="divider"/>'
-        + '<a class="dropdown-item" href="#">Another link</a>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-    var $dropdown = $(dropdownHTML)
-      .appendTo('#qunit-fixture')
-      .find('[data-toggle="dropdown"]')
-      .bootstrapDropdown()
-
-    var done = assert.async()
-
-    $dropdown
-      .parent('.dropdown')
-      .on('shown.bs.dropdown', function () {
-        assert.ok(true, 'shown was fired')
-      })
-      .on('hidden.bs.dropdown', function () {
-        assert.ok(true, 'hidden was fired')
-        done()
-      })
-
-    $dropdown.trigger('click')
-    $(document.body).trigger('click')
-  })
-
-  QUnit.test('should fire shown and hidden event with a relatedTarget', function (assert) {
-    assert.expect(2)
-    var dropdownHTML = '<div class="tabs">'
-        + '<div class="dropdown">'
-        + '<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>'
-        + '<div class="dropdown-menu">'
-        + '<a class="dropdown-item" href="#">Secondary link</a>'
-        + '<a class="dropdown-item" href="#">Something else here</a>'
-        + '<div class="divider"/>'
-        + '<a class="dropdown-item" href="#">Another link</a>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-    var $dropdown = $(dropdownHTML)
-      .appendTo('#qunit-fixture')
-      .find('[data-toggle="dropdown"]')
-      .bootstrapDropdown()
-    var done = assert.async()
-
-    $dropdown.parent('.dropdown')
-      .on('hidden.bs.dropdown', function (e) {
-        assert.strictEqual(e.relatedTarget, $dropdown[0])
-        done()
-      })
-      .on('shown.bs.dropdown', function (e) {
-        assert.strictEqual(e.relatedTarget, $dropdown[0])
-        $(document.body).trigger('click')
-      })
-
-    $dropdown.trigger('click')
-  })
-
-  QUnit.test('should ignore keyboard events within <input>s and <textarea>s', function (assert) {
-    assert.expect(3)
-    var done = assert.async()
-
-    var dropdownHTML = '<div class="tabs">'
-        + '<div class="dropdown">'
-        + '<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>'
-        + '<div class="dropdown-menu">'
-        + '<a class="dropdown-item" href="#">Secondary link</a>'
-        + '<a class="dropdown-item" href="#">Something else here</a>'
-        + '<div class="divider"/>'
-        + '<a class="dropdown-item" href="#">Another link</a>'
-        + '<input type="text" id="input">'
-        + '<textarea id="textarea"/>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-    var $dropdown = $(dropdownHTML)
-      .appendTo('#qunit-fixture')
-      .find('[data-toggle="dropdown"]')
-      .bootstrapDropdown()
-
-    var $input = $('#input')
-    var $textarea = $('#textarea')
-
-    $dropdown
-      .parent('.dropdown')
-      .on('shown.bs.dropdown', function () {
-        assert.ok(true, 'shown was fired')
-
-        $input.trigger('focus').trigger($.Event('keydown', { which: 38 }))
-        assert.ok($(document.activeElement).is($input), 'input still focused')
-
-        $textarea.trigger('focus').trigger($.Event('keydown', { which: 38 }))
-        assert.ok($(document.activeElement).is($textarea), 'textarea still focused')
-
-        done()
-      })
-
-    $dropdown.trigger('click')
-  })
-
-  QUnit.test('should skip disabled element when using keyboard navigation', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-    var dropdownHTML = '<div class="tabs">'
-        + '<div class="dropdown">'
-        + '<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>'
-        + '<div class="dropdown-menu">'
-        + '<a class="dropdown-item disabled" href="#">Disabled link</a>'
-        + '<a class="dropdown-item" href="#">Another link</a>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-    var $dropdown = $(dropdownHTML)
-      .appendTo('#qunit-fixture')
-      .find('[data-toggle="dropdown"]')
-      .bootstrapDropdown()
-
-    $dropdown
-      .parent('.dropdown')
-      .on('shown.bs.dropdown', function () {
-        assert.ok(true, 'shown was fired')
-        $dropdown.trigger($.Event('keydown', { which: 40 }))
-        $dropdown.trigger($.Event('keydown', { which: 40 }))
-        assert.ok(!$(document.activeElement).is('.disabled'), '.disabled is not focused')
-        done()
-      })
-    $dropdown.trigger('click')
-  })
-
-  QUnit.test('should focus next/previous element when using keyboard navigation', function (assert) {
-    assert.expect(4)
-    var done = assert.async()
-    var dropdownHTML = '<div class="tabs">'
-        + '<div class="dropdown">'
-        + '<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>'
-        + '<div class="dropdown-menu">'
-        + '<a id="item1" class="dropdown-item" href="#">A link</a>'
-        + '<a id="item2" class="dropdown-item" href="#">Another link</a>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-    var $dropdown = $(dropdownHTML)
-      .appendTo('#qunit-fixture')
-      .find('[data-toggle="dropdown"]')
-      .bootstrapDropdown()
-
-    $dropdown
-      .parent('.dropdown')
-      .on('shown.bs.dropdown', function () {
-        assert.ok(true, 'shown was fired')
-        $dropdown.trigger($.Event('keydown', { which: 40 }))
-        assert.ok($(document.activeElement).is($('#item1')), 'item1 is focused')
-
-        $(document.activeElement).trigger($.Event('keydown', { which: 40 }))
-        assert.ok($(document.activeElement).is($('#item2')), 'item2 is focused')
-
-        $(document.activeElement).trigger($.Event('keydown', { which: 38 }))
-        assert.ok($(document.activeElement).is($('#item1')), 'item1 is focused')
-        done()
-      })
-    $dropdown.trigger('click')
-
-  })
-
-  QUnit.test('should not close the dropdown if the user clicks on a text field', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-    var dropdownHTML = '<div class="dropdown">'
-        + '<button type="button" data-toggle="dropdown">Dropdown</button>'
-        + '<div class="dropdown-menu">'
-        + '<input id="textField" type="text" />'
-        + '</div>'
-        + '</div>'
-    var $dropdown = $(dropdownHTML)
-      .appendTo('#qunit-fixture')
-      .find('[data-toggle="dropdown"]')
-      .bootstrapDropdown()
-
-    var $textfield = $('#textField')
-    $textfield.on('click', function () {
-      assert.ok($dropdown.parent('.dropdown').hasClass('show'), 'dropdown menu is shown')
-      done()
-    })
-
-    $dropdown
-      .parent('.dropdown')
-      .on('shown.bs.dropdown', function () {
-        assert.ok($dropdown.parent('.dropdown').hasClass('show'), 'dropdown menu is shown')
-        $textfield.trigger($.Event('click'))
-      })
-    $dropdown.trigger('click')
-  })
-
-  QUnit.test('should not close the dropdown if the user clicks on a textarea', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-    var dropdownHTML = '<div class="dropdown">'
-        + '<button type="button" data-toggle="dropdown">Dropdown</button>'
-        + '<div class="dropdown-menu">'
-        + '<textarea id="textArea"></textarea>'
-        + '</div>'
-        + '</div>'
-    var $dropdown = $(dropdownHTML)
-      .appendTo('#qunit-fixture')
-      .find('[data-toggle="dropdown"]')
-      .bootstrapDropdown()
-
-    var $textarea = $('#textArea')
-    $textarea.on('click', function () {
-      assert.ok($dropdown.parent('.dropdown').hasClass('show'), 'dropdown menu is shown')
-      done()
-    })
-
-    $dropdown
-      .parent('.dropdown')
-      .on('shown.bs.dropdown', function () {
-        assert.ok($dropdown.parent('.dropdown').hasClass('show'), 'dropdown menu is shown')
-        $textarea.trigger($.Event('click'))
-      })
-    $dropdown.trigger('click')
-  })
-
-  QUnit.test('Dropdown should not use Popper.js in navbar', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-    var html = '<nav class="navbar navbar-expand-md navbar-light bg-light">'
-        + '<div class="dropdown">'
-        + '  <a class="nav-link dropdown-toggle" href="#" id="dropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a>'
-        + '  <div class="dropdown-menu" aria-labelledby="dropdown">'
-        + '    <a class="dropdown-item" href="#">Action</a>'
-        + '    <a class="dropdown-item" href="#">Another action</a>'
-        + '    <a class="dropdown-item" href="#">Something else here</a>'
-        + '  </div>'
-        + '</div>'
-        + '</nav>'
-
-    $(html).appendTo('#qunit-fixture')
-    var $triggerDropdown = $('#qunit-fixture')
-      .find('[data-toggle="dropdown"]')
-      .bootstrapDropdown()
-    var $dropdownMenu = $triggerDropdown.next()
-
-    $triggerDropdown
-      .parent('.dropdown')
-      .on('shown.bs.dropdown', function () {
-        assert.ok(typeof $dropdownMenu.attr('style') === 'undefined', 'No inline style applied by Popper.js')
-        done()
-      })
-    $triggerDropdown.trigger($.Event('click'))
-  })
-})
diff --git a/assets/javascript/tests/unit/modal.js b/assets/javascript/tests/unit/modal.js
deleted file mode 100755
index e081a6d..0000000
--- a/assets/javascript/tests/unit/modal.js
+++ /dev/null
@@ -1,692 +0,0 @@
-$(function () {
-  'use strict'
-
-  QUnit.module('modal plugin')
-
-  QUnit.test('should be defined on jquery object', function (assert) {
-    assert.expect(1)
-    assert.ok($(document.body).modal, 'modal method is defined')
-  })
-
-  QUnit.module('modal', {
-    before: function () {
-      // Enable the scrollbar measurer
-      $('<style type="text/css"> .modal-scrollbar-measure { position: absolute; top: -9999px; width: 50px; height: 50px; overflow: scroll; } </style>').appendTo('head')
-      // Function to calculate the scrollbar width which is then compared to the padding or margin changes
-      $.fn.getScrollbarWidth = function () {
-        var scrollDiv = document.createElement('div')
-        scrollDiv.className = 'modal-scrollbar-measure'
-        document.body.appendChild(scrollDiv)
-        var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
-        document.body.removeChild(scrollDiv)
-        return scrollbarWidth
-      }
-      // Simulate scrollbars in PhantomJS
-      $('html').css('padding-right', '16px')
-    },
-    beforeEach: function () {
-      // Run all tests in noConflict mode -- it's the only way to ensure that the plugin works in noConflict mode
-      $.fn.bootstrapModal = $.fn.modal.noConflict()
-    },
-    afterEach: function () {
-      $.fn.modal = $.fn.bootstrapModal
-      delete $.fn.bootstrapModal
-    }
-  })
-
-  QUnit.test('should provide no conflict', function (assert) {
-    assert.expect(1)
-    assert.strictEqual(typeof $.fn.modal, 'undefined', 'modal was set back to undefined (orig value)')
-  })
-
-  QUnit.test('should throw explicit error on undefined method', function (assert) {
-    assert.expect(1)
-    var $el = $('<div id="modal-test"/>')
-    $el.bootstrapModal()
-    try {
-      $el.bootstrapModal('noMethod')
-    }
-    catch (err) {
-      assert.strictEqual(err.message, 'No method named "noMethod"')
-    }
-  })
-
-  QUnit.test('should return jquery collection containing the element', function (assert) {
-    assert.expect(2)
-    var $el = $('<div id="modal-test"/>')
-    var $modal = $el.bootstrapModal()
-    assert.ok($modal instanceof $, 'returns jquery collection')
-    assert.strictEqual($modal[0], $el[0], 'collection contains element')
-  })
-
-  QUnit.test('should expose defaults var for settings', function (assert) {
-    assert.expect(1)
-    assert.ok($.fn.bootstrapModal.Constructor.Default, 'default object exposed')
-  })
-
-  QUnit.test('should insert into dom when show method is called', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    $('<div id="modal-test"/>')
-      .on('shown.bs.modal', function () {
-        assert.notEqual($('#modal-test').length, 0, 'modal inserted into dom')
-        done()
-      })
-      .bootstrapModal('show')
-  })
-
-  QUnit.test('should fire show event', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    $('<div id="modal-test"/>')
-      .on('show.bs.modal', function () {
-        assert.ok(true, 'show event fired')
-        done()
-      })
-      .bootstrapModal('show')
-  })
-
-  QUnit.test('should not fire shown when show was prevented', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    $('<div id="modal-test"/>')
-      .on('show.bs.modal', function (e) {
-        e.preventDefault()
-        assert.ok(true, 'show event fired')
-        done()
-      })
-      .on('shown.bs.modal', function () {
-        assert.ok(false, 'shown event fired')
-      })
-      .bootstrapModal('show')
-  })
-
-  QUnit.test('should hide modal when hide is called', function (assert) {
-    assert.expect(3)
-    var done = assert.async()
-
-    $('<div id="modal-test"/>')
-      .on('shown.bs.modal', function () {
-        assert.ok($('#modal-test').is(':visible'), 'modal visible')
-        assert.notEqual($('#modal-test').length, 0, 'modal inserted into dom')
-        $(this).bootstrapModal('hide')
-      })
-      .on('hidden.bs.modal', function () {
-        assert.ok(!$('#modal-test').is(':visible'), 'modal hidden')
-        done()
-      })
-      .bootstrapModal('show')
-  })
-
-  QUnit.test('should toggle when toggle is called', function (assert) {
-    assert.expect(3)
-    var done = assert.async()
-
-    $('<div id="modal-test"/>')
-      .on('shown.bs.modal', function () {
-        assert.ok($('#modal-test').is(':visible'), 'modal visible')
-        assert.notEqual($('#modal-test').length, 0, 'modal inserted into dom')
-        $(this).bootstrapModal('toggle')
-      })
-      .on('hidden.bs.modal', function () {
-        assert.ok(!$('#modal-test').is(':visible'), 'modal hidden')
-        done()
-      })
-      .bootstrapModal('toggle')
-  })
-
-  QUnit.test('should remove from dom when click [data-dismiss="modal"]', function (assert) {
-    assert.expect(3)
-    var done = assert.async()
-
-    $('<div id="modal-test"><span class="close" data-dismiss="modal"/></div>')
-      .on('shown.bs.modal', function () {
-        assert.ok($('#modal-test').is(':visible'), 'modal visible')
-        assert.notEqual($('#modal-test').length, 0, 'modal inserted into dom')
-        $(this).find('.close').trigger('click')
-      })
-      .on('hidden.bs.modal', function () {
-        assert.ok(!$('#modal-test').is(':visible'), 'modal hidden')
-        done()
-      })
-      .bootstrapModal('toggle')
-  })
-
-  QUnit.test('should allow modal close with "backdrop:false"', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-
-    $('<div id="modal-test" data-backdrop="false"/>')
-      .on('shown.bs.modal', function () {
-        assert.ok($('#modal-test').is(':visible'), 'modal visible')
-        $(this).bootstrapModal('hide')
-      })
-      .on('hidden.bs.modal', function () {
-        assert.ok(!$('#modal-test').is(':visible'), 'modal hidden')
-        done()
-      })
-      .bootstrapModal('show')
-  })
-
-  QUnit.test('should close modal when clicking outside of modal-content', function (assert) {
-    assert.expect(3)
-    var done = assert.async()
-
-    $('<div id="modal-test"><div class="contents"/></div>')
-      .on('shown.bs.modal', function () {
-        assert.notEqual($('#modal-test').length, 0, 'modal inserted into dom')
-        $('.contents').trigger('click')
-        assert.ok($('#modal-test').is(':visible'), 'modal visible')
-        $('#modal-test').trigger('click')
-      })
-      .on('hidden.bs.modal', function () {
-        assert.ok(!$('#modal-test').is(':visible'), 'modal hidden')
-        done()
-      })
-      .bootstrapModal('show')
-  })
-
-  QUnit.test('should not close modal when clicking outside of modal-content if data-backdrop="true"', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    $('<div id="modal-test" data-backdrop="false"><div class="contents"/></div>')
-      .on('shown.bs.modal', function () {
-        $('#modal-test').trigger('click')
-        assert.ok($('#modal-test').is(':visible'), 'modal not hidden')
-        done()
-      })
-      .bootstrapModal('show')
-  })
-
-  QUnit.test('should close modal when escape key is pressed via keydown', function (assert) {
-    assert.expect(3)
-    var done = assert.async()
-
-    var $div = $('<div id="modal-test"/>')
-    $div
-      .on('shown.bs.modal', function () {
-        assert.ok($('#modal-test').length, 'modal inserted into dom')
-        assert.ok($('#modal-test').is(':visible'), 'modal visible')
-        $div.trigger($.Event('keydown', { which: 27 }))
-
-        setTimeout(function () {
-          assert.ok(!$('#modal-test').is(':visible'), 'modal hidden')
-          $div.remove()
-          done()
-        }, 0)
-      })
-      .bootstrapModal('show')
-  })
-
-  QUnit.test('should not close modal when escape key is pressed via keyup', function (assert) {
-    assert.expect(3)
-    var done = assert.async()
-
-    var $div = $('<div id="modal-test"/>')
-    $div
-      .on('shown.bs.modal', function () {
-        assert.ok($('#modal-test').length, 'modal inserted into dom')
-        assert.ok($('#modal-test').is(':visible'), 'modal visible')
-        $div.trigger($.Event('keyup', { which: 27 }))
-
-        setTimeout(function () {
-          assert.ok($div.is(':visible'), 'modal still visible')
-          $div.remove()
-          done()
-        }, 0)
-      })
-      .bootstrapModal('show')
-  })
-
-  QUnit.test('should trigger hide event once when clicking outside of modal-content', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    var triggered
-
-    $('<div id="modal-test"><div class="contents"/></div>')
-      .on('shown.bs.modal', function () {
-        triggered = 0
-        $('#modal-test').trigger('click')
-      })
-      .on('hide.bs.modal', function () {
-        triggered += 1
-        assert.strictEqual(triggered, 1, 'modal hide triggered once')
-        done()
-      })
-      .bootstrapModal('show')
-  })
-
-  QUnit.test('should remove aria-hidden attribute when shown, add it back when hidden', function (assert) {
-    assert.expect(3)
-    var done = assert.async()
-
-    $('<div id="modal-test" aria-hidden="true"/>')
-      .on('shown.bs.modal', function () {
-        assert.notOk($('#modal-test').is('[aria-hidden]'), 'aria-hidden attribute removed')
-        $(this).bootstrapModal('hide')
-      })
-      .on('hidden.bs.modal', function () {
-        assert.ok($('#modal-test').is('[aria-hidden]'), 'aria-hidden attribute added')
-        assert.strictEqual($('#modal-test').attr('aria-hidden'), 'true', 'correct aria-hidden="true" added')
-        done()
-      })
-      .bootstrapModal('show')
-  })
-
-  QUnit.test('should close reopened modal with [data-dismiss="modal"] click', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-
-    $('<div id="modal-test"><div class="contents"><div id="close" data-dismiss="modal"/></div></div>')
-      .one('shown.bs.modal', function () {
-        $('#close').trigger('click')
-      })
-      .one('hidden.bs.modal', function () {
-        // after one open-close cycle
-        assert.ok(!$('#modal-test').is(':visible'), 'modal hidden')
-        $(this)
-          .one('shown.bs.modal', function () {
-            $('#close').trigger('click')
-          })
-          .one('hidden.bs.modal', function () {
-            assert.ok(!$('#modal-test').is(':visible'), 'modal hidden')
-            done()
-          })
-          .bootstrapModal('show')
-      })
-      .bootstrapModal('show')
-  })
-
-  QUnit.test('should restore focus to toggling element when modal is hidden after having been opened via data-api', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    var $toggleBtn = $('<button data-toggle="modal" data-target="#modal-test"/>').appendTo('#qunit-fixture')
-
-    $('<div id="modal-test"><div class="contents"><div id="close" data-dismiss="modal"/></div></div>')
-      .on('hidden.bs.modal', function () {
-        setTimeout(function () {
-          assert.ok($(document.activeElement).is($toggleBtn), 'toggling element is once again focused')
-          done()
-        }, 0)
-      })
-      .on('shown.bs.modal', function () {
-        $('#close').trigger('click')
-      })
-      .appendTo('#qunit-fixture')
-
-    $toggleBtn.trigger('click')
-  })
-
-  QUnit.test('should not restore focus to toggling element if the associated show event gets prevented', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-    var $toggleBtn = $('<button data-toggle="modal" data-target="#modal-test"/>').appendTo('#qunit-fixture')
-    var $otherBtn = $('<button id="other-btn"/>').appendTo('#qunit-fixture')
-
-    $('<div id="modal-test"><div class="contents"><div id="close" data-dismiss="modal"/></div>')
-      .one('show.bs.modal', function (e) {
-        e.preventDefault()
-        $otherBtn.trigger('focus')
-        setTimeout($.proxy(function () {
-          $(this).bootstrapModal('show')
-        }, this), 0)
-      })
-      .on('hidden.bs.modal', function () {
-        setTimeout(function () {
-          assert.ok($(document.activeElement).is($otherBtn), 'focus returned to toggling element')
-          done()
-        }, 0)
-      })
-      .on('shown.bs.modal', function () {
-        $('#close').trigger('click')
-      })
-      .appendTo('#qunit-fixture')
-
-    $toggleBtn.trigger('click')
-  })
-
-  QUnit.test('should adjust the inline padding of the modal when opening', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    $('<div id="modal-test"/>')
-      .on('shown.bs.modal', function () {
-        var expectedPadding = $(this).getScrollbarWidth() + 'px'
-        var currentPadding = $(this).css('padding-right')
-        assert.strictEqual(currentPadding, expectedPadding, 'modal padding should be adjusted while opening')
-        done()
-      })
-      .bootstrapModal('show')
-  })
-
-  QUnit.test('should adjust the inline body padding when opening and restore when closing', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-    var $body = $(document.body)
-    var originalPadding = $body.css('padding-right')
-
-    $('<div id="modal-test"/>')
-      .on('hidden.bs.modal', function () {
-        var currentPadding = $body.css('padding-right')
-        assert.strictEqual(currentPadding, originalPadding, 'body padding should be reset after closing')
-        $body.removeAttr('style')
-        done()
-      })
-      .on('shown.bs.modal', function () {
-        var expectedPadding = parseFloat(originalPadding) + $(this).getScrollbarWidth() + 'px'
-        var currentPadding = $body.css('padding-right')
-        assert.strictEqual(currentPadding, expectedPadding, 'body padding should be adjusted while opening')
-        $(this).bootstrapModal('hide')
-      })
-      .bootstrapModal('show')
-  })
-
-  QUnit.test('should store the original body padding in data-padding-right before showing', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-    var $body = $(document.body)
-    var originalPadding = '0px'
-    $body.css('padding-right', originalPadding)
-
-    $('<div id="modal-test"/>')
-      .on('hidden.bs.modal', function () {
-        assert.strictEqual(typeof $body.data('padding-right'), 'undefined', 'data-padding-right should be cleared after closing')
-        $body.removeAttr('style')
-        done()
-      })
-      .on('shown.bs.modal', function () {
-        assert.strictEqual($body.data('padding-right'), originalPadding, 'original body padding should be stored in data-padding-right')
-        $(this).bootstrapModal('hide')
-      })
-      .bootstrapModal('show')
-  })
-
-  QUnit.test('should not adjust the inline body padding when it does not overflow', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-    var $body = $(document.body)
-    var originalPadding = $body.css('padding-right')
-
-    // Hide scrollbars to prevent the body overflowing
-    $body.css('overflow', 'hidden')        // real scrollbar (for in-browser testing)
-    $('html').css('padding-right', '0px')  // simulated scrollbar (for PhantomJS)
-
-    $('<div id="modal-test"/>')
-      .on('shown.bs.modal', function () {
-        var currentPadding = $body.css('padding-right')
-        assert.strictEqual(currentPadding, originalPadding, 'body padding should not be adjusted')
-        $(this).bootstrapModal('hide')
-
-        // restore scrollbars
-        $body.css('overflow', 'auto')
-        $('html').css('padding-right', '16px')
-        done()
-      })
-      .bootstrapModal('show')
-  })
-
-  QUnit.test('should adjust the inline padding of fixed elements when opening and restore when closing', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-    var $element = $('<div class="fixed-top"></div>').appendTo('#qunit-fixture')
-    var originalPadding = $element.css('padding-right')
-
-    $('<div id="modal-test"/>')
-      .on('hidden.bs.modal', function () {
-        var currentPadding = $element.css('padding-right')
-        assert.strictEqual(currentPadding, originalPadding, 'fixed element padding should be reset after closing')
-        $element.remove()
-        done()
-      })
-      .on('shown.bs.modal', function () {
-        var expectedPadding = parseFloat(originalPadding) + $(this).getScrollbarWidth() + 'px'
-        var currentPadding = $element.css('padding-right')
-        assert.strictEqual(currentPadding, expectedPadding, 'fixed element padding should be adjusted while opening')
-        $(this).bootstrapModal('hide')
-      })
-      .bootstrapModal('show')
-  })
-
-  QUnit.test('should store the original padding of fixed elements in data-padding-right before showing', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-    var $element = $('<div class="fixed-top"></div>').appendTo('#qunit-fixture')
-    var originalPadding = '0px'
-    $element.css('padding-right', originalPadding)
-
-    $('<div id="modal-test"/>')
-      .on('hidden.bs.modal', function () {
-        assert.strictEqual(typeof $element.data('padding-right'), 'undefined', 'data-padding-right should be cleared after closing')
-        $element.remove()
-        done()
-      })
-      .on('shown.bs.modal', function () {
-        assert.strictEqual($element.data('padding-right'), originalPadding, 'original fixed element padding should be stored in data-padding-right')
-        $(this).bootstrapModal('hide')
-      })
-      .bootstrapModal('show')
-  })
-
-  QUnit.test('should adjust the inline margin of sticky elements when opening and restore when closing', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-    var $element = $('<div class="sticky-top"></div>').appendTo('#qunit-fixture')
-    var originalPadding = $element.css('margin-right')
-
-    $('<div id="modal-test"/>')
-      .on('hidden.bs.modal', function () {
-        var currentPadding = $element.css('margin-right')
-        assert.strictEqual(currentPadding, originalPadding, 'sticky element margin should be reset after closing')
-        $element.remove()
-        done()
-      })
-      .on('shown.bs.modal', function () {
-        var expectedPadding = parseFloat(originalPadding) - $(this).getScrollbarWidth() + 'px'
-        var currentPadding = $element.css('margin-right')
-        assert.strictEqual(currentPadding, expectedPadding, 'sticky element margin should be adjusted while opening')
-        $(this).bootstrapModal('hide')
-      })
-      .bootstrapModal('show')
-  })
-
-  QUnit.test('should store the original margin of sticky elements in data-margin-right before showing', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-    var $element = $('<div class="sticky-top"></div>').appendTo('#qunit-fixture')
-    var originalPadding = '0px'
-    $element.css('margin-right', originalPadding)
-
-    $('<div id="modal-test"/>')
-      .on('hidden.bs.modal', function () {
-        assert.strictEqual(typeof $element.data('margin-right'), 'undefined', 'data-margin-right should be cleared after closing')
-        $element.remove()
-        done()
-      })
-      .on('shown.bs.modal', function () {
-        assert.strictEqual($element.data('margin-right'), originalPadding, 'original sticky element margin should be stored in data-margin-right')
-        $(this).bootstrapModal('hide')
-      })
-      .bootstrapModal('show')
-  })
-
-  QUnit.test('should adjust the inline margin of the navbar-toggler when opening and restore when closing', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-    var $element = $('<div class="navbar-toggler"></div>').appendTo('#qunit-fixture')
-    var originalMargin = $element.css('margin-right')
-
-    $('<div id="modal-test"/>')
-      .on('hidden.bs.modal', function () {
-        var currentMargin = $element.css('margin-right')
-        assert.strictEqual(currentMargin, originalMargin, 'navbar-toggler margin should be reset after closing')
-        $element.remove()
-        done()
-      })
-      .on('shown.bs.modal', function () {
-        var expectedMargin = parseFloat(originalMargin) + $(this).getScrollbarWidth() + 'px'
-        var currentMargin = $element.css('margin-right')
-        assert.strictEqual(currentMargin, expectedMargin, 'navbar-toggler margin should be adjusted while opening')
-        $(this).bootstrapModal('hide')
-      })
-      .bootstrapModal('show')
-  })
-
-  QUnit.test('should store the original margin of the navbar-toggler in data-margin-right before showing', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-    var $element = $('<div class="navbar-toggler"></div>').appendTo('#qunit-fixture')
-    var originalMargin = '0px'
-    $element.css('margin-right', originalMargin)
-
-    $('<div id="modal-test"/>')
-      .on('hidden.bs.modal', function () {
-        assert.strictEqual(typeof $element.data('margin-right'), 'undefined', 'data-margin-right should be cleared after closing')
-        $element.remove()
-        done()
-      })
-      .on('shown.bs.modal', function () {
-        assert.strictEqual($element.data('margin-right'), originalMargin, 'original navbar-toggler margin should be stored in data-margin-right')
-        $(this).bootstrapModal('hide')
-      })
-      .bootstrapModal('show')
-  })
-
-  QUnit.test('should ignore values set via CSS when trying to restore body padding after closing', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-    var $body = $(document.body)
-    var $style = $('<style>body { padding-right: 42px; }</style>').appendTo('head')
-
-    $('<div id="modal-test"/>')
-      .on('hidden.bs.modal', function () {
-        assert.strictEqual($body.attr('style').indexOf('padding-right'), -1, 'body does not have inline padding set')
-        $style.remove()
-        done()
-      })
-      .on('shown.bs.modal', function () {
-        $(this).bootstrapModal('hide')
-      })
-      .bootstrapModal('show')
-  })
-
-  QUnit.test('should ignore other inline styles when trying to restore body padding after closing', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-    var $body = $(document.body)
-    var $style = $('<style>body { padding-right: 42px; }</style>').appendTo('head')
-
-    $body.css('color', 'red')
-
-    $('<div id="modal-test"/>')
-      .on('hidden.bs.modal', function () {
-        assert.strictEqual($body[0].style.paddingRight, '', 'body does not have inline padding set')
-        assert.strictEqual($body[0].style.color, 'red', 'body still has other inline styles set')
-        $body.removeAttr('style')
-        $style.remove()
-        done()
-      })
-      .on('shown.bs.modal', function () {
-        $(this).bootstrapModal('hide')
-      })
-      .bootstrapModal('show')
-  })
-
-  QUnit.test('should properly restore non-pixel inline body padding after closing', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-    var $body = $(document.body)
-
-    $body.css('padding-right', '5%')
-
-    $('<div id="modal-test"/>')
-      .on('hidden.bs.modal', function () {
-        assert.strictEqual($body[0].style.paddingRight, '5%', 'body does not have inline padding set')
-        $body.removeAttr('style')
-        done()
-      })
-      .on('shown.bs.modal', function () {
-        $(this).bootstrapModal('hide')
-      })
-      .bootstrapModal('show')
-  })
-
-  QUnit.test('should not follow link in area tag', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-
-    $('<map><area id="test" shape="default" data-toggle="modal" data-target="#modal-test" href="demo.html"/></map>')
-      .appendTo('#qunit-fixture')
-
-    $('<div id="modal-test"><div class="contents"><div id="close" data-dismiss="modal"/></div></div>')
-      .appendTo('#qunit-fixture')
-
-    $('#test')
-      .on('click.bs.modal.data-api', function (event) {
-        assert.notOk(event.isDefaultPrevented(), 'navigating to href will happen')
-
-        setTimeout(function () {
-          assert.ok(event.isDefaultPrevented(), 'model shown instead of navigating to href')
-          done()
-        }, 1)
-      })
-      .trigger('click')
-  })
-
-  QUnit.test('should not parse target as html', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    var $toggleBtn = $('<button data-toggle="modal" data-target="<div id="modal-test"><div class="contents"<div<div id="close" data-dismiss="modal"/></div></div>"/>')
-      .appendTo('#qunit-fixture')
-
-    $toggleBtn.trigger('click')
-    setTimeout(function () {
-      assert.strictEqual($('#modal-test').length, 0, 'target has not been parsed and added to the document')
-      done()
-    }, 1)
-  })
-
-  QUnit.test('should not execute js from target', function (assert) {
-    assert.expect(0)
-    var done = assert.async()
-
-    // This toggle button contains XSS payload in its data-target
-    // Note: it uses the onerror handler of an img element to execute the js, because a simple script element does not work here
-    //       a script element works in manual tests though, so here it is likely blocked by the qunit framework
-    var $toggleBtn = $('<button data-toggle="modal" data-target="<div><image src="missing.png" onerror="$('#qunit-fixture button.control').trigger('click')"></div>"/>')
-      .appendTo('#qunit-fixture')
-    // The XSS payload above does not have a closure over this function and cannot access the assert object directly
-    // However, it can send a click event to the following control button, which will then fail the assert
-    $('<button>')
-      .addClass('control')
-      .on('click', function () {
-        assert.notOk(true, 'XSS payload is not executed as js')
-      })
-      .appendTo('#qunit-fixture')
-
-    $toggleBtn.trigger('click')
-    setTimeout(done, 500)
-  })
-
-  QUnit.test('should not try to open a modal which is already visible', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-    var count = 0
-
-    $('<div id="modal-test"/>').on('shown.bs.modal', function () {
-      count++
-    }).on('hidden.bs.modal', function () {
-      assert.strictEqual(count, 1, 'show() runs only once')
-      done()
-    })
-      .bootstrapModal('show')
-      .bootstrapModal('show')
-      .bootstrapModal('hide')
-  })
-})
diff --git a/assets/javascript/tests/unit/popover.js b/assets/javascript/tests/unit/popover.js
deleted file mode 100755
index b5ea714..0000000
--- a/assets/javascript/tests/unit/popover.js
+++ /dev/null
@@ -1,413 +0,0 @@
-$(function () {
-  'use strict'
-
-  QUnit.module('popover plugin')
-
-  QUnit.test('should be defined on jquery object', function (assert) {
-    assert.expect(1)
-    assert.ok($(document.body).popover, 'popover method is defined')
-  })
-
-  QUnit.module('popover', {
-    beforeEach: function () {
-      // Run all tests in noConflict mode -- it's the only way to ensure that the plugin works in noConflict mode
-      $.fn.bootstrapPopover = $.fn.popover.noConflict()
-    },
-    afterEach: function () {
-      $.fn.popover = $.fn.bootstrapPopover
-      delete $.fn.bootstrapPopover
-      $('.popover').remove()
-    }
-  })
-
-  QUnit.test('should provide no conflict', function (assert) {
-    assert.expect(1)
-    assert.strictEqual(typeof $.fn.popover, 'undefined', 'popover was set back to undefined (org value)')
-  })
-
-  QUnit.test('should throw explicit error on undefined method', function (assert) {
-    assert.expect(1)
-    var $el = $('<div/>')
-    $el.bootstrapPopover()
-    try {
-      $el.bootstrapPopover('noMethod')
-    }
-    catch (err) {
-      assert.strictEqual(err.message, 'No method named "noMethod"')
-    }
-  })
-
-  QUnit.test('should return jquery collection containing the element', function (assert) {
-    assert.expect(2)
-    var $el = $('<div/>')
-    var $popover = $el.bootstrapPopover()
-    assert.ok($popover instanceof $, 'returns jquery collection')
-    assert.strictEqual($popover[0], $el[0], 'collection contains element')
-  })
-
-  QUnit.test('should render popover element', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-    $('<a href="#" title="mdo" data-content="https://twitter.com/mdo">@mdo</a>')
-      .appendTo('#qunit-fixture')
-      .on('shown.bs.popover', function () {
-        assert.notEqual($('.popover').length, 0, 'popover was inserted')
-        $(this).bootstrapPopover('hide')
-      })
-      .on('hidden.bs.popover', function () {
-        assert.strictEqual($('.popover').length, 0, 'popover removed')
-        done()
-      })
-      .bootstrapPopover('show')
-  })
-
-  QUnit.test('should store popover instance in popover data object', function (assert) {
-    assert.expect(1)
-    var $popover = $('<a href="#" title="mdo" data-content="https://twitter.com/mdo">@mdo</a>').bootstrapPopover()
-
-    assert.ok($popover.data('bs.popover'), 'popover instance exists')
-  })
-
-  QUnit.test('should store popover trigger in popover instance data object', function (assert) {
-    assert.expect(1)
-    var $popover = $('<a href="#" title="ResentedHook">@ResentedHook</a>')
-      .appendTo('#qunit-fixture')
-      .bootstrapPopover()
-
-    $popover.bootstrapPopover('show')
-
-    assert.ok($('.popover').data('bs.popover'), 'popover trigger stored in instance data')
-  })
-
-  QUnit.test('should get title and content from options', function (assert) {
-    assert.expect(4)
-    var $popover = $('<a href="#">@fat</a>')
-      .appendTo('#qunit-fixture')
-      .bootstrapPopover({
-        title: function () {
-          return '@fat'
-        },
-        content: function () {
-          return 'loves writing tests (╯°□°)╯︵ ┻━┻'
-        }
-      })
-
-    $popover.bootstrapPopover('show')
-
-    assert.notEqual($('.popover').length, 0, 'popover was inserted')
-    assert.strictEqual($('.popover .popover-header').text(), '@fat', 'title correctly inserted')
-    assert.strictEqual($('.popover .popover-body').text(), 'loves writing tests (╯°□°)╯︵ ┻━┻', 'content correctly inserted')
-
-    $popover.bootstrapPopover('hide')
-
-    assert.strictEqual($('.popover').length, 0, 'popover was removed')
-  })
-
-  QUnit.test('should allow DOMElement title and content (html: true)', function (assert) {
-    assert.expect(5)
-    var title = document.createTextNode('@glebm <3 writing tests')
-    var content = $('<i>¯\\_(ツ)_/¯</i>').get(0)
-    var $popover = $('<a href="#" rel="tooltip"/>')
-      .appendTo('#qunit-fixture')
-      .bootstrapPopover({ html: true, title: title, content: content })
-
-    $popover.bootstrapPopover('show')
-
-    assert.notEqual($('.popover').length, 0, 'popover inserted')
-    assert.strictEqual($('.popover .popover-header').text(), '@glebm <3 writing tests', 'title inserted')
-    assert.ok($.contains($('.popover').get(0), title), 'title node moved, not copied')
-    // toLowerCase because IE8 will return <I>...</I>
-    assert.strictEqual($('.popover .popover-body').html().toLowerCase(), '<i>¯\\_(ツ)_/¯</i>', 'content inserted')
-    assert.ok($.contains($('.popover').get(0), content), 'content node moved, not copied')
-  })
-
-  QUnit.test('should allow DOMElement title and content (html: false)', function (assert) {
-    assert.expect(5)
-    var title = document.createTextNode('@glebm <3 writing tests')
-    var content = $('<i>¯\\_(ツ)_/¯</i>').get(0)
-    var $popover = $('<a href="#" rel="tooltip"/>')
-      .appendTo('#qunit-fixture')
-      .bootstrapPopover({ title: title, content: content })
-
-    $popover.bootstrapPopover('show')
-
-    assert.notEqual($('.popover').length, 0, 'popover inserted')
-    assert.strictEqual($('.popover .popover-header').text(), '@glebm <3 writing tests', 'title inserted')
-    assert.ok(!$.contains($('.popover').get(0), title), 'title node copied, not moved')
-    assert.strictEqual($('.popover .popover-body').html(), '¯\\_(ツ)_/¯', 'content inserted')
-    assert.ok(!$.contains($('.popover').get(0), content), 'content node copied, not moved')
-  })
-
-
-  QUnit.test('should not duplicate HTML object', function (assert) {
-    assert.expect(6)
-    var $div = $('<div/>').html('loves writing tests (╯°□°)╯︵ ┻━┻')
-
-    var $popover = $('<a href="#">@fat</a>')
-      .appendTo('#qunit-fixture')
-      .bootstrapPopover({
-        html: true,
-        content: function () {
-          return $div
-        }
-      })
-
-    $popover.bootstrapPopover('show')
-    assert.notEqual($('.popover').length, 0, 'popover was inserted')
-    assert.equal($('.popover .popover-body').html(), $div[0].outerHTML, 'content correctly inserted')
-
-    $popover.bootstrapPopover('hide')
-    assert.strictEqual($('.popover').length, 0, 'popover was removed')
-
-    $popover.bootstrapPopover('show')
-    assert.notEqual($('.popover').length, 0, 'popover was inserted')
-    assert.equal($('.popover .popover-body').html(), $div[0].outerHTML, 'content correctly inserted')
-
-    $popover.bootstrapPopover('hide')
-    assert.strictEqual($('.popover').length, 0, 'popover was removed')
-  })
-
-  QUnit.test('should get title and content from attributes', function (assert) {
-    assert.expect(4)
-    var $popover = $('<a href="#" title="@mdo" data-content="loves data attributes (づ。◕‿‿◕。)づ ︵ ┻━┻" >@mdo</a>')
-      .appendTo('#qunit-fixture')
-      .bootstrapPopover()
-      .bootstrapPopover('show')
-
-    assert.notEqual($('.popover').length, 0, 'popover was inserted')
-    assert.strictEqual($('.popover .popover-header').text(), '@mdo', 'title correctly inserted')
-    assert.strictEqual($('.popover .popover-body').text(), 'loves data attributes (づ。◕‿‿◕。)づ ︵ ┻━┻', 'content correctly inserted')
-
-    $popover.bootstrapPopover('hide')
-    assert.strictEqual($('.popover').length, 0, 'popover was removed')
-  })
-
-  QUnit.test('should get title and content from attributes ignoring options passed via js', function (assert) {
-    assert.expect(4)
-    var $popover = $('<a href="#" title="@mdo" data-content="loves data attributes (づ。◕‿‿◕。)づ ︵ ┻━┻" >@mdo</a>')
-      .appendTo('#qunit-fixture')
-      .bootstrapPopover({
-        title: 'ignored title option',
-        content: 'ignored content option'
-      })
-      .bootstrapPopover('show')
-
-    assert.notEqual($('.popover').length, 0, 'popover was inserted')
-    assert.strictEqual($('.popover .popover-header').text(), '@mdo', 'title correctly inserted')
-    assert.strictEqual($('.popover .popover-body').text(), 'loves data attributes (づ。◕‿‿◕。)づ ︵ ┻━┻', 'content correctly inserted')
-
-    $popover.bootstrapPopover('hide')
-    assert.strictEqual($('.popover').length, 0, 'popover was removed')
-  })
-
-  QUnit.test('should respect custom template', function (assert) {
-    assert.expect(3)
-    var $popover = $('<a href="#">@fat</a>')
-      .appendTo('#qunit-fixture')
-      .bootstrapPopover({
-        title: 'Test',
-        content: 'Test',
-        template: '<div class="popover foobar"><div class="arrow"></div><div class="inner"><h3 class="title"/><div class="content"><p/></div></div></div>'
-      })
-
-    $popover.bootstrapPopover('show')
-
-    assert.notEqual($('.popover').length, 0, 'popover was inserted')
-    assert.ok($('.popover').hasClass('foobar'), 'custom class is present')
-
-    $popover.bootstrapPopover('hide')
-    assert.strictEqual($('.popover').length, 0, 'popover was removed')
-  })
-
-  QUnit.test('should destroy popover', function (assert) {
-    assert.expect(7)
-    var $popover = $('<div/>')
-      .bootstrapPopover({
-        trigger: 'hover'
-      })
-      .on('click.foo', $.noop)
-
-    assert.ok($popover.data('bs.popover'), 'popover has data')
-    assert.ok($._data($popover[0], 'events').mouseover && $._data($popover[0], 'events').mouseout, 'popover has hover event')
-    assert.strictEqual($._data($popover[0], 'events').click[0].namespace, 'foo', 'popover has extra click.foo event')
-
-    $popover.bootstrapPopover('show')
-    $popover.bootstrapPopover('dispose')
-
-    assert.ok(!$popover.hasClass('show'), 'popover is hidden')
-    assert.ok(!$popover.data('popover'), 'popover does not have data')
-    assert.strictEqual($._data($popover[0], 'events').click[0].namespace, 'foo', 'popover still has click.foo')
-    assert.ok(!$._data($popover[0], 'events').mouseover && !$._data($popover[0], 'events').mouseout, 'popover does not have any events')
-  })
-
-  QUnit.test('should render popover element using delegated selector', function (assert) {
-    assert.expect(2)
-    var $div = $('<div><a href="#" title="mdo" data-content="https://twitter.com/mdo">@mdo</a></div>')
-      .appendTo('#qunit-fixture')
-      .bootstrapPopover({
-        selector: 'a',
-        trigger: 'click'
-      })
-
-    $div.find('a').trigger('click')
-    assert.notEqual($('.popover').length, 0, 'popover was inserted')
-
-    $div.find('a').trigger('click')
-    assert.strictEqual($('.popover').length, 0, 'popover was removed')
-  })
-
-  QUnit.test('should detach popover content rather than removing it so that event handlers are left intact', function (assert) {
-    assert.expect(1)
-    var $content = $('<div class="content-with-handler"><a class="btn btn-warning">Button with event handler</a></div>').appendTo('#qunit-fixture')
-
-    var handlerCalled = false
-    $('.content-with-handler .btn').on('click', function () {
-      handlerCalled = true
-    })
-
-    var $div = $('<div><a href="#">Show popover</a></div>')
-      .appendTo('#qunit-fixture')
-      .bootstrapPopover({
-        html: true,
-        trigger: 'manual',
-        container: 'body',
-        content: function () {
-          return $content
-        }
-      })
-
-    var done = assert.async()
-    $div
-      .one('shown.bs.popover', function () {
-        $div
-          .one('hidden.bs.popover', function () {
-            $div
-              .one('shown.bs.popover', function () {
-                $('.content-with-handler .btn').trigger('click')
-                $div.bootstrapPopover('dispose')
-                assert.ok(handlerCalled, 'content\'s event handler still present')
-                done()
-              })
-              .bootstrapPopover('show')
-          })
-          .bootstrapPopover('hide')
-      })
-      .bootstrapPopover('show')
-  })
-
-  QUnit.test('should do nothing when an attempt is made to hide an uninitialized popover', function (assert) {
-    assert.expect(1)
-
-    var $popover = $('<span data-toggle="popover" data-title="some title" data-content="some content">some text</span>')
-      .appendTo('#qunit-fixture')
-      .on('hidden.bs.popover shown.bs.popover', function () {
-        assert.ok(false, 'should not fire any popover events')
-      })
-      .bootstrapPopover('hide')
-    assert.strictEqual(typeof $popover.data('bs.popover'), 'undefined', 'should not initialize the popover')
-  })
-
-  QUnit.test('should fire inserted event', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-
-    $('<a href="#">@Johann-S</a>')
-      .appendTo('#qunit-fixture')
-      .on('inserted.bs.popover', function () {
-        assert.notEqual($('.popover').length, 0, 'popover was inserted')
-        assert.ok(true, 'inserted event fired')
-        done()
-      })
-      .bootstrapPopover({
-        title: 'Test',
-        content: 'Test'
-      })
-      .bootstrapPopover('show')
-  })
-
-  QUnit.test('should throw an error when show is called on hidden elements', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    try {
-      $('<div data-toggle="popover" data-title="some title" data-content="@Johann-S" style="display: none"/>').bootstrapPopover('show')
-    }
-    catch (err) {
-      assert.strictEqual(err.message, 'Please use show on visible elements')
-      done()
-    }
-  })
-
-  QUnit.test('should hide popovers when their containing modal is closed', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-    var templateHTML = '<div id="modal-test" class="modal">' +
-                          '<div class="modal-dialog" role="document">' +
-                            '<div class="modal-content">' +
-                              '<div class="modal-body">' +
-                                '<button id="popover-test" type="button" class="btn btn-secondary" data-toggle="popover" data-placement="top" data-content="Popover">' +
-                                  'Popover on top' +
-                                '</button>' +
-                              '</div>' +
-                            '</div>' +
-                          '</div>' +
-                        '</div>'
-
-    $(templateHTML).appendTo('#qunit-fixture')
-    $('#popover-test')
-      .on('shown.bs.popover', function () {
-        $('#modal-test').modal('hide')
-      })
-      .on('hide.bs.popover', function () {
-        assert.ok(true, 'popover hide')
-        done()
-      })
-
-    $('#modal-test')
-      .on('shown.bs.modal', function () {
-        $('#popover-test').bootstrapPopover('show')
-      })
-      .modal('show')
-  })
-
-  QUnit.test('should convert number to string without error for content and title', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-    var $popover = $('<a href="#">@mdo</a>')
-      .appendTo('#qunit-fixture')
-      .bootstrapPopover({
-        title: 5,
-        content: 7
-      })
-      .on('shown.bs.popover', function () {
-        assert.strictEqual($('.popover .popover-header').text(), '5')
-        assert.strictEqual($('.popover .popover-body').text(), '7')
-        done()
-      })
-
-    $popover.bootstrapPopover('show')
-  })
-
-  QUnit.test('popover should be shown right away after the call of disable/enable', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-    var $popover = $('<a href="#">@mdo</a>')
-      .appendTo('#qunit-fixture')
-      .bootstrapPopover({
-        title: 'Test popover',
-        content: 'with disable/enable'
-      })
-      .on('shown.bs.popover', function () {
-        assert.strictEqual($('.popover').hasClass('show'), true)
-        done()
-      })
-
-    $popover.bootstrapPopover('disable')
-    $popover.trigger($.Event('click'))
-    setTimeout(function () {
-      assert.strictEqual($('.popover').length === 0, true)
-      $popover.bootstrapPopover('enable')
-      $popover.trigger($.Event('click'))
-    }, 200)
-  })
-})
diff --git a/assets/javascript/tests/unit/scrollspy.js b/assets/javascript/tests/unit/scrollspy.js
deleted file mode 100755
index 7bdeb4a..0000000
--- a/assets/javascript/tests/unit/scrollspy.js
+++ /dev/null
@@ -1,659 +0,0 @@
-$(function () {
-  'use strict'
-
-  QUnit.module('scrollspy plugin')
-
-  QUnit.test('should be defined on jquery object', function (assert) {
-    assert.expect(1)
-    assert.ok($(document.body).scrollspy, 'scrollspy method is defined')
-  })
-
-  QUnit.module('scrollspy', {
-    beforeEach: function () {
-      // Run all tests in noConflict mode -- it's the only way to ensure that the plugin works in noConflict mode
-      $.fn.bootstrapScrollspy = $.fn.scrollspy.noConflict()
-    },
-    afterEach: function () {
-      $.fn.scrollspy = $.fn.bootstrapScrollspy
-      delete $.fn.bootstrapScrollspy
-    }
-  })
-
-  QUnit.test('should provide no conflict', function (assert) {
-    assert.expect(1)
-    assert.strictEqual(typeof $.fn.scrollspy, 'undefined', 'scrollspy was set back to undefined (org value)')
-  })
-
-  QUnit.test('should throw explicit error on undefined method', function (assert) {
-    assert.expect(1)
-    var $el = $('<div/>').appendTo('#qunit-fixture')
-    $el.bootstrapScrollspy()
-    try {
-      $el.bootstrapScrollspy('noMethod')
-    }
-    catch (err) {
-      assert.strictEqual(err.message, 'No method named "noMethod"')
-    }
-  })
-
-  QUnit.test('should return jquery collection containing the element', function (assert) {
-    assert.expect(2)
-    var $el = $('<div/>').appendTo('#qunit-fixture')
-    var $scrollspy = $el.bootstrapScrollspy()
-    assert.ok($scrollspy instanceof $, 'returns jquery collection')
-    assert.strictEqual($scrollspy[0], $el[0], 'collection contains element')
-  })
-
-  QUnit.test('should only switch "active" class on current target', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    var sectionHTML = '<div id="root" class="active">'
-        + '<div class="topbar">'
-        + '<div class="topbar-inner">'
-        + '<div class="container" id="ss-target">'
-        + '<ul class="nav">'
-        + '<li class="nav-item"><a href="#masthead">Overview</a></li>'
-        + '<li class="nav-item"><a href="#detail">Detail</a></li>'
-        + '</ul>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-        + '<div id="scrollspy-example" style="height: 100px; overflow: auto;">'
-        + '<div style="height: 200px;">'
-        + '<h4 id="masthead">Overview</h4>'
-        + '<p style="height: 200px">'
-        + 'Ad leggings keytar, brunch id art party dolor labore.'
-        + '</p>'
-        + '</div>'
-        + '<div style="height: 200px;">'
-        + '<h4 id="detail">Detail</h4>'
-        + '<p style="height: 200px">'
-        + 'Veniam marfa mustache skateboard, adipisicing fugiat velit pitchfork beard.'
-        + '</p>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-    var $section = $(sectionHTML).appendTo('#qunit-fixture')
-
-    var $scrollspy = $section
-      .show()
-      .find('#scrollspy-example')
-      .bootstrapScrollspy({ target: '#ss-target' })
-
-    $scrollspy.one('scroll', function () {
-      assert.ok($section.hasClass('active'), '"active" class still on root node')
-      done()
-    })
-
-    $scrollspy.scrollTop(350)
-  })
-
-  QUnit.test('should only switch "active" class on current target specified w element', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    var sectionHTML = '<div id="root" class="active">'
-        + '<div class="topbar">'
-        + '<div class="topbar-inner">'
-        + '<div class="container" id="ss-target">'
-        + '<ul class="nav">'
-        + '<li class="nav-item"><a href="#masthead">Overview</a></li>'
-        + '<li class="nav-item"><a href="#detail">Detail</a></li>'
-        + '</ul>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-        + '<div id="scrollspy-example" style="height: 100px; overflow: auto;">'
-        + '<div style="height: 200px;">'
-        + '<h4 id="masthead">Overview</h4>'
-        + '<p style="height: 200px">'
-        + 'Ad leggings keytar, brunch id art party dolor labore.'
-        + '</p>'
-        + '</div>'
-        + '<div style="height: 200px;">'
-        + '<h4 id="detail">Detail</h4>'
-        + '<p style="height: 200px">'
-        + 'Veniam marfa mustache skateboard, adipisicing fugiat velit pitchfork beard.'
-        + '</p>'
-        + '</div>'
-        + '</div>'
-        + '</div>'
-    var $section = $(sectionHTML).appendTo('#qunit-fixture')
-
-    var $scrollspy = $section
-      .show()
-      .find('#scrollspy-example')
-      .bootstrapScrollspy({ target: document.getElementById('#ss-target') })
-
-    $scrollspy.one('scroll', function () {
-      assert.ok($section.hasClass('active'), '"active" class still on root node')
-      done()
-    })
-
-    $scrollspy.scrollTop(350)
-  })
-
-  QUnit.test('should correctly select middle navigation option when large offset is used', function (assert) {
-    assert.expect(3)
-    var done = assert.async()
-
-    var sectionHTML = '<div id="header" style="height: 500px;"></div>'
-        + '<nav id="navigation" class="navbar">'
-        + '<ul class="navbar-nav">'
-        + '<li class="nav-item active"><a class="nav-link" id="one-link" href="#one">One</a></li>'
-        + '<li class="nav-item"><a class="nav-link" id="two-link" href="#two">Two</a></li>'
-        + '<li class="nav-item"><a class="nav-link" id="three-link" href="#three">Three</a></li>'
-        + '</ul>'
-        + '</nav>'
-        + '<div id="content" style="height: 200px; overflow-y: auto;">'
-        + '<div id="one" style="height: 500px;"></div>'
-        + '<div id="two" style="height: 300px;"></div>'
-        + '<div id="three" style="height: 10px;"></div>'
-        + '</div>'
-    var $section = $(sectionHTML).appendTo('#qunit-fixture')
-    var $scrollspy = $section
-      .show()
-      .filter('#content')
-
-    $scrollspy.bootstrapScrollspy({ target: '#navigation', offset: $scrollspy.position().top })
-
-    $scrollspy.one('scroll', function () {
-      assert.ok(!$section.find('#one-link').hasClass('active'), '"active" class removed from first section')
-      assert.ok($section.find('#two-link').hasClass('active'), '"active" class on middle section')
-      assert.ok(!$section.find('#three-link').hasClass('active'), '"active" class not on last section')
-      done()
-    })
-
-    $scrollspy.scrollTop(550)
-  })
-
-  QUnit.test('should add the active class to the correct element', function (assert) {
-    assert.expect(2)
-    var navbarHtml =
-        '<nav class="navbar">'
-      + '<ul class="nav">'
-      + '<li class="nav-item"><a class="nav-link" id="a-1" href="#div-1">div 1</a></li>'
-      + '<li class="nav-item"><a class="nav-link" id="a-2" href="#div-2">div 2</a></li>'
-      + '</ul>'
-      + '</nav>'
-    var contentHtml =
-        '<div class="content" style="overflow: auto; height: 50px">'
-      + '<div id="div-1" style="height: 100px; padding: 0; margin: 0">div 1</div>'
-      + '<div id="div-2" style="height: 200px; padding: 0; margin: 0">div 2</div>'
-      + '</div>'
-
-    $(navbarHtml).appendTo('#qunit-fixture')
-    var $content = $(contentHtml)
-      .appendTo('#qunit-fixture')
-      .bootstrapScrollspy({ offset: 0, target: '.navbar' })
-
-    var done = assert.async()
-    var testElementIsActiveAfterScroll = function (element, target) {
-      var deferred = $.Deferred()
-      var scrollHeight = Math.ceil($content.scrollTop() + $(target).position().top)
-      $content.one('scroll', function () {
-        assert.ok($(element).hasClass('active'), 'target:' + target + ', element' + element)
-        deferred.resolve()
-      })
-      $content.scrollTop(scrollHeight)
-      return deferred.promise()
-    }
-
-    $.when(testElementIsActiveAfterScroll('#a-1', '#div-1'))
-      .then(function () { return testElementIsActiveAfterScroll('#a-2', '#div-2') })
-      .then(function () { done() })
-  })
-
-  QUnit.test('should add the active class to the correct element (nav markup)', function (assert) {
-    assert.expect(2)
-    var navbarHtml =
-        '<nav class="navbar">'
-      + '<nav class="nav">'
-      + '<a class="nav-link" id="a-1" href="#div-1">div 1</a>'
-      + '<a class="nav-link" id="a-2" href="#div-2">div 2</a>'
-      + '</nav>'
-      + '</nav>'
-    var contentHtml =
-        '<div class="content" style="overflow: auto; height: 50px">'
-      + '<div id="div-1" style="height: 100px; padding: 0; margin: 0">div 1</div>'
-      + '<div id="div-2" style="height: 200px; padding: 0; margin: 0">div 2</div>'
-      + '</div>'
-
-    $(navbarHtml).appendTo('#qunit-fixture')
-    var $content = $(contentHtml)
-      .appendTo('#qunit-fixture')
-      .bootstrapScrollspy({ offset: 0, target: '.navbar' })
-
-    var done = assert.async()
-    var testElementIsActiveAfterScroll = function (element, target) {
-      var deferred = $.Deferred()
-      var scrollHeight = Math.ceil($content.scrollTop() + $(target).position().top)
-      $content.one('scroll', function () {
-        assert.ok($(element).hasClass('active'), 'target:' + target + ', element' + element)
-        deferred.resolve()
-      })
-      $content.scrollTop(scrollHeight)
-      return deferred.promise()
-    }
-
-    $.when(testElementIsActiveAfterScroll('#a-1', '#div-1'))
-      .then(function () { return testElementIsActiveAfterScroll('#a-2', '#div-2') })
-      .then(function () { done() })
-  })
-
-  QUnit.test('should add the active class to the correct element (list-group markup)', function (assert) {
-    assert.expect(2)
-    var navbarHtml =
-        '<nav class="navbar">'
-      + '<div class="list-group">'
-      + '<a class="list-group-item" id="a-1" href="#div-1">div 1</a>'
-      + '<a class="list-group-item" id="a-2" href="#div-2">div 2</a>'
-      + '</div>'
-      + '</nav>'
-    var contentHtml =
-        '<div class="content" style="overflow: auto; height: 50px">'
-      + '<div id="div-1" style="height: 100px; padding: 0; margin: 0">div 1</div>'
-      + '<div id="div-2" style="height: 200px; padding: 0; margin: 0">div 2</div>'
-      + '</div>'
-
-    $(navbarHtml).appendTo('#qunit-fixture')
-    var $content = $(contentHtml)
-      .appendTo('#qunit-fixture')
-      .bootstrapScrollspy({ offset: 0, target: '.navbar' })
-
-    var done = assert.async()
-    var testElementIsActiveAfterScroll = function (element, target) {
-      var deferred = $.Deferred()
-      var scrollHeight = Math.ceil($content.scrollTop() + $(target).position().top)
-      $content.one('scroll', function () {
-        assert.ok($(element).hasClass('active'), 'target:' + target + ', element' + element)
-        deferred.resolve()
-      })
-      $content.scrollTop(scrollHeight)
-      return deferred.promise()
-    }
-
-    $.when(testElementIsActiveAfterScroll('#a-1', '#div-1'))
-      .then(function () { return testElementIsActiveAfterScroll('#a-2', '#div-2') })
-      .then(function () { done() })
-  })
-
-  QUnit.test('should add the active class correctly when there are nested elements at 0 scroll offset', function (assert) {
-    assert.expect(6)
-    var times = 0
-    var done = assert.async()
-    var navbarHtml = '<nav id="navigation" class="navbar">'
-      + '<ul class="nav">'
-      + '<li class="nav-item"><a id="a-1" class="nav-link" href="#div-1">div 1</a>'
-      + '<ul class="nav">'
-      + '<li class="nav-item"><a id="a-2" class="nav-link" href="#div-2">div 2</a></li>'
-      + '</ul>'
-      + '</li>'
-      + '</ul>'
-      + '</nav>'
-
-    var contentHtml = '<div class="content" style="position: absolute; top: 0px; overflow: auto; height: 50px">'
-      + '<div id="div-1" style="padding: 0; margin: 0">'
-      + '<div id="div-2" style="height: 200px; padding: 0; margin: 0">div 2</div>'
-      + '</div>'
-      + '</div>'
-
-    $(navbarHtml).appendTo('#qunit-fixture')
-
-    var $content = $(contentHtml)
-      .appendTo('#qunit-fixture')
-      .bootstrapScrollspy({ offset: 0, target: '#navigation' })
-
-    function testActiveElements() {
-      if (++times > 3) { return done() }
-
-      $content.one('scroll', function () {
-        assert.ok($('#a-1').hasClass('active'), 'nav item for outer element has "active" class')
-        assert.ok($('#a-2').hasClass('active'), 'nav item for inner element has "active" class')
-        testActiveElements()
-      })
-
-      $content.scrollTop($content.scrollTop() + 10)
-    }
-
-    testActiveElements()
-  })
-
-  QUnit.test('should add the active class correctly when there are nested elements (nav markup)', function (assert) {
-    assert.expect(6)
-    var times = 0
-    var done = assert.async()
-    var navbarHtml = '<nav id="navigation" class="navbar">'
-      + '<nav class="nav">'
-      + '<a id="a-1" class="nav-link" href="#div-1">div 1</a>'
-      + '<nav class="nav">'
-      + '<a id="a-2" class="nav-link" href="#div-2">div 2</a>'
-      + '</nav>'
-      + '</nav>'
-      + '</nav>'
-
-    var contentHtml = '<div class="content" style="position: absolute; top: 0px; overflow: auto; height: 50px">'
-      + '<div id="div-1" style="padding: 0; margin: 0">'
-      + '<div id="div-2" style="height: 200px; padding: 0; margin: 0">div 2</div>'
-      + '</div>'
-      + '</div>'
-
-    $(navbarHtml).appendTo('#qunit-fixture')
-
-    var $content = $(contentHtml)
-      .appendTo('#qunit-fixture')
-      .bootstrapScrollspy({ offset: 0, target: '#navigation' })
-
-    function testActiveElements() {
-      if (++times > 3) { return done() }
-
-      $content.one('scroll', function () {
-        assert.ok($('#a-1').hasClass('active'), 'nav item for outer element has "active" class')
-        assert.ok($('#a-2').hasClass('active'), 'nav item for inner element has "active" class')
-        testActiveElements()
-      })
-
-      $content.scrollTop($content.scrollTop() + 10)
-    }
-
-    testActiveElements()
-  })
-
-
-  QUnit.test('should add the active class correctly when there are nested elements (nav nav-item markup)', function (assert) {
-    assert.expect(6)
-    var times = 0
-    var done = assert.async()
-    var navbarHtml = '<nav id="navigation" class="navbar">'
-      + '<ul class="nav">'
-      + '<li class="nav-item"><a id="a-1" class="nav-link" href="#div-1">div 1</a></li>'
-      + '<ul class="nav">'
-      + '<li class="nav-item"><a id="a-2" class="nav-link" href="#div-2">div 2</a></li>'
-      + '</ul>'
-      + '</ul>'
-      + '</nav>'
-
-    var contentHtml = '<div class="content" style="position: absolute; top: 0px; overflow: auto; height: 50px">'
-      + '<div id="div-1" style="padding: 0; margin: 0">'
-      + '<div id="div-2" style="height: 200px; padding: 0; margin: 0">div 2</div>'
-      + '</div>'
-      + '</div>'
-
-    $(navbarHtml).appendTo('#qunit-fixture')
-
-    var $content = $(contentHtml)
-      .appendTo('#qunit-fixture')
-      .bootstrapScrollspy({ offset: 0, target: '#navigation' })
-
-    function testActiveElements() {
-      if (++times > 3) { return done() }
-
-      $content.one('scroll', function () {
-        assert.ok($('#a-1').hasClass('active'), 'nav item for outer element has "active" class')
-        assert.ok($('#a-2').hasClass('active'), 'nav item for inner element has "active" class')
-        testActiveElements()
-      })
-
-      $content.scrollTop($content.scrollTop() + 10)
-    }
-
-    testActiveElements()
-  })
-
-  QUnit.test('should add the active class correctly when there are nested elements (list-group markup)', function (assert) {
-    assert.expect(6)
-    var times = 0
-    var done = assert.async()
-    var navbarHtml = '<nav id="navigation" class="navbar">'
-      + '<div class="list-group">'
-      + '<a id="a-1" class="list-group-item" href="#div-1">div 1</a>'
-      + '<div class="list-group">'
-      + '<a id="a-2" class="list-group-item" href="#div-2">div 2</a>'
-      + '</div>'
-      + '</div>'
-      + '</nav>'
-
-    var contentHtml = '<div class="content" style="position: absolute; top: 0px; overflow: auto; height: 50px">'
-      + '<div id="div-1" style="padding: 0; margin: 0">'
-      + '<div id="div-2" style="height: 200px; padding: 0; margin: 0">div 2</div>'
-      + '</div>'
-      + '</div>'
-
-    $(navbarHtml).appendTo('#qunit-fixture')
-
-    var $content = $(contentHtml)
-      .appendTo('#qunit-fixture')
-      .bootstrapScrollspy({ offset: 0, target: '#navigation' })
-
-    function testActiveElements() {
-      if (++times > 3) { return done() }
-
-      $content.one('scroll', function () {
-        assert.ok($('#a-1').hasClass('active'), 'nav item for outer element has "active" class')
-        assert.ok($('#a-2').hasClass('active'), 'nav item for inner element has "active" class')
-        testActiveElements()
-      })
-
-      $content.scrollTop($content.scrollTop() + 10)
-    }
-
-    testActiveElements()
-  })
-
-  QUnit.test('should clear selection if above the first section', function (assert) {
-    assert.expect(3)
-    var done = assert.async()
-
-    var sectionHTML = '<div id="header" style="height: 500px;"></div>'
-        + '<nav id="navigation" class="navbar">'
-        + '<ul class="navbar-nav">'
-        + '<li class="nav-item"><a id="one-link"   class="nav-link active" href="#one">One</a></li>'
-        + '<li class="nav-item"><a id="two-link"   class="nav-link" href="#two">Two</a></li>'
-        + '<li class="nav-item"><a id="three-link" class="nav-link" href="#three">Three</a></li>'
-        + '</ul>'
-        + '</nav>'
-    $(sectionHTML).appendTo('#qunit-fixture')
-
-    var scrollspyHTML = '<div id="content" style="height: 200px; overflow-y: auto;">'
-        + '<div id="spacer" style="height: 100px;"/>'
-        + '<div id="one" style="height: 100px;"/>'
-        + '<div id="two" style="height: 100px;"/>'
-        + '<div id="three" style="height: 100px;"/>'
-        + '<div id="spacer" style="height: 100px;"/>'
-        + '</div>'
-    var $scrollspy = $(scrollspyHTML).appendTo('#qunit-fixture')
-
-    $scrollspy
-      .bootstrapScrollspy({
-        target: '#navigation',
-        offset: $scrollspy.position().top
-      })
-      .one('scroll', function () {
-        assert.strictEqual($('.active').length, 1, '"active" class on only one element present')
-        assert.strictEqual($('.active').is('#two-link'), true, '"active" class on second section')
-        $scrollspy
-          .one('scroll', function () {
-            assert.strictEqual($('.active').length, 0, 'selection cleared')
-            done()
-          })
-          .scrollTop(0)
-      })
-      .scrollTop(201)
-  })
-
-  QUnit.test('should NOT clear selection if above the first section and first section is at the top', function (assert) {
-    assert.expect(4)
-    var done = assert.async()
-
-    var sectionHTML = '<div id="header" style="height: 500px;"></div>'
-        + '<nav id="navigation" class="navbar">'
-        + '<ul class="navbar-nav">'
-        + '<li class="nav-item"><a id="one-link"   class="nav-link active" href="#one">One</a></li>'
-        + '<li class="nav-item"><a id="two-link"   class="nav-link" href="#two">Two</a></li>'
-        + '<li class="nav-item"><a id="three-link" class="nav-link" href="#three">Three</a></li>'
-        + '</ul>'
-        + '</nav>'
-    $(sectionHTML).appendTo('#qunit-fixture')
-
-    var negativeHeight = -10
-    var startOfSectionTwo = 101
-
-    var scrollspyHTML = '<div id="content" style="height: 200px; overflow-y: auto;">'
-        + '<div id="one" style="height: 100px;"/>'
-        + '<div id="two" style="height: 100px;"/>'
-        + '<div id="three" style="height: 100px;"/>'
-        + '<div id="spacer" style="height: 100px;"/>'
-        + '</div>'
-    var $scrollspy = $(scrollspyHTML).appendTo('#qunit-fixture')
-
-    $scrollspy
-      .bootstrapScrollspy({
-        target: '#navigation',
-        offset: $scrollspy.position().top
-      })
-      .one('scroll', function () {
-        assert.strictEqual($('.active').length, 1, '"active" class on only one element present')
-        assert.strictEqual($('.active').is('#two-link'), true, '"active" class on second section')
-        $scrollspy
-          .one('scroll', function () {
-            assert.strictEqual($('.active').length, 1, '"active" class on only one element present')
-            assert.strictEqual($('.active').is('#one-link'), true, '"active" class on first section')
-            done()
-          })
-          .scrollTop(negativeHeight)
-      })
-      .scrollTop(startOfSectionTwo)
-  })
-
-  QUnit.test('should correctly select navigation element on backward scrolling when each target section height is 100%', function (assert) {
-    assert.expect(5)
-    var navbarHtml =
-        '<nav class="navbar">'
-      + '<ul class="nav">'
-      + '<li class="nav-item"><a id="li-100-1" class="nav-link" href="#div-100-1">div 1</a></li>'
-      + '<li class="nav-item"><a id="li-100-2" class="nav-link" href="#div-100-2">div 2</a></li>'
-      + '<li class="nav-item"><a id="li-100-3" class="nav-link" href="#div-100-3">div 3</a></li>'
-      + '<li class="nav-item"><a id="li-100-4" class="nav-link" href="#div-100-4">div 4</a></li>'
-      + '<li class="nav-item"><a id="li-100-5" class="nav-link" href="#div-100-5">div 5</a></li>'
-      + '</ul>'
-      + '</nav>'
-    var contentHtml =
-        '<div class="content" style="position: relative; overflow: auto; height: 100px">'
-      + '<div id="div-100-1" style="position: relative; height: 100%; padding: 0; margin: 0">div 1</div>'
-      + '<div id="div-100-2" style="position: relative; height: 100%; padding: 0; margin: 0">div 2</div>'
-      + '<div id="div-100-3" style="position: relative; height: 100%; padding: 0; margin: 0">div 3</div>'
-      + '<div id="div-100-4" style="position: relative; height: 100%; padding: 0; margin: 0">div 4</div>'
-      + '<div id="div-100-5" style="position: relative; height: 100%; padding: 0; margin: 0">div 5</div>'
-      + '</div>'
-
-    $(navbarHtml).appendTo('#qunit-fixture')
-    var $content = $(contentHtml)
-      .appendTo('#qunit-fixture')
-      .bootstrapScrollspy({ offset: 0, target: '.navbar' })
-
-    var testElementIsActiveAfterScroll = function (element, target) {
-      var deferred = $.Deferred()
-      var scrollHeight = Math.ceil($content.scrollTop() + $(target).position().top)
-      $content.one('scroll', function () {
-        assert.ok($(element).hasClass('active'), 'target:' + target + ', element: ' + element)
-        deferred.resolve()
-      })
-      $content.scrollTop(scrollHeight)
-      return deferred.promise()
-    }
-
-    var done = assert.async()
-    $.when(testElementIsActiveAfterScroll('#li-100-5', '#div-100-5'))
-      .then(function () { return testElementIsActiveAfterScroll('#li-100-4', '#div-100-4') })
-      .then(function () { return testElementIsActiveAfterScroll('#li-100-3', '#div-100-3') })
-      .then(function () { return testElementIsActiveAfterScroll('#li-100-2', '#div-100-2') })
-      .then(function () { return testElementIsActiveAfterScroll('#li-100-1', '#div-100-1') })
-      .then(function () { done() })
-  })
-
-  QUnit.test('should allow passed in option offset method: offset', function (assert) {
-    assert.expect(4)
-
-    var testOffsetMethod = function (type) {
-      var $navbar = $(
-          '<nav class="navbar"' + (type === 'data' ? ' id="navbar-offset-method-menu"' : '') + '>'
-        + '<ul class="nav">'
-        + '<li class="nav-item"><a id="li-' + type + 'm-1" class="nav-link" href="#div-' + type + 'm-1">div 1</a></li>'
-        + '<li class="nav-item"><a id="li-' + type + 'm-2" class="nav-link" href="#div-' + type + 'm-2">div 2</a></li>'
-        + '<li class="nav-item"><a id="li-' + type + 'm-3" class="nav-link" href="#div-' + type + 'm-3">div 3</a></li>'
-        + '</ul>'
-        + '</nav>'
-      )
-      var $content = $(
-          '<div class="content"' + (type === 'data' ? ' data-spy="scroll" data-target="#navbar-offset-method-menu" data-offset="0" data-method="offset"' : '') + ' style="position: relative; overflow: auto; height: 100px">'
-        + '<div id="div-' + type + 'm-1" style="position: relative; height: 200px; padding: 0; margin: 0">div 1</div>'
-        + '<div id="div-' + type + 'm-2" style="position: relative; height: 150px; padding: 0; margin: 0">div 2</div>'
-        + '<div id="div-' + type + 'm-3" style="position: relative; height: 250px; padding: 0; margin: 0">div 3</div>'
-        + '</div>'
-      )
-
-      $navbar.appendTo('#qunit-fixture')
-      $content.appendTo('#qunit-fixture')
-
-      if (type === 'js') {
-        $content.bootstrapScrollspy({ target: '.navbar', offset: 0, method: 'offset' })
-      }
-      else if (type === 'data') {
-        $(window).trigger('load')
-      }
-
-      var $target = $('#div-' + type + 'm-2')
-      var scrollspy = $content.data('bs.scrollspy')
-
-      assert.ok(scrollspy._offsets[1] === $target.offset().top, 'offset method with ' + type + ' option')
-      assert.ok(scrollspy._offsets[1] !== $target.position().top, 'position method with ' + type + ' option')
-      $navbar.remove()
-      $content.remove()
-    }
-
-    testOffsetMethod('js')
-    testOffsetMethod('data')
-  })
-
-  QUnit.test('should allow passed in option offset method: position', function (assert) {
-    assert.expect(4)
-
-    var testOffsetMethod = function (type) {
-      var $navbar = $(
-          '<nav class="navbar"' + (type === 'data' ? ' id="navbar-offset-method-menu"' : '') + '>'
-        + '<ul class="nav">'
-        + '<li class="nav-item"><a class="nav-link" id="li-' + type + 'm-1" href="#div-' + type + 'm-1">div 1</a></li>'
-        + '<li class="nav-item"><a class="nav-link" id="li-' + type + 'm-2" href="#div-' + type + 'm-2">div 2</a></li>'
-        + '<li class="nav-item"><a class="nav-link" id="li-' + type + 'm-3" href="#div-' + type + 'm-3">div 3</a></li>'
-        + '</ul>'
-        + '</nav>'
-      )
-      var $content = $(
-          '<div class="content"' + (type === 'data' ? ' data-spy="scroll" data-target="#navbar-offset-method-menu" data-offset="0" data-method="position"' : '') + ' style="position: relative; overflow: auto; height: 100px">'
-        + '<div id="div-' + type + 'm-1" style="position: relative; height: 200px; padding: 0; margin: 0">div 1</div>'
-        + '<div id="div-' + type + 'm-2" style="position: relative; height: 150px; padding: 0; margin: 0">div 2</div>'
-        + '<div id="div-' + type + 'm-3" style="position: relative; height: 250px; padding: 0; margin: 0">div 3</div>'
-        + '</div>'
-      )
-
-      $navbar.appendTo('#qunit-fixture')
-      $content.appendTo('#qunit-fixture')
-
-      if (type === 'js') { $content.bootstrapScrollspy({ target: '.navbar', offset: 0, method: 'position' }) }
-      else if (type === 'data') { $(window).trigger('load') }
-
-      var $target = $('#div-' + type + 'm-2')
-      var scrollspy = $content.data('bs.scrollspy')
-
-      assert.ok(scrollspy._offsets[1] !== $target.offset().top, 'offset method with ' + type + ' option')
-      assert.ok(scrollspy._offsets[1] === $target.position().top, 'position method with ' + type + ' option')
-      $navbar.remove()
-      $content.remove()
-    }
-
-    testOffsetMethod('js')
-    testOffsetMethod('data')
-  })
-
-})
diff --git a/assets/javascript/tests/unit/tab.js b/assets/javascript/tests/unit/tab.js
deleted file mode 100755
index 73ebbd6..0000000
--- a/assets/javascript/tests/unit/tab.js
+++ /dev/null
@@ -1,385 +0,0 @@
-$(function () {
-  'use strict'
-
-  QUnit.module('tabs plugin')
-
-  QUnit.test('should be defined on jquery object', function (assert) {
-    assert.expect(1)
-    assert.ok($(document.body).tab, 'tabs method is defined')
-  })
-
-  QUnit.module('tabs', {
-    beforeEach: function () {
-      // Run all tests in noConflict mode -- it's the only way to ensure that the plugin works in noConflict mode
-      $.fn.bootstrapTab = $.fn.tab.noConflict()
-    },
-    afterEach: function () {
-      $.fn.tab = $.fn.bootstrapTab
-      delete $.fn.bootstrapTab
-    }
-  })
-
-  QUnit.test('should provide no conflict', function (assert) {
-    assert.expect(1)
-    assert.strictEqual(typeof $.fn.tab, 'undefined', 'tab was set back to undefined (org value)')
-  })
-
-  QUnit.test('should throw explicit error on undefined method', function (assert) {
-    assert.expect(1)
-    var $el = $('<div/>')
-    $el.bootstrapTab()
-    try {
-      $el.bootstrapTab('noMethod')
-    }
-    catch (err) {
-      assert.strictEqual(err.message, 'No method named "noMethod"')
-    }
-  })
-
-  QUnit.test('should return jquery collection containing the element', function (assert) {
-    assert.expect(2)
-    var $el = $('<div/>')
-    var $tab = $el.bootstrapTab()
-    assert.ok($tab instanceof $, 'returns jquery collection')
-    assert.strictEqual($tab[0], $el[0], 'collection contains element')
-  })
-
-  QUnit.test('should activate element by tab id', function (assert) {
-    assert.expect(2)
-    var tabsHTML = '<ul class="nav">'
-        + '<li><a href="#home">Home</a></li>'
-        + '<li><a href="#profile">Profile</a></li>'
-        + '</ul>'
-
-    $('<ul><li id="home"/><li id="profile"/></ul>').appendTo('#qunit-fixture')
-
-    $(tabsHTML).find('li:last a').bootstrapTab('show')
-    assert.strictEqual($('#qunit-fixture').find('.active').attr('id'), 'profile')
-
-    $(tabsHTML).find('li:first a').bootstrapTab('show')
-    assert.strictEqual($('#qunit-fixture').find('.active').attr('id'), 'home')
-  })
-
-  QUnit.test('should activate element by tab id', function (assert) {
-    assert.expect(2)
-    var pillsHTML = '<ul class="nav nav-pills">'
-        + '<li><a href="#home">Home</a></li>'
-        + '<li><a href="#profile">Profile</a></li>'
-        + '</ul>'
-
-    $('<ul><li id="home"/><li id="profile"/></ul>').appendTo('#qunit-fixture')
-
-    $(pillsHTML).find('li:last a').bootstrapTab('show')
-    assert.strictEqual($('#qunit-fixture').find('.active').attr('id'), 'profile')
-
-    $(pillsHTML).find('li:first a').bootstrapTab('show')
-    assert.strictEqual($('#qunit-fixture').find('.active').attr('id'), 'home')
-  })
-
-  QUnit.test('should activate element by tab id in ordered list', function (assert) {
-    assert.expect(2)
-    var pillsHTML = '<ol class="nav nav-pills">'
-        + '<li><a href="#home">Home</a></li>'
-        + '<li><a href="#profile">Profile</a></li>'
-        + '</ol>'
-
-    $('<ol><li id="home"/><li id="profile"/></ol>').appendTo('#qunit-fixture')
-
-    $(pillsHTML).find('li:last a').bootstrapTab('show')
-    assert.strictEqual($('#qunit-fixture').find('.active').attr('id'), 'profile')
-
-    $(pillsHTML).find('li:first a').bootstrapTab('show')
-    assert.strictEqual($('#qunit-fixture').find('.active').attr('id'), 'home')
-  })
-
-  QUnit.test('should activate element by tab id in nav list', function (assert) {
-    assert.expect(2)
-    var tabsHTML =  '<nav class="nav">' +
-                      '<a href="#home">Home</a>' +
-                      '<a href="#profile">Profile</a>' +
-                    '</nav>'
-
-    $('<nav><div id="home"></div><div id="profile"></div></nav>').appendTo('#qunit-fixture')
-
-    $(tabsHTML).find('a:last').bootstrapTab('show')
-    assert.strictEqual($('#qunit-fixture').find('.active').attr('id'), 'profile')
-
-    $(tabsHTML).find('a:first').bootstrapTab('show')
-    assert.strictEqual($('#qunit-fixture').find('.active').attr('id'), 'home')
-  })
-
-  QUnit.test('should activate element by tab id in list group', function (assert) {
-    assert.expect(2)
-    var tabsHTML =  '<div class="list-group">' +
-                      '<a href="#home">Home</a>' +
-                      '<a href="#profile">Profile</a>' +
-                    '</div>'
-
-    $('<nav><div id="home"></div><div id="profile"></div></nav>').appendTo('#qunit-fixture')
-
-    $(tabsHTML).find('a:last').bootstrapTab('show')
-    assert.strictEqual($('#qunit-fixture').find('.active').attr('id'), 'profile')
-
-    $(tabsHTML).find('a:first').bootstrapTab('show')
-    assert.strictEqual($('#qunit-fixture').find('.active').attr('id'), 'home')
-  })
-
-  QUnit.test('should not fire shown when show is prevented', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    $('<div class="nav"/>')
-      .on('show.bs.tab', function (e) {
-        e.preventDefault()
-        assert.ok(true, 'show event fired')
-        done()
-      })
-      .on('shown.bs.tab', function () {
-        assert.ok(false, 'shown event fired')
-      })
-      .bootstrapTab('show')
-  })
-
-  QUnit.test('should not fire shown when tab is already active', function (assert) {
-    assert.expect(0)
-    var tabsHTML = '<ul class="nav nav-tabs" role="tablist">'
-      + '<li class="nav-item"><a href="#home" class="nav-link active" role="tab">Home</a></li>'
-      + '<li class="nav-item"><a href="#profile" class="nav-link" role="tab">Profile</a></li>'
-      + '</ul>'
-      + '<div class="tab-content">'
-      + '<div class="tab-pane active" id="home" role="tabpanel"></div>'
-      + '<div class="tab-pane" id="profile" role="tabpanel"></div>'
-      + '</div>'
-
-    $(tabsHTML)
-      .find('a.active')
-      .on('shown.bs.tab', function () {
-        assert.ok(true, 'shown event fired')
-      })
-      .bootstrapTab('show')
-  })
-
-  QUnit.test('should not fire shown when tab is disabled', function (assert) {
-    assert.expect(0)
-    var tabsHTML = '<ul class="nav nav-tabs" role="tablist">'
-      + '<li class="nav-item"><a href="#home" class="nav-link active" role="tab">Home</a></li>'
-      + '<li class="nav-item"><a href="#profile" class="nav-link disabled" role="tab">Profile</a></li>'
-      + '</ul>'
-      + '<div class="tab-content">'
-      + '<div class="tab-pane active" id="home" role="tabpanel"></div>'
-      + '<div class="tab-pane" id="profile" role="tabpanel"></div>'
-      + '</div>'
-
-    $(tabsHTML)
-      .find('a.disabled')
-      .on('shown.bs.tab', function () {
-        assert.ok(true, 'shown event fired')
-      })
-      .bootstrapTab('show')
-  })
-
-  QUnit.test('show and shown events should reference correct relatedTarget', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-
-    var dropHTML =
-          '<ul class="drop nav">'
-        + '  <li class="dropdown"><a data-toggle="dropdown" href="#">1</a>'
-        + '    <ul class="dropdown-menu nav">'
-        + '      <li><a href="#1-1" data-toggle="tab">1-1</a></li>'
-        + '      <li><a href="#1-2" data-toggle="tab">1-2</a></li>'
-        + '    </ul>'
-        + '  </li>'
-        + '</ul>'
-
-    $(dropHTML)
-      .find('ul > li:first a')
-        .bootstrapTab('show')
-      .end()
-      .find('ul > li:last a')
-        .on('show.bs.tab', function (e) {
-          assert.strictEqual(e.relatedTarget.hash, '#1-1', 'references correct element as relatedTarget')
-        })
-        .on('shown.bs.tab', function (e) {
-          assert.strictEqual(e.relatedTarget.hash, '#1-1', 'references correct element as relatedTarget')
-          done()
-        })
-        .bootstrapTab('show')
-  })
-
-  QUnit.test('should fire hide and hidden events', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-
-    var tabsHTML = '<ul class="nav">'
-        + '<li><a href="#home">Home</a></li>'
-        + '<li><a href="#profile">Profile</a></li>'
-        + '</ul>'
-
-    $(tabsHTML)
-      .find('li:first a')
-        .on('hide.bs.tab', function () {
-          assert.ok(true, 'hide event fired')
-        })
-        .bootstrapTab('show')
-      .end()
-      .find('li:last a')
-        .bootstrapTab('show')
-
-    $(tabsHTML)
-      .find('li:first a')
-        .on('hidden.bs.tab', function () {
-          assert.ok(true, 'hidden event fired')
-          done()
-        })
-        .bootstrapTab('show')
-      .end()
-      .find('li:last a')
-        .bootstrapTab('show')
-  })
-
-  QUnit.test('should not fire hidden when hide is prevented', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    var tabsHTML = '<ul class="nav">'
-        + '<li><a href="#home">Home</a></li>'
-        + '<li><a href="#profile">Profile</a></li>'
-        + '</ul>'
-
-    $(tabsHTML)
-      .find('li:first a')
-        .on('hide.bs.tab', function (e) {
-          e.preventDefault()
-          assert.ok(true, 'hide event fired')
-          done()
-        })
-        .on('hidden.bs.tab', function () {
-          assert.ok(false, 'hidden event fired')
-        })
-        .bootstrapTab('show')
-      .end()
-      .find('li:last a')
-        .bootstrapTab('show')
-  })
-
-  QUnit.test('hide and hidden events contain correct relatedTarget', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-
-    var tabsHTML = '<ul class="nav">'
-        + '<li><a href="#home">Home</a></li>'
-        + '<li><a href="#profile">Profile</a></li>'
-        + '</ul>'
-
-    $(tabsHTML)
-      .find('li:first a')
-        .on('hide.bs.tab', function (e) {
-          assert.strictEqual(e.relatedTarget.hash, '#profile', 'references correct element as relatedTarget')
-        })
-        .on('hidden.bs.tab', function (e) {
-          assert.strictEqual(e.relatedTarget.hash, '#profile', 'references correct element as relatedTarget')
-          done()
-        })
-        .bootstrapTab('show')
-      .end()
-      .find('li:last a')
-        .bootstrapTab('show')
-  })
-
-  QUnit.test('selected tab should have aria-selected', function (assert) {
-    assert.expect(8)
-    var tabsHTML = '<ul class="nav nav-tabs">'
-        + '<li><a class="nav-item active" href="#home" toggle="tab" aria-selected="true">Home</a></li>'
-        + '<li><a class="nav-item" href="#profile" toggle="tab" aria-selected="false">Profile</a></li>'
-        + '</ul>'
-    var $tabs = $(tabsHTML).appendTo('#qunit-fixture')
-
-    $tabs.find('li:first a').bootstrapTab('show')
-    assert.strictEqual($tabs.find('.active').attr('aria-selected'), 'true', 'shown tab has aria-selected = true')
-    assert.strictEqual($tabs.find('a:not(.active)').attr('aria-selected'), 'false', 'hidden tab has aria-selected = false')
-
-    $tabs.find('li:last a').trigger('click')
-    assert.strictEqual($tabs.find('.active').attr('aria-selected'), 'true', 'after click, shown tab has aria-selected = true')
-    assert.strictEqual($tabs.find('a:not(.active)').attr('aria-selected'), 'false', 'after click, hidden tab has aria-selected = false')
-
-    $tabs.find('li:first a').bootstrapTab('show')
-    assert.strictEqual($tabs.find('.active').attr('aria-selected'), 'true', 'shown tab has aria-selected = true')
-    assert.strictEqual($tabs.find('a:not(.active)').attr('aria-selected'), 'false', 'hidden tab has aria-selected = false')
-
-    $tabs.find('li:first a').trigger('click')
-    assert.strictEqual($tabs.find('.active').attr('aria-selected'), 'true', 'after second show event, shown tab still has aria-selected = true')
-    assert.strictEqual($tabs.find('a:not(.active)').attr('aria-selected'), 'false', 'after second show event, hidden tab has aria-selected = false')
-  })
-
-  QUnit.test('selected tab should deactivate previous selected tab', function (assert) {
-    assert.expect(2)
-    var tabsHTML = '<ul class="nav nav-tabs">'
-        + '<li class="nav-item"><a class="nav-link active" href="#home" data-toggle="tab">Home</a></li>'
-        + '<li class="nav-item"><a class="nav-link" href="#profile" data-toggle="tab">Profile</a></li>'
-        + '</ul>'
-    var $tabs = $(tabsHTML).appendTo('#qunit-fixture')
-
-    $tabs.find('li:last a').trigger('click')
-    assert.notOk($tabs.find('li:first a').hasClass('active'))
-    assert.ok($tabs.find('li:last a').hasClass('active'))
-  })
-
-  QUnit.test('selected tab should deactivate previous selected link in dropdown', function (assert) {
-    assert.expect(3)
-    var tabsHTML = '<ul class="nav nav-tabs">'
-        + '<li class="nav-item"><a class="nav-link" href="#home" data-toggle="tab">Home</a></li>'
-        + '<li class="nav-item"><a class="nav-link" href="#profile" data-toggle="tab">Profile</a></li>'
-        + '<li class="nav-item dropdown"><a class="nav-link dropdown-toggle active" data-toggle="dropdown" href="#">Dropdown</a>'
-        + '<div class="dropdown-menu">'
-        + '<a class="dropdown-item active" href="#dropdown1" id="dropdown1-tab" data-toggle="tab">@fat</a>'
-        + '<a class="dropdown-item" href="#dropdown2" id="dropdown2-tab" data-toggle="tab">@mdo</a>'
-        + '</div>'
-        + '</li>'
-        + '</ul>'
-    var $tabs = $(tabsHTML).appendTo('#qunit-fixture')
-
-    $tabs.find('li:first > a').trigger('click')
-    assert.ok($tabs.find('li:first a').hasClass('active'))
-    assert.notOk($tabs.find('li:last > a').hasClass('active'))
-    assert.notOk($tabs.find('li:last > .dropdown-menu > a:first').hasClass('active'))
-  })
-
-  QUnit.test('Nested tabs', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-    var tabsHTML =
-          '<nav class="nav nav-tabs" role="tablist">'
-        + '  <a id="tab1" href="#x-tab1" class="nav-item nav-link" data-toggle="tab" role="tab" aria-controls="x-tab1">Tab 1</a>'
-        + '  <a href="#x-tab2" class="nav-item nav-link active" data-toggle="tab" role="tab" aria-controls="x-tab2" aria-selected="true">Tab 2</a>'
-        + '  <a href="#x-tab3" class="nav-item nav-link" data-toggle="tab" role="tab" aria-controls="x-tab3">Tab 3</a>'
-        + '</nav>'
-        + '<div class="tab-content">'
-        + '  <div class="tab-pane" id="x-tab1" role="tabpanel">'
-        + '    <nav class="nav nav-tabs" role="tablist">'
-        + '      <a href="#nested-tab1" class="nav-item nav-link active" data-toggle="tab" role="tab" aria-controls="x-tab1" aria-selected="true">Nested Tab 1</a>'
-        + '      <a id="tabNested2" href="#nested-tab2" class="nav-item nav-link" data-toggle="tab" role="tab" aria-controls="x-profile">Nested Tab2</a>'
-        + '    </nav>'
-        + '    <div class="tab-content">'
-        + '      <div class="tab-pane active" id="nested-tab1" role="tabpanel">Nested Tab1 Content</div>'
-        + '      <div class="tab-pane" id="nested-tab2" role="tabpanel">Nested Tab2 Content</div>'
-        + '    </div>'
-        + '  </div>'
-        + '  <div class="tab-pane active" id="x-tab2" role="tabpanel">Tab2 Content</div>'
-        + '  <div class="tab-pane" id="x-tab3" role="tabpanel">Tab3 Content</div>'
-        + '</div>'
-
-    $(tabsHTML).appendTo('#qunit-fixture')
-
-    $('#tabNested2').on('shown.bs.tab', function () {
-      assert.ok($('#x-tab1').hasClass('active'))
-      done()
-    })
-
-    $('#tab1').on('shown.bs.tab', function () {
-      assert.ok($('#x-tab1').hasClass('active'))
-      $('#tabNested2').trigger($.Event('click'))
-    })
-    .trigger($.Event('click'))
-  })
-})
diff --git a/assets/javascript/tests/unit/tooltip.js b/assets/javascript/tests/unit/tooltip.js
deleted file mode 100755
index e4e6bdd..0000000
--- a/assets/javascript/tests/unit/tooltip.js
+++ /dev/null
@@ -1,851 +0,0 @@
-$(function () {
-  'use strict'
-
-  QUnit.module('tooltip plugin')
-
-  QUnit.test('should be defined on jquery object', function (assert) {
-    assert.expect(1)
-    assert.ok($(document.body).tooltip, 'tooltip method is defined')
-  })
-
-  QUnit.module('tooltip', {
-    beforeEach: function () {
-      // Run all tests in noConflict mode -- it's the only way to ensure that the plugin works in noConflict mode
-      $.fn.bootstrapTooltip = $.fn.tooltip.noConflict()
-    },
-    afterEach: function () {
-      $.fn.tooltip = $.fn.bootstrapTooltip
-      delete $.fn.bootstrapTooltip
-      $('.tooltip').remove()
-    }
-  })
-
-  QUnit.test('should provide no conflict', function (assert) {
-    assert.expect(1)
-    assert.strictEqual(typeof $.fn.tooltip, 'undefined', 'tooltip was set back to undefined (org value)')
-  })
-
-  QUnit.test('should throw explicit error on undefined method', function (assert) {
-    assert.expect(1)
-    var $el = $('<div/>')
-    $el.bootstrapTooltip()
-    try {
-      $el.bootstrapTooltip('noMethod')
-    }
-    catch (err) {
-      assert.strictEqual(err.message, 'No method named "noMethod"')
-    }
-  })
-
-  QUnit.test('should return jquery collection containing the element', function (assert) {
-    assert.expect(2)
-    var $el = $('<div/>')
-    var $tooltip = $el.bootstrapTooltip()
-    assert.ok($tooltip instanceof $, 'returns jquery collection')
-    assert.strictEqual($tooltip[0], $el[0], 'collection contains element')
-  })
-
-  QUnit.test('should expose default settings', function (assert) {
-    assert.expect(1)
-    assert.ok($.fn.bootstrapTooltip.Constructor.Default, 'defaults is defined')
-  })
-
-  QUnit.test('should empty title attribute', function (assert) {
-    assert.expect(1)
-    var $trigger = $('<a href="#" rel="tooltip" title="Another tooltip"/>').bootstrapTooltip()
-    assert.strictEqual($trigger.attr('title'), '', 'title attribute was emptied')
-  })
-
-  QUnit.test('should add data attribute for referencing original title', function (assert) {
-    assert.expect(1)
-    var $trigger = $('<a href="#" rel="tooltip" title="Another tooltip"/>').bootstrapTooltip()
-    assert.strictEqual($trigger.attr('data-original-title'), 'Another tooltip', 'original title preserved in data attribute')
-  })
-
-  QUnit.test('should add aria-describedby to the trigger on show', function (assert) {
-    assert.expect(3)
-    var $trigger = $('<a href="#" rel="tooltip" title="Another tooltip"/>')
-      .bootstrapTooltip()
-      .appendTo('#qunit-fixture')
-      .bootstrapTooltip('show')
-
-    var id = $('.tooltip').attr('id')
-
-    assert.strictEqual($('#' + id).length, 1, 'has a unique id')
-    assert.strictEqual($('.tooltip').attr('aria-describedby'), $trigger.attr('id'), 'tooltip id and aria-describedby on trigger match')
-    assert.ok($trigger[0].hasAttribute('aria-describedby'), 'trigger has aria-describedby')
-  })
-
-  QUnit.test('should remove aria-describedby from trigger on hide', function (assert) {
-    assert.expect(2)
-    var $trigger = $('<a href="#" rel="tooltip" title="Another tooltip"/>')
-      .bootstrapTooltip()
-      .appendTo('#qunit-fixture')
-
-    $trigger.bootstrapTooltip('show')
-    assert.ok($trigger[0].hasAttribute('aria-describedby'), 'trigger has aria-describedby')
-
-    $trigger.bootstrapTooltip('hide')
-    assert.ok(!$trigger[0].hasAttribute('aria-describedby'), 'trigger does not have aria-describedby')
-  })
-
-  QUnit.test('should assign a unique id tooltip element', function (assert) {
-    assert.expect(2)
-    $('<a href="#" rel="tooltip" title="Another tooltip"/>')
-      .appendTo('#qunit-fixture')
-      .bootstrapTooltip('show')
-
-    var id = $('.tooltip').attr('id')
-
-    assert.strictEqual($('#' + id).length, 1, 'tooltip has unique id')
-    assert.strictEqual(id.indexOf('tooltip'), 0, 'tooltip id has prefix')
-  })
-
-  QUnit.test('should place tooltips relative to placement option', function (assert) {
-    assert.expect(2)
-    var $tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"/>')
-      .appendTo('#qunit-fixture')
-      .bootstrapTooltip({ placement: 'bottom' })
-
-    $tooltip.bootstrapTooltip('show')
-
-    assert
-      .ok($('.tooltip')
-      .is('.fade.bs-tooltip-bottom.show'), 'has correct classes applied')
-
-    $tooltip.bootstrapTooltip('hide')
-
-    assert.strictEqual($tooltip.data('bs.tooltip').tip.parentNode, null, 'tooltip removed')
-  })
-
-  QUnit.test('should allow html entities', function (assert) {
-    assert.expect(2)
-    var $tooltip = $('<a href="#" rel="tooltip" title="<b>@fat</b>"/>')
-      .appendTo('#qunit-fixture')
-      .bootstrapTooltip({ html: true })
-
-    $tooltip.bootstrapTooltip('show')
-    assert.notEqual($('.tooltip b').length, 0, 'b tag was inserted')
-
-    $tooltip.bootstrapTooltip('hide')
-    assert.strictEqual($tooltip.data('bs.tooltip').tip.parentNode, null, 'tooltip removed')
-  })
-
-  QUnit.test('should allow DOMElement title (html: false)', function (assert) {
-    assert.expect(3)
-    var title = document.createTextNode('<3 writing tests')
-    var $tooltip = $('<a href="#" rel="tooltip"/>')
-      .appendTo('#qunit-fixture')
-      .bootstrapTooltip({ title: title })
-
-    $tooltip.bootstrapTooltip('show')
-
-    assert.notEqual($('.tooltip').length, 0, 'tooltip inserted')
-    assert.strictEqual($('.tooltip').text(), '<3 writing tests', 'title inserted')
-    assert.ok(!$.contains($('.tooltip').get(0), title), 'title node copied, not moved')
-  })
-
-  QUnit.test('should allow DOMElement title (html: true)', function (assert) {
-    assert.expect(3)
-    var title = document.createTextNode('<3 writing tests')
-    var $tooltip = $('<a href="#" rel="tooltip"/>')
-      .appendTo('#qunit-fixture')
-      .bootstrapTooltip({ html: true, title: title })
-
-    $tooltip.bootstrapTooltip('show')
-
-    assert.notEqual($('.tooltip').length, 0, 'tooltip inserted')
-    assert.strictEqual($('.tooltip').text(), '<3 writing tests', 'title inserted')
-    assert.ok($.contains($('.tooltip').get(0), title), 'title node moved, not copied')
-  })
-
-
-  QUnit.test('should respect custom classes', function (assert) {
-    assert.expect(2)
-    var $tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"/>')
-      .appendTo('#qunit-fixture')
-      .bootstrapTooltip({ template: '<div class="tooltip some-class"><div class="tooltip-arrow"/><div class="tooltip-inner"/></div>' })
-
-    $tooltip.bootstrapTooltip('show')
-    assert.ok($('.tooltip').hasClass('some-class'), 'custom class is present')
-
-    $tooltip.bootstrapTooltip('hide')
-    assert.strictEqual($tooltip.data('bs.tooltip').tip.parentNode, null, 'tooltip removed')
-  })
-
-  QUnit.test('should fire show event', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    $('<div title="tooltip title"/>')
-      .on('show.bs.tooltip', function () {
-        assert.ok(true, 'show event fired')
-        done()
-      })
-      .bootstrapTooltip('show')
-  })
-
-  QUnit.test('should throw an error when show is called on hidden elements', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    try {
-      $('<div title="tooltip title" style="display: none"/>').bootstrapTooltip('show')
-    }
-    catch (err) {
-      assert.strictEqual(err.message, 'Please use show on visible elements')
-      done()
-    }
-  })
-
-  QUnit.test('should fire inserted event', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-
-    $('<div title="tooltip title"/>')
-      .appendTo('#qunit-fixture')
-      .on('inserted.bs.tooltip', function () {
-        assert.notEqual($('.tooltip').length, 0, 'tooltip was inserted')
-        assert.ok(true, 'inserted event fired')
-        done()
-      })
-      .bootstrapTooltip('show')
-  })
-
-  QUnit.test('should fire shown event', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    $('<div title="tooltip title"></div>')
-      .appendTo('#qunit-fixture')
-      .on('shown.bs.tooltip', function () {
-        assert.ok(true, 'shown was called')
-        done()
-      })
-      .bootstrapTooltip('show')
-  })
-
-  QUnit.test('should not fire shown event when show was prevented', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    $('<div title="tooltip title"/>')
-      .on('show.bs.tooltip', function (e) {
-        e.preventDefault()
-        assert.ok(true, 'show event fired')
-        done()
-      })
-      .on('shown.bs.tooltip', function () {
-        assert.ok(false, 'shown event fired')
-      })
-      .bootstrapTooltip('show')
-  })
-
-  QUnit.test('should fire hide event', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    $('<div title="tooltip title"/>')
-      .appendTo('#qunit-fixture')
-      .on('shown.bs.tooltip', function () {
-        $(this).bootstrapTooltip('hide')
-      })
-      .on('hide.bs.tooltip', function () {
-        assert.ok(true, 'hide event fired')
-        done()
-      })
-      .bootstrapTooltip('show')
-  })
-
-  QUnit.test('should fire hidden event', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    $('<div title="tooltip title"/>')
-      .appendTo('#qunit-fixture')
-      .on('shown.bs.tooltip', function () {
-        $(this).bootstrapTooltip('hide')
-      })
-      .on('hidden.bs.tooltip', function () {
-        assert.ok(true, 'hidden event fired')
-        done()
-      })
-      .bootstrapTooltip('show')
-  })
-
-  QUnit.test('should not fire hidden event when hide was prevented', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    $('<div title="tooltip title"/>')
-      .appendTo('#qunit-fixture')
-      .on('shown.bs.tooltip', function () {
-        $(this).bootstrapTooltip('hide')
-      })
-      .on('hide.bs.tooltip', function (e) {
-        e.preventDefault()
-        assert.ok(true, 'hide event fired')
-        done()
-      })
-      .on('hidden.bs.tooltip', function () {
-        assert.ok(false, 'hidden event fired')
-      })
-      .bootstrapTooltip('show')
-  })
-
-  QUnit.test('should destroy tooltip', function (assert) {
-    assert.expect(7)
-    var $tooltip = $('<div/>')
-      .bootstrapTooltip()
-      .on('click.foo', function () {})
-
-    assert.ok($tooltip.data('bs.tooltip'), 'tooltip has data')
-    assert.ok($._data($tooltip[0], 'events').mouseover && $._data($tooltip[0], 'events').mouseout, 'tooltip has hover events')
-    assert.strictEqual($._data($tooltip[0], 'events').click[0].namespace, 'foo', 'tooltip has extra click.foo event')
-
-    $tooltip.bootstrapTooltip('show')
-    $tooltip.bootstrapTooltip('dispose')
-
-    assert.ok(!$tooltip.hasClass('show'), 'tooltip is hidden')
-    assert.ok(!$._data($tooltip[0], 'bs.tooltip'), 'tooltip does not have data')
-    assert.strictEqual($._data($tooltip[0], 'events').click[0].namespace, 'foo', 'tooltip still has click.foo')
-    assert.ok(!$._data($tooltip[0], 'events').mouseover && !$._data($tooltip[0], 'events').mouseout, 'tooltip does not have hover events')
-  })
-
-  // QUnit.test('should show tooltip with delegate selector on click', function (assert) {
-  //   assert.expect(2)
-  //   var $div = $('<div><a href="#" rel="tooltip" title="Another tooltip"/></div>')
-  //     .appendTo('#qunit-fixture')
-  //     .bootstrapTooltip({
-  //       selector: 'a[rel="tooltip"]',
-  //       trigger: 'click'
-  //     })
-
-  //   $div.find('a').trigger('click')
-  //   assert.ok($('.tooltip').is('.fade.in'), 'tooltip is faded in')
-
-  //   $div.find('a').trigger('click')
-  //   assert.strictEqual($div.data('bs.tooltip').tip.parentNode, null, 'tooltip removed')
-  // })
-
-  QUnit.test('should show tooltip when toggle is called', function (assert) {
-    assert.expect(1)
-    $('<a href="#" rel="tooltip" title="tooltip on toggle"/>')
-      .appendTo('#qunit-fixture')
-      .bootstrapTooltip({ trigger: 'manual' })
-      .bootstrapTooltip('toggle')
-
-    assert.ok($('.tooltip').is('.fade.show'), 'tooltip is faded active')
-  })
-
-  QUnit.test('should hide previously shown tooltip when toggle is called on tooltip', function (assert) {
-    assert.expect(1)
-    $('<a href="#" rel="tooltip" title="tooltip on toggle">@ResentedHook</a>')
-      .appendTo('#qunit-fixture')
-      .bootstrapTooltip({ trigger: 'manual' })
-      .bootstrapTooltip('show')
-
-    $('.tooltip').bootstrapTooltip('toggle')
-    assert.ok($('.tooltip').not('.fade.show'), 'tooltip was faded out')
-  })
-
-  QUnit.test('should place tooltips inside body when container is body', function (assert) {
-    assert.expect(3)
-    var $tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"/>')
-      .appendTo('#qunit-fixture')
-      .bootstrapTooltip({ container: 'body' })
-      .bootstrapTooltip('show')
-
-    assert.notEqual($('body > .tooltip').length, 0, 'tooltip is direct descendant of body')
-    assert.strictEqual($('#qunit-fixture > .tooltip').length, 0, 'tooltip is not in parent')
-
-    $tooltip.bootstrapTooltip('hide')
-    assert.strictEqual($('body > .tooltip').length, 0, 'tooltip was removed from dom')
-  })
-
-  QUnit.test('should add position class before positioning so that position-specific styles are taken into account', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-    var styles = '<style>'
-      + '.bs-tooltip-right { white-space: nowrap; }'
-      + '.bs-tooltip-right .tooltip-inner { max-width: none; }'
-      + '</style>'
-    var $styles = $(styles).appendTo('head')
-
-    var $container = $('<div/>').appendTo('#qunit-fixture')
-    $('<a href="#" rel="tooltip" title="very very very very very very very very long tooltip in one line"/>')
-      .appendTo($container)
-      .bootstrapTooltip({
-        placement: 'right',
-        trigger: 'manual'
-      })
-      .on('inserted.bs.tooltip', function () {
-        var $tooltip = $($(this).data('bs.tooltip').tip)
-        assert.ok($tooltip.hasClass('bs-tooltip-right'))
-        assert.ok(typeof $tooltip.attr('style') === 'undefined')
-        $styles.remove()
-        done()
-      })
-      .bootstrapTooltip('show')
-  })
-
-  QUnit.test('should use title attribute for tooltip text', function (assert) {
-    assert.expect(2)
-    var $tooltip = $('<a href="#" rel="tooltip" title="Simple tooltip"/>')
-      .appendTo('#qunit-fixture')
-      .bootstrapTooltip()
-
-    $tooltip.bootstrapTooltip('show')
-    assert.strictEqual($('.tooltip').children('.tooltip-inner').text(), 'Simple tooltip', 'title from title attribute is set')
-
-    $tooltip.bootstrapTooltip('hide')
-    assert.strictEqual($('.tooltip').length, 0, 'tooltip removed from dom')
-  })
-
-  QUnit.test('should prefer title attribute over title option', function (assert) {
-    assert.expect(2)
-    var $tooltip = $('<a href="#" rel="tooltip" title="Simple tooltip"/>')
-      .appendTo('#qunit-fixture')
-      .bootstrapTooltip({
-        title: 'This is a tooltip with some content'
-      })
-
-    $tooltip.bootstrapTooltip('show')
-    assert.strictEqual($('.tooltip').children('.tooltip-inner').text(), 'Simple tooltip', 'title is set from title attribute while preferred over title option')
-
-    $tooltip.bootstrapTooltip('hide')
-    assert.strictEqual($('.tooltip').length, 0, 'tooltip removed from dom')
-  })
-
-  QUnit.test('should use title option', function (assert) {
-    assert.expect(2)
-    var $tooltip = $('<a href="#" rel="tooltip"/>')
-      .appendTo('#qunit-fixture')
-      .bootstrapTooltip({
-        title: 'This is a tooltip with some content'
-      })
-
-    $tooltip.bootstrapTooltip('show')
-    assert.strictEqual($('.tooltip').children('.tooltip-inner').text(), 'This is a tooltip with some content', 'title from title option is set')
-
-    $tooltip.bootstrapTooltip('hide')
-    assert.strictEqual($('.tooltip').length, 0, 'tooltip removed from dom')
-  })
-
-  QUnit.test('should not error when trying to show an top-placed tooltip that has been removed from the dom', function (assert) {
-    assert.expect(1)
-    var passed = true
-    var $tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"/>')
-      .appendTo('#qunit-fixture')
-      .one('show.bs.tooltip', function () {
-        $(this).remove()
-      })
-      .bootstrapTooltip({ placement: 'top' })
-
-    try {
-      $tooltip.bootstrapTooltip('show')
-    } catch (err) {
-      passed = false
-      console.log(err)
-    }
-
-    assert.ok(passed, '.tooltip(\'show\') should not throw an error if element no longer is in dom')
-  })
-
-  QUnit.test('should place tooltip on top of element', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-
-    var containerHTML = '<div id="test">'
-        + '<p style="margin-top: 200px">'
-        + '<a href="#" title="very very very very very very very long tooltip">Hover me</a>'
-        + '</p>'
-        + '</div>'
-
-    var $container = $(containerHTML)
-      .css({
-        position: 'absolute',
-        bottom: 0,
-        left: 0,
-        textAlign: 'right',
-        width: 300,
-        height: 300
-      })
-      .appendTo('#qunit-fixture')
-
-    $container
-      .find('a')
-      .css('margin-top', 200)
-      .bootstrapTooltip({
-        placement: 'top',
-        animate: false
-      })
-      .on('shown.bs.tooltip', function () {
-        var $tooltip = $($(this).data('bs.tooltip').tip)
-        if (/iPhone|iPad|iPod/.test(navigator.userAgent)) {
-          assert.ok(Math.round($tooltip.offset().top + $tooltip.outerHeight()) <= Math.round($(this).offset().top))
-        }
-        else {
-          assert.ok(Math.round($tooltip.offset().top + $tooltip.outerHeight()) >= Math.round($(this).offset().top))
-        }
-        done()
-      })
-      .bootstrapTooltip('show')
-  })
-
-  QUnit.test('should show tooltip if leave event hasn\'t occurred before delay expires', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-
-    var $tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"/>')
-      .appendTo('#qunit-fixture')
-      .bootstrapTooltip({ delay: 150 })
-
-    setTimeout(function () {
-      assert.ok(!$('.tooltip').is('.fade.show'), '100ms: tooltip is not faded active')
-    }, 100)
-
-    setTimeout(function () {
-      assert.ok($('.tooltip').is('.fade.show'), '200ms: tooltip is faded active')
-      done()
-    }, 200)
-
-    $tooltip.trigger('mouseenter')
-  })
-
-  QUnit.test('should not show tooltip if leave event occurs before delay expires', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-
-    var $tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"/>')
-      .appendTo('#qunit-fixture')
-      .bootstrapTooltip({ delay: 150 })
-
-    setTimeout(function () {
-      assert.ok(!$('.tooltip').is('.fade.show'), '100ms: tooltip not faded active')
-      $tooltip.trigger('mouseout')
-    }, 100)
-
-    setTimeout(function () {
-      assert.ok(!$('.tooltip').is('.fade.show'), '200ms: tooltip not faded active')
-      done()
-    }, 200)
-
-    $tooltip.trigger('mouseenter')
-  })
-
-  QUnit.test('should not hide tooltip if leave event occurs and enter event occurs within the hide delay', function (assert) {
-    assert.expect(3)
-    var done = assert.async()
-
-    var $tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"/>')
-      .appendTo('#qunit-fixture')
-      .bootstrapTooltip({ delay: { show: 0, hide: 150 } })
-
-    setTimeout(function () {
-      assert.ok($('.tooltip').is('.fade.show'), '1ms: tooltip faded active')
-      $tooltip.trigger('mouseout')
-
-      setTimeout(function () {
-        assert.ok($('.tooltip').is('.fade.show'), '100ms: tooltip still faded active')
-        $tooltip.trigger('mouseenter')
-      }, 100)
-
-      setTimeout(function () {
-        assert.ok($('.tooltip').is('.fade.show'), '200ms: tooltip still faded active')
-        done()
-      }, 200)
-    }, 0)
-
-    $tooltip.trigger('mouseenter')
-  })
-
-  QUnit.test('should not show tooltip if leave event occurs before delay expires', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-
-    var $tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"/>')
-      .appendTo('#qunit-fixture')
-      .bootstrapTooltip({ delay: 150 })
-
-    setTimeout(function () {
-      assert.ok(!$('.tooltip').is('.fade.show'), '100ms: tooltip not faded active')
-      $tooltip.trigger('mouseout')
-    }, 100)
-
-    setTimeout(function () {
-      assert.ok(!$('.tooltip').is('.fade.show'), '200ms: tooltip not faded active')
-      done()
-    }, 200)
-
-    $tooltip.trigger('mouseenter')
-  })
-
-  QUnit.test('should not show tooltip if leave event occurs before delay expires, even if hide delay is 0', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-
-    var $tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"/>')
-      .appendTo('#qunit-fixture')
-      .bootstrapTooltip({ delay: { show: 150, hide: 0 } })
-
-    setTimeout(function () {
-      assert.ok(!$('.tooltip').is('.fade.show'), '100ms: tooltip not faded active')
-      $tooltip.trigger('mouseout')
-    }, 100)
-
-    setTimeout(function () {
-      assert.ok(!$('.tooltip').is('.fade.show'), '250ms: tooltip not faded active')
-      done()
-    }, 250)
-
-    $tooltip.trigger('mouseenter')
-  })
-
-  QUnit.test('should wait 200ms before hiding the tooltip', function (assert) {
-    assert.expect(3)
-    var done = assert.async()
-
-    var $tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"/>')
-      .appendTo('#qunit-fixture')
-      .bootstrapTooltip({ delay: { show: 0, hide: 150 } })
-
-    setTimeout(function () {
-      assert.ok($($tooltip.data('bs.tooltip').tip).is('.fade.show'), '1ms: tooltip faded active')
-
-      $tooltip.trigger('mouseout')
-
-      setTimeout(function () {
-        assert.ok($($tooltip.data('bs.tooltip').tip).is('.fade.show'), '100ms: tooltip still faded active')
-      }, 100)
-
-      setTimeout(function () {
-        assert.ok(!$($tooltip.data('bs.tooltip').tip).is('.show'), '200ms: tooltip removed')
-        done()
-      }, 200)
-
-    }, 0)
-
-    $tooltip.trigger('mouseenter')
-  })
-
-  QUnit.test('should not reload the tooltip on subsequent mouseenter events', function (assert) {
-    assert.expect(1)
-    var titleHtml = function () {
-      var uid = Util.getUID('tooltip')
-      return '<p id="tt-content">' + uid + '</p><p>' + uid + '</p><p>' + uid + '</p>'
-    }
-
-    var $tooltip = $('<span id="tt-outer" rel="tooltip" data-trigger="hover" data-placement="top">some text</span>')
-      .appendTo('#qunit-fixture')
-
-    $tooltip.bootstrapTooltip({
-      html: true,
-      animation: false,
-      trigger: 'hover',
-      delay: { show: 0, hide: 500 },
-      container: $tooltip,
-      title: titleHtml
-    })
-
-    $('#tt-outer').trigger('mouseenter')
-
-    var currentUid = $('#tt-content').text()
-
-    $('#tt-content').trigger('mouseenter')
-    assert.strictEqual(currentUid, $('#tt-content').text())
-  })
-
-  QUnit.test('should not reload the tooltip if the mouse leaves and re-enters before hiding', function (assert) {
-    assert.expect(4)
-
-    var titleHtml = function () {
-      var uid = Util.getUID('tooltip')
-      return '<p id="tt-content">' + uid + '</p><p>' + uid + '</p><p>' + uid + '</p>'
-    }
-
-    var $tooltip = $('<span id="tt-outer" rel="tooltip" data-trigger="hover" data-placement="top">some text</span>')
-      .appendTo('#qunit-fixture')
-
-    $tooltip.bootstrapTooltip({
-      html: true,
-      animation: false,
-      trigger: 'hover',
-      delay: { show: 0, hide: 500 },
-      title: titleHtml
-    })
-
-    var obj = $tooltip.data('bs.tooltip')
-
-    $('#tt-outer').trigger('mouseenter')
-
-    var currentUid = $('#tt-content').text()
-
-    $('#tt-outer').trigger('mouseleave')
-    assert.strictEqual(currentUid, $('#tt-content').text())
-
-    assert.ok(obj._hoverState === 'out', 'the tooltip hoverState should be set to "out"')
-
-    $('#tt-outer').trigger('mouseenter')
-    assert.ok(obj._hoverState === 'show', 'the tooltip hoverState should be set to "show"')
-
-    assert.strictEqual(currentUid, $('#tt-content').text())
-  })
-
-  QUnit.test('should do nothing when an attempt is made to hide an uninitialized tooltip', function (assert) {
-    assert.expect(1)
-
-    var $tooltip = $('<span data-toggle="tooltip" title="some tip">some text</span>')
-      .appendTo('#qunit-fixture')
-      .on('hidden.bs.tooltip shown.bs.tooltip', function () {
-        assert.ok(false, 'should not fire any tooltip events')
-      })
-      .bootstrapTooltip('hide')
-    assert.strictEqual(typeof $tooltip.data('bs.tooltip'), 'undefined', 'should not initialize the tooltip')
-  })
-
-  QUnit.test('should not remove tooltip if multiple triggers are set and one is still active', function (assert) {
-    assert.expect(41)
-    var $el = $('<button>Trigger</button>')
-      .appendTo('#qunit-fixture')
-      .bootstrapTooltip({ trigger: 'click hover focus', animation: false })
-    var tooltip = $el.data('bs.tooltip')
-    var $tooltip = $(tooltip.getTipElement())
-
-    function showingTooltip() { return $tooltip.hasClass('show') || tooltip._hoverState === 'show' }
-
-    var tests = [
-        ['mouseenter', 'mouseleave'],
-
-        ['focusin', 'focusout'],
-
-        ['click', 'click'],
-
-        ['mouseenter', 'focusin', 'focusout', 'mouseleave'],
-        ['mouseenter', 'focusin', 'mouseleave', 'focusout'],
-
-        ['focusin', 'mouseenter', 'mouseleave', 'focusout'],
-        ['focusin', 'mouseenter', 'focusout', 'mouseleave'],
-
-        ['click', 'focusin', 'mouseenter', 'focusout', 'mouseleave', 'click'],
-        ['mouseenter', 'click', 'focusin', 'focusout', 'mouseleave', 'click'],
-        ['mouseenter', 'focusin', 'click', 'click', 'mouseleave', 'focusout']
-    ]
-
-    assert.ok(!showingTooltip())
-
-    $.each(tests, function (idx, triggers) {
-      for (var i = 0, len = triggers.length; i < len; i++) {
-        $el.trigger(triggers[i])
-        assert.equal(i < len - 1, showingTooltip())
-      }
-    })
-  })
-
-  QUnit.test('should show on first trigger after hide', function (assert) {
-    assert.expect(3)
-    var $el = $('<a href="#" rel="tooltip" title="Test tooltip"/>')
-      .appendTo('#qunit-fixture')
-      .bootstrapTooltip({ trigger: 'click hover focus', animation: false })
-
-    var tooltip = $el.data('bs.tooltip')
-    var $tooltip = $(tooltip.getTipElement())
-
-    function showingTooltip() { return $tooltip.hasClass('show') || tooltip._hoverState === 'show' }
-
-    $el.trigger('click')
-    assert.ok(showingTooltip(), 'tooltip is faded in')
-
-    $el.bootstrapTooltip('hide')
-    assert.ok(!showingTooltip(), 'tooltip was faded out')
-
-    $el.trigger('click')
-    assert.ok(showingTooltip(), 'tooltip is faded in again')
-  })
-
-  QUnit.test('should hide tooltip when their containing modal is closed', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-    var templateHTML = '<div id="modal-test" class="modal">' +
-                          '<div class="modal-dialog" role="document">' +
-                            '<div class="modal-content">' +
-                              '<div class="modal-body">' +
-                                '<a id="tooltipTest" href="#" data-toggle="tooltip" title="Some tooltip text!">Tooltip</a>' +
-                              '</div>' +
-                            '</div>' +
-                          '</div>' +
-                        '</div>'
-
-    $(templateHTML).appendTo('#qunit-fixture')
-    $('#tooltipTest')
-      .bootstrapTooltip({ trigger: 'manuel' })
-      .on('shown.bs.tooltip', function () {
-        $('#modal-test').modal('hide')
-      })
-      .on('hide.bs.tooltip', function () {
-        assert.ok(true, 'tooltip hide')
-        done()
-      })
-
-    $('#modal-test')
-      .on('shown.bs.modal', function () {
-        $('#tooltipTest').bootstrapTooltip('show')
-      })
-      .modal('show')
-  })
-
-  QUnit.test('should reset tip classes when hidden event triggered', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-    var $el = $('<a href="#" rel="tooltip" title="Test tooltip"/>')
-      .appendTo('#qunit-fixture')
-      .bootstrapTooltip('show')
-      .on('hidden.bs.tooltip', function () {
-        var tooltip = $el.data('bs.tooltip')
-        var $tooltip = $(tooltip.getTipElement())
-        assert.ok($tooltip.hasClass('tooltip'))
-        assert.ok($tooltip.hasClass('fade'))
-        done()
-      })
-
-    $el.bootstrapTooltip('hide')
-  })
-
-  QUnit.test('should convert number in title to string', function (assert) {
-    assert.expect(1)
-    var done = assert.async()
-    var $el = $('<a href="#" rel="tooltip" title="7"/>')
-      .appendTo('#qunit-fixture')
-      .bootstrapTooltip('show')
-      .on('shown.bs.tooltip', function () {
-        var tooltip = $el.data('bs.tooltip')
-        var $tooltip = $(tooltip.getTipElement())
-        assert.strictEqual($tooltip.children().text(), '7')
-        done()
-      })
-
-    $el.bootstrapTooltip('show')
-  })
-
-  QUnit.test('tooltip should be shown right away after the call of disable/enable', function (assert) {
-    assert.expect(2)
-    var done = assert.async()
-
-    var $trigger = $('<a href="#" rel="tooltip" data-trigger="click" title="Another tooltip"/>')
-      .appendTo('#qunit-fixture')
-      .bootstrapTooltip()
-      .on('shown.bs.tooltip', function () {
-        assert.strictEqual($('.tooltip').hasClass('show'), true)
-        done()
-      })
-
-
-    $trigger.bootstrapTooltip('disable')
-    $trigger.trigger($.Event('click'))
-    setTimeout(function () {
-      assert.strictEqual($('.tooltip').length === 0, true)
-      $trigger.bootstrapTooltip('enable')
-      $trigger.trigger($.Event('click'))
-    }, 200)
-  })
-})
diff --git a/assets/javascript/tests/vendor/qunit.css b/assets/javascript/tests/vendor/qunit.css
deleted file mode 100755
index 4749222..0000000
--- a/assets/javascript/tests/vendor/qunit.css
+++ /dev/null
@@ -1,436 +0,0 @@
-/*!
- * QUnit 2.4.0
- * https://qunitjs.com/
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license
- * https://jquery.org/license
- *
- * Date: 2017-07-08T15:20Z
- */
-
-/** Font Family and Sizes */
-
-#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-filteredTest, #qunit-userAgent, #qunit-testresult {
-	font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
-}
-
-#qunit-testrunner-toolbar, #qunit-filteredTest, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
-#qunit-tests { font-size: smaller; }
-
-
-/** Resets */
-
-#qunit-tests, #qunit-header, #qunit-banner, #qunit-filteredTest, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter {
-	margin: 0;
-	padding: 0;
-}
-
-
-/** Header (excluding toolbar) */
-
-#qunit-header {
-	padding: 0.5em 0 0.5em 1em;
-
-	color: #8699A4;
-	background-color: #0D3349;
-
-	font-size: 1.5em;
-	line-height: 1em;
-	font-weight: 400;
-
-	border-radius: 5px 5px 0 0;
-}
-
-#qunit-header a {
-	text-decoration: none;
-	color: #C2CCD1;
-}
-
-#qunit-header a:hover,
-#qunit-header a:focus {
-	color: #FFF;
-}
-
-#qunit-banner {
-	height: 5px;
-}
-
-#qunit-filteredTest {
-	padding: 0.5em 1em 0.5em 1em;
-	color: #366097;
-	background-color: #F4FF77;
-}
-
-#qunit-userAgent {
-	padding: 0.5em 1em 0.5em 1em;
-	color: #FFF;
-	background-color: #2B81AF;
-	text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
-}
-
-
-/** Toolbar */
-
-#qunit-testrunner-toolbar {
-	padding: 0.5em 1em 0.5em 1em;
-	color: #5E740B;
-	background-color: #EEE;
-}
-
-#qunit-testrunner-toolbar .clearfix {
-	height: 0;
-	clear: both;
-}
-
-#qunit-testrunner-toolbar label {
-	display: inline-block;
-}
-
-#qunit-testrunner-toolbar input[type=checkbox],
-#qunit-testrunner-toolbar input[type=radio] {
-	margin: 3px;
-	vertical-align: -2px;
-}
-
-#qunit-testrunner-toolbar input[type=text] {
-	box-sizing: border-box;
-	height: 1.6em;
-}
-
-.qunit-url-config,
-.qunit-filter,
-#qunit-modulefilter {
-	display: inline-block;
-	line-height: 2.1em;
-}
-
-.qunit-filter,
-#qunit-modulefilter {
-	float: right;
-	position: relative;
-	margin-left: 1em;
-}
-
-.qunit-url-config label {
-	margin-right: 0.5em;
-}
-
-#qunit-modulefilter-search {
-	box-sizing: border-box;
-	width: 400px;
-}
-
-#qunit-modulefilter-search-container:after {
-	position: absolute;
-	right: 0.3em;
-	content: "\25bc";
-	color: black;
-}
-
-#qunit-modulefilter-dropdown {
-	/* align with #qunit-modulefilter-search */
-	box-sizing: border-box;
-	width: 400px;
-	position: absolute;
-	right: 0;
-	top: 50%;
-	margin-top: 0.8em;
-
-	border: 1px solid #D3D3D3;
-	border-top: none;
-	border-radius: 0 0 .25em .25em;
-	color: #000;
-	background-color: #F5F5F5;
-	z-index: 99;
-}
-
-#qunit-modulefilter-dropdown a {
-	color: inherit;
-	text-decoration: none;
-}
-
-#qunit-modulefilter-dropdown .clickable.checked {
-	font-weight: bold;
-	color: #000;
-	background-color: #D2E0E6;
-}
-
-#qunit-modulefilter-dropdown .clickable:hover {
-	color: #FFF;
-	background-color: #0D3349;
-}
-
-#qunit-modulefilter-actions {
-	display: block;
-	overflow: auto;
-
-	/* align with #qunit-modulefilter-dropdown-list */
-	font: smaller/1.5em sans-serif;
-}
-
-#qunit-modulefilter-dropdown #qunit-modulefilter-actions > * {
-	box-sizing: border-box;
-	max-height: 2.8em;
-	display: block;
-	padding: 0.4em;
-}
-
-#qunit-modulefilter-dropdown #qunit-modulefilter-actions > button {
-	float: right;
-	font: inherit;
-}
-
-#qunit-modulefilter-dropdown #qunit-modulefilter-actions > :last-child {
-	/* insert padding to align with checkbox margins */
-	padding-left: 3px;
-}
-
-#qunit-modulefilter-dropdown-list {
-	max-height: 200px;
-	overflow-y: auto;
-	margin: 0;
-	border-top: 2px groove threedhighlight;
-	padding: 0.4em 0 0;
-	font: smaller/1.5em sans-serif;
-}
-
-#qunit-modulefilter-dropdown-list li {
-	white-space: nowrap;
-	overflow: hidden;
-	text-overflow: ellipsis;
-}
-
-#qunit-modulefilter-dropdown-list .clickable {
-	display: block;
-	padding-left: 0.15em;
-}
-
-
-/** Tests: Pass/Fail */
-
-#qunit-tests {
-	list-style-position: inside;
-}
-
-#qunit-tests li {
-	padding: 0.4em 1em 0.4em 1em;
-	border-bottom: 1px solid #FFF;
-	list-style-position: inside;
-}
-
-#qunit-tests > li {
-	display: none;
-}
-
-#qunit-tests li.running,
-#qunit-tests li.pass,
-#qunit-tests li.fail,
-#qunit-tests li.skipped,
-#qunit-tests li.aborted {
-	display: list-item;
-}
-
-#qunit-tests.hidepass {
-	position: relative;
-}
-
-#qunit-tests.hidepass li.running,
-#qunit-tests.hidepass li.pass:not(.todo) {
-	visibility: hidden;
-	position: absolute;
-	width:   0;
-	height:  0;
-	padding: 0;
-	border:  0;
-	margin:  0;
-}
-
-#qunit-tests li strong {
-	cursor: pointer;
-}
-
-#qunit-tests li.skipped strong {
-	cursor: default;
-}
-
-#qunit-tests li a {
-	padding: 0.5em;
-	color: #C2CCD1;
-	text-decoration: none;
-}
-
-#qunit-tests li p a {
-	padding: 0.25em;
-	color: #6B6464;
-}
-#qunit-tests li a:hover,
-#qunit-tests li a:focus {
-	color: #000;
-}
-
-#qunit-tests li .runtime {
-	float: right;
-	font-size: smaller;
-}
-
-.qunit-assert-list {
-	margin-top: 0.5em;
-	padding: 0.5em;
-
-	background-color: #FFF;
-
-	border-radius: 5px;
-}
-
-.qunit-source {
-	margin: 0.6em 0 0.3em;
-}
-
-.qunit-collapsed {
-	display: none;
-}
-
-#qunit-tests table {
-	border-collapse: collapse;
-	margin-top: 0.2em;
-}
-
-#qunit-tests th {
-	text-align: right;
-	vertical-align: top;
-	padding: 0 0.5em 0 0;
-}
-
-#qunit-tests td {
-	vertical-align: top;
-}
-
-#qunit-tests pre {
-	margin: 0;
-	white-space: pre-wrap;
-	word-wrap: break-word;
-}
-
-#qunit-tests del {
-	color: #374E0C;
-	background-color: #E0F2BE;
-	text-decoration: none;
-}
-
-#qunit-tests ins {
-	color: #500;
-	background-color: #FFCACA;
-	text-decoration: none;
-}
-
-/*** Test Counts */
-
-#qunit-tests b.counts                       { color: #000; }
-#qunit-tests b.passed                       { color: #5E740B; }
-#qunit-tests b.failed                       { color: #710909; }
-
-#qunit-tests li li {
-	padding: 5px;
-	background-color: #FFF;
-	border-bottom: none;
-	list-style-position: inside;
-}
-
-/*** Passing Styles */
-
-#qunit-tests li li.pass {
-	color: #3C510C;
-	background-color: #FFF;
-	border-left: 10px solid #C6E746;
-}
-
-#qunit-tests .pass                          { color: #528CE0; background-color: #D2E0E6; }
-#qunit-tests .pass .test-name               { color: #366097; }
-
-#qunit-tests .pass .test-actual,
-#qunit-tests .pass .test-expected           { color: #999; }
-
-#qunit-banner.qunit-pass                    { background-color: #C6E746; }
-
-/*** Failing Styles */
-
-#qunit-tests li li.fail {
-	color: #710909;
-	background-color: #FFF;
-	border-left: 10px solid #EE5757;
-	white-space: pre;
-}
-
-#qunit-tests > li:last-child {
-	border-radius: 0 0 5px 5px;
-}
-
-#qunit-tests .fail                          { color: #000; background-color: #EE5757; }
-#qunit-tests .fail .test-name,
-#qunit-tests .fail .module-name             { color: #000; }
-
-#qunit-tests .fail .test-actual             { color: #EE5757; }
-#qunit-tests .fail .test-expected           { color: #008000; }
-
-#qunit-banner.qunit-fail                    { background-color: #EE5757; }
-
-
-/*** Aborted tests */
-#qunit-tests .aborted { color: #000; background-color: orange; }
-/*** Skipped tests */
-
-#qunit-tests .skipped {
-	background-color: #EBECE9;
-}
-
-#qunit-tests .qunit-todo-label,
-#qunit-tests .qunit-skipped-label {
-	background-color: #F4FF77;
-	display: inline-block;
-	font-style: normal;
-	color: #366097;
-	line-height: 1.8em;
-	padding: 0 0.5em;
-	margin: -0.4em 0.4em -0.4em 0;
-}
-
-#qunit-tests .qunit-todo-label {
-	background-color: #EEE;
-}
-
-/** Result */
-
-#qunit-testresult {
-	color: #2B81AF;
-	background-color: #D2E0E6;
-
-	border-bottom: 1px solid #FFF;
-}
-#qunit-testresult .clearfix {
-	height: 0;
-	clear: both;
-}
-#qunit-testresult .module-name {
-	font-weight: 700;
-}
-#qunit-testresult-display {
-	padding: 0.5em 1em 0.5em 1em;
-	width: 85%;
-	float:left;
-}
-#qunit-testresult-controls {
-	padding: 0.5em 1em 0.5em 1em;
-  width: 10%;
-	float:left;
-}
-
-/** Fixture */
-
-#qunit-fixture {
-	position: absolute;
-	top: -10000px;
-	left: -10000px;
-	width: 1000px;
-	height: 1000px;
-}
diff --git a/assets/javascript/tests/vendor/qunit.js b/assets/javascript/tests/vendor/qunit.js
deleted file mode 100755
index bb8f31d..0000000
--- a/assets/javascript/tests/vendor/qunit.js
+++ /dev/null
@@ -1,5048 +0,0 @@
-/*!
- * QUnit 2.4.0
- * https://qunitjs.com/
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license
- * https://jquery.org/license
- *
- * Date: 2017-07-08T15:20Z
- */
-(function (global$1) {
-  'use strict';
-
-  global$1 = global$1 && 'default' in global$1 ? global$1['default'] : global$1;
-
-  var window = global$1.window;
-  var self$1 = global$1.self;
-  var console = global$1.console;
-  var setTimeout = global$1.setTimeout;
-  var clearTimeout = global$1.clearTimeout;
-
-  var document = window && window.document;
-  var navigator = window && window.navigator;
-
-  var localSessionStorage = function () {
-  	var x = "qunit-test-string";
-  	try {
-  		global$1.sessionStorage.setItem(x, x);
-  		global$1.sessionStorage.removeItem(x);
-  		return global$1.sessionStorage;
-  	} catch (e) {
-  		return undefined;
-  	}
-  }();
-
-  var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
-    return typeof obj;
-  } : function (obj) {
-    return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
-  };
-
-
-
-
-
-
-
-
-
-
-
-  var classCallCheck = function (instance, Constructor) {
-    if (!(instance instanceof Constructor)) {
-      throw new TypeError("Cannot call a class as a function");
-    }
-  };
-
-  var createClass = function () {
-    function defineProperties(target, props) {
-      for (var i = 0; i < props.length; i++) {
-        var descriptor = props[i];
-        descriptor.enumerable = descriptor.enumerable || false;
-        descriptor.configurable = true;
-        if ("value" in descriptor) descriptor.writable = true;
-        Object.defineProperty(target, descriptor.key, descriptor);
-      }
-    }
-
-    return function (Constructor, protoProps, staticProps) {
-      if (protoProps) defineProperties(Constructor.prototype, protoProps);
-      if (staticProps) defineProperties(Constructor, staticProps);
-      return Constructor;
-    };
-  }();
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  var toConsumableArray = function (arr) {
-    if (Array.isArray(arr)) {
-      for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
-
-      return arr2;
-    } else {
-      return Array.from(arr);
-    }
-  };
-
-  var toString = Object.prototype.toString;
-  var hasOwn = Object.prototype.hasOwnProperty;
-  var now = Date.now || function () {
-  	return new Date().getTime();
-  };
-
-  var defined = {
-  	document: window && window.document !== undefined,
-  	setTimeout: setTimeout !== undefined
-  };
-
-  // Returns a new Array with the elements that are in a but not in b
-  function diff(a, b) {
-  	var i,
-  	    j,
-  	    result = a.slice();
-
-  	for (i = 0; i < result.length; i++) {
-  		for (j = 0; j < b.length; j++) {
-  			if (result[i] === b[j]) {
-  				result.splice(i, 1);
-  				i--;
-  				break;
-  			}
-  		}
-  	}
-  	return result;
-  }
-
-  /**
-   * Determines whether an element exists in a given array or not.
-   *
-   * @method inArray
-   * @param {Any} elem
-   * @param {Array} array
-   * @return {Boolean}
-   */
-  function inArray(elem, array) {
-  	return array.indexOf(elem) !== -1;
-  }
-
-  /**
-   * Makes a clone of an object using only Array or Object as base,
-   * and copies over the own enumerable properties.
-   *
-   * @param {Object} obj
-   * @return {Object} New object with only the own properties (recursively).
-   */
-  function objectValues(obj) {
-  	var key,
-  	    val,
-  	    vals = is("array", obj) ? [] : {};
-  	for (key in obj) {
-  		if (hasOwn.call(obj, key)) {
-  			val = obj[key];
-  			vals[key] = val === Object(val) ? objectValues(val) : val;
-  		}
-  	}
-  	return vals;
-  }
-
-  function extend(a, b, undefOnly) {
-  	for (var prop in b) {
-  		if (hasOwn.call(b, prop)) {
-  			if (b[prop] === undefined) {
-  				delete a[prop];
-  			} else if (!(undefOnly && typeof a[prop] !== "undefined")) {
-  				a[prop] = b[prop];
-  			}
-  		}
-  	}
-
-  	return a;
-  }
-
-  function objectType(obj) {
-  	if (typeof obj === "undefined") {
-  		return "undefined";
-  	}
-
-  	// Consider: typeof null === object
-  	if (obj === null) {
-  		return "null";
-  	}
-
-  	var match = toString.call(obj).match(/^\[object\s(.*)\]$/),
-  	    type = match && match[1];
-
-  	switch (type) {
-  		case "Number":
-  			if (isNaN(obj)) {
-  				return "nan";
-  			}
-  			return "number";
-  		case "String":
-  		case "Boolean":
-  		case "Array":
-  		case "Set":
-  		case "Map":
-  		case "Date":
-  		case "RegExp":
-  		case "Function":
-  		case "Symbol":
-  			return type.toLowerCase();
-  		default:
-  			return typeof obj === "undefined" ? "undefined" : _typeof(obj);
-  	}
-  }
-
-  // Safe object type checking
-  function is(type, obj) {
-  	return objectType(obj) === type;
-  }
-
-  // Based on Java's String.hashCode, a simple but not
-  // rigorously collision resistant hashing function
-  function generateHash(module, testName) {
-  	var str = module + "\x1C" + testName;
-  	var hash = 0;
-
-  	for (var i = 0; i < str.length; i++) {
-  		hash = (hash << 5) - hash + str.charCodeAt(i);
-  		hash |= 0;
-  	}
-
-  	// Convert the possibly negative integer hash code into an 8 character hex string, which isn't
-  	// strictly necessary but increases user understanding that the id is a SHA-like hash
-  	var hex = (0x100000000 + hash).toString(16);
-  	if (hex.length < 8) {
-  		hex = "0000000" + hex;
-  	}
-
-  	return hex.slice(-8);
-  }
-
-  // Test for equality any JavaScript type.
-  // Authors: Philippe Rathé <prathe at gmail.com>, David Chan <david at troi.org>
-  var equiv = (function () {
-
-  	// Value pairs queued for comparison. Used for breadth-first processing order, recursion
-  	// detection and avoiding repeated comparison (see below for details).
-  	// Elements are { a: val, b: val }.
-  	var pairs = [];
-
-  	var getProto = Object.getPrototypeOf || function (obj) {
-  		return obj.__proto__;
-  	};
-
-  	function useStrictEquality(a, b) {
-
-  		// This only gets called if a and b are not strict equal, and is used to compare on
-  		// the primitive values inside object wrappers. For example:
-  		// `var i = 1;`
-  		// `var j = new Number(1);`
-  		// Neither a nor b can be null, as a !== b and they have the same type.
-  		if ((typeof a === "undefined" ? "undefined" : _typeof(a)) === "object") {
-  			a = a.valueOf();
-  		}
-  		if ((typeof b === "undefined" ? "undefined" : _typeof(b)) === "object") {
-  			b = b.valueOf();
-  		}
-
-  		return a === b;
-  	}
-
-  	function compareConstructors(a, b) {
-  		var protoA = getProto(a);
-  		var protoB = getProto(b);
-
-  		// Comparing constructors is more strict than using `instanceof`
-  		if (a.constructor === b.constructor) {
-  			return true;
-  		}
-
-  		// Ref #851
-  		// If the obj prototype descends from a null constructor, treat it
-  		// as a null prototype.
-  		if (protoA && protoA.constructor === null) {
-  			protoA = null;
-  		}
-  		if (protoB && protoB.constructor === null) {
-  			protoB = null;
-  		}
-
-  		// Allow objects with no prototype to be equivalent to
-  		// objects with Object as their constructor.
-  		if (protoA === null && protoB === Object.prototype || protoB === null && protoA === Object.prototype) {
-  			return true;
-  		}
-
-  		return false;
-  	}
-
-  	function getRegExpFlags(regexp) {
-  		return "flags" in regexp ? regexp.flags : regexp.toString().match(/[gimuy]*$/)[0];
-  	}
-
-  	function isContainer(val) {
-  		return ["object", "array", "map", "set"].indexOf(objectType(val)) !== -1;
-  	}
-
-  	function breadthFirstCompareChild(a, b) {
-
-  		// If a is a container not reference-equal to b, postpone the comparison to the
-  		// end of the pairs queue -- unless (a, b) has been seen before, in which case skip
-  		// over the pair.
-  		if (a === b) {
-  			return true;
-  		}
-  		if (!isContainer(a)) {
-  			return typeEquiv(a, b);
-  		}
-  		if (pairs.every(function (pair) {
-  			return pair.a !== a || pair.b !== b;
-  		})) {
-
-  			// Not yet started comparing this pair
-  			pairs.push({ a: a, b: b });
-  		}
-  		return true;
-  	}
-
-  	var callbacks = {
-  		"string": useStrictEquality,
-  		"boolean": useStrictEquality,
-  		"number": useStrictEquality,
-  		"null": useStrictEquality,
-  		"undefined": useStrictEquality,
-  		"symbol": useStrictEquality,
-  		"date": useStrictEquality,
-
-  		"nan": function nan() {
-  			return true;
-  		},
-
-  		"regexp": function regexp(a, b) {
-  			return a.source === b.source &&
-
-  			// Include flags in the comparison
-  			getRegExpFlags(a) === getRegExpFlags(b);
-  		},
-
-  		// abort (identical references / instance methods were skipped earlier)
-  		"function": function _function() {
-  			return false;
-  		},
-
-  		"array": function array(a, b) {
-  			var i, len;
-
-  			len = a.length;
-  			if (len !== b.length) {
-
-  				// Safe and faster
-  				return false;
-  			}
-
-  			for (i = 0; i < len; i++) {
-
-  				// Compare non-containers; queue non-reference-equal containers
-  				if (!breadthFirstCompareChild(a[i], b[i])) {
-  					return false;
-  				}
-  			}
-  			return true;
-  		},
-
-  		// Define sets a and b to be equivalent if for each element aVal in a, there
-  		// is some element bVal in b such that aVal and bVal are equivalent. Element
-  		// repetitions are not counted, so these are equivalent:
-  		// a = new Set( [ {}, [], [] ] );
-  		// b = new Set( [ {}, {}, [] ] );
-  		"set": function set$$1(a, b) {
-  			var innerEq,
-  			    outerEq = true;
-
-  			if (a.size !== b.size) {
-
-  				// This optimization has certain quirks because of the lack of
-  				// repetition counting. For instance, adding the same
-  				// (reference-identical) element to two equivalent sets can
-  				// make them non-equivalent.
-  				return false;
-  			}
-
-  			a.forEach(function (aVal) {
-
-  				// Short-circuit if the result is already known. (Using for...of
-  				// with a break clause would be cleaner here, but it would cause
-  				// a syntax error on older Javascript implementations even if
-  				// Set is unused)
-  				if (!outerEq) {
-  					return;
-  				}
-
-  				innerEq = false;
-
-  				b.forEach(function (bVal) {
-  					var parentPairs;
-
-  					// Likewise, short-circuit if the result is already known
-  					if (innerEq) {
-  						return;
-  					}
-
-  					// Swap out the global pairs list, as the nested call to
-  					// innerEquiv will clobber its contents
-  					parentPairs = pairs;
-  					if (innerEquiv(bVal, aVal)) {
-  						innerEq = true;
-  					}
-
-  					// Replace the global pairs list
-  					pairs = parentPairs;
-  				});
-
-  				if (!innerEq) {
-  					outerEq = false;
-  				}
-  			});
-
-  			return outerEq;
-  		},
-
-  		// Define maps a and b to be equivalent if for each key-value pair (aKey, aVal)
-  		// in a, there is some key-value pair (bKey, bVal) in b such that
-  		// [ aKey, aVal ] and [ bKey, bVal ] are equivalent. Key repetitions are not
-  		// counted, so these are equivalent:
-  		// a = new Map( [ [ {}, 1 ], [ {}, 1 ], [ [], 1 ] ] );
-  		// b = new Map( [ [ {}, 1 ], [ [], 1 ], [ [], 1 ] ] );
-  		"map": function map(a, b) {
-  			var innerEq,
-  			    outerEq = true;
-
-  			if (a.size !== b.size) {
-
-  				// This optimization has certain quirks because of the lack of
-  				// repetition counting. For instance, adding the same
-  				// (reference-identical) key-value pair to two equivalent maps
-  				// can make them non-equivalent.
-  				return false;
-  			}
-
-  			a.forEach(function (aVal, aKey) {
-
-  				// Short-circuit if the result is already known. (Using for...of
-  				// with a break clause would be cleaner here, but it would cause
-  				// a syntax error on older Javascript implementations even if
-  				// Map is unused)
-  				if (!outerEq) {
-  					return;
-  				}
-
-  				innerEq = false;
-
-  				b.forEach(function (bVal, bKey) {
-  					var parentPairs;
-
-  					// Likewise, short-circuit if the result is already known
-  					if (innerEq) {
-  						return;
-  					}
-
-  					// Swap out the global pairs list, as the nested call to
-  					// innerEquiv will clobber its contents
-  					parentPairs = pairs;
-  					if (innerEquiv([bVal, bKey], [aVal, aKey])) {
-  						innerEq = true;
-  					}
-
-  					// Replace the global pairs list
-  					pairs = parentPairs;
-  				});
-
-  				if (!innerEq) {
-  					outerEq = false;
-  				}
-  			});
-
-  			return outerEq;
-  		},
-
-  		"object": function object(a, b) {
-  			var i,
-  			    aProperties = [],
-  			    bProperties = [];
-
-  			if (compareConstructors(a, b) === false) {
-  				return false;
-  			}
-
-  			// Be strict: don't ensure hasOwnProperty and go deep
-  			for (i in a) {
-
-  				// Collect a's properties
-  				aProperties.push(i);
-
-  				// Skip OOP methods that look the same
-  				if (a.constructor !== Object && typeof a.constructor !== "undefined" && typeof a[i] === "function" && typeof b[i] === "function" && a[i].toString() === b[i].toString()) {
-  					continue;
-  				}
-
-  				// Compare non-containers; queue non-reference-equal containers
-  				if (!breadthFirstCompareChild(a[i], b[i])) {
-  					return false;
-  				}
-  			}
-
-  			for (i in b) {
-
-  				// Collect b's properties
-  				bProperties.push(i);
-  			}
-
-  			// Ensures identical properties name
-  			return typeEquiv(aProperties.sort(), bProperties.sort());
-  		}
-  	};
-
-  	function typeEquiv(a, b) {
-  		var type = objectType(a);
-
-  		// Callbacks for containers will append to the pairs queue to achieve breadth-first
-  		// search order. The pairs queue is also used to avoid reprocessing any pair of
-  		// containers that are reference-equal to a previously visited pair (a special case
-  		// this being recursion detection).
-  		//
-  		// Because of this approach, once typeEquiv returns a false value, it should not be
-  		// called again without clearing the pair queue else it may wrongly report a visited
-  		// pair as being equivalent.
-  		return objectType(b) === type && callbacks[type](a, b);
-  	}
-
-  	function innerEquiv(a, b) {
-  		var i, pair;
-
-  		// We're done when there's nothing more to compare
-  		if (arguments.length < 2) {
-  			return true;
-  		}
-
-  		// Clear the global pair queue and add the top-level values being compared
-  		pairs = [{ a: a, b: b }];
-
-  		for (i = 0; i < pairs.length; i++) {
-  			pair = pairs[i];
-
-  			// Perform type-specific comparison on any pairs that are not strictly
-  			// equal. For container types, that comparison will postpone comparison
-  			// of any sub-container pair to the end of the pair queue. This gives
-  			// breadth-first search order. It also avoids the reprocessing of
-  			// reference-equal siblings, cousins etc, which can have a significant speed
-  			// impact when comparing a container of small objects each of which has a
-  			// reference to the same (singleton) large object.
-  			if (pair.a !== pair.b && !typeEquiv(pair.a, pair.b)) {
-  				return false;
-  			}
-  		}
-
-  		// ...across all consecutive argument pairs
-  		return arguments.length === 2 || innerEquiv.apply(this, [].slice.call(arguments, 1));
-  	}
-
-  	return function () {
-  		var result = innerEquiv.apply(undefined, arguments);
-
-  		// Release any retained objects
-  		pairs.length = 0;
-  		return result;
-  	};
-  })();
-
-  /**
-   * Config object: Maintain internal state
-   * Later exposed as QUnit.config
-   * `config` initialized at top of scope
-   */
-  var config = {
-
-  	// The queue of tests to run
-  	queue: [],
-
-  	// Block until document ready
-  	blocking: true,
-
-  	// By default, run previously failed tests first
-  	// very useful in combination with "Hide passed tests" checked
-  	reorder: true,
-
-  	// By default, modify document.title when suite is done
-  	altertitle: true,
-
-  	// HTML Reporter: collapse every test except the first failing test
-  	// If false, all failing tests will be expanded
-  	collapse: true,
-
-  	// By default, scroll to top of the page when suite is done
-  	scrolltop: true,
-
-  	// Depth up-to which object will be dumped
-  	maxDepth: 5,
-
-  	// When enabled, all tests must call expect()
-  	requireExpects: false,
-
-  	// Placeholder for user-configurable form-exposed URL parameters
-  	urlConfig: [],
-
-  	// Set of all modules.
-  	modules: [],
-
-  	// The first unnamed module
-  	currentModule: {
-  		name: "",
-  		tests: [],
-  		childModules: [],
-  		testsRun: 0,
-  		unskippedTestsRun: 0,
-  		hooks: {
-  			before: [],
-  			beforeEach: [],
-  			afterEach: [],
-  			after: []
-  		}
-  	},
-
-  	callbacks: {},
-
-  	// The storage module to use for reordering tests
-  	storage: localSessionStorage
-  };
-
-  // take a predefined QUnit.config and extend the defaults
-  var globalConfig = window && window.QUnit && window.QUnit.config;
-
-  // only extend the global config if there is no QUnit overload
-  if (window && window.QUnit && !window.QUnit.version) {
-  	extend(config, globalConfig);
-  }
-
-  // Push a loose unnamed module to the modules collection
-  config.modules.push(config.currentModule);
-
-  // Based on jsDump by Ariel Flesler
-  // http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html
-  var dump = (function () {
-  	function quote(str) {
-  		return "\"" + str.toString().replace(/\\/g, "\\\\").replace(/"/g, "\\\"") + "\"";
-  	}
-  	function literal(o) {
-  		return o + "";
-  	}
-  	function join(pre, arr, post) {
-  		var s = dump.separator(),
-  		    base = dump.indent(),
-  		    inner = dump.indent(1);
-  		if (arr.join) {
-  			arr = arr.join("," + s + inner);
-  		}
-  		if (!arr) {
-  			return pre + post;
-  		}
-  		return [pre, inner + arr, base + post].join(s);
-  	}
-  	function array(arr, stack) {
-  		var i = arr.length,
-  		    ret = new Array(i);
-
-  		if (dump.maxDepth && dump.depth > dump.maxDepth) {
-  			return "[object Array]";
-  		}
-
-  		this.up();
-  		while (i--) {
-  			ret[i] = this.parse(arr[i], undefined, stack);
-  		}
-  		this.down();
-  		return join("[", ret, "]");
-  	}
-
-  	function isArray(obj) {
-  		return (
-
-  			//Native Arrays
-  			toString.call(obj) === "[object Array]" ||
-
-  			// NodeList objects
-  			typeof obj.length === "number" && obj.item !== undefined && (obj.length ? obj.item(0) === obj[0] : obj.item(0) === null && obj[0] === undefined)
-  		);
-  	}
-
-  	var reName = /^function (\w+)/,
-  	    dump = {
-
-  		// The objType is used mostly internally, you can fix a (custom) type in advance
-  		parse: function parse(obj, objType, stack) {
-  			stack = stack || [];
-  			var res,
-  			    parser,
-  			    parserType,
-  			    objIndex = stack.indexOf(obj);
-
-  			if (objIndex !== -1) {
-  				return "recursion(" + (objIndex - stack.length) + ")";
-  			}
-
-  			objType = objType || this.typeOf(obj);
-  			parser = this.parsers[objType];
-  			parserType = typeof parser === "undefined" ? "undefined" : _typeof(parser);
-
-  			if (parserType === "function") {
-  				stack.push(obj);
-  				res = parser.call(this, obj, stack);
-  				stack.pop();
-  				return res;
-  			}
-  			return parserType === "string" ? parser : this.parsers.error;
-  		},
-  		typeOf: function typeOf(obj) {
-  			var type;
-
-  			if (obj === null) {
-  				type = "null";
-  			} else if (typeof obj === "undefined") {
-  				type = "undefined";
-  			} else if (is("regexp", obj)) {
-  				type = "regexp";
-  			} else if (is("date", obj)) {
-  				type = "date";
-  			} else if (is("function", obj)) {
-  				type = "function";
-  			} else if (obj.setInterval !== undefined && obj.document !== undefined && obj.nodeType === undefined) {
-  				type = "window";
-  			} else if (obj.nodeType === 9) {
-  				type = "document";
-  			} else if (obj.nodeType) {
-  				type = "node";
-  			} else if (isArray(obj)) {
-  				type = "array";
-  			} else if (obj.constructor === Error.prototype.constructor) {
-  				type = "error";
-  			} else {
-  				type = typeof obj === "undefined" ? "undefined" : _typeof(obj);
-  			}
-  			return type;
-  		},
-
-  		separator: function separator() {
-  			if (this.multiline) {
-  				return this.HTML ? "<br />" : "\n";
-  			} else {
-  				return this.HTML ? " " : " ";
-  			}
-  		},
-
-  		// Extra can be a number, shortcut for increasing-calling-decreasing
-  		indent: function indent(extra) {
-  			if (!this.multiline) {
-  				return "";
-  			}
-  			var chr = this.indentChar;
-  			if (this.HTML) {
-  				chr = chr.replace(/\t/g, "   ").replace(/ /g, " ");
-  			}
-  			return new Array(this.depth + (extra || 0)).join(chr);
-  		},
-  		up: function up(a) {
-  			this.depth += a || 1;
-  		},
-  		down: function down(a) {
-  			this.depth -= a || 1;
-  		},
-  		setParser: function setParser(name, parser) {
-  			this.parsers[name] = parser;
-  		},
-
-  		// The next 3 are exposed so you can use them
-  		quote: quote,
-  		literal: literal,
-  		join: join,
-  		depth: 1,
-  		maxDepth: config.maxDepth,
-
-  		// This is the list of parsers, to modify them, use dump.setParser
-  		parsers: {
-  			window: "[Window]",
-  			document: "[Document]",
-  			error: function error(_error) {
-  				return "Error(\"" + _error.message + "\")";
-  			},
-  			unknown: "[Unknown]",
-  			"null": "null",
-  			"undefined": "undefined",
-  			"function": function _function(fn) {
-  				var ret = "function",
-
-
-  				// Functions never have name in IE
-  				name = "name" in fn ? fn.name : (reName.exec(fn) || [])[1];
-
-  				if (name) {
-  					ret += " " + name;
-  				}
-  				ret += "(";
-
-  				ret = [ret, dump.parse(fn, "functionArgs"), "){"].join("");
-  				return join(ret, dump.parse(fn, "functionCode"), "}");
-  			},
-  			array: array,
-  			nodelist: array,
-  			"arguments": array,
-  			object: function object(map, stack) {
-  				var keys,
-  				    key,
-  				    val,
-  				    i,
-  				    nonEnumerableProperties,
-  				    ret = [];
-
-  				if (dump.maxDepth && dump.depth > dump.maxDepth) {
-  					return "[object Object]";
-  				}
-
-  				dump.up();
-  				keys = [];
-  				for (key in map) {
-  					keys.push(key);
-  				}
-
-  				// Some properties are not always enumerable on Error objects.
-  				nonEnumerableProperties = ["message", "name"];
-  				for (i in nonEnumerableProperties) {
-  					key = nonEnumerableProperties[i];
-  					if (key in map && !inArray(key, keys)) {
-  						keys.push(key);
-  					}
-  				}
-  				keys.sort();
-  				for (i = 0; i < keys.length; i++) {
-  					key = keys[i];
-  					val = map[key];
-  					ret.push(dump.parse(key, "key") + ": " + dump.parse(val, undefined, stack));
-  				}
-  				dump.down();
-  				return join("{", ret, "}");
-  			},
-  			node: function node(_node) {
-  				var len,
-  				    i,
-  				    val,
-  				    open = dump.HTML ? "<" : "<",
-  				    close = dump.HTML ? ">" : ">",
-  				    tag = _node.nodeName.toLowerCase(),
-  				    ret = open + tag,
-  				    attrs = _node.attributes;
-
-  				if (attrs) {
-  					for (i = 0, len = attrs.length; i < len; i++) {
-  						val = attrs[i].nodeValue;
-
-  						// IE6 includes all attributes in .attributes, even ones not explicitly
-  						// set. Those have values like undefined, null, 0, false, "" or
-  						// "inherit".
-  						if (val && val !== "inherit") {
-  							ret += " " + attrs[i].nodeName + "=" + dump.parse(val, "attribute");
-  						}
-  					}
-  				}
-  				ret += close;
-
-  				// Show content of TextNode or CDATASection
-  				if (_node.nodeType === 3 || _node.nodeType === 4) {
-  					ret += _node.nodeValue;
-  				}
-
-  				return ret + open + "/" + tag + close;
-  			},
-
-  			// Function calls it internally, it's the arguments part of the function
-  			functionArgs: function functionArgs(fn) {
-  				var args,
-  				    l = fn.length;
-
-  				if (!l) {
-  					return "";
-  				}
-
-  				args = new Array(l);
-  				while (l--) {
-
-  					// 97 is 'a'
-  					args[l] = String.fromCharCode(97 + l);
-  				}
-  				return " " + args.join(", ") + " ";
-  			},
-
-  			// Object calls it internally, the key part of an item in a map
-  			key: quote,
-
-  			// Function calls it internally, it's the content of the function
-  			functionCode: "[code]",
-
-  			// Node calls it internally, it's a html attribute value
-  			attribute: quote,
-  			string: quote,
-  			date: quote,
-  			regexp: literal,
-  			number: literal,
-  			"boolean": literal,
-  			symbol: function symbol(sym) {
-  				return sym.toString();
-  			}
-  		},
-
-  		// If true, entities are escaped ( <, >, \t, space and \n )
-  		HTML: false,
-
-  		// Indentation unit
-  		indentChar: "  ",
-
-  		// If true, items in a collection, are separated by a \n, else just a space.
-  		multiline: true
-  	};
-
-  	return dump;
-  })();
-
-  var LISTENERS = Object.create(null);
-  var SUPPORTED_EVENTS = ["runStart", "suiteStart", "testStart", "assertion", "testEnd", "suiteEnd", "runEnd"];
-
-  /**
-   * Emits an event with the specified data to all currently registered listeners.
-   * Callbacks will fire in the order in which they are registered (FIFO). This
-   * function is not exposed publicly; it is used by QUnit internals to emit
-   * logging events.
-   *
-   * @private
-   * @method emit
-   * @param {String} eventName
-   * @param {Object} data
-   * @return {Void}
-   */
-  function emit(eventName, data) {
-  	if (objectType(eventName) !== "string") {
-  		throw new TypeError("eventName must be a string when emitting an event");
-  	}
-
-  	// Clone the callbacks in case one of them registers a new callback
-  	var originalCallbacks = LISTENERS[eventName];
-  	var callbacks = originalCallbacks ? [].concat(toConsumableArray(originalCallbacks)) : [];
-
-  	for (var i = 0; i < callbacks.length; i++) {
-  		callbacks[i](data);
-  	}
-  }
-
-  /**
-   * Registers a callback as a listener to the specified event.
-   *
-   * @public
-   * @method on
-   * @param {String} eventName
-   * @param {Function} callback
-   * @return {Void}
-   */
-  function on(eventName, callback) {
-  	if (objectType(eventName) !== "string") {
-  		throw new TypeError("eventName must be a string when registering a listener");
-  	} else if (!inArray(eventName, SUPPORTED_EVENTS)) {
-  		var events = SUPPORTED_EVENTS.join(", ");
-  		throw new Error("\"" + eventName + "\" is not a valid event; must be one of: " + events + ".");
-  	} else if (objectType(callback) !== "function") {
-  		throw new TypeError("callback must be a function when registering a listener");
-  	}
-
-  	if (!LISTENERS[eventName]) {
-  		LISTENERS[eventName] = [];
-  	}
-
-  	// Don't register the same callback more than once
-  	if (!inArray(callback, LISTENERS[eventName])) {
-  		LISTENERS[eventName].push(callback);
-  	}
-  }
-
-  // Register logging callbacks
-  function registerLoggingCallbacks(obj) {
-  	var i,
-  	    l,
-  	    key,
-  	    callbackNames = ["begin", "done", "log", "testStart", "testDone", "moduleStart", "moduleDone"];
-
-  	function registerLoggingCallback(key) {
-  		var loggingCallback = function loggingCallback(callback) {
-  			if (objectType(callback) !== "function") {
-  				throw new Error("QUnit logging methods require a callback function as their first parameters.");
-  			}
-
-  			config.callbacks[key].push(callback);
-  		};
-
-  		return loggingCallback;
-  	}
-
-  	for (i = 0, l = callbackNames.length; i < l; i++) {
-  		key = callbackNames[i];
-
-  		// Initialize key collection of logging callback
-  		if (objectType(config.callbacks[key]) === "undefined") {
-  			config.callbacks[key] = [];
-  		}
-
-  		obj[key] = registerLoggingCallback(key);
-  	}
-  }
-
-  function runLoggingCallbacks(key, args) {
-  	var i, l, callbacks;
-
-  	callbacks = config.callbacks[key];
-  	for (i = 0, l = callbacks.length; i < l; i++) {
-  		callbacks[i](args);
-  	}
-  }
-
-  // Doesn't support IE9, it will return undefined on these browsers
-  // See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack
-  var fileName = (sourceFromStacktrace(0) || "").replace(/(:\d+)+\)?/, "").replace(/.+\//, "");
-
-  function extractStacktrace(e, offset) {
-  	offset = offset === undefined ? 4 : offset;
-
-  	var stack, include, i;
-
-  	if (e && e.stack) {
-  		stack = e.stack.split("\n");
-  		if (/^error$/i.test(stack[0])) {
-  			stack.shift();
-  		}
-  		if (fileName) {
-  			include = [];
-  			for (i = offset; i < stack.length; i++) {
-  				if (stack[i].indexOf(fileName) !== -1) {
-  					break;
-  				}
-  				include.push(stack[i]);
-  			}
-  			if (include.length) {
-  				return include.join("\n");
-  			}
-  		}
-  		return stack[offset];
-  	}
-  }
-
-  function sourceFromStacktrace(offset) {
-  	var error = new Error();
-
-  	// Support: Safari <=7 only, IE <=10 - 11 only
-  	// Not all browsers generate the `stack` property for `new Error()`, see also #636
-  	if (!error.stack) {
-  		try {
-  			throw error;
-  		} catch (err) {
-  			error = err;
-  		}
-  	}
-
-  	return extractStacktrace(error, offset);
-  }
-
-  var priorityCount = 0;
-  var unitSampler = void 0;
-
-  /**
-   * Advances the ProcessingQueue to the next item if it is ready.
-   * @param {Boolean} last
-   */
-  function advance() {
-  	var start = now();
-  	config.depth = (config.depth || 0) + 1;
-
-  	while (config.queue.length && !config.blocking) {
-  		var elapsedTime = now() - start;
-
-  		if (!defined.setTimeout || config.updateRate <= 0 || elapsedTime < config.updateRate) {
-  			if (priorityCount > 0) {
-  				priorityCount--;
-  			}
-
-  			config.queue.shift()();
-  		} else {
-  			setTimeout(advance, 13);
-  			break;
-  		}
-  	}
-
-  	config.depth--;
-
-  	if (!config.blocking && !config.queue.length && config.depth === 0) {
-  		done();
-  	}
-  }
-
-  function addToQueueImmediate(callback) {
-  	if (objectType(callback) === "array") {
-  		while (callback.length) {
-  			addToQueueImmediate(callback.pop());
-  		}
-
-  		return;
-  	}
-
-  	config.queue.unshift(callback);
-  	priorityCount++;
-  }
-
-  /**
-   * Adds a function to the ProcessingQueue for execution.
-   * @param {Function|Array} callback
-   * @param {Boolean} priority
-   * @param {String} seed
-   */
-  function addToQueue(callback, prioritize, seed) {
-  	if (prioritize) {
-  		config.queue.splice(priorityCount++, 0, callback);
-  	} else if (seed) {
-  		if (!unitSampler) {
-  			unitSampler = unitSamplerGenerator(seed);
-  		}
-
-  		// Insert into a random position after all prioritized items
-  		var index = Math.floor(unitSampler() * (config.queue.length - priorityCount + 1));
-  		config.queue.splice(priorityCount + index, 0, callback);
-  	} else {
-  		config.queue.push(callback);
-  	}
-  }
-
-  /**
-   * Creates a seeded "sample" generator which is used for randomizing tests.
-   */
-  function unitSamplerGenerator(seed) {
-
-  	// 32-bit xorshift, requires only a nonzero seed
-  	// http://excamera.com/sphinx/article-xorshift.html
-  	var sample = parseInt(generateHash(seed), 16) || -1;
-  	return function () {
-  		sample ^= sample << 13;
-  		sample ^= sample >>> 17;
-  		sample ^= sample << 5;
-
-  		// ECMAScript has no unsigned number type
-  		if (sample < 0) {
-  			sample += 0x100000000;
-  		}
-
-  		return sample / 0x100000000;
-  	};
-  }
-
-  /**
-   * This function is called when the ProcessingQueue is done processing all
-   * items. It handles emitting the final run events.
-   */
-  function done() {
-  	var storage = config.storage;
-
-  	ProcessingQueue.finished = true;
-
-  	var runtime = now() - config.started;
-  	var passed = config.stats.all - config.stats.bad;
-
-  	emit("runEnd", globalSuite.end(true));
-  	runLoggingCallbacks("done", {
-  		passed: passed,
-  		failed: config.stats.bad,
-  		total: config.stats.all,
-  		runtime: runtime
-  	});
-
-  	// Clear own storage items if all tests passed
-  	if (storage && config.stats.bad === 0) {
-  		for (var i = storage.length - 1; i >= 0; i--) {
-  			var key = storage.key(i);
-
-  			if (key.indexOf("qunit-test-") === 0) {
-  				storage.removeItem(key);
-  			}
-  		}
-  	}
-  }
-
-  var ProcessingQueue = {
-  	finished: false,
-  	add: addToQueue,
-  	addImmediate: addToQueueImmediate,
-  	advance: advance
-  };
-
-  var TestReport = function () {
-  	function TestReport(name, suite, options) {
-  		classCallCheck(this, TestReport);
-
-  		this.name = name;
-  		this.suiteName = suite.name;
-  		this.fullName = suite.fullName.concat(name);
-  		this.runtime = 0;
-  		this.assertions = [];
-
-  		this.skipped = !!options.skip;
-  		this.todo = !!options.todo;
-
-  		this.valid = options.valid;
-
-  		this._startTime = 0;
-  		this._endTime = 0;
-
-  		suite.pushTest(this);
-  	}
-
-  	createClass(TestReport, [{
-  		key: "start",
-  		value: function start(recordTime) {
-  			if (recordTime) {
-  				this._startTime = Date.now();
-  			}
-
-  			return {
-  				name: this.name,
-  				suiteName: this.suiteName,
-  				fullName: this.fullName.slice()
-  			};
-  		}
-  	}, {
-  		key: "end",
-  		value: function end(recordTime) {
-  			if (recordTime) {
-  				this._endTime = Date.now();
-  			}
-
-  			return extend(this.start(), {
-  				runtime: this.getRuntime(),
-  				status: this.getStatus(),
-  				errors: this.getFailedAssertions(),
-  				assertions: this.getAssertions()
-  			});
-  		}
-  	}, {
-  		key: "pushAssertion",
-  		value: function pushAssertion(assertion) {
-  			this.assertions.push(assertion);
-  		}
-  	}, {
-  		key: "getRuntime",
-  		value: function getRuntime() {
-  			return this._endTime - this._startTime;
-  		}
-  	}, {
-  		key: "getStatus",
-  		value: function getStatus() {
-  			if (this.skipped) {
-  				return "skipped";
-  			}
-
-  			var testPassed = this.getFailedAssertions().length > 0 ? this.todo : !this.todo;
-
-  			if (!testPassed) {
-  				return "failed";
-  			} else if (this.todo) {
-  				return "todo";
-  			} else {
-  				return "passed";
-  			}
-  		}
-  	}, {
-  		key: "getFailedAssertions",
-  		value: function getFailedAssertions() {
-  			return this.assertions.filter(function (assertion) {
-  				return !assertion.passed;
-  			});
-  		}
-  	}, {
-  		key: "getAssertions",
-  		value: function getAssertions() {
-  			return this.assertions.slice();
-  		}
-
-  		// Remove actual and expected values from assertions. This is to prevent
-  		// leaking memory throughout a test suite.
-
-  	}, {
-  		key: "slimAssertions",
-  		value: function slimAssertions() {
-  			this.assertions = this.assertions.map(function (assertion) {
-  				delete assertion.actual;
-  				delete assertion.expected;
-  				return assertion;
-  			});
-  		}
-  	}]);
-  	return TestReport;
-  }();
-
-  var focused$1 = false;
-
-  function Test(settings) {
-  	var i, l;
-
-  	++Test.count;
-
-  	this.expected = null;
-  	this.assertions = [];
-  	this.semaphore = 0;
-  	this.module = config.currentModule;
-  	this.stack = sourceFromStacktrace(3);
-  	this.steps = [];
-  	this.timeout = undefined;
-
-  	// If a module is skipped, all its tests and the tests of the child suites
-  	// should be treated as skipped even if they are defined as `only` or `todo`.
-  	// As for `todo` module, all its tests will be treated as `todo` except for
-  	// tests defined as `skip` which will be left intact.
-  	//
-  	// So, if a test is defined as `todo` and is inside a skipped module, we should
-  	// then treat that test as if was defined as `skip`.
-  	if (this.module.skip) {
-  		settings.skip = true;
-  		settings.todo = false;
-
-  		// Skipped tests should be left intact
-  	} else if (this.module.todo && !settings.skip) {
-  		settings.todo = true;
-  	}
-
-  	extend(this, settings);
-
-  	this.testReport = new TestReport(settings.testName, this.module.suiteReport, {
-  		todo: settings.todo,
-  		skip: settings.skip,
-  		valid: this.valid()
-  	});
-
-  	// Register unique strings
-  	for (i = 0, l = this.module.tests; i < l.length; i++) {
-  		if (this.module.tests[i].name === this.testName) {
-  			this.testName += " ";
-  		}
-  	}
-
-  	this.testId = generateHash(this.module.name, this.testName);
-
-  	this.module.tests.push({
-  		name: this.testName,
-  		testId: this.testId,
-  		skip: !!settings.skip
-  	});
-
-  	if (settings.skip) {
-
-  		// Skipped tests will fully ignore any sent callback
-  		this.callback = function () {};
-  		this.async = false;
-  		this.expected = 0;
-  	} else {
-  		this.assert = new Assert(this);
-  	}
-  }
-
-  Test.count = 0;
-
-  function getNotStartedModules(startModule) {
-  	var module = startModule,
-  	    modules = [];
-
-  	while (module && module.testsRun === 0) {
-  		modules.push(module);
-  		module = module.parentModule;
-  	}
-
-  	return modules;
-  }
-
-  Test.prototype = {
-  	before: function before() {
-  		var i,
-  		    startModule,
-  		    module = this.module,
-  		    notStartedModules = getNotStartedModules(module);
-
-  		for (i = notStartedModules.length - 1; i >= 0; i--) {
-  			startModule = notStartedModules[i];
-  			startModule.stats = { all: 0, bad: 0, started: now() };
-  			emit("suiteStart", startModule.suiteReport.start(true));
-  			runLoggingCallbacks("moduleStart", {
-  				name: startModule.name,
-  				tests: startModule.tests
-  			});
-  		}
-
-  		config.current = this;
-
-  		this.testEnvironment = extend({}, module.testEnvironment);
-
-  		this.started = now();
-  		emit("testStart", this.testReport.start(true));
-  		runLoggingCallbacks("testStart", {
-  			name: this.testName,
-  			module: module.name,
-  			testId: this.testId,
-  			previousFailure: this.previousFailure
-  		});
-
-  		if (!config.pollution) {
-  			saveGlobal();
-  		}
-  	},
-
-  	run: function run() {
-  		var promise;
-
-  		config.current = this;
-
-  		this.callbackStarted = now();
-
-  		if (config.notrycatch) {
-  			runTest(this);
-  			return;
-  		}
-
-  		try {
-  			runTest(this);
-  		} catch (e) {
-  			this.pushFailure("Died on test #" + (this.assertions.length + 1) + " " + this.stack + ": " + (e.message || e), extractStacktrace(e, 0));
-
-  			// Else next test will carry the responsibility
-  			saveGlobal();
-
-  			// Restart the tests if they're blocking
-  			if (config.blocking) {
-  				internalRecover(this);
-  			}
-  		}
-
-  		function runTest(test) {
-  			promise = test.callback.call(test.testEnvironment, test.assert);
-  			test.resolvePromise(promise);
-
-  			// If the test has a "lock" on it, but the timeout is 0, then we push a
-  			// failure as the test should be synchronous.
-  			if (test.timeout === 0 && test.semaphore !== 0) {
-  				pushFailure("Test did not finish synchronously even though assert.timeout( 0 ) was used.", sourceFromStacktrace(2));
-  			}
-  		}
-  	},
-
-  	after: function after() {
-  		checkPollution();
-  	},
-
-  	queueHook: function queueHook(hook, hookName, hookOwner) {
-  		var _this = this;
-
-  		var callHook = function callHook() {
-  			var promise = hook.call(_this.testEnvironment, _this.assert);
-  			_this.resolvePromise(promise, hookName);
-  		};
-
-  		var runHook = function runHook() {
-  			if (hookName === "before") {
-  				if (hookOwner.unskippedTestsRun !== 0) {
-  					return;
-  				}
-
-  				_this.preserveEnvironment = true;
-  			}
-
-  			if (hookName === "after" && hookOwner.unskippedTestsRun !== numberOfUnskippedTests(hookOwner) - 1 && config.queue.length > 2) {
-  				return;
-  			}
-
-  			config.current = _this;
-  			if (config.notrycatch) {
-  				callHook();
-  				return;
-  			}
-  			try {
-  				callHook();
-  			} catch (error) {
-  				_this.pushFailure(hookName + " failed on " + _this.testName + ": " + (error.message || error), extractStacktrace(error, 0));
-  			}
-  		};
-
-  		return runHook;
-  	},
-
-
-  	// Currently only used for module level hooks, can be used to add global level ones
-  	hooks: function hooks(handler) {
-  		var hooks = [];
-
-  		function processHooks(test, module) {
-  			if (module.parentModule) {
-  				processHooks(test, module.parentModule);
-  			}
-
-  			if (module.hooks[handler].length) {
-  				for (var i = 0; i < module.hooks[handler].length; i++) {
-  					hooks.push(test.queueHook(module.hooks[handler][i], handler, module));
-  				}
-  			}
-  		}
-
-  		// Hooks are ignored on skipped tests
-  		if (!this.skip) {
-  			processHooks(this, this.module);
-  		}
-
-  		return hooks;
-  	},
-
-
-  	finish: function finish() {
-  		config.current = this;
-  		if (config.requireExpects && this.expected === null) {
-  			this.pushFailure("Expected number of assertions to be defined, but expect() was " + "not called.", this.stack);
-  		} else if (this.expected !== null && this.expected !== this.assertions.length) {
-  			this.pushFailure("Expected " + this.expected + " assertions, but " + this.assertions.length + " were run", this.stack);
-  		} else if (this.expected === null && !this.assertions.length) {
-  			this.pushFailure("Expected at least one assertion, but none were run - call " + "expect(0) to accept zero assertions.", this.stack);
-  		}
-
-  		var i,
-  		    module = this.module,
-  		    moduleName = module.name,
-  		    testName = this.testName,
-  		    skipped = !!this.skip,
-  		    todo = !!this.todo,
-  		    bad = 0,
-  		    storage = config.storage;
-
-  		this.runtime = now() - this.started;
-
-  		config.stats.all += this.assertions.length;
-  		module.stats.all += this.assertions.length;
-
-  		for (i = 0; i < this.assertions.length; i++) {
-  			if (!this.assertions[i].result) {
-  				bad++;
-  				config.stats.bad++;
-  				module.stats.bad++;
-  			}
-  		}
-
-  		notifyTestsRan(module, skipped);
-
-  		// Store result when possible
-  		if (storage) {
-  			if (bad) {
-  				storage.setItem("qunit-test-" + moduleName + "-" + testName, bad);
-  			} else {
-  				storage.removeItem("qunit-test-" + moduleName + "-" + testName);
-  			}
-  		}
-
-  		// After emitting the js-reporters event we cleanup the assertion data to
-  		// avoid leaking it. It is not used by the legacy testDone callbacks.
-  		emit("testEnd", this.testReport.end(true));
-  		this.testReport.slimAssertions();
-
-  		runLoggingCallbacks("testDone", {
-  			name: testName,
-  			module: moduleName,
-  			skipped: skipped,
-  			todo: todo,
-  			failed: bad,
-  			passed: this.assertions.length - bad,
-  			total: this.assertions.length,
-  			runtime: skipped ? 0 : this.runtime,
-
-  			// HTML Reporter use
-  			assertions: this.assertions,
-  			testId: this.testId,
-
-  			// Source of Test
-  			source: this.stack
-  		});
-
-  		if (module.testsRun === numberOfTests(module)) {
-  			logSuiteEnd(module);
-
-  			// Check if the parent modules, iteratively, are done. If that the case,
-  			// we emit the `suiteEnd` event and trigger `moduleDone` callback.
-  			var parent = module.parentModule;
-  			while (parent && parent.testsRun === numberOfTests(parent)) {
-  				logSuiteEnd(parent);
-  				parent = parent.parentModule;
-  			}
-  		}
-
-  		config.current = undefined;
-
-  		function logSuiteEnd(module) {
-  			emit("suiteEnd", module.suiteReport.end(true));
-  			runLoggingCallbacks("moduleDone", {
-  				name: module.name,
-  				tests: module.tests,
-  				failed: module.stats.bad,
-  				passed: module.stats.all - module.stats.bad,
-  				total: module.stats.all,
-  				runtime: now() - module.stats.started
-  			});
-  		}
-  	},
-
-  	preserveTestEnvironment: function preserveTestEnvironment() {
-  		if (this.preserveEnvironment) {
-  			this.module.testEnvironment = this.testEnvironment;
-  			this.testEnvironment = extend({}, this.module.testEnvironment);
-  		}
-  	},
-
-  	queue: function queue() {
-  		var test = this;
-
-  		if (!this.valid()) {
-  			return;
-  		}
-
-  		function runTest() {
-
-  			// Each of these can by async
-  			ProcessingQueue.addImmediate([function () {
-  				test.before();
-  			}, test.hooks("before"), function () {
-  				test.preserveTestEnvironment();
-  			}, test.hooks("beforeEach"), function () {
-  				test.run();
-  			}, test.hooks("afterEach").reverse(), test.hooks("after").reverse(), function () {
-  				test.after();
-  			}, function () {
-  				test.finish();
-  			}]);
-  		}
-
-  		var previousFailCount = config.storage && +config.storage.getItem("qunit-test-" + this.module.name + "-" + this.testName);
-
-  		// Prioritize previously failed tests, detected from storage
-  		var prioritize = config.reorder && !!previousFailCount;
-
-  		this.previousFailure = !!previousFailCount;
-
-  		ProcessingQueue.add(runTest, prioritize, config.seed);
-
-  		// If the queue has already finished, we manually process the new test
-  		if (ProcessingQueue.finished) {
-  			ProcessingQueue.advance();
-  		}
-  	},
-
-
-  	pushResult: function pushResult(resultInfo) {
-  		if (this !== config.current) {
-  			throw new Error("Assertion occured after test had finished.");
-  		}
-
-  		// Destructure of resultInfo = { result, actual, expected, message, negative }
-  		var source,
-  		    details = {
-  			module: this.module.name,
-  			name: this.testName,
-  			result: resultInfo.result,
-  			message: resultInfo.message,
-  			actual: resultInfo.actual,
-  			expected: resultInfo.expected,
-  			testId: this.testId,
-  			negative: resultInfo.negative || false,
-  			runtime: now() - this.started,
-  			todo: !!this.todo
-  		};
-
-  		if (!resultInfo.result) {
-  			source = resultInfo.source || sourceFromStacktrace();
-
-  			if (source) {
-  				details.source = source;
-  			}
-  		}
-
-  		this.logAssertion(details);
-
-  		this.assertions.push({
-  			result: !!resultInfo.result,
-  			message: resultInfo.message
-  		});
-  	},
-
-  	pushFailure: function pushFailure(message, source, actual) {
-  		if (!(this instanceof Test)) {
-  			throw new Error("pushFailure() assertion outside test context, was " + sourceFromStacktrace(2));
-  		}
-
-  		this.pushResult({
-  			result: false,
-  			message: message || "error",
-  			actual: actual || null,
-  			expected: null,
-  			source: source
-  		});
-  	},
-
-  	/**
-    * Log assertion details using both the old QUnit.log interface and
-    * QUnit.on( "assertion" ) interface.
-    *
-    * @private
-    */
-  	logAssertion: function logAssertion(details) {
-  		runLoggingCallbacks("log", details);
-
-  		var assertion = {
-  			passed: details.result,
-  			actual: details.actual,
-  			expected: details.expected,
-  			message: details.message,
-  			stack: details.source,
-  			todo: details.todo
-  		};
-  		this.testReport.pushAssertion(assertion);
-  		emit("assertion", assertion);
-  	},
-
-
-  	resolvePromise: function resolvePromise(promise, phase) {
-  		var then,
-  		    resume,
-  		    message,
-  		    test = this;
-  		if (promise != null) {
-  			then = promise.then;
-  			if (objectType(then) === "function") {
-  				resume = internalStop(test);
-  				then.call(promise, function () {
-  					resume();
-  				}, function (error) {
-  					message = "Promise rejected " + (!phase ? "during" : phase.replace(/Each$/, "")) + " \"" + test.testName + "\": " + (error && error.message || error);
-  					test.pushFailure(message, extractStacktrace(error, 0));
-
-  					// Else next test will carry the responsibility
-  					saveGlobal();
-
-  					// Unblock
-  					resume();
-  				});
-  			}
-  		}
-  	},
-
-  	valid: function valid() {
-  		var filter = config.filter,
-  		    regexFilter = /^(!?)\/([\w\W]*)\/(i?$)/.exec(filter),
-  		    module = config.module && config.module.toLowerCase(),
-  		    fullName = this.module.name + ": " + this.testName;
-
-  		function moduleChainNameMatch(testModule) {
-  			var testModuleName = testModule.name ? testModule.name.toLowerCase() : null;
-  			if (testModuleName === module) {
-  				return true;
-  			} else if (testModule.parentModule) {
-  				return moduleChainNameMatch(testModule.parentModule);
-  			} else {
-  				return false;
-  			}
-  		}
-
-  		function moduleChainIdMatch(testModule) {
-  			return inArray(testModule.moduleId, config.moduleId) || testModule.parentModule && moduleChainIdMatch(testModule.parentModule);
-  		}
-
-  		// Internally-generated tests are always valid
-  		if (this.callback && this.callback.validTest) {
-  			return true;
-  		}
-
-  		if (config.moduleId && config.moduleId.length > 0 && !moduleChainIdMatch(this.module)) {
-
-  			return false;
-  		}
-
-  		if (config.testId && config.testId.length > 0 && !inArray(this.testId, config.testId)) {
-
-  			return false;
-  		}
-
-  		if (module && !moduleChainNameMatch(this.module)) {
-  			return false;
-  		}
-
-  		if (!filter) {
-  			return true;
-  		}
-
-  		return regexFilter ? this.regexFilter(!!regexFilter[1], regexFilter[2], regexFilter[3], fullName) : this.stringFilter(filter, fullName);
-  	},
-
-  	regexFilter: function regexFilter(exclude, pattern, flags, fullName) {
-  		var regex = new RegExp(pattern, flags);
-  		var match = regex.test(fullName);
-
-  		return match !== exclude;
-  	},
-
-  	stringFilter: function stringFilter(filter, fullName) {
-  		filter = filter.toLowerCase();
-  		fullName = fullName.toLowerCase();
-
-  		var include = filter.charAt(0) !== "!";
-  		if (!include) {
-  			filter = filter.slice(1);
-  		}
-
-  		// If the filter matches, we need to honour include
-  		if (fullName.indexOf(filter) !== -1) {
-  			return include;
-  		}
-
-  		// Otherwise, do the opposite
-  		return !include;
-  	}
-  };
-
-  function pushFailure() {
-  	if (!config.current) {
-  		throw new Error("pushFailure() assertion outside test context, in " + sourceFromStacktrace(2));
-  	}
-
-  	// Gets current test obj
-  	var currentTest = config.current;
-
-  	return currentTest.pushFailure.apply(currentTest, arguments);
-  }
-
-  function saveGlobal() {
-  	config.pollution = [];
-
-  	if (config.noglobals) {
-  		for (var key in global$1) {
-  			if (hasOwn.call(global$1, key)) {
-
-  				// In Opera sometimes DOM element ids show up here, ignore them
-  				if (/^qunit-test-output/.test(key)) {
-  					continue;
-  				}
-  				config.pollution.push(key);
-  			}
-  		}
-  	}
-  }
-
-  function checkPollution() {
-  	var newGlobals,
-  	    deletedGlobals,
-  	    old = config.pollution;
-
-  	saveGlobal();
-
-  	newGlobals = diff(config.pollution, old);
-  	if (newGlobals.length > 0) {
-  		pushFailure("Introduced global variable(s): " + newGlobals.join(", "));
-  	}
-
-  	deletedGlobals = diff(old, config.pollution);
-  	if (deletedGlobals.length > 0) {
-  		pushFailure("Deleted global variable(s): " + deletedGlobals.join(", "));
-  	}
-  }
-
-  // Will be exposed as QUnit.test
-  function test(testName, callback) {
-  	if (focused$1) {
-  		return;
-  	}
-
-  	var newTest = new Test({
-  		testName: testName,
-  		callback: callback
-  	});
-
-  	newTest.queue();
-  }
-
-  function todo(testName, callback) {
-  	if (focused$1) {
-  		return;
-  	}
-
-  	var newTest = new Test({
-  		testName: testName,
-  		callback: callback,
-  		todo: true
-  	});
-
-  	newTest.queue();
-  }
-
-  // Will be exposed as QUnit.skip
-  function skip(testName) {
-  	if (focused$1) {
-  		return;
-  	}
-
-  	var test = new Test({
-  		testName: testName,
-  		skip: true
-  	});
-
-  	test.queue();
-  }
-
-  // Will be exposed as QUnit.only
-  function only(testName, callback) {
-  	if (focused$1) {
-  		return;
-  	}
-
-  	config.queue.length = 0;
-  	focused$1 = true;
-
-  	var newTest = new Test({
-  		testName: testName,
-  		callback: callback
-  	});
-
-  	newTest.queue();
-  }
-
-  // Put a hold on processing and return a function that will release it.
-  function internalStop(test) {
-  	test.semaphore += 1;
-  	config.blocking = true;
-
-  	// Set a recovery timeout, if so configured.
-  	if (defined.setTimeout) {
-  		var timeoutDuration = void 0;
-
-  		if (typeof test.timeout === "number") {
-  			timeoutDuration = test.timeout;
-  		} else if (typeof config.testTimeout === "number") {
-  			timeoutDuration = config.testTimeout;
-  		}
-
-  		if (typeof timeoutDuration === "number" && timeoutDuration > 0) {
-  			clearTimeout(config.timeout);
-  			config.timeout = setTimeout(function () {
-  				pushFailure("Test took longer than " + timeoutDuration + "ms; test timed out.", sourceFromStacktrace(2));
-  				internalRecover(test);
-  			}, timeoutDuration);
-  		}
-  	}
-
-  	var released = false;
-  	return function resume() {
-  		if (released) {
-  			return;
-  		}
-
-  		released = true;
-  		test.semaphore -= 1;
-  		internalStart(test);
-  	};
-  }
-
-  // Forcefully release all processing holds.
-  function internalRecover(test) {
-  	test.semaphore = 0;
-  	internalStart(test);
-  }
-
-  // Release a processing hold, scheduling a resumption attempt if no holds remain.
-  function internalStart(test) {
-
-  	// If semaphore is non-numeric, throw error
-  	if (isNaN(test.semaphore)) {
-  		test.semaphore = 0;
-
-  		pushFailure("Invalid value on test.semaphore", sourceFromStacktrace(2));
-  		return;
-  	}
-
-  	// Don't start until equal number of stop-calls
-  	if (test.semaphore > 0) {
-  		return;
-  	}
-
-  	// Throw an Error if start is called more often than stop
-  	if (test.semaphore < 0) {
-  		test.semaphore = 0;
-
-  		pushFailure("Tried to restart test while already started (test's semaphore was 0 already)", sourceFromStacktrace(2));
-  		return;
-  	}
-
-  	// Add a slight delay to allow more assertions etc.
-  	if (defined.setTimeout) {
-  		if (config.timeout) {
-  			clearTimeout(config.timeout);
-  		}
-  		config.timeout = setTimeout(function () {
-  			if (test.semaphore > 0) {
-  				return;
-  			}
-
-  			if (config.timeout) {
-  				clearTimeout(config.timeout);
-  			}
-
-  			begin();
-  		}, 13);
-  	} else {
-  		begin();
-  	}
-  }
-
-  function collectTests(module) {
-  	var tests = [].concat(module.tests);
-  	var modules = [].concat(toConsumableArray(module.childModules));
-
-  	// Do a breadth-first traversal of the child modules
-  	while (modules.length) {
-  		var nextModule = modules.shift();
-  		tests.push.apply(tests, nextModule.tests);
-  		modules.push.apply(modules, toConsumableArray(nextModule.childModules));
-  	}
-
-  	return tests;
-  }
-
-  function numberOfTests(module) {
-  	return collectTests(module).length;
-  }
-
-  function numberOfUnskippedTests(module) {
-  	return collectTests(module).filter(function (test) {
-  		return !test.skip;
-  	}).length;
-  }
-
-  function notifyTestsRan(module, skipped) {
-  	module.testsRun++;
-  	if (!skipped) {
-  		module.unskippedTestsRun++;
-  	}
-  	while (module = module.parentModule) {
-  		module.testsRun++;
-  		if (!skipped) {
-  			module.unskippedTestsRun++;
-  		}
-  	}
-  }
-
-  /**
-   * Returns a function that proxies to the given method name on the globals
-   * console object. The proxy will also detect if the console doesn't exist and
-   * will appropriately no-op. This allows support for IE9, which doesn't have a
-   * console if the developer tools are not open.
-   */
-  function consoleProxy(method) {
-  	return function () {
-  		if (console) {
-  			console[method].apply(console, arguments);
-  		}
-  	};
-  }
-
-  var Logger = {
-  	warn: consoleProxy("warn")
-  };
-
-  var Assert = function () {
-  	function Assert(testContext) {
-  		classCallCheck(this, Assert);
-
-  		this.test = testContext;
-  	}
-
-  	// Assert helpers
-
-  	createClass(Assert, [{
-  		key: "timeout",
-  		value: function timeout(duration) {
-  			if (typeof duration !== "number") {
-  				throw new Error("You must pass a number as the duration to assert.timeout");
-  			}
-
-  			this.test.timeout = duration;
-  		}
-
-  		// Documents a "step", which is a string value, in a test as a passing assertion
-
-  	}, {
-  		key: "step",
-  		value: function step(message) {
-  			var result = !!message;
-
-  			this.test.steps.push(message);
-
-  			return this.pushResult({
-  				result: result,
-  				message: message || "You must provide a message to assert.step"
-  			});
-  		}
-
-  		// Verifies the steps in a test match a given array of string values
-
-  	}, {
-  		key: "verifySteps",
-  		value: function verifySteps(steps, message) {
-  			this.deepEqual(this.test.steps, steps, message);
-  		}
-
-  		// Specify the number of expected assertions to guarantee that failed test
-  		// (no assertions are run at all) don't slip through.
-
-  	}, {
-  		key: "expect",
-  		value: function expect(asserts) {
-  			if (arguments.length === 1) {
-  				this.test.expected = asserts;
-  			} else {
-  				return this.test.expected;
-  			}
-  		}
-
-  		// Put a hold on processing and return a function that will release it a maximum of once.
-
-  	}, {
-  		key: "async",
-  		value: function async(count) {
-  			var test$$1 = this.test;
-
-  			var popped = false,
-  			    acceptCallCount = count;
-
-  			if (typeof acceptCallCount === "undefined") {
-  				acceptCallCount = 1;
-  			}
-
-  			var resume = internalStop(test$$1);
-
-  			return function done() {
-  				if (config.current !== test$$1) {
-  					throw Error("assert.async callback called after test finished.");
-  				}
-
-  				if (popped) {
-  					test$$1.pushFailure("Too many calls to the `assert.async` callback", sourceFromStacktrace(2));
-  					return;
-  				}
-
-  				acceptCallCount -= 1;
-  				if (acceptCallCount > 0) {
-  					return;
-  				}
-
-  				popped = true;
-  				resume();
-  			};
-  		}
-
-  		// Exports test.push() to the user API
-  		// Alias of pushResult.
-
-  	}, {
-  		key: "push",
-  		value: function push(result, actual, expected, message, negative) {
-  			Logger.warn("assert.push is deprecated and will be removed in QUnit 3.0." + " Please use assert.pushResult instead (https://api.qunitjs.com/assert/pushResult).");
-
-  			var currentAssert = this instanceof Assert ? this : config.current.assert;
-  			return currentAssert.pushResult({
-  				result: result,
-  				actual: actual,
-  				expected: expected,
-  				message: message,
-  				negative: negative
-  			});
-  		}
-  	}, {
-  		key: "pushResult",
-  		value: function pushResult(resultInfo) {
-
-  			// Destructure of resultInfo = { result, actual, expected, message, negative }
-  			var assert = this;
-  			var currentTest = assert instanceof Assert && assert.test || config.current;
-
-  			// Backwards compatibility fix.
-  			// Allows the direct use of global exported assertions and QUnit.assert.*
-  			// Although, it's use is not recommended as it can leak assertions
-  			// to other tests from async tests, because we only get a reference to the current test,
-  			// not exactly the test where assertion were intended to be called.
-  			if (!currentTest) {
-  				throw new Error("assertion outside test context, in " + sourceFromStacktrace(2));
-  			}
-
-  			if (!(assert instanceof Assert)) {
-  				assert = currentTest.assert;
-  			}
-
-  			return assert.test.pushResult(resultInfo);
-  		}
-  	}, {
-  		key: "ok",
-  		value: function ok(result, message) {
-  			if (!message) {
-  				message = result ? "okay" : "failed, expected argument to be truthy, was: " + dump.parse(result);
-  			}
-
-  			this.pushResult({
-  				result: !!result,
-  				actual: result,
-  				expected: true,
-  				message: message
-  			});
-  		}
-  	}, {
-  		key: "notOk",
-  		value: function notOk(result, message) {
-  			if (!message) {
-  				message = !result ? "okay" : "failed, expected argument to be falsy, was: " + dump.parse(result);
-  			}
-
-  			this.pushResult({
-  				result: !result,
-  				actual: result,
-  				expected: false,
-  				message: message
-  			});
-  		}
-  	}, {
-  		key: "equal",
-  		value: function equal(actual, expected, message) {
-
-  			// eslint-disable-next-line eqeqeq
-  			var result = expected == actual;
-
-  			this.pushResult({
-  				result: result,
-  				actual: actual,
-  				expected: expected,
-  				message: message
-  			});
-  		}
-  	}, {
-  		key: "notEqual",
-  		value: function notEqual(actual, expected, message) {
-
-  			// eslint-disable-next-line eqeqeq
-  			var result = expected != actual;
-
-  			this.pushResult({
-  				result: result,
-  				actual: actual,
-  				expected: expected,
-  				message: message,
-  				negative: true
-  			});
-  		}
-  	}, {
-  		key: "propEqual",
-  		value: function propEqual(actual, expected, message) {
-  			actual = objectValues(actual);
-  			expected = objectValues(expected);
-
-  			this.pushResult({
-  				result: equiv(actual, expected),
-  				actual: actual,
-  				expected: expected,
-  				message: message
-  			});
-  		}
-  	}, {
-  		key: "notPropEqual",
-  		value: function notPropEqual(actual, expected, message) {
-  			actual = objectValues(actual);
-  			expected = objectValues(expected);
-
-  			this.pushResult({
-  				result: !equiv(actual, expected),
-  				actual: actual,
-  				expected: expected,
-  				message: message,
-  				negative: true
-  			});
-  		}
-  	}, {
-  		key: "deepEqual",
-  		value: function deepEqual(actual, expected, message) {
-  			this.pushResult({
-  				result: equiv(actual, expected),
-  				actual: actual,
-  				expected: expected,
-  				message: message
-  			});
-  		}
-  	}, {
-  		key: "notDeepEqual",
-  		value: function notDeepEqual(actual, expected, message) {
-  			this.pushResult({
-  				result: !equiv(actual, expected),
-  				actual: actual,
-  				expected: expected,
-  				message: message,
-  				negative: true
-  			});
-  		}
-  	}, {
-  		key: "strictEqual",
-  		value: function strictEqual(actual, expected, message) {
-  			this.pushResult({
-  				result: expected === actual,
-  				actual: actual,
-  				expected: expected,
-  				message: message
-  			});
-  		}
-  	}, {
-  		key: "notStrictEqual",
-  		value: function notStrictEqual(actual, expected, message) {
-  			this.pushResult({
-  				result: expected !== actual,
-  				actual: actual,
-  				expected: expected,
-  				message: message,
-  				negative: true
-  			});
-  		}
-  	}, {
-  		key: "throws",
-  		value: function throws(block, expected, message) {
-  			var actual = void 0,
-  			    result = false;
-
-  			var currentTest = this instanceof Assert && this.test || config.current;
-
-  			// 'expected' is optional unless doing string comparison
-  			if (objectType(expected) === "string") {
-  				if (message == null) {
-  					message = expected;
-  					expected = null;
-  				} else {
-  					throw new Error("throws/raises does not accept a string value for the expected argument.\n" + "Use a non-string object value (e.g. regExp) instead if it's necessary.");
-  				}
-  			}
-
-  			currentTest.ignoreGlobalErrors = true;
-  			try {
-  				block.call(currentTest.testEnvironment);
-  			} catch (e) {
-  				actual = e;
-  			}
-  			currentTest.ignoreGlobalErrors = false;
-
-  			if (actual) {
-  				var expectedType = objectType(expected);
-
-  				// We don't want to validate thrown error
-  				if (!expected) {
-  					result = true;
-  					expected = null;
-
-  					// Expected is a regexp
-  				} else if (expectedType === "regexp") {
-  					result = expected.test(errorString(actual));
-
-  					// Expected is a constructor, maybe an Error constructor
-  				} else if (expectedType === "function" && actual instanceof expected) {
-  					result = true;
-
-  					// Expected is an Error object
-  				} else if (expectedType === "object") {
-  					result = actual instanceof expected.constructor && actual.name === expected.name && actual.message === expected.message;
-
-  					// Expected is a validation function which returns true if validation passed
-  				} else if (expectedType === "function" && expected.call({}, actual) === true) {
-  					expected = null;
-  					result = true;
-  				}
-  			}
-
-  			currentTest.assert.pushResult({
-  				result: result,
-  				actual: actual,
-  				expected: expected,
-  				message: message
-  			});
-  		}
-  	}]);
-  	return Assert;
-  }();
-
-  // Provide an alternative to assert.throws(), for environments that consider throws a reserved word
-  // Known to us are: Closure Compiler, Narwhal
-  // eslint-disable-next-line dot-notation
-
-
-  Assert.prototype.raises = Assert.prototype["throws"];
-
-  /**
-   * Converts an error into a simple string for comparisons.
-   *
-   * @param {Error} error
-   * @return {String}
-   */
-  function errorString(error) {
-  	var resultErrorString = error.toString();
-
-  	if (resultErrorString.substring(0, 7) === "[object") {
-  		var name = error.name ? error.name.toString() : "Error";
-  		var message = error.message ? error.message.toString() : "";
-
-  		if (name && message) {
-  			return name + ": " + message;
-  		} else if (name) {
-  			return name;
-  		} else if (message) {
-  			return message;
-  		} else {
-  			return "Error";
-  		}
-  	} else {
-  		return resultErrorString;
-  	}
-  }
-
-  /* global module, exports, define */
-  function exportQUnit(QUnit) {
-
-  	if (defined.document) {
-
-  		// QUnit may be defined when it is preconfigured but then only QUnit and QUnit.config may be defined.
-  		if (window.QUnit && window.QUnit.version) {
-  			throw new Error("QUnit has already been defined.");
-  		}
-
-  		window.QUnit = QUnit;
-  	}
-
-  	// For nodejs
-  	if (typeof module !== "undefined" && module && module.exports) {
-  		module.exports = QUnit;
-
-  		// For consistency with CommonJS environments' exports
-  		module.exports.QUnit = QUnit;
-  	}
-
-  	// For CommonJS with exports, but without module.exports, like Rhino
-  	if (typeof exports !== "undefined" && exports) {
-  		exports.QUnit = QUnit;
-  	}
-
-  	if (typeof define === "function" && define.amd) {
-  		define(function () {
-  			return QUnit;
-  		});
-  		QUnit.config.autostart = false;
-  	}
-
-  	// For Web/Service Workers
-  	if (self$1 && self$1.WorkerGlobalScope && self$1 instanceof self$1.WorkerGlobalScope) {
-  		self$1.QUnit = QUnit;
-  	}
-  }
-
-  var SuiteReport = function () {
-  	function SuiteReport(name, parentSuite) {
-  		classCallCheck(this, SuiteReport);
-
-  		this.name = name;
-  		this.fullName = parentSuite ? parentSuite.fullName.concat(name) : [];
-
-  		this.tests = [];
-  		this.childSuites = [];
-
-  		if (parentSuite) {
-  			parentSuite.pushChildSuite(this);
-  		}
-  	}
-
-  	createClass(SuiteReport, [{
-  		key: "start",
-  		value: function start(recordTime) {
-  			if (recordTime) {
-  				this._startTime = Date.now();
-  			}
-
-  			return {
-  				name: this.name,
-  				fullName: this.fullName.slice(),
-  				tests: this.tests.map(function (test) {
-  					return test.start();
-  				}),
-  				childSuites: this.childSuites.map(function (suite) {
-  					return suite.start();
-  				}),
-  				testCounts: {
-  					total: this.getTestCounts().total
-  				}
-  			};
-  		}
-  	}, {
-  		key: "end",
-  		value: function end(recordTime) {
-  			if (recordTime) {
-  				this._endTime = Date.now();
-  			}
-
-  			return {
-  				name: this.name,
-  				fullName: this.fullName.slice(),
-  				tests: this.tests.map(function (test) {
-  					return test.end();
-  				}),
-  				childSuites: this.childSuites.map(function (suite) {
-  					return suite.end();
-  				}),
-  				testCounts: this.getTestCounts(),
-  				runtime: this.getRuntime(),
-  				status: this.getStatus()
-  			};
-  		}
-  	}, {
-  		key: "pushChildSuite",
-  		value: function pushChildSuite(suite) {
-  			this.childSuites.push(suite);
-  		}
-  	}, {
-  		key: "pushTest",
-  		value: function pushTest(test) {
-  			this.tests.push(test);
-  		}
-  	}, {
-  		key: "getRuntime",
-  		value: function getRuntime() {
-  			return this._endTime - this._startTime;
-  		}
-  	}, {
-  		key: "getTestCounts",
-  		value: function getTestCounts() {
-  			var counts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { passed: 0, failed: 0, skipped: 0, todo: 0, total: 0 };
-
-  			counts = this.tests.reduce(function (counts, test) {
-  				if (test.valid) {
-  					counts[test.getStatus()]++;
-  					counts.total++;
-  				}
-
-  				return counts;
-  			}, counts);
-
-  			return this.childSuites.reduce(function (counts, suite) {
-  				return suite.getTestCounts(counts);
-  			}, counts);
-  		}
-  	}, {
-  		key: "getStatus",
-  		value: function getStatus() {
-  			var _getTestCounts = this.getTestCounts(),
-  			    total = _getTestCounts.total,
-  			    failed = _getTestCounts.failed,
-  			    skipped = _getTestCounts.skipped,
-  			    todo = _getTestCounts.todo;
-
-  			if (failed) {
-  				return "failed";
-  			} else {
-  				if (skipped === total) {
-  					return "skipped";
-  				} else if (todo === total) {
-  					return "todo";
-  				} else {
-  					return "passed";
-  				}
-  			}
-  		}
-  	}]);
-  	return SuiteReport;
-  }();
-
-  // Handle an unhandled exception. By convention, returns true if further
-  // error handling should be suppressed and false otherwise.
-  // In this case, we will only suppress further error handling if the
-  // "ignoreGlobalErrors" configuration option is enabled.
-  function onError(error) {
-  	for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
-  		args[_key - 1] = arguments[_key];
-  	}
-
-  	if (config.current) {
-  		if (config.current.ignoreGlobalErrors) {
-  			return true;
-  		}
-  		pushFailure.apply(undefined, [error.message, error.fileName + ":" + error.lineNumber].concat(args));
-  	} else {
-  		test("global failure", extend(function () {
-  			pushFailure.apply(undefined, [error.message, error.fileName + ":" + error.lineNumber].concat(args));
-  		}, { validTest: true }));
-  	}
-
-  	return false;
-  }
-
-  var focused = false;
-  var QUnit = {};
-  var globalSuite = new SuiteReport();
-
-  // The initial "currentModule" represents the global (or top-level) module that
-  // is not explicitly defined by the user, therefore we add the "globalSuite" to
-  // it since each module has a suiteReport associated with it.
-  config.currentModule.suiteReport = globalSuite;
-
-  var moduleStack = [];
-  var globalStartCalled = false;
-  var runStarted = false;
-
-  // Figure out if we're running the tests from a server or not
-  QUnit.isLocal = !(defined.document && window.location.protocol !== "file:");
-
-  // Expose the current QUnit version
-  QUnit.version = "2.4.0";
-
-  function createModule(name, testEnvironment, modifiers) {
-  	var parentModule = moduleStack.length ? moduleStack.slice(-1)[0] : null;
-  	var moduleName = parentModule !== null ? [parentModule.name, name].join(" > ") : name;
-  	var parentSuite = parentModule ? parentModule.suiteReport : globalSuite;
-
-  	var skip$$1 = parentModule !== null && parentModule.skip || modifiers.skip;
-  	var todo$$1 = parentModule !== null && parentModule.todo || modifiers.todo;
-
-  	var module = {
-  		name: moduleName,
-  		parentModule: parentModule,
-  		tests: [],
-  		moduleId: generateHash(moduleName),
-  		testsRun: 0,
-  		unskippedTestsRun: 0,
-  		childModules: [],
-  		suiteReport: new SuiteReport(name, parentSuite),
-
-  		// Pass along `skip` and `todo` properties from parent module, in case
-  		// there is one, to childs. And use own otherwise.
-  		// This property will be used to mark own tests and tests of child suites
-  		// as either `skipped` or `todo`.
-  		skip: skip$$1,
-  		todo: skip$$1 ? false : todo$$1
-  	};
-
-  	var env = {};
-  	if (parentModule) {
-  		parentModule.childModules.push(module);
-  		extend(env, parentModule.testEnvironment);
-  	}
-  	extend(env, testEnvironment);
-  	module.testEnvironment = env;
-
-  	config.modules.push(module);
-  	return module;
-  }
-
-  function processModule(name, options, executeNow) {
-  	var modifiers = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
-
-  	var module = createModule(name, options, modifiers);
-
-  	// Move any hooks to a 'hooks' object
-  	var testEnvironment = module.testEnvironment;
-  	var hooks = module.hooks = {};
-
-  	setHookFromEnvironment(hooks, testEnvironment, "before");
-  	setHookFromEnvironment(hooks, testEnvironment, "beforeEach");
-  	setHookFromEnvironment(hooks, testEnvironment, "afterEach");
-  	setHookFromEnvironment(hooks, testEnvironment, "after");
-
-  	function setHookFromEnvironment(hooks, environment, name) {
-  		var potentialHook = environment[name];
-  		hooks[name] = typeof potentialHook === "function" ? [potentialHook] : [];
-  		delete environment[name];
-  	}
-
-  	var moduleFns = {
-  		before: setHookFunction(module, "before"),
-  		beforeEach: setHookFunction(module, "beforeEach"),
-  		afterEach: setHookFunction(module, "afterEach"),
-  		after: setHookFunction(module, "after")
-  	};
-
-  	var currentModule = config.currentModule;
-  	if (objectType(executeNow) === "function") {
-  		moduleStack.push(module);
-  		config.currentModule = module;
-  		executeNow.call(module.testEnvironment, moduleFns);
-  		moduleStack.pop();
-  		module = module.parentModule || currentModule;
-  	}
-
-  	config.currentModule = module;
-  }
-
-  // TODO: extract this to a new file alongside its related functions
-  function module$1(name, options, executeNow) {
-  	if (focused) {
-  		return;
-  	}
-
-  	if (arguments.length === 2) {
-  		if (objectType(options) === "function") {
-  			executeNow = options;
-  			options = undefined;
-  		}
-  	}
-
-  	processModule(name, options, executeNow);
-  }
-
-  module$1.only = function () {
-  	if (focused) {
-  		return;
-  	}
-
-  	config.modules.length = 0;
-  	config.queue.length = 0;
-
-  	module$1.apply(undefined, arguments);
-
-  	focused = true;
-  };
-
-  module$1.skip = function (name, options, executeNow) {
-  	if (focused) {
-  		return;
-  	}
-
-  	if (arguments.length === 2) {
-  		if (objectType(options) === "function") {
-  			executeNow = options;
-  			options = undefined;
-  		}
-  	}
-
-  	processModule(name, options, executeNow, { skip: true });
-  };
-
-  module$1.todo = function (name, options, executeNow) {
-  	if (focused) {
-  		return;
-  	}
-
-  	if (arguments.length === 2) {
-  		if (objectType(options) === "function") {
-  			executeNow = options;
-  			options = undefined;
-  		}
-  	}
-
-  	processModule(name, options, executeNow, { todo: true });
-  };
-
-  extend(QUnit, {
-  	on: on,
-
-  	module: module$1,
-
-  	test: test,
-
-  	todo: todo,
-
-  	skip: skip,
-
-  	only: only,
-
-  	start: function start(count) {
-  		var globalStartAlreadyCalled = globalStartCalled;
-
-  		if (!config.current) {
-  			globalStartCalled = true;
-
-  			if (runStarted) {
-  				throw new Error("Called start() while test already started running");
-  			} else if (globalStartAlreadyCalled || count > 1) {
-  				throw new Error("Called start() outside of a test context too many times");
-  			} else if (config.autostart) {
-  				throw new Error("Called start() outside of a test context when " + "QUnit.config.autostart was true");
-  			} else if (!config.pageLoaded) {
-
-  				// The page isn't completely loaded yet, so we set autostart and then
-  				// load if we're in Node or wait for the browser's load event.
-  				config.autostart = true;
-
-  				// Starts from Node even if .load was not previously called. We still return
-  				// early otherwise we'll wind up "beginning" twice.
-  				if (!defined.document) {
-  					QUnit.load();
-  				}
-
-  				return;
-  			}
-  		} else {
-  			throw new Error("QUnit.start cannot be called inside a test context.");
-  		}
-
-  		scheduleBegin();
-  	},
-
-  	config: config,
-
-  	is: is,
-
-  	objectType: objectType,
-
-  	extend: extend,
-
-  	load: function load() {
-  		config.pageLoaded = true;
-
-  		// Initialize the configuration options
-  		extend(config, {
-  			stats: { all: 0, bad: 0 },
-  			started: 0,
-  			updateRate: 1000,
-  			autostart: true,
-  			filter: ""
-  		}, true);
-
-  		if (!runStarted) {
-  			config.blocking = false;
-
-  			if (config.autostart) {
-  				scheduleBegin();
-  			}
-  		}
-  	},
-
-  	stack: function stack(offset) {
-  		offset = (offset || 0) + 2;
-  		return sourceFromStacktrace(offset);
-  	},
-
-  	onError: onError
-  });
-
-  QUnit.pushFailure = pushFailure;
-  QUnit.assert = Assert.prototype;
-  QUnit.equiv = equiv;
-  QUnit.dump = dump;
-
-  registerLoggingCallbacks(QUnit);
-
-  function scheduleBegin() {
-
-  	runStarted = true;
-
-  	// Add a slight delay to allow definition of more modules and tests.
-  	if (defined.setTimeout) {
-  		setTimeout(function () {
-  			begin();
-  		}, 13);
-  	} else {
-  		begin();
-  	}
-  }
-
-  function begin() {
-  	var i,
-  	    l,
-  	    modulesLog = [];
-
-  	// If the test run hasn't officially begun yet
-  	if (!config.started) {
-
-  		// Record the time of the test run's beginning
-  		config.started = now();
-
-  		// Delete the loose unnamed module if unused.
-  		if (config.modules[0].name === "" && config.modules[0].tests.length === 0) {
-  			config.modules.shift();
-  		}
-
-  		// Avoid unnecessary information by not logging modules' test environments
-  		for (i = 0, l = config.modules.length; i < l; i++) {
-  			modulesLog.push({
-  				name: config.modules[i].name,
-  				tests: config.modules[i].tests
-  			});
-  		}
-
-  		// The test run is officially beginning now
-  		emit("runStart", globalSuite.start(true));
-  		runLoggingCallbacks("begin", {
-  			totalTests: Test.count,
-  			modules: modulesLog
-  		});
-  	}
-
-  	config.blocking = false;
-  	ProcessingQueue.advance();
-  }
-
-  function setHookFunction(module, hookName) {
-  	return function setHook(callback) {
-  		module.hooks[hookName].push(callback);
-  	};
-  }
-
-  exportQUnit(QUnit);
-
-  (function () {
-
-  	if (typeof window === "undefined" || typeof document === "undefined") {
-  		return;
-  	}
-
-  	var config = QUnit.config,
-  	    hasOwn = Object.prototype.hasOwnProperty;
-
-  	// Stores fixture HTML for resetting later
-  	function storeFixture() {
-
-  		// Avoid overwriting user-defined values
-  		if (hasOwn.call(config, "fixture")) {
-  			return;
-  		}
-
-  		var fixture = document.getElementById("qunit-fixture");
-  		if (fixture) {
-  			config.fixture = fixture.innerHTML;
-  		}
-  	}
-
-  	QUnit.begin(storeFixture);
-
-  	// Resets the fixture DOM element if available.
-  	function resetFixture() {
-  		if (config.fixture == null) {
-  			return;
-  		}
-
-  		var fixture = document.getElementById("qunit-fixture");
-  		if (fixture) {
-  			fixture.innerHTML = config.fixture;
-  		}
-  	}
-
-  	QUnit.testStart(resetFixture);
-  })();
-
-  (function () {
-
-  	// Only interact with URLs via window.location
-  	var location = typeof window !== "undefined" && window.location;
-  	if (!location) {
-  		return;
-  	}
-
-  	var urlParams = getUrlParams();
-
-  	QUnit.urlParams = urlParams;
-
-  	// Match module/test by inclusion in an array
-  	QUnit.config.moduleId = [].concat(urlParams.moduleId || []);
-  	QUnit.config.testId = [].concat(urlParams.testId || []);
-
-  	// Exact case-insensitive match of the module name
-  	QUnit.config.module = urlParams.module;
-
-  	// Regular expression or case-insenstive substring match against "moduleName: testName"
-  	QUnit.config.filter = urlParams.filter;
-
-  	// Test order randomization
-  	if (urlParams.seed === true) {
-
-  		// Generate a random seed if the option is specified without a value
-  		QUnit.config.seed = Math.random().toString(36).slice(2);
-  	} else if (urlParams.seed) {
-  		QUnit.config.seed = urlParams.seed;
-  	}
-
-  	// Add URL-parameter-mapped config values with UI form rendering data
-  	QUnit.config.urlConfig.push({
-  		id: "hidepassed",
-  		label: "Hide passed tests",
-  		tooltip: "Only show tests and assertions that fail. Stored as query-strings."
-  	}, {
-  		id: "noglobals",
-  		label: "Check for Globals",
-  		tooltip: "Enabling this will test if any test introduces new properties on the " + "global object (`window` in Browsers). Stored as query-strings."
-  	}, {
-  		id: "notrycatch",
-  		label: "No try-catch",
-  		tooltip: "Enabling this will run tests outside of a try-catch block. Makes debugging " + "exceptions in IE reasonable. Stored as query-strings."
-  	});
-
-  	QUnit.begin(function () {
-  		var i,
-  		    option,
-  		    urlConfig = QUnit.config.urlConfig;
-
-  		for (i = 0; i < urlConfig.length; i++) {
-
-  			// Options can be either strings or objects with nonempty "id" properties
-  			option = QUnit.config.urlConfig[i];
-  			if (typeof option !== "string") {
-  				option = option.id;
-  			}
-
-  			if (QUnit.config[option] === undefined) {
-  				QUnit.config[option] = urlParams[option];
-  			}
-  		}
-  	});
-
-  	function getUrlParams() {
-  		var i, param, name, value;
-  		var urlParams = Object.create(null);
-  		var params = location.search.slice(1).split("&");
-  		var length = params.length;
-
-  		for (i = 0; i < length; i++) {
-  			if (params[i]) {
-  				param = params[i].split("=");
-  				name = decodeQueryParam(param[0]);
-
-  				// Allow just a key to turn on a flag, e.g., test.html?noglobals
-  				value = param.length === 1 || decodeQueryParam(param.slice(1).join("="));
-  				if (name in urlParams) {
-  					urlParams[name] = [].concat(urlParams[name], value);
-  				} else {
-  					urlParams[name] = value;
-  				}
-  			}
-  		}
-
-  		return urlParams;
-  	}
-
-  	function decodeQueryParam(param) {
-  		return decodeURIComponent(param.replace(/\+/g, "%20"));
-  	}
-  })();
-
-  var stats = {
-  	passedTests: 0,
-  	failedTests: 0,
-  	skippedTests: 0,
-  	todoTests: 0
-  };
-
-  // Escape text for attribute or text content.
-  function escapeText(s) {
-  	if (!s) {
-  		return "";
-  	}
-  	s = s + "";
-
-  	// Both single quotes and double quotes (for attributes)
-  	return s.replace(/['"<>&]/g, function (s) {
-  		switch (s) {
-  			case "'":
-  				return "'";
-  			case "\"":
-  				return """;
-  			case "<":
-  				return "<";
-  			case ">":
-  				return ">";
-  			case "&":
-  				return "&";
-  		}
-  	});
-  }
-
-  (function () {
-
-  	// Don't load the HTML Reporter on non-browser environments
-  	if (typeof window === "undefined" || !window.document) {
-  		return;
-  	}
-
-  	var config = QUnit.config,
-  	    document$$1 = window.document,
-  	    collapseNext = false,
-  	    hasOwn = Object.prototype.hasOwnProperty,
-  	    unfilteredUrl = setUrl({ filter: undefined, module: undefined,
-  		moduleId: undefined, testId: undefined }),
-  	    modulesList = [];
-
-  	function addEvent(elem, type, fn) {
-  		elem.addEventListener(type, fn, false);
-  	}
-
-  	function removeEvent(elem, type, fn) {
-  		elem.removeEventListener(type, fn, false);
-  	}
-
-  	function addEvents(elems, type, fn) {
-  		var i = elems.length;
-  		while (i--) {
-  			addEvent(elems[i], type, fn);
-  		}
-  	}
-
-  	function hasClass(elem, name) {
-  		return (" " + elem.className + " ").indexOf(" " + name + " ") >= 0;
-  	}
-
-  	function addClass(elem, name) {
-  		if (!hasClass(elem, name)) {
-  			elem.className += (elem.className ? " " : "") + name;
-  		}
-  	}
-
-  	function toggleClass(elem, name, force) {
-  		if (force || typeof force === "undefined" && !hasClass(elem, name)) {
-  			addClass(elem, name);
-  		} else {
-  			removeClass(elem, name);
-  		}
-  	}
-
-  	function removeClass(elem, name) {
-  		var set = " " + elem.className + " ";
-
-  		// Class name may appear multiple times
-  		while (set.indexOf(" " + name + " ") >= 0) {
-  			set = set.replace(" " + name + " ", " ");
-  		}
-
-  		// Trim for prettiness
-  		elem.className = typeof set.trim === "function" ? set.trim() : set.replace(/^\s+|\s+$/g, "");
-  	}
-
-  	function id(name) {
-  		return document$$1.getElementById && document$$1.getElementById(name);
-  	}
-
-  	function abortTests() {
-  		var abortButton = id("qunit-abort-tests-button");
-  		if (abortButton) {
-  			abortButton.disabled = true;
-  			abortButton.innerHTML = "Aborting...";
-  		}
-  		QUnit.config.queue.length = 0;
-  		return false;
-  	}
-
-  	function interceptNavigation(ev) {
-  		applyUrlParams();
-
-  		if (ev && ev.preventDefault) {
-  			ev.preventDefault();
-  		}
-
-  		return false;
-  	}
-
-  	function getUrlConfigHtml() {
-  		var i,
-  		    j,
-  		    val,
-  		    escaped,
-  		    escapedTooltip,
-  		    selection = false,
-  		    urlConfig = config.urlConfig,
-  		    urlConfigHtml = "";
-
-  		for (i = 0; i < urlConfig.length; i++) {
-
-  			// Options can be either strings or objects with nonempty "id" properties
-  			val = config.urlConfig[i];
-  			if (typeof val === "string") {
-  				val = {
-  					id: val,
-  					label: val
-  				};
-  			}
-
-  			escaped = escapeText(val.id);
-  			escapedTooltip = escapeText(val.tooltip);
-
-  			if (!val.value || typeof val.value === "string") {
-  				urlConfigHtml += "<label for='qunit-urlconfig-" + escaped + "' title='" + escapedTooltip + "'><input id='qunit-urlconfig-" + escaped + "' name='" + escaped + "' type='checkbox'" + (val.value ? " value='" + escapeText(val.value) + "'" : "") + (config[val.id] ? " checked='checked'" : "") + " title='" + escapedTooltip + "' />" + escapeText(val.label) + "</label>";
-  			} else {
-  				urlConfigHtml += "<label for='qunit-urlconfig-" + escaped + "' title='" + escapedTooltip + "'>" + val.label + ": </label><select id='qunit-urlconfig-" + escaped + "' name='" + escaped + "' title='" + escapedTooltip + "'><option></option>";
-
-  				if (QUnit.is("array", val.value)) {
-  					for (j = 0; j < val.value.length; j++) {
-  						escaped = escapeText(val.value[j]);
-  						urlConfigHtml += "<option value='" + escaped + "'" + (config[val.id] === val.value[j] ? (selection = true) && " selected='selected'" : "") + ">" + escaped + "</option>";
-  					}
-  				} else {
-  					for (j in val.value) {
-  						if (hasOwn.call(val.value, j)) {
-  							urlConfigHtml += "<option value='" + escapeText(j) + "'" + (config[val.id] === j ? (selection = true) && " selected='selected'" : "") + ">" + escapeText(val.value[j]) + "</option>";
-  						}
-  					}
-  				}
-  				if (config[val.id] && !selection) {
-  					escaped = escapeText(config[val.id]);
-  					urlConfigHtml += "<option value='" + escaped + "' selected='selected' disabled='disabled'>" + escaped + "</option>";
-  				}
-  				urlConfigHtml += "</select>";
-  			}
-  		}
-
-  		return urlConfigHtml;
-  	}
-
-  	// Handle "click" events on toolbar checkboxes and "change" for select menus.
-  	// Updates the URL with the new state of `config.urlConfig` values.
-  	function toolbarChanged() {
-  		var updatedUrl,
-  		    value,
-  		    tests,
-  		    field = this,
-  		    params = {};
-
-  		// Detect if field is a select menu or a checkbox
-  		if ("selectedIndex" in field) {
-  			value = field.options[field.selectedIndex].value || undefined;
-  		} else {
-  			value = field.checked ? field.defaultValue || true : undefined;
-  		}
-
-  		params[field.name] = value;
-  		updatedUrl = setUrl(params);
-
-  		// Check if we can apply the change without a page refresh
-  		if ("hidepassed" === field.name && "replaceState" in window.history) {
-  			QUnit.urlParams[field.name] = value;
-  			config[field.name] = value || false;
-  			tests = id("qunit-tests");
-  			if (tests) {
-  				toggleClass(tests, "hidepass", value || false);
-  			}
-  			window.history.replaceState(null, "", updatedUrl);
-  		} else {
-  			window.location = updatedUrl;
-  		}
-  	}
-
-  	function setUrl(params) {
-  		var key,
-  		    arrValue,
-  		    i,
-  		    querystring = "?",
-  		    location = window.location;
-
-  		params = QUnit.extend(QUnit.extend({}, QUnit.urlParams), params);
-
-  		for (key in params) {
-
-  			// Skip inherited or undefined properties
-  			if (hasOwn.call(params, key) && params[key] !== undefined) {
-
-  				// Output a parameter for each value of this key (but usually just one)
-  				arrValue = [].concat(params[key]);
-  				for (i = 0; i < arrValue.length; i++) {
-  					querystring += encodeURIComponent(key);
-  					if (arrValue[i] !== true) {
-  						querystring += "=" + encodeURIComponent(arrValue[i]);
-  					}
-  					querystring += "&";
-  				}
-  			}
-  		}
-  		return location.protocol + "//" + location.host + location.pathname + querystring.slice(0, -1);
-  	}
-
-  	function applyUrlParams() {
-  		var i,
-  		    selectedModules = [],
-  		    modulesList = id("qunit-modulefilter-dropdown-list").getElementsByTagName("input"),
-  		    filter = id("qunit-filter-input").value;
-
-  		for (i = 0; i < modulesList.length; i++) {
-  			if (modulesList[i].checked) {
-  				selectedModules.push(modulesList[i].value);
-  			}
-  		}
-
-  		window.location = setUrl({
-  			filter: filter === "" ? undefined : filter,
-  			moduleId: selectedModules.length === 0 ? undefined : selectedModules,
-
-  			// Remove module and testId filter
-  			module: undefined,
-  			testId: undefined
-  		});
-  	}
-
-  	function toolbarUrlConfigContainer() {
-  		var urlConfigContainer = document$$1.createElement("span");
-
-  		urlConfigContainer.innerHTML = getUrlConfigHtml();
-  		addClass(urlConfigContainer, "qunit-url-config");
-
-  		addEvents(urlConfigContainer.getElementsByTagName("input"), "change", toolbarChanged);
-  		addEvents(urlConfigContainer.getElementsByTagName("select"), "change", toolbarChanged);
-
-  		return urlConfigContainer;
-  	}
-
-  	function abortTestsButton() {
-  		var button = document$$1.createElement("button");
-  		button.id = "qunit-abort-tests-button";
-  		button.innerHTML = "Abort";
-  		addEvent(button, "click", abortTests);
-  		return button;
-  	}
-
-  	function toolbarLooseFilter() {
-  		var filter = document$$1.createElement("form"),
-  		    label = document$$1.createElement("label"),
-  		    input = document$$1.createElement("input"),
-  		    button = document$$1.createElement("button");
-
-  		addClass(filter, "qunit-filter");
-
-  		label.innerHTML = "Filter: ";
-
-  		input.type = "text";
-  		input.value = config.filter || "";
-  		input.name = "filter";
-  		input.id = "qunit-filter-input";
-
-  		button.innerHTML = "Go";
-
-  		label.appendChild(input);
-
-  		filter.appendChild(label);
-  		filter.appendChild(document$$1.createTextNode(" "));
-  		filter.appendChild(button);
-  		addEvent(filter, "submit", interceptNavigation);
-
-  		return filter;
-  	}
-
-  	function moduleListHtml() {
-  		var i,
-  		    checked,
-  		    html = "";
-
-  		for (i = 0; i < config.modules.length; i++) {
-  			if (config.modules[i].name !== "") {
-  				checked = config.moduleId.indexOf(config.modules[i].moduleId) > -1;
-  				html += "<li><label class='clickable" + (checked ? " checked" : "") + "'><input type='checkbox' " + "value='" + config.modules[i].moduleId + "'" + (checked ? " checked='checked'" : "") + " />" + escapeText(config.modules[i].name) + "</label></li>";
-  			}
-  		}
-
-  		return html;
-  	}
-
-  	function toolbarModuleFilter() {
-  		var allCheckbox,
-  		    commit,
-  		    reset,
-  		    moduleFilter = document$$1.createElement("form"),
-  		    label = document$$1.createElement("label"),
-  		    moduleSearch = document$$1.createElement("input"),
-  		    dropDown = document$$1.createElement("div"),
-  		    actions = document$$1.createElement("span"),
-  		    dropDownList = document$$1.createElement("ul"),
-  		    dirty = false;
-
-  		moduleSearch.id = "qunit-modulefilter-search";
-  		addEvent(moduleSearch, "input", searchInput);
-  		addEvent(moduleSearch, "input", searchFocus);
-  		addEvent(moduleSearch, "focus", searchFocus);
-  		addEvent(moduleSearch, "click", searchFocus);
-
-  		label.id = "qunit-modulefilter-search-container";
-  		label.innerHTML = "Module: ";
-  		label.appendChild(moduleSearch);
-
-  		actions.id = "qunit-modulefilter-actions";
-  		actions.innerHTML = "<button style='display:none'>Apply</button>" + "<button type='reset' style='display:none'>Reset</button>" + "<label class='clickable" + (config.moduleId.length ? "" : " checked") + "'><input type='checkbox'" + (config.moduleId.length ? "" : " checked='checked'") + ">All modules</label>";
-  		allCheckbox = actions.lastChild.firstChild;
-  		commit = actions.firstChild;
-  		reset = commit.nextSibling;
-  		addEvent(commit, "click", applyUrlParams);
-
-  		dropDownList.id = "qunit-modulefilter-dropdown-list";
-  		dropDownList.innerHTML = moduleListHtml();
-
-  		dropDown.id = "qunit-modulefilter-dropdown";
-  		dropDown.style.display = "none";
-  		dropDown.appendChild(actions);
-  		dropDown.appendChild(dropDownList);
-  		addEvent(dropDown, "change", selectionChange);
-  		selectionChange();
-
-  		moduleFilter.id = "qunit-modulefilter";
-  		moduleFilter.appendChild(label);
-  		moduleFilter.appendChild(dropDown);
-  		addEvent(moduleFilter, "submit", interceptNavigation);
-  		addEvent(moduleFilter, "reset", function () {
-
-  			// Let the reset happen, then update styles
-  			window.setTimeout(selectionChange);
-  		});
-
-  		// Enables show/hide for the dropdown
-  		function searchFocus() {
-  			if (dropDown.style.display !== "none") {
-  				return;
-  			}
-
-  			dropDown.style.display = "block";
-  			addEvent(document$$1, "click", hideHandler);
-  			addEvent(document$$1, "keydown", hideHandler);
-
-  			// Hide on Escape keydown or outside-container click
-  			function hideHandler(e) {
-  				var inContainer = moduleFilter.contains(e.target);
-
-  				if (e.keyCode === 27 || !inContainer) {
-  					if (e.keyCode === 27 && inContainer) {
-  						moduleSearch.focus();
-  					}
-  					dropDown.style.display = "none";
-  					removeEvent(document$$1, "click", hideHandler);
-  					removeEvent(document$$1, "keydown", hideHandler);
-  					moduleSearch.value = "";
-  					searchInput();
-  				}
-  			}
-  		}
-
-  		// Processes module search box input
-  		function searchInput() {
-  			var i,
-  			    item,
-  			    searchText = moduleSearch.value.toLowerCase(),
-  			    listItems = dropDownList.children;
-
-  			for (i = 0; i < listItems.length; i++) {
-  				item = listItems[i];
-  				if (!searchText || item.textContent.toLowerCase().indexOf(searchText) > -1) {
-  					item.style.display = "";
-  				} else {
-  					item.style.display = "none";
-  				}
-  			}
-  		}
-
-  		// Processes selection changes
-  		function selectionChange(evt) {
-  			var i,
-  			    item,
-  			    checkbox = evt && evt.target || allCheckbox,
-  			    modulesList = dropDownList.getElementsByTagName("input"),
-  			    selectedNames = [];
-
-  			toggleClass(checkbox.parentNode, "checked", checkbox.checked);
-
-  			dirty = false;
-  			if (checkbox.checked && checkbox !== allCheckbox) {
-  				allCheckbox.checked = false;
-  				removeClass(allCheckbox.parentNode, "checked");
-  			}
-  			for (i = 0; i < modulesList.length; i++) {
-  				item = modulesList[i];
-  				if (!evt) {
-  					toggleClass(item.parentNode, "checked", item.checked);
-  				} else if (checkbox === allCheckbox && checkbox.checked) {
-  					item.checked = false;
-  					removeClass(item.parentNode, "checked");
-  				}
-  				dirty = dirty || item.checked !== item.defaultChecked;
-  				if (item.checked) {
-  					selectedNames.push(item.parentNode.textContent);
-  				}
-  			}
-
-  			commit.style.display = reset.style.display = dirty ? "" : "none";
-  			moduleSearch.placeholder = selectedNames.join(", ") || allCheckbox.parentNode.textContent;
-  			moduleSearch.title = "Type to filter list. Current selection:\n" + (selectedNames.join("\n") || allCheckbox.parentNode.textContent);
-  		}
-
-  		return moduleFilter;
-  	}
-
-  	function appendToolbar() {
-  		var toolbar = id("qunit-testrunner-toolbar");
-
-  		if (toolbar) {
-  			toolbar.appendChild(toolbarUrlConfigContainer());
-  			toolbar.appendChild(toolbarModuleFilter());
-  			toolbar.appendChild(toolbarLooseFilter());
-  			toolbar.appendChild(document$$1.createElement("div")).className = "clearfix";
-  		}
-  	}
-
-  	function appendHeader() {
-  		var header = id("qunit-header");
-
-  		if (header) {
-  			header.innerHTML = "<a href='" + escapeText(unfilteredUrl) + "'>" + header.innerHTML + "</a> ";
-  		}
-  	}
-
-  	function appendBanner() {
-  		var banner = id("qunit-banner");
-
-  		if (banner) {
-  			banner.className = "";
-  		}
-  	}
-
-  	function appendTestResults() {
-  		var tests = id("qunit-tests"),
-  		    result = id("qunit-testresult"),
-  		    controls;
-
-  		if (result) {
-  			result.parentNode.removeChild(result);
-  		}
-
-  		if (tests) {
-  			tests.innerHTML = "";
-  			result = document$$1.createElement("p");
-  			result.id = "qunit-testresult";
-  			result.className = "result";
-  			tests.parentNode.insertBefore(result, tests);
-  			result.innerHTML = "<div id=\"qunit-testresult-display\">Running...<br /> </div>" + "<div id=\"qunit-testresult-controls\"></div>" + "<div class=\"clearfix\"></div>";
-  			controls = id("qunit-testresult-controls");
-  		}
-
-  		if (controls) {
-  			controls.appendChild(abortTestsButton());
-  		}
-  	}
-
-  	function appendFilteredTest() {
-  		var testId = QUnit.config.testId;
-  		if (!testId || testId.length <= 0) {
-  			return "";
-  		}
-  		return "<div id='qunit-filteredTest'>Rerunning selected tests: " + escapeText(testId.join(", ")) + " <a id='qunit-clearFilter' href='" + escapeText(unfilteredUrl) + "'>Run all tests</a></div>";
-  	}
-
-  	function appendUserAgent() {
-  		var userAgent = id("qunit-userAgent");
-
-  		if (userAgent) {
-  			userAgent.innerHTML = "";
-  			userAgent.appendChild(document$$1.createTextNode("QUnit " + QUnit.version + "; " + navigator.userAgent));
-  		}
-  	}
-
-  	function appendInterface() {
-  		var qunit = id("qunit");
-
-  		if (qunit) {
-  			qunit.innerHTML = "<h1 id='qunit-header'>" + escapeText(document$$1.title) + "</h1>" + "<h2 id='qunit-banner'></h2>" + "<div id='qunit-testrunner-toolbar'></div>" + appendFilteredTest() + "<h2 id='qunit-userAgent'></h2>" + "<ol id='qunit-tests'></ol>";
-  		}
-
-  		appendHeader();
-  		appendBanner();
-  		appendTestResults();
-  		appendUserAgent();
-  		appendToolbar();
-  	}
-
-  	function appendTestsList(modules) {
-  		var i, l, x, z, test, moduleObj;
-
-  		for (i = 0, l = modules.length; i < l; i++) {
-  			moduleObj = modules[i];
-
-  			for (x = 0, z = moduleObj.tests.length; x < z; x++) {
-  				test = moduleObj.tests[x];
-
-  				appendTest(test.name, test.testId, moduleObj.name);
-  			}
-  		}
-  	}
-
-  	function appendTest(name, testId, moduleName) {
-  		var title,
-  		    rerunTrigger,
-  		    testBlock,
-  		    assertList,
-  		    tests = id("qunit-tests");
-
-  		if (!tests) {
-  			return;
-  		}
-
-  		title = document$$1.createElement("strong");
-  		title.innerHTML = getNameHtml(name, moduleName);
-
-  		rerunTrigger = document$$1.createElement("a");
-  		rerunTrigger.innerHTML = "Rerun";
-  		rerunTrigger.href = setUrl({ testId: testId });
-
-  		testBlock = document$$1.createElement("li");
-  		testBlock.appendChild(title);
-  		testBlock.appendChild(rerunTrigger);
-  		testBlock.id = "qunit-test-output-" + testId;
-
-  		assertList = document$$1.createElement("ol");
-  		assertList.className = "qunit-assert-list";
-
-  		testBlock.appendChild(assertList);
-
-  		tests.appendChild(testBlock);
-  	}
-
-  	// HTML Reporter initialization and load
-  	QUnit.begin(function (details) {
-  		var i, moduleObj, tests;
-
-  		// Sort modules by name for the picker
-  		for (i = 0; i < details.modules.length; i++) {
-  			moduleObj = details.modules[i];
-  			if (moduleObj.name) {
-  				modulesList.push(moduleObj.name);
-  			}
-  		}
-  		modulesList.sort(function (a, b) {
-  			return a.localeCompare(b);
-  		});
-
-  		// Initialize QUnit elements
-  		appendInterface();
-  		appendTestsList(details.modules);
-  		tests = id("qunit-tests");
-  		if (tests && config.hidepassed) {
-  			addClass(tests, "hidepass");
-  		}
-  	});
-
-  	QUnit.done(function (details) {
-  		var banner = id("qunit-banner"),
-  		    tests = id("qunit-tests"),
-  		    abortButton = id("qunit-abort-tests-button"),
-  		    totalTests = stats.passedTests + stats.skippedTests + stats.todoTests + stats.failedTests,
-  		    html = [totalTests, " tests completed in ", details.runtime, " milliseconds, with ", stats.failedTests, " failed, ", stats.skippedTests, " skipped, and ", stats.todoTests, " todo.<br />", "<span class='passed'>", details.passed, "</span> assertions of <span class='total'>", details.total, "</span> passed, <span class='failed'>", details.failed, "</span> failed."].join(""),
-  		    test,
-  		    assertLi,
-  		    assertList;
-
-  		// Update remaing tests to aborted
-  		if (abortButton && abortButton.disabled) {
-  			html = "Tests aborted after " + details.runtime + " milliseconds.";
-
-  			for (var i = 0; i < tests.children.length; i++) {
-  				test = tests.children[i];
-  				if (test.className === "" || test.className === "running") {
-  					test.className = "aborted";
-  					assertList = test.getElementsByTagName("ol")[0];
-  					assertLi = document$$1.createElement("li");
-  					assertLi.className = "fail";
-  					assertLi.innerHTML = "Test aborted.";
-  					assertList.appendChild(assertLi);
-  				}
-  			}
-  		}
-
-  		if (banner && (!abortButton || abortButton.disabled === false)) {
-  			banner.className = stats.failedTests ? "qunit-fail" : "qunit-pass";
-  		}
-
-  		if (abortButton) {
-  			abortButton.parentNode.removeChild(abortButton);
-  		}
-
-  		if (tests) {
-  			id("qunit-testresult-display").innerHTML = html;
-  		}
-
-  		if (config.altertitle && document$$1.title) {
-
-  			// Show ✖ for good, ✔ for bad suite result in title
-  			// use escape sequences in case file gets loaded with non-utf-8-charset
-  			document$$1.title = [stats.failedTests ? "\u2716" : "\u2714", document$$1.title.replace(/^[\u2714\u2716] /i, "")].join(" ");
-  		}
-
-  		// Scroll back to top to show results
-  		if (config.scrolltop && window.scrollTo) {
-  			window.scrollTo(0, 0);
-  		}
-  	});
-
-  	function getNameHtml(name, module) {
-  		var nameHtml = "";
-
-  		if (module) {
-  			nameHtml = "<span class='module-name'>" + escapeText(module) + "</span>: ";
-  		}
-
-  		nameHtml += "<span class='test-name'>" + escapeText(name) + "</span>";
-
-  		return nameHtml;
-  	}
-
-  	QUnit.testStart(function (details) {
-  		var running, testBlock, bad;
-
-  		testBlock = id("qunit-test-output-" + details.testId);
-  		if (testBlock) {
-  			testBlock.className = "running";
-  		} else {
-
-  			// Report later registered tests
-  			appendTest(details.name, details.testId, details.module);
-  		}
-
-  		running = id("qunit-testresult-display");
-  		if (running) {
-  			bad = QUnit.config.reorder && details.previousFailure;
-
-  			running.innerHTML = (bad ? "Rerunning previously failed test: <br />" : "Running: <br />") + getNameHtml(details.name, details.module);
-  		}
-  	});
-
-  	function stripHtml(string) {
-
-  		// Strip tags, html entity and whitespaces
-  		return string.replace(/<\/?[^>]+(>|$)/g, "").replace(/\"/g, "").replace(/\s+/g, "");
-  	}
-
-  	QUnit.log(function (details) {
-  		var assertList,
-  		    assertLi,
-  		    message,
-  		    expected,
-  		    actual,
-  		    diff,
-  		    showDiff = false,
-  		    testItem = id("qunit-test-output-" + details.testId);
-
-  		if (!testItem) {
-  			return;
-  		}
-
-  		message = escapeText(details.message) || (details.result ? "okay" : "failed");
-  		message = "<span class='test-message'>" + message + "</span>";
-  		message += "<span class='runtime'>@ " + details.runtime + " ms</span>";
-
-  		// The pushFailure doesn't provide details.expected
-  		// when it calls, it's implicit to also not show expected and diff stuff
-  		// Also, we need to check details.expected existence, as it can exist and be undefined
-  		if (!details.result && hasOwn.call(details, "expected")) {
-  			if (details.negative) {
-  				expected = "NOT " + QUnit.dump.parse(details.expected);
-  			} else {
-  				expected = QUnit.dump.parse(details.expected);
-  			}
-
-  			actual = QUnit.dump.parse(details.actual);
-  			message += "<table><tr class='test-expected'><th>Expected: </th><td><pre>" + escapeText(expected) + "</pre></td></tr>";
-
-  			if (actual !== expected) {
-
-  				message += "<tr class='test-actual'><th>Result: </th><td><pre>" + escapeText(actual) + "</pre></td></tr>";
-
-  				if (typeof details.actual === "number" && typeof details.expected === "number") {
-  					if (!isNaN(details.actual) && !isNaN(details.expected)) {
-  						showDiff = true;
-  						diff = details.actual - details.expected;
-  						diff = (diff > 0 ? "+" : "") + diff;
-  					}
-  				} else if (typeof details.actual !== "boolean" && typeof details.expected !== "boolean") {
-  					diff = QUnit.diff(expected, actual);
-
-  					// don't show diff if there is zero overlap
-  					showDiff = stripHtml(diff).length !== stripHtml(expected).length + stripHtml(actual).length;
-  				}
-
-  				if (showDiff) {
-  					message += "<tr class='test-diff'><th>Diff: </th><td><pre>" + diff + "</pre></td></tr>";
-  				}
-  			} else if (expected.indexOf("[object Array]") !== -1 || expected.indexOf("[object Object]") !== -1) {
-  				message += "<tr class='test-message'><th>Message: </th><td>" + "Diff suppressed as the depth of object is more than current max depth (" + QUnit.config.maxDepth + ").<p>Hint: Use <code>QUnit.dump.maxDepth</code> to " + " run with a higher max depth or <a href='" + escapeText(setUrl({ maxDepth: -1 })) + "'>" + "Rerun</a> without max depth.</p></td></tr>";
-  			} else {
-  				message += "<tr class='test-message'><th>Message: </th><td>" + "Diff suppressed as the expected and actual results have an equivalent" + " serialization</td></tr>";
-  			}
-
-  			if (details.source) {
-  				message += "<tr class='test-source'><th>Source: </th><td><pre>" + escapeText(details.source) + "</pre></td></tr>";
-  			}
-
-  			message += "</table>";
-
-  			// This occurs when pushFailure is set and we have an extracted stack trace
-  		} else if (!details.result && details.source) {
-  			message += "<table>" + "<tr class='test-source'><th>Source: </th><td><pre>" + escapeText(details.source) + "</pre></td></tr>" + "</table>";
-  		}
-
-  		assertList = testItem.getElementsByTagName("ol")[0];
-
-  		assertLi = document$$1.createElement("li");
-  		assertLi.className = details.result ? "pass" : "fail";
-  		assertLi.innerHTML = message;
-  		assertList.appendChild(assertLi);
-  	});
-
-  	QUnit.testDone(function (details) {
-  		var testTitle,
-  		    time,
-  		    testItem,
-  		    assertList,
-  		    good,
-  		    bad,
-  		    testCounts,
-  		    skipped,
-  		    sourceName,
-  		    tests = id("qunit-tests");
-
-  		if (!tests) {
-  			return;
-  		}
-
-  		testItem = id("qunit-test-output-" + details.testId);
-
-  		assertList = testItem.getElementsByTagName("ol")[0];
-
-  		good = details.passed;
-  		bad = details.failed;
-
-  		// This test passed if it has no unexpected failed assertions
-  		var testPassed = details.failed > 0 ? details.todo : !details.todo;
-
-  		if (testPassed) {
-
-  			// Collapse the passing tests
-  			addClass(assertList, "qunit-collapsed");
-  		} else if (config.collapse) {
-  			if (!collapseNext) {
-
-  				// Skip collapsing the first failing test
-  				collapseNext = true;
-  			} else {
-
-  				// Collapse remaining tests
-  				addClass(assertList, "qunit-collapsed");
-  			}
-  		}
-
-  		// The testItem.firstChild is the test name
-  		testTitle = testItem.firstChild;
-
-  		testCounts = bad ? "<b class='failed'>" + bad + "</b>, " + "<b class='passed'>" + good + "</b>, " : "";
-
-  		testTitle.innerHTML += " <b class='counts'>(" + testCounts + details.assertions.length + ")</b>";
-
-  		if (details.skipped) {
-  			stats.skippedTests++;
-
-  			testItem.className = "skipped";
-  			skipped = document$$1.createElement("em");
-  			skipped.className = "qunit-skipped-label";
-  			skipped.innerHTML = "skipped";
-  			testItem.insertBefore(skipped, testTitle);
-  		} else {
-  			addEvent(testTitle, "click", function () {
-  				toggleClass(assertList, "qunit-collapsed");
-  			});
-
-  			testItem.className = testPassed ? "pass" : "fail";
-
-  			if (details.todo) {
-  				var todoLabel = document$$1.createElement("em");
-  				todoLabel.className = "qunit-todo-label";
-  				todoLabel.innerHTML = "todo";
-  				testItem.className += " todo";
-  				testItem.insertBefore(todoLabel, testTitle);
-  			}
-
-  			time = document$$1.createElement("span");
-  			time.className = "runtime";
-  			time.innerHTML = details.runtime + " ms";
-  			testItem.insertBefore(time, assertList);
-
-  			if (!testPassed) {
-  				stats.failedTests++;
-  			} else if (details.todo) {
-  				stats.todoTests++;
-  			} else {
-  				stats.passedTests++;
-  			}
-  		}
-
-  		// Show the source of the test when showing assertions
-  		if (details.source) {
-  			sourceName = document$$1.createElement("p");
-  			sourceName.innerHTML = "<strong>Source: </strong>" + details.source;
-  			addClass(sourceName, "qunit-source");
-  			if (testPassed) {
-  				addClass(sourceName, "qunit-collapsed");
-  			}
-  			addEvent(testTitle, "click", function () {
-  				toggleClass(sourceName, "qunit-collapsed");
-  			});
-  			testItem.appendChild(sourceName);
-  		}
-  	});
-
-  	// Avoid readyState issue with phantomjs
-  	// Ref: #818
-  	var notPhantom = function (p) {
-  		return !(p && p.version && p.version.major > 0);
-  	}(window.phantom);
-
-  	if (notPhantom && document$$1.readyState === "complete") {
-  		QUnit.load();
-  	} else {
-  		addEvent(window, "load", QUnit.load);
-  	}
-
-  	// Wrap window.onerror. We will call the original window.onerror to see if
-  	// the existing handler fully handles the error; if not, we will call the
-  	// QUnit.onError function.
-  	var originalWindowOnError = window.onerror;
-
-  	// Cover uncaught exceptions
-  	// Returning true will suppress the default browser handler,
-  	// returning false will let it run.
-  	window.onerror = function (message, fileName, lineNumber) {
-  		var ret = false;
-  		if (originalWindowOnError) {
-  			for (var _len = arguments.length, args = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
-  				args[_key - 3] = arguments[_key];
-  			}
-
-  			ret = originalWindowOnError.call.apply(originalWindowOnError, [this, message, fileName, lineNumber].concat(args));
-  		}
-
-  		// Treat return value as window.onerror itself does,
-  		// Only do our handling if not suppressed.
-  		if (ret !== true) {
-  			var error = {
-  				message: message,
-  				fileName: fileName,
-  				lineNumber: lineNumber
-  			};
-
-  			ret = QUnit.onError(error);
-  		}
-
-  		return ret;
-  	};
-  })();
-
-  /*
-   * This file is a modified version of google-diff-match-patch's JavaScript implementation
-   * (https://code.google.com/p/google-diff-match-patch/source/browse/trunk/javascript/diff_match_patch_uncompressed.js),
-   * modifications are licensed as more fully set forth in LICENSE.txt.
-   *
-   * The original source of google-diff-match-patch is attributable and licensed as follows:
-   *
-   * Copyright 2006 Google Inc.
-   * https://code.google.com/p/google-diff-match-patch/
-   *
-   * Licensed under the Apache License, Version 2.0 (the "License");
-   * you may not use this file except in compliance with the License.
-   * You may obtain a copy of the License at
-   *
-   * https://www.apache.org/licenses/LICENSE-2.0
-   *
-   * Unless required by applicable law or agreed to in writing, software
-   * distributed under the License is distributed on an "AS IS" BASIS,
-   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   * See the License for the specific language governing permissions and
-   * limitations under the License.
-   *
-   * More Info:
-   *  https://code.google.com/p/google-diff-match-patch/
-   *
-   * Usage: QUnit.diff(expected, actual)
-   *
-   */
-  QUnit.diff = function () {
-  	function DiffMatchPatch() {}
-
-  	//  DIFF FUNCTIONS
-
-  	/**
-    * The data structure representing a diff is an array of tuples:
-    * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]
-    * which means: delete 'Hello', add 'Goodbye' and keep ' world.'
-    */
-  	var DIFF_DELETE = -1,
-  	    DIFF_INSERT = 1,
-  	    DIFF_EQUAL = 0;
-
-  	/**
-    * Find the differences between two texts.  Simplifies the problem by stripping
-    * any common prefix or suffix off the texts before diffing.
-    * @param {string} text1 Old string to be diffed.
-    * @param {string} text2 New string to be diffed.
-    * @param {boolean=} optChecklines Optional speedup flag. If present and false,
-    *     then don't run a line-level diff first to identify the changed areas.
-    *     Defaults to true, which does a faster, slightly less optimal diff.
-    * @return {!Array.<!DiffMatchPatch.Diff>} Array of diff tuples.
-    */
-  	DiffMatchPatch.prototype.DiffMain = function (text1, text2, optChecklines) {
-  		var deadline, checklines, commonlength, commonprefix, commonsuffix, diffs;
-
-  		// The diff must be complete in up to 1 second.
-  		deadline = new Date().getTime() + 1000;
-
-  		// Check for null inputs.
-  		if (text1 === null || text2 === null) {
-  			throw new Error("Null input. (DiffMain)");
-  		}
-
-  		// Check for equality (speedup).
-  		if (text1 === text2) {
-  			if (text1) {
-  				return [[DIFF_EQUAL, text1]];
-  			}
-  			return [];
-  		}
-
-  		if (typeof optChecklines === "undefined") {
-  			optChecklines = true;
-  		}
-
-  		checklines = optChecklines;
-
-  		// Trim off common prefix (speedup).
-  		commonlength = this.diffCommonPrefix(text1, text2);
-  		commonprefix = text1.substring(0, commonlength);
-  		text1 = text1.substring(commonlength);
-  		text2 = text2.substring(commonlength);
-
-  		// Trim off common suffix (speedup).
-  		commonlength = this.diffCommonSuffix(text1, text2);
-  		commonsuffix = text1.substring(text1.length - commonlength);
-  		text1 = text1.substring(0, text1.length - commonlength);
-  		text2 = text2.substring(0, text2.length - commonlength);
-
-  		// Compute the diff on the middle block.
-  		diffs = this.diffCompute(text1, text2, checklines, deadline);
-
-  		// Restore the prefix and suffix.
-  		if (commonprefix) {
-  			diffs.unshift([DIFF_EQUAL, commonprefix]);
-  		}
-  		if (commonsuffix) {
-  			diffs.push([DIFF_EQUAL, commonsuffix]);
-  		}
-  		this.diffCleanupMerge(diffs);
-  		return diffs;
-  	};
-
-  	/**
-    * Reduce the number of edits by eliminating operationally trivial equalities.
-    * @param {!Array.<!DiffMatchPatch.Diff>} diffs Array of diff tuples.
-    */
-  	DiffMatchPatch.prototype.diffCleanupEfficiency = function (diffs) {
-  		var changes, equalities, equalitiesLength, lastequality, pointer, preIns, preDel, postIns, postDel;
-  		changes = false;
-  		equalities = []; // Stack of indices where equalities are found.
-  		equalitiesLength = 0; // Keeping our own length var is faster in JS.
-  		/** @type {?string} */
-  		lastequality = null;
-
-  		// Always equal to diffs[equalities[equalitiesLength - 1]][1]
-  		pointer = 0; // Index of current position.
-
-  		// Is there an insertion operation before the last equality.
-  		preIns = false;
-
-  		// Is there a deletion operation before the last equality.
-  		preDel = false;
-
-  		// Is there an insertion operation after the last equality.
-  		postIns = false;
-
-  		// Is there a deletion operation after the last equality.
-  		postDel = false;
-  		while (pointer < diffs.length) {
-
-  			// Equality found.
-  			if (diffs[pointer][0] === DIFF_EQUAL) {
-  				if (diffs[pointer][1].length < 4 && (postIns || postDel)) {
-
-  					// Candidate found.
-  					equalities[equalitiesLength++] = pointer;
-  					preIns = postIns;
-  					preDel = postDel;
-  					lastequality = diffs[pointer][1];
-  				} else {
-
-  					// Not a candidate, and can never become one.
-  					equalitiesLength = 0;
-  					lastequality = null;
-  				}
-  				postIns = postDel = false;
-
-  				// An insertion or deletion.
-  			} else {
-
-  				if (diffs[pointer][0] === DIFF_DELETE) {
-  					postDel = true;
-  				} else {
-  					postIns = true;
-  				}
-
-  				/*
-       * Five types to be split:
-       * <ins>A</ins><del>B</del>XY<ins>C</ins><del>D</del>
-       * <ins>A</ins>X<ins>C</ins><del>D</del>
-       * <ins>A</ins><del>B</del>X<ins>C</ins>
-       * <ins>A</del>X<ins>C</ins><del>D</del>
-       * <ins>A</ins><del>B</del>X<del>C</del>
-       */
-  				if (lastequality && (preIns && preDel && postIns && postDel || lastequality.length < 2 && preIns + preDel + postIns + postDel === 3)) {
-
-  					// Duplicate record.
-  					diffs.splice(equalities[equalitiesLength - 1], 0, [DIFF_DELETE, lastequality]);
-
-  					// Change second copy to insert.
-  					diffs[equalities[equalitiesLength - 1] + 1][0] = DIFF_INSERT;
-  					equalitiesLength--; // Throw away the equality we just deleted;
-  					lastequality = null;
-  					if (preIns && preDel) {
-
-  						// No changes made which could affect previous entry, keep going.
-  						postIns = postDel = true;
-  						equalitiesLength = 0;
-  					} else {
-  						equalitiesLength--; // Throw away the previous equality.
-  						pointer = equalitiesLength > 0 ? equalities[equalitiesLength - 1] : -1;
-  						postIns = postDel = false;
-  					}
-  					changes = true;
-  				}
-  			}
-  			pointer++;
-  		}
-
-  		if (changes) {
-  			this.diffCleanupMerge(diffs);
-  		}
-  	};
-
-  	/**
-    * Convert a diff array into a pretty HTML report.
-    * @param {!Array.<!DiffMatchPatch.Diff>} diffs Array of diff tuples.
-    * @param {integer} string to be beautified.
-    * @return {string} HTML representation.
-    */
-  	DiffMatchPatch.prototype.diffPrettyHtml = function (diffs) {
-  		var op,
-  		    data,
-  		    x,
-  		    html = [];
-  		for (x = 0; x < diffs.length; x++) {
-  			op = diffs[x][0]; // Operation (insert, delete, equal)
-  			data = diffs[x][1]; // Text of change.
-  			switch (op) {
-  				case DIFF_INSERT:
-  					html[x] = "<ins>" + escapeText(data) + "</ins>";
-  					break;
-  				case DIFF_DELETE:
-  					html[x] = "<del>" + escapeText(data) + "</del>";
-  					break;
-  				case DIFF_EQUAL:
-  					html[x] = "<span>" + escapeText(data) + "</span>";
-  					break;
-  			}
-  		}
-  		return html.join("");
-  	};
-
-  	/**
-    * Determine the common prefix of two strings.
-    * @param {string} text1 First string.
-    * @param {string} text2 Second string.
-    * @return {number} The number of characters common to the start of each
-    *     string.
-    */
-  	DiffMatchPatch.prototype.diffCommonPrefix = function (text1, text2) {
-  		var pointermid, pointermax, pointermin, pointerstart;
-
-  		// Quick check for common null cases.
-  		if (!text1 || !text2 || text1.charAt(0) !== text2.charAt(0)) {
-  			return 0;
-  		}
-
-  		// Binary search.
-  		// Performance analysis: https://neil.fraser.name/news/2007/10/09/
-  		pointermin = 0;
-  		pointermax = Math.min(text1.length, text2.length);
-  		pointermid = pointermax;
-  		pointerstart = 0;
-  		while (pointermin < pointermid) {
-  			if (text1.substring(pointerstart, pointermid) === text2.substring(pointerstart, pointermid)) {
-  				pointermin = pointermid;
-  				pointerstart = pointermin;
-  			} else {
-  				pointermax = pointermid;
-  			}
-  			pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);
-  		}
-  		return pointermid;
-  	};
-
-  	/**
-    * Determine the common suffix of two strings.
-    * @param {string} text1 First string.
-    * @param {string} text2 Second string.
-    * @return {number} The number of characters common to the end of each string.
-    */
-  	DiffMatchPatch.prototype.diffCommonSuffix = function (text1, text2) {
-  		var pointermid, pointermax, pointermin, pointerend;
-
-  		// Quick check for common null cases.
-  		if (!text1 || !text2 || text1.charAt(text1.length - 1) !== text2.charAt(text2.length - 1)) {
-  			return 0;
-  		}
-
-  		// Binary search.
-  		// Performance analysis: https://neil.fraser.name/news/2007/10/09/
-  		pointermin = 0;
-  		pointermax = Math.min(text1.length, text2.length);
-  		pointermid = pointermax;
-  		pointerend = 0;
-  		while (pointermin < pointermid) {
-  			if (text1.substring(text1.length - pointermid, text1.length - pointerend) === text2.substring(text2.length - pointermid, text2.length - pointerend)) {
-  				pointermin = pointermid;
-  				pointerend = pointermin;
-  			} else {
-  				pointermax = pointermid;
-  			}
-  			pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);
-  		}
-  		return pointermid;
-  	};
-
-  	/**
-    * Find the differences between two texts.  Assumes that the texts do not
-    * have any common prefix or suffix.
-    * @param {string} text1 Old string to be diffed.
-    * @param {string} text2 New string to be diffed.
-    * @param {boolean} checklines Speedup flag.  If false, then don't run a
-    *     line-level diff first to identify the changed areas.
-    *     If true, then run a faster, slightly less optimal diff.
-    * @param {number} deadline Time when the diff should be complete by.
-    * @return {!Array.<!DiffMatchPatch.Diff>} Array of diff tuples.
-    * @private
-    */
-  	DiffMatchPatch.prototype.diffCompute = function (text1, text2, checklines, deadline) {
-  		var diffs, longtext, shorttext, i, hm, text1A, text2A, text1B, text2B, midCommon, diffsA, diffsB;
-
-  		if (!text1) {
-
-  			// Just add some text (speedup).
-  			return [[DIFF_INSERT, text2]];
-  		}
-
-  		if (!text2) {
-
-  			// Just delete some text (speedup).
-  			return [[DIFF_DELETE, text1]];
-  		}
-
-  		longtext = text1.length > text2.length ? text1 : text2;
-  		shorttext = text1.length > text2.length ? text2 : text1;
-  		i = longtext.indexOf(shorttext);
-  		if (i !== -1) {
-
-  			// Shorter text is inside the longer text (speedup).
-  			diffs = [[DIFF_INSERT, longtext.substring(0, i)], [DIFF_EQUAL, shorttext], [DIFF_INSERT, longtext.substring(i + shorttext.length)]];
-
-  			// Swap insertions for deletions if diff is reversed.
-  			if (text1.length > text2.length) {
-  				diffs[0][0] = diffs[2][0] = DIFF_DELETE;
-  			}
-  			return diffs;
-  		}
-
-  		if (shorttext.length === 1) {
-
-  			// Single character string.
-  			// After the previous speedup, the character can't be an equality.
-  			return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];
-  		}
-
-  		// Check to see if the problem can be split in two.
-  		hm = this.diffHalfMatch(text1, text2);
-  		if (hm) {
-
-  			// A half-match was found, sort out the return data.
-  			text1A = hm[0];
-  			text1B = hm[1];
-  			text2A = hm[2];
-  			text2B = hm[3];
-  			midCommon = hm[4];
-
-  			// Send both pairs off for separate processing.
-  			diffsA = this.DiffMain(text1A, text2A, checklines, deadline);
-  			diffsB = this.DiffMain(text1B, text2B, checklines, deadline);
-
-  			// Merge the results.
-  			return diffsA.concat([[DIFF_EQUAL, midCommon]], diffsB);
-  		}
-
-  		if (checklines && text1.length > 100 && text2.length > 100) {
-  			return this.diffLineMode(text1, text2, deadline);
-  		}
-
-  		return this.diffBisect(text1, text2, deadline);
-  	};
-
-  	/**
-    * Do the two texts share a substring which is at least half the length of the
-    * longer text?
-    * This speedup can produce non-minimal diffs.
-    * @param {string} text1 First string.
-    * @param {string} text2 Second string.
-    * @return {Array.<string>} Five element Array, containing the prefix of
-    *     text1, the suffix of text1, the prefix of text2, the suffix of
-    *     text2 and the common middle.  Or null if there was no match.
-    * @private
-    */
-  	DiffMatchPatch.prototype.diffHalfMatch = function (text1, text2) {
-  		var longtext, shorttext, dmp, text1A, text2B, text2A, text1B, midCommon, hm1, hm2, hm;
-
-  		longtext = text1.length > text2.length ? text1 : text2;
-  		shorttext = text1.length > text2.length ? text2 : text1;
-  		if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {
-  			return null; // Pointless.
-  		}
-  		dmp = this; // 'this' becomes 'window' in a closure.
-
-  		/**
-     * Does a substring of shorttext exist within longtext such that the substring
-     * is at least half the length of longtext?
-     * Closure, but does not reference any external variables.
-     * @param {string} longtext Longer string.
-     * @param {string} shorttext Shorter string.
-     * @param {number} i Start index of quarter length substring within longtext.
-     * @return {Array.<string>} Five element Array, containing the prefix of
-     *     longtext, the suffix of longtext, the prefix of shorttext, the suffix
-     *     of shorttext and the common middle.  Or null if there was no match.
-     * @private
-     */
-  		function diffHalfMatchI(longtext, shorttext, i) {
-  			var seed, j, bestCommon, prefixLength, suffixLength, bestLongtextA, bestLongtextB, bestShorttextA, bestShorttextB;
-
-  			// Start with a 1/4 length substring at position i as a seed.
-  			seed = longtext.substring(i, i + Math.floor(longtext.length / 4));
-  			j = -1;
-  			bestCommon = "";
-  			while ((j = shorttext.indexOf(seed, j + 1)) !== -1) {
-  				prefixLength = dmp.diffCommonPrefix(longtext.substring(i), shorttext.substring(j));
-  				suffixLength = dmp.diffCommonSuffix(longtext.substring(0, i), shorttext.substring(0, j));
-  				if (bestCommon.length < suffixLength + prefixLength) {
-  					bestCommon = shorttext.substring(j - suffixLength, j) + shorttext.substring(j, j + prefixLength);
-  					bestLongtextA = longtext.substring(0, i - suffixLength);
-  					bestLongtextB = longtext.substring(i + prefixLength);
-  					bestShorttextA = shorttext.substring(0, j - suffixLength);
-  					bestShorttextB = shorttext.substring(j + prefixLength);
-  				}
-  			}
-  			if (bestCommon.length * 2 >= longtext.length) {
-  				return [bestLongtextA, bestLongtextB, bestShorttextA, bestShorttextB, bestCommon];
-  			} else {
-  				return null;
-  			}
-  		}
-
-  		// First check if the second quarter is the seed for a half-match.
-  		hm1 = diffHalfMatchI(longtext, shorttext, Math.ceil(longtext.length / 4));
-
-  		// Check again based on the third quarter.
-  		hm2 = diffHalfMatchI(longtext, shorttext, Math.ceil(longtext.length / 2));
-  		if (!hm1 && !hm2) {
-  			return null;
-  		} else if (!hm2) {
-  			hm = hm1;
-  		} else if (!hm1) {
-  			hm = hm2;
-  		} else {
-
-  			// Both matched.  Select the longest.
-  			hm = hm1[4].length > hm2[4].length ? hm1 : hm2;
-  		}
-
-  		// A half-match was found, sort out the return data.
-  		if (text1.length > text2.length) {
-  			text1A = hm[0];
-  			text1B = hm[1];
-  			text2A = hm[2];
-  			text2B = hm[3];
-  		} else {
-  			text2A = hm[0];
-  			text2B = hm[1];
-  			text1A = hm[2];
-  			text1B = hm[3];
-  		}
-  		midCommon = hm[4];
-  		return [text1A, text1B, text2A, text2B, midCommon];
-  	};
-
-  	/**
-    * Do a quick line-level diff on both strings, then rediff the parts for
-    * greater accuracy.
-    * This speedup can produce non-minimal diffs.
-    * @param {string} text1 Old string to be diffed.
-    * @param {string} text2 New string to be diffed.
-    * @param {number} deadline Time when the diff should be complete by.
-    * @return {!Array.<!DiffMatchPatch.Diff>} Array of diff tuples.
-    * @private
-    */
-  	DiffMatchPatch.prototype.diffLineMode = function (text1, text2, deadline) {
-  		var a, diffs, linearray, pointer, countInsert, countDelete, textInsert, textDelete, j;
-
-  		// Scan the text on a line-by-line basis first.
-  		a = this.diffLinesToChars(text1, text2);
-  		text1 = a.chars1;
-  		text2 = a.chars2;
-  		linearray = a.lineArray;
-
-  		diffs = this.DiffMain(text1, text2, false, deadline);
-
-  		// Convert the diff back to original text.
-  		this.diffCharsToLines(diffs, linearray);
-
-  		// Eliminate freak matches (e.g. blank lines)
-  		this.diffCleanupSemantic(diffs);
-
-  		// Rediff any replacement blocks, this time character-by-character.
-  		// Add a dummy entry at the end.
-  		diffs.push([DIFF_EQUAL, ""]);
-  		pointer = 0;
-  		countDelete = 0;
-  		countInsert = 0;
-  		textDelete = "";
-  		textInsert = "";
-  		while (pointer < diffs.length) {
-  			switch (diffs[pointer][0]) {
-  				case DIFF_INSERT:
-  					countInsert++;
-  					textInsert += diffs[pointer][1];
-  					break;
-  				case DIFF_DELETE:
-  					countDelete++;
-  					textDelete += diffs[pointer][1];
-  					break;
-  				case DIFF_EQUAL:
-
-  					// Upon reaching an equality, check for prior redundancies.
-  					if (countDelete >= 1 && countInsert >= 1) {
-
-  						// Delete the offending records and add the merged ones.
-  						diffs.splice(pointer - countDelete - countInsert, countDelete + countInsert);
-  						pointer = pointer - countDelete - countInsert;
-  						a = this.DiffMain(textDelete, textInsert, false, deadline);
-  						for (j = a.length - 1; j >= 0; j--) {
-  							diffs.splice(pointer, 0, a[j]);
-  						}
-  						pointer = pointer + a.length;
-  					}
-  					countInsert = 0;
-  					countDelete = 0;
-  					textDelete = "";
-  					textInsert = "";
-  					break;
-  			}
-  			pointer++;
-  		}
-  		diffs.pop(); // Remove the dummy entry at the end.
-
-  		return diffs;
-  	};
-
-  	/**
-    * Find the 'middle snake' of a diff, split the problem in two
-    * and return the recursively constructed diff.
-    * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.
-    * @param {string} text1 Old string to be diffed.
-    * @param {string} text2 New string to be diffed.
-    * @param {number} deadline Time at which to bail if not yet complete.
-    * @return {!Array.<!DiffMatchPatch.Diff>} Array of diff tuples.
-    * @private
-    */
-  	DiffMatchPatch.prototype.diffBisect = function (text1, text2, deadline) {
-  		var text1Length, text2Length, maxD, vOffset, vLength, v1, v2, x, delta, front, k1start, k1end, k2start, k2end, k2Offset, k1Offset, x1, x2, y1, y2, d, k1, k2;
-
-  		// Cache the text lengths to prevent multiple calls.
-  		text1Length = text1.length;
-  		text2Length = text2.length;
-  		maxD = Math.ceil((text1Length + text2Length) / 2);
-  		vOffset = maxD;
-  		vLength = 2 * maxD;
-  		v1 = new Array(vLength);
-  		v2 = new Array(vLength);
-
-  		// Setting all elements to -1 is faster in Chrome & Firefox than mixing
-  		// integers and undefined.
-  		for (x = 0; x < vLength; x++) {
-  			v1[x] = -1;
-  			v2[x] = -1;
-  		}
-  		v1[vOffset + 1] = 0;
-  		v2[vOffset + 1] = 0;
-  		delta = text1Length - text2Length;
-
-  		// If the total number of characters is odd, then the front path will collide
-  		// with the reverse path.
-  		front = delta % 2 !== 0;
-
-  		// Offsets for start and end of k loop.
-  		// Prevents mapping of space beyond the grid.
-  		k1start = 0;
-  		k1end = 0;
-  		k2start = 0;
-  		k2end = 0;
-  		for (d = 0; d < maxD; d++) {
-
-  			// Bail out if deadline is reached.
-  			if (new Date().getTime() > deadline) {
-  				break;
-  			}
-
-  			// Walk the front path one step.
-  			for (k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {
-  				k1Offset = vOffset + k1;
-  				if (k1 === -d || k1 !== d && v1[k1Offset - 1] < v1[k1Offset + 1]) {
-  					x1 = v1[k1Offset + 1];
-  				} else {
-  					x1 = v1[k1Offset - 1] + 1;
-  				}
-  				y1 = x1 - k1;
-  				while (x1 < text1Length && y1 < text2Length && text1.charAt(x1) === text2.charAt(y1)) {
-  					x1++;
-  					y1++;
-  				}
-  				v1[k1Offset] = x1;
-  				if (x1 > text1Length) {
-
-  					// Ran off the right of the graph.
-  					k1end += 2;
-  				} else if (y1 > text2Length) {
-
-  					// Ran off the bottom of the graph.
-  					k1start += 2;
-  				} else if (front) {
-  					k2Offset = vOffset + delta - k1;
-  					if (k2Offset >= 0 && k2Offset < vLength && v2[k2Offset] !== -1) {
-
-  						// Mirror x2 onto top-left coordinate system.
-  						x2 = text1Length - v2[k2Offset];
-  						if (x1 >= x2) {
-
-  							// Overlap detected.
-  							return this.diffBisectSplit(text1, text2, x1, y1, deadline);
-  						}
-  					}
-  				}
-  			}
-
-  			// Walk the reverse path one step.
-  			for (k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {
-  				k2Offset = vOffset + k2;
-  				if (k2 === -d || k2 !== d && v2[k2Offset - 1] < v2[k2Offset + 1]) {
-  					x2 = v2[k2Offset + 1];
-  				} else {
-  					x2 = v2[k2Offset - 1] + 1;
-  				}
-  				y2 = x2 - k2;
-  				while (x2 < text1Length && y2 < text2Length && text1.charAt(text1Length - x2 - 1) === text2.charAt(text2Length - y2 - 1)) {
-  					x2++;
-  					y2++;
-  				}
-  				v2[k2Offset] = x2;
-  				if (x2 > text1Length) {
-
-  					// Ran off the left of the graph.
-  					k2end += 2;
-  				} else if (y2 > text2Length) {
-
-  					// Ran off the top of the graph.
-  					k2start += 2;
-  				} else if (!front) {
-  					k1Offset = vOffset + delta - k2;
-  					if (k1Offset >= 0 && k1Offset < vLength && v1[k1Offset] !== -1) {
-  						x1 = v1[k1Offset];
-  						y1 = vOffset + x1 - k1Offset;
-
-  						// Mirror x2 onto top-left coordinate system.
-  						x2 = text1Length - x2;
-  						if (x1 >= x2) {
-
-  							// Overlap detected.
-  							return this.diffBisectSplit(text1, text2, x1, y1, deadline);
-  						}
-  					}
-  				}
-  			}
-  		}
-
-  		// Diff took too long and hit the deadline or
-  		// number of diffs equals number of characters, no commonality at all.
-  		return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];
-  	};
-
-  	/**
-    * Given the location of the 'middle snake', split the diff in two parts
-    * and recurse.
-    * @param {string} text1 Old string to be diffed.
-    * @param {string} text2 New string to be diffed.
-    * @param {number} x Index of split point in text1.
-    * @param {number} y Index of split point in text2.
-    * @param {number} deadline Time at which to bail if not yet complete.
-    * @return {!Array.<!DiffMatchPatch.Diff>} Array of diff tuples.
-    * @private
-    */
-  	DiffMatchPatch.prototype.diffBisectSplit = function (text1, text2, x, y, deadline) {
-  		var text1a, text1b, text2a, text2b, diffs, diffsb;
-  		text1a = text1.substring(0, x);
-  		text2a = text2.substring(0, y);
-  		text1b = text1.substring(x);
-  		text2b = text2.substring(y);
-
-  		// Compute both diffs serially.
-  		diffs = this.DiffMain(text1a, text2a, false, deadline);
-  		diffsb = this.DiffMain(text1b, text2b, false, deadline);
-
-  		return diffs.concat(diffsb);
-  	};
-
-  	/**
-    * Reduce the number of edits by eliminating semantically trivial equalities.
-    * @param {!Array.<!DiffMatchPatch.Diff>} diffs Array of diff tuples.
-    */
-  	DiffMatchPatch.prototype.diffCleanupSemantic = function (diffs) {
-  		var changes, equalities, equalitiesLength, lastequality, pointer, lengthInsertions2, lengthDeletions2, lengthInsertions1, lengthDeletions1, deletion, insertion, overlapLength1, overlapLength2;
-  		changes = false;
-  		equalities = []; // Stack of indices where equalities are found.
-  		equalitiesLength = 0; // Keeping our own length var is faster in JS.
-  		/** @type {?string} */
-  		lastequality = null;
-
-  		// Always equal to diffs[equalities[equalitiesLength - 1]][1]
-  		pointer = 0; // Index of current position.
-
-  		// Number of characters that changed prior to the equality.
-  		lengthInsertions1 = 0;
-  		lengthDeletions1 = 0;
-
-  		// Number of characters that changed after the equality.
-  		lengthInsertions2 = 0;
-  		lengthDeletions2 = 0;
-  		while (pointer < diffs.length) {
-  			if (diffs[pointer][0] === DIFF_EQUAL) {
-  				// Equality found.
-  				equalities[equalitiesLength++] = pointer;
-  				lengthInsertions1 = lengthInsertions2;
-  				lengthDeletions1 = lengthDeletions2;
-  				lengthInsertions2 = 0;
-  				lengthDeletions2 = 0;
-  				lastequality = diffs[pointer][1];
-  			} else {
-  				// An insertion or deletion.
-  				if (diffs[pointer][0] === DIFF_INSERT) {
-  					lengthInsertions2 += diffs[pointer][1].length;
-  				} else {
-  					lengthDeletions2 += diffs[pointer][1].length;
-  				}
-
-  				// Eliminate an equality that is smaller or equal to the edits on both
-  				// sides of it.
-  				if (lastequality && lastequality.length <= Math.max(lengthInsertions1, lengthDeletions1) && lastequality.length <= Math.max(lengthInsertions2, lengthDeletions2)) {
-
-  					// Duplicate record.
-  					diffs.splice(equalities[equalitiesLength - 1], 0, [DIFF_DELETE, lastequality]);
-
-  					// Change second copy to insert.
-  					diffs[equalities[equalitiesLength - 1] + 1][0] = DIFF_INSERT;
-
-  					// Throw away the equality we just deleted.
-  					equalitiesLength--;
-
-  					// Throw away the previous equality (it needs to be reevaluated).
-  					equalitiesLength--;
-  					pointer = equalitiesLength > 0 ? equalities[equalitiesLength - 1] : -1;
-
-  					// Reset the counters.
-  					lengthInsertions1 = 0;
-  					lengthDeletions1 = 0;
-  					lengthInsertions2 = 0;
-  					lengthDeletions2 = 0;
-  					lastequality = null;
-  					changes = true;
-  				}
-  			}
-  			pointer++;
-  		}
-
-  		// Normalize the diff.
-  		if (changes) {
-  			this.diffCleanupMerge(diffs);
-  		}
-
-  		// Find any overlaps between deletions and insertions.
-  		// e.g: <del>abcxxx</del><ins>xxxdef</ins>
-  		//   -> <del>abc</del>xxx<ins>def</ins>
-  		// e.g: <del>xxxabc</del><ins>defxxx</ins>
-  		//   -> <ins>def</ins>xxx<del>abc</del>
-  		// Only extract an overlap if it is as big as the edit ahead or behind it.
-  		pointer = 1;
-  		while (pointer < diffs.length) {
-  			if (diffs[pointer - 1][0] === DIFF_DELETE && diffs[pointer][0] === DIFF_INSERT) {
-  				deletion = diffs[pointer - 1][1];
-  				insertion = diffs[pointer][1];
-  				overlapLength1 = this.diffCommonOverlap(deletion, insertion);
-  				overlapLength2 = this.diffCommonOverlap(insertion, deletion);
-  				if (overlapLength1 >= overlapLength2) {
-  					if (overlapLength1 >= deletion.length / 2 || overlapLength1 >= insertion.length / 2) {
-
-  						// Overlap found.  Insert an equality and trim the surrounding edits.
-  						diffs.splice(pointer, 0, [DIFF_EQUAL, insertion.substring(0, overlapLength1)]);
-  						diffs[pointer - 1][1] = deletion.substring(0, deletion.length - overlapLength1);
-  						diffs[pointer + 1][1] = insertion.substring(overlapLength1);
-  						pointer++;
-  					}
-  				} else {
-  					if (overlapLength2 >= deletion.length / 2 || overlapLength2 >= insertion.length / 2) {
-
-  						// Reverse overlap found.
-  						// Insert an equality and swap and trim the surrounding edits.
-  						diffs.splice(pointer, 0, [DIFF_EQUAL, deletion.substring(0, overlapLength2)]);
-
-  						diffs[pointer - 1][0] = DIFF_INSERT;
-  						diffs[pointer - 1][1] = insertion.substring(0, insertion.length - overlapLength2);
-  						diffs[pointer + 1][0] = DIFF_DELETE;
-  						diffs[pointer + 1][1] = deletion.substring(overlapLength2);
-  						pointer++;
-  					}
-  				}
-  				pointer++;
-  			}
-  			pointer++;
-  		}
-  	};
-
-  	/**
-    * Determine if the suffix of one string is the prefix of another.
-    * @param {string} text1 First string.
-    * @param {string} text2 Second string.
-    * @return {number} The number of characters common to the end of the first
-    *     string and the start of the second string.
-    * @private
-    */
-  	DiffMatchPatch.prototype.diffCommonOverlap = function (text1, text2) {
-  		var text1Length, text2Length, textLength, best, length, pattern, found;
-
-  		// Cache the text lengths to prevent multiple calls.
-  		text1Length = text1.length;
-  		text2Length = text2.length;
-
-  		// Eliminate the null case.
-  		if (text1Length === 0 || text2Length === 0) {
-  			return 0;
-  		}
-
-  		// Truncate the longer string.
-  		if (text1Length > text2Length) {
-  			text1 = text1.substring(text1Length - text2Length);
-  		} else if (text1Length < text2Length) {
-  			text2 = text2.substring(0, text1Length);
-  		}
-  		textLength = Math.min(text1Length, text2Length);
-
-  		// Quick check for the worst case.
-  		if (text1 === text2) {
-  			return textLength;
-  		}
-
-  		// Start by looking for a single character match
-  		// and increase length until no match is found.
-  		// Performance analysis: https://neil.fraser.name/news/2010/11/04/
-  		best = 0;
-  		length = 1;
-  		while (true) {
-  			pattern = text1.substring(textLength - length);
-  			found = text2.indexOf(pattern);
-  			if (found === -1) {
-  				return best;
-  			}
-  			length += found;
-  			if (found === 0 || text1.substring(textLength - length) === text2.substring(0, length)) {
-  				best = length;
-  				length++;
-  			}
-  		}
-  	};
-
-  	/**
-    * Split two texts into an array of strings.  Reduce the texts to a string of
-    * hashes where each Unicode character represents one line.
-    * @param {string} text1 First string.
-    * @param {string} text2 Second string.
-    * @return {{chars1: string, chars2: string, lineArray: !Array.<string>}}
-    *     An object containing the encoded text1, the encoded text2 and
-    *     the array of unique strings.
-    *     The zeroth element of the array of unique strings is intentionally blank.
-    * @private
-    */
-  	DiffMatchPatch.prototype.diffLinesToChars = function (text1, text2) {
-  		var lineArray, lineHash, chars1, chars2;
-  		lineArray = []; // E.g. lineArray[4] === 'Hello\n'
-  		lineHash = {}; // E.g. lineHash['Hello\n'] === 4
-
-  		// '\x00' is a valid character, but various debuggers don't like it.
-  		// So we'll insert a junk entry to avoid generating a null character.
-  		lineArray[0] = "";
-
-  		/**
-     * Split a text into an array of strings.  Reduce the texts to a string of
-     * hashes where each Unicode character represents one line.
-     * Modifies linearray and linehash through being a closure.
-     * @param {string} text String to encode.
-     * @return {string} Encoded string.
-     * @private
-     */
-  		function diffLinesToCharsMunge(text) {
-  			var chars, lineStart, lineEnd, lineArrayLength, line;
-  			chars = "";
-
-  			// Walk the text, pulling out a substring for each line.
-  			// text.split('\n') would would temporarily double our memory footprint.
-  			// Modifying text would create many large strings to garbage collect.
-  			lineStart = 0;
-  			lineEnd = -1;
-
-  			// Keeping our own length variable is faster than looking it up.
-  			lineArrayLength = lineArray.length;
-  			while (lineEnd < text.length - 1) {
-  				lineEnd = text.indexOf("\n", lineStart);
-  				if (lineEnd === -1) {
-  					lineEnd = text.length - 1;
-  				}
-  				line = text.substring(lineStart, lineEnd + 1);
-  				lineStart = lineEnd + 1;
-
-  				if (lineHash.hasOwnProperty ? lineHash.hasOwnProperty(line) : lineHash[line] !== undefined) {
-  					chars += String.fromCharCode(lineHash[line]);
-  				} else {
-  					chars += String.fromCharCode(lineArrayLength);
-  					lineHash[line] = lineArrayLength;
-  					lineArray[lineArrayLength++] = line;
-  				}
-  			}
-  			return chars;
-  		}
-
-  		chars1 = diffLinesToCharsMunge(text1);
-  		chars2 = diffLinesToCharsMunge(text2);
-  		return {
-  			chars1: chars1,
-  			chars2: chars2,
-  			lineArray: lineArray
-  		};
-  	};
-
-  	/**
-    * Rehydrate the text in a diff from a string of line hashes to real lines of
-    * text.
-    * @param {!Array.<!DiffMatchPatch.Diff>} diffs Array of diff tuples.
-    * @param {!Array.<string>} lineArray Array of unique strings.
-    * @private
-    */
-  	DiffMatchPatch.prototype.diffCharsToLines = function (diffs, lineArray) {
-  		var x, chars, text, y;
-  		for (x = 0; x < diffs.length; x++) {
-  			chars = diffs[x][1];
-  			text = [];
-  			for (y = 0; y < chars.length; y++) {
-  				text[y] = lineArray[chars.charCodeAt(y)];
-  			}
-  			diffs[x][1] = text.join("");
-  		}
-  	};
-
-  	/**
-    * Reorder and merge like edit sections.  Merge equalities.
-    * Any edit section can move as long as it doesn't cross an equality.
-    * @param {!Array.<!DiffMatchPatch.Diff>} diffs Array of diff tuples.
-    */
-  	DiffMatchPatch.prototype.diffCleanupMerge = function (diffs) {
-  		var pointer, countDelete, countInsert, textInsert, textDelete, commonlength, changes, diffPointer, position;
-  		diffs.push([DIFF_EQUAL, ""]); // Add a dummy entry at the end.
-  		pointer = 0;
-  		countDelete = 0;
-  		countInsert = 0;
-  		textDelete = "";
-  		textInsert = "";
-
-  		while (pointer < diffs.length) {
-  			switch (diffs[pointer][0]) {
-  				case DIFF_INSERT:
-  					countInsert++;
-  					textInsert += diffs[pointer][1];
-  					pointer++;
-  					break;
-  				case DIFF_DELETE:
-  					countDelete++;
-  					textDelete += diffs[pointer][1];
-  					pointer++;
-  					break;
-  				case DIFF_EQUAL:
-
-  					// Upon reaching an equality, check for prior redundancies.
-  					if (countDelete + countInsert > 1) {
-  						if (countDelete !== 0 && countInsert !== 0) {
-
-  							// Factor out any common prefixes.
-  							commonlength = this.diffCommonPrefix(textInsert, textDelete);
-  							if (commonlength !== 0) {
-  								if (pointer - countDelete - countInsert > 0 && diffs[pointer - countDelete - countInsert - 1][0] === DIFF_EQUAL) {
-  									diffs[pointer - countDelete - countInsert - 1][1] += textInsert.substring(0, commonlength);
-  								} else {
-  									diffs.splice(0, 0, [DIFF_EQUAL, textInsert.substring(0, commonlength)]);
-  									pointer++;
-  								}
-  								textInsert = textInsert.substring(commonlength);
-  								textDelete = textDelete.substring(commonlength);
-  							}
-
-  							// Factor out any common suffixies.
-  							commonlength = this.diffCommonSuffix(textInsert, textDelete);
-  							if (commonlength !== 0) {
-  								diffs[pointer][1] = textInsert.substring(textInsert.length - commonlength) + diffs[pointer][1];
-  								textInsert = textInsert.substring(0, textInsert.length - commonlength);
-  								textDelete = textDelete.substring(0, textDelete.length - commonlength);
-  							}
-  						}
-
-  						// Delete the offending records and add the merged ones.
-  						if (countDelete === 0) {
-  							diffs.splice(pointer - countInsert, countDelete + countInsert, [DIFF_INSERT, textInsert]);
-  						} else if (countInsert === 0) {
-  							diffs.splice(pointer - countDelete, countDelete + countInsert, [DIFF_DELETE, textDelete]);
-  						} else {
-  							diffs.splice(pointer - countDelete - countInsert, countDelete + countInsert, [DIFF_DELETE, textDelete], [DIFF_INSERT, textInsert]);
-  						}
-  						pointer = pointer - countDelete - countInsert + (countDelete ? 1 : 0) + (countInsert ? 1 : 0) + 1;
-  					} else if (pointer !== 0 && diffs[pointer - 1][0] === DIFF_EQUAL) {
-
-  						// Merge this equality with the previous one.
-  						diffs[pointer - 1][1] += diffs[pointer][1];
-  						diffs.splice(pointer, 1);
-  					} else {
-  						pointer++;
-  					}
-  					countInsert = 0;
-  					countDelete = 0;
-  					textDelete = "";
-  					textInsert = "";
-  					break;
-  			}
-  		}
-  		if (diffs[diffs.length - 1][1] === "") {
-  			diffs.pop(); // Remove the dummy entry at the end.
-  		}
-
-  		// Second pass: look for single edits surrounded on both sides by equalities
-  		// which can be shifted sideways to eliminate an equality.
-  		// e.g: A<ins>BA</ins>C -> <ins>AB</ins>AC
-  		changes = false;
-  		pointer = 1;
-
-  		// Intentionally ignore the first and last element (don't need checking).
-  		while (pointer < diffs.length - 1) {
-  			if (diffs[pointer - 1][0] === DIFF_EQUAL && diffs[pointer + 1][0] === DIFF_EQUAL) {
-
-  				diffPointer = diffs[pointer][1];
-  				position = diffPointer.substring(diffPointer.length - diffs[pointer - 1][1].length);
-
-  				// This is a single edit surrounded by equalities.
-  				if (position === diffs[pointer - 1][1]) {
-
-  					// Shift the edit over the previous equality.
-  					diffs[pointer][1] = diffs[pointer - 1][1] + diffs[pointer][1].substring(0, diffs[pointer][1].length - diffs[pointer - 1][1].length);
-  					diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];
-  					diffs.splice(pointer - 1, 1);
-  					changes = true;
-  				} else if (diffPointer.substring(0, diffs[pointer + 1][1].length) === diffs[pointer + 1][1]) {
-
-  					// Shift the edit over the next equality.
-  					diffs[pointer - 1][1] += diffs[pointer + 1][1];
-  					diffs[pointer][1] = diffs[pointer][1].substring(diffs[pointer + 1][1].length) + diffs[pointer + 1][1];
-  					diffs.splice(pointer + 1, 1);
-  					changes = true;
-  				}
-  			}
-  			pointer++;
-  		}
-
-  		// If shifts were made, the diff needs reordering and another shift sweep.
-  		if (changes) {
-  			this.diffCleanupMerge(diffs);
-  		}
-  	};
-
-  	return function (o, n) {
-  		var diff, output, text;
-  		diff = new DiffMatchPatch();
-  		output = diff.DiffMain(o, n);
-  		diff.diffCleanupEfficiency(output);
-  		text = diff.diffPrettyHtml(output);
-
-  		return text;
-  	};
-  }();
-
-}((function() { return this; }())));
diff --git a/assets/javascript/tests/visual/alert.html b/assets/javascript/tests/visual/alert.html
deleted file mode 100755
index bb2d9cb..0000000
--- a/assets/javascript/tests/visual/alert.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<!doctype html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-    <link rel="stylesheet" href="../../../dist/css/bootstrap.min.css">
-    <title>Alert</title>
-  </head>
-  <body>
-    <div class="container">
-      <h1>Alert <small>Bootstrap Visual Test</small></h1>
-
-      <div class="alert alert-warning alert-dismissible fade show" role="alert">
-        <button type="button" class="close" data-dismiss="alert" aria-label="Close">
-          <span aria-hidden="true">×</span>
-        </button>
-        <strong>Holy guacamole!</strong> You should check in on some of those fields below.
-      </div>
-
-      <div class="alert alert-danger alert-dismissible fade show" role="alert">
-        <button type="button" class="close" data-dismiss="alert" aria-label="Close">
-          <span aria-hidden="true">×</span>
-        </button>
-        <p>
-          <strong>Oh snap!</strong> <a href="#" class="alert-link">Change a few things up</a> and try submitting again.
-        </p>
-        <p>
-          <button type="button" class="btn btn-danger">Danger</button>
-          <button type="button" class="btn btn-secondary">Secondary</button>
-        </p>
-      </div>
-
-      <div class="alert alert-danger alert-dismissible fade show" role="alert">
-        <button type="button" class="close" data-dismiss="alert" aria-label="Close">
-          <span aria-hidden="true">×</span>
-        </button>
-        <p>
-          <strong>Oh snap!</strong> <a href="#" class="alert-link">Change a few things up</a> and try submitting again. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum.
-        </p>
-        <p>
-          <button type="button" class="btn btn-danger">Take this action</button>
-          <button type="button" class="btn btn-primary">Or do this</button>
-        </p>
-      </div>
-    </div>
-
-    <script src="../../../assets/js/vendor/jquery-slim.min.js"></script>
-    <script src="../../dist/util.js"></script>
-    <script src="../../dist/alert.js"></script>
-  </body>
-</html>
diff --git a/assets/javascript/tests/visual/button.html b/assets/javascript/tests/visual/button.html
deleted file mode 100755
index 33de14d..0000000
--- a/assets/javascript/tests/visual/button.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<!doctype html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-    <link rel="stylesheet" href="../../../dist/css/bootstrap.min.css">
-    <title>Button</title>
-  </head>
-  <body>
-    <div class="container">
-      <h1>Button <small>Bootstrap Visual Test</small></h1>
-
-      <button type="button" class="btn btn-primary" data-toggle="button" aria-pressed="false" autocomplete="off">
-        Single toggle
-      </button>
-
-      <p>For checkboxes and radio buttons, ensure that keyboard behavior is functioning correctly.</p>
-      <p>Navigate to the checkboxes with the keyboard (generally, using <kbd>TAB</kbd> / <kbd>SHIFT + TAB</kbd>), and ensure that <kbd>SPACE</kbd> toggles the currently focused checkbox. Click on one of the checkboxes using the mouse, ensure that focus was correctly set on the actual checkbox, and that <kbd>SPACE</kbd> toggles the checkbox again.</p>
-
-      <div class="btn-group" data-toggle="buttons">
-        <label class="btn btn-primary active">
-          <input type="checkbox" checked autocomplete="off"> Checkbox 1 (pre-checked)
-        </label>
-        <label class="btn btn-primary">
-          <input type="checkbox" autocomplete="off"> Checkbox 2
-        </label>
-        <label class="btn btn-primary">
-          <input type="checkbox" autocomplete="off"> Checkbox 3
-        </label>
-      </div>
-
-      <p>Navigate to the radio button group with the keyboard (generally, using <kbd>TAB</kbd> / <kbd>SHIFT + TAB</kbd>). If no radio button was initially set to be selected, the first/last radio button should receive focus (depending on whether you navigated "forward" to the group with <kbd>TAB</kbd> or "backwards" using <kbd>SHIFT + TAB</kbd>). If a radio button was already selected, navigating with the keyboard should set focus to that particular radio button. Only one radio button in a group should receive focus at any given time.  Ensure that the selected radio button can be changed by using the <kbd>←</kbd> and <kbd>→</kbd> arrow keys. Click on one of the radio buttons with the mouse,  ensure that focus was correctly set on the actual radio button, and that <kbd>←</kbd> and <kbd>→</kbd> change the selected radio button again.</p>
-
-      <div class="btn-group" data-toggle="buttons">
-        <label class="btn btn-primary active">
-          <input type="radio" name="options" id="option1" autocomplete="off" checked> Radio 1 (preselected)
-        </label>
-        <label class="btn btn-primary">
-          <input type="radio" name="options" id="option2" autocomplete="off"> Radio 2
-        </label>
-        <label class="btn btn-primary">
-          <input type="radio" name="options" id="option3" autocomplete="off"> Radio 3
-        </label>
-      </div>
-    </div>
-
-    <script src="../../../assets/js/vendor/jquery-slim.min.js"></script>
-    <script src="../../dist/util.js"></script>
-    <script src="../../dist/button.js"></script>
-  </body>
-</html>
diff --git a/assets/javascript/tests/visual/carousel.html b/assets/javascript/tests/visual/carousel.html
deleted file mode 100755
index 5bdd616..0000000
--- a/assets/javascript/tests/visual/carousel.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!doctype html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-    <link rel="stylesheet" href="../../../dist/css/bootstrap.min.css">
-    <title>Carousel</title>
-  </head>
-  <body>
-    <div class="container">
-      <h1>Carousel <small>Bootstrap Visual Test</small></h1>
-
-      <p>Also, the carousel shouldn't slide when its window/tab is hidden. Check the console log.</p>
-
-      <div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
-        <ol class="carousel-indicators">
-          <li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
-          <li data-target="#carousel-example-generic" data-slide-to="1"></li>
-          <li data-target="#carousel-example-generic" data-slide-to="2"></li>
-        </ol>
-        <div class="carousel-inner">
-          <div class="carousel-item active">
-            <img src="https://i.imgur.com/iEZgY7Y.jpg" alt="First slide">
-          </div>
-          <div class="carousel-item">
-            <img src="https://i.imgur.com/eNWn1Xs.jpg" alt="Second slide">
-          </div>
-          <div class="carousel-item">
-            <img src="https://i.imgur.com/Nm7xoti.jpg" alt="Third slide">
-          </div>
-        </div>
-        <a class="carousel-control-prev" href="#carousel-example-generic" role="button" data-slide="prev">
-          <span class="carousel-control-prev-icon" aria-hidden="true"></span>
-          <span class="sr-only">Previous</span>
-        </a>
-        <a class="carousel-control-next" href="#carousel-example-generic" role="button" data-slide="next">
-          <span class="carousel-control-next-icon" aria-hidden="true"></span>
-          <span class="sr-only">Next</span>
-        </a>
-      </div>
-    </div>
-
-    <script src="../../../assets/js/vendor/jquery-slim.min.js"></script>
-    <script src="../../dist/util.js"></script>
-    <script src="../../dist/carousel.js"></script>
-
-    <script>
-      $(function() {
-        // Test to show that the carousel doesn't slide when the current tab isn't visible
-        $('#carousel-example-generic').on('slid.bs.carousel', function(event) {
-          console.log('slid at ', event.timeStamp)
-        })
-      })
-    </script>
-  </body>
-</html>
diff --git a/assets/javascript/tests/visual/collapse.html b/assets/javascript/tests/visual/collapse.html
deleted file mode 100755
index 0c19def..0000000
--- a/assets/javascript/tests/visual/collapse.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<!doctype html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-    <link rel="stylesheet" href="../../../dist/css/bootstrap.min.css">
-    <title>Collapse</title>
-  </head>
-  <body>
-    <div class="container">
-      <h1>Collapse <small>Bootstrap Visual Test</small></h1>
-
-      <div id="accordion" role="tablist">
-        <div class="card">
-          <div class="card-header" role="tab" id="headingOne">
-            <h5 class="mb-0">
-              <a data-toggle="collapse" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
-                Collapsible Group Item #1
-              </a>
-            </h5>
-          </div>
-
-          <div id="collapseOne" class="collapse show" data-parent="#accordion" role="tabpanel" aria-labelledby="headingOne">
-            <div class="card-body">
-              Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
-            </div>
-          </div>
-        </div>
-        <div class="card">
-          <div class="card-header" role="tab" id="headingTwo">
-            <h5 class="mb-0">
-              <a class="collapsed" data-toggle="collapse" href="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
-                Collapsible Group Item #2
-              </a>
-            </h5>
-          </div>
-          <div id="collapseTwo" class="collapse" data-parent="#accordion" role="tabpanel" aria-labelledby="headingTwo">
-            <div class="card-body">
-              Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
-            </div>
-          </div>
-        </div>
-        <div class="card">
-          <div class="card-header" role="tab" id="headingThree">
-            <h5 class="mb-0">
-              <a class="collapsed" data-toggle="collapse" href="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
-                Collapsible Group Item #3
-              </a>
-            </h5>
-          </div>
-          <div id="collapseThree" class="collapse" data-parent="#accordion" role="tabpanel" aria-labelledby="headingThree">
-            <div class="card-body">
-              Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
-            </div>
-          </div>
-        </div>
-      </div>
-    </div>
-
-    <script src="../../../assets/js/vendor/jquery-slim.min.js"></script>
-    <script src="../../dist/util.js"></script>
-    <script src="../../dist/collapse.js"></script>
-  </body>
-</html>
diff --git a/assets/javascript/tests/visual/dropdown.html b/assets/javascript/tests/visual/dropdown.html
deleted file mode 100755
index bb0fc6e..0000000
--- a/assets/javascript/tests/visual/dropdown.html
+++ /dev/null
@@ -1,126 +0,0 @@
-<!doctype html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-    <link rel="stylesheet" href="../../../dist/css/bootstrap.min.css">
-    <title>Dropdown</title>
-  </head>
-  <body>
-    <div class="container">
-      <h1>Dropdown <small>Bootstrap Visual Test</small></h1>
-
-      <nav class="navbar navbar-expand-md navbar-light bg-light">
-        <a class="navbar-brand" href="#">Navbar</a>
-        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
-          <span class="navbar-toggler-icon"></span>
-        </button>
-
-        <div class="collapse navbar-collapse" id="navbarResponsive">
-          <ul class="navbar-nav">
-            <li class="nav-item active">
-              <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
-            </li>
-            <li class="nav-item">
-              <a class="nav-link" href="#">Link</a>
-            </li>
-            <li class="nav-item">
-              <a class="nav-link" href="#">Link</a>
-            </li>
-            <li class="nav-item dropdown">
-              <a class="nav-link dropdown-toggle" href="#" id="dropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a>
-              <div class="dropdown-menu" aria-labelledby="dropdown">
-                <a class="dropdown-item" href="#">Action</a>
-                <a class="dropdown-item" href="#">Another action</a>
-                <a class="dropdown-item" href="#">Something else here</a>
-              </div>
-            </li>
-          </ul>
-        </div>
-      </nav>
-
-      <ul class="nav nav-pills mt-3">
-        <li class="nav-item">
-          <a class="nav-link active" href="#">Active</a>
-        </li>
-        <li class="nav-item">
-          <a class="nav-link" href="#">Link</a>
-        </li>
-        <li class="nav-item">
-          <a class="nav-link" href="#">Link</a>
-        </li>
-        <li class="nav-item dropdown">
-          <a class="nav-link dropdown-toggle" href="http://example.com" id="dropdown2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a>
-          <div class="dropdown-menu" aria-labelledby="dropdown2">
-            <a class="dropdown-item" href="#">Action</a>
-            <a class="dropdown-item" href="#">Another action</a>
-            <a class="dropdown-item" href="#">Something else here</a>
-          </div>
-        </li>
-      </ul>
-
-      <div class="row">
-        <div class="col-sm-12 mt-4">
-          <div class="btn-group dropup">
-            <button type="button" class="btn btn-secondary">Dropup split</button>
-            <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-              <span class="sr-only">Dropup split</span>
-            </button>
-            <div class="dropdown-menu">
-              <a class="dropdown-item" href="#">Action</a>
-              <a class="dropdown-item" href="#">Another action</a>
-              <a class="dropdown-item" href="#">Something else here</a>
-            </div>
-          </div>
-
-          <div class="btn-group dropup">
-            <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropup</button>
-            <div class="dropdown-menu">
-              <a class="dropdown-item" href="#">Action</a>
-              <a class="dropdown-item" href="#">Another action</a>
-              <a class="dropdown-item" href="#">Something else here</a>
-            </div>
-          </div>
-
-          <div class="btn-group">
-            <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-              This dropdown's menu is right-aligned
-            </button>
-            <div class="dropdown-menu dropdown-menu-right">
-              <button class="dropdown-item" type="button">Action</button>
-              <button class="dropdown-item" type="button">Another action</button>
-              <button class="dropdown-item" type="button">Something else here</button>
-            </div>
-          </div>
-        </div>
-        <div class="col-sm-12 mt-4">
-          <div class="btn-group dropup" role="group">
-            <a href="#" class="btn btn-secondary">Dropup split align right</a>
-            <button type="button" id="dropdown-page-subheader-button-3" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-              <span class="sr-only">Product actions</span>
-            </button>
-            <div class="dropdown-menu dropdown-menu-right">
-              <button class="dropdown-item" type="button">Action</button>
-              <button class="dropdown-item" type="button">Another action</button>
-              <button class="dropdown-item" type="button">Something else here with a long text</button>
-            </div>
-          </div>
-          <div class="btn-group dropup">
-            <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropup align right</button>
-            <div class="dropdown-menu dropdown-menu-right">
-              <button class="dropdown-item" type="button">Action</button>
-              <button class="dropdown-item" type="button">Another action</button>
-              <button class="dropdown-item" type="button">Something else here with a long text</button>
-            </div>
-          </div>
-        </div>
-        </div>
-      </div>
-
-    <script src="../../../assets/js/vendor/jquery-slim.min.js"></script>
-    <script src="../../../assets/js/vendor/popper.min.js"></script>
-    <script src="../../dist/util.js"></script>
-    <script src="../../dist/dropdown.js"></script>
-    <script src="../../dist/collapse.js"></script>
-  </body>
-</html>
diff --git a/assets/javascript/tests/visual/modal.html b/assets/javascript/tests/visual/modal.html
deleted file mode 100755
index fcc9603..0000000
--- a/assets/javascript/tests/visual/modal.html
+++ /dev/null
@@ -1,231 +0,0 @@
-<!doctype html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-    <link rel="stylesheet" href="../../../dist/css/bootstrap.min.css">
-    <title>Modal</title>
-    <style>
-      #tall {
-        height: 1500px;
-        width: 100px;
-      }
-    </style>
-  </head>
-  <body>
-    <nav class="navbar navbar-full navbar-dark bg-dark">
-      <button class="navbar-toggler hidden-lg-up" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation"></button>
-      <div class="collapse navbar-expand-md" id="navbarResponsive">
-        <a class="navbar-brand" href="#">This shouldn't jump!</a>
-        <ul class="navbar-nav">
-          <li class="nav-item active">
-            <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
-          </li>
-          <li class="nav-item">
-            <a class="nav-link" href="#">Link</a>
-          </li>
-          <li class="nav-item">
-            <a class="nav-link" href="#">Link</a>
-          </li>
-        </ul>
-      </div>
-    </nav>
-
-    <div class="container mt-3">
-      <h1>Modal <small>Bootstrap Visual Test</small></h1>
-
-      <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
-        <div class="modal-dialog" role="document">
-          <div class="modal-content">
-            <div class="modal-header">
-              <button type="button" class="close" data-dismiss="modal" aria-label="Close">
-                <span aria-hidden="true">×</span>
-              </button>
-              <h4 class="modal-title" id="myModalLabel">Modal title</h4>
-            </div>
-            <div class="modal-body">
-              <h4>Text in a modal</h4>
-              <p>Duis mollis, est non commodo luctus, nisi erat porttitor ligula.</p>
-
-              <h4>Popover in a modal</h4>
-              <p>This <button type="button" class="btn btn-primary" data-toggle="popover" data-placement="left" title="Popover title" data-content="And here's some amazing content. It's very engaging. Right?">button</button> should trigger a popover on click.</p>
-
-
-              <h4>Tooltips in a modal</h4>
-              <p><a href="#" data-toggle="tooltip" data-placement="top" title="Tooltip on top">This link</a> and <a href="#" data-toggle="tooltip" data-placement="bottom" title="Tooltip on bottom">that link</a> should have tooltips on hover.</p>
-
-              <div id="accordion" role="tablist">
-                <div class="card">
-                  <div class="card-header" role="tab" id="headingOne">
-                    <h5 class="mb-0">
-                      <a data-toggle="collapse" data-parent="#accordion" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
-                        Collapsible Group Item #1
-                      </a>
-                    </h5>
-                  </div>
-
-                  <div id="collapseOne" class="collapse show" role="tabpanel" aria-labelledby="headingOne">
-                    <div class="card-body">
-                      Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
-                    </div>
-                  </div>
-                </div>
-                <div class="card">
-                  <div class="card-header" role="tab" id="headingTwo">
-                    <h5 class="mb-0">
-                      <a class="collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
-                        Collapsible Group Item #2
-                      </a>
-                    </h5>
-                  </div>
-                  <div id="collapseTwo" class="collapse" role="tabpanel" aria-labelledby="headingTwo">
-                    <div class="card-body">
-                      Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
-                    </div>
-                  </div>
-                </div>
-                <div class="card">
-                  <div class="card-header" role="tab" id="headingThree">
-                    <h5 class="mb-0">
-                      <a class="collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
-                        Collapsible Group Item #3
-                      </a>
-                    </h5>
-                  </div>
-                  <div id="collapseThree" class="collapse" role="tabpanel" aria-labelledby="headingThree">
-                    <div class="card-body">
-                      Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
-                    </div>
-                  </div>
-                </div>
-              </div>
-
-              <hr>
-
-              <h4>Overflowing text to show scroll behavior</h4>
-              <p>Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
-              <p>Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.</p>
-              <p>Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.</p>
-              <p>Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
-              <p>Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.</p>
-              <p>Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.</p>
-              <p>Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
-              <p>Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.</p>
-              <p>Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.</p>
-            </div>
-            <div class="modal-footer">
-              <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
-              <button type="button" class="btn btn-primary">Save changes</button>
-            </div>
-          </div>
-        </div>
-      </div>
-
-      <div class="modal fade" id="firefoxModal" tabindex="-1" role="dialog" aria-labelledby="firefoxModalLabel" aria-hidden="true">
-        <div class="modal-dialog" role="document">
-          <div class="modal-content">
-            <div class="modal-header">
-              <button type="button" class="close" data-dismiss="modal" aria-label="Close">
-                <span aria-hidden="true">×</span>
-              </button>
-              <h4 class="modal-title" id="firefoxModalLabel">Firefox Bug Test</h4>
-            </div>
-            <div class="modal-body">
-              <ol>
-                <li>Ensure you're using Firefox.</li>
-                <li>Open a new tab and then switch back to this tab.</li>
-                <li>Click into this input: <input type="text" id="ff-bug-input"></li>
-                <li>Switch to the other tab and then back to this tab.</li>
-              </ol>
-              <p>Test result: <strong id="ff-bug-test-result"></strong></p>
-            </div>
-            <div class="modal-footer">
-              <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
-              <button type="button" class="btn btn-primary">Save changes</button>
-            </div>
-          </div>
-        </div>
-      </div>
-
-      <button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
-        Launch demo modal
-      </button>
-
-      <button type="button" class="btn btn-primary btn-lg" id="tall-toggle">
-        Toggle tall <body> content
-      </button>
-
-      <br><br>
-
-      <button type="button" class="btn btn-secondary btn-lg" data-toggle="modal" data-target="#firefoxModal">
-        Launch Firefox bug test modal
-      </button>
-      (<a href="https://github.com/twbs/bootstrap/issues/18365">See Issue #18365</a>)
-
-      <br><br>
-
-      <div class="bg-dark text-white p-2" id="tall" style="display: none;">
-        Tall body content to force the page to have a scrollbar.
-      </div>
-
-      <button type="button" class="btn btn-secondary btn-lg" data-toggle="modal" data-target="&#x3C;div class=&#x22;modal fade the-bad&#x22; tabindex=&#x22;-1&#x22; role=&#x22;dialog&#x22;&#x3E;&#x3C;div class=&#x22;modal-dialog&#x22; role=&#x22;document&#x22;&#x3E;&#x3C;div class=&#x22;modal-content&#x22;&#x3E;&#x3C;div class=&#x22;modal-header&#x22;&#x3E;&#x3C;button type=&#x22;button&#x22; class=&#x22;close&#x22; data-dismiss=&#x22;modal&#x22; aria-label=&#x22;Close&#x22;&#x3E;&#x3C;span aria-hidden=&#x22;true&#x22;&#x3E;&#x26;times;&#x3C;/span&#x3E;&#x3C;/button&#x3E;&#x3C;h4 class=&#x22;modal-title&#x22;&#x3E;The Bad Modal&#x3C;/h4&#x3E;&#x3C;/div&#x3E;&#x3C;div class=&#x22;modal-body&#x22;&#x3E;This modal&#x27;s HTTML source code is declared inline, inside the data-target attribute of it&#x27;s show-button&#x3C;/div&#x3E;&#x3C;/div&#x3E;&#x3C;/div&#x3E;&#x3C;/div&#x3E;">
-        Modal with an XSS inside the data-target
-      </button>
-
-      <br><br>
-
-      <button type="button" class="btn btn-secondary btn-lg" id="btnPreventModal">
-        Launch prevented modal on hide (to see the result open your console)
-      </button>
-    </div>
-
-    <script src="../../../assets/js/vendor/jquery-slim.min.js"></script>
-    <script src="../../../assets/js/vendor/popper.min.js"></script>
-    <script src="../../dist/util.js"></script>
-    <script src="../../dist/modal.js"></script>
-    <script src="../../dist/collapse.js"></script>
-    <script src="../../dist/tooltip.js"></script>
-    <script src="../../dist/popover.js"></script>
-
-    <script>
-      var firefoxTestDone = false
-      function reportFirefoxTestResult(result) {
-        if (!firefoxTestDone) {
-          $('#ff-bug-test-result')
-            .addClass(result ? 'text-success' : 'text-danger')
-            .text(result ? 'PASS' : 'FAIL')
-        }
-      }
-
-      $(function () {
-        $('[data-toggle="popover"]').popover()
-        $('[data-toggle="tooltip"]').tooltip()
-
-        $('#tall-toggle').click(function () {
-          $('#tall').toggle()
-        })
-
-        $('#ff-bug-input').one('focus', function () {
-          $('#firefoxModal').on('focus', reportFirefoxTestResult.bind(false))
-          $('#ff-bug-input').on('focus', reportFirefoxTestResult.bind(true))
-        })
-
-        $('#btnPreventModal').on('click', function () {
-          $('#firefoxModal').one('shown.bs.modal', function () {
-            $(this).modal('hide')
-          })
-          .one('hide.bs.modal', function (event) {
-            event.preventDefault()
-            if ($(this).data('bs.modal')._isTransitioning) {
-              console.error('Modal plugin should not set _isTransitioning when hide event is prevented')
-            } else {
-              console.log('Test passed')
-              $(this).modal('hide') // work as expected
-            }
-          })
-          .modal('show')
-        })
-      })
-    </script>
-  </body>
-</html>
diff --git a/assets/javascript/tests/visual/popover.html b/assets/javascript/tests/visual/popover.html
deleted file mode 100755
index d979d96..0000000
--- a/assets/javascript/tests/visual/popover.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!doctype html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-    <link rel="stylesheet" href="../../../dist/css/bootstrap.min.css">
-    <title>Popover</title>
-  </head>
-  <body>
-    <div class="container">
-      <h1>Popover <small>Bootstrap Visual Test</small></h1>
-
-      <button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="auto" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
-        Popover on auto
-      </button>
-
-      <button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="top" data-content="Default placement was on top but not enough place">
-        Popover on top
-      </button>
-
-      <button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="right" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
-        Popover on right
-      </button>
-
-      <button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="bottom" data-content="Vivamus
-      sagittis lacus vel augue laoreet rutrum faucibus.">
-        Popover on bottom
-      </button>
-
-      <button type="button" class="btn btn-secondary" data-container="body" data-toggle="popover" data-placement="left" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
-        Popover on left
-      </button>
-    </div>
-
-    <script src="../../../assets/js/vendor/jquery-slim.min.js"></script>
-    <script src="../../../assets/js/vendor/popper.min.js"></script>
-    <script src="../../dist/util.js"></script>
-    <script src="../../dist/tooltip.js"></script>
-    <script src="../../dist/popover.js"></script>
-
-    <script>
-      $(function () {
-        $('[data-toggle="popover"]').popover()
-      })
-    </script>
-  </body>
-</html>
diff --git a/assets/javascript/tests/visual/scrollspy.html b/assets/javascript/tests/visual/scrollspy.html
deleted file mode 100755
index cfa31ce..0000000
--- a/assets/javascript/tests/visual/scrollspy.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<!doctype html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-    <link rel="stylesheet" href="../../../dist/css/bootstrap.min.css">
-    <title>Scrollspy</title>
-    <style>
-      body { padding-top: 70px; }
-    </style>
-  </head>
-  <body data-spy="scroll" data-target=".navbar" data-offset="70">
-    <nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top">
-      <a class="navbar-brand" href="#">Scrollspy test</a>
-      <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
-        <span class="navbar-toggler-icon"></span>
-      </button>
-      <div class="navbar-collapse collapse" id="navbarSupportedContent">
-        <ul class="navbar-nav mr-auto">
-          <li class="nav-item">
-            <a class="nav-link" href="#fat">@fat</a>
-          </li>
-          <li class="nav-item">
-            <a class="nav-link" href="#mdo">@mdo</a>
-          </li>
-          <li class="nav-item dropdown">
-            <a class="nav-link dropdown-toggle" href="#" id="dropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a>
-            <div class="dropdown-menu" aria-labelledby="dropdown">
-              <a class="dropdown-item" href="#one">One</a>
-              <a class="dropdown-item" href="#two">Two</a>
-              <a class="dropdown-item" href="#three">Three</a>
-            </div>
-          </li>
-          <li class="nav-item">
-            <a class="nav-link" href="#final">Final</a>
-          </li>
-        </ul>
-      </div>
-    </nav>
-    <div class="container">
-      <h2 id="fat">@fat</h2>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <hr>
-      <h2 id="mdo">@mdo</h2>
-      <p>Veniam marfa mustache skateboard, adipisicing fugiat velit pitchfork beard. Freegan beard aliqua cupidatat mcsweeney's vero. Cupidatat four loko nisi, ea helvetica nulla carles. Tattooed cosby sweater food truck, mcsweeney's quis non freegan vinyl. Lo-fi wes anderson +1 sartorial. Carles non aesthetic exercitation quis gentrify. Brooklyn adipisicing craft beer vice keytar deserunt.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <hr>
-      <h2 id="one">one</h2>
-      <p>Occaecat commodo aliqua delectus. Fap craft beer deserunt skateboard ea. Lomo bicycle rights adipisicing banh mi, velit ea sunt next level locavore single-origin coffee in magna veniam. High life id vinyl, echo park consequat quis aliquip banh mi pitchfork. Vero VHS est adipisicing. Consectetur nisi DIY minim messenger bag. Cred ex in, sustainable delectus consectetur fanny pack iphone.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <hr>
-      <h2 id="two">two</h2>
-      <p>In incididunt echo park, officia deserunt mcsweeney's proident master cleanse thundercats sapiente veniam. Excepteur VHS elit, proident shoreditch +1 biodiesel laborum craft beer. Single-origin coffee wayfarers irure four loko, cupidatat terry richardson master cleanse. Assumenda you probably haven't heard of them art party fanny pack, tattooed nulla cardigan tempor ad. Proident wolf nesciunt sartorial keffiyeh eu banh mi sustainable. Elit wolf voluptate, lo-fi ea portland before they sold out four loko. Locavore enim nostrud mlkshk brooklyn nesciunt.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <hr>
-      <h2 id="three">three</h2>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <p>Keytar twee blog, culpa messenger bag marfa whatever delectus food truck. Sapiente synth id assumenda. Locavore sed helvetica cliche irony, thundercats you probably haven't heard of them consequat hoodie gluten-free lo-fi fap aliquip. Labore elit placeat before they sold out, terry richardson proident brunch nesciunt quis cosby sweater pariatur keffiyeh ut helvetica artisan. Cardigan craft beer seitan readymade velit. VHS chambray laboris tempor veniam. Anim mollit minim commodo ullamco thundercats.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <p>Ad leggings keytar, brunch id art party dolor labore. Pitchfork yr enim lo-fi before they sold out qui. Tumblr farm-to-table bicycle rights whatever. Anim keffiyeh carles cardigan. Velit seitan mcsweeney's photo booth 3 wolf moon irure. Cosby sweater lomo jean shorts, williamsburg hoodie minim qui you probably haven't heard of them et cardigan trust fund culpa biodiesel wes anderson aesthetic. Nihil tattooed accusamus, cred irony biodiesel keffiyeh artisan ullamco consequat.</p>
-      <hr>
-      <h2 id="final">Final section</h2>
-      <p>Ad leggings keytar, brunch id art party dolor labore.</p>
-    </div>
-
-    <script src="../../../assets/js/vendor/jquery-slim.min.js"></script>
-    <script src="../../../assets/js/vendor/popper.min.js"></script>
-    <script src="../../dist/util.js"></script>
-    <script src="../../dist/scrollspy.js"></script>
-    <script src="../../dist/dropdown.js"></script>
-    <script src="../../dist/collapse.js"></script>
-  </body>
-</html>
diff --git a/assets/javascript/tests/visual/tab.html b/assets/javascript/tests/visual/tab.html
deleted file mode 100755
index defb577..0000000
--- a/assets/javascript/tests/visual/tab.html
+++ /dev/null
@@ -1,233 +0,0 @@
-<!doctype html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-    <link rel="stylesheet" href="../../../dist/css/bootstrap.min.css">
-    <title>Tab</title>
-    <style>
-      h4 {
-        margin: 40px 0 10px;
-      }
-    </style>
-  </head>
-  <body>
-    <div class="container">
-      <h1>Tab <small>Bootstrap Visual Test</small></h1>
-
-      <h4>Tabs without fade</h4>
-
-      <ul class="nav nav-tabs" role="tablist">
-        <li class="nav-item">
-          <a class="nav-link active" data-toggle="tab" href="#home" role="tab">Home</a>
-        </li>
-        <li class="nav-item">
-          <a class="nav-link" data-toggle="tab" href="#profile" role="tab">Profile</a>
-        </li>
-        <li class="nav-item dropdown">
-          <a class="nav-link dropdown-toggle" href="#" id="dropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a>
-          <div class="dropdown-menu" aria-labelledby="dropdown">
-            <a class="dropdown-item" data-toggle="tab" href="#fat" role="tab">@fat</a>
-            <a class="dropdown-item" data-toggle="tab" href="#mdo" role="tab">@mdo</a>
-          </div>
-        </li>
-      </ul>
-
-      <div class="tab-content" role="tablist">
-        <div class="tab-pane active" id="home" role="tabpanel">
-          <p>Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.</p>
-          <p>Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.</p>
-        </div>
-        <div class="tab-pane" id="profile" role="tabpanel">
-          <p>Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.</p>
-          <p>Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.</p>
-        </div>
-        <div class="tab-pane" id="fat" role="tabpanel">
-          <p>Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.</p>
-          <p>Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.</p>
-        </div>
-        <div class="tab-pane" id="mdo" role="tabpanel">
-          <p>Trust fund seitan letterpress, keytar raw denim keffiyeh etsy art party before they sold out master cleanse gluten-free squid scenester freegan cosby sweater. Fanny pack portland seitan DIY, art party locavore wolf cliche high life echo park Austin. Cred vinyl keffiyeh DIY salvia PBR, banh mi before they sold out farm-to-table VHS viral locavore cosby sweater. Lomo wolf viral, mustache readymade thundercats keffiyeh craft beer marfa ethical. Wolf salvia freegan, sartorial keffiyeh echo park vegan.</p>
-          <p>Trust fund seitan letterpress, keytar raw denim keffiyeh etsy art party before they sold out master cleanse gluten-free squid scenester freegan cosby sweater. Fanny pack portland seitan DIY, art party locavore wolf cliche high life echo park Austin. Cred vinyl keffiyeh DIY salvia PBR, banh mi before they sold out farm-to-table VHS viral locavore cosby sweater. Lomo wolf viral, mustache readymade thundercats keffiyeh craft beer marfa ethical. Wolf salvia freegan, sartorial keffiyeh echo park vegan.</p>
-        </div>
-      </div>
-
-      <h4>Tabs with fade</h4>
-
-      <ul class="nav nav-tabs" role="tablist">
-        <li class="nav-item">
-          <a class="nav-link active" data-toggle="tab" href="#home2" role="tab">Home</a>
-        </li>
-        <li class="nav-item">
-          <a class="nav-link" data-toggle="tab" href="#profile2" role="tab">Profile</a>
-        </li>
-        <li class="nav-item dropdown">
-          <a class="nav-link dropdown-toggle" href="#" id="dropdown2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a>
-          <div class="dropdown-menu" aria-labelledby="dropdown2">
-            <a class="dropdown-item" data-toggle="tab" href="#fat2" role="tab">@fat</a>
-            <a class="dropdown-item" data-toggle="tab" href="#mdo2" role="tab">@mdo</a>
-          </div>
-        </li>
-      </ul>
-
-      <div class="tab-content" role="tablist">
-        <div class="tab-pane fade show active" id="home2" role="tabpanel">
-          <p>Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.</p>
-          <p>Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.</p>
-        </div>
-        <div class="tab-pane fade" id="profile2" role="tabpanel">
-          <p>Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.</p>
-          <p>Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.</p>
-        </div>
-        <div class="tab-pane fade" id="fat2" role="tabpanel">
-          <p>Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.</p>
-          <p>Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.</p>
-        </div>
-        <div class="tab-pane fade" id="mdo2" role="tabpanel">
-          <p>Trust fund seitan letterpress, keytar raw denim keffiyeh etsy art party before they sold out master cleanse gluten-free squid scenester freegan cosby sweater. Fanny pack portland seitan DIY, art party locavore wolf cliche high life echo park Austin. Cred vinyl keffiyeh DIY salvia PBR, banh mi before they sold out farm-to-table VHS viral locavore cosby sweater. Lomo wolf viral, mustache readymade thundercats keffiyeh craft beer marfa ethical. Wolf salvia freegan, sartorial keffiyeh echo park vegan.</p>
-          <p>Trust fund seitan letterpress, keytar raw denim keffiyeh etsy art party before they sold out master cleanse gluten-free squid scenester freegan cosby sweater. Fanny pack portland seitan DIY, art party locavore wolf cliche high life echo park Austin. Cred vinyl keffiyeh DIY salvia PBR, banh mi before they sold out farm-to-table VHS viral locavore cosby sweater. Lomo wolf viral, mustache readymade thundercats keffiyeh craft beer marfa ethical. Wolf salvia freegan, sartorial keffiyeh echo park vegan.</p>
-        </div>
-      </div>
-
-      <h4>Tabs without fade (no initially active pane)</h4>
-
-      <ul class="nav nav-tabs" role="tablist">
-        <li class="nav-item">
-          <a class="nav-link" data-toggle="tab" href="#home3" role="tab">Home</a>
-        </li>
-        <li class="nav-item">
-          <a class="nav-link" data-toggle="tab" href="#profile3" role="tab">Profile</a>
-        </li>
-        <li class="nav-item dropdown">
-          <a class="nav-link dropdown-toggle" href="#" id="dropdown3" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a>
-          <div class="dropdown-menu" aria-labelledby="dropdown3">
-            <a class="dropdown-item" data-toggle="tab" href="#fat3" role="tab">@fat</a>
-            <a class="dropdown-item" data-toggle="tab" href="#mdo3" role="tab">@mdo</a>
-          </div>
-        </li>
-      </ul>
-
-      <div class="tab-content" role="tablist">
-        <div class="tab-pane" id="home3" role="tabpanel">
-          <p>Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.</p>
-          <p>Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.</p>
-        </div>
-        <div class="tab-pane" id="profile3" role="tabpanel">
-          <p>Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.</p>
-          <p>Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.</p>
-        </div>
-        <div class="tab-pane" id="fat3" role="tabpanel">
-          <p>Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.</p>
-          <p>Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.</p>
-        </div>
-        <div class="tab-pane" id="mdo3" role="tabpanel">
-          <p>Trust fund seitan letterpress, keytar raw denim keffiyeh etsy art party before they sold out master cleanse gluten-free squid scenester freegan cosby sweater. Fanny pack portland seitan DIY, art party locavore wolf cliche high life echo park Austin. Cred vinyl keffiyeh DIY salvia PBR, banh mi before they sold out farm-to-table VHS viral locavore cosby sweater. Lomo wolf viral, mustache readymade thundercats keffiyeh craft beer marfa ethical. Wolf salvia freegan, sartorial keffiyeh echo park vegan.</p>
-          <p>Trust fund seitan letterpress, keytar raw denim keffiyeh etsy art party before they sold out master cleanse gluten-free squid scenester freegan cosby sweater. Fanny pack portland seitan DIY, art party locavore wolf cliche high life echo park Austin. Cred vinyl keffiyeh DIY salvia PBR, banh mi before they sold out farm-to-table VHS viral locavore cosby sweater. Lomo wolf viral, mustache readymade thundercats keffiyeh craft beer marfa ethical. Wolf salvia freegan, sartorial keffiyeh echo park vegan.</p>
-        </div>
-      </div>
-
-      <h4>Tabs with fade (no initially active pane)</h4>
-
-      <ul class="nav nav-tabs" role="tablist">
-        <li class="nav-item">
-          <a class="nav-link" data-toggle="tab" href="#home4" role="tab">Home</a>
-        </li>
-        <li class="nav-item">
-          <a class="nav-link" data-toggle="tab" href="#profile4" role="tab">Profile</a>
-        </li>
-        <li class="nav-item dropdown">
-          <a class="nav-link dropdown-toggle" href="#" id="dropdown4" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a>
-          <div class="dropdown-menu" aria-labelledby="dropdown4">
-            <a class="dropdown-item" data-toggle="tab" href="#fat4" role="tab">@fat</a>
-            <a class="dropdown-item" data-toggle="tab" href="#mdo4" role="tab">@mdo</a>
-          </div>
-        </li>
-      </ul>
-
-      <div class="tab-content">
-        <div class="tab-pane fade" id="home4" role="tabpanel">
-          <p>Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.</p>
-          <p>Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.</p>
-        </div>
-        <div class="tab-pane fade" id="profile4" role="tabpanel">
-          <p>Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.</p>
-          <p>Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.</p>
-        </div>
-        <div class="tab-pane fade" id="fat4" role="tabpanel">
-          <p>Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.</p>
-          <p>Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.</p>
-        </div>
-        <div class="tab-pane fade" id="mdo4" role="tabpanel">
-          <p>Trust fund seitan letterpress, keytar raw denim keffiyeh etsy art party before they sold out master cleanse gluten-free squid scenester freegan cosby sweater. Fanny pack portland seitan DIY, art party locavore wolf cliche high life echo park Austin. Cred vinyl keffiyeh DIY salvia PBR, banh mi before they sold out farm-to-table VHS viral locavore cosby sweater. Lomo wolf viral, mustache readymade thundercats keffiyeh craft beer marfa ethical. Wolf salvia freegan, sartorial keffiyeh echo park vegan.</p>
-          <p>Trust fund seitan letterpress, keytar raw denim keffiyeh etsy art party before they sold out master cleanse gluten-free squid scenester freegan cosby sweater. Fanny pack portland seitan DIY, art party locavore wolf cliche high life echo park Austin. Cred vinyl keffiyeh DIY salvia PBR, banh mi before they sold out farm-to-table VHS viral locavore cosby sweater. Lomo wolf viral, mustache readymade thundercats keffiyeh craft beer marfa ethical. Wolf salvia freegan, sartorial keffiyeh echo park vegan.</p>
-        </div>
-      </div>
-
-      <h4>Tabs with nav (with fade)</h4>
-      <nav class="nav nav-pills">
-        <a class="nav-link nav-item active" data-toggle="tab" href="#home5">Home</a>
-        <a class="nav-link nav-item" data-toggle="tab" href="#profile5">Profile</a>
-        <div class="nav-item dropdown">
-          <a class="nav-link dropdown-toggle" href="#" id="dropdown5" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a>
-          <div class="dropdown-menu" aria-labelledby="dropdown5">
-            <a class="dropdown-item" data-toggle="tab" href="#fat5">@fat</a>
-            <a class="dropdown-item" data-toggle="tab" href="#mdo5">@mdo</a>
-          </div>
-        </div>
-        <a class="nav-link nav-item disabled" href="#">Disabled</a>
-      </nav>
-
-      <div class="tab-content" role="tabpanel">
-        <div role="tabpanel" class="tab-pane fade show active" id="home5">
-          <p>Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.</p>
-          <p>Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.</p>
-        </div>
-        <div role="tabpanel" class="tab-pane fade" id="profile5">
-          <p>Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.</p>
-          <p>Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.</p>
-        </div>
-        <div class="tab-pane fade" id="fat5" role="tabpanel">
-          <p>Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.</p>
-          <p>Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.</p>
-        </div>
-        <div class="tab-pane fade" id="mdo5" role="tabpanel">
-          <p>Trust fund seitan letterpress, keytar raw denim keffiyeh etsy art party before they sold out master cleanse gluten-free squid scenester freegan cosby sweater. Fanny pack portland seitan DIY, art party locavore wolf cliche high life echo park Austin. Cred vinyl keffiyeh DIY salvia PBR, banh mi before they sold out farm-to-table VHS viral locavore cosby sweater. Lomo wolf viral, mustache readymade thundercats keffiyeh craft beer marfa ethical. Wolf salvia freegan, sartorial keffiyeh echo park vegan.</p>
-          <p>Trust fund seitan letterpress, keytar raw denim keffiyeh etsy art party before they sold out master cleanse gluten-free squid scenester freegan cosby sweater. Fanny pack portland seitan DIY, art party locavore wolf cliche high life echo park Austin. Cred vinyl keffiyeh DIY salvia PBR, banh mi before they sold out farm-to-table VHS viral locavore cosby sweater. Lomo wolf viral, mustache readymade thundercats keffiyeh craft beer marfa ethical. Wolf salvia freegan, sartorial keffiyeh echo park vegan.</p>
-        </div>
-      </div>
-
-      <h4>Tabs with list-group (with fade)</h4>
-      <div class="row">
-        <div class="col-4">
-          <div class="list-group" id="list-tab" role="tablist">
-            <a class="list-group-item list-group-item-action active" id="list-home-list" data-toggle="tab" href="#list-home" role="tab" aria-controls="list-home">Home</a>
-            <a class="list-group-item list-group-item-action" id="list-profile-list" data-toggle="tab" href="#list-profile" role="tab" aria-controls="list-profile">Profile</a>
-            <a class="list-group-item list-group-item-action" id="list-messages-list" data-toggle="tab" href="#list-messages" role="tab" aria-controls="list-messages">Messages</a>
-            <a class="list-group-item list-group-item-action" id="list-settings-list" data-toggle="tab" href="#list-settings" role="tab" aria-controls="list-settings">Settings</a>
-          </div>
-        </div>
-        <div class="col-8">
-          <div class="tab-content" id="nav-tabContent">
-            <div class="tab-pane fade show active" id="list-home" role="tabpanel" aria-labelledby="list-home-list">
-              <p>Velit aute mollit ipsum ad dolor consectetur nulla officia culpa adipisicing exercitation fugiat tempor. Voluptate deserunt sit sunt nisi aliqua fugiat proident ea ut. Mollit voluptate reprehenderit occaecat nisi ad non minim tempor sunt voluptate consectetur exercitation id ut nulla. Ea et fugiat aliquip nostrud sunt incididunt consectetur culpa aliquip eiusmod dolor. Anim ad Lorem aliqua in cupidatat nisi enim eu nostrud do aliquip veniam minim.</p>
-            </div>
-            <div class="tab-pane fade" id="list-profile" role="tabpanel" aria-labelledby="list-profile-list">
-              <p>Cupidatat quis ad sint excepteur laborum in esse qui. Et excepteur consectetur ex nisi eu do cillum ad laborum. Mollit et eu officia dolore sunt Lorem culpa qui commodo velit ex amet id ex. Officia anim incididunt laboris deserunt anim aute dolor incididunt veniam aute dolore do exercitation. Dolor nisi culpa ex ad irure in elit eu dolore. Ad laboris ipsum reprehenderit irure non commodo enim culpa commodo veniam incididunt veniam ad.</p>
-            </div>
-            <div class="tab-pane fade" id="list-messages" role="tabpanel" aria-labelledby="list-messages-list">
-              <p>Ut ut do pariatur aliquip aliqua aliquip exercitation do nostrud commodo reprehenderit aute ipsum voluptate. Irure Lorem et laboris nostrud amet cupidatat cupidatat anim do ut velit mollit consequat enim tempor. Consectetur est minim nostrud nostrud consectetur irure labore voluptate irure. Ipsum id Lorem sit sint voluptate est pariatur eu ad cupidatat et deserunt culpa sit eiusmod deserunt. Consectetur et fugiat anim do eiusmod aliquip nulla laborum elit adipisicing pariatur cillum.</p>
-            </div>
-            <div class="tab-pane fade" id="list-settings" role="tabpanel" aria-labelledby="list-settings-list">
-              <p>Irure enim occaecat labore sit qui aliquip reprehenderit amet velit. Deserunt ullamco ex elit nostrud ut dolore nisi officia magna sit occaecat laboris sunt dolor. Nisi eu minim cillum occaecat aute est cupidatat aliqua labore aute occaecat ea aliquip sunt amet. Aute mollit dolor ut exercitation irure commodo non amet consectetur quis amet culpa. Quis ullamco nisi amet qui aute irure eu. Magna labore dolor quis ex labore id nostrud deserunt dolor eiusmod eu pariatur culpa mollit in irure.</p>
-            </div>
-          </div>
-        </div>
-      </div>
-    </div>
-    <script src="../../../assets/js/vendor/jquery-slim.min.js"></script>
-    <script src="../../../assets/js/vendor/popper.min.js"></script>
-    <script src="../../dist/util.js"></script>
-    <script src="../../dist/tab.js"></script>
-    <script src="../../dist/dropdown.js"></script>
-  </body>
-</html>
diff --git a/assets/javascript/tests/visual/tooltip.html b/assets/javascript/tests/visual/tooltip.html
deleted file mode 100755
index 2d37678..0000000
--- a/assets/javascript/tests/visual/tooltip.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!doctype html>
-<html>
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-    <link rel="stylesheet" href="../../../dist/css/bootstrap.min.css">
-    <title>Tooltip</title>
-    <style>
-      #target {
-        border: 1px solid;
-        width: 100px;
-        height: 50px;
-        border: 1px solid;
-        margin-left: 50px;
-        -webkit-transform: rotate(270deg);
-        -ms-transform: rotate(270deg);
-        transform: rotate(270deg);
-        margin-top: 100px;
-      }
-    </style>
-  </head>
-  <body>
-    <div class="container">
-      <h1>Tooltip <small>Bootstrap Visual Test</small></h1>
-
-      <p class="text-muted">Tight pants next level keffiyeh <a href="#" data-toggle="tooltip" title="Default tooltip">you probably</a> haven't heard of them. Photo booth beard raw denim letterpress vegan messenger bag stumptown. Farm-to-table seitan, mcsweeney's fixie sustainable quinoa 8-bit american apparel <a href="#" data-toggle="tooltip" title="Another tooltip">have a</a> terry richardson vinyl chambray. Beard stumptown, cardigans banh mi lomo thundercats. Tofu biodiesel williamsburg marfa, four loko mcsweeney's cleanse vegan chambray. A really ironic artisan <a href="#" data-toggle="tooltip" title="Another one here too">whatever keytar</a>, scenester farm-to-table banksy Austin <a href="#" data-toggle="tooltip" title="The last tip!">twitter handle</a> freegan cred raw denim single-origin coffee viral.</p>
-
-      <hr>
-
-      <p>
-        <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="auto" title="Tooltip on auto">
-          Tooltip on auto
-        </button>
-        <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="top" title="Tooltip on top">
-          Tooltip on top
-        </button>
-        <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="right" title="Tooltip on right">
-          Tooltip on right
-        </button>
-        <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="bottom" title="Tooltip on bottom">
-          Tooltip on bottom
-        </button>
-        <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="left" title="Tooltip on left">
-          Tooltip on left
-        </button>
-        <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-html="true" title="<em>Tooltip</em> <u>with</u> <b>HTML</b>">
-          Tooltip with HTML
-        </button>
-        <svg width="30" height="20">
-          <circle cx="15" cy="10" r="10" fill="#62448F" data-toggle="tooltip" data-placement="top" title="Tooltip on SVG" />
-        </svg>
-      </p>
-      <div id="target" title="Test tooltip on transformed element"></div>
-    </div>
-
-    <script src="../../../assets/js/vendor/jquery-slim.min.js"></script>
-    <script src="../../../assets/js/vendor/popper.min.js"></script>
-    <script src="../../dist/util.js"></script>
-    <script src="../../dist/tooltip.js"></script>
-
-    <script>
-      $(function () {
-        $('[data-toggle="tooltip"]').tooltip()
-        $('#target').tooltip({
-          placement : 'top',
-          trigger : 'manual'
-        }).tooltip('show')
-      })
-    </script>
-  </body>
-</html>
diff --git a/assets/scss b/assets/scss
new file mode 120000
index 0000000..b77f409
--- /dev/null
+++ b/assets/scss
@@ -0,0 +1 @@
+../lego/assests/scss
\ No newline at end of file
diff --git a/assets/scss/_alert.scss b/assets/scss/_alert.scss
deleted file mode 100755
index 66fba24..0000000
--- a/assets/scss/_alert.scss
+++ /dev/null
@@ -1,49 +0,0 @@
-//
-// Base styles
-//
-
-.alert {
-  position: relative;
-  padding: $alert-padding-y $alert-padding-x;
-  margin-bottom: $alert-margin-bottom;
-  border: $alert-border-width solid transparent;
-  @include border-radius($alert-border-radius);
-}
-
-// Headings for larger alerts
-.alert-heading {
-  // Specified to prevent conflicts of changing $headings-color
-  color: inherit;
-}
-
-// Provide class for links that match alerts
-.alert-link {
-  font-weight: $alert-link-font-weight;
-}
-
-
-// Dismissible alerts
-//
-// Expand the right padding and account for the close button's positioning.
-
-.alert-dismissible {
-  // Adjust close link position
-  .close {
-    position: absolute;
-    top: 0;
-    right: 0;
-    padding: $alert-padding-y $alert-padding-x;
-    color: inherit;
-  }
-}
-
-
-// Alternate styles
-//
-// Generate contextual modifier classes for colorizing the alert.
-
- at each $color, $value in $theme-colors {
-  .alert-#{$color} {
-    @include alert-variant(theme-color-level($color, -10), theme-color-level($color, -9), theme-color-level($color, 6));
-  }
-}
diff --git a/assets/scss/_badge.scss b/assets/scss/_badge.scss
deleted file mode 100755
index b87a1b0..0000000
--- a/assets/scss/_badge.scss
+++ /dev/null
@@ -1,47 +0,0 @@
-// Base class
-//
-// Requires one of the contextual, color modifier classes for `color` and
-// `background-color`.
-
-.badge {
-  display: inline-block;
-  padding: $badge-padding-y $badge-padding-x;
-  font-size: $badge-font-size;
-  font-weight: $badge-font-weight;
-  line-height: 1;
-  text-align: center;
-  white-space: nowrap;
-  vertical-align: baseline;
-  @include border-radius($badge-border-radius);
-
-  // Empty badges collapse automatically
-  &:empty {
-    display: none;
-  }
-}
-
-// Quick fix for badges in buttons
-.btn .badge {
-  position: relative;
-  top: -1px;
-}
-
-// Pill badges
-//
-// Make them extra rounded with a modifier to replace v3's badges.
-
-.badge-pill {
-  padding-right: $badge-pill-padding-x;
-  padding-left: $badge-pill-padding-x;
-  @include border-radius($badge-pill-border-radius);
-}
-
-// Colors
-//
-// Contextual variations (linked badges get darker on :hover).
-
- at each $color, $value in $theme-colors {
-  .badge-#{$color} {
-    @include badge-variant($value);
-  }
-}
diff --git a/assets/scss/_breadcrumb.scss b/assets/scss/_breadcrumb.scss
deleted file mode 100755
index 25b9d85..0000000
--- a/assets/scss/_breadcrumb.scss
+++ /dev/null
@@ -1,38 +0,0 @@
-.breadcrumb {
-  display: flex;
-  flex-wrap: wrap;
-  padding: $breadcrumb-padding-y $breadcrumb-padding-x;
-  margin-bottom: $breadcrumb-margin-bottom;
-  list-style: none;
-  background-color: $breadcrumb-bg;
-  @include border-radius($border-radius);
-}
-
-.breadcrumb-item {
-  // The separator between breadcrumbs (by default, a forward-slash: "/")
-  + .breadcrumb-item::before {
-    display: inline-block; // Suppress underlining of the separator in modern browsers
-    padding-right: $breadcrumb-item-padding;
-    padding-left: $breadcrumb-item-padding;
-    color: $breadcrumb-divider-color;
-    content: "#{$breadcrumb-divider}";
-  }
-
-  // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built
-  // without `<ul>`s. The `::before` pseudo-element generates an element
-  // *within* the .breadcrumb-item and thereby inherits the `text-decoration`.
-  //
-  // To trick IE into suppressing the underline, we give the pseudo-element an
-  // underline and then immediately remove it.
-  + .breadcrumb-item:hover::before {
-    text-decoration: underline;
-  }
-  // stylelint-disable-next-line no-duplicate-selectors
-  + .breadcrumb-item:hover::before {
-    text-decoration: none;
-  }
-
-  &.active {
-    color: $breadcrumb-active-color;
-  }
-}
diff --git a/assets/scss/_button-group.scss b/assets/scss/_button-group.scss
deleted file mode 100755
index 1a373f3..0000000
--- a/assets/scss/_button-group.scss
+++ /dev/null
@@ -1,207 +0,0 @@
-// stylelint-disable selector-no-qualifying-type
-
-// Make the div behave like a button
-.btn-group,
-.btn-group-vertical {
-  position: relative;
-  display: inline-flex;
-  vertical-align: middle; // match .btn alignment given font-size hack above
-
-  > .btn {
-    position: relative;
-    flex: 0 1 auto;
-
-    // Bring the hover, focused, and "active" buttons to the front to overlay
-    // the borders properly
-    @include hover {
-      z-index: 2;
-    }
-    &:focus,
-    &:active,
-    &.active {
-      z-index: 2;
-    }
-  }
-
-  // Prevent double borders when buttons are next to each other
-  .btn + .btn,
-  .btn + .btn-group,
-  .btn-group + .btn,
-  .btn-group + .btn-group {
-    margin-left: -$input-btn-border-width;
-  }
-}
-
-// Optional: Group multiple button groups together for a toolbar
-.btn-toolbar {
-  display: flex;
-  flex-wrap: wrap;
-  justify-content: flex-start;
-
-  .input-group {
-    width: auto;
-  }
-}
-
-.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 a .dropdown-menu
-// 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);
-}
-
-
-// Sizing
-//
-// Remix the default button sizing classes into new ones for easier manipulation.
-
-.btn-group-sm > .btn { @extend .btn-sm; }
-.btn-group-lg > .btn { @extend .btn-lg; }
-
-
-//
-// Split button dropdowns
-//
-
-.btn + .dropdown-toggle-split {
-  padding-right: $input-btn-padding-x * .75;
-  padding-left: $input-btn-padding-x * .75;
-
-  &::after {
-    margin-left: 0;
-  }
-}
-
-.btn-sm + .dropdown-toggle-split {
-  padding-right: $input-btn-padding-x-sm * .75;
-  padding-left: $input-btn-padding-x-sm * .75;
-}
-
-.btn-lg + .dropdown-toggle-split {
-  padding-right: $input-btn-padding-x-lg * .75;
-  padding-left: $input-btn-padding-x-lg * .75;
-}
-
-
-// The clickable button for toggling the menu
-// Set the same inset shadow as the :active state
-.btn-group.show .dropdown-toggle {
-  @include box-shadow($btn-active-box-shadow);
-
-  // Show no shadow for `.btn-link` since it has no other button styles.
-  &.btn-link {
-    @include box-shadow(none);
-  }
-}
-
-
-//
-// Vertical button groups
-//
-
-.btn-group-vertical {
-  flex-direction: column;
-  align-items: flex-start;
-  justify-content: center;
-
-  .btn,
-  .btn-group {
-    width: 100%;
-  }
-
-  > .btn + .btn,
-  > .btn + .btn-group,
-  > .btn-group + .btn,
-  > .btn-group + .btn-group {
-    margin-top: -$input-btn-border-width;
-    margin-left: 0;
-  }
-
-  > .btn {
-    &:not(:first-child):not(:last-child) {
-      border-radius: 0;
-    }
-
-    &:first-child:not(:last-child) {
-      @include border-bottom-radius(0);
-    }
-
-    &:last-child:not(:first-child) {
-      @include border-top-radius(0);
-    }
-  }
-
-  > .btn-group:not(:first-child):not(:last-child) > .btn {
-    border-radius: 0;
-  }
-
-  > .btn-group:first-child:not(:last-child) {
-    > .btn:last-child,
-    > .dropdown-toggle {
-      @include border-bottom-radius(0);
-    }
-  }
-
-  > .btn-group:last-child:not(:first-child) > .btn:first-child {
-    @include border-top-radius(0);
-  }
-}
-
-
-// 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;
-    }
-  }
-}
diff --git a/assets/scss/_buttons.scss b/assets/scss/_buttons.scss
deleted file mode 100755
index 7cd2783..0000000
--- a/assets/scss/_buttons.scss
+++ /dev/null
@@ -1,136 +0,0 @@
-// stylelint-disable selector-no-qualifying-type
-
-//
-// Base styles
-//
-
-.btn {
-  display: inline-block;
-  font-weight: $btn-font-weight;
-  text-align: center;
-  white-space: nowrap;
-  vertical-align: middle;
-  user-select: none;
-  border: $input-btn-border-width solid transparent;
-  @include button-size($input-btn-padding-y, $input-btn-padding-x, $font-size-base, $input-btn-line-height, $btn-border-radius);
-  @include transition($btn-transition);
-
-  // Share hover and focus styles
-  @include hover-focus {
-    text-decoration: none;
-  }
-  &:focus,
-  &.focus {
-    outline: 0;
-    box-shadow: $input-btn-focus-box-shadow;
-  }
-
-  // Disabled comes first so active can properly restyle
-  &.disabled,
-  &:disabled {
-    opacity: .65;
-    @include box-shadow(none);
-  }
-
-  &:not([disabled]):not(.disabled):active,
-  &:not([disabled]):not(.disabled).active {
-    background-image: none;
-    @include box-shadow($input-btn-focus-box-shadow, $btn-active-box-shadow);
-  }
-}
-
-// Future-proof disabling of clicks on `<a>` elements
-a.btn.disabled,
-fieldset[disabled] a.btn {
-  pointer-events: none;
-}
-
-
-//
-// Alternate buttons
-//
-
- at each $color, $value in $theme-colors {
-  .btn-#{$color} {
-    @include button-variant($value, $value);
-  }
-}
-
- at each $color, $value in $theme-colors {
-  .btn-outline-#{$color} {
-    @if $color == "light" {
-      @include button-outline-variant($value, $gray-900);
-    } @else {
-      @include button-outline-variant($value, $white);
-    }
-  }
-}
-
-
-//
-// Link buttons
-//
-
-// Make a button look and behave like a link
-.btn-link {
-  font-weight: $font-weight-normal;
-  color: $link-color;
-  background-color: transparent;
-
-  @include hover {
-    color: $link-hover-color;
-    text-decoration: $link-hover-decoration;
-    background-color: transparent;
-    border-color: transparent;
-  }
-
-  &:focus,
-  &.focus {
-    border-color: transparent;
-    box-shadow: none;
-  }
-
-  &:disabled,
-  &.disabled {
-    color: $btn-link-disabled-color;
-  }
-
-  // No need for an active state here
-}
-
-
-//
-// Button Sizes
-//
-
-.btn-lg {
-  @include button-size($input-btn-padding-y-lg, $input-btn-padding-x-lg, $font-size-lg, $input-btn-line-height-lg, $btn-border-radius-lg);
-}
-
-.btn-sm {
-  @include button-size($input-btn-padding-y-sm, $input-btn-padding-x-sm, $font-size-sm, $input-btn-line-height-sm, $btn-border-radius-sm);
-}
-
-
-//
-// Block button
-//
-
-.btn-block {
-  display: block;
-  width: 100%;
-}
-
-// Vertically space out multiple block buttons
-.btn-block + .btn-block {
-  margin-top: $btn-block-spacing-y;
-}
-
-// Specificity overrides
-input[type="submit"],
-input[type="reset"],
-input[type="button"] {
-  &.btn-block {
-    width: 100%;
-  }
-}
diff --git a/assets/scss/_card.scss b/assets/scss/_card.scss
deleted file mode 100755
index a739f19..0000000
--- a/assets/scss/_card.scss
+++ /dev/null
@@ -1,259 +0,0 @@
-//
-// Base styles
-//
-
-.card {
-  position: relative;
-  display: flex;
-  flex-direction: column;
-  min-width: 0;
-  word-wrap: break-word;
-  background-color: $card-bg;
-  background-clip: border-box;
-  border: $card-border-width solid $card-border-color;
-  @include border-radius($card-border-radius);
-
-  > hr {
-    margin-right: 0;
-    margin-left: 0;
-  }
-
-  > .list-group:first-child {
-    .list-group-item:first-child {
-      @include border-top-radius($card-border-radius);
-    }
-  }
-
-  > .list-group:last-child {
-    .list-group-item:last-child {
-      @include border-bottom-radius($card-border-radius);
-    }
-  }
-}
-
-.card-body {
-  // Enable `flex-grow: 1` for decks and groups so that card blocks take up
-  // as much space as possible, ensuring footers are aligned to the bottom.
-  flex: 1 1 auto;
-  padding: $card-spacer-x;
-}
-
-.card-title {
-  margin-bottom: $card-spacer-y;
-}
-
-.card-subtitle {
-  margin-top: -($card-spacer-y / 2);
-  margin-bottom: 0;
-}
-
-.card-text:last-child {
-  margin-bottom: 0;
-}
-
-.card-link {
-  @include hover {
-    text-decoration: none;
-  }
-
-  + .card-link {
-    margin-left: $card-spacer-x;
-  }
-}
-
-//
-// Optional textual caps
-//
-
-.card-header {
-  padding: $card-spacer-y $card-spacer-x;
-  margin-bottom: 0; // Removes the default margin-bottom of <hN>
-  background-color: $card-cap-bg;
-  border-bottom: $card-border-width solid $card-border-color;
-
-  &:first-child {
-    @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);
-  }
-
-  + .list-group {
-    .list-group-item:first-child {
-      border-top: 0;
-    }
-  }
-}
-
-.card-footer {
-  padding: $card-spacer-y $card-spacer-x;
-  background-color: $card-cap-bg;
-  border-top: $card-border-width solid $card-border-color;
-
-  &:last-child {
-    @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius);
-  }
-}
-
-
-//
-// Header navs
-//
-
-.card-header-tabs {
-  margin-right: -($card-spacer-x / 2);
-  margin-bottom: -$card-spacer-y;
-  margin-left: -($card-spacer-x / 2);
-  border-bottom: 0;
-}
-
-.card-header-pills {
-  margin-right: -($card-spacer-x / 2);
-  margin-left: -($card-spacer-x / 2);
-}
-
-// Card image
-.card-img-overlay {
-  position: absolute;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  padding: $card-img-overlay-padding;
-}
-
-.card-img {
-  width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch
-  @include border-radius($card-inner-border-radius);
-}
-
-// Card image caps
-.card-img-top {
-  width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch
-  @include border-top-radius($card-inner-border-radius);
-}
-
-.card-img-bottom {
-  width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch
-  @include border-bottom-radius($card-inner-border-radius);
-}
-
-
-// Card deck
-
-.card-deck {
-  display: flex;
-  flex-direction: column;
-
-  .card {
-    margin-bottom: $card-deck-margin;
-  }
-
-  @include media-breakpoint-up(sm) {
-    flex-flow: row wrap;
-    margin-right: -$card-deck-margin;
-    margin-left: -$card-deck-margin;
-
-    .card {
-      display: flex;
-      // Flexbugs #4: https://github.com/philipwalton/flexbugs#4-flex-shorthand-declarations-with-unitless-flex-basis-values-are-ignored
-      flex: 1 0 0%;
-      flex-direction: column;
-      margin-right: $card-deck-margin;
-      margin-bottom: 0; // Override the default
-      margin-left: $card-deck-margin;
-    }
-  }
-}
-
-
-//
-// Card groups
-//
-
-.card-group {
-  display: flex;
-  flex-direction: column;
-
-  .card {
-    margin-bottom: $card-group-margin;
-  }
-
-  @include media-breakpoint-up(sm) {
-    flex-flow: row wrap;
-
-    .card {
-      // Flexbugs #4: https://github.com/philipwalton/flexbugs#4-flex-shorthand-declarations-with-unitless-flex-basis-values-are-ignored
-      flex: 1 0 0%;
-      margin-bottom: 0;
-
-      + .card {
-        margin-left: 0;
-        border-left: 0;
-      }
-
-      // Handle rounded corners
-      @if $enable-rounded {
-        &:first-child {
-          @include border-right-radius(0);
-
-          .card-img-top {
-            border-top-right-radius: 0;
-          }
-          .card-img-bottom {
-            border-bottom-right-radius: 0;
-          }
-        }
-
-        &:last-child {
-          @include border-left-radius(0);
-
-          .card-img-top {
-            border-top-left-radius: 0;
-          }
-          .card-img-bottom {
-            border-bottom-left-radius: 0;
-          }
-        }
-
-        &:only-child {
-          @include border-radius($card-border-radius);
-
-          .card-img-top {
-            @include border-top-radius($card-border-radius);
-          }
-          .card-img-bottom {
-            @include border-bottom-radius($card-border-radius);
-          }
-        }
-
-        &:not(:first-child):not(:last-child):not(:only-child) {
-          border-radius: 0;
-
-          .card-img-top,
-          .card-img-bottom {
-            border-radius: 0;
-          }
-        }
-      }
-    }
-  }
-}
-
-
-//
-// Columns
-//
-
-.card-columns {
-  .card {
-    margin-bottom: $card-columns-margin;
-  }
-
-  @include media-breakpoint-up(sm) {
-    column-count: $card-columns-count;
-    column-gap: $card-columns-gap;
-
-    .card {
-      display: inline-block; // Don't let them vertically span multiple columns
-      width: 100%; // Don't let their width change
-    }
-  }
-}
diff --git a/assets/scss/_carousel.scss b/assets/scss/_carousel.scss
deleted file mode 100755
index c3c2073..0000000
--- a/assets/scss/_carousel.scss
+++ /dev/null
@@ -1,191 +0,0 @@
-// Wrapper for the slide container and indicators
-.carousel {
-  position: relative;
-}
-
-.carousel-inner {
-  position: relative;
-  width: 100%;
-  overflow: hidden;
-}
-
-.carousel-item {
-  position: relative;
-  display: none;
-  align-items: center;
-  width: 100%;
-  @include transition($carousel-transition);
-  backface-visibility: hidden;
-  perspective: 1000px;
-}
-
-.carousel-item.active,
-.carousel-item-next,
-.carousel-item-prev {
-  display: block;
-}
-
-.carousel-item-next,
-.carousel-item-prev {
-  position: absolute;
-  top: 0;
-}
-
-// CSS3 transforms when supported by the browser
-.carousel-item-next.carousel-item-left,
-.carousel-item-prev.carousel-item-right {
-  transform: translateX(0);
-
-  @supports (transform-style: preserve-3d) {
-    transform: translate3d(0, 0, 0);
-  }
-}
-
-.carousel-item-next,
-.active.carousel-item-right {
-  transform: translateX(100%);
-
-  @supports (transform-style: preserve-3d) {
-    transform: translate3d(100%, 0, 0);
-  }
-}
-
-.carousel-item-prev,
-.active.carousel-item-left {
-  transform: translateX(-100%);
-
-  @supports (transform-style: preserve-3d) {
-    transform: translate3d(-100%, 0, 0);
-  }
-}
-
-
-//
-// Left/right controls for nav
-//
-
-.carousel-control-prev,
-.carousel-control-next {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  // Use flex for alignment (1-3)
-  display: flex; // 1. allow flex styles
-  align-items: center; // 2. vertically center contents
-  justify-content: center; // 3. horizontally center contents
-  width: $carousel-control-width;
-  color: $carousel-control-color;
-  text-align: center;
-  opacity: $carousel-control-opacity;
-  // We can't have a transition here because WebKit cancels the carousel
-  // animation if you trip this while in the middle of another animation.
-
-  // Hover/focus state
-  @include hover-focus {
-    color: $carousel-control-color;
-    text-decoration: none;
-    outline: 0;
-    opacity: .9;
-  }
-}
-.carousel-control-prev {
-  left: 0;
-  @if $enable-gradients {
-    background: linear-gradient(90deg, rgba(0,0,0,.25), rgba(0,0,0,.001));
-  }
-}
-.carousel-control-next {
-  right: 0;
-  @if $enable-gradients {
-    background: linear-gradient(270deg, rgba(0,0,0,.25), rgba(0,0,0,.001));
-  }
-}
-
-// Icons for within
-.carousel-control-prev-icon,
-.carousel-control-next-icon {
-  display: inline-block;
-  width: $carousel-control-icon-width;
-  height: $carousel-control-icon-width;
-  background: transparent no-repeat center center;
-  background-size: 100% 100%;
-}
-.carousel-control-prev-icon {
-  background-image: $carousel-control-prev-icon-bg;
-}
-.carousel-control-next-icon {
-  background-image: $carousel-control-next-icon-bg;
-}
-
-
-// Optional indicator pips
-//
-// Add an ordered list with the following class and add a list item for each
-// slide your carousel holds.
-
-.carousel-indicators {
-  position: absolute;
-  right: 0;
-  bottom: 10px;
-  left: 0;
-  z-index: 15;
-  display: flex;
-  justify-content: center;
-  padding-left: 0; // override <ol> default
-  // Use the .carousel-control's width as margin so we don't overlay those
-  margin-right: $carousel-control-width;
-  margin-left: $carousel-control-width;
-  list-style: none;
-
-  li {
-    position: relative;
-    flex: 0 1 auto;
-    width: $carousel-indicator-width;
-    height: $carousel-indicator-height;
-    margin-right: $carousel-indicator-spacer;
-    margin-left: $carousel-indicator-spacer;
-    text-indent: -999px;
-    background-color: rgba($carousel-indicator-active-bg, .5);
-
-    // Use pseudo classes to increase the hit area by 10px on top and bottom.
-    &::before {
-      position: absolute;
-      top: -10px;
-      left: 0;
-      display: inline-block;
-      width: 100%;
-      height: 10px;
-      content: "";
-    }
-    &::after {
-      position: absolute;
-      bottom: -10px;
-      left: 0;
-      display: inline-block;
-      width: 100%;
-      height: 10px;
-      content: "";
-    }
-  }
-
-  .active {
-    background-color: $carousel-indicator-active-bg;
-  }
-}
-
-
-// Optional captions
-//
-//
-
-.carousel-caption {
-  position: absolute;
-  right: ((100% - $carousel-caption-width) / 2);
-  bottom: 20px;
-  left: ((100% - $carousel-caption-width) / 2);
-  z-index: 10;
-  padding-top: 20px;
-  padding-bottom: 20px;
-  color: $carousel-caption-color;
-  text-align: center;
-}
diff --git a/assets/scss/_close.scss b/assets/scss/_close.scss
deleted file mode 100755
index 897d486..0000000
--- a/assets/scss/_close.scss
+++ /dev/null
@@ -1,29 +0,0 @@
-.close {
-  float: right;
-  font-size: $close-font-size;
-  font-weight: $close-font-weight;
-  line-height: 1;
-  color: $close-color;
-  text-shadow: $close-text-shadow;
-  opacity: .5;
-
-  @include hover-focus {
-    color: $close-color;
-    text-decoration: none;
-    opacity: .75;
-  }
-}
-
-// 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
-
-// stylelint-disable property-no-vendor-prefix, selector-no-qualifying-type
-button.close {
-  padding: 0;
-  background: transparent;
-  border: 0;
-  -webkit-appearance: none;
-}
-// stylelint-enable
diff --git a/assets/scss/_code.scss b/assets/scss/_code.scss
deleted file mode 100755
index 759da15..0000000
--- a/assets/scss/_code.scss
+++ /dev/null
@@ -1,64 +0,0 @@
-// Inline and block code styles
-code,
-kbd,
-pre,
-samp {
-  font-family: $font-family-monospace;
-}
-
-// Inline code
-code {
-  padding: $code-padding-y $code-padding-x;
-  font-size: $code-font-size;
-  color: $code-color;
-  background-color: $code-bg;
-  @include border-radius($border-radius);
-
-  // Streamline the style when inside anchors to avoid broken underline and more
-  a > & {
-    padding: 0;
-    color: inherit;
-    background-color: inherit;
-  }
-}
-
-// User input typically entered via keyboard
-kbd {
-  padding: $code-padding-y $code-padding-x;
-  font-size: $code-font-size;
-  color: $kbd-color;
-  background-color: $kbd-bg;
-  @include border-radius($border-radius-sm);
-  @include box-shadow($kbd-box-shadow);
-
-  kbd {
-    padding: 0;
-    font-size: 100%;
-    font-weight: $nested-kbd-font-weight;
-    @include box-shadow(none);
-  }
-}
-
-// Blocks of code
-pre {
-  display: block;
-  margin-top: 0;
-  margin-bottom: 1rem;
-  font-size: $code-font-size;
-  color: $pre-color;
-
-  // Account for some code outputs that place code tags in pre tags
-  code {
-    padding: 0;
-    font-size: inherit;
-    color: inherit;
-    background-color: transparent;
-    border-radius: 0;
-  }
-}
-
-// Enable scrollable blocks of code
-.pre-scrollable {
-  max-height: $pre-scrollable-max-height;
-  overflow-y: scroll;
-}
diff --git a/assets/scss/_component-examples.scss b/assets/scss/_component-examples.scss
deleted file mode 100755
index cb9b54f..0000000
--- a/assets/scss/_component-examples.scss
+++ /dev/null
@@ -1,438 +0,0 @@
-// stylelint-disable no-duplicate-selectors, selector-no-qualifying-type
-
-//
-// Grid examples
-//
-
-.bd-example-row {
-  .row {
-    > .col,
-    > [class^="col-"] {
-      padding-top: .75rem;
-      padding-bottom: .75rem;
-      background-color: rgba(86, 61, 124, .15);
-      border: 1px solid rgba(86, 61, 124, .2);
-    }
-  }
-
-  .row + .row {
-    margin-top: 1rem;
-  }
-
-  .flex-items-top,
-  .flex-items-middle,
-  .flex-items-bottom {
-    min-height: 6rem;
-    background-color: rgba(255, 0, 0, .1);
-  }
-}
-
-.bd-example-row-flex-cols .row {
-  min-height: 10rem;
-  background-color: rgba(255, 0, 0, .1);
-}
-
-.bd-highlight {
-  background-color: rgba($bd-purple, .15);
-  border: 1px solid rgba($bd-purple, .15);
-}
-
-// Grid mixins
-.example-container {
-  width: 800px;
-  @include make-container();
-}
-
-.example-row {
-  @include make-row();
-}
-
-.example-content-main {
-  @include make-col-ready();
-
-  @include media-breakpoint-up(sm) {
-    @include make-col(6);
-  }
-
-  @include media-breakpoint-up(lg) {
-    @include make-col(8);
-  }
-}
-
-.example-content-secondary {
-  @include make-col-ready();
-
-  @include media-breakpoint-up(sm) {
-    @include make-col(6);
-  }
-
-  @include media-breakpoint-up(lg) {
-    @include make-col(4);
-  }
-}
-
-
-//
-// Container illustrations
-//
-
-.bd-example-container {
-  min-width: 16rem;
-  max-width: 25rem;
-  margin-right: auto;
-  margin-left: auto;
-}
-
-.bd-example-container-header {
-  height: 3rem;
-  margin-bottom: .5rem;
-  background-color: lighten($blue, 50%);
-  border-radius: .25rem;
-}
-
-.bd-example-container-sidebar {
-  float: right;
-  width: 4rem;
-  height: 8rem;
-  background-color: lighten($blue, 25%);
-  border-radius: .25rem;
-}
-
-.bd-example-container-body {
-  height: 8rem;
-  margin-right: 4.5rem;
-  background-color: lighten($bd-purple, 25%);
-  border-radius: .25rem;
-}
-
-.bd-example-container-fluid {
-  max-width: none;
-}
-
-
-//
-// Docs examples
-//
-
-.bd-example {
-  position: relative;
-  padding: 1rem;
-  margin: 1rem (-$grid-gutter-width / 2);
-  overflow: auto;
-  border: solid #f7f7f9;
-  border-width: .2rem 0 0;
-  @include clearfix();
-
-  @include media-breakpoint-up(sm) {
-    padding: 1.5rem;
-    margin-right: 0;
-    margin-bottom: 0;
-    margin-left: 0;
-    border-width: .2rem;
-  }
-
-  + .highlight,
-  + .clipboard + .highlight {
-    margin-top: 0;
-  }
-
-  + p {
-    margin-top: 2rem;
-  }
-
-  .pos-f-t {
-    position: relative;
-    margin: -1rem;
-
-    @include media-breakpoint-up(sm) {
-      margin: -1.5rem;
-    }
-  }
-
-  > .form-control {
-    + .form-control {
-      margin-top: .5rem;
-    }
-  }
-
-  > .nav + .nav,
-  > .alert + .alert,
-  > .navbar + .navbar,
-  > .progress + .progress,
-  > .progress + .btn {
-    margin-top: 1rem;
-  }
-
-  > .dropdown-menu:first-child {
-    position: static;
-    display: block;
-  }
-
-  > .form-group:last-child {
-    margin-bottom: 0;
-  }
-
-  > .close {
-    float: none;
-  }
-}
-
-// Typography
-.bd-example-type {
-  .table {
-    .type-info {
-      color: #999;
-      vertical-align: middle;
-    }
-    td {
-      padding: 1rem 0;
-      border-color: #eee;
-    }
-    tr:first-child td {
-      border-top: 0;
-    }
-  }
-
-  h1,
-  h2,
-  h3,
-  h4,
-  h5,
-  h6 {
-    margin-top: 0;
-    margin-bottom: 0;
-  }
-}
-
-// Contextual background colors
-.bd-example-bg-classes p {
-  padding: 1rem;
-}
-
-// Images
-.bd-example > img {
-  + img {
-    margin-left: .5rem;
-  }
-}
-
-// Buttons
-.bd-example {
-  > .btn-group {
-    margin-top: .25rem;
-    margin-bottom: .25rem;
-  }
-  > .btn-toolbar + .btn-toolbar {
-    margin-top: .5rem;
-  }
-}
-
-// Forms
-.bd-example-control-sizing select,
-.bd-example-control-sizing input[type="text"] + input[type="text"] {
-  margin-top: .5rem;
-}
-.bd-example-form .input-group {
-  margin-bottom: .5rem;
-}
-.bd-example > textarea.form-control {
-  resize: vertical;
-}
-
-// List groups
-.bd-example > .list-group {
-  max-width: 400px;
-}
-
-// Navbars
-.bd-example {
-  .fixed-top,
-  .sticky-top {
-    position: static;
-    margin: -1rem -1rem 1rem;
-  }
-  .fixed-bottom {
-    position: static;
-    margin: 1rem -1rem -1rem;
-  }
-
-  @include media-breakpoint-up(sm) {
-    .fixed-top,
-    .sticky-top {
-      margin: -1.5rem -1.5rem 1rem;
-    }
-    .fixed-bottom {
-      margin: 1rem -1.5rem -1.5rem;
-    }
-  }
-}
-
-// Pagination
-.bd-example .pagination {
-  margin-top: .5rem;
-  margin-bottom: .5rem;
-}
-
-// Example modals
-.modal {
-  z-index: 1072;
-
-  .tooltip,
-  .popover {
-    z-index: 1073;
-  }
-}
-
-.modal-backdrop {
-  z-index: 1071;
-}
-
-.bd-example-modal {
-  background-color: #fafafa;
-
-  .modal {
-    position: relative;
-    top: auto;
-    right: auto;
-    bottom: auto;
-    left: auto;
-    z-index: 1;
-    display: block;
-  }
-
-  .modal-dialog {
-    left: auto;
-    margin-right: auto;
-    margin-left: auto;
-  }
-}
-
-// Example tabbable tabs
-.bd-example-tabs .nav-tabs {
-  margin-bottom: 1rem;
-}
-
-// Tooltips
-.bd-example-tooltips {
-  text-align: center;
-
-  > .btn {
-    margin-top: .25rem;
-    margin-bottom: .25rem;
-  }
-}
-.bs-tooltip-top-docs,
-.bs-tooltip-bottom-docs {
-  .arrow {
-    left: 50%;
-  }
-}
-.bs-tooltip-right-docs,
-.bs-tooltip-left-docs {
-  .arrow {
-    top: 50%;
-  }
-}
-
-// Popovers
-.bd-example-popover-static {
-  padding-bottom: 1.5rem;
-  background-color: #f9f9f9;
-
-  .popover {
-    position: relative;
-    display: block;
-    float: left;
-    width: 260px;
-    margin: 1.25rem;
-  }
-}
-.bs-popover-top-docs,
-.bs-popover-bottom-docs {
-  .arrow {
-    left: 50%;
-  }
-}
-.bs-popover-right-docs,
-.bs-popover-left-docs {
-  .arrow {
-    top: 50%;
-  }
-}
-
-// Tooltips
-.tooltip-demo a {
-  white-space: nowrap;
-}
-
-.bd-example-tooltip-static .tooltip {
-  position: relative;
-  display: inline-block;
-  margin: 10px 20px;
-  opacity: 1;
-}
-
-// Scrollspy demo on fixed height div
-.scrollspy-example {
-  position: relative;
-  height: 200px;
-  margin-top: .5rem;
-  overflow: auto;
-}
-
-.scrollspy-example-2 {
-  position: relative;
-  height: 350px;
-  overflow: auto;
-}
-
-.bd-example-border-utils {
-  [class^="border"] {
-    display: inline-block;
-    width: 5rem;
-    height: 5rem;
-    margin: .25rem;
-    background-color: #f5f5f5;
-    border: 1px solid;
-  }
-}
-
-//
-// Code snippets
-//
-
-.highlight {
-  padding: 1rem;
-  margin-top: 1rem;
-  margin-bottom: 1rem;
-  background-color: #f7f7f9;
-  -ms-overflow-style: -ms-autohiding-scrollbar;
-
-  @include media-breakpoint-up(sm) {
-    padding: 1.5rem;
-  }
-}
-
-.bd-content .highlight {
-  margin-right: (-$grid-gutter-width / 2);
-  margin-left: (-$grid-gutter-width / 2);
-
-  @include media-breakpoint-up(sm) {
-    margin-right: 0;
-    margin-left: 0;
-  }
-}
-
-.highlight {
-  pre {
-    padding: 0;
-    margin-top: 0;
-    margin-bottom: 0;
-    background-color: transparent;
-    border: 0;
-  }
-  pre code {
-    font-size: inherit;
-    color: $gray-900; // Effectively the base text color
-  }
-}
diff --git a/assets/scss/_custom-forms.scss b/assets/scss/_custom-forms.scss
deleted file mode 100755
index a521dbd..0000000
--- a/assets/scss/_custom-forms.scss
+++ /dev/null
@@ -1,257 +0,0 @@
-// Embedded icons from Open Iconic.
-// Released under MIT and copyright 2014 Waybury.
-// https://useiconic.com/open
-
-
-// Checkboxes and radios
-//
-// Base class takes care of all the key behavioral aspects.
-
-.custom-control {
-  position: relative;
-  display: inline-flex;
-  min-height: (1rem * $line-height-base);
-  padding-left: $custom-control-gutter;
-  margin-right: $custom-control-spacer-x;
-}
-
-.custom-control-input {
-  position: absolute;
-  z-index: -1; // Put the input behind the label so it doesn't overlay text
-  opacity: 0;
-
-  &:checked ~ .custom-control-indicator {
-    color: $custom-control-indicator-checked-color;
-    @include gradient-bg($custom-control-indicator-checked-bg);
-    @include box-shadow($custom-control-indicator-checked-box-shadow);
-  }
-
-  &:focus ~ .custom-control-indicator {
-    // the mixin is not used here to make sure there is feedback
-    box-shadow: $custom-control-indicator-focus-box-shadow;
-  }
-
-  &:active ~ .custom-control-indicator {
-    color: $custom-control-indicator-active-color;
-    @include gradient-bg($custom-control-indicator-active-bg);
-    @include box-shadow($custom-control-indicator-active-box-shadow);
-  }
-
-  &:disabled {
-    ~ .custom-control-indicator {
-      background-color: $custom-control-indicator-disabled-bg;
-    }
-
-    ~ .custom-control-description {
-      color: $custom-control-description-disabled-color;
-    }
-  }
-}
-
-// Custom indicator
-//
-// Generates a shadow element to create our makeshift checkbox/radio background.
-
-.custom-control-indicator {
-  position: absolute;
-  top: (($line-height-base - $custom-control-indicator-size) / 2);
-  left: 0;
-  display: block;
-  width: $custom-control-indicator-size;
-  height: $custom-control-indicator-size;
-  pointer-events: none;
-  user-select: none;
-  background-color: $custom-control-indicator-bg;
-  background-repeat: no-repeat;
-  background-position: center center;
-  background-size: $custom-control-indicator-bg-size;
-  @include box-shadow($custom-control-indicator-box-shadow);
-}
-
-// Checkboxes
-//
-// Tweak just a few things for checkboxes.
-
-.custom-checkbox {
-  .custom-control-indicator {
-    @include border-radius($custom-checkbox-indicator-border-radius);
-  }
-
-  .custom-control-input:checked ~ .custom-control-indicator {
-    background-image: $custom-checkbox-indicator-icon-checked;
-  }
-
-  .custom-control-input:indeterminate ~ .custom-control-indicator {
-    background-color: $custom-checkbox-indicator-indeterminate-bg;
-    background-image: $custom-checkbox-indicator-icon-indeterminate;
-    @include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);
-  }
-}
-
-// Radios
-//
-// Tweak just a few things for radios.
-
-.custom-radio {
-  .custom-control-indicator {
-    border-radius: $custom-radio-indicator-border-radius;
-  }
-
-  .custom-control-input:checked ~ .custom-control-indicator {
-    background-image: $custom-radio-indicator-icon-checked;
-  }
-}
-
-
-// Layout options
-//
-// By default radios and checkboxes are `inline-block` with no additional spacing
-// set. Use these optional classes to tweak the layout.
-
-.custom-controls-stacked {
-  display: flex;
-  flex-direction: column;
-
-  .custom-control {
-    margin-bottom: $custom-control-spacer-y;
-
-    + .custom-control {
-      margin-left: 0;
-    }
-  }
-}
-
-
-// Select
-//
-// Replaces the browser default select with a custom one, mostly pulled from
-// http://primercss.io.
-//
-
-.custom-select {
-  display: inline-block;
-  max-width: 100%;
-  height: $input-height;
-  padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;
-  line-height: $custom-select-line-height;
-  color: $custom-select-color;
-  vertical-align: middle;
-  background: $custom-select-bg $custom-select-indicator no-repeat right $custom-select-padding-x center;
-  background-size: $custom-select-bg-size;
-  border: $custom-select-border-width solid $custom-select-border-color;
-  @if $enable-rounded {
-    border-radius: $custom-select-border-radius;
-  } @else {
-    border-radius: 0;
-  }
-  appearance: none;
-
-  &:focus {
-    border-color: $custom-select-focus-border-color;
-    outline: none;
-    @include box-shadow($custom-select-focus-box-shadow);
-
-    &::-ms-value {
-      // For visual consistency with other platforms/browsers,
-      // supress the default white text on blue background highlight given to
-      // the selected option text when the (still closed) <select> receives focus
-      // in IE and (under certain conditions) Edge.
-      // See https://github.com/twbs/bootstrap/issues/19398.
-      color: $input-color;
-      background-color: $input-bg;
-    }
-  }
-
-  &[multiple] {
-    height: auto;
-    background-image: none;
-  }
-
-  &:disabled {
-    color: $custom-select-disabled-color;
-    background-color: $custom-select-disabled-bg;
-  }
-
-  // Hides the default caret in IE11
-  &::-ms-expand {
-    opacity: 0;
-  }
-}
-
-.custom-select-sm {
-  height: $custom-select-height-sm;
-  padding-top: $custom-select-padding-y;
-  padding-bottom: $custom-select-padding-y;
-  font-size: $custom-select-font-size-sm;
-}
-
-
-// File
-//
-// Custom file input.
-
-.custom-file {
-  position: relative;
-  display: inline-block;
-  max-width: 100%;
-  height: $custom-file-height;
-  margin-bottom: 0;
-}
-
-.custom-file-input {
-  min-width: $custom-file-width;
-  max-width: 100%;
-  height: $custom-file-height;
-  margin: 0;
-  opacity: 0;
-
-  &:focus ~ .custom-file-control {
-    box-shadow: $custom-file-focus-box-shadow;
-  }
-}
-
-.custom-file-control {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  z-index: 5;
-  height: $custom-file-height;
-  padding: $custom-file-padding-y $custom-file-padding-x;
-  line-height: $custom-file-line-height;
-  color: $custom-file-color;
-  pointer-events: none;
-  user-select: none;
-  background-color: $custom-file-bg;
-  border: $custom-file-border-width solid $custom-file-border-color;
-  @include border-radius($custom-file-border-radius);
-  @include box-shadow($custom-file-box-shadow);
-
-  @each $lang, $text in map-get($custom-file-text, placeholder) {
-    &:lang(#{$lang}):empty::after {
-      content: $text;
-    }
-  }
-
-  &::before {
-    position: absolute;
-    top: -$custom-file-border-width;
-    right: -$custom-file-border-width;
-    bottom: -$custom-file-border-width;
-    z-index: 6;
-    display: block;
-    height: $custom-file-height;
-    padding: $custom-file-padding-y $custom-file-padding-x;
-    line-height: $custom-file-line-height;
-    color: $custom-file-button-color;
-    @include gradient-bg($custom-file-button-bg);
-    border: $custom-file-border-width solid $custom-file-border-color;
-    @include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);
-  }
-
-  @each $lang, $text in map-get($custom-file-text, button-label) {
-    &:lang(#{$lang})::before {
-      content: $text;
-    }
-  }
-}
diff --git a/assets/scss/_dropdown.scss b/assets/scss/_dropdown.scss
deleted file mode 100755
index daa867a..0000000
--- a/assets/scss/_dropdown.scss
+++ /dev/null
@@ -1,103 +0,0 @@
-// The dropdown wrapper (`<div>`)
-.dropup,
-.dropdown {
-  position: relative;
-}
-
-.dropdown-toggle {
-  // Generate the caret automatically
-  @include caret;
-}
-
-// The dropdown menu
-.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: $dropdown-min-width;
-  padding: $dropdown-padding-y 0;
-  margin: $dropdown-spacer 0 0; // override default ul
-  font-size: $font-size-base; // Redeclare because nesting can cause inheritance issues
-  color: $body-color;
-  text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
-  list-style: none;
-  background-color: $dropdown-bg;
-  background-clip: padding-box;
-  border: $dropdown-border-width solid $dropdown-border-color;
-  @include border-radius($border-radius);
-  @include box-shadow($dropdown-box-shadow);
-}
-
-// Allow for dropdowns to go bottom up (aka, dropup-menu)
-// Just add .dropup after the standard .dropdown class and you're set.
-.dropup {
-  .dropdown-menu {
-    margin-top: 0;
-    margin-bottom: $dropdown-spacer;
-  }
-
-  .dropdown-toggle {
-    @include caret(up);
-  }
-}
-
-// Dividers (basically an `<hr>`) within the dropdown
-.dropdown-divider {
-  @include nav-divider($dropdown-divider-bg);
-}
-
-// Links, buttons, and more within the dropdown menu
-//
-// `<button>`-specific styles are denoted with `// For <button>s`
-.dropdown-item {
-  display: block;
-  width: 100%; // For `<button>`s
-  padding: $dropdown-item-padding-y $dropdown-item-padding-x;
-  clear: both;
-  font-weight: $font-weight-normal;
-  color: $dropdown-link-color;
-  text-align: inherit; // For `<button>`s
-  white-space: nowrap; // prevent links from randomly breaking onto new lines
-  background: none; // For `<button>`s
-  border: 0; // For `<button>`s
-
-  @include hover-focus {
-    color: $dropdown-link-hover-color;
-    text-decoration: none;
-    @include gradient-bg($dropdown-link-hover-bg);
-  }
-
-  &.active,
-  &:active {
-    color: $dropdown-link-active-color;
-    text-decoration: none;
-    @include gradient-bg($dropdown-link-active-bg);
-  }
-
-  &.disabled,
-  &:disabled {
-    color: $dropdown-link-disabled-color;
-    background-color: transparent;
-    // Remove CSS gradients if they're enabled
-    @if $enable-gradients {
-      background-image: none;
-    }
-  }
-}
-
-.dropdown-menu.show {
-  display: block;
-}
-
-// Dropdown section headers
-.dropdown-header {
-  display: block;
-  padding: $dropdown-padding-y $dropdown-item-padding-x;
-  margin-bottom: 0; // for use with heading elements
-  font-size: $font-size-sm;
-  color: $dropdown-header-color;
-  white-space: nowrap; // as with > li > a
-}
diff --git a/assets/scss/_forms.scss b/assets/scss/_forms.scss
deleted file mode 100755
index 80bc7f3..0000000
--- a/assets/scss/_forms.scss
+++ /dev/null
@@ -1,358 +0,0 @@
-// stylelint-disable selector-no-qualifying-type
-
-//
-// Textual form controls
-//
-
-.form-control {
-  display: block;
-  width: 100%;
-  padding: $input-btn-padding-y $input-btn-padding-x;
-  font-size: $font-size-base;
-  line-height: $input-btn-line-height;
-  color: $input-color;
-  background-color: $input-bg;
-  // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214.
-  background-image: none;
-  background-clip: padding-box;
-  border: $input-btn-border-width solid $input-border-color;
-
-  // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.
-  @if $enable-rounded {
-    // Manually use the if/else instead of the mixin to account for iOS override
-    border-radius: $input-border-radius;
-  } @else {
-    // Otherwise undo the iOS default
-    border-radius: 0;
-  }
-
-  @include box-shadow($input-box-shadow);
-  @include transition($input-transition);
-
-  // Unstyle the caret on `<select>`s in IE10+.
-  &::-ms-expand {
-    background-color: transparent;
-    border: 0;
-  }
-
-  // Customize the `:focus` state to imitate native WebKit styles.
-  @include form-control-focus();
-
-  // Placeholder
-  &::placeholder {
-    color: $input-placeholder-color;
-    // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.
-    opacity: 1;
-  }
-
-  // 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] {
-    background-color: $input-disabled-bg;
-    // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.
-    opacity: 1;
-  }
-}
-
-select.form-control {
-  &:not([size]):not([multiple]) {
-    height: $input-height;
-  }
-
-  &:focus::-ms-value {
-    // Suppress the nested default white text on blue background highlight given to
-    // the selected option text when the (still closed) <select> receives focus
-    // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to
-    // match the appearance of the native widget.
-    // See https://github.com/twbs/bootstrap/issues/19398.
-    color: $input-color;
-    background-color: $input-bg;
-  }
-}
-
-// Make file inputs better match text inputs by forcing them to new lines.
-.form-control-file,
-.form-control-range {
-  display: block;
-}
-
-
-//
-// Labels
-//
-
-// For use with horizontal and inline forms, when you need the label text to
-// align with the form controls.
-.col-form-label {
-  padding-top: calc(#{$input-btn-padding-y} + #{$input-btn-border-width});
-  padding-bottom: calc(#{$input-btn-padding-y} + #{$input-btn-border-width});
-  margin-bottom: 0; // Override the `<label>` default
-  line-height: $input-btn-line-height;
-}
-
-.col-form-label-lg {
-  padding-top: calc(#{$input-btn-padding-y-lg} + #{$input-btn-border-width});
-  padding-bottom: calc(#{$input-btn-padding-y-lg} + #{$input-btn-border-width});
-  font-size: $font-size-lg;
-  line-height: $input-btn-line-height-lg;
-}
-
-.col-form-label-sm {
-  padding-top: calc(#{$input-btn-padding-y-sm} + #{$input-btn-border-width});
-  padding-bottom: calc(#{$input-btn-padding-y-sm} + #{$input-btn-border-width});
-  font-size: $font-size-sm;
-  line-height: $input-btn-line-height-sm;
-}
-
-
-//
-// Legends
-//
-
-// For use with horizontal and inline forms, when you need the legend text to
-// be the same size as regular labels, and to align with the form controls.
-.col-form-legend {
-  padding-top: $input-btn-padding-y;
-  padding-bottom: $input-btn-padding-y;
-  margin-bottom: 0;
-  font-size: $font-size-base;
-}
-
-
-// Readonly controls as plain text
-//
-// Apply class to a readonly input to make it appear like regular plain
-// text (without any border, background color, focus indicator)
-
-.form-control-plaintext {
-  padding-top: $input-btn-padding-y;
-  padding-bottom: $input-btn-padding-y;
-  margin-bottom: 0; // match inputs if this class comes on inputs with default margins
-  line-height: $input-btn-line-height;
-  background-color: transparent;
-  border: solid transparent;
-  border-width: $input-btn-border-width 0;
-
-  &.form-control-sm,
-  &.form-control-lg {
-    padding-right: 0;
-    padding-left: 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.
-
-.form-control-sm {
-  padding: $input-btn-padding-y-sm $input-btn-padding-x-sm;
-  font-size: $font-size-sm;
-  line-height: $input-btn-line-height-sm;
-  @include border-radius($input-border-radius-sm);
-}
-
-select.form-control-sm {
-  &:not([size]):not([multiple]) {
-    height: $input-height-sm;
-  }
-}
-
-.form-control-lg {
-  padding: $input-btn-padding-y-lg $input-btn-padding-x-lg;
-  font-size: $font-size-lg;
-  line-height: $input-btn-line-height-lg;
-  @include border-radius($input-border-radius-lg);
-}
-
-select.form-control-lg {
-  &:not([size]):not([multiple]) {
-    height: $input-height-lg;
-  }
-}
-
-
-// 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;
-}
-
-.form-text {
-  display: block;
-  margin-top: $form-text-margin-top;
-}
-
-
-// Form grid
-//
-// Special replacement for our grid system's `.row` for tighter form layouts.
-
-.form-row {
-  display: flex;
-  flex-wrap: wrap;
-  margin-right: -5px;
-  margin-left: -5px;
-
-  > .col,
-  > [class*="col-"] {
-    padding-right: 5px;
-    padding-left: 5px;
-  }
-}
-
-
-// Checkboxes and radios
-//
-// Indent the labels to position radios/checkboxes as hanging controls.
-
-.form-check {
-  position: relative;
-  display: block;
-  margin-bottom: $form-check-margin-bottom;
-
-  &.disabled {
-    .form-check-label {
-      color: $text-muted;
-    }
-  }
-}
-
-.form-check-label {
-  padding-left: $form-check-input-gutter;
-  margin-bottom: 0; // Override default `<label>` bottom margin
-}
-
-.form-check-input {
-  position: absolute;
-  margin-top: $form-check-input-margin-y;
-  margin-left: -$form-check-input-gutter;
-}
-
-// Radios and checkboxes on same line
-.form-check-inline {
-  display: inline-block;
-  margin-right: $form-check-inline-margin-x;
-
-  .form-check-label {
-    vertical-align: middle;
-  }
-}
-
-
-// Form validation
-//
-// Provide feedback to users when form field values are valid or invalid. Works
-// primarily for client-side validation via scoped `:invalid` and `:valid`
-// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for
-// server side validation.
-
- at include form-validation-state("valid", $form-feedback-valid-color);
- at include form-validation-state("invalid", $form-feedback-invalid-color);
-
-// 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).
-
-.form-inline {
-  display: flex;
-  flex-flow: row wrap;
-  align-items: center; // Prevent shorter elements from growing to same height as others (e.g., small buttons growing to normal sized button height)
-
-  // Because we use flex, the initial sizing of checkboxes is collapsed and
-  // doesn't occupy the full-width (which is what we want for xs grid tier),
-  // so we force that here.
-  .form-check {
-    width: 100%;
-  }
-
-  // Kick in the inline
-  @include media-breakpoint-up(sm) {
-    label {
-      display: flex;
-      align-items: center;
-      justify-content: center;
-      margin-bottom: 0;
-    }
-
-    // Inline-block all the things for "inline"
-    .form-group {
-      display: flex;
-      flex: 0 0 auto;
-      flex-flow: row wrap;
-      align-items: center;
-      margin-bottom: 0;
-    }
-
-    // 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-plaintext {
-      display: inline-block;
-    }
-
-    .input-group {
-      width: auto;
-    }
-
-    // Remove default margin on radios/checkboxes that were used for stacking, and
-    // then undo the floating of radios and checkboxes to match.
-    .form-check {
-      display: flex;
-      align-items: center;
-      justify-content: center;
-      width: auto;
-      margin-top: 0;
-      margin-bottom: 0;
-    }
-    .form-check-label {
-      padding-left: 0;
-    }
-    .form-check-input {
-      position: relative;
-      margin-top: 0;
-      margin-right: $form-check-input-margin-x;
-      margin-left: 0;
-    }
-
-    // Custom form controls
-    .custom-control {
-      display: flex;
-      align-items: center;
-      justify-content: center;
-      padding-left: 0;
-    }
-    .custom-control-indicator {
-      position: static;
-      display: inline-block;
-      margin-right: $form-check-input-margin-x; // Flexbox alignment means we lose our HTML space here, so we compensate.
-      vertical-align: text-bottom;
-    }
-
-    // Re-override the feedback icon.
-    .has-feedback .form-control-feedback {
-      top: 0;
-    }
-  }
-}
diff --git a/assets/scss/_functions.scss b/assets/scss/_functions.scss
deleted file mode 100755
index 43210f7..0000000
--- a/assets/scss/_functions.scss
+++ /dev/null
@@ -1,86 +0,0 @@
-// Bootstrap functions
-//
-// Utility mixins and functions for evalutating source code across our variables, maps, and mixins.
-
-// Ascending
-// Used to evaluate Sass maps like our grid breakpoints.
- at mixin _assert-ascending($map, $map-name) {
-  $prev-key: null;
-  $prev-num: null;
-  @each $key, $num in $map {
-    @if $prev-num == null {
-      // Do nothing
-    } @else if not comparable($prev-num, $num) {
-      @warn "Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !";
-    } @else if $prev-num >= $num {
-      @warn "Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !";
-    }
-    $prev-key: $key;
-    $prev-num: $num;
-  }
-}
-
-// Starts at zero
-// Another grid mixin that ensures the min-width of the lowest breakpoint starts at 0.
- at mixin _assert-starts-at-zero($map) {
-  $values: map-values($map);
-  $first-value: nth($values, 1);
-  @if $first-value != 0 {
-    @warn "First breakpoint in `$grid-breakpoints` must start at 0, but starts at #{$first-value}.";
-  }
-}
-
-// Replace `$search` with `$replace` in `$string`
-// Used on our SVG icon backgrounds for custom forms.
-//
-// @author Hugo Giraudel
-// @param {String} $string - Initial string
-// @param {String} $search - Substring to replace
-// @param {String} $replace ('') - New value
-// @return {String} - Updated string
- at function str-replace($string, $search, $replace: "") {
-  $index: str-index($string, $search);
-
-  @if $index {
-    @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
-  }
-
-  @return $string;
-}
-
-// Color contrast
- at function color-yiq($color) {
-  $r: red($color);
-  $g: green($color);
-  $b: blue($color);
-
-  $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;
-
-  @if ($yiq >= 150) {
-    @return #111;
-  } @else {
-    @return #fff;
-  }
-}
-
-// Retreive color Sass maps
- at function color($key: "blue") {
-  @return map-get($colors, $key);
-}
-
- at function theme-color($key: "primary") {
-  @return map-get($theme-colors, $key);
-}
-
- at function gray($key: "100") {
-  @return map-get($grays, $key);
-}
-
-// Request a theme color level
- at function theme-color-level($color-name: "primary", $level: 0) {
-  $color: theme-color($color-name);
-  $color-base: if($level > 0, #000, #fff);
-  $level: abs($level);
-
-  @return mix($color-base, $color, $level * $theme-color-interval);
-}
diff --git a/assets/scss/_grid.scss b/assets/scss/_grid.scss
deleted file mode 100755
index a227515..0000000
--- a/assets/scss/_grid.scss
+++ /dev/null
@@ -1,52 +0,0 @@
-// Container widths
-//
-// Set the container width, and override it for fixed navbars in media queries.
-
- at if $enable-grid-classes {
-  .container {
-    @include make-container();
-    @include make-container-max-widths();
-  }
-}
-
-// Fluid container
-//
-// Utilizes the mixin meant for fixed width containers, but with 100% width for
-// fluid, full width layouts.
-
- at if $enable-grid-classes {
-  .container-fluid {
-    @include make-container();
-  }
-}
-
-// Row
-//
-// Rows contain and clear the floats of your columns.
-
- at if $enable-grid-classes {
-  .row {
-    @include make-row();
-  }
-
-  // Remove the negative margin from default .row, then the horizontal padding
-  // from all immediate children columns (to prevent runaway style inheritance).
-  .no-gutters {
-    margin-right: 0;
-    margin-left: 0;
-
-    > .col,
-    > [class*="col-"] {
-      padding-right: 0;
-      padding-left: 0;
-    }
-  }
-}
-
-// Columns
-//
-// Common styles for small and large grid columns
-
- at if $enable-grid-classes {
-  @include make-grid-columns();
-}
diff --git a/assets/scss/_images.scss b/assets/scss/_images.scss
deleted file mode 100755
index 50c5610..0000000
--- a/assets/scss/_images.scss
+++ /dev/null
@@ -1,43 +0,0 @@
-// Responsive images (ensure images don't scale beyond their parents)
-//
-// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.
-// We previously tried the "images are responsive by default" approach in Bootstrap v2,
-// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)
-// which weren't expecting the images within themselves to be involuntarily resized.
-// See also https://github.com/twbs/bootstrap/issues/18178
-.img-fluid {
-  @include img-fluid;
-}
-
-
-// Image thumbnails
-.img-thumbnail {
-  padding: $thumbnail-padding;
-  background-color: $thumbnail-bg;
-  border: $thumbnail-border-width solid $thumbnail-border-color;
-  @include border-radius($thumbnail-border-radius);
-  @include transition($thumbnail-transition);
-  @include box-shadow($thumbnail-box-shadow);
-
-  // Keep them at most 100% wide
-  @include img-fluid;
-}
-
-//
-// Figures
-//
-
-.figure {
-  // Ensures the caption's text aligns with the image.
-  display: inline-block;
-}
-
-.figure-img {
-  margin-bottom: ($spacer / 2);
-  line-height: 1;
-}
-
-.figure-caption {
-  font-size: $figure-caption-font-size;
-  color: $figure-caption-color;
-}
diff --git a/assets/scss/_input-group.scss b/assets/scss/_input-group.scss
deleted file mode 100755
index a1d16e3..0000000
--- a/assets/scss/_input-group.scss
+++ /dev/null
@@ -1,186 +0,0 @@
-// stylelint-disable selector-no-qualifying-type
-
-//
-// Base styles
-//
-
-.input-group {
-  position: relative;
-  display: flex;
-  align-items: stretch;
-  width: 100%;
-
-  .form-control {
-    // Ensure that the input is always above the *appended* addon button for
-    // proper border colors.
-    position: relative;
-    z-index: 2;
-    flex: 1 1 auto;
-    // Add width 1% and flex-basis auto to ensure that button will not wrap out
-    // the column. Applies to IE Edge+ and Firefox. Chrome does not require this.
-    width: 1%;
-    margin-bottom: 0;
-
-    // Bring the "active" form control to the front
-    @include hover-focus-active {
-      z-index: 3;
-    }
-  }
-}
-
-.input-group-addon,
-.input-group-btn,
-.input-group .form-control {
-  display: flex;
-  align-items: center;
-  &:not(:first-child):not(:last-child) {
-    @include border-radius(0);
-  }
-}
-
-.input-group-addon,
-.input-group-btn {
-  white-space: nowrap;
-}
-
-
-// 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 .form-control-lg;
-}
-.input-group-sm > .form-control,
-.input-group-sm > .input-group-addon,
-.input-group-sm > .input-group-btn > .btn {
-  @extend .form-control-sm;
-}
-
-
-//
-// Text input groups
-//
-
-.input-group-addon {
-  padding: $input-btn-padding-y $input-btn-padding-x;
-  margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom
-  font-size: $font-size-base; // Match inputs
-  font-weight: $font-weight-normal;
-  line-height: $input-btn-line-height;
-  color: $input-group-addon-color;
-  text-align: center;
-  background-color: $input-group-addon-bg;
-  border: $input-btn-border-width solid $input-group-addon-border-color;
-  @include border-radius($input-border-radius);
-
-  // Sizing
-  &.form-control-sm {
-    padding: $input-btn-padding-y-sm $input-btn-padding-x-sm;
-    font-size: $font-size-sm;
-    @include border-radius($input-border-radius-sm);
-  }
-
-  &.form-control-lg {
-    padding: $input-btn-padding-y-lg $input-btn-padding-x-lg;
-    font-size: $font-size-lg;
-    @include border-radius($input-border-radius-lg);
-  }
-
-  // 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:not(:last-child),
-.input-group-addon:not(:last-child),
-.input-group-btn:not(:last-child) > .btn,
-.input-group-btn:not(:last-child) > .btn-group > .btn,
-.input-group-btn:not(:last-child) > .dropdown-toggle,
-.input-group-btn:not(:first-child) > .btn:not(:last-child):not(.dropdown-toggle),
-.input-group-btn:not(:first-child) > .btn-group:not(:last-child) > .btn {
-  @include border-right-radius(0);
-}
-.input-group-addon:not(:last-child) {
-  border-right: 0;
-}
-.input-group .form-control:not(:first-child),
-.input-group-addon:not(:first-child),
-.input-group-btn:not(:first-child) > .btn,
-.input-group-btn:not(:first-child) > .btn-group > .btn,
-.input-group-btn:not(:first-child) > .dropdown-toggle,
-.input-group-btn:not(:last-child) > .btn:not(:first-child),
-.input-group-btn:not(:last-child) > .btn-group:not(:first-child) > .btn {
-  @include border-left-radius(0);
-}
-.form-control + .input-group-addon:not(:first-child) {
-  border-left: 0;
-}
-
-//
-// Button input groups
-//
-
-.input-group-btn {
-  position: relative;
-  align-items: stretch;
-  // 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: (-$input-btn-border-width);
-    }
-
-    // Bring the "active" button to the front
-    @include hover-focus-active {
-      z-index: 3;
-    }
-  }
-
-  &:first-child > .btn + .btn {
-    margin-left: 0;
-  }
-
-  // Negative margin to only have a single, shared border between the two
-  &:not(:last-child) {
-    > .btn,
-    > .btn-group {
-      margin-right: (-$input-btn-border-width);
-    }
-  }
-  &:not(:first-child) {
-    > .btn,
-    > .btn-group {
-      z-index: 2;
-      // remove nagative margin ($input-btn-border-width) to solve overlapping issue with button.
-      margin-left: 0;
-
-      // When input is first, overlap the right side of it with the button(-group)
-      &:first-child {
-        margin-left: (-$input-btn-border-width);
-      }
-
-      // Because specificity
-      @include hover-focus-active {
-        z-index: 3;
-      }
-    }
-  }
-}
diff --git a/assets/scss/_jumbotron.scss b/assets/scss/_jumbotron.scss
deleted file mode 100755
index 7966bba..0000000
--- a/assets/scss/_jumbotron.scss
+++ /dev/null
@@ -1,16 +0,0 @@
-.jumbotron {
-  padding: $jumbotron-padding ($jumbotron-padding / 2);
-  margin-bottom: $jumbotron-padding;
-  background-color: $jumbotron-bg;
-  @include border-radius($border-radius-lg);
-
-  @include media-breakpoint-up(sm) {
-    padding: ($jumbotron-padding * 2) $jumbotron-padding;
-  }
-}
-
-.jumbotron-fluid {
-  padding-right: 0;
-  padding-left: 0;
-  @include border-radius(0);
-}
diff --git a/assets/scss/_list-group.scss b/assets/scss/_list-group.scss
deleted file mode 100755
index 7e0b19e..0000000
--- a/assets/scss/_list-group.scss
+++ /dev/null
@@ -1,114 +0,0 @@
-// Base class
-//
-// Easily usable on <ul>, <ol>, or <div>.
-
-.list-group {
-  display: flex;
-  flex-direction: column;
-
-  // No need to set list-style: none; since .list-group-item is block level
-  padding-left: 0; // reset padding because ul and ol
-  margin-bottom: 0;
-}
-
-
-// Interactive list items
-//
-// Use anchor or button elements instead of `li`s or `div`s to create interactive
-// list items. Includes an extra `.active` modifier class for selected items.
-
-.list-group-item-action {
-  width: 100%; // For `<button>`s (anchors become 100% by default though)
-  color: $list-group-action-color;
-  text-align: inherit; // For `<button>`s (anchors inherit)
-
-  // Hover state
-  @include hover-focus {
-    color: $list-group-action-hover-color;
-    text-decoration: none;
-    background-color: $list-group-hover-bg;
-  }
-
-  &:active {
-    color: $list-group-action-active-color;
-    background-color: $list-group-action-active-bg;
-  }
-}
-
-
-// Individual list items
-//
-// Use on `li`s or `div`s within the `.list-group` parent.
-
-.list-group-item {
-  position: relative;
-  display: block;
-  padding: $list-group-item-padding-y $list-group-item-padding-x;
-  // Place the border on the list items and negative margin up for better styling
-  margin-bottom: -$list-group-border-width;
-  background-color: $list-group-bg;
-  border: $list-group-border-width solid $list-group-border-color;
-
-  &:first-child {
-    @include border-top-radius($list-group-border-radius);
-  }
-
-  &:last-child {
-    margin-bottom: 0;
-    @include border-bottom-radius($list-group-border-radius);
-  }
-
-  @include hover-focus {
-    text-decoration: none;
-  }
-
-  &.disabled,
-  &:disabled {
-    color: $list-group-disabled-color;
-    background-color: $list-group-disabled-bg;
-  }
-
-  // Include both here for `<a>`s and `<button>`s
-  &.active {
-    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-color;
-  }
-}
-
-
-// Flush list items
-//
-// Remove borders and border-radius to keep list group items edge-to-edge. Most
-// useful within other components (e.g., cards).
-
-.list-group-flush {
-  .list-group-item {
-    border-right: 0;
-    border-left: 0;
-    border-radius: 0;
-  }
-
-  &:first-child {
-    .list-group-item:first-child {
-      border-top: 0;
-    }
-  }
-
-  &:last-child {
-    .list-group-item:last-child {
-      border-bottom: 0;
-    }
-  }
-}
-
-
-// Contextual variants
-//
-// Add modifier classes to change text and background color on individual items.
-// Organizationally, this must come after the `:hover` states.
-
- at each $color, $value in $theme-colors {
-  @include list-group-item-variant($color, theme-color-level($color, -9), theme-color-level($color, 6));
-}
diff --git a/assets/scss/_media.scss b/assets/scss/_media.scss
deleted file mode 100755
index b573052..0000000
--- a/assets/scss/_media.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-.media {
-  display: flex;
-  align-items: flex-start;
-}
-
-.media-body {
-  flex: 1;
-}
diff --git a/assets/scss/_mixins.scss b/assets/scss/_mixins.scss
deleted file mode 100755
index d9a1774..0000000
--- a/assets/scss/_mixins.scss
+++ /dev/null
@@ -1,42 +0,0 @@
-// Toggles
-//
-// Used in conjunction with global variables to enable certain theme features.
-
-// Utilities
- at import "mixins/breakpoints";
- at import "mixins/hover";
- at import "mixins/image";
- at import "mixins/badge";
- at import "mixins/resize";
- at import "mixins/screen-reader";
- at import "mixins/size";
- at import "mixins/reset-text";
- at import "mixins/text-emphasis";
- at import "mixins/text-hide";
- at import "mixins/text-truncate";
- at import "mixins/visibility";
-
-// // Components
- at import "mixins/alert";
- at import "mixins/buttons";
- at import "mixins/caret";
- at import "mixins/pagination";
- at import "mixins/lists";
- at import "mixins/list-group";
- at import "mixins/nav-divider";
- at import "mixins/forms";
- at import "mixins/table-row";
-
-// // Skins
- at import "mixins/background-variant";
- at import "mixins/border-radius";
- at import "mixins/box-shadow";
- at import "mixins/gradients";
- at import "mixins/transition";
-
-// // Layout
- at import "mixins/clearfix";
-// @import "mixins/navbar-align";
- at import "mixins/grid-framework";
- at import "mixins/grid";
- at import "mixins/float";
diff --git a/assets/scss/_modal.scss b/assets/scss/_modal.scss
deleted file mode 100755
index e655850..0000000
--- a/assets/scss/_modal.scss
+++ /dev/null
@@ -1,153 +0,0 @@
-// .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 stuff
-
-
-// Kill the scroll on the body
-.modal-open {
-  overflow: hidden;
-}
-
-// Container that the modal scrolls within
-.modal {
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: $zindex-modal;
-  display: none;
-  overflow: hidden;
-  // Prevent Chrome on Windows from adding a focus outline. For details, see
-  // https://github.com/twbs/bootstrap/pull/10951.
-  outline: 0;
-  // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a
-  // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342
-  // See also https://github.com/twbs/bootstrap/issues/17695
-
-  // When fading in the modal, animate it to slide down
-  &.fade .modal-dialog {
-    @include transition($modal-transition);
-    transform: translate(0, -25%);
-  }
-  &.show .modal-dialog { transform: 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: $modal-dialog-margin;
-  // allow clicks to pass through for custom click handling to close modal
-  pointer-events: none;
-}
-
-// Actual modal
-.modal-content {
-  position: relative;
-  display: flex;
-  flex-direction: column;
-  // counteract the pointer-events: none; in the .modal-dialog
-  pointer-events: auto;
-  background-color: $modal-content-bg;
-  background-clip: padding-box;
-  border: $modal-content-border-width solid $modal-content-border-color;
-  @include border-radius($border-radius-lg);
-  @include box-shadow($modal-content-box-shadow-xs);
-  // 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-backdrop;
-  background-color: $modal-backdrop-bg;
-
-  // Fade for backdrop
-  &.fade { opacity: 0; }
-  &.show { opacity: $modal-backdrop-opacity; }
-}
-
-// Modal header
-// Top section of the modal w/ title and dismiss
-.modal-header {
-  display: flex;
-  align-items: flex-start; // so the close btn always stays on the upper right corner
-  justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends
-  padding: $modal-header-padding;
-  border-bottom: $modal-header-border-width solid $modal-header-border-color;
-  @include border-top-radius($border-radius-lg);
-
-  .close {
-    padding: $modal-header-padding;
-    // auto on the left force icon to the right even when there is no .modal-title
-    margin: (-$modal-header-padding) (-$modal-header-padding) (-$modal-header-padding) auto;
-  }
-}
-
-// Title text within header
-.modal-title {
-  margin-bottom: 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;
-  // Enable `flex-grow: 1` so that the body take up as much space as possible
-  // when should there be a fixed height on `.modal-dialog`.
-  flex: 1 1 auto;
-  padding: $modal-inner-padding;
-}
-
-// Footer (for actions)
-.modal-footer {
-  display: flex;
-  align-items: center; // vertically center
-  justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items
-  padding: $modal-inner-padding;
-  border-top: $modal-footer-border-width solid $modal-footer-border-color;
-
-  // Easily place margin between footer elements
-  > :not(:first-child) { margin-left: .25rem; }
-  > :not(:last-child) { margin-right: .25rem; }
-}
-
-// 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
- at include media-breakpoint-up(sm) {
-  // Automatically set modal's width for larger viewports
-  .modal-dialog {
-    max-width: $modal-md;
-    margin: $modal-dialog-margin-y-sm-up auto;
-  }
-
-  .modal-content {
-    @include box-shadow($modal-content-box-shadow-sm-up);
-  }
-
-  .modal-sm { max-width: $modal-sm; }
-}
-
- at include media-breakpoint-up(lg) {
-  .modal-lg { max-width: $modal-lg; }
-}
diff --git a/assets/scss/_nav.scss b/assets/scss/_nav.scss
deleted file mode 100755
index 14e76c9..0000000
--- a/assets/scss/_nav.scss
+++ /dev/null
@@ -1,118 +0,0 @@
-// Base class
-//
-// Kickstart any navigation component with a set of style resets. Works with
-// `<nav>`s or `<ul>`s.
-
-.nav {
-  display: flex;
-  flex-wrap: wrap;
-  padding-left: 0;
-  margin-bottom: 0;
-  list-style: none;
-}
-
-.nav-link {
-  display: block;
-  padding: $nav-link-padding-y $nav-link-padding-x;
-
-  @include hover-focus {
-    text-decoration: none;
-  }
-
-  // Disabled state lightens text
-  &.disabled {
-    color: $nav-link-disabled-color;
-  }
-}
-
-//
-// Tabs
-//
-
-.nav-tabs {
-  border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;
-
-  .nav-item {
-    margin-bottom: -$nav-tabs-border-width;
-  }
-
-  .nav-link {
-    border: $nav-tabs-border-width solid transparent;
-    @include border-top-radius($nav-tabs-border-radius);
-
-    @include hover-focus {
-      border-color: $nav-tabs-link-hover-border-color $nav-tabs-link-hover-border-color $nav-tabs-border-color;
-    }
-
-    &.disabled {
-      color: $nav-link-disabled-color;
-      background-color: transparent;
-      border-color: transparent;
-    }
-  }
-
-  .nav-link.active,
-  .nav-item.show .nav-link {
-    color: $nav-tabs-link-active-color;
-    background-color: $nav-tabs-link-active-bg;
-    border-color: $nav-tabs-link-active-border-color $nav-tabs-link-active-border-color $nav-tabs-link-active-bg;
-  }
-
-  .dropdown-menu {
-    // Make dropdown border overlap tab border
-    margin-top: -$nav-tabs-border-width;
-    // Remove the top rounded corners here since there is a hard edge above the menu
-    @include border-top-radius(0);
-  }
-}
-
-
-//
-// Pills
-//
-
-.nav-pills {
-  .nav-link {
-    @include border-radius($nav-pills-border-radius);
-  }
-
-  .nav-link.active,
-  .show > .nav-link {
-    color: $nav-pills-link-active-color;
-    background-color: $nav-pills-link-active-bg;
-  }
-}
-
-
-//
-// Justified variants
-//
-
-.nav-fill {
-  .nav-item {
-    flex: 1 1 auto;
-    text-align: center;
-  }
-}
-
-.nav-justified {
-  .nav-item {
-    flex-basis: 0;
-    flex-grow: 1;
-    text-align: center;
-  }
-}
-
-
-// Tabbable tabs
-//
-// Hide tabbable panes to start, show them when `.active`
-
-.tab-content {
-  > .tab-pane {
-    display: none;
-  }
-  > .active {
-    display: block;
-  }
-}
diff --git a/assets/scss/_navbar.scss b/assets/scss/_navbar.scss
deleted file mode 100755
index 6b023e8..0000000
--- a/assets/scss/_navbar.scss
+++ /dev/null
@@ -1,306 +0,0 @@
-// Contents
-//
-// Navbar
-// Navbar brand
-// Navbar nav
-// Navbar text
-// Navbar divider
-// Responsive navbar
-// Navbar position
-// Navbar themes
-
-
-// Navbar
-//
-// Provide a static navbar from which we expand to create full-width, fixed, and
-// other navbar variations.
-
-.navbar {
-  position: relative;
-  display: flex;
-  flex-wrap: wrap; // allow us to do the line break for collapsing content
-  align-items: center;
-  justify-content: space-between; // space out brand from logo
-  padding: $navbar-padding-y $navbar-padding-x;
-
-  // Because flex properties aren't inherited, we need to redeclare these first
-  // few properities so that content nested within behave properly.
-  > .container,
-  > .container-fluid {
-    display: flex;
-    flex-wrap: wrap;
-    align-items: center;
-    justify-content: space-between;
-  }
-}
-
-
-// Navbar brand
-//
-// Used for brand, project, or site names.
-
-.navbar-brand {
-  display: inline-block;
-  padding-top: $navbar-brand-padding-y;
-  padding-bottom: $navbar-brand-padding-y;
-  margin-right: $navbar-padding-x;
-  font-size: $navbar-brand-font-size;
-  line-height: inherit;
-  white-space: nowrap;
-
-  @include hover-focus {
-    text-decoration: none;
-  }
-}
-
-
-// Navbar nav
-//
-// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).
-
-.navbar-nav {
-  display: flex;
-  flex-direction: column; // cannot use `inherit` to get the `.navbar`s value
-  padding-left: 0;
-  margin-bottom: 0;
-  list-style: none;
-
-  .nav-link {
-    padding-right: 0;
-    padding-left: 0;
-  }
-
-  .dropdown-menu {
-    position: static;
-    float: none;
-  }
-}
-
-
-// Navbar text
-//
-//
-
-.navbar-text {
-  display: inline-block;
-  padding-top: $nav-link-padding-y;
-  padding-bottom: $nav-link-padding-y;
-}
-
-
-// Responsive navbar
-//
-// Custom styles for responsive collapsing and toggling of navbar contents.
-// Powered by the collapse Bootstrap JavaScript plugin.
-
-// When collapsed, prevent the toggleable navbar contents from appearing in
-// the default flexbox row orienation. Requires the use of `flex-wrap: wrap`
-// on the `.navbar` parent.
-.navbar-collapse {
-  flex-basis: 100%;
-  flex-grow: 1;
-  // For always expanded or extra full navbars, ensure content aligns itself
-  // properly vertically. Can be easily overridden with flex utilities.
-  align-items: center;
-}
-
-// Button for toggling the navbar when in its collapsed state
-.navbar-toggler {
-  padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;
-  font-size: $navbar-toggler-font-size;
-  line-height: 1;
-  background: transparent; // remove default button style
-  border: $border-width solid transparent; // remove default button style
-  @include border-radius($navbar-toggler-border-radius);
-
-  @include hover-focus {
-    text-decoration: none;
-  }
-}
-
-// Keep as a separate element so folks can easily override it with another icon
-// or image file as needed.
-.navbar-toggler-icon {
-  display: inline-block;
-  width: 1.5em;
-  height: 1.5em;
-  vertical-align: middle;
-  content: "";
-  background: no-repeat center center;
-  background-size: 100% 100%;
-}
-
-// Generate series of `.navbar-expand-*` responsive classes for configuring
-// where your navbar collapses.
-.navbar-expand {
-  @each $breakpoint in map-keys($grid-breakpoints) {
-    $next: breakpoint-next($breakpoint, $grid-breakpoints);
-    $infix: breakpoint-infix($next, $grid-breakpoints);
-
-    &#{$infix} {
-      @include media-breakpoint-down($breakpoint) {
-        > .container,
-        > .container-fluid {
-          padding-right: 0;
-          padding-left: 0;
-        }
-      }
-
-      @include media-breakpoint-up($next) {
-        flex-flow: row nowrap;
-        justify-content: flex-start;
-
-        .navbar-nav {
-          flex-direction: row;
-
-          .dropdown-menu {
-            position: absolute;
-          }
-
-          .dropdown-menu-right {
-            right: 0;
-            left: auto; // Reset the default from `.dropdown-menu`
-          }
-
-          .nav-link {
-            padding-right: .5rem;
-            padding-left: .5rem;
-          }
-        }
-
-        // For nesting containers, have to redeclare for alignment purposes
-        > .container,
-        > .container-fluid {
-          flex-wrap: nowrap;
-        }
-
-        .navbar-collapse {
-          display: flex !important;  // stylelint-disable-line declaration-no-important
-
-          // Changes flex-bases to auto because of an IE10 bug
-          flex-basis: auto;
-        }
-
-        .navbar-toggler {
-          display: none;
-        }
-
-        .dropup {
-          .dropdown-menu {
-            top: auto;
-            bottom: 100%;
-          }
-        }
-      }
-    }
-  }
-}
-
-
-// Navbar themes
-//
-// Styles for switching between navbars with light or dark background.
-
-// Dark links against a light background
-.navbar-light {
-  .navbar-brand {
-    color: $navbar-light-active-color;
-
-    @include hover-focus {
-      color: $navbar-light-active-color;
-    }
-  }
-
-  .navbar-nav {
-    .nav-link {
-      color: $navbar-light-color;
-
-      @include hover-focus {
-        color: $navbar-light-hover-color;
-      }
-
-      &.disabled {
-        color: $navbar-light-disabled-color;
-      }
-    }
-
-    .show > .nav-link,
-    .active > .nav-link,
-    .nav-link.show,
-    .nav-link.active {
-      color: $navbar-light-active-color;
-    }
-  }
-
-  .navbar-toggler {
-    color: $navbar-light-color;
-    border-color: $navbar-light-toggler-border-color;
-  }
-
-  .navbar-toggler-icon {
-    background-image: $navbar-light-toggler-icon-bg;
-  }
-
-  .navbar-text {
-    color: $navbar-light-color;
-    a {
-      color: $navbar-light-active-color;
-
-      @include hover-focus {
-        color: $navbar-light-active-color;
-      }
-    }
-  }
-}
-
-// White links against a dark background
-.navbar-dark {
-  .navbar-brand {
-    color: $navbar-dark-active-color;
-
-    @include hover-focus {
-      color: $navbar-dark-active-color;
-    }
-  }
-
-  .navbar-nav {
-    .nav-link {
-      color: $navbar-dark-color;
-
-      @include hover-focus {
-        color: $navbar-dark-hover-color;
-      }
-
-      &.disabled {
-        color: $navbar-dark-disabled-color;
-      }
-    }
-
-    .show > .nav-link,
-    .active > .nav-link,
-    .nav-link.show,
-    .nav-link.active {
-      color: $navbar-dark-active-color;
-    }
-  }
-
-  .navbar-toggler {
-    color: $navbar-dark-color;
-    border-color: $navbar-dark-toggler-border-color;
-  }
-
-  .navbar-toggler-icon {
-    background-image: $navbar-dark-toggler-icon-bg;
-  }
-
-  .navbar-text {
-    color: $navbar-dark-color;
-    a {
-      color: $navbar-dark-active-color;
-
-      @include hover-focus {
-        color: $navbar-dark-active-color;
-      }
-    }
-  }
-}
diff --git a/assets/scss/_pagination.scss b/assets/scss/_pagination.scss
deleted file mode 100755
index 69a36ff..0000000
--- a/assets/scss/_pagination.scss
+++ /dev/null
@@ -1,64 +0,0 @@
-.pagination {
-  display: flex;
-  @include list-unstyled();
-  @include border-radius();
-}
-
-.page-item {
-  &:first-child {
-    .page-link {
-      margin-left: 0;
-      @include border-left-radius($border-radius);
-    }
-  }
-  &:last-child {
-    .page-link {
-      @include border-right-radius($border-radius);
-    }
-  }
-
-  &.active .page-link {
-    z-index: 2;
-    color: $pagination-active-color;
-    background-color: $pagination-active-bg;
-    border-color: $pagination-active-border-color;
-  }
-
-  &.disabled .page-link {
-    color: $pagination-disabled-color;
-    pointer-events: none;
-    background-color: $pagination-disabled-bg;
-    border-color: $pagination-disabled-border-color;
-  }
-}
-
-.page-link {
-  position: relative;
-  display: block;
-  padding: $pagination-padding-y $pagination-padding-x;
-  margin-left: -$pagination-border-width;
-  line-height: $pagination-line-height;
-  color: $pagination-color;
-  background-color: $pagination-bg;
-  border: $pagination-border-width solid $pagination-border-color;
-
-  @include hover-focus {
-    color: $pagination-hover-color;
-    text-decoration: none;
-    background-color: $pagination-hover-bg;
-    border-color: $pagination-hover-border-color;
-  }
-}
-
-
-//
-// Sizing
-//
-
-.pagination-lg {
-  @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $border-radius-lg);
-}
-
-.pagination-sm {
-  @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $border-radius-sm);
-}
diff --git a/assets/scss/_popover.scss b/assets/scss/_popover.scss
deleted file mode 100755
index 4503767..0000000
--- a/assets/scss/_popover.scss
+++ /dev/null
@@ -1,194 +0,0 @@
-.popover {
-  position: absolute;
-  top: 0;
-  left: 0;
-  z-index: $zindex-popover;
-  display: block;
-  max-width: $popover-max-width;
-  // 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-sm;
-  // Allow breaking very long words so they don't overflow the popover's bounds
-  word-wrap: break-word;
-  background-color: $popover-bg;
-  background-clip: padding-box;
-  border: $popover-border-width solid $popover-border-color;
-  @include border-radius($border-radius-lg);
-  @include box-shadow($popover-box-shadow);
-
-  // Arrows
-  //
-  // .arrow is outer, .arrow::after is inner
-
-  .arrow {
-    position: absolute;
-    display: block;
-    width: $popover-arrow-width;
-    height: $popover-arrow-height;
-  }
-
-  .arrow::before,
-  .arrow::after {
-    position: absolute;
-    display: block;
-    border-color: transparent;
-    border-style: solid;
-  }
-
-  .arrow::before {
-    content: "";
-    border-width: $popover-arrow-width;
-  }
-  .arrow::after {
-    content: "";
-    border-width: $popover-arrow-width;
-  }
-
-  // Popover directions
-
-  &.bs-popover-top {
-    margin-bottom: $popover-arrow-width;
-
-    .arrow {
-      bottom: 0;
-    }
-
-    .arrow::before,
-    .arrow::after {
-      border-bottom-width: 0;
-    }
-
-    .arrow::before {
-      bottom: -$popover-arrow-width;
-      margin-left: -$popover-arrow-width;
-      border-top-color: $popover-arrow-outer-color;
-    }
-
-    .arrow::after {
-      bottom: calc((#{$popover-arrow-width} - #{$popover-border-width}) * -1);
-      margin-left: -$popover-arrow-width;
-      border-top-color: $popover-arrow-color;
-    }
-  }
-
-  &.bs-popover-right {
-    margin-left: $popover-arrow-width;
-
-    .arrow {
-      left: 0;
-    }
-
-    .arrow::before,
-    .arrow::after {
-      margin-top: -$popover-arrow-width;
-      border-left-width: 0;
-    }
-
-    .arrow::before {
-      left: -$popover-arrow-width;
-      border-right-color: $popover-arrow-outer-color;
-    }
-
-    .arrow::after {
-      left: calc((#{$popover-arrow-width} - #{$popover-border-width}) * -1);
-      border-right-color: $popover-arrow-color;
-    }
-  }
-
-  &.bs-popover-bottom {
-    margin-top: $popover-arrow-width;
-
-    .arrow {
-      top: 0;
-    }
-
-    .arrow::before,
-    .arrow::after {
-      margin-left: -$popover-arrow-width;
-      border-top-width: 0;
-    }
-
-    .arrow::before {
-      top: -$popover-arrow-width;
-      border-bottom-color: $popover-arrow-outer-color;
-    }
-
-    .arrow::after {
-      top: calc((#{$popover-arrow-width} - #{$popover-border-width}) * -1);
-      border-bottom-color: $popover-arrow-color;
-    }
-
-    // This will remove the popover-header's border just below the arrow
-    .popover-header::before {
-      position: absolute;
-      top: 0;
-      left: 50%;
-      display: block;
-      width: 20px;
-      margin-left: -10px;
-      content: "";
-      border-bottom: $popover-border-width solid $popover-header-bg;
-    }
-  }
-
-  &.bs-popover-left {
-    margin-right: $popover-arrow-width;
-
-    .arrow {
-      right: 0;
-    }
-
-    .arrow::before,
-    .arrow::after {
-      margin-top: -$popover-arrow-width;
-      border-right-width: 0;
-    }
-
-    .arrow::before {
-      right: -$popover-arrow-width;
-      border-left-color: $popover-arrow-outer-color;
-    }
-
-    .arrow::after {
-      right: calc((#{$popover-arrow-width} - #{$popover-border-width}) * -1);
-      border-left-color: $popover-arrow-color;
-    }
-  }
-  &.bs-popover-auto {
-    &[x-placement^="top"] {
-      @extend .bs-popover-top;
-    }
-    &[x-placement^="right"] {
-      @extend .bs-popover-right;
-    }
-    &[x-placement^="bottom"] {
-      @extend .bs-popover-bottom;
-    }
-    &[x-placement^="left"] {
-      @extend .bs-popover-left;
-    }
-  }
-}
-
-
-// Offset the popover to account for the popover arrow
-.popover-header {
-  padding: $popover-header-padding-y $popover-header-padding-x;
-  margin-bottom: 0; // Reset the default from Reboot
-  font-size: $font-size-base;
-  color: $popover-header-color;
-  background-color: $popover-header-bg;
-  border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);
-  $offset-border-width: calc(#{$border-radius-lg} - #{$popover-border-width});
-  @include border-top-radius($offset-border-width);
-
-  &:empty {
-    display: none;
-  }
-}
-
-.popover-body {
-  padding: $popover-body-padding-y $popover-body-padding-x;
-  color: $popover-body-color;
-}
diff --git a/assets/scss/_print.scss b/assets/scss/_print.scss
deleted file mode 100755
index 6505d3e..0000000
--- a/assets/scss/_print.scss
+++ /dev/null
@@ -1,110 +0,0 @@
-// stylelint-disable declaration-no-important, selector-no-qualifying-type
-
-// Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css
-
-// ==========================================================================
-// Print styles.
-// Inlined to avoid the additional HTTP request:
-// http://www.phpied.com/delay-loading-your-print-css/
-// ==========================================================================
-
- at if $enable-print-styles {
-  @media print {
-    *,
-    *::before,
-    *::after {
-      // Bootstrap specific; comment out `color` and `background`
-      //color: #000 !important; // Black prints faster: http://www.sanbeiji.com/archives/953
-      text-shadow: none !important;
-      //background: transparent !important;
-      box-shadow: none !important;
-    }
-
-    a,
-    a:visited {
-      text-decoration: underline;
-    }
-
-    // Bootstrap specific; comment the following selector out
-    //a[href]::after {
-    //  content: " (" attr(href) ")";
-    //}
-
-    abbr[title]::after {
-      content: " (" attr(title) ")";
-    }
-
-    // Bootstrap specific; comment the following selector out
-    //
-    // Don't show links that are fragment identifiers,
-    // or use the `javascript:` pseudo protocol
-    //
-
-    //a[href^="#"]::after,
-    //a[href^="javascript:"]::after {
-    // content: "";
-    //}
-
-    pre {
-      white-space: pre-wrap !important;
-    }
-    pre,
-    blockquote {
-      border: $border-width solid #999;   // Bootstrap custom code; using `$border-width` instead of 1px
-      page-break-inside: avoid;
-    }
-
-    //
-    // Printing Tables:
-    // http://css-discuss.incutio.com/wiki/Printing_Tables
-    //
-
-    thead {
-      display: table-header-group;
-    }
-
-    tr,
-    img {
-      page-break-inside: avoid;
-    }
-
-    p,
-    h2,
-    h3 {
-      orphans: 3;
-      widows: 3;
-    }
-
-    h2,
-    h3 {
-      page-break-after: avoid;
-    }
-
-    // Bootstrap specific changes start
-
-    // Bootstrap components
-    .navbar {
-      display: none;
-    }
-    .badge {
-      border: $border-width 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
-  }
-}
diff --git a/assets/scss/_progress.scss b/assets/scss/_progress.scss
deleted file mode 100755
index efbb440..0000000
--- a/assets/scss/_progress.scss
+++ /dev/null
@@ -1,30 +0,0 @@
- at keyframes progress-bar-stripes {
-  from { background-position: $progress-height 0; }
-  to { background-position: 0 0; }
-}
-
-.progress {
-  display: flex;
-  height: $progress-height;
-  overflow: hidden; // force rounded corners by cropping it
-  font-size: $progress-font-size;
-  background-color: $progress-bg;
-  @include border-radius($progress-border-radius);
-}
-
-.progress-bar {
-  display: flex;
-  align-items: center;
-  justify-content: center;
-  color: $progress-bar-color;
-  background-color: $progress-bar-bg;
-}
-
-.progress-bar-striped {
-  @include gradient-striped();
-  background-size: $progress-height $progress-height;
-}
-
-.progress-bar-animated {
-  animation: progress-bar-stripes $progress-bar-animation-timing;
-}
diff --git a/assets/scss/_reboot.scss b/assets/scss/_reboot.scss
deleted file mode 100755
index 3055cc3..0000000
--- a/assets/scss/_reboot.scss
+++ /dev/null
@@ -1,504 +0,0 @@
-// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix
-
-// Reboot
-//
-// Normalization of HTML elements, manually forked from Normalize.css to remove
-// styles targeting irrelevant browsers while applying new styles.
-//
-// Normalize is licensed MIT. https://github.com/necolas/normalize.css
-
-
-// Document
-//
-// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.
-// 2. Change the default font family in all browsers.
-// 3. Correct the line height in all browsers.
-// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.
-// 5. Setting @viewport causes scrollbars to overlap content in IE11 and Edge, so
-//    we force a non-overlapping, non-auto-hiding scrollbar to counteract.
-// 6. Change the default tap highlight to be completely transparent in iOS.
-
-*,
-*::before,
-*::after {
-  box-sizing: border-box; // 1
-}
-
-html {
-  font-family: sans-serif; // 2
-  line-height: 1.15; // 3
-  -webkit-text-size-adjust: 100%; // 4
-  -ms-text-size-adjust: 100%; // 4
-  -ms-overflow-style: scrollbar; // 5
-  -webkit-tap-highlight-color: rgba(0,0,0,0); // 6
-}
-
-// IE10+ doesn't honor `<meta name="viewport">` in some cases.
- at at-root {
-  @-ms-viewport {
-    width: device-width;
-  }
-}
-
-// stylelint-disable selector-list-comma-newline-after
-// Shim for "new" HTML5 structural elements to display correctly (IE10, older browsers)
-article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {
-  display: block;
-}
-// stylelint-enable selector-list-comma-newline-after
-
-// Body
-//
-// 1. Remove the margin in all browsers.
-// 2. As a best practice, apply a default `background-color`.
-// 3. Set an explicit initial text-align value so that we can later use the
-//    the `inherit` value on things like `<th>` elements.
-
-body {
-  margin: 0; // 1
-  font-family: $font-family-base;
-  font-size: $font-size-base;
-  font-weight: $font-weight-base;
-  line-height: $line-height-base;
-  color: $body-color;
-  text-align: left; // 3
-  background-color: $body-bg; // 2
-}
-
-// Suppress the focus outline on elements that cannot be accessed via keyboard.
-// This prevents an unwanted focus outline from appearing around elements that
-// might still respond to pointer events.
-//
-// Credit: https://github.com/suitcss/base
-[tabindex="-1"]:focus {
-  outline: none !important;
-}
-
-
-// Content grouping
-//
-// 1. Add the correct box sizing in Firefox.
-// 2. Show the overflow in Edge and IE.
-
-hr {
-  box-sizing: content-box; // 1
-  height: 0; // 1
-  overflow: visible; // 2
-}
-
-
-//
-// Typography
-//
-
-// Remove top margins from headings
-//
-// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top
-// margin for easier control within type scales as it avoids margin collapsing.
-// stylelint-disable selector-list-comma-newline-after
-h1, h2, h3, h4, h5, h6 {
-  margin-top: 0;
-  margin-bottom: $headings-margin-bottom;
-}
-// stylelint-enable selector-list-comma-newline-after
-
-// Reset margins on paragraphs
-//
-// Similarly, the top margin on `<p>`s get reset. However, we also reset the
-// bottom margin to use `rem` units instead of `em`.
-p {
-  margin-top: 0;
-  margin-bottom: $paragraph-margin-bottom;
-}
-
-// Abbreviations
-//
-// 1. Remove the bottom border in Firefox 39-.
-// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
-// 3. Add explicit cursor to indicate changed behavior.
-// 4. Duplicate behavior to the data-* attribute for our tooltip plugin
-
-abbr[title],
-abbr[data-original-title] { // 4
-  text-decoration: underline; // 2
-  text-decoration: underline dotted; // 2
-  cursor: help; // 3
-  border-bottom: 0; // 1
-}
-
-address {
-  margin-bottom: 1rem;
-  font-style: normal;
-  line-height: inherit;
-}
-
-ol,
-ul,
-dl {
-  margin-top: 0;
-  margin-bottom: 1rem;
-}
-
-ol ol,
-ul ul,
-ol ul,
-ul ol {
-  margin-bottom: 0;
-}
-
-dt {
-  font-weight: $dt-font-weight;
-}
-
-dd {
-  margin-bottom: .5rem;
-  margin-left: 0; // Undo browser default
-}
-
-blockquote {
-  margin: 0 0 1rem;
-}
-
-dfn {
-  font-style: italic; // Add the correct font style in Android 4.3-
-}
-
-// stylelint-disable font-weight-notation
-b,
-strong {
-  font-weight: bolder; // Add the correct font weight in Chrome, Edge, and Safari
-}
-// stylelint-enable font-weight-notation
-
-small {
-  font-size: 80%; // Add the correct font size in all browsers
-}
-
-//
-// Prevent `sub` and `sup` elements from affecting the line height in
-// all browsers.
-//
-
-sub,
-sup {
-  position: relative;
-  font-size: 75%;
-  line-height: 0;
-  vertical-align: baseline;
-}
-
-sub { bottom: -.25em; }
-sup { top: -.5em; }
-
-
-//
-// Links
-//
-
-a {
-  color: $link-color;
-  text-decoration: $link-decoration;
-  background-color: transparent; // Remove the gray background on active links in IE 10.
-  -webkit-text-decoration-skip: objects; // Remove gaps in links underline in iOS 8+ and Safari 8+.
-
-  @include hover {
-    color: $link-hover-color;
-    text-decoration: $link-hover-decoration;
-  }
-}
-
-// And undo these styles for placeholder links/named anchors (without href)
-// which have not been made explicitly keyboard-focusable (without tabindex).
-// It would be more straightforward to just use a[href] in previous block, but that
-// causes specificity issues in many other styles that are too complex to fix.
-// See https://github.com/twbs/bootstrap/issues/19402
-
-a:not([href]):not([tabindex]) {
-  color: inherit;
-  text-decoration: none;
-
-  @include hover-focus {
-    color: inherit;
-    text-decoration: none;
-  }
-
-  &:focus {
-    outline: 0;
-  }
-}
-
-
-//
-// Code
-//
-
-// stylelint-disable font-family-no-duplicate-names
-pre,
-code,
-kbd,
-samp {
-  font-family: monospace, monospace; // Correct the inheritance and scaling of font size in all browsers.
-  font-size: 1em; // Correct the odd `em` font sizing in all browsers.
-}
-// stylelint-enable font-family-no-duplicate-names
-
-pre {
-  // Remove browser default top margin
-  margin-top: 0;
-  // Reset browser default of `1em` to use `rem`s
-  margin-bottom: 1rem;
-  // Don't allow content to break outside
-  overflow: auto;
-  // We have @viewport set which causes scrollbars to overlap content in IE11 and Edge, so
-  // we force a non-overlapping, non-auto-hiding scrollbar to counteract.
-  -ms-overflow-style: scrollbar;
-}
-
-
-//
-// Figures
-//
-
-figure {
-  // Apply a consistent margin strategy (matches our type styles).
-  margin: 0 0 1rem;
-}
-
-
-//
-// Images and content
-//
-
-img {
-  vertical-align: middle;
-  border-style: none; // Remove the border on images inside links in IE 10-.
-}
-
-svg:not(:root) {
-  overflow: hidden; // Hide the overflow in IE
-}
-
-
-// Avoid 300ms click delay on touch devices that support the `touch-action` CSS property.
-//
-// In particular, unlike most other browsers, IE11+Edge on Windows 10 on touch devices and IE Mobile 10-11
-// DON'T remove the click delay when `<meta name="viewport" content="width=device-width">` is present.
-// However, they DO support removing the click delay via `touch-action: manipulation`.
-// See:
-// * https://getbootstrap.com/docs/4.0/content/reboot/#click-delay-optimization-for-touch
-// * https://caniuse.com/#feat=css-touch-action
-// * https://patrickhlauke.github.io/touch/tests/results/#suppressing-300ms-delay
-
-a,
-area,
-button,
-[role="button"],
-input:not([type="range"]),
-label,
-select,
-summary,
-textarea {
-  touch-action: manipulation;
-}
-
-
-//
-// Tables
-//
-
-table {
-  border-collapse: collapse; // Prevent double borders
-}
-
-caption {
-  padding-top: $table-cell-padding;
-  padding-bottom: $table-cell-padding;
-  color: $text-muted;
-  text-align: left;
-  caption-side: bottom;
-}
-
-th {
-  // Matches default `<td>` alignment by inheriting from the `<body>`, or the
-  // closest parent with a set `text-align`.
-  text-align: inherit;
-}
-
-
-//
-// Forms
-//
-
-label {
-  // Allow labels to use `margin` for spacing.
-  display: inline-block;
-  margin-bottom: .5rem;
-}
-
-// Remove the default `border-radius` that macOS Chrome adds.
-//
-// Details at https://github.com/twbs/bootstrap/issues/24093
-button {
-  border-radius: 0;
-}
-
-// Work around a Firefox/IE bug where the transparent `button` background
-// results in a loss of the default `button` focus styles.
-//
-// Credit: https://github.com/suitcss/base/
-button:focus {
-  outline: 1px dotted;
-  outline: 5px auto -webkit-focus-ring-color;
-}
-
-input,
-button,
-select,
-optgroup,
-textarea {
-  margin: 0; // Remove the margin in Firefox and Safari
-  font-family: inherit;
-  font-size: inherit;
-  line-height: inherit;
-}
-
-button,
-input {
-  overflow: visible; // Show the overflow in Edge
-}
-
-button,
-select {
-  text-transform: none; // Remove the inheritance of text transform in Firefox
-}
-
-// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
-//    controls in Android 4.
-// 2. Correct the inability to style clickable types in iOS and Safari.
-button,
-html [type="button"], // 1
-[type="reset"],
-[type="submit"] {
-  -webkit-appearance: button; // 2
-}
-
-// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.
-button::-moz-focus-inner,
-[type="button"]::-moz-focus-inner,
-[type="reset"]::-moz-focus-inner,
-[type="submit"]::-moz-focus-inner {
-  padding: 0;
-  border-style: none;
-}
-
-input[type="radio"],
-input[type="checkbox"] {
-  box-sizing: border-box; // 1. Add the correct box sizing in IE 10-
-  padding: 0; // 2. Remove the padding in IE 10-
-}
-
-
-input[type="date"],
-input[type="time"],
-input[type="datetime-local"],
-input[type="month"] {
-  // Remove the default appearance of temporal inputs to avoid a Mobile Safari
-  // bug where setting a custom line-height prevents text from being vertically
-  // centered within the input.
-  // See https://bugs.webkit.org/show_bug.cgi?id=139848
-  // and https://github.com/twbs/bootstrap/issues/11266
-  -webkit-appearance: listbox;
-}
-
-textarea {
-  overflow: auto; // Remove the default vertical scrollbar in IE.
-  // Textareas should really only resize vertically so they don't break their (horizontal) containers.
-  resize: vertical;
-}
-
-fieldset {
-  // Browsers set a default `min-width: min-content;` on fieldsets,
-  // unlike e.g. `<div>`s, which have `min-width: 0;` by default.
-  // So we reset that to ensure fieldsets behave more like a standard block element.
-  // See https://github.com/twbs/bootstrap/issues/12359
-  // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements
-  min-width: 0;
-  // Reset the default outline behavior of fieldsets so they don't affect page layout.
-  padding: 0;
-  margin: 0;
-  border: 0;
-}
-
-// 1. Correct the text wrapping in Edge and IE.
-// 2. Correct the color inheritance from `fieldset` elements in IE.
-legend {
-  display: block;
-  width: 100%;
-  max-width: 100%; // 1
-  padding: 0;
-  margin-bottom: .5rem;
-  font-size: 1.5rem;
-  line-height: inherit;
-  color: inherit; // 2
-  white-space: normal; // 1
-}
-
-progress {
-  vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.
-}
-
-// Correct the cursor style of increment and decrement buttons in Chrome.
-[type="number"]::-webkit-inner-spin-button,
-[type="number"]::-webkit-outer-spin-button {
-  height: auto;
-}
-
-[type="search"] {
-  // 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.
-  outline-offset: -2px; // 2. Correct the outline style in Safari.
-  -webkit-appearance: none;
-}
-
-//
-// Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
-//
-
-[type="search"]::-webkit-search-cancel-button,
-[type="search"]::-webkit-search-decoration {
-  -webkit-appearance: none;
-}
-
-//
-// 1. Correct the inability to style clickable types in iOS and Safari.
-// 2. Change font properties to `inherit` in Safari.
-//
-
-::-webkit-file-upload-button {
-  font: inherit; // 2
-  -webkit-appearance: button; // 1
-}
-
-//
-// Correct element displays
-//
-
-output {
-  display: inline-block;
-}
-
-summary {
-  display: list-item; // Add the correct display in all browsers
-}
-
-template {
-  display: none; // Add the correct display in IE
-}
-
-// Always hide an element with the `hidden` HTML attribute (from PureCSS).
-// Needed for proper display in IE 10-.
-[hidden] {
-  display: none !important;
-}
diff --git a/assets/scss/_root.scss b/assets/scss/_root.scss
deleted file mode 100755
index ad550df..0000000
--- a/assets/scss/_root.scss
+++ /dev/null
@@ -1,19 +0,0 @@
-:root {
-  // Custom variable values only support SassScript inside `#{}`.
-  @each $color, $value in $colors {
-    --#{$color}: #{$value};
-  }
-
-  @each $color, $value in $theme-colors {
-    --#{$color}: #{$value};
-  }
-
-  @each $bp, $value in $grid-breakpoints {
-    --breakpoint-#{$bp}: #{$value};
-  }
-
-  // Use `inspect` for lists so that quoted items keep the quotes.
-  // See https://github.com/sass/sass/issues/2383#issuecomment-336349172
-  --font-family-sans-serif: #{inspect($font-family-sans-serif)};
-  --font-family-monospace: #{inspect($font-family-monospace)};
-}
diff --git a/assets/scss/_sidebar.scss b/assets/scss/_sidebar.scss
deleted file mode 100644
index 385cb8c..0000000
--- a/assets/scss/_sidebar.scss
+++ /dev/null
@@ -1,166 +0,0 @@
-// stylelint-disable declaration-no-important
-
-//
-// Right side table of contents
-//
-
-.bd-toc {
-  @supports (position: sticky) {
-    position: sticky;
-    top: 4rem;
-    height: calc(100vh - 4rem);
-    overflow-y: auto;
-  }
-  order: 2;
-  padding-top: 1.5rem;
-  padding-bottom: 1.5rem;
-  font-size: .875rem;
-}
-
-.section-nav {
-  padding-left: 0;
-  border-left: 1px solid #eee;
-
-  ul {
-    padding-left: 1rem;
-
-    ul {
-      display: none;
-    }
-  }
-}
-
-.toc-entry {
-  display: block;
-
-  a {
-    display: block;
-    padding: .125rem 1.5rem;
-    color: #99979c;
-
-    &:hover {
-      color: $blue;
-      text-decoration: none;
-    }
-  }
-}
-
-//
-// Left side navigation
-//
-
-.bd-sidebar {
-  order: 0;
-  // background-color: #f5f2f9;
-  border-bottom: 1px solid rgba(0, 0, 0, .1);
-
-  @include media-breakpoint-up(md) {
-    @supports (position: sticky) {
-      position: sticky;
-      top: 4rem;
-      z-index: 1000;
-      height: calc(100vh - 4rem);
-    }
-    border-right: 1px solid rgba(0, 0, 0, .1);
-  }
-
-  @include media-breakpoint-up(xl) {
-    max-width: 320px;
-  }
-}
-
-.bd-links {
-  padding-top: 1rem;
-  padding-bottom: 1rem;
-  margin-right: -15px;
-  margin-left: -15px;
-
-  @include media-breakpoint-up(md) {
-    @supports (position: sticky) {
-      max-height: calc(100vh - 9rem);
-      overflow-y: auto;
-    }
-  }
-
-  // Override collapse behaviors
-  @include media-breakpoint-up(md) {
-    display: block !important;
-  }
-}
-
-.bd-search {
-  position: relative; // To contain the Algolia search
-  padding: 1rem 15px;
-  margin-right: -15px;
-  margin-left: -15px;
-  border-bottom: 1px solid rgba(0, 0, 0, .05);
-
-  .form-control:focus {
-    border-color: $bd-purple-bright;
-    box-shadow: 0 0 0 3px rgba($bd-purple-bright, .25);
-  }
-}
-
-.bd-search-docs-toggle {
-  line-height: 1;
-  color: $gray-900;
-}
-
-.bd-sidenav {
-  display: none;
-}
-
-.bd-toc-link {
-  display: block;
-  padding: .25rem 1.5rem;
-  font-weight: 500;
-  color: rgba(0, 0, 0, .65);
-
-  &:hover {
-    color: rgba(0, 0, 0, .85);
-    text-decoration: none;
-  }
-}
-
-.bd-toc-item {
-  &.active {
-    margin-bottom: 1rem;
-
-    &:not(:first-child) {
-      margin-top: 1rem;
-    }
-
-    > .bd-toc-link {
-      color: rgba(0, 0, 0, .85);
-
-      &:hover {
-        background-color: transparent;
-      }
-    }
-
-    > .bd-sidenav {
-      display: block;
-    }
-  }
-}
-
-// All levels of nav
-.bd-sidebar .nav > li > a {
-  display: block;
-  padding: .25rem 1.5rem;
-  font-size: 90%;
-  color: rgba(0, 0, 0, .65);
-}
-
-.bd-sidebar .nav > li > a:hover {
-  color: rgba(0, 0, 0, .85);
-  text-decoration: none;
-  background-color: transparent;
-}
-
-.bd-sidebar .nav > .active > a,
-.bd-sidebar .nav > .active:hover > a {
-  font-weight: 500;
-  color: rgba(0, 0, 0, .85);
-  background-color: transparent;
-}
diff --git a/assets/scss/_tables.scss b/assets/scss/_tables.scss
deleted file mode 100755
index 6bd0b91..0000000
--- a/assets/scss/_tables.scss
+++ /dev/null
@@ -1,180 +0,0 @@
-//
-// Basic Bootstrap table
-//
-
-.table {
-  width: 100%;
-  max-width: 100%;
-  margin-bottom: $spacer;
-  background-color: $table-bg; // Reset for nesting within parents with `background-color`.
-
-  th,
-  td {
-    padding: $table-cell-padding;
-    vertical-align: top;
-    border-top: $table-border-width solid $table-border-color;
-  }
-
-  thead th {
-    vertical-align: bottom;
-    border-bottom: (2 * $table-border-width) solid $table-border-color;
-  }
-
-  tbody + tbody {
-    border-top: (2 * $table-border-width) solid $table-border-color;
-  }
-
-  .table {
-    background-color: $body-bg;
-  }
-}
-
-
-//
-// Condensed table w/ half padding
-//
-
-.table-sm {
-  th,
-  td {
-    padding: $table-cell-padding-sm;
-  }
-}
-
-
-// Bordered version
-//
-// Add borders all around the table and between all the columns.
-
-.table-bordered {
-  border: $table-border-width solid $table-border-color;
-
-  th,
-  td {
-    border: $table-border-width solid $table-border-color;
-  }
-
-  thead {
-    th,
-    td {
-      border-bottom-width: (2 * $table-border-width);
-    }
-  }
-}
-
-
-// Zebra-striping
-//
-// Default zebra-stripe styles (alternating gray and transparent backgrounds)
-
-.table-striped {
-  tbody tr:nth-of-type(odd) {
-    background-color: $table-accent-bg;
-  }
-}
-
-
-// Hover effect
-//
-// Placed here since it has to come after the potential zebra striping
-
-.table-hover {
-  tbody tr {
-    @include hover {
-      background-color: $table-hover-bg;
-    }
-  }
-}
-
-
-// Table backgrounds
-//
-// Exact selectors below required to override `.table-striped` and prevent
-// inheritance to nested tables.
-
- at each $color, $value in $theme-colors {
-  @include table-row-variant($color, theme-color-level($color, -9));
-}
-
- at include table-row-variant(active, $table-active-bg);
-
-
-// Dark styles
-//
-// Same table markup, but inverted color scheme: dark background and light text.
-
-// stylelint-disable-next-line no-duplicate-selectors
-.table {
-  .thead-dark {
-    th {
-      color: $table-dark-color;
-      background-color: $table-dark-bg;
-      border-color: $table-dark-border-color;
-    }
-  }
-
-  .thead-light {
-    th {
-      color: $table-head-color;
-      background-color: $table-head-bg;
-      border-color: $table-border-color;
-    }
-  }
-}
-
-.table-dark {
-  color: $table-dark-color;
-  background-color: $table-dark-bg;
-
-  th,
-  td,
-  thead th {
-    border-color: $table-dark-border-color;
-  }
-
-  &.table-bordered {
-    border: 0;
-  }
-
-  &.table-striped {
-    tbody tr:nth-of-type(odd) {
-      background-color: $table-dark-accent-bg;
-    }
-  }
-
-  &.table-hover {
-    tbody tr {
-      @include hover {
-        background-color: $table-dark-hover-bg;
-      }
-    }
-  }
-}
-
-
-// Responsive tables
-//
-// Generate series of `.table-responsive-*` classes for configuring the screen
-// size of where your table will overflow.
-
-.table-responsive {
-  @each $breakpoint in map-keys($grid-breakpoints) {
-    $next: breakpoint-next($breakpoint, $grid-breakpoints);
-    $infix: breakpoint-infix($next, $grid-breakpoints);
-
-    &#{$infix} {
-      @include media-breakpoint-down($breakpoint) {
-        display: block;
-        width: 100%;
-        overflow-x: auto;
-        -webkit-overflow-scrolling: touch;
-        -ms-overflow-style: -ms-autohiding-scrollbar; // See https://github.com/twbs/bootstrap/pull/10057
-
-        // Prevent double border on horizontal scroll due to use of `display: block;`
-        &.table-bordered {
-          border: 0;
-        }
-      }
-    }
-  }
-}
diff --git a/assets/scss/_tooltip.scss b/assets/scss/_tooltip.scss
deleted file mode 100755
index 7b5db1c..0000000
--- a/assets/scss/_tooltip.scss
+++ /dev/null
@@ -1,107 +0,0 @@
-// Base class
-.tooltip {
-  position: absolute;
-  z-index: $zindex-tooltip;
-  display: block;
-  margin: $tooltip-margin;
-  // 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-sm;
-  // Allow breaking very long words so they don't overflow the tooltip's bounds
-  word-wrap: break-word;
-  opacity: 0;
-
-  &.show { opacity: $tooltip-opacity; }
-
-  .arrow {
-    position: absolute;
-    display: block;
-    width: $tooltip-arrow-width;
-    height: $tooltip-arrow-height;
-  }
-
-  .arrow::before {
-    position: absolute;
-    border-color: transparent;
-    border-style: solid;
-  }
-
-  &.bs-tooltip-top {
-    padding: $tooltip-arrow-width 0;
-    .arrow {
-      bottom: 0;
-    }
-
-    .arrow::before {
-      margin-left: -($tooltip-arrow-width - 2);
-      content: "";
-      border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
-      border-top-color: $tooltip-arrow-color;
-    }
-  }
-  &.bs-tooltip-right {
-    padding: 0 $tooltip-arrow-width;
-    .arrow {
-      left: 0;
-    }
-
-    .arrow::before {
-      margin-top: -($tooltip-arrow-width - 2);
-      content: "";
-      border-width: $tooltip-arrow-width $tooltip-arrow-width $tooltip-arrow-width 0;
-      border-right-color: $tooltip-arrow-color;
-    }
-  }
-  &.bs-tooltip-bottom {
-    padding: $tooltip-arrow-width 0;
-    .arrow {
-      top: 0;
-    }
-
-    .arrow::before {
-      margin-left: -($tooltip-arrow-width - 2);
-      content: "";
-      border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
-      border-bottom-color: $tooltip-arrow-color;
-    }
-  }
-  &.bs-tooltip-left {
-    padding: 0 $tooltip-arrow-width;
-    .arrow {
-      right: 0;
-    }
-
-    .arrow::before {
-      right: 0;
-      margin-top: -($tooltip-arrow-width - 2);
-      content: "";
-      border-width: $tooltip-arrow-width 0 $tooltip-arrow-width $tooltip-arrow-width;
-      border-left-color: $tooltip-arrow-color;
-    }
-  }
-  &.bs-tooltip-auto {
-    &[x-placement^="top"] {
-      @extend .bs-tooltip-top;
-    }
-    &[x-placement^="right"] {
-      @extend .bs-tooltip-right;
-    }
-    &[x-placement^="bottom"] {
-      @extend .bs-tooltip-bottom;
-    }
-    &[x-placement^="left"] {
-      @extend .bs-tooltip-left;
-    }
-  }
-}
-
-// Wrapper for the tooltip content
-.tooltip-inner {
-  max-width: $tooltip-max-width;
-  padding: $tooltip-padding-y $tooltip-padding-x;
-  color: $tooltip-color;
-  text-align: center;
-  background-color: $tooltip-bg;
-  @include border-radius($border-radius);
-}
diff --git a/assets/scss/_tor-variables.scss b/assets/scss/_tor-variables.scss
deleted file mode 100755
index 686f82a..0000000
--- a/assets/scss/_tor-variables.scss
+++ /dev/null
@@ -1,60 +0,0 @@
-// Tor Main Color Palette
-$purple:      #7D4698 !default;
-$purple-dark: #59316B !default;
-$green:       #68B030 !default;
-$gray-dark:   #484848 !default;
-$white:       #FFFFFF !default;
-
-// Other Colors
-$blue:    #007bff !default;
-$indigo:  #6610f2 !default;
-$pink:    #e83e8c !default;
-$red:     #EF243E !default;
-$orange:  #fd7e14 !default;
-$yellow:  #FFBF00 !default;
-$teal:    #20c997 !default;
-$cyan:    #00A5BB !default;
-
-$gray-100: #F8F9FA !default;
-$gray-200: #e9ecef !default;
-$gray-300: #dee2e6 !default;
-$gray-400: #ced4da !default;
-$gray-500: #adb5bd !default;
-$gray-600: #848E97 !default;
-$gray-700: #495057 !default;
-$gray-800: #333A41 !default;
-$gray-900: #212529 !default;
-$black:    #000 !default;
-
-$primary:       $purple !default;
-$secondary:     $purple-dark !default;
-$success:       $green !default;
-$info:          $cyan !default;
-$warning:       $yellow !default;
-$danger:        $red !default;
-$light:         $gray-100 !default;
-$dark:          $gray-dark !default;
-
-$navbar-dark-color:                 $white !default;
-$navbar-light-color:                $purple-dark !default;
-
-// Local docs variables
-$bd-purple:        #7D4698 !default;
-$bd-purple-bright: lighten(saturate($bd-purple, 5%), 15%) !default;
-$bd-purple-light:  lighten(saturate($bd-purple, 5%), 45%) !default;
-$bd-dark:          #59316B !default;
-$bd-download:      #ffe484 !default;
-$bd-info:          #5bc0de !default;
-$bd-warning:       #f0ad4e !default;
-$bd-danger:        #d9534f !default;
-
-// Fonts -  Source Sans Pro
-$font-family-sans:      "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !default;
-$font-family-serif:     "Source Serif Pro", -apple-system, "Georgia", serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !default;
-$font-family-monospace: "Source Code Pro", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default;
-$font-family-base:      $font-family-sans !default;
-
-$mark-bg:               $bd-purple-light;
-
-// Tables
-$table-accent-bg: $bd-purple-light;
diff --git a/assets/scss/_tor.scss b/assets/scss/_tor.scss
deleted file mode 100755
index 4ea5311..0000000
--- a/assets/scss/_tor.scss
+++ /dev/null
@@ -1,497 +0,0 @@
-/*
- * Base structure
- */
-
-/* Move down content because we have a fixed navbar that is 3.5rem tall */
-.page {
-  padding-top: 3.5rem;
-}
-
-/* Reset */
-
-.no-border {
-  border: none;
-}
-
-.no-background {
-  background-image: none !important;
-}
-
-.content-scroll {
-  position: relative;
-}
-
-/*
- * Typography
- */
-
- at font-face {
-  font-family: Source Sans Pro;
-  src: url('fonts/SourceSansPro/SourceSansPro-Regular.ttf');
-}
-
- at font-face {
-  font-family: Source Sans Pro Light;
-  src: url('fonts/SourceSansPro/SourceSansPro-Light.ttf');
-}
-
- at font-face {
-  font-family: Source Sans Pro Bold;
-  src: url('fonts/SourceSansPro/SourceSansPro-Bold.ttf');
-}
-
- at font-face {
-  font-family: Source Serif Pro;
-  src: url('fonts/SourceSerifPro/SourceSerifPro-Regular.ttf');
-}
-
- at font-face {
-  font-family: Source Code Pro;
-  src: url('fonts/SourceCodePro/SourceCodePro-Regular.ttf');
-}
-
- at font-face {
-  font-family: Tor Icons;
-  src: url('fonts/TorIcons/tor-icons.eot?#iefix') format('embedded-opentype'),
-  url('fonts/TorIcons/tor-icons.woff2') format('woff2'),
-  url('fonsts/TorIcons/tor-icons.woff') format('woff'),
-  url('fonts/TorIcons/tor-icons.ttf') format('truetype'),
-  url('fonts/TorIcons/tor-icons.svg?#tor-icons') format('svg');
-}
-
-.ti:before {
-    font-family: Tor Icons !important;
-    font-style: normal;
-    font-weight: normal !important;
-    vertical-align: top;
-}
-
-.ti-authority:before {
-    content: "\f101";
-}
-.ti-badexit:before {
-    content: "\f102";
-}
-.ti-bridge:before {
-    content: "\f103";
-}
-.ti-country:before {
-    content: "\f104";
-}
-.ti-directory:before {
-    content: "\f105";
-}
-.ti-exit:before {
-    content: "\f106";
-}
-.ti-fallbackdir:before {
-    content: "\f107";
-}
-.ti-fast:before {
-    content: "\f108";
-}
-.ti-fingerprint:before {
-    content: "\f109";
-}
-.ti-guard:before {
-    content: "\f10a";
-}
-.ti-hibernating:before {
-    content: "\f10b";
-}
-.ti-hsdir:before {
-    content: "\f10c";
-}
-.ti-ipv4:before {
-    content: "\f10d";
-}
-.ti-ipv6:before {
-    content: "\f10e";
-}
-.ti-ipv6exit:before {
-    content: "\f10f";
-}
-.ti-noedconsensus:before {
-    content: "\f110";
-}
-.ti-notrecommended:before {
-    content: "\f111";
-}
-.ti-onion-alt:before {
-    content: "\f112";
-}
-.ti-onion:before {
-    content: "\f113";
-}
-.ti-reachableipv4:before {
-    content: "\f114";
-}
-.ti-reachableipv6:before {
-    content: "\f115";
-}
-.ti-relay:before {
-    content: "\f116";
-}
-.ti-running:before {
-    content: "\f117";
-}
-.ti-stable:before {
-    content: "\f118";
-}
-.ti-tshirt:before {
-    content: "\f119";
-}
-.ti-unmeasured:before {
-    content: "\f11a";
-}
-.ti-unreachableipv4:before {
-    content: "\f11b";
-}
-.ti-unreachableipv6:before {
-    content: "\f11c";
-}
-.ti-v2dir:before {
-    content: "\f11d";
-}
-.ti-valid:before {
-    content: "\f11e";
-}
-
-.display-1,
-.display-2,
-.display-3,
-.display-4 {
-    font-family: Source Sans Pro Light;
-}
-
-.font-family-serif {
-  font-family: $font-family-serif !important;
-}
-.font-weight-light {
-  font-family: Source Sans Pro Light
-}
-.font-weight-bold {
-  font-family: Source Sans Pro Bold
- }
-
-small, .small{
-  font-size: 90%;
-}
-
-h6 {
-  text-transform: uppercase;
-  font-weight: bold;
-  color: $purple;
-}
-p {
-  font-size: 1.3rem; // We need at least 18px minuim +_+
-  color: $gray-900;
-  line-height: 2rem;
-}
-.display-5 {
-  font-size: 1.5em;
-}
-.display-6 {
-  font-size: 1.3em
-}
-mark, .mark {
-  color: $purple;
-}
-
-.bd-sidebar{
-  border: 0 !important;
-}
-.bd-toc{
-  order: 0 !important;
-}
-
-#components-nav .nav-pills .nav-link,
-#visuals-nav .nav-pills .nav-link{
-  border-radius: 0;
-}
-#components-nav .nav-pills .nav-link.active,
-#visuals-nav .nav-pills .nav-link.active{
-  background-color: $white;
-  color: $purple;
-  border-left: 2px solid $purple;
-  font-weight: bold;
-}
-
-/*
- * Nav
- */
-.navbar {
-  background-image: url('./images/onion-bg.svg');
-  background-repeat: no-repeat;
-  background-position: 10px 12px;
-}
-
-.navbar-brand {
-  padding-left: 80px;
-  span {
-    font-size: 0.6em;
-    display: flex;
-  }
-}
-
-/*
- * Sidebar
- */
-.sidebar {
-  position: fixed;
-  top: 51px;
-  bottom: 0;
-  left: 0;
-  z-index: 1000;
-  padding: 20px 0;
-  overflow-x: hidden;
-  overflow-y: auto; /* Scrollable contents if viewport is shorter than content. */
-  border-right: 1px solid #eee;
-}
-
-.sidebar .nav {
-  margin-bottom: 20px;
-}
-
-.sidebar .nav-item {
-  width: 100%;
-}
-
-.sidebar .nav-item + .nav-item {
-  margin-left: 0;
-}
-
-.sidebar .nav-link {
-  border-radius: 0;
-}
-
-.toc-h4 {
-  padding-left: 0.8em;
-  font-size: 0.9em;
-}
-
-/*
- * Dashboard
- */
-
-/* Placeholders */
-.placeholders {
-  padding-bottom: 3rem;
-}
-
-.placeholder img {
-  padding-top: 1.5rem;
-  padding-bottom: 1.5rem;
-}
-
-/*
- * Forms
- */
-.form-wide {
-  width: 100% !important;
-
-  input {
-    padding: 20px !important;
-  }
-}
-
-//
-// Badges
-//
-.badge{
-  text-transform: uppercase;
-}
-
-//
-// Breadcrumbs
-//
-.breadcrumb{
-  background-color: $white;
-}
-
-//
-// Tables
-//
-.table-striped td{
-  border: 0 !important;
-}
-
-//
-// Callouts
-//
-.bd-callout {
-  padding: 1.25rem;
-  margin-top: 1.25rem;
-  margin-bottom: 1.25rem;
-  border: 1px solid #eee;
-  border-left-width: .25rem;
-  border-radius: .25rem;
-}
-
-.bd-callout h4 {
-  margin-top: 0;
-  margin-bottom: .25rem;
-}
-
-.bd-callout p:last-child {
-  margin-bottom: 0;
-}
-
-.bd-callout code {
-  border-radius: .25rem;
-}
-
-.bd-callout + .bd-callout {
-  margin-top: -.25rem;
-}
-
-// Variations
- at mixin bs-callout-variant($color) {
-  border-left-color: $color;
-
-  h4 { color: $color; }
-}
-
-.bd-callout-info { @include bs-callout-variant($bd-info); }
-.bd-callout-warning { @include bs-callout-variant($bd-warning); }
-.bd-callout-danger { @include bs-callout-variant($bd-danger); }
-
-// Styleguide Nav Update
-
-// All levels of nav
-.bd-sidebar .nav > li > a {
-  color: rgba(0, 0, 0, .85);
-}
-
-.bd-sidebar .nav > li > a:hover {
-  color: $purple !important;
-  text-decoration: none;
-}
-
-#bd-docs-nav{
-  padding-top: 2rem;
-}
-
-// stylelint-disable declaration-block-single-line-max-declarations
-
-.hll { background-color: #ffc; }
-.c { color: #999; }
-.k { color: #069; }
-.o { color: #555; }
-.cm { color: #999; }
-.cp { color: #099; }
-.c1 { color: #999; }
-.cs { color: #999; }
-.gd { background-color: #fcc; border: 1px solid #c00; }
-.ge { font-style: italic; }
-.gr { color: #f00; }
-.gh { color: #030; }
-.gi { background-color: #cfc; border: 1px solid #0c0; }
-.go { color: #aaa; }
-.gp { color: #009; }
-.gu { color: #030; }
-.gt { color: #9c6; }
-.kc { color: #069; }
-.kd { color: #069; }
-.kn { color: #069; }
-.kp { color: #069; }
-.kr { color: #069; }
-.kt { color: #078; }
-.m { color: #f60; }
-.s { color: #d44950; }
-.na { color: #4f9fcf; }
-.nb { color: #366; }
-.nc { color: #0a8; }
-.no { color: #360; }
-.nd { color: #99f; }
-.ni { color: #999; }
-.ne { color: #c00; }
-.nf { color: #c0f; }
-.nl { color: #99f; }
-.nn { color: #0cf; }
-.nt { color: #2f6f9f; }
-.nv { color: #033; }
-.ow { color: #000; }
-.w { color: #bbb; }
-.mf { color: #f60; }
-.mh { color: #f60; }
-.mi { color: #f60; }
-.mo { color: #f60; }
-.sb { color: #c30; }
-.sc { color: #c30; }
-.sd { font-style: italic; color: #c30; }
-.s2 { color: #c30; }
-.se { color: #c30; }
-.sh { color: #c30; }
-.si { color: #a00; }
-.sx { color: #c30; }
-.sr { color: #3aa; }
-.s1 { color: #c30; }
-.ss { color: #fc3; }
-.bp { color: #366; }
-.vc { color: #033; }
-.vg { color: #033; }
-.vi { color: #033; }
-.il { color: #f60; }
-
-.css .o,
-.css .o + .nt,
-.css .nt + .nt { color: #999; }
-
-.language-bash::before,
-.language-sh::before {
-  color: #009;
-  content: "$ ";
-  user-select: none;
-}
-
-.language-powershell::before {
-  color: #009;
-  content: "PM> ";
-  user-select: none;
-}
-
-.text-primary-light {
-  color: $bd-purple-light;
-}
-
-.dropdown{
-  display: block;
-}
-
-.dropdown-menu {
-    display: none;
-}
-
-.dropdown:hover .dropdown-menu {
-    display: block;
-}
-
-.mobile {
-    display: none !important;
-}
-
-// Small devices (landscape phones, less than 768px)
- at include media-breakpoint-down(sm) {
-    .mobile {
-        display: block !important;
-	padding-top: 50px;
-    }
-
-    .display-1 {
-      font-size: 4rem;
-    }
-
-    .display-2 {
-      font-size: 3.5rem;
-    }
-
-    .display-3{
-      font-size: 2.5rem;
-    }
-
-    .display-4{
-      font-size: 2rem;
-    }
-
-}
\ No newline at end of file
diff --git a/assets/scss/_transitions.scss b/assets/scss/_transitions.scss
deleted file mode 100755
index df5744b..0000000
--- a/assets/scss/_transitions.scss
+++ /dev/null
@@ -1,36 +0,0 @@
-// stylelint-disable selector-no-qualifying-type
-
-.fade {
-  opacity: 0;
-  @include transition($transition-fade);
-
-  &.show {
-    opacity: 1;
-  }
-}
-
-.collapse {
-  display: none;
-  &.show {
-    display: block;
-  }
-}
-
-tr {
-  &.collapse.show {
-    display: table-row;
-  }
-}
-
-tbody {
-  &.collapse.show {
-    display: table-row-group;
-  }
-}
-
-.collapsing {
-  position: relative;
-  height: 0;
-  overflow: hidden;
-  @include transition($transition-collapse);
-}
diff --git a/assets/scss/_type.scss b/assets/scss/_type.scss
deleted file mode 100755
index b1b8f61..0000000
--- a/assets/scss/_type.scss
+++ /dev/null
@@ -1,125 +0,0 @@
-// stylelint-disable declaration-no-important, selector-list-comma-newline-after
-
-//
-// Headings
-//
-
-h1, h2, h3, h4, h5, h6,
-.h1, .h2, .h3, .h4, .h5, .h6 {
-  margin-bottom: $headings-margin-bottom;
-  font-family: $headings-font-family;
-  font-weight: $headings-font-weight;
-  line-height: $headings-line-height;
-  color: $headings-color;
-}
-
-h1, .h1 { font-size: $h1-font-size; }
-h2, .h2 { font-size: $h2-font-size; }
-h3, .h3 { font-size: $h3-font-size; }
-h4, .h4 { font-size: $h4-font-size; }
-h5, .h5 { font-size: $h5-font-size; }
-h6, .h6 { font-size: $h6-font-size; }
-
-.lead {
-  font-size: $lead-font-size;
-  font-weight: $lead-font-weight;
-}
-
-// Type display classes
-.display-1 {
-  font-size: $display1-size;
-  font-weight: $display1-weight;
-  line-height: $display-line-height;
-}
-.display-2 {
-  font-size: $display2-size;
-  font-weight: $display2-weight;
-  line-height: $display-line-height;
-}
-.display-3 {
-  font-size: $display3-size;
-  font-weight: $display3-weight;
-  line-height: $display-line-height;
-}
-.display-4 {
-  font-size: $display4-size;
-  font-weight: $display4-weight;
-  line-height: $display-line-height;
-}
-
-
-//
-// Horizontal rules
-//
-
-hr {
-  margin-top: 1rem;
-  margin-bottom: 1rem;
-  border: 0;
-  border-top: $hr-border-width solid $hr-border-color;
-}
-
-
-//
-// Emphasis
-//
-
-small,
-.small {
-  font-size: $small-font-size;
-  font-weight: $font-weight-normal;
-}
-
-mark,
-.mark {
-  padding: $mark-padding;
-  background-color: $mark-bg;
-}
-
-
-//
-// Lists
-//
-
-.list-unstyled {
-  @include list-unstyled;
-}
-
-// Inline turns list items into inline-block
-.list-inline {
-  @include list-unstyled;
-}
-.list-inline-item {
-  display: inline-block;
-
-  &:not(:last-child) {
-    margin-right: $list-inline-padding;
-  }
-}
-
-
-//
-// Misc
-//
-
-// Builds on `abbr`
-.initialism {
-  font-size: 90%;
-  text-transform: uppercase;
-}
-
-// Blockquotes
-.blockquote {
-  margin-bottom: $spacer;
-  font-size: $blockquote-font-size;
-}
-
-.blockquote-footer {
-  display: block;
-  font-size: 80%; // back to default font-size
-  color: $blockquote-small-color;
-
-  &::before {
-    content: "\2014 \00A0"; // em dash, nbsp
-  }
-}
diff --git a/assets/scss/_utilities.scss b/assets/scss/_utilities.scss
deleted file mode 100755
index 7b2a1eb..0000000
--- a/assets/scss/_utilities.scss
+++ /dev/null
@@ -1,14 +0,0 @@
- at import "utilities/align";
- at import "utilities/background";
- at import "utilities/borders";
- at import "utilities/clearfix";
- at import "utilities/display";
- at import "utilities/embed";
- at import "utilities/flex";
- at import "utilities/float";
- at import "utilities/position";
- at import "utilities/screenreaders";
- at import "utilities/sizing";
- at import "utilities/spacing";
- at import "utilities/text";
- at import "utilities/visibility";
diff --git a/assets/scss/_variables.scss b/assets/scss/_variables.scss
deleted file mode 100755
index 0fcb36d..0000000
--- a/assets/scss/_variables.scss
+++ /dev/null
@@ -1,828 +0,0 @@
-// Variables
-//
-// Variables should follow the `$component-state-property-size` formula for
-// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.
-
-
-//
-// Color system
-//
-
-// stylelint-disable
-$white:    #fff !default;
-$gray-100: #f8f9fa !default;
-$gray-200: #e9ecef !default;
-$gray-300: #dee2e6 !default;
-$gray-400: #ced4da !default;
-$gray-500: #adb5bd !default;
-$gray-600: #868e96 !default;
-$gray-700: #495057 !default;
-$gray-800: #343a40 !default;
-$gray-900: #212529 !default;
-$black:    #000 !default;
-
-$grays: () !default;
-$grays: map-merge((
-  "100": $gray-100,
-  "200": $gray-200,
-  "300": $gray-300,
-  "400": $gray-400,
-  "500": $gray-500,
-  "600": $gray-600,
-  "700": $gray-700,
-  "800": $gray-800,
-  "900": $gray-900
-), $grays);
-
-$blue:    #007bff !default;
-$indigo:  #6610f2 !default;
-$purple:  #6f42c1 !default;
-$pink:    #e83e8c !default;
-$red:     #dc3545 !default;
-$orange:  #fd7e14 !default;
-$yellow:  #ffc107 !default;
-$green:   #28a745 !default;
-$teal:    #20c997 !default;
-$cyan:    #17a2b8 !default;
-
-$colors: () !default;
-$colors: map-merge((
-  "blue":       $blue,
-  "indigo":     $indigo,
-  "purple":     $purple,
-  "pink":       $pink,
-  "red":        $red,
-  "orange":     $orange,
-  "yellow":     $yellow,
-  "green":      $green,
-  "teal":       $teal,
-  "cyan":       $cyan,
-  "white":      $white,
-  "gray":       $gray-600,
-  "gray-dark":  $gray-800
-), $colors);
-
-$primary:       $blue !default;
-$secondary:     $gray-600 !default;
-$success:       $green !default;
-$info:          $cyan !default;
-$warning:       $yellow !default;
-$danger:        $red !default;
-$light:         $gray-100 !default;
-$dark:          $gray-800 !default;
-
-$theme-colors: () !default;
-$theme-colors: map-merge((
-  "primary":    $primary,
-  "secondary":  $secondary,
-  "success":    $success,
-  "info":       $info,
-  "warning":    $warning,
-  "danger":     $danger,
-  "light":      $light,
-  "dark":       $dark
-), $theme-colors);
-// stylelint-enable
-
-// Set a specific jump point for requesting color jumps
-$theme-color-interval:      8% !default;
-
-
-// Options
-//
-// Quickly modify global styling by enabling or disabling optional features.
-
-$enable-caret:              true !default;
-$enable-rounded:            true !default;
-$enable-shadows:            false !default;
-$enable-gradients:          false !default;
-$enable-transitions:        true !default;
-$enable-hover-media-query:  false !default;
-$enable-grid-classes:       true !default;
-$enable-print-styles:       true !default;
-
-
-// Spacing
-//
-// Control the default styling of most Bootstrap elements by modifying these
-// variables. Mostly focused on spacing.
-// You can add more entries to the $spacers map, should you need more variation.
-
-$spacer: 1rem !default;
-$spacers: (
-  0: 0,
-  1: ($spacer * .25),
-  2: ($spacer * .5),
-  3: $spacer,
-  4: ($spacer * 1.5),
-  5: ($spacer * 3)
-) !default;
-
-// This variable affects the `.h-*` and `.w-*` classes.
-$sizes: (
-  25: 25%,
-  50: 50%,
-  75: 75%,
-  100: 100%
-) !default;
-
-// Body
-//
-// Settings for the `<body>` element.
-
-$body-bg:                   $white !default;
-$body-color:                $gray-900 !default;
-
-// Links
-//
-// Style anchor elements.
-
-$link-color:                theme-color("primary") !default;
-$link-decoration:           none !default;
-$link-hover-color:          darken($link-color, 15%) !default;
-$link-hover-decoration:     underline !default;
-
-// Paragraphs
-//
-// Style p element.
-
-$paragraph-margin-bottom:   1rem !default;
-
-
-// Grid breakpoints
-//
-// Define the minimum dimensions at which your layout will change,
-// adapting to different screen sizes, for use in media queries.
-
-$grid-breakpoints: (
-  xs: 0,
-  sm: 576px,
-  md: 768px,
-  lg: 992px,
-  xl: 1200px
-) !default;
-
- at include _assert-ascending($grid-breakpoints, "$grid-breakpoints");
- at include _assert-starts-at-zero($grid-breakpoints);
-
-
-// Grid containers
-//
-// Define the maximum width of `.container` for different screen sizes.
-
-$container-max-widths: (
-  sm: 540px,
-  md: 720px,
-  lg: 960px,
-  xl: 1140px
-) !default;
-
- at include _assert-ascending($container-max-widths, "$container-max-widths");
-
-
-// Grid columns
-//
-// Set the number of columns and specify the width of the gutters.
-
-$grid-columns:                12 !default;
-$grid-gutter-width:           30px !default;
-
-// Components
-//
-// Define common padding and border radius sizes and more.
-
-$line-height-lg:              1.5 !default;
-$line-height-sm:              1.5 !default;
-
-$border-width:                1px !default;
-$border-color:                $gray-200 !default;
-
-$border-radius:               .25rem !default;
-$border-radius-lg:            .3rem !default;
-$border-radius-sm:            .2rem !default;
-
-$component-active-color:      $white !default;
-$component-active-bg:         theme-color("primary") !default;
-
-$caret-width:                 .3em !default;
-
-$transition-base:             all .2s ease-in-out !default;
-$transition-fade:             opacity .15s linear !default;
-$transition-collapse:         height .35s ease !default;
-
-
-// Fonts
-//
-// Font, line-height, and color for body text, headings, and more.
-
-// stylelint-disable value-keyword-case
-$font-family-sans-serif:      -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !default;
-$font-family-monospace:       Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default;
-$font-family-base:            $font-family-sans-serif !default;
-// stylelint-enable value-keyword-case
-
-$font-size-base:              1rem !default; // Assumes the browser default, typically `16px`
-$font-size-lg:                ($font-size-base * 1.25) !default;
-$font-size-sm:                ($font-size-base * .875) !default;
-
-$font-weight-light:           300 !default;
-$font-weight-normal:          400 !default;
-$font-weight-bold:            700 !default;
-
-$font-weight-base:            $font-weight-normal !default;
-$line-height-base:            1.5 !default;
-
-$h1-font-size:                $font-size-base * 2.5 !default;
-$h2-font-size:                $font-size-base * 2 !default;
-$h3-font-size:                $font-size-base * 1.75 !default;
-$h4-font-size:                $font-size-base * 1.5 !default;
-$h5-font-size:                $font-size-base * 1.25 !default;
-$h6-font-size:                $font-size-base !default;
-
-$headings-margin-bottom:      ($spacer / 2) !default;
-$headings-font-family:        inherit !default;
-$headings-font-weight:        500 !default;
-$headings-line-height:        1.2 !default;
-$headings-color:              inherit !default;
-
-$display1-size:               6rem !default;
-$display2-size:               5.5rem !default;
-$display3-size:               4.5rem !default;
-$display4-size:               3.5rem !default;
-
-$display1-weight:             300 !default;
-$display2-weight:             300 !default;
-$display3-weight:             300 !default;
-$display4-weight:             300 !default;
-$display-line-height:         $headings-line-height !default;
-
-$lead-font-size:              ($font-size-base * 1.25) !default;
-$lead-font-weight:            300 !default;
-
-$small-font-size:             80% !default;
-
-$text-muted:                  $gray-600 !default;
-
-$blockquote-small-color:      $gray-600 !default;
-$blockquote-font-size:        ($font-size-base * 1.25) !default;
-
-$hr-border-color:             rgba($black,.1) !default;
-$hr-border-width:             $border-width !default;
-
-$mark-padding:                .2em !default;
-
-$dt-font-weight:              $font-weight-bold !default;
-
-$kbd-box-shadow:              inset 0 -.1rem 0 rgba($black,.25) !default;
-$nested-kbd-font-weight:      $font-weight-bold !default;
-
-$list-inline-padding:         5px !default;
-
-$mark-bg: #fcf8e3 !default;
-
-
-// Tables
-//
-// Customizes the `.table` component with basic values, each used across all table variations.
-
-$table-cell-padding:          .75rem !default;
-$table-cell-padding-sm:       .3rem !default;
-
-$table-bg:                    transparent !default;
-$table-accent-bg:             rgba($black,.05) !default;
-$table-hover-bg:              rgba($black,.075) !default;
-$table-active-bg:             $table-hover-bg !default;
-
-$table-border-width:          $border-width !default;
-$table-border-color:          $gray-200 !default;
-
-$table-head-bg:               $gray-200 !default;
-$table-head-color:            $gray-700 !default;
-
-$table-dark-bg:               $gray-900 !default;
-$table-dark-accent-bg:        rgba($white, .05) !default;
-$table-dark-hover-bg:         rgba($white, .075) !default;
-$table-dark-border-color:     lighten($gray-900, 7.5%) !default;
-$table-dark-color:            $body-bg !default;
-
-
-// Buttons
-//
-// For each of Bootstrap's buttons, define text, background and border color.
-
-$input-btn-padding-y:         .375rem !default;
-$input-btn-padding-x:         .75rem !default;
-$input-btn-line-height:       $line-height-base !default;
-
-$input-btn-focus-width:       .2rem !default;
-$input-btn-focus-color:       rgba(theme-color("primary"), .25) !default;
-$input-btn-focus-box-shadow:  0 0 0 $input-btn-focus-width $input-btn-focus-color !default;
-
-$input-btn-padding-y-sm:      .25rem !default;
-$input-btn-padding-x-sm:      .5rem !default;
-$input-btn-line-height-sm:    $line-height-sm !default;
-
-$input-btn-padding-y-lg:      .5rem !default;
-$input-btn-padding-x-lg:      1rem !default;
-$input-btn-line-height-lg:    $line-height-lg !default;
-
-$btn-font-weight:             $font-weight-normal !default;
-$btn-box-shadow:              inset 0 1px 0 rgba($white,.15), 0 1px 1px rgba($black,.075) !default;
-$btn-active-box-shadow:       inset 0 3px 5px rgba($black,.125) !default;
-
-$btn-link-disabled-color:     $gray-600 !default;
-
-$btn-block-spacing-y:         .5rem !default;
-
-// Allows for customizing button radius independently from global border radius
-$btn-border-radius:           $border-radius !default;
-$btn-border-radius-lg:        $border-radius-lg !default;
-$btn-border-radius-sm:        $border-radius-sm !default;
-
-$btn-transition:              background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
-
-
-// Forms
-
-$input-bg:                              $white !default;
-$input-disabled-bg:                     $gray-200 !default;
-
-$input-color:                           $gray-700 !default;
-$input-border-color:                    $gray-400 !default;
-$input-btn-border-width:                $border-width !default; // For form controls and buttons
-$input-box-shadow:                      inset 0 1px 1px rgba($black,.075) !default;
-
-$input-border-radius:                   $border-radius !default;
-$input-border-radius-lg:                $border-radius-lg !default;
-$input-border-radius-sm:                $border-radius-sm !default;
-
-$input-focus-bg:                        $input-bg !default;
-$input-focus-border-color:              lighten(theme-color("primary"), 25%) !default;
-$input-focus-color:                     $input-color !default;
-
-$input-placeholder-color:               $gray-600 !default;
-
-$input-height-border:                   $input-btn-border-width * 2 !default;
-
-$input-height-inner:                    ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;
-$input-height:                          calc(#{$input-height-inner} + #{$input-height-border}) !default;
-
-$input-height-inner-sm:                 ($font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;
-$input-height-sm:                       calc(#{$input-height-inner-sm} + #{$input-height-border}) !default;
-
-$input-height-inner-lg:                 ($font-size-lg * $input-btn-line-height-lg) + ($input-btn-padding-y-lg * 2) !default;
-$input-height-lg:                       calc(#{$input-height-inner-lg} + #{$input-height-border}) !default;
-
-$input-transition:                      border-color ease-in-out .15s, box-shadow ease-in-out .15s !default;
-
-$form-text-margin-top:                  .25rem !default;
-
-$form-check-margin-bottom:              .5rem !default;
-$form-check-input-gutter:               1.25rem !default;
-$form-check-input-margin-y:             .25rem !default;
-$form-check-input-margin-x:             .25rem !default;
-
-$form-check-inline-margin-x:            .75rem !default;
-
-$form-group-margin-bottom:              1rem !default;
-
-$input-group-addon-color:               $input-color !default;
-$input-group-addon-bg:                  $gray-200 !default;
-$input-group-addon-border-color:        $input-border-color !default;
-
-$custom-control-gutter:                 1.5rem !default;
-$custom-control-spacer-y:               .25rem !default;
-$custom-control-spacer-x:               1rem !default;
-
-$custom-control-indicator-size:         1rem !default;
-$custom-control-indicator-bg:           #ddd !default;
-$custom-control-indicator-bg-size:      50% 50% !default;
-$custom-control-indicator-box-shadow:   inset 0 .25rem .25rem rgba($black,.1) !default;
-
-$custom-control-indicator-disabled-bg:          $gray-200 !default;
-$custom-control-description-disabled-color:     $gray-600 !default;
-
-$custom-control-indicator-checked-color:        $white !default;
-$custom-control-indicator-checked-bg:           theme-color("primary") !default;
-$custom-control-indicator-checked-box-shadow:   none !default;
-
-$custom-control-indicator-focus-box-shadow:     0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;
-
-$custom-control-indicator-active-color:         $white !default;
-$custom-control-indicator-active-bg:            lighten(theme-color("primary"), 35%) !default;
-$custom-control-indicator-active-box-shadow:    none !default;
-
-$custom-checkbox-indicator-border-radius:       $border-radius !default;
-$custom-checkbox-indicator-icon-checked:        str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E"), "#", "%23") !default;
-
-$custom-checkbox-indicator-indeterminate-bg:    theme-color("primary") !default;
-$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;
-$custom-checkbox-indicator-icon-indeterminate:  str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3E%3C/svg%3E"), "#", "%23") !default;
-$custom-checkbox-indicator-indeterminate-box-shadow: none !default;
-
-$custom-radio-indicator-border-radius:          50% !default;
-$custom-radio-indicator-icon-checked:           str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3E%3C/svg%3E"), "#", "%23") !default;
-
-$custom-select-padding-y:           .375rem !default;
-$custom-select-padding-x:          .75rem !default;
-$custom-select-height:              $input-height !default;
-$custom-select-indicator-padding:   1rem !default; // Extra padding to account for the presence of the background-image based indicator
-$custom-select-line-height:         $input-btn-line-height !default;
-$custom-select-color:               $input-color !default;
-$custom-select-disabled-color:      $gray-600 !default;
-$custom-select-bg:                  $white !default;
-$custom-select-disabled-bg:         $gray-200 !default;
-$custom-select-bg-size:             8px 10px !default; // In pixels because image dimensions
-$custom-select-indicator-color:     #333 !default;
-$custom-select-indicator:           str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E"), "#", "%23") !default;
-$custom-select-border-width:        $input-btn-border-width !default;
-$custom-select-border-color:        $input-border-color !default;
-$custom-select-border-radius:       $border-radius !default;
-
-$custom-select-focus-border-color:  lighten(theme-color("primary"), 25%) !default;
-$custom-select-focus-box-shadow:    inset 0 1px 2px rgba($black, .075), 0 0 5px rgba($custom-select-focus-border-color, .5) !default;
-
-$custom-select-font-size-sm:        75% !default;
-$custom-select-height-sm:           $input-height-sm !default;
-
-$custom-file-height:                $input-height !default;
-$custom-file-width:                 14rem !default;
-$custom-file-focus-box-shadow:      0 0 0 .075rem $white, 0 0 0 .2rem theme-color("primary") !default;
-
-$custom-file-padding-y:             $input-btn-padding-y !default;
-$custom-file-padding-x:             $input-btn-padding-x !default;
-$custom-file-line-height:           $input-btn-line-height !default;
-$custom-file-color:                 $input-color !default;
-$custom-file-bg:                    $input-bg !default;
-$custom-file-border-width:          $input-btn-border-width !default;
-$custom-file-border-color:          $input-border-color !default;
-$custom-file-border-radius:         $input-border-radius !default;
-$custom-file-box-shadow:            $input-box-shadow !default;
-$custom-file-button-color:          $custom-file-color !default;
-$custom-file-button-bg:             $input-group-addon-bg !default;
-$custom-file-text: (
-  placeholder: (
-    en: "Choose file..."
-  ),
-  button-label: (
-    en: "Browse"
-  )
-) !default;
-
-
-// Form validation
-$form-feedback-valid-color:         theme-color("success") !default;
-$form-feedback-invalid-color:       theme-color("danger") !default;
-
-
-// Dropdowns
-//
-// Dropdown menu container and contents.
-
-$dropdown-min-width:                10rem !default;
-$dropdown-padding-y:                .5rem !default;
-$dropdown-spacer:                   .125rem !default;
-$dropdown-bg:                       $white !default;
-$dropdown-border-color:             rgba($black,.15) !default;
-$dropdown-border-width:             $border-width !default;
-$dropdown-divider-bg:               $gray-200 !default;
-$dropdown-box-shadow:               0 .5rem 1rem rgba($black,.175) !default;
-
-$dropdown-link-color:               $gray-900 !default;
-$dropdown-link-hover-color:         darken($gray-900, 5%) !default;
-$dropdown-link-hover-bg:            $gray-100 !default;
-
-$dropdown-link-active-color:        $component-active-color !default;
-$dropdown-link-active-bg:           $component-active-bg !default;
-
-$dropdown-link-disabled-color:      $gray-600 !default;
-
-$dropdown-item-padding-y:           .25rem !default;
-$dropdown-item-padding-x:           1.5rem !default;
-
-$dropdown-header-color:             $gray-600 !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.
-
-$zindex-dropdown:                   1000 !default;
-$zindex-sticky:                     1020 !default;
-$zindex-fixed:                      1030 !default;
-$zindex-modal-backdrop:             1040 !default;
-$zindex-modal:                      1050 !default;
-$zindex-popover:                    1060 !default;
-$zindex-tooltip:                    1070 !default;
-
-// Navs
-
-$nav-link-padding-y:                .5rem !default;
-$nav-link-padding-x:                1rem !default;
-$nav-link-disabled-color:           $gray-600 !default;
-
-$nav-tabs-border-color:             #ddd !default;
-$nav-tabs-border-width:             $border-width !default;
-$nav-tabs-border-radius:            $border-radius !default;
-$nav-tabs-link-hover-border-color:  $gray-200 !default;
-$nav-tabs-link-active-color:        $gray-700 !default;
-$nav-tabs-link-active-bg:           $body-bg !default;
-$nav-tabs-link-active-border-color: #ddd !default;
-
-$nav-pills-border-radius:           $border-radius !default;
-$nav-pills-link-active-color:       $component-active-color !default;
-$nav-pills-link-active-bg:          $component-active-bg !default;
-
-// Navbar
-
-$navbar-padding-y:                  ($spacer / 2) !default;
-$navbar-padding-x:                  $spacer !default;
-
-$navbar-brand-font-size:            $font-size-lg !default;
-// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link
-$nav-link-height:                   ($font-size-base * $line-height-base + $nav-link-padding-y * 2) !default;
-$navbar-brand-height:               $navbar-brand-font-size * $line-height-base !default;
-$navbar-brand-padding-y:            ($nav-link-height - $navbar-brand-height) / 2 !default;
-
-$navbar-toggler-padding-y:          .25rem !default;
-$navbar-toggler-padding-x:          .75rem !default;
-$navbar-toggler-font-size:          $font-size-lg !default;
-$navbar-toggler-border-radius:      $btn-border-radius !default;
-
-$navbar-dark-color:                 rgba($white,.5) !default;
-$navbar-dark-hover-color:           rgba($white,.75) !default;
-$navbar-dark-active-color:          $white !default;
-$navbar-dark-disabled-color:        rgba($white,.25) !default;
-$navbar-dark-toggler-icon-bg:       str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"), "#", "%23") !default;
-$navbar-dark-toggler-border-color:  rgba($white,.1) !default;
-
-$navbar-light-color:                rgba($black,.5) !default;
-$navbar-light-hover-color:          rgba($black,.7) !default;
-$navbar-light-active-color:         rgba($black,.9) !default;
-$navbar-light-disabled-color:       rgba($black,.3) !default;
-$navbar-light-toggler-icon-bg:      str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"), "#", "%23") !default;
-$navbar-light-toggler-border-color: rgba($black,.1) !default;
-
-// Pagination
-
-$pagination-padding-y:              .5rem !default;
-$pagination-padding-x:              .75rem !default;
-$pagination-padding-y-sm:           .25rem !default;
-$pagination-padding-x-sm:           .5rem !default;
-$pagination-padding-y-lg:           .75rem !default;
-$pagination-padding-x-lg:           1.5rem !default;
-$pagination-line-height:            1.25 !default;
-
-$pagination-color:                  $link-color !default;
-$pagination-bg:                     $white !default;
-$pagination-border-width:           $border-width !default;
-$pagination-border-color:           #ddd !default;
-
-$pagination-hover-color:            $link-hover-color !default;
-$pagination-hover-bg:               $gray-200 !default;
-$pagination-hover-border-color:     #ddd !default;
-
-$pagination-active-color:           $white !default;
-$pagination-active-bg:              theme-color("primary") !default;
-$pagination-active-border-color:    theme-color("primary") !default;
-
-$pagination-disabled-color:         $gray-600 !default;
-$pagination-disabled-bg:            $white !default;
-$pagination-disabled-border-color:  #ddd !default;
-
-
-// Jumbotron
-
-$jumbotron-padding:                 2rem !default;
-$jumbotron-bg:                      $gray-200 !default;
-
-
-// Cards
-
-$card-spacer-y:                     .75rem !default;
-$card-spacer-x:                     1.25rem !default;
-$card-border-width:                 $border-width !default;
-$card-border-radius:                $border-radius !default;
-$card-border-color:                 rgba($black,.125) !default;
-$card-inner-border-radius:          calc(#{$card-border-radius} - #{$card-border-width}) !default;
-$card-cap-bg:                       rgba($black, .03) !default;
-$card-bg:                           $white !default;
-
-$card-img-overlay-padding:          1.25rem !default;
-
-$card-group-margin:                 ($grid-gutter-width / 2) !default;
-$card-deck-margin:                  $card-group-margin !default;
-
-$card-columns-count:                3 !default;
-$card-columns-gap:                  1.25rem !default;
-$card-columns-margin:               $card-spacer-y !default;
-
-
-// Tooltips
-
-$tooltip-max-width:                 200px !default;
-$tooltip-color:                     $white !default;
-$tooltip-bg:                        $black !default;
-$tooltip-opacity:                   .9 !default;
-$tooltip-padding-y:                 3px !default;
-$tooltip-padding-x:                 8px !default;
-$tooltip-margin:                    0 !default;
-
-
-$tooltip-arrow-width:               5px !default;
-$tooltip-arrow-height:              5px !default;
-$tooltip-arrow-color:               $tooltip-bg !default;
-
-
-// Popovers
-
-$popover-bg:                        $white !default;
-$popover-max-width:                 276px !default;
-$popover-border-width:              $border-width !default;
-$popover-border-color:              rgba($black,.2) !default;
-$popover-box-shadow:                0 .25rem .5rem rgba($black,.2) !default;
-
-$popover-header-bg:                 darken($popover-bg, 3%) !default;
-$popover-header-color:              $headings-color !default;
-$popover-header-padding-y:          .5rem !default;
-$popover-header-padding-x:          .75rem !default;
-
-$popover-body-color:                $body-color !default;
-$popover-body-padding-y:            $popover-header-padding-y !default;
-$popover-body-padding-x:            $popover-header-padding-x !default;
-
-$popover-arrow-width:               .8rem !default;
-$popover-arrow-height:              .4rem !default;
-$popover-arrow-color:               $popover-bg !default;
-
-$popover-arrow-outer-color:         fade-in($popover-border-color, .05) !default;
-
-
-// Badges
-
-$badge-font-size:                   75% !default;
-$badge-font-weight:                 $font-weight-bold !default;
-$badge-padding-y:                   .25em !default;
-$badge-padding-x:                   .4em !default;
-$badge-border-radius:               $border-radius !default;
-
-$badge-pill-padding-x:              .6em !default;
-// Use a higher than normal value to ensure completely rounded edges when
-// customizing padding or font-size on labels.
-$badge-pill-border-radius:          10rem !default;
-
-
-// Modals
-
-// Padding applied to the modal body
-$modal-inner-padding:               15px !default;
-
-$modal-dialog-margin:               10px !default;
-$modal-dialog-margin-y-sm-up:       30px !default;
-
-$modal-title-line-height:           $line-height-base !default;
-
-$modal-content-bg:                  $white !default;
-$modal-content-border-color:        rgba($black,.2) !default;
-$modal-content-border-width:        $border-width !default;
-$modal-content-box-shadow-xs:       0 3px 9px rgba($black,.5) !default;
-$modal-content-box-shadow-sm-up:    0 5px 15px rgba($black,.5) !default;
-
-$modal-backdrop-bg:                 $black !default;
-$modal-backdrop-opacity:            .5 !default;
-$modal-header-border-color:         $gray-200 !default;
-$modal-footer-border-color:         $modal-header-border-color !default;
-$modal-header-border-width:         $modal-content-border-width !default;
-$modal-footer-border-width:         $modal-header-border-width !default;
-$modal-header-padding:              15px !default;
-
-$modal-lg:                          800px !default;
-$modal-md:                          500px !default;
-$modal-sm:                          300px !default;
-
-$modal-transition:                  transform .3s ease-out !default;
-
-
-// Alerts
-//
-// Define alert colors, border radius, and padding.
-
-$alert-padding-y:                   .75rem !default;
-$alert-padding-x:                   1.25rem !default;
-$alert-margin-bottom:               1rem !default;
-$alert-border-radius:               $border-radius !default;
-$alert-link-font-weight:            $font-weight-bold !default;
-$alert-border-width:                $border-width !default;
-
-
-// Progress bars
-
-$progress-height:                   1rem !default;
-$progress-font-size:                ($font-size-base * .75) !default;
-$progress-bg:                       $gray-200 !default;
-$progress-border-radius:            $border-radius !default;
-$progress-box-shadow:               inset 0 .1rem .1rem rgba($black,.1) !default;
-$progress-bar-color:                $white !default;
-$progress-bar-bg:                   theme-color("primary") !default;
-$progress-bar-animation-timing:     1s linear infinite !default;
-$progress-bar-transition:           width .6s ease !default;
-
-// List group
-
-$list-group-bg:                     $white !default;
-$list-group-border-color:           rgba($black,.125) !default;
-$list-group-border-width:           $border-width !default;
-$list-group-border-radius:          $border-radius !default;
-
-$list-group-item-padding-y:         .75rem !default;
-$list-group-item-padding-x:         1.25rem !default;
-
-$list-group-hover-bg:               $gray-100 !default;
-$list-group-active-color:           $component-active-color !default;
-$list-group-active-bg:              $component-active-bg !default;
-$list-group-active-border-color:    $list-group-active-bg !default;
-
-$list-group-disabled-color:         $gray-600 !default;
-$list-group-disabled-bg:            $list-group-bg !default;
-
-$list-group-action-color:           $gray-700 !default;
-$list-group-action-hover-color:     $list-group-action-color !default;
-
-$list-group-action-active-color:    $body-color !default;
-$list-group-action-active-bg:       $gray-200 !default;
-
-
-// Image thumbnails
-
-$thumbnail-padding:                 .25rem !default;
-$thumbnail-bg:                      $body-bg !default;
-$thumbnail-border-width:            $border-width !default;
-$thumbnail-border-color:            #ddd !default;
-$thumbnail-border-radius:           $border-radius !default;
-$thumbnail-box-shadow:              0 1px 2px rgba($black,.075) !default;
-$thumbnail-transition:              all .2s ease-in-out !default;
-
-
-// Figures
-
-$figure-caption-font-size:          90% !default;
-$figure-caption-color:              $gray-600 !default;
-
-
-// Breadcrumbs
-
-$breadcrumb-padding-y:              .75rem !default;
-$breadcrumb-padding-x:              1rem !default;
-$breadcrumb-item-padding:           .5rem !default;
-
-$breadcrumb-margin-bottom:          1rem !default;
-
-$breadcrumb-bg:                     $gray-200 !default;
-$breadcrumb-divider-color:          $gray-600 !default;
-$breadcrumb-active-color:           $gray-600 !default;
-$breadcrumb-divider:                "/" !default;
-
-
-// Carousel
-
-$carousel-control-color:            $white !default;
-$carousel-control-width:            15% !default;
-$carousel-control-opacity:          .5 !default;
-
-$carousel-indicator-width:          30px !default;
-$carousel-indicator-height:         3px !default;
-$carousel-indicator-spacer:         3px !default;
-$carousel-indicator-active-bg:      $white !default;
-
-$carousel-caption-width:            70% !default;
-$carousel-caption-color:            $white !default;
-
-$carousel-control-icon-width:       20px !default;
-
-$carousel-control-prev-icon-bg:     str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E"), "#", "%23") !default;
-$carousel-control-next-icon-bg:     str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E"), "#", "%23") !default;
-
-$carousel-transition:               transform .6s ease !default;
-
-
-// Close
-
-$close-font-size:                   $font-size-base * 1.5 !default;
-$close-font-weight:                 $font-weight-bold !default;
-$close-color:                       $black !default;
-$close-text-shadow:                 0 1px 0 $white !default;
-
-// Code
-
-$code-font-size:                    90% !default;
-$code-padding-y:                    .2rem !default;
-$code-padding-x:                    .4rem !default;
-$code-color:                        #bd4147 !default;
-$code-bg:                           $gray-100 !default;
-
-$kbd-color:                         $white !default;
-$kbd-bg:                            $gray-900 !default;
-
-$pre-color:                         $gray-900 !default;
-$pre-scrollable-max-height:         340px !default;
diff --git a/assets/scss/bootstrap-grid.scss b/assets/scss/bootstrap-grid.scss
deleted file mode 100755
index d7d4e78..0000000
--- a/assets/scss/bootstrap-grid.scss
+++ /dev/null
@@ -1,35 +0,0 @@
-/*!
- * Bootstrap Grid v4.0.0-beta.2 (https://getbootstrap.com)
- * Copyright 2011-2017 The Bootstrap Authors
- * Copyright 2011-2017 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
-
- at at-root {
-  @-ms-viewport { width: device-width; } // stylelint-disable-line at-rule-no-vendor-prefix
-}
-
-html {
-  box-sizing: border-box;
-  -ms-overflow-style: scrollbar;
-}
-
-*,
-*::before,
-*::after {
-  box-sizing: inherit;
-}
-
- at import "functions";
- at import "variables";
-
-//
-// Grid mixins
-//
-
- at import "mixins/breakpoints";
- at import "mixins/grid-framework";
- at import "mixins/grid";
-
- at import "grid";
- at import "utilities/flex";
diff --git a/assets/scss/bootstrap-reboot.scss b/assets/scss/bootstrap-reboot.scss
deleted file mode 100755
index 3bc8760..0000000
--- a/assets/scss/bootstrap-reboot.scss
+++ /dev/null
@@ -1,12 +0,0 @@
-/*!
- * Bootstrap Reboot v4.0.0-beta.2 (https://getbootstrap.com)
- * Copyright 2011-2017 The Bootstrap Authors
- * Copyright 2011-2017 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
- */
-
- at import "functions";
- at import "variables";
- at import "mixins";
- at import "reboot";
diff --git a/assets/scss/bootstrap.scss b/assets/scss/bootstrap.scss
deleted file mode 100755
index a393ac1..0000000
--- a/assets/scss/bootstrap.scss
+++ /dev/null
@@ -1,45 +0,0 @@
-/*!
- * Bootstrap v4.0.0-beta.2 (https://getbootstrap.com)
- * Copyright 2011-2017 The Bootstrap Authors
- * Copyright 2011-2017 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
- at import "tor-variables";
- at import "functions";
- at import "variables";
- at import "mixins";
- at import "root";
- at import "print";
- at import "reboot";
- at import "type";
- at import "images";
- at import "code";
- at import "grid";
- at import "tables";
- at import "forms";
- at import "buttons";
- at import "transitions";
- at import "dropdown";
- at import "button-group";
- at import "input-group";
- at import "custom-forms";
- at import "nav";
- at import "navbar";
- at import "card";
- at import "breadcrumb";
- at import "pagination";
- at import "badge";
- at import "jumbotron";
- at import "alert";
- at import "progress";
- at import "media";
- at import "list-group";
- at import "close";
- at import "modal";
- at import "tooltip";
- at import "popover";
- at import "carousel";
- at import "utilities";
- at import "component-examples";
- at import "sidebar";
- at import "tor";
diff --git a/assets/scss/mixins/_alert.scss b/assets/scss/mixins/_alert.scss
deleted file mode 100755
index db5a7eb..0000000
--- a/assets/scss/mixins/_alert.scss
+++ /dev/null
@@ -1,13 +0,0 @@
- at mixin alert-variant($background, $border, $color) {
-  color: $color;
-  @include gradient-bg($background);
-  border-color: $border;
-
-  hr {
-    border-top-color: darken($border, 5%);
-  }
-
-  .alert-link {
-    color: darken($color, 10%);
-  }
-}
diff --git a/assets/scss/mixins/_background-variant.scss b/assets/scss/mixins/_background-variant.scss
deleted file mode 100755
index 7d1bc97..0000000
--- a/assets/scss/mixins/_background-variant.scss
+++ /dev/null
@@ -1,20 +0,0 @@
-// stylelint-disable declaration-no-important
-
-// Contextual backgrounds
-
- at mixin bg-variant($parent, $color) {
-  #{$parent} {
-    background-color: $color !important;
-  }
-  a#{$parent} {
-    @include hover-focus {
-      background-color: darken($color, 10%) !important;
-    }
-  }
-}
-
- at mixin bg-gradient-variant($parent, $color) {
-  #{$parent} {
-    background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;
-  }
-}
diff --git a/assets/scss/mixins/_badge.scss b/assets/scss/mixins/_badge.scss
deleted file mode 100755
index eeca0b4..0000000
--- a/assets/scss/mixins/_badge.scss
+++ /dev/null
@@ -1,12 +0,0 @@
- at mixin badge-variant($bg) {
-  color: color-yiq($bg);
-  background-color: $bg;
-
-  &[href] {
-    @include hover-focus {
-      color: color-yiq($bg);
-      text-decoration: none;
-      background-color: darken($bg, 10%);
-    }
-  }
-}
diff --git a/assets/scss/mixins/_border-radius.scss b/assets/scss/mixins/_border-radius.scss
deleted file mode 100755
index 2024feb..0000000
--- a/assets/scss/mixins/_border-radius.scss
+++ /dev/null
@@ -1,35 +0,0 @@
-// Single side border-radius
-
- at mixin border-radius($radius: $border-radius) {
-  @if $enable-rounded {
-    border-radius: $radius;
-  }
-}
-
- at mixin border-top-radius($radius) {
-  @if $enable-rounded {
-    border-top-left-radius: $radius;
-    border-top-right-radius: $radius;
-  }
-}
-
- at mixin border-right-radius($radius) {
-  @if $enable-rounded {
-    border-top-right-radius: $radius;
-    border-bottom-right-radius: $radius;
-  }
-}
-
- at mixin border-bottom-radius($radius) {
-  @if $enable-rounded {
-    border-bottom-right-radius: $radius;
-    border-bottom-left-radius: $radius;
-  }
-}
-
- at mixin border-left-radius($radius) {
-  @if $enable-rounded {
-    border-top-left-radius: $radius;
-    border-bottom-left-radius: $radius;
-  }
-}
diff --git a/assets/scss/mixins/_box-shadow.scss b/assets/scss/mixins/_box-shadow.scss
deleted file mode 100755
index b2410e5..0000000
--- a/assets/scss/mixins/_box-shadow.scss
+++ /dev/null
@@ -1,5 +0,0 @@
- at mixin box-shadow($shadow...) {
-  @if $enable-shadows {
-    box-shadow: $shadow;
-  }
-}
diff --git a/assets/scss/mixins/_breakpoints.scss b/assets/scss/mixins/_breakpoints.scss
deleted file mode 100755
index a9866bd..0000000
--- a/assets/scss/mixins/_breakpoints.scss
+++ /dev/null
@@ -1,119 +0,0 @@
-// Breakpoint viewport sizes and media queries.
-//
-// Breakpoints are defined as a map of (name: minimum width), order from small to large:
-//
-//    (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)
-//
-// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.
-
-// Name of the next breakpoint, or null for the last breakpoint.
-//
-//    >> breakpoint-next(sm)
-//    md
-//    >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
-//    md
-//    >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))
-//    md
- at function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {
-  $n: index($breakpoint-names, $name);
-  @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);
-}
-
-// Minimum breakpoint width. Null for the smallest (first) breakpoint.
-//
-//    >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
-//    576px
- at function breakpoint-min($name, $breakpoints: $grid-breakpoints) {
-  $min: map-get($breakpoints, $name);
-  @return if($min != 0, $min, null);
-}
-
-// Maximum breakpoint width. Null for the largest (last) breakpoint.
-// The maximum value is calculated as the minimum of the next one less 0.1.
-//
-//    >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
-//    767px
- at function breakpoint-max($name, $breakpoints: $grid-breakpoints) {
-  $next: breakpoint-next($name, $breakpoints);
-  @return if($next, breakpoint-min($next, $breakpoints) - 1px, null);
-}
-
-// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.
-// Useful for making responsive utilities.
-//
-//    >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
-//    ""  (Returns a blank string)
-//    >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
-//    "-sm"
- at function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {
-  @return if(breakpoint-min($name, $breakpoints) == null, "", "-#{$name}");
-}
-
-// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.
-// Makes the @content apply to the given breakpoint and wider.
- at mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {
-  $min: breakpoint-min($name, $breakpoints);
-  @if $min {
-    @media (min-width: $min) {
-      @content;
-    }
-  } @else {
-    @content;
-  }
-}
-
-// Media of at most the maximum breakpoint width. No query for the largest breakpoint.
-// Makes the @content apply to the given breakpoint and narrower.
- at mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {
-  $max: breakpoint-max($name, $breakpoints);
-  @if $max {
-    @media (max-width: $max) {
-      @content;
-    }
-  } @else {
-    @content;
-  }
-}
-
-// Media that spans multiple breakpoint widths.
-// Makes the @content apply between the min and max breakpoints
- at mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {
-  $min: breakpoint-min($lower, $breakpoints);
-  $max: breakpoint-max($upper, $breakpoints);
-
-  @if $min != null and $max != null {
-    @media (min-width: $min) and (max-width: $max) {
-      @content;
-    }
-  } @else if $max == null {
-    @include media-breakpoint-up($lower) {
-      @content;
-    }
-  } @else if $min == null {
-    @include media-breakpoint-down($upper) {
-      @content;
-    }
-  }
-}
-
-// Media between the breakpoint's minimum and maximum widths.
-// No minimum for the smallest breakpoint, and no maximum for the largest one.
-// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.
- at mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {
-  $min: breakpoint-min($name, $breakpoints);
-  $max: breakpoint-max($name, $breakpoints);
-
-  @if $min != null and $max != null {
-    @media (min-width: $min) and (max-width: $max) {
-      @content;
-    }
-  } @else if $max == null {
-    @include media-breakpoint-up($name) {
-      @content;
-    }
-  } @else if $min == null {
-    @include media-breakpoint-down($name) {
-      @content;
-    }
-  }
-}
diff --git a/assets/scss/mixins/_buttons.scss b/assets/scss/mixins/_buttons.scss
deleted file mode 100755
index 9e06261..0000000
--- a/assets/scss/mixins/_buttons.scss
+++ /dev/null
@@ -1,94 +0,0 @@
-// Button variants
-//
-// Easily pump out default styles, as well as :hover, :focus, :active,
-// and disabled options for all buttons
-
- at mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {
-  color: color-yiq($background);
-  @include gradient-bg($background);
-  border-color: $border;
-  @include box-shadow($btn-box-shadow);
-
-  @include hover {
-    color: color-yiq($hover-background);
-    @include gradient-bg($hover-background);
-    border-color: $hover-border;
-  }
-
-  &:focus,
-  &.focus {
-    // Avoid using mixin so we can pass custom focus shadow properly
-    @if $enable-shadows {
-      box-shadow: $btn-box-shadow, 0 0 0 $input-btn-focus-width rgba($border, .5);
-    } @else {
-      box-shadow: 0 0 0 $input-btn-focus-width rgba($border, .5);
-    }
-  }
-
-  // Disabled comes first so active can properly restyle
-  &.disabled,
-  &:disabled {
-    background-color: $background;
-    border-color: $border;
-  }
-
-  &:not([disabled]):not(.disabled):active,
-  &:not([disabled]):not(.disabled).active,
-  .show > &.dropdown-toggle {
-    color: color-yiq($active-background);
-    background-color: $active-background;
-    @if $enable-gradients {
-      background-image: none; // Remove the gradient for the pressed/active state
-    }
-    border-color: $active-border;
-
-    // Avoid using mixin so we can pass custom focus shadow properly
-    @if $enable-shadows {
-      box-shadow: $btn-active-box-shadow, 0 0 0 $input-btn-focus-width rgba($border, .5);
-    } @else {
-      box-shadow: 0 0 0 $input-btn-focus-width rgba($border, .5);
-    }
-  }
-}
-
- at mixin button-outline-variant($color, $color-hover: #fff) {
-  color: $color;
-  background-color: transparent;
-  background-image: none;
-  border-color: $color;
-
-  @include hover {
-    color: $color-hover;
-    background-color: $color;
-    border-color: $color;
-  }
-
-  &:focus,
-  &.focus {
-    box-shadow: 0 0 0 $input-btn-focus-width rgba($color, .5);
-  }
-
-  &.disabled,
-  &:disabled {
-    color: $color;
-    background-color: transparent;
-  }
-
-  &:not([disabled]):not(.disabled):active,
-  &:not([disabled]):not(.disabled).active,
-  .show > &.dropdown-toggle {
-    color: $color-hover;
-    background-color: $color;
-    border-color: $color;
-    // Avoid using mixin so we can pass custom focus shadow properly
-    box-shadow: 0 0 0 $input-btn-focus-width rgba($color, .5);
-  }
-}
-
-// Button sizes
- at mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {
-  padding: $padding-y $padding-x;
-  font-size: $font-size;
-  line-height: $line-height;
-  @include border-radius($border-radius);
-}
diff --git a/assets/scss/mixins/_caret.scss b/assets/scss/mixins/_caret.scss
deleted file mode 100755
index daab9d0..0000000
--- a/assets/scss/mixins/_caret.scss
+++ /dev/null
@@ -1,35 +0,0 @@
- at mixin caret-down {
-  border-top: $caret-width solid;
-  border-right: $caret-width solid transparent;
-  border-bottom: 0;
-  border-left: $caret-width solid transparent;
-}
-
- at mixin caret-up {
-  border-top: 0;
-  border-right: $caret-width solid transparent;
-  border-bottom: $caret-width solid;
-  border-left: $caret-width solid transparent;
-}
-
- at mixin caret($direction: down) {
-  @if $enable-caret {
-    &::after {
-      display: inline-block;
-      width: 0;
-      height: 0;
-      margin-left: $caret-width * .85;
-      vertical-align: $caret-width * .85;
-      content: "";
-      @if $direction == down {
-        @include caret-down;
-      } @else if $direction == up {
-        @include caret-up;
-      }
-    }
-
-    &:empty::after {
-      margin-left: 0;
-    }
-  }
-}
diff --git a/assets/scss/mixins/_clearfix.scss b/assets/scss/mixins/_clearfix.scss
deleted file mode 100755
index 11a977b..0000000
--- a/assets/scss/mixins/_clearfix.scss
+++ /dev/null
@@ -1,7 +0,0 @@
- at mixin clearfix() {
-  &::after {
-    display: block;
-    clear: both;
-    content: "";
-  }
-}
diff --git a/assets/scss/mixins/_float.scss b/assets/scss/mixins/_float.scss
deleted file mode 100755
index 48fa8b6..0000000
--- a/assets/scss/mixins/_float.scss
+++ /dev/null
@@ -1,11 +0,0 @@
-// stylelint-disable declaration-no-important
-
- at mixin float-left {
-  float: left !important;
-}
- at mixin float-right {
-  float: right !important;
-}
- at mixin float-none {
-  float: none !important;
-}
diff --git a/assets/scss/mixins/_forms.scss b/assets/scss/mixins/_forms.scss
deleted file mode 100755
index 19d5280..0000000
--- a/assets/scss/mixins/_forms.scss
+++ /dev/null
@@ -1,108 +0,0 @@
-// Form control focus state
-//
-// Generate a customized focus state and for any input with the specified color,
-// which defaults to the `$input-focus-border-color` 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.
- at mixin form-control-focus() {
-  &:focus {
-    color: $input-focus-color;
-    background-color: $input-focus-bg;
-    border-color: $input-focus-border-color;
-    outline: none;
-    // Avoid using mixin so we can pass custom focus shadow properly
-    @if $enable-shadows {
-      box-shadow: $input-box-shadow, $input-btn-focus-box-shadow;
-    } @else {
-      box-shadow: $input-btn-focus-box-shadow;
-    }
-  }
-}
-
-
- at mixin form-validation-state($state, $color) {
-
-  .#{$state}-feedback {
-    display: none;
-    margin-top: .25rem;
-    font-size: .875rem;
-    color: $color;
-  }
-
-  .#{$state}-tooltip {
-    position: absolute;
-    top: 100%;
-    z-index: 5;
-    display: none;
-    width: 250px;
-    padding: .5rem;
-    margin-top: .1rem;
-    font-size: .875rem;
-    line-height: 1;
-    color: #fff;
-    background-color: rgba($color,.8);
-    border-radius: .2rem;
-  }
-
-  .form-control,
-  .custom-select {
-    .was-validated &:#{$state},
-    &.is-#{$state} {
-      border-color: $color;
-
-      &:focus {
-        box-shadow: 0 0 0 .2rem rgba($color,.25);
-      }
-
-      ~ .#{$state}-feedback,
-      ~ .#{$state}-tooltip {
-        display: block;
-      }
-    }
-  }
-
-
-  // TODO: redo check markup lol crap
-  .form-check-input {
-    .was-validated &:#{$state},
-    &.is-#{$state} {
-      + .form-check-label {
-        color: $color;
-      }
-    }
-  }
-
-  // custom radios and checks
-  .custom-control-input {
-    .was-validated &:#{$state},
-    &.is-#{$state} {
-      ~ .custom-control-indicator {
-        background-color: rgba($color, .25);
-      }
-      ~ .custom-control-description {
-        color: $color;
-      }
-    }
-  }
-
-  // custom file
-  .custom-file-input {
-    .was-validated &:#{$state},
-    &.is-#{$state} {
-      ~ .custom-file-control {
-        border-color: $color;
-
-        &::before { border-color: inherit; }
-      }
-      &:focus {
-        box-shadow: 0 0 0 .2rem rgba($color,.25);
-      }
-    }
-  }
-}
diff --git a/assets/scss/mixins/_gradients.scss b/assets/scss/mixins/_gradients.scss
deleted file mode 100755
index ecd01f7..0000000
--- a/assets/scss/mixins/_gradients.scss
+++ /dev/null
@@ -1,45 +0,0 @@
-// Gradients
-
- at mixin gradient-bg($color) {
-  @if $enable-gradients {
-    background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;
-  } @else {
-    background-color: $color;
-  }
-}
-
-// Horizontal gradient, from left to right
-//
-// Creates two color stops, start and end, by specifying a color and position for each color stop.
- at mixin gradient-x($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
-  background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);
-  background-repeat: repeat-x;
-}
-
-// Vertical gradient, from top to bottom
-//
-// Creates two color stops, start and end, by specifying a color and position for each color stop.
- at mixin gradient-y($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
-  background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);
-  background-repeat: repeat-x;
-}
-
- at mixin gradient-directional($start-color: #555, $end-color: #333, $deg: 45deg) {
-  background-image: linear-gradient($deg, $start-color, $end-color);
-  background-repeat: repeat-x;
-}
- at mixin gradient-x-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
-  background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
-  background-repeat: no-repeat;
-}
- at mixin gradient-y-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
-  background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
-  background-repeat: no-repeat;
-}
- at mixin gradient-radial($inner-color: #555, $outer-color: #333) {
-  background-image: radial-gradient(circle, $inner-color, $outer-color);
-  background-repeat: no-repeat;
-}
- at mixin gradient-striped($color: rgba(255,255,255,.15), $angle: 45deg) {
-  background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
-}
diff --git a/assets/scss/mixins/_grid-framework.scss b/assets/scss/mixins/_grid-framework.scss
deleted file mode 100755
index 41bdf46..0000000
--- a/assets/scss/mixins/_grid-framework.scss
+++ /dev/null
@@ -1,69 +0,0 @@
-// Framework grid generation
-//
-// Used only by Bootstrap to generate the correct number of grid classes given
-// any value of `$grid-columns`.
-
- at mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {
-  // Common properties for all breakpoints
-  %grid-column {
-    position: relative;
-    width: 100%;
-    min-height: 1px; // Prevent columns from collapsing when empty
-    padding-right: ($gutter / 2);
-    padding-left: ($gutter / 2);
-  }
-
-  @each $breakpoint in map-keys($breakpoints) {
-    $infix: breakpoint-infix($breakpoint, $breakpoints);
-
-    // Allow columns to stretch full width below their breakpoints
-    @for $i from 1 through $columns {
-      .col#{$infix}-#{$i} {
-        @extend %grid-column;
-      }
-    }
-    .col#{$infix},
-    .col#{$infix}-auto {
-      @extend %grid-column;
-    }
-
-    @include media-breakpoint-up($breakpoint, $breakpoints) {
-      // Provide basic `.col-{bp}` classes for equal-width flexbox columns
-      .col#{$infix} {
-        flex-basis: 0;
-        flex-grow: 1;
-        max-width: 100%;
-      }
-      .col#{$infix}-auto {
-        flex: 0 0 auto;
-        width: auto;
-        max-width: none; // Reset earlier grid tiers
-      }
-
-      @for $i from 1 through $columns {
-        .col#{$infix}-#{$i} {
-          @include make-col($i, $columns);
-        }
-      }
-
-      .order#{$infix}-first {
-        order: -1;
-      }
-
-      @for $i from 1 through $columns {
-        .order#{$infix}-#{$i} {
-          order: $i;
-        }
-      }
-
-      // `$columns - 1` because offsetting by the width of an entire row isn't possible
-      @for $i from 0 through ($columns - 1) {
-        @if not ($infix == "" and $i == 0) { // Avoid emitting useless .offset-0
-          .offset#{$infix}-#{$i} {
-            @include make-col-offset($i, $columns);
-          }
-        }
-      }
-    }
-  }
-}
diff --git a/assets/scss/mixins/_grid.scss b/assets/scss/mixins/_grid.scss
deleted file mode 100755
index b75ebcb..0000000
--- a/assets/scss/mixins/_grid.scss
+++ /dev/null
@@ -1,52 +0,0 @@
-/// Grid system
-//
-// Generate semantic grid columns with these mixins.
-
- at mixin make-container() {
-  width: 100%;
-  padding-right: ($grid-gutter-width / 2);
-  padding-left: ($grid-gutter-width / 2);
-  margin-right: auto;
-  margin-left: auto;
-}
-
-
-// For each breakpoint, define the maximum width of the container in a media query
- at mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {
-  @each $breakpoint, $container-max-width in $max-widths {
-    @include media-breakpoint-up($breakpoint, $breakpoints) {
-      max-width: $container-max-width;
-    }
-  }
-}
-
- at mixin make-row() {
-  display: flex;
-  flex-wrap: wrap;
-  margin-right: ($grid-gutter-width / -2);
-  margin-left: ($grid-gutter-width / -2);
-}
-
- at mixin make-col-ready() {
-  position: relative;
-  // Prevent columns from becoming too narrow when at smaller grid tiers by
-  // always setting `width: 100%;`. This works because we use `flex` values
-  // later on to override this initial width.
-  width: 100%;
-  min-height: 1px; // Prevent collapsing
-  padding-right: ($grid-gutter-width / 2);
-  padding-left: ($grid-gutter-width / 2);
-}
-
- at mixin make-col($size, $columns: $grid-columns) {
-  flex: 0 0 percentage($size / $columns);
-  // Add a `max-width` to ensure content within each column does not blow out
-  // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari
-  // do not appear to require this.
-  max-width: percentage($size / $columns);
-}
-
- at mixin make-col-offset($size, $columns: $grid-columns) {
-  $num: $size / $columns;
-  margin-left: if($num == 0, 0, percentage($num));
-}
diff --git a/assets/scss/mixins/_hover.scss b/assets/scss/mixins/_hover.scss
deleted file mode 100755
index fd2f1e2..0000000
--- a/assets/scss/mixins/_hover.scss
+++ /dev/null
@@ -1,61 +0,0 @@
-// stylelint-disable indentation
- at mixin hover {
-  // TODO: re-enable along with mq4-hover-shim
-//  @if $enable-hover-media-query {
-//    // See Media Queries Level 4: https://drafts.csswg.org/mediaqueries/#hover
-//    // Currently shimmed by https://github.com/twbs/mq4-hover-shim
-//    @media (hover: hover) {
-//      &:hover { @content }
-//    }
-//  }
-//  @else {
-    &:hover { @content; }
-//  }
-}
-
-
- at mixin hover-focus {
-  @if $enable-hover-media-query {
-    &:focus {
-      @content;
-    }
-    @include hover { @content; }
-  } @else {
-    &:focus,
-    &:hover {
-      @content;
-    }
-  }
-}
-
- at mixin plain-hover-focus {
-  @if $enable-hover-media-query {
-    &,
-    &:focus {
-      @content;
-    }
-    @include hover { @content; }
-  } @else {
-    &,
-    &:focus,
-    &:hover {
-      @content;
-    }
-  }
-}
-
- at mixin hover-focus-active {
-  @if $enable-hover-media-query {
-    &:focus,
-    &:active {
-      @content;
-    }
-    @include hover { @content; }
-  } @else {
-    &:focus,
-    &:active,
-    &:hover {
-      @content;
-    }
-  }
-}
diff --git a/assets/scss/mixins/_image.scss b/assets/scss/mixins/_image.scss
deleted file mode 100755
index 0544f0d..0000000
--- a/assets/scss/mixins/_image.scss
+++ /dev/null
@@ -1,36 +0,0 @@
-// Image Mixins
-// - Responsive image
-// - Retina image
-
-
-// Responsive image
-//
-// Keep images from scaling beyond the width of their parents.
-
- at mixin img-fluid {
-  // Part 1: Set a maximum relative to the parent
-  max-width: 100%;
-  // Part 2: Override the height to auto, otherwise images will be stretched
-  // when setting a width and height attribute on the img element.
-  height: auto;
-}
-
-
-// Retina image
-//
-// Short retina mixin for setting background-image and -size.
-
-// stylelint-disable indentation, media-query-list-comma-newline-after
- at mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {
-  background-image: url($file-1x);
-
-  // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,
-  // but doesn't convert dppx=>dpi.
-  // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.
-  // Compatibility info: https://caniuse.com/#feat=css-media-resolution
-  @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx
-  only screen and (min-resolution: 2dppx) { // Standardized
-    background-image: url($file-2x);
-    background-size: $width-1x $height-1x;
-  }
-}
diff --git a/assets/scss/mixins/_list-group.scss b/assets/scss/mixins/_list-group.scss
deleted file mode 100755
index 278787b..0000000
--- a/assets/scss/mixins/_list-group.scss
+++ /dev/null
@@ -1,24 +0,0 @@
-// List Groups
-
- at mixin list-group-item-variant($state, $background, $color) {
-  .list-group-item-#{$state} {
-    color: $color;
-    background-color: $background;
-  }
-
-  a.list-group-item-#{$state},
-  button.list-group-item-#{$state} {
-    color: $color;
-
-    @include hover-focus {
-      color: $color;
-      background-color: darken($background, 5%);
-    }
-
-    &.active {
-      color: #fff;
-      background-color: $color;
-      border-color: $color;
-    }
-  }
-}
diff --git a/assets/scss/mixins/_lists.scss b/assets/scss/mixins/_lists.scss
deleted file mode 100755
index 2518562..0000000
--- a/assets/scss/mixins/_lists.scss
+++ /dev/null
@@ -1,7 +0,0 @@
-// Lists
-
-// Unstyled keeps list items block level, just removes default browser padding and list-style
- at mixin list-unstyled {
-  padding-left: 0;
-  list-style: none;
-}
diff --git a/assets/scss/mixins/_nav-divider.scss b/assets/scss/mixins/_nav-divider.scss
deleted file mode 100755
index 493de03..0000000
--- a/assets/scss/mixins/_nav-divider.scss
+++ /dev/null
@@ -1,10 +0,0 @@
-// Horizontal dividers
-//
-// Dividers (basically an hr) within dropdowns and nav lists
-
- at mixin nav-divider($color: #e5e5e5) {
-  height: 0;
-  margin: ($spacer / 2) 0;
-  overflow: hidden;
-  border-top: 1px solid $color;
-}
diff --git a/assets/scss/mixins/_navbar-align.scss b/assets/scss/mixins/_navbar-align.scss
deleted file mode 100755
index b351660..0000000
--- a/assets/scss/mixins/_navbar-align.scss
+++ /dev/null
@@ -1,10 +0,0 @@
-// 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);
-// }
diff --git a/assets/scss/mixins/_pagination.scss b/assets/scss/mixins/_pagination.scss
deleted file mode 100755
index ff36eb6..0000000
--- a/assets/scss/mixins/_pagination.scss
+++ /dev/null
@@ -1,22 +0,0 @@
-// Pagination
-
- at mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {
-  .page-link {
-    padding: $padding-y $padding-x;
-    font-size: $font-size;
-    line-height: $line-height;
-  }
-
-  .page-item {
-    &:first-child {
-      .page-link {
-        @include border-left-radius($border-radius);
-      }
-    }
-    &:last-child {
-      .page-link {
-        @include border-right-radius($border-radius);
-      }
-    }
-  }
-}
diff --git a/assets/scss/mixins/_reset-text.scss b/assets/scss/mixins/_reset-text.scss
deleted file mode 100755
index 71edb00..0000000
--- a/assets/scss/mixins/_reset-text.scss
+++ /dev/null
@@ -1,17 +0,0 @@
- at mixin reset-text {
-  font-family: $font-family-base;
-  // We deliberately do NOT reset font-size or word-wrap.
-  font-style: normal;
-  font-weight: $font-weight-normal;
-  line-height: $line-height-base;
-  text-align: left; // Fallback for where `start` is not supported
-  text-align: start; // stylelint-disable-line declaration-block-no-duplicate-properties
-  text-decoration: none;
-  text-shadow: none;
-  text-transform: none;
-  letter-spacing: normal;
-  word-break: normal;
-  word-spacing: normal;
-  white-space: normal;
-  line-break: auto;
-}
diff --git a/assets/scss/mixins/_resize.scss b/assets/scss/mixins/_resize.scss
deleted file mode 100755
index 66f233a..0000000
--- a/assets/scss/mixins/_resize.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-// Resize anything
-
- at mixin resizable($direction) {
-  overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
-  resize: $direction; // Options: horizontal, vertical, both
-}
diff --git a/assets/scss/mixins/_screen-reader.scss b/assets/scss/mixins/_screen-reader.scss
deleted file mode 100755
index 31fb68a..0000000
--- a/assets/scss/mixins/_screen-reader.scss
+++ /dev/null
@@ -1,35 +0,0 @@
-// Only display content to screen readers
-//
-// See: http://a11yproject.com/posts/how-to-hide-content/
-// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/
-
- at mixin sr-only {
-  position: absolute;
-  width: 1px;
-  height: 1px;
-  padding: 0;
-  overflow: hidden;
-  clip: rect(0,0,0,0);
-  white-space: nowrap;
-  clip-path: inset(50%);
-  border: 0;
-}
-
-// Use in conjunction with .sr-only to only display content when it's focused.
-//
-// Useful for "Skip to main content" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
-//
-// Credit: HTML5 Boilerplate
-
- at mixin sr-only-focusable {
-  &:active,
-  &:focus {
-    position: static;
-    width: auto;
-    height: auto;
-    overflow: visible;
-    clip: auto;
-    white-space: normal;
-    clip-path: none;
-  }
-}
diff --git a/assets/scss/mixins/_size.scss b/assets/scss/mixins/_size.scss
deleted file mode 100755
index b9dd48e..0000000
--- a/assets/scss/mixins/_size.scss
+++ /dev/null
@@ -1,6 +0,0 @@
-// Sizing shortcuts
-
- at mixin size($width, $height: $width) {
-  width: $width;
-  height: $height;
-}
diff --git a/assets/scss/mixins/_table-row.scss b/assets/scss/mixins/_table-row.scss
deleted file mode 100755
index 84f1d30..0000000
--- a/assets/scss/mixins/_table-row.scss
+++ /dev/null
@@ -1,30 +0,0 @@
-// Tables
-
- at mixin table-row-variant($state, $background) {
-  // Exact selectors below required to override `.table-striped` and prevent
-  // inheritance to nested tables.
-  .table-#{$state} {
-    &,
-    > th,
-    > td {
-      background-color: $background;
-    }
-  }
-
-  // Hover states for `.table-hover`
-  // Note: this is not available for cells or rows within `thead` or `tfoot`.
-  .table-hover {
-    $hover-background: darken($background, 5%);
-
-    .table-#{$state} {
-      @include hover {
-        background-color: $hover-background;
-
-        > td,
-        > th {
-          background-color: $hover-background;
-        }
-      }
-    }
-  }
-}
diff --git a/assets/scss/mixins/_text-emphasis.scss b/assets/scss/mixins/_text-emphasis.scss
deleted file mode 100755
index 58db3e0..0000000
--- a/assets/scss/mixins/_text-emphasis.scss
+++ /dev/null
@@ -1,14 +0,0 @@
-// stylelint-disable declaration-no-important
-
-// Typography
-
- at mixin text-emphasis-variant($parent, $color) {
-  #{$parent} {
-    color: $color !important;
-  }
-  a#{$parent} {
-    @include hover-focus {
-      color: darken($color, 10%) !important;
-    }
-  }
-}
diff --git a/assets/scss/mixins/_text-hide.scss b/assets/scss/mixins/_text-hide.scss
deleted file mode 100755
index 52a38a9..0000000
--- a/assets/scss/mixins/_text-hide.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-// CSS image replacement
- at mixin text-hide() {
-  font: 0/0 a;
-  color: transparent;
-  text-shadow: none;
-  background-color: transparent;
-  border: 0;
-}
diff --git a/assets/scss/mixins/_text-truncate.scss b/assets/scss/mixins/_text-truncate.scss
deleted file mode 100755
index 3504bb1..0000000
--- a/assets/scss/mixins/_text-truncate.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-// Text truncate
-// Requires inline-block or block for proper styling
-
- at mixin text-truncate() {
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
diff --git a/assets/scss/mixins/_transition.scss b/assets/scss/mixins/_transition.scss
deleted file mode 100755
index 7e33dee..0000000
--- a/assets/scss/mixins/_transition.scss
+++ /dev/null
@@ -1,9 +0,0 @@
- at mixin transition($transition...) {
-  @if $enable-transitions {
-    @if length($transition) == 0 {
-      transition: $transition-base;
-    } @else {
-      transition: $transition;
-    }
-  }
-}
diff --git a/assets/scss/mixins/_visibility.scss b/assets/scss/mixins/_visibility.scss
deleted file mode 100755
index fe523d0..0000000
--- a/assets/scss/mixins/_visibility.scss
+++ /dev/null
@@ -1,7 +0,0 @@
-// stylelint-disable declaration-no-important
-
-// Visibility
-
- at mixin invisible($visibility) {
-  visibility: $visibility !important;
-}
diff --git a/assets/scss/utilities/_align.scss b/assets/scss/utilities/_align.scss
deleted file mode 100755
index 8b7df9f..0000000
--- a/assets/scss/utilities/_align.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-// stylelint-disable declaration-no-important
-
-.align-baseline    { vertical-align: baseline !important; } // Browser default
-.align-top         { vertical-align: top !important; }
-.align-middle      { vertical-align: middle !important; }
-.align-bottom      { vertical-align: bottom !important; }
-.align-text-bottom { vertical-align: text-bottom !important; }
-.align-text-top    { vertical-align: text-top !important; }
diff --git a/assets/scss/utilities/_background.scss b/assets/scss/utilities/_background.scss
deleted file mode 100755
index 1f18b2f..0000000
--- a/assets/scss/utilities/_background.scss
+++ /dev/null
@@ -1,19 +0,0 @@
-// stylelint-disable declaration-no-important
-
- at each $color, $value in $theme-colors {
-  @include bg-variant(".bg-#{$color}", $value);
-}
-
- at if $enable-gradients {
-  @each $color, $value in $theme-colors {
-    @include bg-gradient-variant(".bg-gradient-#{$color}", $value);
-  }
-}
-
-.bg-white {
-  background-color: $white !important;
-}
-
-.bg-transparent {
-  background-color: transparent !important;
-}
diff --git a/assets/scss/utilities/_borders.scss b/assets/scss/utilities/_borders.scss
deleted file mode 100755
index ba02f04..0000000
--- a/assets/scss/utilities/_borders.scss
+++ /dev/null
@@ -1,54 +0,0 @@
-// stylelint-disable declaration-no-important
-
-//
-// Border
-//
-
-.border          { border: $border-width solid $border-color !important; }
-.border-0        { border: 0 !important; }
-.border-top-0    { border-top: 0 !important; }
-.border-right-0  { border-right: 0 !important; }
-.border-bottom-0 { border-bottom: 0 !important; }
-.border-left-0   { border-left: 0 !important; }
-
- at each $color, $value in $theme-colors {
-  .border-#{$color} {
-    border-color: $value !important;
-  }
-}
-
-.border-white {
-  border-color: $white !important;
-}
-
-//
-// Border-radius
-//
-
-.rounded {
-  border-radius: $border-radius !important;
-}
-.rounded-top {
-  border-top-left-radius: $border-radius !important;
-  border-top-right-radius: $border-radius !important;
-}
-.rounded-right {
-  border-top-right-radius: $border-radius !important;
-  border-bottom-right-radius: $border-radius !important;
-}
-.rounded-bottom {
-  border-bottom-right-radius: $border-radius !important;
-  border-bottom-left-radius: $border-radius !important;
-}
-.rounded-left {
-  border-top-left-radius: $border-radius !important;
-  border-bottom-left-radius: $border-radius !important;
-}
-
-.rounded-circle {
-  border-radius: 50% !important;
-}
-
-.rounded-0 {
-  border-radius: 0 !important;
-}
diff --git a/assets/scss/utilities/_clearfix.scss b/assets/scss/utilities/_clearfix.scss
deleted file mode 100755
index e92522a..0000000
--- a/assets/scss/utilities/_clearfix.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-.clearfix {
-  @include clearfix();
-}
diff --git a/assets/scss/utilities/_display.scss b/assets/scss/utilities/_display.scss
deleted file mode 100755
index 893b638..0000000
--- a/assets/scss/utilities/_display.scss
+++ /dev/null
@@ -1,56 +0,0 @@
-// stylelint-disable declaration-no-important
-
-//
-// Utilities for common `display` values
-//
-
- at each $breakpoint in map-keys($grid-breakpoints) {
-  @include media-breakpoint-up($breakpoint) {
-    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
-
-    .d#{$infix}-none         { display: none !important; }
-    .d#{$infix}-inline       { display: inline !important; }
-    .d#{$infix}-inline-block { display: inline-block !important; }
-    .d#{$infix}-block        { display: block !important; }
-    .d#{$infix}-table        { display: table !important; }
-    .d#{$infix}-table-row    { display: table-row !important; }
-    .d#{$infix}-table-cell   { display: table-cell !important; }
-    .d#{$infix}-flex         { display: flex !important; }
-    .d#{$infix}-inline-flex  { display: inline-flex !important; }
-  }
-}
-
-
-//
-// Utilities for toggling `display` in print
-//
-
-.d-print-block {
-  display: none !important;
-
-  @media print {
-    display: block !important;
-  }
-}
-
-.d-print-inline {
-  display: none !important;
-
-  @media print {
-    display: inline !important;
-  }
-}
-
-.d-print-inline-block {
-  display: none !important;
-
-  @media print {
-    display: inline-block !important;
-  }
-}
-
-.d-print-none {
-  @media print {
-    display: none !important;
-  }
-}
diff --git a/assets/scss/utilities/_embed.scss b/assets/scss/utilities/_embed.scss
deleted file mode 100755
index d3362b6..0000000
--- a/assets/scss/utilities/_embed.scss
+++ /dev/null
@@ -1,52 +0,0 @@
-// Credit: Nicolas Gallagher and SUIT CSS.
-
-.embed-responsive {
-  position: relative;
-  display: block;
-  width: 100%;
-  padding: 0;
-  overflow: hidden;
-
-  &::before {
-    display: block;
-    content: "";
-  }
-
-  .embed-responsive-item,
-  iframe,
-  embed,
-  object,
-  video {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    left: 0;
-    width: 100%;
-    height: 100%;
-    border: 0;
-  }
-}
-
-.embed-responsive-21by9 {
-  &::before {
-    padding-top: percentage(9 / 21);
-  }
-}
-
-.embed-responsive-16by9 {
-  &::before {
-    padding-top: percentage(9 / 16);
-  }
-}
-
-.embed-responsive-4by3 {
-  &::before {
-    padding-top: percentage(3 / 4);
-  }
-}
-
-.embed-responsive-1by1 {
-  &::before {
-    padding-top: percentage(1 / 1);
-  }
-}
diff --git a/assets/scss/utilities/_flex.scss b/assets/scss/utilities/_flex.scss
deleted file mode 100755
index 8e47038..0000000
--- a/assets/scss/utilities/_flex.scss
+++ /dev/null
@@ -1,46 +0,0 @@
-// stylelint-disable declaration-no-important
-
-// Flex variation
-//
-// Custom styles for additional flex alignment options.
-
- at each $breakpoint in map-keys($grid-breakpoints) {
-  @include media-breakpoint-up($breakpoint) {
-    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
-
-    .flex#{$infix}-row            { flex-direction: row !important; }
-    .flex#{$infix}-column         { flex-direction: column !important; }
-    .flex#{$infix}-row-reverse    { flex-direction: row-reverse !important; }
-    .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }
-
-    .flex#{$infix}-wrap         { flex-wrap: wrap !important; }
-    .flex#{$infix}-nowrap       { flex-wrap: nowrap !important; }
-    .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }
-
-    .justify-content#{$infix}-start   { justify-content: flex-start !important; }
-    .justify-content#{$infix}-end     { justify-content: flex-end !important; }
-    .justify-content#{$infix}-center  { justify-content: center !important; }
-    .justify-content#{$infix}-between { justify-content: space-between !important; }
-    .justify-content#{$infix}-around  { justify-content: space-around !important; }
-
-    .align-items#{$infix}-start    { align-items: flex-start !important; }
-    .align-items#{$infix}-end      { align-items: flex-end !important; }
-    .align-items#{$infix}-center   { align-items: center !important; }
-    .align-items#{$infix}-baseline { align-items: baseline !important; }
-    .align-items#{$infix}-stretch  { align-items: stretch !important; }
-
-    .align-content#{$infix}-start   { align-content: flex-start !important; }
-    .align-content#{$infix}-end     { align-content: flex-end !important; }
-    .align-content#{$infix}-center  { align-content: center !important; }
-    .align-content#{$infix}-between { align-content: space-between !important; }
-    .align-content#{$infix}-around  { align-content: space-around !important; }
-    .align-content#{$infix}-stretch { align-content: stretch !important; }
-
-    .align-self#{$infix}-auto     { align-self: auto !important; }
-    .align-self#{$infix}-start    { align-self: flex-start !important; }
-    .align-self#{$infix}-end      { align-self: flex-end !important; }
-    .align-self#{$infix}-center   { align-self: center !important; }
-    .align-self#{$infix}-baseline { align-self: baseline !important; }
-    .align-self#{$infix}-stretch  { align-self: stretch !important; }
-  }
-}
diff --git a/assets/scss/utilities/_float.scss b/assets/scss/utilities/_float.scss
deleted file mode 100755
index 01655e9..0000000
--- a/assets/scss/utilities/_float.scss
+++ /dev/null
@@ -1,9 +0,0 @@
- at each $breakpoint in map-keys($grid-breakpoints) {
-  @include media-breakpoint-up($breakpoint) {
-    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
-
-    .float#{$infix}-left  { @include float-left; }
-    .float#{$infix}-right { @include float-right; }
-    .float#{$infix}-none  { @include float-none; }
-  }
-}
diff --git a/assets/scss/utilities/_position.scss b/assets/scss/utilities/_position.scss
deleted file mode 100755
index ef962ed..0000000
--- a/assets/scss/utilities/_position.scss
+++ /dev/null
@@ -1,36 +0,0 @@
-// stylelint-disable declaration-no-important
-
-// Common values
-
-// Sass list not in variables since it's not intended for customization.
-$positions: static, relative, absolute, fixed, sticky;
-
- at each $position in $positions {
-  .position-#{$position} { position: $position !important; }
-}
-
-// Shorthand
-
-.fixed-top {
-  position: fixed;
-  top: 0;
-  right: 0;
-  left: 0;
-  z-index: $zindex-fixed;
-}
-
-.fixed-bottom {
-  position: fixed;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: $zindex-fixed;
-}
-
-.sticky-top {
-  @supports (position: sticky) {
-    position: sticky;
-    top: 0;
-    z-index: $zindex-sticky;
-  }
-}
diff --git a/assets/scss/utilities/_screenreaders.scss b/assets/scss/utilities/_screenreaders.scss
deleted file mode 100755
index 9f26fde..0000000
--- a/assets/scss/utilities/_screenreaders.scss
+++ /dev/null
@@ -1,11 +0,0 @@
-//
-// Screenreaders
-//
-
-.sr-only {
-  @include sr-only();
-}
-
-.sr-only-focusable {
-  @include sr-only-focusable();
-}
diff --git a/assets/scss/utilities/_sizing.scss b/assets/scss/utilities/_sizing.scss
deleted file mode 100755
index e95a4db..0000000
--- a/assets/scss/utilities/_sizing.scss
+++ /dev/null
@@ -1,12 +0,0 @@
-// stylelint-disable declaration-no-important
-
-// Width and height
-
- at each $prop, $abbrev in (width: w, height: h) {
-  @each $size, $length in $sizes {
-    .#{$abbrev}-#{$size} { #{$prop}: $length !important; }
-  }
-}
-
-.mw-100 { max-width: 100% !important; }
-.mh-100 { max-height: 100% !important; }
diff --git a/assets/scss/utilities/_spacing.scss b/assets/scss/utilities/_spacing.scss
deleted file mode 100755
index b2e2354..0000000
--- a/assets/scss/utilities/_spacing.scss
+++ /dev/null
@@ -1,51 +0,0 @@
-// stylelint-disable declaration-no-important
-
-// Margin and Padding
-
- at each $breakpoint in map-keys($grid-breakpoints) {
-  @include media-breakpoint-up($breakpoint) {
-    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
-
-    @each $prop, $abbrev in (margin: m, padding: p) {
-      @each $size, $length in $spacers {
-
-        .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }
-        .#{$abbrev}t#{$infix}-#{$size},
-        .#{$abbrev}y#{$infix}-#{$size} {
-          #{$prop}-top: $length !important;
-        }
-        .#{$abbrev}r#{$infix}-#{$size},
-        .#{$abbrev}x#{$infix}-#{$size} {
-          #{$prop}-right: $length !important;
-        }
-        .#{$abbrev}b#{$infix}-#{$size},
-        .#{$abbrev}y#{$infix}-#{$size} {
-          #{$prop}-bottom: $length !important;
-        }
-        .#{$abbrev}l#{$infix}-#{$size},
-        .#{$abbrev}x#{$infix}-#{$size} {
-          #{$prop}-left: $length !important;
-        }
-      }
-    }
-
-    // Some special margin utils
-    .m#{$infix}-auto { margin: auto !important; }
-    .mt#{$infix}-auto,
-    .my#{$infix}-auto {
-      margin-top: auto !important;
-    }
-    .mr#{$infix}-auto,
-    .mx#{$infix}-auto {
-      margin-right: auto !important;
-    }
-    .mb#{$infix}-auto,
-    .my#{$infix}-auto {
-      margin-bottom: auto !important;
-    }
-    .ml#{$infix}-auto,
-    .mx#{$infix}-auto {
-      margin-left: auto !important;
-    }
-  }
-}
diff --git a/assets/scss/utilities/_text.scss b/assets/scss/utilities/_text.scss
deleted file mode 100755
index f4b6e65..0000000
--- a/assets/scss/utilities/_text.scss
+++ /dev/null
@@ -1,52 +0,0 @@
-// stylelint-disable declaration-no-important
-
-//
-// Text
-//
-
-// Alignment
-
-.text-justify  { text-align: justify !important; }
-.text-nowrap   { white-space: nowrap !important; }
-.text-truncate { @include text-truncate; }
-
-// Responsive alignment
-
- at each $breakpoint in map-keys($grid-breakpoints) {
-  @include media-breakpoint-up($breakpoint) {
-    $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
-
-    .text#{$infix}-left   { text-align: left !important; }
-    .text#{$infix}-right  { text-align: right !important; }
-    .text#{$infix}-center { text-align: center !important; }
-  }
-}
-
-// Transformation
-
-.text-lowercase  { text-transform: lowercase !important; }
-.text-uppercase  { text-transform: uppercase !important; }
-.text-capitalize { text-transform: capitalize !important; }
-
-// Weight and italics
-
-.font-weight-light  { font-weight: $font-weight-light !important; }
-.font-weight-normal { font-weight: $font-weight-normal !important; }
-.font-weight-bold   { font-weight: $font-weight-bold !important; }
-.font-italic        { font-style: italic !important; }
-
-// Contextual colors
-
-.text-white { color: #fff !important; }
-
- at each $color, $value in $theme-colors {
-  @include text-emphasis-variant(".text-#{$color}", $value);
-}
-
-.text-muted { color: $text-muted !important; }
-
-// Misc
-
-.text-hide {
-  @include text-hide();
-}
diff --git a/assets/scss/utilities/_visibility.scss b/assets/scss/utilities/_visibility.scss
deleted file mode 100755
index 823406d..0000000
--- a/assets/scss/utilities/_visibility.scss
+++ /dev/null
@@ -1,11 +0,0 @@
-//
-// Visibility utilities
-//
-
-.visible {
-  @include invisible(visible);
-}
-
-.invisible {
-  @include invisible(hidden);
-}
diff --git a/assets/static/bootstrap-grid.css b/assets/static/bootstrap-grid.css
deleted file mode 100644
index 1a2aecf..0000000
--- a/assets/static/bootstrap-grid.css
+++ /dev/null
@@ -1,1168 +0,0 @@
-/*!
- * Bootstrap Grid v4.0.0-beta.2 (https://getbootstrap.com)
- * Copyright 2011-2017 The Bootstrap Authors
- * Copyright 2011-2017 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
- at -ms-viewport {
-  width: device-width; }
-html {
-  box-sizing: border-box;
-  -ms-overflow-style: scrollbar; }
-
-*,
-*::before,
-*::after {
-  box-sizing: inherit; }
-
-.container {
-  width: 100%;
-  padding-right: 15px;
-  padding-left: 15px;
-  margin-right: auto;
-  margin-left: auto; }
-  @media (min-width: 576px) {
-    .container {
-      max-width: 540px; } }
-  @media (min-width: 768px) {
-    .container {
-      max-width: 720px; } }
-  @media (min-width: 992px) {
-    .container {
-      max-width: 960px; } }
-  @media (min-width: 1200px) {
-    .container {
-      max-width: 1140px; } }
-
-.container-fluid {
-  width: 100%;
-  padding-right: 15px;
-  padding-left: 15px;
-  margin-right: auto;
-  margin-left: auto; }
-
-.row {
-  display: flex;
-  flex-wrap: wrap;
-  margin-right: -15px;
-  margin-left: -15px; }
-
-.no-gutters {
-  margin-right: 0;
-  margin-left: 0; }
-  .no-gutters > .col,
-  .no-gutters > [class*="col-"] {
-    padding-right: 0;
-    padding-left: 0; }
-
-.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,
-.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,
-.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,
-.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,
-.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,
-.col-xl-auto {
-  position: relative;
-  width: 100%;
-  min-height: 1px;
-  padding-right: 15px;
-  padding-left: 15px; }
-
-.col {
-  flex-basis: 0;
-  flex-grow: 1;
-  max-width: 100%; }
-
-.col-auto {
-  flex: 0 0 auto;
-  width: auto;
-  max-width: none; }
-
-.col-1 {
-  flex: 0 0 8.3333333333%;
-  max-width: 8.3333333333%; }
-
-.col-2 {
-  flex: 0 0 16.6666666667%;
-  max-width: 16.6666666667%; }
-
-.col-3 {
-  flex: 0 0 25%;
-  max-width: 25%; }
-
-.col-4 {
-  flex: 0 0 33.3333333333%;
-  max-width: 33.3333333333%; }
-
-.col-5 {
-  flex: 0 0 41.6666666667%;
-  max-width: 41.6666666667%; }
-
-.col-6 {
-  flex: 0 0 50%;
-  max-width: 50%; }
-
-.col-7 {
-  flex: 0 0 58.3333333333%;
-  max-width: 58.3333333333%; }
-
-.col-8 {
-  flex: 0 0 66.6666666667%;
-  max-width: 66.6666666667%; }
-
-.col-9 {
-  flex: 0 0 75%;
-  max-width: 75%; }
-
-.col-10 {
-  flex: 0 0 83.3333333333%;
-  max-width: 83.3333333333%; }
-
-.col-11 {
-  flex: 0 0 91.6666666667%;
-  max-width: 91.6666666667%; }
-
-.col-12 {
-  flex: 0 0 100%;
-  max-width: 100%; }
-
-.order-first {
-  order: -1; }
-
-.order-1 {
-  order: 1; }
-
-.order-2 {
-  order: 2; }
-
-.order-3 {
-  order: 3; }
-
-.order-4 {
-  order: 4; }
-
-.order-5 {
-  order: 5; }
-
-.order-6 {
-  order: 6; }
-
-.order-7 {
-  order: 7; }
-
-.order-8 {
-  order: 8; }
-
-.order-9 {
-  order: 9; }
-
-.order-10 {
-  order: 10; }
-
-.order-11 {
-  order: 11; }
-
-.order-12 {
-  order: 12; }
-
-.offset-1 {
-  margin-left: 8.3333333333%; }
-
-.offset-2 {
-  margin-left: 16.6666666667%; }
-
-.offset-3 {
-  margin-left: 25%; }
-
-.offset-4 {
-  margin-left: 33.3333333333%; }
-
-.offset-5 {
-  margin-left: 41.6666666667%; }
-
-.offset-6 {
-  margin-left: 50%; }
-
-.offset-7 {
-  margin-left: 58.3333333333%; }
-
-.offset-8 {
-  margin-left: 66.6666666667%; }
-
-.offset-9 {
-  margin-left: 75%; }
-
-.offset-10 {
-  margin-left: 83.3333333333%; }
-
-.offset-11 {
-  margin-left: 91.6666666667%; }
-
- at media (min-width: 576px) {
-  .col-sm {
-    flex-basis: 0;
-    flex-grow: 1;
-    max-width: 100%; }
-
-  .col-sm-auto {
-    flex: 0 0 auto;
-    width: auto;
-    max-width: none; }
-
-  .col-sm-1 {
-    flex: 0 0 8.3333333333%;
-    max-width: 8.3333333333%; }
-
-  .col-sm-2 {
-    flex: 0 0 16.6666666667%;
-    max-width: 16.6666666667%; }
-
-  .col-sm-3 {
-    flex: 0 0 25%;
-    max-width: 25%; }
-
-  .col-sm-4 {
-    flex: 0 0 33.3333333333%;
-    max-width: 33.3333333333%; }
-
-  .col-sm-5 {
-    flex: 0 0 41.6666666667%;
-    max-width: 41.6666666667%; }
-
-  .col-sm-6 {
-    flex: 0 0 50%;
-    max-width: 50%; }
-
-  .col-sm-7 {
-    flex: 0 0 58.3333333333%;
-    max-width: 58.3333333333%; }
-
-  .col-sm-8 {
-    flex: 0 0 66.6666666667%;
-    max-width: 66.6666666667%; }
-
-  .col-sm-9 {
-    flex: 0 0 75%;
-    max-width: 75%; }
-
-  .col-sm-10 {
-    flex: 0 0 83.3333333333%;
-    max-width: 83.3333333333%; }
-
-  .col-sm-11 {
-    flex: 0 0 91.6666666667%;
-    max-width: 91.6666666667%; }
-
-  .col-sm-12 {
-    flex: 0 0 100%;
-    max-width: 100%; }
-
-  .order-sm-first {
-    order: -1; }
-
-  .order-sm-1 {
-    order: 1; }
-
-  .order-sm-2 {
-    order: 2; }
-
-  .order-sm-3 {
-    order: 3; }
-
-  .order-sm-4 {
-    order: 4; }
-
-  .order-sm-5 {
-    order: 5; }
-
-  .order-sm-6 {
-    order: 6; }
-
-  .order-sm-7 {
-    order: 7; }
-
-  .order-sm-8 {
-    order: 8; }
-
-  .order-sm-9 {
-    order: 9; }
-
-  .order-sm-10 {
-    order: 10; }
-
-  .order-sm-11 {
-    order: 11; }
-
-  .order-sm-12 {
-    order: 12; }
-
-  .offset-sm-0 {
-    margin-left: 0; }
-
-  .offset-sm-1 {
-    margin-left: 8.3333333333%; }
-
-  .offset-sm-2 {
-    margin-left: 16.6666666667%; }
-
-  .offset-sm-3 {
-    margin-left: 25%; }
-
-  .offset-sm-4 {
-    margin-left: 33.3333333333%; }
-
-  .offset-sm-5 {
-    margin-left: 41.6666666667%; }
-
-  .offset-sm-6 {
-    margin-left: 50%; }
-
-  .offset-sm-7 {
-    margin-left: 58.3333333333%; }
-
-  .offset-sm-8 {
-    margin-left: 66.6666666667%; }
-
-  .offset-sm-9 {
-    margin-left: 75%; }
-
-  .offset-sm-10 {
-    margin-left: 83.3333333333%; }
-
-  .offset-sm-11 {
-    margin-left: 91.6666666667%; } }
- at media (min-width: 768px) {
-  .col-md {
-    flex-basis: 0;
-    flex-grow: 1;
-    max-width: 100%; }
-
-  .col-md-auto {
-    flex: 0 0 auto;
-    width: auto;
-    max-width: none; }
-
-  .col-md-1 {
-    flex: 0 0 8.3333333333%;
-    max-width: 8.3333333333%; }
-
-  .col-md-2 {
-    flex: 0 0 16.6666666667%;
-    max-width: 16.6666666667%; }
-
-  .col-md-3 {
-    flex: 0 0 25%;
-    max-width: 25%; }
-
-  .col-md-4 {
-    flex: 0 0 33.3333333333%;
-    max-width: 33.3333333333%; }
-
-  .col-md-5 {
-    flex: 0 0 41.6666666667%;
-    max-width: 41.6666666667%; }
-
-  .col-md-6 {
-    flex: 0 0 50%;
-    max-width: 50%; }
-
-  .col-md-7 {
-    flex: 0 0 58.3333333333%;
-    max-width: 58.3333333333%; }
-
-  .col-md-8 {
-    flex: 0 0 66.6666666667%;
-    max-width: 66.6666666667%; }
-
-  .col-md-9 {
-    flex: 0 0 75%;
-    max-width: 75%; }
-
-  .col-md-10 {
-    flex: 0 0 83.3333333333%;
-    max-width: 83.3333333333%; }
-
-  .col-md-11 {
-    flex: 0 0 91.6666666667%;
-    max-width: 91.6666666667%; }
-
-  .col-md-12 {
-    flex: 0 0 100%;
-    max-width: 100%; }
-
-  .order-md-first {
-    order: -1; }
-
-  .order-md-1 {
-    order: 1; }
-
-  .order-md-2 {
-    order: 2; }
-
-  .order-md-3 {
-    order: 3; }
-
-  .order-md-4 {
-    order: 4; }
-
-  .order-md-5 {
-    order: 5; }
-
-  .order-md-6 {
-    order: 6; }
-
-  .order-md-7 {
-    order: 7; }
-
-  .order-md-8 {
-    order: 8; }
-
-  .order-md-9 {
-    order: 9; }
-
-  .order-md-10 {
-    order: 10; }
-
-  .order-md-11 {
-    order: 11; }
-
-  .order-md-12 {
-    order: 12; }
-
-  .offset-md-0 {
-    margin-left: 0; }
-
-  .offset-md-1 {
-    margin-left: 8.3333333333%; }
-
-  .offset-md-2 {
-    margin-left: 16.6666666667%; }
-
-  .offset-md-3 {
-    margin-left: 25%; }
-
-  .offset-md-4 {
-    margin-left: 33.3333333333%; }
-
-  .offset-md-5 {
-    margin-left: 41.6666666667%; }
-
-  .offset-md-6 {
-    margin-left: 50%; }
-
-  .offset-md-7 {
-    margin-left: 58.3333333333%; }
-
-  .offset-md-8 {
-    margin-left: 66.6666666667%; }
-
-  .offset-md-9 {
-    margin-left: 75%; }
-
-  .offset-md-10 {
-    margin-left: 83.3333333333%; }
-
-  .offset-md-11 {
-    margin-left: 91.6666666667%; } }
- at media (min-width: 992px) {
-  .col-lg {
-    flex-basis: 0;
-    flex-grow: 1;
-    max-width: 100%; }
-
-  .col-lg-auto {
-    flex: 0 0 auto;
-    width: auto;
-    max-width: none; }
-
-  .col-lg-1 {
-    flex: 0 0 8.3333333333%;
-    max-width: 8.3333333333%; }
-
-  .col-lg-2 {
-    flex: 0 0 16.6666666667%;
-    max-width: 16.6666666667%; }
-
-  .col-lg-3 {
-    flex: 0 0 25%;
-    max-width: 25%; }
-
-  .col-lg-4 {
-    flex: 0 0 33.3333333333%;
-    max-width: 33.3333333333%; }
-
-  .col-lg-5 {
-    flex: 0 0 41.6666666667%;
-    max-width: 41.6666666667%; }
-
-  .col-lg-6 {
-    flex: 0 0 50%;
-    max-width: 50%; }
-
-  .col-lg-7 {
-    flex: 0 0 58.3333333333%;
-    max-width: 58.3333333333%; }
-
-  .col-lg-8 {
-    flex: 0 0 66.6666666667%;
-    max-width: 66.6666666667%; }
-
-  .col-lg-9 {
-    flex: 0 0 75%;
-    max-width: 75%; }
-
-  .col-lg-10 {
-    flex: 0 0 83.3333333333%;
-    max-width: 83.3333333333%; }
-
-  .col-lg-11 {
-    flex: 0 0 91.6666666667%;
-    max-width: 91.6666666667%; }
-
-  .col-lg-12 {
-    flex: 0 0 100%;
-    max-width: 100%; }
-
-  .order-lg-first {
-    order: -1; }
-
-  .order-lg-1 {
-    order: 1; }
-
-  .order-lg-2 {
-    order: 2; }
-
-  .order-lg-3 {
-    order: 3; }
-
-  .order-lg-4 {
-    order: 4; }
-
-  .order-lg-5 {
-    order: 5; }
-
-  .order-lg-6 {
-    order: 6; }
-
-  .order-lg-7 {
-    order: 7; }
-
-  .order-lg-8 {
-    order: 8; }
-
-  .order-lg-9 {
-    order: 9; }
-
-  .order-lg-10 {
-    order: 10; }
-
-  .order-lg-11 {
-    order: 11; }
-
-  .order-lg-12 {
-    order: 12; }
-
-  .offset-lg-0 {
-    margin-left: 0; }
-
-  .offset-lg-1 {
-    margin-left: 8.3333333333%; }
-
-  .offset-lg-2 {
-    margin-left: 16.6666666667%; }
-
-  .offset-lg-3 {
-    margin-left: 25%; }
-
-  .offset-lg-4 {
-    margin-left: 33.3333333333%; }
-
-  .offset-lg-5 {
-    margin-left: 41.6666666667%; }
-
-  .offset-lg-6 {
-    margin-left: 50%; }
-
-  .offset-lg-7 {
-    margin-left: 58.3333333333%; }
-
-  .offset-lg-8 {
-    margin-left: 66.6666666667%; }
-
-  .offset-lg-9 {
-    margin-left: 75%; }
-
-  .offset-lg-10 {
-    margin-left: 83.3333333333%; }
-
-  .offset-lg-11 {
-    margin-left: 91.6666666667%; } }
- at media (min-width: 1200px) {
-  .col-xl {
-    flex-basis: 0;
-    flex-grow: 1;
-    max-width: 100%; }
-
-  .col-xl-auto {
-    flex: 0 0 auto;
-    width: auto;
-    max-width: none; }
-
-  .col-xl-1 {
-    flex: 0 0 8.3333333333%;
-    max-width: 8.3333333333%; }
-
-  .col-xl-2 {
-    flex: 0 0 16.6666666667%;
-    max-width: 16.6666666667%; }
-
-  .col-xl-3 {
-    flex: 0 0 25%;
-    max-width: 25%; }
-
-  .col-xl-4 {
-    flex: 0 0 33.3333333333%;
-    max-width: 33.3333333333%; }
-
-  .col-xl-5 {
-    flex: 0 0 41.6666666667%;
-    max-width: 41.6666666667%; }
-
-  .col-xl-6 {
-    flex: 0 0 50%;
-    max-width: 50%; }
-
-  .col-xl-7 {
-    flex: 0 0 58.3333333333%;
-    max-width: 58.3333333333%; }
-
-  .col-xl-8 {
-    flex: 0 0 66.6666666667%;
-    max-width: 66.6666666667%; }
-
-  .col-xl-9 {
-    flex: 0 0 75%;
-    max-width: 75%; }
-
-  .col-xl-10 {
-    flex: 0 0 83.3333333333%;
-    max-width: 83.3333333333%; }
-
-  .col-xl-11 {
-    flex: 0 0 91.6666666667%;
-    max-width: 91.6666666667%; }
-
-  .col-xl-12 {
-    flex: 0 0 100%;
-    max-width: 100%; }
-
-  .order-xl-first {
-    order: -1; }
-
-  .order-xl-1 {
-    order: 1; }
-
-  .order-xl-2 {
-    order: 2; }
-
-  .order-xl-3 {
-    order: 3; }
-
-  .order-xl-4 {
-    order: 4; }
-
-  .order-xl-5 {
-    order: 5; }
-
-  .order-xl-6 {
-    order: 6; }
-
-  .order-xl-7 {
-    order: 7; }
-
-  .order-xl-8 {
-    order: 8; }
-
-  .order-xl-9 {
-    order: 9; }
-
-  .order-xl-10 {
-    order: 10; }
-
-  .order-xl-11 {
-    order: 11; }
-
-  .order-xl-12 {
-    order: 12; }
-
-  .offset-xl-0 {
-    margin-left: 0; }
-
-  .offset-xl-1 {
-    margin-left: 8.3333333333%; }
-
-  .offset-xl-2 {
-    margin-left: 16.6666666667%; }
-
-  .offset-xl-3 {
-    margin-left: 25%; }
-
-  .offset-xl-4 {
-    margin-left: 33.3333333333%; }
-
-  .offset-xl-5 {
-    margin-left: 41.6666666667%; }
-
-  .offset-xl-6 {
-    margin-left: 50%; }
-
-  .offset-xl-7 {
-    margin-left: 58.3333333333%; }
-
-  .offset-xl-8 {
-    margin-left: 66.6666666667%; }
-
-  .offset-xl-9 {
-    margin-left: 75%; }
-
-  .offset-xl-10 {
-    margin-left: 83.3333333333%; }
-
-  .offset-xl-11 {
-    margin-left: 91.6666666667%; } }
-.flex-row {
-  flex-direction: row !important; }
-
-.flex-column {
-  flex-direction: column !important; }
-
-.flex-row-reverse {
-  flex-direction: row-reverse !important; }
-
-.flex-column-reverse {
-  flex-direction: column-reverse !important; }
-
-.flex-wrap {
-  flex-wrap: wrap !important; }
-
-.flex-nowrap {
-  flex-wrap: nowrap !important; }
-
-.flex-wrap-reverse {
-  flex-wrap: wrap-reverse !important; }
-
-.justify-content-start {
-  justify-content: flex-start !important; }
-
-.justify-content-end {
-  justify-content: flex-end !important; }
-
-.justify-content-center {
-  justify-content: center !important; }
-
-.justify-content-between {
-  justify-content: space-between !important; }
-
-.justify-content-around {
-  justify-content: space-around !important; }
-
-.align-items-start {
-  align-items: flex-start !important; }
-
-.align-items-end {
-  align-items: flex-end !important; }
-
-.align-items-center {
-  align-items: center !important; }
-
-.align-items-baseline {
-  align-items: baseline !important; }
-
-.align-items-stretch {
-  align-items: stretch !important; }
-
-.align-content-start {
-  align-content: flex-start !important; }
-
-.align-content-end {
-  align-content: flex-end !important; }
-
-.align-content-center {
-  align-content: center !important; }
-
-.align-content-between {
-  align-content: space-between !important; }
-
-.align-content-around {
-  align-content: space-around !important; }
-
-.align-content-stretch {
-  align-content: stretch !important; }
-
-.align-self-auto {
-  align-self: auto !important; }
-
-.align-self-start {
-  align-self: flex-start !important; }
-
-.align-self-end {
-  align-self: flex-end !important; }
-
-.align-self-center {
-  align-self: center !important; }
-
-.align-self-baseline {
-  align-self: baseline !important; }
-
-.align-self-stretch {
-  align-self: stretch !important; }
-
- at media (min-width: 576px) {
-  .flex-sm-row {
-    flex-direction: row !important; }
-
-  .flex-sm-column {
-    flex-direction: column !important; }
-
-  .flex-sm-row-reverse {
-    flex-direction: row-reverse !important; }
-
-  .flex-sm-column-reverse {
-    flex-direction: column-reverse !important; }
-
-  .flex-sm-wrap {
-    flex-wrap: wrap !important; }
-
-  .flex-sm-nowrap {
-    flex-wrap: nowrap !important; }
-
-  .flex-sm-wrap-reverse {
-    flex-wrap: wrap-reverse !important; }
-
-  .justify-content-sm-start {
-    justify-content: flex-start !important; }
-
-  .justify-content-sm-end {
-    justify-content: flex-end !important; }
-
-  .justify-content-sm-center {
-    justify-content: center !important; }
-
-  .justify-content-sm-between {
-    justify-content: space-between !important; }
-
-  .justify-content-sm-around {
-    justify-content: space-around !important; }
-
-  .align-items-sm-start {
-    align-items: flex-start !important; }
-
-  .align-items-sm-end {
-    align-items: flex-end !important; }
-
-  .align-items-sm-center {
-    align-items: center !important; }
-
-  .align-items-sm-baseline {
-    align-items: baseline !important; }
-
-  .align-items-sm-stretch {
-    align-items: stretch !important; }
-
-  .align-content-sm-start {
-    align-content: flex-start !important; }
-
-  .align-content-sm-end {
-    align-content: flex-end !important; }
-
-  .align-content-sm-center {
-    align-content: center !important; }
-
-  .align-content-sm-between {
-    align-content: space-between !important; }
-
-  .align-content-sm-around {
-    align-content: space-around !important; }
-
-  .align-content-sm-stretch {
-    align-content: stretch !important; }
-
-  .align-self-sm-auto {
-    align-self: auto !important; }
-
-  .align-self-sm-start {
-    align-self: flex-start !important; }
-
-  .align-self-sm-end {
-    align-self: flex-end !important; }
-
-  .align-self-sm-center {
-    align-self: center !important; }
-
-  .align-self-sm-baseline {
-    align-self: baseline !important; }
-
-  .align-self-sm-stretch {
-    align-self: stretch !important; } }
- at media (min-width: 768px) {
-  .flex-md-row {
-    flex-direction: row !important; }
-
-  .flex-md-column {
-    flex-direction: column !important; }
-
-  .flex-md-row-reverse {
-    flex-direction: row-reverse !important; }
-
-  .flex-md-column-reverse {
-    flex-direction: column-reverse !important; }
-
-  .flex-md-wrap {
-    flex-wrap: wrap !important; }
-
-  .flex-md-nowrap {
-    flex-wrap: nowrap !important; }
-
-  .flex-md-wrap-reverse {
-    flex-wrap: wrap-reverse !important; }
-
-  .justify-content-md-start {
-    justify-content: flex-start !important; }
-
-  .justify-content-md-end {
-    justify-content: flex-end !important; }
-
-  .justify-content-md-center {
-    justify-content: center !important; }
-
-  .justify-content-md-between {
-    justify-content: space-between !important; }
-
-  .justify-content-md-around {
-    justify-content: space-around !important; }
-
-  .align-items-md-start {
-    align-items: flex-start !important; }
-
-  .align-items-md-end {
-    align-items: flex-end !important; }
-
-  .align-items-md-center {
-    align-items: center !important; }
-
-  .align-items-md-baseline {
-    align-items: baseline !important; }
-
-  .align-items-md-stretch {
-    align-items: stretch !important; }
-
-  .align-content-md-start {
-    align-content: flex-start !important; }
-
-  .align-content-md-end {
-    align-content: flex-end !important; }
-
-  .align-content-md-center {
-    align-content: center !important; }
-
-  .align-content-md-between {
-    align-content: space-between !important; }
-
-  .align-content-md-around {
-    align-content: space-around !important; }
-
-  .align-content-md-stretch {
-    align-content: stretch !important; }
-
-  .align-self-md-auto {
-    align-self: auto !important; }
-
-  .align-self-md-start {
-    align-self: flex-start !important; }
-
-  .align-self-md-end {
-    align-self: flex-end !important; }
-
-  .align-self-md-center {
-    align-self: center !important; }
-
-  .align-self-md-baseline {
-    align-self: baseline !important; }
-
-  .align-self-md-stretch {
-    align-self: stretch !important; } }
- at media (min-width: 992px) {
-  .flex-lg-row {
-    flex-direction: row !important; }
-
-  .flex-lg-column {
-    flex-direction: column !important; }
-
-  .flex-lg-row-reverse {
-    flex-direction: row-reverse !important; }
-
-  .flex-lg-column-reverse {
-    flex-direction: column-reverse !important; }
-
-  .flex-lg-wrap {
-    flex-wrap: wrap !important; }
-
-  .flex-lg-nowrap {
-    flex-wrap: nowrap !important; }
-
-  .flex-lg-wrap-reverse {
-    flex-wrap: wrap-reverse !important; }
-
-  .justify-content-lg-start {
-    justify-content: flex-start !important; }
-
-  .justify-content-lg-end {
-    justify-content: flex-end !important; }
-
-  .justify-content-lg-center {
-    justify-content: center !important; }
-
-  .justify-content-lg-between {
-    justify-content: space-between !important; }
-
-  .justify-content-lg-around {
-    justify-content: space-around !important; }
-
-  .align-items-lg-start {
-    align-items: flex-start !important; }
-
-  .align-items-lg-end {
-    align-items: flex-end !important; }
-
-  .align-items-lg-center {
-    align-items: center !important; }
-
-  .align-items-lg-baseline {
-    align-items: baseline !important; }
-
-  .align-items-lg-stretch {
-    align-items: stretch !important; }
-
-  .align-content-lg-start {
-    align-content: flex-start !important; }
-
-  .align-content-lg-end {
-    align-content: flex-end !important; }
-
-  .align-content-lg-center {
-    align-content: center !important; }
-
-  .align-content-lg-between {
-    align-content: space-between !important; }
-
-  .align-content-lg-around {
-    align-content: space-around !important; }
-
-  .align-content-lg-stretch {
-    align-content: stretch !important; }
-
-  .align-self-lg-auto {
-    align-self: auto !important; }
-
-  .align-self-lg-start {
-    align-self: flex-start !important; }
-
-  .align-self-lg-end {
-    align-self: flex-end !important; }
-
-  .align-self-lg-center {
-    align-self: center !important; }
-
-  .align-self-lg-baseline {
-    align-self: baseline !important; }
-
-  .align-self-lg-stretch {
-    align-self: stretch !important; } }
- at media (min-width: 1200px) {
-  .flex-xl-row {
-    flex-direction: row !important; }
-
-  .flex-xl-column {
-    flex-direction: column !important; }
-
-  .flex-xl-row-reverse {
-    flex-direction: row-reverse !important; }
-
-  .flex-xl-column-reverse {
-    flex-direction: column-reverse !important; }
-
-  .flex-xl-wrap {
-    flex-wrap: wrap !important; }
-
-  .flex-xl-nowrap {
-    flex-wrap: nowrap !important; }
-
-  .flex-xl-wrap-reverse {
-    flex-wrap: wrap-reverse !important; }
-
-  .justify-content-xl-start {
-    justify-content: flex-start !important; }
-
-  .justify-content-xl-end {
-    justify-content: flex-end !important; }
-
-  .justify-content-xl-center {
-    justify-content: center !important; }
-
-  .justify-content-xl-between {
-    justify-content: space-between !important; }
-
-  .justify-content-xl-around {
-    justify-content: space-around !important; }
-
-  .align-items-xl-start {
-    align-items: flex-start !important; }
-
-  .align-items-xl-end {
-    align-items: flex-end !important; }
-
-  .align-items-xl-center {
-    align-items: center !important; }
-
-  .align-items-xl-baseline {
-    align-items: baseline !important; }
-
-  .align-items-xl-stretch {
-    align-items: stretch !important; }
-
-  .align-content-xl-start {
-    align-content: flex-start !important; }
-
-  .align-content-xl-end {
-    align-content: flex-end !important; }
-
-  .align-content-xl-center {
-    align-content: center !important; }
-
-  .align-content-xl-between {
-    align-content: space-between !important; }
-
-  .align-content-xl-around {
-    align-content: space-around !important; }
-
-  .align-content-xl-stretch {
-    align-content: stretch !important; }
-
-  .align-self-xl-auto {
-    align-self: auto !important; }
-
-  .align-self-xl-start {
-    align-self: flex-start !important; }
-
-  .align-self-xl-end {
-    align-self: flex-end !important; }
-
-  .align-self-xl-center {
-    align-self: center !important; }
-
-  .align-self-xl-baseline {
-    align-self: baseline !important; }
-
-  .align-self-xl-stretch {
-    align-self: stretch !important; } }
-
-/*# sourceMappingURL=bootstrap-grid.css.map */
diff --git a/assets/static/bootstrap-grid.css.map b/assets/static/bootstrap-grid.css.map
deleted file mode 100644
index b93f69c..0000000
--- a/assets/static/bootstrap-grid.css.map
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-"version": 3,
-"mappings": "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",
-"sources": ["../scss/bootstrap-grid.scss","../scss/_grid.scss","../scss/mixins/_grid.scss","../scss/mixins/_breakpoints.scss","../scss/_functions.scss","../scss/mixins/_grid-framework.scss","../scss/utilities/_flex.scss"],
-"names": [],
-"file": "bootstrap-grid.css"
-}
\ No newline at end of file
diff --git a/assets/static/bootstrap-reboot.css b/assets/static/bootstrap-reboot.css
deleted file mode 100644
index 07cb40c..0000000
--- a/assets/static/bootstrap-reboot.css
+++ /dev/null
@@ -1,279 +0,0 @@
-/*!
- * Bootstrap Reboot v4.0.0-beta.2 (https://getbootstrap.com)
- * Copyright 2011-2017 The Bootstrap Authors
- * Copyright 2011-2017 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
- */
-*,
-*::before,
-*::after {
-  box-sizing: border-box; }
-
-html {
-  font-family: sans-serif;
-  line-height: 1.15;
-  -webkit-text-size-adjust: 100%;
-  -ms-text-size-adjust: 100%;
-  -ms-overflow-style: scrollbar;
-  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
-
- at -ms-viewport {
-  width: device-width; }
-article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {
-  display: block; }
-
-body {
-  margin: 0;
-  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
-  font-size: 1rem;
-  font-weight: 400;
-  line-height: 1.5;
-  color: #212529;
-  text-align: left;
-  background-color: #fff; }
-
-[tabindex="-1"]:focus {
-  outline: none !important; }
-
-hr {
-  box-sizing: content-box;
-  height: 0;
-  overflow: visible; }
-
-h1, h2, h3, h4, h5, h6 {
-  margin-top: 0;
-  margin-bottom: 0.5rem; }
-
-p {
-  margin-top: 0;
-  margin-bottom: 1rem; }
-
-abbr[title],
-abbr[data-original-title] {
-  text-decoration: underline;
-  text-decoration: underline dotted;
-  cursor: help;
-  border-bottom: 0; }
-
-address {
-  margin-bottom: 1rem;
-  font-style: normal;
-  line-height: inherit; }
-
-ol,
-ul,
-dl {
-  margin-top: 0;
-  margin-bottom: 1rem; }
-
-ol ol,
-ul ul,
-ol ul,
-ul ol {
-  margin-bottom: 0; }
-
-dt {
-  font-weight: 700; }
-
-dd {
-  margin-bottom: .5rem;
-  margin-left: 0; }
-
-blockquote {
-  margin: 0 0 1rem; }
-
-dfn {
-  font-style: italic; }
-
-b,
-strong {
-  font-weight: bolder; }
-
-small {
-  font-size: 80%; }
-
-sub,
-sup {
-  position: relative;
-  font-size: 75%;
-  line-height: 0;
-  vertical-align: baseline; }
-
-sub {
-  bottom: -.25em; }
-
-sup {
-  top: -.5em; }
-
-a {
-  color: #007bff;
-  text-decoration: none;
-  background-color: transparent;
-  -webkit-text-decoration-skip: objects; }
-  a:hover {
-    color: #0056b3;
-    text-decoration: underline; }
-
-a:not([href]):not([tabindex]) {
-  color: inherit;
-  text-decoration: none; }
-  a:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover {
-    color: inherit;
-    text-decoration: none; }
-  a:not([href]):not([tabindex]):focus {
-    outline: 0; }
-
-pre,
-code,
-kbd,
-samp {
-  font-family: monospace, monospace;
-  font-size: 1em; }
-
-pre {
-  margin-top: 0;
-  margin-bottom: 1rem;
-  overflow: auto;
-  -ms-overflow-style: scrollbar; }
-
-figure {
-  margin: 0 0 1rem; }
-
-img {
-  vertical-align: middle;
-  border-style: none; }
-
-svg:not(:root) {
-  overflow: hidden; }
-
-a,
-area,
-button,
-[role="button"],
-input:not([type="range"]),
-label,
-select,
-summary,
-textarea {
-  touch-action: manipulation; }
-
-table {
-  border-collapse: collapse; }
-
-caption {
-  padding-top: 0.75rem;
-  padding-bottom: 0.75rem;
-  color: #868e96;
-  text-align: left;
-  caption-side: bottom; }
-
-th {
-  text-align: inherit; }
-
-label {
-  display: inline-block;
-  margin-bottom: .5rem; }
-
-button {
-  border-radius: 0; }
-
-button:focus {
-  outline: 1px dotted;
-  outline: 5px auto -webkit-focus-ring-color; }
-
-input,
-button,
-select,
-optgroup,
-textarea {
-  margin: 0;
-  font-family: inherit;
-  font-size: inherit;
-  line-height: inherit; }
-
-button,
-input {
-  overflow: visible; }
-
-button,
-select {
-  text-transform: none; }
-
-button,
-html [type="button"],
-[type="reset"],
-[type="submit"] {
-  -webkit-appearance: button; }
-
-button::-moz-focus-inner,
-[type="button"]::-moz-focus-inner,
-[type="reset"]::-moz-focus-inner,
-[type="submit"]::-moz-focus-inner {
-  padding: 0;
-  border-style: none; }
-
-input[type="radio"],
-input[type="checkbox"] {
-  box-sizing: border-box;
-  padding: 0; }
-
-input[type="date"],
-input[type="time"],
-input[type="datetime-local"],
-input[type="month"] {
-  -webkit-appearance: listbox; }
-
-textarea {
-  overflow: auto;
-  resize: vertical; }
-
-fieldset {
-  min-width: 0;
-  padding: 0;
-  margin: 0;
-  border: 0; }
-
-legend {
-  display: block;
-  width: 100%;
-  max-width: 100%;
-  padding: 0;
-  margin-bottom: .5rem;
-  font-size: 1.5rem;
-  line-height: inherit;
-  color: inherit;
-  white-space: normal; }
-
-progress {
-  vertical-align: baseline; }
-
-[type="number"]::-webkit-inner-spin-button,
-[type="number"]::-webkit-outer-spin-button {
-  height: auto; }
-
-[type="search"] {
-  outline-offset: -2px;
-  -webkit-appearance: none; }
-
-[type="search"]::-webkit-search-cancel-button,
-[type="search"]::-webkit-search-decoration {
-  -webkit-appearance: none; }
-
-::-webkit-file-upload-button {
-  font: inherit;
-  -webkit-appearance: button; }
-
-output {
-  display: inline-block; }
-
-summary {
-  display: list-item; }
-
-template {
-  display: none; }
-
-[hidden] {
-  display: none !important; }
-
-/*# sourceMappingURL=bootstrap-reboot.css.map */
diff --git a/assets/static/bootstrap-reboot.css.map b/assets/static/bootstrap-reboot.css.map
deleted file mode 100644
index 8ea9e4d..0000000
--- a/assets/static/bootstrap-reboot.css.map
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-"version": 3,
-"mappings": "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",
-"sources": ["../scss/bootstrap-reboot.scss","../scss/_reboot.scss","../scss/_variables.scss","../scss/mixins/_hover.scss"],
-"names": [],
-"file": "bootstrap-reboot.css"
-}
\ No newline at end of file
diff --git a/assets/static/bootstrap.css b/assets/static/bootstrap.css
deleted file mode 100644
index 21874b7..0000000
--- a/assets/static/bootstrap.css
+++ /dev/null
@@ -1,7425 +0,0 @@
-/*!
- * Bootstrap v4.0.0-beta.2 (https://getbootstrap.com)
- * Copyright 2011-2017 The Bootstrap Authors
- * Copyright 2011-2017 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
-:root {
-  --blue: #007bff;
-  --indigo: #6610f2;
-  --purple: #7D4698;
-  --pink: #e83e8c;
-  --red: #EF243E;
-  --orange: #fd7e14;
-  --yellow: #FFBF00;
-  --green: #68B044;
-  --teal: #20c997;
-  --cyan: #00A5BB;
-  --white: #fff;
-  --gray: #848E97;
-  --gray-dark: #333A41;
-  --primary: #7D4698;
-  --secondary: #333A41;
-  --success: #68B044;
-  --info: #00A5BB;
-  --warning: #FFBF00;
-  --danger: #EF243E;
-  --light: #F8F9FA;
-  --dark: #59316B;
-  --breakpoint-xs: 0;
-  --breakpoint-sm: 576px;
-  --breakpoint-md: 768px;
-  --breakpoint-lg: 992px;
-  --breakpoint-xl: 1200px;
-  --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
-  --font-family-monospace: "Source Code Pro", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
-
- at media print {
-  *,
-  *::before,
-  *::after {
-    text-shadow: none !important;
-    box-shadow: none !important; }
-
-  a,
-  a:visited {
-    text-decoration: underline; }
-
-  abbr[title]::after {
-    content: " (" attr(title) ")"; }
-
-  pre {
-    white-space: pre-wrap !important; }
-
-  pre,
-  blockquote {
-    border: 1px solid #999;
-    page-break-inside: avoid; }
-
-  thead {
-    display: table-header-group; }
-
-  tr,
-  img {
-    page-break-inside: avoid; }
-
-  p,
-  h2,
-  h3 {
-    orphans: 3;
-    widows: 3; }
-
-  h2,
-  h3 {
-    page-break-after: avoid; }
-
-  .navbar {
-    display: none; }
-
-  .badge {
-    border: 1px solid #000; }
-
-  .table {
-    border-collapse: collapse !important; }
-    .table td,
-    .table th {
-      background-color: #fff !important; }
-
-  .table-bordered th,
-  .table-bordered td {
-    border: 1px solid #ddd !important; } }
-*,
-*::before,
-*::after {
-  box-sizing: border-box; }
-
-html {
-  font-family: sans-serif;
-  line-height: 1.15;
-  -webkit-text-size-adjust: 100%;
-  -ms-text-size-adjust: 100%;
-  -ms-overflow-style: scrollbar;
-  -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
-
- at -ms-viewport {
-  width: device-width; }
-article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {
-  display: block; }
-
-body {
-  margin: 0;
-  font-family: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
-  font-size: 1rem;
-  font-weight: 400;
-  line-height: 1.5;
-  color: #212529;
-  text-align: left;
-  background-color: #fff; }
-
-[tabindex="-1"]:focus {
-  outline: none !important; }
-
-hr {
-  box-sizing: content-box;
-  height: 0;
-  overflow: visible; }
-
-h1, h2, h3, h4, h5, h6 {
-  margin-top: 0;
-  margin-bottom: 0.5rem; }
-
-p {
-  margin-top: 0;
-  margin-bottom: 1rem; }
-
-abbr[title],
-abbr[data-original-title] {
-  text-decoration: underline;
-  text-decoration: underline dotted;
-  cursor: help;
-  border-bottom: 0; }
-
-address {
-  margin-bottom: 1rem;
-  font-style: normal;
-  line-height: inherit; }
-
-ol,
-ul,
-dl {
-  margin-top: 0;
-  margin-bottom: 1rem; }
-
-ol ol,
-ul ul,
-ol ul,
-ul ol {
-  margin-bottom: 0; }
-
-dt {
-  font-weight: 700; }
-
-dd {
-  margin-bottom: .5rem;
-  margin-left: 0; }
-
-blockquote {
-  margin: 0 0 1rem; }
-
-dfn {
-  font-style: italic; }
-
-b,
-strong {
-  font-weight: bolder; }
-
-small {
-  font-size: 80%; }
-
-sub,
-sup {
-  position: relative;
-  font-size: 75%;
-  line-height: 0;
-  vertical-align: baseline; }
-
-sub {
-  bottom: -.25em; }
-
-sup {
-  top: -.5em; }
-
-a {
-  color: #7D4698;
-  text-decoration: none;
-  background-color: transparent;
-  -webkit-text-decoration-skip: objects; }
-  a:hover {
-    color: #522e64;
-    text-decoration: underline; }
-
-a:not([href]):not([tabindex]) {
-  color: inherit;
-  text-decoration: none; }
-  a:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover {
-    color: inherit;
-    text-decoration: none; }
-  a:not([href]):not([tabindex]):focus {
-    outline: 0; }
-
-pre,
-code,
-kbd,
-samp {
-  font-family: monospace, monospace;
-  font-size: 1em; }
-
-pre {
-  margin-top: 0;
-  margin-bottom: 1rem;
-  overflow: auto;
-  -ms-overflow-style: scrollbar; }
-
-figure {
-  margin: 0 0 1rem; }
-
-img {
-  vertical-align: middle;
-  border-style: none; }
-
-svg:not(:root) {
-  overflow: hidden; }
-
-a,
-area,
-button,
-[role="button"],
-input:not([type="range"]),
-label,
-select,
-summary,
-textarea {
-  touch-action: manipulation; }
-
-table {
-  border-collapse: collapse; }
-
-caption {
-  padding-top: 0.75rem;
-  padding-bottom: 0.75rem;
-  color: #848E97;
-  text-align: left;
-  caption-side: bottom; }
-
-th {
-  text-align: inherit; }
-
-label {
-  display: inline-block;
-  margin-bottom: .5rem; }
-
-button {
-  border-radius: 0; }
-
-button:focus {
-  outline: 1px dotted;
-  outline: 5px auto -webkit-focus-ring-color; }
-
-input,
-button,
-select,
-optgroup,
-textarea {
-  margin: 0;
-  font-family: inherit;
-  font-size: inherit;
-  line-height: inherit; }
-
-button,
-input {
-  overflow: visible; }
-
-button,
-select {
-  text-transform: none; }
-
-button,
-html [type="button"],
-[type="reset"],
-[type="submit"] {
-  -webkit-appearance: button; }
-
-button::-moz-focus-inner,
-[type="button"]::-moz-focus-inner,
-[type="reset"]::-moz-focus-inner,
-[type="submit"]::-moz-focus-inner {
-  padding: 0;
-  border-style: none; }
-
-input[type="radio"],
-input[type="checkbox"] {
-  box-sizing: border-box;
-  padding: 0; }
-
-input[type="date"],
-input[type="time"],
-input[type="datetime-local"],
-input[type="month"] {
-  -webkit-appearance: listbox; }
-
-textarea {
-  overflow: auto;
-  resize: vertical; }
-
-fieldset {
-  min-width: 0;
-  padding: 0;
-  margin: 0;
-  border: 0; }
-
-legend {
-  display: block;
-  width: 100%;
-  max-width: 100%;
-  padding: 0;
-  margin-bottom: .5rem;
-  font-size: 1.5rem;
-  line-height: inherit;
-  color: inherit;
-  white-space: normal; }
-
-progress {
-  vertical-align: baseline; }
-
-[type="number"]::-webkit-inner-spin-button,
-[type="number"]::-webkit-outer-spin-button {
-  height: auto; }
-
-[type="search"] {
-  outline-offset: -2px;
-  -webkit-appearance: none; }
-
-[type="search"]::-webkit-search-cancel-button,
-[type="search"]::-webkit-search-decoration {
-  -webkit-appearance: none; }
-
-::-webkit-file-upload-button {
-  font: inherit;
-  -webkit-appearance: button; }
-
-output {
-  display: inline-block; }
-
-summary {
-  display: list-item; }
-
-template {
-  display: none; }
-
-[hidden] {
-  display: none !important; }
-
-h1, h2, h3, h4, h5, h6,
-.h1, .h2, .h3, .h4, .h5, .h6 {
-  margin-bottom: 0.5rem;
-  font-family: inherit;
-  font-weight: 500;
-  line-height: 1.2;
-  color: inherit; }
-
-h1, .h1 {
-  font-size: 2.5rem; }
-
-h2, .h2 {
-  font-size: 2rem; }
-
-h3, .h3 {
-  font-size: 1.75rem; }
-
-h4, .h4 {
-  font-size: 1.5rem; }
-
-h5, .h5 {
-  font-size: 1.25rem; }
-
-h6, .h6 {
-  font-size: 1rem; }
-
-.lead {
-  font-size: 1.25rem;
-  font-weight: 300; }
-
-.display-1 {
-  font-size: 6rem;
-  font-weight: 300;
-  line-height: 1.2; }
-
-.display-2 {
-  font-size: 5.5rem;
-  font-weight: 300;
-  line-height: 1.2; }
-
-.display-3 {
-  font-size: 4.5rem;
-  font-weight: 300;
-  line-height: 1.2; }
-
-.display-4 {
-  font-size: 3.5rem;
-  font-weight: 300;
-  line-height: 1.2; }
-
-hr {
-  margin-top: 1rem;
-  margin-bottom: 1rem;
-  border: 0;
-  border-top: 1px solid rgba(0, 0, 0, 0.1); }
-
-small,
-.small {
-  font-size: 80%;
-  font-weight: 400; }
-
-mark,
-.mark {
-  padding: 0.2em;
-  background-color: #e6d5ee; }
-
-.list-unstyled {
-  padding-left: 0;
-  list-style: none; }
-
-.list-inline {
-  padding-left: 0;
-  list-style: none; }
-
-.list-inline-item {
-  display: inline-block; }
-  .list-inline-item:not(:last-child) {
-    margin-right: 5px; }
-
-.initialism {
-  font-size: 90%;
-  text-transform: uppercase; }
-
-.blockquote {
-  margin-bottom: 1rem;
-  font-size: 1.25rem; }
-
-.blockquote-footer {
-  display: block;
-  font-size: 80%;
-  color: #848E97; }
-  .blockquote-footer::before {
-    content: "\2014 \00A0"; }
-
-.img-fluid {
-  max-width: 100%;
-  height: auto; }
-
-.img-thumbnail {
-  padding: 0.25rem;
-  background-color: #fff;
-  border: 1px solid #ddd;
-  border-radius: 0.25rem;
-  transition: all 0.2s ease-in-out;
-  max-width: 100%;
-  height: auto; }
-
-.figure {
-  display: inline-block; }
-
-.figure-img {
-  margin-bottom: 0.5rem;
-  line-height: 1; }
-
-.figure-caption {
-  font-size: 90%;
-  color: #848E97; }
-
-code,
-kbd,
-pre,
-samp {
-  font-family: "Source Code Pro", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
-
-code {
-  padding: 0.5rem 0.5rem;
-  font-size: 80%;
-  color: lightgreen;
-  background-color: black;
-  border-radius: 0.25rem; }
-  a > code {
-    padding: 0;
-    color: inherit;
-    background-color: inherit; }
-
-kbd {
-  padding: 0.5rem 0.5rem;
-  font-size: 80%;
-  color: #fff;
-  background-color: #212529;
-  border-radius: 0.2rem; }
-  kbd kbd {
-    padding: 0;
-    font-size: 100%;
-    font-weight: 700; }
-
-pre {
-  display: block;
-  margin-top: 0;
-  margin-bottom: 1rem;
-  font-size: 80%;
-  color: lightgreen; }
-  pre code {
-    padding: 0;
-    font-size: inherit;
-    color: inherit;
-    background-color: transparent;
-    border-radius: 0; }
-
-.pre-scrollable {
-  max-height: 340px;
-  overflow-y: scroll; }
-
-.container {
-  width: 100%;
-  padding-right: 15px;
-  padding-left: 15px;
-  margin-right: auto;
-  margin-left: auto; }
-  @media (min-width: 576px) {
-    .container {
-      max-width: 540px; } }
-  @media (min-width: 768px) {
-    .container {
-      max-width: 720px; } }
-  @media (min-width: 992px) {
-    .container {
-      max-width: 960px; } }
-  @media (min-width: 1200px) {
-    .container {
-      max-width: 1140px; } }
-
-.container-fluid {
-  width: 100%;
-  padding-right: 15px;
-  padding-left: 15px;
-  margin-right: auto;
-  margin-left: auto; }
-
-.row {
-  display: flex;
-  flex-wrap: wrap;
-  margin-right: -15px;
-  margin-left: -15px; }
-
-.no-gutters {
-  margin-right: 0;
-  margin-left: 0; }
-  .no-gutters > .col,
-  .no-gutters > [class*="col-"] {
-    padding-right: 0;
-    padding-left: 0; }
-
-.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,
-.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,
-.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,
-.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,
-.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,
-.col-xl-auto {
-  position: relative;
-  width: 100%;
-  min-height: 1px;
-  padding-right: 15px;
-  padding-left: 15px; }
-
-.col {
-  flex-basis: 0;
-  flex-grow: 1;
-  max-width: 100%; }
-
-.col-auto {
-  flex: 0 0 auto;
-  width: auto;
-  max-width: none; }
-
-.col-1 {
-  flex: 0 0 8.3333333333%;
-  max-width: 8.3333333333%; }
-
-.col-2 {
-  flex: 0 0 16.6666666667%;
-  max-width: 16.6666666667%; }
-
-.col-3 {
-  flex: 0 0 25%;
-  max-width: 25%; }
-
-.col-4 {
-  flex: 0 0 33.3333333333%;
-  max-width: 33.3333333333%; }
-
-.col-5 {
-  flex: 0 0 41.6666666667%;
-  max-width: 41.6666666667%; }
-
-.col-6 {
-  flex: 0 0 50%;
-  max-width: 50%; }
-
-.col-7 {
-  flex: 0 0 58.3333333333%;
-  max-width: 58.3333333333%; }
-
-.col-8 {
-  flex: 0 0 66.6666666667%;
-  max-width: 66.6666666667%; }
-
-.col-9 {
-  flex: 0 0 75%;
-  max-width: 75%; }
-
-.col-10 {
-  flex: 0 0 83.3333333333%;
-  max-width: 83.3333333333%; }
-
-.col-11 {
-  flex: 0 0 91.6666666667%;
-  max-width: 91.6666666667%; }
-
-.col-12 {
-  flex: 0 0 100%;
-  max-width: 100%; }
-
-.order-first {
-  order: -1; }
-
-.order-1 {
-  order: 1; }
-
-.order-2 {
-  order: 2; }
-
-.order-3 {
-  order: 3; }
-
-.order-4 {
-  order: 4; }
-
-.order-5 {
-  order: 5; }
-
-.order-6 {
-  order: 6; }
-
-.order-7 {
-  order: 7; }
-
-.order-8 {
-  order: 8; }
-
-.order-9 {
-  order: 9; }
-
-.order-10 {
-  order: 10; }
-
-.order-11 {
-  order: 11; }
-
-.order-12 {
-  order: 12; }
-
-.offset-1 {
-  margin-left: 8.3333333333%; }
-
-.offset-2 {
-  margin-left: 16.6666666667%; }
-
-.offset-3 {
-  margin-left: 25%; }
-
-.offset-4 {
-  margin-left: 33.3333333333%; }
-
-.offset-5 {
-  margin-left: 41.6666666667%; }
-
-.offset-6 {
-  margin-left: 50%; }
-
-.offset-7 {
-  margin-left: 58.3333333333%; }
-
-.offset-8 {
-  margin-left: 66.6666666667%; }
-
-.offset-9 {
-  margin-left: 75%; }
-
-.offset-10 {
-  margin-left: 83.3333333333%; }
-
-.offset-11 {
-  margin-left: 91.6666666667%; }
-
- at media (min-width: 576px) {
-  .col-sm {
-    flex-basis: 0;
-    flex-grow: 1;
-    max-width: 100%; }
-
-  .col-sm-auto {
-    flex: 0 0 auto;
-    width: auto;
-    max-width: none; }
-
-  .col-sm-1 {
-    flex: 0 0 8.3333333333%;
-    max-width: 8.3333333333%; }
-
-  .col-sm-2 {
-    flex: 0 0 16.6666666667%;
-    max-width: 16.6666666667%; }
-
-  .col-sm-3 {
-    flex: 0 0 25%;
-    max-width: 25%; }
-
-  .col-sm-4 {
-    flex: 0 0 33.3333333333%;
-    max-width: 33.3333333333%; }
-
-  .col-sm-5 {
-    flex: 0 0 41.6666666667%;
-    max-width: 41.6666666667%; }
-
-  .col-sm-6 {
-    flex: 0 0 50%;
-    max-width: 50%; }
-
-  .col-sm-7 {
-    flex: 0 0 58.3333333333%;
-    max-width: 58.3333333333%; }
-
-  .col-sm-8 {
-    flex: 0 0 66.6666666667%;
-    max-width: 66.6666666667%; }
-
-  .col-sm-9 {
-    flex: 0 0 75%;
-    max-width: 75%; }
-
-  .col-sm-10 {
-    flex: 0 0 83.3333333333%;
-    max-width: 83.3333333333%; }
-
-  .col-sm-11 {
-    flex: 0 0 91.6666666667%;
-    max-width: 91.6666666667%; }
-
-  .col-sm-12 {
-    flex: 0 0 100%;
-    max-width: 100%; }
-
-  .order-sm-first {
-    order: -1; }
-
-  .order-sm-1 {
-    order: 1; }
-
-  .order-sm-2 {
-    order: 2; }
-
-  .order-sm-3 {
-    order: 3; }
-
-  .order-sm-4 {
-    order: 4; }
-
-  .order-sm-5 {
-    order: 5; }
-
-  .order-sm-6 {
-    order: 6; }
-
-  .order-sm-7 {
-    order: 7; }
-
-  .order-sm-8 {
-    order: 8; }
-
-  .order-sm-9 {
-    order: 9; }
-
-  .order-sm-10 {
-    order: 10; }
-
-  .order-sm-11 {
-    order: 11; }
-
-  .order-sm-12 {
-    order: 12; }
-
-  .offset-sm-0 {
-    margin-left: 0; }
-
-  .offset-sm-1 {
-    margin-left: 8.3333333333%; }
-
-  .offset-sm-2 {
-    margin-left: 16.6666666667%; }
-
-  .offset-sm-3 {
-    margin-left: 25%; }
-
-  .offset-sm-4 {
-    margin-left: 33.3333333333%; }
-
-  .offset-sm-5 {
-    margin-left: 41.6666666667%; }
-
-  .offset-sm-6 {
-    margin-left: 50%; }
-
-  .offset-sm-7 {
-    margin-left: 58.3333333333%; }
-
-  .offset-sm-8 {
-    margin-left: 66.6666666667%; }
-
-  .offset-sm-9 {
-    margin-left: 75%; }
-
-  .offset-sm-10 {
-    margin-left: 83.3333333333%; }
-
-  .offset-sm-11 {
-    margin-left: 91.6666666667%; } }
- at media (min-width: 768px) {
-  .col-md {
-    flex-basis: 0;
-    flex-grow: 1;
-    max-width: 100%; }
-
-  .col-md-auto {
-    flex: 0 0 auto;
-    width: auto;
-    max-width: none; }
-
-  .col-md-1 {
-    flex: 0 0 8.3333333333%;
-    max-width: 8.3333333333%; }
-
-  .col-md-2 {
-    flex: 0 0 16.6666666667%;
-    max-width: 16.6666666667%; }
-
-  .col-md-3 {
-    flex: 0 0 25%;
-    max-width: 25%; }
-
-  .col-md-4 {
-    flex: 0 0 33.3333333333%;
-    max-width: 33.3333333333%; }
-
-  .col-md-5 {
-    flex: 0 0 41.6666666667%;
-    max-width: 41.6666666667%; }
-
-  .col-md-6 {
-    flex: 0 0 50%;
-    max-width: 50%; }
-
-  .col-md-7 {
-    flex: 0 0 58.3333333333%;
-    max-width: 58.3333333333%; }
-
-  .col-md-8 {
-    flex: 0 0 66.6666666667%;
-    max-width: 66.6666666667%; }
-
-  .col-md-9 {
-    flex: 0 0 75%;
-    max-width: 75%; }
-
-  .col-md-10 {
-    flex: 0 0 83.3333333333%;
-    max-width: 83.3333333333%; }
-
-  .col-md-11 {
-    flex: 0 0 91.6666666667%;
-    max-width: 91.6666666667%; }
-
-  .col-md-12 {
-    flex: 0 0 100%;
-    max-width: 100%; }
-
-  .order-md-first {
-    order: -1; }
-
-  .order-md-1 {
-    order: 1; }
-
-  .order-md-2 {
-    order: 2; }
-
-  .order-md-3 {
-    order: 3; }
-
-  .order-md-4 {
-    order: 4; }
-
-  .order-md-5 {
-    order: 5; }
-
-  .order-md-6 {
-    order: 6; }
-
-  .order-md-7 {
-    order: 7; }
-
-  .order-md-8 {
-    order: 8; }
-
-  .order-md-9 {
-    order: 9; }
-
-  .order-md-10 {
-    order: 10; }
-
-  .order-md-11 {
-    order: 11; }
-
-  .order-md-12 {
-    order: 12; }
-
-  .offset-md-0 {
-    margin-left: 0; }
-
-  .offset-md-1 {
-    margin-left: 8.3333333333%; }
-
-  .offset-md-2 {
-    margin-left: 16.6666666667%; }
-
-  .offset-md-3 {
-    margin-left: 25%; }
-
-  .offset-md-4 {
-    margin-left: 33.3333333333%; }
-
-  .offset-md-5 {
-    margin-left: 41.6666666667%; }
-
-  .offset-md-6 {
-    margin-left: 50%; }
-
-  .offset-md-7 {
-    margin-left: 58.3333333333%; }
-
-  .offset-md-8 {
-    margin-left: 66.6666666667%; }
-
-  .offset-md-9 {
-    margin-left: 75%; }
-
-  .offset-md-10 {
-    margin-left: 83.3333333333%; }
-
-  .offset-md-11 {
-    margin-left: 91.6666666667%; } }
- at media (min-width: 992px) {
-  .col-lg {
-    flex-basis: 0;
-    flex-grow: 1;
-    max-width: 100%; }
-
-  .col-lg-auto {
-    flex: 0 0 auto;
-    width: auto;
-    max-width: none; }
-
-  .col-lg-1 {
-    flex: 0 0 8.3333333333%;
-    max-width: 8.3333333333%; }
-
-  .col-lg-2 {
-    flex: 0 0 16.6666666667%;
-    max-width: 16.6666666667%; }
-
-  .col-lg-3 {
-    flex: 0 0 25%;
-    max-width: 25%; }
-
-  .col-lg-4 {
-    flex: 0 0 33.3333333333%;
-    max-width: 33.3333333333%; }
-
-  .col-lg-5 {
-    flex: 0 0 41.6666666667%;
-    max-width: 41.6666666667%; }
-
-  .col-lg-6 {
-    flex: 0 0 50%;
-    max-width: 50%; }
-
-  .col-lg-7 {
-    flex: 0 0 58.3333333333%;
-    max-width: 58.3333333333%; }
-
-  .col-lg-8 {
-    flex: 0 0 66.6666666667%;
-    max-width: 66.6666666667%; }
-
-  .col-lg-9 {
-    flex: 0 0 75%;
-    max-width: 75%; }
-
-  .col-lg-10 {
-    flex: 0 0 83.3333333333%;
-    max-width: 83.3333333333%; }
-
-  .col-lg-11 {
-    flex: 0 0 91.6666666667%;
-    max-width: 91.6666666667%; }
-
-  .col-lg-12 {
-    flex: 0 0 100%;
-    max-width: 100%; }
-
-  .order-lg-first {
-    order: -1; }
-
-  .order-lg-1 {
-    order: 1; }
-
-  .order-lg-2 {
-    order: 2; }
-
-  .order-lg-3 {
-    order: 3; }
-
-  .order-lg-4 {
-    order: 4; }
-
-  .order-lg-5 {
-    order: 5; }
-
-  .order-lg-6 {
-    order: 6; }
-
-  .order-lg-7 {
-    order: 7; }
-
-  .order-lg-8 {
-    order: 8; }
-
-  .order-lg-9 {
-    order: 9; }
-
-  .order-lg-10 {
-    order: 10; }
-
-  .order-lg-11 {
-    order: 11; }
-
-  .order-lg-12 {
-    order: 12; }
-
-  .offset-lg-0 {
-    margin-left: 0; }
-
-  .offset-lg-1 {
-    margin-left: 8.3333333333%; }
-
-  .offset-lg-2 {
-    margin-left: 16.6666666667%; }
-
-  .offset-lg-3 {
-    margin-left: 25%; }
-
-  .offset-lg-4 {
-    margin-left: 33.3333333333%; }
-
-  .offset-lg-5 {
-    margin-left: 41.6666666667%; }
-
-  .offset-lg-6 {
-    margin-left: 50%; }
-
-  .offset-lg-7 {
-    margin-left: 58.3333333333%; }
-
-  .offset-lg-8 {
-    margin-left: 66.6666666667%; }
-
-  .offset-lg-9 {
-    margin-left: 75%; }
-
-  .offset-lg-10 {
-    margin-left: 83.3333333333%; }
-
-  .offset-lg-11 {
-    margin-left: 91.6666666667%; } }
- at media (min-width: 1200px) {
-  .col-xl {
-    flex-basis: 0;
-    flex-grow: 1;
-    max-width: 100%; }
-
-  .col-xl-auto {
-    flex: 0 0 auto;
-    width: auto;
-    max-width: none; }
-
-  .col-xl-1 {
-    flex: 0 0 8.3333333333%;
-    max-width: 8.3333333333%; }
-
-  .col-xl-2 {
-    flex: 0 0 16.6666666667%;
-    max-width: 16.6666666667%; }
-
-  .col-xl-3 {
-    flex: 0 0 25%;
-    max-width: 25%; }
-
-  .col-xl-4 {
-    flex: 0 0 33.3333333333%;
-    max-width: 33.3333333333%; }
-
-  .col-xl-5 {
-    flex: 0 0 41.6666666667%;
-    max-width: 41.6666666667%; }
-
-  .col-xl-6 {
-    flex: 0 0 50%;
-    max-width: 50%; }
-
-  .col-xl-7 {
-    flex: 0 0 58.3333333333%;
-    max-width: 58.3333333333%; }
-
-  .col-xl-8 {
-    flex: 0 0 66.6666666667%;
-    max-width: 66.6666666667%; }
-
-  .col-xl-9 {
-    flex: 0 0 75%;
-    max-width: 75%; }
-
-  .col-xl-10 {
-    flex: 0 0 83.3333333333%;
-    max-width: 83.3333333333%; }
-
-  .col-xl-11 {
-    flex: 0 0 91.6666666667%;
-    max-width: 91.6666666667%; }
-
-  .col-xl-12 {
-    flex: 0 0 100%;
-    max-width: 100%; }
-
-  .order-xl-first {
-    order: -1; }
-
-  .order-xl-1 {
-    order: 1; }
-
-  .order-xl-2 {
-    order: 2; }
-
-  .order-xl-3 {
-    order: 3; }
-
-  .order-xl-4 {
-    order: 4; }
-
-  .order-xl-5 {
-    order: 5; }
-
-  .order-xl-6 {
-    order: 6; }
-
-  .order-xl-7 {
-    order: 7; }
-
-  .order-xl-8 {
-    order: 8; }
-
-  .order-xl-9 {
-    order: 9; }
-
-  .order-xl-10 {
-    order: 10; }
-
-  .order-xl-11 {
-    order: 11; }
-
-  .order-xl-12 {
-    order: 12; }
-
-  .offset-xl-0 {
-    margin-left: 0; }
-
-  .offset-xl-1 {
-    margin-left: 8.3333333333%; }
-
-  .offset-xl-2 {
-    margin-left: 16.6666666667%; }
-
-  .offset-xl-3 {
-    margin-left: 25%; }
-
-  .offset-xl-4 {
-    margin-left: 33.3333333333%; }
-
-  .offset-xl-5 {
-    margin-left: 41.6666666667%; }
-
-  .offset-xl-6 {
-    margin-left: 50%; }
-
-  .offset-xl-7 {
-    margin-left: 58.3333333333%; }
-
-  .offset-xl-8 {
-    margin-left: 66.6666666667%; }
-
-  .offset-xl-9 {
-    margin-left: 75%; }
-
-  .offset-xl-10 {
-    margin-left: 83.3333333333%; }
-
-  .offset-xl-11 {
-    margin-left: 91.6666666667%; } }
-.table {
-  width: 100%;
-  max-width: 100%;
-  margin-bottom: 1rem;
-  background-color: transparent; }
-  .table th,
-  .table td {
-    padding: 0.75rem;
-    vertical-align: top;
-    border-top: 1px solid #e9ecef; }
-  .table thead th {
-    vertical-align: bottom;
-    border-bottom: 2px solid #e9ecef; }
-  .table tbody + tbody {
-    border-top: 2px solid #e9ecef; }
-  .table .table {
-    background-color: #fff; }
-
-.table-sm th,
-.table-sm td {
-  padding: 0.3rem; }
-
-.table-bordered {
-  border: 1px solid #e9ecef; }
-  .table-bordered th,
-  .table-bordered td {
-    border: 1px solid #e9ecef; }
-  .table-bordered thead th,
-  .table-bordered thead td {
-    border-bottom-width: 2px; }
-
-.table-striped tbody tr:nth-of-type(odd) {
-  background-color: #e6d5ee; }
-
-.table-hover tbody tr:hover {
-  background-color: rgba(0, 0, 0, 0.075); }
-
-.table-primary,
-.table-primary > th,
-.table-primary > td {
-  background-color: #dbcbe2; }
-
-.table-hover .table-primary:hover {
-  background-color: #d0bbd9; }
-  .table-hover .table-primary:hover > td,
-  .table-hover .table-primary:hover > th {
-    background-color: #d0bbd9; }
-
-.table-secondary,
-.table-secondary > th,
-.table-secondary > td {
-  background-color: #c6c8ca; }
-
-.table-hover .table-secondary:hover {
-  background-color: #b9bbbe; }
-  .table-hover .table-secondary:hover > td,
-  .table-hover .table-secondary:hover > th {
-    background-color: #b9bbbe; }
-
-.table-success,
-.table-success > th,
-.table-success > td {
-  background-color: #d5e9cb; }
-
-.table-hover .table-success:hover {
-  background-color: #c7e1b9; }
-  .table-hover .table-success:hover > td,
-  .table-hover .table-success:hover > th {
-    background-color: #c7e1b9; }
-
-.table-info,
-.table-info > th,
-.table-info > td {
-  background-color: #b8e6ec; }
-
-.table-hover .table-info:hover {
-  background-color: #a4dfe7; }
-  .table-hover .table-info:hover > td,
-  .table-hover .table-info:hover > th {
-    background-color: #a4dfe7; }
-
-.table-warning,
-.table-warning > th,
-.table-warning > td {
-  background-color: #ffedb8; }
-
-.table-hover .table-warning:hover {
-  background-color: #ffe79f; }
-  .table-hover .table-warning:hover > td,
-  .table-hover .table-warning:hover > th {
-    background-color: #ffe79f; }
-
-.table-danger,
-.table-danger > th,
-.table-danger > td {
-  background-color: #fbc2c9; }
-
-.table-hover .table-danger:hover {
-  background-color: #f9aab4; }
-  .table-hover .table-danger:hover > td,
-  .table-hover .table-danger:hover > th {
-    background-color: #f9aab4; }
-
-.table-light,
-.table-light > th,
-.table-light > td {
-  background-color: #fdfdfe; }
-
-.table-hover .table-light:hover {
-  background-color: #ececf6; }
-  .table-hover .table-light:hover > td,
-  .table-hover .table-light:hover > th {
-    background-color: #ececf6; }
-
-.table-dark,
-.table-dark > th,
-.table-dark > td {
-  background-color: #d1c5d6; }
-
-.table-hover .table-dark:hover {
-  background-color: #c5b6cb; }
-  .table-hover .table-dark:hover > td,
-  .table-hover .table-dark:hover > th {
-    background-color: #c5b6cb; }
-
-.table-active,
-.table-active > th,
-.table-active > td {
-  background-color: rgba(0, 0, 0, 0.075); }
-
-.table-hover .table-active:hover {
-  background-color: rgba(0, 0, 0, 0.075); }
-  .table-hover .table-active:hover > td,
-  .table-hover .table-active:hover > th {
-    background-color: rgba(0, 0, 0, 0.075); }
-
-.table .thead-dark th {
-  color: #fff;
-  background-color: #212529;
-  border-color: #32383e; }
-.table .thead-light th {
-  color: #495057;
-  background-color: #e9ecef;
-  border-color: #e9ecef; }
-
-.table-dark {
-  color: #fff;
-  background-color: #212529; }
-  .table-dark th,
-  .table-dark td,
-  .table-dark thead th {
-    border-color: #32383e; }
-  .table-dark.table-bordered {
-    border: 0; }
-  .table-dark.table-striped tbody tr:nth-of-type(odd) {
-    background-color: rgba(255, 255, 255, 0.05); }
-  .table-dark.table-hover tbody tr:hover {
-    background-color: rgba(255, 255, 255, 0.075); }
-
- at media (max-width: 575px) {
-  .table-responsive-sm {
-    display: block;
-    width: 100%;
-    overflow-x: auto;
-    -webkit-overflow-scrolling: touch;
-    -ms-overflow-style: -ms-autohiding-scrollbar; }
-    .table-responsive-sm.table-bordered {
-      border: 0; } }
- at media (max-width: 767px) {
-  .table-responsive-md {
-    display: block;
-    width: 100%;
-    overflow-x: auto;
-    -webkit-overflow-scrolling: touch;
-    -ms-overflow-style: -ms-autohiding-scrollbar; }
-    .table-responsive-md.table-bordered {
-      border: 0; } }
- at media (max-width: 991px) {
-  .table-responsive-lg {
-    display: block;
-    width: 100%;
-    overflow-x: auto;
-    -webkit-overflow-scrolling: touch;
-    -ms-overflow-style: -ms-autohiding-scrollbar; }
-    .table-responsive-lg.table-bordered {
-      border: 0; } }
- at media (max-width: 1199px) {
-  .table-responsive-xl {
-    display: block;
-    width: 100%;
-    overflow-x: auto;
-    -webkit-overflow-scrolling: touch;
-    -ms-overflow-style: -ms-autohiding-scrollbar; }
-    .table-responsive-xl.table-bordered {
-      border: 0; } }
-.table-responsive {
-  display: block;
-  width: 100%;
-  overflow-x: auto;
-  -webkit-overflow-scrolling: touch;
-  -ms-overflow-style: -ms-autohiding-scrollbar; }
-  .table-responsive.table-bordered {
-    border: 0; }
-
-.form-control {
-  display: block;
-  width: 100%;
-  padding: 0.375rem 0.75rem;
-  font-size: 1rem;
-  line-height: 1.5;
-  color: #495057;
-  background-color: #fff;
-  background-image: none;
-  background-clip: padding-box;
-  border: 1px solid #ced4da;
-  border-radius: 0.25rem;
-  transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; }
-  .form-control::-ms-expand {
-    background-color: transparent;
-    border: 0; }
-  .form-control:focus {
-    color: #495057;
-    background-color: #fff;
-    border-color: #b991cc;
-    outline: none;
-    box-shadow: 0 0 0 0.2rem rgba(125, 70, 152, 0.25); }
-  .form-control::placeholder {
-    color: #848E97;
-    opacity: 1; }
-  .form-control:disabled, .form-control[readonly] {
-    background-color: #e9ecef;
-    opacity: 1; }
-
-select.form-control:not([size]):not([multiple]) {
-  height: calc(2.25rem + 2px); }
-select.form-control:focus::-ms-value {
-  color: #495057;
-  background-color: #fff; }
-
-.form-control-file,
-.form-control-range {
-  display: block; }
-
-.col-form-label {
-  padding-top: calc(0.375rem + 1px);
-  padding-bottom: calc(0.375rem + 1px);
-  margin-bottom: 0;
-  line-height: 1.5; }
-
-.col-form-label-lg {
-  padding-top: calc(0.5rem + 1px);
-  padding-bottom: calc(0.5rem + 1px);
-  font-size: 1.25rem;
-  line-height: 1.5; }
-
-.col-form-label-sm {
-  padding-top: calc(0.25rem + 1px);
-  padding-bottom: calc(0.25rem + 1px);
-  font-size: 0.875rem;
-  line-height: 1.5; }
-
-.col-form-legend {
-  padding-top: 0.375rem;
-  padding-bottom: 0.375rem;
-  margin-bottom: 0;
-  font-size: 1rem; }
-
-.form-control-plaintext {
-  padding-top: 0.375rem;
-  padding-bottom: 0.375rem;
-  margin-bottom: 0;
-  line-height: 1.5;
-  background-color: transparent;
-  border: solid transparent;
-  border-width: 1px 0; }
-  .form-control-plaintext.form-control-sm, .input-group-sm > .form-control-plaintext.form-control,
-  .input-group-sm > .form-control-plaintext.input-group-addon,
-  .input-group-sm > .input-group-btn > .form-control-plaintext.btn, .form-control-plaintext.form-control-lg, .input-group-lg > .form-control-plaintext.form-control,
-  .input-group-lg > .form-control-plaintext.input-group-addon,
-  .input-group-lg > .input-group-btn > .form-control-plaintext.btn {
-    padding-right: 0;
-    padding-left: 0; }
-
-.form-control-sm, .input-group-sm > .form-control,
-.input-group-sm > .input-group-addon,
-.input-group-sm > .input-group-btn > .btn {
-  padding: 0.25rem 0.5rem;
-  font-size: 0.875rem;
-  line-height: 1.5;
-  border-radius: 0.2rem; }
-
-select.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]),
-.input-group-sm > select.input-group-addon:not([size]):not([multiple]),
-.input-group-sm > .input-group-btn > select.btn:not([size]):not([multiple]) {
-  height: calc(1.8125rem + 2px); }
-
-.form-control-lg, .input-group-lg > .form-control,
-.input-group-lg > .input-group-addon,
-.input-group-lg > .input-group-btn > .btn {
-  padding: 0.5rem 1rem;
-  font-size: 1.25rem;
-  line-height: 1.5;
-  border-radius: 0.3rem; }
-
-select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.form-control:not([size]):not([multiple]),
-.input-group-lg > select.input-group-addon:not([size]):not([multiple]),
-.input-group-lg > .input-group-btn > select.btn:not([size]):not([multiple]) {
-  height: calc(2.875rem + 2px); }
-
-.form-group {
-  margin-bottom: 1rem; }
-
-.form-text {
-  display: block;
-  margin-top: 0.25rem; }
-
-.form-row {
-  display: flex;
-  flex-wrap: wrap;
-  margin-right: -5px;
-  margin-left: -5px; }
-  .form-row > .col,
-  .form-row > [class*="col-"] {
-    padding-right: 5px;
-    padding-left: 5px; }
-
-.form-check {
-  position: relative;
-  display: block;
-  margin-bottom: 0.5rem; }
-  .form-check.disabled .form-check-label {
-    color: #848E97; }
-
-.form-check-label {
-  padding-left: 1.25rem;
-  margin-bottom: 0; }
-
-.form-check-input {
-  position: absolute;
-  margin-top: 0.25rem;
-  margin-left: -1.25rem; }
-
-.form-check-inline {
-  display: inline-block;
-  margin-right: 0.75rem; }
-  .form-check-inline .form-check-label {
-    vertical-align: middle; }
-
-.valid-feedback {
-  display: none;
-  margin-top: .25rem;
-  font-size: .875rem;
-  color: #68B044; }
-
-.valid-tooltip {
-  position: absolute;
-  top: 100%;
-  z-index: 5;
-  display: none;
-  width: 250px;
-  padding: .5rem;
-  margin-top: .1rem;
-  font-size: .875rem;
-  line-height: 1;
-  color: #fff;
-  background-color: rgba(104, 176, 68, 0.8);
-  border-radius: .2rem; }
-
-.was-validated .form-control:valid, .form-control.is-valid,
-.was-validated .custom-select:valid,
-.custom-select.is-valid {
-  border-color: #68B044; }
-  .was-validated .form-control:valid:focus, .form-control.is-valid:focus,
-  .was-validated .custom-select:valid:focus,
-  .custom-select.is-valid:focus {
-    box-shadow: 0 0 0 0.2rem rgba(104, 176, 68, 0.25); }
-  .was-validated .form-control:valid ~ .valid-feedback,
-  .was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,
-  .form-control.is-valid ~ .valid-tooltip,
-  .was-validated .custom-select:valid ~ .valid-feedback,
-  .was-validated .custom-select:valid ~ .valid-tooltip,
-  .custom-select.is-valid ~ .valid-feedback,
-  .custom-select.is-valid ~ .valid-tooltip {
-    display: block; }
-
-.was-validated .form-check-input:valid + .form-check-label, .form-check-input.is-valid + .form-check-label {
-  color: #68B044; }
-
-.was-validated .custom-control-input:valid ~ .custom-control-indicator, .custom-control-input.is-valid ~ .custom-control-indicator {
-  background-color: rgba(104, 176, 68, 0.25); }
-.was-validated .custom-control-input:valid ~ .custom-control-description, .custom-control-input.is-valid ~ .custom-control-description {
-  color: #68B044; }
-
-.was-validated .custom-file-input:valid ~ .custom-file-control, .custom-file-input.is-valid ~ .custom-file-control {
-  border-color: #68B044; }
-  .was-validated .custom-file-input:valid ~ .custom-file-control::before, .custom-file-input.is-valid ~ .custom-file-control::before {
-    border-color: inherit; }
-.was-validated .custom-file-input:valid:focus, .custom-file-input.is-valid:focus {
-  box-shadow: 0 0 0 0.2rem rgba(104, 176, 68, 0.25); }
-
-.invalid-feedback {
-  display: none;
-  margin-top: .25rem;
-  font-size: .875rem;
-  color: #EF243E; }
-
-.invalid-tooltip {
-  position: absolute;
-  top: 100%;
-  z-index: 5;
-  display: none;
-  width: 250px;
-  padding: .5rem;
-  margin-top: .1rem;
-  font-size: .875rem;
-  line-height: 1;
-  color: #fff;
-  background-color: rgba(239, 36, 62, 0.8);
-  border-radius: .2rem; }
-
-.was-validated .form-control:invalid, .form-control.is-invalid,
-.was-validated .custom-select:invalid,
-.custom-select.is-invalid {
-  border-color: #EF243E; }
-  .was-validated .form-control:invalid:focus, .form-control.is-invalid:focus,
-  .was-validated .custom-select:invalid:focus,
-  .custom-select.is-invalid:focus {
-    box-shadow: 0 0 0 0.2rem rgba(239, 36, 62, 0.25); }
-  .was-validated .form-control:invalid ~ .invalid-feedback,
-  .was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,
-  .form-control.is-invalid ~ .invalid-tooltip,
-  .was-validated .custom-select:invalid ~ .invalid-feedback,
-  .was-validated .custom-select:invalid ~ .invalid-tooltip,
-  .custom-select.is-invalid ~ .invalid-feedback,
-  .custom-select.is-invalid ~ .invalid-tooltip {
-    display: block; }
-
-.was-validated .form-check-input:invalid + .form-check-label, .form-check-input.is-invalid + .form-check-label {
-  color: #EF243E; }
-
-.was-validated .custom-control-input:invalid ~ .custom-control-indicator, .custom-control-input.is-invalid ~ .custom-control-indicator {
-  background-color: rgba(239, 36, 62, 0.25); }
-.was-validated .custom-control-input:invalid ~ .custom-control-description, .custom-control-input.is-invalid ~ .custom-control-description {
-  color: #EF243E; }
-
-.was-validated .custom-file-input:invalid ~ .custom-file-control, .custom-file-input.is-invalid ~ .custom-file-control {
-  border-color: #EF243E; }
-  .was-validated .custom-file-input:invalid ~ .custom-file-control::before, .custom-file-input.is-invalid ~ .custom-file-control::before {
-    border-color: inherit; }
-.was-validated .custom-file-input:invalid:focus, .custom-file-input.is-invalid:focus {
-  box-shadow: 0 0 0 0.2rem rgba(239, 36, 62, 0.25); }
-
-.form-inline {
-  display: flex;
-  flex-flow: row wrap;
-  align-items: center; }
-  .form-inline .form-check {
-    width: 100%; }
-  @media (min-width: 576px) {
-    .form-inline label {
-      display: flex;
-      align-items: center;
-      justify-content: center;
-      margin-bottom: 0; }
-    .form-inline .form-group {
-      display: flex;
-      flex: 0 0 auto;
-      flex-flow: row wrap;
-      align-items: center;
-      margin-bottom: 0; }
-    .form-inline .form-control {
-      display: inline-block;
-      width: auto;
-      vertical-align: middle; }
-    .form-inline .form-control-plaintext {
-      display: inline-block; }
-    .form-inline .input-group {
-      width: auto; }
-    .form-inline .form-check {
-      display: flex;
-      align-items: center;
-      justify-content: center;
-      width: auto;
-      margin-top: 0;
-      margin-bottom: 0; }
-    .form-inline .form-check-label {
-      padding-left: 0; }
-    .form-inline .form-check-input {
-      position: relative;
-      margin-top: 0;
-      margin-right: 0.25rem;
-      margin-left: 0; }
-    .form-inline .custom-control {
-      display: flex;
-      align-items: center;
-      justify-content: center;
-      padding-left: 0; }
-    .form-inline .custom-control-indicator {
-      position: static;
-      display: inline-block;
-      margin-right: 0.25rem;
-      vertical-align: text-bottom; }
-    .form-inline .has-feedback .form-control-feedback {
-      top: 0; } }
-
-.btn {
-  display: inline-block;
-  font-weight: 400;
-  text-align: center;
-  white-space: nowrap;
-  vertical-align: middle;
-  user-select: none;
-  border: 1px solid transparent;
-  padding: 0.375rem 0.75rem;
-  font-size: 1rem;
-  line-height: 1.5;
-  border-radius: 0.25rem;
-  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }
-  .btn:focus, .btn:hover {
-    text-decoration: none; }
-  .btn:focus, .btn.focus {
-    outline: 0;
-    box-shadow: 0 0 0 0.2rem rgba(125, 70, 152, 0.25); }
-  .btn.disabled, .btn:disabled {
-    opacity: .65; }
-  .btn:not([disabled]):not(.disabled):active, .btn:not([disabled]):not(.disabled).active {
-    background-image: none; }
-
-a.btn.disabled,
-fieldset[disabled] a.btn {
-  pointer-events: none; }
-
-.btn-primary {
-  color: #fff;
-  background-color: #7D4698;
-  border-color: #7D4698; }
-  .btn-primary:hover {
-    color: #fff;
-    background-color: #673a7e;
-    border-color: #603675; }
-  .btn-primary:focus, .btn-primary.focus {
-    box-shadow: 0 0 0 0.2rem rgba(125, 70, 152, 0.5); }
-  .btn-primary.disabled, .btn-primary:disabled {
-    background-color: #7D4698;
-    border-color: #7D4698; }
-  .btn-primary:not([disabled]):not(.disabled):active, .btn-primary:not([disabled]):not(.disabled).active, .show > .btn-primary.dropdown-toggle {
-    color: #fff;
-    background-color: #603675;
-    border-color: #59326c;
-    box-shadow: 0 0 0 0.2rem rgba(125, 70, 152, 0.5); }
-
-.btn-secondary {
-  color: #fff;
-  background-color: #333A41;
-  border-color: #333A41; }
-  .btn-secondary:hover {
-    color: #fff;
-    background-color: #22272c;
-    border-color: #1d2124; }
-  .btn-secondary:focus, .btn-secondary.focus {
-    box-shadow: 0 0 0 0.2rem rgba(51, 58, 65, 0.5); }
-  .btn-secondary.disabled, .btn-secondary:disabled {
-    background-color: #333A41;
-    border-color: #333A41; }
-  .btn-secondary:not([disabled]):not(.disabled):active, .btn-secondary:not([disabled]):not(.disabled).active, .show > .btn-secondary.dropdown-toggle {
-    color: #fff;
-    background-color: #1d2124;
-    border-color: #171a1d;
-    box-shadow: 0 0 0 0.2rem rgba(51, 58, 65, 0.5); }
-
-.btn-success {
-  color: #fff;
-  background-color: #68B044;
-  border-color: #68B044; }
-  .btn-success:hover {
-    color: #fff;
-    background-color: #589439;
-    border-color: #528b36; }
-  .btn-success:focus, .btn-success.focus {
-    box-shadow: 0 0 0 0.2rem rgba(104, 176, 68, 0.5); }
-  .btn-success.disabled, .btn-success:disabled {
-    background-color: #68B044;
-    border-color: #68B044; }
-  .btn-success:not([disabled]):not(.disabled):active, .btn-success:not([disabled]):not(.disabled).active, .show > .btn-success.dropdown-toggle {
-    color: #fff;
-    background-color: #528b36;
-    border-color: #4d8232;
-    box-shadow: 0 0 0 0.2rem rgba(104, 176, 68, 0.5); }
-
-.btn-info {
-  color: #fff;
-  background-color: #00A5BB;
-  border-color: #00A5BB; }
-  .btn-info:hover {
-    color: #fff;
-    background-color: #008395;
-    border-color: #007888; }
-  .btn-info:focus, .btn-info.focus {
-    box-shadow: 0 0 0 0.2rem rgba(0, 165, 187, 0.5); }
-  .btn-info.disabled, .btn-info:disabled {
-    background-color: #00A5BB;
-    border-color: #00A5BB; }
-  .btn-info:not([disabled]):not(.disabled):active, .btn-info:not([disabled]):not(.disabled).active, .show > .btn-info.dropdown-toggle {
-    color: #fff;
-    background-color: #007888;
-    border-color: #006d7b;
-    box-shadow: 0 0 0 0.2rem rgba(0, 165, 187, 0.5); }
-
-.btn-warning {
-  color: #111;
-  background-color: #FFBF00;
-  border-color: #FFBF00; }
-  .btn-warning:hover {
-    color: #111;
-    background-color: #d9a200;
-    border-color: #cc9900; }
-  .btn-warning:focus, .btn-warning.focus {
-    box-shadow: 0 0 0 0.2rem rgba(255, 191, 0, 0.5); }
-  .btn-warning.disabled, .btn-warning:disabled {
-    background-color: #FFBF00;
-    border-color: #FFBF00; }
-  .btn-warning:not([disabled]):not(.disabled):active, .btn-warning:not([disabled]):not(.disabled).active, .show > .btn-warning.dropdown-toggle {
-    color: #111;
-    background-color: #cc9900;
-    border-color: #bf8f00;
-    box-shadow: 0 0 0 0.2rem rgba(255, 191, 0, 0.5); }
-
-.btn-danger {
-  color: #fff;
-  background-color: #EF243E;
-  border-color: #EF243E; }
-  .btn-danger:hover {
-    color: #fff;
-    background-color: #dd102a;
-    border-color: #d10f28; }
-  .btn-danger:focus, .btn-danger.focus {
-    box-shadow: 0 0 0 0.2rem rgba(239, 36, 62, 0.5); }
-  .btn-danger.disabled, .btn-danger:disabled {
-    background-color: #EF243E;
-    border-color: #EF243E; }
-  .btn-danger:not([disabled]):not(.disabled):active, .btn-danger:not([disabled]):not(.disabled).active, .show > .btn-danger.dropdown-toggle {
-    color: #fff;
-    background-color: #d10f28;
-    border-color: #c50e26;
-    box-shadow: 0 0 0 0.2rem rgba(239, 36, 62, 0.5); }
-
-.btn-light {
-  color: #111;
-  background-color: #F8F9FA;
-  border-color: #F8F9FA; }
-  .btn-light:hover {
-    color: #111;
-    background-color: #e2e6ea;
-    border-color: #dae0e5; }
-  .btn-light:focus, .btn-light.focus {
-    box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }
-  .btn-light.disabled, .btn-light:disabled {
-    background-color: #F8F9FA;
-    border-color: #F8F9FA; }
-  .btn-light:not([disabled]):not(.disabled):active, .btn-light:not([disabled]):not(.disabled).active, .show > .btn-light.dropdown-toggle {
-    color: #111;
-    background-color: #dae0e5;
-    border-color: #d3d9df;
-    box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }
-
-.btn-dark {
-  color: #fff;
-  background-color: #59316B;
-  border-color: #59316B; }
-  .btn-dark:hover {
-    color: #fff;
-    background-color: #432551;
-    border-color: #3c2148; }
-  .btn-dark:focus, .btn-dark.focus {
-    box-shadow: 0 0 0 0.2rem rgba(89, 49, 107, 0.5); }
-  .btn-dark.disabled, .btn-dark:disabled {
-    background-color: #59316B;
-    border-color: #59316B; }
-  .btn-dark:not([disabled]):not(.disabled):active, .btn-dark:not([disabled]):not(.disabled).active, .show > .btn-dark.dropdown-toggle {
-    color: #fff;
-    background-color: #3c2148;
-    border-color: #351d3f;
-    box-shadow: 0 0 0 0.2rem rgba(89, 49, 107, 0.5); }
-
-.btn-outline-primary {
-  color: #7D4698;
-  background-color: transparent;
-  background-image: none;
-  border-color: #7D4698; }
-  .btn-outline-primary:hover {
-    color: #fff;
-    background-color: #7D4698;
-    border-color: #7D4698; }
-  .btn-outline-primary:focus, .btn-outline-primary.focus {
-    box-shadow: 0 0 0 0.2rem rgba(125, 70, 152, 0.5); }
-  .btn-outline-primary.disabled, .btn-outline-primary:disabled {
-    color: #7D4698;
-    background-color: transparent; }
-  .btn-outline-primary:not([disabled]):not(.disabled):active, .btn-outline-primary:not([disabled]):not(.disabled).active, .show > .btn-outline-primary.dropdown-toggle {
-    color: #fff;
-    background-color: #7D4698;
-    border-color: #7D4698;
-    box-shadow: 0 0 0 0.2rem rgba(125, 70, 152, 0.5); }
-
-.btn-outline-secondary {
-  color: #333A41;
-  background-color: transparent;
-  background-image: none;
-  border-color: #333A41; }
-  .btn-outline-secondary:hover {
-    color: #fff;
-    background-color: #333A41;
-    border-color: #333A41; }
-  .btn-outline-secondary:focus, .btn-outline-secondary.focus {
-    box-shadow: 0 0 0 0.2rem rgba(51, 58, 65, 0.5); }
-  .btn-outline-secondary.disabled, .btn-outline-secondary:disabled {
-    color: #333A41;
-    background-color: transparent; }
-  .btn-outline-secondary:not([disabled]):not(.disabled):active, .btn-outline-secondary:not([disabled]):not(.disabled).active, .show > .btn-outline-secondary.dropdown-toggle {
-    color: #fff;
-    background-color: #333A41;
-    border-color: #333A41;
-    box-shadow: 0 0 0 0.2rem rgba(51, 58, 65, 0.5); }
-
-.btn-outline-success {
-  color: #68B044;
-  background-color: transparent;
-  background-image: none;
-  border-color: #68B044; }
-  .btn-outline-success:hover {
-    color: #fff;
-    background-color: #68B044;
-    border-color: #68B044; }
-  .btn-outline-success:focus, .btn-outline-success.focus {
-    box-shadow: 0 0 0 0.2rem rgba(104, 176, 68, 0.5); }
-  .btn-outline-success.disabled, .btn-outline-success:disabled {
-    color: #68B044;
-    background-color: transparent; }
-  .btn-outline-success:not([disabled]):not(.disabled):active, .btn-outline-success:not([disabled]):not(.disabled).active, .show > .btn-outline-success.dropdown-toggle {
-    color: #fff;
-    background-color: #68B044;
-    border-color: #68B044;
-    box-shadow: 0 0 0 0.2rem rgba(104, 176, 68, 0.5); }
-
-.btn-outline-info {
-  color: #00A5BB;
-  background-color: transparent;
-  background-image: none;
-  border-color: #00A5BB; }
-  .btn-outline-info:hover {
-    color: #fff;
-    background-color: #00A5BB;
-    border-color: #00A5BB; }
-  .btn-outline-info:focus, .btn-outline-info.focus {
-    box-shadow: 0 0 0 0.2rem rgba(0, 165, 187, 0.5); }
-  .btn-outline-info.disabled, .btn-outline-info:disabled {
-    color: #00A5BB;
-    background-color: transparent; }
-  .btn-outline-info:not([disabled]):not(.disabled):active, .btn-outline-info:not([disabled]):not(.disabled).active, .show > .btn-outline-info.dropdown-toggle {
-    color: #fff;
-    background-color: #00A5BB;
-    border-color: #00A5BB;
-    box-shadow: 0 0 0 0.2rem rgba(0, 165, 187, 0.5); }
-
-.btn-outline-warning {
-  color: #FFBF00;
-  background-color: transparent;
-  background-image: none;
-  border-color: #FFBF00; }
-  .btn-outline-warning:hover {
-    color: #fff;
-    background-color: #FFBF00;
-    border-color: #FFBF00; }
-  .btn-outline-warning:focus, .btn-outline-warning.focus {
-    box-shadow: 0 0 0 0.2rem rgba(255, 191, 0, 0.5); }
-  .btn-outline-warning.disabled, .btn-outline-warning:disabled {
-    color: #FFBF00;
-    background-color: transparent; }
-  .btn-outline-warning:not([disabled]):not(.disabled):active, .btn-outline-warning:not([disabled]):not(.disabled).active, .show > .btn-outline-warning.dropdown-toggle {
-    color: #fff;
-    background-color: #FFBF00;
-    border-color: #FFBF00;
-    box-shadow: 0 0 0 0.2rem rgba(255, 191, 0, 0.5); }
-
-.btn-outline-danger {
-  color: #EF243E;
-  background-color: transparent;
-  background-image: none;
-  border-color: #EF243E; }
-  .btn-outline-danger:hover {
-    color: #fff;
-    background-color: #EF243E;
-    border-color: #EF243E; }
-  .btn-outline-danger:focus, .btn-outline-danger.focus {
-    box-shadow: 0 0 0 0.2rem rgba(239, 36, 62, 0.5); }
-  .btn-outline-danger.disabled, .btn-outline-danger:disabled {
-    color: #EF243E;
-    background-color: transparent; }
-  .btn-outline-danger:not([disabled]):not(.disabled):active, .btn-outline-danger:not([disabled]):not(.disabled).active, .show > .btn-outline-danger.dropdown-toggle {
-    color: #fff;
-    background-color: #EF243E;
-    border-color: #EF243E;
-    box-shadow: 0 0 0 0.2rem rgba(239, 36, 62, 0.5); }
-
-.btn-outline-light {
-  color: #F8F9FA;
-  background-color: transparent;
-  background-image: none;
-  border-color: #F8F9FA; }
-  .btn-outline-light:hover {
-    color: #212529;
-    background-color: #F8F9FA;
-    border-color: #F8F9FA; }
-  .btn-outline-light:focus, .btn-outline-light.focus {
-    box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }
-  .btn-outline-light.disabled, .btn-outline-light:disabled {
-    color: #F8F9FA;
-    background-color: transparent; }
-  .btn-outline-light:not([disabled]):not(.disabled):active, .btn-outline-light:not([disabled]):not(.disabled).active, .show > .btn-outline-light.dropdown-toggle {
-    color: #212529;
-    background-color: #F8F9FA;
-    border-color: #F8F9FA;
-    box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); }
-
-.btn-outline-dark {
-  color: #59316B;
-  background-color: transparent;
-  background-image: none;
-  border-color: #59316B; }
-  .btn-outline-dark:hover {
-    color: #fff;
-    background-color: #59316B;
-    border-color: #59316B; }
-  .btn-outline-dark:focus, .btn-outline-dark.focus {
-    box-shadow: 0 0 0 0.2rem rgba(89, 49, 107, 0.5); }
-  .btn-outline-dark.disabled, .btn-outline-dark:disabled {
-    color: #59316B;
-    background-color: transparent; }
-  .btn-outline-dark:not([disabled]):not(.disabled):active, .btn-outline-dark:not([disabled]):not(.disabled).active, .show > .btn-outline-dark.dropdown-toggle {
-    color: #fff;
-    background-color: #59316B;
-    border-color: #59316B;
-    box-shadow: 0 0 0 0.2rem rgba(89, 49, 107, 0.5); }
-
-.btn-link {
-  font-weight: 400;
-  color: #7D4698;
-  background-color: transparent; }
-  .btn-link:hover {
-    color: #522e64;
-    text-decoration: underline;
-    background-color: transparent;
-    border-color: transparent; }
-  .btn-link:focus, .btn-link.focus {
-    border-color: transparent;
-    box-shadow: none; }
-  .btn-link:disabled, .btn-link.disabled {
-    color: #848E97; }
-
-.btn-lg, .btn-group-lg > .btn {
-  padding: 0.5rem 1rem;
-  font-size: 1.25rem;
-  line-height: 1.5;
-  border-radius: 0.3rem; }
-
-.btn-sm, .btn-group-sm > .btn {
-  padding: 0.25rem 0.5rem;
-  font-size: 0.875rem;
-  line-height: 1.5;
-  border-radius: 0.2rem; }
-
-.btn-block {
-  display: block;
-  width: 100%; }
-
-.btn-block + .btn-block {
-  margin-top: 0.5rem; }
-
-input[type="submit"].btn-block,
-input[type="reset"].btn-block,
-input[type="button"].btn-block {
-  width: 100%; }
-
-.fade {
-  opacity: 0;
-  transition: opacity 0.15s linear; }
-  .fade.show {
-    opacity: 1; }
-
-.collapse {
-  display: none; }
-  .collapse.show {
-    display: block; }
-
-tr.collapse.show {
-  display: table-row; }
-
-tbody.collapse.show {
-  display: table-row-group; }
-
-.collapsing {
-  position: relative;
-  height: 0;
-  overflow: hidden;
-  transition: height 0.35s ease; }
-
-.dropup,
-.dropdown {
-  position: relative; }
-
-.dropdown-toggle::after {
-  display: inline-block;
-  width: 0;
-  height: 0;
-  margin-left: 0.255em;
-  vertical-align: 0.255em;
-  content: "";
-  border-top: 0.3em solid;
-  border-right: 0.3em solid transparent;
-  border-bottom: 0;
-  border-left: 0.3em solid transparent; }
-.dropdown-toggle:empty::after {
-  margin-left: 0; }
-
-.dropdown-menu {
-  position: absolute;
-  top: 100%;
-  left: 0;
-  z-index: 1000;
-  display: none;
-  float: left;
-  min-width: 10rem;
-  padding: 0.5rem 0;
-  margin: 0.125rem 0 0;
-  font-size: 1rem;
-  color: #212529;
-  text-align: left;
-  list-style: none;
-  background-color: #fff;
-  background-clip: padding-box;
-  border: 1px solid rgba(0, 0, 0, 0.15);
-  border-radius: 0.25rem; }
-
-.dropup .dropdown-menu {
-  margin-top: 0;
-  margin-bottom: 0.125rem; }
-.dropup .dropdown-toggle::after {
-  display: inline-block;
-  width: 0;
-  height: 0;
-  margin-left: 0.255em;
-  vertical-align: 0.255em;
-  content: "";
-  border-top: 0;
-  border-right: 0.3em solid transparent;
-  border-bottom: 0.3em solid;
-  border-left: 0.3em solid transparent; }
-.dropup .dropdown-toggle:empty::after {
-  margin-left: 0; }
-
-.dropdown-divider {
-  height: 0;
-  margin: 0.5rem 0;
-  overflow: hidden;
-  border-top: 1px solid #e9ecef; }
-
-.dropdown-item {
-  display: block;
-  width: 100%;
-  padding: 0.25rem 1.5rem;
-  clear: both;
-  font-weight: 400;
-  color: #212529;
-  text-align: inherit;
-  white-space: nowrap;
-  background: none;
-  border: 0; }
-  .dropdown-item:focus, .dropdown-item:hover {
-    color: #16181b;
-    text-decoration: none;
-    background-color: #F8F9FA; }
-  .dropdown-item.active, .dropdown-item:active {
-    color: #fff;
-    text-decoration: none;
-    background-color: #7D4698; }
-  .dropdown-item.disabled, .dropdown-item:disabled {
-    color: #848E97;
-    background-color: transparent; }
-
-.dropdown-menu.show {
-  display: block; }
-
-.dropdown-header {
-  display: block;
-  padding: 0.5rem 1.5rem;
-  margin-bottom: 0;
-  font-size: 0.875rem;
-  color: #848E97;
-  white-space: nowrap; }
-
-.btn-group,
-.btn-group-vertical {
-  position: relative;
-  display: inline-flex;
-  vertical-align: middle; }
-  .btn-group > .btn,
-  .btn-group-vertical > .btn {
-    position: relative;
-    flex: 0 1 auto; }
-    .btn-group > .btn:hover,
-    .btn-group-vertical > .btn:hover {
-      z-index: 2; }
-    .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,
-    .btn-group-vertical > .btn:focus,
-    .btn-group-vertical > .btn:active,
-    .btn-group-vertical > .btn.active {
-      z-index: 2; }
-  .btn-group .btn + .btn,
-  .btn-group .btn + .btn-group,
-  .btn-group .btn-group + .btn,
-  .btn-group .btn-group + .btn-group,
-  .btn-group-vertical .btn + .btn,
-  .btn-group-vertical .btn + .btn-group,
-  .btn-group-vertical .btn-group + .btn,
-  .btn-group-vertical .btn-group + .btn-group {
-    margin-left: -1px; }
-
-.btn-toolbar {
-  display: flex;
-  flex-wrap: wrap;
-  justify-content: flex-start; }
-  .btn-toolbar .input-group {
-    width: auto; }
-
-.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
-  border-radius: 0; }
-
-.btn-group > .btn:first-child {
-  margin-left: 0; }
-  .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
-    border-top-right-radius: 0;
-    border-bottom-right-radius: 0; }
-
-.btn-group > .btn:last-child:not(:first-child),
-.btn-group > .dropdown-toggle:not(:first-child) {
-  border-top-left-radius: 0;
-  border-bottom-left-radius: 0; }
-
-.btn-group > .btn-group {
-  float: left; }
-
-.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
-  border-radius: 0; }
-
-.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
-.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
-  border-top-right-radius: 0;
-  border-bottom-right-radius: 0; }
-
-.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
-  border-top-left-radius: 0;
-  border-bottom-left-radius: 0; }
-
-.btn + .dropdown-toggle-split {
-  padding-right: 0.5625rem;
-  padding-left: 0.5625rem; }
-  .btn + .dropdown-toggle-split::after {
-    margin-left: 0; }
-
-.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {
-  padding-right: 0.375rem;
-  padding-left: 0.375rem; }
-
-.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {
-  padding-right: 0.75rem;
-  padding-left: 0.75rem; }
-
-.btn-group-vertical {
-  flex-direction: column;
-  align-items: flex-start;
-  justify-content: center; }
-  .btn-group-vertical .btn,
-  .btn-group-vertical .btn-group {
-    width: 100%; }
-  .btn-group-vertical > .btn + .btn,
-  .btn-group-vertical > .btn + .btn-group,
-  .btn-group-vertical > .btn-group + .btn,
-  .btn-group-vertical > .btn-group + .btn-group {
-    margin-top: -1px;
-    margin-left: 0; }
-  .btn-group-vertical > .btn:not(:first-child):not(:last-child) {
-    border-radius: 0; }
-  .btn-group-vertical > .btn:first-child:not(:last-child) {
-    border-bottom-right-radius: 0;
-    border-bottom-left-radius: 0; }
-  .btn-group-vertical > .btn:last-child:not(:first-child) {
-    border-top-left-radius: 0;
-    border-top-right-radius: 0; }
-  .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
-    border-radius: 0; }
-  .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
-  .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
-    border-bottom-right-radius: 0;
-    border-bottom-left-radius: 0; }
-  .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
-    border-top-left-radius: 0;
-    border-top-right-radius: 0; }
-
-[data-toggle="buttons"] > .btn input[type="radio"],
-[data-toggle="buttons"] > .btn input[type="checkbox"],
-[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
-[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
-  position: absolute;
-  clip: rect(0, 0, 0, 0);
-  pointer-events: none; }
-
-.input-group {
-  position: relative;
-  display: flex;
-  align-items: stretch;
-  width: 100%; }
-  .input-group .form-control {
-    position: relative;
-    z-index: 2;
-    flex: 1 1 auto;
-    width: 1%;
-    margin-bottom: 0; }
-    .input-group .form-control:focus, .input-group .form-control:active, .input-group .form-control:hover {
-      z-index: 3; }
-
-.input-group-addon,
-.input-group-btn,
-.input-group .form-control {
-  display: flex;
-  align-items: center; }
-  .input-group-addon:not(:first-child):not(:last-child),
-  .input-group-btn:not(:first-child):not(:last-child),
-  .input-group .form-control:not(:first-child):not(:last-child) {
-    border-radius: 0; }
-
-.input-group-addon,
-.input-group-btn {
-  white-space: nowrap; }
-
-.input-group-addon {
-  padding: 0.375rem 0.75rem;
-  margin-bottom: 0;
-  font-size: 1rem;
-  font-weight: 400;
-  line-height: 1.5;
-  color: #495057;
-  text-align: center;
-  background-color: #e9ecef;
-  border: 1px solid #ced4da;
-  border-radius: 0.25rem; }
-  .input-group-addon.form-control-sm,
-  .input-group-sm > .input-group-addon,
-  .input-group-sm > .input-group-btn > .input-group-addon.btn {
-    padding: 0.25rem 0.5rem;
-    font-size: 0.875rem;
-    border-radius: 0.2rem; }
-  .input-group-addon.form-control-lg,
-  .input-group-lg > .input-group-addon,
-  .input-group-lg > .input-group-btn > .input-group-addon.btn {
-    padding: 0.5rem 1rem;
-    font-size: 1.25rem;
-    border-radius: 0.3rem; }
-  .input-group-addon input[type="radio"],
-  .input-group-addon input[type="checkbox"] {
-    margin-top: 0; }
-
-.input-group .form-control:not(:last-child),
-.input-group-addon:not(:last-child),
-.input-group-btn:not(:last-child) > .btn,
-.input-group-btn:not(:last-child) > .btn-group > .btn,
-.input-group-btn:not(:last-child) > .dropdown-toggle,
-.input-group-btn:not(:first-child) > .btn:not(:last-child):not(.dropdown-toggle),
-.input-group-btn:not(:first-child) > .btn-group:not(:last-child) > .btn {
-  border-top-right-radius: 0;
-  border-bottom-right-radius: 0; }
-
-.input-group-addon:not(:last-child) {
-  border-right: 0; }
-
-.input-group .form-control:not(:first-child),
-.input-group-addon:not(:first-child),
-.input-group-btn:not(:first-child) > .btn,
-.input-group-btn:not(:first-child) > .btn-group > .btn,
-.input-group-btn:not(:first-child) > .dropdown-toggle,
-.input-group-btn:not(:last-child) > .btn:not(:first-child),
-.input-group-btn:not(:last-child) > .btn-group:not(:first-child) > .btn {
-  border-top-left-radius: 0;
-  border-bottom-left-radius: 0; }
-
-.form-control + .input-group-addon:not(:first-child) {
-  border-left: 0; }
-
-.input-group-btn {
-  position: relative;
-  align-items: stretch;
-  font-size: 0;
-  white-space: nowrap; }
-  .input-group-btn > .btn {
-    position: relative; }
-    .input-group-btn > .btn + .btn {
-      margin-left: -1px; }
-    .input-group-btn > .btn:focus, .input-group-btn > .btn:active, .input-group-btn > .btn:hover {
-      z-index: 3; }
-  .input-group-btn:first-child > .btn + .btn {
-    margin-left: 0; }
-  .input-group-btn:not(:last-child) > .btn,
-  .input-group-btn:not(:last-child) > .btn-group {
-    margin-right: -1px; }
-  .input-group-btn:not(:first-child) > .btn,
-  .input-group-btn:not(:first-child) > .btn-group {
-    z-index: 2;
-    margin-left: 0; }
-    .input-group-btn:not(:first-child) > .btn:first-child,
-    .input-group-btn:not(:first-child) > .btn-group:first-child {
-      margin-left: -1px; }
-    .input-group-btn:not(:first-child) > .btn:focus, .input-group-btn:not(:first-child) > .btn:active, .input-group-btn:not(:first-child) > .btn:hover,
-    .input-group-btn:not(:first-child) > .btn-group:focus,
-    .input-group-btn:not(:first-child) > .btn-group:active,
-    .input-group-btn:not(:first-child) > .btn-group:hover {
-      z-index: 3; }
-
-.custom-control {
-  position: relative;
-  display: inline-flex;
-  min-height: 1.5rem;
-  padding-left: 1.5rem;
-  margin-right: 1rem; }
-
-.custom-control-input {
-  position: absolute;
-  z-index: -1;
-  opacity: 0; }
-  .custom-control-input:checked ~ .custom-control-indicator {
-    color: #fff;
-    background-color: #7D4698; }
-  .custom-control-input:focus ~ .custom-control-indicator {
-    box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(125, 70, 152, 0.25); }
-  .custom-control-input:active ~ .custom-control-indicator {
-    color: #fff;
-    background-color: #cfb4dc; }
-  .custom-control-input:disabled ~ .custom-control-indicator {
-    background-color: #e9ecef; }
-  .custom-control-input:disabled ~ .custom-control-description {
-    color: #848E97; }
-
-.custom-control-indicator {
-  position: absolute;
-  top: 0.25rem;
-  left: 0;
-  display: block;
-  width: 1rem;
-  height: 1rem;
-  pointer-events: none;
-  user-select: none;
-  background-color: #ddd;
-  background-repeat: no-repeat;
-  background-position: center center;
-  background-size: 50% 50%; }
-
-.custom-checkbox .custom-control-indicator {
-  border-radius: 0.25rem; }
-.custom-checkbox .custom-control-input:checked ~ .custom-control-indicator {
-  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E"); }
-.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-indicator {
-  background-color: #7D4698;
-  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E"); }
-
-.custom-radio .custom-control-indicator {
-  border-radius: 50%; }
-.custom-radio .custom-control-input:checked ~ .custom-control-indicator {
-  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E"); }
-
-.custom-controls-stacked {
-  display: flex;
-  flex-direction: column; }
-  .custom-controls-stacked .custom-control {
-    margin-bottom: 0.25rem; }
-    .custom-controls-stacked .custom-control + .custom-control {
-      margin-left: 0; }
-
-.custom-select {
-  display: inline-block;
-  max-width: 100%;
-  height: calc(2.25rem + 2px);
-  padding: 0.375rem 1.75rem 0.375rem 0.75rem;
-  line-height: 1.5;
-  color: #495057;
-  vertical-align: middle;
-  background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23333' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right 0.75rem center;
-  background-size: 8px 10px;
-  border: 1px solid #ced4da;
-  border-radius: 0.25rem;
-  appearance: none; }
-  .custom-select:focus {
-    border-color: #b991cc;
-    outline: none; }
-    .custom-select:focus::-ms-value {
-      color: #495057;
-      background-color: #fff; }
-  .custom-select[multiple] {
-    height: auto;
-    background-image: none; }
-  .custom-select:disabled {
-    color: #848E97;
-    background-color: #e9ecef; }
-  .custom-select::-ms-expand {
-    opacity: 0; }
-
-.custom-select-sm {
-  height: calc(1.8125rem + 2px);
-  padding-top: 0.375rem;
-  padding-bottom: 0.375rem;
-  font-size: 75%; }
-
-.custom-file {
-  position: relative;
-  display: inline-block;
-  max-width: 100%;
-  height: calc(2.25rem + 2px);
-  margin-bottom: 0; }
-
-.custom-file-input {
-  min-width: 14rem;
-  max-width: 100%;
-  height: calc(2.25rem + 2px);
-  margin: 0;
-  opacity: 0; }
-  .custom-file-input:focus ~ .custom-file-control {
-    box-shadow: 0 0 0 0.075rem #fff, 0 0 0 0.2rem #7D4698; }
-
-.custom-file-control {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  z-index: 5;
-  height: calc(2.25rem + 2px);
-  padding: 0.375rem 0.75rem;
-  line-height: 1.5;
-  color: #495057;
-  pointer-events: none;
-  user-select: none;
-  background-color: #fff;
-  border: 1px solid #ced4da;
-  border-radius: 0.25rem; }
-  .custom-file-control:lang(en):empty::after {
-    content: "Choose file..."; }
-  .custom-file-control::before {
-    position: absolute;
-    top: -1px;
-    right: -1px;
-    bottom: -1px;
-    z-index: 6;
-    display: block;
-    height: calc(2.25rem + 2px);
-    padding: 0.375rem 0.75rem;
-    line-height: 1.5;
-    color: #495057;
-    background-color: #e9ecef;
-    border: 1px solid #ced4da;
-    border-radius: 0 0.25rem 0.25rem 0; }
-  .custom-file-control:lang(en)::before {
-    content: "Browse"; }
-
-.nav {
-  display: flex;
-  flex-wrap: wrap;
-  padding-left: 0;
-  margin-bottom: 0;
-  list-style: none; }
-
-.nav-link {
-  display: block;
-  padding: 0.5rem 1rem; }
-  .nav-link:focus, .nav-link:hover {
-    text-decoration: none; }
-  .nav-link.disabled {
-    color: #848E97; }
-
-.nav-tabs {
-  border-bottom: 1px solid #ddd; }
-  .nav-tabs .nav-item {
-    margin-bottom: -1px; }
-  .nav-tabs .nav-link {
-    border: 1px solid transparent;
-    border-top-left-radius: 0.25rem;
-    border-top-right-radius: 0.25rem; }
-    .nav-tabs .nav-link:focus, .nav-tabs .nav-link:hover {
-      border-color: #e9ecef #e9ecef #ddd; }
-    .nav-tabs .nav-link.disabled {
-      color: #848E97;
-      background-color: transparent;
-      border-color: transparent; }
-  .nav-tabs .nav-link.active,
-  .nav-tabs .nav-item.show .nav-link {
-    color: #495057;
-    background-color: #fff;
-    border-color: #ddd #ddd #fff; }
-  .nav-tabs .dropdown-menu {
-    margin-top: -1px;
-    border-top-left-radius: 0;
-    border-top-right-radius: 0; }
-
-.nav-pills .nav-link {
-  border-radius: 0.25rem; }
-.nav-pills .nav-link.active,
-.nav-pills .show > .nav-link {
-  color: #fff;
-  background-color: #7D4698; }
-
-.nav-fill .nav-item {
-  flex: 1 1 auto;
-  text-align: center; }
-
-.nav-justified .nav-item {
-  flex-basis: 0;
-  flex-grow: 1;
-  text-align: center; }
-
-.tab-content > .tab-pane {
-  display: none; }
-.tab-content > .active {
-  display: block; }
-
-.navbar {
-  position: relative;
-  display: flex;
-  flex-wrap: wrap;
-  align-items: center;
-  justify-content: space-between;
-  padding: 0.5rem 1rem; }
-  .navbar > .container,
-  .navbar > .container-fluid {
-    display: flex;
-    flex-wrap: wrap;
-    align-items: center;
-    justify-content: space-between; }
-
-.navbar-brand {
-  display: inline-block;
-  padding-top: 0.3125rem;
-  padding-bottom: 0.3125rem;
-  margin-right: 1rem;
-  font-size: 1.25rem;
-  line-height: inherit;
-  white-space: nowrap; }
-  .navbar-brand:focus, .navbar-brand:hover {
-    text-decoration: none; }
-
-.navbar-nav {
-  display: flex;
-  flex-direction: column;
-  padding-left: 0;
-  margin-bottom: 0;
-  list-style: none; }
-  .navbar-nav .nav-link {
-    padding-right: 0;
-    padding-left: 0; }
-  .navbar-nav .dropdown-menu {
-    position: static;
-    float: none; }
-
-.navbar-text {
-  display: inline-block;
-  padding-top: 0.5rem;
-  padding-bottom: 0.5rem; }
-
-.navbar-collapse {
-  flex-basis: 100%;
-  flex-grow: 1;
-  align-items: center; }
-
-.navbar-toggler {
-  padding: 0.25rem 0.75rem;
-  font-size: 1.25rem;
-  line-height: 1;
-  background: transparent;
-  border: 1px solid transparent;
-  border-radius: 0.25rem; }
-  .navbar-toggler:focus, .navbar-toggler:hover {
-    text-decoration: none; }
-
-.navbar-toggler-icon {
-  display: inline-block;
-  width: 1.5em;
-  height: 1.5em;
-  vertical-align: middle;
-  content: "";
-  background: no-repeat center center;
-  background-size: 100% 100%; }
-
- at media (max-width: 575px) {
-  .navbar-expand-sm > .container,
-  .navbar-expand-sm > .container-fluid {
-    padding-right: 0;
-    padding-left: 0; } }
- at media (min-width: 576px) {
-  .navbar-expand-sm {
-    flex-flow: row nowrap;
-    justify-content: flex-start; }
-    .navbar-expand-sm .navbar-nav {
-      flex-direction: row; }
-      .navbar-expand-sm .navbar-nav .dropdown-menu {
-        position: absolute; }
-      .navbar-expand-sm .navbar-nav .dropdown-menu-right {
-        right: 0;
-        left: auto; }
-      .navbar-expand-sm .navbar-nav .nav-link {
-        padding-right: .5rem;
-        padding-left: .5rem; }
-    .navbar-expand-sm > .container,
-    .navbar-expand-sm > .container-fluid {
-      flex-wrap: nowrap; }
-    .navbar-expand-sm .navbar-collapse {
-      display: flex !important;
-      flex-basis: auto; }
-    .navbar-expand-sm .navbar-toggler {
-      display: none; }
-    .navbar-expand-sm .dropup .dropdown-menu {
-      top: auto;
-      bottom: 100%; } }
- at media (max-width: 767px) {
-  .navbar-expand-md > .container,
-  .navbar-expand-md > .container-fluid {
-    padding-right: 0;
-    padding-left: 0; } }
- at media (min-width: 768px) {
-  .navbar-expand-md {
-    flex-flow: row nowrap;
-    justify-content: flex-start; }
-    .navbar-expand-md .navbar-nav {
-      flex-direction: row; }
-      .navbar-expand-md .navbar-nav .dropdown-menu {
-        position: absolute; }
-      .navbar-expand-md .navbar-nav .dropdown-menu-right {
-        right: 0;
-        left: auto; }
-      .navbar-expand-md .navbar-nav .nav-link {
-        padding-right: .5rem;
-        padding-left: .5rem; }
-    .navbar-expand-md > .container,
-    .navbar-expand-md > .container-fluid {
-      flex-wrap: nowrap; }
-    .navbar-expand-md .navbar-collapse {
-      display: flex !important;
-      flex-basis: auto; }
-    .navbar-expand-md .navbar-toggler {
-      display: none; }
-    .navbar-expand-md .dropup .dropdown-menu {
-      top: auto;
-      bottom: 100%; } }
- at media (max-width: 991px) {
-  .navbar-expand-lg > .container,
-  .navbar-expand-lg > .container-fluid {
-    padding-right: 0;
-    padding-left: 0; } }
- at media (min-width: 992px) {
-  .navbar-expand-lg {
-    flex-flow: row nowrap;
-    justify-content: flex-start; }
-    .navbar-expand-lg .navbar-nav {
-      flex-direction: row; }
-      .navbar-expand-lg .navbar-nav .dropdown-menu {
-        position: absolute; }
-      .navbar-expand-lg .navbar-nav .dropdown-menu-right {
-        right: 0;
-        left: auto; }
-      .navbar-expand-lg .navbar-nav .nav-link {
-        padding-right: .5rem;
-        padding-left: .5rem; }
-    .navbar-expand-lg > .container,
-    .navbar-expand-lg > .container-fluid {
-      flex-wrap: nowrap; }
-    .navbar-expand-lg .navbar-collapse {
-      display: flex !important;
-      flex-basis: auto; }
-    .navbar-expand-lg .navbar-toggler {
-      display: none; }
-    .navbar-expand-lg .dropup .dropdown-menu {
-      top: auto;
-      bottom: 100%; } }
- at media (max-width: 1199px) {
-  .navbar-expand-xl > .container,
-  .navbar-expand-xl > .container-fluid {
-    padding-right: 0;
-    padding-left: 0; } }
- at media (min-width: 1200px) {
-  .navbar-expand-xl {
-    flex-flow: row nowrap;
-    justify-content: flex-start; }
-    .navbar-expand-xl .navbar-nav {
-      flex-direction: row; }
-      .navbar-expand-xl .navbar-nav .dropdown-menu {
-        position: absolute; }
-      .navbar-expand-xl .navbar-nav .dropdown-menu-right {
-        right: 0;
-        left: auto; }
-      .navbar-expand-xl .navbar-nav .nav-link {
-        padding-right: .5rem;
-        padding-left: .5rem; }
-    .navbar-expand-xl > .container,
-    .navbar-expand-xl > .container-fluid {
-      flex-wrap: nowrap; }
-    .navbar-expand-xl .navbar-collapse {
-      display: flex !important;
-      flex-basis: auto; }
-    .navbar-expand-xl .navbar-toggler {
-      display: none; }
-    .navbar-expand-xl .dropup .dropdown-menu {
-      top: auto;
-      bottom: 100%; } }
-.navbar-expand {
-  flex-flow: row nowrap;
-  justify-content: flex-start; }
-  .navbar-expand > .container,
-  .navbar-expand > .container-fluid {
-    padding-right: 0;
-    padding-left: 0; }
-  .navbar-expand .navbar-nav {
-    flex-direction: row; }
-    .navbar-expand .navbar-nav .dropdown-menu {
-      position: absolute; }
-    .navbar-expand .navbar-nav .dropdown-menu-right {
-      right: 0;
-      left: auto; }
-    .navbar-expand .navbar-nav .nav-link {
-      padding-right: .5rem;
-      padding-left: .5rem; }
-  .navbar-expand > .container,
-  .navbar-expand > .container-fluid {
-    flex-wrap: nowrap; }
-  .navbar-expand .navbar-collapse {
-    display: flex !important;
-    flex-basis: auto; }
-  .navbar-expand .navbar-toggler {
-    display: none; }
-  .navbar-expand .dropup .dropdown-menu {
-    top: auto;
-    bottom: 100%; }
-
-.navbar-light .navbar-brand {
-  color: rgba(0, 0, 0, 0.9); }
-  .navbar-light .navbar-brand:focus, .navbar-light .navbar-brand:hover {
-    color: rgba(0, 0, 0, 0.9); }
-.navbar-light .navbar-nav .nav-link {
-  color: #59316B; }
-  .navbar-light .navbar-nav .nav-link:focus, .navbar-light .navbar-nav .nav-link:hover {
-    color: rgba(0, 0, 0, 0.7); }
-  .navbar-light .navbar-nav .nav-link.disabled {
-    color: rgba(0, 0, 0, 0.3); }
-.navbar-light .navbar-nav .show > .nav-link,
-.navbar-light .navbar-nav .active > .nav-link,
-.navbar-light .navbar-nav .nav-link.show,
-.navbar-light .navbar-nav .nav-link.active {
-  color: rgba(0, 0, 0, 0.9); }
-.navbar-light .navbar-toggler {
-  color: #59316B;
-  border-color: rgba(0, 0, 0, 0.1); }
-.navbar-light .navbar-toggler-icon {
-  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='%2359316B' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); }
-.navbar-light .navbar-text {
-  color: #59316B; }
-  .navbar-light .navbar-text a {
-    color: rgba(0, 0, 0, 0.9); }
-    .navbar-light .navbar-text a:focus, .navbar-light .navbar-text a:hover {
-      color: rgba(0, 0, 0, 0.9); }
-
-.navbar-dark .navbar-brand {
-  color: #fff; }
-  .navbar-dark .navbar-brand:focus, .navbar-dark .navbar-brand:hover {
-    color: #fff; }
-.navbar-dark .navbar-nav .nav-link {
-  color: #fff; }
-  .navbar-dark .navbar-nav .nav-link:focus, .navbar-dark .navbar-nav .nav-link:hover {
-    color: rgba(255, 255, 255, 0.75); }
-  .navbar-dark .navbar-nav .nav-link.disabled {
-    color: rgba(255, 255, 255, 0.25); }
-.navbar-dark .navbar-nav .show > .nav-link,
-.navbar-dark .navbar-nav .active > .nav-link,
-.navbar-dark .navbar-nav .nav-link.show,
-.navbar-dark .navbar-nav .nav-link.active {
-  color: #fff; }
-.navbar-dark .navbar-toggler {
-  color: #fff;
-  border-color: rgba(255, 255, 255, 0.1); }
-.navbar-dark .navbar-toggler-icon {
-  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"); }
-.navbar-dark .navbar-text {
-  color: #fff; }
-  .navbar-dark .navbar-text a {
-    color: #fff; }
-    .navbar-dark .navbar-text a:focus, .navbar-dark .navbar-text a:hover {
-      color: #fff; }
-
-.card {
-  position: relative;
-  display: flex;
-  flex-direction: column;
-  min-width: 0;
-  word-wrap: break-word;
-  background-color: #fff;
-  background-clip: border-box;
-  border: 1px solid rgba(0, 0, 0, 0.125);
-  border-radius: 0.25rem; }
-  .card > hr {
-    margin-right: 0;
-    margin-left: 0; }
-  .card > .list-group:first-child .list-group-item:first-child {
-    border-top-left-radius: 0.25rem;
-    border-top-right-radius: 0.25rem; }
-  .card > .list-group:last-child .list-group-item:last-child {
-    border-bottom-right-radius: 0.25rem;
-    border-bottom-left-radius: 0.25rem; }
-
-.card-body {
-  flex: 1 1 auto;
-  padding: 1.25rem; }
-
-.card-title {
-  margin-bottom: 0.75rem; }
-
-.card-subtitle {
-  margin-top: -0.375rem;
-  margin-bottom: 0; }
-
-.card-text:last-child {
-  margin-bottom: 0; }
-
-.card-link:hover {
-  text-decoration: none; }
-.card-link + .card-link {
-  margin-left: 1.25rem; }
-
-.card-header {
-  padding: 0.75rem 1.25rem;
-  margin-bottom: 0;
-  background-color: rgba(0, 0, 0, 0.03);
-  border-bottom: 1px solid rgba(0, 0, 0, 0.125); }
-  .card-header:first-child {
-    border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; }
-  .card-header + .list-group .list-group-item:first-child {
-    border-top: 0; }
-
-.card-footer {
-  padding: 0.75rem 1.25rem;
-  background-color: rgba(0, 0, 0, 0.03);
-  border-top: 1px solid rgba(0, 0, 0, 0.125); }
-  .card-footer:last-child {
-    border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); }
-
-.card-header-tabs {
-  margin-right: -0.625rem;
-  margin-bottom: -0.75rem;
-  margin-left: -0.625rem;
-  border-bottom: 0; }
-
-.card-header-pills {
-  margin-right: -0.625rem;
-  margin-left: -0.625rem; }
-
-.card-img-overlay {
-  position: absolute;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  padding: 1.25rem; }
-
-.card-img {
-  width: 100%;
-  border-radius: calc(0.25rem - 1px); }
-
-.card-img-top {
-  width: 100%;
-  border-top-left-radius: calc(0.25rem - 1px);
-  border-top-right-radius: calc(0.25rem - 1px); }
-
-.card-img-bottom {
-  width: 100%;
-  border-bottom-right-radius: calc(0.25rem - 1px);
-  border-bottom-left-radius: calc(0.25rem - 1px); }
-
-.card-deck {
-  display: flex;
-  flex-direction: column; }
-  .card-deck .card {
-    margin-bottom: 15px; }
-  @media (min-width: 576px) {
-    .card-deck {
-      flex-flow: row wrap;
-      margin-right: -15px;
-      margin-left: -15px; }
-      .card-deck .card {
-        display: flex;
-        flex: 1 0 0%;
-        flex-direction: column;
-        margin-right: 15px;
-        margin-bottom: 0;
-        margin-left: 15px; } }
-
-.card-group {
-  display: flex;
-  flex-direction: column; }
-  .card-group .card {
-    margin-bottom: 15px; }
-  @media (min-width: 576px) {
-    .card-group {
-      flex-flow: row wrap; }
-      .card-group .card {
-        flex: 1 0 0%;
-        margin-bottom: 0; }
-        .card-group .card + .card {
-          margin-left: 0;
-          border-left: 0; }
-        .card-group .card:first-child {
-          border-top-right-radius: 0;
-          border-bottom-right-radius: 0; }
-          .card-group .card:first-child .card-img-top {
-            border-top-right-radius: 0; }
-          .card-group .card:first-child .card-img-bottom {
-            border-bottom-right-radius: 0; }
-        .card-group .card:last-child {
-          border-top-left-radius: 0;
-          border-bottom-left-radius: 0; }
-          .card-group .card:last-child .card-img-top {
-            border-top-left-radius: 0; }
-          .card-group .card:last-child .card-img-bottom {
-            border-bottom-left-radius: 0; }
-        .card-group .card:only-child {
-          border-radius: 0.25rem; }
-          .card-group .card:only-child .card-img-top {
-            border-top-left-radius: 0.25rem;
-            border-top-right-radius: 0.25rem; }
-          .card-group .card:only-child .card-img-bottom {
-            border-bottom-right-radius: 0.25rem;
-            border-bottom-left-radius: 0.25rem; }
-        .card-group .card:not(:first-child):not(:last-child):not(:only-child) {
-          border-radius: 0; }
-          .card-group .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,
-          .card-group .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom {
-            border-radius: 0; } }
-
-.card-columns .card {
-  margin-bottom: 0.75rem; }
- at media (min-width: 576px) {
-  .card-columns {
-    column-count: 3;
-    column-gap: 1.25rem; }
-    .card-columns .card {
-      display: inline-block;
-      width: 100%; } }
-
-.breadcrumb {
-  display: flex;
-  flex-wrap: wrap;
-  padding: 0.75rem 1rem;
-  margin-bottom: 1rem;
-  list-style: none;
-  background-color: #e9ecef;
-  border-radius: 0.25rem; }
-
-.breadcrumb-item + .breadcrumb-item::before {
-  display: inline-block;
-  padding-right: 0.5rem;
-  padding-left: 0.5rem;
-  color: #848E97;
-  content: "/"; }
-.breadcrumb-item + .breadcrumb-item:hover::before {
-  text-decoration: underline; }
-.breadcrumb-item + .breadcrumb-item:hover::before {
-  text-decoration: none; }
-.breadcrumb-item.active {
-  color: #848E97; }
-
-.pagination {
-  display: flex;
-  padding-left: 0;
-  list-style: none;
-  border-radius: 0.25rem; }
-
-.page-item:first-child .page-link {
-  margin-left: 0;
-  border-top-left-radius: 0.25rem;
-  border-bottom-left-radius: 0.25rem; }
-.page-item:last-child .page-link {
-  border-top-right-radius: 0.25rem;
-  border-bottom-right-radius: 0.25rem; }
-.page-item.active .page-link {
-  z-index: 2;
-  color: #fff;
-  background-color: #7D4698;
-  border-color: #7D4698; }
-.page-item.disabled .page-link {
-  color: #848E97;
-  pointer-events: none;
-  background-color: #fff;
-  border-color: #ddd; }
-
-.page-link {
-  position: relative;
-  display: block;
-  padding: 0.5rem 0.75rem;
-  margin-left: -1px;
-  line-height: 1.25;
-  color: #7D4698;
-  background-color: #fff;
-  border: 1px solid #ddd; }
-  .page-link:focus, .page-link:hover {
-    color: #522e64;
-    text-decoration: none;
-    background-color: #e9ecef;
-    border-color: #ddd; }
-
-.pagination-lg .page-link {
-  padding: 0.75rem 1.5rem;
-  font-size: 1.25rem;
-  line-height: 1.5; }
-.pagination-lg .page-item:first-child .page-link {
-  border-top-left-radius: 0.3rem;
-  border-bottom-left-radius: 0.3rem; }
-.pagination-lg .page-item:last-child .page-link {
-  border-top-right-radius: 0.3rem;
-  border-bottom-right-radius: 0.3rem; }
-
-.pagination-sm .page-link {
-  padding: 0.25rem 0.5rem;
-  font-size: 0.875rem;
-  line-height: 1.5; }
-.pagination-sm .page-item:first-child .page-link {
-  border-top-left-radius: 0.2rem;
-  border-bottom-left-radius: 0.2rem; }
-.pagination-sm .page-item:last-child .page-link {
-  border-top-right-radius: 0.2rem;
-  border-bottom-right-radius: 0.2rem; }
-
-.badge {
-  display: inline-block;
-  padding: 0.25em 0.4em;
-  font-size: 75%;
-  font-weight: 700;
-  line-height: 1;
-  text-align: center;
-  white-space: nowrap;
-  vertical-align: baseline;
-  border-radius: 0.25rem; }
-  .badge:empty {
-    display: none; }
-
-.btn .badge {
-  position: relative;
-  top: -1px; }
-
-.badge-pill {
-  padding-right: 0.6em;
-  padding-left: 0.6em;
-  border-radius: 10rem; }
-
-.badge-primary {
-  color: #fff;
-  background-color: #7D4698; }
-  .badge-primary[href]:focus, .badge-primary[href]:hover {
-    color: #fff;
-    text-decoration: none;
-    background-color: #603675; }
-
-.badge-secondary {
-  color: #fff;
-  background-color: #333A41; }
-  .badge-secondary[href]:focus, .badge-secondary[href]:hover {
-    color: #fff;
-    text-decoration: none;
-    background-color: #1d2124; }
-
-.badge-success {
-  color: #fff;
-  background-color: #68B044; }
-  .badge-success[href]:focus, .badge-success[href]:hover {
-    color: #fff;
-    text-decoration: none;
-    background-color: #528b36; }
-
-.badge-info {
-  color: #fff;
-  background-color: #00A5BB; }
-  .badge-info[href]:focus, .badge-info[href]:hover {
-    color: #fff;
-    text-decoration: none;
-    background-color: #007888; }
-
-.badge-warning {
-  color: #111;
-  background-color: #FFBF00; }
-  .badge-warning[href]:focus, .badge-warning[href]:hover {
-    color: #111;
-    text-decoration: none;
-    background-color: #cc9900; }
-
-.badge-danger {
-  color: #fff;
-  background-color: #EF243E; }
-  .badge-danger[href]:focus, .badge-danger[href]:hover {
-    color: #fff;
-    text-decoration: none;
-    background-color: #d10f28; }
-
-.badge-light {
-  color: #111;
-  background-color: #F8F9FA; }
-  .badge-light[href]:focus, .badge-light[href]:hover {
-    color: #111;
-    text-decoration: none;
-    background-color: #dae0e5; }
-
-.badge-dark {
-  color: #fff;
-  background-color: #59316B; }
-  .badge-dark[href]:focus, .badge-dark[href]:hover {
-    color: #fff;
-    text-decoration: none;
-    background-color: #3c2148; }
-
-.jumbotron {
-  padding: 2rem 1rem;
-  margin-bottom: 2rem;
-  background-color: #e9ecef;
-  border-radius: 0.3rem; }
-  @media (min-width: 576px) {
-    .jumbotron {
-      padding: 4rem 2rem; } }
-
-.jumbotron-fluid {
-  padding-right: 0;
-  padding-left: 0;
-  border-radius: 0; }
-
-.alert {
-  position: relative;
-  padding: 0.75rem 1.25rem;
-  margin-bottom: 1rem;
-  border: 1px solid transparent;
-  border-radius: 0.25rem; }
-
-.alert-heading {
-  color: inherit; }
-
-.alert-link {
-  font-weight: 700; }
-
-.alert-dismissible .close {
-  position: absolute;
-  top: 0;
-  right: 0;
-  padding: 0.75rem 1.25rem;
-  color: inherit; }
-
-.alert-primary {
-  color: #41244f;
-  background-color: #e5daea;
-  border-color: #dbcbe2; }
-  .alert-primary hr {
-    border-top-color: #d0bbd9; }
-  .alert-primary .alert-link {
-    color: #24142c; }
-
-.alert-secondary {
-  color: #1b1e22;
-  background-color: #d6d8d9;
-  border-color: #c6c8ca; }
-  .alert-secondary hr {
-    border-top-color: #b9bbbe; }
-  .alert-secondary .alert-link {
-    color: #040506; }
-
-.alert-success {
-  color: #365c23;
-  background-color: #e1efda;
-  border-color: #d5e9cb; }
-  .alert-success hr {
-    border-top-color: #c7e1b9; }
-  .alert-success .alert-link {
-    color: #203715; }
-
-.alert-info {
-  color: #005661;
-  background-color: #ccedf1;
-  border-color: #b8e6ec; }
-  .alert-info hr {
-    border-top-color: #a4dfe7; }
-  .alert-info .alert-link {
-    color: #00292e; }
-
-.alert-warning {
-  color: #856300;
-  background-color: #fff2cc;
-  border-color: #ffedb8; }
-  .alert-warning hr {
-    border-top-color: #ffe79f; }
-  .alert-warning .alert-link {
-    color: #523d00; }
-
-.alert-danger {
-  color: #7c1320;
-  background-color: #fcd3d8;
-  border-color: #fbc2c9; }
-  .alert-danger hr {
-    border-top-color: #f9aab4; }
-  .alert-danger .alert-link {
-    color: #500c15; }
-
-.alert-light {
-  color: #818182;
-  background-color: #fefefe;
-  border-color: #fdfdfe; }
-  .alert-light hr {
-    border-top-color: #ececf6; }
-  .alert-light .alert-link {
-    color: #686868; }
-
-.alert-dark {
-  color: #2e1938;
-  background-color: #ded6e1;
-  border-color: #d1c5d6; }
-  .alert-dark hr {
-    border-top-color: #c5b6cb; }
-  .alert-dark .alert-link {
-    color: #110915; }
-
- at keyframes progress-bar-stripes {
-  from {
-    background-position: 1rem 0; }
-  to {
-    background-position: 0 0; } }
-.progress {
-  display: flex;
-  height: 1rem;
-  overflow: hidden;
-  font-size: 0.75rem;
-  background-color: #e9ecef;
-  border-radius: 0.25rem; }
-
-.progress-bar {
-  display: flex;
-  align-items: center;
-  justify-content: center;
-  color: #fff;
-  background-color: #7D4698; }
-
-.progress-bar-striped {
-  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-size: 1rem 1rem; }
-
-.progress-bar-animated {
-  animation: progress-bar-stripes 1s linear infinite; }
-
-.media {
-  display: flex;
-  align-items: flex-start; }
-
-.media-body {
-  flex: 1; }
-
-.list-group {
-  display: flex;
-  flex-direction: column;
-  padding-left: 0;
-  margin-bottom: 0; }
-
-.list-group-item-action {
-  width: 100%;
-  color: #495057;
-  text-align: inherit; }
-  .list-group-item-action:focus, .list-group-item-action:hover {
-    color: #495057;
-    text-decoration: none;
-    background-color: #F8F9FA; }
-  .list-group-item-action:active {
-    color: #212529;
-    background-color: #e9ecef; }
-
-.list-group-item {
-  position: relative;
-  display: block;
-  padding: 0.75rem 1.25rem;
-  margin-bottom: -1px;
-  background-color: #fff;
-  border: 1px solid rgba(0, 0, 0, 0.125); }
-  .list-group-item:first-child {
-    border-top-left-radius: 0.25rem;
-    border-top-right-radius: 0.25rem; }
-  .list-group-item:last-child {
-    margin-bottom: 0;
-    border-bottom-right-radius: 0.25rem;
-    border-bottom-left-radius: 0.25rem; }
-  .list-group-item:focus, .list-group-item:hover {
-    text-decoration: none; }
-  .list-group-item.disabled, .list-group-item:disabled {
-    color: #848E97;
-    background-color: #fff; }
-  .list-group-item.active {
-    z-index: 2;
-    color: #fff;
-    background-color: #7D4698;
-    border-color: #7D4698; }
-
-.list-group-flush .list-group-item {
-  border-right: 0;
-  border-left: 0;
-  border-radius: 0; }
-.list-group-flush:first-child .list-group-item:first-child {
-  border-top: 0; }
-.list-group-flush:last-child .list-group-item:last-child {
-  border-bottom: 0; }
-
-.list-group-item-primary {
-  color: #41244f;
-  background-color: #dbcbe2; }
-
-a.list-group-item-primary,
-button.list-group-item-primary {
-  color: #41244f; }
-  a.list-group-item-primary:focus, a.list-group-item-primary:hover,
-  button.list-group-item-primary:focus,
-  button.list-group-item-primary:hover {
-    color: #41244f;
-    background-color: #d0bbd9; }
-  a.list-group-item-primary.active,
-  button.list-group-item-primary.active {
-    color: #fff;
-    background-color: #41244f;
-    border-color: #41244f; }
-
-.list-group-item-secondary {
-  color: #1b1e22;
-  background-color: #c6c8ca; }
-
-a.list-group-item-secondary,
-button.list-group-item-secondary {
-  color: #1b1e22; }
-  a.list-group-item-secondary:focus, a.list-group-item-secondary:hover,
-  button.list-group-item-secondary:focus,
-  button.list-group-item-secondary:hover {
-    color: #1b1e22;
-    background-color: #b9bbbe; }
-  a.list-group-item-secondary.active,
-  button.list-group-item-secondary.active {
-    color: #fff;
-    background-color: #1b1e22;
-    border-color: #1b1e22; }
-
-.list-group-item-success {
-  color: #365c23;
-  background-color: #d5e9cb; }
-
-a.list-group-item-success,
-button.list-group-item-success {
-  color: #365c23; }
-  a.list-group-item-success:focus, a.list-group-item-success:hover,
-  button.list-group-item-success:focus,
-  button.list-group-item-success:hover {
-    color: #365c23;
-    background-color: #c7e1b9; }
-  a.list-group-item-success.active,
-  button.list-group-item-success.active {
-    color: #fff;
-    background-color: #365c23;
-    border-color: #365c23; }
-
-.list-group-item-info {
-  color: #005661;
-  background-color: #b8e6ec; }
-
-a.list-group-item-info,
-button.list-group-item-info {
-  color: #005661; }
-  a.list-group-item-info:focus, a.list-group-item-info:hover,
-  button.list-group-item-info:focus,
-  button.list-group-item-info:hover {
-    color: #005661;
-    background-color: #a4dfe7; }
-  a.list-group-item-info.active,
-  button.list-group-item-info.active {
-    color: #fff;
-    background-color: #005661;
-    border-color: #005661; }
-
-.list-group-item-warning {
-  color: #856300;
-  background-color: #ffedb8; }
-
-a.list-group-item-warning,
-button.list-group-item-warning {
-  color: #856300; }
-  a.list-group-item-warning:focus, a.list-group-item-warning:hover,
-  button.list-group-item-warning:focus,
-  button.list-group-item-warning:hover {
-    color: #856300;
-    background-color: #ffe79f; }
-  a.list-group-item-warning.active,
-  button.list-group-item-warning.active {
-    color: #fff;
-    background-color: #856300;
-    border-color: #856300; }
-
-.list-group-item-danger {
-  color: #7c1320;
-  background-color: #fbc2c9; }
-
-a.list-group-item-danger,
-button.list-group-item-danger {
-  color: #7c1320; }
-  a.list-group-item-danger:focus, a.list-group-item-danger:hover,
-  button.list-group-item-danger:focus,
-  button.list-group-item-danger:hover {
-    color: #7c1320;
-    background-color: #f9aab4; }
-  a.list-group-item-danger.active,
-  button.list-group-item-danger.active {
-    color: #fff;
-    background-color: #7c1320;
-    border-color: #7c1320; }
-
-.list-group-item-light {
-  color: #818182;
-  background-color: #fdfdfe; }
-
-a.list-group-item-light,
-button.list-group-item-light {
-  color: #818182; }
-  a.list-group-item-light:focus, a.list-group-item-light:hover,
-  button.list-group-item-light:focus,
-  button.list-group-item-light:hover {
-    color: #818182;
-    background-color: #ececf6; }
-  a.list-group-item-light.active,
-  button.list-group-item-light.active {
-    color: #fff;
-    background-color: #818182;
-    border-color: #818182; }
-
-.list-group-item-dark {
-  color: #2e1938;
-  background-color: #d1c5d6; }
-
-a.list-group-item-dark,
-button.list-group-item-dark {
-  color: #2e1938; }
-  a.list-group-item-dark:focus, a.list-group-item-dark:hover,
-  button.list-group-item-dark:focus,
-  button.list-group-item-dark:hover {
-    color: #2e1938;
-    background-color: #c5b6cb; }
-  a.list-group-item-dark.active,
-  button.list-group-item-dark.active {
-    color: #fff;
-    background-color: #2e1938;
-    border-color: #2e1938; }
-
-.close {
-  float: right;
-  font-size: 1.5rem;
-  font-weight: 700;
-  line-height: 1;
-  color: #000;
-  text-shadow: 0 1px 0 #fff;
-  opacity: .5; }
-  .close:focus, .close:hover {
-    color: #000;
-    text-decoration: none;
-    opacity: .75; }
-
-button.close {
-  padding: 0;
-  background: transparent;
-  border: 0;
-  -webkit-appearance: none; }
-
-.modal-open {
-  overflow: hidden; }
-
-.modal {
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: 1050;
-  display: none;
-  overflow: hidden;
-  outline: 0; }
-  .modal.fade .modal-dialog {
-    transition: transform 0.3s ease-out;
-    transform: translate(0, -25%); }
-  .modal.show .modal-dialog {
-    transform: translate(0, 0); }
-
-.modal-open .modal {
-  overflow-x: hidden;
-  overflow-y: auto; }
-
-.modal-dialog {
-  position: relative;
-  width: auto;
-  margin: 10px;
-  pointer-events: none; }
-
-.modal-content {
-  position: relative;
-  display: flex;
-  flex-direction: column;
-  pointer-events: auto;
-  background-color: #fff;
-  background-clip: padding-box;
-  border: 1px solid rgba(0, 0, 0, 0.2);
-  border-radius: 0.3rem;
-  outline: 0; }
-
-.modal-backdrop {
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: 1040;
-  background-color: #000; }
-  .modal-backdrop.fade {
-    opacity: 0; }
-  .modal-backdrop.show {
-    opacity: 0.5; }
-
-.modal-header {
-  display: flex;
-  align-items: flex-start;
-  justify-content: space-between;
-  padding: 15px;
-  border-bottom: 1px solid #e9ecef;
-  border-top-left-radius: 0.3rem;
-  border-top-right-radius: 0.3rem; }
-  .modal-header .close {
-    padding: 15px;
-    margin: -15px -15px -15px auto; }
-
-.modal-title {
-  margin-bottom: 0;
-  line-height: 1.5; }
-
-.modal-body {
-  position: relative;
-  flex: 1 1 auto;
-  padding: 15px; }
-
-.modal-footer {
-  display: flex;
-  align-items: center;
-  justify-content: flex-end;
-  padding: 15px;
-  border-top: 1px solid #e9ecef; }
-  .modal-footer > :not(:first-child) {
-    margin-left: .25rem; }
-  .modal-footer > :not(:last-child) {
-    margin-right: .25rem; }
-
-.modal-scrollbar-measure {
-  position: absolute;
-  top: -9999px;
-  width: 50px;
-  height: 50px;
-  overflow: scroll; }
-
- at media (min-width: 576px) {
-  .modal-dialog {
-    max-width: 500px;
-    margin: 30px auto; }
-
-  .modal-sm {
-    max-width: 300px; } }
- at media (min-width: 992px) {
-  .modal-lg {
-    max-width: 800px; } }
-.tooltip {
-  position: absolute;
-  z-index: 1070;
-  display: block;
-  margin: 0;
-  font-family: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
-  font-style: normal;
-  font-weight: 400;
-  line-height: 1.5;
-  text-align: left;
-  text-align: start;
-  text-decoration: none;
-  text-shadow: none;
-  text-transform: none;
-  letter-spacing: normal;
-  word-break: normal;
-  word-spacing: normal;
-  white-space: normal;
-  line-break: auto;
-  font-size: 0.875rem;
-  word-wrap: break-word;
-  opacity: 0; }
-  .tooltip.show {
-    opacity: 0.9; }
-  .tooltip .arrow {
-    position: absolute;
-    display: block;
-    width: 5px;
-    height: 5px; }
-  .tooltip .arrow::before {
-    position: absolute;
-    border-color: transparent;
-    border-style: solid; }
-  .tooltip.bs-tooltip-top, .tooltip.bs-tooltip-auto[x-placement^="top"] {
-    padding: 5px 0; }
-    .tooltip.bs-tooltip-top .arrow, .tooltip.bs-tooltip-auto[x-placement^="top"] .arrow {
-      bottom: 0; }
-    .tooltip.bs-tooltip-top .arrow::before, .tooltip.bs-tooltip-auto[x-placement^="top"] .arrow::before {
-      margin-left: -3px;
-      content: "";
-      border-width: 5px 5px 0;
-      border-top-color: #000; }
-  .tooltip.bs-tooltip-right, .tooltip.bs-tooltip-auto[x-placement^="right"] {
-    padding: 0 5px; }
-    .tooltip.bs-tooltip-right .arrow, .tooltip.bs-tooltip-auto[x-placement^="right"] .arrow {
-      left: 0; }
-    .tooltip.bs-tooltip-right .arrow::before, .tooltip.bs-tooltip-auto[x-placement^="right"] .arrow::before {
-      margin-top: -3px;
-      content: "";
-      border-width: 5px 5px 5px 0;
-      border-right-color: #000; }
-  .tooltip.bs-tooltip-bottom, .tooltip.bs-tooltip-auto[x-placement^="bottom"] {
-    padding: 5px 0; }
-    .tooltip.bs-tooltip-bottom .arrow, .tooltip.bs-tooltip-auto[x-placement^="bottom"] .arrow {
-      top: 0; }
-    .tooltip.bs-tooltip-bottom .arrow::before, .tooltip.bs-tooltip-auto[x-placement^="bottom"] .arrow::before {
-      margin-left: -3px;
-      content: "";
-      border-width: 0 5px 5px;
-      border-bottom-color: #000; }
-  .tooltip.bs-tooltip-left, .tooltip.bs-tooltip-auto[x-placement^="left"] {
-    padding: 0 5px; }
-    .tooltip.bs-tooltip-left .arrow, .tooltip.bs-tooltip-auto[x-placement^="left"] .arrow {
-      right: 0; }
-    .tooltip.bs-tooltip-left .arrow::before, .tooltip.bs-tooltip-auto[x-placement^="left"] .arrow::before {
-      right: 0;
-      margin-top: -3px;
-      content: "";
-      border-width: 5px 0 5px 5px;
-      border-left-color: #000; }
-
-.tooltip-inner {
-  max-width: 200px;
-  padding: 3px 8px;
-  color: #fff;
-  text-align: center;
-  background-color: #000;
-  border-radius: 0.25rem; }
-
-.popover {
-  position: absolute;
-  top: 0;
-  left: 0;
-  z-index: 1060;
-  display: block;
-  max-width: 276px;
-  font-family: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
-  font-style: normal;
-  font-weight: 400;
-  line-height: 1.5;
-  text-align: left;
-  text-align: start;
-  text-decoration: none;
-  text-shadow: none;
-  text-transform: none;
-  letter-spacing: normal;
-  word-break: normal;
-  word-spacing: normal;
-  white-space: normal;
-  line-break: auto;
-  font-size: 0.875rem;
-  word-wrap: break-word;
-  background-color: #fff;
-  background-clip: padding-box;
-  border: 1px solid rgba(0, 0, 0, 0.2);
-  border-radius: 0.3rem; }
-  .popover .arrow {
-    position: absolute;
-    display: block;
-    width: 0.8rem;
-    height: 0.4rem; }
-  .popover .arrow::before,
-  .popover .arrow::after {
-    position: absolute;
-    display: block;
-    border-color: transparent;
-    border-style: solid; }
-  .popover .arrow::before {
-    content: "";
-    border-width: 0.8rem; }
-  .popover .arrow::after {
-    content: "";
-    border-width: 0.8rem; }
-  .popover.bs-popover-top, .popover.bs-popover-auto[x-placement^="top"] {
-    margin-bottom: 0.8rem; }
-    .popover.bs-popover-top .arrow, .popover.bs-popover-auto[x-placement^="top"] .arrow {
-      bottom: 0; }
-    .popover.bs-popover-top .arrow::before, .popover.bs-popover-auto[x-placement^="top"] .arrow::before,
-    .popover.bs-popover-top .arrow::after,
-    .popover.bs-popover-auto[x-placement^="top"] .arrow::after {
-      border-bottom-width: 0; }
-    .popover.bs-popover-top .arrow::before, .popover.bs-popover-auto[x-placement^="top"] .arrow::before {
-      bottom: -0.8rem;
-      margin-left: -0.8rem;
-      border-top-color: rgba(0, 0, 0, 0.25); }
-    .popover.bs-popover-top .arrow::after, .popover.bs-popover-auto[x-placement^="top"] .arrow::after {
-      bottom: calc((0.8rem - 1px) * -1);
-      margin-left: -0.8rem;
-      border-top-color: #fff; }
-  .popover.bs-popover-right, .popover.bs-popover-auto[x-placement^="right"] {
-    margin-left: 0.8rem; }
-    .popover.bs-popover-right .arrow, .popover.bs-popover-auto[x-placement^="right"] .arrow {
-      left: 0; }
-    .popover.bs-popover-right .arrow::before, .popover.bs-popover-auto[x-placement^="right"] .arrow::before,
-    .popover.bs-popover-right .arrow::after,
-    .popover.bs-popover-auto[x-placement^="right"] .arrow::after {
-      margin-top: -0.8rem;
-      border-left-width: 0; }
-    .popover.bs-popover-right .arrow::before, .popover.bs-popover-auto[x-placement^="right"] .arrow::before {
-      left: -0.8rem;
-      border-right-color: rgba(0, 0, 0, 0.25); }
-    .popover.bs-popover-right .arrow::after, .popover.bs-popover-auto[x-placement^="right"] .arrow::after {
-      left: calc((0.8rem - 1px) * -1);
-      border-right-color: #fff; }
-  .popover.bs-popover-bottom, .popover.bs-popover-auto[x-placement^="bottom"] {
-    margin-top: 0.8rem; }
-    .popover.bs-popover-bottom .arrow, .popover.bs-popover-auto[x-placement^="bottom"] .arrow {
-      top: 0; }
-    .popover.bs-popover-bottom .arrow::before, .popover.bs-popover-auto[x-placement^="bottom"] .arrow::before,
-    .popover.bs-popover-bottom .arrow::after,
-    .popover.bs-popover-auto[x-placement^="bottom"] .arrow::after {
-      margin-left: -0.8rem;
-      border-top-width: 0; }
-    .popover.bs-popover-bottom .arrow::before, .popover.bs-popover-auto[x-placement^="bottom"] .arrow::before {
-      top: -0.8rem;
-      border-bottom-color: rgba(0, 0, 0, 0.25); }
-    .popover.bs-popover-bottom .arrow::after, .popover.bs-popover-auto[x-placement^="bottom"] .arrow::after {
-      top: calc((0.8rem - 1px) * -1);
-      border-bottom-color: #fff; }
-    .popover.bs-popover-bottom .popover-header::before, .popover.bs-popover-auto[x-placement^="bottom"] .popover-header::before {
-      position: absolute;
-      top: 0;
-      left: 50%;
-      display: block;
-      width: 20px;
-      margin-left: -10px;
-      content: "";
-      border-bottom: 1px solid #f7f7f7; }
-  .popover.bs-popover-left, .popover.bs-popover-auto[x-placement^="left"] {
-    margin-right: 0.8rem; }
-    .popover.bs-popover-left .arrow, .popover.bs-popover-auto[x-placement^="left"] .arrow {
-      right: 0; }
-    .popover.bs-popover-left .arrow::before, .popover.bs-popover-auto[x-placement^="left"] .arrow::before,
-    .popover.bs-popover-left .arrow::after,
-    .popover.bs-popover-auto[x-placement^="left"] .arrow::after {
-      margin-top: -0.8rem;
-      border-right-width: 0; }
-    .popover.bs-popover-left .arrow::before, .popover.bs-popover-auto[x-placement^="left"] .arrow::before {
-      right: -0.8rem;
-      border-left-color: rgba(0, 0, 0, 0.25); }
-    .popover.bs-popover-left .arrow::after, .popover.bs-popover-auto[x-placement^="left"] .arrow::after {
-      right: calc((0.8rem - 1px) * -1);
-      border-left-color: #fff; }
-
-.popover-header {
-  padding: 0.5rem 0.75rem;
-  margin-bottom: 0;
-  font-size: 1rem;
-  color: inherit;
-  background-color: #f7f7f7;
-  border-bottom: 1px solid #ebebeb;
-  border-top-left-radius: calc(0.3rem - 1px);
-  border-top-right-radius: calc(0.3rem - 1px); }
-  .popover-header:empty {
-    display: none; }
-
-.popover-body {
-  padding: 0.5rem 0.75rem;
-  color: #212529; }
-
-.carousel {
-  position: relative; }
-
-.carousel-inner {
-  position: relative;
-  width: 100%;
-  overflow: hidden; }
-
-.carousel-item {
-  position: relative;
-  display: none;
-  align-items: center;
-  width: 100%;
-  transition: transform 0.6s ease;
-  backface-visibility: hidden;
-  perspective: 1000px; }
-
-.carousel-item.active,
-.carousel-item-next,
-.carousel-item-prev {
-  display: block; }
-
-.carousel-item-next,
-.carousel-item-prev {
-  position: absolute;
-  top: 0; }
-
-.carousel-item-next.carousel-item-left,
-.carousel-item-prev.carousel-item-right {
-  transform: translateX(0); }
-  @supports (transform-style: preserve-3d) {
-    .carousel-item-next.carousel-item-left,
-    .carousel-item-prev.carousel-item-right {
-      transform: translate3d(0, 0, 0); } }
-
-.carousel-item-next,
-.active.carousel-item-right {
-  transform: translateX(100%); }
-  @supports (transform-style: preserve-3d) {
-    .carousel-item-next,
-    .active.carousel-item-right {
-      transform: translate3d(100%, 0, 0); } }
-
-.carousel-item-prev,
-.active.carousel-item-left {
-  transform: translateX(-100%); }
-  @supports (transform-style: preserve-3d) {
-    .carousel-item-prev,
-    .active.carousel-item-left {
-      transform: translate3d(-100%, 0, 0); } }
-
-.carousel-control-prev,
-.carousel-control-next {
-  position: absolute;
-  top: 0;
-  bottom: 0;
-  display: flex;
-  align-items: center;
-  justify-content: center;
-  width: 15%;
-  color: #fff;
-  text-align: center;
-  opacity: 0.5; }
-  .carousel-control-prev:focus, .carousel-control-prev:hover,
-  .carousel-control-next:focus,
-  .carousel-control-next:hover {
-    color: #fff;
-    text-decoration: none;
-    outline: 0;
-    opacity: .9; }
-
-.carousel-control-prev {
-  left: 0; }
-
-.carousel-control-next {
-  right: 0; }
-
-.carousel-control-prev-icon,
-.carousel-control-next-icon {
-  display: inline-block;
-  width: 20px;
-  height: 20px;
-  background: transparent no-repeat center center;
-  background-size: 100% 100%; }
-
-.carousel-control-prev-icon {
-  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E"); }
-
-.carousel-control-next-icon {
-  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E"); }
-
-.carousel-indicators {
-  position: absolute;
-  right: 0;
-  bottom: 10px;
-  left: 0;
-  z-index: 15;
-  display: flex;
-  justify-content: center;
-  padding-left: 0;
-  margin-right: 15%;
-  margin-left: 15%;
-  list-style: none; }
-  .carousel-indicators li {
-    position: relative;
-    flex: 0 1 auto;
-    width: 30px;
-    height: 3px;
-    margin-right: 3px;
-    margin-left: 3px;
-    text-indent: -999px;
-    background-color: rgba(255, 255, 255, 0.5); }
-    .carousel-indicators li::before {
-      position: absolute;
-      top: -10px;
-      left: 0;
-      display: inline-block;
-      width: 100%;
-      height: 10px;
-      content: ""; }
-    .carousel-indicators li::after {
-      position: absolute;
-      bottom: -10px;
-      left: 0;
-      display: inline-block;
-      width: 100%;
-      height: 10px;
-      content: ""; }
-  .carousel-indicators .active {
-    background-color: #fff; }
-
-.carousel-caption {
-  position: absolute;
-  right: 15%;
-  bottom: 20px;
-  left: 15%;
-  z-index: 10;
-  padding-top: 20px;
-  padding-bottom: 20px;
-  color: #fff;
-  text-align: center; }
-
-.align-baseline {
-  vertical-align: baseline !important; }
-
-.align-top {
-  vertical-align: top !important; }
-
-.align-middle {
-  vertical-align: middle !important; }
-
-.align-bottom {
-  vertical-align: bottom !important; }
-
-.align-text-bottom {
-  vertical-align: text-bottom !important; }
-
-.align-text-top {
-  vertical-align: text-top !important; }
-
-.bg-primary {
-  background-color: #7D4698 !important; }
-
-a.bg-primary:focus, a.bg-primary:hover {
-  background-color: #603675 !important; }
-
-.bg-secondary {
-  background-color: #333A41 !important; }
-
-a.bg-secondary:focus, a.bg-secondary:hover {
-  background-color: #1d2124 !important; }
-
-.bg-success {
-  background-color: #68B044 !important; }
-
-a.bg-success:focus, a.bg-success:hover {
-  background-color: #528b36 !important; }
-
-.bg-info {
-  background-color: #00A5BB !important; }
-
-a.bg-info:focus, a.bg-info:hover {
-  background-color: #007888 !important; }
-
-.bg-warning {
-  background-color: #FFBF00 !important; }
-
-a.bg-warning:focus, a.bg-warning:hover {
-  background-color: #cc9900 !important; }
-
-.bg-danger {
-  background-color: #EF243E !important; }
-
-a.bg-danger:focus, a.bg-danger:hover {
-  background-color: #d10f28 !important; }
-
-.bg-light {
-  background-color: #F8F9FA !important; }
-
-a.bg-light:focus, a.bg-light:hover {
-  background-color: #dae0e5 !important; }
-
-.bg-dark {
-  background-color: #59316B !important; }
-
-a.bg-dark:focus, a.bg-dark:hover {
-  background-color: #3c2148 !important; }
-
-.bg-white {
-  background-color: #fff !important; }
-
-.bg-transparent {
-  background-color: transparent !important; }
-
-.border {
-  border: 1px solid #e9ecef !important; }
-
-.border-0 {
-  border: 0 !important; }
-
-.border-top-0 {
-  border-top: 0 !important; }
-
-.border-right-0 {
-  border-right: 0 !important; }
-
-.border-bottom-0 {
-  border-bottom: 0 !important; }
-
-.border-left-0 {
-  border-left: 0 !important; }
-
-.border-primary {
-  border-color: #7D4698 !important; }
-
-.border-secondary {
-  border-color: #333A41 !important; }
-
-.border-success {
-  border-color: #68B044 !important; }
-
-.border-info {
-  border-color: #00A5BB !important; }
-
-.border-warning {
-  border-color: #FFBF00 !important; }
-
-.border-danger {
-  border-color: #EF243E !important; }
-
-.border-light {
-  border-color: #F8F9FA !important; }
-
-.border-dark {
-  border-color: #59316B !important; }
-
-.border-white {
-  border-color: #fff !important; }
-
-.rounded {
-  border-radius: 0.25rem !important; }
-
-.rounded-top {
-  border-top-left-radius: 0.25rem !important;
-  border-top-right-radius: 0.25rem !important; }
-
-.rounded-right {
-  border-top-right-radius: 0.25rem !important;
-  border-bottom-right-radius: 0.25rem !important; }
-
-.rounded-bottom {
-  border-bottom-right-radius: 0.25rem !important;
-  border-bottom-left-radius: 0.25rem !important; }
-
-.rounded-left {
-  border-top-left-radius: 0.25rem !important;
-  border-bottom-left-radius: 0.25rem !important; }
-
-.rounded-circle {
-  border-radius: 50% !important; }
-
-.rounded-0 {
-  border-radius: 0 !important; }
-
-.clearfix::after {
-  display: block;
-  clear: both;
-  content: ""; }
-
-.d-none {
-  display: none !important; }
-
-.d-inline {
-  display: inline !important; }
-
-.d-inline-block {
-  display: inline-block !important; }
-
-.d-block {
-  display: block !important; }
-
-.d-table {
-  display: table !important; }
-
-.d-table-row {
-  display: table-row !important; }
-
-.d-table-cell {
-  display: table-cell !important; }
-
-.d-flex {
-  display: flex !important; }
-
-.d-inline-flex {
-  display: inline-flex !important; }
-
- at media (min-width: 576px) {
-  .d-sm-none {
-    display: none !important; }
-
-  .d-sm-inline {
-    display: inline !important; }
-
-  .d-sm-inline-block {
-    display: inline-block !important; }
-
-  .d-sm-block {
-    display: block !important; }
-
-  .d-sm-table {
-    display: table !important; }
-
-  .d-sm-table-row {
-    display: table-row !important; }
-
-  .d-sm-table-cell {
-    display: table-cell !important; }
-
-  .d-sm-flex {
-    display: flex !important; }
-
-  .d-sm-inline-flex {
-    display: inline-flex !important; } }
- at media (min-width: 768px) {
-  .d-md-none {
-    display: none !important; }
-
-  .d-md-inline {
-    display: inline !important; }
-
-  .d-md-inline-block {
-    display: inline-block !important; }
-
-  .d-md-block {
-    display: block !important; }
-
-  .d-md-table {
-    display: table !important; }
-
-  .d-md-table-row {
-    display: table-row !important; }
-
-  .d-md-table-cell {
-    display: table-cell !important; }
-
-  .d-md-flex {
-    display: flex !important; }
-
-  .d-md-inline-flex {
-    display: inline-flex !important; } }
- at media (min-width: 992px) {
-  .d-lg-none {
-    display: none !important; }
-
-  .d-lg-inline {
-    display: inline !important; }
-
-  .d-lg-inline-block {
-    display: inline-block !important; }
-
-  .d-lg-block {
-    display: block !important; }
-
-  .d-lg-table {
-    display: table !important; }
-
-  .d-lg-table-row {
-    display: table-row !important; }
-
-  .d-lg-table-cell {
-    display: table-cell !important; }
-
-  .d-lg-flex {
-    display: flex !important; }
-
-  .d-lg-inline-flex {
-    display: inline-flex !important; } }
- at media (min-width: 1200px) {
-  .d-xl-none {
-    display: none !important; }
-
-  .d-xl-inline {
-    display: inline !important; }
-
-  .d-xl-inline-block {
-    display: inline-block !important; }
-
-  .d-xl-block {
-    display: block !important; }
-
-  .d-xl-table {
-    display: table !important; }
-
-  .d-xl-table-row {
-    display: table-row !important; }
-
-  .d-xl-table-cell {
-    display: table-cell !important; }
-
-  .d-xl-flex {
-    display: flex !important; }
-
-  .d-xl-inline-flex {
-    display: inline-flex !important; } }
-.d-print-block {
-  display: none !important; }
-  @media print {
-    .d-print-block {
-      display: block !important; } }
-
-.d-print-inline {
-  display: none !important; }
-  @media print {
-    .d-print-inline {
-      display: inline !important; } }
-
-.d-print-inline-block {
-  display: none !important; }
-  @media print {
-    .d-print-inline-block {
-      display: inline-block !important; } }
-
- at media print {
-  .d-print-none {
-    display: none !important; } }
-
-.embed-responsive {
-  position: relative;
-  display: block;
-  width: 100%;
-  padding: 0;
-  overflow: hidden; }
-  .embed-responsive::before {
-    display: block;
-    content: ""; }
-  .embed-responsive .embed-responsive-item,
-  .embed-responsive iframe,
-  .embed-responsive embed,
-  .embed-responsive object,
-  .embed-responsive video {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    left: 0;
-    width: 100%;
-    height: 100%;
-    border: 0; }
-
-.embed-responsive-21by9::before {
-  padding-top: 42.8571428571%; }
-
-.embed-responsive-16by9::before {
-  padding-top: 56.25%; }
-
-.embed-responsive-4by3::before {
-  padding-top: 75%; }
-
-.embed-responsive-1by1::before {
-  padding-top: 100%; }
-
-.flex-row {
-  flex-direction: row !important; }
-
-.flex-column {
-  flex-direction: column !important; }
-
-.flex-row-reverse {
-  flex-direction: row-reverse !important; }
-
-.flex-column-reverse {
-  flex-direction: column-reverse !important; }
-
-.flex-wrap {
-  flex-wrap: wrap !important; }
-
-.flex-nowrap {
-  flex-wrap: nowrap !important; }
-
-.flex-wrap-reverse {
-  flex-wrap: wrap-reverse !important; }
-
-.justify-content-start {
-  justify-content: flex-start !important; }
-
-.justify-content-end {
-  justify-content: flex-end !important; }
-
-.justify-content-center {
-  justify-content: center !important; }
-
-.justify-content-between {
-  justify-content: space-between !important; }
-
-.justify-content-around {
-  justify-content: space-around !important; }
-
-.align-items-start {
-  align-items: flex-start !important; }
-
-.align-items-end {
-  align-items: flex-end !important; }
-
-.align-items-center {
-  align-items: center !important; }
-
-.align-items-baseline {
-  align-items: baseline !important; }
-
-.align-items-stretch {
-  align-items: stretch !important; }
-
-.align-content-start {
-  align-content: flex-start !important; }
-
-.align-content-end {
-  align-content: flex-end !important; }
-
-.align-content-center {
-  align-content: center !important; }
-
-.align-content-between {
-  align-content: space-between !important; }
-
-.align-content-around {
-  align-content: space-around !important; }
-
-.align-content-stretch {
-  align-content: stretch !important; }
-
-.align-self-auto {
-  align-self: auto !important; }
-
-.align-self-start {
-  align-self: flex-start !important; }
-
-.align-self-end {
-  align-self: flex-end !important; }
-
-.align-self-center {
-  align-self: center !important; }
-
-.align-self-baseline {
-  align-self: baseline !important; }
-
-.align-self-stretch {
-  align-self: stretch !important; }
-
- at media (min-width: 576px) {
-  .flex-sm-row {
-    flex-direction: row !important; }
-
-  .flex-sm-column {
-    flex-direction: column !important; }
-
-  .flex-sm-row-reverse {
-    flex-direction: row-reverse !important; }
-
-  .flex-sm-column-reverse {
-    flex-direction: column-reverse !important; }
-
-  .flex-sm-wrap {
-    flex-wrap: wrap !important; }
-
-  .flex-sm-nowrap {
-    flex-wrap: nowrap !important; }
-
-  .flex-sm-wrap-reverse {
-    flex-wrap: wrap-reverse !important; }
-
-  .justify-content-sm-start {
-    justify-content: flex-start !important; }
-
-  .justify-content-sm-end {
-    justify-content: flex-end !important; }
-
-  .justify-content-sm-center {
-    justify-content: center !important; }
-
-  .justify-content-sm-between {
-    justify-content: space-between !important; }
-
-  .justify-content-sm-around {
-    justify-content: space-around !important; }
-
-  .align-items-sm-start {
-    align-items: flex-start !important; }
-
-  .align-items-sm-end {
-    align-items: flex-end !important; }
-
-  .align-items-sm-center {
-    align-items: center !important; }
-
-  .align-items-sm-baseline {
-    align-items: baseline !important; }
-
-  .align-items-sm-stretch {
-    align-items: stretch !important; }
-
-  .align-content-sm-start {
-    align-content: flex-start !important; }
-
-  .align-content-sm-end {
-    align-content: flex-end !important; }
-
-  .align-content-sm-center {
-    align-content: center !important; }
-
-  .align-content-sm-between {
-    align-content: space-between !important; }
-
-  .align-content-sm-around {
-    align-content: space-around !important; }
-
-  .align-content-sm-stretch {
-    align-content: stretch !important; }
-
-  .align-self-sm-auto {
-    align-self: auto !important; }
-
-  .align-self-sm-start {
-    align-self: flex-start !important; }
-
-  .align-self-sm-end {
-    align-self: flex-end !important; }
-
-  .align-self-sm-center {
-    align-self: center !important; }
-
-  .align-self-sm-baseline {
-    align-self: baseline !important; }
-
-  .align-self-sm-stretch {
-    align-self: stretch !important; } }
- at media (min-width: 768px) {
-  .flex-md-row {
-    flex-direction: row !important; }
-
-  .flex-md-column {
-    flex-direction: column !important; }
-
-  .flex-md-row-reverse {
-    flex-direction: row-reverse !important; }
-
-  .flex-md-column-reverse {
-    flex-direction: column-reverse !important; }
-
-  .flex-md-wrap {
-    flex-wrap: wrap !important; }
-
-  .flex-md-nowrap {
-    flex-wrap: nowrap !important; }
-
-  .flex-md-wrap-reverse {
-    flex-wrap: wrap-reverse !important; }
-
-  .justify-content-md-start {
-    justify-content: flex-start !important; }
-
-  .justify-content-md-end {
-    justify-content: flex-end !important; }
-
-  .justify-content-md-center {
-    justify-content: center !important; }
-
-  .justify-content-md-between {
-    justify-content: space-between !important; }
-
-  .justify-content-md-around {
-    justify-content: space-around !important; }
-
-  .align-items-md-start {
-    align-items: flex-start !important; }
-
-  .align-items-md-end {
-    align-items: flex-end !important; }
-
-  .align-items-md-center {
-    align-items: center !important; }
-
-  .align-items-md-baseline {
-    align-items: baseline !important; }
-
-  .align-items-md-stretch {
-    align-items: stretch !important; }
-
-  .align-content-md-start {
-    align-content: flex-start !important; }
-
-  .align-content-md-end {
-    align-content: flex-end !important; }
-
-  .align-content-md-center {
-    align-content: center !important; }
-
-  .align-content-md-between {
-    align-content: space-between !important; }
-
-  .align-content-md-around {
-    align-content: space-around !important; }
-
-  .align-content-md-stretch {
-    align-content: stretch !important; }
-
-  .align-self-md-auto {
-    align-self: auto !important; }
-
-  .align-self-md-start {
-    align-self: flex-start !important; }
-
-  .align-self-md-end {
-    align-self: flex-end !important; }
-
-  .align-self-md-center {
-    align-self: center !important; }
-
-  .align-self-md-baseline {
-    align-self: baseline !important; }
-
-  .align-self-md-stretch {
-    align-self: stretch !important; } }
- at media (min-width: 992px) {
-  .flex-lg-row {
-    flex-direction: row !important; }
-
-  .flex-lg-column {
-    flex-direction: column !important; }
-
-  .flex-lg-row-reverse {
-    flex-direction: row-reverse !important; }
-
-  .flex-lg-column-reverse {
-    flex-direction: column-reverse !important; }
-
-  .flex-lg-wrap {
-    flex-wrap: wrap !important; }
-
-  .flex-lg-nowrap {
-    flex-wrap: nowrap !important; }
-
-  .flex-lg-wrap-reverse {
-    flex-wrap: wrap-reverse !important; }
-
-  .justify-content-lg-start {
-    justify-content: flex-start !important; }
-
-  .justify-content-lg-end {
-    justify-content: flex-end !important; }
-
-  .justify-content-lg-center {
-    justify-content: center !important; }
-
-  .justify-content-lg-between {
-    justify-content: space-between !important; }
-
-  .justify-content-lg-around {
-    justify-content: space-around !important; }
-
-  .align-items-lg-start {
-    align-items: flex-start !important; }
-
-  .align-items-lg-end {
-    align-items: flex-end !important; }
-
-  .align-items-lg-center {
-    align-items: center !important; }
-
-  .align-items-lg-baseline {
-    align-items: baseline !important; }
-
-  .align-items-lg-stretch {
-    align-items: stretch !important; }
-
-  .align-content-lg-start {
-    align-content: flex-start !important; }
-
-  .align-content-lg-end {
-    align-content: flex-end !important; }
-
-  .align-content-lg-center {
-    align-content: center !important; }
-
-  .align-content-lg-between {
-    align-content: space-between !important; }
-
-  .align-content-lg-around {
-    align-content: space-around !important; }
-
-  .align-content-lg-stretch {
-    align-content: stretch !important; }
-
-  .align-self-lg-auto {
-    align-self: auto !important; }
-
-  .align-self-lg-start {
-    align-self: flex-start !important; }
-
-  .align-self-lg-end {
-    align-self: flex-end !important; }
-
-  .align-self-lg-center {
-    align-self: center !important; }
-
-  .align-self-lg-baseline {
-    align-self: baseline !important; }
-
-  .align-self-lg-stretch {
-    align-self: stretch !important; } }
- at media (min-width: 1200px) {
-  .flex-xl-row {
-    flex-direction: row !important; }
-
-  .flex-xl-column {
-    flex-direction: column !important; }
-
-  .flex-xl-row-reverse {
-    flex-direction: row-reverse !important; }
-
-  .flex-xl-column-reverse {
-    flex-direction: column-reverse !important; }
-
-  .flex-xl-wrap {
-    flex-wrap: wrap !important; }
-
-  .flex-xl-nowrap {
-    flex-wrap: nowrap !important; }
-
-  .flex-xl-wrap-reverse {
-    flex-wrap: wrap-reverse !important; }
-
-  .justify-content-xl-start {
-    justify-content: flex-start !important; }
-
-  .justify-content-xl-end {
-    justify-content: flex-end !important; }
-
-  .justify-content-xl-center {
-    justify-content: center !important; }
-
-  .justify-content-xl-between {
-    justify-content: space-between !important; }
-
-  .justify-content-xl-around {
-    justify-content: space-around !important; }
-
-  .align-items-xl-start {
-    align-items: flex-start !important; }
-
-  .align-items-xl-end {
-    align-items: flex-end !important; }
-
-  .align-items-xl-center {
-    align-items: center !important; }
-
-  .align-items-xl-baseline {
-    align-items: baseline !important; }
-
-  .align-items-xl-stretch {
-    align-items: stretch !important; }
-
-  .align-content-xl-start {
-    align-content: flex-start !important; }
-
-  .align-content-xl-end {
-    align-content: flex-end !important; }
-
-  .align-content-xl-center {
-    align-content: center !important; }
-
-  .align-content-xl-between {
-    align-content: space-between !important; }
-
-  .align-content-xl-around {
-    align-content: space-around !important; }
-
-  .align-content-xl-stretch {
-    align-content: stretch !important; }
-
-  .align-self-xl-auto {
-    align-self: auto !important; }
-
-  .align-self-xl-start {
-    align-self: flex-start !important; }
-
-  .align-self-xl-end {
-    align-self: flex-end !important; }
-
-  .align-self-xl-center {
-    align-self: center !important; }
-
-  .align-self-xl-baseline {
-    align-self: baseline !important; }
-
-  .align-self-xl-stretch {
-    align-self: stretch !important; } }
-.float-left {
-  float: left !important; }
-
-.float-right {
-  float: right !important; }
-
-.float-none {
-  float: none !important; }
-
- at media (min-width: 576px) {
-  .float-sm-left {
-    float: left !important; }
-
-  .float-sm-right {
-    float: right !important; }
-
-  .float-sm-none {
-    float: none !important; } }
- at media (min-width: 768px) {
-  .float-md-left {
-    float: left !important; }
-
-  .float-md-right {
-    float: right !important; }
-
-  .float-md-none {
-    float: none !important; } }
- at media (min-width: 992px) {
-  .float-lg-left {
-    float: left !important; }
-
-  .float-lg-right {
-    float: right !important; }
-
-  .float-lg-none {
-    float: none !important; } }
- at media (min-width: 1200px) {
-  .float-xl-left {
-    float: left !important; }
-
-  .float-xl-right {
-    float: right !important; }
-
-  .float-xl-none {
-    float: none !important; } }
-.position-static {
-  position: static !important; }
-
-.position-relative {
-  position: relative !important; }
-
-.position-absolute {
-  position: absolute !important; }
-
-.position-fixed {
-  position: fixed !important; }
-
-.position-sticky {
-  position: sticky !important; }
-
-.fixed-top {
-  position: fixed;
-  top: 0;
-  right: 0;
-  left: 0;
-  z-index: 1030; }
-
-.fixed-bottom {
-  position: fixed;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: 1030; }
-
- at supports (position: sticky) {
-  .sticky-top {
-    position: sticky;
-    top: 0;
-    z-index: 1020; } }
-
-.sr-only {
-  position: absolute;
-  width: 1px;
-  height: 1px;
-  padding: 0;
-  overflow: hidden;
-  clip: rect(0, 0, 0, 0);
-  white-space: nowrap;
-  clip-path: inset(50%);
-  border: 0; }
-
-.sr-only-focusable:active, .sr-only-focusable:focus {
-  position: static;
-  width: auto;
-  height: auto;
-  overflow: visible;
-  clip: auto;
-  white-space: normal;
-  clip-path: none; }
-
-.w-25 {
-  width: 25% !important; }
-
-.w-50 {
-  width: 50% !important; }
-
-.w-75 {
-  width: 75% !important; }
-
-.w-100 {
-  width: 100% !important; }
-
-.h-25 {
-  height: 25% !important; }
-
-.h-50 {
-  height: 50% !important; }
-
-.h-75 {
-  height: 75% !important; }
-
-.h-100 {
-  height: 100% !important; }
-
-.mw-100 {
-  max-width: 100% !important; }
-
-.mh-100 {
-  max-height: 100% !important; }
-
-.m-0 {
-  margin: 0 !important; }
-
-.mt-0,
-.my-0 {
-  margin-top: 0 !important; }
-
-.mr-0,
-.mx-0 {
-  margin-right: 0 !important; }
-
-.mb-0,
-.my-0 {
-  margin-bottom: 0 !important; }
-
-.ml-0,
-.mx-0 {
-  margin-left: 0 !important; }
-
-.m-1 {
-  margin: 0.25rem !important; }
-
-.mt-1,
-.my-1 {
-  margin-top: 0.25rem !important; }
-
-.mr-1,
-.mx-1 {
-  margin-right: 0.25rem !important; }
-
-.mb-1,
-.my-1 {
-  margin-bottom: 0.25rem !important; }
-
-.ml-1,
-.mx-1 {
-  margin-left: 0.25rem !important; }
-
-.m-2 {
-  margin: 0.5rem !important; }
-
-.mt-2,
-.my-2 {
-  margin-top: 0.5rem !important; }
-
-.mr-2,
-.mx-2 {
-  margin-right: 0.5rem !important; }
-
-.mb-2,
-.my-2 {
-  margin-bottom: 0.5rem !important; }
-
-.ml-2,
-.mx-2 {
-  margin-left: 0.5rem !important; }
-
-.m-3 {
-  margin: 1rem !important; }
-
-.mt-3,
-.my-3 {
-  margin-top: 1rem !important; }
-
-.mr-3,
-.mx-3 {
-  margin-right: 1rem !important; }
-
-.mb-3,
-.my-3 {
-  margin-bottom: 1rem !important; }
-
-.ml-3,
-.mx-3 {
-  margin-left: 1rem !important; }
-
-.m-4 {
-  margin: 1.5rem !important; }
-
-.mt-4,
-.my-4 {
-  margin-top: 1.5rem !important; }
-
-.mr-4,
-.mx-4 {
-  margin-right: 1.5rem !important; }
-
-.mb-4,
-.my-4 {
-  margin-bottom: 1.5rem !important; }
-
-.ml-4,
-.mx-4 {
-  margin-left: 1.5rem !important; }
-
-.m-5 {
-  margin: 3rem !important; }
-
-.mt-5,
-.my-5 {
-  margin-top: 3rem !important; }
-
-.mr-5,
-.mx-5 {
-  margin-right: 3rem !important; }
-
-.mb-5,
-.my-5 {
-  margin-bottom: 3rem !important; }
-
-.ml-5,
-.mx-5 {
-  margin-left: 3rem !important; }
-
-.p-0 {
-  padding: 0 !important; }
-
-.pt-0,
-.py-0 {
-  padding-top: 0 !important; }
-
-.pr-0,
-.px-0 {
-  padding-right: 0 !important; }
-
-.pb-0,
-.py-0 {
-  padding-bottom: 0 !important; }
-
-.pl-0,
-.px-0 {
-  padding-left: 0 !important; }
-
-.p-1 {
-  padding: 0.25rem !important; }
-
-.pt-1,
-.py-1 {
-  padding-top: 0.25rem !important; }
-
-.pr-1,
-.px-1 {
-  padding-right: 0.25rem !important; }
-
-.pb-1,
-.py-1 {
-  padding-bottom: 0.25rem !important; }
-
-.pl-1,
-.px-1 {
-  padding-left: 0.25rem !important; }
-
-.p-2 {
-  padding: 0.5rem !important; }
-
-.pt-2,
-.py-2 {
-  padding-top: 0.5rem !important; }
-
-.pr-2,
-.px-2 {
-  padding-right: 0.5rem !important; }
-
-.pb-2,
-.py-2 {
-  padding-bottom: 0.5rem !important; }
-
-.pl-2,
-.px-2 {
-  padding-left: 0.5rem !important; }
-
-.p-3 {
-  padding: 1rem !important; }
-
-.pt-3,
-.py-3 {
-  padding-top: 1rem !important; }
-
-.pr-3,
-.px-3 {
-  padding-right: 1rem !important; }
-
-.pb-3,
-.py-3 {
-  padding-bottom: 1rem !important; }
-
-.pl-3,
-.px-3 {
-  padding-left: 1rem !important; }
-
-.p-4 {
-  padding: 1.5rem !important; }
-
-.pt-4,
-.py-4 {
-  padding-top: 1.5rem !important; }
-
-.pr-4,
-.px-4 {
-  padding-right: 1.5rem !important; }
-
-.pb-4,
-.py-4 {
-  padding-bottom: 1.5rem !important; }
-
-.pl-4,
-.px-4 {
-  padding-left: 1.5rem !important; }
-
-.p-5 {
-  padding: 3rem !important; }
-
-.pt-5,
-.py-5 {
-  padding-top: 3rem !important; }
-
-.pr-5,
-.px-5 {
-  padding-right: 3rem !important; }
-
-.pb-5,
-.py-5 {
-  padding-bottom: 3rem !important; }
-
-.pl-5,
-.px-5 {
-  padding-left: 3rem !important; }
-
-.m-auto {
-  margin: auto !important; }
-
-.mt-auto,
-.my-auto {
-  margin-top: auto !important; }
-
-.mr-auto,
-.mx-auto {
-  margin-right: auto !important; }
-
-.mb-auto,
-.my-auto {
-  margin-bottom: auto !important; }
-
-.ml-auto,
-.mx-auto {
-  margin-left: auto !important; }
-
- at media (min-width: 576px) {
-  .m-sm-0 {
-    margin: 0 !important; }
-
-  .mt-sm-0,
-  .my-sm-0 {
-    margin-top: 0 !important; }
-
-  .mr-sm-0,
-  .mx-sm-0 {
-    margin-right: 0 !important; }
-
-  .mb-sm-0,
-  .my-sm-0 {
-    margin-bottom: 0 !important; }
-
-  .ml-sm-0,
-  .mx-sm-0 {
-    margin-left: 0 !important; }
-
-  .m-sm-1 {
-    margin: 0.25rem !important; }
-
-  .mt-sm-1,
-  .my-sm-1 {
-    margin-top: 0.25rem !important; }
-
-  .mr-sm-1,
-  .mx-sm-1 {
-    margin-right: 0.25rem !important; }
-
-  .mb-sm-1,
-  .my-sm-1 {
-    margin-bottom: 0.25rem !important; }
-
-  .ml-sm-1,
-  .mx-sm-1 {
-    margin-left: 0.25rem !important; }
-
-  .m-sm-2 {
-    margin: 0.5rem !important; }
-
-  .mt-sm-2,
-  .my-sm-2 {
-    margin-top: 0.5rem !important; }
-
-  .mr-sm-2,
-  .mx-sm-2 {
-    margin-right: 0.5rem !important; }
-
-  .mb-sm-2,
-  .my-sm-2 {
-    margin-bottom: 0.5rem !important; }
-
-  .ml-sm-2,
-  .mx-sm-2 {
-    margin-left: 0.5rem !important; }
-
-  .m-sm-3 {
-    margin: 1rem !important; }
-
-  .mt-sm-3,
-  .my-sm-3 {
-    margin-top: 1rem !important; }
-
-  .mr-sm-3,
-  .mx-sm-3 {
-    margin-right: 1rem !important; }
-
-  .mb-sm-3,
-  .my-sm-3 {
-    margin-bottom: 1rem !important; }
-
-  .ml-sm-3,
-  .mx-sm-3 {
-    margin-left: 1rem !important; }
-
-  .m-sm-4 {
-    margin: 1.5rem !important; }
-
-  .mt-sm-4,
-  .my-sm-4 {
-    margin-top: 1.5rem !important; }
-
-  .mr-sm-4,
-  .mx-sm-4 {
-    margin-right: 1.5rem !important; }
-
-  .mb-sm-4,
-  .my-sm-4 {
-    margin-bottom: 1.5rem !important; }
-
-  .ml-sm-4,
-  .mx-sm-4 {
-    margin-left: 1.5rem !important; }
-
-  .m-sm-5 {
-    margin: 3rem !important; }
-
-  .mt-sm-5,
-  .my-sm-5 {
-    margin-top: 3rem !important; }
-
-  .mr-sm-5,
-  .mx-sm-5 {
-    margin-right: 3rem !important; }
-
-  .mb-sm-5,
-  .my-sm-5 {
-    margin-bottom: 3rem !important; }
-
-  .ml-sm-5,
-  .mx-sm-5 {
-    margin-left: 3rem !important; }
-
-  .p-sm-0 {
-    padding: 0 !important; }
-
-  .pt-sm-0,
-  .py-sm-0 {
-    padding-top: 0 !important; }
-
-  .pr-sm-0,
-  .px-sm-0 {
-    padding-right: 0 !important; }
-
-  .pb-sm-0,
-  .py-sm-0 {
-    padding-bottom: 0 !important; }
-
-  .pl-sm-0,
-  .px-sm-0 {
-    padding-left: 0 !important; }
-
-  .p-sm-1 {
-    padding: 0.25rem !important; }
-
-  .pt-sm-1,
-  .py-sm-1 {
-    padding-top: 0.25rem !important; }
-
-  .pr-sm-1,
-  .px-sm-1 {
-    padding-right: 0.25rem !important; }
-
-  .pb-sm-1,
-  .py-sm-1 {
-    padding-bottom: 0.25rem !important; }
-
-  .pl-sm-1,
-  .px-sm-1 {
-    padding-left: 0.25rem !important; }
-
-  .p-sm-2 {
-    padding: 0.5rem !important; }
-
-  .pt-sm-2,
-  .py-sm-2 {
-    padding-top: 0.5rem !important; }
-
-  .pr-sm-2,
-  .px-sm-2 {
-    padding-right: 0.5rem !important; }
-
-  .pb-sm-2,
-  .py-sm-2 {
-    padding-bottom: 0.5rem !important; }
-
-  .pl-sm-2,
-  .px-sm-2 {
-    padding-left: 0.5rem !important; }
-
-  .p-sm-3 {
-    padding: 1rem !important; }
-
-  .pt-sm-3,
-  .py-sm-3 {
-    padding-top: 1rem !important; }
-
-  .pr-sm-3,
-  .px-sm-3 {
-    padding-right: 1rem !important; }
-
-  .pb-sm-3,
-  .py-sm-3 {
-    padding-bottom: 1rem !important; }
-
-  .pl-sm-3,
-  .px-sm-3 {
-    padding-left: 1rem !important; }
-
-  .p-sm-4 {
-    padding: 1.5rem !important; }
-
-  .pt-sm-4,
-  .py-sm-4 {
-    padding-top: 1.5rem !important; }
-
-  .pr-sm-4,
-  .px-sm-4 {
-    padding-right: 1.5rem !important; }
-
-  .pb-sm-4,
-  .py-sm-4 {
-    padding-bottom: 1.5rem !important; }
-
-  .pl-sm-4,
-  .px-sm-4 {
-    padding-left: 1.5rem !important; }
-
-  .p-sm-5 {
-    padding: 3rem !important; }
-
-  .pt-sm-5,
-  .py-sm-5 {
-    padding-top: 3rem !important; }
-
-  .pr-sm-5,
-  .px-sm-5 {
-    padding-right: 3rem !important; }
-
-  .pb-sm-5,
-  .py-sm-5 {
-    padding-bottom: 3rem !important; }
-
-  .pl-sm-5,
-  .px-sm-5 {
-    padding-left: 3rem !important; }
-
-  .m-sm-auto {
-    margin: auto !important; }
-
-  .mt-sm-auto,
-  .my-sm-auto {
-    margin-top: auto !important; }
-
-  .mr-sm-auto,
-  .mx-sm-auto {
-    margin-right: auto !important; }
-
-  .mb-sm-auto,
-  .my-sm-auto {
-    margin-bottom: auto !important; }
-
-  .ml-sm-auto,
-  .mx-sm-auto {
-    margin-left: auto !important; } }
- at media (min-width: 768px) {
-  .m-md-0 {
-    margin: 0 !important; }
-
-  .mt-md-0,
-  .my-md-0 {
-    margin-top: 0 !important; }
-
-  .mr-md-0,
-  .mx-md-0 {
-    margin-right: 0 !important; }
-
-  .mb-md-0,
-  .my-md-0 {
-    margin-bottom: 0 !important; }
-
-  .ml-md-0,
-  .mx-md-0 {
-    margin-left: 0 !important; }
-
-  .m-md-1 {
-    margin: 0.25rem !important; }
-
-  .mt-md-1,
-  .my-md-1 {
-    margin-top: 0.25rem !important; }
-
-  .mr-md-1,
-  .mx-md-1 {
-    margin-right: 0.25rem !important; }
-
-  .mb-md-1,
-  .my-md-1 {
-    margin-bottom: 0.25rem !important; }
-
-  .ml-md-1,
-  .mx-md-1 {
-    margin-left: 0.25rem !important; }
-
-  .m-md-2 {
-    margin: 0.5rem !important; }
-
-  .mt-md-2,
-  .my-md-2 {
-    margin-top: 0.5rem !important; }
-
-  .mr-md-2,
-  .mx-md-2 {
-    margin-right: 0.5rem !important; }
-
-  .mb-md-2,
-  .my-md-2 {
-    margin-bottom: 0.5rem !important; }
-
-  .ml-md-2,
-  .mx-md-2 {
-    margin-left: 0.5rem !important; }
-
-  .m-md-3 {
-    margin: 1rem !important; }
-
-  .mt-md-3,
-  .my-md-3 {
-    margin-top: 1rem !important; }
-
-  .mr-md-3,
-  .mx-md-3 {
-    margin-right: 1rem !important; }
-
-  .mb-md-3,
-  .my-md-3 {
-    margin-bottom: 1rem !important; }
-
-  .ml-md-3,
-  .mx-md-3 {
-    margin-left: 1rem !important; }
-
-  .m-md-4 {
-    margin: 1.5rem !important; }
-
-  .mt-md-4,
-  .my-md-4 {
-    margin-top: 1.5rem !important; }
-
-  .mr-md-4,
-  .mx-md-4 {
-    margin-right: 1.5rem !important; }
-
-  .mb-md-4,
-  .my-md-4 {
-    margin-bottom: 1.5rem !important; }
-
-  .ml-md-4,
-  .mx-md-4 {
-    margin-left: 1.5rem !important; }
-
-  .m-md-5 {
-    margin: 3rem !important; }
-
-  .mt-md-5,
-  .my-md-5 {
-    margin-top: 3rem !important; }
-
-  .mr-md-5,
-  .mx-md-5 {
-    margin-right: 3rem !important; }
-
-  .mb-md-5,
-  .my-md-5 {
-    margin-bottom: 3rem !important; }
-
-  .ml-md-5,
-  .mx-md-5 {
-    margin-left: 3rem !important; }
-
-  .p-md-0 {
-    padding: 0 !important; }
-
-  .pt-md-0,
-  .py-md-0 {
-    padding-top: 0 !important; }
-
-  .pr-md-0,
-  .px-md-0 {
-    padding-right: 0 !important; }
-
-  .pb-md-0,
-  .py-md-0 {
-    padding-bottom: 0 !important; }
-
-  .pl-md-0,
-  .px-md-0 {
-    padding-left: 0 !important; }
-
-  .p-md-1 {
-    padding: 0.25rem !important; }
-
-  .pt-md-1,
-  .py-md-1 {
-    padding-top: 0.25rem !important; }
-
-  .pr-md-1,
-  .px-md-1 {
-    padding-right: 0.25rem !important; }
-
-  .pb-md-1,
-  .py-md-1 {
-    padding-bottom: 0.25rem !important; }
-
-  .pl-md-1,
-  .px-md-1 {
-    padding-left: 0.25rem !important; }
-
-  .p-md-2 {
-    padding: 0.5rem !important; }
-
-  .pt-md-2,
-  .py-md-2 {
-    padding-top: 0.5rem !important; }
-
-  .pr-md-2,
-  .px-md-2 {
-    padding-right: 0.5rem !important; }
-
-  .pb-md-2,
-  .py-md-2 {
-    padding-bottom: 0.5rem !important; }
-
-  .pl-md-2,
-  .px-md-2 {
-    padding-left: 0.5rem !important; }
-
-  .p-md-3 {
-    padding: 1rem !important; }
-
-  .pt-md-3,
-  .py-md-3 {
-    padding-top: 1rem !important; }
-
-  .pr-md-3,
-  .px-md-3 {
-    padding-right: 1rem !important; }
-
-  .pb-md-3,
-  .py-md-3 {
-    padding-bottom: 1rem !important; }
-
-  .pl-md-3,
-  .px-md-3 {
-    padding-left: 1rem !important; }
-
-  .p-md-4 {
-    padding: 1.5rem !important; }
-
-  .pt-md-4,
-  .py-md-4 {
-    padding-top: 1.5rem !important; }
-
-  .pr-md-4,
-  .px-md-4 {
-    padding-right: 1.5rem !important; }
-
-  .pb-md-4,
-  .py-md-4 {
-    padding-bottom: 1.5rem !important; }
-
-  .pl-md-4,
-  .px-md-4 {
-    padding-left: 1.5rem !important; }
-
-  .p-md-5 {
-    padding: 3rem !important; }
-
-  .pt-md-5,
-  .py-md-5 {
-    padding-top: 3rem !important; }
-
-  .pr-md-5,
-  .px-md-5 {
-    padding-right: 3rem !important; }
-
-  .pb-md-5,
-  .py-md-5 {
-    padding-bottom: 3rem !important; }
-
-  .pl-md-5,
-  .px-md-5 {
-    padding-left: 3rem !important; }
-
-  .m-md-auto {
-    margin: auto !important; }
-
-  .mt-md-auto,
-  .my-md-auto {
-    margin-top: auto !important; }
-
-  .mr-md-auto,
-  .mx-md-auto {
-    margin-right: auto !important; }
-
-  .mb-md-auto,
-  .my-md-auto {
-    margin-bottom: auto !important; }
-
-  .ml-md-auto,
-  .mx-md-auto {
-    margin-left: auto !important; } }
- at media (min-width: 992px) {
-  .m-lg-0 {
-    margin: 0 !important; }
-
-  .mt-lg-0,
-  .my-lg-0 {
-    margin-top: 0 !important; }
-
-  .mr-lg-0,
-  .mx-lg-0 {
-    margin-right: 0 !important; }
-
-  .mb-lg-0,
-  .my-lg-0 {
-    margin-bottom: 0 !important; }
-
-  .ml-lg-0,
-  .mx-lg-0 {
-    margin-left: 0 !important; }
-
-  .m-lg-1 {
-    margin: 0.25rem !important; }
-
-  .mt-lg-1,
-  .my-lg-1 {
-    margin-top: 0.25rem !important; }
-
-  .mr-lg-1,
-  .mx-lg-1 {
-    margin-right: 0.25rem !important; }
-
-  .mb-lg-1,
-  .my-lg-1 {
-    margin-bottom: 0.25rem !important; }
-
-  .ml-lg-1,
-  .mx-lg-1 {
-    margin-left: 0.25rem !important; }
-
-  .m-lg-2 {
-    margin: 0.5rem !important; }
-
-  .mt-lg-2,
-  .my-lg-2 {
-    margin-top: 0.5rem !important; }
-
-  .mr-lg-2,
-  .mx-lg-2 {
-    margin-right: 0.5rem !important; }
-
-  .mb-lg-2,
-  .my-lg-2 {
-    margin-bottom: 0.5rem !important; }
-
-  .ml-lg-2,
-  .mx-lg-2 {
-    margin-left: 0.5rem !important; }
-
-  .m-lg-3 {
-    margin: 1rem !important; }
-
-  .mt-lg-3,
-  .my-lg-3 {
-    margin-top: 1rem !important; }
-
-  .mr-lg-3,
-  .mx-lg-3 {
-    margin-right: 1rem !important; }
-
-  .mb-lg-3,
-  .my-lg-3 {
-    margin-bottom: 1rem !important; }
-
-  .ml-lg-3,
-  .mx-lg-3 {
-    margin-left: 1rem !important; }
-
-  .m-lg-4 {
-    margin: 1.5rem !important; }
-
-  .mt-lg-4,
-  .my-lg-4 {
-    margin-top: 1.5rem !important; }
-
-  .mr-lg-4,
-  .mx-lg-4 {
-    margin-right: 1.5rem !important; }
-
-  .mb-lg-4,
-  .my-lg-4 {
-    margin-bottom: 1.5rem !important; }
-
-  .ml-lg-4,
-  .mx-lg-4 {
-    margin-left: 1.5rem !important; }
-
-  .m-lg-5 {
-    margin: 3rem !important; }
-
-  .mt-lg-5,
-  .my-lg-5 {
-    margin-top: 3rem !important; }
-
-  .mr-lg-5,
-  .mx-lg-5 {
-    margin-right: 3rem !important; }
-
-  .mb-lg-5,
-  .my-lg-5 {
-    margin-bottom: 3rem !important; }
-
-  .ml-lg-5,
-  .mx-lg-5 {
-    margin-left: 3rem !important; }
-
-  .p-lg-0 {
-    padding: 0 !important; }
-
-  .pt-lg-0,
-  .py-lg-0 {
-    padding-top: 0 !important; }
-
-  .pr-lg-0,
-  .px-lg-0 {
-    padding-right: 0 !important; }
-
-  .pb-lg-0,
-  .py-lg-0 {
-    padding-bottom: 0 !important; }
-
-  .pl-lg-0,
-  .px-lg-0 {
-    padding-left: 0 !important; }
-
-  .p-lg-1 {
-    padding: 0.25rem !important; }
-
-  .pt-lg-1,
-  .py-lg-1 {
-    padding-top: 0.25rem !important; }
-
-  .pr-lg-1,
-  .px-lg-1 {
-    padding-right: 0.25rem !important; }
-
-  .pb-lg-1,
-  .py-lg-1 {
-    padding-bottom: 0.25rem !important; }
-
-  .pl-lg-1,
-  .px-lg-1 {
-    padding-left: 0.25rem !important; }
-
-  .p-lg-2 {
-    padding: 0.5rem !important; }
-
-  .pt-lg-2,
-  .py-lg-2 {
-    padding-top: 0.5rem !important; }
-
-  .pr-lg-2,
-  .px-lg-2 {
-    padding-right: 0.5rem !important; }
-
-  .pb-lg-2,
-  .py-lg-2 {
-    padding-bottom: 0.5rem !important; }
-
-  .pl-lg-2,
-  .px-lg-2 {
-    padding-left: 0.5rem !important; }
-
-  .p-lg-3 {
-    padding: 1rem !important; }
-
-  .pt-lg-3,
-  .py-lg-3 {
-    padding-top: 1rem !important; }
-
-  .pr-lg-3,
-  .px-lg-3 {
-    padding-right: 1rem !important; }
-
-  .pb-lg-3,
-  .py-lg-3 {
-    padding-bottom: 1rem !important; }
-
-  .pl-lg-3,
-  .px-lg-3 {
-    padding-left: 1rem !important; }
-
-  .p-lg-4 {
-    padding: 1.5rem !important; }
-
-  .pt-lg-4,
-  .py-lg-4 {
-    padding-top: 1.5rem !important; }
-
-  .pr-lg-4,
-  .px-lg-4 {
-    padding-right: 1.5rem !important; }
-
-  .pb-lg-4,
-  .py-lg-4 {
-    padding-bottom: 1.5rem !important; }
-
-  .pl-lg-4,
-  .px-lg-4 {
-    padding-left: 1.5rem !important; }
-
-  .p-lg-5 {
-    padding: 3rem !important; }
-
-  .pt-lg-5,
-  .py-lg-5 {
-    padding-top: 3rem !important; }
-
-  .pr-lg-5,
-  .px-lg-5 {
-    padding-right: 3rem !important; }
-
-  .pb-lg-5,
-  .py-lg-5 {
-    padding-bottom: 3rem !important; }
-
-  .pl-lg-5,
-  .px-lg-5 {
-    padding-left: 3rem !important; }
-
-  .m-lg-auto {
-    margin: auto !important; }
-
-  .mt-lg-auto,
-  .my-lg-auto {
-    margin-top: auto !important; }
-
-  .mr-lg-auto,
-  .mx-lg-auto {
-    margin-right: auto !important; }
-
-  .mb-lg-auto,
-  .my-lg-auto {
-    margin-bottom: auto !important; }
-
-  .ml-lg-auto,
-  .mx-lg-auto {
-    margin-left: auto !important; } }
- at media (min-width: 1200px) {
-  .m-xl-0 {
-    margin: 0 !important; }
-
-  .mt-xl-0,
-  .my-xl-0 {
-    margin-top: 0 !important; }
-
-  .mr-xl-0,
-  .mx-xl-0 {
-    margin-right: 0 !important; }
-
-  .mb-xl-0,
-  .my-xl-0 {
-    margin-bottom: 0 !important; }
-
-  .ml-xl-0,
-  .mx-xl-0 {
-    margin-left: 0 !important; }
-
-  .m-xl-1 {
-    margin: 0.25rem !important; }
-
-  .mt-xl-1,
-  .my-xl-1 {
-    margin-top: 0.25rem !important; }
-
-  .mr-xl-1,
-  .mx-xl-1 {
-    margin-right: 0.25rem !important; }
-
-  .mb-xl-1,
-  .my-xl-1 {
-    margin-bottom: 0.25rem !important; }
-
-  .ml-xl-1,
-  .mx-xl-1 {
-    margin-left: 0.25rem !important; }
-
-  .m-xl-2 {
-    margin: 0.5rem !important; }
-
-  .mt-xl-2,
-  .my-xl-2 {
-    margin-top: 0.5rem !important; }
-
-  .mr-xl-2,
-  .mx-xl-2 {
-    margin-right: 0.5rem !important; }
-
-  .mb-xl-2,
-  .my-xl-2 {
-    margin-bottom: 0.5rem !important; }
-
-  .ml-xl-2,
-  .mx-xl-2 {
-    margin-left: 0.5rem !important; }
-
-  .m-xl-3 {
-    margin: 1rem !important; }
-
-  .mt-xl-3,
-  .my-xl-3 {
-    margin-top: 1rem !important; }
-
-  .mr-xl-3,
-  .mx-xl-3 {
-    margin-right: 1rem !important; }
-
-  .mb-xl-3,
-  .my-xl-3 {
-    margin-bottom: 1rem !important; }
-
-  .ml-xl-3,
-  .mx-xl-3 {
-    margin-left: 1rem !important; }
-
-  .m-xl-4 {
-    margin: 1.5rem !important; }
-
-  .mt-xl-4,
-  .my-xl-4 {
-    margin-top: 1.5rem !important; }
-
-  .mr-xl-4,
-  .mx-xl-4 {
-    margin-right: 1.5rem !important; }
-
-  .mb-xl-4,
-  .my-xl-4 {
-    margin-bottom: 1.5rem !important; }
-
-  .ml-xl-4,
-  .mx-xl-4 {
-    margin-left: 1.5rem !important; }
-
-  .m-xl-5 {
-    margin: 3rem !important; }
-
-  .mt-xl-5,
-  .my-xl-5 {
-    margin-top: 3rem !important; }
-
-  .mr-xl-5,
-  .mx-xl-5 {
-    margin-right: 3rem !important; }
-
-  .mb-xl-5,
-  .my-xl-5 {
-    margin-bottom: 3rem !important; }
-
-  .ml-xl-5,
-  .mx-xl-5 {
-    margin-left: 3rem !important; }
-
-  .p-xl-0 {
-    padding: 0 !important; }
-
-  .pt-xl-0,
-  .py-xl-0 {
-    padding-top: 0 !important; }
-
-  .pr-xl-0,
-  .px-xl-0 {
-    padding-right: 0 !important; }
-
-  .pb-xl-0,
-  .py-xl-0 {
-    padding-bottom: 0 !important; }
-
-  .pl-xl-0,
-  .px-xl-0 {
-    padding-left: 0 !important; }
-
-  .p-xl-1 {
-    padding: 0.25rem !important; }
-
-  .pt-xl-1,
-  .py-xl-1 {
-    padding-top: 0.25rem !important; }
-
-  .pr-xl-1,
-  .px-xl-1 {
-    padding-right: 0.25rem !important; }
-
-  .pb-xl-1,
-  .py-xl-1 {
-    padding-bottom: 0.25rem !important; }
-
-  .pl-xl-1,
-  .px-xl-1 {
-    padding-left: 0.25rem !important; }
-
-  .p-xl-2 {
-    padding: 0.5rem !important; }
-
-  .pt-xl-2,
-  .py-xl-2 {
-    padding-top: 0.5rem !important; }
-
-  .pr-xl-2,
-  .px-xl-2 {
-    padding-right: 0.5rem !important; }
-
-  .pb-xl-2,
-  .py-xl-2 {
-    padding-bottom: 0.5rem !important; }
-
-  .pl-xl-2,
-  .px-xl-2 {
-    padding-left: 0.5rem !important; }
-
-  .p-xl-3 {
-    padding: 1rem !important; }
-
-  .pt-xl-3,
-  .py-xl-3 {
-    padding-top: 1rem !important; }
-
-  .pr-xl-3,
-  .px-xl-3 {
-    padding-right: 1rem !important; }
-
-  .pb-xl-3,
-  .py-xl-3 {
-    padding-bottom: 1rem !important; }
-
-  .pl-xl-3,
-  .px-xl-3 {
-    padding-left: 1rem !important; }
-
-  .p-xl-4 {
-    padding: 1.5rem !important; }
-
-  .pt-xl-4,
-  .py-xl-4 {
-    padding-top: 1.5rem !important; }
-
-  .pr-xl-4,
-  .px-xl-4 {
-    padding-right: 1.5rem !important; }
-
-  .pb-xl-4,
-  .py-xl-4 {
-    padding-bottom: 1.5rem !important; }
-
-  .pl-xl-4,
-  .px-xl-4 {
-    padding-left: 1.5rem !important; }
-
-  .p-xl-5 {
-    padding: 3rem !important; }
-
-  .pt-xl-5,
-  .py-xl-5 {
-    padding-top: 3rem !important; }
-
-  .pr-xl-5,
-  .px-xl-5 {
-    padding-right: 3rem !important; }
-
-  .pb-xl-5,
-  .py-xl-5 {
-    padding-bottom: 3rem !important; }
-
-  .pl-xl-5,
-  .px-xl-5 {
-    padding-left: 3rem !important; }
-
-  .m-xl-auto {
-    margin: auto !important; }
-
-  .mt-xl-auto,
-  .my-xl-auto {
-    margin-top: auto !important; }
-
-  .mr-xl-auto,
-  .mx-xl-auto {
-    margin-right: auto !important; }
-
-  .mb-xl-auto,
-  .my-xl-auto {
-    margin-bottom: auto !important; }
-
-  .ml-xl-auto,
-  .mx-xl-auto {
-    margin-left: auto !important; } }
-.text-justify {
-  text-align: justify !important; }
-
-.text-nowrap {
-  white-space: nowrap !important; }
-
-.text-truncate {
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap; }
-
-.text-left {
-  text-align: left !important; }
-
-.text-right {
-  text-align: right !important; }
-
-.text-center {
-  text-align: center !important; }
-
- at media (min-width: 576px) {
-  .text-sm-left {
-    text-align: left !important; }
-
-  .text-sm-right {
-    text-align: right !important; }
-
-  .text-sm-center {
-    text-align: center !important; } }
- at media (min-width: 768px) {
-  .text-md-left {
-    text-align: left !important; }
-
-  .text-md-right {
-    text-align: right !important; }
-
-  .text-md-center {
-    text-align: center !important; } }
- at media (min-width: 992px) {
-  .text-lg-left {
-    text-align: left !important; }
-
-  .text-lg-right {
-    text-align: right !important; }
-
-  .text-lg-center {
-    text-align: center !important; } }
- at media (min-width: 1200px) {
-  .text-xl-left {
-    text-align: left !important; }
-
-  .text-xl-right {
-    text-align: right !important; }
-
-  .text-xl-center {
-    text-align: center !important; } }
-.text-lowercase {
-  text-transform: lowercase !important; }
-
-.text-uppercase {
-  text-transform: uppercase !important; }
-
-.text-capitalize {
-  text-transform: capitalize !important; }
-
-.font-weight-light {
-  font-weight: 300 !important; }
-
-.font-weight-normal {
-  font-weight: 400 !important; }
-
-.font-weight-bold {
-  font-weight: 700 !important; }
-
-.font-italic {
-  font-style: italic !important; }
-
-.text-white {
-  color: #fff !important; }
-
-.text-primary {
-  color: #7D4698 !important; }
-
-a.text-primary:focus, a.text-primary:hover {
-  color: #603675 !important; }
-
-.text-secondary {
-  color: #333A41 !important; }
-
-a.text-secondary:focus, a.text-secondary:hover {
-  color: #1d2124 !important; }
-
-.text-success {
-  color: #68B044 !important; }
-
-a.text-success:focus, a.text-success:hover {
-  color: #528b36 !important; }
-
-.text-info {
-  color: #00A5BB !important; }
-
-a.text-info:focus, a.text-info:hover {
-  color: #007888 !important; }
-
-.text-warning {
-  color: #FFBF00 !important; }
-
-a.text-warning:focus, a.text-warning:hover {
-  color: #cc9900 !important; }
-
-.text-danger {
-  color: #EF243E !important; }
-
-a.text-danger:focus, a.text-danger:hover {
-  color: #d10f28 !important; }
-
-.text-light {
-  color: #F8F9FA !important; }
-
-a.text-light:focus, a.text-light:hover {
-  color: #dae0e5 !important; }
-
-.text-dark {
-  color: #59316B !important; }
-
-a.text-dark:focus, a.text-dark:hover {
-  color: #3c2148 !important; }
-
-.text-muted {
-  color: #848E97 !important; }
-
-.text-hide {
-  font: 0/0 a;
-  color: transparent;
-  text-shadow: none;
-  background-color: transparent;
-  border: 0; }
-
-.visible {
-  visibility: visible !important; }
-
-.invisible {
-  visibility: hidden !important; }
-
-/*
- * Base structure
- */
-/* Move down content because we have a fixed navbar that is 4.5rem tall */
-.page {
-  padding-top: 4.5rem; }
-
-/* Reset */
-.no-border {
-  border: none; }
-
-.no-background {
-  background-image: none !important; }
-
-.content-scroll {
-  position: relative; }
-
-/*
- * Typography
- */
- at font-face {
-  font-family: Source Sans Pro;
-  src: url("fonts/SourceSansPro/SourceSansPro-Regular.ttf"); }
- at font-face {
-  font-family: Source Sans Pro Light;
-  src: url("fonts/SourceSansPro/SourceSansPro-Light.ttf"); }
- at font-face {
-  font-family: Source Sans Pro Bold;
-  src: url("fonts/SourceSansPro/SourceSansPro-Bold.ttf"); }
- at font-face {
-  font-family: Source Serif Pro;
-  src: url("fonts/SourceSerifPro/SourceSerifPro-Regular.ttf"); }
- at font-face {
-  font-family: Source Code Pro;
-  src: url("fonts/SourceCodePro/SourceCodePro-Regular.ttf"); }
- at font-face {
-  font-family: Tor Icons;
-  src: url("fonts/TorIcons/tor-icons.eot?#iefix") format("embedded-opentype"), url("fonts/TorIcons/tor-icons.woff2") format("woff2"), url("fonsts/TorIcons/tor-icons.woff") format("woff"), url("fonts/TorIcons/tor-icons.ttf") format("truetype"), url("fonts/TorIcons/tor-icons.svg?#tor-icons") format("svg"); }
-.font-family-serif {
-  font-family: "Source Serif Pro", -apple-system, "Georgia", serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !important; }
-
-.font-weight-light {
-  font-family: Source Sans Pro Light; }
-
-.font-weight-bold {
-  font-family: Source Sans Pro Bold; }
-
-h5 {
-  text-transform: uppercase;
-  font-weight: bold;
-  color: #7D4698; }
-
-h6 {
-  text-transform: uppercase;
-  font-weight: bold;
-  color: #7D4698; }
-
-p {
-  font-size: 1.3rem;
-  color: #212529;
-  line-height: 2rem; }
-
-mark, .mark {
-  color: #7D4698; }
-
-/** Icons **/
-.ti:before {
-  font-family: Tor Icons !important;
-  font-style: normal;
-  font-weight: normal !important;
-  vertical-align: top; }
-
-.ti-authority:before {
-  content: "\f101"; }
-
-.ti-badexit:before {
-  content: "\f102"; }
-
-.ti-bridge:before {
-  content: "\f103"; }
-
-.ti-country:before {
-  content: "\f104"; }
-
-.ti-directory:before {
-  content: "\f105"; }
-
-.ti-exit:before {
-  content: "\f106"; }
-
-.ti-fallbackdir:before {
-  content: "\f107"; }
-
-.ti-fast:before {
-  content: "\f108"; }
-
-.ti-fingerprint:before {
-  content: "\f109"; }
-
-.ti-guard:before {
-  content: "\f10a"; }
-
-.ti-hibernating:before {
-  content: "\f10b"; }
-
-.ti-hsdir:before {
-  content: "\f10c"; }
-
-.ti-ipv4:before {
-  content: "\f10d"; }
-
-.ti-ipv6:before {
-  content: "\f10e"; }
-
-.ti-ipv6exit:before {
-  content: "\f10f"; }
-
-.ti-noedconsensus:before {
-  content: "\f110"; }
-
-.ti-notrecommended:before {
-  content: "\f111"; }
-
-.ti-onion-alt:before {
-  content: "\f112"; }
-
-.ti-onion:before {
-  content: "\f113"; }
-
-.ti-reachableipv4:before {
-  content: "\f114"; }
-
-.ti-reachableipv6:before {
-  content: "\f115"; }
-
-.ti-relay:before {
-  content: "\f116"; }
-
-.ti-running:before {
-  content: "\f117"; }
-
-.ti-stable:before {
-  content: "\f118"; }
-
-.ti-tshirt:before {
-  content: "\f119"; }
-
-.ti-unmeasured:before {
-  content: "\f11a"; }
-
-.ti-unreachableipv4:before {
-  content: "\f11b"; }
-
-.ti-unreachableipv6:before {
-  content: "\f11c"; }
-
-.ti-v2dir:before {
-  content: "\f11d"; }
-
-.ti-valid:before {
-  content: "\f11e"; }
-
-.bd-sidebar {
-  border: 0 !important; }
-
-.bd-toc {
-  order: 0 !important; }
-
-#components-nav .nav-pills .nav-link,
-#visuals-nav .nav-pills .nav-link {
-  border-radius: 0; }
-
-#components-nav .nav-pills .nav-link.active,
-#visuals-nav .nav-pills .nav-link.active {
-  background-color: #fff;
-  color: #7D4698;
-  border-left: 2px solid #7D4698;
-  font-weight: bold; }
-
-.jumbotron {
-  margin-top: -50px; }
-
-/*
- * Nav
- */
-.navbar {
-  background-image: url("./images/onion-bg.svg");
-  background-repeat: no-repeat;
-  background-position: 10px 12px; }
-
-.navbar-brand {
-  /*padding-left: 80px;*/ }
-  .navbar-brand span {
-    font-size: 0.6em;
-    display: flex; }
-
-/*
- * Sidebar
- */
-.sidetopics {
-  z-index: 1000;
-  padding: 20px 0;
-  border-right: 1px solid #eee; }
-
-.sidetopics .nav {
-  margin-bottom: 20px; }
-
-.sidetopics .nav-item {
-  width: 100%; }
-
-.sidetopics .nav-item + .nav-item {
-  margin-left: 0; }
-
-.sidetopics .nav-link {
-  border-radius: 0; }
-
-.toc-h4 {
-  padding-left: 0.8em;
-  font-size: 0.9em; }
-
-/*
- * Dashboard
- */
-/* Placeholders */
-.placeholders {
-  padding-bottom: 3rem; }
-
-.placeholder img {
-  padding-top: 1.5rem;
-  padding-bottom: 1.5rem; }
-
-/*
- * Forms
- */
-.form-wide {
-  width: 100% !important; }
-  .form-wide input {
-    padding: 20px !important; }
-
-.badge {
-  text-transform: uppercase; }
-
-.breadcrumb {
-  background-color: #fff; }
-
-.table-striped td {
-  border: 0 !important; }
-
-.bd-callout {
-  padding: 1.25rem;
-  margin-top: 1.25rem;
-  margin-bottom: 1.25rem;
-  border: 1px solid #eee;
-  border-left-width: .25rem;
-  border-radius: .25rem; }
-
-.bd-callout h4 {
-  margin-top: 0;
-  margin-bottom: .25rem; }
-
-.bd-callout p:last-child {
-  margin-bottom: 0; }
-
-.bd-callout code {
-  border-radius: .25rem; }
-
-.bd-callout + .bd-callout {
-  margin-top: -.25rem; }
-
-pre {
-  padding: 0.5rem;
-  margin-top: 1rem;
-  color: lightgreen;
-  background: black; }
-
-.bd-callout-info {
-  border-left-color: #5bc0de; }
-  .bd-callout-info h4 {
-    color: #5bc0de; }
-
-.bd-callout-warning {
-  border-left-color: #f0ad4e; }
-  .bd-callout-warning h4 {
-    color: #f0ad4e; }
-
-.bd-callout-danger {
-  border-left-color: #d9534f; }
-  .bd-callout-danger h4 {
-    color: #d9534f; }
-
-.bd-sidebar .nav > li > a {
-  font-size: 100%;
-  color: rgba(0, 0, 0, 0.85); }
-
-.bd-sidebar .nav > li > a:hover {
-  color: #7D4698 !important;
-  text-decoration: none; }
-
-#bd-docs-nav {
-  padding-top: 2rem; }
-
-.anchor-spacer:before {
-  content: '';
-  display: block;
-  position: relative;
-  width: 0;
-  height: 6em;
-  margin-top: -6em; }
-
-.hll {
-  background-color: #ffc; }
-
-.c {
-  color: #999; }
-
-.k {
-  color: #069; }
-
-.o {
-  color: #555; }
-
-.cm {
-  color: #999; }
-
-.cp {
-  color: #099; }
-
-.c1 {
-  color: #999; }
-
-.cs {
-  color: #999; }
-
-.gd {
-  background-color: #fcc;
-  border: 1px solid #c00; }
-
-.ge {
-  font-style: italic; }
-
-.gr {
-  color: #f00; }
-
-.gh {
-  color: #030; }
-
-.gi {
-  background-color: #cfc;
-  border: 1px solid #0c0; }
-
-.go {
-  color: #aaa; }
-
-.gp {
-  color: #009; }
-
-.gu {
-  color: #030; }
-
-.gt {
-  color: #9c6; }
-
-.kc {
-  color: #069; }
-
-.kd {
-  color: #069; }
-
-.kn {
-  color: #069; }
-
-.kp {
-  color: #069; }
-
-.kr {
-  color: #069; }
-
-.kt {
-  color: #078; }
-
-.m {
-  color: #f60; }
-
-.s {
-  color: #d44950; }
-
-.na {
-  color: #4f9fcf; }
-
-.nb {
-  color: #366; }
-
-.nc {
-  color: #0a8; }
-
-.no {
-  color: #360; }
-
-.nd {
-  color: #99f; }
-
-.ni {
-  color: #999; }
-
-.ne {
-  color: #c00; }
-
-.nf {
-  color: #c0f; }
-
-.nl {
-  color: #99f; }
-
-.nn {
-  color: #0cf; }
-
-.nt {
-  color: #2f6f9f; }
-
-.nv {
-  color: #033; }
-
-.ow {
-  color: #000; }
-
-.w {
-  color: #bbb; }
-
-.mf {
-  color: #f60; }
-
-.mh {
-  color: #f60; }
-
-.mi {
-  color: #f60; }
-
-.mo {
-  color: #f60; }
-
-.sb {
-  color: #c30; }
-
-.sc {
-  color: #c30; }
-
-.sd {
-  font-style: italic;
-  color: #c30; }
-
-.s2 {
-  color: #c30; }
-
-.se {
-  color: #c30; }
-
-.sh {
-  color: #c30; }
-
-.si {
-  color: #a00; }
-
-.sx {
-  color: #c30; }
-
-.sr {
-  color: #3aa; }
-
-.s1 {
-  color: #c30; }
-
-.ss {
-  color: #fc3; }
-
-.bp {
-  color: #366; }
-
-.vc {
-  color: #033; }
-
-.vg {
-  color: #033; }
-
-.vi {
-  color: #033; }
-
-.il {
-  color: #f60; }
-
-.css .o,
-.css .o + .nt,
-.css .nt + .nt {
-  color: #999; }
-
-.language-bash::before,
-.language-sh::before {
-  color: #009;
-  content: "$ ";
-  user-select: none; }
-
-.language-powershell::before {
-  color: #009;
-  content: "PM> ";
-  user-select: none; }
-
-.text-primary-light {
-  color: #e6d5ee; }
-
-#topics {
-  margin: 0 auto;
-  display: block;
-  overflow-y: scroll;
-  height: 950px;
-  width: 97;
-  scroll-behavior: smooth; }
-
-.dropdown {
-  display: block; }
-
-.dropdown-menu {
-  margin: 0;
-  display: none; }
-
-.dropdown:hover .dropdown-menu {
-  display: block;
-  overflow-y: scroll;
-  max-height: 350px; }
-
-.dropdown .btn {
-  border-radius: 0; }
-
-.btn {
-  text-transform: capitalize; }
-
-label {
-  cursor: pointer; }
-
-#menu-toggle {
-  display: none;
-  /* hide the checkbox */ }
-
-#nav-toggle {
-  display: none;
-  /* hide the checkbox */ }
-
-.side-toggler {
-  float: right !important; }
-
-#menu-toggle:checked + .burger-menu {
-  display: block; }
-
-#nav-toggle:checked + .hamburger-menu {
-  display: block; }
-
-.navbar-toggler:hover .chevron-up {
-  display: block !important; }
-
-.navbar-toggler:hover .chevron-down {
-  display: none; }
-
-a.side-nav.active {
-  color: #7D4698 !important; }
-
-.smalltopics {
-  display: none; }
-
-.chevron {
-  height: 50px;
-  width: 50px;
-  margin: -10px -1px 1px -1px; }
-
-.chevron-up {
-  display: none !important;
-  top: 10px !important; }
-
-.chevron-down {
-  display: block;
-  top: 10px !important; }
-
- at media (max-width: 767px) {
-  nav.sidetopics {
-    display: none !important;
-    visibility: hidden !important; }
-
-  nav.smalltopics {
-    display: block;
-    width: 100%;
-    position: sticky;
-    padding-top: inherit; } }
-/* Support Portal Styles
-*
-*/
-.question {
-  position: relative;
-  padding-top: 50px; }
-
-.section-nav {
-  padding-top: 0 !important;
-  border: 0 !important; }
-
-#sidenav-topics .nav-pills .nav-link.active, .nav-pills .show > .nav-link {
-  color: #7D4698;
-  background-color: #fff;
-  font-weight: bold; }
-
-.toc-entry a:hover {
-  color: #7D4698 !important; }
-
-.sidetopics {
-  background: transparent;
-  position: sticky;
-  top: 114px;
-  padding-top: inherit; }
-
-#topics {
-  padding-top: 2em !important;
-  min-height: 500px;
-  margin-bottom: 200px; }
-
-.question {
-  padding: 0.75rem 0; }
-
-.footer {
-  position: relative;
-  z-index: 99999999999; }
-
-.footer a.nav-link {
-  padding: 0.2rem; }
-
-footer .border {
-  border: 0 !important;
-  border-bottom: 1px solid rgba(255, 255, 255, 0.3) !important; }
-
- at media (max-width: 767px) {
-  .display-4 {
-    font-size: 2rem; }
-
-  .toc-entry a {
-    display: block;
-    padding: 0.4rem 0 !important;
-    font-size: 1.3rem; } }
-.bd-toc {
-  order: 2;
-  padding-top: 1.5rem;
-  padding-bottom: 1.5rem;
-  font-size: .875rem; }
-  @supports (position: sticky) {
-    .bd-toc {
-      position: sticky;
-      top: 4rem;
-      height: calc(100vh - 4rem);
-      overflow-y: auto; } }
-
-.section-nav {
-  padding-left: 0;
-  border-left: 1px solid #eee; }
-  .section-nav ul {
-    padding-left: 1rem; }
-    .section-nav ul ul {
-      display: none; }
-
-.toc-entry {
-  display: block; }
-  .toc-entry a {
-    display: block;
-    padding: .125rem 1.5rem;
-    color: #99979c; }
-    .toc-entry a:hover {
-      color: #007bff;
-      text-decoration: none; }
-
-.bd-sidebar {
-  order: 0;
-  border-bottom: 1px solid rgba(0, 0, 0, 0.1); }
-  @media (min-width: 768px) {
-    .bd-sidebar {
-      border-right: 1px solid rgba(0, 0, 0, 0.1); }
-      @supports (position: sticky) {
-        .bd-sidebar {
-          position: sticky;
-          top: 4rem;
-          z-index: 1000;
-          height: calc(100vh - 4rem); } } }
-  @media (min-width: 1200px) {
-    .bd-sidebar {
-      max-width: 320px; } }
-
-.bd-links {
-  padding-top: 1rem;
-  padding-bottom: 1rem;
-  margin-right: -15px;
-  margin-left: -15px; }
-  @media (min-width: 768px) {
-    @supports (position: sticky) {
-      .bd-links {
-        max-height: calc(100vh - 9rem);
-        overflow-y: auto; } } }
-  @media (min-width: 768px) {
-    .bd-links {
-      display: block !important; } }
-
-.bd-search {
-  position: relative;
-  padding: 1rem 15px;
-  margin-right: -15px;
-  margin-left: -15px;
-  border-bottom: 1px solid rgba(0, 0, 0, 0.05); }
-  .bd-search .form-control:focus {
-    border-color: #a469c2;
-    box-shadow: 0 0 0 3px rgba(164, 105, 194, 0.25); }
-
-.bd-search-docs-toggle {
-  line-height: 1;
-  color: #212529; }
-
-.bd-sidenav {
-  display: none; }
-
-.bd-toc-link {
-  display: block;
-  padding: .25rem 1.5rem;
-  font-weight: 500;
-  color: rgba(0, 0, 0, 0.65); }
-  .bd-toc-link:hover {
-    color: rgba(0, 0, 0, 0.85);
-    text-decoration: none; }
-
-.bd-toc-item.active {
-  margin-bottom: 1rem; }
-  .bd-toc-item.active:not(:first-child) {
-    margin-top: 1rem; }
-  .bd-toc-item.active > .bd-toc-link {
-    color: rgba(0, 0, 0, 0.85); }
-    .bd-toc-item.active > .bd-toc-link:hover {
-      background-color: transparent; }
-  .bd-toc-item.active > .bd-sidenav {
-    display: block; }
-
-.bd-sidebar .nav > li > a {
-  display: block;
-  padding: .25rem 1.5rem;
-  font-size: 90%;
-  color: rgba(0, 0, 0, 0.65); }
-
-.bd-sidebar .nav > li > a:hover {
-  color: rgba(0, 0, 0, 0.85);
-  text-decoration: none;
-  background-color: transparent; }
-
-.bd-sidebar .nav > .active > a,
-.bd-sidebar .nav > .active:hover > a {
-  font-weight: 500;
-  color: rgba(0, 0, 0, 0.85);
-  background-color: transparent; }
-
-.bd-example-row .row > .col,
-.bd-example-row .row > [class^="col-"] {
-  padding-top: .75rem;
-  padding-bottom: .75rem;
-  background-color: rgba(86, 61, 124, 0.15);
-  border: 1px solid rgba(86, 61, 124, 0.2); }
-.bd-example-row .row + .row {
-  margin-top: 1rem; }
-.bd-example-row .flex-items-top,
-.bd-example-row .flex-items-middle,
-.bd-example-row .flex-items-bottom {
-  min-height: 6rem;
-  background-color: rgba(255, 0, 0, 0.1); }
-
-.bd-example-row-flex-cols .row {
-  min-height: 10rem;
-  background-color: rgba(255, 0, 0, 0.1); }
-
-.bd-highlight {
-  background-color: rgba(125, 70, 152, 0.15);
-  border: 1px solid rgba(125, 70, 152, 0.15); }
-
-.example-container {
-  width: 800px;
-  width: 100%;
-  padding-right: 15px;
-  padding-left: 15px;
-  margin-right: auto;
-  margin-left: auto; }
-
-.example-row {
-  display: flex;
-  flex-wrap: wrap;
-  margin-right: -15px;
-  margin-left: -15px; }
-
-.example-content-main {
-  position: relative;
-  width: 100%;
-  min-height: 1px;
-  padding-right: 15px;
-  padding-left: 15px; }
-  @media (min-width: 576px) {
-    .example-content-main {
-      flex: 0 0 50%;
-      max-width: 50%; } }
-  @media (min-width: 992px) {
-    .example-content-main {
-      flex: 0 0 66.6666666667%;
-      max-width: 66.6666666667%; } }
-
-.example-content-secondary {
-  position: relative;
-  width: 100%;
-  min-height: 1px;
-  padding-right: 15px;
-  padding-left: 15px; }
-  @media (min-width: 576px) {
-    .example-content-secondary {
-      flex: 0 0 50%;
-      max-width: 50%; } }
-  @media (min-width: 992px) {
-    .example-content-secondary {
-      flex: 0 0 33.3333333333%;
-      max-width: 33.3333333333%; } }
-
-.bd-example-container {
-  min-width: 16rem;
-  max-width: 25rem;
-  margin-right: auto;
-  margin-left: auto; }
-
-.bd-example-container-header {
-  height: 3rem;
-  margin-bottom: .5rem;
-  background-color: white;
-  border-radius: .25rem; }
-
-.bd-example-container-sidebar {
-  float: right;
-  width: 4rem;
-  height: 8rem;
-  background-color: #80bdff;
-  border-radius: .25rem; }
-
-.bd-example-container-body {
-  height: 8rem;
-  margin-right: 4.5rem;
-  background-color: #b991cc;
-  border-radius: .25rem; }
-
-.bd-example-container-fluid {
-  max-width: none; }
-
-.bd-example {
-  position: relative;
-  padding: 1rem;
-  margin: 1rem -15px;
-  overflow: auto;
-  border: solid #f7f7f9;
-  border-width: .2rem 0 0; }
-  .bd-example::after {
-    display: block;
-    clear: both;
-    content: ""; }
-  @media (min-width: 576px) {
-    .bd-example {
-      padding: 1.5rem;
-      margin-right: 0;
-      margin-bottom: 0;
-      margin-left: 0;
-      border-width: .2rem; } }
-  .bd-example + .highlight,
-  .bd-example + .clipboard + .highlight {
-    margin-top: 0; }
-  .bd-example + p {
-    margin-top: 2rem; }
-  .bd-example .pos-f-t {
-    position: relative;
-    margin: -1rem; }
-    @media (min-width: 576px) {
-      .bd-example .pos-f-t {
-        margin: -1.5rem; } }
-  .bd-example > .form-control + .form-control {
-    margin-top: .5rem; }
-  .bd-example > .nav + .nav,
-  .bd-example > .alert + .alert,
-  .bd-example > .navbar + .navbar,
-  .bd-example > .progress + .progress,
-  .bd-example > .progress + .btn {
-    margin-top: 1rem; }
-  .bd-example > .dropdown-menu:first-child {
-    position: static;
-    display: block; }
-  .bd-example > .form-group:last-child {
-    margin-bottom: 0; }
-  .bd-example > .close {
-    float: none; }
-
-.bd-example-type .table .type-info {
-  color: #999;
-  vertical-align: middle; }
-.bd-example-type .table td {
-  padding: 1rem 0;
-  border-color: #eee; }
-.bd-example-type .table tr:first-child td {
-  border-top: 0; }
-.bd-example-type h1,
-.bd-example-type h2,
-.bd-example-type h3,
-.bd-example-type h4,
-.bd-example-type h5,
-.bd-example-type h6 {
-  margin-top: 0;
-  margin-bottom: 0; }
-
-.bd-example-bg-classes p {
-  padding: 1rem; }
-
-.bd-example > img + img {
-  margin-left: .5rem; }
-
-.bd-example > .btn-group {
-  margin-top: .25rem;
-  margin-bottom: .25rem; }
-.bd-example > .btn-toolbar + .btn-toolbar {
-  margin-top: .5rem; }
-
-.bd-example-control-sizing select,
-.bd-example-control-sizing input[type="text"] + input[type="text"] {
-  margin-top: .5rem; }
-
-.bd-example-form .input-group {
-  margin-bottom: .5rem; }
-
-.bd-example > textarea.form-control {
-  resize: vertical; }
-
-.bd-example > .list-group {
-  max-width: 400px; }
-
-.bd-example .fixed-top,
-.bd-example .sticky-top {
-  position: static;
-  margin: -1rem -1rem 1rem; }
-.bd-example .fixed-bottom {
-  position: static;
-  margin: 1rem -1rem -1rem; }
- at media (min-width: 576px) {
-  .bd-example .fixed-top,
-  .bd-example .sticky-top {
-    margin: -1.5rem -1.5rem 1rem; }
-  .bd-example .fixed-bottom {
-    margin: 1rem -1.5rem -1.5rem; } }
-
-.bd-example .pagination {
-  margin-top: .5rem;
-  margin-bottom: .5rem; }
-
-.modal {
-  z-index: 1072; }
-  .modal .tooltip,
-  .modal .popover {
-    z-index: 1073; }
-
-.modal-backdrop {
-  z-index: 1071; }
-
-.bd-example-modal {
-  background-color: #fafafa; }
-  .bd-example-modal .modal {
-    position: relative;
-    top: auto;
-    right: auto;
-    bottom: auto;
-    left: auto;
-    z-index: 1;
-    display: block; }
-  .bd-example-modal .modal-dialog {
-    left: auto;
-    margin-right: auto;
-    margin-left: auto; }
-
-.bd-example-tabs .nav-tabs {
-  margin-bottom: 1rem; }
-
-.bd-example-tooltips {
-  text-align: center; }
-  .bd-example-tooltips > .btn {
-    margin-top: .25rem;
-    margin-bottom: .25rem; }
-
-.bs-tooltip-top-docs .arrow,
-.bs-tooltip-bottom-docs .arrow {
-  left: 50%; }
-
-.bs-tooltip-right-docs .arrow,
-.bs-tooltip-left-docs .arrow {
-  top: 50%; }
-
-.bd-example-popover-static {
-  padding-bottom: 1.5rem;
-  background-color: #f9f9f9; }
-  .bd-example-popover-static .popover {
-    position: relative;
-    display: block;
-    float: left;
-    width: 260px;
-    margin: 1.25rem; }
-
-.bs-popover-top-docs .arrow,
-.bs-popover-bottom-docs .arrow {
-  left: 50%; }
-
-.bs-popover-right-docs .arrow,
-.bs-popover-left-docs .arrow {
-  top: 50%; }
-
-.tooltip-demo a {
-  white-space: nowrap; }
-
-.bd-example-tooltip-static .tooltip {
-  position: relative;
-  display: inline-block;
-  margin: 10px 20px;
-  opacity: 1; }
-
-.scrollspy-example {
-  position: relative;
-  height: 200px;
-  margin-top: .5rem;
-  overflow: auto; }
-
-.scrollspy-example-2 {
-  position: relative;
-  height: 350px;
-  overflow: auto; }
-
-.bd-example-border-utils [class^="border"] {
-  display: inline-block;
-  width: 5rem;
-  height: 5rem;
-  margin: .25rem;
-  background-color: #f5f5f5;
-  border: 1px solid; }
-
-.highlight {
-  padding: 1rem;
-  margin-top: 1rem;
-  margin-bottom: 1rem;
-  background-color: #f7f7f9;
-  -ms-overflow-style: -ms-autohiding-scrollbar; }
-  @media (min-width: 576px) {
-    .highlight {
-      padding: 1.5rem; } }
-
-.bd-content .highlight {
-  margin-right: -15px;
-  margin-left: -15px; }
-  @media (min-width: 576px) {
-    .bd-content .highlight {
-      margin-right: 0;
-      margin-left: 0; } }
-
-.highlight pre {
-  padding: 0;
-  margin-top: 0;
-  margin-bottom: 0;
-  background-color: transparent;
-  border: 0; }
-.highlight pre code {
-  font-size: inherit;
-  color: #212529; }
-
-/*# sourceMappingURL=bootstrap.css.map */
diff --git a/assets/static/bootstrap.css.map b/assets/static/bootstrap.css.map
deleted file mode 100644
index d2dbcc6..0000000
--- a/assets/static/bootstrap.css.map
+++ /dev/null
@@ -1,7 +0,0 @@
-{
-"version": 3,
-"mappings": "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",
-"sources": ["../scss/bootstrap.scss","../scss/_root.scss","../scss/_print.scss","../scss/_reboot.scss","../scss/_tor-variables.scss","../scss/_variables.scss","../scss/mixins/_hover.scss","../scss/_type.scss","../scss/mixins/_lists.scss","../scss/_images.scss","../scss/mixins/_image.scss","../scss/mixins/_border-radius.scss","../scss/mixins/_transition.scss","../scss/_code.scss","../scss/_grid.scss","../scss/mixins/_grid.scss","../scss/mixins/_breakpoints.scss","../scss/_functions.scss","../scss/mixins/_grid-framework.scss","../scss/_tables.scss","../scss/mixins/_table-row.scss","../scss/_forms.scss","../scss/mixins/_forms.scss","../scss/_buttons.scss","../scss/mixins/_buttons.scss","../scss/mixins/_gradients.scss","../scss/_transitions.scss","../scss/_dropdown.scss","../scss/mixins/_caret.scss","../scss/mixins/_nav-divider.scss","../scss/_button-group.scss","../scss/_input-group.scss","../scss/_custom-forms.scss","../scss/_nav.scss","../scss/_navbar.scss","../scss/_card.scss","../s
 css/_breadcrumb.scss","../scss/_pagination.scss","../scss/mixins/_pagination.scss","../scss/_badge.scss","../scss/mixins/_badge.scss","../scss/_jumbotron.scss","../scss/_alert.scss","../scss/mixins/_alert.scss","../scss/_progress.scss","../scss/_media.scss","../scss/_list-group.scss","../scss/mixins/_list-group.scss","../scss/_close.scss","../scss/_modal.scss","../scss/_tooltip.scss","../scss/mixins/_reset-text.scss","../scss/_popover.scss","../scss/_carousel.scss","../scss/utilities/_align.scss","../scss/mixins/_background-variant.scss","../scss/utilities/_background.scss","../scss/utilities/_borders.scss","../scss/mixins/_clearfix.scss","../scss/utilities/_display.scss","../scss/utilities/_embed.scss","../scss/utilities/_flex.scss","../scss/utilities/_float.scss","../scss/mixins/_float.scss","../scss/utilities/_position.scss","../scss/utilities/_screenreaders.scss","../scss/mixins/_screen-reader.scss","../scss/utilities/_sizing.scss","../scss/utilities/_spacing.scss","../scss/util
 ities/_text.scss","../scss/mixins/_text-truncate.scss","../scss/mixins/_text-emphasis.scss","../scss/mixins/_text-hide.scss","../scss/utilities/_visibility.scss","../scss/mixins/_visibility.scss","../scss/_tor.scss","../scss/_portal.scss","../scss/_sidebar.scss","../scss/_component-examples.scss"],
-"names": [],
-"file": "bootstrap.css"
-}
\ No newline at end of file
diff --git a/assets/static/collapse.min.js b/assets/static/collapse.min.js
deleted file mode 100644
index b555f8e..0000000
--- a/assets/static/collapse.min.js
+++ /dev/null
@@ -1 +0,0 @@
-import $ from 'jquery';import Util from './util';const Collapse=(()=>{const NAME='collapse';const VERSION='4.0.0-beta.2';const DATA_KEY='bs.collapse';const EVENT_KEY=`.${ DATA_KEY }`;const DATA_API_KEY='.data-api';const JQUERY_NO_CONFLICT=$.fn[NAME];const TRANSITION_DURATION=600;const Default={toggle:true,parent:''};const DefaultType={toggle:'boolean',parent:'(string|element)'};const Event={SHOW:`show${ EVENT_KEY }`,SHOWN:`shown${ EVENT_KEY }`,HIDE:`hide${ EVENT_KEY }`,HIDDEN:`hidden${ EVENT_KEY }`,CLICK_DATA_API:`click${ EVENT_KEY }${ DATA_API_KEY }`};const ClassName={SHOW:'show',COLLAPSE:'collapse',COLLAPSING:'collapsing',COLLAPSED:'collapsed'};const Dimension={WIDTH:'width',HEIGHT:'height'};const Selector={ACTIVES:'.show, .collapsing',DATA_TOGGLE:'[data-toggle="collapse"]'};class Collapse{constructor(element,config){this._isTransitioning=false;this._element=element;this._config=this._getConfig(config);this._triggerArray=$.makeArray($(`[data-toggle="collapse"][href="#${element.id 
 }"],`+`[data-toggle="collapse"][data-target="#${element.id }"]`));const tabToggles=$(Selector.DATA_TOGGLE);for(let i=0;i<tabToggles.length;i+=1){const elem=tabToggles[i];const selector=Util.getSelectorFromElement(elem);if(selector!==null&&$(selector).filter(element).length>0){this._triggerArray.push(elem)}}this._parent=this._config.parent?this._getParent():null;if(!this._config.parent){this._addAriaAndCollapsedClass(this._element,this._triggerArray)}if(this._config.toggle){this.toggle()}}static get VERSION(){return VERSION}static get Default(){return Default}toggle(){if($(this._element).hasClass(ClassName.SHOW)){this.hide()}else{this.show()}}show(){if(this._isTransitioning||$(this._element).hasClass(ClassName.SHOW)){return}let actives;let activesData;if(this._parent){actives=$.makeArray($(this._parent).children().children(Selector.ACTIVES));if(!actives.length){actives=null}}if(actives){activesData=$(actives).data(DATA_KEY);if(activesData&&activesData._isTransitioning){return}}const 
 startEvent=$.Event(Event.SHOW);$(this._element).trigger(startEvent);if(startEvent.isDefaultPrevented()){return}if(actives){Collapse._jQueryInterface.call($(actives),'hide');if(!activesData){$(actives).data(DATA_KEY,null)}}const dimension=this._getDimension();$(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);this._element.style[dimension]=0;if(this._triggerArray.length){$(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded',true)}this.setTransitioning(true);const complete=()=>{$(this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);this._element.style[dimension]='';this.setTransitioning(false);$(this._element).trigger(Event.SHOWN)}if(!Util.supportsTransitionEnd()){complete();return}const capitalizedDimension=dimension[0].toUpperCase()+dimension.slice(1);const scrollSize=`scroll${ capitalizedDimension }`;$(this._element).one(Util.TRANSITION_END,complete).emulateTransitionEnd(TRANSITION_
 DURATION);this._element.style[dimension]=`${this._element[scrollSize]}px`}hide(){if(this._isTransitioning||!$(this._element).hasClass(ClassName.SHOW)){return}const startEvent=$.Event(Event.HIDE);$(this._element).trigger(startEvent);if(startEvent.isDefaultPrevented()){return}const dimension=this._getDimension();this._element.style[dimension]=`${this._element.getBoundingClientRect()[dimension]}px`;Util.reflow(this._element);$(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);if(this._triggerArray.length){for(let i=0;i<this._triggerArray.length;i+=1){const trigger=this._triggerArray[i];const selector=Util.getSelectorFromElement(trigger);if(selector!==null){const $elem=$(selector);if(!$elem.hasClass(ClassName.SHOW)){$(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded',false)}}}}this.setTransitioning(true);const complete=()=>{this.setTransitioning(false);$(this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.
 COLLAPSE).trigger(Event.HIDDEN)}this._element.style[dimension]='';if(!Util.supportsTransitionEnd()){complete();return}$(this._element).one(Util.TRANSITION_END,complete).emulateTransitionEnd(TRANSITION_DURATION)}setTransitioning(isTransitioning){this._isTransitioning=isTransitioning}dispose(){$.removeData(this._element,DATA_KEY);this._config=null;this._parent=null;this._element=null;this._triggerArray=null;this._isTransitioning=null}_getConfig(config){config=$.extend({},Default,config);config.toggle=Boolean(config.toggle);Util.typeCheckConfig(NAME,config,DefaultType);return config}_getDimension(){const hasWidth=$(this._element).hasClass(Dimension.WIDTH);return hasWidth?Dimension.WIDTH:Dimension.HEIGHT}_getParent(){let parent=null;if(Util.isElement(this._config.parent)){parent=this._config.parent;if(typeof this._config.parent.jquery!=='undefined'){parent=this._config.parent[0]}}else{parent=$(this._config.parent)[0]}const selector=`[data-toggle="collapse"][data-parent="${this._config.p
 arent }"]`;$(parent).find(selector).each((i,element)=>{this._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element),[element])});return parent}_addAriaAndCollapsedClass(element,triggerArray){if(element){const isOpen=$(element).hasClass(ClassName.SHOW);if(triggerArray.length){$(triggerArray).toggleClass(ClassName.COLLAPSED,!isOpen).attr('aria-expanded',isOpen)}}}static _getTargetFromElement(element){const selector=Util.getSelectorFromElement(element);return selector?$(selector)[0]:null}static _jQueryInterface(config){return this.each(function(){const $this=$(this);let data=$this.data(DATA_KEY);const _config=$.extend({},Default,$this.data(),typeof config==='object'&&config);if(!data&&_config.toggle&&/show|hide/.test(config)){_config.toggle=false}if(!data){data=new Collapse(this,_config);$this.data(DATA_KEY,data)}if(typeof config==='string'){if(typeof data[config]==='undefined'){throw new Error(`No method named "${ config }"`)}data[config]()}})}}$(document).on(Event.CLICK_DAT
 A_API,Selector.DATA_TOGGLE,function(event){if(event.currentTarget.tagName==='A'){event.preventDefault()}const $trigger=$(this);const selector=Util.getSelectorFromElement(this);$(selector).each(function(){const $target=$(this);const data=$target.data(DATA_KEY);const config=data?'toggle':$trigger.data();Collapse._jQueryInterface.call($target,config)})});$.fn[NAME]=Collapse._jQueryInterface;$.fn[NAME].Constructor=Collapse;$.fn[NAME].noConflict=function(){$.fn[NAME]=JQUERY_NO_CONFLICT;return Collapse._jQueryInterface};return Collapse})($);export default Collapse;
diff --git a/assets/static/css b/assets/static/css
new file mode 120000
index 0000000..0db4948
--- /dev/null
+++ b/assets/static/css
@@ -0,0 +1 @@
+../../lego/assests/static/css
\ No newline at end of file
diff --git a/assets/static/fonts b/assets/static/fonts
new file mode 120000
index 0000000..2da38c7
--- /dev/null
+++ b/assets/static/fonts
@@ -0,0 +1 @@
+../../lego/assests/static/fonts
\ No newline at end of file
diff --git a/assets/static/fonts/SourceCodePro/OFL.txt b/assets/static/fonts/SourceCodePro/OFL.txt
deleted file mode 100755
index 6f4c937..0000000
--- a/assets/static/fonts/SourceCodePro/OFL.txt
+++ /dev/null
@@ -1,93 +0,0 @@
-Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.
-
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-This license is copied below, and is also available with a FAQ at:
-http://scripts.sil.org/OFL
-
-
------------------------------------------------------------
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
------------------------------------------------------------
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded, 
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting -- in part or in whole -- any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/assets/static/fonts/SourceCodePro/SourceCodePro-Black.ttf b/assets/static/fonts/SourceCodePro/SourceCodePro-Black.ttf
deleted file mode 100755
index ea73e60..0000000
Binary files a/assets/static/fonts/SourceCodePro/SourceCodePro-Black.ttf and /dev/null differ
diff --git a/assets/static/fonts/SourceCodePro/SourceCodePro-Bold.ttf b/assets/static/fonts/SourceCodePro/SourceCodePro-Bold.ttf
deleted file mode 100755
index a56f1fa..0000000
Binary files a/assets/static/fonts/SourceCodePro/SourceCodePro-Bold.ttf and /dev/null differ
diff --git a/assets/static/fonts/SourceCodePro/SourceCodePro-ExtraLight.ttf b/assets/static/fonts/SourceCodePro/SourceCodePro-ExtraLight.ttf
deleted file mode 100755
index f409b71..0000000
Binary files a/assets/static/fonts/SourceCodePro/SourceCodePro-ExtraLight.ttf and /dev/null differ
diff --git a/assets/static/fonts/SourceCodePro/SourceCodePro-Light.ttf b/assets/static/fonts/SourceCodePro/SourceCodePro-Light.ttf
deleted file mode 100755
index 51eb963..0000000
Binary files a/assets/static/fonts/SourceCodePro/SourceCodePro-Light.ttf and /dev/null differ
diff --git a/assets/static/fonts/SourceCodePro/SourceCodePro-Medium.ttf b/assets/static/fonts/SourceCodePro/SourceCodePro-Medium.ttf
deleted file mode 100755
index 1ee45eb..0000000
Binary files a/assets/static/fonts/SourceCodePro/SourceCodePro-Medium.ttf and /dev/null differ
diff --git a/assets/static/fonts/SourceCodePro/SourceCodePro-Regular.ttf b/assets/static/fonts/SourceCodePro/SourceCodePro-Regular.ttf
deleted file mode 100755
index b2cff92..0000000
Binary files a/assets/static/fonts/SourceCodePro/SourceCodePro-Regular.ttf and /dev/null differ
diff --git a/assets/static/fonts/SourceCodePro/SourceCodePro-Semibold.ttf b/assets/static/fonts/SourceCodePro/SourceCodePro-Semibold.ttf
deleted file mode 100755
index b425f9c..0000000
Binary files a/assets/static/fonts/SourceCodePro/SourceCodePro-Semibold.ttf and /dev/null differ
diff --git a/assets/static/fonts/SourceSansPro/OFL.txt b/assets/static/fonts/SourceSansPro/OFL.txt
deleted file mode 100755
index 72d81ab..0000000
--- a/assets/static/fonts/SourceSansPro/OFL.txt
+++ /dev/null
@@ -1,93 +0,0 @@
-Copyright 2010, 2012, 2014 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name ‘Source’.
-
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-This license is copied below, and is also available with a FAQ at:
-http://scripts.sil.org/OFL
-
-
------------------------------------------------------------
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
------------------------------------------------------------
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded, 
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting -- in part or in whole -- any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/assets/static/fonts/SourceSansPro/SourceSansPro-Black.ttf b/assets/static/fonts/SourceSansPro/SourceSansPro-Black.ttf
deleted file mode 100755
index 7ea0260..0000000
Binary files a/assets/static/fonts/SourceSansPro/SourceSansPro-Black.ttf and /dev/null differ
diff --git a/assets/static/fonts/SourceSansPro/SourceSansPro-BlackItalic.ttf b/assets/static/fonts/SourceSansPro/SourceSansPro-BlackItalic.ttf
deleted file mode 100755
index e1a7482..0000000
Binary files a/assets/static/fonts/SourceSansPro/SourceSansPro-BlackItalic.ttf and /dev/null differ
diff --git a/assets/static/fonts/SourceSansPro/SourceSansPro-Bold.ttf b/assets/static/fonts/SourceSansPro/SourceSansPro-Bold.ttf
deleted file mode 100755
index f698646..0000000
Binary files a/assets/static/fonts/SourceSansPro/SourceSansPro-Bold.ttf and /dev/null differ
diff --git a/assets/static/fonts/SourceSansPro/SourceSansPro-BoldItalic.ttf b/assets/static/fonts/SourceSansPro/SourceSansPro-BoldItalic.ttf
deleted file mode 100755
index 5c00b64..0000000
Binary files a/assets/static/fonts/SourceSansPro/SourceSansPro-BoldItalic.ttf and /dev/null differ
diff --git a/assets/static/fonts/SourceSansPro/SourceSansPro-ExtraLight.ttf b/assets/static/fonts/SourceSansPro/SourceSansPro-ExtraLight.ttf
deleted file mode 100755
index f1da6b2..0000000
Binary files a/assets/static/fonts/SourceSansPro/SourceSansPro-ExtraLight.ttf and /dev/null differ
diff --git a/assets/static/fonts/SourceSansPro/SourceSansPro-ExtraLightItalic.ttf b/assets/static/fonts/SourceSansPro/SourceSansPro-ExtraLightItalic.ttf
deleted file mode 100755
index 15f7344..0000000
Binary files a/assets/static/fonts/SourceSansPro/SourceSansPro-ExtraLightItalic.ttf and /dev/null differ
diff --git a/assets/static/fonts/SourceSansPro/SourceSansPro-Italic.ttf b/assets/static/fonts/SourceSansPro/SourceSansPro-Italic.ttf
deleted file mode 100755
index 82e8762..0000000
Binary files a/assets/static/fonts/SourceSansPro/SourceSansPro-Italic.ttf and /dev/null differ
diff --git a/assets/static/fonts/SourceSansPro/SourceSansPro-Light.ttf b/assets/static/fonts/SourceSansPro/SourceSansPro-Light.ttf
deleted file mode 100755
index ea1104b..0000000
Binary files a/assets/static/fonts/SourceSansPro/SourceSansPro-Light.ttf and /dev/null differ
diff --git a/assets/static/fonts/SourceSansPro/SourceSansPro-LightItalic.ttf b/assets/static/fonts/SourceSansPro/SourceSansPro-LightItalic.ttf
deleted file mode 100755
index b78f1b0..0000000
Binary files a/assets/static/fonts/SourceSansPro/SourceSansPro-LightItalic.ttf and /dev/null differ
diff --git a/assets/static/fonts/SourceSansPro/SourceSansPro-Regular.ttf b/assets/static/fonts/SourceSansPro/SourceSansPro-Regular.ttf
deleted file mode 100755
index 278ad8a..0000000
Binary files a/assets/static/fonts/SourceSansPro/SourceSansPro-Regular.ttf and /dev/null differ
diff --git a/assets/static/fonts/SourceSansPro/SourceSansPro-SemiBold.ttf b/assets/static/fonts/SourceSansPro/SourceSansPro-SemiBold.ttf
deleted file mode 100755
index ac3e0d1..0000000
Binary files a/assets/static/fonts/SourceSansPro/SourceSansPro-SemiBold.ttf and /dev/null differ
diff --git a/assets/static/fonts/SourceSansPro/SourceSansPro-SemiBoldItalic.ttf b/assets/static/fonts/SourceSansPro/SourceSansPro-SemiBoldItalic.ttf
deleted file mode 100755
index b0737bb..0000000
Binary files a/assets/static/fonts/SourceSansPro/SourceSansPro-SemiBoldItalic.ttf and /dev/null differ
diff --git a/assets/static/fonts/SourceSerifPro/OFL.txt b/assets/static/fonts/SourceSerifPro/OFL.txt
deleted file mode 100755
index 02ce918..0000000
--- a/assets/static/fonts/SourceSerifPro/OFL.txt
+++ /dev/null
@@ -1,93 +0,0 @@
-Copyright 2014 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.
-
-This Font Software is licensed under the SIL Open Font License, Version 1.1.
-This license is copied below, and is also available with a FAQ at:
-http://scripts.sil.org/OFL
-
-
------------------------------------------------------------
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
------------------------------------------------------------
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded, 
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting -- in part or in whole -- any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/assets/static/fonts/SourceSerifPro/SourceSerifPro-Bold.ttf b/assets/static/fonts/SourceSerifPro/SourceSerifPro-Bold.ttf
deleted file mode 100755
index ac7837f..0000000
Binary files a/assets/static/fonts/SourceSerifPro/SourceSerifPro-Bold.ttf and /dev/null differ
diff --git a/assets/static/fonts/SourceSerifPro/SourceSerifPro-Regular.ttf b/assets/static/fonts/SourceSerifPro/SourceSerifPro-Regular.ttf
deleted file mode 100755
index 7201a88..0000000
Binary files a/assets/static/fonts/SourceSerifPro/SourceSerifPro-Regular.ttf and /dev/null differ
diff --git a/assets/static/fonts/SourceSerifPro/SourceSerifPro-Semibold.ttf b/assets/static/fonts/SourceSerifPro/SourceSerifPro-Semibold.ttf
deleted file mode 100755
index db2fc80..0000000
Binary files a/assets/static/fonts/SourceSerifPro/SourceSerifPro-Semibold.ttf and /dev/null differ
diff --git a/assets/static/fonts/TorIcons/tor-icons.eot b/assets/static/fonts/TorIcons/tor-icons.eot
deleted file mode 100644
index 73bb0d2..0000000
Binary files a/assets/static/fonts/TorIcons/tor-icons.eot and /dev/null differ
diff --git a/assets/static/fonts/TorIcons/tor-icons.svg b/assets/static/fonts/TorIcons/tor-icons.svg
deleted file mode 100644
index 8d2a590..0000000
--- a/assets/static/fonts/TorIcons/tor-icons.svg
+++ /dev/null
@@ -1,102 +0,0 @@
-<?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">
-<defs>
-  <font id="tor-icons" horiz-adv-x="576">
-    <font-face font-family="tor-icons"
-      units-per-em="512" ascent="512"
-      descent="0" />
-    <missing-glyph horiz-adv-x="0" />
-    <glyph glyph-name="authority"
-      unicode="&#xF101;"
-      horiz-adv-x="512" d=" M458.622 256.0800000000001L504.607 301.0850000000001C518.315 314.062 511.923 337.124 493.943 341.424L431.2930000000001 357.414L448.9540000000001 419.4290000000001C453.9450000000001 437.2670000000001 437.1250000000001 454.092 419.2930000000001 449.1L357.2990000000001 431.433L341.3150000000001 494.104C337.085 511.803 313.765 518.276 300.99 504.772L256 458.43L211.011 504.771C198.381 518.122 174.964 512.005 170.686 494.103L154.702 431.432L92.707 449.099C74.87 454.093 58.056 437.262 63.046 419.428L80.707 357.413L18.057 341.423C0.069 337.122 -6.31 314.0560000000001 7.392 301.0850000000001L53.377 256.0800000000001L7.392 211.076C-6.316 198.0990000000001 0.076 175.037 18.056 170.737L80.706 154.747L63.045 92.732C58.054 74.894 74.874 58.069 92.706 63.061L154.7 80.7280000000001L170.684 18.0570000000001C175.123 -0.5179999999999 198.38 -5.9609999999999 211.009 7.3890000000001L256 53.39L300.989 7.389C313.489 -6.0989999999999 336.976 -0.097 341.314 18.057L357.298 80.728L
 419.2919999999999 63.061C437.128 58.067 453.9429999999999 74.898 448.9529999999999 92.732L431.2919999999999 154.747L493.9419999999999 170.737C511.9289999999999 175.0390000000001 518.3079999999999 198.1040000000001 504.6059999999999 211.076L458.6219999999999 256.0800000000001z" />
-    <glyph glyph-name="badexit"
-      unicode="&#xF102;"
-      horiz-adv-x="512" d=" M256 504C119.034 504 8 392.967 8 256S119.034 8 256 8S504 119.034 504 256S392.967 504 256 504zM386.108 386.108C451.556 320.6600000000001 456.108 220.627 406.7850000000001 150.471L150.47 406.784C220.674 456.14 320.6960000000001 451.519 386.108 386.108zM125.892 125.892C60.444 191.34 55.892 291.373 105.215 361.529L361.53 105.216C291.327 55.86 191.304 60.48 125.892 125.892z" />
-    <glyph glyph-name="bridge"
-      unicode="&#xF103;"
-      horiz-adv-x="512" d=" M16 368L16 115.3684208L86.2866667199996 115.3684208C111 188.9473680000001 177.6333328000001 241.6842105599999 256 241.6842105599999C334.3666672 241.6842105599999 401 188.9473680000001 425.7133328 115.3684208L496 115.3684208L496 368L16 368z" />
-    <glyph glyph-name="country"
-      unicode="&#xF104;"
-      horiz-adv-x="384" d=" M172.268 10.33C26.97 220.969 0 242.587 0 320C0 426.039 85.961 512 192 512S384 426.039 384 320C384 242.587 357.03 220.969 211.732 10.33C202.197 -3.444 181.802 -3.443 172.268 10.33z" />
-    <glyph glyph-name="directory"
-      unicode="&#xF105;"
-      horiz-adv-x="512" d=" M452.9230767999998 352C459.0403071999999 352 464 356.8357 464 362.8L464 398.8C464 404.7643000000001 459.0403071999999 409.6 452.9230767999998 409.6L434.4615392000001 409.6L434.4615392000001 452.8C434.4615392000001 476.659 414.6246160000001 496 390.1538464 496L124.3076923200001 496C99.8369230399999 496 80 476.659 80 452.8L80 78.4C80 54.5409999999999 99.8369230399999 35.2 124.3076923200001 35.2L390.1538464 35.2C414.6246160000001 35.2 434.4615392000001 54.5409999999999 434.4615392000001 78.4L434.4615392000001 121.6L452.9230767999998 121.6C459.0403071999999 121.6 464 126.4356992000001 464 132.4L464 168.4C464 174.3643008 459.0403071999999 179.2000000000001 452.9230767999998 179.2000000000001L434.4615392000001 179.2000000000001L434.4615392000001 236.8L452.9230767999998 236.8C459.0403071999999 236.8 464 241.6356992 464 247.6L464 283.6C464 289.5643008 459.0403071999999 294.4 452.9230767999998 294.4L434.4615392000001 294.4L434.4615392000001 352L452.9230767999998 3
 52z" />
-    <glyph glyph-name="exit"
-      unicode="&#xF106;"
-      horiz-adv-x="402.31833320247944" d=" M296.5909877987965 115.1547656932976L249.7182730611699 115.1547656932976L249.7182730611699 191.4505156032526L155.9728736919687 191.4505156032526L155.9728736919687 115.1547656932976L109.1001683624834 115.1547656932976L202.8455771398258 13.427099146691z M385.5550693190428 315.6303325759527C385.5550693190428 275.9530447882323 352.5320764727 243.7877778650137 311.7967082319215 243.7877778650137H99.7414234591009C53.9138567562077 243.7877778650137 16.7632675713548 279.9734118919249 16.7632675713548 324.6106644872678C16.7632675713548 359.8432583489403 39.9112912172481 389.8049741187648 72.199590439413 400.8687282818329C72.121641262355 402.3891395527968 72.0824152248678 403.9112204448434 72.0820799595901 405.4335360225843C72.0820380514303 455.0307215753485 113.3602141873657 495.2367361165633 164.2799894103319 495.2367361165633C198.4439369337201 495.2367361165633 228.2665209659647 477.1369020008461 244.194873728423 450.2458943198008C252.983065109106
 3 455.973655168792 263.5489503348364 459.3154570847676 274.917527688361 459.3154570847676C305.4690622505769 459.3154570847676 330.2362985037019 435.1915110831694 330.2362985037019 405.4335360225844C330.2362985037019 398.5950228690864 328.9254112680172 392.0551053535121 326.5397473684459 386.0360459153656C360.2104392047168 379.3827517408421 385.5550693190429 350.3897883434942 385.5550693190429 315.6303325759525z" />
-    <glyph glyph-name="fallbackdir"
-      unicode="&#xF107;"
-      horiz-adv-x="512" d=" M452.9230767999998 352C459.0403071999999 352 464 356.8357 464 362.8L464 398.8C464 404.7643000000001 459.0403071999999 409.6 452.9230767999998 409.6L434.4615391999996 409.6L434.4615391999996 452.8C434.4615391999996 476.659 414.6246160000001 496 390.1538464000005 496L124.3076923199997 496C99.8369230400003 496 80 476.659 80 452.8L80 78.4C80 54.5409999999999 99.8369230400003 35.2 124.3076923199997 35.2L390.1538464000005 35.2C414.6246160000001 35.2 434.4615391999996 54.5409999999999 434.4615391999996 78.4L434.4615391999996 121.6L452.9230767999998 121.6C459.0403071999999 121.6 464 126.4356992000001 464 132.4L464 168.4C464 174.3643008 459.0403071999999 179.2000000000001 452.9230767999998 179.2000000000001L434.4615391999996 179.2000000000001L434.4615391999996 236.8L452.9230767999998 236.8C459.0403071999999 236.8 464 241.6356992 464 247.6L464 283.6C464 289.5643008 459.0403071999999 294.4 452.9230767999998 294.4L434.4615391999996 294.4L434.4615391999996 352L452.923
 0767999998 352z M332.0210623999996 442.51428112L349.7886320000001 442.51428112C353.0297599999998 442.51428112 355.6571360000002 439.88519712 355.6571360000002 436.64285264L355.6571360000002 361.5179776C355.6571360000002 358.27563296 353.0297599999998 355.64654896 349.7886320000001 355.64654896L274.7125860800001 355.64654896C271.4714576 355.64654896 268.8440824000003 358.27563296 268.8440824000003 361.5179776L268.8440824000003 379.29710256C268.8440824000003 382.64996128 271.6456374399999 385.32222944 274.9933779200004 385.1617073600001L311.8386863999998 381.20214032C299.9163696 398.92995472 280.0015614400003 409.771424 258.2233105600002 409.771424C228.1761463999996 409.771424 202.3303078399999 389.1221204799999 195.4223151999999 360.2953712C194.78704048 357.6444696 192.4320032 355.771424 189.7129939199998 355.771424L171.3184575999998 355.771424C167.64736528 355.771424 164.8671779199998 359.1065444800001 165.5459400000004 362.7124883199999C173.8761135999998 406.97738048 212.6795275199
 997 439.51428112 258.2233105600002 439.51428112C286.2351251200002 439.51428112 312.2489695999997 427.21675568 327.6452848000003 405.32475408L326.1590016000004 436.362004C325.9986303999998 439.71092448 328.6694496000004 442.51428112 332.0210623999996 442.51428112z M258.2233105600002 280.5142816C288.2704745599998 280.5142816 314.1163135999999 301.163584 321.0243056000003 329.99033392C321.6595807999996 332.64123552 324.0146176000002 334.51428112 326.7336271999997 334.51428112L345.1281632000004 334.51428112C348.7992559999997 334.51428112 351.5794431999997 331.1791608 350.9006815999996 327.5732168C342.5705072000004 283.3083248000001 303.7670928000001 250.771424 258.2233105600002 250.771424C230.2408636800005 250.771424 204.2513508799997 263.043288 188.8544127999998 284.9015488L190.4017785600003 253.9359792C190.5694864000001 250.582576 187.89707408 247.771424 184.5406079999997 247.771424L166.7827825600001 247.771424C163.5416540800001 247.771424 160.9142788800004 250.4005088 160.91427888000
 04 253.6428528L160.9142788800004 328.76735264C160.9142788800004 332.00969712 163.5416540800001 334.63878112 166.7827825600001 334.63878112L241.8584540799997 334.63878112C245.0995825599998 334.63878112 247.7269577600004 332.00969712 247.7269577600004 328.76735264L247.7269577600004 310.9878526400001C247.7269577600004 307.6353696 244.9258255999998 304.9632128 241.5781737600004 305.1232416000001L204.60607664 309.0850424C216.5283587199996 291.3565216 236.44428336 280.5142816 258.2233105600002 280.5142816z" />
-    <glyph glyph-name="fast"
-      unicode="&#xF108;"
-      horiz-adv-x="320" d=" M295.973 352H180.572L215.19 481.816C219.25 497.044 207.756 512 192 512H56C43.971 512 33.8 503.095 32.211 491.172L0.215 251.1720000000001C-1.704 236.783 9.504 224 24.004 224H142.705L96.646 29.534C93.05 14.351 104.659 0 119.992 0C128.342 0 136.368 4.374 140.77 11.978L316.7430000000001 315.975C325.9870000000001 331.942 314.4550000000001 352 295.9730000000001 352z" />
-    <glyph glyph-name="fingerprint"
-      unicode="&#xF109;"
-      horiz-adv-x="512" d=" M198.8473759999997 69.8115520000001C175.7948960000003 92.8640479999999 165.1261439999999 106.6301600000002 149.9472159999996 134.0429439999998C133.0839040000001 164.1036479999998 124.2357920000004 200.7511199999999 124.2357920000004 240.159952C124.2357920000004 313.703536 187.0392000000002 373.5199360000002 264.0757919999997 373.5199360000002C341.1123680000001 373.5199360000002 403.9158079999998 313.7035040000001 403.9158079999998 240.159952C403.9158079999998 231.2308159999998 396.8449600000004 224.159952 387.9158079999998 224.159952C378.9866560000001 224.159952 371.9158079999998 231.2308159999998 371.9158079999998 240.159952C371.9158079999998 295.9849119999999 323.5885120000003 341.5199520000001 264.0758079999996 341.5199520000001C204.5631039999999 341.5199520000001 156.2358080000004 295.984896 156.2358080000004 240.159952C156.2358080000004 206.2166240000002 163.7722240000003 174.9857280000001 178.0510080000004 149.7051040000001C191.6408320000001 125.285
 9199999998 200.3410240000003 114.230208 221.8558400000002 92.4349440000001C227.8824800000002 86.0910560000002 227.8824800000002 76.2287999999999 221.6465280000002 69.6802240000002C218.329264 66.6644959999999 214.2679360000002 65.039984 210.0758239999996 65.039984C205.7350079999997 65.039984 201.5739519999997 66.7737440000001 198.8473759999997 69.8115520000001zM305.5114240000003 131.4889600000001C268.6525279999996 156.4738560000001 246.6357920000001 197.0735199999999 246.6357920000001 240.159952C246.6357920000001 249.0890880000002 253.7066720000003 256.159952 262.6357920000001 256.159952C271.5649279999998 256.159952 278.6357920000001 249.0890880000002 278.6357920000001 240.159952C278.6357920000001 207.5885920000001 295.3078240000005 176.939648 323.4360800000004 158.0337439999999C339.7374879999998 147.0130880000002 358.8572160000004 141.6799999999998 382.1557599999997 141.6799999999998C388.4921279999999 141.6799999999998 397.9151359999996 142.5306879999998 406.3874400000004 144.013136
 C415.0970719999996 145.6260000000002 423.3919679999999 139.7998400000001 424.9689120000003 130.9683519999999C426.581776 122.2587199999998 420.7556160000004 113.9638239999999 411.9537440000004 112.39248C400.8680800000002 110.2531199999999 390.1723039999997 109.4399840000001 382.1557599999997 109.4399840000001C352.7702079999999 109.4399840000001 326.7927040000004 116.8889600000002 305.5114240000003 131.4889600000001zM329.7289760000004 60.6248959999998C291.02056 71.3366719999999 265.4320479999997 85.7974079999999 238.6975199999997 112.0414719999999C204.3265920000004 146.1668960000002 185.4357920000002 191.5947679999999 185.4357920000002 240.1599999999999C185.4357920000002 281.3138399999998 220.4103359999999 314.7200160000002 263.3557920000003 314.7200160000002C306.3012639999997 314.7200160000002 341.2757920000004 281.3138560000002 341.2757920000004 240.1599999999999C341.2757920000004 216.7314240000001 361.7688799999997 197.5999999999999 387.1957920000005 197.5999999999999C412.622704000
 0004 197.5999999999999 433.1157919999996 216.7314080000001 433.1157919999996 240.1599999999999C433.1157919999996 328.3612960000001 356.9735680000004 400.08 263.1157919999996 400.08C196.4003039999998 400.08 135.4604639999998 362.9602880000002 108.0797920000005 305.6247199999998C98.993888 286.753968 94.3157760000004 264.5478079999998 94.3157760000004 240.1599839999999C94.3157760000004 212.6229600000002 98.3163359999999 186.4572159999998 110.1291680000004 154.9559039999999C113.3395520000004 146.6088639999998 109.1273920000003 137.2819359999999 100.8717120000001 134.4266240000002C92.6151520000003 131.2510080000002 83.2601439999999 135.5764640000002 80.3292959999999 143.718672C68.3969280000001 175.6194719999999 62.5557920000001 207.2941599999999 62.5557920000001 240.1600319999998C62.5557920000001 269.4816160000001 68.178672 296.2367039999999 79.2650560000002 319.6412639999999C111.8755520000004 388.0497599999999 184.1168960000005 432.3200160000001 263.1157919999996 432.3200160000001C374.4
 936960000005 432.3200160000001 465.1157919999996 346.3238240000001 465.1157919999996 240.4000160000001C465.1157919999996 199.2461600000002 430.1412799999998 165.8400000000002 387.1957920000005 165.8400000000002C344.2503040000002 165.8400000000002 309.2757920000004 199.2461600000002 309.2757920000004 240.4000160000001C309.2757920000004 263.8285919999999 288.7827040000002 282.960016 263.3557920000003 282.960016C237.9288800000004 282.960016 217.4357920000002 263.8286079999998 217.4357920000002 240.4000160000001C217.4357920000002 200.3504320000002 232.9033600000003 162.9959680000002 261.1292160000003 135.0033600000002C283.5484479999996 112.8200959999999 304.8367040000003 100.7499680000001 337.7996160000003 91.6319840000001C346.3564800000004 89.413552 351.3377600000004 80.5468799999999 349.104496 72.2702559999998C347.5418239999999 65.0820159999998 341.0214720000004 60 333.9157759999998 60C332.6766559999997 60 331.3167999999996 60.2266559999998 329.7289760000004 60.6248959999998z" />
-    <glyph glyph-name="guard"
-      unicode="&#xF10A;"
-      horiz-adv-x="512" d=" M496 384C496 162.718 360.0660000000001 39.355 274.461 3.692A48 48 0 0 0 237.538 3.692C130.495 48.287 16 185.513 16 384A48 48 0 0 0 45.539 428.308L237.539 508.308A48 48 0 0 0 274.462 508.308L466.462 428.308A48 48 0 0 0 496 384zM256 65.687L256.066 65.653C349.801 112.342 428.563 221.961 431.883 373.382L256 446.6670000000001V65.687z" />
-    <glyph glyph-name="hibernating"
-      unicode="&#xF10B;"
-      horiz-adv-x="512" d=" M189.0312960000001 381.0658400000002L189.0312960000001 343.85032L120.4904800000004 211.5879359999999L189.0312960000001 211.5879359999999L189.0312960000001 170.6240800000001L65.8720000000003 170.6240800000001L65.8720000000003 209.9815039999999L137.0902079999996 340.1019839999999L65.8720000000003 340.1019839999999L65.8720000000003 381.0658400000002L189.0312960000001 381.0658400000002zM344.8545919999997 320.8248800000001L344.8545919999997 289.4995840000002L275.242816 208.107344L344.8545919999997 208.107344L344.8545919999997 170.6240800000001L221.6952959999999 170.6240800000001L221.6952959999999 205.1622240000002L287.8264799999997 283.073872L221.6952959999999 283.073872L221.6952959999999 320.8248800000001L344.8545919999997 320.8248800000001zM465.8720000000003 283.274688L465.8720000000003 259.7807039999998L413.6631680000001 198.7365279999999L465.8720000000003 198.7365279999999L465.8720000000003 170.6240800000001L373.502528 170.6240800000001L373.502528 196.5276
 960000001L423.1009119999999 254.9614240000001L373.502528 254.9614240000001L373.502528 283.274688L465.8720000000003 283.274688z" />
-    <glyph glyph-name="hsdir"
-      unicode="&#xF10C;"
-      horiz-adv-x="512" d=" M452.9230767999998 352C459.0403071999999 352 464 356.8357 464 362.8L464 398.8C464 404.7643000000001 459.0403071999999 409.6 452.9230767999998 409.6L434.4615391999996 409.6L434.4615391999996 452.8C434.4615391999996 476.659 414.6246160000001 496 390.1538464000005 496L124.3076923199997 496C99.8369230400003 496 80 476.659 80 452.8L80 78.4C80 54.5409999999999 99.8369230400003 35.2 124.3076923199997 35.2L390.1538464000005 35.2C414.6246160000001 35.2 434.4615391999996 54.5409999999999 434.4615391999996 78.4L434.4615391999996 121.6L452.9230767999998 121.6C459.0403071999999 121.6 464 126.4356992000001 464 132.4L464 168.4C464 174.3643008 459.0403071999999 179.2000000000001 452.9230767999998 179.2000000000001L434.4615391999996 179.2000000000001L434.4615391999996 236.8L452.9230767999998 236.8C459.0403071999999 236.8 464 241.6356992 464 247.6L464 283.6C464 289.5643008 459.0403071999999 294.4 452.9230767999998 294.4L434.4615391999996 294.4L434.4615391999996 352L452.923
 0767999998 352z M178.1093038400004 437.4980121600001L178.1093038400004 364.11513232L207.9970329600001 364.11513232L207.9970329600001 437.4980121600001L251.2491935999997 437.4980121600001L251.2491935999997 246.5081328L207.9970329600001 246.5081328L207.9970329600001 328.3956512L178.1093038400004 328.3956512L178.1093038400004 246.5081328L134.8571428799996 246.5081328L134.8571428799996 437.4980121600001L178.1093038400004 437.4980121600001zM351.8469168000002 400.3205928C348.6070384000004 401.77853824 345.5292 402.7909849600001 342.6133087999997 403.35796368C339.6974191999998 403.9249424 336.6195808000002 404.20842752 333.3797023999996 404.20842752C326.7379504000001 404.20842752 321.7567120000004 402.75050416 318.4358368000003 399.8346136C315.1149616000003 396.91872288 313.4545488000004 393.11192288 313.4545488000004 388.4140992C313.4545488000004 384.68823888 314.2645071999996 381.56990272 315.8844464000004 379.0589969600001C317.5043856000002 376.5480910400001 319.7317679999997 374.442201
 76 322.5666608000002 372.7412656C325.4015552000001 371.0403292800001 328.6818831999999 369.6229038400001 332.4077423999998 368.4889464000001C336.1336031999999 367.35498896 340.1428928000005 366.1805505600001 344.4357312000002 364.96559616C348.7285712000003 363.75064176 353.1428384000001 362.37371408 357.6786688000002 360.8347718400001C362.2144992000003 359.2958296 366.6692640000001 357.39242944 371.0431007999996 355.12451456C380.2767536000001 350.2646969600001 386.8779071999998 343.9470288 390.8467584 336.17132048C394.8156096000003 328.3956128 396.8000048000004 318.9191104 396.8000048000004 307.7415296000001C396.8000048000004 285.8723504 391.0493072 269.5922048 379.5477392000003 258.9006064C368.0461696000002 248.2090064 351.6850287999996 242.863288 330.4638255999999 242.863288C318.8002640000004 242.863288 309.1617696000003 244.3617088 301.5480559999997 247.3585968C293.9343408000005 250.3554848 287.8596592000004 254.4862672 283.3238303999997 259.7510704C278.7880000000005 265.015872 2
 75.6291664000001 271.0905536 273.8472336000005 277.9752944C272.0652991999996 284.8600368 271.1743471999999 292.190152 271.1743471999999 299.9658592000001L271.1743471999999 302.8817360000001L311.2676416000004 302.8817360000001L311.2676416000004 299.9658592000001C311.2676416000004 297.6979456000001 311.5511263999997 295.430064 312.1181055999996 293.1621488000001C312.6850848000004 290.8942336 313.7785264000004 288.8288432 315.3984656000003 286.965912C317.0184048000001 285.1029824 319.1242943999996 283.5640640000001 321.7161984000004 282.3491088000001C324.3081007999999 281.1341552 327.7099215999997 280.5266864 331.9217632 280.5266864C336.2956000000004 280.5266864 339.9404080000004 281.2556480000001 342.8562991999998 282.7135936C345.7721887999997 284.1715392 348.0805680000003 286.0749392 349.7815039999996 288.4238512C351.4824399999998 290.7727632 352.6568784000001 293.4861200000001 353.3048544000003 296.5640048C353.9528303999996 299.6418896 354.2768127999998 302.8817184 354.2768127999998
  306.283592C354.2768127999998 309.685464 353.6288480000003 312.7633024 352.3328959999999 315.5171984C351.0369440000004 318.271096 348.0401024000003 320.700968 343.3422784000004 322.806888C339.7784112 324.5888224000001 335.5261360000004 326.1682384000001 330.5853200000002 327.5451872C325.6445056000003 328.922136 320.5417743999997 330.501552 315.2769712 332.2834864C310.0121695999997 334.0654192 304.7474448000003 336.21180624 299.4826432 338.722712C294.2178400000003 341.23361776 289.5200880000002 344.5139454400001 285.3892415999999 348.5637936000001C281.2583967999999 352.6136416 277.9375712000001 357.59488 275.4266656 363.5076580800001C272.9157599999999 369.42043632 271.6603263999996 376.66955552 271.6603263999996 385.25523344C271.6603263999996 395.94683232 273.3612368000004 404.85636432 276.7631087999999 411.98409696C280.1649808000002 419.1118296 284.8627343999997 424.8220296 290.8565104 429.11486864C296.8502847999999 433.4077075200001 303.7754207999997 436.4855459200001 311.632126399
 9999 438.348476C319.488832 440.21140608 327.9528879999998 441.1428571200001 337.0245471999997 441.1428571200001C341.8843648000002 441.1428571200001 346.7846063999996 440.89986992 351.7254223999999 440.41388816C356.6662367999998 439.9279064 361.5259808000001 439.03695312 366.3048016000003 437.74100176C371.0836224000004 436.4450504 375.5788863999997 434.70364192 379.790728 432.51672384C384.0025711999997 430.32980592 387.8093712 427.6164484800001 391.2112432000004 424.37657008L391.2112432000004 387.92811984L351.8469168000002 387.92811984L351.8469168000002 400.3205928z" />
-    <glyph glyph-name="ipv4"
-      unicode="&#xF10D;"
-      horiz-adv-x="512" d=" M244.6880000000001 453.7919999999999L244.6880000000001 417.8880000000001L209.0560000000001 417.8880000000001L209.0560000000001 275.904L244.6880000000001 275.904L244.6880000000001 240L124.7360000000001 240L124.7360000000001 275.904L160.368 275.904L160.368 417.8880000000001L124.7360000000001 417.8880000000001L124.7360000000001 453.7919999999999L244.6880000000001 453.7919999999999zM338.528 453.7919999999999C353.3974080000001 453.7919999999999 365.7279504000001 452.6133451200001 375.52 450.2560000000001C385.3120496 447.8986548800001 393.0639712 443.86402856 398.7760000000001 438.1520000000001C404.4880288 432.4399714399999 408.4773216 424.7787147200001 410.7440000000001 415.168C413.0106784 405.55728528 414.144 393.58940496 414.144 379.264C414.144 364.7572608000001 413.0106784 352.78938048 410.7440000000001 343.36C408.4773216 333.93061952 404.4880288 326.36002864 398.7760000000001 320.648C393.0639712 314.93597152 385.3120496 310.94667808 375.52 308.680000000000
 1C365.7279504000001 306.4133219200001 353.3974080000001 305.28 338.528 305.28L326.288 305.28L326.288 240L277.8720000000001 240L277.8720000000001 453.7919999999999L338.528 453.7919999999999zM326.288 345.264L342.88 345.264C347.5946896000001 345.264 351.4933184 345.6266630400001 354.576 346.352C357.6586816 347.0773369600001 360.0613248 348.5733220800001 361.784 350.8400000000001C363.5066752 353.1066779200001 364.7306624000001 356.41597824 365.456 360.7680000000001C366.1813376 365.12002176 366.544 371.01329616 366.544 378.448C366.544 385.7013696 366.1813376 391.54931104 365.456 395.992C364.7306624000001 400.43468896 363.5066752 403.87998784 361.784 406.328C360.0613248 408.77601232 357.6586816 410.3626630400001 354.576 411.088C351.4933184 411.81333696 347.5946896000001 412.1760000000001 342.88 412.1760000000001L326.288 412.1760000000001L326.288 345.264zM159.0080000000001 200.592L184.3040000000001 108.656L213.136 200.592L258.288 200.592L205.2480000000001 48L161.7280000000001 48L111.136 20
 0.592L159.0080000000001 200.592zM396.192 261.7920000000001L396.192 132.048L415.232 132.048L415.232 95.056L396.192 95.056L396.192 48L352.6720000000001 48L352.6720000000001 95.056L271.072 95.056L271.072 132.864L357.2960000000001 261.7920000000001L396.192 261.7920000000001zM352.6720000000001 132.048L352.6720000000001 194.608L310.784 132.048L352.6720000000001 132.048z" />
-    <glyph glyph-name="ipv6"
-      unicode="&#xF10E;"
-      horiz-adv-x="512" d=" M244.6880000000001 453.7919999999999L244.6880000000001 417.8880000000001L209.0560000000001 417.8880000000001L209.0560000000001 275.904L244.6880000000001 275.904L244.6880000000001 240L124.7359999999999 240L124.7359999999999 275.904L160.368 275.904L160.368 417.8880000000001L124.7359999999999 417.8880000000001L124.7359999999999 453.7919999999999L244.6880000000001 453.7919999999999zM338.5280000000003 453.7919999999999C353.3974079999998 453.7919999999999 365.7279503999999 452.6133451200001 375.52 450.2560000000001C385.3120496000002 447.8986548800001 393.0639712000002 443.86402856 398.7759999999999 438.1520000000001C404.4880288 432.4399714399999 408.4773215999999 424.7787147200001 410.7440000000002 415.168C413.0106784 405.55728528 414.1440000000003 393.58940496 414.1440000000003 379.264C414.1440000000003 364.7572608000001 413.0106784 352.78938048 410.7440000000002 343.36C408.4773215999999 333.93061952 404.4880288 326.36002864 398.7759999999999 320.648C393.06397
 12000002 314.93597152 385.3120496000002 310.94667808 375.52 308.6800000000001C365.7279503999999 306.41332208 353.3974079999998 305.28 338.5280000000003 305.28L326.288 305.28L326.288 240L277.8719999999999 240L277.8719999999999 453.7919999999999L338.5280000000003 453.7919999999999zM326.288 345.264L342.8800000000001 345.264C347.5946896000001 345.264 351.4933184000002 345.6266630400001 354.576 346.352C357.6586815999999 347.0773369600001 360.0613248 348.5733220800001 361.7840000000001 350.8400000000001C363.5066752000003 353.1066779200001 364.7306624000003 356.41597824 365.4560000000002 360.7680000000001C366.1813376 365.12002176 366.5439999999999 371.01329616 366.5439999999999 378.448C366.5439999999999 385.7013696 366.1813376 391.54931104 365.4560000000002 395.992C364.7306624000003 400.43468896 363.5066752000003 403.87998784 361.7840000000001 406.328C360.0613248 408.77601232 357.6586815999999 410.3626630400001 354.576 411.088C351.4933184000002 411.81333696 347.5946896000001 412.1760000000
 001 342.8800000000001 412.1760000000001L326.288 412.1760000000001L326.288 345.264zM159.0079999999998 200.592L184.3040000000001 108.656L213.136 200.592L258.288 200.592L205.2480000000001 48L161.7280000000001 48L111.136 200.592L159.0079999999998 200.592zM366.8159999999998 224.8C365.0026576 226.2506736000001 362.6000144 227.2933296 359.6080000000002 227.928C356.6159856 228.5626704 353.5786816 228.88 350.4960000000001 228.88C345.7813104000002 228.88 341.7013504000002 227.7466784000001 338.2559999999999 225.48C334.8106496000001 223.2133216 331.9546783999999 220.0400208 329.6880000000001 215.96C327.4213215999999 211.8799792 325.698672 207.0293616 324.52 201.408C323.341328 195.7866384 322.4800031999999 189.5307008 321.9360000000002 182.64C327.1946927999998 184.6346768 332.4986399999998 185.9493296000001 337.848 186.5840000000001C343.1973600000001 187.2186704000001 348.3199759999998 187.5360000000001 353.2159999999999 187.5360000000001C364.0960544 187.5360000000001 373.2532959999999 185.9946
 816 380.6880000000001 182.912C388.1227039999999 179.8293184 394.1519776 175.3413631999999 398.7759999999999 169.448C403.4000224000002 163.5546368 406.7546560000001 156.3920416000001 408.8400000000002 147.96C410.9253440000002 139.5279584 411.9679999999999 129.96272 411.9679999999999 119.264C411.9679999999999 103.8505904 410.109352 91.2480496000001 406.3919999999999 81.456C402.6746480000002 71.6639504 397.6426976000003 64.0026944 391.2959999999998 58.472C384.9493023999999 52.9413056000001 377.6507072 49.1333440000001 369.4000000000001 47.048C361.1492927999998 44.9626559999999 352.4907119999998 43.9200000000001 343.424 43.9200000000001C332.1812768 43.9200000000001 322.4347072000001 45.4159856 314.1840000000002 48.408C305.9332927999999 51.4000143999999 299.0426944000001 56.83996 293.5120000000002 64.7280000000001C287.9813055999998 72.61604 283.8560143999998 83.3599328 281.136 96.96C278.4159872 110.5600688 277.0560000000001 127.9678944 277.0560000000001 149.184C277.0560000000001 169.3121
 008000001 278.3706527999998 186.7199264 281 201.408C283.6293472000002 216.0960736 287.845304 228.199952 293.6480000000002 237.7200000000001C299.4506959999999 247.240048 307.0666191999999 254.3119776 316.4960000000001 258.9360000000001C325.9253807999999 263.5600224 337.3492655999999 265.8720000000001 350.7680000000001 265.8720000000001C363.098728 265.8720000000001 374.4319488000001 264.1493504 384.7680000000001 260.704C395.1040512 257.2586496 402.9013071999998 252.8160272 408.1599999999999 247.376L408.1599999999999 206.304L366.8159999999998 206.304L366.8159999999998 224.8zM344.2399999999998 154.0799999999999C341.1573183999999 154.0799999999999 337.6213536 153.7173376000001 333.6320000000001 152.992C329.6426464000001 152.2666624 325.562688 151.1786736 321.3919999999999 149.7280000000001C321.5733344 135.9465984000001 322.1626624000001 124.6587104 323.1599999999999 115.864C324.1573376000001 107.0692896000001 325.6079903999999 100.0880256 327.5120000000002 94.9200000000001C329.4160096000
 001 89.7519744 331.8186528000001 86.1706768 334.7200000000003 84.1759999999999C337.6213472 82.1813232 341.1573119999998 81.184 345.328 81.184C352.7627039999998 81.184 358.5199791999999 84.2213024 362.5999999999999 90.2960000000001C366.6800208 96.3706976000001 368.7200000000003 105.6639376000001 368.7200000000003 118.1759999999999C368.7200000000003 123.4346928 368.3120048000001 128.2853104000001 367.4960000000001 132.7280000000001C366.6799952000001 137.1706896000001 365.3200096000001 140.9786512000001 363.4160000000002 144.1520000000001C361.5119903999999 147.3253488 358.9733488000002 149.7733248 355.8000000000002 151.496C352.6266512000002 153.2186752 348.7733567999999 154.0799999999999 344.2399999999998 154.0799999999999z" />
-    <glyph glyph-name="ipv6exit"
-      unicode="&#xF10F;"
-      horiz-adv-x="347.08537485250696" d=" M226.900593162086 212.6296858410254L117.2411193576932 212.6296858410254L117.2411193576932 130.3850908505497L62.4114011085707 130.3850908505497L172.0708562598897 20.7256170461573L281.7303300642825 130.3850908505497L226.900593162086 130.3850908505497z M69.3618079848193 424.9523213584622L95.0615988218449 331.5487735583611L124.3538266307687 424.9523213584622H170.2265853827663L116.3399271760999 269.9245508254372H72.1252194458459L20.7256377717949 424.9523213584622zM280.4869783287148 449.546745538513C278.6446763871798 451.0205746563583 276.2036936729691 452.0798744382578 273.1639058322554 452.7246759726667C270.1241387171794 453.3694712893852 267.0383399606124 453.6918793105633 263.906468111279 453.6918793105633C259.1165037889262 453.6918793105633 254.9714176858428 452.5404665041512 251.4710854482022 450.2376056577429C247.9707324849238 447.9347448113346 245.0691639225102 444.7107889533808 242.7663175840483 440.5656406733841C240.4634505199487 436.42
 04923933874 238.7132947639473 431.4924455819438 237.5158088647685 425.781353087025C236.3182815143142 420.0702605921064 235.443245087589 413.7144619007118 234.8905752307663 406.7137663369739C240.2332094099418 408.7402777470244 245.6218130536951 410.0759228201537 251.0565726927662 410.7207222819996C256.4913116061996 411.3655175987176 261.6957057814369 411.6879131845138 266.6698795723056 411.6879131845138C277.7236083189635 411.6879131845138 287.0270155045178 410.1219876226659 294.5804120135351 406.9901012653857C302.1337877969147 403.8582128355418 308.2592914916442 399.2986181221501 312.9571303541013 393.3111803360012C317.6549692165585 387.3237446224161 321.0631552686658 380.0468156858919 323.181792138612 371.4801759072319C325.3004082829204 362.9135444188271 326.3597163550746 353.1956037521991 326.3597163550746 342.3261051996947C326.3597163550746 326.6666630504752 324.4714034976863 313.862944352918 320.6947156059966 303.914596771181C316.9180277143068 293.9662491894439 311.8057382733271 
 286.1826944729709 305.3577436548685 280.5637046397462C298.9097283107721 274.9447355321594 291.494633982606 271.0759843574874 283.1122119627169 268.9573474875412C274.7298106684655 266.8387313432321 265.9330209726051 265.7794232710782 256.721573441844 265.7794232710782C245.2993843068791 265.7794232710782 235.3972341717354 267.2992342888839 227.0148328774841 270.339063580873C218.632410857595 273.3788306959488 211.6318292848648 278.9056121667267 206.0128394516402 286.9195737983088C200.3938703440534 294.9335354298909 196.202731873841 305.8489205444222 193.4392996871765 319.6660814777446C190.675867500512 333.483242411067 189.2941721328176 351.1689472626838 189.2941721328176 372.7237141735392C189.2941721328176 393.1731123548564 190.629732230832 410.8588130613457 193.301121860152 425.7813468693339C195.9724285869209 440.7038806773221 200.2556925170288 453.0009694498029 206.1510172786648 462.6729821031286C212.0463420403007 472.3449947564543 219.783823664007 479.5298106684655 229.3637315830749
  484.2276453857951C238.943618776505 488.9254801031248 250.5498723005212 491.2743622282053 264.1828030396901 491.2743622282053C276.7103526139382 491.2743622282053 288.2244806780588 489.524206472204 298.725539567894 486.023868016872C309.2265777320915 482.5235191987211 317.1482895499514 478.0099809975858 322.4909237291269 472.4831166242569V430.7554999345641H280.4869783287148zM257.5505989527159 377.6978672387695C254.4187063777445 377.6978672387695 250.8262901314837 377.3294068504625 246.7732673113827 376.5925067994863C242.7202237656438 375.8555860228724 238.5751376625604 374.7502255835892 234.3378846483058 373.2764047559991C234.5223428244748 359.2750136285232 235.1208992433242 347.8069379315316 236.1341756739872 338.8718460548198C237.1474521046503 329.9367334524703 238.6211693040515 322.8440471454823 240.5555759798442 317.5935177005646C242.4898997530858 312.342988255647 244.9309653698478 308.7045403678951 247.8786277506658 306.6780082322067C250.8262901314837 304.6514553708807 254.418706
 3777445 303.6382618427687 258.6559593919991 303.6382618427687C266.2093559010163 303.6382618427687 272.0585246673345 306.7240398736979 276.2036729473312 312.8956995637452C280.3488212273279 319.0673799794303 282.4213642788697 328.5089649920091 282.4213642788697 341.2207447604107C282.4213642788697 346.5633789395862 282.0068515234338 351.4914381864125 281.1778260125619 356.0050261290784C280.3488005016902 360.518634797382 278.9671051339957 364.3873859720541 277.032698458203 367.6113894989748C275.0983746849614 370.8353950984592 272.5191312411748 373.3224467603092 269.2951339319456 375.0726190968209C266.0711158970784 376.8227935058965 262.1563123552775 377.6978672387695 257.5505989527159 377.6978672387695z" />
-    <glyph glyph-name="noedconsensus"
-      unicode="&#xF110;"
-      horiz-adv-x="384" d=" M202.021 512C122.202 512 70.503 479.297 29.914 420.974C22.551 410.394 24.821 395.8880000000001 35.092 388.1L78.23 355.391C88.603 347.526 103.362 349.365 111.483 359.539C136.532 390.92 155.113 408.988 194.24 408.988C225.004 408.988 263.0560000000001 389.189 263.0560000000001 359.357C263.0560000000001 336.805 244.4390000000001 325.223 214.0630000000001 308.193C178.6400000000001 288.333 131.7640000000001 263.617 131.7640000000001 201.788V192C131.7640000000001 178.745 142.5090000000001 168 155.7640000000001 168H228.2350000000001C241.4900000000001 168 252.2350000000001 178.745 252.2350000000001 192V197.773C252.2350000000001 240.6330000000001 377.5030000000001 242.418 377.5030000000001 358.4000000000001C377.504 445.7440000000001 286.902 512 202.021 512zM192 138.541C153.804 138.541 122.729 107.466 122.729 69.27C122.729 31.075 153.804 0 192 0S261.271 31.075 261.271 69.271S230.1960000000001 138.541 192 138.541z" />
-    <glyph glyph-name="notrecommended"
-      unicode="&#xF111;"
-      horiz-adv-x="576" d=" M569.517 71.987C587.975 39.993 564.806 0 527.94 0H48.054C11.117 0 -11.945 40.055 6.477 71.987L246.423 488.015C264.89 520.024 311.1430000000001 519.966 329.577 488.015L569.517 71.987zM288 158C262.5950000000001 158 242 137.405 242 112S262.5950000000001 66 288 66S334 86.595 334 112S313.405 158 288 158zM244.327 323.346L251.745 187.346C252.092 180.982 257.354 176 263.727 176H312.273C318.646 176 323.908 180.982 324.255 187.346L331.673 323.346C332.048 330.2200000000001 326.575 336 319.6910000000001 336H256.3080000000001C249.4240000000001 336 243.9520000000001 330.2200000000001 244.3270000000001 323.346z" />
-    <glyph glyph-name="onion-alt"
-      unicode="&#xF112;"
-      horiz-adv-x="333.5396085740914" d=" M285.8229263746506 251.9440820130475C269.5992544268407 266.7362534948742 249.0810810810811 278.6654240447344 228.0857409133272 290.5945945945946C218.542404473439 295.8434296365331 189.4352283317801 318.7474370922647 199.4557315936627 351.1947809878845L181.3233923578752 358.829450139795C209.9534016775396 403.2059645852749 247.1724137931035 447.1053122087605 292.9804287045667 488.1416589002796C256.2385834109972 475.7353215284249 223.7912395153775 456.6486486486486 199.4557315936627 422.7698042870457C213.7707362534949 452.8313140726934 237.1519105312209 482.4156570363467 262.9189189189189 512.4771668219944C227.6085740913327 487.1873252562908 197.0698974836906 458.5573159366263 177.9832246039143 420.3839701770736L191.3438956197577 473.8266542404473C172.2572227399814 439.47064305685 158.896551724138 404.6374650512581 153.6477166821995 369.8042870456664L125.4948741845294 381.2562907735321L120.7232059645853 377.4389561975769C145.5358807082946 333.0
 624417520969 132.6523765144455 309.6812674743709 120.2460391425909 301.569431500466C95.4333643988817 284.8685927306617 59.645852749301 263.3960857409133 41.5135135135135 244.7865796831314C7.1575023299161 209.4762348555452 -2.8630009319665 176.0745573159366 0.4771668219944 131.6980428704566C3.8173345759553 74.915191053122 45.3308480894688 27.6756756756756 100.2050326188257 9.0661696178937C124.5405405405406 0.9543336439887 146.9673811742777 -1e-13 171.780055917987 -1e-13C211.8620689655173 -1e-13 252.8984156570364 10.4976700838769 282.9599254426841 35.7875116495805C314.9301025163095 62.031686859273 333.5396085740914 102.1136999068033 333.5396085740914 143.1500465983224C333.5396085740914 184.663560111836 316.3616029822927 224.2684063373719 285.8229263746506 251.9440820130475zM88.7530288909599 26.2441752096924C44.37651444548 47.7166821994408 14.7921714818267 94.0018639328984 12.883504193849 131.6980428704566C9.0661696178938 208.5219012115563 45.8080149114632 230.9487418452936 80.16402609
 50606 259.1015843429637C99.2506989748369 274.8480894687791 125.9720410065238 282.4827586206897 141.2413793103449 310.6356011183597C144.1043802423113 316.8387698042871 146.0130475302889 330.1994408201305 142.1957129543337 344.5144454799627C140.7642124883505 349.2861136999068 133.6067101584343 366.4641192917055 130.7437092264679 370.2814538676608L173.2115563839702 351.6719478098788L173.2115563839702 351.6719478098788L173.2115563839702 351.6719478098788C172.2572227399814 331.6309412861137 171.780055917987 315.4072693383038 175.5973904939423 300.6150978564772C179.8918918918919 284.3914259086673 200.8872320596459 261.0102516309413 209.4762348555453 233.81174277726C226.1770736253496 182.2777260018639 221.8825722273999 114.9972041006524 209.9534016775397 62.5088536812675C208.0447343895621 53.9198508853681 201.8415657036347 43.4221808014912 194.2068965517242 33.878844361603C197.0698974836907 39.1276794035414 199.4557315936627 44.37651444548 200.8872320596459 50.1025163094129C212.81640260950
 61 92.5703634669152 218.0652376514446 112.134203168686 212.3392357875117 158.896551724138C211.3849021435229 163.6682199440821 209.4762348555453 178.9375582479031 202.3187325256291 195.6383970177074C192.2982292637465 220.928238583411 177.0288909599255 244.7865796831314 175.1202236719479 250.0354147250699C171.780055917987 258.1472506989749 167.0083876980429 292.5032618825722 166.5312208760485 315.8844361602983C167.0083876980429 295.8434296365331 168.4398881640261 259.1015843429637 173.6887232059646 244.7865796831314C175.1202236719478 240.0149114631873 188.9580615097857 218.5424044734389 198.9785647716682 192.2982292637465C205.65890027959 174.165890027959 207.0904007455732 157.4650512581547 208.5219012115564 152.6933830382106C213.2935694315005 131.2208760484622 207.5675675675676 94.9561975768872 199.9328984156571 60.6001863932899C197.547064305685 48.1938490214353 190.8667287977633 33.878844361603 182.2777260018639 22.9040074557315C187.049394221808 29.5843429636533 190.8667287977633 38.
 1733457595526 193.7297297297297 48.1938490214351C199.4557315936627 68.2348555452003 201.8415657036347 94.0018639328984 201.3643988816403 110.2255358807083C200.8872320596459 119.7688723205964 196.5927306616962 140.2870456663559 189.4352283317801 158.8965517241379C185.1407269338304 168.9170549860205 178.9375582479031 179.4147250698974 174.6430568499534 186.5722273998136C169.8713886300093 193.7297297297297 169.8713886300093 209.4762348555452 167.9627213420317 227.6085740913327C168.4398881640261 208.044734389562 166.5312208760485 198.0242311276794 171.3028890959926 184.1863932898415C174.165890027959 176.0745573159366 184.663560111836 164.6225535880708 187.5265610438024 153.6477166821994C191.8210624417521 138.8555452003727 196.1155638397018 122.6318732525628 195.6383970177074 112.6113699906803C195.6383970177074 101.1593662628145 195.161230195713 80.1640260950605 189.9123951537745 57.260018639329C186.5722273998136 40.0820130475303 178.9375582479031 25.2898415657036 166.5312208760485 15.74
 65051258154C171.780055917987 22.4268406337372 174.6430568499535 29.1071761416588 176.0745573159366 35.7875116495806C177.9832246039143 45.8080149114631 178.4603914259087 55.3513513513513 179.4147250698975 67.2805219012115C180.3690587138864 77.301025163094 179.8918918918919 90.1845293569431 177.0288909599255 104.0223671947809C173.2115563839702 121.2003727865796 167.0083876980429 138.3783783783783 164.1453867660764 150.3075489282385C164.6225535880709 136.9468779123952 169.8713886300093 120.2460391425909 172.2572227399814 102.5908667287977C174.165890027959 89.7073625349487 173.2115563839702 76.8238583410997 172.7343895619758 65.3718546132339C172.2572227399814 52.0111835973905 167.9627213420317 28.6300093196645 162.2367194780988 17.1780055917987C156.5107176141659 19.5638397017707 154.6020503261883 22.9040074557316 150.784715750233 27.6756756756757C146.0130475302889 33.878844361603 143.1500465983225 40.5591798695247 140.2870456663561 48.1938490214353C137.901211556384 53.9198508853681 135.
 515377446412 60.6001863932899 134.0838769804287 67.757688723206C132.6523765144455 79.2096924510718 133.1295433364399 96.8648648648648 146.0130475302889 114.9972041006524C156.0335507921715 129.3122087604846 157.9422180801491 130.2665424044735 161.28238583411 146.9673811742778C156.510717614166 132.1752096924511 153.1705498602051 130.7437092264679 142.6728797763281 118.3373718546133C130.7437092264679 104.4995340167754 128.8350419384903 84.4585274930103 128.8350419384903 68.2348555452004C128.8350419384903 61.5545200372787 131.6980428704567 53.9198508853681 134.0838769804288 46.762348555452C136.9468779123952 39.1276794035415 139.8098788443617 31.493010251631 143.6272134203169 25.767008387698C146.4902143522834 20.995340167754 150.3075489282387 17.6551724137931 153.6477166821995 15.269338303821C141.2413793103449 18.6095060577819 128.3578751164959 23.381174277726 120.2460391425909 30.0615097856477C100.2050326188258 47.2395153774463 82.5498602050327 76.3466915191053 80.1640260950606 102.1136
 999068033C78.255358807083 123.1090400745573 97.3420316868593 153.6477166821994 124.5405405405406 168.9170549860205C147.4445479962722 182.2777260018639 152.6933830382107 197.0698974836906 157.4650512581548 221.4054054054054C150.7847157502331 200.4100652376514 144.1043802423114 182.2777260018639 122.1547064305686 171.3028890959925C90.6616961789376 154.1248835041938 74.4380242311277 126.4492078285181 75.8695246971109 99.7278657968312C78.2553588070829 65.8490214352283 91.6160298229264 42.4678471575023 118.8145386766077 23.8583410997203C125.017707362535 19.5638397017706 133.6067101584343 15.269338303821 142.6728797763281 11.9291705498601C108.7940354147251 20.0410065237651 104.4995340167754 24.8126747437091 93.0475302889096 38.1733457595525C93.0475302889096 39.1276794035414 90.1845293569432 41.036346691519 90.1845293569432 41.5135135135134C74.9151910531221 58.6915191053121 55.8285181733458 88.2758620689654 49.148182665424 115.4743709226467C46.762348555452 125.0177073625349 44.37651444548 
 135.0382106244174 47.2395153774464 144.5815470643056C59.645852749301 189.43522833178 86.8443616029823 206.6132339235787 114.0428704566636 225.2227399813606C120.7232059645853 229.9944082013046 127.403541472507 234.2889095992544 133.6067101584343 239.0605778191984C148.8760484622554 250.9897483690586 152.6933830382107 282.0055917986952 156.0335507921715 299.6607642124883C149.8303821062442 278.1882572227399 143.1500465983225 251.4669151910531 131.2208760484623 242.8779123951537C125.017707362535 238.1062441752096 117.3830382106245 234.2889095992544 111.1798695246971 229.9944082013046C83.0270270270271 210.9077353215283 54.874184529357 192.7753960857408 41.9906803355079 146.4902143522832C39.1276794035415 134.561043802423 41.0363466915191 125.9720410065236 43.8993476234856 114.5200372786578C51.0568499534017 86.3671947809877 70.143522833178 55.8285181733456 86.3671947809879 37.696178937558C86.3671947809879 37.696178937558 89.2301957129544 34.8331780055916 89.2301957129544 34.8331780055916C96
 .3876980428705 26.7213420316867 105.4538676607643 20.5181733457594 116.4287045666357 16.2236719478096C106.4082013047531 18.6095060577819 97.3420316868593 21.9496738117427 88.7530288909599 26.2441752096924z" />
-    <glyph glyph-name="onion"
-      unicode="&#xF113;"
-      horiz-adv-x="512" d=" M198.5300319999997 313.1915680000002C180.5147040000002 365.9338560000001 152.4059360000001 395.8352639999998 152 396.2267040000002L204.2640160000001 430.1897760000002C205.3681919999999 429.1029440000002 216.5102559999996 417.039264 229.8272159999997 396.6342559999998L229.8272159999997 512L296.7465759999996 512C296.7465759999996 512 297.0142400000005 410.7357280000001 296.7465759999996 403.3181920000002C314.6809599999997 420.48992 339.1399840000004 447.1441279999999 366.3427039999997 457.2243680000001L408 383.076208C374.2029439999997 370.5677759999999 352.6237600000004 338.001792 339.5471200000002 305.928144C339.7065279999997 305.8620639999999 339.8537280000001 305.7971520000001 339.9884160000002 305.733424C366.3900640000002 293.3918079999999 391.8492640000004 280.6537600000002 412.1234240000004 265.1290880000002C450.3139359999996 235.6712640000001 472 194.2682559999999 472 150.4779680000002C472 107.087008 448.4256480000004 65.2875680000002 408.82321599999
 98 37.42128C371.5785599999999 11.1465119999998 320.1906559999998 0 270.2146720000001 0C239.0975040000003 0 211.2805120000003 1.192192 181.1092159999998 9.5549919999999C112.2779039999996 29.0613920000001 60.8865599999999 78.8213759999999 56.6439360000004 138.5385919999999C52.8707999999997 185.1155199999998 65.1291840000004 220.545936 108.0352800000001 257.5678720000001C128.5335679999998 275.6151840000003 168.4076160000004 296.0478400000002 198.5300319999997 313.1915680000002z" />
-    <glyph glyph-name="reachableipv4"
-      unicode="&#xF114;"
-      horiz-adv-x="512" d=" M154.2776470399999 176.0752944000001L178.7858824 87.0023535999999L206.72 176.0752944000001L250.4658824000001 176.0752944000001L199.0776470400001 28.2352943999999L156.9129411199999 28.2352943999999L107.896470592 176.0752944000001L154.2776470399999 176.0752944000001zM384.0752944000001 235.3694112000001L384.0752944000001 109.6658815999999L402.5223536 109.6658815999999L402.5223536 73.8258816L384.0752944000001 73.8258816L384.0752944000001 28.2352943999999L341.9105887999999 28.2352943999999L341.9105887999999 73.8258816L262.8517648 73.8258816L262.8517648 110.4564704L346.3905888 235.3694112000001L384.0752944000001 235.3694112000001zM341.9105887999999 109.6658815999999L341.9105887999999 170.2776463999999L301.3270591999999 109.6658815999999L341.9105887999999 109.6658815999999z M114.823536 422.0172921599999L114.823536 430.2987665600001C114.823536 437.1594504 120.7490874720001 442.7209780799999 128.058830112 442.7209780799999L326.5882416000001 442.7209780799999L326.5
 882416000001 467.565401088C326.5882416000001 478.6247924720001 340.8707791999999 484.1500886399999 349.1825439999999 476.349457392L393.3001903999999 434.9420857600001C398.4685728000001 430.09069456 398.4685728000001 422.22536432 393.3001903999999 417.3744907200001L349.1825439999999 375.9671188800001C340.9022128000001 368.1970256 326.5882416000001 373.64520064 326.5882416000001 384.7506576000001L326.5882416000001 409.5950806400001L128.058830112 409.5950806400001C120.7490874720001 409.5950806400001 114.823536 415.1566083200001 114.823536 422.0172921599999zM383.9411824 343.34328592L185.41177136 343.34328592L185.41177136 368.18770896C185.41177136 379.219668 171.14963888 384.7920649600001 162.8174697599999 376.97176528L118.699822768 335.5643935999999C113.5314404112 330.7130024000001 113.5314404112 322.84767216 118.699822768 317.9967984L162.8174697599999 276.5894272000001C171.10496976 268.8115696 185.41177136 274.2773424 185.41177136 285.3729648000001L185.41177136 310.2173888L383.9411824 
 310.2173888C391.2509263999999 310.2173888 397.1764768 315.7789168 397.1764768 322.6396001600001L397.1764768 330.9210744C397.1764768 337.7817584 391.2509263999999 343.34328592 383.9411824 343.34328592z" />
-    <glyph glyph-name="reachableipv6"
-      unicode="&#xF115;"
-      horiz-adv-x="512" d=" M147.9200000000001 189.0799999999999L173.96 94.4400000000001L203.6399999999999 189.0799999999999L250.1199999999999 189.0799999999999L195.52 32L150.7199999999998 32L98.6399999999999 189.0799999999999L147.9200000000001 189.0799999999999zM361.8400000000002 214C359.9733248000003 215.4933408 357.500016 216.566664 354.4200000000001 217.22C351.3399840000002 217.8733360000001 348.2133488 218.2000000000001 345.04 218.2000000000001C340.1866432000002 218.2000000000001 335.9866848000002 217.0333456000001 332.4400000000001 214.7000000000001C328.8933152 212.3666544 325.9533455999999 209.1000208000001 323.6199999999999 204.9000000000001C321.2866543999999 200.6999791999999 319.5133391999998 195.706696 318.3000000000002 189.9200000000001C317.0866608000001 184.133304 316.2000032000001 177.6933696000001 315.6399999999999 170.5999999999999C321.0533599999999 172.6533440000001 326.5133056 174.006664 332.02 174.6600000000001C337.5266944 175.3133359999999 342.7999743999999 175.6
 399999999999 347.8400000000002 175.6399999999999C359.0400559999998 175.6399999999999 368.4666287999999 174.0533488000001 376.1199999999999 170.8800000000001C383.7733712 167.7066512000001 389.9799760000001 163.0866976 394.7399999999998 157.02C399.500024 150.9533024 402.9533231999999 143.5800432000001 405.0999999999999 134.9000000000001C407.2466768 126.2199568000001 408.3200000000002 116.3733887999999 408.3200000000002 105.3600000000001C408.3200000000002 89.4932544000001 406.4066864000002 76.5200512000001 402.58 66.4400000000001C398.7533136000002 56.3599503999999 393.5733664 48.4733615999999 387.04 42.78C380.5066336 37.0866384000001 372.9933759999999 33.1666768 364.5 31.02C356.0066240000001 28.8733232 347.0933808 27.8 337.7600000000002 27.8C326.1866095999999 27.8 316.1533760000002 29.339984 307.6599999999999 32.4200000000001C299.166624 35.500016 292.0733615999998 41.09996 286.3800000000001 49.22C280.6866384 57.3400400000001 276.4400144000001 68.3999296 273.6399999999999 82.40000000000
 01C270.8399856000001 96.4000704 269.4400000000001 114.3198912 269.4400000000001 136.1600000000001C269.4400000000001 156.8801040000001 270.7933199999998 174.7999248000001 273.5 189.9200000000001C276.2066800000003 205.0400752000001 280.5466367999998 217.4999504 286.52 227.3C292.4933632000002 237.1000495999999 300.3332848 244.379976 310.04 249.1399999999999C319.7467152 253.9000240000001 331.5065983999998 256.28 345.3200000000002 256.28C358.0133968 256.28 369.6799472000003 254.5066847999999 380.3200000000002 250.9600000000001C390.9600528000001 247.4133152 398.9866400000001 242.8400288000001 404.4000000000001 237.24L404.4000000000001 194.96L361.8400000000002 194.96L361.8400000000002 214zM338.5999999999999 141.2000000000001C335.4266511999999 141.2000000000001 331.7866880000002 140.8266704 327.6799999999999 140.0799999999999C323.5733135999999 139.3333296000001 319.3733551999999 138.2133408 315.08 136.72C315.2666672000001 122.5332624 315.8733280000002 110.9133792 316.9000000000001 101.86000
 00000001C317.9266720000001 92.8066208 319.4199904000002 85.6200272000001 321.3800000000001 80.3C323.3400096000001 74.9799728 325.8133183999999 71.2933439999999 328.8000000000002 69.24C331.7866816000001 67.1866560000001 335.4266447999999 66.1600000000001 339.7199999999998 66.1600000000001C347.3733711999999 66.1600000000001 353.2999792000001 69.2866352000001 357.5 75.54C361.7000208 81.7933648000001 363.8000000000002 91.3599360000001 363.8000000000002 104.24C363.8000000000002 109.65336 363.3800047999998 114.6466432 362.54 119.22C361.6999952000001 123.7933568000001 360.3000096000001 127.7133168 358.3400000000002 130.98C356.3799903999998 134.2466832 353.7666832 136.7666575999999 350.5 138.54C347.2333168 140.3133424 343.2666896000001 141.2000000000001 338.5999999999999 141.2000000000001z M116 433.96255744L116 442.8231558400001C116 450.16360784 122.1990384639999 456.1140534399999 129.8461538400002 456.1140534399999L337.5384608 456.1140534399999L337.5384608 482.6958487039999C337.5384608 494
 .5286241136 352.480192 500.440304624 361.1755776 492.0941747039999L407.3294224000001 447.7911825599999C412.7363455999998 442.6005332800001 412.7363455999998 434.18518 407.3294224000001 428.9950844800001L361.1755776 384.6920923200001C352.5130767999999 376.37863584 337.5384608 382.20780208 337.5384608 394.08986448L337.5384608 420.67165968L129.8461538400002 420.67165968C122.1990384639999 420.67165968 116 426.6221054400001 116 433.96255744zM397.5384608 349.78687232L189.8461539199998 349.78687232L189.8461539199998 376.3686676800001C189.8461539199998 388.1720923200001 174.9257692800002 394.1341675200001 166.2090383999998 385.7669936L120.0551923039998 341.4640016000001C114.6482692303998 336.2733521600001 114.6482692303998 327.8579984000001 120.0551923039998 322.6679039999999L166.2090383999998 278.364912C174.8790383999999 270.0431472 189.8461539199998 275.8911424000001 189.8461539199998 287.7626832000001L189.8461539199998 314.3444784000001L397.5384608 314.3444784000001C405.1855776000002 314
 .3444784000001 411.3846159999998 320.2949248 411.3846159999998 327.635376L411.3846159999998 336.4959747200001C411.3846159999998 343.83642672 405.1855776000002 349.78687232 397.5384608 349.78687232z" />
-    <glyph glyph-name="relay"
-      unicode="&#xF116;"
-      horiz-adv-x="512" d=" M238.4790720000001 415.5708528L313.2039519999999 365.7542672C321.5206559999997 369.4821792 330.7404319999996 371.5555552000001 340.4444480000002 371.5555552000001C377.2632000000003 371.5555552000001 407.1111039999996 341.7076384 407.1111039999996 304.8888896000001C407.1111039999996 268.0701392000001 377.2632000000003 238.2222224 340.4444480000002 238.2222224C324.7444480000004 238.2222224 310.3145759999998 243.6520832000001 298.9236160000001 252.7333328L227.7527840000003 208.2513888000001C229.8604160000005 198.7176416 229.8604160000005 188.838608 227.7527840000003 179.3048607999999L298.9236160000001 134.8229168C310.3145759999998 143.903472 324.7444480000004 149.3333328000001 340.4444480000002 149.3333328000001C377.2632000000003 149.3333328000001 407.1111039999996 119.485416 407.1111039999996 82.6666671999999C407.1111039999996 45.8479167999999 377.2632000000003 16 340.4444480000002 16C303.6256960000001 16 273.7777759999999 45.8479167999999 273.7777759999999
  82.6666671999999C273.7763679999998 87.5341152000001 274.3063519999996 92.3871727999999 275.3583360000003 97.139584L204.1875040000005 141.6215279999999C192.7965279999999 132.5409728 178.3666720000001 127.1111103999999 162.6666720000003 127.1111103999999C125.8479200000002 127.1111103999999 96 156.9590272 96 193.7777776C96 230.5965280000001 125.8479200000002 260.4444448 162.6666720000003 260.4444448C178.3666720000001 260.4444448 192.7965279999999 255.014584 204.1875040000005 245.9340272L275.3583360000003 290.4159728C274.326384 295.0763887999999 273.7777759999999 299.918056 273.7777759999999 304.8888896000001C273.7777759999999 316.4405088000001 276.7158399999999 327.3059584 281.885456 336.77872L213.7660800000003 382.1916448C203.8325759999998 375.4767664000001 191.8556959999996 371.5555552000001 178.9629599999999 371.5555552000001C144.5985760000003 371.5555552000001 116.7407359999998 399.4133936000001 116.7407359999998 433.7777776000001C116.7407359999998 468.1421616 144.5985760000003 49
 6 178.9629599999999 496C213.3273440000003 496 241.185184 468.1421616 241.185184 433.7777776000001C241.185184 427.4431279999999 240.2385599999998 421.3295711999999 238.4790720000001 415.5708528z" />
-    <glyph glyph-name="running"
-      unicode="&#xF117;"
-      horiz-adv-x="512" d=" M0 344V360C0 373.255 10.745 384 24 384H384V432C384 453.367 409.899 464.042 424.971 448.971L504.971 368.971C514.343 359.598 514.343 344.4020000000001 504.971 335.03L424.971 255.03C409.956 240.018 384 250.544 384 272V320H24C10.745 320 0 330.745 0 344zM488 192H128V240C128 261.314 102.138 272.08 87.029 256.971L7.029 176.971C-2.343 167.598 -2.343 152.402 7.029 143.03L87.029 63.03C102.057 48.003 128 58.563 128 80V128H488C501.255 128 512 138.745 512 152V168C512 181.255 501.255 192 488 192z" />
-    <glyph glyph-name="stable"
-      unicode="&#xF118;"
-      horiz-adv-x="512" d=" M256 504C119.033 504 8 392.967 8 256S119.033 8 256 8S504 119.033 504 256S392.967 504 256 504zM336 256C336 211.888 300.112 176 256 176S176 211.888 176 256S211.888 336 256 336S336 300.112 336 256z" />
-    <glyph glyph-name="tshirt"
-      unicode="&#xF119;"
-      horiz-adv-x="512" d=" M496 306.793232C481.3473759999997 291.6353439999998 419.7052640000002 256.2669120000001 419.7052640000002 256.2669120000001L393.431584 288.0984960000001C386.8631519999999 253.7406080000001 390.905264 92.5616479999999 393.431584 18.793232C293.3894719999999 3.1300799999999 183.2421119999999 14.245856 127.6631520000001 18.793232C133.7263199999998 108.2248159999999 123.1157919999996 288.0984960000001 123.1157919999996 288.0984960000001C123.1157919999996 288.0984960000001 108.4631520000003 274.4563840000001 96.3368479999999 256.772176C61.9789440000004 256.2669120000001 16 300.2248159999999 16 300.2248159999999C16 300.2248159999999 64.5052640000004 389.15112 81.6842079999997 417.4458559999998C95.3263200000001 439.67744 157.9789440000004 465.4458559999998 163.0315840000003 468.4774400000001C165.0526239999999 469.4879679999999 174.6526240000003 474.0353439999999 185.2631520000005 479.0879679999998C187.284208 480.0984960000001 189.3052639999996 479.0879679999998 1
 90.3157920000003 477.5721760000001C201.9368480000003 458.3721759999999 227.1999999999998 444.7300799999998 256.5052640000004 444.7300799999998C285.810528 444.7300799999998 311.5789439999999 458.3721759999999 323.1999999999998 478.07744C324.2105279999996 479.5932320000002 326.2315840000001 480.60376 328.2526239999998 479.5932320000002C353.0105279999998 467.4669119999999 390.3999999999997 448.2669120000001 405.5578880000003 435.6353439999998C428.8000000000002 415.9300800000001 478.8210559999998 334.07744 496 306.793232z" />
-    <glyph glyph-name="unmeasured"
-      unicode="&#xF11A;"
-      horiz-adv-x="512" d=" M256 504C119 504 8 393 8 256S119 8 256 8S504 119 504 256S393 504 256 504zM352 176C352 167.2 344.8 160 336 160H176C167.2 160 160 167.2 160 176V336C160 344.8 167.2 352 176 352H336C344.8 352 352 344.8 352 336V176z" />
-    <glyph glyph-name="unreachableipv4"
-      unicode="&#xF11B;"
-      horiz-adv-x="512" d=" M384.3907536000001 299.3691904000002C392.3892192 285.071872 382.3493216000001 267.1999999999998 366.3740592000001 267.1999999999998L158.4235182399999 267.1999999999998C142.41748952 267.1999999999998 132.423959024 285.0995776 140.406823424 299.3691904000002L244.38339392 485.2817010240001C252.38575824 499.5857227679999 272.4287192000001 499.5598040159998 280.4167836800001 485.2817010240001L384.3907536000001 299.3691904000002zM262.4000888 337.80624928C251.39125856 337.80624928 242.4667611200001 328.6028592000003 242.4667611200001 317.25C242.4667611200001 305.8971407999998 251.39125856 296.6937503999998 262.4000888 296.6937503999998C273.4089190400001 296.6937503999998 282.33341648 305.8971407999998 282.33341648 317.25C282.33341648 328.6028592000003 273.4089190400001 337.80624928 262.4000888 337.80624928zM243.47512752 411.6952424000001L246.6895932799999 350.92024288C246.83995984 348.0763304000002 249.1201592000001 345.8499992000002 251.8817918400001 345.849999
 2000002L272.91838576 345.8499992000002C275.6800184 345.8499992000002 277.9602177600001 348.0763304000002 278.11058432 350.92024288L281.3250500800001 411.6952424000001C281.48755008 414.7670611200001 279.1159174400001 417.3499985600002 276.1328515199999 417.3499985600002L248.6668926400001 417.3499985600002C245.6838268800001 417.3499985600002 243.3126275200001 414.7670611200001 243.47512752 411.6952424000001z M149.0432000000001 166.7968000000001L174.0416 75.9423999999999L202.5344 166.7968000000001L247.1551999999999 166.7968000000001L194.7392 16L151.7312 16L101.7344000000001 166.7968000000001L149.0432000000001 166.7968000000001zM383.4368 227.2768000000001L383.4368 99.0592000000002L402.2528 99.0592000000002L402.2528 62.5023999999999L383.4368 62.5023999999999L383.4368 16L340.4288 16L340.4288 62.5023999999999L259.7888000000001 62.5023999999999L259.7888000000001 99.8656000000001L344.9984 227.2768000000001L383.4368 227.2768000000001zM340.4288 99.0592000000002L340.4288 160.8832000000002L299.0
 336 99.0592000000002L340.4288 99.0592000000002z" />
-    <glyph glyph-name="unreachableipv6"
-      unicode="&#xF11C;"
-      horiz-adv-x="512" d=" M381.1907535999998 299.3691904000002C389.1892191999999 285.071872 379.1493215999998 267.1999999999998 363.1740592 267.1999999999998L155.2235182399999 267.1999999999998C139.21748952 267.1999999999998 129.2239590240001 285.0995776 137.206823424 299.3691904000002L241.18339392 485.2817010240001C249.1857582400002 499.5857227679999 269.2287191999998 499.5598040159998 277.2167836799998 485.2817010240001L381.1907535999998 299.3691904000002zM259.2000888000001 337.80624928C248.1912585600002 337.80624928 239.2667611199999 328.6028592000003 239.2667611199999 317.25C239.2667611199999 305.8971407999998 248.1912585600002 296.6937503999998 259.2000888000001 296.6937503999998C270.2089190400001 296.6937503999998 279.13341648 305.8971407999998 279.13341648 317.25C279.13341648 328.6028592000003 270.2089190400001 337.80624928 259.2000888000001 337.80624928zM240.2751275200002 411.6952424000001L243.4895932799999 350.92024288C243.6399598400002 348.0763304000002 245.9201591999999
  345.8499992000002 248.6817918400001 345.8499992000002L269.7183857600002 345.8499992000002C272.4800184 345.8499992000002 274.7602177600001 348.0763304000002 274.9105843199999 350.92024288L278.1250500800001 411.6952424000001C278.28755008 414.7670611200001 275.9159174400001 417.3499985600002 272.9328515199999 417.3499985600002L245.4668926399999 417.3499985600002C242.4838268799999 417.3499985600002 240.1126275199999 414.7670611200001 240.2751275200002 411.6952424000001z M155.4432000000002 166.7968000000001L180.4416000000001 75.9423999999999L208.9344000000001 166.7968000000001L253.5551999999998 166.7968000000001L201.1392000000001 16L158.1311999999998 16L108.1343999999999 166.7968000000001L155.4432000000002 166.7968000000001zM360.8064 190.7200000000003C359.0143904000002 192.1536064000002 356.6400144 193.1839967999999 353.6832 193.8112000000001C350.7263856 194.4384031999998 347.7248159999999 194.752 344.6783999999998 194.752C340.0191759999998 194.752 335.9872175999999 193.6320111999999 33
 2.5824000000003 191.3919999999998C329.1775824000001 189.1519888000003 326.3552112000002 186.0160207999998 324.1152000000002 181.9839999999999C321.8751888000002 177.9519792000001 320.1728063999999 173.1584272 319.0079999999998 167.6032C317.8431936000002 162.0479728 316.9920032 155.8656335999999 316.4544000000001 149.0560000000001C321.6512256000001 151.0272095999999 326.8927727999999 152.3263968000001 332.1792000000001 152.9535999999998C337.4656272000002 153.5808032 342.5279759999999 153.8944000000001 347.3663999999999 153.8944000000001C358.1184543999998 153.8944000000001 367.1679632000001 152.371216 374.5151999999998 149.3247999999999C381.8624368000001 146.2783840000002 387.8207776 141.8432287999999 392.3904000000003 136.0192000000002C396.9600224000001 130.1951712 400.2751904000002 123.1168416000001 402.3360000000003 114.7840000000001C404.3968095999999 106.4511584000002 405.4272000000001 96.9984528 405.4272000000001 86.4256C405.4272000000001 71.1935232000001 403.5904175999999 58.7392
 479999999 399.9168 49.0623999999998C396.2431824 39.3855520000002 391.2704320000003 31.8144272 384.9984 26.3487999999998C378.7263680000001 20.8831728 371.5136400000001 17.1200096000002 363.3600000000002 15.0592000000001C355.2063600000002 12.9983904000001 346.6496447999998 11.9679999999998 337.6896000000002 11.9679999999998C326.5791439999998 11.9679999999998 316.94724 13.4463856000002 308.7936 16.4032000000002C300.63996 19.3600144000002 293.8304272000001 24.7359615999999 288.3647999999999 32.5311999999999C282.8991728000001 40.3264383999999 278.8224128000002 50.9439327999999 276.1343999999999 64.384C273.4463872000001 77.8240672000002 272.1023999999998 95.0270943999999 272.1023999999998 115.9935999999998C272.1023999999998 135.8848991999998 273.4015872 153.0879279999999 276 167.6032C278.5984128 182.1184720000001 282.7647711999998 194.0799536 288.4992000000002 203.4879999999998C294.2336288000002 212.8960464000002 301.7599535999998 219.8847776000002 311.0783999999999 224.4544000000001C320.
 3968464 229.0240223999999 331.6863343999999 231.3087999999998 344.9472000000001 231.3087999999998C357.1328607999999 231.3087999999998 368.3327488 229.6064176 378.5472 226.2015999999999C388.7616512 222.7967823999998 396.4671743999998 218.4064272000001 401.6639999999998 213.0304000000001L401.6639999999998 172.4416000000001L360.8064 172.4416000000001L360.8064 190.7200000000003zM338.4960000000001 120.8319999999999C335.449584 120.8319999999999 331.9552192000001 120.4736032000001 328.0128 119.7568000000001C324.0703807999999 119.0399968000002 320.0384208000001 117.9648063999998 315.9168 116.5311999999999C316.0960015999999 102.9119312000003 316.6783952000001 91.7568431999998 317.6639999999998 83.0655999999999C318.6496047999999 74.3743568 320.0831904000002 67.4752256000002 321.9648000000002 62.3679999999999C323.8464095999998 57.2607744000002 326.2207856 53.7216096000002 329.0880000000002 51.7503999999999C331.9552144 49.7791904000001 335.4495791999998 48.7936 339.5711999999999 48.7936C346.918
 4368000001 48.7936 352.6079792000001 51.7951696 356.6399999999999 57.7984000000001C360.6720208000002 63.8016304000003 362.6880000000001 72.9855376 362.6880000000001 85.3503999999998C362.6880000000001 90.5472255999998 362.2848048000001 95.3407775999999 361.4784 99.7312000000002C360.6719951999999 104.1216224 359.3280095999999 107.8847839999999 357.4463999999998 111.0208000000002C355.5647903999998 114.1568160000002 353.056016 116.5759920000001 349.9200000000001 118.2784000000002C346.7839840000002 119.9808080000003 342.9760224000002 120.8319999999999 338.4960000000001 120.8319999999999z" />
-    <glyph glyph-name="v2dir"
-      unicode="&#xF11D;"
-      horiz-adv-x="512" d=" M452.9230767999998 352C459.0403071999999 352 464 356.8357 464 362.8L464 398.8C464 404.7643000000001 459.0403071999999 409.6 452.9230767999998 409.6L434.4615391999996 409.6L434.4615391999996 452.8C434.4615391999996 476.659 414.6246160000001 496 390.1538464000005 496L124.3076923199997 496C99.8369230400003 496 80 476.659 80 452.8L80 78.4C80 54.5409999999999 99.8369230400003 35.2 124.3076923199997 35.2L390.1538464000005 35.2C414.6246160000001 35.2 434.4615391999996 54.5409999999999 434.4615391999996 78.4L434.4615391999996 121.6L452.9230767999998 121.6C459.0403071999999 121.6 464 126.4356992000001 464 132.4L464 168.4C464 174.3643008 459.0403071999999 179.2000000000001 452.9230767999998 179.2000000000001L434.4615391999996 179.2000000000001L434.4615391999996 236.8L452.9230767999998 236.8C459.0403071999999 236.8 464 241.6356992 464 247.6L464 283.6C464 289.5643008 459.0403071999999 294.4 452.9230767999998 294.4L434.4615391999996 294.4L434.4615391999996 352L452.923
 0767999998 352z M167.4975744000003 437.9845376L188.5962399999999 318.0165440000001L213.3749055999997 437.9845376H255.3269120000005L208.9589056000004 245.1525440000001H166.7615744000004L122.6015744000004 437.9845376000001z M273.4892319999999 424.7365376Q278.3959039999999 429.8885376 285.0199039999999 433.077872Q291.8892319999999 436.2672048 299.2492319999999 438.229872Q306.8545599999999 440.1925376000001 314.4599039999999 440.9285376000001Q322.3105599999999 441.6645376 329.4252319999999 441.6645376Q342.9185599999999 441.6645376 354.2039039999999 438.7205376Q365.7345599999999 436.0218720000001 373.8305599999999 429.1525376Q382.1718879999999 422.5285392 386.5878879999999 410.7525392Q391.2492319999999 399.221872 391.2492319999999 381.557872Q391.2492319999999 371.7445392 388.0598879999999 361.1952064Q384.8705599999999 350.8912064 377.0198879999998 338.3792064000001Q369.4145599999998 326.112544 356.1665599999999 311.3925440000001Q343.1639039999999 296.672544 323.0465599999999 278.517872H3
 93.9478879999998V245.1525440000001H274.4705599999998V277.291216Q297.5319039999998 297.1632 312.2519039999998 312.373872Q326.9719039999998 327.829872 335.3132319999998 340.3418736Q343.8999039999998 352.8538736000001 347.0892319999998 363.1578736Q350.2785599999998 373.7072064 350.2785599999998 383.765872Q350.2785599999998 397.749872 344.8812319999998 402.9018720000001Q339.4839039999997 408.2992048 329.6705599999998 408.2992048Q324.0279039999998 408.2992048 319.3665599999998 406.8272048Q314.9505599999998 405.6005328 310.7799039999998 403.1472048V387.9365392H273.4892319999998z" />
-    <glyph glyph-name="valid"
-      unicode="&#xF11E;"
-      horiz-adv-x="512" d=" M504 256C504 119.033 392.967 8 256 8S8 119.033 8 256S119.033 504 256 504S504 392.967 504 256zM227.314 124.686L411.314 308.686C417.562 314.934 417.562 325.065 411.314 331.313L388.687 353.94C382.439 360.189 372.308 360.189 366.059 353.94L216 203.882L145.941 273.9410000000001C139.693 280.189 129.562 280.189 123.313 273.9410000000001L100.686 251.314C94.438 245.0660000000001 94.438 234.935 100.686 228.687L204.686 124.687C210.935 118.438 221.065 118.438 227.314 124.686z" />
-  </font>
-</defs>
-</svg>
diff --git a/assets/static/fonts/TorIcons/tor-icons.ttf b/assets/static/fonts/TorIcons/tor-icons.ttf
deleted file mode 100644
index 7ac89dc..0000000
Binary files a/assets/static/fonts/TorIcons/tor-icons.ttf and /dev/null differ
diff --git a/assets/static/fonts/TorIcons/tor-icons.woff b/assets/static/fonts/TorIcons/tor-icons.woff
deleted file mode 100644
index a974d45..0000000
Binary files a/assets/static/fonts/TorIcons/tor-icons.woff and /dev/null differ
diff --git a/assets/static/fonts/TorIcons/tor-icons.woff2 b/assets/static/fonts/TorIcons/tor-icons.woff2
deleted file mode 100644
index d475677..0000000
Binary files a/assets/static/fonts/TorIcons/tor-icons.woff2 and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/.gitignore b/assets/static/fonts/open-iconic/.gitignore
deleted file mode 100644
index 496ee2c..0000000
--- a/assets/static/fonts/open-iconic/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-.DS_Store
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/FONT-LICENSE b/assets/static/fonts/open-iconic/FONT-LICENSE
deleted file mode 100644
index a1dc03f..0000000
--- a/assets/static/fonts/open-iconic/FONT-LICENSE
+++ /dev/null
@@ -1,86 +0,0 @@
-SIL OPEN FONT LICENSE Version 1.1
-
-Copyright (c) 2014 Waybury
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded,
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting -- in part or in whole -- any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/assets/static/fonts/open-iconic/ICON-LICENSE b/assets/static/fonts/open-iconic/ICON-LICENSE
deleted file mode 100644
index 2199f4a..0000000
--- a/assets/static/fonts/open-iconic/ICON-LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Waybury
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/README.md b/assets/static/fonts/open-iconic/README.md
deleted file mode 100644
index 6b810e4..0000000
--- a/assets/static/fonts/open-iconic/README.md
+++ /dev/null
@@ -1,114 +0,0 @@
-[Open Iconic v1.1.1](http://useiconic.com/open)
-===========
-
-### Open Iconic is the open source sibling of [Iconic](http://useiconic.com). It is a hyper-legible collection of 223 icons with a tiny footprint—ready to use with Bootstrap and Foundation. [View the collection](http://useiconic.com/open#icons)
-
-
-
-## What's in Open Iconic?
-
-* 223 icons designed to be legible down to 8 pixels
-* Super-light SVG files - 61.8 for the entire set 
-* SVG sprite—the modern replacement for icon fonts
-* Webfont (EOT, OTF, SVG, TTF, WOFF), PNG and WebP formats
-* Webfont stylesheets (including versions for Bootstrap and Foundation) in CSS, LESS, SCSS and Stylus formats
-* PNG and WebP raster images in 8px, 16px, 24px, 32px, 48px and 64px.
-
-
-## Getting Started
-
-#### For code samples and everything else you need to get started with Open Iconic, check out our [Icons](http://useiconic.com/open#icons) and [Reference](http://useiconic.com/open#reference) sections.
-
-### General Usage
-
-#### Using Open Iconic's SVGs
-
-We like SVGs and we think they're the way to display icons on the web. Since Open Iconic are just basic SVGs, we suggest you display them like you would any other image (don't forget the `alt` attribute).
-
-```
-<img src="/open-iconic/svg/icon-name.svg" alt="icon name">
-```
-
-#### Using Open Iconic's SVG Sprite
-
-Open Iconic also comes in a SVG sprite which allows you to display all the icons in the set with a single request. It's like an icon font, without being a hack.
-
-Adding an icon from an SVG sprite is a little different than what you're used to, but it's still a piece of cake. *Tip: To make your icons easily style able, we suggest adding a general class to the* `<svg>` *tag and a unique class name for each different icon in the* `<use>` *tag.*  
-
-```
-<svg class="icon">
-  <use xlink:href="open-iconic.svg#account-login" class="icon-account-login"></use>
-</svg>
-```
-
-Sizing icons only needs basic CSS. All the icons are in a square format, so just set the `<svg>` tag with equal width and height dimensions.
-
-```
-.icon {
-  width: 16px;
-  height: 16px;
-}
-```
-
-Coloring icons is even easier. All you need to do is set the `fill` rule on the `<use>` tag.
-
-```
-.icon-account-login {
-  fill: #f00;
-}
-```
-
-To learn more about SVG Sprites, read [Chris Coyier's guide](http://css-tricks.com/svg-sprites-use-better-icon-fonts/).
-
-#### Using Open Iconic's Icon Font...
-
-
-##### …with Bootstrap
-
-You can find our Bootstrap stylesheets in `font/css/open-iconic-bootstrap.{css, less, scss, styl}`
-
-
-```
-<link href="/open-iconic/font/css/open-iconic-bootstrap.css" rel="stylesheet">
-```
-
-
-```
-<span class="oi oi-icon-name" title="icon name" aria-hidden="true"></span>
-```
-
-##### …with Foundation
-
-You can find our Foundation stylesheets in `font/css/open-iconic-foundation.{css, less, scss, styl}`
-
-```
-<link href="/open-iconic/font/css/open-iconic-foundation.css" rel="stylesheet">
-```
-
-
-```
-<span class="fi-icon-name" title="icon name" aria-hidden="true"></span>
-```
-
-##### …on its own
-
-You can find our default stylesheets in `font/css/open-iconic.{css, less, scss, styl}`
-
-```
-<link href="/open-iconic/font/css/open-iconic.css" rel="stylesheet">
-```
-
-```
-<span class="oi" data-glyph="icon-name" title="icon name" aria-hidden="true"></span>
-```
-
-
-## License
-
-### Icons
-
-All code (including SVG markup) is under the [MIT License](http://opensource.org/licenses/MIT).
-
-### Fonts
-
-All fonts are under the [SIL Licensed](http://scripts.sil.org/cms/scripts/page.php?item_id=OFL_web).
diff --git a/assets/static/fonts/open-iconic/bower.json b/assets/static/fonts/open-iconic/bower.json
deleted file mode 100644
index fbf9661..0000000
--- a/assets/static/fonts/open-iconic/bower.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "name": "open-iconic",
-  "description": "An open source icon set in SVG, webfont and raster formats",
-  "version": "1.1.1",
-  "license": [
-    "MIT",
-    "OFL-1.1"
-  ],
-  "homepage": "https://useiconic.com/open",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/iconic/open-iconic.git"
-  },
-  "main": [
-    "./sprite/open-iconic.min.svg"
-  ],
-  "ignore": [
-    "*.json",
-    "*.md"
-  ]
-}
diff --git a/assets/static/fonts/open-iconic/font/css/open-iconic-bootstrap.css b/assets/static/fonts/open-iconic/font/css/open-iconic-bootstrap.css
deleted file mode 100644
index 56c4e5f..0000000
--- a/assets/static/fonts/open-iconic/font/css/open-iconic-bootstrap.css
+++ /dev/null
@@ -1,952 +0,0 @@
-/* Bootstrap */
-
- at font-face {
-  font-family: 'Icons';
-  src: url('../fonts/open-iconic.eot');
-  src: url('../fonts/open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('../fonts/open-iconic.woff') format('woff'), url('../fonts/open-iconic.ttf') format('truetype'), url('../fonts/open-iconic.otf') format('opentype'), url('../fonts/open-iconic.svg#iconic-sm') format('svg');
-  font-weight: normal;
-  font-style: normal;
-}
-
-.oi {
-  position: relative;
-  top: 1px;
-  display: inline-block;
-  speak:none;
-  font-family: 'Icons';
-  font-style: normal;
-  font-weight: normal;
-  line-height: 1;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-}
-
-.oi:empty:before {
-  width: 1em;
-  text-align: center;
-  box-sizing: content-box;
-}
-
-.oi.oi-align-center:before {
-  text-align: center;
-}
-
-.oi.oi-align-left:before {
-  text-align: left;
-}
-
-.oi.oi-align-right:before {
-  text-align: right;
-}
-
-
-.oi.oi-flip-horizontal:before {
-  -webkit-transform: scale(-1, 1);
-  -ms-transform: scale(-1, 1);
-  transform: scale(-1, 1);
-}
-
-.oi.oi-flip-vertical:before {
-  -webkit-transform: scale(1, -1);
-  -ms-transform: scale(-1, 1);
-  transform: scale(1, -1);
-}
-
-.oi.oi-flip-horizontal-vertical:before {
-  -webkit-transform: scale(-1, -1);
-  -ms-transform: scale(-1, 1);
-  transform: scale(-1, -1);
-}
-
-
-.oi-account-login:before {
-  content:'\e000';
-}
-
-.oi-account-logout:before {
-  content:'\e001';
-}
-
-.oi-action-redo:before {
-  content:'\e002';
-}
-
-.oi-action-undo:before {
-  content:'\e003';
-}
-
-.oi-align-center:before {
-  content:'\e004';
-}
-
-.oi-align-left:before {
-  content:'\e005';
-}
-
-.oi-align-right:before {
-  content:'\e006';
-}
-
-.oi-aperture:before {
-  content:'\e007';
-}
-
-.oi-arrow-bottom:before {
-  content:'\e008';
-}
-
-.oi-arrow-circle-bottom:before {
-  content:'\e009';
-}
-
-.oi-arrow-circle-left:before {
-  content:'\e00a';
-}
-
-.oi-arrow-circle-right:before {
-  content:'\e00b';
-}
-
-.oi-arrow-circle-top:before {
-  content:'\e00c';
-}
-
-.oi-arrow-left:before {
-  content:'\e00d';
-}
-
-.oi-arrow-right:before {
-  content:'\e00e';
-}
-
-.oi-arrow-thick-bottom:before {
-  content:'\e00f';
-}
-
-.oi-arrow-thick-left:before {
-  content:'\e010';
-}
-
-.oi-arrow-thick-right:before {
-  content:'\e011';
-}
-
-.oi-arrow-thick-top:before {
-  content:'\e012';
-}
-
-.oi-arrow-top:before {
-  content:'\e013';
-}
-
-.oi-audio-spectrum:before {
-  content:'\e014';
-}
-
-.oi-audio:before {
-  content:'\e015';
-}
-
-.oi-badge:before {
-  content:'\e016';
-}
-
-.oi-ban:before {
-  content:'\e017';
-}
-
-.oi-bar-chart:before {
-  content:'\e018';
-}
-
-.oi-basket:before {
-  content:'\e019';
-}
-
-.oi-battery-empty:before {
-  content:'\e01a';
-}
-
-.oi-battery-full:before {
-  content:'\e01b';
-}
-
-.oi-beaker:before {
-  content:'\e01c';
-}
-
-.oi-bell:before {
-  content:'\e01d';
-}
-
-.oi-bluetooth:before {
-  content:'\e01e';
-}
-
-.oi-bold:before {
-  content:'\e01f';
-}
-
-.oi-bolt:before {
-  content:'\e020';
-}
-
-.oi-book:before {
-  content:'\e021';
-}
-
-.oi-bookmark:before {
-  content:'\e022';
-}
-
-.oi-box:before {
-  content:'\e023';
-}
-
-.oi-briefcase:before {
-  content:'\e024';
-}
-
-.oi-british-pound:before {
-  content:'\e025';
-}
-
-.oi-browser:before {
-  content:'\e026';
-}
-
-.oi-brush:before {
-  content:'\e027';
-}
-
-.oi-bug:before {
-  content:'\e028';
-}
-
-.oi-bullhorn:before {
-  content:'\e029';
-}
-
-.oi-calculator:before {
-  content:'\e02a';
-}
-
-.oi-calendar:before {
-  content:'\e02b';
-}
-
-.oi-camera-slr:before {
-  content:'\e02c';
-}
-
-.oi-caret-bottom:before {
-  content:'\e02d';
-}
-
-.oi-caret-left:before {
-  content:'\e02e';
-}
-
-.oi-caret-right:before {
-  content:'\e02f';
-}
-
-.oi-caret-top:before {
-  content:'\e030';
-}
-
-.oi-cart:before {
-  content:'\e031';
-}
-
-.oi-chat:before {
-  content:'\e032';
-}
-
-.oi-check:before {
-  content:'\e033';
-}
-
-.oi-chevron-bottom:before {
-  content:'\e034';
-}
-
-.oi-chevron-left:before {
-  content:'\e035';
-}
-
-.oi-chevron-right:before {
-  content:'\e036';
-}
-
-.oi-chevron-top:before {
-  content:'\e037';
-}
-
-.oi-circle-check:before {
-  content:'\e038';
-}
-
-.oi-circle-x:before {
-  content:'\e039';
-}
-
-.oi-clipboard:before {
-  content:'\e03a';
-}
-
-.oi-clock:before {
-  content:'\e03b';
-}
-
-.oi-cloud-download:before {
-  content:'\e03c';
-}
-
-.oi-cloud-upload:before {
-  content:'\e03d';
-}
-
-.oi-cloud:before {
-  content:'\e03e';
-}
-
-.oi-cloudy:before {
-  content:'\e03f';
-}
-
-.oi-code:before {
-  content:'\e040';
-}
-
-.oi-cog:before {
-  content:'\e041';
-}
-
-.oi-collapse-down:before {
-  content:'\e042';
-}
-
-.oi-collapse-left:before {
-  content:'\e043';
-}
-
-.oi-collapse-right:before {
-  content:'\e044';
-}
-
-.oi-collapse-up:before {
-  content:'\e045';
-}
-
-.oi-command:before {
-  content:'\e046';
-}
-
-.oi-comment-square:before {
-  content:'\e047';
-}
-
-.oi-compass:before {
-  content:'\e048';
-}
-
-.oi-contrast:before {
-  content:'\e049';
-}
-
-.oi-copywriting:before {
-  content:'\e04a';
-}
-
-.oi-credit-card:before {
-  content:'\e04b';
-}
-
-.oi-crop:before {
-  content:'\e04c';
-}
-
-.oi-dashboard:before {
-  content:'\e04d';
-}
-
-.oi-data-transfer-download:before {
-  content:'\e04e';
-}
-
-.oi-data-transfer-upload:before {
-  content:'\e04f';
-}
-
-.oi-delete:before {
-  content:'\e050';
-}
-
-.oi-dial:before {
-  content:'\e051';
-}
-
-.oi-document:before {
-  content:'\e052';
-}
-
-.oi-dollar:before {
-  content:'\e053';
-}
-
-.oi-double-quote-sans-left:before {
-  content:'\e054';
-}
-
-.oi-double-quote-sans-right:before {
-  content:'\e055';
-}
-
-.oi-double-quote-serif-left:before {
-  content:'\e056';
-}
-
-.oi-double-quote-serif-right:before {
-  content:'\e057';
-}
-
-.oi-droplet:before {
-  content:'\e058';
-}
-
-.oi-eject:before {
-  content:'\e059';
-}
-
-.oi-elevator:before {
-  content:'\e05a';
-}
-
-.oi-ellipses:before {
-  content:'\e05b';
-}
-
-.oi-envelope-closed:before {
-  content:'\e05c';
-}
-
-.oi-envelope-open:before {
-  content:'\e05d';
-}
-
-.oi-euro:before {
-  content:'\e05e';
-}
-
-.oi-excerpt:before {
-  content:'\e05f';
-}
-
-.oi-expand-down:before {
-  content:'\e060';
-}
-
-.oi-expand-left:before {
-  content:'\e061';
-}
-
-.oi-expand-right:before {
-  content:'\e062';
-}
-
-.oi-expand-up:before {
-  content:'\e063';
-}
-
-.oi-external-link:before {
-  content:'\e064';
-}
-
-.oi-eye:before {
-  content:'\e065';
-}
-
-.oi-eyedropper:before {
-  content:'\e066';
-}
-
-.oi-file:before {
-  content:'\e067';
-}
-
-.oi-fire:before {
-  content:'\e068';
-}
-
-.oi-flag:before {
-  content:'\e069';
-}
-
-.oi-flash:before {
-  content:'\e06a';
-}
-
-.oi-folder:before {
-  content:'\e06b';
-}
-
-.oi-fork:before {
-  content:'\e06c';
-}
-
-.oi-fullscreen-enter:before {
-  content:'\e06d';
-}
-
-.oi-fullscreen-exit:before {
-  content:'\e06e';
-}
-
-.oi-globe:before {
-  content:'\e06f';
-}
-
-.oi-graph:before {
-  content:'\e070';
-}
-
-.oi-grid-four-up:before {
-  content:'\e071';
-}
-
-.oi-grid-three-up:before {
-  content:'\e072';
-}
-
-.oi-grid-two-up:before {
-  content:'\e073';
-}
-
-.oi-hard-drive:before {
-  content:'\e074';
-}
-
-.oi-header:before {
-  content:'\e075';
-}
-
-.oi-headphones:before {
-  content:'\e076';
-}
-
-.oi-heart:before {
-  content:'\e077';
-}
-
-.oi-home:before {
-  content:'\e078';
-}
-
-.oi-image:before {
-  content:'\e079';
-}
-
-.oi-inbox:before {
-  content:'\e07a';
-}
-
-.oi-infinity:before {
-  content:'\e07b';
-}
-
-.oi-info:before {
-  content:'\e07c';
-}
-
-.oi-italic:before {
-  content:'\e07d';
-}
-
-.oi-justify-center:before {
-  content:'\e07e';
-}
-
-.oi-justify-left:before {
-  content:'\e07f';
-}
-
-.oi-justify-right:before {
-  content:'\e080';
-}
-
-.oi-key:before {
-  content:'\e081';
-}
-
-.oi-laptop:before {
-  content:'\e082';
-}
-
-.oi-layers:before {
-  content:'\e083';
-}
-
-.oi-lightbulb:before {
-  content:'\e084';
-}
-
-.oi-link-broken:before {
-  content:'\e085';
-}
-
-.oi-link-intact:before {
-  content:'\e086';
-}
-
-.oi-list-rich:before {
-  content:'\e087';
-}
-
-.oi-list:before {
-  content:'\e088';
-}
-
-.oi-location:before {
-  content:'\e089';
-}
-
-.oi-lock-locked:before {
-  content:'\e08a';
-}
-
-.oi-lock-unlocked:before {
-  content:'\e08b';
-}
-
-.oi-loop-circular:before {
-  content:'\e08c';
-}
-
-.oi-loop-square:before {
-  content:'\e08d';
-}
-
-.oi-loop:before {
-  content:'\e08e';
-}
-
-.oi-magnifying-glass:before {
-  content:'\e08f';
-}
-
-.oi-map-marker:before {
-  content:'\e090';
-}
-
-.oi-map:before {
-  content:'\e091';
-}
-
-.oi-media-pause:before {
-  content:'\e092';
-}
-
-.oi-media-play:before {
-  content:'\e093';
-}
-
-.oi-media-record:before {
-  content:'\e094';
-}
-
-.oi-media-skip-backward:before {
-  content:'\e095';
-}
-
-.oi-media-skip-forward:before {
-  content:'\e096';
-}
-
-.oi-media-step-backward:before {
-  content:'\e097';
-}
-
-.oi-media-step-forward:before {
-  content:'\e098';
-}
-
-.oi-media-stop:before {
-  content:'\e099';
-}
-
-.oi-medical-cross:before {
-  content:'\e09a';
-}
-
-.oi-menu:before {
-  content:'\e09b';
-}
-
-.oi-microphone:before {
-  content:'\e09c';
-}
-
-.oi-minus:before {
-  content:'\e09d';
-}
-
-.oi-monitor:before {
-  content:'\e09e';
-}
-
-.oi-moon:before {
-  content:'\e09f';
-}
-
-.oi-move:before {
-  content:'\e0a0';
-}
-
-.oi-musical-note:before {
-  content:'\e0a1';
-}
-
-.oi-paperclip:before {
-  content:'\e0a2';
-}
-
-.oi-pencil:before {
-  content:'\e0a3';
-}
-
-.oi-people:before {
-  content:'\e0a4';
-}
-
-.oi-person:before {
-  content:'\e0a5';
-}
-
-.oi-phone:before {
-  content:'\e0a6';
-}
-
-.oi-pie-chart:before {
-  content:'\e0a7';
-}
-
-.oi-pin:before {
-  content:'\e0a8';
-}
-
-.oi-play-circle:before {
-  content:'\e0a9';
-}
-
-.oi-plus:before {
-  content:'\e0aa';
-}
-
-.oi-power-standby:before {
-  content:'\e0ab';
-}
-
-.oi-print:before {
-  content:'\e0ac';
-}
-
-.oi-project:before {
-  content:'\e0ad';
-}
-
-.oi-pulse:before {
-  content:'\e0ae';
-}
-
-.oi-puzzle-piece:before {
-  content:'\e0af';
-}
-
-.oi-question-mark:before {
-  content:'\e0b0';
-}
-
-.oi-rain:before {
-  content:'\e0b1';
-}
-
-.oi-random:before {
-  content:'\e0b2';
-}
-
-.oi-reload:before {
-  content:'\e0b3';
-}
-
-.oi-resize-both:before {
-  content:'\e0b4';
-}
-
-.oi-resize-height:before {
-  content:'\e0b5';
-}
-
-.oi-resize-width:before {
-  content:'\e0b6';
-}
-
-.oi-rss-alt:before {
-  content:'\e0b7';
-}
-
-.oi-rss:before {
-  content:'\e0b8';
-}
-
-.oi-script:before {
-  content:'\e0b9';
-}
-
-.oi-share-boxed:before {
-  content:'\e0ba';
-}
-
-.oi-share:before {
-  content:'\e0bb';
-}
-
-.oi-shield:before {
-  content:'\e0bc';
-}
-
-.oi-signal:before {
-  content:'\e0bd';
-}
-
-.oi-signpost:before {
-  content:'\e0be';
-}
-
-.oi-sort-ascending:before {
-  content:'\e0bf';
-}
-
-.oi-sort-descending:before {
-  content:'\e0c0';
-}
-
-.oi-spreadsheet:before {
-  content:'\e0c1';
-}
-
-.oi-star:before {
-  content:'\e0c2';
-}
-
-.oi-sun:before {
-  content:'\e0c3';
-}
-
-.oi-tablet:before {
-  content:'\e0c4';
-}
-
-.oi-tag:before {
-  content:'\e0c5';
-}
-
-.oi-tags:before {
-  content:'\e0c6';
-}
-
-.oi-target:before {
-  content:'\e0c7';
-}
-
-.oi-task:before {
-  content:'\e0c8';
-}
-
-.oi-terminal:before {
-  content:'\e0c9';
-}
-
-.oi-text:before {
-  content:'\e0ca';
-}
-
-.oi-thumb-down:before {
-  content:'\e0cb';
-}
-
-.oi-thumb-up:before {
-  content:'\e0cc';
-}
-
-.oi-timer:before {
-  content:'\e0cd';
-}
-
-.oi-transfer:before {
-  content:'\e0ce';
-}
-
-.oi-trash:before {
-  content:'\e0cf';
-}
-
-.oi-underline:before {
-  content:'\e0d0';
-}
-
-.oi-vertical-align-bottom:before {
-  content:'\e0d1';
-}
-
-.oi-vertical-align-center:before {
-  content:'\e0d2';
-}
-
-.oi-vertical-align-top:before {
-  content:'\e0d3';
-}
-
-.oi-video:before {
-  content:'\e0d4';
-}
-
-.oi-volume-high:before {
-  content:'\e0d5';
-}
-
-.oi-volume-low:before {
-  content:'\e0d6';
-}
-
-.oi-volume-off:before {
-  content:'\e0d7';
-}
-
-.oi-warning:before {
-  content:'\e0d8';
-}
-
-.oi-wifi:before {
-  content:'\e0d9';
-}
-
-.oi-wrench:before {
-  content:'\e0da';
-}
-
-.oi-x:before {
-  content:'\e0db';
-}
-
-.oi-yen:before {
-  content:'\e0dc';
-}
-
-.oi-zoom-in:before {
-  content:'\e0dd';
-}
-
-.oi-zoom-out:before {
-  content:'\e0de';
-}
diff --git a/assets/static/fonts/open-iconic/font/css/open-iconic-bootstrap.less b/assets/static/fonts/open-iconic/font/css/open-iconic-bootstrap.less
deleted file mode 100644
index fc3fe34..0000000
--- a/assets/static/fonts/open-iconic/font/css/open-iconic-bootstrap.less
+++ /dev/null
@@ -1,960 +0,0 @@
-/* Bootstrap */
-
-/* Override Bootstrap default variable */
-//@icon-font-path: "../fonts/";
-
- at font-face {
-  font-family: 'Icons';
-  src: ~"url('@{icon-font-path}open-iconic.eot')";
-  src: ~"url('@{icon-font-path}open-iconic.eot?#iconic-sm') format('embedded-opentype')",
-       ~"url('@{icon-font-path}open-iconic.woff') format('woff')",
-       ~"url('@{icon-font-path}open-iconic.ttf') format('truetype')",
-       ~"url('@{icon-font-path}open-iconic.svg#iconic-sm') format('svg')";
-  font-weight: normal;
-  font-style: normal;
-}
-
-// Catchall baseclass
-.oi {
-  position: relative;
-  top: 1px;
-  display: inline-block;
-  font-family: 'Icons';
-  font-style: normal;
-  font-weight: normal;
-  line-height: 1;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-
-  &:empty:before {
-    width: 1em;
-    text-align: center;
-    box-sizing: content-box;
-  }
-
-  &.oi-align-center:before {
-    text-align: center;
-  }
-
-  &.oi-align-left:before {
-    text-align: left;
-  }
-
-  &.oi-align-right:before {
-    text-align: right;
-  }
-
-
-  &.oi-flip-horizontal:before {
-    -webkit-transform: scale(-1, 1);
-    -ms-transform: scale(-1, 1);
-    transform: scale(-1, 1);
-  }
-
-  &.oi-flip-vertical:before {
-    -webkit-transform: scale(1, -1);
-    -ms-transform: scale(-1, 1);
-    transform: scale(1, -1);
-  }
-
-  &.oi-flip-horizontal-vertical:before {
-    -webkit-transform: scale(-1, -1);
-    -ms-transform: scale(-1, 1);
-    transform: scale(-1, -1);
-  }
-}
-
-
-
-.oi-account-login:before {
-  content:"\e000";
-}
-
-.oi-account-logout:before {
-  content:"\e001";
-}
-
-.oi-action-redo:before {
-  content:"\e002";
-}
-
-.oi-action-undo:before {
-  content:"\e003";
-}
-
-.oi-align-center:before {
-  content:"\e004";
-}
-
-.oi-align-left:before {
-  content:"\e005";
-}
-
-.oi-align-right:before {
-  content:"\e006";
-}
-
-.oi-aperture:before {
-  content:"\e007";
-}
-
-.oi-arrow-bottom:before {
-  content:"\e008";
-}
-
-.oi-arrow-circle-bottom:before {
-  content:"\e009";
-}
-
-.oi-arrow-circle-left:before {
-  content:"\e00a";
-}
-
-.oi-arrow-circle-right:before {
-  content:"\e00b";
-}
-
-.oi-arrow-circle-top:before {
-  content:"\e00c";
-}
-
-.oi-arrow-left:before {
-  content:"\e00d";
-}
-
-.oi-arrow-right:before {
-  content:"\e00e";
-}
-
-.oi-arrow-thick-bottom:before {
-  content:"\e00f";
-}
-
-.oi-arrow-thick-left:before {
-  content:"\e010";
-}
-
-.oi-arrow-thick-right:before {
-  content:"\e011";
-}
-
-.oi-arrow-thick-top:before {
-  content:"\e012";
-}
-
-.oi-arrow-top:before {
-  content:"\e013";
-}
-
-.oi-audio-spectrum:before {
-  content:"\e014";
-}
-
-.oi-audio:before {
-  content:"\e015";
-}
-
-.oi-badge:before {
-  content:"\e016";
-}
-
-.oi-ban:before {
-  content:"\e017";
-}
-
-.oi-bar-chart:before {
-  content:"\e018";
-}
-
-.oi-basket:before {
-  content:"\e019";
-}
-
-.oi-battery-empty:before {
-  content:"\e01a";
-}
-
-.oi-battery-full:before {
-  content:"\e01b";
-}
-
-.oi-beaker:before {
-  content:"\e01c";
-}
-
-.oi-bell:before {
-  content:"\e01d";
-}
-
-.oi-bluetooth:before {
-  content:"\e01e";
-}
-
-.oi-bold:before {
-  content:"\e01f";
-}
-
-.oi-bolt:before {
-  content:"\e020";
-}
-
-.oi-book:before {
-  content:"\e021";
-}
-
-.oi-bookmark:before {
-  content:"\e022";
-}
-
-.oi-box:before {
-  content:"\e023";
-}
-
-.oi-briefcase:before {
-  content:"\e024";
-}
-
-.oi-british-pound:before {
-  content:"\e025";
-}
-
-.oi-browser:before {
-  content:"\e026";
-}
-
-.oi-brush:before {
-  content:"\e027";
-}
-
-.oi-bug:before {
-  content:"\e028";
-}
-
-.oi-bullhorn:before {
-  content:"\e029";
-}
-
-.oi-calculator:before {
-  content:"\e02a";
-}
-
-.oi-calendar:before {
-  content:"\e02b";
-}
-
-.oi-camera-slr:before {
-  content:"\e02c";
-}
-
-.oi-caret-bottom:before {
-  content:"\e02d";
-}
-
-.oi-caret-left:before {
-  content:"\e02e";
-}
-
-.oi-caret-right:before {
-  content:"\e02f";
-}
-
-.oi-caret-top:before {
-  content:"\e030";
-}
-
-.oi-cart:before {
-  content:"\e031";
-}
-
-.oi-chat:before {
-  content:"\e032";
-}
-
-.oi-check:before {
-  content:"\e033";
-}
-
-.oi-chevron-bottom:before {
-  content:"\e034";
-}
-
-.oi-chevron-left:before {
-  content:"\e035";
-}
-
-.oi-chevron-right:before {
-  content:"\e036";
-}
-
-.oi-chevron-top:before {
-  content:"\e037";
-}
-
-.oi-circle-check:before {
-  content:"\e038";
-}
-
-.oi-circle-x:before {
-  content:"\e039";
-}
-
-.oi-clipboard:before {
-  content:"\e03a";
-}
-
-.oi-clock:before {
-  content:"\e03b";
-}
-
-.oi-cloud-download:before {
-  content:"\e03c";
-}
-
-.oi-cloud-upload:before {
-  content:"\e03d";
-}
-
-.oi-cloud:before {
-  content:"\e03e";
-}
-
-.oi-cloudy:before {
-  content:"\e03f";
-}
-
-.oi-code:before {
-  content:"\e040";
-}
-
-.oi-cog:before {
-  content:"\e041";
-}
-
-.oi-collapse-down:before {
-  content:"\e042";
-}
-
-.oi-collapse-left:before {
-  content:"\e043";
-}
-
-.oi-collapse-right:before {
-  content:"\e044";
-}
-
-.oi-collapse-up:before {
-  content:"\e045";
-}
-
-.oi-command:before {
-  content:"\e046";
-}
-
-.oi-comment-square:before {
-  content:"\e047";
-}
-
-.oi-compass:before {
-  content:"\e048";
-}
-
-.oi-contrast:before {
-  content:"\e049";
-}
-
-.oi-copywriting:before {
-  content:"\e04a";
-}
-
-.oi-credit-card:before {
-  content:"\e04b";
-}
-
-.oi-crop:before {
-  content:"\e04c";
-}
-
-.oi-dashboard:before {
-  content:"\e04d";
-}
-
-.oi-data-transfer-download:before {
-  content:"\e04e";
-}
-
-.oi-data-transfer-upload:before {
-  content:"\e04f";
-}
-
-.oi-delete:before {
-  content:"\e050";
-}
-
-.oi-dial:before {
-  content:"\e051";
-}
-
-.oi-document:before {
-  content:"\e052";
-}
-
-.oi-dollar:before {
-  content:"\e053";
-}
-
-.oi-double-quote-sans-left:before {
-  content:"\e054";
-}
-
-.oi-double-quote-sans-right:before {
-  content:"\e055";
-}
-
-.oi-double-quote-serif-left:before {
-  content:"\e056";
-}
-
-.oi-double-quote-serif-right:before {
-  content:"\e057";
-}
-
-.oi-droplet:before {
-  content:"\e058";
-}
-
-.oi-eject:before {
-  content:"\e059";
-}
-
-.oi-elevator:before {
-  content:"\e05a";
-}
-
-.oi-ellipses:before {
-  content:"\e05b";
-}
-
-.oi-envelope-closed:before {
-  content:"\e05c";
-}
-
-.oi-envelope-open:before {
-  content:"\e05d";
-}
-
-.oi-euro:before {
-  content:"\e05e";
-}
-
-.oi-excerpt:before {
-  content:"\e05f";
-}
-
-.oi-expand-down:before {
-  content:"\e060";
-}
-
-.oi-expand-left:before {
-  content:"\e061";
-}
-
-.oi-expand-right:before {
-  content:"\e062";
-}
-
-.oi-expand-up:before {
-  content:"\e063";
-}
-
-.oi-external-link:before {
-  content:"\e064";
-}
-
-.oi-eye:before {
-  content:"\e065";
-}
-
-.oi-eyedropper:before {
-  content:"\e066";
-}
-
-.oi-file:before {
-  content:"\e067";
-}
-
-.oi-fire:before {
-  content:"\e068";
-}
-
-.oi-flag:before {
-  content:"\e069";
-}
-
-.oi-flash:before {
-  content:"\e06a";
-}
-
-.oi-folder:before {
-  content:"\e06b";
-}
-
-.oi-fork:before {
-  content:"\e06c";
-}
-
-.oi-fullscreen-enter:before {
-  content:"\e06d";
-}
-
-.oi-fullscreen-exit:before {
-  content:"\e06e";
-}
-
-.oi-globe:before {
-  content:"\e06f";
-}
-
-.oi-graph:before {
-  content:"\e070";
-}
-
-.oi-grid-four-up:before {
-  content:"\e071";
-}
-
-.oi-grid-three-up:before {
-  content:"\e072";
-}
-
-.oi-grid-two-up:before {
-  content:"\e073";
-}
-
-.oi-hard-drive:before {
-  content:"\e074";
-}
-
-.oi-header:before {
-  content:"\e075";
-}
-
-.oi-headphones:before {
-  content:"\e076";
-}
-
-.oi-heart:before {
-  content:"\e077";
-}
-
-.oi-home:before {
-  content:"\e078";
-}
-
-.oi-image:before {
-  content:"\e079";
-}
-
-.oi-inbox:before {
-  content:"\e07a";
-}
-
-.oi-infinity:before {
-  content:"\e07b";
-}
-
-.oi-info:before {
-  content:"\e07c";
-}
-
-.oi-italic:before {
-  content:"\e07d";
-}
-
-.oi-justify-center:before {
-  content:"\e07e";
-}
-
-.oi-justify-left:before {
-  content:"\e07f";
-}
-
-.oi-justify-right:before {
-  content:"\e080";
-}
-
-.oi-key:before {
-  content:"\e081";
-}
-
-.oi-laptop:before {
-  content:"\e082";
-}
-
-.oi-layers:before {
-  content:"\e083";
-}
-
-.oi-lightbulb:before {
-  content:"\e084";
-}
-
-.oi-link-broken:before {
-  content:"\e085";
-}
-
-.oi-link-intact:before {
-  content:"\e086";
-}
-
-.oi-list-rich:before {
-  content:"\e087";
-}
-
-.oi-list:before {
-  content:"\e088";
-}
-
-.oi-location:before {
-  content:"\e089";
-}
-
-.oi-lock-locked:before {
-  content:"\e08a";
-}
-
-.oi-lock-unlocked:before {
-  content:"\e08b";
-}
-
-.oi-loop-circular:before {
-  content:"\e08c";
-}
-
-.oi-loop-square:before {
-  content:"\e08d";
-}
-
-.oi-loop:before {
-  content:"\e08e";
-}
-
-.oi-magnifying-glass:before {
-  content:"\e08f";
-}
-
-.oi-map-marker:before {
-  content:"\e090";
-}
-
-.oi-map:before {
-  content:"\e091";
-}
-
-.oi-media-pause:before {
-  content:"\e092";
-}
-
-.oi-media-play:before {
-  content:"\e093";
-}
-
-.oi-media-record:before {
-  content:"\e094";
-}
-
-.oi-media-skip-backward:before {
-  content:"\e095";
-}
-
-.oi-media-skip-forward:before {
-  content:"\e096";
-}
-
-.oi-media-step-backward:before {
-  content:"\e097";
-}
-
-.oi-media-step-forward:before {
-  content:"\e098";
-}
-
-.oi-media-stop:before {
-  content:"\e099";
-}
-
-.oi-medical-cross:before {
-  content:"\e09a";
-}
-
-.oi-menu:before {
-  content:"\e09b";
-}
-
-.oi-microphone:before {
-  content:"\e09c";
-}
-
-.oi-minus:before {
-  content:"\e09d";
-}
-
-.oi-monitor:before {
-  content:"\e09e";
-}
-
-.oi-moon:before {
-  content:"\e09f";
-}
-
-.oi-move:before {
-  content:"\e0a0";
-}
-
-.oi-musical-note:before {
-  content:"\e0a1";
-}
-
-.oi-paperclip:before {
-  content:"\e0a2";
-}
-
-.oi-pencil:before {
-  content:"\e0a3";
-}
-
-.oi-people:before {
-  content:"\e0a4";
-}
-
-.oi-person:before {
-  content:"\e0a5";
-}
-
-.oi-phone:before {
-  content:"\e0a6";
-}
-
-.oi-pie-chart:before {
-  content:"\e0a7";
-}
-
-.oi-pin:before {
-  content:"\e0a8";
-}
-
-.oi-play-circle:before {
-  content:"\e0a9";
-}
-
-.oi-plus:before {
-  content:"\e0aa";
-}
-
-.oi-power-standby:before {
-  content:"\e0ab";
-}
-
-.oi-print:before {
-  content:"\e0ac";
-}
-
-.oi-project:before {
-  content:"\e0ad";
-}
-
-.oi-pulse:before {
-  content:"\e0ae";
-}
-
-.oi-puzzle-piece:before {
-  content:"\e0af";
-}
-
-.oi-question-mark:before {
-  content:"\e0b0";
-}
-
-.oi-rain:before {
-  content:"\e0b1";
-}
-
-.oi-random:before {
-  content:"\e0b2";
-}
-
-.oi-reload:before {
-  content:"\e0b3";
-}
-
-.oi-resize-both:before {
-  content:"\e0b4";
-}
-
-.oi-resize-height:before {
-  content:"\e0b5";
-}
-
-.oi-resize-width:before {
-  content:"\e0b6";
-}
-
-.oi-rss-alt:before {
-  content:"\e0b7";
-}
-
-.oi-rss:before {
-  content:"\e0b8";
-}
-
-.oi-script:before {
-  content:"\e0b9";
-}
-
-.oi-share-boxed:before {
-  content:"\e0ba";
-}
-
-.oi-share:before {
-  content:"\e0bb";
-}
-
-.oi-shield:before {
-  content:"\e0bc";
-}
-
-.oi-signal:before {
-  content:"\e0bd";
-}
-
-.oi-signpost:before {
-  content:"\e0be";
-}
-
-.oi-sort-ascending:before {
-  content:"\e0bf";
-}
-
-.oi-sort-descending:before {
-  content:"\e0c0";
-}
-
-.oi-spreadsheet:before {
-  content:"\e0c1";
-}
-
-.oi-star:before {
-  content:"\e0c2";
-}
-
-.oi-sun:before {
-  content:"\e0c3";
-}
-
-.oi-tablet:before {
-  content:"\e0c4";
-}
-
-.oi-tag:before {
-  content:"\e0c5";
-}
-
-.oi-tags:before {
-  content:"\e0c6";
-}
-
-.oi-target:before {
-  content:"\e0c7";
-}
-
-.oi-task:before {
-  content:"\e0c8";
-}
-
-.oi-terminal:before {
-  content:"\e0c9";
-}
-
-.oi-text:before {
-  content:"\e0ca";
-}
-
-.oi-thumb-down:before {
-  content:"\e0cb";
-}
-
-.oi-thumb-up:before {
-  content:"\e0cc";
-}
-
-.oi-timer:before {
-  content:"\e0cd";
-}
-
-.oi-transfer:before {
-  content:"\e0ce";
-}
-
-.oi-trash:before {
-  content:"\e0cf";
-}
-
-.oi-underline:before {
-  content:"\e0d0";
-}
-
-.oi-vertical-align-bottom:before {
-  content:"\e0d1";
-}
-
-.oi-vertical-align-center:before {
-  content:"\e0d2";
-}
-
-.oi-vertical-align-top:before {
-  content:"\e0d3";
-}
-
-.oi-video:before {
-  content:"\e0d4";
-}
-
-.oi-volume-high:before {
-  content:"\e0d5";
-}
-
-.oi-volume-low:before {
-  content:"\e0d6";
-}
-
-.oi-volume-off:before {
-  content:"\e0d7";
-}
-
-.oi-warning:before {
-  content:"\e0d8";
-}
-
-.oi-wifi:before {
-  content:"\e0d9";
-}
-
-.oi-wrench:before {
-  content:"\e0da";
-}
-
-.oi-x:before {
-  content:"\e0db";
-}
-
-.oi-yen:before {
-  content:"\e0dc";
-}
-
-.oi-zoom-in:before {
-  content:"\e0dd";
-}
-
-.oi-zoom-out:before {
-  content:"\e0de";
-}
-
diff --git a/assets/static/fonts/open-iconic/font/css/open-iconic-bootstrap.min.css b/assets/static/fonts/open-iconic/font/css/open-iconic-bootstrap.min.css
deleted file mode 100644
index 4664f2e..0000000
--- a/assets/static/fonts/open-iconic/font/css/open-iconic-bootstrap.min.css
+++ /dev/null
@@ -1 +0,0 @@
- at font-face{font-family:Icons;src:url(../fonts/open-iconic.eot);src:url(../fonts/open-iconic.eot?#iconic-sm) format('embedded-opentype'),url(../fonts/open-iconic.woff) format('woff'),url(../fonts/open-iconic.ttf) format('truetype'),url(../fonts/open-iconic.otf) format('opentype'),url(../fonts/open-iconic.svg#iconic-sm) format('svg');font-weight:400;font-style:normal}.oi{position:relative;top:1px;display:inline-block;speak:none;font-family:Icons;font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.oi:empty:before{width:1em;text-align:center;box-sizing:content-box}.oi.oi-align-center:before{text-align:center}.oi.oi-align-left:before{text-align:left}.oi.oi-align-right:before{text-align:right}.oi.oi-flip-horizontal:before{-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.oi.oi-flip-vertical:before{-webkit-transform:scale(1,-1);-ms-transform:scale(-1,1);transform:scale(1,-1)}.oi.oi-flip-horizonta
 l-vertical:before{-webkit-transform:scale(-1,-1);-ms-transform:scale(-1,1);transform:scale(-1,-1)}.oi-account-login:before{content:'\e000'}.oi-account-logout:before{content:'\e001'}.oi-action-redo:before{content:'\e002'}.oi-action-undo:before{content:'\e003'}.oi-align-center:before{content:'\e004'}.oi-align-left:before{content:'\e005'}.oi-align-right:before{content:'\e006'}.oi-aperture:before{content:'\e007'}.oi-arrow-bottom:before{content:'\e008'}.oi-arrow-circle-bottom:before{content:'\e009'}.oi-arrow-circle-left:before{content:'\e00a'}.oi-arrow-circle-right:before{content:'\e00b'}.oi-arrow-circle-top:before{content:'\e00c'}.oi-arrow-left:before{content:'\e00d'}.oi-arrow-right:before{content:'\e00e'}.oi-arrow-thick-bottom:before{content:'\e00f'}.oi-arrow-thick-left:before{content:'\e010'}.oi-arrow-thick-right:before{content:'\e011'}.oi-arrow-thick-top:before{content:'\e012'}.oi-arrow-top:before{content:'\e013'}.oi-audio-spectrum:before{content:'\e014'}.oi-audio:before{content:'\e0
 15'}.oi-badge:before{content:'\e016'}.oi-ban:before{content:'\e017'}.oi-bar-chart:before{content:'\e018'}.oi-basket:before{content:'\e019'}.oi-battery-empty:before{content:'\e01a'}.oi-battery-full:before{content:'\e01b'}.oi-beaker:before{content:'\e01c'}.oi-bell:before{content:'\e01d'}.oi-bluetooth:before{content:'\e01e'}.oi-bold:before{content:'\e01f'}.oi-bolt:before{content:'\e020'}.oi-book:before{content:'\e021'}.oi-bookmark:before{content:'\e022'}.oi-box:before{content:'\e023'}.oi-briefcase:before{content:'\e024'}.oi-british-pound:before{content:'\e025'}.oi-browser:before{content:'\e026'}.oi-brush:before{content:'\e027'}.oi-bug:before{content:'\e028'}.oi-bullhorn:before{content:'\e029'}.oi-calculator:before{content:'\e02a'}.oi-calendar:before{content:'\e02b'}.oi-camera-slr:before{content:'\e02c'}.oi-caret-bottom:before{content:'\e02d'}.oi-caret-left:before{content:'\e02e'}.oi-caret-right:before{content:'\e02f'}.oi-caret-top:before{content:'\e030'}.oi-cart:before{content:'\e031'}
 .oi-chat:before{content:'\e032'}.oi-check:before{content:'\e033'}.oi-chevron-bottom:before{content:'\e034'}.oi-chevron-left:before{content:'\e035'}.oi-chevron-right:before{content:'\e036'}.oi-chevron-top:before{content:'\e037'}.oi-circle-check:before{content:'\e038'}.oi-circle-x:before{content:'\e039'}.oi-clipboard:before{content:'\e03a'}.oi-clock:before{content:'\e03b'}.oi-cloud-download:before{content:'\e03c'}.oi-cloud-upload:before{content:'\e03d'}.oi-cloud:before{content:'\e03e'}.oi-cloudy:before{content:'\e03f'}.oi-code:before{content:'\e040'}.oi-cog:before{content:'\e041'}.oi-collapse-down:before{content:'\e042'}.oi-collapse-left:before{content:'\e043'}.oi-collapse-right:before{content:'\e044'}.oi-collapse-up:before{content:'\e045'}.oi-command:before{content:'\e046'}.oi-comment-square:before{content:'\e047'}.oi-compass:before{content:'\e048'}.oi-contrast:before{content:'\e049'}.oi-copywriting:before{content:'\e04a'}.oi-credit-card:before{content:'\e04b'}.oi-crop:before{content
 :'\e04c'}.oi-dashboard:before{content:'\e04d'}.oi-data-transfer-download:before{content:'\e04e'}.oi-data-transfer-upload:before{content:'\e04f'}.oi-delete:before{content:'\e050'}.oi-dial:before{content:'\e051'}.oi-document:before{content:'\e052'}.oi-dollar:before{content:'\e053'}.oi-double-quote-sans-left:before{content:'\e054'}.oi-double-quote-sans-right:before{content:'\e055'}.oi-double-quote-serif-left:before{content:'\e056'}.oi-double-quote-serif-right:before{content:'\e057'}.oi-droplet:before{content:'\e058'}.oi-eject:before{content:'\e059'}.oi-elevator:before{content:'\e05a'}.oi-ellipses:before{content:'\e05b'}.oi-envelope-closed:before{content:'\e05c'}.oi-envelope-open:before{content:'\e05d'}.oi-euro:before{content:'\e05e'}.oi-excerpt:before{content:'\e05f'}.oi-expand-down:before{content:'\e060'}.oi-expand-left:before{content:'\e061'}.oi-expand-right:before{content:'\e062'}.oi-expand-up:before{content:'\e063'}.oi-external-link:before{content:'\e064'}.oi-eye:before{content:'\e
 065'}.oi-eyedropper:before{content:'\e066'}.oi-file:before{content:'\e067'}.oi-fire:before{content:'\e068'}.oi-flag:before{content:'\e069'}.oi-flash:before{content:'\e06a'}.oi-folder:before{content:'\e06b'}.oi-fork:before{content:'\e06c'}.oi-fullscreen-enter:before{content:'\e06d'}.oi-fullscreen-exit:before{content:'\e06e'}.oi-globe:before{content:'\e06f'}.oi-graph:before{content:'\e070'}.oi-grid-four-up:before{content:'\e071'}.oi-grid-three-up:before{content:'\e072'}.oi-grid-two-up:before{content:'\e073'}.oi-hard-drive:before{content:'\e074'}.oi-header:before{content:'\e075'}.oi-headphones:before{content:'\e076'}.oi-heart:before{content:'\e077'}.oi-home:before{content:'\e078'}.oi-image:before{content:'\e079'}.oi-inbox:before{content:'\e07a'}.oi-infinity:before{content:'\e07b'}.oi-info:before{content:'\e07c'}.oi-italic:before{content:'\e07d'}.oi-justify-center:before{content:'\e07e'}.oi-justify-left:before{content:'\e07f'}.oi-justify-right:before{content:'\e080'}.oi-key:before{conte
 nt:'\e081'}.oi-laptop:before{content:'\e082'}.oi-layers:before{content:'\e083'}.oi-lightbulb:before{content:'\e084'}.oi-link-broken:before{content:'\e085'}.oi-link-intact:before{content:'\e086'}.oi-list-rich:before{content:'\e087'}.oi-list:before{content:'\e088'}.oi-location:before{content:'\e089'}.oi-lock-locked:before{content:'\e08a'}.oi-lock-unlocked:before{content:'\e08b'}.oi-loop-circular:before{content:'\e08c'}.oi-loop-square:before{content:'\e08d'}.oi-loop:before{content:'\e08e'}.oi-magnifying-glass:before{content:'\e08f'}.oi-map-marker:before{content:'\e090'}.oi-map:before{content:'\e091'}.oi-media-pause:before{content:'\e092'}.oi-media-play:before{content:'\e093'}.oi-media-record:before{content:'\e094'}.oi-media-skip-backward:before{content:'\e095'}.oi-media-skip-forward:before{content:'\e096'}.oi-media-step-backward:before{content:'\e097'}.oi-media-step-forward:before{content:'\e098'}.oi-media-stop:before{content:'\e099'}.oi-medical-cross:before{content:'\e09a'}.oi-menu:be
 fore{content:'\e09b'}.oi-microphone:before{content:'\e09c'}.oi-minus:before{content:'\e09d'}.oi-monitor:before{content:'\e09e'}.oi-moon:before{content:'\e09f'}.oi-move:before{content:'\e0a0'}.oi-musical-note:before{content:'\e0a1'}.oi-paperclip:before{content:'\e0a2'}.oi-pencil:before{content:'\e0a3'}.oi-people:before{content:'\e0a4'}.oi-person:before{content:'\e0a5'}.oi-phone:before{content:'\e0a6'}.oi-pie-chart:before{content:'\e0a7'}.oi-pin:before{content:'\e0a8'}.oi-play-circle:before{content:'\e0a9'}.oi-plus:before{content:'\e0aa'}.oi-power-standby:before{content:'\e0ab'}.oi-print:before{content:'\e0ac'}.oi-project:before{content:'\e0ad'}.oi-pulse:before{content:'\e0ae'}.oi-puzzle-piece:before{content:'\e0af'}.oi-question-mark:before{content:'\e0b0'}.oi-rain:before{content:'\e0b1'}.oi-random:before{content:'\e0b2'}.oi-reload:before{content:'\e0b3'}.oi-resize-both:before{content:'\e0b4'}.oi-resize-height:before{content:'\e0b5'}.oi-resize-width:before{content:'\e0b6'}.oi-rss-alt:
 before{content:'\e0b7'}.oi-rss:before{content:'\e0b8'}.oi-script:before{content:'\e0b9'}.oi-share-boxed:before{content:'\e0ba'}.oi-share:before{content:'\e0bb'}.oi-shield:before{content:'\e0bc'}.oi-signal:before{content:'\e0bd'}.oi-signpost:before{content:'\e0be'}.oi-sort-ascending:before{content:'\e0bf'}.oi-sort-descending:before{content:'\e0c0'}.oi-spreadsheet:before{content:'\e0c1'}.oi-star:before{content:'\e0c2'}.oi-sun:before{content:'\e0c3'}.oi-tablet:before{content:'\e0c4'}.oi-tag:before{content:'\e0c5'}.oi-tags:before{content:'\e0c6'}.oi-target:before{content:'\e0c7'}.oi-task:before{content:'\e0c8'}.oi-terminal:before{content:'\e0c9'}.oi-text:before{content:'\e0ca'}.oi-thumb-down:before{content:'\e0cb'}.oi-thumb-up:before{content:'\e0cc'}.oi-timer:before{content:'\e0cd'}.oi-transfer:before{content:'\e0ce'}.oi-trash:before{content:'\e0cf'}.oi-underline:before{content:'\e0d0'}.oi-vertical-align-bottom:before{content:'\e0d1'}.oi-vertical-align-center:before{content:'\e0d2'}.oi-
 vertical-align-top:before{content:'\e0d3'}.oi-video:before{content:'\e0d4'}.oi-volume-high:before{content:'\e0d5'}.oi-volume-low:before{content:'\e0d6'}.oi-volume-off:before{content:'\e0d7'}.oi-warning:before{content:'\e0d8'}.oi-wifi:before{content:'\e0d9'}.oi-wrench:before{content:'\e0da'}.oi-x:before{content:'\e0db'}.oi-yen:before{content:'\e0dc'}.oi-zoom-in:before{content:'\e0dd'}.oi-zoom-out:before{content:'\e0de'}
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/font/css/open-iconic-bootstrap.scss b/assets/static/fonts/open-iconic/font/css/open-iconic-bootstrap.scss
deleted file mode 100644
index 18f01e2..0000000
--- a/assets/static/fonts/open-iconic/font/css/open-iconic-bootstrap.scss
+++ /dev/null
@@ -1,958 +0,0 @@
-/* Bootstrap */
-
-/* Override Bootstrap default variable */
-$icon-font-path: '../fonts/' !default;
-
- at font-face {
-  font-family: 'Icons';
-  src: url('#{$icon-font-path}open-iconic.eot');
-  src: url('#{$icon-font-path}open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('#{$icon-font-path}open-iconic.woff') format('woff'), url('#{$icon-font-path}open-iconic.ttf') format('truetype'), url('#{$icon-font-path}open-iconic.svg#iconic-sm') format('svg');
-  font-weight: normal;
-  font-style: normal;
-}
-
-// Catchall baseclass
-.oi {
-  position: relative;
-  top: 1px;
-  display: inline-block;
-  font-family: 'Icons';
-  font-style: normal;
-  font-weight: normal;
-  line-height: 1;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-
-
-  &:empty:before {
-    width: 1em;
-    text-align: center;
-    box-sizing: content-box;
-  }
-
-  &.oi-align-center:before {
-    text-align: center;
-  }
-
-  &.oi-align-left:before {
-    text-align: left;
-  }
-
-  &.oi-align-right:before {
-    text-align: right;
-  }
-
-
-  &.oi-flip-horizontal:before {
-    -webkit-transform: scale(-1, 1);
-    -ms-transform: scale(-1, 1);
-    transform: scale(-1, 1);
-  }
-
-  &.oi-flip-vertical:before {
-    -webkit-transform: scale(1, -1);
-    -ms-transform: scale(-1, 1);
-    transform: scale(1, -1);
-  }
-
-  &.oi-flip-horizontal-vertical:before {
-    -webkit-transform: scale(-1, -1);
-    -ms-transform: scale(-1, 1);
-    transform: scale(-1, -1);
-  }
-}
-
-
-
-.oi-account-login:before {
-  content:'\e000';
-}
-
-.oi-account-logout:before {
-  content:'\e001';
-}
-
-.oi-action-redo:before {
-  content:'\e002';
-}
-
-.oi-action-undo:before {
-  content:'\e003';
-}
-
-.oi-align-center:before {
-  content:'\e004';
-}
-
-.oi-align-left:before {
-  content:'\e005';
-}
-
-.oi-align-right:before {
-  content:'\e006';
-}
-
-.oi-aperture:before {
-  content:'\e007';
-}
-
-.oi-arrow-bottom:before {
-  content:'\e008';
-}
-
-.oi-arrow-circle-bottom:before {
-  content:'\e009';
-}
-
-.oi-arrow-circle-left:before {
-  content:'\e00a';
-}
-
-.oi-arrow-circle-right:before {
-  content:'\e00b';
-}
-
-.oi-arrow-circle-top:before {
-  content:'\e00c';
-}
-
-.oi-arrow-left:before {
-  content:'\e00d';
-}
-
-.oi-arrow-right:before {
-  content:'\e00e';
-}
-
-.oi-arrow-thick-bottom:before {
-  content:'\e00f';
-}
-
-.oi-arrow-thick-left:before {
-  content:'\e010';
-}
-
-.oi-arrow-thick-right:before {
-  content:'\e011';
-}
-
-.oi-arrow-thick-top:before {
-  content:'\e012';
-}
-
-.oi-arrow-top:before {
-  content:'\e013';
-}
-
-.oi-audio-spectrum:before {
-  content:'\e014';
-}
-
-.oi-audio:before {
-  content:'\e015';
-}
-
-.oi-badge:before {
-  content:'\e016';
-}
-
-.oi-ban:before {
-  content:'\e017';
-}
-
-.oi-bar-chart:before {
-  content:'\e018';
-}
-
-.oi-basket:before {
-  content:'\e019';
-}
-
-.oi-battery-empty:before {
-  content:'\e01a';
-}
-
-.oi-battery-full:before {
-  content:'\e01b';
-}
-
-.oi-beaker:before {
-  content:'\e01c';
-}
-
-.oi-bell:before {
-  content:'\e01d';
-}
-
-.oi-bluetooth:before {
-  content:'\e01e';
-}
-
-.oi-bold:before {
-  content:'\e01f';
-}
-
-.oi-bolt:before {
-  content:'\e020';
-}
-
-.oi-book:before {
-  content:'\e021';
-}
-
-.oi-bookmark:before {
-  content:'\e022';
-}
-
-.oi-box:before {
-  content:'\e023';
-}
-
-.oi-briefcase:before {
-  content:'\e024';
-}
-
-.oi-british-pound:before {
-  content:'\e025';
-}
-
-.oi-browser:before {
-  content:'\e026';
-}
-
-.oi-brush:before {
-  content:'\e027';
-}
-
-.oi-bug:before {
-  content:'\e028';
-}
-
-.oi-bullhorn:before {
-  content:'\e029';
-}
-
-.oi-calculator:before {
-  content:'\e02a';
-}
-
-.oi-calendar:before {
-  content:'\e02b';
-}
-
-.oi-camera-slr:before {
-  content:'\e02c';
-}
-
-.oi-caret-bottom:before {
-  content:'\e02d';
-}
-
-.oi-caret-left:before {
-  content:'\e02e';
-}
-
-.oi-caret-right:before {
-  content:'\e02f';
-}
-
-.oi-caret-top:before {
-  content:'\e030';
-}
-
-.oi-cart:before {
-  content:'\e031';
-}
-
-.oi-chat:before {
-  content:'\e032';
-}
-
-.oi-check:before {
-  content:'\e033';
-}
-
-.oi-chevron-bottom:before {
-  content:'\e034';
-}
-
-.oi-chevron-left:before {
-  content:'\e035';
-}
-
-.oi-chevron-right:before {
-  content:'\e036';
-}
-
-.oi-chevron-top:before {
-  content:'\e037';
-}
-
-.oi-circle-check:before {
-  content:'\e038';
-}
-
-.oi-circle-x:before {
-  content:'\e039';
-}
-
-.oi-clipboard:before {
-  content:'\e03a';
-}
-
-.oi-clock:before {
-  content:'\e03b';
-}
-
-.oi-cloud-download:before {
-  content:'\e03c';
-}
-
-.oi-cloud-upload:before {
-  content:'\e03d';
-}
-
-.oi-cloud:before {
-  content:'\e03e';
-}
-
-.oi-cloudy:before {
-  content:'\e03f';
-}
-
-.oi-code:before {
-  content:'\e040';
-}
-
-.oi-cog:before {
-  content:'\e041';
-}
-
-.oi-collapse-down:before {
-  content:'\e042';
-}
-
-.oi-collapse-left:before {
-  content:'\e043';
-}
-
-.oi-collapse-right:before {
-  content:'\e044';
-}
-
-.oi-collapse-up:before {
-  content:'\e045';
-}
-
-.oi-command:before {
-  content:'\e046';
-}
-
-.oi-comment-square:before {
-  content:'\e047';
-}
-
-.oi-compass:before {
-  content:'\e048';
-}
-
-.oi-contrast:before {
-  content:'\e049';
-}
-
-.oi-copywriting:before {
-  content:'\e04a';
-}
-
-.oi-credit-card:before {
-  content:'\e04b';
-}
-
-.oi-crop:before {
-  content:'\e04c';
-}
-
-.oi-dashboard:before {
-  content:'\e04d';
-}
-
-.oi-data-transfer-download:before {
-  content:'\e04e';
-}
-
-.oi-data-transfer-upload:before {
-  content:'\e04f';
-}
-
-.oi-delete:before {
-  content:'\e050';
-}
-
-.oi-dial:before {
-  content:'\e051';
-}
-
-.oi-document:before {
-  content:'\e052';
-}
-
-.oi-dollar:before {
-  content:'\e053';
-}
-
-.oi-double-quote-sans-left:before {
-  content:'\e054';
-}
-
-.oi-double-quote-sans-right:before {
-  content:'\e055';
-}
-
-.oi-double-quote-serif-left:before {
-  content:'\e056';
-}
-
-.oi-double-quote-serif-right:before {
-  content:'\e057';
-}
-
-.oi-droplet:before {
-  content:'\e058';
-}
-
-.oi-eject:before {
-  content:'\e059';
-}
-
-.oi-elevator:before {
-  content:'\e05a';
-}
-
-.oi-ellipses:before {
-  content:'\e05b';
-}
-
-.oi-envelope-closed:before {
-  content:'\e05c';
-}
-
-.oi-envelope-open:before {
-  content:'\e05d';
-}
-
-.oi-euro:before {
-  content:'\e05e';
-}
-
-.oi-excerpt:before {
-  content:'\e05f';
-}
-
-.oi-expand-down:before {
-  content:'\e060';
-}
-
-.oi-expand-left:before {
-  content:'\e061';
-}
-
-.oi-expand-right:before {
-  content:'\e062';
-}
-
-.oi-expand-up:before {
-  content:'\e063';
-}
-
-.oi-external-link:before {
-  content:'\e064';
-}
-
-.oi-eye:before {
-  content:'\e065';
-}
-
-.oi-eyedropper:before {
-  content:'\e066';
-}
-
-.oi-file:before {
-  content:'\e067';
-}
-
-.oi-fire:before {
-  content:'\e068';
-}
-
-.oi-flag:before {
-  content:'\e069';
-}
-
-.oi-flash:before {
-  content:'\e06a';
-}
-
-.oi-folder:before {
-  content:'\e06b';
-}
-
-.oi-fork:before {
-  content:'\e06c';
-}
-
-.oi-fullscreen-enter:before {
-  content:'\e06d';
-}
-
-.oi-fullscreen-exit:before {
-  content:'\e06e';
-}
-
-.oi-globe:before {
-  content:'\e06f';
-}
-
-.oi-graph:before {
-  content:'\e070';
-}
-
-.oi-grid-four-up:before {
-  content:'\e071';
-}
-
-.oi-grid-three-up:before {
-  content:'\e072';
-}
-
-.oi-grid-two-up:before {
-  content:'\e073';
-}
-
-.oi-hard-drive:before {
-  content:'\e074';
-}
-
-.oi-header:before {
-  content:'\e075';
-}
-
-.oi-headphones:before {
-  content:'\e076';
-}
-
-.oi-heart:before {
-  content:'\e077';
-}
-
-.oi-home:before {
-  content:'\e078';
-}
-
-.oi-image:before {
-  content:'\e079';
-}
-
-.oi-inbox:before {
-  content:'\e07a';
-}
-
-.oi-infinity:before {
-  content:'\e07b';
-}
-
-.oi-info:before {
-  content:'\e07c';
-}
-
-.oi-italic:before {
-  content:'\e07d';
-}
-
-.oi-justify-center:before {
-  content:'\e07e';
-}
-
-.oi-justify-left:before {
-  content:'\e07f';
-}
-
-.oi-justify-right:before {
-  content:'\e080';
-}
-
-.oi-key:before {
-  content:'\e081';
-}
-
-.oi-laptop:before {
-  content:'\e082';
-}
-
-.oi-layers:before {
-  content:'\e083';
-}
-
-.oi-lightbulb:before {
-  content:'\e084';
-}
-
-.oi-link-broken:before {
-  content:'\e085';
-}
-
-.oi-link-intact:before {
-  content:'\e086';
-}
-
-.oi-list-rich:before {
-  content:'\e087';
-}
-
-.oi-list:before {
-  content:'\e088';
-}
-
-.oi-location:before {
-  content:'\e089';
-}
-
-.oi-lock-locked:before {
-  content:'\e08a';
-}
-
-.oi-lock-unlocked:before {
-  content:'\e08b';
-}
-
-.oi-loop-circular:before {
-  content:'\e08c';
-}
-
-.oi-loop-square:before {
-  content:'\e08d';
-}
-
-.oi-loop:before {
-  content:'\e08e';
-}
-
-.oi-magnifying-glass:before {
-  content:'\e08f';
-}
-
-.oi-map-marker:before {
-  content:'\e090';
-}
-
-.oi-map:before {
-  content:'\e091';
-}
-
-.oi-media-pause:before {
-  content:'\e092';
-}
-
-.oi-media-play:before {
-  content:'\e093';
-}
-
-.oi-media-record:before {
-  content:'\e094';
-}
-
-.oi-media-skip-backward:before {
-  content:'\e095';
-}
-
-.oi-media-skip-forward:before {
-  content:'\e096';
-}
-
-.oi-media-step-backward:before {
-  content:'\e097';
-}
-
-.oi-media-step-forward:before {
-  content:'\e098';
-}
-
-.oi-media-stop:before {
-  content:'\e099';
-}
-
-.oi-medical-cross:before {
-  content:'\e09a';
-}
-
-.oi-menu:before {
-  content:'\e09b';
-}
-
-.oi-microphone:before {
-  content:'\e09c';
-}
-
-.oi-minus:before {
-  content:'\e09d';
-}
-
-.oi-monitor:before {
-  content:'\e09e';
-}
-
-.oi-moon:before {
-  content:'\e09f';
-}
-
-.oi-move:before {
-  content:'\e0a0';
-}
-
-.oi-musical-note:before {
-  content:'\e0a1';
-}
-
-.oi-paperclip:before {
-  content:'\e0a2';
-}
-
-.oi-pencil:before {
-  content:'\e0a3';
-}
-
-.oi-people:before {
-  content:'\e0a4';
-}
-
-.oi-person:before {
-  content:'\e0a5';
-}
-
-.oi-phone:before {
-  content:'\e0a6';
-}
-
-.oi-pie-chart:before {
-  content:'\e0a7';
-}
-
-.oi-pin:before {
-  content:'\e0a8';
-}
-
-.oi-play-circle:before {
-  content:'\e0a9';
-}
-
-.oi-plus:before {
-  content:'\e0aa';
-}
-
-.oi-power-standby:before {
-  content:'\e0ab';
-}
-
-.oi-print:before {
-  content:'\e0ac';
-}
-
-.oi-project:before {
-  content:'\e0ad';
-}
-
-.oi-pulse:before {
-  content:'\e0ae';
-}
-
-.oi-puzzle-piece:before {
-  content:'\e0af';
-}
-
-.oi-question-mark:before {
-  content:'\e0b0';
-}
-
-.oi-rain:before {
-  content:'\e0b1';
-}
-
-.oi-random:before {
-  content:'\e0b2';
-}
-
-.oi-reload:before {
-  content:'\e0b3';
-}
-
-.oi-resize-both:before {
-  content:'\e0b4';
-}
-
-.oi-resize-height:before {
-  content:'\e0b5';
-}
-
-.oi-resize-width:before {
-  content:'\e0b6';
-}
-
-.oi-rss-alt:before {
-  content:'\e0b7';
-}
-
-.oi-rss:before {
-  content:'\e0b8';
-}
-
-.oi-script:before {
-  content:'\e0b9';
-}
-
-.oi-share-boxed:before {
-  content:'\e0ba';
-}
-
-.oi-share:before {
-  content:'\e0bb';
-}
-
-.oi-shield:before {
-  content:'\e0bc';
-}
-
-.oi-signal:before {
-  content:'\e0bd';
-}
-
-.oi-signpost:before {
-  content:'\e0be';
-}
-
-.oi-sort-ascending:before {
-  content:'\e0bf';
-}
-
-.oi-sort-descending:before {
-  content:'\e0c0';
-}
-
-.oi-spreadsheet:before {
-  content:'\e0c1';
-}
-
-.oi-star:before {
-  content:'\e0c2';
-}
-
-.oi-sun:before {
-  content:'\e0c3';
-}
-
-.oi-tablet:before {
-  content:'\e0c4';
-}
-
-.oi-tag:before {
-  content:'\e0c5';
-}
-
-.oi-tags:before {
-  content:'\e0c6';
-}
-
-.oi-target:before {
-  content:'\e0c7';
-}
-
-.oi-task:before {
-  content:'\e0c8';
-}
-
-.oi-terminal:before {
-  content:'\e0c9';
-}
-
-.oi-text:before {
-  content:'\e0ca';
-}
-
-.oi-thumb-down:before {
-  content:'\e0cb';
-}
-
-.oi-thumb-up:before {
-  content:'\e0cc';
-}
-
-.oi-timer:before {
-  content:'\e0cd';
-}
-
-.oi-transfer:before {
-  content:'\e0ce';
-}
-
-.oi-trash:before {
-  content:'\e0cf';
-}
-
-.oi-underline:before {
-  content:'\e0d0';
-}
-
-.oi-vertical-align-bottom:before {
-  content:'\e0d1';
-}
-
-.oi-vertical-align-center:before {
-  content:'\e0d2';
-}
-
-.oi-vertical-align-top:before {
-  content:'\e0d3';
-}
-
-.oi-video:before {
-  content:'\e0d4';
-}
-
-.oi-volume-high:before {
-  content:'\e0d5';
-}
-
-.oi-volume-low:before {
-  content:'\e0d6';
-}
-
-.oi-volume-off:before {
-  content:'\e0d7';
-}
-
-.oi-warning:before {
-  content:'\e0d8';
-}
-
-.oi-wifi:before {
-  content:'\e0d9';
-}
-
-.oi-wrench:before {
-  content:'\e0da';
-}
-
-.oi-x:before {
-  content:'\e0db';
-}
-
-.oi-yen:before {
-  content:'\e0dc';
-}
-
-.oi-zoom-in:before {
-  content:'\e0dd';
-}
-
-.oi-zoom-out:before {
-  content:'\e0de';
-}
-
diff --git a/assets/static/fonts/open-iconic/font/css/open-iconic-bootstrap.styl b/assets/static/fonts/open-iconic/font/css/open-iconic-bootstrap.styl
deleted file mode 100644
index 0afa254..0000000
--- a/assets/static/fonts/open-iconic/font/css/open-iconic-bootstrap.styl
+++ /dev/null
@@ -1,954 +0,0 @@
-/* Bootstrap */
-
- at font-face
-  font-family 'Icons'
-  src url('../fonts/open-iconic.eot')
-  src url('../fonts/open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('../fonts/open-iconic.woff') format('woff'), url('../fonts/open-iconic.ttf') format('truetype'), url('../fonts/open-iconic.svg#iconic-sm') format('svg')
-  font-weight normal
-  font-style normal
-
-
-// Catchall baseclass
-.oi
-  position relative
-  top 1px
-  display inline-block
-  font-family 'Icons'
-  font-style normal
-  font-weight normal
-  line-height 1
-  -webkit-font-smoothing antialiased
-  -moz-osx-font-smoothing grayscale
-
-
-  &:empty:before
-    width 1em
-    text-align center
-    box-sizing content-box
-
-  &.oi-align-center:before
-    text-align center
-
-
-  &.oi-align-left:before
-    text-align left
-
-
-  &.oi-align-right:before
-    text-align right
-
-
-
-  &.oi-flip-horizontal:before
-    -webkit-transform scale(-1, 1)
-    -ms-transform scale(-1, 1)
-    transform scale(-1, 1)
-
-
-  &.oi-flip-vertical:before
-    -webkit-transform scale(1, -1)
-    -ms-transform scale(-1, 1)
-    transform scale(1, -1)
-
-
-  &.oi-flip-horizontal-vertical:before
-    -webkit-transform scale(-1, -1)
-    -ms-transform scale(-1, 1)
-    transform scale(-1, -1)
-
-
-
-
-
-.oi-account-login:before {
-  content'\e000'
-}
-
-.oi-account-logout:before {
-  content'\e001'
-}
-
-.oi-action-redo:before {
-  content'\e002'
-}
-
-.oi-action-undo:before {
-  content'\e003'
-}
-
-.oi-align-center:before {
-  content'\e004'
-}
-
-.oi-align-left:before {
-  content'\e005'
-}
-
-.oi-align-right:before {
-  content'\e006'
-}
-
-.oi-aperture:before {
-  content'\e007'
-}
-
-.oi-arrow-bottom:before {
-  content'\e008'
-}
-
-.oi-arrow-circle-bottom:before {
-  content'\e009'
-}
-
-.oi-arrow-circle-left:before {
-  content'\e00a'
-}
-
-.oi-arrow-circle-right:before {
-  content'\e00b'
-}
-
-.oi-arrow-circle-top:before {
-  content'\e00c'
-}
-
-.oi-arrow-left:before {
-  content'\e00d'
-}
-
-.oi-arrow-right:before {
-  content'\e00e'
-}
-
-.oi-arrow-thick-bottom:before {
-  content'\e00f'
-}
-
-.oi-arrow-thick-left:before {
-  content'\e010'
-}
-
-.oi-arrow-thick-right:before {
-  content'\e011'
-}
-
-.oi-arrow-thick-top:before {
-  content'\e012'
-}
-
-.oi-arrow-top:before {
-  content'\e013'
-}
-
-.oi-audio-spectrum:before {
-  content'\e014'
-}
-
-.oi-audio:before {
-  content'\e015'
-}
-
-.oi-badge:before {
-  content'\e016'
-}
-
-.oi-ban:before {
-  content'\e017'
-}
-
-.oi-bar-chart:before {
-  content'\e018'
-}
-
-.oi-basket:before {
-  content'\e019'
-}
-
-.oi-battery-empty:before {
-  content'\e01a'
-}
-
-.oi-battery-full:before {
-  content'\e01b'
-}
-
-.oi-beaker:before {
-  content'\e01c'
-}
-
-.oi-bell:before {
-  content'\e01d'
-}
-
-.oi-bluetooth:before {
-  content'\e01e'
-}
-
-.oi-bold:before {
-  content'\e01f'
-}
-
-.oi-bolt:before {
-  content'\e020'
-}
-
-.oi-book:before {
-  content'\e021'
-}
-
-.oi-bookmark:before {
-  content'\e022'
-}
-
-.oi-box:before {
-  content'\e023'
-}
-
-.oi-briefcase:before {
-  content'\e024'
-}
-
-.oi-british-pound:before {
-  content'\e025'
-}
-
-.oi-browser:before {
-  content'\e026'
-}
-
-.oi-brush:before {
-  content'\e027'
-}
-
-.oi-bug:before {
-  content'\e028'
-}
-
-.oi-bullhorn:before {
-  content'\e029'
-}
-
-.oi-calculator:before {
-  content'\e02a'
-}
-
-.oi-calendar:before {
-  content'\e02b'
-}
-
-.oi-camera-slr:before {
-  content'\e02c'
-}
-
-.oi-caret-bottom:before {
-  content'\e02d'
-}
-
-.oi-caret-left:before {
-  content'\e02e'
-}
-
-.oi-caret-right:before {
-  content'\e02f'
-}
-
-.oi-caret-top:before {
-  content'\e030'
-}
-
-.oi-cart:before {
-  content'\e031'
-}
-
-.oi-chat:before {
-  content'\e032'
-}
-
-.oi-check:before {
-  content'\e033'
-}
-
-.oi-chevron-bottom:before {
-  content'\e034'
-}
-
-.oi-chevron-left:before {
-  content'\e035'
-}
-
-.oi-chevron-right:before {
-  content'\e036'
-}
-
-.oi-chevron-top:before {
-  content'\e037'
-}
-
-.oi-circle-check:before {
-  content'\e038'
-}
-
-.oi-circle-x:before {
-  content'\e039'
-}
-
-.oi-clipboard:before {
-  content'\e03a'
-}
-
-.oi-clock:before {
-  content'\e03b'
-}
-
-.oi-cloud-download:before {
-  content'\e03c'
-}
-
-.oi-cloud-upload:before {
-  content'\e03d'
-}
-
-.oi-cloud:before {
-  content'\e03e'
-}
-
-.oi-cloudy:before {
-  content'\e03f'
-}
-
-.oi-code:before {
-  content'\e040'
-}
-
-.oi-cog:before {
-  content'\e041'
-}
-
-.oi-collapse-down:before {
-  content'\e042'
-}
-
-.oi-collapse-left:before {
-  content'\e043'
-}
-
-.oi-collapse-right:before {
-  content'\e044'
-}
-
-.oi-collapse-up:before {
-  content'\e045'
-}
-
-.oi-command:before {
-  content'\e046'
-}
-
-.oi-comment-square:before {
-  content'\e047'
-}
-
-.oi-compass:before {
-  content'\e048'
-}
-
-.oi-contrast:before {
-  content'\e049'
-}
-
-.oi-copywriting:before {
-  content'\e04a'
-}
-
-.oi-credit-card:before {
-  content'\e04b'
-}
-
-.oi-crop:before {
-  content'\e04c'
-}
-
-.oi-dashboard:before {
-  content'\e04d'
-}
-
-.oi-data-transfer-download:before {
-  content'\e04e'
-}
-
-.oi-data-transfer-upload:before {
-  content'\e04f'
-}
-
-.oi-delete:before {
-  content'\e050'
-}
-
-.oi-dial:before {
-  content'\e051'
-}
-
-.oi-document:before {
-  content'\e052'
-}
-
-.oi-dollar:before {
-  content'\e053'
-}
-
-.oi-double-quote-sans-left:before {
-  content'\e054'
-}
-
-.oi-double-quote-sans-right:before {
-  content'\e055'
-}
-
-.oi-double-quote-serif-left:before {
-  content'\e056'
-}
-
-.oi-double-quote-serif-right:before {
-  content'\e057'
-}
-
-.oi-droplet:before {
-  content'\e058'
-}
-
-.oi-eject:before {
-  content'\e059'
-}
-
-.oi-elevator:before {
-  content'\e05a'
-}
-
-.oi-ellipses:before {
-  content'\e05b'
-}
-
-.oi-envelope-closed:before {
-  content'\e05c'
-}
-
-.oi-envelope-open:before {
-  content'\e05d'
-}
-
-.oi-euro:before {
-  content'\e05e'
-}
-
-.oi-excerpt:before {
-  content'\e05f'
-}
-
-.oi-expand-down:before {
-  content'\e060'
-}
-
-.oi-expand-left:before {
-  content'\e061'
-}
-
-.oi-expand-right:before {
-  content'\e062'
-}
-
-.oi-expand-up:before {
-  content'\e063'
-}
-
-.oi-external-link:before {
-  content'\e064'
-}
-
-.oi-eye:before {
-  content'\e065'
-}
-
-.oi-eyedropper:before {
-  content'\e066'
-}
-
-.oi-file:before {
-  content'\e067'
-}
-
-.oi-fire:before {
-  content'\e068'
-}
-
-.oi-flag:before {
-  content'\e069'
-}
-
-.oi-flash:before {
-  content'\e06a'
-}
-
-.oi-folder:before {
-  content'\e06b'
-}
-
-.oi-fork:before {
-  content'\e06c'
-}
-
-.oi-fullscreen-enter:before {
-  content'\e06d'
-}
-
-.oi-fullscreen-exit:before {
-  content'\e06e'
-}
-
-.oi-globe:before {
-  content'\e06f'
-}
-
-.oi-graph:before {
-  content'\e070'
-}
-
-.oi-grid-four-up:before {
-  content'\e071'
-}
-
-.oi-grid-three-up:before {
-  content'\e072'
-}
-
-.oi-grid-two-up:before {
-  content'\e073'
-}
-
-.oi-hard-drive:before {
-  content'\e074'
-}
-
-.oi-header:before {
-  content'\e075'
-}
-
-.oi-headphones:before {
-  content'\e076'
-}
-
-.oi-heart:before {
-  content'\e077'
-}
-
-.oi-home:before {
-  content'\e078'
-}
-
-.oi-image:before {
-  content'\e079'
-}
-
-.oi-inbox:before {
-  content'\e07a'
-}
-
-.oi-infinity:before {
-  content'\e07b'
-}
-
-.oi-info:before {
-  content'\e07c'
-}
-
-.oi-italic:before {
-  content'\e07d'
-}
-
-.oi-justify-center:before {
-  content'\e07e'
-}
-
-.oi-justify-left:before {
-  content'\e07f'
-}
-
-.oi-justify-right:before {
-  content'\e080'
-}
-
-.oi-key:before {
-  content'\e081'
-}
-
-.oi-laptop:before {
-  content'\e082'
-}
-
-.oi-layers:before {
-  content'\e083'
-}
-
-.oi-lightbulb:before {
-  content'\e084'
-}
-
-.oi-link-broken:before {
-  content'\e085'
-}
-
-.oi-link-intact:before {
-  content'\e086'
-}
-
-.oi-list-rich:before {
-  content'\e087'
-}
-
-.oi-list:before {
-  content'\e088'
-}
-
-.oi-location:before {
-  content'\e089'
-}
-
-.oi-lock-locked:before {
-  content'\e08a'
-}
-
-.oi-lock-unlocked:before {
-  content'\e08b'
-}
-
-.oi-loop-circular:before {
-  content'\e08c'
-}
-
-.oi-loop-square:before {
-  content'\e08d'
-}
-
-.oi-loop:before {
-  content'\e08e'
-}
-
-.oi-magnifying-glass:before {
-  content'\e08f'
-}
-
-.oi-map-marker:before {
-  content'\e090'
-}
-
-.oi-map:before {
-  content'\e091'
-}
-
-.oi-media-pause:before {
-  content'\e092'
-}
-
-.oi-media-play:before {
-  content'\e093'
-}
-
-.oi-media-record:before {
-  content'\e094'
-}
-
-.oi-media-skip-backward:before {
-  content'\e095'
-}
-
-.oi-media-skip-forward:before {
-  content'\e096'
-}
-
-.oi-media-step-backward:before {
-  content'\e097'
-}
-
-.oi-media-step-forward:before {
-  content'\e098'
-}
-
-.oi-media-stop:before {
-  content'\e099'
-}
-
-.oi-medical-cross:before {
-  content'\e09a'
-}
-
-.oi-menu:before {
-  content'\e09b'
-}
-
-.oi-microphone:before {
-  content'\e09c'
-}
-
-.oi-minus:before {
-  content'\e09d'
-}
-
-.oi-monitor:before {
-  content'\e09e'
-}
-
-.oi-moon:before {
-  content'\e09f'
-}
-
-.oi-move:before {
-  content'\e0a0'
-}
-
-.oi-musical-note:before {
-  content'\e0a1'
-}
-
-.oi-paperclip:before {
-  content'\e0a2'
-}
-
-.oi-pencil:before {
-  content'\e0a3'
-}
-
-.oi-people:before {
-  content'\e0a4'
-}
-
-.oi-person:before {
-  content'\e0a5'
-}
-
-.oi-phone:before {
-  content'\e0a6'
-}
-
-.oi-pie-chart:before {
-  content'\e0a7'
-}
-
-.oi-pin:before {
-  content'\e0a8'
-}
-
-.oi-play-circle:before {
-  content'\e0a9'
-}
-
-.oi-plus:before {
-  content'\e0aa'
-}
-
-.oi-power-standby:before {
-  content'\e0ab'
-}
-
-.oi-print:before {
-  content'\e0ac'
-}
-
-.oi-project:before {
-  content'\e0ad'
-}
-
-.oi-pulse:before {
-  content'\e0ae'
-}
-
-.oi-puzzle-piece:before {
-  content'\e0af'
-}
-
-.oi-question-mark:before {
-  content'\e0b0'
-}
-
-.oi-rain:before {
-  content'\e0b1'
-}
-
-.oi-random:before {
-  content'\e0b2'
-}
-
-.oi-reload:before {
-  content'\e0b3'
-}
-
-.oi-resize-both:before {
-  content'\e0b4'
-}
-
-.oi-resize-height:before {
-  content'\e0b5'
-}
-
-.oi-resize-width:before {
-  content'\e0b6'
-}
-
-.oi-rss-alt:before {
-  content'\e0b7'
-}
-
-.oi-rss:before {
-  content'\e0b8'
-}
-
-.oi-script:before {
-  content'\e0b9'
-}
-
-.oi-share-boxed:before {
-  content'\e0ba'
-}
-
-.oi-share:before {
-  content'\e0bb'
-}
-
-.oi-shield:before {
-  content'\e0bc'
-}
-
-.oi-signal:before {
-  content'\e0bd'
-}
-
-.oi-signpost:before {
-  content'\e0be'
-}
-
-.oi-sort-ascending:before {
-  content'\e0bf'
-}
-
-.oi-sort-descending:before {
-  content'\e0c0'
-}
-
-.oi-spreadsheet:before {
-  content'\e0c1'
-}
-
-.oi-star:before {
-  content'\e0c2'
-}
-
-.oi-sun:before {
-  content'\e0c3'
-}
-
-.oi-tablet:before {
-  content'\e0c4'
-}
-
-.oi-tag:before {
-  content'\e0c5'
-}
-
-.oi-tags:before {
-  content'\e0c6'
-}
-
-.oi-target:before {
-  content'\e0c7'
-}
-
-.oi-task:before {
-  content'\e0c8'
-}
-
-.oi-terminal:before {
-  content'\e0c9'
-}
-
-.oi-text:before {
-  content'\e0ca'
-}
-
-.oi-thumb-down:before {
-  content'\e0cb'
-}
-
-.oi-thumb-up:before {
-  content'\e0cc'
-}
-
-.oi-timer:before {
-  content'\e0cd'
-}
-
-.oi-transfer:before {
-  content'\e0ce'
-}
-
-.oi-trash:before {
-  content'\e0cf'
-}
-
-.oi-underline:before {
-  content'\e0d0'
-}
-
-.oi-vertical-align-bottom:before {
-  content'\e0d1'
-}
-
-.oi-vertical-align-center:before {
-  content'\e0d2'
-}
-
-.oi-vertical-align-top:before {
-  content'\e0d3'
-}
-
-.oi-video:before {
-  content'\e0d4'
-}
-
-.oi-volume-high:before {
-  content'\e0d5'
-}
-
-.oi-volume-low:before {
-  content'\e0d6'
-}
-
-.oi-volume-off:before {
-  content'\e0d7'
-}
-
-.oi-warning:before {
-  content'\e0d8'
-}
-
-.oi-wifi:before {
-  content'\e0d9'
-}
-
-.oi-wrench:before {
-  content'\e0da'
-}
-
-.oi-x:before {
-  content'\e0db'
-}
-
-.oi-yen:before {
-  content'\e0dc'
-}
-
-.oi-zoom-in:before {
-  content'\e0dd'
-}
-
-.oi-zoom-out:before {
-  content'\e0de'
-}
-
diff --git a/assets/static/fonts/open-iconic/font/css/open-iconic-foundation.css b/assets/static/fonts/open-iconic/font/css/open-iconic-foundation.css
deleted file mode 100644
index 905a821..0000000
--- a/assets/static/fonts/open-iconic/font/css/open-iconic-foundation.css
+++ /dev/null
@@ -1,1395 +0,0 @@
-/* Foundation */
-
- at font-face {
-  font-family: 'Icons';
-  src: url('../fonts/open-iconic.eot');
-  src: url('../fonts/open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('../fonts/open-iconic.woff') format('woff'), url('../fonts/open-iconic.ttf') format('truetype'), url('../fonts/open-iconic.otf') format('opentype'), url('../fonts/open-iconic.svg#iconic-sm') format('svg');
-  font-weight: normal;
-  font-style: normal;
-}
-
-
-.fi-account-login:before,
-
-.fi-account-logout:before,
-
-.fi-action-redo:before,
-
-.fi-action-undo:before,
-
-.fi-align-center:before,
-
-.fi-align-left:before,
-
-.fi-align-right:before,
-
-.fi-aperture:before,
-
-.fi-arrow-bottom:before,
-
-.fi-arrow-circle-bottom:before,
-
-.fi-arrow-circle-left:before,
-
-.fi-arrow-circle-right:before,
-
-.fi-arrow-circle-top:before,
-
-.fi-arrow-left:before,
-
-.fi-arrow-right:before,
-
-.fi-arrow-thick-bottom:before,
-
-.fi-arrow-thick-left:before,
-
-.fi-arrow-thick-right:before,
-
-.fi-arrow-thick-top:before,
-
-.fi-arrow-top:before,
-
-.fi-audio-spectrum:before,
-
-.fi-audio:before,
-
-.fi-badge:before,
-
-.fi-ban:before,
-
-.fi-bar-chart:before,
-
-.fi-basket:before,
-
-.fi-battery-empty:before,
-
-.fi-battery-full:before,
-
-.fi-beaker:before,
-
-.fi-bell:before,
-
-.fi-bluetooth:before,
-
-.fi-bold:before,
-
-.fi-bolt:before,
-
-.fi-book:before,
-
-.fi-bookmark:before,
-
-.fi-box:before,
-
-.fi-briefcase:before,
-
-.fi-british-pound:before,
-
-.fi-browser:before,
-
-.fi-brush:before,
-
-.fi-bug:before,
-
-.fi-bullhorn:before,
-
-.fi-calculator:before,
-
-.fi-calendar:before,
-
-.fi-camera-slr:before,
-
-.fi-caret-bottom:before,
-
-.fi-caret-left:before,
-
-.fi-caret-right:before,
-
-.fi-caret-top:before,
-
-.fi-cart:before,
-
-.fi-chat:before,
-
-.fi-check:before,
-
-.fi-chevron-bottom:before,
-
-.fi-chevron-left:before,
-
-.fi-chevron-right:before,
-
-.fi-chevron-top:before,
-
-.fi-circle-check:before,
-
-.fi-circle-x:before,
-
-.fi-clipboard:before,
-
-.fi-clock:before,
-
-.fi-cloud-download:before,
-
-.fi-cloud-upload:before,
-
-.fi-cloud:before,
-
-.fi-cloudy:before,
-
-.fi-code:before,
-
-.fi-cog:before,
-
-.fi-collapse-down:before,
-
-.fi-collapse-left:before,
-
-.fi-collapse-right:before,
-
-.fi-collapse-up:before,
-
-.fi-command:before,
-
-.fi-comment-square:before,
-
-.fi-compass:before,
-
-.fi-contrast:before,
-
-.fi-copywriting:before,
-
-.fi-credit-card:before,
-
-.fi-crop:before,
-
-.fi-dashboard:before,
-
-.fi-data-transfer-download:before,
-
-.fi-data-transfer-upload:before,
-
-.fi-delete:before,
-
-.fi-dial:before,
-
-.fi-document:before,
-
-.fi-dollar:before,
-
-.fi-double-quote-sans-left:before,
-
-.fi-double-quote-sans-right:before,
-
-.fi-double-quote-serif-left:before,
-
-.fi-double-quote-serif-right:before,
-
-.fi-droplet:before,
-
-.fi-eject:before,
-
-.fi-elevator:before,
-
-.fi-ellipses:before,
-
-.fi-envelope-closed:before,
-
-.fi-envelope-open:before,
-
-.fi-euro:before,
-
-.fi-excerpt:before,
-
-.fi-expand-down:before,
-
-.fi-expand-left:before,
-
-.fi-expand-right:before,
-
-.fi-expand-up:before,
-
-.fi-external-link:before,
-
-.fi-eye:before,
-
-.fi-eyedropper:before,
-
-.fi-file:before,
-
-.fi-fire:before,
-
-.fi-flag:before,
-
-.fi-flash:before,
-
-.fi-folder:before,
-
-.fi-fork:before,
-
-.fi-fullscreen-enter:before,
-
-.fi-fullscreen-exit:before,
-
-.fi-globe:before,
-
-.fi-graph:before,
-
-.fi-grid-four-up:before,
-
-.fi-grid-three-up:before,
-
-.fi-grid-two-up:before,
-
-.fi-hard-drive:before,
-
-.fi-header:before,
-
-.fi-headphones:before,
-
-.fi-heart:before,
-
-.fi-home:before,
-
-.fi-image:before,
-
-.fi-inbox:before,
-
-.fi-infinity:before,
-
-.fi-info:before,
-
-.fi-italic:before,
-
-.fi-justify-center:before,
-
-.fi-justify-left:before,
-
-.fi-justify-right:before,
-
-.fi-key:before,
-
-.fi-laptop:before,
-
-.fi-layers:before,
-
-.fi-lightbulb:before,
-
-.fi-link-broken:before,
-
-.fi-link-intact:before,
-
-.fi-list-rich:before,
-
-.fi-list:before,
-
-.fi-location:before,
-
-.fi-lock-locked:before,
-
-.fi-lock-unlocked:before,
-
-.fi-loop-circular:before,
-
-.fi-loop-square:before,
-
-.fi-loop:before,
-
-.fi-magnifying-glass:before,
-
-.fi-map-marker:before,
-
-.fi-map:before,
-
-.fi-media-pause:before,
-
-.fi-media-play:before,
-
-.fi-media-record:before,
-
-.fi-media-skip-backward:before,
-
-.fi-media-skip-forward:before,
-
-.fi-media-step-backward:before,
-
-.fi-media-step-forward:before,
-
-.fi-media-stop:before,
-
-.fi-medical-cross:before,
-
-.fi-menu:before,
-
-.fi-microphone:before,
-
-.fi-minus:before,
-
-.fi-monitor:before,
-
-.fi-moon:before,
-
-.fi-move:before,
-
-.fi-musical-note:before,
-
-.fi-paperclip:before,
-
-.fi-pencil:before,
-
-.fi-people:before,
-
-.fi-person:before,
-
-.fi-phone:before,
-
-.fi-pie-chart:before,
-
-.fi-pin:before,
-
-.fi-play-circle:before,
-
-.fi-plus:before,
-
-.fi-power-standby:before,
-
-.fi-print:before,
-
-.fi-project:before,
-
-.fi-pulse:before,
-
-.fi-puzzle-piece:before,
-
-.fi-question-mark:before,
-
-.fi-rain:before,
-
-.fi-random:before,
-
-.fi-reload:before,
-
-.fi-resize-both:before,
-
-.fi-resize-height:before,
-
-.fi-resize-width:before,
-
-.fi-rss-alt:before,
-
-.fi-rss:before,
-
-.fi-script:before,
-
-.fi-share-boxed:before,
-
-.fi-share:before,
-
-.fi-shield:before,
-
-.fi-signal:before,
-
-.fi-signpost:before,
-
-.fi-sort-ascending:before,
-
-.fi-sort-descending:before,
-
-.fi-spreadsheet:before,
-
-.fi-star:before,
-
-.fi-sun:before,
-
-.fi-tablet:before,
-
-.fi-tag:before,
-
-.fi-tags:before,
-
-.fi-target:before,
-
-.fi-task:before,
-
-.fi-terminal:before,
-
-.fi-text:before,
-
-.fi-thumb-down:before,
-
-.fi-thumb-up:before,
-
-.fi-timer:before,
-
-.fi-transfer:before,
-
-.fi-trash:before,
-
-.fi-underline:before,
-
-.fi-vertical-align-bottom:before,
-
-.fi-vertical-align-center:before,
-
-.fi-vertical-align-top:before,
-
-.fi-video:before,
-
-.fi-volume-high:before,
-
-.fi-volume-low:before,
-
-.fi-volume-off:before,
-
-.fi-warning:before,
-
-.fi-wifi:before,
-
-.fi-wrench:before,
-
-.fi-x:before,
-
-.fi-yen:before,
-
-.fi-zoom-in:before,
-
-.fi-zoom-out:before
- {
-  font-family: 'Icons';
-  font-style: normal;
-  font-weight: normal;
-  font-variant: normal;
-  text-transform: none;
-  line-height: 1;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  display: inline-block;
-  text-decoration: inherit;
-}
-
-
-[class*='fi-'].oi-align-center:before {
-  text-align: center;
-}
-
-[class*='fi-'].oi-align-left:before {
-  text-align: left;
-}
-
-[class*='fi-'].oi-align-right:before {
-  text-align: right;
-}
-
-
-[class*='fi-'].oi-flip-horizontal:before {
-  -webkit-transform: scale(-1, 1);
-  -ms-transform: scale(-1, 1);
-  transform: scale(-1, 1);
-}
-
-[class*='fi-'].oi-flip-vertical:before {
-  -webkit-transform: scale(1, -1);
-  -ms-transform: scale(-1, 1);
-  transform: scale(1, -1);
-}
-
-[class*='fi-'].oi-flip-horizontal-vertical:before {
-  -webkit-transform: scale(-1, -1);
-  -ms-transform: scale(-1, 1);
-  transform: scale(-1, -1);
-}
-
-
-
-.fi-account-login:before {
-  content:'\e000';
-}
-
-.fi-account-logout:before {
-  content:'\e001';
-}
-
-.fi-action-redo:before {
-  content:'\e002';
-}
-
-.fi-action-undo:before {
-  content:'\e003';
-}
-
-.fi-align-center:before {
-  content:'\e004';
-}
-
-.fi-align-left:before {
-  content:'\e005';
-}
-
-.fi-align-right:before {
-  content:'\e006';
-}
-
-.fi-aperture:before {
-  content:'\e007';
-}
-
-.fi-arrow-bottom:before {
-  content:'\e008';
-}
-
-.fi-arrow-circle-bottom:before {
-  content:'\e009';
-}
-
-.fi-arrow-circle-left:before {
-  content:'\e00a';
-}
-
-.fi-arrow-circle-right:before {
-  content:'\e00b';
-}
-
-.fi-arrow-circle-top:before {
-  content:'\e00c';
-}
-
-.fi-arrow-left:before {
-  content:'\e00d';
-}
-
-.fi-arrow-right:before {
-  content:'\e00e';
-}
-
-.fi-arrow-thick-bottom:before {
-  content:'\e00f';
-}
-
-.fi-arrow-thick-left:before {
-  content:'\e010';
-}
-
-.fi-arrow-thick-right:before {
-  content:'\e011';
-}
-
-.fi-arrow-thick-top:before {
-  content:'\e012';
-}
-
-.fi-arrow-top:before {
-  content:'\e013';
-}
-
-.fi-audio-spectrum:before {
-  content:'\e014';
-}
-
-.fi-audio:before {
-  content:'\e015';
-}
-
-.fi-badge:before {
-  content:'\e016';
-}
-
-.fi-ban:before {
-  content:'\e017';
-}
-
-.fi-bar-chart:before {
-  content:'\e018';
-}
-
-.fi-basket:before {
-  content:'\e019';
-}
-
-.fi-battery-empty:before {
-  content:'\e01a';
-}
-
-.fi-battery-full:before {
-  content:'\e01b';
-}
-
-.fi-beaker:before {
-  content:'\e01c';
-}
-
-.fi-bell:before {
-  content:'\e01d';
-}
-
-.fi-bluetooth:before {
-  content:'\e01e';
-}
-
-.fi-bold:before {
-  content:'\e01f';
-}
-
-.fi-bolt:before {
-  content:'\e020';
-}
-
-.fi-book:before {
-  content:'\e021';
-}
-
-.fi-bookmark:before {
-  content:'\e022';
-}
-
-.fi-box:before {
-  content:'\e023';
-}
-
-.fi-briefcase:before {
-  content:'\e024';
-}
-
-.fi-british-pound:before {
-  content:'\e025';
-}
-
-.fi-browser:before {
-  content:'\e026';
-}
-
-.fi-brush:before {
-  content:'\e027';
-}
-
-.fi-bug:before {
-  content:'\e028';
-}
-
-.fi-bullhorn:before {
-  content:'\e029';
-}
-
-.fi-calculator:before {
-  content:'\e02a';
-}
-
-.fi-calendar:before {
-  content:'\e02b';
-}
-
-.fi-camera-slr:before {
-  content:'\e02c';
-}
-
-.fi-caret-bottom:before {
-  content:'\e02d';
-}
-
-.fi-caret-left:before {
-  content:'\e02e';
-}
-
-.fi-caret-right:before {
-  content:'\e02f';
-}
-
-.fi-caret-top:before {
-  content:'\e030';
-}
-
-.fi-cart:before {
-  content:'\e031';
-}
-
-.fi-chat:before {
-  content:'\e032';
-}
-
-.fi-check:before {
-  content:'\e033';
-}
-
-.fi-chevron-bottom:before {
-  content:'\e034';
-}
-
-.fi-chevron-left:before {
-  content:'\e035';
-}
-
-.fi-chevron-right:before {
-  content:'\e036';
-}
-
-.fi-chevron-top:before {
-  content:'\e037';
-}
-
-.fi-circle-check:before {
-  content:'\e038';
-}
-
-.fi-circle-x:before {
-  content:'\e039';
-}
-
-.fi-clipboard:before {
-  content:'\e03a';
-}
-
-.fi-clock:before {
-  content:'\e03b';
-}
-
-.fi-cloud-download:before {
-  content:'\e03c';
-}
-
-.fi-cloud-upload:before {
-  content:'\e03d';
-}
-
-.fi-cloud:before {
-  content:'\e03e';
-}
-
-.fi-cloudy:before {
-  content:'\e03f';
-}
-
-.fi-code:before {
-  content:'\e040';
-}
-
-.fi-cog:before {
-  content:'\e041';
-}
-
-.fi-collapse-down:before {
-  content:'\e042';
-}
-
-.fi-collapse-left:before {
-  content:'\e043';
-}
-
-.fi-collapse-right:before {
-  content:'\e044';
-}
-
-.fi-collapse-up:before {
-  content:'\e045';
-}
-
-.fi-command:before {
-  content:'\e046';
-}
-
-.fi-comment-square:before {
-  content:'\e047';
-}
-
-.fi-compass:before {
-  content:'\e048';
-}
-
-.fi-contrast:before {
-  content:'\e049';
-}
-
-.fi-copywriting:before {
-  content:'\e04a';
-}
-
-.fi-credit-card:before {
-  content:'\e04b';
-}
-
-.fi-crop:before {
-  content:'\e04c';
-}
-
-.fi-dashboard:before {
-  content:'\e04d';
-}
-
-.fi-data-transfer-download:before {
-  content:'\e04e';
-}
-
-.fi-data-transfer-upload:before {
-  content:'\e04f';
-}
-
-.fi-delete:before {
-  content:'\e050';
-}
-
-.fi-dial:before {
-  content:'\e051';
-}
-
-.fi-document:before {
-  content:'\e052';
-}
-
-.fi-dollar:before {
-  content:'\e053';
-}
-
-.fi-double-quote-sans-left:before {
-  content:'\e054';
-}
-
-.fi-double-quote-sans-right:before {
-  content:'\e055';
-}
-
-.fi-double-quote-serif-left:before {
-  content:'\e056';
-}
-
-.fi-double-quote-serif-right:before {
-  content:'\e057';
-}
-
-.fi-droplet:before {
-  content:'\e058';
-}
-
-.fi-eject:before {
-  content:'\e059';
-}
-
-.fi-elevator:before {
-  content:'\e05a';
-}
-
-.fi-ellipses:before {
-  content:'\e05b';
-}
-
-.fi-envelope-closed:before {
-  content:'\e05c';
-}
-
-.fi-envelope-open:before {
-  content:'\e05d';
-}
-
-.fi-euro:before {
-  content:'\e05e';
-}
-
-.fi-excerpt:before {
-  content:'\e05f';
-}
-
-.fi-expand-down:before {
-  content:'\e060';
-}
-
-.fi-expand-left:before {
-  content:'\e061';
-}
-
-.fi-expand-right:before {
-  content:'\e062';
-}
-
-.fi-expand-up:before {
-  content:'\e063';
-}
-
-.fi-external-link:before {
-  content:'\e064';
-}
-
-.fi-eye:before {
-  content:'\e065';
-}
-
-.fi-eyedropper:before {
-  content:'\e066';
-}
-
-.fi-file:before {
-  content:'\e067';
-}
-
-.fi-fire:before {
-  content:'\e068';
-}
-
-.fi-flag:before {
-  content:'\e069';
-}
-
-.fi-flash:before {
-  content:'\e06a';
-}
-
-.fi-folder:before {
-  content:'\e06b';
-}
-
-.fi-fork:before {
-  content:'\e06c';
-}
-
-.fi-fullscreen-enter:before {
-  content:'\e06d';
-}
-
-.fi-fullscreen-exit:before {
-  content:'\e06e';
-}
-
-.fi-globe:before {
-  content:'\e06f';
-}
-
-.fi-graph:before {
-  content:'\e070';
-}
-
-.fi-grid-four-up:before {
-  content:'\e071';
-}
-
-.fi-grid-three-up:before {
-  content:'\e072';
-}
-
-.fi-grid-two-up:before {
-  content:'\e073';
-}
-
-.fi-hard-drive:before {
-  content:'\e074';
-}
-
-.fi-header:before {
-  content:'\e075';
-}
-
-.fi-headphones:before {
-  content:'\e076';
-}
-
-.fi-heart:before {
-  content:'\e077';
-}
-
-.fi-home:before {
-  content:'\e078';
-}
-
-.fi-image:before {
-  content:'\e079';
-}
-
-.fi-inbox:before {
-  content:'\e07a';
-}
-
-.fi-infinity:before {
-  content:'\e07b';
-}
-
-.fi-info:before {
-  content:'\e07c';
-}
-
-.fi-italic:before {
-  content:'\e07d';
-}
-
-.fi-justify-center:before {
-  content:'\e07e';
-}
-
-.fi-justify-left:before {
-  content:'\e07f';
-}
-
-.fi-justify-right:before {
-  content:'\e080';
-}
-
-.fi-key:before {
-  content:'\e081';
-}
-
-.fi-laptop:before {
-  content:'\e082';
-}
-
-.fi-layers:before {
-  content:'\e083';
-}
-
-.fi-lightbulb:before {
-  content:'\e084';
-}
-
-.fi-link-broken:before {
-  content:'\e085';
-}
-
-.fi-link-intact:before {
-  content:'\e086';
-}
-
-.fi-list-rich:before {
-  content:'\e087';
-}
-
-.fi-list:before {
-  content:'\e088';
-}
-
-.fi-location:before {
-  content:'\e089';
-}
-
-.fi-lock-locked:before {
-  content:'\e08a';
-}
-
-.fi-lock-unlocked:before {
-  content:'\e08b';
-}
-
-.fi-loop-circular:before {
-  content:'\e08c';
-}
-
-.fi-loop-square:before {
-  content:'\e08d';
-}
-
-.fi-loop:before {
-  content:'\e08e';
-}
-
-.fi-magnifying-glass:before {
-  content:'\e08f';
-}
-
-.fi-map-marker:before {
-  content:'\e090';
-}
-
-.fi-map:before {
-  content:'\e091';
-}
-
-.fi-media-pause:before {
-  content:'\e092';
-}
-
-.fi-media-play:before {
-  content:'\e093';
-}
-
-.fi-media-record:before {
-  content:'\e094';
-}
-
-.fi-media-skip-backward:before {
-  content:'\e095';
-}
-
-.fi-media-skip-forward:before {
-  content:'\e096';
-}
-
-.fi-media-step-backward:before {
-  content:'\e097';
-}
-
-.fi-media-step-forward:before {
-  content:'\e098';
-}
-
-.fi-media-stop:before {
-  content:'\e099';
-}
-
-.fi-medical-cross:before {
-  content:'\e09a';
-}
-
-.fi-menu:before {
-  content:'\e09b';
-}
-
-.fi-microphone:before {
-  content:'\e09c';
-}
-
-.fi-minus:before {
-  content:'\e09d';
-}
-
-.fi-monitor:before {
-  content:'\e09e';
-}
-
-.fi-moon:before {
-  content:'\e09f';
-}
-
-.fi-move:before {
-  content:'\e0a0';
-}
-
-.fi-musical-note:before {
-  content:'\e0a1';
-}
-
-.fi-paperclip:before {
-  content:'\e0a2';
-}
-
-.fi-pencil:before {
-  content:'\e0a3';
-}
-
-.fi-people:before {
-  content:'\e0a4';
-}
-
-.fi-person:before {
-  content:'\e0a5';
-}
-
-.fi-phone:before {
-  content:'\e0a6';
-}
-
-.fi-pie-chart:before {
-  content:'\e0a7';
-}
-
-.fi-pin:before {
-  content:'\e0a8';
-}
-
-.fi-play-circle:before {
-  content:'\e0a9';
-}
-
-.fi-plus:before {
-  content:'\e0aa';
-}
-
-.fi-power-standby:before {
-  content:'\e0ab';
-}
-
-.fi-print:before {
-  content:'\e0ac';
-}
-
-.fi-project:before {
-  content:'\e0ad';
-}
-
-.fi-pulse:before {
-  content:'\e0ae';
-}
-
-.fi-puzzle-piece:before {
-  content:'\e0af';
-}
-
-.fi-question-mark:before {
-  content:'\e0b0';
-}
-
-.fi-rain:before {
-  content:'\e0b1';
-}
-
-.fi-random:before {
-  content:'\e0b2';
-}
-
-.fi-reload:before {
-  content:'\e0b3';
-}
-
-.fi-resize-both:before {
-  content:'\e0b4';
-}
-
-.fi-resize-height:before {
-  content:'\e0b5';
-}
-
-.fi-resize-width:before {
-  content:'\e0b6';
-}
-
-.fi-rss-alt:before {
-  content:'\e0b7';
-}
-
-.fi-rss:before {
-  content:'\e0b8';
-}
-
-.fi-script:before {
-  content:'\e0b9';
-}
-
-.fi-share-boxed:before {
-  content:'\e0ba';
-}
-
-.fi-share:before {
-  content:'\e0bb';
-}
-
-.fi-shield:before {
-  content:'\e0bc';
-}
-
-.fi-signal:before {
-  content:'\e0bd';
-}
-
-.fi-signpost:before {
-  content:'\e0be';
-}
-
-.fi-sort-ascending:before {
-  content:'\e0bf';
-}
-
-.fi-sort-descending:before {
-  content:'\e0c0';
-}
-
-.fi-spreadsheet:before {
-  content:'\e0c1';
-}
-
-.fi-star:before {
-  content:'\e0c2';
-}
-
-.fi-sun:before {
-  content:'\e0c3';
-}
-
-.fi-tablet:before {
-  content:'\e0c4';
-}
-
-.fi-tag:before {
-  content:'\e0c5';
-}
-
-.fi-tags:before {
-  content:'\e0c6';
-}
-
-.fi-target:before {
-  content:'\e0c7';
-}
-
-.fi-task:before {
-  content:'\e0c8';
-}
-
-.fi-terminal:before {
-  content:'\e0c9';
-}
-
-.fi-text:before {
-  content:'\e0ca';
-}
-
-.fi-thumb-down:before {
-  content:'\e0cb';
-}
-
-.fi-thumb-up:before {
-  content:'\e0cc';
-}
-
-.fi-timer:before {
-  content:'\e0cd';
-}
-
-.fi-transfer:before {
-  content:'\e0ce';
-}
-
-.fi-trash:before {
-  content:'\e0cf';
-}
-
-.fi-underline:before {
-  content:'\e0d0';
-}
-
-.fi-vertical-align-bottom:before {
-  content:'\e0d1';
-}
-
-.fi-vertical-align-center:before {
-  content:'\e0d2';
-}
-
-.fi-vertical-align-top:before {
-  content:'\e0d3';
-}
-
-.fi-video:before {
-  content:'\e0d4';
-}
-
-.fi-volume-high:before {
-  content:'\e0d5';
-}
-
-.fi-volume-low:before {
-  content:'\e0d6';
-}
-
-.fi-volume-off:before {
-  content:'\e0d7';
-}
-
-.fi-warning:before {
-  content:'\e0d8';
-}
-
-.fi-wifi:before {
-  content:'\e0d9';
-}
-
-.fi-wrench:before {
-  content:'\e0da';
-}
-
-.fi-x:before {
-  content:'\e0db';
-}
-
-.fi-yen:before {
-  content:'\e0dc';
-}
-
-.fi-zoom-in:before {
-  content:'\e0dd';
-}
-
-.fi-zoom-out:before {
-  content:'\e0de';
-}
-
diff --git a/assets/static/fonts/open-iconic/font/css/open-iconic-foundation.less b/assets/static/fonts/open-iconic/font/css/open-iconic-foundation.less
deleted file mode 100644
index deabf26..0000000
--- a/assets/static/fonts/open-iconic/font/css/open-iconic-foundation.less
+++ /dev/null
@@ -1,1397 +0,0 @@
-/* Foundation */
-
-/* Font path variable */
- at icon-font-path: '../fonts/';
-
- at font-face {
-  font-family: 'Icons';
-  src: url('@{icon-font-path}open-iconic.eot');
-  src: url('@{icon-font-path}open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('@{icon-font-path}open-iconic.woff') format('woff'), url('@{icon-font-path}open-iconic.ttf') format('truetype'), url('@{icon-font-path}open-iconic.otf') format('opentype'), url('@{icon-font-path}open-iconic.svg#iconic-sm') format('svg');
-  font-weight: normal;
-  font-style: normal;
-}
-
-
-.fi-account-login:before,
-
-.fi-account-logout:before,
-
-.fi-action-redo:before,
-
-.fi-action-undo:before,
-
-.fi-align-center:before,
-
-.fi-align-left:before,
-
-.fi-align-right:before,
-
-.fi-aperture:before,
-
-.fi-arrow-bottom:before,
-
-.fi-arrow-circle-bottom:before,
-
-.fi-arrow-circle-left:before,
-
-.fi-arrow-circle-right:before,
-
-.fi-arrow-circle-top:before,
-
-.fi-arrow-left:before,
-
-.fi-arrow-right:before,
-
-.fi-arrow-thick-bottom:before,
-
-.fi-arrow-thick-left:before,
-
-.fi-arrow-thick-right:before,
-
-.fi-arrow-thick-top:before,
-
-.fi-arrow-top:before,
-
-.fi-audio-spectrum:before,
-
-.fi-audio:before,
-
-.fi-badge:before,
-
-.fi-ban:before,
-
-.fi-bar-chart:before,
-
-.fi-basket:before,
-
-.fi-battery-empty:before,
-
-.fi-battery-full:before,
-
-.fi-beaker:before,
-
-.fi-bell:before,
-
-.fi-bluetooth:before,
-
-.fi-bold:before,
-
-.fi-bolt:before,
-
-.fi-book:before,
-
-.fi-bookmark:before,
-
-.fi-box:before,
-
-.fi-briefcase:before,
-
-.fi-british-pound:before,
-
-.fi-browser:before,
-
-.fi-brush:before,
-
-.fi-bug:before,
-
-.fi-bullhorn:before,
-
-.fi-calculator:before,
-
-.fi-calendar:before,
-
-.fi-camera-slr:before,
-
-.fi-caret-bottom:before,
-
-.fi-caret-left:before,
-
-.fi-caret-right:before,
-
-.fi-caret-top:before,
-
-.fi-cart:before,
-
-.fi-chat:before,
-
-.fi-check:before,
-
-.fi-chevron-bottom:before,
-
-.fi-chevron-left:before,
-
-.fi-chevron-right:before,
-
-.fi-chevron-top:before,
-
-.fi-circle-check:before,
-
-.fi-circle-x:before,
-
-.fi-clipboard:before,
-
-.fi-clock:before,
-
-.fi-cloud-download:before,
-
-.fi-cloud-upload:before,
-
-.fi-cloud:before,
-
-.fi-cloudy:before,
-
-.fi-code:before,
-
-.fi-cog:before,
-
-.fi-collapse-down:before,
-
-.fi-collapse-left:before,
-
-.fi-collapse-right:before,
-
-.fi-collapse-up:before,
-
-.fi-command:before,
-
-.fi-comment-square:before,
-
-.fi-compass:before,
-
-.fi-contrast:before,
-
-.fi-copywriting:before,
-
-.fi-credit-card:before,
-
-.fi-crop:before,
-
-.fi-dashboard:before,
-
-.fi-data-transfer-download:before,
-
-.fi-data-transfer-upload:before,
-
-.fi-delete:before,
-
-.fi-dial:before,
-
-.fi-document:before,
-
-.fi-dollar:before,
-
-.fi-double-quote-sans-left:before,
-
-.fi-double-quote-sans-right:before,
-
-.fi-double-quote-serif-left:before,
-
-.fi-double-quote-serif-right:before,
-
-.fi-droplet:before,
-
-.fi-eject:before,
-
-.fi-elevator:before,
-
-.fi-ellipses:before,
-
-.fi-envelope-closed:before,
-
-.fi-envelope-open:before,
-
-.fi-euro:before,
-
-.fi-excerpt:before,
-
-.fi-expand-down:before,
-
-.fi-expand-left:before,
-
-.fi-expand-right:before,
-
-.fi-expand-up:before,
-
-.fi-external-link:before,
-
-.fi-eye:before,
-
-.fi-eyedropper:before,
-
-.fi-file:before,
-
-.fi-fire:before,
-
-.fi-flag:before,
-
-.fi-flash:before,
-
-.fi-folder:before,
-
-.fi-fork:before,
-
-.fi-fullscreen-enter:before,
-
-.fi-fullscreen-exit:before,
-
-.fi-globe:before,
-
-.fi-graph:before,
-
-.fi-grid-four-up:before,
-
-.fi-grid-three-up:before,
-
-.fi-grid-two-up:before,
-
-.fi-hard-drive:before,
-
-.fi-header:before,
-
-.fi-headphones:before,
-
-.fi-heart:before,
-
-.fi-home:before,
-
-.fi-image:before,
-
-.fi-inbox:before,
-
-.fi-infinity:before,
-
-.fi-info:before,
-
-.fi-italic:before,
-
-.fi-justify-center:before,
-
-.fi-justify-left:before,
-
-.fi-justify-right:before,
-
-.fi-key:before,
-
-.fi-laptop:before,
-
-.fi-layers:before,
-
-.fi-lightbulb:before,
-
-.fi-link-broken:before,
-
-.fi-link-intact:before,
-
-.fi-list-rich:before,
-
-.fi-list:before,
-
-.fi-location:before,
-
-.fi-lock-locked:before,
-
-.fi-lock-unlocked:before,
-
-.fi-loop-circular:before,
-
-.fi-loop-square:before,
-
-.fi-loop:before,
-
-.fi-magnifying-glass:before,
-
-.fi-map-marker:before,
-
-.fi-map:before,
-
-.fi-media-pause:before,
-
-.fi-media-play:before,
-
-.fi-media-record:before,
-
-.fi-media-skip-backward:before,
-
-.fi-media-skip-forward:before,
-
-.fi-media-step-backward:before,
-
-.fi-media-step-forward:before,
-
-.fi-media-stop:before,
-
-.fi-medical-cross:before,
-
-.fi-menu:before,
-
-.fi-microphone:before,
-
-.fi-minus:before,
-
-.fi-monitor:before,
-
-.fi-moon:before,
-
-.fi-move:before,
-
-.fi-musical-note:before,
-
-.fi-paperclip:before,
-
-.fi-pencil:before,
-
-.fi-people:before,
-
-.fi-person:before,
-
-.fi-phone:before,
-
-.fi-pie-chart:before,
-
-.fi-pin:before,
-
-.fi-play-circle:before,
-
-.fi-plus:before,
-
-.fi-power-standby:before,
-
-.fi-print:before,
-
-.fi-project:before,
-
-.fi-pulse:before,
-
-.fi-puzzle-piece:before,
-
-.fi-question-mark:before,
-
-.fi-rain:before,
-
-.fi-random:before,
-
-.fi-reload:before,
-
-.fi-resize-both:before,
-
-.fi-resize-height:before,
-
-.fi-resize-width:before,
-
-.fi-rss-alt:before,
-
-.fi-rss:before,
-
-.fi-script:before,
-
-.fi-share-boxed:before,
-
-.fi-share:before,
-
-.fi-shield:before,
-
-.fi-signal:before,
-
-.fi-signpost:before,
-
-.fi-sort-ascending:before,
-
-.fi-sort-descending:before,
-
-.fi-spreadsheet:before,
-
-.fi-star:before,
-
-.fi-sun:before,
-
-.fi-tablet:before,
-
-.fi-tag:before,
-
-.fi-tags:before,
-
-.fi-target:before,
-
-.fi-task:before,
-
-.fi-terminal:before,
-
-.fi-text:before,
-
-.fi-thumb-down:before,
-
-.fi-thumb-up:before,
-
-.fi-timer:before,
-
-.fi-transfer:before,
-
-.fi-trash:before,
-
-.fi-underline:before,
-
-.fi-vertical-align-bottom:before,
-
-.fi-vertical-align-center:before,
-
-.fi-vertical-align-top:before,
-
-.fi-video:before,
-
-.fi-volume-high:before,
-
-.fi-volume-low:before,
-
-.fi-volume-off:before,
-
-.fi-warning:before,
-
-.fi-wifi:before,
-
-.fi-wrench:before,
-
-.fi-x:before,
-
-.fi-yen:before,
-
-.fi-zoom-in:before,
-
-.fi-zoom-out:before
- {
-  font-family: 'Icons';
-  font-style: normal;
-  font-weight: normal;
-  font-variant: normal;
-  text-transform: none;
-  line-height: 1;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  display: inline-block;
-  text-decoration: inherit;
-}
-
-[class*='fi-'].oi-align-center:before {
-  text-align: center;
-}
-
-[class*='fi-'].oi-align-left:before {
-  text-align: left;
-}
-
-[class*='fi-'].oi-align-right:before {
-  text-align: right;
-}
-
-
-[class*='fi-'].oi-flip-horizontal:before {
-  -webkit-transform: scale(-1, 1);
-  -ms-transform: scale(-1, 1);
-  transform: scale(-1, 1);
-}
-
-[class*='fi-'].oi-flip-vertical:before {
-  -webkit-transform: scale(1, -1);
-  -ms-transform: scale(-1, 1);
-  transform: scale(1, -1);
-}
-
-[class*='fi-'].oi-flip-horizontal-vertical:before {
-  -webkit-transform: scale(-1, -1);
-  -ms-transform: scale(-1, 1);
-  transform: scale(-1, -1);
-}
-
-
-
-.fi-account-login:before {
-  content:'\e000';
-}
-
-.fi-account-logout:before {
-  content:'\e001';
-}
-
-.fi-action-redo:before {
-  content:'\e002';
-}
-
-.fi-action-undo:before {
-  content:'\e003';
-}
-
-.fi-align-center:before {
-  content:'\e004';
-}
-
-.fi-align-left:before {
-  content:'\e005';
-}
-
-.fi-align-right:before {
-  content:'\e006';
-}
-
-.fi-aperture:before {
-  content:'\e007';
-}
-
-.fi-arrow-bottom:before {
-  content:'\e008';
-}
-
-.fi-arrow-circle-bottom:before {
-  content:'\e009';
-}
-
-.fi-arrow-circle-left:before {
-  content:'\e00a';
-}
-
-.fi-arrow-circle-right:before {
-  content:'\e00b';
-}
-
-.fi-arrow-circle-top:before {
-  content:'\e00c';
-}
-
-.fi-arrow-left:before {
-  content:'\e00d';
-}
-
-.fi-arrow-right:before {
-  content:'\e00e';
-}
-
-.fi-arrow-thick-bottom:before {
-  content:'\e00f';
-}
-
-.fi-arrow-thick-left:before {
-  content:'\e010';
-}
-
-.fi-arrow-thick-right:before {
-  content:'\e011';
-}
-
-.fi-arrow-thick-top:before {
-  content:'\e012';
-}
-
-.fi-arrow-top:before {
-  content:'\e013';
-}
-
-.fi-audio-spectrum:before {
-  content:'\e014';
-}
-
-.fi-audio:before {
-  content:'\e015';
-}
-
-.fi-badge:before {
-  content:'\e016';
-}
-
-.fi-ban:before {
-  content:'\e017';
-}
-
-.fi-bar-chart:before {
-  content:'\e018';
-}
-
-.fi-basket:before {
-  content:'\e019';
-}
-
-.fi-battery-empty:before {
-  content:'\e01a';
-}
-
-.fi-battery-full:before {
-  content:'\e01b';
-}
-
-.fi-beaker:before {
-  content:'\e01c';
-}
-
-.fi-bell:before {
-  content:'\e01d';
-}
-
-.fi-bluetooth:before {
-  content:'\e01e';
-}
-
-.fi-bold:before {
-  content:'\e01f';
-}
-
-.fi-bolt:before {
-  content:'\e020';
-}
-
-.fi-book:before {
-  content:'\e021';
-}
-
-.fi-bookmark:before {
-  content:'\e022';
-}
-
-.fi-box:before {
-  content:'\e023';
-}
-
-.fi-briefcase:before {
-  content:'\e024';
-}
-
-.fi-british-pound:before {
-  content:'\e025';
-}
-
-.fi-browser:before {
-  content:'\e026';
-}
-
-.fi-brush:before {
-  content:'\e027';
-}
-
-.fi-bug:before {
-  content:'\e028';
-}
-
-.fi-bullhorn:before {
-  content:'\e029';
-}
-
-.fi-calculator:before {
-  content:'\e02a';
-}
-
-.fi-calendar:before {
-  content:'\e02b';
-}
-
-.fi-camera-slr:before {
-  content:'\e02c';
-}
-
-.fi-caret-bottom:before {
-  content:'\e02d';
-}
-
-.fi-caret-left:before {
-  content:'\e02e';
-}
-
-.fi-caret-right:before {
-  content:'\e02f';
-}
-
-.fi-caret-top:before {
-  content:'\e030';
-}
-
-.fi-cart:before {
-  content:'\e031';
-}
-
-.fi-chat:before {
-  content:'\e032';
-}
-
-.fi-check:before {
-  content:'\e033';
-}
-
-.fi-chevron-bottom:before {
-  content:'\e034';
-}
-
-.fi-chevron-left:before {
-  content:'\e035';
-}
-
-.fi-chevron-right:before {
-  content:'\e036';
-}
-
-.fi-chevron-top:before {
-  content:'\e037';
-}
-
-.fi-circle-check:before {
-  content:'\e038';
-}
-
-.fi-circle-x:before {
-  content:'\e039';
-}
-
-.fi-clipboard:before {
-  content:'\e03a';
-}
-
-.fi-clock:before {
-  content:'\e03b';
-}
-
-.fi-cloud-download:before {
-  content:'\e03c';
-}
-
-.fi-cloud-upload:before {
-  content:'\e03d';
-}
-
-.fi-cloud:before {
-  content:'\e03e';
-}
-
-.fi-cloudy:before {
-  content:'\e03f';
-}
-
-.fi-code:before {
-  content:'\e040';
-}
-
-.fi-cog:before {
-  content:'\e041';
-}
-
-.fi-collapse-down:before {
-  content:'\e042';
-}
-
-.fi-collapse-left:before {
-  content:'\e043';
-}
-
-.fi-collapse-right:before {
-  content:'\e044';
-}
-
-.fi-collapse-up:before {
-  content:'\e045';
-}
-
-.fi-command:before {
-  content:'\e046';
-}
-
-.fi-comment-square:before {
-  content:'\e047';
-}
-
-.fi-compass:before {
-  content:'\e048';
-}
-
-.fi-contrast:before {
-  content:'\e049';
-}
-
-.fi-copywriting:before {
-  content:'\e04a';
-}
-
-.fi-credit-card:before {
-  content:'\e04b';
-}
-
-.fi-crop:before {
-  content:'\e04c';
-}
-
-.fi-dashboard:before {
-  content:'\e04d';
-}
-
-.fi-data-transfer-download:before {
-  content:'\e04e';
-}
-
-.fi-data-transfer-upload:before {
-  content:'\e04f';
-}
-
-.fi-delete:before {
-  content:'\e050';
-}
-
-.fi-dial:before {
-  content:'\e051';
-}
-
-.fi-document:before {
-  content:'\e052';
-}
-
-.fi-dollar:before {
-  content:'\e053';
-}
-
-.fi-double-quote-sans-left:before {
-  content:'\e054';
-}
-
-.fi-double-quote-sans-right:before {
-  content:'\e055';
-}
-
-.fi-double-quote-serif-left:before {
-  content:'\e056';
-}
-
-.fi-double-quote-serif-right:before {
-  content:'\e057';
-}
-
-.fi-droplet:before {
-  content:'\e058';
-}
-
-.fi-eject:before {
-  content:'\e059';
-}
-
-.fi-elevator:before {
-  content:'\e05a';
-}
-
-.fi-ellipses:before {
-  content:'\e05b';
-}
-
-.fi-envelope-closed:before {
-  content:'\e05c';
-}
-
-.fi-envelope-open:before {
-  content:'\e05d';
-}
-
-.fi-euro:before {
-  content:'\e05e';
-}
-
-.fi-excerpt:before {
-  content:'\e05f';
-}
-
-.fi-expand-down:before {
-  content:'\e060';
-}
-
-.fi-expand-left:before {
-  content:'\e061';
-}
-
-.fi-expand-right:before {
-  content:'\e062';
-}
-
-.fi-expand-up:before {
-  content:'\e063';
-}
-
-.fi-external-link:before {
-  content:'\e064';
-}
-
-.fi-eye:before {
-  content:'\e065';
-}
-
-.fi-eyedropper:before {
-  content:'\e066';
-}
-
-.fi-file:before {
-  content:'\e067';
-}
-
-.fi-fire:before {
-  content:'\e068';
-}
-
-.fi-flag:before {
-  content:'\e069';
-}
-
-.fi-flash:before {
-  content:'\e06a';
-}
-
-.fi-folder:before {
-  content:'\e06b';
-}
-
-.fi-fork:before {
-  content:'\e06c';
-}
-
-.fi-fullscreen-enter:before {
-  content:'\e06d';
-}
-
-.fi-fullscreen-exit:before {
-  content:'\e06e';
-}
-
-.fi-globe:before {
-  content:'\e06f';
-}
-
-.fi-graph:before {
-  content:'\e070';
-}
-
-.fi-grid-four-up:before {
-  content:'\e071';
-}
-
-.fi-grid-three-up:before {
-  content:'\e072';
-}
-
-.fi-grid-two-up:before {
-  content:'\e073';
-}
-
-.fi-hard-drive:before {
-  content:'\e074';
-}
-
-.fi-header:before {
-  content:'\e075';
-}
-
-.fi-headphones:before {
-  content:'\e076';
-}
-
-.fi-heart:before {
-  content:'\e077';
-}
-
-.fi-home:before {
-  content:'\e078';
-}
-
-.fi-image:before {
-  content:'\e079';
-}
-
-.fi-inbox:before {
-  content:'\e07a';
-}
-
-.fi-infinity:before {
-  content:'\e07b';
-}
-
-.fi-info:before {
-  content:'\e07c';
-}
-
-.fi-italic:before {
-  content:'\e07d';
-}
-
-.fi-justify-center:before {
-  content:'\e07e';
-}
-
-.fi-justify-left:before {
-  content:'\e07f';
-}
-
-.fi-justify-right:before {
-  content:'\e080';
-}
-
-.fi-key:before {
-  content:'\e081';
-}
-
-.fi-laptop:before {
-  content:'\e082';
-}
-
-.fi-layers:before {
-  content:'\e083';
-}
-
-.fi-lightbulb:before {
-  content:'\e084';
-}
-
-.fi-link-broken:before {
-  content:'\e085';
-}
-
-.fi-link-intact:before {
-  content:'\e086';
-}
-
-.fi-list-rich:before {
-  content:'\e087';
-}
-
-.fi-list:before {
-  content:'\e088';
-}
-
-.fi-location:before {
-  content:'\e089';
-}
-
-.fi-lock-locked:before {
-  content:'\e08a';
-}
-
-.fi-lock-unlocked:before {
-  content:'\e08b';
-}
-
-.fi-loop-circular:before {
-  content:'\e08c';
-}
-
-.fi-loop-square:before {
-  content:'\e08d';
-}
-
-.fi-loop:before {
-  content:'\e08e';
-}
-
-.fi-magnifying-glass:before {
-  content:'\e08f';
-}
-
-.fi-map-marker:before {
-  content:'\e090';
-}
-
-.fi-map:before {
-  content:'\e091';
-}
-
-.fi-media-pause:before {
-  content:'\e092';
-}
-
-.fi-media-play:before {
-  content:'\e093';
-}
-
-.fi-media-record:before {
-  content:'\e094';
-}
-
-.fi-media-skip-backward:before {
-  content:'\e095';
-}
-
-.fi-media-skip-forward:before {
-  content:'\e096';
-}
-
-.fi-media-step-backward:before {
-  content:'\e097';
-}
-
-.fi-media-step-forward:before {
-  content:'\e098';
-}
-
-.fi-media-stop:before {
-  content:'\e099';
-}
-
-.fi-medical-cross:before {
-  content:'\e09a';
-}
-
-.fi-menu:before {
-  content:'\e09b';
-}
-
-.fi-microphone:before {
-  content:'\e09c';
-}
-
-.fi-minus:before {
-  content:'\e09d';
-}
-
-.fi-monitor:before {
-  content:'\e09e';
-}
-
-.fi-moon:before {
-  content:'\e09f';
-}
-
-.fi-move:before {
-  content:'\e0a0';
-}
-
-.fi-musical-note:before {
-  content:'\e0a1';
-}
-
-.fi-paperclip:before {
-  content:'\e0a2';
-}
-
-.fi-pencil:before {
-  content:'\e0a3';
-}
-
-.fi-people:before {
-  content:'\e0a4';
-}
-
-.fi-person:before {
-  content:'\e0a5';
-}
-
-.fi-phone:before {
-  content:'\e0a6';
-}
-
-.fi-pie-chart:before {
-  content:'\e0a7';
-}
-
-.fi-pin:before {
-  content:'\e0a8';
-}
-
-.fi-play-circle:before {
-  content:'\e0a9';
-}
-
-.fi-plus:before {
-  content:'\e0aa';
-}
-
-.fi-power-standby:before {
-  content:'\e0ab';
-}
-
-.fi-print:before {
-  content:'\e0ac';
-}
-
-.fi-project:before {
-  content:'\e0ad';
-}
-
-.fi-pulse:before {
-  content:'\e0ae';
-}
-
-.fi-puzzle-piece:before {
-  content:'\e0af';
-}
-
-.fi-question-mark:before {
-  content:'\e0b0';
-}
-
-.fi-rain:before {
-  content:'\e0b1';
-}
-
-.fi-random:before {
-  content:'\e0b2';
-}
-
-.fi-reload:before {
-  content:'\e0b3';
-}
-
-.fi-resize-both:before {
-  content:'\e0b4';
-}
-
-.fi-resize-height:before {
-  content:'\e0b5';
-}
-
-.fi-resize-width:before {
-  content:'\e0b6';
-}
-
-.fi-rss-alt:before {
-  content:'\e0b7';
-}
-
-.fi-rss:before {
-  content:'\e0b8';
-}
-
-.fi-script:before {
-  content:'\e0b9';
-}
-
-.fi-share-boxed:before {
-  content:'\e0ba';
-}
-
-.fi-share:before {
-  content:'\e0bb';
-}
-
-.fi-shield:before {
-  content:'\e0bc';
-}
-
-.fi-signal:before {
-  content:'\e0bd';
-}
-
-.fi-signpost:before {
-  content:'\e0be';
-}
-
-.fi-sort-ascending:before {
-  content:'\e0bf';
-}
-
-.fi-sort-descending:before {
-  content:'\e0c0';
-}
-
-.fi-spreadsheet:before {
-  content:'\e0c1';
-}
-
-.fi-star:before {
-  content:'\e0c2';
-}
-
-.fi-sun:before {
-  content:'\e0c3';
-}
-
-.fi-tablet:before {
-  content:'\e0c4';
-}
-
-.fi-tag:before {
-  content:'\e0c5';
-}
-
-.fi-tags:before {
-  content:'\e0c6';
-}
-
-.fi-target:before {
-  content:'\e0c7';
-}
-
-.fi-task:before {
-  content:'\e0c8';
-}
-
-.fi-terminal:before {
-  content:'\e0c9';
-}
-
-.fi-text:before {
-  content:'\e0ca';
-}
-
-.fi-thumb-down:before {
-  content:'\e0cb';
-}
-
-.fi-thumb-up:before {
-  content:'\e0cc';
-}
-
-.fi-timer:before {
-  content:'\e0cd';
-}
-
-.fi-transfer:before {
-  content:'\e0ce';
-}
-
-.fi-trash:before {
-  content:'\e0cf';
-}
-
-.fi-underline:before {
-  content:'\e0d0';
-}
-
-.fi-vertical-align-bottom:before {
-  content:'\e0d1';
-}
-
-.fi-vertical-align-center:before {
-  content:'\e0d2';
-}
-
-.fi-vertical-align-top:before {
-  content:'\e0d3';
-}
-
-.fi-video:before {
-  content:'\e0d4';
-}
-
-.fi-volume-high:before {
-  content:'\e0d5';
-}
-
-.fi-volume-low:before {
-  content:'\e0d6';
-}
-
-.fi-volume-off:before {
-  content:'\e0d7';
-}
-
-.fi-warning:before {
-  content:'\e0d8';
-}
-
-.fi-wifi:before {
-  content:'\e0d9';
-}
-
-.fi-wrench:before {
-  content:'\e0da';
-}
-
-.fi-x:before {
-  content:'\e0db';
-}
-
-.fi-yen:before {
-  content:'\e0dc';
-}
-
-.fi-zoom-in:before {
-  content:'\e0dd';
-}
-
-.fi-zoom-out:before {
-  content:'\e0de';
-}
-
diff --git a/assets/static/fonts/open-iconic/font/css/open-iconic-foundation.min.css b/assets/static/fonts/open-iconic/font/css/open-iconic-foundation.min.css
deleted file mode 100644
index bd12429..0000000
--- a/assets/static/fonts/open-iconic/font/css/open-iconic-foundation.min.css
+++ /dev/null
@@ -1 +0,0 @@
- at font-face{font-family:Icons;src:url(../fonts/open-iconic.eot);src:url(../fonts/open-iconic.eot?#iconic-sm) format('embedded-opentype'),url(../fonts/open-iconic.woff) format('woff'),url(../fonts/open-iconic.ttf) format('truetype'),url(../fonts/open-iconic.otf) format('opentype'),url(../fonts/open-iconic.svg#iconic-sm) format('svg');font-weight:400;font-style:normal}.fi-account-login:before,.fi-account-logout:before,.fi-action-redo:before,.fi-action-undo:before,.fi-align-center:before,.fi-align-left:before,.fi-align-right:before,.fi-aperture:before,.fi-arrow-bottom:before,.fi-arrow-circle-bottom:before,.fi-arrow-circle-left:before,.fi-arrow-circle-right:before,.fi-arrow-circle-top:before,.fi-arrow-left:before,.fi-arrow-right:before,.fi-arrow-thick-bottom:before,.fi-arrow-thick-left:before,.fi-arrow-thick-right:before,.fi-arrow-thick-top:before,.fi-arrow-top:before,.fi-audio-spectrum:before,.fi-audio:before,.fi-badge:before,.fi-ban:before,.fi-bar-chart:before,.fi-basket:before,.fi-bat
 tery-empty:before,.fi-battery-full:before,.fi-beaker:before,.fi-bell:before,.fi-bluetooth:before,.fi-bold:before,.fi-bolt:before,.fi-book:before,.fi-bookmark:before,.fi-box:before,.fi-briefcase:before,.fi-british-pound:before,.fi-browser:before,.fi-brush:before,.fi-bug:before,.fi-bullhorn:before,.fi-calculator:before,.fi-calendar:before,.fi-camera-slr:before,.fi-caret-bottom:before,.fi-caret-left:before,.fi-caret-right:before,.fi-caret-top:before,.fi-cart:before,.fi-chat:before,.fi-check:before,.fi-chevron-bottom:before,.fi-chevron-left:before,.fi-chevron-right:before,.fi-chevron-top:before,.fi-circle-check:before,.fi-circle-x:before,.fi-clipboard:before,.fi-clock:before,.fi-cloud-download:before,.fi-cloud-upload:before,.fi-cloud:before,.fi-cloudy:before,.fi-code:before,.fi-cog:before,.fi-collapse-down:before,.fi-collapse-left:before,.fi-collapse-right:before,.fi-collapse-up:before,.fi-command:before,.fi-comment-square:before,.fi-compass:before,.fi-contrast:before,.fi-copywriting:be
 fore,.fi-credit-card:before,.fi-crop:before,.fi-dashboard:before,.fi-data-transfer-download:before,.fi-data-transfer-upload:before,.fi-delete:before,.fi-dial:before,.fi-document:before,.fi-dollar:before,.fi-double-quote-sans-left:before,.fi-double-quote-sans-right:before,.fi-double-quote-serif-left:before,.fi-double-quote-serif-right:before,.fi-droplet:before,.fi-eject:before,.fi-elevator:before,.fi-ellipses:before,.fi-envelope-closed:before,.fi-envelope-open:before,.fi-euro:before,.fi-excerpt:before,.fi-expand-down:before,.fi-expand-left:before,.fi-expand-right:before,.fi-expand-up:before,.fi-external-link:before,.fi-eye:before,.fi-eyedropper:before,.fi-file:before,.fi-fire:before,.fi-flag:before,.fi-flash:before,.fi-folder:before,.fi-fork:before,.fi-fullscreen-enter:before,.fi-fullscreen-exit:before,.fi-globe:before,.fi-graph:before,.fi-grid-four-up:before,.fi-grid-three-up:before,.fi-grid-two-up:before,.fi-hard-drive:before,.fi-header:before,.fi-headphones:before,.fi-heart:before
 ,.fi-home:before,.fi-image:before,.fi-inbox:before,.fi-infinity:before,.fi-info:before,.fi-italic:before,.fi-justify-center:before,.fi-justify-left:before,.fi-justify-right:before,.fi-key:before,.fi-laptop:before,.fi-layers:before,.fi-lightbulb:before,.fi-link-broken:before,.fi-link-intact:before,.fi-list-rich:before,.fi-list:before,.fi-location:before,.fi-lock-locked:before,.fi-lock-unlocked:before,.fi-loop-circular:before,.fi-loop-square:before,.fi-loop:before,.fi-magnifying-glass:before,.fi-map-marker:before,.fi-map:before,.fi-media-pause:before,.fi-media-play:before,.fi-media-record:before,.fi-media-skip-backward:before,.fi-media-skip-forward:before,.fi-media-step-backward:before,.fi-media-step-forward:before,.fi-media-stop:before,.fi-medical-cross:before,.fi-menu:before,.fi-microphone:before,.fi-minus:before,.fi-monitor:before,.fi-moon:before,.fi-move:before,.fi-musical-note:before,.fi-paperclip:before,.fi-pencil:before,.fi-people:before,.fi-person:before,.fi-phone:before,.fi-p
 ie-chart:before,.fi-pin:before,.fi-play-circle:before,.fi-plus:before,.fi-power-standby:before,.fi-print:before,.fi-project:before,.fi-pulse:before,.fi-puzzle-piece:before,.fi-question-mark:before,.fi-rain:before,.fi-random:before,.fi-reload:before,.fi-resize-both:before,.fi-resize-height:before,.fi-resize-width:before,.fi-rss-alt:before,.fi-rss:before,.fi-script:before,.fi-share-boxed:before,.fi-share:before,.fi-shield:before,.fi-signal:before,.fi-signpost:before,.fi-sort-ascending:before,.fi-sort-descending:before,.fi-spreadsheet:before,.fi-star:before,.fi-sun:before,.fi-tablet:before,.fi-tag:before,.fi-tags:before,.fi-target:before,.fi-task:before,.fi-terminal:before,.fi-text:before,.fi-thumb-down:before,.fi-thumb-up:before,.fi-timer:before,.fi-transfer:before,.fi-trash:before,.fi-underline:before,.fi-vertical-align-bottom:before,.fi-vertical-align-center:before,.fi-vertical-align-top:before,.fi-video:before,.fi-volume-high:before,.fi-volume-low:before,.fi-volume-off:before,.fi-w
 arning:before,.fi-wifi:before,.fi-wrench:before,.fi-x:before,.fi-yen:before,.fi-zoom-in:before,.fi-zoom-out:before{font-family:Icons;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;text-decoration:inherit}[class*=fi-].oi-align-center:before{text-align:center}[class*=fi-].oi-align-left:before{text-align:left}[class*=fi-].oi-align-right:before{text-align:right}[class*=fi-].oi-flip-horizontal:before{-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}[class*=fi-].oi-flip-vertical:before{-webkit-transform:scale(1,-1);-ms-transform:scale(-1,1);transform:scale(1,-1)}[class*=fi-].oi-flip-horizontal-vertical:before{-webkit-transform:scale(-1,-1);-ms-transform:scale(-1,1);transform:scale(-1,-1)}.fi-account-login:before{content:'\e000'}.fi-account-logout:before{content:'\e001'}.fi-action-redo:before{content:'\e002'}.fi-action-undo:before{c
 ontent:'\e003'}.fi-align-center:before{content:'\e004'}.fi-align-left:before{content:'\e005'}.fi-align-right:before{content:'\e006'}.fi-aperture:before{content:'\e007'}.fi-arrow-bottom:before{content:'\e008'}.fi-arrow-circle-bottom:before{content:'\e009'}.fi-arrow-circle-left:before{content:'\e00a'}.fi-arrow-circle-right:before{content:'\e00b'}.fi-arrow-circle-top:before{content:'\e00c'}.fi-arrow-left:before{content:'\e00d'}.fi-arrow-right:before{content:'\e00e'}.fi-arrow-thick-bottom:before{content:'\e00f'}.fi-arrow-thick-left:before{content:'\e010'}.fi-arrow-thick-right:before{content:'\e011'}.fi-arrow-thick-top:before{content:'\e012'}.fi-arrow-top:before{content:'\e013'}.fi-audio-spectrum:before{content:'\e014'}.fi-audio:before{content:'\e015'}.fi-badge:before{content:'\e016'}.fi-ban:before{content:'\e017'}.fi-bar-chart:before{content:'\e018'}.fi-basket:before{content:'\e019'}.fi-battery-empty:before{content:'\e01a'}.fi-battery-full:before{content:'\e01b'}.fi-beaker:before{conten
 t:'\e01c'}.fi-bell:before{content:'\e01d'}.fi-bluetooth:before{content:'\e01e'}.fi-bold:before{content:'\e01f'}.fi-bolt:before{content:'\e020'}.fi-book:before{content:'\e021'}.fi-bookmark:before{content:'\e022'}.fi-box:before{content:'\e023'}.fi-briefcase:before{content:'\e024'}.fi-british-pound:before{content:'\e025'}.fi-browser:before{content:'\e026'}.fi-brush:before{content:'\e027'}.fi-bug:before{content:'\e028'}.fi-bullhorn:before{content:'\e029'}.fi-calculator:before{content:'\e02a'}.fi-calendar:before{content:'\e02b'}.fi-camera-slr:before{content:'\e02c'}.fi-caret-bottom:before{content:'\e02d'}.fi-caret-left:before{content:'\e02e'}.fi-caret-right:before{content:'\e02f'}.fi-caret-top:before{content:'\e030'}.fi-cart:before{content:'\e031'}.fi-chat:before{content:'\e032'}.fi-check:before{content:'\e033'}.fi-chevron-bottom:before{content:'\e034'}.fi-chevron-left:before{content:'\e035'}.fi-chevron-right:before{content:'\e036'}.fi-chevron-top:before{content:'\e037'}.fi-circle-check:
 before{content:'\e038'}.fi-circle-x:before{content:'\e039'}.fi-clipboard:before{content:'\e03a'}.fi-clock:before{content:'\e03b'}.fi-cloud-download:before{content:'\e03c'}.fi-cloud-upload:before{content:'\e03d'}.fi-cloud:before{content:'\e03e'}.fi-cloudy:before{content:'\e03f'}.fi-code:before{content:'\e040'}.fi-cog:before{content:'\e041'}.fi-collapse-down:before{content:'\e042'}.fi-collapse-left:before{content:'\e043'}.fi-collapse-right:before{content:'\e044'}.fi-collapse-up:before{content:'\e045'}.fi-command:before{content:'\e046'}.fi-comment-square:before{content:'\e047'}.fi-compass:before{content:'\e048'}.fi-contrast:before{content:'\e049'}.fi-copywriting:before{content:'\e04a'}.fi-credit-card:before{content:'\e04b'}.fi-crop:before{content:'\e04c'}.fi-dashboard:before{content:'\e04d'}.fi-data-transfer-download:before{content:'\e04e'}.fi-data-transfer-upload:before{content:'\e04f'}.fi-delete:before{content:'\e050'}.fi-dial:before{content:'\e051'}.fi-document:before{content:'\e052
 '}.fi-dollar:before{content:'\e053'}.fi-double-quote-sans-left:before{content:'\e054'}.fi-double-quote-sans-right:before{content:'\e055'}.fi-double-quote-serif-left:before{content:'\e056'}.fi-double-quote-serif-right:before{content:'\e057'}.fi-droplet:before{content:'\e058'}.fi-eject:before{content:'\e059'}.fi-elevator:before{content:'\e05a'}.fi-ellipses:before{content:'\e05b'}.fi-envelope-closed:before{content:'\e05c'}.fi-envelope-open:before{content:'\e05d'}.fi-euro:before{content:'\e05e'}.fi-excerpt:before{content:'\e05f'}.fi-expand-down:before{content:'\e060'}.fi-expand-left:before{content:'\e061'}.fi-expand-right:before{content:'\e062'}.fi-expand-up:before{content:'\e063'}.fi-external-link:before{content:'\e064'}.fi-eye:before{content:'\e065'}.fi-eyedropper:before{content:'\e066'}.fi-file:before{content:'\e067'}.fi-fire:before{content:'\e068'}.fi-flag:before{content:'\e069'}.fi-flash:before{content:'\e06a'}.fi-folder:before{content:'\e06b'}.fi-fork:before{content:'\e06c'}.fi-fu
 llscreen-enter:before{content:'\e06d'}.fi-fullscreen-exit:before{content:'\e06e'}.fi-globe:before{content:'\e06f'}.fi-graph:before{content:'\e070'}.fi-grid-four-up:before{content:'\e071'}.fi-grid-three-up:before{content:'\e072'}.fi-grid-two-up:before{content:'\e073'}.fi-hard-drive:before{content:'\e074'}.fi-header:before{content:'\e075'}.fi-headphones:before{content:'\e076'}.fi-heart:before{content:'\e077'}.fi-home:before{content:'\e078'}.fi-image:before{content:'\e079'}.fi-inbox:before{content:'\e07a'}.fi-infinity:before{content:'\e07b'}.fi-info:before{content:'\e07c'}.fi-italic:before{content:'\e07d'}.fi-justify-center:before{content:'\e07e'}.fi-justify-left:before{content:'\e07f'}.fi-justify-right:before{content:'\e080'}.fi-key:before{content:'\e081'}.fi-laptop:before{content:'\e082'}.fi-layers:before{content:'\e083'}.fi-lightbulb:before{content:'\e084'}.fi-link-broken:before{content:'\e085'}.fi-link-intact:before{content:'\e086'}.fi-list-rich:before{content:'\e087'}.fi-list:befo
 re{content:'\e088'}.fi-location:before{content:'\e089'}.fi-lock-locked:before{content:'\e08a'}.fi-lock-unlocked:before{content:'\e08b'}.fi-loop-circular:before{content:'\e08c'}.fi-loop-square:before{content:'\e08d'}.fi-loop:before{content:'\e08e'}.fi-magnifying-glass:before{content:'\e08f'}.fi-map-marker:before{content:'\e090'}.fi-map:before{content:'\e091'}.fi-media-pause:before{content:'\e092'}.fi-media-play:before{content:'\e093'}.fi-media-record:before{content:'\e094'}.fi-media-skip-backward:before{content:'\e095'}.fi-media-skip-forward:before{content:'\e096'}.fi-media-step-backward:before{content:'\e097'}.fi-media-step-forward:before{content:'\e098'}.fi-media-stop:before{content:'\e099'}.fi-medical-cross:before{content:'\e09a'}.fi-menu:before{content:'\e09b'}.fi-microphone:before{content:'\e09c'}.fi-minus:before{content:'\e09d'}.fi-monitor:before{content:'\e09e'}.fi-moon:before{content:'\e09f'}.fi-move:before{content:'\e0a0'}.fi-musical-note:before{content:'\e0a1'}.fi-paperclip
 :before{content:'\e0a2'}.fi-pencil:before{content:'\e0a3'}.fi-people:before{content:'\e0a4'}.fi-person:before{content:'\e0a5'}.fi-phone:before{content:'\e0a6'}.fi-pie-chart:before{content:'\e0a7'}.fi-pin:before{content:'\e0a8'}.fi-play-circle:before{content:'\e0a9'}.fi-plus:before{content:'\e0aa'}.fi-power-standby:before{content:'\e0ab'}.fi-print:before{content:'\e0ac'}.fi-project:before{content:'\e0ad'}.fi-pulse:before{content:'\e0ae'}.fi-puzzle-piece:before{content:'\e0af'}.fi-question-mark:before{content:'\e0b0'}.fi-rain:before{content:'\e0b1'}.fi-random:before{content:'\e0b2'}.fi-reload:before{content:'\e0b3'}.fi-resize-both:before{content:'\e0b4'}.fi-resize-height:before{content:'\e0b5'}.fi-resize-width:before{content:'\e0b6'}.fi-rss-alt:before{content:'\e0b7'}.fi-rss:before{content:'\e0b8'}.fi-script:before{content:'\e0b9'}.fi-share-boxed:before{content:'\e0ba'}.fi-share:before{content:'\e0bb'}.fi-shield:before{content:'\e0bc'}.fi-signal:before{content:'\e0bd'}.fi-signpost:bef
 ore{content:'\e0be'}.fi-sort-ascending:before{content:'\e0bf'}.fi-sort-descending:before{content:'\e0c0'}.fi-spreadsheet:before{content:'\e0c1'}.fi-star:before{content:'\e0c2'}.fi-sun:before{content:'\e0c3'}.fi-tablet:before{content:'\e0c4'}.fi-tag:before{content:'\e0c5'}.fi-tags:before{content:'\e0c6'}.fi-target:before{content:'\e0c7'}.fi-task:before{content:'\e0c8'}.fi-terminal:before{content:'\e0c9'}.fi-text:before{content:'\e0ca'}.fi-thumb-down:before{content:'\e0cb'}.fi-thumb-up:before{content:'\e0cc'}.fi-timer:before{content:'\e0cd'}.fi-transfer:before{content:'\e0ce'}.fi-trash:before{content:'\e0cf'}.fi-underline:before{content:'\e0d0'}.fi-vertical-align-bottom:before{content:'\e0d1'}.fi-vertical-align-center:before{content:'\e0d2'}.fi-vertical-align-top:before{content:'\e0d3'}.fi-video:before{content:'\e0d4'}.fi-volume-high:before{content:'\e0d5'}.fi-volume-low:before{content:'\e0d6'}.fi-volume-off:before{content:'\e0d7'}.fi-warning:before{content:'\e0d8'}.fi-wifi:before{con
 tent:'\e0d9'}.fi-wrench:before{content:'\e0da'}.fi-x:before{content:'\e0db'}.fi-yen:before{content:'\e0dc'}.fi-zoom-in:before{content:'\e0dd'}.fi-zoom-out:before{content:'\e0de'}
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/font/css/open-iconic-foundation.scss b/assets/static/fonts/open-iconic/font/css/open-iconic-foundation.scss
deleted file mode 100644
index fe47138..0000000
--- a/assets/static/fonts/open-iconic/font/css/open-iconic-foundation.scss
+++ /dev/null
@@ -1,1398 +0,0 @@
-/* Foundation */
-
-/* Font path variable */
-$icon-font-path: '../fonts/' !default;
-
- at font-face {
-  font-family: 'Icons';
-  src: url('#{$icon-font-path}open-iconic.eot');
-  src: url('#{$icon-font-path}open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('#{$icon-font-path}open-iconic.woff') format('woff'), url('#{$icon-font-path}open-iconic.ttf') format('truetype'), url('#{$icon-font-path}open-iconic.otf') format('opentype'), url('#{$icon-font-path}open-iconic.svg#iconic-sm') format('svg');
-  font-weight: normal;
-  font-style: normal;
-}
-
-
-.fi-account-login:before,
-
-.fi-account-logout:before,
-
-.fi-action-redo:before,
-
-.fi-action-undo:before,
-
-.fi-align-center:before,
-
-.fi-align-left:before,
-
-.fi-align-right:before,
-
-.fi-aperture:before,
-
-.fi-arrow-bottom:before,
-
-.fi-arrow-circle-bottom:before,
-
-.fi-arrow-circle-left:before,
-
-.fi-arrow-circle-right:before,
-
-.fi-arrow-circle-top:before,
-
-.fi-arrow-left:before,
-
-.fi-arrow-right:before,
-
-.fi-arrow-thick-bottom:before,
-
-.fi-arrow-thick-left:before,
-
-.fi-arrow-thick-right:before,
-
-.fi-arrow-thick-top:before,
-
-.fi-arrow-top:before,
-
-.fi-audio-spectrum:before,
-
-.fi-audio:before,
-
-.fi-badge:before,
-
-.fi-ban:before,
-
-.fi-bar-chart:before,
-
-.fi-basket:before,
-
-.fi-battery-empty:before,
-
-.fi-battery-full:before,
-
-.fi-beaker:before,
-
-.fi-bell:before,
-
-.fi-bluetooth:before,
-
-.fi-bold:before,
-
-.fi-bolt:before,
-
-.fi-book:before,
-
-.fi-bookmark:before,
-
-.fi-box:before,
-
-.fi-briefcase:before,
-
-.fi-british-pound:before,
-
-.fi-browser:before,
-
-.fi-brush:before,
-
-.fi-bug:before,
-
-.fi-bullhorn:before,
-
-.fi-calculator:before,
-
-.fi-calendar:before,
-
-.fi-camera-slr:before,
-
-.fi-caret-bottom:before,
-
-.fi-caret-left:before,
-
-.fi-caret-right:before,
-
-.fi-caret-top:before,
-
-.fi-cart:before,
-
-.fi-chat:before,
-
-.fi-check:before,
-
-.fi-chevron-bottom:before,
-
-.fi-chevron-left:before,
-
-.fi-chevron-right:before,
-
-.fi-chevron-top:before,
-
-.fi-circle-check:before,
-
-.fi-circle-x:before,
-
-.fi-clipboard:before,
-
-.fi-clock:before,
-
-.fi-cloud-download:before,
-
-.fi-cloud-upload:before,
-
-.fi-cloud:before,
-
-.fi-cloudy:before,
-
-.fi-code:before,
-
-.fi-cog:before,
-
-.fi-collapse-down:before,
-
-.fi-collapse-left:before,
-
-.fi-collapse-right:before,
-
-.fi-collapse-up:before,
-
-.fi-command:before,
-
-.fi-comment-square:before,
-
-.fi-compass:before,
-
-.fi-contrast:before,
-
-.fi-copywriting:before,
-
-.fi-credit-card:before,
-
-.fi-crop:before,
-
-.fi-dashboard:before,
-
-.fi-data-transfer-download:before,
-
-.fi-data-transfer-upload:before,
-
-.fi-delete:before,
-
-.fi-dial:before,
-
-.fi-document:before,
-
-.fi-dollar:before,
-
-.fi-double-quote-sans-left:before,
-
-.fi-double-quote-sans-right:before,
-
-.fi-double-quote-serif-left:before,
-
-.fi-double-quote-serif-right:before,
-
-.fi-droplet:before,
-
-.fi-eject:before,
-
-.fi-elevator:before,
-
-.fi-ellipses:before,
-
-.fi-envelope-closed:before,
-
-.fi-envelope-open:before,
-
-.fi-euro:before,
-
-.fi-excerpt:before,
-
-.fi-expand-down:before,
-
-.fi-expand-left:before,
-
-.fi-expand-right:before,
-
-.fi-expand-up:before,
-
-.fi-external-link:before,
-
-.fi-eye:before,
-
-.fi-eyedropper:before,
-
-.fi-file:before,
-
-.fi-fire:before,
-
-.fi-flag:before,
-
-.fi-flash:before,
-
-.fi-folder:before,
-
-.fi-fork:before,
-
-.fi-fullscreen-enter:before,
-
-.fi-fullscreen-exit:before,
-
-.fi-globe:before,
-
-.fi-graph:before,
-
-.fi-grid-four-up:before,
-
-.fi-grid-three-up:before,
-
-.fi-grid-two-up:before,
-
-.fi-hard-drive:before,
-
-.fi-header:before,
-
-.fi-headphones:before,
-
-.fi-heart:before,
-
-.fi-home:before,
-
-.fi-image:before,
-
-.fi-inbox:before,
-
-.fi-infinity:before,
-
-.fi-info:before,
-
-.fi-italic:before,
-
-.fi-justify-center:before,
-
-.fi-justify-left:before,
-
-.fi-justify-right:before,
-
-.fi-key:before,
-
-.fi-laptop:before,
-
-.fi-layers:before,
-
-.fi-lightbulb:before,
-
-.fi-link-broken:before,
-
-.fi-link-intact:before,
-
-.fi-list-rich:before,
-
-.fi-list:before,
-
-.fi-location:before,
-
-.fi-lock-locked:before,
-
-.fi-lock-unlocked:before,
-
-.fi-loop-circular:before,
-
-.fi-loop-square:before,
-
-.fi-loop:before,
-
-.fi-magnifying-glass:before,
-
-.fi-map-marker:before,
-
-.fi-map:before,
-
-.fi-media-pause:before,
-
-.fi-media-play:before,
-
-.fi-media-record:before,
-
-.fi-media-skip-backward:before,
-
-.fi-media-skip-forward:before,
-
-.fi-media-step-backward:before,
-
-.fi-media-step-forward:before,
-
-.fi-media-stop:before,
-
-.fi-medical-cross:before,
-
-.fi-menu:before,
-
-.fi-microphone:before,
-
-.fi-minus:before,
-
-.fi-monitor:before,
-
-.fi-moon:before,
-
-.fi-move:before,
-
-.fi-musical-note:before,
-
-.fi-paperclip:before,
-
-.fi-pencil:before,
-
-.fi-people:before,
-
-.fi-person:before,
-
-.fi-phone:before,
-
-.fi-pie-chart:before,
-
-.fi-pin:before,
-
-.fi-play-circle:before,
-
-.fi-plus:before,
-
-.fi-power-standby:before,
-
-.fi-print:before,
-
-.fi-project:before,
-
-.fi-pulse:before,
-
-.fi-puzzle-piece:before,
-
-.fi-question-mark:before,
-
-.fi-rain:before,
-
-.fi-random:before,
-
-.fi-reload:before,
-
-.fi-resize-both:before,
-
-.fi-resize-height:before,
-
-.fi-resize-width:before,
-
-.fi-rss-alt:before,
-
-.fi-rss:before,
-
-.fi-script:before,
-
-.fi-share-boxed:before,
-
-.fi-share:before,
-
-.fi-shield:before,
-
-.fi-signal:before,
-
-.fi-signpost:before,
-
-.fi-sort-ascending:before,
-
-.fi-sort-descending:before,
-
-.fi-spreadsheet:before,
-
-.fi-star:before,
-
-.fi-sun:before,
-
-.fi-tablet:before,
-
-.fi-tag:before,
-
-.fi-tags:before,
-
-.fi-target:before,
-
-.fi-task:before,
-
-.fi-terminal:before,
-
-.fi-text:before,
-
-.fi-thumb-down:before,
-
-.fi-thumb-up:before,
-
-.fi-timer:before,
-
-.fi-transfer:before,
-
-.fi-trash:before,
-
-.fi-underline:before,
-
-.fi-vertical-align-bottom:before,
-
-.fi-vertical-align-center:before,
-
-.fi-vertical-align-top:before,
-
-.fi-video:before,
-
-.fi-volume-high:before,
-
-.fi-volume-low:before,
-
-.fi-volume-off:before,
-
-.fi-warning:before,
-
-.fi-wifi:before,
-
-.fi-wrench:before,
-
-.fi-x:before,
-
-.fi-yen:before,
-
-.fi-zoom-in:before,
-
-.fi-zoom-out:before
- {
-  font-family: 'Icons';
-  font-style: normal;
-  font-weight: normal;
-  font-variant: normal;
-  text-transform: none;
-  line-height: 1;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  display: inline-block;
-  text-decoration: inherit;
-}
-
-
-[class*='fi-'].oi-align-center:before {
-  text-align: center;
-}
-
-[class*='fi-'].oi-align-left:before {
-  text-align: left;
-}
-
-[class*='fi-'].oi-align-right:before {
-  text-align: right;
-}
-
-
-[class*='fi-'].oi-flip-horizontal:before {
-  -webkit-transform: scale(-1, 1);
-  -ms-transform: scale(-1, 1);
-  transform: scale(-1, 1);
-}
-
-[class*='fi-'].oi-flip-vertical:before {
-  -webkit-transform: scale(1, -1);
-  -ms-transform: scale(-1, 1);
-  transform: scale(1, -1);
-}
-
-[class*='fi-'].oi-flip-horizontal-vertical:before {
-  -webkit-transform: scale(-1, -1);
-  -ms-transform: scale(-1, 1);
-  transform: scale(-1, -1);
-}
-
-
-
-.fi-account-login:before {
-  content:'\e000';
-}
-
-.fi-account-logout:before {
-  content:'\e001';
-}
-
-.fi-action-redo:before {
-  content:'\e002';
-}
-
-.fi-action-undo:before {
-  content:'\e003';
-}
-
-.fi-align-center:before {
-  content:'\e004';
-}
-
-.fi-align-left:before {
-  content:'\e005';
-}
-
-.fi-align-right:before {
-  content:'\e006';
-}
-
-.fi-aperture:before {
-  content:'\e007';
-}
-
-.fi-arrow-bottom:before {
-  content:'\e008';
-}
-
-.fi-arrow-circle-bottom:before {
-  content:'\e009';
-}
-
-.fi-arrow-circle-left:before {
-  content:'\e00a';
-}
-
-.fi-arrow-circle-right:before {
-  content:'\e00b';
-}
-
-.fi-arrow-circle-top:before {
-  content:'\e00c';
-}
-
-.fi-arrow-left:before {
-  content:'\e00d';
-}
-
-.fi-arrow-right:before {
-  content:'\e00e';
-}
-
-.fi-arrow-thick-bottom:before {
-  content:'\e00f';
-}
-
-.fi-arrow-thick-left:before {
-  content:'\e010';
-}
-
-.fi-arrow-thick-right:before {
-  content:'\e011';
-}
-
-.fi-arrow-thick-top:before {
-  content:'\e012';
-}
-
-.fi-arrow-top:before {
-  content:'\e013';
-}
-
-.fi-audio-spectrum:before {
-  content:'\e014';
-}
-
-.fi-audio:before {
-  content:'\e015';
-}
-
-.fi-badge:before {
-  content:'\e016';
-}
-
-.fi-ban:before {
-  content:'\e017';
-}
-
-.fi-bar-chart:before {
-  content:'\e018';
-}
-
-.fi-basket:before {
-  content:'\e019';
-}
-
-.fi-battery-empty:before {
-  content:'\e01a';
-}
-
-.fi-battery-full:before {
-  content:'\e01b';
-}
-
-.fi-beaker:before {
-  content:'\e01c';
-}
-
-.fi-bell:before {
-  content:'\e01d';
-}
-
-.fi-bluetooth:before {
-  content:'\e01e';
-}
-
-.fi-bold:before {
-  content:'\e01f';
-}
-
-.fi-bolt:before {
-  content:'\e020';
-}
-
-.fi-book:before {
-  content:'\e021';
-}
-
-.fi-bookmark:before {
-  content:'\e022';
-}
-
-.fi-box:before {
-  content:'\e023';
-}
-
-.fi-briefcase:before {
-  content:'\e024';
-}
-
-.fi-british-pound:before {
-  content:'\e025';
-}
-
-.fi-browser:before {
-  content:'\e026';
-}
-
-.fi-brush:before {
-  content:'\e027';
-}
-
-.fi-bug:before {
-  content:'\e028';
-}
-
-.fi-bullhorn:before {
-  content:'\e029';
-}
-
-.fi-calculator:before {
-  content:'\e02a';
-}
-
-.fi-calendar:before {
-  content:'\e02b';
-}
-
-.fi-camera-slr:before {
-  content:'\e02c';
-}
-
-.fi-caret-bottom:before {
-  content:'\e02d';
-}
-
-.fi-caret-left:before {
-  content:'\e02e';
-}
-
-.fi-caret-right:before {
-  content:'\e02f';
-}
-
-.fi-caret-top:before {
-  content:'\e030';
-}
-
-.fi-cart:before {
-  content:'\e031';
-}
-
-.fi-chat:before {
-  content:'\e032';
-}
-
-.fi-check:before {
-  content:'\e033';
-}
-
-.fi-chevron-bottom:before {
-  content:'\e034';
-}
-
-.fi-chevron-left:before {
-  content:'\e035';
-}
-
-.fi-chevron-right:before {
-  content:'\e036';
-}
-
-.fi-chevron-top:before {
-  content:'\e037';
-}
-
-.fi-circle-check:before {
-  content:'\e038';
-}
-
-.fi-circle-x:before {
-  content:'\e039';
-}
-
-.fi-clipboard:before {
-  content:'\e03a';
-}
-
-.fi-clock:before {
-  content:'\e03b';
-}
-
-.fi-cloud-download:before {
-  content:'\e03c';
-}
-
-.fi-cloud-upload:before {
-  content:'\e03d';
-}
-
-.fi-cloud:before {
-  content:'\e03e';
-}
-
-.fi-cloudy:before {
-  content:'\e03f';
-}
-
-.fi-code:before {
-  content:'\e040';
-}
-
-.fi-cog:before {
-  content:'\e041';
-}
-
-.fi-collapse-down:before {
-  content:'\e042';
-}
-
-.fi-collapse-left:before {
-  content:'\e043';
-}
-
-.fi-collapse-right:before {
-  content:'\e044';
-}
-
-.fi-collapse-up:before {
-  content:'\e045';
-}
-
-.fi-command:before {
-  content:'\e046';
-}
-
-.fi-comment-square:before {
-  content:'\e047';
-}
-
-.fi-compass:before {
-  content:'\e048';
-}
-
-.fi-contrast:before {
-  content:'\e049';
-}
-
-.fi-copywriting:before {
-  content:'\e04a';
-}
-
-.fi-credit-card:before {
-  content:'\e04b';
-}
-
-.fi-crop:before {
-  content:'\e04c';
-}
-
-.fi-dashboard:before {
-  content:'\e04d';
-}
-
-.fi-data-transfer-download:before {
-  content:'\e04e';
-}
-
-.fi-data-transfer-upload:before {
-  content:'\e04f';
-}
-
-.fi-delete:before {
-  content:'\e050';
-}
-
-.fi-dial:before {
-  content:'\e051';
-}
-
-.fi-document:before {
-  content:'\e052';
-}
-
-.fi-dollar:before {
-  content:'\e053';
-}
-
-.fi-double-quote-sans-left:before {
-  content:'\e054';
-}
-
-.fi-double-quote-sans-right:before {
-  content:'\e055';
-}
-
-.fi-double-quote-serif-left:before {
-  content:'\e056';
-}
-
-.fi-double-quote-serif-right:before {
-  content:'\e057';
-}
-
-.fi-droplet:before {
-  content:'\e058';
-}
-
-.fi-eject:before {
-  content:'\e059';
-}
-
-.fi-elevator:before {
-  content:'\e05a';
-}
-
-.fi-ellipses:before {
-  content:'\e05b';
-}
-
-.fi-envelope-closed:before {
-  content:'\e05c';
-}
-
-.fi-envelope-open:before {
-  content:'\e05d';
-}
-
-.fi-euro:before {
-  content:'\e05e';
-}
-
-.fi-excerpt:before {
-  content:'\e05f';
-}
-
-.fi-expand-down:before {
-  content:'\e060';
-}
-
-.fi-expand-left:before {
-  content:'\e061';
-}
-
-.fi-expand-right:before {
-  content:'\e062';
-}
-
-.fi-expand-up:before {
-  content:'\e063';
-}
-
-.fi-external-link:before {
-  content:'\e064';
-}
-
-.fi-eye:before {
-  content:'\e065';
-}
-
-.fi-eyedropper:before {
-  content:'\e066';
-}
-
-.fi-file:before {
-  content:'\e067';
-}
-
-.fi-fire:before {
-  content:'\e068';
-}
-
-.fi-flag:before {
-  content:'\e069';
-}
-
-.fi-flash:before {
-  content:'\e06a';
-}
-
-.fi-folder:before {
-  content:'\e06b';
-}
-
-.fi-fork:before {
-  content:'\e06c';
-}
-
-.fi-fullscreen-enter:before {
-  content:'\e06d';
-}
-
-.fi-fullscreen-exit:before {
-  content:'\e06e';
-}
-
-.fi-globe:before {
-  content:'\e06f';
-}
-
-.fi-graph:before {
-  content:'\e070';
-}
-
-.fi-grid-four-up:before {
-  content:'\e071';
-}
-
-.fi-grid-three-up:before {
-  content:'\e072';
-}
-
-.fi-grid-two-up:before {
-  content:'\e073';
-}
-
-.fi-hard-drive:before {
-  content:'\e074';
-}
-
-.fi-header:before {
-  content:'\e075';
-}
-
-.fi-headphones:before {
-  content:'\e076';
-}
-
-.fi-heart:before {
-  content:'\e077';
-}
-
-.fi-home:before {
-  content:'\e078';
-}
-
-.fi-image:before {
-  content:'\e079';
-}
-
-.fi-inbox:before {
-  content:'\e07a';
-}
-
-.fi-infinity:before {
-  content:'\e07b';
-}
-
-.fi-info:before {
-  content:'\e07c';
-}
-
-.fi-italic:before {
-  content:'\e07d';
-}
-
-.fi-justify-center:before {
-  content:'\e07e';
-}
-
-.fi-justify-left:before {
-  content:'\e07f';
-}
-
-.fi-justify-right:before {
-  content:'\e080';
-}
-
-.fi-key:before {
-  content:'\e081';
-}
-
-.fi-laptop:before {
-  content:'\e082';
-}
-
-.fi-layers:before {
-  content:'\e083';
-}
-
-.fi-lightbulb:before {
-  content:'\e084';
-}
-
-.fi-link-broken:before {
-  content:'\e085';
-}
-
-.fi-link-intact:before {
-  content:'\e086';
-}
-
-.fi-list-rich:before {
-  content:'\e087';
-}
-
-.fi-list:before {
-  content:'\e088';
-}
-
-.fi-location:before {
-  content:'\e089';
-}
-
-.fi-lock-locked:before {
-  content:'\e08a';
-}
-
-.fi-lock-unlocked:before {
-  content:'\e08b';
-}
-
-.fi-loop-circular:before {
-  content:'\e08c';
-}
-
-.fi-loop-square:before {
-  content:'\e08d';
-}
-
-.fi-loop:before {
-  content:'\e08e';
-}
-
-.fi-magnifying-glass:before {
-  content:'\e08f';
-}
-
-.fi-map-marker:before {
-  content:'\e090';
-}
-
-.fi-map:before {
-  content:'\e091';
-}
-
-.fi-media-pause:before {
-  content:'\e092';
-}
-
-.fi-media-play:before {
-  content:'\e093';
-}
-
-.fi-media-record:before {
-  content:'\e094';
-}
-
-.fi-media-skip-backward:before {
-  content:'\e095';
-}
-
-.fi-media-skip-forward:before {
-  content:'\e096';
-}
-
-.fi-media-step-backward:before {
-  content:'\e097';
-}
-
-.fi-media-step-forward:before {
-  content:'\e098';
-}
-
-.fi-media-stop:before {
-  content:'\e099';
-}
-
-.fi-medical-cross:before {
-  content:'\e09a';
-}
-
-.fi-menu:before {
-  content:'\e09b';
-}
-
-.fi-microphone:before {
-  content:'\e09c';
-}
-
-.fi-minus:before {
-  content:'\e09d';
-}
-
-.fi-monitor:before {
-  content:'\e09e';
-}
-
-.fi-moon:before {
-  content:'\e09f';
-}
-
-.fi-move:before {
-  content:'\e0a0';
-}
-
-.fi-musical-note:before {
-  content:'\e0a1';
-}
-
-.fi-paperclip:before {
-  content:'\e0a2';
-}
-
-.fi-pencil:before {
-  content:'\e0a3';
-}
-
-.fi-people:before {
-  content:'\e0a4';
-}
-
-.fi-person:before {
-  content:'\e0a5';
-}
-
-.fi-phone:before {
-  content:'\e0a6';
-}
-
-.fi-pie-chart:before {
-  content:'\e0a7';
-}
-
-.fi-pin:before {
-  content:'\e0a8';
-}
-
-.fi-play-circle:before {
-  content:'\e0a9';
-}
-
-.fi-plus:before {
-  content:'\e0aa';
-}
-
-.fi-power-standby:before {
-  content:'\e0ab';
-}
-
-.fi-print:before {
-  content:'\e0ac';
-}
-
-.fi-project:before {
-  content:'\e0ad';
-}
-
-.fi-pulse:before {
-  content:'\e0ae';
-}
-
-.fi-puzzle-piece:before {
-  content:'\e0af';
-}
-
-.fi-question-mark:before {
-  content:'\e0b0';
-}
-
-.fi-rain:before {
-  content:'\e0b1';
-}
-
-.fi-random:before {
-  content:'\e0b2';
-}
-
-.fi-reload:before {
-  content:'\e0b3';
-}
-
-.fi-resize-both:before {
-  content:'\e0b4';
-}
-
-.fi-resize-height:before {
-  content:'\e0b5';
-}
-
-.fi-resize-width:before {
-  content:'\e0b6';
-}
-
-.fi-rss-alt:before {
-  content:'\e0b7';
-}
-
-.fi-rss:before {
-  content:'\e0b8';
-}
-
-.fi-script:before {
-  content:'\e0b9';
-}
-
-.fi-share-boxed:before {
-  content:'\e0ba';
-}
-
-.fi-share:before {
-  content:'\e0bb';
-}
-
-.fi-shield:before {
-  content:'\e0bc';
-}
-
-.fi-signal:before {
-  content:'\e0bd';
-}
-
-.fi-signpost:before {
-  content:'\e0be';
-}
-
-.fi-sort-ascending:before {
-  content:'\e0bf';
-}
-
-.fi-sort-descending:before {
-  content:'\e0c0';
-}
-
-.fi-spreadsheet:before {
-  content:'\e0c1';
-}
-
-.fi-star:before {
-  content:'\e0c2';
-}
-
-.fi-sun:before {
-  content:'\e0c3';
-}
-
-.fi-tablet:before {
-  content:'\e0c4';
-}
-
-.fi-tag:before {
-  content:'\e0c5';
-}
-
-.fi-tags:before {
-  content:'\e0c6';
-}
-
-.fi-target:before {
-  content:'\e0c7';
-}
-
-.fi-task:before {
-  content:'\e0c8';
-}
-
-.fi-terminal:before {
-  content:'\e0c9';
-}
-
-.fi-text:before {
-  content:'\e0ca';
-}
-
-.fi-thumb-down:before {
-  content:'\e0cb';
-}
-
-.fi-thumb-up:before {
-  content:'\e0cc';
-}
-
-.fi-timer:before {
-  content:'\e0cd';
-}
-
-.fi-transfer:before {
-  content:'\e0ce';
-}
-
-.fi-trash:before {
-  content:'\e0cf';
-}
-
-.fi-underline:before {
-  content:'\e0d0';
-}
-
-.fi-vertical-align-bottom:before {
-  content:'\e0d1';
-}
-
-.fi-vertical-align-center:before {
-  content:'\e0d2';
-}
-
-.fi-vertical-align-top:before {
-  content:'\e0d3';
-}
-
-.fi-video:before {
-  content:'\e0d4';
-}
-
-.fi-volume-high:before {
-  content:'\e0d5';
-}
-
-.fi-volume-low:before {
-  content:'\e0d6';
-}
-
-.fi-volume-off:before {
-  content:'\e0d7';
-}
-
-.fi-warning:before {
-  content:'\e0d8';
-}
-
-.fi-wifi:before {
-  content:'\e0d9';
-}
-
-.fi-wrench:before {
-  content:'\e0da';
-}
-
-.fi-x:before {
-  content:'\e0db';
-}
-
-.fi-yen:before {
-  content:'\e0dc';
-}
-
-.fi-zoom-in:before {
-  content:'\e0dd';
-}
-
-.fi-zoom-out:before {
-  content:'\e0de';
-}
-
diff --git a/assets/static/fonts/open-iconic/font/css/open-iconic-foundation.styl b/assets/static/fonts/open-iconic/font/css/open-iconic-foundation.styl
deleted file mode 100644
index a52637a..0000000
--- a/assets/static/fonts/open-iconic/font/css/open-iconic-foundation.styl
+++ /dev/null
@@ -1,1392 +0,0 @@
-/* Foundation */
-
- at font-face
-  font-family 'Icons'
-  src url('../fonts/open-iconic.eot')
-  src url('../fonts/open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('../fonts/open-iconic.woff') format('woff'), url('../fonts/open-iconic.ttf') format('truetype'), url('../fonts/open-iconic.otf') format('opentype'), url('../fonts/open-iconic.svg#iconic-sm') format('svg')
-  font-weight normal
-  font-style normal
-
-
-
-.fi-account-loginbefore,
-
-.fi-account-logoutbefore,
-
-.fi-action-redobefore,
-
-.fi-action-undobefore,
-
-.fi-align-centerbefore,
-
-.fi-align-leftbefore,
-
-.fi-align-rightbefore,
-
-.fi-aperturebefore,
-
-.fi-arrow-bottombefore,
-
-.fi-arrow-circle-bottombefore,
-
-.fi-arrow-circle-leftbefore,
-
-.fi-arrow-circle-rightbefore,
-
-.fi-arrow-circle-topbefore,
-
-.fi-arrow-leftbefore,
-
-.fi-arrow-rightbefore,
-
-.fi-arrow-thick-bottombefore,
-
-.fi-arrow-thick-leftbefore,
-
-.fi-arrow-thick-rightbefore,
-
-.fi-arrow-thick-topbefore,
-
-.fi-arrow-topbefore,
-
-.fi-audio-spectrumbefore,
-
-.fi-audiobefore,
-
-.fi-badgebefore,
-
-.fi-banbefore,
-
-.fi-bar-chartbefore,
-
-.fi-basketbefore,
-
-.fi-battery-emptybefore,
-
-.fi-battery-fullbefore,
-
-.fi-beakerbefore,
-
-.fi-bellbefore,
-
-.fi-bluetoothbefore,
-
-.fi-boldbefore,
-
-.fi-boltbefore,
-
-.fi-bookbefore,
-
-.fi-bookmarkbefore,
-
-.fi-boxbefore,
-
-.fi-briefcasebefore,
-
-.fi-british-poundbefore,
-
-.fi-browserbefore,
-
-.fi-brushbefore,
-
-.fi-bugbefore,
-
-.fi-bullhornbefore,
-
-.fi-calculatorbefore,
-
-.fi-calendarbefore,
-
-.fi-camera-slrbefore,
-
-.fi-caret-bottombefore,
-
-.fi-caret-leftbefore,
-
-.fi-caret-rightbefore,
-
-.fi-caret-topbefore,
-
-.fi-cartbefore,
-
-.fi-chatbefore,
-
-.fi-checkbefore,
-
-.fi-chevron-bottombefore,
-
-.fi-chevron-leftbefore,
-
-.fi-chevron-rightbefore,
-
-.fi-chevron-topbefore,
-
-.fi-circle-checkbefore,
-
-.fi-circle-xbefore,
-
-.fi-clipboardbefore,
-
-.fi-clockbefore,
-
-.fi-cloud-downloadbefore,
-
-.fi-cloud-uploadbefore,
-
-.fi-cloudbefore,
-
-.fi-cloudybefore,
-
-.fi-codebefore,
-
-.fi-cogbefore,
-
-.fi-collapse-downbefore,
-
-.fi-collapse-leftbefore,
-
-.fi-collapse-rightbefore,
-
-.fi-collapse-upbefore,
-
-.fi-commandbefore,
-
-.fi-comment-squarebefore,
-
-.fi-compassbefore,
-
-.fi-contrastbefore,
-
-.fi-copywritingbefore,
-
-.fi-credit-cardbefore,
-
-.fi-cropbefore,
-
-.fi-dashboardbefore,
-
-.fi-data-transfer-downloadbefore,
-
-.fi-data-transfer-uploadbefore,
-
-.fi-deletebefore,
-
-.fi-dialbefore,
-
-.fi-documentbefore,
-
-.fi-dollarbefore,
-
-.fi-double-quote-sans-leftbefore,
-
-.fi-double-quote-sans-rightbefore,
-
-.fi-double-quote-serif-leftbefore,
-
-.fi-double-quote-serif-rightbefore,
-
-.fi-dropletbefore,
-
-.fi-ejectbefore,
-
-.fi-elevatorbefore,
-
-.fi-ellipsesbefore,
-
-.fi-envelope-closedbefore,
-
-.fi-envelope-openbefore,
-
-.fi-eurobefore,
-
-.fi-excerptbefore,
-
-.fi-expand-downbefore,
-
-.fi-expand-leftbefore,
-
-.fi-expand-rightbefore,
-
-.fi-expand-upbefore,
-
-.fi-external-linkbefore,
-
-.fi-eyebefore,
-
-.fi-eyedropperbefore,
-
-.fi-filebefore,
-
-.fi-firebefore,
-
-.fi-flagbefore,
-
-.fi-flashbefore,
-
-.fi-folderbefore,
-
-.fi-forkbefore,
-
-.fi-fullscreen-enterbefore,
-
-.fi-fullscreen-exitbefore,
-
-.fi-globebefore,
-
-.fi-graphbefore,
-
-.fi-grid-four-upbefore,
-
-.fi-grid-three-upbefore,
-
-.fi-grid-two-upbefore,
-
-.fi-hard-drivebefore,
-
-.fi-headerbefore,
-
-.fi-headphonesbefore,
-
-.fi-heartbefore,
-
-.fi-homebefore,
-
-.fi-imagebefore,
-
-.fi-inboxbefore,
-
-.fi-infinitybefore,
-
-.fi-infobefore,
-
-.fi-italicbefore,
-
-.fi-justify-centerbefore,
-
-.fi-justify-leftbefore,
-
-.fi-justify-rightbefore,
-
-.fi-keybefore,
-
-.fi-laptopbefore,
-
-.fi-layersbefore,
-
-.fi-lightbulbbefore,
-
-.fi-link-brokenbefore,
-
-.fi-link-intactbefore,
-
-.fi-list-richbefore,
-
-.fi-listbefore,
-
-.fi-locationbefore,
-
-.fi-lock-lockedbefore,
-
-.fi-lock-unlockedbefore,
-
-.fi-loop-circularbefore,
-
-.fi-loop-squarebefore,
-
-.fi-loopbefore,
-
-.fi-magnifying-glassbefore,
-
-.fi-map-markerbefore,
-
-.fi-mapbefore,
-
-.fi-media-pausebefore,
-
-.fi-media-playbefore,
-
-.fi-media-recordbefore,
-
-.fi-media-skip-backwardbefore,
-
-.fi-media-skip-forwardbefore,
-
-.fi-media-step-backwardbefore,
-
-.fi-media-step-forwardbefore,
-
-.fi-media-stopbefore,
-
-.fi-medical-crossbefore,
-
-.fi-menubefore,
-
-.fi-microphonebefore,
-
-.fi-minusbefore,
-
-.fi-monitorbefore,
-
-.fi-moonbefore,
-
-.fi-movebefore,
-
-.fi-musical-notebefore,
-
-.fi-paperclipbefore,
-
-.fi-pencilbefore,
-
-.fi-peoplebefore,
-
-.fi-personbefore,
-
-.fi-phonebefore,
-
-.fi-pie-chartbefore,
-
-.fi-pinbefore,
-
-.fi-play-circlebefore,
-
-.fi-plusbefore,
-
-.fi-power-standbybefore,
-
-.fi-printbefore,
-
-.fi-projectbefore,
-
-.fi-pulsebefore,
-
-.fi-puzzle-piecebefore,
-
-.fi-question-markbefore,
-
-.fi-rainbefore,
-
-.fi-randombefore,
-
-.fi-reloadbefore,
-
-.fi-resize-bothbefore,
-
-.fi-resize-heightbefore,
-
-.fi-resize-widthbefore,
-
-.fi-rss-altbefore,
-
-.fi-rssbefore,
-
-.fi-scriptbefore,
-
-.fi-share-boxedbefore,
-
-.fi-sharebefore,
-
-.fi-shieldbefore,
-
-.fi-signalbefore,
-
-.fi-signpostbefore,
-
-.fi-sort-ascendingbefore,
-
-.fi-sort-descendingbefore,
-
-.fi-spreadsheetbefore,
-
-.fi-starbefore,
-
-.fi-sunbefore,
-
-.fi-tabletbefore,
-
-.fi-tagbefore,
-
-.fi-tagsbefore,
-
-.fi-targetbefore,
-
-.fi-taskbefore,
-
-.fi-terminalbefore,
-
-.fi-textbefore,
-
-.fi-thumb-downbefore,
-
-.fi-thumb-upbefore,
-
-.fi-timerbefore,
-
-.fi-transferbefore,
-
-.fi-trashbefore,
-
-.fi-underlinebefore,
-
-.fi-vertical-align-bottombefore,
-
-.fi-vertical-align-centerbefore,
-
-.fi-vertical-align-topbefore,
-
-.fi-videobefore,
-
-.fi-volume-highbefore,
-
-.fi-volume-lowbefore,
-
-.fi-volume-offbefore,
-
-.fi-warningbefore,
-
-.fi-wifibefore,
-
-.fi-wrenchbefore,
-
-.fi-xbefore,
-
-.fi-yenbefore,
-
-.fi-zoom-inbefore,
-
-.fi-zoom-outbefore
-
-  font-family 'Icons'
-  font-style normal
-  font-weight normal
-  font-variant normal
-  text-transform none
-  line-height 1
-  -webkit-font-smoothing antialiased
-  -moz-osx-font-smoothing grayscale
-  display inline-block
-  text-decoration inherit
-
-
-[class*='fi-'].oi-align-center:before
-  text-align center
-
-
-[class*='fi-'].oi-align-left:before
-  text-align left
-
-
-[class*='fi-'].oi-align-right:before
-  text-align right
-
-
-
-[class*='fi-'].oi-flip-horizontal:before
-  -webkit-transform scale(-1, 1)
-  -ms-transform scale(-1, 1)
-  transform scale(-1, 1)
-
-
-[class*='fi-'].oi-flip-vertical:before
-  -webkit-transform scale(1, -1)
-  -ms-transform scale(-1, 1)
-  transform scale(1, -1)
-
-
-[class*='fi-'].oi-flip-horizontal-vertical:before
-  -webkit-transform scale(-1, -1)
-  -ms-transform scale(-1, 1)
-  transform scale(-1, -1)
-
-
-.fi-account-login:before
-  content'\e000'
-
-
-.fi-account-logout:before
-  content'\e001'
-
-
-.fi-action-redo:before
-  content'\e002'
-
-
-.fi-action-undo:before
-  content'\e003'
-
-
-.fi-align-center:before
-  content'\e004'
-
-
-.fi-align-left:before
-  content'\e005'
-
-
-.fi-align-right:before
-  content'\e006'
-
-
-.fi-aperture:before
-  content'\e007'
-
-
-.fi-arrow-bottom:before
-  content'\e008'
-
-
-.fi-arrow-circle-bottom:before
-  content'\e009'
-
-
-.fi-arrow-circle-left:before
-  content'\e00a'
-
-
-.fi-arrow-circle-right:before
-  content'\e00b'
-
-
-.fi-arrow-circle-top:before
-  content'\e00c'
-
-
-.fi-arrow-left:before
-  content'\e00d'
-
-
-.fi-arrow-right:before
-  content'\e00e'
-
-
-.fi-arrow-thick-bottom:before
-  content'\e00f'
-
-
-.fi-arrow-thick-left:before
-  content'\e010'
-
-
-.fi-arrow-thick-right:before
-  content'\e011'
-
-
-.fi-arrow-thick-top:before
-  content'\e012'
-
-
-.fi-arrow-top:before
-  content'\e013'
-
-
-.fi-audio-spectrum:before
-  content'\e014'
-
-
-.fi-audio:before
-  content'\e015'
-
-
-.fi-badge:before
-  content'\e016'
-
-
-.fi-ban:before
-  content'\e017'
-
-
-.fi-bar-chart:before
-  content'\e018'
-
-
-.fi-basket:before
-  content'\e019'
-
-
-.fi-battery-empty:before
-  content'\e01a'
-
-
-.fi-battery-full:before
-  content'\e01b'
-
-
-.fi-beaker:before
-  content'\e01c'
-
-
-.fi-bell:before
-  content'\e01d'
-
-
-.fi-bluetooth:before
-  content'\e01e'
-
-
-.fi-bold:before
-  content'\e01f'
-
-
-.fi-bolt:before
-  content'\e020'
-
-
-.fi-book:before
-  content'\e021'
-
-
-.fi-bookmark:before
-  content'\e022'
-
-
-.fi-box:before
-  content'\e023'
-
-
-.fi-briefcase:before
-  content'\e024'
-
-
-.fi-british-pound:before
-  content'\e025'
-
-
-.fi-browser:before
-  content'\e026'
-
-
-.fi-brush:before
-  content'\e027'
-
-
-.fi-bug:before
-  content'\e028'
-
-
-.fi-bullhorn:before
-  content'\e029'
-
-
-.fi-calculator:before
-  content'\e02a'
-
-
-.fi-calendar:before
-  content'\e02b'
-
-
-.fi-camera-slr:before
-  content'\e02c'
-
-
-.fi-caret-bottom:before
-  content'\e02d'
-
-
-.fi-caret-left:before
-  content'\e02e'
-
-
-.fi-caret-right:before
-  content'\e02f'
-
-
-.fi-caret-top:before
-  content'\e030'
-
-
-.fi-cart:before
-  content'\e031'
-
-
-.fi-chat:before
-  content'\e032'
-
-
-.fi-check:before
-  content'\e033'
-
-
-.fi-chevron-bottom:before
-  content'\e034'
-
-
-.fi-chevron-left:before
-  content'\e035'
-
-
-.fi-chevron-right:before
-  content'\e036'
-
-
-.fi-chevron-top:before
-  content'\e037'
-
-
-.fi-circle-check:before
-  content'\e038'
-
-
-.fi-circle-x:before
-  content'\e039'
-
-
-.fi-clipboard:before
-  content'\e03a'
-
-
-.fi-clock:before
-  content'\e03b'
-
-
-.fi-cloud-download:before
-  content'\e03c'
-
-
-.fi-cloud-upload:before
-  content'\e03d'
-
-
-.fi-cloud:before
-  content'\e03e'
-
-
-.fi-cloudy:before
-  content'\e03f'
-
-
-.fi-code:before
-  content'\e040'
-
-
-.fi-cog:before
-  content'\e041'
-
-
-.fi-collapse-down:before
-  content'\e042'
-
-
-.fi-collapse-left:before
-  content'\e043'
-
-
-.fi-collapse-right:before
-  content'\e044'
-
-
-.fi-collapse-up:before
-  content'\e045'
-
-
-.fi-command:before
-  content'\e046'
-
-
-.fi-comment-square:before
-  content'\e047'
-
-
-.fi-compass:before
-  content'\e048'
-
-
-.fi-contrast:before
-  content'\e049'
-
-
-.fi-copywriting:before
-  content'\e04a'
-
-
-.fi-credit-card:before
-  content'\e04b'
-
-
-.fi-crop:before
-  content'\e04c'
-
-
-.fi-dashboard:before
-  content'\e04d'
-
-
-.fi-data-transfer-download:before
-  content'\e04e'
-
-
-.fi-data-transfer-upload:before
-  content'\e04f'
-
-
-.fi-delete:before
-  content'\e050'
-
-
-.fi-dial:before
-  content'\e051'
-
-
-.fi-document:before
-  content'\e052'
-
-
-.fi-dollar:before
-  content'\e053'
-
-
-.fi-double-quote-sans-left:before
-  content'\e054'
-
-
-.fi-double-quote-sans-right:before
-  content'\e055'
-
-
-.fi-double-quote-serif-left:before
-  content'\e056'
-
-
-.fi-double-quote-serif-right:before
-  content'\e057'
-
-
-.fi-droplet:before
-  content'\e058'
-
-
-.fi-eject:before
-  content'\e059'
-
-
-.fi-elevator:before
-  content'\e05a'
-
-
-.fi-ellipses:before
-  content'\e05b'
-
-
-.fi-envelope-closed:before
-  content'\e05c'
-
-
-.fi-envelope-open:before
-  content'\e05d'
-
-
-.fi-euro:before
-  content'\e05e'
-
-
-.fi-excerpt:before
-  content'\e05f'
-
-
-.fi-expand-down:before
-  content'\e060'
-
-
-.fi-expand-left:before
-  content'\e061'
-
-
-.fi-expand-right:before
-  content'\e062'
-
-
-.fi-expand-up:before
-  content'\e063'
-
-
-.fi-external-link:before
-  content'\e064'
-
-
-.fi-eye:before
-  content'\e065'
-
-
-.fi-eyedropper:before
-  content'\e066'
-
-
-.fi-file:before
-  content'\e067'
-
-
-.fi-fire:before
-  content'\e068'
-
-
-.fi-flag:before
-  content'\e069'
-
-
-.fi-flash:before
-  content'\e06a'
-
-
-.fi-folder:before
-  content'\e06b'
-
-
-.fi-fork:before
-  content'\e06c'
-
-
-.fi-fullscreen-enter:before
-  content'\e06d'
-
-
-.fi-fullscreen-exit:before
-  content'\e06e'
-
-
-.fi-globe:before
-  content'\e06f'
-
-
-.fi-graph:before
-  content'\e070'
-
-
-.fi-grid-four-up:before
-  content'\e071'
-
-
-.fi-grid-three-up:before
-  content'\e072'
-
-
-.fi-grid-two-up:before
-  content'\e073'
-
-
-.fi-hard-drive:before
-  content'\e074'
-
-
-.fi-header:before
-  content'\e075'
-
-
-.fi-headphones:before
-  content'\e076'
-
-
-.fi-heart:before
-  content'\e077'
-
-
-.fi-home:before
-  content'\e078'
-
-
-.fi-image:before
-  content'\e079'
-
-
-.fi-inbox:before
-  content'\e07a'
-
-
-.fi-infinity:before
-  content'\e07b'
-
-
-.fi-info:before
-  content'\e07c'
-
-
-.fi-italic:before
-  content'\e07d'
-
-
-.fi-justify-center:before
-  content'\e07e'
-
-
-.fi-justify-left:before
-  content'\e07f'
-
-
-.fi-justify-right:before
-  content'\e080'
-
-
-.fi-key:before
-  content'\e081'
-
-
-.fi-laptop:before
-  content'\e082'
-
-
-.fi-layers:before
-  content'\e083'
-
-
-.fi-lightbulb:before
-  content'\e084'
-
-
-.fi-link-broken:before
-  content'\e085'
-
-
-.fi-link-intact:before
-  content'\e086'
-
-
-.fi-list-rich:before
-  content'\e087'
-
-
-.fi-list:before
-  content'\e088'
-
-
-.fi-location:before
-  content'\e089'
-
-
-.fi-lock-locked:before
-  content'\e08a'
-
-
-.fi-lock-unlocked:before
-  content'\e08b'
-
-
-.fi-loop-circular:before
-  content'\e08c'
-
-
-.fi-loop-square:before
-  content'\e08d'
-
-
-.fi-loop:before
-  content'\e08e'
-
-
-.fi-magnifying-glass:before
-  content'\e08f'
-
-
-.fi-map-marker:before
-  content'\e090'
-
-
-.fi-map:before
-  content'\e091'
-
-
-.fi-media-pause:before
-  content'\e092'
-
-
-.fi-media-play:before
-  content'\e093'
-
-
-.fi-media-record:before
-  content'\e094'
-
-
-.fi-media-skip-backward:before
-  content'\e095'
-
-
-.fi-media-skip-forward:before
-  content'\e096'
-
-
-.fi-media-step-backward:before
-  content'\e097'
-
-
-.fi-media-step-forward:before
-  content'\e098'
-
-
-.fi-media-stop:before
-  content'\e099'
-
-
-.fi-medical-cross:before
-  content'\e09a'
-
-
-.fi-menu:before
-  content'\e09b'
-
-
-.fi-microphone:before
-  content'\e09c'
-
-
-.fi-minus:before
-  content'\e09d'
-
-
-.fi-monitor:before
-  content'\e09e'
-
-
-.fi-moon:before
-  content'\e09f'
-
-
-.fi-move:before
-  content'\e0a0'
-
-
-.fi-musical-note:before
-  content'\e0a1'
-
-
-.fi-paperclip:before
-  content'\e0a2'
-
-
-.fi-pencil:before
-  content'\e0a3'
-
-
-.fi-people:before
-  content'\e0a4'
-
-
-.fi-person:before
-  content'\e0a5'
-
-
-.fi-phone:before
-  content'\e0a6'
-
-
-.fi-pie-chart:before
-  content'\e0a7'
-
-
-.fi-pin:before
-  content'\e0a8'
-
-
-.fi-play-circle:before
-  content'\e0a9'
-
-
-.fi-plus:before
-  content'\e0aa'
-
-
-.fi-power-standby:before
-  content'\e0ab'
-
-
-.fi-print:before
-  content'\e0ac'
-
-
-.fi-project:before
-  content'\e0ad'
-
-
-.fi-pulse:before
-  content'\e0ae'
-
-
-.fi-puzzle-piece:before
-  content'\e0af'
-
-
-.fi-question-mark:before
-  content'\e0b0'
-
-
-.fi-rain:before
-  content'\e0b1'
-
-
-.fi-random:before
-  content'\e0b2'
-
-
-.fi-reload:before
-  content'\e0b3'
-
-
-.fi-resize-both:before
-  content'\e0b4'
-
-
-.fi-resize-height:before
-  content'\e0b5'
-
-
-.fi-resize-width:before
-  content'\e0b6'
-
-
-.fi-rss-alt:before
-  content'\e0b7'
-
-
-.fi-rss:before
-  content'\e0b8'
-
-
-.fi-script:before
-  content'\e0b9'
-
-
-.fi-share-boxed:before
-  content'\e0ba'
-
-
-.fi-share:before
-  content'\e0bb'
-
-
-.fi-shield:before
-  content'\e0bc'
-
-
-.fi-signal:before
-  content'\e0bd'
-
-
-.fi-signpost:before
-  content'\e0be'
-
-
-.fi-sort-ascending:before
-  content'\e0bf'
-
-
-.fi-sort-descending:before
-  content'\e0c0'
-
-
-.fi-spreadsheet:before
-  content'\e0c1'
-
-
-.fi-star:before
-  content'\e0c2'
-
-
-.fi-sun:before
-  content'\e0c3'
-
-
-.fi-tablet:before
-  content'\e0c4'
-
-
-.fi-tag:before
-  content'\e0c5'
-
-
-.fi-tags:before
-  content'\e0c6'
-
-
-.fi-target:before
-  content'\e0c7'
-
-
-.fi-task:before
-  content'\e0c8'
-
-
-.fi-terminal:before
-  content'\e0c9'
-
-
-.fi-text:before
-  content'\e0ca'
-
-
-.fi-thumb-down:before
-  content'\e0cb'
-
-
-.fi-thumb-up:before
-  content'\e0cc'
-
-
-.fi-timer:before
-  content'\e0cd'
-
-
-.fi-transfer:before
-  content'\e0ce'
-
-
-.fi-trash:before
-  content'\e0cf'
-
-
-.fi-underline:before
-  content'\e0d0'
-
-
-.fi-vertical-align-bottom:before
-  content'\e0d1'
-
-
-.fi-vertical-align-center:before
-  content'\e0d2'
-
-
-.fi-vertical-align-top:before
-  content'\e0d3'
-
-
-.fi-video:before
-  content'\e0d4'
-
-
-.fi-volume-high:before
-  content'\e0d5'
-
-
-.fi-volume-low:before
-  content'\e0d6'
-
-
-.fi-volume-off:before
-  content'\e0d7'
-
-
-.fi-warning:before
-  content'\e0d8'
-
-
-.fi-wifi:before
-  content'\e0d9'
-
-
-.fi-wrench:before
-  content'\e0da'
-
-
-.fi-x:before
-  content'\e0db'
-
-
-.fi-yen:before
-  content'\e0dc'
-
-
-.fi-zoom-in:before
-  content'\e0dd'
-
-
-.fi-zoom-out:before
-  content'\e0de'
-
-
diff --git a/assets/static/fonts/open-iconic/font/css/open-iconic.css b/assets/static/fonts/open-iconic/font/css/open-iconic.css
deleted file mode 100644
index 301a138..0000000
--- a/assets/static/fonts/open-iconic/font/css/open-iconic.css
+++ /dev/null
@@ -1,511 +0,0 @@
-
- at font-face {
-  font-family: 'Icons';
-  src: url('../fonts/open-iconic.eot');
-  src: url('../fonts/open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('../fonts/open-iconic.woff') format('woff'), url('../fonts/open-iconic.ttf') format('truetype'), url('../fonts/open-iconic.otf') format('opentype'), url('../fonts/open-iconic.svg#iconic-sm') format('svg');
-  font-weight: normal;
-  font-style: normal;
-}
-
-.oi[data-glyph].oi-text-replace {
-  font-size: 0;
-  line-height: 0;
-}
-
-.oi[data-glyph].oi-text-replace:before {
-  width: 1em;
-  text-align: center;
-}
-
-.oi[data-glyph]:before {
-  font-family: 'Icons';
-  display: inline-block;
-  speak: none;
-  line-height: 1;
-  vertical-align: baseline;
-  font-weight: normal;
-  font-style: normal;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-}
-
-.oi[data-glyph]:empty:before {
-  width: 1em;
-  text-align: center;
-  box-sizing: content-box;
-}
-
-.oi[data-glyph].oi-align-left:before {
-  text-align: left;
-}
-
-.oi[data-glyph].oi-align-right:before {
-  text-align: right;
-}
-
-.oi[data-glyph].oi-align-center:before {
-  text-align: center;
-}
-
-.oi[data-glyph].oi-flip-horizontal:before {
-  -webkit-transform: scale(-1, 1);
-  -ms-transform: scale(-1, 1);
-  transform: scale(-1, 1);
-}
-.oi[data-glyph].oi-flip-vertical:before {
-  -webkit-transform: scale(1, -1);
-  -ms-transform: scale(-1, 1);
-  transform: scale(1, -1);
-}
-.oi[data-glyph].oi-flip-horizontal-vertical:before {
-  -webkit-transform: scale(-1, -1);
-  -ms-transform: scale(-1, 1);
-  transform: scale(-1, -1);
-}
-
-
-.oi[data-glyph=account-login]:before { content:'\e000'; }
-
-.oi[data-glyph=account-logout]:before { content:'\e001'; }
-
-.oi[data-glyph=action-redo]:before { content:'\e002'; }
-
-.oi[data-glyph=action-undo]:before { content:'\e003'; }
-
-.oi[data-glyph=align-center]:before { content:'\e004'; }
-
-.oi[data-glyph=align-left]:before { content:'\e005'; }
-
-.oi[data-glyph=align-right]:before { content:'\e006'; }
-
-.oi[data-glyph=aperture]:before { content:'\e007'; }
-
-.oi[data-glyph=arrow-bottom]:before { content:'\e008'; }
-
-.oi[data-glyph=arrow-circle-bottom]:before { content:'\e009'; }
-
-.oi[data-glyph=arrow-circle-left]:before { content:'\e00a'; }
-
-.oi[data-glyph=arrow-circle-right]:before { content:'\e00b'; }
-
-.oi[data-glyph=arrow-circle-top]:before { content:'\e00c'; }
-
-.oi[data-glyph=arrow-left]:before { content:'\e00d'; }
-
-.oi[data-glyph=arrow-right]:before { content:'\e00e'; }
-
-.oi[data-glyph=arrow-thick-bottom]:before { content:'\e00f'; }
-
-.oi[data-glyph=arrow-thick-left]:before { content:'\e010'; }
-
-.oi[data-glyph=arrow-thick-right]:before { content:'\e011'; }
-
-.oi[data-glyph=arrow-thick-top]:before { content:'\e012'; }
-
-.oi[data-glyph=arrow-top]:before { content:'\e013'; }
-
-.oi[data-glyph=audio-spectrum]:before { content:'\e014'; }
-
-.oi[data-glyph=audio]:before { content:'\e015'; }
-
-.oi[data-glyph=badge]:before { content:'\e016'; }
-
-.oi[data-glyph=ban]:before { content:'\e017'; }
-
-.oi[data-glyph=bar-chart]:before { content:'\e018'; }
-
-.oi[data-glyph=basket]:before { content:'\e019'; }
-
-.oi[data-glyph=battery-empty]:before { content:'\e01a'; }
-
-.oi[data-glyph=battery-full]:before { content:'\e01b'; }
-
-.oi[data-glyph=beaker]:before { content:'\e01c'; }
-
-.oi[data-glyph=bell]:before { content:'\e01d'; }
-
-.oi[data-glyph=bluetooth]:before { content:'\e01e'; }
-
-.oi[data-glyph=bold]:before { content:'\e01f'; }
-
-.oi[data-glyph=bolt]:before { content:'\e020'; }
-
-.oi[data-glyph=book]:before { content:'\e021'; }
-
-.oi[data-glyph=bookmark]:before { content:'\e022'; }
-
-.oi[data-glyph=box]:before { content:'\e023'; }
-
-.oi[data-glyph=briefcase]:before { content:'\e024'; }
-
-.oi[data-glyph=british-pound]:before { content:'\e025'; }
-
-.oi[data-glyph=browser]:before { content:'\e026'; }
-
-.oi[data-glyph=brush]:before { content:'\e027'; }
-
-.oi[data-glyph=bug]:before { content:'\e028'; }
-
-.oi[data-glyph=bullhorn]:before { content:'\e029'; }
-
-.oi[data-glyph=calculator]:before { content:'\e02a'; }
-
-.oi[data-glyph=calendar]:before { content:'\e02b'; }
-
-.oi[data-glyph=camera-slr]:before { content:'\e02c'; }
-
-.oi[data-glyph=caret-bottom]:before { content:'\e02d'; }
-
-.oi[data-glyph=caret-left]:before { content:'\e02e'; }
-
-.oi[data-glyph=caret-right]:before { content:'\e02f'; }
-
-.oi[data-glyph=caret-top]:before { content:'\e030'; }
-
-.oi[data-glyph=cart]:before { content:'\e031'; }
-
-.oi[data-glyph=chat]:before { content:'\e032'; }
-
-.oi[data-glyph=check]:before { content:'\e033'; }
-
-.oi[data-glyph=chevron-bottom]:before { content:'\e034'; }
-
-.oi[data-glyph=chevron-left]:before { content:'\e035'; }
-
-.oi[data-glyph=chevron-right]:before { content:'\e036'; }
-
-.oi[data-glyph=chevron-top]:before { content:'\e037'; }
-
-.oi[data-glyph=circle-check]:before { content:'\e038'; }
-
-.oi[data-glyph=circle-x]:before { content:'\e039'; }
-
-.oi[data-glyph=clipboard]:before { content:'\e03a'; }
-
-.oi[data-glyph=clock]:before { content:'\e03b'; }
-
-.oi[data-glyph=cloud-download]:before { content:'\e03c'; }
-
-.oi[data-glyph=cloud-upload]:before { content:'\e03d'; }
-
-.oi[data-glyph=cloud]:before { content:'\e03e'; }
-
-.oi[data-glyph=cloudy]:before { content:'\e03f'; }
-
-.oi[data-glyph=code]:before { content:'\e040'; }
-
-.oi[data-glyph=cog]:before { content:'\e041'; }
-
-.oi[data-glyph=collapse-down]:before { content:'\e042'; }
-
-.oi[data-glyph=collapse-left]:before { content:'\e043'; }
-
-.oi[data-glyph=collapse-right]:before { content:'\e044'; }
-
-.oi[data-glyph=collapse-up]:before { content:'\e045'; }
-
-.oi[data-glyph=command]:before { content:'\e046'; }
-
-.oi[data-glyph=comment-square]:before { content:'\e047'; }
-
-.oi[data-glyph=compass]:before { content:'\e048'; }
-
-.oi[data-glyph=contrast]:before { content:'\e049'; }
-
-.oi[data-glyph=copywriting]:before { content:'\e04a'; }
-
-.oi[data-glyph=credit-card]:before { content:'\e04b'; }
-
-.oi[data-glyph=crop]:before { content:'\e04c'; }
-
-.oi[data-glyph=dashboard]:before { content:'\e04d'; }
-
-.oi[data-glyph=data-transfer-download]:before { content:'\e04e'; }
-
-.oi[data-glyph=data-transfer-upload]:before { content:'\e04f'; }
-
-.oi[data-glyph=delete]:before { content:'\e050'; }
-
-.oi[data-glyph=dial]:before { content:'\e051'; }
-
-.oi[data-glyph=document]:before { content:'\e052'; }
-
-.oi[data-glyph=dollar]:before { content:'\e053'; }
-
-.oi[data-glyph=double-quote-sans-left]:before { content:'\e054'; }
-
-.oi[data-glyph=double-quote-sans-right]:before { content:'\e055'; }
-
-.oi[data-glyph=double-quote-serif-left]:before { content:'\e056'; }
-
-.oi[data-glyph=double-quote-serif-right]:before { content:'\e057'; }
-
-.oi[data-glyph=droplet]:before { content:'\e058'; }
-
-.oi[data-glyph=eject]:before { content:'\e059'; }
-
-.oi[data-glyph=elevator]:before { content:'\e05a'; }
-
-.oi[data-glyph=ellipses]:before { content:'\e05b'; }
-
-.oi[data-glyph=envelope-closed]:before { content:'\e05c'; }
-
-.oi[data-glyph=envelope-open]:before { content:'\e05d'; }
-
-.oi[data-glyph=euro]:before { content:'\e05e'; }
-
-.oi[data-glyph=excerpt]:before { content:'\e05f'; }
-
-.oi[data-glyph=expand-down]:before { content:'\e060'; }
-
-.oi[data-glyph=expand-left]:before { content:'\e061'; }
-
-.oi[data-glyph=expand-right]:before { content:'\e062'; }
-
-.oi[data-glyph=expand-up]:before { content:'\e063'; }
-
-.oi[data-glyph=external-link]:before { content:'\e064'; }
-
-.oi[data-glyph=eye]:before { content:'\e065'; }
-
-.oi[data-glyph=eyedropper]:before { content:'\e066'; }
-
-.oi[data-glyph=file]:before { content:'\e067'; }
-
-.oi[data-glyph=fire]:before { content:'\e068'; }
-
-.oi[data-glyph=flag]:before { content:'\e069'; }
-
-.oi[data-glyph=flash]:before { content:'\e06a'; }
-
-.oi[data-glyph=folder]:before { content:'\e06b'; }
-
-.oi[data-glyph=fork]:before { content:'\e06c'; }
-
-.oi[data-glyph=fullscreen-enter]:before { content:'\e06d'; }
-
-.oi[data-glyph=fullscreen-exit]:before { content:'\e06e'; }
-
-.oi[data-glyph=globe]:before { content:'\e06f'; }
-
-.oi[data-glyph=graph]:before { content:'\e070'; }
-
-.oi[data-glyph=grid-four-up]:before { content:'\e071'; }
-
-.oi[data-glyph=grid-three-up]:before { content:'\e072'; }
-
-.oi[data-glyph=grid-two-up]:before { content:'\e073'; }
-
-.oi[data-glyph=hard-drive]:before { content:'\e074'; }
-
-.oi[data-glyph=header]:before { content:'\e075'; }
-
-.oi[data-glyph=headphones]:before { content:'\e076'; }
-
-.oi[data-glyph=heart]:before { content:'\e077'; }
-
-.oi[data-glyph=home]:before { content:'\e078'; }
-
-.oi[data-glyph=image]:before { content:'\e079'; }
-
-.oi[data-glyph=inbox]:before { content:'\e07a'; }
-
-.oi[data-glyph=infinity]:before { content:'\e07b'; }
-
-.oi[data-glyph=info]:before { content:'\e07c'; }
-
-.oi[data-glyph=italic]:before { content:'\e07d'; }
-
-.oi[data-glyph=justify-center]:before { content:'\e07e'; }
-
-.oi[data-glyph=justify-left]:before { content:'\e07f'; }
-
-.oi[data-glyph=justify-right]:before { content:'\e080'; }
-
-.oi[data-glyph=key]:before { content:'\e081'; }
-
-.oi[data-glyph=laptop]:before { content:'\e082'; }
-
-.oi[data-glyph=layers]:before { content:'\e083'; }
-
-.oi[data-glyph=lightbulb]:before { content:'\e084'; }
-
-.oi[data-glyph=link-broken]:before { content:'\e085'; }
-
-.oi[data-glyph=link-intact]:before { content:'\e086'; }
-
-.oi[data-glyph=list-rich]:before { content:'\e087'; }
-
-.oi[data-glyph=list]:before { content:'\e088'; }
-
-.oi[data-glyph=location]:before { content:'\e089'; }
-
-.oi[data-glyph=lock-locked]:before { content:'\e08a'; }
-
-.oi[data-glyph=lock-unlocked]:before { content:'\e08b'; }
-
-.oi[data-glyph=loop-circular]:before { content:'\e08c'; }
-
-.oi[data-glyph=loop-square]:before { content:'\e08d'; }
-
-.oi[data-glyph=loop]:before { content:'\e08e'; }
-
-.oi[data-glyph=magnifying-glass]:before { content:'\e08f'; }
-
-.oi[data-glyph=map-marker]:before { content:'\e090'; }
-
-.oi[data-glyph=map]:before { content:'\e091'; }
-
-.oi[data-glyph=media-pause]:before { content:'\e092'; }
-
-.oi[data-glyph=media-play]:before { content:'\e093'; }
-
-.oi[data-glyph=media-record]:before { content:'\e094'; }
-
-.oi[data-glyph=media-skip-backward]:before { content:'\e095'; }
-
-.oi[data-glyph=media-skip-forward]:before { content:'\e096'; }
-
-.oi[data-glyph=media-step-backward]:before { content:'\e097'; }
-
-.oi[data-glyph=media-step-forward]:before { content:'\e098'; }
-
-.oi[data-glyph=media-stop]:before { content:'\e099'; }
-
-.oi[data-glyph=medical-cross]:before { content:'\e09a'; }
-
-.oi[data-glyph=menu]:before { content:'\e09b'; }
-
-.oi[data-glyph=microphone]:before { content:'\e09c'; }
-
-.oi[data-glyph=minus]:before { content:'\e09d'; }
-
-.oi[data-glyph=monitor]:before { content:'\e09e'; }
-
-.oi[data-glyph=moon]:before { content:'\e09f'; }
-
-.oi[data-glyph=move]:before { content:'\e0a0'; }
-
-.oi[data-glyph=musical-note]:before { content:'\e0a1'; }
-
-.oi[data-glyph=paperclip]:before { content:'\e0a2'; }
-
-.oi[data-glyph=pencil]:before { content:'\e0a3'; }
-
-.oi[data-glyph=people]:before { content:'\e0a4'; }
-
-.oi[data-glyph=person]:before { content:'\e0a5'; }
-
-.oi[data-glyph=phone]:before { content:'\e0a6'; }
-
-.oi[data-glyph=pie-chart]:before { content:'\e0a7'; }
-
-.oi[data-glyph=pin]:before { content:'\e0a8'; }
-
-.oi[data-glyph=play-circle]:before { content:'\e0a9'; }
-
-.oi[data-glyph=plus]:before { content:'\e0aa'; }
-
-.oi[data-glyph=power-standby]:before { content:'\e0ab'; }
-
-.oi[data-glyph=print]:before { content:'\e0ac'; }
-
-.oi[data-glyph=project]:before { content:'\e0ad'; }
-
-.oi[data-glyph=pulse]:before { content:'\e0ae'; }
-
-.oi[data-glyph=puzzle-piece]:before { content:'\e0af'; }
-
-.oi[data-glyph=question-mark]:before { content:'\e0b0'; }
-
-.oi[data-glyph=rain]:before { content:'\e0b1'; }
-
-.oi[data-glyph=random]:before { content:'\e0b2'; }
-
-.oi[data-glyph=reload]:before { content:'\e0b3'; }
-
-.oi[data-glyph=resize-both]:before { content:'\e0b4'; }
-
-.oi[data-glyph=resize-height]:before { content:'\e0b5'; }
-
-.oi[data-glyph=resize-width]:before { content:'\e0b6'; }
-
-.oi[data-glyph=rss-alt]:before { content:'\e0b7'; }
-
-.oi[data-glyph=rss]:before { content:'\e0b8'; }
-
-.oi[data-glyph=script]:before { content:'\e0b9'; }
-
-.oi[data-glyph=share-boxed]:before { content:'\e0ba'; }
-
-.oi[data-glyph=share]:before { content:'\e0bb'; }
-
-.oi[data-glyph=shield]:before { content:'\e0bc'; }
-
-.oi[data-glyph=signal]:before { content:'\e0bd'; }
-
-.oi[data-glyph=signpost]:before { content:'\e0be'; }
-
-.oi[data-glyph=sort-ascending]:before { content:'\e0bf'; }
-
-.oi[data-glyph=sort-descending]:before { content:'\e0c0'; }
-
-.oi[data-glyph=spreadsheet]:before { content:'\e0c1'; }
-
-.oi[data-glyph=star]:before { content:'\e0c2'; }
-
-.oi[data-glyph=sun]:before { content:'\e0c3'; }
-
-.oi[data-glyph=tablet]:before { content:'\e0c4'; }
-
-.oi[data-glyph=tag]:before { content:'\e0c5'; }
-
-.oi[data-glyph=tags]:before { content:'\e0c6'; }
-
-.oi[data-glyph=target]:before { content:'\e0c7'; }
-
-.oi[data-glyph=task]:before { content:'\e0c8'; }
-
-.oi[data-glyph=terminal]:before { content:'\e0c9'; }
-
-.oi[data-glyph=text]:before { content:'\e0ca'; }
-
-.oi[data-glyph=thumb-down]:before { content:'\e0cb'; }
-
-.oi[data-glyph=thumb-up]:before { content:'\e0cc'; }
-
-.oi[data-glyph=timer]:before { content:'\e0cd'; }
-
-.oi[data-glyph=transfer]:before { content:'\e0ce'; }
-
-.oi[data-glyph=trash]:before { content:'\e0cf'; }
-
-.oi[data-glyph=underline]:before { content:'\e0d0'; }
-
-.oi[data-glyph=vertical-align-bottom]:before { content:'\e0d1'; }
-
-.oi[data-glyph=vertical-align-center]:before { content:'\e0d2'; }
-
-.oi[data-glyph=vertical-align-top]:before { content:'\e0d3'; }
-
-.oi[data-glyph=video]:before { content:'\e0d4'; }
-
-.oi[data-glyph=volume-high]:before { content:'\e0d5'; }
-
-.oi[data-glyph=volume-low]:before { content:'\e0d6'; }
-
-.oi[data-glyph=volume-off]:before { content:'\e0d7'; }
-
-.oi[data-glyph=warning]:before { content:'\e0d8'; }
-
-.oi[data-glyph=wifi]:before { content:'\e0d9'; }
-
-.oi[data-glyph=wrench]:before { content:'\e0da'; }
-
-.oi[data-glyph=x]:before { content:'\e0db'; }
-
-.oi[data-glyph=yen]:before { content:'\e0dc'; }
-
-.oi[data-glyph=zoom-in]:before { content:'\e0dd'; }
-
-.oi[data-glyph=zoom-out]:before { content:'\e0de'; }
diff --git a/assets/static/fonts/open-iconic/font/css/open-iconic.less b/assets/static/fonts/open-iconic/font/css/open-iconic.less
deleted file mode 100644
index d505e9f..0000000
--- a/assets/static/fonts/open-iconic/font/css/open-iconic.less
+++ /dev/null
@@ -1,962 +0,0 @@
- at iconic-font-path: '../fonts/';
-
- at font-face {
-  font-family: 'Icons';
-  src: url('@{iconic-font-path}open-iconic.eot');
-  src: url('@{iconic-font-path}open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('@{iconic-font-path}open-iconic.woff') format('woff'), url('@{iconic-font-path}open-iconic.ttf') format('truetype'), url('@{iconic-font-path}open-iconic.otf') format('opentype'), url('@{iconic-font-path}open-iconic.svg#iconic-sm') format('svg');
-  font-weight: normal;
-  font-style: normal;
-}
-
-.oi[data-glyph].oi-text-replace {
-  font-size: 0;
-  line-height: 0;
-}
-
-.oi[data-glyph].oi-text-replace:before {
-  width: 1em;
-  text-align: center;
-}
-
-.oi[data-glyph] {
-  &:before {
-    position: relative;
-    top: 1px;
-    font-family: 'Icons';
-    display: inline-block;
-    speak: none;
-    line-height: 1;
-    vertical-align: baseline;
-    font-weight: normal;
-    font-style: normal;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-  }
-
-  &:empty:before {
-    width: 1em;
-    text-align: center;
-    box-sizing: content-box;
-  }
-
-  &.oi-align-left:before {
-    text-align: left;
-  }
-  &.oi-align-right:before {
-    text-align: right;
-  }
-  &.oi-align-center:before {
-    text-align: center;
-  }
-
-  &.oi-flip-horizontal:before {
-    -webkit-transform: scale(-1, 1);
-    -ms-transform: scale(-1, 1);
-    transform: scale(-1, 1);
-  }
-
-  &.oi-flip-vertical:before {
-    -webkit-transform: scale(1, -1);
-    -ms-transform: scale(-1, 1);
-    transform: scale(1, -1);
-  }
-
-  &.oi-flip-horizontal-vertical:before {
-    -webkit-transform: scale(-1, -1);
-    -ms-transform: scale(-1, 1);
-    transform: scale(-1, -1);
-  }
-}
-
-
-.oi[data-glyph=account-login]:before {
-  content: '\e000';
-}
-
-.oi[data-glyph=account-logout]:before {
-  content: '\e001';
-}
-
-.oi[data-glyph=action-redo]:before {
-  content: '\e002';
-}
-
-.oi[data-glyph=action-undo]:before {
-  content: '\e003';
-}
-
-.oi[data-glyph=align-center]:before {
-  content: '\e004';
-}
-
-.oi[data-glyph=align-left]:before {
-  content: '\e005';
-}
-
-.oi[data-glyph=align-right]:before {
-  content: '\e006';
-}
-
-.oi[data-glyph=aperture]:before {
-  content: '\e007';
-}
-
-.oi[data-glyph=arrow-bottom]:before {
-  content: '\e008';
-}
-
-.oi[data-glyph=arrow-circle-bottom]:before {
-  content: '\e009';
-}
-
-.oi[data-glyph=arrow-circle-left]:before {
-  content: '\e00a';
-}
-
-.oi[data-glyph=arrow-circle-right]:before {
-  content: '\e00b';
-}
-
-.oi[data-glyph=arrow-circle-top]:before {
-  content: '\e00c';
-}
-
-.oi[data-glyph=arrow-left]:before {
-  content: '\e00d';
-}
-
-.oi[data-glyph=arrow-right]:before {
-  content: '\e00e';
-}
-
-.oi[data-glyph=arrow-thick-bottom]:before {
-  content: '\e00f';
-}
-
-.oi[data-glyph=arrow-thick-left]:before {
-  content: '\e010';
-}
-
-.oi[data-glyph=arrow-thick-right]:before {
-  content: '\e011';
-}
-
-.oi[data-glyph=arrow-thick-top]:before {
-  content: '\e012';
-}
-
-.oi[data-glyph=arrow-top]:before {
-  content: '\e013';
-}
-
-.oi[data-glyph=audio-spectrum]:before {
-  content: '\e014';
-}
-
-.oi[data-glyph=audio]:before {
-  content: '\e015';
-}
-
-.oi[data-glyph=badge]:before {
-  content: '\e016';
-}
-
-.oi[data-glyph=ban]:before {
-  content: '\e017';
-}
-
-.oi[data-glyph=bar-chart]:before {
-  content: '\e018';
-}
-
-.oi[data-glyph=basket]:before {
-  content: '\e019';
-}
-
-.oi[data-glyph=battery-empty]:before {
-  content: '\e01a';
-}
-
-.oi[data-glyph=battery-full]:before {
-  content: '\e01b';
-}
-
-.oi[data-glyph=beaker]:before {
-  content: '\e01c';
-}
-
-.oi[data-glyph=bell]:before {
-  content: '\e01d';
-}
-
-.oi[data-glyph=bluetooth]:before {
-  content: '\e01e';
-}
-
-.oi[data-glyph=bold]:before {
-  content: '\e01f';
-}
-
-.oi[data-glyph=bolt]:before {
-  content: '\e020';
-}
-
-.oi[data-glyph=book]:before {
-  content: '\e021';
-}
-
-.oi[data-glyph=bookmark]:before {
-  content: '\e022';
-}
-
-.oi[data-glyph=box]:before {
-  content: '\e023';
-}
-
-.oi[data-glyph=briefcase]:before {
-  content: '\e024';
-}
-
-.oi[data-glyph=british-pound]:before {
-  content: '\e025';
-}
-
-.oi[data-glyph=browser]:before {
-  content: '\e026';
-}
-
-.oi[data-glyph=brush]:before {
-  content: '\e027';
-}
-
-.oi[data-glyph=bug]:before {
-  content: '\e028';
-}
-
-.oi[data-glyph=bullhorn]:before {
-  content: '\e029';
-}
-
-.oi[data-glyph=calculator]:before {
-  content: '\e02a';
-}
-
-.oi[data-glyph=calendar]:before {
-  content: '\e02b';
-}
-
-.oi[data-glyph=camera-slr]:before {
-  content: '\e02c';
-}
-
-.oi[data-glyph=caret-bottom]:before {
-  content: '\e02d';
-}
-
-.oi[data-glyph=caret-left]:before {
-  content: '\e02e';
-}
-
-.oi[data-glyph=caret-right]:before {
-  content: '\e02f';
-}
-
-.oi[data-glyph=caret-top]:before {
-  content: '\e030';
-}
-
-.oi[data-glyph=cart]:before {
-  content: '\e031';
-}
-
-.oi[data-glyph=chat]:before {
-  content: '\e032';
-}
-
-.oi[data-glyph=check]:before {
-  content: '\e033';
-}
-
-.oi[data-glyph=chevron-bottom]:before {
-  content: '\e034';
-}
-
-.oi[data-glyph=chevron-left]:before {
-  content: '\e035';
-}
-
-.oi[data-glyph=chevron-right]:before {
-  content: '\e036';
-}
-
-.oi[data-glyph=chevron-top]:before {
-  content: '\e037';
-}
-
-.oi[data-glyph=circle-check]:before {
-  content: '\e038';
-}
-
-.oi[data-glyph=circle-x]:before {
-  content: '\e039';
-}
-
-.oi[data-glyph=clipboard]:before {
-  content: '\e03a';
-}
-
-.oi[data-glyph=clock]:before {
-  content: '\e03b';
-}
-
-.oi[data-glyph=cloud-download]:before {
-  content: '\e03c';
-}
-
-.oi[data-glyph=cloud-upload]:before {
-  content: '\e03d';
-}
-
-.oi[data-glyph=cloud]:before {
-  content: '\e03e';
-}
-
-.oi[data-glyph=cloudy]:before {
-  content: '\e03f';
-}
-
-.oi[data-glyph=code]:before {
-  content: '\e040';
-}
-
-.oi[data-glyph=cog]:before {
-  content: '\e041';
-}
-
-.oi[data-glyph=collapse-down]:before {
-  content: '\e042';
-}
-
-.oi[data-glyph=collapse-left]:before {
-  content: '\e043';
-}
-
-.oi[data-glyph=collapse-right]:before {
-  content: '\e044';
-}
-
-.oi[data-glyph=collapse-up]:before {
-  content: '\e045';
-}
-
-.oi[data-glyph=command]:before {
-  content: '\e046';
-}
-
-.oi[data-glyph=comment-square]:before {
-  content: '\e047';
-}
-
-.oi[data-glyph=compass]:before {
-  content: '\e048';
-}
-
-.oi[data-glyph=contrast]:before {
-  content: '\e049';
-}
-
-.oi[data-glyph=copywriting]:before {
-  content: '\e04a';
-}
-
-.oi[data-glyph=credit-card]:before {
-  content: '\e04b';
-}
-
-.oi[data-glyph=crop]:before {
-  content: '\e04c';
-}
-
-.oi[data-glyph=dashboard]:before {
-  content: '\e04d';
-}
-
-.oi[data-glyph=data-transfer-download]:before {
-  content: '\e04e';
-}
-
-.oi[data-glyph=data-transfer-upload]:before {
-  content: '\e04f';
-}
-
-.oi[data-glyph=delete]:before {
-  content: '\e050';
-}
-
-.oi[data-glyph=dial]:before {
-  content: '\e051';
-}
-
-.oi[data-glyph=document]:before {
-  content: '\e052';
-}
-
-.oi[data-glyph=dollar]:before {
-  content: '\e053';
-}
-
-.oi[data-glyph=double-quote-sans-left]:before {
-  content: '\e054';
-}
-
-.oi[data-glyph=double-quote-sans-right]:before {
-  content: '\e055';
-}
-
-.oi[data-glyph=double-quote-serif-left]:before {
-  content: '\e056';
-}
-
-.oi[data-glyph=double-quote-serif-right]:before {
-  content: '\e057';
-}
-
-.oi[data-glyph=droplet]:before {
-  content: '\e058';
-}
-
-.oi[data-glyph=eject]:before {
-  content: '\e059';
-}
-
-.oi[data-glyph=elevator]:before {
-  content: '\e05a';
-}
-
-.oi[data-glyph=ellipses]:before {
-  content: '\e05b';
-}
-
-.oi[data-glyph=envelope-closed]:before {
-  content: '\e05c';
-}
-
-.oi[data-glyph=envelope-open]:before {
-  content: '\e05d';
-}
-
-.oi[data-glyph=euro]:before {
-  content: '\e05e';
-}
-
-.oi[data-glyph=excerpt]:before {
-  content: '\e05f';
-}
-
-.oi[data-glyph=expand-down]:before {
-  content: '\e060';
-}
-
-.oi[data-glyph=expand-left]:before {
-  content: '\e061';
-}
-
-.oi[data-glyph=expand-right]:before {
-  content: '\e062';
-}
-
-.oi[data-glyph=expand-up]:before {
-  content: '\e063';
-}
-
-.oi[data-glyph=external-link]:before {
-  content: '\e064';
-}
-
-.oi[data-glyph=eye]:before {
-  content: '\e065';
-}
-
-.oi[data-glyph=eyedropper]:before {
-  content: '\e066';
-}
-
-.oi[data-glyph=file]:before {
-  content: '\e067';
-}
-
-.oi[data-glyph=fire]:before {
-  content: '\e068';
-}
-
-.oi[data-glyph=flag]:before {
-  content: '\e069';
-}
-
-.oi[data-glyph=flash]:before {
-  content: '\e06a';
-}
-
-.oi[data-glyph=folder]:before {
-  content: '\e06b';
-}
-
-.oi[data-glyph=fork]:before {
-  content: '\e06c';
-}
-
-.oi[data-glyph=fullscreen-enter]:before {
-  content: '\e06d';
-}
-
-.oi[data-glyph=fullscreen-exit]:before {
-  content: '\e06e';
-}
-
-.oi[data-glyph=globe]:before {
-  content: '\e06f';
-}
-
-.oi[data-glyph=graph]:before {
-  content: '\e070';
-}
-
-.oi[data-glyph=grid-four-up]:before {
-  content: '\e071';
-}
-
-.oi[data-glyph=grid-three-up]:before {
-  content: '\e072';
-}
-
-.oi[data-glyph=grid-two-up]:before {
-  content: '\e073';
-}
-
-.oi[data-glyph=hard-drive]:before {
-  content: '\e074';
-}
-
-.oi[data-glyph=header]:before {
-  content: '\e075';
-}
-
-.oi[data-glyph=headphones]:before {
-  content: '\e076';
-}
-
-.oi[data-glyph=heart]:before {
-  content: '\e077';
-}
-
-.oi[data-glyph=home]:before {
-  content: '\e078';
-}
-
-.oi[data-glyph=image]:before {
-  content: '\e079';
-}
-
-.oi[data-glyph=inbox]:before {
-  content: '\e07a';
-}
-
-.oi[data-glyph=infinity]:before {
-  content: '\e07b';
-}
-
-.oi[data-glyph=info]:before {
-  content: '\e07c';
-}
-
-.oi[data-glyph=italic]:before {
-  content: '\e07d';
-}
-
-.oi[data-glyph=justify-center]:before {
-  content: '\e07e';
-}
-
-.oi[data-glyph=justify-left]:before {
-  content: '\e07f';
-}
-
-.oi[data-glyph=justify-right]:before {
-  content: '\e080';
-}
-
-.oi[data-glyph=key]:before {
-  content: '\e081';
-}
-
-.oi[data-glyph=laptop]:before {
-  content: '\e082';
-}
-
-.oi[data-glyph=layers]:before {
-  content: '\e083';
-}
-
-.oi[data-glyph=lightbulb]:before {
-  content: '\e084';
-}
-
-.oi[data-glyph=link-broken]:before {
-  content: '\e085';
-}
-
-.oi[data-glyph=link-intact]:before {
-  content: '\e086';
-}
-
-.oi[data-glyph=list-rich]:before {
-  content: '\e087';
-}
-
-.oi[data-glyph=list]:before {
-  content: '\e088';
-}
-
-.oi[data-glyph=location]:before {
-  content: '\e089';
-}
-
-.oi[data-glyph=lock-locked]:before {
-  content: '\e08a';
-}
-
-.oi[data-glyph=lock-unlocked]:before {
-  content: '\e08b';
-}
-
-.oi[data-glyph=loop-circular]:before {
-  content: '\e08c';
-}
-
-.oi[data-glyph=loop-square]:before {
-  content: '\e08d';
-}
-
-.oi[data-glyph=loop]:before {
-  content: '\e08e';
-}
-
-.oi[data-glyph=magnifying-glass]:before {
-  content: '\e08f';
-}
-
-.oi[data-glyph=map-marker]:before {
-  content: '\e090';
-}
-
-.oi[data-glyph=map]:before {
-  content: '\e091';
-}
-
-.oi[data-glyph=media-pause]:before {
-  content: '\e092';
-}
-
-.oi[data-glyph=media-play]:before {
-  content: '\e093';
-}
-
-.oi[data-glyph=media-record]:before {
-  content: '\e094';
-}
-
-.oi[data-glyph=media-skip-backward]:before {
-  content: '\e095';
-}
-
-.oi[data-glyph=media-skip-forward]:before {
-  content: '\e096';
-}
-
-.oi[data-glyph=media-step-backward]:before {
-  content: '\e097';
-}
-
-.oi[data-glyph=media-step-forward]:before {
-  content: '\e098';
-}
-
-.oi[data-glyph=media-stop]:before {
-  content: '\e099';
-}
-
-.oi[data-glyph=medical-cross]:before {
-  content: '\e09a';
-}
-
-.oi[data-glyph=menu]:before {
-  content: '\e09b';
-}
-
-.oi[data-glyph=microphone]:before {
-  content: '\e09c';
-}
-
-.oi[data-glyph=minus]:before {
-  content: '\e09d';
-}
-
-.oi[data-glyph=monitor]:before {
-  content: '\e09e';
-}
-
-.oi[data-glyph=moon]:before {
-  content: '\e09f';
-}
-
-.oi[data-glyph=move]:before {
-  content: '\e0a0';
-}
-
-.oi[data-glyph=musical-note]:before {
-  content: '\e0a1';
-}
-
-.oi[data-glyph=paperclip]:before {
-  content: '\e0a2';
-}
-
-.oi[data-glyph=pencil]:before {
-  content: '\e0a3';
-}
-
-.oi[data-glyph=people]:before {
-  content: '\e0a4';
-}
-
-.oi[data-glyph=person]:before {
-  content: '\e0a5';
-}
-
-.oi[data-glyph=phone]:before {
-  content: '\e0a6';
-}
-
-.oi[data-glyph=pie-chart]:before {
-  content: '\e0a7';
-}
-
-.oi[data-glyph=pin]:before {
-  content: '\e0a8';
-}
-
-.oi[data-glyph=play-circle]:before {
-  content: '\e0a9';
-}
-
-.oi[data-glyph=plus]:before {
-  content: '\e0aa';
-}
-
-.oi[data-glyph=power-standby]:before {
-  content: '\e0ab';
-}
-
-.oi[data-glyph=print]:before {
-  content: '\e0ac';
-}
-
-.oi[data-glyph=project]:before {
-  content: '\e0ad';
-}
-
-.oi[data-glyph=pulse]:before {
-  content: '\e0ae';
-}
-
-.oi[data-glyph=puzzle-piece]:before {
-  content: '\e0af';
-}
-
-.oi[data-glyph=question-mark]:before {
-  content: '\e0b0';
-}
-
-.oi[data-glyph=rain]:before {
-  content: '\e0b1';
-}
-
-.oi[data-glyph=random]:before {
-  content: '\e0b2';
-}
-
-.oi[data-glyph=reload]:before {
-  content: '\e0b3';
-}
-
-.oi[data-glyph=resize-both]:before {
-  content: '\e0b4';
-}
-
-.oi[data-glyph=resize-height]:before {
-  content: '\e0b5';
-}
-
-.oi[data-glyph=resize-width]:before {
-  content: '\e0b6';
-}
-
-.oi[data-glyph=rss-alt]:before {
-  content: '\e0b7';
-}
-
-.oi[data-glyph=rss]:before {
-  content: '\e0b8';
-}
-
-.oi[data-glyph=script]:before {
-  content: '\e0b9';
-}
-
-.oi[data-glyph=share-boxed]:before {
-  content: '\e0ba';
-}
-
-.oi[data-glyph=share]:before {
-  content: '\e0bb';
-}
-
-.oi[data-glyph=shield]:before {
-  content: '\e0bc';
-}
-
-.oi[data-glyph=signal]:before {
-  content: '\e0bd';
-}
-
-.oi[data-glyph=signpost]:before {
-  content: '\e0be';
-}
-
-.oi[data-glyph=sort-ascending]:before {
-  content: '\e0bf';
-}
-
-.oi[data-glyph=sort-descending]:before {
-  content: '\e0c0';
-}
-
-.oi[data-glyph=spreadsheet]:before {
-  content: '\e0c1';
-}
-
-.oi[data-glyph=star]:before {
-  content: '\e0c2';
-}
-
-.oi[data-glyph=sun]:before {
-  content: '\e0c3';
-}
-
-.oi[data-glyph=tablet]:before {
-  content: '\e0c4';
-}
-
-.oi[data-glyph=tag]:before {
-  content: '\e0c5';
-}
-
-.oi[data-glyph=tags]:before {
-  content: '\e0c6';
-}
-
-.oi[data-glyph=target]:before {
-  content: '\e0c7';
-}
-
-.oi[data-glyph=task]:before {
-  content: '\e0c8';
-}
-
-.oi[data-glyph=terminal]:before {
-  content: '\e0c9';
-}
-
-.oi[data-glyph=text]:before {
-  content: '\e0ca';
-}
-
-.oi[data-glyph=thumb-down]:before {
-  content: '\e0cb';
-}
-
-.oi[data-glyph=thumb-up]:before {
-  content: '\e0cc';
-}
-
-.oi[data-glyph=timer]:before {
-  content: '\e0cd';
-}
-
-.oi[data-glyph=transfer]:before {
-  content: '\e0ce';
-}
-
-.oi[data-glyph=trash]:before {
-  content: '\e0cf';
-}
-
-.oi[data-glyph=underline]:before {
-  content: '\e0d0';
-}
-
-.oi[data-glyph=vertical-align-bottom]:before {
-  content: '\e0d1';
-}
-
-.oi[data-glyph=vertical-align-center]:before {
-  content: '\e0d2';
-}
-
-.oi[data-glyph=vertical-align-top]:before {
-  content: '\e0d3';
-}
-
-.oi[data-glyph=video]:before {
-  content: '\e0d4';
-}
-
-.oi[data-glyph=volume-high]:before {
-  content: '\e0d5';
-}
-
-.oi[data-glyph=volume-low]:before {
-  content: '\e0d6';
-}
-
-.oi[data-glyph=volume-off]:before {
-  content: '\e0d7';
-}
-
-.oi[data-glyph=warning]:before {
-  content: '\e0d8';
-}
-
-.oi[data-glyph=wifi]:before {
-  content: '\e0d9';
-}
-
-.oi[data-glyph=wrench]:before {
-  content: '\e0da';
-}
-
-.oi[data-glyph=x]:before {
-  content: '\e0db';
-}
-
-.oi[data-glyph=yen]:before {
-  content: '\e0dc';
-}
-
-.oi[data-glyph=zoom-in]:before {
-  content: '\e0dd';
-}
-
-.oi[data-glyph=zoom-out]:before {
-  content: '\e0de';
-}
diff --git a/assets/static/fonts/open-iconic/font/css/open-iconic.min.css b/assets/static/fonts/open-iconic/font/css/open-iconic.min.css
deleted file mode 100644
index 1f6afb8..0000000
--- a/assets/static/fonts/open-iconic/font/css/open-iconic.min.css
+++ /dev/null
@@ -1 +0,0 @@
- at font-face{font-family:Icons;src:url(../fonts/open-iconic.eot);src:url(../fonts/open-iconic.eot?#iconic-sm) format('embedded-opentype'),url(../fonts/open-iconic.woff) format('woff'),url(../fonts/open-iconic.ttf) format('truetype'),url(../fonts/open-iconic.otf) format('opentype'),url(../fonts/open-iconic.svg#iconic-sm) format('svg');font-weight:400;font-style:normal}.oi[data-glyph].oi-text-replace{font-size:0;line-height:0}.oi[data-glyph].oi-text-replace:before{width:1em;text-align:center}.oi[data-glyph]:before{font-family:Icons;display:inline-block;speak:none;line-height:1;vertical-align:baseline;font-weight:400;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.oi[data-glyph]:empty:before{width:1em;text-align:center;box-sizing:content-box}.oi[data-glyph].oi-align-left:before{text-align:left}.oi[data-glyph].oi-align-right:before{text-align:right}.oi[data-glyph].oi-align-center:before{text-align:center}.oi[data-glyph].oi-flip-horizontal:before{-we
 bkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.oi[data-glyph].oi-flip-vertical:before{-webkit-transform:scale(1,-1);-ms-transform:scale(-1,1);transform:scale(1,-1)}.oi[data-glyph].oi-flip-horizontal-vertical:before{-webkit-transform:scale(-1,-1);-ms-transform:scale(-1,1);transform:scale(-1,-1)}.oi[data-glyph=account-login]:before{content:'\e000'}.oi[data-glyph=account-logout]:before{content:'\e001'}.oi[data-glyph=action-redo]:before{content:'\e002'}.oi[data-glyph=action-undo]:before{content:'\e003'}.oi[data-glyph=align-center]:before{content:'\e004'}.oi[data-glyph=align-left]:before{content:'\e005'}.oi[data-glyph=align-right]:before{content:'\e006'}.oi[data-glyph=aperture]:before{content:'\e007'}.oi[data-glyph=arrow-bottom]:before{content:'\e008'}.oi[data-glyph=arrow-circle-bottom]:before{content:'\e009'}.oi[data-glyph=arrow-circle-left]:before{content:'\e00a'}.oi[data-glyph=arrow-circle-right]:before{content:'\e00b'}.oi[data-glyph=arrow-circle-top]:befo
 re{content:'\e00c'}.oi[data-glyph=arrow-left]:before{content:'\e00d'}.oi[data-glyph=arrow-right]:before{content:'\e00e'}.oi[data-glyph=arrow-thick-bottom]:before{content:'\e00f'}.oi[data-glyph=arrow-thick-left]:before{content:'\e010'}.oi[data-glyph=arrow-thick-right]:before{content:'\e011'}.oi[data-glyph=arrow-thick-top]:before{content:'\e012'}.oi[data-glyph=arrow-top]:before{content:'\e013'}.oi[data-glyph=audio-spectrum]:before{content:'\e014'}.oi[data-glyph=audio]:before{content:'\e015'}.oi[data-glyph=badge]:before{content:'\e016'}.oi[data-glyph=ban]:before{content:'\e017'}.oi[data-glyph=bar-chart]:before{content:'\e018'}.oi[data-glyph=basket]:before{content:'\e019'}.oi[data-glyph=battery-empty]:before{content:'\e01a'}.oi[data-glyph=battery-full]:before{content:'\e01b'}.oi[data-glyph=beaker]:before{content:'\e01c'}.oi[data-glyph=bell]:before{content:'\e01d'}.oi[data-glyph=bluetooth]:before{content:'\e01e'}.oi[data-glyph=bold]:before{content:'\e01f'}.oi[data-glyph=bolt]:before{cont
 ent:'\e020'}.oi[data-glyph=book]:before{content:'\e021'}.oi[data-glyph=bookmark]:before{content:'\e022'}.oi[data-glyph=box]:before{content:'\e023'}.oi[data-glyph=briefcase]:before{content:'\e024'}.oi[data-glyph=british-pound]:before{content:'\e025'}.oi[data-glyph=browser]:before{content:'\e026'}.oi[data-glyph=brush]:before{content:'\e027'}.oi[data-glyph=bug]:before{content:'\e028'}.oi[data-glyph=bullhorn]:before{content:'\e029'}.oi[data-glyph=calculator]:before{content:'\e02a'}.oi[data-glyph=calendar]:before{content:'\e02b'}.oi[data-glyph=camera-slr]:before{content:'\e02c'}.oi[data-glyph=caret-bottom]:before{content:'\e02d'}.oi[data-glyph=caret-left]:before{content:'\e02e'}.oi[data-glyph=caret-right]:before{content:'\e02f'}.oi[data-glyph=caret-top]:before{content:'\e030'}.oi[data-glyph=cart]:before{content:'\e031'}.oi[data-glyph=chat]:before{content:'\e032'}.oi[data-glyph=check]:before{content:'\e033'}.oi[data-glyph=chevron-bottom]:before{content:'\e034'}.oi[data-glyph=chevron-left]
 :before{content:'\e035'}.oi[data-glyph=chevron-right]:before{content:'\e036'}.oi[data-glyph=chevron-top]:before{content:'\e037'}.oi[data-glyph=circle-check]:before{content:'\e038'}.oi[data-glyph=circle-x]:before{content:'\e039'}.oi[data-glyph=clipboard]:before{content:'\e03a'}.oi[data-glyph=clock]:before{content:'\e03b'}.oi[data-glyph=cloud-download]:before{content:'\e03c'}.oi[data-glyph=cloud-upload]:before{content:'\e03d'}.oi[data-glyph=cloud]:before{content:'\e03e'}.oi[data-glyph=cloudy]:before{content:'\e03f'}.oi[data-glyph=code]:before{content:'\e040'}.oi[data-glyph=cog]:before{content:'\e041'}.oi[data-glyph=collapse-down]:before{content:'\e042'}.oi[data-glyph=collapse-left]:before{content:'\e043'}.oi[data-glyph=collapse-right]:before{content:'\e044'}.oi[data-glyph=collapse-up]:before{content:'\e045'}.oi[data-glyph=command]:before{content:'\e046'}.oi[data-glyph=comment-square]:before{content:'\e047'}.oi[data-glyph=compass]:before{content:'\e048'}.oi[data-glyph=contrast]:before{
 content:'\e049'}.oi[data-glyph=copywriting]:before{content:'\e04a'}.oi[data-glyph=credit-card]:before{content:'\e04b'}.oi[data-glyph=crop]:before{content:'\e04c'}.oi[data-glyph=dashboard]:before{content:'\e04d'}.oi[data-glyph=data-transfer-download]:before{content:'\e04e'}.oi[data-glyph=data-transfer-upload]:before{content:'\e04f'}.oi[data-glyph=delete]:before{content:'\e050'}.oi[data-glyph=dial]:before{content:'\e051'}.oi[data-glyph=document]:before{content:'\e052'}.oi[data-glyph=dollar]:before{content:'\e053'}.oi[data-glyph=double-quote-sans-left]:before{content:'\e054'}.oi[data-glyph=double-quote-sans-right]:before{content:'\e055'}.oi[data-glyph=double-quote-serif-left]:before{content:'\e056'}.oi[data-glyph=double-quote-serif-right]:before{content:'\e057'}.oi[data-glyph=droplet]:before{content:'\e058'}.oi[data-glyph=eject]:before{content:'\e059'}.oi[data-glyph=elevator]:before{content:'\e05a'}.oi[data-glyph=ellipses]:before{content:'\e05b'}.oi[data-glyph=envelope-closed]:before{c
 ontent:'\e05c'}.oi[data-glyph=envelope-open]:before{content:'\e05d'}.oi[data-glyph=euro]:before{content:'\e05e'}.oi[data-glyph=excerpt]:before{content:'\e05f'}.oi[data-glyph=expand-down]:before{content:'\e060'}.oi[data-glyph=expand-left]:before{content:'\e061'}.oi[data-glyph=expand-right]:before{content:'\e062'}.oi[data-glyph=expand-up]:before{content:'\e063'}.oi[data-glyph=external-link]:before{content:'\e064'}.oi[data-glyph=eye]:before{content:'\e065'}.oi[data-glyph=eyedropper]:before{content:'\e066'}.oi[data-glyph=file]:before{content:'\e067'}.oi[data-glyph=fire]:before{content:'\e068'}.oi[data-glyph=flag]:before{content:'\e069'}.oi[data-glyph=flash]:before{content:'\e06a'}.oi[data-glyph=folder]:before{content:'\e06b'}.oi[data-glyph=fork]:before{content:'\e06c'}.oi[data-glyph=fullscreen-enter]:before{content:'\e06d'}.oi[data-glyph=fullscreen-exit]:before{content:'\e06e'}.oi[data-glyph=globe]:before{content:'\e06f'}.oi[data-glyph=graph]:before{content:'\e070'}.oi[data-glyph=grid-f
 our-up]:before{content:'\e071'}.oi[data-glyph=grid-three-up]:before{content:'\e072'}.oi[data-glyph=grid-two-up]:before{content:'\e073'}.oi[data-glyph=hard-drive]:before{content:'\e074'}.oi[data-glyph=header]:before{content:'\e075'}.oi[data-glyph=headphones]:before{content:'\e076'}.oi[data-glyph=heart]:before{content:'\e077'}.oi[data-glyph=home]:before{content:'\e078'}.oi[data-glyph=image]:before{content:'\e079'}.oi[data-glyph=inbox]:before{content:'\e07a'}.oi[data-glyph=infinity]:before{content:'\e07b'}.oi[data-glyph=info]:before{content:'\e07c'}.oi[data-glyph=italic]:before{content:'\e07d'}.oi[data-glyph=justify-center]:before{content:'\e07e'}.oi[data-glyph=justify-left]:before{content:'\e07f'}.oi[data-glyph=justify-right]:before{content:'\e080'}.oi[data-glyph=key]:before{content:'\e081'}.oi[data-glyph=laptop]:before{content:'\e082'}.oi[data-glyph=layers]:before{content:'\e083'}.oi[data-glyph=lightbulb]:before{content:'\e084'}.oi[data-glyph=link-broken]:before{content:'\e085'}.oi[d
 ata-glyph=link-intact]:before{content:'\e086'}.oi[data-glyph=list-rich]:before{content:'\e087'}.oi[data-glyph=list]:before{content:'\e088'}.oi[data-glyph=location]:before{content:'\e089'}.oi[data-glyph=lock-locked]:before{content:'\e08a'}.oi[data-glyph=lock-unlocked]:before{content:'\e08b'}.oi[data-glyph=loop-circular]:before{content:'\e08c'}.oi[data-glyph=loop-square]:before{content:'\e08d'}.oi[data-glyph=loop]:before{content:'\e08e'}.oi[data-glyph=magnifying-glass]:before{content:'\e08f'}.oi[data-glyph=map-marker]:before{content:'\e090'}.oi[data-glyph=map]:before{content:'\e091'}.oi[data-glyph=media-pause]:before{content:'\e092'}.oi[data-glyph=media-play]:before{content:'\e093'}.oi[data-glyph=media-record]:before{content:'\e094'}.oi[data-glyph=media-skip-backward]:before{content:'\e095'}.oi[data-glyph=media-skip-forward]:before{content:'\e096'}.oi[data-glyph=media-step-backward]:before{content:'\e097'}.oi[data-glyph=media-step-forward]:before{content:'\e098'}.oi[data-glyph=media-s
 top]:before{content:'\e099'}.oi[data-glyph=medical-cross]:before{content:'\e09a'}.oi[data-glyph=menu]:before{content:'\e09b'}.oi[data-glyph=microphone]:before{content:'\e09c'}.oi[data-glyph=minus]:before{content:'\e09d'}.oi[data-glyph=monitor]:before{content:'\e09e'}.oi[data-glyph=moon]:before{content:'\e09f'}.oi[data-glyph=move]:before{content:'\e0a0'}.oi[data-glyph=musical-note]:before{content:'\e0a1'}.oi[data-glyph=paperclip]:before{content:'\e0a2'}.oi[data-glyph=pencil]:before{content:'\e0a3'}.oi[data-glyph=people]:before{content:'\e0a4'}.oi[data-glyph=person]:before{content:'\e0a5'}.oi[data-glyph=phone]:before{content:'\e0a6'}.oi[data-glyph=pie-chart]:before{content:'\e0a7'}.oi[data-glyph=pin]:before{content:'\e0a8'}.oi[data-glyph=play-circle]:before{content:'\e0a9'}.oi[data-glyph=plus]:before{content:'\e0aa'}.oi[data-glyph=power-standby]:before{content:'\e0ab'}.oi[data-glyph=print]:before{content:'\e0ac'}.oi[data-glyph=project]:before{content:'\e0ad'}.oi[data-glyph=pulse]:befo
 re{content:'\e0ae'}.oi[data-glyph=puzzle-piece]:before{content:'\e0af'}.oi[data-glyph=question-mark]:before{content:'\e0b0'}.oi[data-glyph=rain]:before{content:'\e0b1'}.oi[data-glyph=random]:before{content:'\e0b2'}.oi[data-glyph=reload]:before{content:'\e0b3'}.oi[data-glyph=resize-both]:before{content:'\e0b4'}.oi[data-glyph=resize-height]:before{content:'\e0b5'}.oi[data-glyph=resize-width]:before{content:'\e0b6'}.oi[data-glyph=rss-alt]:before{content:'\e0b7'}.oi[data-glyph=rss]:before{content:'\e0b8'}.oi[data-glyph=script]:before{content:'\e0b9'}.oi[data-glyph=share-boxed]:before{content:'\e0ba'}.oi[data-glyph=share]:before{content:'\e0bb'}.oi[data-glyph=shield]:before{content:'\e0bc'}.oi[data-glyph=signal]:before{content:'\e0bd'}.oi[data-glyph=signpost]:before{content:'\e0be'}.oi[data-glyph=sort-ascending]:before{content:'\e0bf'}.oi[data-glyph=sort-descending]:before{content:'\e0c0'}.oi[data-glyph=spreadsheet]:before{content:'\e0c1'}.oi[data-glyph=star]:before{content:'\e0c2'}.oi[d
 ata-glyph=sun]:before{content:'\e0c3'}.oi[data-glyph=tablet]:before{content:'\e0c4'}.oi[data-glyph=tag]:before{content:'\e0c5'}.oi[data-glyph=tags]:before{content:'\e0c6'}.oi[data-glyph=target]:before{content:'\e0c7'}.oi[data-glyph=task]:before{content:'\e0c8'}.oi[data-glyph=terminal]:before{content:'\e0c9'}.oi[data-glyph=text]:before{content:'\e0ca'}.oi[data-glyph=thumb-down]:before{content:'\e0cb'}.oi[data-glyph=thumb-up]:before{content:'\e0cc'}.oi[data-glyph=timer]:before{content:'\e0cd'}.oi[data-glyph=transfer]:before{content:'\e0ce'}.oi[data-glyph=trash]:before{content:'\e0cf'}.oi[data-glyph=underline]:before{content:'\e0d0'}.oi[data-glyph=vertical-align-bottom]:before{content:'\e0d1'}.oi[data-glyph=vertical-align-center]:before{content:'\e0d2'}.oi[data-glyph=vertical-align-top]:before{content:'\e0d3'}.oi[data-glyph=video]:before{content:'\e0d4'}.oi[data-glyph=volume-high]:before{content:'\e0d5'}.oi[data-glyph=volume-low]:before{content:'\e0d6'}.oi[data-glyph=volume-off]:before
 {content:'\e0d7'}.oi[data-glyph=warning]:before{content:'\e0d8'}.oi[data-glyph=wifi]:before{content:'\e0d9'}.oi[data-glyph=wrench]:before{content:'\e0da'}.oi[data-glyph=x]:before{content:'\e0db'}.oi[data-glyph=yen]:before{content:'\e0dc'}.oi[data-glyph=zoom-in]:before{content:'\e0dd'}.oi[data-glyph=zoom-out]:before{content:'\e0de'}
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/font/css/open-iconic.scss b/assets/static/fonts/open-iconic/font/css/open-iconic.scss
deleted file mode 100644
index e03d979..0000000
--- a/assets/static/fonts/open-iconic/font/css/open-iconic.scss
+++ /dev/null
@@ -1,963 +0,0 @@
-$iconic-font-path: '../fonts/' !default;
-
- at font-face {
-  font-family: 'Icons';
-  src: url('#{$iconic-font-path}open-iconic.eot');
-  src: url('#{$iconic-font-path}open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('#{$iconic-font-path}open-iconic.woff') format('woff'), url('#{$iconic-font-path}open-iconic.ttf') format('truetype'), url('#{$iconic-font-path}open-iconic.otf') format('opentype'), url('#{$iconic-font-path}open-iconic.svg#iconic-sm') format('svg');
-  font-weight: normal;
-  font-style: normal;
-}
-
-.oi[data-glyph].oi-text-replace {
-  font-size: 0;
-  line-height: 0;
-}
-
-.oi[data-glyph].oi-text-replace:before {
-  width: 1em;
-  text-align: center;
-}
-
-.oi[data-glyph] {
-  &:before {
-    position: relative;
-    top: 1px;
-    font-family: 'Icons';
-    display: inline-block;
-    speak: none;
-    line-height: 1;
-    vertical-align: baseline;
-    font-weight: normal;
-    font-style: normal;
-    -webkit-font-smoothing: antialiased;
-    -moz-osx-font-smoothing: grayscale;
-  }
-
-  &:empty:before {
-    width: 1em;
-    text-align: center;
-    box-sizing: content-box;
-  }
-
-  &.oi-align-left:before {
-    text-align: left;
-  }
-  &.oi-align-right:before {
-    text-align: right;
-  }
-  &.oi-align-center:before {
-    text-align: center;
-  }
-
-  &.oi-flip-horizontal:before {
-    -webkit-transform: scale(-1, 1);
-    -ms-transform: scale(-1, 1);
-    transform: scale(-1, 1);
-  }
-
-  &.oi-flip-vertical:before {
-    -webkit-transform: scale(1, -1);
-    -ms-transform: scale(-1, 1);
-    transform: scale(1, -1);
-  }
-
-  &.oi-flip-horizontal-vertical:before {
-    -webkit-transform: scale(-1, -1);
-    -ms-transform: scale(-1, 1);
-    transform: scale(-1, -1);
-  }
-}
-
-
-.oi[data-glyph=account-login]:before {
-  content: '\e000';
-}
-
-.oi[data-glyph=account-logout]:before {
-  content: '\e001';
-}
-
-.oi[data-glyph=action-redo]:before {
-  content: '\e002';
-}
-
-.oi[data-glyph=action-undo]:before {
-  content: '\e003';
-}
-
-.oi[data-glyph=align-center]:before {
-  content: '\e004';
-}
-
-.oi[data-glyph=align-left]:before {
-  content: '\e005';
-}
-
-.oi[data-glyph=align-right]:before {
-  content: '\e006';
-}
-
-.oi[data-glyph=aperture]:before {
-  content: '\e007';
-}
-
-.oi[data-glyph=arrow-bottom]:before {
-  content: '\e008';
-}
-
-.oi[data-glyph=arrow-circle-bottom]:before {
-  content: '\e009';
-}
-
-.oi[data-glyph=arrow-circle-left]:before {
-  content: '\e00a';
-}
-
-.oi[data-glyph=arrow-circle-right]:before {
-  content: '\e00b';
-}
-
-.oi[data-glyph=arrow-circle-top]:before {
-  content: '\e00c';
-}
-
-.oi[data-glyph=arrow-left]:before {
-  content: '\e00d';
-}
-
-.oi[data-glyph=arrow-right]:before {
-  content: '\e00e';
-}
-
-.oi[data-glyph=arrow-thick-bottom]:before {
-  content: '\e00f';
-}
-
-.oi[data-glyph=arrow-thick-left]:before {
-  content: '\e010';
-}
-
-.oi[data-glyph=arrow-thick-right]:before {
-  content: '\e011';
-}
-
-.oi[data-glyph=arrow-thick-top]:before {
-  content: '\e012';
-}
-
-.oi[data-glyph=arrow-top]:before {
-  content: '\e013';
-}
-
-.oi[data-glyph=audio-spectrum]:before {
-  content: '\e014';
-}
-
-.oi[data-glyph=audio]:before {
-  content: '\e015';
-}
-
-.oi[data-glyph=badge]:before {
-  content: '\e016';
-}
-
-.oi[data-glyph=ban]:before {
-  content: '\e017';
-}
-
-.oi[data-glyph=bar-chart]:before {
-  content: '\e018';
-}
-
-.oi[data-glyph=basket]:before {
-  content: '\e019';
-}
-
-.oi[data-glyph=battery-empty]:before {
-  content: '\e01a';
-}
-
-.oi[data-glyph=battery-full]:before {
-  content: '\e01b';
-}
-
-.oi[data-glyph=beaker]:before {
-  content: '\e01c';
-}
-
-.oi[data-glyph=bell]:before {
-  content: '\e01d';
-}
-
-.oi[data-glyph=bluetooth]:before {
-  content: '\e01e';
-}
-
-.oi[data-glyph=bold]:before {
-  content: '\e01f';
-}
-
-.oi[data-glyph=bolt]:before {
-  content: '\e020';
-}
-
-.oi[data-glyph=book]:before {
-  content: '\e021';
-}
-
-.oi[data-glyph=bookmark]:before {
-  content: '\e022';
-}
-
-.oi[data-glyph=box]:before {
-  content: '\e023';
-}
-
-.oi[data-glyph=briefcase]:before {
-  content: '\e024';
-}
-
-.oi[data-glyph=british-pound]:before {
-  content: '\e025';
-}
-
-.oi[data-glyph=browser]:before {
-  content: '\e026';
-}
-
-.oi[data-glyph=brush]:before {
-  content: '\e027';
-}
-
-.oi[data-glyph=bug]:before {
-  content: '\e028';
-}
-
-.oi[data-glyph=bullhorn]:before {
-  content: '\e029';
-}
-
-.oi[data-glyph=calculator]:before {
-  content: '\e02a';
-}
-
-.oi[data-glyph=calendar]:before {
-  content: '\e02b';
-}
-
-.oi[data-glyph=camera-slr]:before {
-  content: '\e02c';
-}
-
-.oi[data-glyph=caret-bottom]:before {
-  content: '\e02d';
-}
-
-.oi[data-glyph=caret-left]:before {
-  content: '\e02e';
-}
-
-.oi[data-glyph=caret-right]:before {
-  content: '\e02f';
-}
-
-.oi[data-glyph=caret-top]:before {
-  content: '\e030';
-}
-
-.oi[data-glyph=cart]:before {
-  content: '\e031';
-}
-
-.oi[data-glyph=chat]:before {
-  content: '\e032';
-}
-
-.oi[data-glyph=check]:before {
-  content: '\e033';
-}
-
-.oi[data-glyph=chevron-bottom]:before {
-  content: '\e034';
-}
-
-.oi[data-glyph=chevron-left]:before {
-  content: '\e035';
-}
-
-.oi[data-glyph=chevron-right]:before {
-  content: '\e036';
-}
-
-.oi[data-glyph=chevron-top]:before {
-  content: '\e037';
-}
-
-.oi[data-glyph=circle-check]:before {
-  content: '\e038';
-}
-
-.oi[data-glyph=circle-x]:before {
-  content: '\e039';
-}
-
-.oi[data-glyph=clipboard]:before {
-  content: '\e03a';
-}
-
-.oi[data-glyph=clock]:before {
-  content: '\e03b';
-}
-
-.oi[data-glyph=cloud-download]:before {
-  content: '\e03c';
-}
-
-.oi[data-glyph=cloud-upload]:before {
-  content: '\e03d';
-}
-
-.oi[data-glyph=cloud]:before {
-  content: '\e03e';
-}
-
-.oi[data-glyph=cloudy]:before {
-  content: '\e03f';
-}
-
-.oi[data-glyph=code]:before {
-  content: '\e040';
-}
-
-.oi[data-glyph=cog]:before {
-  content: '\e041';
-}
-
-.oi[data-glyph=collapse-down]:before {
-  content: '\e042';
-}
-
-.oi[data-glyph=collapse-left]:before {
-  content: '\e043';
-}
-
-.oi[data-glyph=collapse-right]:before {
-  content: '\e044';
-}
-
-.oi[data-glyph=collapse-up]:before {
-  content: '\e045';
-}
-
-.oi[data-glyph=command]:before {
-  content: '\e046';
-}
-
-.oi[data-glyph=comment-square]:before {
-  content: '\e047';
-}
-
-.oi[data-glyph=compass]:before {
-  content: '\e048';
-}
-
-.oi[data-glyph=contrast]:before {
-  content: '\e049';
-}
-
-.oi[data-glyph=copywriting]:before {
-  content: '\e04a';
-}
-
-.oi[data-glyph=credit-card]:before {
-  content: '\e04b';
-}
-
-.oi[data-glyph=crop]:before {
-  content: '\e04c';
-}
-
-.oi[data-glyph=dashboard]:before {
-  content: '\e04d';
-}
-
-.oi[data-glyph=data-transfer-download]:before {
-  content: '\e04e';
-}
-
-.oi[data-glyph=data-transfer-upload]:before {
-  content: '\e04f';
-}
-
-.oi[data-glyph=delete]:before {
-  content: '\e050';
-}
-
-.oi[data-glyph=dial]:before {
-  content: '\e051';
-}
-
-.oi[data-glyph=document]:before {
-  content: '\e052';
-}
-
-.oi[data-glyph=dollar]:before {
-  content: '\e053';
-}
-
-.oi[data-glyph=double-quote-sans-left]:before {
-  content: '\e054';
-}
-
-.oi[data-glyph=double-quote-sans-right]:before {
-  content: '\e055';
-}
-
-.oi[data-glyph=double-quote-serif-left]:before {
-  content: '\e056';
-}
-
-.oi[data-glyph=double-quote-serif-right]:before {
-  content: '\e057';
-}
-
-.oi[data-glyph=droplet]:before {
-  content: '\e058';
-}
-
-.oi[data-glyph=eject]:before {
-  content: '\e059';
-}
-
-.oi[data-glyph=elevator]:before {
-  content: '\e05a';
-}
-
-.oi[data-glyph=ellipses]:before {
-  content: '\e05b';
-}
-
-.oi[data-glyph=envelope-closed]:before {
-  content: '\e05c';
-}
-
-.oi[data-glyph=envelope-open]:before {
-  content: '\e05d';
-}
-
-.oi[data-glyph=euro]:before {
-  content: '\e05e';
-}
-
-.oi[data-glyph=excerpt]:before {
-  content: '\e05f';
-}
-
-.oi[data-glyph=expand-down]:before {
-  content: '\e060';
-}
-
-.oi[data-glyph=expand-left]:before {
-  content: '\e061';
-}
-
-.oi[data-glyph=expand-right]:before {
-  content: '\e062';
-}
-
-.oi[data-glyph=expand-up]:before {
-  content: '\e063';
-}
-
-.oi[data-glyph=external-link]:before {
-  content: '\e064';
-}
-
-.oi[data-glyph=eye]:before {
-  content: '\e065';
-}
-
-.oi[data-glyph=eyedropper]:before {
-  content: '\e066';
-}
-
-.oi[data-glyph=file]:before {
-  content: '\e067';
-}
-
-.oi[data-glyph=fire]:before {
-  content: '\e068';
-}
-
-.oi[data-glyph=flag]:before {
-  content: '\e069';
-}
-
-.oi[data-glyph=flash]:before {
-  content: '\e06a';
-}
-
-.oi[data-glyph=folder]:before {
-  content: '\e06b';
-}
-
-.oi[data-glyph=fork]:before {
-  content: '\e06c';
-}
-
-.oi[data-glyph=fullscreen-enter]:before {
-  content: '\e06d';
-}
-
-.oi[data-glyph=fullscreen-exit]:before {
-  content: '\e06e';
-}
-
-.oi[data-glyph=globe]:before {
-  content: '\e06f';
-}
-
-.oi[data-glyph=graph]:before {
-  content: '\e070';
-}
-
-.oi[data-glyph=grid-four-up]:before {
-  content: '\e071';
-}
-
-.oi[data-glyph=grid-three-up]:before {
-  content: '\e072';
-}
-
-.oi[data-glyph=grid-two-up]:before {
-  content: '\e073';
-}
-
-.oi[data-glyph=hard-drive]:before {
-  content: '\e074';
-}
-
-.oi[data-glyph=header]:before {
-  content: '\e075';
-}
-
-.oi[data-glyph=headphones]:before {
-  content: '\e076';
-}
-
-.oi[data-glyph=heart]:before {
-  content: '\e077';
-}
-
-.oi[data-glyph=home]:before {
-  content: '\e078';
-}
-
-.oi[data-glyph=image]:before {
-  content: '\e079';
-}
-
-.oi[data-glyph=inbox]:before {
-  content: '\e07a';
-}
-
-.oi[data-glyph=infinity]:before {
-  content: '\e07b';
-}
-
-.oi[data-glyph=info]:before {
-  content: '\e07c';
-}
-
-.oi[data-glyph=italic]:before {
-  content: '\e07d';
-}
-
-.oi[data-glyph=justify-center]:before {
-  content: '\e07e';
-}
-
-.oi[data-glyph=justify-left]:before {
-  content: '\e07f';
-}
-
-.oi[data-glyph=justify-right]:before {
-  content: '\e080';
-}
-
-.oi[data-glyph=key]:before {
-  content: '\e081';
-}
-
-.oi[data-glyph=laptop]:before {
-  content: '\e082';
-}
-
-.oi[data-glyph=layers]:before {
-  content: '\e083';
-}
-
-.oi[data-glyph=lightbulb]:before {
-  content: '\e084';
-}
-
-.oi[data-glyph=link-broken]:before {
-  content: '\e085';
-}
-
-.oi[data-glyph=link-intact]:before {
-  content: '\e086';
-}
-
-.oi[data-glyph=list-rich]:before {
-  content: '\e087';
-}
-
-.oi[data-glyph=list]:before {
-  content: '\e088';
-}
-
-.oi[data-glyph=location]:before {
-  content: '\e089';
-}
-
-.oi[data-glyph=lock-locked]:before {
-  content: '\e08a';
-}
-
-.oi[data-glyph=lock-unlocked]:before {
-  content: '\e08b';
-}
-
-.oi[data-glyph=loop-circular]:before {
-  content: '\e08c';
-}
-
-.oi[data-glyph=loop-square]:before {
-  content: '\e08d';
-}
-
-.oi[data-glyph=loop]:before {
-  content: '\e08e';
-}
-
-.oi[data-glyph=magnifying-glass]:before {
-  content: '\e08f';
-}
-
-.oi[data-glyph=map-marker]:before {
-  content: '\e090';
-}
-
-.oi[data-glyph=map]:before {
-  content: '\e091';
-}
-
-.oi[data-glyph=media-pause]:before {
-  content: '\e092';
-}
-
-.oi[data-glyph=media-play]:before {
-  content: '\e093';
-}
-
-.oi[data-glyph=media-record]:before {
-  content: '\e094';
-}
-
-.oi[data-glyph=media-skip-backward]:before {
-  content: '\e095';
-}
-
-.oi[data-glyph=media-skip-forward]:before {
-  content: '\e096';
-}
-
-.oi[data-glyph=media-step-backward]:before {
-  content: '\e097';
-}
-
-.oi[data-glyph=media-step-forward]:before {
-  content: '\e098';
-}
-
-.oi[data-glyph=media-stop]:before {
-  content: '\e099';
-}
-
-.oi[data-glyph=medical-cross]:before {
-  content: '\e09a';
-}
-
-.oi[data-glyph=menu]:before {
-  content: '\e09b';
-}
-
-.oi[data-glyph=microphone]:before {
-  content: '\e09c';
-}
-
-.oi[data-glyph=minus]:before {
-  content: '\e09d';
-}
-
-.oi[data-glyph=monitor]:before {
-  content: '\e09e';
-}
-
-.oi[data-glyph=moon]:before {
-  content: '\e09f';
-}
-
-.oi[data-glyph=move]:before {
-  content: '\e0a0';
-}
-
-.oi[data-glyph=musical-note]:before {
-  content: '\e0a1';
-}
-
-.oi[data-glyph=paperclip]:before {
-  content: '\e0a2';
-}
-
-.oi[data-glyph=pencil]:before {
-  content: '\e0a3';
-}
-
-.oi[data-glyph=people]:before {
-  content: '\e0a4';
-}
-
-.oi[data-glyph=person]:before {
-  content: '\e0a5';
-}
-
-.oi[data-glyph=phone]:before {
-  content: '\e0a6';
-}
-
-.oi[data-glyph=pie-chart]:before {
-  content: '\e0a7';
-}
-
-.oi[data-glyph=pin]:before {
-  content: '\e0a8';
-}
-
-.oi[data-glyph=play-circle]:before {
-  content: '\e0a9';
-}
-
-.oi[data-glyph=plus]:before {
-  content: '\e0aa';
-}
-
-.oi[data-glyph=power-standby]:before {
-  content: '\e0ab';
-}
-
-.oi[data-glyph=print]:before {
-  content: '\e0ac';
-}
-
-.oi[data-glyph=project]:before {
-  content: '\e0ad';
-}
-
-.oi[data-glyph=pulse]:before {
-  content: '\e0ae';
-}
-
-.oi[data-glyph=puzzle-piece]:before {
-  content: '\e0af';
-}
-
-.oi[data-glyph=question-mark]:before {
-  content: '\e0b0';
-}
-
-.oi[data-glyph=rain]:before {
-  content: '\e0b1';
-}
-
-.oi[data-glyph=random]:before {
-  content: '\e0b2';
-}
-
-.oi[data-glyph=reload]:before {
-  content: '\e0b3';
-}
-
-.oi[data-glyph=resize-both]:before {
-  content: '\e0b4';
-}
-
-.oi[data-glyph=resize-height]:before {
-  content: '\e0b5';
-}
-
-.oi[data-glyph=resize-width]:before {
-  content: '\e0b6';
-}
-
-.oi[data-glyph=rss-alt]:before {
-  content: '\e0b7';
-}
-
-.oi[data-glyph=rss]:before {
-  content: '\e0b8';
-}
-
-.oi[data-glyph=script]:before {
-  content: '\e0b9';
-}
-
-.oi[data-glyph=share-boxed]:before {
-  content: '\e0ba';
-}
-
-.oi[data-glyph=share]:before {
-  content: '\e0bb';
-}
-
-.oi[data-glyph=shield]:before {
-  content: '\e0bc';
-}
-
-.oi[data-glyph=signal]:before {
-  content: '\e0bd';
-}
-
-.oi[data-glyph=signpost]:before {
-  content: '\e0be';
-}
-
-.oi[data-glyph=sort-ascending]:before {
-  content: '\e0bf';
-}
-
-.oi[data-glyph=sort-descending]:before {
-  content: '\e0c0';
-}
-
-.oi[data-glyph=spreadsheet]:before {
-  content: '\e0c1';
-}
-
-.oi[data-glyph=star]:before {
-  content: '\e0c2';
-}
-
-.oi[data-glyph=sun]:before {
-  content: '\e0c3';
-}
-
-.oi[data-glyph=tablet]:before {
-  content: '\e0c4';
-}
-
-.oi[data-glyph=tag]:before {
-  content: '\e0c5';
-}
-
-.oi[data-glyph=tags]:before {
-  content: '\e0c6';
-}
-
-.oi[data-glyph=target]:before {
-  content: '\e0c7';
-}
-
-.oi[data-glyph=task]:before {
-  content: '\e0c8';
-}
-
-.oi[data-glyph=terminal]:before {
-  content: '\e0c9';
-}
-
-.oi[data-glyph=text]:before {
-  content: '\e0ca';
-}
-
-.oi[data-glyph=thumb-down]:before {
-  content: '\e0cb';
-}
-
-.oi[data-glyph=thumb-up]:before {
-  content: '\e0cc';
-}
-
-.oi[data-glyph=timer]:before {
-  content: '\e0cd';
-}
-
-.oi[data-glyph=transfer]:before {
-  content: '\e0ce';
-}
-
-.oi[data-glyph=trash]:before {
-  content: '\e0cf';
-}
-
-.oi[data-glyph=underline]:before {
-  content: '\e0d0';
-}
-
-.oi[data-glyph=vertical-align-bottom]:before {
-  content: '\e0d1';
-}
-
-.oi[data-glyph=vertical-align-center]:before {
-  content: '\e0d2';
-}
-
-.oi[data-glyph=vertical-align-top]:before {
-  content: '\e0d3';
-}
-
-.oi[data-glyph=video]:before {
-  content: '\e0d4';
-}
-
-.oi[data-glyph=volume-high]:before {
-  content: '\e0d5';
-}
-
-.oi[data-glyph=volume-low]:before {
-  content: '\e0d6';
-}
-
-.oi[data-glyph=volume-off]:before {
-  content: '\e0d7';
-}
-
-.oi[data-glyph=warning]:before {
-  content: '\e0d8';
-}
-
-.oi[data-glyph=wifi]:before {
-  content: '\e0d9';
-}
-
-.oi[data-glyph=wrench]:before {
-  content: '\e0da';
-}
-
-.oi[data-glyph=x]:before {
-  content: '\e0db';
-}
-
-.oi[data-glyph=yen]:before {
-  content: '\e0dc';
-}
-
-.oi[data-glyph=zoom-in]:before {
-  content: '\e0dd';
-}
-
-.oi[data-glyph=zoom-out]:before {
-  content: '\e0de';
-}
-
diff --git a/assets/static/fonts/open-iconic/font/css/open-iconic.styl b/assets/static/fonts/open-iconic/font/css/open-iconic.styl
deleted file mode 100644
index f541bc2..0000000
--- a/assets/static/fonts/open-iconic/font/css/open-iconic.styl
+++ /dev/null
@@ -1,733 +0,0 @@
- at font-face
-  font-family 'Icons'
-  src url('../fonts/open-iconic.eot')
-  src url('../fonts/open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('../fonts/open-iconic.woff') format('woff'), url('../fonts/open-iconic.ttf') format('truetype'), url('../fonts/open-iconic.otf') format('opentype'), url('../fonts/open-iconic.svg#iconic-sm') format('svg')
-  font-weight normal
-  font-style normal
-
-
-.oi[data-glyph].oi-text-replace
-  font-size 0
-  line-height 0
-
-.oi[data-glyph].oi-text-replace:before
-  width 1em
-  text-align center
-
-.oi[data-glyph]
-  &:before
-    position relative
-    top 1px
-    font-family 'Icons'
-    display inline-block
-    speak none
-    line-height 1
-    vertical-align baseline
-    font-weight normal
-    font-style normal
-    -webkit-font-smoothing antialiased
-    -moz-osx-font-smoothing grayscale
-
-  &:empty:before
-    width 1em
-    text-align center
-    box-sizing content-box
-
-  &.oi-align-left:before
-    text-align left
-
-  &.oi-align-right:before
-    text-align right
-
-  &.oi-align-center:before
-    text-align center
-
-
-  &.oi-flip-horizontal:before
-    -webkit-transform scale(-1, 1)
-    -ms-transform scale(-1, 1)
-    transform scale(-1, 1)
-
-
-  &.oi-flip-vertical:before
-    -webkit-transform scale(1, -1)
-    -ms-transform scale(-1, 1)
-    transform scale(1, -1)
-
-
-  &.oi-flip-horizontal-vertical:before
-    -webkit-transform scale(-1, -1)
-    -ms-transform scale(-1, 1)
-    transform scale(-1, -1)
-
-
-
-
-.oi[data-glyph=account-login]:before
-  content '\e000'
-
-.oi[data-glyph=account-logout]:before
-  content '\e001'
-
-.oi[data-glyph=action-redo]:before
-  content '\e002'
-
-.oi[data-glyph=action-undo]:before
-  content '\e003'
-
-.oi[data-glyph=align-center]:before
-  content '\e004'
-
-.oi[data-glyph=align-left]:before
-  content '\e005'
-
-.oi[data-glyph=align-right]:before
-  content '\e006'
-
-.oi[data-glyph=aperture]:before
-  content '\e007'
-
-.oi[data-glyph=arrow-bottom]:before
-  content '\e008'
-
-.oi[data-glyph=arrow-circle-bottom]:before
-  content '\e009'
-
-.oi[data-glyph=arrow-circle-left]:before
-  content '\e00a'
-
-.oi[data-glyph=arrow-circle-right]:before
-  content '\e00b'
-
-.oi[data-glyph=arrow-circle-top]:before
-  content '\e00c'
-
-.oi[data-glyph=arrow-left]:before
-  content '\e00d'
-
-.oi[data-glyph=arrow-right]:before
-  content '\e00e'
-
-.oi[data-glyph=arrow-thick-bottom]:before
-  content '\e00f'
-
-.oi[data-glyph=arrow-thick-left]:before
-  content '\e010'
-
-.oi[data-glyph=arrow-thick-right]:before
-  content '\e011'
-
-.oi[data-glyph=arrow-thick-top]:before
-  content '\e012'
-
-.oi[data-glyph=arrow-top]:before
-  content '\e013'
-
-.oi[data-glyph=audio-spectrum]:before
-  content '\e014'
-
-.oi[data-glyph=audio]:before
-  content '\e015'
-
-.oi[data-glyph=badge]:before
-  content '\e016'
-
-.oi[data-glyph=ban]:before
-  content '\e017'
-
-.oi[data-glyph=bar-chart]:before
-  content '\e018'
-
-.oi[data-glyph=basket]:before
-  content '\e019'
-
-.oi[data-glyph=battery-empty]:before
-  content '\e01a'
-
-.oi[data-glyph=battery-full]:before
-  content '\e01b'
-
-.oi[data-glyph=beaker]:before
-  content '\e01c'
-
-.oi[data-glyph=bell]:before
-  content '\e01d'
-
-.oi[data-glyph=bluetooth]:before
-  content '\e01e'
-
-.oi[data-glyph=bold]:before
-  content '\e01f'
-
-.oi[data-glyph=bolt]:before
-  content '\e020'
-
-.oi[data-glyph=book]:before
-  content '\e021'
-
-.oi[data-glyph=bookmark]:before
-  content '\e022'
-
-.oi[data-glyph=box]:before
-  content '\e023'
-
-.oi[data-glyph=briefcase]:before
-  content '\e024'
-
-.oi[data-glyph=british-pound]:before
-  content '\e025'
-
-.oi[data-glyph=browser]:before
-  content '\e026'
-
-.oi[data-glyph=brush]:before
-  content '\e027'
-
-.oi[data-glyph=bug]:before
-  content '\e028'
-
-.oi[data-glyph=bullhorn]:before
-  content '\e029'
-
-.oi[data-glyph=calculator]:before
-  content '\e02a'
-
-.oi[data-glyph=calendar]:before
-  content '\e02b'
-
-.oi[data-glyph=camera-slr]:before
-  content '\e02c'
-
-.oi[data-glyph=caret-bottom]:before
-  content '\e02d'
-
-.oi[data-glyph=caret-left]:before
-  content '\e02e'
-
-.oi[data-glyph=caret-right]:before
-  content '\e02f'
-
-.oi[data-glyph=caret-top]:before
-  content '\e030'
-
-.oi[data-glyph=cart]:before
-  content '\e031'
-
-.oi[data-glyph=chat]:before
-  content '\e032'
-
-.oi[data-glyph=check]:before
-  content '\e033'
-
-.oi[data-glyph=chevron-bottom]:before
-  content '\e034'
-
-.oi[data-glyph=chevron-left]:before
-  content '\e035'
-
-.oi[data-glyph=chevron-right]:before
-  content '\e036'
-
-.oi[data-glyph=chevron-top]:before
-  content '\e037'
-
-.oi[data-glyph=circle-check]:before
-  content '\e038'
-
-.oi[data-glyph=circle-x]:before
-  content '\e039'
-
-.oi[data-glyph=clipboard]:before
-  content '\e03a'
-
-.oi[data-glyph=clock]:before
-  content '\e03b'
-
-.oi[data-glyph=cloud-download]:before
-  content '\e03c'
-
-.oi[data-glyph=cloud-upload]:before
-  content '\e03d'
-
-.oi[data-glyph=cloud]:before
-  content '\e03e'
-
-.oi[data-glyph=cloudy]:before
-  content '\e03f'
-
-.oi[data-glyph=code]:before
-  content '\e040'
-
-.oi[data-glyph=cog]:before
-  content '\e041'
-
-.oi[data-glyph=collapse-down]:before
-  content '\e042'
-
-.oi[data-glyph=collapse-left]:before
-  content '\e043'
-
-.oi[data-glyph=collapse-right]:before
-  content '\e044'
-
-.oi[data-glyph=collapse-up]:before
-  content '\e045'
-
-.oi[data-glyph=command]:before
-  content '\e046'
-
-.oi[data-glyph=comment-square]:before
-  content '\e047'
-
-.oi[data-glyph=compass]:before
-  content '\e048'
-
-.oi[data-glyph=contrast]:before
-  content '\e049'
-
-.oi[data-glyph=copywriting]:before
-  content '\e04a'
-
-.oi[data-glyph=credit-card]:before
-  content '\e04b'
-
-.oi[data-glyph=crop]:before
-  content '\e04c'
-
-.oi[data-glyph=dashboard]:before
-  content '\e04d'
-
-.oi[data-glyph=data-transfer-download]:before
-  content '\e04e'
-
-.oi[data-glyph=data-transfer-upload]:before
-  content '\e04f'
-
-.oi[data-glyph=delete]:before
-  content '\e050'
-
-.oi[data-glyph=dial]:before
-  content '\e051'
-
-.oi[data-glyph=document]:before
-  content '\e052'
-
-.oi[data-glyph=dollar]:before
-  content '\e053'
-
-.oi[data-glyph=double-quote-sans-left]:before
-  content '\e054'
-
-.oi[data-glyph=double-quote-sans-right]:before
-  content '\e055'
-
-.oi[data-glyph=double-quote-serif-left]:before
-  content '\e056'
-
-.oi[data-glyph=double-quote-serif-right]:before
-  content '\e057'
-
-.oi[data-glyph=droplet]:before
-  content '\e058'
-
-.oi[data-glyph=eject]:before
-  content '\e059'
-
-.oi[data-glyph=elevator]:before
-  content '\e05a'
-
-.oi[data-glyph=ellipses]:before
-  content '\e05b'
-
-.oi[data-glyph=envelope-closed]:before
-  content '\e05c'
-
-.oi[data-glyph=envelope-open]:before
-  content '\e05d'
-
-.oi[data-glyph=euro]:before
-  content '\e05e'
-
-.oi[data-glyph=excerpt]:before
-  content '\e05f'
-
-.oi[data-glyph=expand-down]:before
-  content '\e060'
-
-.oi[data-glyph=expand-left]:before
-  content '\e061'
-
-.oi[data-glyph=expand-right]:before
-  content '\e062'
-
-.oi[data-glyph=expand-up]:before
-  content '\e063'
-
-.oi[data-glyph=external-link]:before
-  content '\e064'
-
-.oi[data-glyph=eye]:before
-  content '\e065'
-
-.oi[data-glyph=eyedropper]:before
-  content '\e066'
-
-.oi[data-glyph=file]:before
-  content '\e067'
-
-.oi[data-glyph=fire]:before
-  content '\e068'
-
-.oi[data-glyph=flag]:before
-  content '\e069'
-
-.oi[data-glyph=flash]:before
-  content '\e06a'
-
-.oi[data-glyph=folder]:before
-  content '\e06b'
-
-.oi[data-glyph=fork]:before
-  content '\e06c'
-
-.oi[data-glyph=fullscreen-enter]:before
-  content '\e06d'
-
-.oi[data-glyph=fullscreen-exit]:before
-  content '\e06e'
-
-.oi[data-glyph=globe]:before
-  content '\e06f'
-
-.oi[data-glyph=graph]:before
-  content '\e070'
-
-.oi[data-glyph=grid-four-up]:before
-  content '\e071'
-
-.oi[data-glyph=grid-three-up]:before
-  content '\e072'
-
-.oi[data-glyph=grid-two-up]:before
-  content '\e073'
-
-.oi[data-glyph=hard-drive]:before
-  content '\e074'
-
-.oi[data-glyph=header]:before
-  content '\e075'
-
-.oi[data-glyph=headphones]:before
-  content '\e076'
-
-.oi[data-glyph=heart]:before
-  content '\e077'
-
-.oi[data-glyph=home]:before
-  content '\e078'
-
-.oi[data-glyph=image]:before
-  content '\e079'
-
-.oi[data-glyph=inbox]:before
-  content '\e07a'
-
-.oi[data-glyph=infinity]:before
-  content '\e07b'
-
-.oi[data-glyph=info]:before
-  content '\e07c'
-
-.oi[data-glyph=italic]:before
-  content '\e07d'
-
-.oi[data-glyph=justify-center]:before
-  content '\e07e'
-
-.oi[data-glyph=justify-left]:before
-  content '\e07f'
-
-.oi[data-glyph=justify-right]:before
-  content '\e080'
-
-.oi[data-glyph=key]:before
-  content '\e081'
-
-.oi[data-glyph=laptop]:before
-  content '\e082'
-
-.oi[data-glyph=layers]:before
-  content '\e083'
-
-.oi[data-glyph=lightbulb]:before
-  content '\e084'
-
-.oi[data-glyph=link-broken]:before
-  content '\e085'
-
-.oi[data-glyph=link-intact]:before
-  content '\e086'
-
-.oi[data-glyph=list-rich]:before
-  content '\e087'
-
-.oi[data-glyph=list]:before
-  content '\e088'
-
-.oi[data-glyph=location]:before
-  content '\e089'
-
-.oi[data-glyph=lock-locked]:before
-  content '\e08a'
-
-.oi[data-glyph=lock-unlocked]:before
-  content '\e08b'
-
-.oi[data-glyph=loop-circular]:before
-  content '\e08c'
-
-.oi[data-glyph=loop-square]:before
-  content '\e08d'
-
-.oi[data-glyph=loop]:before
-  content '\e08e'
-
-.oi[data-glyph=magnifying-glass]:before
-  content '\e08f'
-
-.oi[data-glyph=map-marker]:before
-  content '\e090'
-
-.oi[data-glyph=map]:before
-  content '\e091'
-
-.oi[data-glyph=media-pause]:before
-  content '\e092'
-
-.oi[data-glyph=media-play]:before
-  content '\e093'
-
-.oi[data-glyph=media-record]:before
-  content '\e094'
-
-.oi[data-glyph=media-skip-backward]:before
-  content '\e095'
-
-.oi[data-glyph=media-skip-forward]:before
-  content '\e096'
-
-.oi[data-glyph=media-step-backward]:before
-  content '\e097'
-
-.oi[data-glyph=media-step-forward]:before
-  content '\e098'
-
-.oi[data-glyph=media-stop]:before
-  content '\e099'
-
-.oi[data-glyph=medical-cross]:before
-  content '\e09a'
-
-.oi[data-glyph=menu]:before
-  content '\e09b'
-
-.oi[data-glyph=microphone]:before
-  content '\e09c'
-
-.oi[data-glyph=minus]:before
-  content '\e09d'
-
-.oi[data-glyph=monitor]:before
-  content '\e09e'
-
-.oi[data-glyph=moon]:before
-  content '\e09f'
-
-.oi[data-glyph=move]:before
-  content '\e0a0'
-
-.oi[data-glyph=musical-note]:before
-  content '\e0a1'
-
-.oi[data-glyph=paperclip]:before
-  content '\e0a2'
-
-.oi[data-glyph=pencil]:before
-  content '\e0a3'
-
-.oi[data-glyph=people]:before
-  content '\e0a4'
-
-.oi[data-glyph=person]:before
-  content '\e0a5'
-
-.oi[data-glyph=phone]:before
-  content '\e0a6'
-
-.oi[data-glyph=pie-chart]:before
-  content '\e0a7'
-
-.oi[data-glyph=pin]:before
-  content '\e0a8'
-
-.oi[data-glyph=play-circle]:before
-  content '\e0a9'
-
-.oi[data-glyph=plus]:before
-  content '\e0aa'
-
-.oi[data-glyph=power-standby]:before
-  content '\e0ab'
-
-.oi[data-glyph=print]:before
-  content '\e0ac'
-
-.oi[data-glyph=project]:before
-  content '\e0ad'
-
-.oi[data-glyph=pulse]:before
-  content '\e0ae'
-
-.oi[data-glyph=puzzle-piece]:before
-  content '\e0af'
-
-.oi[data-glyph=question-mark]:before
-  content '\e0b0'
-
-.oi[data-glyph=rain]:before
-  content '\e0b1'
-
-.oi[data-glyph=random]:before
-  content '\e0b2'
-
-.oi[data-glyph=reload]:before
-  content '\e0b3'
-
-.oi[data-glyph=resize-both]:before
-  content '\e0b4'
-
-.oi[data-glyph=resize-height]:before
-  content '\e0b5'
-
-.oi[data-glyph=resize-width]:before
-  content '\e0b6'
-
-.oi[data-glyph=rss-alt]:before
-  content '\e0b7'
-
-.oi[data-glyph=rss]:before
-  content '\e0b8'
-
-.oi[data-glyph=script]:before
-  content '\e0b9'
-
-.oi[data-glyph=share-boxed]:before
-  content '\e0ba'
-
-.oi[data-glyph=share]:before
-  content '\e0bb'
-
-.oi[data-glyph=shield]:before
-  content '\e0bc'
-
-.oi[data-glyph=signal]:before
-  content '\e0bd'
-
-.oi[data-glyph=signpost]:before
-  content '\e0be'
-
-.oi[data-glyph=sort-ascending]:before
-  content '\e0bf'
-
-.oi[data-glyph=sort-descending]:before
-  content '\e0c0'
-
-.oi[data-glyph=spreadsheet]:before
-  content '\e0c1'
-
-.oi[data-glyph=star]:before
-  content '\e0c2'
-
-.oi[data-glyph=sun]:before
-  content '\e0c3'
-
-.oi[data-glyph=tablet]:before
-  content '\e0c4'
-
-.oi[data-glyph=tag]:before
-  content '\e0c5'
-
-.oi[data-glyph=tags]:before
-  content '\e0c6'
-
-.oi[data-glyph=target]:before
-  content '\e0c7'
-
-.oi[data-glyph=task]:before
-  content '\e0c8'
-
-.oi[data-glyph=terminal]:before
-  content '\e0c9'
-
-.oi[data-glyph=text]:before
-  content '\e0ca'
-
-.oi[data-glyph=thumb-down]:before
-  content '\e0cb'
-
-.oi[data-glyph=thumb-up]:before
-  content '\e0cc'
-
-.oi[data-glyph=timer]:before
-  content '\e0cd'
-
-.oi[data-glyph=transfer]:before
-  content '\e0ce'
-
-.oi[data-glyph=trash]:before
-  content '\e0cf'
-
-.oi[data-glyph=underline]:before
-  content '\e0d0'
-
-.oi[data-glyph=vertical-align-bottom]:before
-  content '\e0d1'
-
-.oi[data-glyph=vertical-align-center]:before
-  content '\e0d2'
-
-.oi[data-glyph=vertical-align-top]:before
-  content '\e0d3'
-
-.oi[data-glyph=video]:before
-  content '\e0d4'
-
-.oi[data-glyph=volume-high]:before
-  content '\e0d5'
-
-.oi[data-glyph=volume-low]:before
-  content '\e0d6'
-
-.oi[data-glyph=volume-off]:before
-  content '\e0d7'
-
-.oi[data-glyph=warning]:before
-  content '\e0d8'
-
-.oi[data-glyph=wifi]:before
-  content '\e0d9'
-
-.oi[data-glyph=wrench]:before
-  content '\e0da'
-
-.oi[data-glyph=x]:before
-  content '\e0db'
-
-.oi[data-glyph=yen]:before
-  content '\e0dc'
-
-.oi[data-glyph=zoom-in]:before
-  content '\e0dd'
-
-.oi[data-glyph=zoom-out]:before
-  content '\e0de'
diff --git a/assets/static/fonts/open-iconic/font/fonts/open-iconic.eot b/assets/static/fonts/open-iconic/font/fonts/open-iconic.eot
deleted file mode 100644
index f98177d..0000000
Binary files a/assets/static/fonts/open-iconic/font/fonts/open-iconic.eot and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/font/fonts/open-iconic.otf b/assets/static/fonts/open-iconic/font/fonts/open-iconic.otf
deleted file mode 100644
index f6bd684..0000000
Binary files a/assets/static/fonts/open-iconic/font/fonts/open-iconic.otf and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/font/fonts/open-iconic.svg b/assets/static/fonts/open-iconic/font/fonts/open-iconic.svg
deleted file mode 100644
index 32b2c4e..0000000
--- a/assets/static/fonts/open-iconic/font/fonts/open-iconic.svg
+++ /dev/null
@@ -1,543 +0,0 @@
-<?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" >
-<!--
-2014-7-1: Created.
--->
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata>
-Created by FontForge 20120731 at Tue Jul  1 20:39:22 2014
- By P.J. Onori
-Created by P.J. Onori with FontForge 2.0 (http://fontforge.sf.net)
-</metadata>
-<defs>
-<font id="open-iconic" horiz-adv-x="800" >
-  <font-face 
-    font-family="Icons"
-    font-weight="400"
-    font-stretch="normal"
-    units-per-em="800"
-    panose-1="2 0 5 3 0 0 0 0 0 0"
-    ascent="800"
-    descent="0"
-    bbox="-0.5 -101 802 800.126"
-    underline-thickness="50"
-    underline-position="-100"
-    unicode-range="U+E000-E0DE"
-  />
-    <missing-glyph />
-    <glyph glyph-name="" unicode="&#xe000;" 
-d="M300 700h500v-700h-500v100h400v500h-400v100zM400 500l200 -150l-200 -150v100h-400v100h400v100z" />
-    <glyph glyph-name="1" unicode="&#xe001;" 
-d="M300 700h500v-700h-500v100h400v500h-400v100zM200 500v-100h400v-100h-400v-100l-200 150z" />
-    <glyph glyph-name="2" unicode="&#xe002;" 
-d="M350 700c193 0 350 -157 350 -350v-50h100l-200 -200l-200 200h100v50c0 138 -112 250 -250 250s-250 -112 -250 -250c0 193 157 350 350 350z" />
-    <glyph glyph-name="3" unicode="&#xe003;" 
-d="M450 700c193 0 350 -157 350 -350c0 138 -112 250 -250 250s-250 -112 -250 -250v-50h100l-200 -200l-200 200h100v50c0 193 157 350 350 350z" />
-    <glyph glyph-name="4" unicode="&#xe004;" 
-d="M0 700h800v-100h-800v100zM100 500h600v-100h-600v100zM0 300h800v-100h-800v100zM100 100h600v-100h-600v100z" />
-    <glyph glyph-name="5" unicode="&#xe005;" 
-d="M0 700h800v-100h-800v100zM0 500h600v-100h-600v100zM0 300h800v-100h-800v100zM0 100h600v-100h-600v100z" />
-    <glyph glyph-name="6" unicode="&#xe006;" 
-d="M0 700h800v-100h-800v100zM200 500h600v-100h-600v100zM0 300h800v-100h-800v100zM200 100h600v-100h-600v100z" />
-    <glyph glyph-name="7" unicode="&#xe007;" 
-d="M400 700c75 0 146 -23 206 -59l-75 -225l-322 234c57 31 122 50 191 50zM125 588l191 -138l-310 -222c-4 24 -6 47 -6 72c0 114 49 215 125 288zM688 575c69 -72 112 -168 112 -275c0 -35 -8 -68 -16 -100h-218zM216 253l112 -347c-128 23 -232 109 -287 222zM372 100
-h372c-64 -109 -177 -185 -310 -197z" />
-    <glyph glyph-name="8" unicode="&#xe008;" horiz-adv-x="600" 
-d="M200 800h100v-500h200l-247 -300l-253 300h200v500z" />
-    <glyph glyph-name="9" unicode="&#xe009;" 
-d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM300 700v-300h-200l300 -300l300 300h-200v300h-200z" />
-    <glyph glyph-name="a" unicode="&#xe00a;" 
-d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM400 700l-300 -300l300 -300v200h300v200h-300v200z" />
-    <glyph glyph-name="b" unicode="&#xe00b;" 
-d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM400 700v-200h-300v-200h300v-200l300 300z" />
-    <glyph glyph-name="c" unicode="&#xe00c;" 
-d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM400 700l-300 -300h200v-300h200v300h200z" />
-    <glyph glyph-name="d" unicode="&#xe00d;" 
-d="M300 600v-200h500v-100h-500v-200l-300 247z" />
-    <glyph glyph-name="e" unicode="&#xe00e;" 
-d="M500 600l300 -247l-300 -253v200h-500v100h500v200z" />
-    <glyph glyph-name="f" unicode="&#xe00f;" horiz-adv-x="600" 
-d="M200 800h200v-500h200l-297 -300l-303 300h200v500z" />
-    <glyph glyph-name="10" unicode="&#xe010;" 
-d="M300 700v-200h500v-200h-500v-200l-300 297z" />
-    <glyph glyph-name="11" unicode="&#xe011;" 
-d="M500 700l300 -297l-300 -303v200h-500v200h500v200z" />
-    <glyph glyph-name="12" unicode="&#xe012;" horiz-adv-x="600" 
-d="M297 800l303 -300h-200v-500h-200v500h-200z" />
-    <glyph glyph-name="13" unicode="&#xe013;" horiz-adv-x="600" 
-d="M247 800l253 -300h-200v-500h-100v500h-200z" />
-    <glyph glyph-name="14" unicode="&#xe014;" 
-d="M400 800h100v-800h-100v800zM200 700h100v-600h-100v600zM600 600h100v-400h-100v400zM0 500h100v-200h-100v200z" />
-    <glyph glyph-name="15" unicode="&#xe015;" 
-d="M116 600l72 -72c-54 -54 -88 -126 -88 -209s34 -159 88 -213l-72 -72c-72 72 -116 175 -116 285s44 209 116 281zM684 600c72 -72 116 -171 116 -281s-44 -213 -116 -285l-72 72c54 54 88 130 88 213s-34 155 -88 209zM259 460l69 -72c-18 -18 -28 -41 -28 -69
-s10 -54 28 -72l-69 -72c-36 36 -59 89 -59 144s23 105 59 141zM541 459c36 -36 59 -85 59 -140s-23 -108 -59 -144l-69 72c18 18 28 44 28 72s-10 51 -28 69z" />
-    <glyph glyph-name="16" unicode="&#xe016;" horiz-adv-x="400" 
-d="M200 800c110 0 200 -90 200 -200s-90 -200 -200 -200s-200 90 -200 200s90 200 200 200zM100 319c31 -11 65 -19 100 -19s68 8 100 19v-319l-100 100l-100 -100v319z" />
-    <glyph glyph-name="17" unicode="&#xe017;" 
-d="M400 800c220 0 400 -180 400 -400s-180 -400 -400 -400s-400 180 -400 400s180 400 400 400zM400 700c-166 0 -300 -134 -300 -300c0 -66 21 -126 56 -175l419 419c-49 35 -109 56 -175 56zM644 575l-419 -419c49 -35 109 -56 175 -56c166 0 300 134 300 300
-c0 66 -21 126 -56 175z" />
-    <glyph glyph-name="18" unicode="&#xe018;" 
-d="M0 700h100v-600h700v-100h-800v700zM500 700h200v-500h-200v500zM200 500h200v-300h-200v300z" />
-    <glyph glyph-name="19" unicode="&#xe019;" 
-d="M397 800c13 1 23 -4 34 -13c2 -2 214 -254 241 -287h128v-100h-100v-366c0 -18 -16 -34 -34 -34h-532c-18 0 -34 16 -34 34v366h-100v100h128l234 281c9 11 22 18 35 19zM400 672l-144 -172h288zM250 300c-28 0 -50 -22 -50 -50v-100c0 -28 22 -50 50 -50s50 22 50 50
-v100c0 28 -22 50 -50 50zM550 300c-28 0 -50 -22 -50 -50v-100c0 -28 22 -50 50 -50s50 22 50 50v100c0 28 -22 50 -50 50z" />
-    <glyph glyph-name="1a" unicode="&#xe01a;" 
-d="M9 700h682c6 0 9 -4 9 -10v-190h100v-200h-100v-191c0 -6 -3 -9 -9 -9h-682c-6 0 -9 3 -9 9v582c0 6 3 9 9 9zM100 600v-400h500v400h-500z" />
-    <glyph glyph-name="1b" unicode="&#xe01b;" 
-d="M9 700h682c6 0 9 -4 9 -10v-190h100v-200h-100v-191c0 -6 -3 -9 -9 -9h-682c-6 0 -9 3 -9 9v582c0 6 3 9 9 9z" />
-    <glyph glyph-name="1c" unicode="&#xe01c;" 
-d="M92 650c0 23 19 50 45 50h3h5h5h500c28 0 50 -22 50 -50s-22 -50 -50 -50h-50v-141c9 -17 120 -231 166 -309c16 -26 34 -61 34 -106c0 -39 -15 -77 -41 -103h-3c-26 -25 -62 -41 -100 -41h-512c-39 0 -77 15 -103 41s-41 64 -41 103c0 46 18 80 34 106
-c46 78 157 292 166 309v141h-50c-2 0 -6 -1 -8 -1c-28 0 -50 23 -50 51zM500 600h-200v-162l-6 -10s-63 -123 -119 -228h450c-56 105 -119 228 -119 228l-6 10v162z" />
-    <glyph glyph-name="1d" unicode="&#xe01d;" 
-d="M400 800c110 0 200 -90 200 -200c0 -104 52 -198 134 -266c41 -34 66 -82 66 -134h-800c0 52 25 100 66 134c82 68 134 162 134 266c0 110 90 200 200 200zM300 100h200c0 -55 -45 -100 -100 -100s-100 45 -100 100z" />
-    <glyph glyph-name="1e" unicode="&#xe01e;" horiz-adv-x="600" 
-d="M150 800h50l350 -250l-225 -147l225 -153l-350 -250h-50v250l-75 -75l-75 75l150 150l-150 150l75 75l75 -75v250zM250 650v-200l150 100zM250 350v-200l150 100z" />
-    <glyph glyph-name="1f" unicode="&#xe01f;" 
-d="M0 800h500c110 0 200 -90 200 -200c0 -47 -17 -91 -44 -125c85 -40 144 -125 144 -225c0 -138 -112 -250 -250 -250h-550v100c55 0 100 45 100 100v400c0 55 -45 100 -100 100v100zM300 700v-200h100c55 0 100 45 100 100s-45 100 -100 100h-100zM300 400v-300h150
-c83 0 150 67 150 150s-67 150 -150 150h-150z" />
-    <glyph glyph-name="20" unicode="&#xe020;" horiz-adv-x="600" 
-d="M300 800v-300h200l-300 -500v300h-200z" />
-    <glyph glyph-name="21" unicode="&#xe021;" 
-d="M100 800h300v-300l100 100l100 -100v300h50c28 0 50 -22 50 -50v-550h-550c-28 0 -50 -22 -50 -50s22 -50 50 -50h550v-100h-550c-83 0 -150 67 -150 150v550l3 19c8 39 39 70 78 78z" />
-    <glyph glyph-name="22" unicode="&#xe022;" horiz-adv-x="400" 
-d="M0 800h400v-800l-200 200l-200 -200v800z" />
-    <glyph glyph-name="23" unicode="&#xe023;" 
-d="M0 800h800v-100h-800v100zM0 600h300v-103h203v103h297v-591c0 -6 -3 -9 -9 -9h-782c-6 0 -9 3 -9 9v591z" />
-    <glyph glyph-name="24" unicode="&#xe024;" 
-d="M300 800h200c55 0 100 -45 100 -100v-100h191c6 0 9 -3 9 -9v-241c0 -28 -22 -50 -50 -50h-700c-28 0 -50 22 -50 50v241c0 6 3 9 9 9h191v100c0 55 45 100 100 100zM300 700v-100h200v100h-200zM0 209c16 -6 32 -9 50 -9h700c18 0 34 3 50 9v-200c0 -6 -3 -9 -9 -9h-782
-c-6 0 -9 3 -9 9v200z" />
-    <glyph glyph-name="25" unicode="&#xe025;" horiz-adv-x="600" 
-d="M300 800c58 0 110 -16 147 -53s53 -89 53 -147h-100c0 39 -11 61 -25 75s-36 25 -75 25c-35 0 -55 -10 -72 -31s-28 -55 -28 -94c0 -51 20 -107 28 -175h172v-100h-178c-14 -60 -49 -127 -113 -200h491v-100h-600v122l16 12c69 69 95 121 106 166h-122v100h125
-c-8 50 -25 106 -25 175c0 58 16 114 50 156c34 43 88 69 150 69z" />
-    <glyph glyph-name="26" unicode="&#xe026;" 
-d="M34 700h4h3h4h5h700c28 0 50 -22 50 -50v-700c0 -28 -22 -50 -50 -50h-700c-28 0 -50 22 -50 50v700v2c0 20 15 42 34 48zM150 600c-28 0 -50 -22 -50 -50s22 -50 50 -50s50 22 50 50s-22 50 -50 50zM350 600c-28 0 -50 -22 -50 -50s22 -50 50 -50h300c28 0 50 22 50 50
-s-22 50 -50 50h-300zM100 400v-400h600v400h-600z" />
-    <glyph glyph-name="27" unicode="&#xe027;" 
-d="M744 797l6 -3l44 -44c4 -4 3 -8 0 -12l-266 -375l-15 -13l-25 -12c-23 72 -78 127 -150 150l12 25l13 15l375 266zM266 400c74 0 134 -60 134 -134c0 -147 -119 -266 -266 -266c-48 0 -95 12 -134 34c80 46 134 133 134 232c0 74 58 134 132 134z" />
-    <glyph glyph-name="28" unicode="&#xe028;" 
-d="M9 451c0 23 19 50 46 50c8 0 19 -3 26 -7l131 -66l29 22c-79 81 -1 250 118 250s197 -167 119 -250l28 -22l131 66c6 4 12 7 21 7c28 0 50 -22 50 -50c0 -17 -12 -37 -27 -45l-115 -56c9 -16 19 -33 25 -50h68c28 0 50 -22 50 -50s-22 -50 -50 -50h-50
-c0 -23 -2 -45 -6 -66l78 -40c21 -5 37 -28 37 -49c0 -28 -22 -50 -50 -50c-10 0 -23 5 -31 11l-65 35c-24 -46 -62 -86 -103 -110c-35 19 -60 45 -60 72v135v4v5v6v5v5v87c0 28 -22 50 -50 50c-24 0 -45 -17 -50 -40c1 -3 1 -8 1 -11s0 -8 -1 -11v-82v-4v-5v-144
-c0 -28 -24 -53 -59 -72c-41 25 -79 64 -103 110l-66 -35c-8 -6 -21 -11 -31 -11c-28 0 -50 22 -50 50c0 21 16 44 37 49l78 40c-4 21 -6 43 -6 66h-50h-5c-28 0 -50 22 -50 50c0 26 22 50 50 50h5h69c6 17 16 34 25 50l-116 56c-16 7 -28 27 -28 45z" />
-    <glyph glyph-name="29" unicode="&#xe029;" 
-d="M600 700h91c6 0 9 -3 9 -9v-582c0 -6 -3 -9 -9 -9h-91v600zM210 503l290 147v-500l-250 125v-3c-15 0 -25 -8 -28 -22l75 -178c11 -25 0 -58 -25 -69s-58 0 -69 25l-103 272h-91c-6 0 -9 3 -9 9v182c0 6 3 9 9 9h182z" />
-    <glyph glyph-name="2a" unicode="&#xe02a;" 
-d="M9 800h682c6 0 9 -3 9 -9v-782c0 -6 -3 -9 -9 -9h-682c-6 0 -9 3 -9 9v782c0 6 3 9 9 9zM100 700v-200h500v200h-500zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400v-300h100v300h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100z" />
-    <glyph glyph-name="2b" unicode="&#xe02b;" 
-d="M0 800h700v-200h-700v200zM0 500h700v-491c0 -6 -3 -9 -9 -9h-682c-6 0 -9 3 -9 9v491zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400v-100h100v100h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100z" />
-    <glyph glyph-name="2c" unicode="&#xe02c;" 
-d="M409 800h182c6 0 10 -4 12 -9l94 -182c2 -5 6 -9 12 -9h82c6 0 9 -3 9 -9v-582c0 -6 -3 -9 -9 -9h-782c-6 0 -9 3 -9 9v441c0 83 67 150 150 150h141c6 0 10 4 12 9l94 182c2 5 6 9 12 9zM150 500c-28 0 -50 -22 -50 -50s22 -50 50 -50s50 22 50 50s-22 50 -50 50z
-M500 500c-110 0 -200 -90 -200 -200s90 -200 200 -200s200 90 200 200s-90 200 -200 200zM500 400c55 0 100 -45 100 -100s-45 -100 -100 -100s-100 45 -100 100s45 100 100 100z" />
-    <glyph glyph-name="2d" unicode="&#xe02d;" 
-d="M0 600h800l-400 -400z" />
-    <glyph glyph-name="2e" unicode="&#xe02e;" horiz-adv-x="400" 
-d="M400 800v-800l-400 400z" />
-    <glyph glyph-name="2f" unicode="&#xe02f;" horiz-adv-x="400" 
-d="M0 800l400 -400l-400 -400v800z" />
-    <glyph glyph-name="30" unicode="&#xe030;" 
-d="M400 600l400 -400h-800z" />
-    <glyph glyph-name="31" unicode="&#xe031;" 
-d="M0 550c0 23 20 50 46 50h3h5h4h200c17 0 37 -13 44 -28l38 -72h444c14 0 19 -12 15 -25l-81 -250c-4 -13 -21 -25 -35 -25h-350c-14 0 -30 12 -34 25c-27 83 -54 167 -81 250l-10 25h-150c-2 0 -5 -1 -7 -1c-28 0 -51 23 -51 51zM358 100c28 0 50 -22 50 -50
-s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM658 100c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50z" />
-    <glyph glyph-name="32" unicode="&#xe032;" 
-d="M0 700h500v-100h-300v-300h-100l-100 -100v500zM300 500h500v-500l-100 100h-400v400z" />
-    <glyph glyph-name="33" unicode="&#xe033;" 
-d="M641 700l143 -141l-493 -493c-71 76 -146 148 -219 222l-72 71l141 141c50 -51 101 -101 153 -150c116 117 234 231 347 350z" />
-    <glyph glyph-name="34" unicode="&#xe034;" 
-d="M150 600l250 -250l250 250l150 -150l-400 -400l-400 400z" />
-    <glyph glyph-name="35" unicode="&#xe035;" horiz-adv-x="600" 
-d="M400 800l150 -150l-250 -250l250 -250l-150 -150l-400 400z" />
-    <glyph glyph-name="36" unicode="&#xe036;" horiz-adv-x="600" 
-d="M150 800l400 -400l-400 -400l-150 150l250 250l-250 250z" />
-    <glyph glyph-name="37" unicode="&#xe037;" 
-d="M400 600l400 -400l-150 -150l-250 250l-250 -250l-150 150z" />
-    <glyph glyph-name="38" unicode="&#xe038;" 
-d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM600 622l-250 -250l-100 100l-72 -72l172 -172l322 322z" />
-    <glyph glyph-name="39" unicode="&#xe039;" 
-d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM250 622l-72 -72l150 -150l-150 -150l72 -72l150 150l150 -150l72 72l-150 150l150 150l-72 72l-150 -150z" />
-    <glyph glyph-name="3a" unicode="&#xe03a;" 
-d="M350 800c28 0 50 -22 50 -50v-50h75c14 0 25 -11 25 -25v-75h-300v75c0 14 11 25 25 25h75v50c0 28 22 50 50 50zM25 700h75v-200h500v200h75c14 0 25 -11 25 -25v-650c0 -14 -11 -25 -25 -25h-650c-14 0 -25 11 -25 25v650c0 14 11 25 25 25z" />
-    <glyph glyph-name="3b" unicode="&#xe03b;" 
-d="M400 800c220 0 400 -180 400 -400s-180 -400 -400 -400s-400 180 -400 400s180 400 400 400zM400 700c-166 0 -300 -134 -300 -300s134 -300 300 -300s300 134 300 300s-134 300 -300 300zM350 600h100v-181c23 -24 47 -47 72 -69l-72 -72c-27 30 -55 59 -84 88l-16 12
-v222z" />
-    <glyph glyph-name="3c" unicode="&#xe03c;" 
-d="M450 800c138 0 250 -112 250 -250v-50c58 -21 100 -85 100 -150c0 -18 -3 -34 -9 -50h-191v50c0 83 -67 150 -150 150s-150 -67 -150 -150v-50h-272c-17 30 -28 63 -28 100c0 110 90 200 200 200c23 114 129 200 250 200zM434 400h3h4c3 0 6 1 9 1c28 0 50 -22 50 -50v-1
-v-150h150l-200 -200l-200 200h150v150v2c0 20 15 42 34 48z" />
-    <glyph glyph-name="3d" unicode="&#xe03d;" 
-d="M450 800c138 0 250 -112 250 -250v-50c58 -21 100 -85 100 -150c0 -18 -3 -34 -9 -50h-141l-200 200l-200 -200h-222c-17 30 -28 63 -28 100c0 110 90 200 200 200c23 114 129 200 250 200zM450 350l250 -250h-200v-50c0 -28 -22 -50 -50 -50s-50 22 -50 50v50h-200z" />
-    <glyph glyph-name="3e" unicode="&#xe03e;" 
-d="M450 700c138 0 250 -112 250 -250v-50c58 -21 100 -85 100 -150c0 -83 -67 -150 -150 -150h-450c-110 0 -200 90 -200 200s90 200 200 200c23 114 129 200 250 200z" />
-    <glyph glyph-name="3f" unicode="&#xe03f;" 
-d="M250 800c82 0 154 -40 200 -100c-143 0 -270 -85 -325 -209c-36 -10 -70 -25 -100 -47c-16 33 -25 67 -25 106c0 138 112 250 250 250zM450 600c138 0 250 -112 250 -250v-50c58 -21 100 -85 100 -150c0 -83 -67 -150 -150 -150h-450c-110 0 -200 90 -200 200
-s90 200 200 200c23 114 129 200 250 200z" />
-    <glyph glyph-name="40" unicode="&#xe040;" 
-d="M500 700h100l-300 -600h-100zM100 600h100l-100 -200l100 -200h-100l-100 200zM600 600h100l100 -200l-100 -200h-100l100 200z" />
-    <glyph glyph-name="41" unicode="&#xe041;" 
-d="M350 800h100l50 -119l28 -12l119 50l72 -72l-50 -119l12 -28l119 -50v-100l-119 -50l-12 -28l50 -119l-72 -72l-119 50l-28 -12l-50 -119h-100l-50 119l-28 12l-119 -50l-72 72l50 119l-12 28l-119 50v100l119 50l12 28l-50 119l72 72l119 -50l28 12zM400 550
-c-83 0 -150 -67 -150 -150s67 -150 150 -150s150 67 150 150s-67 150 -150 150z" />
-    <glyph glyph-name="42" unicode="&#xe042;" 
-d="M0 800h800v-200h-800v200zM200 500h400l-200 -200zM0 100h800v-100h-800v100z" />
-    <glyph glyph-name="43" unicode="&#xe043;" 
-d="M0 800h100v-800h-100v800zM600 800h200v-800h-200v800zM500 600v-400l-200 200z" />
-    <glyph glyph-name="44" unicode="&#xe044;" 
-d="M0 800h200v-800h-200v800zM700 800h100v-800h-100v800zM300 600l200 -200l-200 -200v400z" />
-    <glyph glyph-name="45" unicode="&#xe045;" 
-d="M0 800h800v-100h-800v100zM400 500l200 -200h-400zM0 200h800v-200h-800v200z" />
-    <glyph glyph-name="46" unicode="&#xe046;" 
-d="M150 700c83 0 150 -67 150 -150v-50h100v50c0 83 67 150 150 150s150 -67 150 -150s-67 -150 -150 -150h-50v-100h50c83 0 150 -67 150 -150s-67 -150 -150 -150s-150 67 -150 150v50h-100v-50c0 -83 -67 -150 -150 -150s-150 67 -150 150s67 150 150 150h50v100h-50
-c-83 0 -150 67 -150 150s67 150 150 150zM150 600c-28 0 -50 -22 -50 -50s22 -50 50 -50h50v50c0 28 -22 50 -50 50zM550 600c-28 0 -50 -22 -50 -50v-50h50c28 0 50 22 50 50s-22 50 -50 50zM300 400v-100h100v100h-100zM150 200c-28 0 -50 -22 -50 -50s22 -50 50 -50
-s50 22 50 50v50h-50zM500 200v-50c0 -28 22 -50 50 -50s50 22 50 50s-22 50 -50 50h-50z" />
-    <glyph glyph-name="47" unicode="&#xe047;" 
-d="M0 791c0 5 4 9 9 9h782c6 0 9 -4 9 -10v-790l-200 200h-591c-6 0 -9 3 -9 9v582z" />
-    <glyph glyph-name="48" unicode="&#xe048;" 
-d="M400 800c220 0 400 -180 400 -400s-180 -400 -400 -400s-400 180 -400 400s180 400 400 400zM400 700c-166 0 -300 -134 -300 -300s134 -300 300 -300s300 134 300 300s-134 300 -300 300zM600 600l-100 -300l-300 -100l100 300zM400 450c-28 0 -50 -22 -50 -50
-s22 -50 50 -50s50 22 50 50s-22 50 -50 50z" />
-    <glyph glyph-name="49" unicode="&#xe049;" 
-d="M400 800c220 0 400 -180 400 -400s-180 -400 -400 -400s-400 180 -400 400s180 400 400 400zM400 700v-600c166 0 300 134 300 300s-134 300 -300 300z" />
-    <glyph glyph-name="4a" unicode="&#xe04a;" 
-d="M0 800h800v-100h-800v100zM0 600h500v-100h-500v100zM0 300h800v-100h-800v100zM0 100h600v-100h-600v100zM750 100c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50z" />
-    <glyph glyph-name="4b" unicode="&#xe04b;" 
-d="M25 700h750c14 0 25 -11 25 -25v-75h-800v75c0 14 11 25 25 25zM0 500h800v-375c0 -14 -11 -25 -25 -25h-750c-14 0 -25 11 -25 25v375zM100 300v-100h100v100h-100zM300 300v-100h100v100h-100z" />
-    <glyph glyph-name="4c" unicode="&#xe04c;" 
-d="M100 800h100v-100h450l100 100l50 -50l-100 -100v-450h100v-100h-100v-100h-100v100h-500v500h-100v100h100v100zM200 600v-350l350 350h-350zM600 550l-350 -350h350v350z" />
-    <glyph glyph-name="4d" unicode="&#xe04d;" 
-d="M400 800c220 0 400 -180 400 -400s-180 -400 -400 -400s-400 180 -400 400s180 400 400 400zM400 700c-166 0 -300 -134 -300 -300s134 -300 300 -300s300 134 300 300s-134 300 -300 300zM400 600c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50z
-M200 452c0 20 15 42 34 48h3h3h8c12 0 28 -7 36 -16l91 -90l25 6c55 0 100 -45 100 -100s-45 -100 -100 -100s-100 45 -100 100l6 25l-90 91c-9 8 -16 24 -16 36zM550 500c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50z" />
-    <glyph glyph-name="4e" unicode="&#xe04e;" 
-d="M300 800h200v-300h200l-300 -300l-300 300h200v300zM0 100h800v-100h-800v100z" />
-    <glyph glyph-name="4f" unicode="&#xe04f;" 
-d="M0 800h800v-100h-800v100zM400 600l300 -300h-200v-300h-200v300h-200z" />
-    <glyph glyph-name="50" unicode="&#xe050;" 
-d="M200 700h600v-600h-600l-200 300zM350 622l-72 -72l150 -150l-150 -150l72 -72l150 150l150 -150l72 72l-150 150l150 150l-72 72l-150 -150z" />
-    <glyph glyph-name="51" unicode="&#xe051;" 
-d="M400 700c220 0 400 -180 400 -400h-100c0 166 -134 300 -300 300s-300 -134 -300 -300h-100c0 220 180 400 400 400zM341 491l59 -88l59 88c81 -25 141 -101 141 -191c0 -110 -90 -200 -200 -200s-200 90 -200 200c0 90 60 166 141 191z" />
-    <glyph glyph-name="52" unicode="&#xe052;" 
-d="M0 800h300v-400h400v-400h-700v800zM400 800l300 -300h-300v300zM100 600v-100h100v100h-100zM100 400v-100h100v100h-100zM100 200v-100h400v100h-400z" />
-    <glyph glyph-name="53" unicode="&#xe053;" horiz-adv-x="600" 
-d="M200 700h100v-100h75c30 0 58 -6 81 -22s44 -44 44 -78v-100h-100v94c-4 3 -13 6 -25 6h-250c-14 0 -25 -11 -25 -25v-50c0 -15 20 -40 34 -44l257 -65c66 -16 109 -73 109 -141v-50c0 -68 -57 -125 -125 -125h-75v-100h-100v100h-75c-30 0 -58 6 -81 22s-44 44 -44 78
-v100h100v-94c4 -3 13 -6 25 -6h250c14 0 25 11 25 25v50c0 15 -20 40 -34 44l-257 65c-66 16 -109 73 -109 141v50c0 68 57 125 125 125h75v100z" />
-    <glyph glyph-name="54" unicode="&#xe054;" 
-d="M0 700h300v-300l-300 -300v600zM500 700h300v-300l-300 -300v600z" />
-    <glyph glyph-name="55" unicode="&#xe055;" 
-d="M300 700v-600h-300v300zM800 700v-600h-300v300z" />
-    <glyph glyph-name="56" unicode="&#xe056;" 
-d="M300 700v-100c-111 0 -200 -89 -200 -200h200v-300h-300v300c0 165 135 300 300 300zM800 700v-100c-111 0 -200 -89 -200 -200h200v-300h-300v300c0 165 135 300 300 300z" />
-    <glyph glyph-name="57" unicode="&#xe057;" 
-d="M0 700h300v-300c0 -165 -135 -300 -300 -300v100c111 0 200 89 200 200h-200v300zM500 700h300v-300c0 -165 -135 -300 -300 -300v100c111 0 200 89 200 200h-200v300z" />
-    <glyph glyph-name="58" unicode="&#xe058;" horiz-adv-x="600" 
-d="M300 800l34 -34c11 -11 266 -270 266 -488c0 -165 -135 -300 -300 -300s-300 135 -300 300c0 218 255 477 266 488zM150 328c-28 0 -50 -22 -50 -50c0 -110 90 -200 200 -200c28 0 50 22 50 50s-22 50 -50 50c-55 0 -100 45 -100 100c0 28 -22 50 -50 50z" />
-    <glyph glyph-name="59" unicode="&#xe059;" 
-d="M400 800l400 -500h-800zM0 200h800v-200h-800v200z" />
-    <glyph glyph-name="5a" unicode="&#xe05a;" horiz-adv-x="600" 
-d="M300 800l300 -300h-600zM0 300h600l-300 -300z" />
-    <glyph glyph-name="5b" unicode="&#xe05b;" 
-d="M0 500h200v-200h-200v200zM300 500h200v-200h-200v200zM600 500h200v-200h-200v200z" />
-    <glyph glyph-name="5c" unicode="&#xe05c;" 
-d="M0 700h800v-100l-400 -200l-400 200v100zM0 500l400 -200l400 200v-400h-800v400z" />
-    <glyph glyph-name="5d" unicode="&#xe05d;" 
-d="M400 800l400 -200v-600h-800v600zM400 688l-300 -150v-188l300 -150l300 150v188zM200 500h400v-100l-200 -100l-200 100v100z" />
-    <glyph glyph-name="5e" unicode="&#xe05e;" 
-d="M600 700c69 0 134 -19 191 -50l-16 -106c-49 35 -109 56 -175 56c-131 0 -240 -84 -281 -200h331l-16 -100h-334c0 -36 8 -68 19 -100h297l-16 -100h-222c55 -61 133 -100 222 -100c78 0 147 30 200 78v-122c-59 -35 -127 -56 -200 -56c-147 0 -274 82 -344 200h-256
-l19 100h197c-8 32 -16 66 -16 100h-200l25 100h191c45 172 198 300 384 300z" />
-    <glyph glyph-name="5f" unicode="&#xe05f;" 
-d="M0 700h700v-100h-700v100zM0 500h500v-100h-500v100zM0 300h800v-100h-800v100zM0 100h100v-100h-100v100zM200 100h100v-100h-100v100zM400 100h100v-100h-100v100z" />
-    <glyph glyph-name="60" unicode="&#xe060;" 
-d="M0 800h800v-100h-800v100zM200 600h400l-200 -200zM0 200h800v-200h-800v200z" />
-    <glyph glyph-name="61" unicode="&#xe061;" 
-d="M0 800h100v-800h-100v800zM600 800h200v-800h-200v800zM200 600l200 -200l-200 -200v400z" />
-    <glyph glyph-name="62" unicode="&#xe062;" 
-d="M0 800h200v-800h-200v800zM700 800h100v-800h-100v800zM600 600v-400l-200 200z" />
-    <glyph glyph-name="63" unicode="&#xe063;" 
-d="M0 800h800v-200h-800v200zM400 400l200 -200h-400zM0 100h800v-100h-800v100z" />
-    <glyph glyph-name="64" unicode="&#xe064;" 
-d="M0 800h200v-100h-100v-600h600v100h100v-200h-800v800zM400 800h400v-400l-150 150l-250 -250l-100 100l250 250z" />
-    <glyph glyph-name="65" unicode="&#xe065;" 
-d="M403 700c247 0 397 -300 397 -300s-150 -300 -397 -300c-253 0 -403 300 -403 300s150 300 403 300zM400 600c-110 0 -200 -90 -200 -200s90 -200 200 -200s200 90 200 200s-90 200 -200 200zM400 500c10 0 19 -3 28 -6c-16 -8 -28 -24 -28 -44c0 -28 22 -50 50 -50
-c20 0 36 12 44 28c3 -9 6 -18 6 -28c0 -55 -45 -100 -100 -100s-100 45 -100 100s45 100 100 100z" />
-    <glyph glyph-name="66" unicode="&#xe066;" horiz-adv-x="900" 
-d="M331 700h3h3c3 1 7 1 10 1c12 0 29 -8 37 -17l94 -93l66 65c57 57 155 57 212 0c58 -58 58 -154 0 -212l-65 -66l93 -94c10 -8 18 -25 18 -38c0 -28 -22 -50 -50 -50c-13 0 -32 9 -40 20l-62 65l-381 -381h-269v272l375 381l-63 63c-9 8 -16 24 -16 36c0 20 16 42 35 48z
-M447 481l-313 -315l128 -132l316 316z" />
-    <glyph glyph-name="67" unicode="&#xe067;" 
-d="M0 800h300v-400h400v-400h-700v800zM400 800l300 -300h-300v300z" />
-    <glyph glyph-name="68" unicode="&#xe068;" 
-d="M200 800c0 0 200 -100 200 -300s-298 -302 -200 -500c0 0 -200 100 -200 300s300 300 200 500zM500 500c0 0 200 -100 200 -300c0 -150 -60 -200 -100 -200h-300c0 200 300 300 200 500z" />
-    <glyph glyph-name="69" unicode="&#xe069;" 
-d="M0 800h100v-800h-100v800zM200 800h300v-100h300l-200 -203l200 -197h-400v100h-200v400z" />
-    <glyph glyph-name="6a" unicode="&#xe06a;" horiz-adv-x="400" 
-d="M150 800h150l-100 -200h200l-150 -300h150l-300 -300l-100 300h134l66 200h-200z" />
-    <glyph glyph-name="6b" unicode="&#xe06b;" 
-d="M0 800h300v-100h500v-100h-800v200zM0 500h800v-450c0 -28 -22 -50 -50 -50h-700c-28 0 -50 22 -50 50v450z" />
-    <glyph glyph-name="6c" unicode="&#xe06c;" 
-d="M150 800c83 0 150 -67 150 -150c0 -66 -41 -121 -100 -141v-118c15 5 33 9 50 9h200c28 0 50 22 50 50v59c-59 20 -100 75 -100 141c0 83 67 150 150 150s150 -67 150 -150c0 -66 -41 -121 -100 -141v-59c0 -82 -68 -150 -150 -150h-200c-14 0 -25 -7 -34 -16
-c50 -24 84 -74 84 -134c0 -83 -67 -150 -150 -150s-150 67 -150 150c0 66 41 121 100 141v218c-59 20 -100 75 -100 141c0 83 67 150 150 150z" />
-    <glyph glyph-name="6d" unicode="&#xe06d;" 
-d="M0 800h400l-150 -150l150 -150l-100 -100l-150 150l-150 -150v400zM500 400l150 -150l150 150v-400h-400l150 150l-150 150z" />
-    <glyph glyph-name="6e" unicode="&#xe06e;" 
-d="M100 800l150 -150l150 150v-400h-400l150 150l-150 150zM400 400h400l-150 -150l150 -150l-100 -100l-150 150l-150 -150v400z" />
-    <glyph glyph-name="6f" unicode="&#xe06f;" 
-d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM400 700c-56 0 -108 -17 -153 -44l22 -19c33 -18 13 -48 -13 -59c-30 -13 -77 10 -65 -41c13 -55 -27 -3 -47 -15c-42 -26 49 -152 31 -156l-59 34c-8 0 -13 -5 -16 -10
-c1 -30 10 -57 19 -84c28 -11 77 -2 100 -25c47 -28 97 -115 75 -159c34 -13 68 -22 106 -22c101 0 193 48 247 125c3 24 -8 44 -50 44c-69 0 -156 13 -153 97c2 46 101 108 66 143c-30 30 12 39 12 66c0 37 -65 32 -69 50s20 36 41 56c-30 10 -60 19 -94 19zM631 591
-c-38 -11 -94 -35 -87 -53c6 -15 52 -1 65 -13c11 -10 16 -59 44 -31l22 22v3c-11 26 -26 50 -44 72z" />
-    <glyph glyph-name="70" unicode="&#xe070;" 
-d="M703 800l97 -100l-400 -400l-100 100l-200 -203l-100 100l300 303l100 -100zM0 100h800v-100h-800v100z" />
-    <glyph glyph-name="71" unicode="&#xe071;" 
-d="M0 700h100v-100h-100v100zM200 700h100v-100h-100v100zM400 700h100v-100h-100v100zM600 700h100v-100h-100v100zM0 500h100v-100h-100v100zM200 500h100v-100h-100v100zM400 500h100v-100h-100v100zM600 500h100v-100h-100v100zM0 300h100v-100h-100v100zM200 300h100
-v-100h-100v100zM400 300h100v-100h-100v100zM600 300h100v-100h-100v100zM0 100h100v-100h-100v100zM200 100h100v-100h-100v100zM400 100h100v-100h-100v100zM600 100h100v-100h-100v100z" />
-    <glyph glyph-name="72" unicode="&#xe072;" 
-d="M0 800h200v-200h-200v200zM300 800h200v-200h-200v200zM600 800h200v-200h-200v200zM0 500h200v-200h-200v200zM300 500h200v-200h-200v200zM600 500h200v-200h-200v200zM0 200h200v-200h-200v200zM300 200h200v-200h-200v200zM600 200h200v-200h-200v200z" />
-    <glyph glyph-name="73" unicode="&#xe073;" 
-d="M0 800h300v-300h-300v300zM500 800h300v-300h-300v300zM0 300h300v-300h-300v300zM500 300h300v-300h-300v300z" />
-    <glyph glyph-name="74" unicode="&#xe074;" 
-d="M19 800h662c11 0 19 -8 19 -19v-331c0 -28 -22 -50 -50 -50h-600c-28 0 -50 22 -50 50v331c0 11 8 19 19 19zM0 309c16 -6 32 -9 50 -9h600c18 0 34 3 50 9v-290c0 -11 -8 -19 -19 -19h-662c-11 0 -19 8 -19 19v290zM550 200c-28 0 -50 -22 -50 -50s22 -50 50 -50
-s50 22 50 50s-22 50 -50 50z" />
-    <glyph glyph-name="75" unicode="&#xe075;" 
-d="M0 700h300v-100h-50c-28 0 -50 -22 -50 -50v-150h300v150c0 28 -22 50 -50 50h-50v100h300v-100h-50c-28 0 -50 -22 -50 -50v-400c0 -28 22 -50 50 -50h50v-100h-300v100h50c28 0 50 22 50 50v150h-300v-150c0 -28 22 -50 50 -50h50v-100h-300v100h50c28 0 50 22 50 50
-v400c0 28 -22 50 -50 50h-50v100z" />
-    <glyph glyph-name="76" unicode="&#xe076;" 
-d="M400 700c165 0 300 -135 300 -300v-100h50c28 0 50 -22 50 -50v-200c0 -28 -22 -50 -50 -50h-100c-28 0 -50 22 -50 50v350c0 111 -89 200 -200 200s-200 -89 -200 -200v-350c0 -28 -22 -50 -50 -50h-100c-28 0 -50 22 -50 50v200c0 28 22 50 50 50h50v100
-c0 165 135 300 300 300z" />
-    <glyph glyph-name="77" unicode="&#xe077;" 
-d="M0 500c0 109 91 200 200 200s200 -91 200 -200c0 109 91 200 200 200s200 -91 200 -200c0 -55 -23 -105 -59 -141l-341 -340l-341 340c-36 36 -59 86 -59 141z" />
-    <glyph glyph-name="78" unicode="&#xe078;" 
-d="M400 700l400 -300l-100 3v-403h-200v200h-200v-200h-200v400h-100z" />
-    <glyph glyph-name="79" unicode="&#xe079;" 
-d="M0 800h800v-800h-800v800zM100 700v-300l100 100l400 -400h100v100l-200 200l100 100l100 -100v300h-600z" />
-    <glyph glyph-name="7a" unicode="&#xe07a;" 
-d="M19 800h762c11 0 19 -8 19 -19v-762c0 -11 -8 -19 -19 -19h-762c-11 0 -19 8 -19 19v762c0 11 8 19 19 19zM100 600v-300h100l100 -100h200l100 100h100v300h-600z" />
-    <glyph glyph-name="7b" unicode="&#xe07b;" 
-d="M200 600c80 0 142 -56 200 -122c58 66 119 122 200 122c131 0 200 -101 200 -200s-69 -200 -200 -200c-81 0 -142 56 -200 122c-58 -66 -121 -122 -200 -122c-131 0 -200 101 -200 200s69 200 200 200zM200 500c-74 0 -100 -54 -100 -100s26 -100 100 -100
-c42 0 88 47 134 100c-46 53 -92 100 -134 100zM600 500c-43 0 -88 -47 -134 -100c46 -53 91 -100 134 -100c74 0 100 54 100 100s-26 100 -100 100z" />
-    <glyph glyph-name="7c" unicode="&#xe07c;" horiz-adv-x="400" 
-d="M300 800c55 0 100 -45 100 -100s-45 -100 -100 -100s-100 45 -100 100s45 100 100 100zM150 550c83 0 150 -69 150 -150c0 -66 -100 -214 -100 -250c0 -28 22 -50 50 -50s50 22 50 50h100c0 -83 -67 -150 -150 -150s-150 64 -150 150s100 222 100 250s-22 50 -50 50
-s-50 -22 -50 -50h-100c0 83 67 150 150 150z" />
-    <glyph glyph-name="7d" unicode="&#xe07d;" 
-d="M200 800h500v-100h-122c-77 -197 -156 -392 -234 -588l-6 -12h162v-100h-500v100h122c77 197 156 392 234 588l7 12h-163v100z" />
-    <glyph glyph-name="7e" unicode="&#xe07e;" 
-d="M0 700h800v-100h-800v100zM0 500h800v-100h-800v100zM0 300h800v-100h-800v100zM100 100h600v-100h-600v100z" />
-    <glyph glyph-name="7f" unicode="&#xe07f;" 
-d="M0 700h800v-100h-800v100zM0 500h800v-100h-800v100zM0 300h800v-100h-800v100zM0 100h600v-100h-600v100z" />
-    <glyph glyph-name="80" unicode="&#xe080;" 
-d="M0 700h800v-100h-800v100zM0 500h800v-100h-800v100zM0 300h800v-100h-800v100zM200 100h600v-100h-600v100z" />
-    <glyph glyph-name="81" unicode="&#xe081;" 
-d="M550 800c138 0 250 -112 250 -250s-112 -250 -250 -250c-16 0 -32 0 -47 3l-3 -3v-100h-200v-200h-300v200l303 303c-3 15 -3 31 -3 47c0 138 112 250 250 250zM600 700c-55 0 -100 -45 -100 -100s45 -100 100 -100s100 45 100 100s-45 100 -100 100z" />
-    <glyph glyph-name="82" unicode="&#xe082;" 
-d="M134 600h3h4h4h5h500c28 0 50 -22 50 -50v-350h100v-150c0 -28 -22 -50 -50 -50h-700c-28 0 -50 22 -50 50v150h100v350v2c0 20 15 42 34 48zM200 500v-300h100v-100h200v100h100v300h-400z" />
-    <glyph glyph-name="83" unicode="&#xe083;" 
-d="M0 800h400v-400h-400v400zM500 600h100v-400h-400v100h300v300zM700 400h100v-400h-400v100h300v300z" />
-    <glyph glyph-name="84" unicode="&#xe084;" horiz-adv-x="600" 
-d="M337 694c6 4 12 7 21 7c28 0 50 -22 50 -50c0 -17 -12 -37 -27 -45l-300 -150c-8 -6 -21 -11 -31 -11c-28 0 -50 22 -50 50c0 21 16 44 37 49zM437 544c6 4 12 7 21 7c28 0 50 -22 50 -50c0 -17 -12 -37 -27 -45l-400 -200c-8 -6 -21 -11 -31 -11c-28 0 -50 22 -50 50
-c0 21 16 44 37 49zM437 344c6 4 12 7 21 7c28 0 50 -22 50 -50c0 -17 -12 -37 -27 -45l-106 -56c24 -4 43 -26 43 -50c0 -28 -23 -51 -51 -51c-2 0 -6 1 -8 1h-200c-26 1 -48 24 -48 50c0 16 12 36 26 44zM151 -50c0 23 20 50 46 50h3h4h5h100c28 0 50 -22 50 -50
-s-22 -50 -50 -50h-100c-2 0 -6 -1 -8 -1c-28 0 -50 23 -50 51z" />
-    <glyph glyph-name="85" unicode="&#xe085;" 
-d="M199 800h100v-200h-200v100h100v100zM586 797h1c18 1 38 1 56 -3c36 -8 69 -26 97 -54c78 -78 78 -203 0 -281l-150 -150c-8 -13 -28 -24 -43 -24c-28 0 -50 22 -50 50c0 15 11 35 24 43l150 150c40 40 39 105 0 144c-41 41 -110 34 -144 0l-44 -44
-c-8 -13 -27 -24 -42 -24c-28 0 -50 22 -50 50c0 15 11 35 24 43l43 44c32 33 72 53 128 56zM208 490c4 5 14 16 22 16h3c2 0 6 1 8 1c28 0 50 -22 50 -50c0 -11 -6 -27 -14 -35l-150 -150c-40 -40 -39 -105 0 -144c41 -41 110 -34 144 0l44 44c8 13 27 24 42 24
-c28 0 50 -22 50 -50c0 -15 -11 -35 -24 -43l-43 -44c-22 -22 -48 -37 -75 -47c-70 -25 -151 -9 -207 47c-78 78 -78 203 0 281zM499 200h200v-100h-100v-100h-100v200z" />
-    <glyph glyph-name="86" unicode="&#xe086;" 
-d="M586 797c18 1 39 1 57 -3c36 -8 69 -26 97 -54c78 -78 78 -203 0 -281l-150 -150c-62 -62 -132 -81 -182 -78s-69 17 -84 25s-26 27 -26 44c0 28 22 51 50 51c8 0 19 -3 26 -7c0 0 15 -11 41 -13s62 3 106 47l150 150c40 40 39 105 0 144c-41 41 -110 34 -144 0
-c-8 -13 -28 -24 -43 -24c-28 0 -50 22 -50 50c0 15 11 35 24 43c32 33 72 53 128 56zM386 566c50 -2 64 -17 85 -22s37 -28 37 -49c0 -28 -22 -50 -50 -50c-10 0 -23 5 -31 11c0 0 -19 9 -47 10s-63 -4 -103 -44l-150 -150c-40 -40 -39 -105 0 -144c41 -41 110 -34 144 0
-c8 13 27 24 42 24c28 0 50 -22 50 -50c0 -15 -10 -35 -23 -43c-22 -22 -48 -37 -75 -47c-70 -25 -151 -9 -207 47c-78 78 -78 203 0 281l150 150c60 60 128 78 178 76z" />
-    <glyph glyph-name="87" unicode="&#xe087;" 
-d="M0 700h300v-300h-300v300zM400 700h400v-100h-400v100zM400 500h300v-100h-300v100zM0 300h300v-300h-300v300zM400 300h400v-100h-400v100zM400 100h300v-100h-300v100z" />
-    <glyph glyph-name="88" unicode="&#xe088;" 
-d="M50 700c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM200 700h600v-100h-600v100zM50 500c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM200 500h600v-100h-600v100zM50 300c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50
-s22 50 50 50zM200 300h600v-100h-600v100zM50 100c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM200 100h600v-100h-600v100z" />
-    <glyph glyph-name="89" unicode="&#xe089;" 
-d="M800 800l-400 -800l-100 300l-300 100z" />
-    <glyph glyph-name="8a" unicode="&#xe08a;" horiz-adv-x="600" 
-d="M300 700c110 0 200 -90 200 -200v-100h100v-400h-600v400h100v100c0 110 90 200 200 200zM300 600c-56 0 -100 -44 -100 -100v-100h200v100c0 56 -44 100 -100 100z" />
-    <glyph glyph-name="8b" unicode="&#xe08b;" horiz-adv-x="600" 
-d="M300 800c110 0 200 -90 200 -200v-200h100v-400h-600v400h400v200c0 56 -44 100 -100 100s-100 -44 -100 -100h-100c0 110 90 200 200 200z" />
-    <glyph glyph-name="8c" unicode="&#xe08c;" 
-d="M400 700v-100c-111 0 -200 -89 -200 -200h100l-150 -200l-150 200h100c0 165 135 300 300 300zM650 600l150 -200h-100c0 -165 -135 -300 -300 -300v100c111 0 200 89 200 200h-100z" />
-    <glyph glyph-name="8d" unicode="&#xe08d;" 
-d="M100 800h600v-300h100l-150 -250l-150 250h100v200h-400v-100h-100v200zM150 550l150 -250h-100v-200h400v100h100v-200h-600v300h-100z" />
-    <glyph glyph-name="8e" unicode="&#xe08e;" 
-d="M600 700l200 -150l-200 -150v100h-500v-100h-100v100c0 55 45 100 100 100h500v100zM200 300v-100h500v100h100v-100c0 -55 -45 -100 -100 -100h-500v-100l-200 150z" />
-    <glyph glyph-name="8f" unicode="&#xe08f;" horiz-adv-x="900" 
-d="M350 800c193 0 350 -157 350 -350c0 -60 -17 -117 -44 -166c5 -3 12 -8 16 -12l100 -100c16 -16 30 -49 30 -72c0 -56 -46 -102 -102 -102c-23 0 -56 14 -72 30l-100 100c-4 3 -9 9 -12 13c-49 -26 -107 -41 -166 -41c-193 0 -350 157 -350 350s157 350 350 350zM350 200
-c142 0 250 108 250 250c0 139 -111 250 -250 250s-250 -111 -250 -250s111 -250 250 -250z" />
-    <glyph glyph-name="90" unicode="&#xe090;" horiz-adv-x="600" 
-d="M300 800c166 0 300 -134 300 -300c0 -200 -300 -500 -300 -500s-300 300 -300 500c0 166 134 300 300 300zM300 700c-110 0 -200 -90 -200 -200s90 -200 200 -200s200 90 200 200s-90 200 -200 200z" />
-    <glyph glyph-name="91" unicode="&#xe091;" horiz-adv-x="900" 
-d="M0 800h800v-541c1 -3 1 -8 1 -11s0 -7 -1 -10v-238h-800v800zM495 250c0 26 22 50 50 50h5h150v400h-600v-600h600v100h-150h-5c-28 0 -50 22 -50 50zM350 600c83 0 150 -67 150 -150c0 -100 -150 -250 -150 -250s-150 150 -150 250c0 83 67 150 150 150zM350 500
-c-28 0 -50 -22 -50 -50s22 -50 50 -50s50 22 50 50s-22 50 -50 50z" />
-    <glyph glyph-name="92" unicode="&#xe092;" horiz-adv-x="600" 
-d="M0 700h200v-600h-200v600zM400 700h200v-600h-200v600z" />
-    <glyph glyph-name="93" unicode="&#xe093;" horiz-adv-x="600" 
-d="M0 700l600 -300l-600 -300v600z" />
-    <glyph glyph-name="94" unicode="&#xe094;" horiz-adv-x="600" 
-d="M300 700c166 0 300 -134 300 -300s-134 -300 -300 -300s-300 134 -300 300s134 300 300 300z" />
-    <glyph glyph-name="95" unicode="&#xe095;" 
-d="M400 700v-600l-400 300zM400 400l400 300v-600z" />
-    <glyph glyph-name="96" unicode="&#xe096;" 
-d="M0 700l400 -300l-400 -300v600zM400 100v600l400 -300z" />
-    <glyph glyph-name="97" unicode="&#xe097;" 
-d="M0 700h200v-600h-200v600zM200 400l500 300v-600z" />
-    <glyph glyph-name="98" unicode="&#xe098;" 
-d="M0 700l500 -300l-500 -300v600zM500 100v600h200v-600h-200z" />
-    <glyph glyph-name="99" unicode="&#xe099;" horiz-adv-x="600" 
-d="M0 700h600v-600h-600v600z" />
-    <glyph glyph-name="9a" unicode="&#xe09a;" 
-d="M200 800h400v-200h200v-400h-200v-200h-400v200h-200v400h200v200z" />
-    <glyph glyph-name="9b" unicode="&#xe09b;" 
-d="M0 700h800v-100h-800v100zM0 403h800v-100h-800v100zM0 103h800v-100h-800v100z" />
-    <glyph glyph-name="9c" unicode="&#xe09c;" horiz-adv-x="600" 
-d="M278 700c7 2 13 4 22 4c55 0 100 -45 100 -100v-4v-200c0 -55 -45 -100 -100 -100s-100 45 -100 100v200v2c0 44 35 88 78 98zM34 500h4h3c3 0 6 1 9 1c28 0 50 -22 50 -50v-1v-50c0 -111 89 -200 200 -200s200 89 200 200v50c0 28 22 50 50 50s50 -22 50 -50v-50
-c0 -148 -109 -270 -250 -294v-106h50c55 0 100 -45 100 -100h-400c0 55 45 100 100 100h50v106c-141 24 -250 146 -250 294v50v2c0 20 15 42 34 48z" />
-    <glyph glyph-name="9d" unicode="&#xe09d;" 
-d="M0 500h800v-200h-800v200z" />
-    <glyph glyph-name="9e" unicode="&#xe09e;" 
-d="M34 700h4h3h4h5h700c28 0 50 -22 50 -50v-500c0 -28 -22 -50 -50 -50h-250v-100h100c55 0 100 -45 100 -100h-600c0 55 45 100 100 100h100v100h-250c-28 0 -50 22 -50 50v500v2c0 20 15 42 34 48zM100 600v-400h600v400h-600z" />
-    <glyph glyph-name="9f" unicode="&#xe09f;" 
-d="M272 700c-14 -40 -22 -83 -22 -128c0 -221 179 -400 400 -400c45 0 88 8 128 22c-53 -158 -202 -272 -378 -272c-221 0 -400 179 -400 400c0 176 114 325 272 378z" />
-    <glyph glyph-name="a0" unicode="&#xe0a0;" 
-d="M350 700l150 -150h-100v-150h150v100l150 -150l-150 -150v100h-150v-150h100l-150 -150l-150 150h100v150h-150v-100l-150 150l150 150v-100h150v150h-100z" />
-    <glyph glyph-name="a1" unicode="&#xe0a1;" 
-d="M800 800v-550c0 -83 -67 -150 -150 -150s-150 67 -150 150s67 150 150 150c17 0 35 -4 50 -9v206c-201 -6 -327 -27 -400 -50v-397c0 -83 -67 -150 -150 -150s-150 67 -150 150s67 150 150 150c17 0 35 -4 50 -9v409s100 100 600 100z" />
-    <glyph glyph-name="a2" unicode="&#xe0a2;" horiz-adv-x="700" 
-d="M499 700c51 0 102 -20 141 -59c78 -78 78 -203 0 -281l-250 -244c-48 -48 -127 -48 -175 0s-48 127 0 175l96 97l69 -69l-90 -94l-7 -3c-10 -10 -10 -28 0 -38s28 -10 38 0l250 247c37 40 39 102 0 141s-104 40 -144 0l-278 -275c-66 -69 -68 -179 0 -247
-c69 -69 181 -69 250 0l9 12l116 113l69 -69l-125 -125c-107 -107 -281 -107 -388 0s-107 281 0 388l278 272c39 39 90 59 141 59z" />
-    <glyph glyph-name="a3" unicode="&#xe0a3;" 
-d="M600 800l200 -200l-100 -100l-200 200zM400 600l200 -200l-400 -400h-200v200z" />
-    <glyph glyph-name="a4" unicode="&#xe0a4;" 
-d="M550 800c83 0 150 -90 150 -200s-67 -200 -150 -200c-22 0 -40 8 -59 19c6 26 9 52 9 81c0 84 -27 158 -72 212c27 52 71 88 122 88zM250 700c83 0 150 -90 150 -200s-67 -200 -150 -200s-150 90 -150 200s67 200 150 200zM725 384c44 -22 75 -66 75 -118v-166h-200v66
-c0 50 -17 96 -44 134c66 2 126 33 169 84zM75 284c45 -53 106 -84 175 -84s130 31 175 84c44 -22 75 -66 75 -118v-166h-500v166c0 52 31 96 75 118z" />
-    <glyph glyph-name="a5" unicode="&#xe0a5;" 
-d="M400 800c110 0 200 -112 200 -250s-90 -250 -200 -250s-200 112 -200 250s90 250 200 250zM191 300c54 -61 128 -100 209 -100s155 39 209 100c106 -5 191 -92 191 -200v-100h-800v100c0 108 85 195 191 200z" />
-    <glyph glyph-name="a6" unicode="&#xe0a6;" horiz-adv-x="600" 
-d="M19 800h462c11 0 19 -8 19 -19v-762c0 -11 -8 -19 -19 -19h-462c-11 0 -19 8 -19 19v762c0 11 8 19 19 19zM100 700v-500h300v500h-300zM250 150c-28 0 -50 -22 -50 -50s22 -50 50 -50s50 22 50 50s-22 50 -50 50z" />
-    <glyph glyph-name="a7" unicode="&#xe0a7;" 
-d="M350 800c17 0 34 -1 50 -3v-397l-297 297c63 64 150 103 247 103zM500 694c169 -25 300 -168 300 -344c0 -193 -157 -350 -350 -350c-85 0 -161 31 -222 81l272 272v341zM91 562l237 -234l-212 -212c-70 55 -116 138 -116 234c0 84 35 158 91 212z" />
-    <glyph glyph-name="a8" unicode="&#xe0a8;" 
-d="M92 650c0 23 20 50 46 50h3h4h5h400c28 0 50 -22 50 -50s-22 -50 -50 -50h-50v-200h100c55 0 100 -45 100 -100h-300v-300l-56 -100l-44 100v300h-300c0 55 45 100 100 100h100v200h-50c-2 0 -6 -1 -8 -1c-28 0 -50 23 -50 51z" />
-    <glyph glyph-name="a9" unicode="&#xe0a9;" 
-d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM300 600v-400l300 200z" />
-    <glyph glyph-name="aa" unicode="&#xe0aa;" 
-d="M300 800h200v-300h300v-200h-300v-300h-200v300h-300v200h300v300z" />
-    <glyph glyph-name="ab" unicode="&#xe0ab;" 
-d="M300 800h100v-400h-100v400zM172 656l62 -78l-40 -31c-58 -46 -94 -117 -94 -197c0 -139 111 -250 250 -250s250 111 250 250c0 80 -39 151 -97 197l-37 31l62 78l38 -31c82 -64 134 -164 134 -275c0 -193 -157 -350 -350 -350s-350 157 -350 350c0 111 53 211 134 275z
-" />
-    <glyph glyph-name="ac" unicode="&#xe0ac;" 
-d="M200 800h400v-200h-400v200zM9 500h782c6 0 9 -3 9 -9v-282c0 -6 -3 -9 -9 -9h-91v200h-600v-200h-91c-6 0 -9 3 -9 9v282c0 6 3 9 9 9zM200 300h400v-300h-400v300z" />
-    <glyph glyph-name="ad" unicode="&#xe0ad;" 
-d="M0 700h100v-700h-100v700zM700 700h100v-700h-100v700zM200 600h200v-100h-200v100zM300 400h200v-100h-200v100zM400 200h200v-100h-200v100z" />
-    <glyph glyph-name="ae" unicode="&#xe0ae;" 
-d="M325 700c42 -141 87 -280 131 -419c29 74 59 148 88 222c30 -57 58 -114 87 -172h169v-100h-231l-13 28c-37 -92 -74 -184 -112 -275c-38 129 -79 257 -119 385c-42 -133 -83 -267 -125 -400c-28 88 -56 175 -84 262h-116v100h188l9 -34l3 -6c42 137 83 273 125 409z" />
-    <glyph glyph-name="af" unicode="&#xe0af;" 
-d="M200 600c0 57 43 100 100 100s100 -43 100 -100c0 -28 -18 -48 -28 -72c-3 -6 -3 -16 -3 -28h231v-231c12 0 22 0 28 3c24 10 44 28 72 28c57 0 100 -43 100 -100s-43 -100 -100 -100c-28 0 -48 18 -72 28c-6 3 -16 3 -28 3v-231h-231c0 12 0 22 3 28c10 24 28 44 28 72
-c0 57 -43 100 -100 100s-100 -43 -100 -100c0 -28 18 -48 28 -72c3 -6 3 -16 3 -28h-231v600h231c0 12 0 22 -3 28c-10 24 -28 44 -28 72z" />
-    <glyph glyph-name="b0" unicode="&#xe0b0;" horiz-adv-x="500" 
-d="M247 700c84 0 148 -20 191 -59s59 -93 59 -141c0 -117 -69 -181 -119 -225s-81 -67 -81 -150v-25h-100v25c0 117 65 181 115 225s85 67 85 150c0 25 -8 48 -28 66s-56 34 -122 34s-97 -18 -116 -37s-27 -43 -31 -69l-100 12c5 38 19 88 59 128s103 66 188 66zM197 0h100
-v-100h-100v100z" />
-    <glyph glyph-name="b1" unicode="&#xe0b1;" 
-d="M450 800c138 0 250 -112 250 -250v-50c58 -21 100 -85 100 -150c0 -69 -48 -127 -112 -144c-22 55 -75 94 -138 94c-20 0 -39 -5 -56 -12c-17 64 -75 112 -144 112s-127 -48 -144 -112c-17 7 -36 12 -56 12c-37 0 -71 -12 -97 -34c-33 36 -53 82 -53 134
-c0 110 90 200 200 200c23 114 129 200 250 200zM334 300h4h3c3 0 6 1 9 1c28 0 50 -22 50 -50v-1v-200c0 -28 -22 -50 -50 -50s-50 22 -50 50v200v2c0 20 15 42 34 48zM134 200h4h3c3 0 6 1 9 1c28 0 50 -22 50 -50v-1v-100c0 -28 -22 -50 -50 -50s-50 22 -50 50v100v2
-c0 20 15 42 34 48zM534 200h3h4c3 0 6 1 9 1c28 0 50 -22 50 -50v-1v-100c0 -28 -22 -50 -50 -50s-50 22 -50 50v100v2c0 20 15 42 34 48z" />
-    <glyph glyph-name="b2" unicode="&#xe0b2;" 
-d="M600 800l200 -150l-200 -150v100h-50l-153 -191l175 -206l6 -3h22v100l200 -150l-200 -150v100h-25c-35 0 -56 12 -78 38l-166 190l-153 -190c-22 -27 -43 -38 -78 -38h-100v100h100l166 206l-163 191l-3 3h-100v100h100c34 0 56 -12 78 -38l153 -178l141 178
-c22 27 43 38 78 38h50v100z" />
-    <glyph glyph-name="b3" unicode="&#xe0b3;" 
-d="M400 800c110 0 209 -47 281 -119l119 119v-300h-300l109 109c-54 55 -126 91 -209 91c-166 0 -300 -134 -300 -300s134 -300 300 -300c83 0 158 34 212 88l72 -72c-72 -72 -174 -116 -284 -116c-220 0 -400 180 -400 400s180 400 400 400z" />
-    <glyph glyph-name="b4" unicode="&#xe0b4;" 
-d="M400 800h400v-400l-166 166l-400 -400l166 -166h-400v400l166 -166l400 400z" />
-    <glyph glyph-name="b5" unicode="&#xe0b5;" horiz-adv-x="600" 
-d="M250 800l250 -300h-200v-200h200l-250 -300l-250 300h200v200h-200z" />
-    <glyph glyph-name="b6" unicode="&#xe0b6;" 
-d="M300 600v-200h200v200l300 -250l-300 -250v200h-200v-200l-300 250z" />
-    <glyph glyph-name="b7" unicode="&#xe0b7;" 
-d="M0 800c441 0 800 -359 800 -800h-200c0 333 -267 600 -600 600v200zM0 500c275 0 500 -225 500 -500h-200c0 167 -133 300 -300 300v200zM0 200c110 0 200 -90 200 -200h-200v200z" />
-    <glyph glyph-name="b8" unicode="&#xe0b8;" 
-d="M100 800c386 0 700 -314 700 -700h-100c0 332 -268 600 -600 600v100zM100 600c276 0 500 -224 500 -500h-100c0 222 -178 400 -400 400v100zM100 400c165 0 300 -135 300 -300h-100c0 111 -89 200 -200 200v100zM100 200c55 0 100 -45 100 -100s-45 -100 -100 -100
-s-100 45 -100 100s45 100 100 100z" />
-    <glyph glyph-name="b9" unicode="&#xe0b9;" 
-d="M300 800h400c55 0 100 -45 100 -100v-200h-400v150c0 28 -22 50 -50 50s-50 -22 -50 -50v-250h400v-300c0 -55 -45 -100 -100 -100h-500c-55 0 -100 45 -100 100v200h100v-150c0 -28 22 -50 50 -50s50 22 50 50v550c0 55 45 100 100 100z" />
-    <glyph glyph-name="ba" unicode="&#xe0ba;" 
-d="M75 700h225v-100h-200v-500h400v100h100v-125c0 -41 -34 -75 -75 -75h-450c-41 0 -75 34 -75 75v550c0 41 34 75 75 75zM600 700l200 -200l-200 -200v100h-200c-94 0 -173 -65 -194 -153c23 199 189 353 394 353v100z" />
-    <glyph glyph-name="bb" unicode="&#xe0bb;" 
-d="M500 700l300 -284l-300 -316v200h-100c-200 0 -348 -102 -400 -300c0 295 100 500 500 500v200z" />
-    <glyph glyph-name="bc" unicode="&#xe0bc;" 
-d="M381 791l19 9l19 -9c127 -53 253 -108 381 -160v-31c0 -166 -67 -313 -147 -419c-40 -53 -83 -97 -125 -128s-82 -53 -128 -53s-86 22 -128 53s-85 75 -125 128c-80 107 -147 253 -147 419v31c128 52 254 107 381 160zM400 100v591l-294 -122c8 -126 58 -243 122 -328
-c35 -46 73 -86 106 -110s62 -31 66 -31z" />
-    <glyph glyph-name="bd" unicode="&#xe0bd;" 
-d="M600 800h100v-800h-100v800zM400 700h100v-700h-100v700zM200 500h100v-500h-100v500zM0 300h100v-300h-100v300z" />
-    <glyph glyph-name="be" unicode="&#xe0be;" 
-d="M300 800h100v-200h200l100 -100l-100 -100h-200v-400h-100v500h-200l-100 100l100 100h200v100z" />
-    <glyph glyph-name="bf" unicode="&#xe0bf;" 
-d="M200 800h100v-600h200l-250 -200l-250 200h200v600zM400 800h200v-100h-200v100zM400 600h300v-100h-300v100zM400 400h400v-100h-400v100z" />
-    <glyph glyph-name="c0" unicode="&#xe0c0;" 
-d="M200 800h100v-600h200l-250 -200l-250 200h200v600zM400 800h400v-100h-400v100zM400 600h300v-100h-300v100zM400 400h200v-100h-200v100z" />
-    <glyph glyph-name="c1" unicode="&#xe0c1;" 
-d="M75 700h650c41 0 75 -34 75 -75v-550c0 -41 -34 -75 -75 -75h-650c-41 0 -75 34 -75 75v550c0 41 34 75 75 75zM100 600v-100h100v100h-100zM300 600v-100h400v100h-400zM100 400v-100h100v100h-100zM300 400v-100h400v100h-400zM100 200v-100h100v100h-100zM300 200
-v-100h400v100h-400z" />
-    <glyph glyph-name="c2" unicode="&#xe0c2;" 
-d="M400 800l100 -300h300l-250 -200l100 -300l-250 200l-250 -200l100 300l-250 200h300z" />
-    <glyph glyph-name="c3" unicode="&#xe0c3;" 
-d="M400 800c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM150 700c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM650 700c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM400 600c110 0 200 -90 200 -200
-s-90 -200 -200 -200s-200 90 -200 200s90 200 200 200zM50 450c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM750 450c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM150 200c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50
-s22 50 50 50zM650 200c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM400 100c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50z" />
-    <glyph glyph-name="c4" unicode="&#xe0c4;" 
-d="M34 800h632c18 0 34 -16 34 -34v-732c0 -18 -16 -34 -34 -34h-632c-18 0 -34 16 -34 34v732c0 18 16 34 34 34zM100 700v-500h500v500h-500zM350 150c-38 0 -63 -42 -44 -75s69 -33 88 0s-6 75 -44 75z" />
-    <glyph glyph-name="c5" unicode="&#xe0c5;" 
-d="M0 800h300l500 -500l-300 -300l-500 500v300zM200 700c-55 0 -100 -45 -100 -100s45 -100 100 -100s100 45 100 100s-45 100 -100 100z" />
-    <glyph glyph-name="c6" unicode="&#xe0c6;" 
-d="M0 600h200l300 -300l-200 -200l-300 300v200zM340 600h160l300 -300l-200 -200l-78 78l119 122zM150 500c-28 0 -50 -22 -50 -50s22 -50 50 -50s50 22 50 50s-22 50 -50 50z" />
-    <glyph glyph-name="c7" unicode="&#xe0c7;" 
-d="M400 800c220 0 400 -180 400 -400s-180 -400 -400 -400s-400 180 -400 400s180 400 400 400zM400 700c-166 0 -300 -134 -300 -300s134 -300 300 -300s300 134 300 300s-134 300 -300 300zM400 600c110 0 200 -90 200 -200s-90 -200 -200 -200s-200 90 -200 200
-s90 200 200 200zM400 500c-56 0 -100 -44 -100 -100s44 -100 100 -100s100 44 100 100s-44 100 -100 100z" />
-    <glyph glyph-name="c8" unicode="&#xe0c8;" 
-d="M0 700h559l-100 -100h-359v-500h500v159l100 100v-359h-700v700zM700 700l100 -100l-400 -400l-200 200l100 100l100 -100z" />
-    <glyph glyph-name="c9" unicode="&#xe0c9;" 
-d="M9 800h782c6 0 9 -3 9 -9v-782c0 -6 -3 -9 -9 -9h-782c-6 0 -9 3 -9 9v782c0 6 3 9 9 9zM150 722l-72 -72l100 -100l-100 -100l72 -72l172 172zM400 500v-100h300v100h-300z" />
-    <glyph glyph-name="ca" unicode="&#xe0ca;" 
-d="M0 800h800v-200h-50c0 55 -45 100 -100 100h-150v-550c0 -28 22 -50 50 -50h50v-100h-400v100h50c28 0 50 22 50 50v550h-150c-55 0 -100 -45 -100 -100h-50v200z" />
-    <glyph glyph-name="cb" unicode="&#xe0cb;" 
-d="M0 700h100v-400h-100v400zM200 700h350c21 0 39 -13 47 -31c0 0 103 -291 103 -319s-22 -50 -50 -50h-150c-28 0 -50 -25 -50 -50s39 -158 47 -184s-5 -55 -31 -63s-52 5 -66 31s-109 219 -128 238s-44 28 -72 28v400z" />
-    <glyph glyph-name="cc" unicode="&#xe0cc;" 
-d="M400 666c10 19 28 32 47 34l19 -3c26 -8 39 -37 31 -63s-47 -159 -47 -184s22 -50 50 -50h150c28 0 50 -22 50 -50s-103 -319 -103 -319c-8 -18 -26 -31 -47 -31h-350v400c28 0 53 9 72 28s114 212 128 238zM0 400h100v-400h-100v400z" />
-    <glyph glyph-name="cd" unicode="&#xe0cd;" 
-d="M200 700h300v-100h-100v-6c25 -4 50 -8 72 -16l-34 -94c-28 11 -58 16 -88 16c-139 0 -250 -111 -250 -250s111 -250 250 -250s250 111 250 250c0 31 -5 60 -16 88l91 37c14 -38 25 -81 25 -125c0 -193 -157 -350 -350 -350s-350 157 -350 350c0 176 130 323 300 347v3
-h-100v100zM700 584c0 0 -296 -348 -316 -368s-48 -20 -68 0s-20 48 0 68s384 300 384 300z" />
-    <glyph glyph-name="ce" unicode="&#xe0ce;" 
-d="M600 700l200 -150l-200 -150v100h-600v100h600v100zM200 300v-100h600v-100h-600v-100l-200 150z" />
-    <glyph glyph-name="cf" unicode="&#xe0cf;" 
-d="M300 800h100c55 0 100 -45 100 -100h100c55 0 100 -45 100 -100h-700c0 55 45 100 100 100h100c0 55 45 100 100 100zM100 500h100v-350c0 -28 22 -50 50 -50s50 22 50 50v350h100v-350c0 -28 22 -50 50 -50s50 22 50 50v350h100v-481c0 -11 -8 -19 -19 -19h-462
-c-11 0 -19 8 -19 19v481z" />
-    <glyph glyph-name="d0" unicode="&#xe0d0;" 
-d="M100 800h200v-400c0 -55 45 -100 100 -100s100 45 100 100v400h100v-400c0 -110 -90 -200 -200 -200h-50c-138 0 -250 90 -250 200v400zM0 100h700v-100h-700v100z" />
-    <glyph glyph-name="d1" unicode="&#xe0d1;" 
-d="M9 700h182c6 0 9 -3 9 -9v-482c0 -6 -3 -9 -9 -9h-182c-6 0 -9 3 -9 9v482c0 6 3 9 9 9zM609 700h182c6 0 9 -3 9 -9v-482c0 -6 -3 -9 -9 -9h-182c-6 0 -9 3 -9 9v482c0 6 3 9 9 9zM309 500h182c6 0 9 -3 9 -9v-282c0 -6 -3 -9 -9 -9h-182c-6 0 -9 3 -9 9v282
-c0 6 3 9 9 9zM0 100h800v-100h-800v100z" />
-    <glyph glyph-name="d2" unicode="&#xe0d2;" 
-d="M10 700h181c6 0 9 -3 9 -9v-191h-200v191c0 6 4 9 10 9zM610 700h181c6 0 9 -3 9 -9v-191h-200v191c0 6 5 9 10 9zM310 600h181c6 0 9 -3 9 -9v-91h-200v91c0 6 4 9 10 9zM0 400h800v-100h-800v100zM0 200h200v-191c0 -6 -3 -9 -9 -9h-182c-6 0 -9 3 -9 9v191zM300 200
-h200v-91c0 -6 -3 -9 -9 -9h-181c-6 0 -10 3 -10 9v91zM600 200h200v-191c0 -6 -3 -9 -9 -9h-181c-6 0 -10 3 -10 9v191z" />
-    <glyph glyph-name="d3" unicode="&#xe0d3;" 
-d="M0 700h800v-100h-800v100zM9 500h182c6 0 9 -3 9 -9v-482c0 -6 -3 -9 -9 -9h-182c-6 0 -9 3 -9 9v482c0 6 3 9 9 9zM309 500h182c6 0 9 -3 9 -9v-282c0 -6 -3 -9 -9 -9h-182c-6 0 -9 3 -9 9v282c0 6 3 9 9 9zM609 500h182c6 0 9 -3 9 -9v-482c0 -6 -3 -9 -9 -9h-182
-c-6 0 -9 3 -9 9v482c0 6 3 9 9 9z" />
-    <glyph glyph-name="d4" unicode="&#xe0d4;" 
-d="M50 600h500c28 0 50 -22 50 -50v-150l100 100h100v-300h-100l-100 100v-150c0 -28 -22 -50 -50 -50h-500c-28 0 -50 22 -50 50v400c0 28 22 50 50 50z" />
-    <glyph glyph-name="d5" unicode="&#xe0d5;" 
-d="M334 800h66v-800h-66l-134 200h-200v400h200zM500 600v100c26 0 52 -4 75 -10c130 -33 225 -150 225 -290s-95 -258 -225 -291h-3c-23 -6 -47 -9 -72 -9v100c17 0 34 2 50 6c86 22 150 100 150 194s-64 172 -150 194c-16 4 -33 6 -50 6zM500 500l25 -3
-c44 -11 75 -51 75 -97s-32 -86 -75 -97l-25 -3v200z" />
-    <glyph glyph-name="d6" unicode="&#xe0d6;" horiz-adv-x="600" 
-d="M334 800h66v-800h-66l-134 200h-200v400h200zM500 500l25 -3c44 -11 75 -51 75 -97s-32 -86 -75 -97l-25 -3v200z" />
-    <glyph glyph-name="d7" unicode="&#xe0d7;" horiz-adv-x="400" 
-d="M334 800h66v-800h-66l-134 200h-200v400h200z" />
-    <glyph glyph-name="d8" unicode="&#xe0d8;" 
-d="M309 800h82c6 0 10 -4 12 -9l294 -682l3 -19v-81c0 -6 -3 -9 -9 -9h-682c-6 0 -9 3 -9 9v81l3 19l294 682c2 5 6 9 12 9zM300 500v-200h100v200h-100zM300 200v-100h100v100h-100z" />
-    <glyph glyph-name="d9" unicode="&#xe0d9;" 
-d="M375 800c138 0 269 -39 378 -109l-53 -82c-93 60 -205 91 -325 91c-119 0 -229 -32 -322 -91l-53 82c109 70 237 109 375 109zM375 500c78 0 154 -23 216 -62l-53 -85c-46 30 -104 47 -163 47c-60 0 -112 -17 -159 -47l-54 85c62 40 134 62 213 62zM375 200
-c55 0 100 -45 100 -100s-45 -100 -100 -100s-100 45 -100 100s45 100 100 100z" />
-    <glyph glyph-name="da" unicode="&#xe0da;" horiz-adv-x="900" 
-d="M551 800c16 0 32 0 47 -3l-97 -97v-200h200l97 97c3 -15 3 -31 3 -47c0 -138 -112 -250 -250 -250c-32 0 -62 8 -90 19l-288 -291c-20 -20 -46 -28 -72 -28s-52 8 -72 28c-39 39 -39 105 0 144l291 287c-11 28 -19 59 -19 91c0 138 112 250 250 250zM101 150
-c-28 0 -50 -22 -50 -50s22 -50 50 -50s50 22 50 50s-22 50 -50 50z" />
-    <glyph glyph-name="db" unicode="&#xe0db;" 
-d="M141 700c84 -84 169 -167 253 -250c82 83 167 165 247 250l143 -141l-253 -253c84 -82 167 -166 253 -247l-143 -143c-81 86 -165 169 -247 253l-253 -253l-141 143c85 80 167 164 250 247c-83 84 -166 169 -250 253z" />
-    <glyph glyph-name="dc" unicode="&#xe0dc;" 
-d="M0 800h100l231 -300h38l231 300h100l-225 -300h225v-100h-300v-100h300v-100h-300v-200h-100v200h-300v100h300v100h-300v100h225z" />
-    <glyph glyph-name="dd" unicode="&#xe0dd;" horiz-adv-x="900" 
-d="M350 800c193 0 350 -157 350 -350c0 -61 -17 -119 -44 -169c4 -2 10 -6 13 -9l103 -100c16 -16 30 -49 30 -72c0 -56 -46 -102 -102 -102c-23 0 -56 14 -72 30l-100 103c-3 3 -7 9 -9 13c-50 -28 -108 -44 -169 -44c-193 0 -350 157 -350 350s157 350 350 350zM350 700
-c-139 0 -250 -111 -250 -250s111 -250 250 -250c62 0 119 23 163 60c7 11 19 25 31 31l3 3c34 43 53 97 53 156c0 139 -111 250 -250 250zM300 600h100v-100h100v-100h-100v-100h-100v100h-100v100h100v100z" />
-    <glyph glyph-name="de" unicode="&#xe0de;" horiz-adv-x="900" 
-d="M350 800c193 0 350 -157 350 -350c0 -61 -17 -119 -44 -169c4 -2 10 -6 13 -9l103 -100c16 -16 30 -49 30 -72c0 -56 -46 -102 -102 -102c-23 0 -56 14 -72 30l-100 103c-3 3 -7 9 -9 13c-50 -28 -108 -44 -169 -44c-193 0 -350 157 -350 350s157 350 350 350zM350 700
-c-139 0 -250 -111 -250 -250s111 -250 250 -250c62 0 119 23 163 60c7 11 19 25 31 31l3 3c34 43 53 97 53 156c0 139 -111 250 -250 250zM200 500h300v-100h-300v100z" />
-  </font>
-</defs></svg>
diff --git a/assets/static/fonts/open-iconic/font/fonts/open-iconic.ttf b/assets/static/fonts/open-iconic/font/fonts/open-iconic.ttf
deleted file mode 100644
index fab6048..0000000
Binary files a/assets/static/fonts/open-iconic/font/fonts/open-iconic.ttf and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/font/fonts/open-iconic.woff b/assets/static/fonts/open-iconic/font/fonts/open-iconic.woff
deleted file mode 100644
index f930998..0000000
Binary files a/assets/static/fonts/open-iconic/font/fonts/open-iconic.woff and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/package.json b/assets/static/fonts/open-iconic/package.json
deleted file mode 100644
index d1e76ca..0000000
--- a/assets/static/fonts/open-iconic/package.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
-  "name": "open-iconic",
-  "description": "An open source icon set with marks in SVG, sprite, webfont and raster format",
-  "version": "1.1.1",
-  "keywords": ["icon", "iconic", "open-iconic", "svg", "sprite", "font", "png", "webp"],
-  "homepage": "http://useiconic.com/open-iconic/",
-  "author": {
-    "name": "Iconic",
-    "email": "yourfriends at useiconic.com",
-    "web": "http://useiconic.com/"
-  },
-  "repository": {
-    "type": "git",
-    "url": "https://github.com/iconic/open-iconic.git"
-  },
-  "contributors": [
-    {
-      "name": "P.J. Onori",
-      "web": "http://twitter.com/somerandomdude"
-    },
-    {
-      "name": "Dave Johnson",
-      "web": "http://twitter.com/protodave"
-    }
-  ],
-  "licenses": [
-    {
-      "type": "MIT License",
-      "url": "http://opensource.org/licenses/mit-license.html"
-    },
-    {
-      "type": "SIL OFL 1.1",
-      "url": "http://scripts.sil.org/OFL"
-    }
-  ]
-}
diff --git a/assets/static/fonts/open-iconic/png/account-login-2x.png b/assets/static/fonts/open-iconic/png/account-login-2x.png
deleted file mode 100644
index c1e30db..0000000
Binary files a/assets/static/fonts/open-iconic/png/account-login-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/account-login-3x.png b/assets/static/fonts/open-iconic/png/account-login-3x.png
deleted file mode 100644
index 2a9a3db..0000000
Binary files a/assets/static/fonts/open-iconic/png/account-login-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/account-login-4x.png b/assets/static/fonts/open-iconic/png/account-login-4x.png
deleted file mode 100644
index 0f216ff..0000000
Binary files a/assets/static/fonts/open-iconic/png/account-login-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/account-login-6x.png b/assets/static/fonts/open-iconic/png/account-login-6x.png
deleted file mode 100644
index 3d28df7..0000000
Binary files a/assets/static/fonts/open-iconic/png/account-login-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/account-login-8x.png b/assets/static/fonts/open-iconic/png/account-login-8x.png
deleted file mode 100644
index 42f9eaf..0000000
Binary files a/assets/static/fonts/open-iconic/png/account-login-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/account-login.png b/assets/static/fonts/open-iconic/png/account-login.png
deleted file mode 100644
index 50910b9..0000000
Binary files a/assets/static/fonts/open-iconic/png/account-login.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/account-logout-2x.png b/assets/static/fonts/open-iconic/png/account-logout-2x.png
deleted file mode 100644
index 8a16bca..0000000
Binary files a/assets/static/fonts/open-iconic/png/account-logout-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/account-logout-3x.png b/assets/static/fonts/open-iconic/png/account-logout-3x.png
deleted file mode 100644
index 0607ae3..0000000
Binary files a/assets/static/fonts/open-iconic/png/account-logout-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/account-logout-4x.png b/assets/static/fonts/open-iconic/png/account-logout-4x.png
deleted file mode 100644
index 413df3a..0000000
Binary files a/assets/static/fonts/open-iconic/png/account-logout-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/account-logout-6x.png b/assets/static/fonts/open-iconic/png/account-logout-6x.png
deleted file mode 100644
index 89a1d38..0000000
Binary files a/assets/static/fonts/open-iconic/png/account-logout-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/account-logout-8x.png b/assets/static/fonts/open-iconic/png/account-logout-8x.png
deleted file mode 100644
index cd36558..0000000
Binary files a/assets/static/fonts/open-iconic/png/account-logout-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/account-logout.png b/assets/static/fonts/open-iconic/png/account-logout.png
deleted file mode 100644
index 4cc51d1..0000000
Binary files a/assets/static/fonts/open-iconic/png/account-logout.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/action-redo-2x.png b/assets/static/fonts/open-iconic/png/action-redo-2x.png
deleted file mode 100644
index dd7e4a3..0000000
Binary files a/assets/static/fonts/open-iconic/png/action-redo-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/action-redo-3x.png b/assets/static/fonts/open-iconic/png/action-redo-3x.png
deleted file mode 100644
index 475b14c..0000000
Binary files a/assets/static/fonts/open-iconic/png/action-redo-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/action-redo-4x.png b/assets/static/fonts/open-iconic/png/action-redo-4x.png
deleted file mode 100644
index 74d4933..0000000
Binary files a/assets/static/fonts/open-iconic/png/action-redo-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/action-redo-6x.png b/assets/static/fonts/open-iconic/png/action-redo-6x.png
deleted file mode 100644
index d47c319..0000000
Binary files a/assets/static/fonts/open-iconic/png/action-redo-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/action-redo-8x.png b/assets/static/fonts/open-iconic/png/action-redo-8x.png
deleted file mode 100644
index 3cd2874..0000000
Binary files a/assets/static/fonts/open-iconic/png/action-redo-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/action-redo.png b/assets/static/fonts/open-iconic/png/action-redo.png
deleted file mode 100644
index 54db46e..0000000
Binary files a/assets/static/fonts/open-iconic/png/action-redo.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/action-undo-2x.png b/assets/static/fonts/open-iconic/png/action-undo-2x.png
deleted file mode 100644
index d8cb971..0000000
Binary files a/assets/static/fonts/open-iconic/png/action-undo-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/action-undo-3x.png b/assets/static/fonts/open-iconic/png/action-undo-3x.png
deleted file mode 100644
index 812db31..0000000
Binary files a/assets/static/fonts/open-iconic/png/action-undo-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/action-undo-4x.png b/assets/static/fonts/open-iconic/png/action-undo-4x.png
deleted file mode 100644
index f71efbf..0000000
Binary files a/assets/static/fonts/open-iconic/png/action-undo-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/action-undo-6x.png b/assets/static/fonts/open-iconic/png/action-undo-6x.png
deleted file mode 100644
index afaef86..0000000
Binary files a/assets/static/fonts/open-iconic/png/action-undo-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/action-undo-8x.png b/assets/static/fonts/open-iconic/png/action-undo-8x.png
deleted file mode 100644
index 3ebfeb0..0000000
Binary files a/assets/static/fonts/open-iconic/png/action-undo-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/action-undo.png b/assets/static/fonts/open-iconic/png/action-undo.png
deleted file mode 100644
index be4df7a..0000000
Binary files a/assets/static/fonts/open-iconic/png/action-undo.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/align-center-2x.png b/assets/static/fonts/open-iconic/png/align-center-2x.png
deleted file mode 100644
index ea984dc..0000000
Binary files a/assets/static/fonts/open-iconic/png/align-center-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/align-center-3x.png b/assets/static/fonts/open-iconic/png/align-center-3x.png
deleted file mode 100644
index dd07465..0000000
Binary files a/assets/static/fonts/open-iconic/png/align-center-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/align-center-4x.png b/assets/static/fonts/open-iconic/png/align-center-4x.png
deleted file mode 100644
index e5c987a..0000000
Binary files a/assets/static/fonts/open-iconic/png/align-center-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/align-center-6x.png b/assets/static/fonts/open-iconic/png/align-center-6x.png
deleted file mode 100644
index 1a861b9..0000000
Binary files a/assets/static/fonts/open-iconic/png/align-center-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/align-center-8x.png b/assets/static/fonts/open-iconic/png/align-center-8x.png
deleted file mode 100644
index c6baacc..0000000
Binary files a/assets/static/fonts/open-iconic/png/align-center-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/align-center.png b/assets/static/fonts/open-iconic/png/align-center.png
deleted file mode 100644
index d4b1070..0000000
Binary files a/assets/static/fonts/open-iconic/png/align-center.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/align-left-2x.png b/assets/static/fonts/open-iconic/png/align-left-2x.png
deleted file mode 100644
index ba8966c..0000000
Binary files a/assets/static/fonts/open-iconic/png/align-left-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/align-left-3x.png b/assets/static/fonts/open-iconic/png/align-left-3x.png
deleted file mode 100644
index ad1cbcc..0000000
Binary files a/assets/static/fonts/open-iconic/png/align-left-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/align-left-4x.png b/assets/static/fonts/open-iconic/png/align-left-4x.png
deleted file mode 100644
index ce5ae76..0000000
Binary files a/assets/static/fonts/open-iconic/png/align-left-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/align-left-6x.png b/assets/static/fonts/open-iconic/png/align-left-6x.png
deleted file mode 100644
index 00cdce5..0000000
Binary files a/assets/static/fonts/open-iconic/png/align-left-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/align-left-8x.png b/assets/static/fonts/open-iconic/png/align-left-8x.png
deleted file mode 100644
index e666104..0000000
Binary files a/assets/static/fonts/open-iconic/png/align-left-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/align-left.png b/assets/static/fonts/open-iconic/png/align-left.png
deleted file mode 100644
index 7286c96..0000000
Binary files a/assets/static/fonts/open-iconic/png/align-left.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/align-right-2x.png b/assets/static/fonts/open-iconic/png/align-right-2x.png
deleted file mode 100644
index 8edf99d..0000000
Binary files a/assets/static/fonts/open-iconic/png/align-right-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/align-right-3x.png b/assets/static/fonts/open-iconic/png/align-right-3x.png
deleted file mode 100644
index 5a6e04f..0000000
Binary files a/assets/static/fonts/open-iconic/png/align-right-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/align-right-4x.png b/assets/static/fonts/open-iconic/png/align-right-4x.png
deleted file mode 100644
index 33e0f12..0000000
Binary files a/assets/static/fonts/open-iconic/png/align-right-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/align-right-6x.png b/assets/static/fonts/open-iconic/png/align-right-6x.png
deleted file mode 100644
index 0b2eb6a..0000000
Binary files a/assets/static/fonts/open-iconic/png/align-right-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/align-right-8x.png b/assets/static/fonts/open-iconic/png/align-right-8x.png
deleted file mode 100644
index 55b712f..0000000
Binary files a/assets/static/fonts/open-iconic/png/align-right-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/align-right.png b/assets/static/fonts/open-iconic/png/align-right.png
deleted file mode 100644
index cdcbc8e..0000000
Binary files a/assets/static/fonts/open-iconic/png/align-right.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/aperture-2x.png b/assets/static/fonts/open-iconic/png/aperture-2x.png
deleted file mode 100644
index 61eccfa..0000000
Binary files a/assets/static/fonts/open-iconic/png/aperture-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/aperture-3x.png b/assets/static/fonts/open-iconic/png/aperture-3x.png
deleted file mode 100644
index 606e0b4..0000000
Binary files a/assets/static/fonts/open-iconic/png/aperture-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/aperture-4x.png b/assets/static/fonts/open-iconic/png/aperture-4x.png
deleted file mode 100644
index 0dd82d3..0000000
Binary files a/assets/static/fonts/open-iconic/png/aperture-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/aperture-6x.png b/assets/static/fonts/open-iconic/png/aperture-6x.png
deleted file mode 100644
index 02b79ff..0000000
Binary files a/assets/static/fonts/open-iconic/png/aperture-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/aperture-8x.png b/assets/static/fonts/open-iconic/png/aperture-8x.png
deleted file mode 100644
index 418c8cf..0000000
Binary files a/assets/static/fonts/open-iconic/png/aperture-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/aperture.png b/assets/static/fonts/open-iconic/png/aperture.png
deleted file mode 100644
index 4779d49..0000000
Binary files a/assets/static/fonts/open-iconic/png/aperture.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-bottom-2x.png b/assets/static/fonts/open-iconic/png/arrow-bottom-2x.png
deleted file mode 100644
index bacc577..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-bottom-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-bottom-3x.png b/assets/static/fonts/open-iconic/png/arrow-bottom-3x.png
deleted file mode 100644
index d31f2f7..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-bottom-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-bottom-4x.png b/assets/static/fonts/open-iconic/png/arrow-bottom-4x.png
deleted file mode 100644
index 099fb4a..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-bottom-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-bottom-6x.png b/assets/static/fonts/open-iconic/png/arrow-bottom-6x.png
deleted file mode 100644
index 2374ba8..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-bottom-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-bottom-8x.png b/assets/static/fonts/open-iconic/png/arrow-bottom-8x.png
deleted file mode 100644
index 8644747..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-bottom-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-bottom.png b/assets/static/fonts/open-iconic/png/arrow-bottom.png
deleted file mode 100644
index 8afb2b9..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-bottom.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-circle-bottom-2x.png b/assets/static/fonts/open-iconic/png/arrow-circle-bottom-2x.png
deleted file mode 100644
index 3f9f9eb..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-circle-bottom-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-circle-bottom-3x.png b/assets/static/fonts/open-iconic/png/arrow-circle-bottom-3x.png
deleted file mode 100644
index 17c2b88..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-circle-bottom-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-circle-bottom-4x.png b/assets/static/fonts/open-iconic/png/arrow-circle-bottom-4x.png
deleted file mode 100644
index 97e6bc1..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-circle-bottom-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-circle-bottom-6x.png b/assets/static/fonts/open-iconic/png/arrow-circle-bottom-6x.png
deleted file mode 100644
index d9d46a0..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-circle-bottom-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-circle-bottom-8x.png b/assets/static/fonts/open-iconic/png/arrow-circle-bottom-8x.png
deleted file mode 100644
index 3df99bb..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-circle-bottom-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-circle-bottom.png b/assets/static/fonts/open-iconic/png/arrow-circle-bottom.png
deleted file mode 100644
index eced19e..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-circle-bottom.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-circle-left-2x.png b/assets/static/fonts/open-iconic/png/arrow-circle-left-2x.png
deleted file mode 100644
index c994a8c..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-circle-left-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-circle-left-3x.png b/assets/static/fonts/open-iconic/png/arrow-circle-left-3x.png
deleted file mode 100644
index 20f0abe..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-circle-left-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-circle-left-4x.png b/assets/static/fonts/open-iconic/png/arrow-circle-left-4x.png
deleted file mode 100644
index 12391e6..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-circle-left-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-circle-left-6x.png b/assets/static/fonts/open-iconic/png/arrow-circle-left-6x.png
deleted file mode 100644
index d6bb98b..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-circle-left-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-circle-left-8x.png b/assets/static/fonts/open-iconic/png/arrow-circle-left-8x.png
deleted file mode 100644
index 532dd68..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-circle-left-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-circle-left.png b/assets/static/fonts/open-iconic/png/arrow-circle-left.png
deleted file mode 100644
index c06fa18..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-circle-left.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-circle-right-2x.png b/assets/static/fonts/open-iconic/png/arrow-circle-right-2x.png
deleted file mode 100644
index f6751cc..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-circle-right-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-circle-right-3x.png b/assets/static/fonts/open-iconic/png/arrow-circle-right-3x.png
deleted file mode 100644
index 0e34225..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-circle-right-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-circle-right-4x.png b/assets/static/fonts/open-iconic/png/arrow-circle-right-4x.png
deleted file mode 100644
index 3ce7216..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-circle-right-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-circle-right-6x.png b/assets/static/fonts/open-iconic/png/arrow-circle-right-6x.png
deleted file mode 100644
index 06ff12e..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-circle-right-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-circle-right-8x.png b/assets/static/fonts/open-iconic/png/arrow-circle-right-8x.png
deleted file mode 100644
index a731bfb..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-circle-right-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-circle-right.png b/assets/static/fonts/open-iconic/png/arrow-circle-right.png
deleted file mode 100644
index 5539247..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-circle-right.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-circle-top-2x.png b/assets/static/fonts/open-iconic/png/arrow-circle-top-2x.png
deleted file mode 100644
index 5bd00e6..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-circle-top-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-circle-top-3x.png b/assets/static/fonts/open-iconic/png/arrow-circle-top-3x.png
deleted file mode 100644
index 512cae9..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-circle-top-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-circle-top-4x.png b/assets/static/fonts/open-iconic/png/arrow-circle-top-4x.png
deleted file mode 100644
index 076b151..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-circle-top-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-circle-top-6x.png b/assets/static/fonts/open-iconic/png/arrow-circle-top-6x.png
deleted file mode 100644
index 99f2a1d..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-circle-top-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-circle-top-8x.png b/assets/static/fonts/open-iconic/png/arrow-circle-top-8x.png
deleted file mode 100644
index 6937200..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-circle-top-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-circle-top.png b/assets/static/fonts/open-iconic/png/arrow-circle-top.png
deleted file mode 100644
index ceaf61c..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-circle-top.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-left-2x.png b/assets/static/fonts/open-iconic/png/arrow-left-2x.png
deleted file mode 100644
index 50e0790..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-left-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-left-3x.png b/assets/static/fonts/open-iconic/png/arrow-left-3x.png
deleted file mode 100644
index 79e300c..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-left-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-left-4x.png b/assets/static/fonts/open-iconic/png/arrow-left-4x.png
deleted file mode 100644
index a7294db..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-left-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-left-6x.png b/assets/static/fonts/open-iconic/png/arrow-left-6x.png
deleted file mode 100644
index b65a686..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-left-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-left-8x.png b/assets/static/fonts/open-iconic/png/arrow-left-8x.png
deleted file mode 100644
index 9bc505d..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-left-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-left.png b/assets/static/fonts/open-iconic/png/arrow-left.png
deleted file mode 100644
index ae60df4..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-left.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-right-2x.png b/assets/static/fonts/open-iconic/png/arrow-right-2x.png
deleted file mode 100644
index 0a02d33..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-right-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-right-3x.png b/assets/static/fonts/open-iconic/png/arrow-right-3x.png
deleted file mode 100644
index df941b5..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-right-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-right-4x.png b/assets/static/fonts/open-iconic/png/arrow-right-4x.png
deleted file mode 100644
index e87b407..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-right-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-right-6x.png b/assets/static/fonts/open-iconic/png/arrow-right-6x.png
deleted file mode 100644
index 2ee850a..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-right-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-right-8x.png b/assets/static/fonts/open-iconic/png/arrow-right-8x.png
deleted file mode 100644
index 15da93c..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-right-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-right.png b/assets/static/fonts/open-iconic/png/arrow-right.png
deleted file mode 100644
index a6ae9ff..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-right.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-thick-bottom-2x.png b/assets/static/fonts/open-iconic/png/arrow-thick-bottom-2x.png
deleted file mode 100644
index a513915..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-thick-bottom-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-thick-bottom-3x.png b/assets/static/fonts/open-iconic/png/arrow-thick-bottom-3x.png
deleted file mode 100644
index 03d5925..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-thick-bottom-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-thick-bottom-4x.png b/assets/static/fonts/open-iconic/png/arrow-thick-bottom-4x.png
deleted file mode 100644
index 2f4ee60..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-thick-bottom-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-thick-bottom-6x.png b/assets/static/fonts/open-iconic/png/arrow-thick-bottom-6x.png
deleted file mode 100644
index 5683b2d..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-thick-bottom-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-thick-bottom-8x.png b/assets/static/fonts/open-iconic/png/arrow-thick-bottom-8x.png
deleted file mode 100644
index faea3f3..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-thick-bottom-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-thick-bottom.png b/assets/static/fonts/open-iconic/png/arrow-thick-bottom.png
deleted file mode 100644
index 2e0f9dc..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-thick-bottom.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-thick-left-2x.png b/assets/static/fonts/open-iconic/png/arrow-thick-left-2x.png
deleted file mode 100644
index bae1c64..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-thick-left-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-thick-left-3x.png b/assets/static/fonts/open-iconic/png/arrow-thick-left-3x.png
deleted file mode 100644
index f91944b..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-thick-left-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-thick-left-4x.png b/assets/static/fonts/open-iconic/png/arrow-thick-left-4x.png
deleted file mode 100644
index 700e953..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-thick-left-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-thick-left-6x.png b/assets/static/fonts/open-iconic/png/arrow-thick-left-6x.png
deleted file mode 100644
index 10de7cf..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-thick-left-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-thick-left-8x.png b/assets/static/fonts/open-iconic/png/arrow-thick-left-8x.png
deleted file mode 100644
index 5a0ac0b..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-thick-left-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-thick-left.png b/assets/static/fonts/open-iconic/png/arrow-thick-left.png
deleted file mode 100644
index 11fdc3b..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-thick-left.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-thick-right-2x.png b/assets/static/fonts/open-iconic/png/arrow-thick-right-2x.png
deleted file mode 100644
index aa7fd1d..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-thick-right-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-thick-right-3x.png b/assets/static/fonts/open-iconic/png/arrow-thick-right-3x.png
deleted file mode 100644
index 478b0cb..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-thick-right-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-thick-right-4x.png b/assets/static/fonts/open-iconic/png/arrow-thick-right-4x.png
deleted file mode 100644
index 79f8b6d..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-thick-right-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-thick-right-6x.png b/assets/static/fonts/open-iconic/png/arrow-thick-right-6x.png
deleted file mode 100644
index 46ec7ac..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-thick-right-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-thick-right-8x.png b/assets/static/fonts/open-iconic/png/arrow-thick-right-8x.png
deleted file mode 100644
index f701044..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-thick-right-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-thick-right.png b/assets/static/fonts/open-iconic/png/arrow-thick-right.png
deleted file mode 100644
index 56c03af..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-thick-right.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-thick-top-2x.png b/assets/static/fonts/open-iconic/png/arrow-thick-top-2x.png
deleted file mode 100644
index 7344037..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-thick-top-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-thick-top-3x.png b/assets/static/fonts/open-iconic/png/arrow-thick-top-3x.png
deleted file mode 100644
index b4adc12..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-thick-top-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-thick-top-4x.png b/assets/static/fonts/open-iconic/png/arrow-thick-top-4x.png
deleted file mode 100644
index dcfc378..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-thick-top-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-thick-top-6x.png b/assets/static/fonts/open-iconic/png/arrow-thick-top-6x.png
deleted file mode 100644
index 3c23560..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-thick-top-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-thick-top-8x.png b/assets/static/fonts/open-iconic/png/arrow-thick-top-8x.png
deleted file mode 100644
index 36130c4..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-thick-top-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-thick-top.png b/assets/static/fonts/open-iconic/png/arrow-thick-top.png
deleted file mode 100644
index 1065e01..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-thick-top.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-top-2x.png b/assets/static/fonts/open-iconic/png/arrow-top-2x.png
deleted file mode 100644
index c33da9a..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-top-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-top-3x.png b/assets/static/fonts/open-iconic/png/arrow-top-3x.png
deleted file mode 100644
index a755ba4..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-top-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-top-4x.png b/assets/static/fonts/open-iconic/png/arrow-top-4x.png
deleted file mode 100644
index 994ee06..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-top-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-top-6x.png b/assets/static/fonts/open-iconic/png/arrow-top-6x.png
deleted file mode 100644
index 13ebb95..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-top-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-top-8x.png b/assets/static/fonts/open-iconic/png/arrow-top-8x.png
deleted file mode 100644
index 8f805dd..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-top-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/arrow-top.png b/assets/static/fonts/open-iconic/png/arrow-top.png
deleted file mode 100644
index 5830c63..0000000
Binary files a/assets/static/fonts/open-iconic/png/arrow-top.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/audio-2x.png b/assets/static/fonts/open-iconic/png/audio-2x.png
deleted file mode 100644
index 854b9d3..0000000
Binary files a/assets/static/fonts/open-iconic/png/audio-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/audio-3x.png b/assets/static/fonts/open-iconic/png/audio-3x.png
deleted file mode 100644
index fb72618..0000000
Binary files a/assets/static/fonts/open-iconic/png/audio-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/audio-4x.png b/assets/static/fonts/open-iconic/png/audio-4x.png
deleted file mode 100644
index 0a8ce94..0000000
Binary files a/assets/static/fonts/open-iconic/png/audio-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/audio-6x.png b/assets/static/fonts/open-iconic/png/audio-6x.png
deleted file mode 100644
index 6ef278f..0000000
Binary files a/assets/static/fonts/open-iconic/png/audio-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/audio-8x.png b/assets/static/fonts/open-iconic/png/audio-8x.png
deleted file mode 100644
index f16dce7..0000000
Binary files a/assets/static/fonts/open-iconic/png/audio-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/audio-spectrum-2x.png b/assets/static/fonts/open-iconic/png/audio-spectrum-2x.png
deleted file mode 100644
index b80b92d..0000000
Binary files a/assets/static/fonts/open-iconic/png/audio-spectrum-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/audio-spectrum-3x.png b/assets/static/fonts/open-iconic/png/audio-spectrum-3x.png
deleted file mode 100644
index 4a232e1..0000000
Binary files a/assets/static/fonts/open-iconic/png/audio-spectrum-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/audio-spectrum-4x.png b/assets/static/fonts/open-iconic/png/audio-spectrum-4x.png
deleted file mode 100644
index 616d2d7..0000000
Binary files a/assets/static/fonts/open-iconic/png/audio-spectrum-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/audio-spectrum-6x.png b/assets/static/fonts/open-iconic/png/audio-spectrum-6x.png
deleted file mode 100644
index 5809427..0000000
Binary files a/assets/static/fonts/open-iconic/png/audio-spectrum-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/audio-spectrum-8x.png b/assets/static/fonts/open-iconic/png/audio-spectrum-8x.png
deleted file mode 100644
index 8d2b693..0000000
Binary files a/assets/static/fonts/open-iconic/png/audio-spectrum-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/audio-spectrum.png b/assets/static/fonts/open-iconic/png/audio-spectrum.png
deleted file mode 100644
index 5c3dc6d..0000000
Binary files a/assets/static/fonts/open-iconic/png/audio-spectrum.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/audio.png b/assets/static/fonts/open-iconic/png/audio.png
deleted file mode 100644
index 6042931..0000000
Binary files a/assets/static/fonts/open-iconic/png/audio.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/badge-2x.png b/assets/static/fonts/open-iconic/png/badge-2x.png
deleted file mode 100644
index 1fa3fe2..0000000
Binary files a/assets/static/fonts/open-iconic/png/badge-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/badge-3x.png b/assets/static/fonts/open-iconic/png/badge-3x.png
deleted file mode 100644
index c3db713..0000000
Binary files a/assets/static/fonts/open-iconic/png/badge-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/badge-4x.png b/assets/static/fonts/open-iconic/png/badge-4x.png
deleted file mode 100644
index 1f24ead..0000000
Binary files a/assets/static/fonts/open-iconic/png/badge-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/badge-6x.png b/assets/static/fonts/open-iconic/png/badge-6x.png
deleted file mode 100644
index 12775ca..0000000
Binary files a/assets/static/fonts/open-iconic/png/badge-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/badge-8x.png b/assets/static/fonts/open-iconic/png/badge-8x.png
deleted file mode 100644
index 3bf881e..0000000
Binary files a/assets/static/fonts/open-iconic/png/badge-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/badge.png b/assets/static/fonts/open-iconic/png/badge.png
deleted file mode 100644
index 0caf8ac..0000000
Binary files a/assets/static/fonts/open-iconic/png/badge.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/ban-2x.png b/assets/static/fonts/open-iconic/png/ban-2x.png
deleted file mode 100644
index c1b039f..0000000
Binary files a/assets/static/fonts/open-iconic/png/ban-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/ban-3x.png b/assets/static/fonts/open-iconic/png/ban-3x.png
deleted file mode 100644
index 4481185..0000000
Binary files a/assets/static/fonts/open-iconic/png/ban-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/ban-4x.png b/assets/static/fonts/open-iconic/png/ban-4x.png
deleted file mode 100644
index 66080d8..0000000
Binary files a/assets/static/fonts/open-iconic/png/ban-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/ban-6x.png b/assets/static/fonts/open-iconic/png/ban-6x.png
deleted file mode 100644
index 8531278..0000000
Binary files a/assets/static/fonts/open-iconic/png/ban-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/ban-8x.png b/assets/static/fonts/open-iconic/png/ban-8x.png
deleted file mode 100644
index 2aebdf6..0000000
Binary files a/assets/static/fonts/open-iconic/png/ban-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/ban.png b/assets/static/fonts/open-iconic/png/ban.png
deleted file mode 100644
index 99f8fec..0000000
Binary files a/assets/static/fonts/open-iconic/png/ban.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bar-chart-2x.png b/assets/static/fonts/open-iconic/png/bar-chart-2x.png
deleted file mode 100644
index 50a8341..0000000
Binary files a/assets/static/fonts/open-iconic/png/bar-chart-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bar-chart-3x.png b/assets/static/fonts/open-iconic/png/bar-chart-3x.png
deleted file mode 100644
index c3b0adb..0000000
Binary files a/assets/static/fonts/open-iconic/png/bar-chart-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bar-chart-4x.png b/assets/static/fonts/open-iconic/png/bar-chart-4x.png
deleted file mode 100644
index 541d211..0000000
Binary files a/assets/static/fonts/open-iconic/png/bar-chart-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bar-chart-6x.png b/assets/static/fonts/open-iconic/png/bar-chart-6x.png
deleted file mode 100644
index c4fdc1a..0000000
Binary files a/assets/static/fonts/open-iconic/png/bar-chart-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bar-chart-8x.png b/assets/static/fonts/open-iconic/png/bar-chart-8x.png
deleted file mode 100644
index d12c50a..0000000
Binary files a/assets/static/fonts/open-iconic/png/bar-chart-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bar-chart.png b/assets/static/fonts/open-iconic/png/bar-chart.png
deleted file mode 100644
index 57df41c..0000000
Binary files a/assets/static/fonts/open-iconic/png/bar-chart.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/basket-2x.png b/assets/static/fonts/open-iconic/png/basket-2x.png
deleted file mode 100644
index 1846e0e..0000000
Binary files a/assets/static/fonts/open-iconic/png/basket-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/basket-3x.png b/assets/static/fonts/open-iconic/png/basket-3x.png
deleted file mode 100644
index e9fa58b..0000000
Binary files a/assets/static/fonts/open-iconic/png/basket-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/basket-4x.png b/assets/static/fonts/open-iconic/png/basket-4x.png
deleted file mode 100644
index 5ea8960..0000000
Binary files a/assets/static/fonts/open-iconic/png/basket-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/basket-6x.png b/assets/static/fonts/open-iconic/png/basket-6x.png
deleted file mode 100644
index 9bdb42c..0000000
Binary files a/assets/static/fonts/open-iconic/png/basket-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/basket-8x.png b/assets/static/fonts/open-iconic/png/basket-8x.png
deleted file mode 100644
index f3b4392..0000000
Binary files a/assets/static/fonts/open-iconic/png/basket-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/basket.png b/assets/static/fonts/open-iconic/png/basket.png
deleted file mode 100644
index 57007cc..0000000
Binary files a/assets/static/fonts/open-iconic/png/basket.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/battery-empty-2x.png b/assets/static/fonts/open-iconic/png/battery-empty-2x.png
deleted file mode 100644
index 2d255bb..0000000
Binary files a/assets/static/fonts/open-iconic/png/battery-empty-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/battery-empty-3x.png b/assets/static/fonts/open-iconic/png/battery-empty-3x.png
deleted file mode 100644
index 41e693a..0000000
Binary files a/assets/static/fonts/open-iconic/png/battery-empty-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/battery-empty-4x.png b/assets/static/fonts/open-iconic/png/battery-empty-4x.png
deleted file mode 100644
index 6593ad0..0000000
Binary files a/assets/static/fonts/open-iconic/png/battery-empty-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/battery-empty-6x.png b/assets/static/fonts/open-iconic/png/battery-empty-6x.png
deleted file mode 100644
index b603a93..0000000
Binary files a/assets/static/fonts/open-iconic/png/battery-empty-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/battery-empty-8x.png b/assets/static/fonts/open-iconic/png/battery-empty-8x.png
deleted file mode 100644
index 23cf2ad..0000000
Binary files a/assets/static/fonts/open-iconic/png/battery-empty-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/battery-empty.png b/assets/static/fonts/open-iconic/png/battery-empty.png
deleted file mode 100644
index cf78dba..0000000
Binary files a/assets/static/fonts/open-iconic/png/battery-empty.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/battery-full-2x.png b/assets/static/fonts/open-iconic/png/battery-full-2x.png
deleted file mode 100644
index 9c02f61..0000000
Binary files a/assets/static/fonts/open-iconic/png/battery-full-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/battery-full-3x.png b/assets/static/fonts/open-iconic/png/battery-full-3x.png
deleted file mode 100644
index d36091e..0000000
Binary files a/assets/static/fonts/open-iconic/png/battery-full-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/battery-full-4x.png b/assets/static/fonts/open-iconic/png/battery-full-4x.png
deleted file mode 100644
index c56206d..0000000
Binary files a/assets/static/fonts/open-iconic/png/battery-full-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/battery-full-6x.png b/assets/static/fonts/open-iconic/png/battery-full-6x.png
deleted file mode 100644
index fc097a3..0000000
Binary files a/assets/static/fonts/open-iconic/png/battery-full-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/battery-full-8x.png b/assets/static/fonts/open-iconic/png/battery-full-8x.png
deleted file mode 100644
index 5ba7cf8..0000000
Binary files a/assets/static/fonts/open-iconic/png/battery-full-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/battery-full.png b/assets/static/fonts/open-iconic/png/battery-full.png
deleted file mode 100644
index 38488bd..0000000
Binary files a/assets/static/fonts/open-iconic/png/battery-full.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/beaker-2x.png b/assets/static/fonts/open-iconic/png/beaker-2x.png
deleted file mode 100644
index d2e0a16..0000000
Binary files a/assets/static/fonts/open-iconic/png/beaker-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/beaker-3x.png b/assets/static/fonts/open-iconic/png/beaker-3x.png
deleted file mode 100644
index 6300019..0000000
Binary files a/assets/static/fonts/open-iconic/png/beaker-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/beaker-4x.png b/assets/static/fonts/open-iconic/png/beaker-4x.png
deleted file mode 100644
index 01d3750..0000000
Binary files a/assets/static/fonts/open-iconic/png/beaker-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/beaker-6x.png b/assets/static/fonts/open-iconic/png/beaker-6x.png
deleted file mode 100644
index 75f0fd6..0000000
Binary files a/assets/static/fonts/open-iconic/png/beaker-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/beaker-8x.png b/assets/static/fonts/open-iconic/png/beaker-8x.png
deleted file mode 100644
index d652757..0000000
Binary files a/assets/static/fonts/open-iconic/png/beaker-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/beaker.png b/assets/static/fonts/open-iconic/png/beaker.png
deleted file mode 100644
index 4abc6df..0000000
Binary files a/assets/static/fonts/open-iconic/png/beaker.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bell-2x.png b/assets/static/fonts/open-iconic/png/bell-2x.png
deleted file mode 100644
index a14f5c4..0000000
Binary files a/assets/static/fonts/open-iconic/png/bell-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bell-3x.png b/assets/static/fonts/open-iconic/png/bell-3x.png
deleted file mode 100644
index aa17384..0000000
Binary files a/assets/static/fonts/open-iconic/png/bell-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bell-4x.png b/assets/static/fonts/open-iconic/png/bell-4x.png
deleted file mode 100644
index 1e740fc..0000000
Binary files a/assets/static/fonts/open-iconic/png/bell-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bell-6x.png b/assets/static/fonts/open-iconic/png/bell-6x.png
deleted file mode 100644
index 8893776..0000000
Binary files a/assets/static/fonts/open-iconic/png/bell-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bell-8x.png b/assets/static/fonts/open-iconic/png/bell-8x.png
deleted file mode 100644
index 07151da..0000000
Binary files a/assets/static/fonts/open-iconic/png/bell-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bell.png b/assets/static/fonts/open-iconic/png/bell.png
deleted file mode 100644
index 8e27b3f..0000000
Binary files a/assets/static/fonts/open-iconic/png/bell.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bluetooth-2x.png b/assets/static/fonts/open-iconic/png/bluetooth-2x.png
deleted file mode 100644
index 35b7ad4..0000000
Binary files a/assets/static/fonts/open-iconic/png/bluetooth-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bluetooth-3x.png b/assets/static/fonts/open-iconic/png/bluetooth-3x.png
deleted file mode 100644
index 630b241..0000000
Binary files a/assets/static/fonts/open-iconic/png/bluetooth-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bluetooth-4x.png b/assets/static/fonts/open-iconic/png/bluetooth-4x.png
deleted file mode 100644
index f1bbcc3..0000000
Binary files a/assets/static/fonts/open-iconic/png/bluetooth-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bluetooth-6x.png b/assets/static/fonts/open-iconic/png/bluetooth-6x.png
deleted file mode 100644
index d769578..0000000
Binary files a/assets/static/fonts/open-iconic/png/bluetooth-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bluetooth-8x.png b/assets/static/fonts/open-iconic/png/bluetooth-8x.png
deleted file mode 100644
index 2ff3619..0000000
Binary files a/assets/static/fonts/open-iconic/png/bluetooth-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bluetooth.png b/assets/static/fonts/open-iconic/png/bluetooth.png
deleted file mode 100644
index a0447d3..0000000
Binary files a/assets/static/fonts/open-iconic/png/bluetooth.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bold-2x.png b/assets/static/fonts/open-iconic/png/bold-2x.png
deleted file mode 100644
index 96792d1..0000000
Binary files a/assets/static/fonts/open-iconic/png/bold-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bold-3x.png b/assets/static/fonts/open-iconic/png/bold-3x.png
deleted file mode 100644
index 811deb7..0000000
Binary files a/assets/static/fonts/open-iconic/png/bold-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bold-4x.png b/assets/static/fonts/open-iconic/png/bold-4x.png
deleted file mode 100644
index 45f1397..0000000
Binary files a/assets/static/fonts/open-iconic/png/bold-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bold-6x.png b/assets/static/fonts/open-iconic/png/bold-6x.png
deleted file mode 100644
index 4abed66..0000000
Binary files a/assets/static/fonts/open-iconic/png/bold-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bold-8x.png b/assets/static/fonts/open-iconic/png/bold-8x.png
deleted file mode 100644
index bea0186..0000000
Binary files a/assets/static/fonts/open-iconic/png/bold-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bold.png b/assets/static/fonts/open-iconic/png/bold.png
deleted file mode 100644
index 35fd05b..0000000
Binary files a/assets/static/fonts/open-iconic/png/bold.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bolt-2x.png b/assets/static/fonts/open-iconic/png/bolt-2x.png
deleted file mode 100644
index 4adbcb1..0000000
Binary files a/assets/static/fonts/open-iconic/png/bolt-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bolt-3x.png b/assets/static/fonts/open-iconic/png/bolt-3x.png
deleted file mode 100644
index 5319a50..0000000
Binary files a/assets/static/fonts/open-iconic/png/bolt-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bolt-4x.png b/assets/static/fonts/open-iconic/png/bolt-4x.png
deleted file mode 100644
index d144333..0000000
Binary files a/assets/static/fonts/open-iconic/png/bolt-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bolt-6x.png b/assets/static/fonts/open-iconic/png/bolt-6x.png
deleted file mode 100644
index eae8112..0000000
Binary files a/assets/static/fonts/open-iconic/png/bolt-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bolt-8x.png b/assets/static/fonts/open-iconic/png/bolt-8x.png
deleted file mode 100644
index 95cb9c1..0000000
Binary files a/assets/static/fonts/open-iconic/png/bolt-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bolt.png b/assets/static/fonts/open-iconic/png/bolt.png
deleted file mode 100644
index eb20880..0000000
Binary files a/assets/static/fonts/open-iconic/png/bolt.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/book-2x.png b/assets/static/fonts/open-iconic/png/book-2x.png
deleted file mode 100644
index e880ba2..0000000
Binary files a/assets/static/fonts/open-iconic/png/book-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/book-3x.png b/assets/static/fonts/open-iconic/png/book-3x.png
deleted file mode 100644
index d8df48b..0000000
Binary files a/assets/static/fonts/open-iconic/png/book-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/book-4x.png b/assets/static/fonts/open-iconic/png/book-4x.png
deleted file mode 100644
index f35f9fe..0000000
Binary files a/assets/static/fonts/open-iconic/png/book-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/book-6x.png b/assets/static/fonts/open-iconic/png/book-6x.png
deleted file mode 100644
index a1046a6..0000000
Binary files a/assets/static/fonts/open-iconic/png/book-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/book-8x.png b/assets/static/fonts/open-iconic/png/book-8x.png
deleted file mode 100644
index a54a3e7..0000000
Binary files a/assets/static/fonts/open-iconic/png/book-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/book.png b/assets/static/fonts/open-iconic/png/book.png
deleted file mode 100644
index 43f0eca..0000000
Binary files a/assets/static/fonts/open-iconic/png/book.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bookmark-2x.png b/assets/static/fonts/open-iconic/png/bookmark-2x.png
deleted file mode 100644
index 2b624c5..0000000
Binary files a/assets/static/fonts/open-iconic/png/bookmark-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bookmark-3x.png b/assets/static/fonts/open-iconic/png/bookmark-3x.png
deleted file mode 100644
index 6d244b2..0000000
Binary files a/assets/static/fonts/open-iconic/png/bookmark-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bookmark-4x.png b/assets/static/fonts/open-iconic/png/bookmark-4x.png
deleted file mode 100644
index 4c3c2a3..0000000
Binary files a/assets/static/fonts/open-iconic/png/bookmark-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bookmark-6x.png b/assets/static/fonts/open-iconic/png/bookmark-6x.png
deleted file mode 100644
index b0b5863..0000000
Binary files a/assets/static/fonts/open-iconic/png/bookmark-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bookmark-8x.png b/assets/static/fonts/open-iconic/png/bookmark-8x.png
deleted file mode 100644
index ad892d5..0000000
Binary files a/assets/static/fonts/open-iconic/png/bookmark-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bookmark.png b/assets/static/fonts/open-iconic/png/bookmark.png
deleted file mode 100644
index c1fb0b2..0000000
Binary files a/assets/static/fonts/open-iconic/png/bookmark.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/box-2x.png b/assets/static/fonts/open-iconic/png/box-2x.png
deleted file mode 100644
index e874d87..0000000
Binary files a/assets/static/fonts/open-iconic/png/box-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/box-3x.png b/assets/static/fonts/open-iconic/png/box-3x.png
deleted file mode 100644
index a4ccd3a..0000000
Binary files a/assets/static/fonts/open-iconic/png/box-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/box-4x.png b/assets/static/fonts/open-iconic/png/box-4x.png
deleted file mode 100644
index 9187998..0000000
Binary files a/assets/static/fonts/open-iconic/png/box-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/box-6x.png b/assets/static/fonts/open-iconic/png/box-6x.png
deleted file mode 100644
index 77ce68c..0000000
Binary files a/assets/static/fonts/open-iconic/png/box-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/box-8x.png b/assets/static/fonts/open-iconic/png/box-8x.png
deleted file mode 100644
index 1c2bc3b..0000000
Binary files a/assets/static/fonts/open-iconic/png/box-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/box.png b/assets/static/fonts/open-iconic/png/box.png
deleted file mode 100644
index f7c095e..0000000
Binary files a/assets/static/fonts/open-iconic/png/box.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/briefcase-2x.png b/assets/static/fonts/open-iconic/png/briefcase-2x.png
deleted file mode 100644
index 7f8429b..0000000
Binary files a/assets/static/fonts/open-iconic/png/briefcase-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/briefcase-3x.png b/assets/static/fonts/open-iconic/png/briefcase-3x.png
deleted file mode 100644
index 7c80ff2..0000000
Binary files a/assets/static/fonts/open-iconic/png/briefcase-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/briefcase-4x.png b/assets/static/fonts/open-iconic/png/briefcase-4x.png
deleted file mode 100644
index 8ca103a..0000000
Binary files a/assets/static/fonts/open-iconic/png/briefcase-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/briefcase-6x.png b/assets/static/fonts/open-iconic/png/briefcase-6x.png
deleted file mode 100644
index 93bff8d..0000000
Binary files a/assets/static/fonts/open-iconic/png/briefcase-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/briefcase-8x.png b/assets/static/fonts/open-iconic/png/briefcase-8x.png
deleted file mode 100644
index 83f646f..0000000
Binary files a/assets/static/fonts/open-iconic/png/briefcase-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/briefcase.png b/assets/static/fonts/open-iconic/png/briefcase.png
deleted file mode 100644
index 85e6d58..0000000
Binary files a/assets/static/fonts/open-iconic/png/briefcase.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/british-pound-2x.png b/assets/static/fonts/open-iconic/png/british-pound-2x.png
deleted file mode 100644
index db321ef..0000000
Binary files a/assets/static/fonts/open-iconic/png/british-pound-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/british-pound-3x.png b/assets/static/fonts/open-iconic/png/british-pound-3x.png
deleted file mode 100644
index aa93c6a..0000000
Binary files a/assets/static/fonts/open-iconic/png/british-pound-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/british-pound-4x.png b/assets/static/fonts/open-iconic/png/british-pound-4x.png
deleted file mode 100644
index 1b6449d..0000000
Binary files a/assets/static/fonts/open-iconic/png/british-pound-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/british-pound-6x.png b/assets/static/fonts/open-iconic/png/british-pound-6x.png
deleted file mode 100644
index b23ec72..0000000
Binary files a/assets/static/fonts/open-iconic/png/british-pound-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/british-pound-8x.png b/assets/static/fonts/open-iconic/png/british-pound-8x.png
deleted file mode 100644
index da62a07..0000000
Binary files a/assets/static/fonts/open-iconic/png/british-pound-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/british-pound.png b/assets/static/fonts/open-iconic/png/british-pound.png
deleted file mode 100644
index 5af2891..0000000
Binary files a/assets/static/fonts/open-iconic/png/british-pound.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/browser-2x.png b/assets/static/fonts/open-iconic/png/browser-2x.png
deleted file mode 100644
index 2a6efb0..0000000
Binary files a/assets/static/fonts/open-iconic/png/browser-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/browser-3x.png b/assets/static/fonts/open-iconic/png/browser-3x.png
deleted file mode 100644
index a522694..0000000
Binary files a/assets/static/fonts/open-iconic/png/browser-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/browser-4x.png b/assets/static/fonts/open-iconic/png/browser-4x.png
deleted file mode 100644
index 5796d54..0000000
Binary files a/assets/static/fonts/open-iconic/png/browser-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/browser-6x.png b/assets/static/fonts/open-iconic/png/browser-6x.png
deleted file mode 100644
index 9cdd804..0000000
Binary files a/assets/static/fonts/open-iconic/png/browser-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/browser-8x.png b/assets/static/fonts/open-iconic/png/browser-8x.png
deleted file mode 100644
index 936ebd9..0000000
Binary files a/assets/static/fonts/open-iconic/png/browser-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/browser.png b/assets/static/fonts/open-iconic/png/browser.png
deleted file mode 100644
index d471613..0000000
Binary files a/assets/static/fonts/open-iconic/png/browser.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/brush-2x.png b/assets/static/fonts/open-iconic/png/brush-2x.png
deleted file mode 100644
index 0d8c4aa..0000000
Binary files a/assets/static/fonts/open-iconic/png/brush-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/brush-3x.png b/assets/static/fonts/open-iconic/png/brush-3x.png
deleted file mode 100644
index c8f478c..0000000
Binary files a/assets/static/fonts/open-iconic/png/brush-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/brush-4x.png b/assets/static/fonts/open-iconic/png/brush-4x.png
deleted file mode 100644
index 30101ca..0000000
Binary files a/assets/static/fonts/open-iconic/png/brush-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/brush-6x.png b/assets/static/fonts/open-iconic/png/brush-6x.png
deleted file mode 100644
index 80db566..0000000
Binary files a/assets/static/fonts/open-iconic/png/brush-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/brush-8x.png b/assets/static/fonts/open-iconic/png/brush-8x.png
deleted file mode 100644
index 09e7326..0000000
Binary files a/assets/static/fonts/open-iconic/png/brush-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/brush.png b/assets/static/fonts/open-iconic/png/brush.png
deleted file mode 100644
index 36a8111..0000000
Binary files a/assets/static/fonts/open-iconic/png/brush.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bug-2x.png b/assets/static/fonts/open-iconic/png/bug-2x.png
deleted file mode 100644
index 2279f41..0000000
Binary files a/assets/static/fonts/open-iconic/png/bug-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bug-3x.png b/assets/static/fonts/open-iconic/png/bug-3x.png
deleted file mode 100644
index 96e2712..0000000
Binary files a/assets/static/fonts/open-iconic/png/bug-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bug-4x.png b/assets/static/fonts/open-iconic/png/bug-4x.png
deleted file mode 100644
index 8c3df24..0000000
Binary files a/assets/static/fonts/open-iconic/png/bug-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bug-6x.png b/assets/static/fonts/open-iconic/png/bug-6x.png
deleted file mode 100644
index 878e270..0000000
Binary files a/assets/static/fonts/open-iconic/png/bug-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bug-8x.png b/assets/static/fonts/open-iconic/png/bug-8x.png
deleted file mode 100644
index f9e99e0..0000000
Binary files a/assets/static/fonts/open-iconic/png/bug-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bug.png b/assets/static/fonts/open-iconic/png/bug.png
deleted file mode 100644
index 10f8a6c..0000000
Binary files a/assets/static/fonts/open-iconic/png/bug.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bullhorn-2x.png b/assets/static/fonts/open-iconic/png/bullhorn-2x.png
deleted file mode 100644
index a26cebc..0000000
Binary files a/assets/static/fonts/open-iconic/png/bullhorn-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bullhorn-3x.png b/assets/static/fonts/open-iconic/png/bullhorn-3x.png
deleted file mode 100644
index 33e5c52..0000000
Binary files a/assets/static/fonts/open-iconic/png/bullhorn-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bullhorn-4x.png b/assets/static/fonts/open-iconic/png/bullhorn-4x.png
deleted file mode 100644
index 85ba444..0000000
Binary files a/assets/static/fonts/open-iconic/png/bullhorn-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bullhorn-6x.png b/assets/static/fonts/open-iconic/png/bullhorn-6x.png
deleted file mode 100644
index 58238a5..0000000
Binary files a/assets/static/fonts/open-iconic/png/bullhorn-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bullhorn-8x.png b/assets/static/fonts/open-iconic/png/bullhorn-8x.png
deleted file mode 100644
index 2c39931..0000000
Binary files a/assets/static/fonts/open-iconic/png/bullhorn-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/bullhorn.png b/assets/static/fonts/open-iconic/png/bullhorn.png
deleted file mode 100644
index 65b0c48..0000000
Binary files a/assets/static/fonts/open-iconic/png/bullhorn.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/calculator-2x.png b/assets/static/fonts/open-iconic/png/calculator-2x.png
deleted file mode 100644
index 0331de7..0000000
Binary files a/assets/static/fonts/open-iconic/png/calculator-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/calculator-3x.png b/assets/static/fonts/open-iconic/png/calculator-3x.png
deleted file mode 100644
index 721264c..0000000
Binary files a/assets/static/fonts/open-iconic/png/calculator-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/calculator-4x.png b/assets/static/fonts/open-iconic/png/calculator-4x.png
deleted file mode 100644
index 0c8a573..0000000
Binary files a/assets/static/fonts/open-iconic/png/calculator-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/calculator-6x.png b/assets/static/fonts/open-iconic/png/calculator-6x.png
deleted file mode 100644
index ce550a8..0000000
Binary files a/assets/static/fonts/open-iconic/png/calculator-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/calculator-8x.png b/assets/static/fonts/open-iconic/png/calculator-8x.png
deleted file mode 100644
index 443c989..0000000
Binary files a/assets/static/fonts/open-iconic/png/calculator-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/calculator.png b/assets/static/fonts/open-iconic/png/calculator.png
deleted file mode 100644
index 8218baa..0000000
Binary files a/assets/static/fonts/open-iconic/png/calculator.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/calendar-2x.png b/assets/static/fonts/open-iconic/png/calendar-2x.png
deleted file mode 100644
index e27009b..0000000
Binary files a/assets/static/fonts/open-iconic/png/calendar-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/calendar-3x.png b/assets/static/fonts/open-iconic/png/calendar-3x.png
deleted file mode 100644
index 74b6a26..0000000
Binary files a/assets/static/fonts/open-iconic/png/calendar-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/calendar-4x.png b/assets/static/fonts/open-iconic/png/calendar-4x.png
deleted file mode 100644
index 6365420..0000000
Binary files a/assets/static/fonts/open-iconic/png/calendar-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/calendar-6x.png b/assets/static/fonts/open-iconic/png/calendar-6x.png
deleted file mode 100644
index 5dddf33..0000000
Binary files a/assets/static/fonts/open-iconic/png/calendar-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/calendar-8x.png b/assets/static/fonts/open-iconic/png/calendar-8x.png
deleted file mode 100644
index 4f18300..0000000
Binary files a/assets/static/fonts/open-iconic/png/calendar-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/calendar.png b/assets/static/fonts/open-iconic/png/calendar.png
deleted file mode 100644
index 53bac5b..0000000
Binary files a/assets/static/fonts/open-iconic/png/calendar.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/camera-slr-2x.png b/assets/static/fonts/open-iconic/png/camera-slr-2x.png
deleted file mode 100644
index c79553f..0000000
Binary files a/assets/static/fonts/open-iconic/png/camera-slr-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/camera-slr-3x.png b/assets/static/fonts/open-iconic/png/camera-slr-3x.png
deleted file mode 100644
index a278eb1..0000000
Binary files a/assets/static/fonts/open-iconic/png/camera-slr-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/camera-slr-4x.png b/assets/static/fonts/open-iconic/png/camera-slr-4x.png
deleted file mode 100644
index 4080079..0000000
Binary files a/assets/static/fonts/open-iconic/png/camera-slr-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/camera-slr-6x.png b/assets/static/fonts/open-iconic/png/camera-slr-6x.png
deleted file mode 100644
index 6b0f54d..0000000
Binary files a/assets/static/fonts/open-iconic/png/camera-slr-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/camera-slr-8x.png b/assets/static/fonts/open-iconic/png/camera-slr-8x.png
deleted file mode 100644
index 96c23ba..0000000
Binary files a/assets/static/fonts/open-iconic/png/camera-slr-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/camera-slr.png b/assets/static/fonts/open-iconic/png/camera-slr.png
deleted file mode 100644
index 7a87615..0000000
Binary files a/assets/static/fonts/open-iconic/png/camera-slr.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/caret-bottom-2x.png b/assets/static/fonts/open-iconic/png/caret-bottom-2x.png
deleted file mode 100644
index eddfd81..0000000
Binary files a/assets/static/fonts/open-iconic/png/caret-bottom-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/caret-bottom-3x.png b/assets/static/fonts/open-iconic/png/caret-bottom-3x.png
deleted file mode 100644
index 06796fa..0000000
Binary files a/assets/static/fonts/open-iconic/png/caret-bottom-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/caret-bottom-4x.png b/assets/static/fonts/open-iconic/png/caret-bottom-4x.png
deleted file mode 100644
index 008f689..0000000
Binary files a/assets/static/fonts/open-iconic/png/caret-bottom-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/caret-bottom-6x.png b/assets/static/fonts/open-iconic/png/caret-bottom-6x.png
deleted file mode 100644
index 7103dbc..0000000
Binary files a/assets/static/fonts/open-iconic/png/caret-bottom-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/caret-bottom-8x.png b/assets/static/fonts/open-iconic/png/caret-bottom-8x.png
deleted file mode 100644
index 2d0e90e..0000000
Binary files a/assets/static/fonts/open-iconic/png/caret-bottom-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/caret-bottom.png b/assets/static/fonts/open-iconic/png/caret-bottom.png
deleted file mode 100644
index d6243c9..0000000
Binary files a/assets/static/fonts/open-iconic/png/caret-bottom.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/caret-left-2x.png b/assets/static/fonts/open-iconic/png/caret-left-2x.png
deleted file mode 100644
index 2dcacb3..0000000
Binary files a/assets/static/fonts/open-iconic/png/caret-left-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/caret-left-3x.png b/assets/static/fonts/open-iconic/png/caret-left-3x.png
deleted file mode 100644
index db8403e..0000000
Binary files a/assets/static/fonts/open-iconic/png/caret-left-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/caret-left-4x.png b/assets/static/fonts/open-iconic/png/caret-left-4x.png
deleted file mode 100644
index 2c6fafd..0000000
Binary files a/assets/static/fonts/open-iconic/png/caret-left-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/caret-left-6x.png b/assets/static/fonts/open-iconic/png/caret-left-6x.png
deleted file mode 100644
index cb47cea..0000000
Binary files a/assets/static/fonts/open-iconic/png/caret-left-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/caret-left-8x.png b/assets/static/fonts/open-iconic/png/caret-left-8x.png
deleted file mode 100644
index 0df3b2c..0000000
Binary files a/assets/static/fonts/open-iconic/png/caret-left-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/caret-left.png b/assets/static/fonts/open-iconic/png/caret-left.png
deleted file mode 100644
index afc8664..0000000
Binary files a/assets/static/fonts/open-iconic/png/caret-left.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/caret-right-2x.png b/assets/static/fonts/open-iconic/png/caret-right-2x.png
deleted file mode 100644
index ddf7594..0000000
Binary files a/assets/static/fonts/open-iconic/png/caret-right-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/caret-right-3x.png b/assets/static/fonts/open-iconic/png/caret-right-3x.png
deleted file mode 100644
index 0c5df4f..0000000
Binary files a/assets/static/fonts/open-iconic/png/caret-right-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/caret-right-4x.png b/assets/static/fonts/open-iconic/png/caret-right-4x.png
deleted file mode 100644
index 99e1243..0000000
Binary files a/assets/static/fonts/open-iconic/png/caret-right-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/caret-right-6x.png b/assets/static/fonts/open-iconic/png/caret-right-6x.png
deleted file mode 100644
index 821f076..0000000
Binary files a/assets/static/fonts/open-iconic/png/caret-right-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/caret-right-8x.png b/assets/static/fonts/open-iconic/png/caret-right-8x.png
deleted file mode 100644
index 2be0f4d..0000000
Binary files a/assets/static/fonts/open-iconic/png/caret-right-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/caret-right.png b/assets/static/fonts/open-iconic/png/caret-right.png
deleted file mode 100644
index 4c5ddc3..0000000
Binary files a/assets/static/fonts/open-iconic/png/caret-right.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/caret-top-2x.png b/assets/static/fonts/open-iconic/png/caret-top-2x.png
deleted file mode 100644
index 94f9d9b..0000000
Binary files a/assets/static/fonts/open-iconic/png/caret-top-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/caret-top-3x.png b/assets/static/fonts/open-iconic/png/caret-top-3x.png
deleted file mode 100644
index 9e60c37..0000000
Binary files a/assets/static/fonts/open-iconic/png/caret-top-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/caret-top-4x.png b/assets/static/fonts/open-iconic/png/caret-top-4x.png
deleted file mode 100644
index 8e8f66a..0000000
Binary files a/assets/static/fonts/open-iconic/png/caret-top-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/caret-top-6x.png b/assets/static/fonts/open-iconic/png/caret-top-6x.png
deleted file mode 100644
index d38179e..0000000
Binary files a/assets/static/fonts/open-iconic/png/caret-top-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/caret-top-8x.png b/assets/static/fonts/open-iconic/png/caret-top-8x.png
deleted file mode 100644
index b7eb212..0000000
Binary files a/assets/static/fonts/open-iconic/png/caret-top-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/caret-top.png b/assets/static/fonts/open-iconic/png/caret-top.png
deleted file mode 100644
index a5f5189..0000000
Binary files a/assets/static/fonts/open-iconic/png/caret-top.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cart-2x.png b/assets/static/fonts/open-iconic/png/cart-2x.png
deleted file mode 100644
index cd010ba..0000000
Binary files a/assets/static/fonts/open-iconic/png/cart-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cart-3x.png b/assets/static/fonts/open-iconic/png/cart-3x.png
deleted file mode 100644
index 975bbff..0000000
Binary files a/assets/static/fonts/open-iconic/png/cart-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cart-4x.png b/assets/static/fonts/open-iconic/png/cart-4x.png
deleted file mode 100644
index 76e1c2c..0000000
Binary files a/assets/static/fonts/open-iconic/png/cart-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cart-6x.png b/assets/static/fonts/open-iconic/png/cart-6x.png
deleted file mode 100644
index b82938a..0000000
Binary files a/assets/static/fonts/open-iconic/png/cart-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cart-8x.png b/assets/static/fonts/open-iconic/png/cart-8x.png
deleted file mode 100644
index 9cf9e91..0000000
Binary files a/assets/static/fonts/open-iconic/png/cart-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cart.png b/assets/static/fonts/open-iconic/png/cart.png
deleted file mode 100644
index bcc3e27..0000000
Binary files a/assets/static/fonts/open-iconic/png/cart.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chat-2x.png b/assets/static/fonts/open-iconic/png/chat-2x.png
deleted file mode 100644
index bf2ddea..0000000
Binary files a/assets/static/fonts/open-iconic/png/chat-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chat-3x.png b/assets/static/fonts/open-iconic/png/chat-3x.png
deleted file mode 100644
index 72aa593..0000000
Binary files a/assets/static/fonts/open-iconic/png/chat-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chat-4x.png b/assets/static/fonts/open-iconic/png/chat-4x.png
deleted file mode 100644
index d312e7d..0000000
Binary files a/assets/static/fonts/open-iconic/png/chat-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chat-6x.png b/assets/static/fonts/open-iconic/png/chat-6x.png
deleted file mode 100644
index 18a8ee4..0000000
Binary files a/assets/static/fonts/open-iconic/png/chat-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chat-8x.png b/assets/static/fonts/open-iconic/png/chat-8x.png
deleted file mode 100644
index 95dcdac..0000000
Binary files a/assets/static/fonts/open-iconic/png/chat-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chat.png b/assets/static/fonts/open-iconic/png/chat.png
deleted file mode 100644
index 7c41db4..0000000
Binary files a/assets/static/fonts/open-iconic/png/chat.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/check-2x.png b/assets/static/fonts/open-iconic/png/check-2x.png
deleted file mode 100644
index 92a6add..0000000
Binary files a/assets/static/fonts/open-iconic/png/check-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/check-3x.png b/assets/static/fonts/open-iconic/png/check-3x.png
deleted file mode 100644
index 95f2e13..0000000
Binary files a/assets/static/fonts/open-iconic/png/check-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/check-4x.png b/assets/static/fonts/open-iconic/png/check-4x.png
deleted file mode 100644
index 6e35153..0000000
Binary files a/assets/static/fonts/open-iconic/png/check-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/check-6x.png b/assets/static/fonts/open-iconic/png/check-6x.png
deleted file mode 100644
index 82a18b3..0000000
Binary files a/assets/static/fonts/open-iconic/png/check-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/check-8x.png b/assets/static/fonts/open-iconic/png/check-8x.png
deleted file mode 100644
index 5ee78c0..0000000
Binary files a/assets/static/fonts/open-iconic/png/check-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/check.png b/assets/static/fonts/open-iconic/png/check.png
deleted file mode 100644
index 4d3e955..0000000
Binary files a/assets/static/fonts/open-iconic/png/check.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chevron-bottom-2x.png b/assets/static/fonts/open-iconic/png/chevron-bottom-2x.png
deleted file mode 100644
index 431f44a..0000000
Binary files a/assets/static/fonts/open-iconic/png/chevron-bottom-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chevron-bottom-3x.png b/assets/static/fonts/open-iconic/png/chevron-bottom-3x.png
deleted file mode 100644
index a1a3bce..0000000
Binary files a/assets/static/fonts/open-iconic/png/chevron-bottom-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chevron-bottom-4x.png b/assets/static/fonts/open-iconic/png/chevron-bottom-4x.png
deleted file mode 100644
index d46a231..0000000
Binary files a/assets/static/fonts/open-iconic/png/chevron-bottom-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chevron-bottom-6x.png b/assets/static/fonts/open-iconic/png/chevron-bottom-6x.png
deleted file mode 100644
index 2585f91..0000000
Binary files a/assets/static/fonts/open-iconic/png/chevron-bottom-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chevron-bottom-8x.png b/assets/static/fonts/open-iconic/png/chevron-bottom-8x.png
deleted file mode 100644
index 9a9ddad..0000000
Binary files a/assets/static/fonts/open-iconic/png/chevron-bottom-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chevron-bottom.png b/assets/static/fonts/open-iconic/png/chevron-bottom.png
deleted file mode 100644
index e225c6e..0000000
Binary files a/assets/static/fonts/open-iconic/png/chevron-bottom.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chevron-left-2x.png b/assets/static/fonts/open-iconic/png/chevron-left-2x.png
deleted file mode 100644
index 0c2adbc..0000000
Binary files a/assets/static/fonts/open-iconic/png/chevron-left-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chevron-left-3x.png b/assets/static/fonts/open-iconic/png/chevron-left-3x.png
deleted file mode 100644
index f16a3ab..0000000
Binary files a/assets/static/fonts/open-iconic/png/chevron-left-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chevron-left-4x.png b/assets/static/fonts/open-iconic/png/chevron-left-4x.png
deleted file mode 100644
index 881e081..0000000
Binary files a/assets/static/fonts/open-iconic/png/chevron-left-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chevron-left-6x.png b/assets/static/fonts/open-iconic/png/chevron-left-6x.png
deleted file mode 100644
index ea4808e..0000000
Binary files a/assets/static/fonts/open-iconic/png/chevron-left-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chevron-left-8x.png b/assets/static/fonts/open-iconic/png/chevron-left-8x.png
deleted file mode 100644
index 88145af..0000000
Binary files a/assets/static/fonts/open-iconic/png/chevron-left-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chevron-left.png b/assets/static/fonts/open-iconic/png/chevron-left.png
deleted file mode 100644
index 39ad778..0000000
Binary files a/assets/static/fonts/open-iconic/png/chevron-left.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chevron-right-2x.png b/assets/static/fonts/open-iconic/png/chevron-right-2x.png
deleted file mode 100644
index c89ea5f..0000000
Binary files a/assets/static/fonts/open-iconic/png/chevron-right-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chevron-right-3x.png b/assets/static/fonts/open-iconic/png/chevron-right-3x.png
deleted file mode 100644
index b8d9362..0000000
Binary files a/assets/static/fonts/open-iconic/png/chevron-right-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chevron-right-4x.png b/assets/static/fonts/open-iconic/png/chevron-right-4x.png
deleted file mode 100644
index 303c0b5..0000000
Binary files a/assets/static/fonts/open-iconic/png/chevron-right-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chevron-right-6x.png b/assets/static/fonts/open-iconic/png/chevron-right-6x.png
deleted file mode 100644
index 7fe7f0a..0000000
Binary files a/assets/static/fonts/open-iconic/png/chevron-right-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chevron-right-8x.png b/assets/static/fonts/open-iconic/png/chevron-right-8x.png
deleted file mode 100644
index c4934b4..0000000
Binary files a/assets/static/fonts/open-iconic/png/chevron-right-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chevron-right.png b/assets/static/fonts/open-iconic/png/chevron-right.png
deleted file mode 100644
index 7b4fecc..0000000
Binary files a/assets/static/fonts/open-iconic/png/chevron-right.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chevron-top-2x.png b/assets/static/fonts/open-iconic/png/chevron-top-2x.png
deleted file mode 100644
index 80040fd..0000000
Binary files a/assets/static/fonts/open-iconic/png/chevron-top-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chevron-top-3x.png b/assets/static/fonts/open-iconic/png/chevron-top-3x.png
deleted file mode 100644
index d9c01ba..0000000
Binary files a/assets/static/fonts/open-iconic/png/chevron-top-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chevron-top-4x.png b/assets/static/fonts/open-iconic/png/chevron-top-4x.png
deleted file mode 100644
index e86bf3f..0000000
Binary files a/assets/static/fonts/open-iconic/png/chevron-top-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chevron-top-6x.png b/assets/static/fonts/open-iconic/png/chevron-top-6x.png
deleted file mode 100644
index 00de84b..0000000
Binary files a/assets/static/fonts/open-iconic/png/chevron-top-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chevron-top-8x.png b/assets/static/fonts/open-iconic/png/chevron-top-8x.png
deleted file mode 100644
index 6d2c323..0000000
Binary files a/assets/static/fonts/open-iconic/png/chevron-top-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/chevron-top.png b/assets/static/fonts/open-iconic/png/chevron-top.png
deleted file mode 100644
index baa61ef..0000000
Binary files a/assets/static/fonts/open-iconic/png/chevron-top.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/circle-check-2x.png b/assets/static/fonts/open-iconic/png/circle-check-2x.png
deleted file mode 100644
index 1aa02cc..0000000
Binary files a/assets/static/fonts/open-iconic/png/circle-check-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/circle-check-3x.png b/assets/static/fonts/open-iconic/png/circle-check-3x.png
deleted file mode 100644
index c3dcb0f..0000000
Binary files a/assets/static/fonts/open-iconic/png/circle-check-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/circle-check-4x.png b/assets/static/fonts/open-iconic/png/circle-check-4x.png
deleted file mode 100644
index 67982b0..0000000
Binary files a/assets/static/fonts/open-iconic/png/circle-check-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/circle-check-6x.png b/assets/static/fonts/open-iconic/png/circle-check-6x.png
deleted file mode 100644
index 22d8b38..0000000
Binary files a/assets/static/fonts/open-iconic/png/circle-check-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/circle-check-8x.png b/assets/static/fonts/open-iconic/png/circle-check-8x.png
deleted file mode 100644
index fdb1133..0000000
Binary files a/assets/static/fonts/open-iconic/png/circle-check-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/circle-check.png b/assets/static/fonts/open-iconic/png/circle-check.png
deleted file mode 100644
index 7533d9e..0000000
Binary files a/assets/static/fonts/open-iconic/png/circle-check.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/circle-x-2x.png b/assets/static/fonts/open-iconic/png/circle-x-2x.png
deleted file mode 100644
index 526501f..0000000
Binary files a/assets/static/fonts/open-iconic/png/circle-x-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/circle-x-3x.png b/assets/static/fonts/open-iconic/png/circle-x-3x.png
deleted file mode 100644
index d92a360..0000000
Binary files a/assets/static/fonts/open-iconic/png/circle-x-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/circle-x-4x.png b/assets/static/fonts/open-iconic/png/circle-x-4x.png
deleted file mode 100644
index 50d5470..0000000
Binary files a/assets/static/fonts/open-iconic/png/circle-x-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/circle-x-6x.png b/assets/static/fonts/open-iconic/png/circle-x-6x.png
deleted file mode 100644
index a9a5bb7..0000000
Binary files a/assets/static/fonts/open-iconic/png/circle-x-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/circle-x-8x.png b/assets/static/fonts/open-iconic/png/circle-x-8x.png
deleted file mode 100644
index 94e01f1..0000000
Binary files a/assets/static/fonts/open-iconic/png/circle-x-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/circle-x.png b/assets/static/fonts/open-iconic/png/circle-x.png
deleted file mode 100644
index 4f448c9..0000000
Binary files a/assets/static/fonts/open-iconic/png/circle-x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/clipboard-2x.png b/assets/static/fonts/open-iconic/png/clipboard-2x.png
deleted file mode 100644
index 838095e..0000000
Binary files a/assets/static/fonts/open-iconic/png/clipboard-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/clipboard-3x.png b/assets/static/fonts/open-iconic/png/clipboard-3x.png
deleted file mode 100644
index 7804db9..0000000
Binary files a/assets/static/fonts/open-iconic/png/clipboard-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/clipboard-4x.png b/assets/static/fonts/open-iconic/png/clipboard-4x.png
deleted file mode 100644
index 5ac2ff6..0000000
Binary files a/assets/static/fonts/open-iconic/png/clipboard-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/clipboard-6x.png b/assets/static/fonts/open-iconic/png/clipboard-6x.png
deleted file mode 100644
index 6bea04e..0000000
Binary files a/assets/static/fonts/open-iconic/png/clipboard-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/clipboard-8x.png b/assets/static/fonts/open-iconic/png/clipboard-8x.png
deleted file mode 100644
index cb8ad54..0000000
Binary files a/assets/static/fonts/open-iconic/png/clipboard-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/clipboard.png b/assets/static/fonts/open-iconic/png/clipboard.png
deleted file mode 100644
index 70e58fd..0000000
Binary files a/assets/static/fonts/open-iconic/png/clipboard.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/clock-2x.png b/assets/static/fonts/open-iconic/png/clock-2x.png
deleted file mode 100644
index 1751918..0000000
Binary files a/assets/static/fonts/open-iconic/png/clock-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/clock-3x.png b/assets/static/fonts/open-iconic/png/clock-3x.png
deleted file mode 100644
index 168520f..0000000
Binary files a/assets/static/fonts/open-iconic/png/clock-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/clock-4x.png b/assets/static/fonts/open-iconic/png/clock-4x.png
deleted file mode 100644
index c227d84..0000000
Binary files a/assets/static/fonts/open-iconic/png/clock-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/clock-6x.png b/assets/static/fonts/open-iconic/png/clock-6x.png
deleted file mode 100644
index ec364e3..0000000
Binary files a/assets/static/fonts/open-iconic/png/clock-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/clock-8x.png b/assets/static/fonts/open-iconic/png/clock-8x.png
deleted file mode 100644
index 045f32c..0000000
Binary files a/assets/static/fonts/open-iconic/png/clock-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/clock.png b/assets/static/fonts/open-iconic/png/clock.png
deleted file mode 100644
index 686b47e..0000000
Binary files a/assets/static/fonts/open-iconic/png/clock.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cloud-2x.png b/assets/static/fonts/open-iconic/png/cloud-2x.png
deleted file mode 100644
index f072a45..0000000
Binary files a/assets/static/fonts/open-iconic/png/cloud-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cloud-3x.png b/assets/static/fonts/open-iconic/png/cloud-3x.png
deleted file mode 100644
index 2daf3b2..0000000
Binary files a/assets/static/fonts/open-iconic/png/cloud-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cloud-4x.png b/assets/static/fonts/open-iconic/png/cloud-4x.png
deleted file mode 100644
index 2b25bc7..0000000
Binary files a/assets/static/fonts/open-iconic/png/cloud-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cloud-6x.png b/assets/static/fonts/open-iconic/png/cloud-6x.png
deleted file mode 100644
index 98fb703..0000000
Binary files a/assets/static/fonts/open-iconic/png/cloud-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cloud-8x.png b/assets/static/fonts/open-iconic/png/cloud-8x.png
deleted file mode 100644
index 98bce4f..0000000
Binary files a/assets/static/fonts/open-iconic/png/cloud-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cloud-download-2x.png b/assets/static/fonts/open-iconic/png/cloud-download-2x.png
deleted file mode 100644
index 48c80fe..0000000
Binary files a/assets/static/fonts/open-iconic/png/cloud-download-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cloud-download-3x.png b/assets/static/fonts/open-iconic/png/cloud-download-3x.png
deleted file mode 100644
index 8e41229..0000000
Binary files a/assets/static/fonts/open-iconic/png/cloud-download-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cloud-download-4x.png b/assets/static/fonts/open-iconic/png/cloud-download-4x.png
deleted file mode 100644
index b1a3c73..0000000
Binary files a/assets/static/fonts/open-iconic/png/cloud-download-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cloud-download-6x.png b/assets/static/fonts/open-iconic/png/cloud-download-6x.png
deleted file mode 100644
index 9a4c3b7..0000000
Binary files a/assets/static/fonts/open-iconic/png/cloud-download-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cloud-download-8x.png b/assets/static/fonts/open-iconic/png/cloud-download-8x.png
deleted file mode 100644
index 0ca2095..0000000
Binary files a/assets/static/fonts/open-iconic/png/cloud-download-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cloud-download.png b/assets/static/fonts/open-iconic/png/cloud-download.png
deleted file mode 100644
index 730dc30..0000000
Binary files a/assets/static/fonts/open-iconic/png/cloud-download.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cloud-upload-2x.png b/assets/static/fonts/open-iconic/png/cloud-upload-2x.png
deleted file mode 100644
index 680286e..0000000
Binary files a/assets/static/fonts/open-iconic/png/cloud-upload-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cloud-upload-3x.png b/assets/static/fonts/open-iconic/png/cloud-upload-3x.png
deleted file mode 100644
index dbeeaef..0000000
Binary files a/assets/static/fonts/open-iconic/png/cloud-upload-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cloud-upload-4x.png b/assets/static/fonts/open-iconic/png/cloud-upload-4x.png
deleted file mode 100644
index 4a3488b..0000000
Binary files a/assets/static/fonts/open-iconic/png/cloud-upload-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cloud-upload-6x.png b/assets/static/fonts/open-iconic/png/cloud-upload-6x.png
deleted file mode 100644
index 38225b8..0000000
Binary files a/assets/static/fonts/open-iconic/png/cloud-upload-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cloud-upload-8x.png b/assets/static/fonts/open-iconic/png/cloud-upload-8x.png
deleted file mode 100644
index f77cfce..0000000
Binary files a/assets/static/fonts/open-iconic/png/cloud-upload-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cloud-upload.png b/assets/static/fonts/open-iconic/png/cloud-upload.png
deleted file mode 100644
index 6a8fa82..0000000
Binary files a/assets/static/fonts/open-iconic/png/cloud-upload.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cloud.png b/assets/static/fonts/open-iconic/png/cloud.png
deleted file mode 100644
index 5b9100a..0000000
Binary files a/assets/static/fonts/open-iconic/png/cloud.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cloudy-2x.png b/assets/static/fonts/open-iconic/png/cloudy-2x.png
deleted file mode 100644
index 26339ed..0000000
Binary files a/assets/static/fonts/open-iconic/png/cloudy-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cloudy-3x.png b/assets/static/fonts/open-iconic/png/cloudy-3x.png
deleted file mode 100644
index 410bb6c..0000000
Binary files a/assets/static/fonts/open-iconic/png/cloudy-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cloudy-4x.png b/assets/static/fonts/open-iconic/png/cloudy-4x.png
deleted file mode 100644
index ed36c29..0000000
Binary files a/assets/static/fonts/open-iconic/png/cloudy-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cloudy-6x.png b/assets/static/fonts/open-iconic/png/cloudy-6x.png
deleted file mode 100644
index e54b009..0000000
Binary files a/assets/static/fonts/open-iconic/png/cloudy-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cloudy-8x.png b/assets/static/fonts/open-iconic/png/cloudy-8x.png
deleted file mode 100644
index 291924a..0000000
Binary files a/assets/static/fonts/open-iconic/png/cloudy-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cloudy.png b/assets/static/fonts/open-iconic/png/cloudy.png
deleted file mode 100644
index a2b54b7..0000000
Binary files a/assets/static/fonts/open-iconic/png/cloudy.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/code-2x.png b/assets/static/fonts/open-iconic/png/code-2x.png
deleted file mode 100644
index f75b30e..0000000
Binary files a/assets/static/fonts/open-iconic/png/code-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/code-3x.png b/assets/static/fonts/open-iconic/png/code-3x.png
deleted file mode 100644
index ab8a402..0000000
Binary files a/assets/static/fonts/open-iconic/png/code-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/code-4x.png b/assets/static/fonts/open-iconic/png/code-4x.png
deleted file mode 100644
index 652d2c9..0000000
Binary files a/assets/static/fonts/open-iconic/png/code-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/code-6x.png b/assets/static/fonts/open-iconic/png/code-6x.png
deleted file mode 100644
index 2d28893..0000000
Binary files a/assets/static/fonts/open-iconic/png/code-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/code-8x.png b/assets/static/fonts/open-iconic/png/code-8x.png
deleted file mode 100644
index 943cbb7..0000000
Binary files a/assets/static/fonts/open-iconic/png/code-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/code.png b/assets/static/fonts/open-iconic/png/code.png
deleted file mode 100644
index a70db73..0000000
Binary files a/assets/static/fonts/open-iconic/png/code.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cog-2x.png b/assets/static/fonts/open-iconic/png/cog-2x.png
deleted file mode 100644
index 7ae9541..0000000
Binary files a/assets/static/fonts/open-iconic/png/cog-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cog-3x.png b/assets/static/fonts/open-iconic/png/cog-3x.png
deleted file mode 100644
index efca316..0000000
Binary files a/assets/static/fonts/open-iconic/png/cog-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cog-4x.png b/assets/static/fonts/open-iconic/png/cog-4x.png
deleted file mode 100644
index 749b2c6..0000000
Binary files a/assets/static/fonts/open-iconic/png/cog-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cog-6x.png b/assets/static/fonts/open-iconic/png/cog-6x.png
deleted file mode 100644
index 4d510ff..0000000
Binary files a/assets/static/fonts/open-iconic/png/cog-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cog-8x.png b/assets/static/fonts/open-iconic/png/cog-8x.png
deleted file mode 100644
index e5fe848..0000000
Binary files a/assets/static/fonts/open-iconic/png/cog-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/cog.png b/assets/static/fonts/open-iconic/png/cog.png
deleted file mode 100644
index 71bd141..0000000
Binary files a/assets/static/fonts/open-iconic/png/cog.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/collapse-down-2x.png b/assets/static/fonts/open-iconic/png/collapse-down-2x.png
deleted file mode 100644
index c58368d..0000000
Binary files a/assets/static/fonts/open-iconic/png/collapse-down-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/collapse-down-3x.png b/assets/static/fonts/open-iconic/png/collapse-down-3x.png
deleted file mode 100644
index f8d456a..0000000
Binary files a/assets/static/fonts/open-iconic/png/collapse-down-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/collapse-down-4x.png b/assets/static/fonts/open-iconic/png/collapse-down-4x.png
deleted file mode 100644
index 890c9e3..0000000
Binary files a/assets/static/fonts/open-iconic/png/collapse-down-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/collapse-down-6x.png b/assets/static/fonts/open-iconic/png/collapse-down-6x.png
deleted file mode 100644
index 1102a59..0000000
Binary files a/assets/static/fonts/open-iconic/png/collapse-down-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/collapse-down-8x.png b/assets/static/fonts/open-iconic/png/collapse-down-8x.png
deleted file mode 100644
index 385f3eb..0000000
Binary files a/assets/static/fonts/open-iconic/png/collapse-down-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/collapse-down.png b/assets/static/fonts/open-iconic/png/collapse-down.png
deleted file mode 100644
index 12dd120..0000000
Binary files a/assets/static/fonts/open-iconic/png/collapse-down.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/collapse-left-2x.png b/assets/static/fonts/open-iconic/png/collapse-left-2x.png
deleted file mode 100644
index 4879fcf..0000000
Binary files a/assets/static/fonts/open-iconic/png/collapse-left-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/collapse-left-3x.png b/assets/static/fonts/open-iconic/png/collapse-left-3x.png
deleted file mode 100644
index 802cb28..0000000
Binary files a/assets/static/fonts/open-iconic/png/collapse-left-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/collapse-left-4x.png b/assets/static/fonts/open-iconic/png/collapse-left-4x.png
deleted file mode 100644
index dea4959..0000000
Binary files a/assets/static/fonts/open-iconic/png/collapse-left-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/collapse-left-6x.png b/assets/static/fonts/open-iconic/png/collapse-left-6x.png
deleted file mode 100644
index 58e0ac2..0000000
Binary files a/assets/static/fonts/open-iconic/png/collapse-left-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/collapse-left-8x.png b/assets/static/fonts/open-iconic/png/collapse-left-8x.png
deleted file mode 100644
index 3fb4ef7..0000000
Binary files a/assets/static/fonts/open-iconic/png/collapse-left-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/collapse-left.png b/assets/static/fonts/open-iconic/png/collapse-left.png
deleted file mode 100644
index 96bd24a..0000000
Binary files a/assets/static/fonts/open-iconic/png/collapse-left.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/collapse-right-2x.png b/assets/static/fonts/open-iconic/png/collapse-right-2x.png
deleted file mode 100644
index 902c713..0000000
Binary files a/assets/static/fonts/open-iconic/png/collapse-right-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/collapse-right-3x.png b/assets/static/fonts/open-iconic/png/collapse-right-3x.png
deleted file mode 100644
index eba661f..0000000
Binary files a/assets/static/fonts/open-iconic/png/collapse-right-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/collapse-right-4x.png b/assets/static/fonts/open-iconic/png/collapse-right-4x.png
deleted file mode 100644
index 54f90c4..0000000
Binary files a/assets/static/fonts/open-iconic/png/collapse-right-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/collapse-right-6x.png b/assets/static/fonts/open-iconic/png/collapse-right-6x.png
deleted file mode 100644
index 860cfe1..0000000
Binary files a/assets/static/fonts/open-iconic/png/collapse-right-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/collapse-right-8x.png b/assets/static/fonts/open-iconic/png/collapse-right-8x.png
deleted file mode 100644
index 105372b..0000000
Binary files a/assets/static/fonts/open-iconic/png/collapse-right-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/collapse-right.png b/assets/static/fonts/open-iconic/png/collapse-right.png
deleted file mode 100644
index 6f99547..0000000
Binary files a/assets/static/fonts/open-iconic/png/collapse-right.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/collapse-up-2x.png b/assets/static/fonts/open-iconic/png/collapse-up-2x.png
deleted file mode 100644
index dd4bb90..0000000
Binary files a/assets/static/fonts/open-iconic/png/collapse-up-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/collapse-up-3x.png b/assets/static/fonts/open-iconic/png/collapse-up-3x.png
deleted file mode 100644
index 6f4ace4..0000000
Binary files a/assets/static/fonts/open-iconic/png/collapse-up-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/collapse-up-4x.png b/assets/static/fonts/open-iconic/png/collapse-up-4x.png
deleted file mode 100644
index 8b21fa4..0000000
Binary files a/assets/static/fonts/open-iconic/png/collapse-up-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/collapse-up-6x.png b/assets/static/fonts/open-iconic/png/collapse-up-6x.png
deleted file mode 100644
index 7713488..0000000
Binary files a/assets/static/fonts/open-iconic/png/collapse-up-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/collapse-up-8x.png b/assets/static/fonts/open-iconic/png/collapse-up-8x.png
deleted file mode 100644
index de892be..0000000
Binary files a/assets/static/fonts/open-iconic/png/collapse-up-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/collapse-up.png b/assets/static/fonts/open-iconic/png/collapse-up.png
deleted file mode 100644
index 78ec0ed..0000000
Binary files a/assets/static/fonts/open-iconic/png/collapse-up.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/command-2x.png b/assets/static/fonts/open-iconic/png/command-2x.png
deleted file mode 100644
index 2a95e53..0000000
Binary files a/assets/static/fonts/open-iconic/png/command-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/command-3x.png b/assets/static/fonts/open-iconic/png/command-3x.png
deleted file mode 100644
index 56aad3d..0000000
Binary files a/assets/static/fonts/open-iconic/png/command-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/command-4x.png b/assets/static/fonts/open-iconic/png/command-4x.png
deleted file mode 100644
index bf53c4d..0000000
Binary files a/assets/static/fonts/open-iconic/png/command-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/command-6x.png b/assets/static/fonts/open-iconic/png/command-6x.png
deleted file mode 100644
index 4ea37f8..0000000
Binary files a/assets/static/fonts/open-iconic/png/command-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/command-8x.png b/assets/static/fonts/open-iconic/png/command-8x.png
deleted file mode 100644
index b5d5ce9..0000000
Binary files a/assets/static/fonts/open-iconic/png/command-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/command.png b/assets/static/fonts/open-iconic/png/command.png
deleted file mode 100644
index 6adf8a4..0000000
Binary files a/assets/static/fonts/open-iconic/png/command.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/comment-square-2x.png b/assets/static/fonts/open-iconic/png/comment-square-2x.png
deleted file mode 100644
index 9dab9e1..0000000
Binary files a/assets/static/fonts/open-iconic/png/comment-square-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/comment-square-3x.png b/assets/static/fonts/open-iconic/png/comment-square-3x.png
deleted file mode 100644
index ab304cd..0000000
Binary files a/assets/static/fonts/open-iconic/png/comment-square-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/comment-square-4x.png b/assets/static/fonts/open-iconic/png/comment-square-4x.png
deleted file mode 100644
index b6fe4ab..0000000
Binary files a/assets/static/fonts/open-iconic/png/comment-square-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/comment-square-6x.png b/assets/static/fonts/open-iconic/png/comment-square-6x.png
deleted file mode 100644
index 688100b..0000000
Binary files a/assets/static/fonts/open-iconic/png/comment-square-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/comment-square-8x.png b/assets/static/fonts/open-iconic/png/comment-square-8x.png
deleted file mode 100644
index 3f92eb8..0000000
Binary files a/assets/static/fonts/open-iconic/png/comment-square-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/comment-square.png b/assets/static/fonts/open-iconic/png/comment-square.png
deleted file mode 100644
index 2729a3d..0000000
Binary files a/assets/static/fonts/open-iconic/png/comment-square.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/compass-2x.png b/assets/static/fonts/open-iconic/png/compass-2x.png
deleted file mode 100644
index 351b83a..0000000
Binary files a/assets/static/fonts/open-iconic/png/compass-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/compass-3x.png b/assets/static/fonts/open-iconic/png/compass-3x.png
deleted file mode 100644
index 189e188..0000000
Binary files a/assets/static/fonts/open-iconic/png/compass-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/compass-4x.png b/assets/static/fonts/open-iconic/png/compass-4x.png
deleted file mode 100644
index e38f913..0000000
Binary files a/assets/static/fonts/open-iconic/png/compass-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/compass-6x.png b/assets/static/fonts/open-iconic/png/compass-6x.png
deleted file mode 100644
index f853ffa..0000000
Binary files a/assets/static/fonts/open-iconic/png/compass-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/compass-8x.png b/assets/static/fonts/open-iconic/png/compass-8x.png
deleted file mode 100644
index 5cdfb78..0000000
Binary files a/assets/static/fonts/open-iconic/png/compass-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/compass.png b/assets/static/fonts/open-iconic/png/compass.png
deleted file mode 100644
index f0d82f5..0000000
Binary files a/assets/static/fonts/open-iconic/png/compass.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/contrast-2x.png b/assets/static/fonts/open-iconic/png/contrast-2x.png
deleted file mode 100644
index b0a1f6d..0000000
Binary files a/assets/static/fonts/open-iconic/png/contrast-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/contrast-3x.png b/assets/static/fonts/open-iconic/png/contrast-3x.png
deleted file mode 100644
index 5209f71..0000000
Binary files a/assets/static/fonts/open-iconic/png/contrast-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/contrast-4x.png b/assets/static/fonts/open-iconic/png/contrast-4x.png
deleted file mode 100644
index d80b4c2..0000000
Binary files a/assets/static/fonts/open-iconic/png/contrast-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/contrast-6x.png b/assets/static/fonts/open-iconic/png/contrast-6x.png
deleted file mode 100644
index 12583db..0000000
Binary files a/assets/static/fonts/open-iconic/png/contrast-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/contrast-8x.png b/assets/static/fonts/open-iconic/png/contrast-8x.png
deleted file mode 100644
index a59724d..0000000
Binary files a/assets/static/fonts/open-iconic/png/contrast-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/contrast.png b/assets/static/fonts/open-iconic/png/contrast.png
deleted file mode 100644
index 8aee70e..0000000
Binary files a/assets/static/fonts/open-iconic/png/contrast.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/copywriting-2x.png b/assets/static/fonts/open-iconic/png/copywriting-2x.png
deleted file mode 100644
index a62e983..0000000
Binary files a/assets/static/fonts/open-iconic/png/copywriting-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/copywriting-3x.png b/assets/static/fonts/open-iconic/png/copywriting-3x.png
deleted file mode 100644
index 1531e40..0000000
Binary files a/assets/static/fonts/open-iconic/png/copywriting-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/copywriting-4x.png b/assets/static/fonts/open-iconic/png/copywriting-4x.png
deleted file mode 100644
index 000002f..0000000
Binary files a/assets/static/fonts/open-iconic/png/copywriting-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/copywriting-6x.png b/assets/static/fonts/open-iconic/png/copywriting-6x.png
deleted file mode 100644
index 1c22287..0000000
Binary files a/assets/static/fonts/open-iconic/png/copywriting-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/copywriting-8x.png b/assets/static/fonts/open-iconic/png/copywriting-8x.png
deleted file mode 100644
index d94224e..0000000
Binary files a/assets/static/fonts/open-iconic/png/copywriting-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/copywriting.png b/assets/static/fonts/open-iconic/png/copywriting.png
deleted file mode 100644
index 3a5ee7e..0000000
Binary files a/assets/static/fonts/open-iconic/png/copywriting.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/credit-card-2x.png b/assets/static/fonts/open-iconic/png/credit-card-2x.png
deleted file mode 100644
index 8bb210d..0000000
Binary files a/assets/static/fonts/open-iconic/png/credit-card-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/credit-card-3x.png b/assets/static/fonts/open-iconic/png/credit-card-3x.png
deleted file mode 100644
index 80bd106..0000000
Binary files a/assets/static/fonts/open-iconic/png/credit-card-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/credit-card-4x.png b/assets/static/fonts/open-iconic/png/credit-card-4x.png
deleted file mode 100644
index a29823c..0000000
Binary files a/assets/static/fonts/open-iconic/png/credit-card-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/credit-card-6x.png b/assets/static/fonts/open-iconic/png/credit-card-6x.png
deleted file mode 100644
index da37a33..0000000
Binary files a/assets/static/fonts/open-iconic/png/credit-card-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/credit-card-8x.png b/assets/static/fonts/open-iconic/png/credit-card-8x.png
deleted file mode 100644
index 0e9ed2f..0000000
Binary files a/assets/static/fonts/open-iconic/png/credit-card-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/credit-card.png b/assets/static/fonts/open-iconic/png/credit-card.png
deleted file mode 100644
index 989dee9..0000000
Binary files a/assets/static/fonts/open-iconic/png/credit-card.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/crop-2x.png b/assets/static/fonts/open-iconic/png/crop-2x.png
deleted file mode 100644
index a1cc813..0000000
Binary files a/assets/static/fonts/open-iconic/png/crop-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/crop-3x.png b/assets/static/fonts/open-iconic/png/crop-3x.png
deleted file mode 100644
index 005ffea..0000000
Binary files a/assets/static/fonts/open-iconic/png/crop-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/crop-4x.png b/assets/static/fonts/open-iconic/png/crop-4x.png
deleted file mode 100644
index f92f884..0000000
Binary files a/assets/static/fonts/open-iconic/png/crop-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/crop-6x.png b/assets/static/fonts/open-iconic/png/crop-6x.png
deleted file mode 100644
index bd1235b..0000000
Binary files a/assets/static/fonts/open-iconic/png/crop-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/crop-8x.png b/assets/static/fonts/open-iconic/png/crop-8x.png
deleted file mode 100644
index 5ac5fe4..0000000
Binary files a/assets/static/fonts/open-iconic/png/crop-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/crop.png b/assets/static/fonts/open-iconic/png/crop.png
deleted file mode 100644
index 783e395..0000000
Binary files a/assets/static/fonts/open-iconic/png/crop.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/dashboard-2x.png b/assets/static/fonts/open-iconic/png/dashboard-2x.png
deleted file mode 100644
index 7525e18..0000000
Binary files a/assets/static/fonts/open-iconic/png/dashboard-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/dashboard-3x.png b/assets/static/fonts/open-iconic/png/dashboard-3x.png
deleted file mode 100644
index 7e0d515..0000000
Binary files a/assets/static/fonts/open-iconic/png/dashboard-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/dashboard-4x.png b/assets/static/fonts/open-iconic/png/dashboard-4x.png
deleted file mode 100644
index f46a621..0000000
Binary files a/assets/static/fonts/open-iconic/png/dashboard-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/dashboard-6x.png b/assets/static/fonts/open-iconic/png/dashboard-6x.png
deleted file mode 100644
index 84fb473..0000000
Binary files a/assets/static/fonts/open-iconic/png/dashboard-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/dashboard-8x.png b/assets/static/fonts/open-iconic/png/dashboard-8x.png
deleted file mode 100644
index 6b088ae..0000000
Binary files a/assets/static/fonts/open-iconic/png/dashboard-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/dashboard.png b/assets/static/fonts/open-iconic/png/dashboard.png
deleted file mode 100644
index 4aae0fc..0000000
Binary files a/assets/static/fonts/open-iconic/png/dashboard.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/data-transfer-download-2x.png b/assets/static/fonts/open-iconic/png/data-transfer-download-2x.png
deleted file mode 100644
index 02672a1..0000000
Binary files a/assets/static/fonts/open-iconic/png/data-transfer-download-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/data-transfer-download-3x.png b/assets/static/fonts/open-iconic/png/data-transfer-download-3x.png
deleted file mode 100644
index f2557ab..0000000
Binary files a/assets/static/fonts/open-iconic/png/data-transfer-download-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/data-transfer-download-4x.png b/assets/static/fonts/open-iconic/png/data-transfer-download-4x.png
deleted file mode 100644
index 542f9d9..0000000
Binary files a/assets/static/fonts/open-iconic/png/data-transfer-download-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/data-transfer-download-6x.png b/assets/static/fonts/open-iconic/png/data-transfer-download-6x.png
deleted file mode 100644
index 9757797..0000000
Binary files a/assets/static/fonts/open-iconic/png/data-transfer-download-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/data-transfer-download-8x.png b/assets/static/fonts/open-iconic/png/data-transfer-download-8x.png
deleted file mode 100644
index dc2b2fc..0000000
Binary files a/assets/static/fonts/open-iconic/png/data-transfer-download-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/data-transfer-download.png b/assets/static/fonts/open-iconic/png/data-transfer-download.png
deleted file mode 100644
index 9b41e80..0000000
Binary files a/assets/static/fonts/open-iconic/png/data-transfer-download.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/data-transfer-upload-2x.png b/assets/static/fonts/open-iconic/png/data-transfer-upload-2x.png
deleted file mode 100644
index 71d50ae..0000000
Binary files a/assets/static/fonts/open-iconic/png/data-transfer-upload-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/data-transfer-upload-3x.png b/assets/static/fonts/open-iconic/png/data-transfer-upload-3x.png
deleted file mode 100644
index be0f1a0..0000000
Binary files a/assets/static/fonts/open-iconic/png/data-transfer-upload-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/data-transfer-upload-4x.png b/assets/static/fonts/open-iconic/png/data-transfer-upload-4x.png
deleted file mode 100644
index 09bc01f..0000000
Binary files a/assets/static/fonts/open-iconic/png/data-transfer-upload-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/data-transfer-upload-6x.png b/assets/static/fonts/open-iconic/png/data-transfer-upload-6x.png
deleted file mode 100644
index 854eaf9..0000000
Binary files a/assets/static/fonts/open-iconic/png/data-transfer-upload-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/data-transfer-upload-8x.png b/assets/static/fonts/open-iconic/png/data-transfer-upload-8x.png
deleted file mode 100644
index c5055ca..0000000
Binary files a/assets/static/fonts/open-iconic/png/data-transfer-upload-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/data-transfer-upload.png b/assets/static/fonts/open-iconic/png/data-transfer-upload.png
deleted file mode 100644
index 9896b47..0000000
Binary files a/assets/static/fonts/open-iconic/png/data-transfer-upload.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/delete-2x.png b/assets/static/fonts/open-iconic/png/delete-2x.png
deleted file mode 100644
index 56af490..0000000
Binary files a/assets/static/fonts/open-iconic/png/delete-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/delete-3x.png b/assets/static/fonts/open-iconic/png/delete-3x.png
deleted file mode 100644
index 37cf31d..0000000
Binary files a/assets/static/fonts/open-iconic/png/delete-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/delete-4x.png b/assets/static/fonts/open-iconic/png/delete-4x.png
deleted file mode 100644
index 15bf05b..0000000
Binary files a/assets/static/fonts/open-iconic/png/delete-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/delete-6x.png b/assets/static/fonts/open-iconic/png/delete-6x.png
deleted file mode 100644
index 5974a57..0000000
Binary files a/assets/static/fonts/open-iconic/png/delete-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/delete-8x.png b/assets/static/fonts/open-iconic/png/delete-8x.png
deleted file mode 100644
index 7005bd3..0000000
Binary files a/assets/static/fonts/open-iconic/png/delete-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/delete.png b/assets/static/fonts/open-iconic/png/delete.png
deleted file mode 100644
index 93ebadf..0000000
Binary files a/assets/static/fonts/open-iconic/png/delete.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/dial-2x.png b/assets/static/fonts/open-iconic/png/dial-2x.png
deleted file mode 100644
index 7db1fb5..0000000
Binary files a/assets/static/fonts/open-iconic/png/dial-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/dial-3x.png b/assets/static/fonts/open-iconic/png/dial-3x.png
deleted file mode 100644
index ba85cb2..0000000
Binary files a/assets/static/fonts/open-iconic/png/dial-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/dial-4x.png b/assets/static/fonts/open-iconic/png/dial-4x.png
deleted file mode 100644
index b6c41b4..0000000
Binary files a/assets/static/fonts/open-iconic/png/dial-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/dial-6x.png b/assets/static/fonts/open-iconic/png/dial-6x.png
deleted file mode 100644
index f395f57..0000000
Binary files a/assets/static/fonts/open-iconic/png/dial-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/dial-8x.png b/assets/static/fonts/open-iconic/png/dial-8x.png
deleted file mode 100644
index ed98711..0000000
Binary files a/assets/static/fonts/open-iconic/png/dial-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/dial.png b/assets/static/fonts/open-iconic/png/dial.png
deleted file mode 100644
index b4d7f74..0000000
Binary files a/assets/static/fonts/open-iconic/png/dial.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/document-2x.png b/assets/static/fonts/open-iconic/png/document-2x.png
deleted file mode 100644
index 0ae9f76..0000000
Binary files a/assets/static/fonts/open-iconic/png/document-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/document-3x.png b/assets/static/fonts/open-iconic/png/document-3x.png
deleted file mode 100644
index 21bd01e..0000000
Binary files a/assets/static/fonts/open-iconic/png/document-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/document-4x.png b/assets/static/fonts/open-iconic/png/document-4x.png
deleted file mode 100644
index 626e2f3..0000000
Binary files a/assets/static/fonts/open-iconic/png/document-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/document-6x.png b/assets/static/fonts/open-iconic/png/document-6x.png
deleted file mode 100644
index f687028..0000000
Binary files a/assets/static/fonts/open-iconic/png/document-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/document-8x.png b/assets/static/fonts/open-iconic/png/document-8x.png
deleted file mode 100644
index 05c454e..0000000
Binary files a/assets/static/fonts/open-iconic/png/document-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/document.png b/assets/static/fonts/open-iconic/png/document.png
deleted file mode 100644
index 9eea0c6..0000000
Binary files a/assets/static/fonts/open-iconic/png/document.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/dollar-2x.png b/assets/static/fonts/open-iconic/png/dollar-2x.png
deleted file mode 100644
index e858f37..0000000
Binary files a/assets/static/fonts/open-iconic/png/dollar-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/dollar-3x.png b/assets/static/fonts/open-iconic/png/dollar-3x.png
deleted file mode 100644
index a0e93c5..0000000
Binary files a/assets/static/fonts/open-iconic/png/dollar-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/dollar-4x.png b/assets/static/fonts/open-iconic/png/dollar-4x.png
deleted file mode 100644
index 3e601bf..0000000
Binary files a/assets/static/fonts/open-iconic/png/dollar-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/dollar-6x.png b/assets/static/fonts/open-iconic/png/dollar-6x.png
deleted file mode 100644
index a21983e..0000000
Binary files a/assets/static/fonts/open-iconic/png/dollar-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/dollar-8x.png b/assets/static/fonts/open-iconic/png/dollar-8x.png
deleted file mode 100644
index 6a0470f..0000000
Binary files a/assets/static/fonts/open-iconic/png/dollar-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/dollar.png b/assets/static/fonts/open-iconic/png/dollar.png
deleted file mode 100644
index 410c95e..0000000
Binary files a/assets/static/fonts/open-iconic/png/dollar.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/double-quote-sans-left-2x.png b/assets/static/fonts/open-iconic/png/double-quote-sans-left-2x.png
deleted file mode 100644
index a9ddde0..0000000
Binary files a/assets/static/fonts/open-iconic/png/double-quote-sans-left-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/double-quote-sans-left-3x.png b/assets/static/fonts/open-iconic/png/double-quote-sans-left-3x.png
deleted file mode 100644
index c4b4dad..0000000
Binary files a/assets/static/fonts/open-iconic/png/double-quote-sans-left-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/double-quote-sans-left-4x.png b/assets/static/fonts/open-iconic/png/double-quote-sans-left-4x.png
deleted file mode 100644
index bdb416c..0000000
Binary files a/assets/static/fonts/open-iconic/png/double-quote-sans-left-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/double-quote-sans-left-6x.png b/assets/static/fonts/open-iconic/png/double-quote-sans-left-6x.png
deleted file mode 100644
index a2c5e27..0000000
Binary files a/assets/static/fonts/open-iconic/png/double-quote-sans-left-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/double-quote-sans-left-8x.png b/assets/static/fonts/open-iconic/png/double-quote-sans-left-8x.png
deleted file mode 100644
index 6fad536..0000000
Binary files a/assets/static/fonts/open-iconic/png/double-quote-sans-left-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/double-quote-sans-left.png b/assets/static/fonts/open-iconic/png/double-quote-sans-left.png
deleted file mode 100644
index 78fdaae..0000000
Binary files a/assets/static/fonts/open-iconic/png/double-quote-sans-left.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/double-quote-sans-right-2x.png b/assets/static/fonts/open-iconic/png/double-quote-sans-right-2x.png
deleted file mode 100644
index 4e21c6f..0000000
Binary files a/assets/static/fonts/open-iconic/png/double-quote-sans-right-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/double-quote-sans-right-3x.png b/assets/static/fonts/open-iconic/png/double-quote-sans-right-3x.png
deleted file mode 100644
index 60439bc..0000000
Binary files a/assets/static/fonts/open-iconic/png/double-quote-sans-right-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/double-quote-sans-right-4x.png b/assets/static/fonts/open-iconic/png/double-quote-sans-right-4x.png
deleted file mode 100644
index 22a491f..0000000
Binary files a/assets/static/fonts/open-iconic/png/double-quote-sans-right-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/double-quote-sans-right-6x.png b/assets/static/fonts/open-iconic/png/double-quote-sans-right-6x.png
deleted file mode 100644
index 9433f82..0000000
Binary files a/assets/static/fonts/open-iconic/png/double-quote-sans-right-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/double-quote-sans-right-8x.png b/assets/static/fonts/open-iconic/png/double-quote-sans-right-8x.png
deleted file mode 100644
index ae81899..0000000
Binary files a/assets/static/fonts/open-iconic/png/double-quote-sans-right-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/double-quote-sans-right.png b/assets/static/fonts/open-iconic/png/double-quote-sans-right.png
deleted file mode 100644
index 62472bb..0000000
Binary files a/assets/static/fonts/open-iconic/png/double-quote-sans-right.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/double-quote-serif-left-2x.png b/assets/static/fonts/open-iconic/png/double-quote-serif-left-2x.png
deleted file mode 100644
index 6c85a15..0000000
Binary files a/assets/static/fonts/open-iconic/png/double-quote-serif-left-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/double-quote-serif-left-3x.png b/assets/static/fonts/open-iconic/png/double-quote-serif-left-3x.png
deleted file mode 100644
index 1c9c4ae..0000000
Binary files a/assets/static/fonts/open-iconic/png/double-quote-serif-left-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/double-quote-serif-left-4x.png b/assets/static/fonts/open-iconic/png/double-quote-serif-left-4x.png
deleted file mode 100644
index 66a4b70..0000000
Binary files a/assets/static/fonts/open-iconic/png/double-quote-serif-left-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/double-quote-serif-left-6x.png b/assets/static/fonts/open-iconic/png/double-quote-serif-left-6x.png
deleted file mode 100644
index b3b7122..0000000
Binary files a/assets/static/fonts/open-iconic/png/double-quote-serif-left-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/double-quote-serif-left-8x.png b/assets/static/fonts/open-iconic/png/double-quote-serif-left-8x.png
deleted file mode 100644
index 5f647d8..0000000
Binary files a/assets/static/fonts/open-iconic/png/double-quote-serif-left-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/double-quote-serif-left.png b/assets/static/fonts/open-iconic/png/double-quote-serif-left.png
deleted file mode 100644
index f2def81..0000000
Binary files a/assets/static/fonts/open-iconic/png/double-quote-serif-left.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/double-quote-serif-right-2x.png b/assets/static/fonts/open-iconic/png/double-quote-serif-right-2x.png
deleted file mode 100644
index ec337d7..0000000
Binary files a/assets/static/fonts/open-iconic/png/double-quote-serif-right-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/double-quote-serif-right-3x.png b/assets/static/fonts/open-iconic/png/double-quote-serif-right-3x.png
deleted file mode 100644
index b94e206..0000000
Binary files a/assets/static/fonts/open-iconic/png/double-quote-serif-right-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/double-quote-serif-right-4x.png b/assets/static/fonts/open-iconic/png/double-quote-serif-right-4x.png
deleted file mode 100644
index 50567c1..0000000
Binary files a/assets/static/fonts/open-iconic/png/double-quote-serif-right-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/double-quote-serif-right-6x.png b/assets/static/fonts/open-iconic/png/double-quote-serif-right-6x.png
deleted file mode 100644
index 2e419d4..0000000
Binary files a/assets/static/fonts/open-iconic/png/double-quote-serif-right-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/double-quote-serif-right-8x.png b/assets/static/fonts/open-iconic/png/double-quote-serif-right-8x.png
deleted file mode 100644
index 6a0d3ad..0000000
Binary files a/assets/static/fonts/open-iconic/png/double-quote-serif-right-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/double-quote-serif-right.png b/assets/static/fonts/open-iconic/png/double-quote-serif-right.png
deleted file mode 100644
index 9e7de64..0000000
Binary files a/assets/static/fonts/open-iconic/png/double-quote-serif-right.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/droplet-2x.png b/assets/static/fonts/open-iconic/png/droplet-2x.png
deleted file mode 100644
index cc814e7..0000000
Binary files a/assets/static/fonts/open-iconic/png/droplet-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/droplet-3x.png b/assets/static/fonts/open-iconic/png/droplet-3x.png
deleted file mode 100644
index 393656c..0000000
Binary files a/assets/static/fonts/open-iconic/png/droplet-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/droplet-4x.png b/assets/static/fonts/open-iconic/png/droplet-4x.png
deleted file mode 100644
index 619e1eb..0000000
Binary files a/assets/static/fonts/open-iconic/png/droplet-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/droplet-6x.png b/assets/static/fonts/open-iconic/png/droplet-6x.png
deleted file mode 100644
index 90b848a..0000000
Binary files a/assets/static/fonts/open-iconic/png/droplet-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/droplet-8x.png b/assets/static/fonts/open-iconic/png/droplet-8x.png
deleted file mode 100644
index 76c3695..0000000
Binary files a/assets/static/fonts/open-iconic/png/droplet-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/droplet.png b/assets/static/fonts/open-iconic/png/droplet.png
deleted file mode 100644
index 52761ea..0000000
Binary files a/assets/static/fonts/open-iconic/png/droplet.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/eject-2x.png b/assets/static/fonts/open-iconic/png/eject-2x.png
deleted file mode 100644
index bc77c48..0000000
Binary files a/assets/static/fonts/open-iconic/png/eject-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/eject-3x.png b/assets/static/fonts/open-iconic/png/eject-3x.png
deleted file mode 100644
index 7bd588a..0000000
Binary files a/assets/static/fonts/open-iconic/png/eject-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/eject-4x.png b/assets/static/fonts/open-iconic/png/eject-4x.png
deleted file mode 100644
index 9a48bbb..0000000
Binary files a/assets/static/fonts/open-iconic/png/eject-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/eject-6x.png b/assets/static/fonts/open-iconic/png/eject-6x.png
deleted file mode 100644
index 1f8565b..0000000
Binary files a/assets/static/fonts/open-iconic/png/eject-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/eject-8x.png b/assets/static/fonts/open-iconic/png/eject-8x.png
deleted file mode 100644
index f6dde88..0000000
Binary files a/assets/static/fonts/open-iconic/png/eject-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/eject.png b/assets/static/fonts/open-iconic/png/eject.png
deleted file mode 100644
index c75d455..0000000
Binary files a/assets/static/fonts/open-iconic/png/eject.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/elevator-2x.png b/assets/static/fonts/open-iconic/png/elevator-2x.png
deleted file mode 100644
index 2861845..0000000
Binary files a/assets/static/fonts/open-iconic/png/elevator-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/elevator-3x.png b/assets/static/fonts/open-iconic/png/elevator-3x.png
deleted file mode 100644
index 9b976d7..0000000
Binary files a/assets/static/fonts/open-iconic/png/elevator-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/elevator-4x.png b/assets/static/fonts/open-iconic/png/elevator-4x.png
deleted file mode 100644
index 4793a34..0000000
Binary files a/assets/static/fonts/open-iconic/png/elevator-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/elevator-6x.png b/assets/static/fonts/open-iconic/png/elevator-6x.png
deleted file mode 100644
index bf7a168..0000000
Binary files a/assets/static/fonts/open-iconic/png/elevator-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/elevator-8x.png b/assets/static/fonts/open-iconic/png/elevator-8x.png
deleted file mode 100644
index e49b734..0000000
Binary files a/assets/static/fonts/open-iconic/png/elevator-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/elevator.png b/assets/static/fonts/open-iconic/png/elevator.png
deleted file mode 100644
index 687414d..0000000
Binary files a/assets/static/fonts/open-iconic/png/elevator.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/ellipses-2x.png b/assets/static/fonts/open-iconic/png/ellipses-2x.png
deleted file mode 100644
index 788a354..0000000
Binary files a/assets/static/fonts/open-iconic/png/ellipses-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/ellipses-3x.png b/assets/static/fonts/open-iconic/png/ellipses-3x.png
deleted file mode 100644
index b27d1d3..0000000
Binary files a/assets/static/fonts/open-iconic/png/ellipses-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/ellipses-4x.png b/assets/static/fonts/open-iconic/png/ellipses-4x.png
deleted file mode 100644
index 5bf8f82..0000000
Binary files a/assets/static/fonts/open-iconic/png/ellipses-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/ellipses-6x.png b/assets/static/fonts/open-iconic/png/ellipses-6x.png
deleted file mode 100644
index ceda7f3..0000000
Binary files a/assets/static/fonts/open-iconic/png/ellipses-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/ellipses-8x.png b/assets/static/fonts/open-iconic/png/ellipses-8x.png
deleted file mode 100644
index de9b70c..0000000
Binary files a/assets/static/fonts/open-iconic/png/ellipses-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/ellipses.png b/assets/static/fonts/open-iconic/png/ellipses.png
deleted file mode 100644
index 6099cec..0000000
Binary files a/assets/static/fonts/open-iconic/png/ellipses.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/envelope-closed-2x.png b/assets/static/fonts/open-iconic/png/envelope-closed-2x.png
deleted file mode 100644
index c485b44..0000000
Binary files a/assets/static/fonts/open-iconic/png/envelope-closed-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/envelope-closed-3x.png b/assets/static/fonts/open-iconic/png/envelope-closed-3x.png
deleted file mode 100644
index a79a21e..0000000
Binary files a/assets/static/fonts/open-iconic/png/envelope-closed-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/envelope-closed-4x.png b/assets/static/fonts/open-iconic/png/envelope-closed-4x.png
deleted file mode 100644
index a1d7e03..0000000
Binary files a/assets/static/fonts/open-iconic/png/envelope-closed-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/envelope-closed-6x.png b/assets/static/fonts/open-iconic/png/envelope-closed-6x.png
deleted file mode 100644
index d98e960..0000000
Binary files a/assets/static/fonts/open-iconic/png/envelope-closed-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/envelope-closed-8x.png b/assets/static/fonts/open-iconic/png/envelope-closed-8x.png
deleted file mode 100644
index 85eef0c..0000000
Binary files a/assets/static/fonts/open-iconic/png/envelope-closed-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/envelope-closed.png b/assets/static/fonts/open-iconic/png/envelope-closed.png
deleted file mode 100644
index 5e4e20b..0000000
Binary files a/assets/static/fonts/open-iconic/png/envelope-closed.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/envelope-open-2x.png b/assets/static/fonts/open-iconic/png/envelope-open-2x.png
deleted file mode 100644
index 368de61..0000000
Binary files a/assets/static/fonts/open-iconic/png/envelope-open-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/envelope-open-3x.png b/assets/static/fonts/open-iconic/png/envelope-open-3x.png
deleted file mode 100644
index 50a841f..0000000
Binary files a/assets/static/fonts/open-iconic/png/envelope-open-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/envelope-open-4x.png b/assets/static/fonts/open-iconic/png/envelope-open-4x.png
deleted file mode 100644
index 2ae98d1..0000000
Binary files a/assets/static/fonts/open-iconic/png/envelope-open-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/envelope-open-6x.png b/assets/static/fonts/open-iconic/png/envelope-open-6x.png
deleted file mode 100644
index 1ac7fe3..0000000
Binary files a/assets/static/fonts/open-iconic/png/envelope-open-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/envelope-open-8x.png b/assets/static/fonts/open-iconic/png/envelope-open-8x.png
deleted file mode 100644
index 7b13daf..0000000
Binary files a/assets/static/fonts/open-iconic/png/envelope-open-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/envelope-open.png b/assets/static/fonts/open-iconic/png/envelope-open.png
deleted file mode 100644
index 8fc3f42..0000000
Binary files a/assets/static/fonts/open-iconic/png/envelope-open.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/euro-2x.png b/assets/static/fonts/open-iconic/png/euro-2x.png
deleted file mode 100644
index 16ccc9d..0000000
Binary files a/assets/static/fonts/open-iconic/png/euro-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/euro-3x.png b/assets/static/fonts/open-iconic/png/euro-3x.png
deleted file mode 100644
index 7464688..0000000
Binary files a/assets/static/fonts/open-iconic/png/euro-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/euro-4x.png b/assets/static/fonts/open-iconic/png/euro-4x.png
deleted file mode 100644
index 5dd1b05..0000000
Binary files a/assets/static/fonts/open-iconic/png/euro-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/euro-6x.png b/assets/static/fonts/open-iconic/png/euro-6x.png
deleted file mode 100644
index cad9196..0000000
Binary files a/assets/static/fonts/open-iconic/png/euro-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/euro-8x.png b/assets/static/fonts/open-iconic/png/euro-8x.png
deleted file mode 100644
index 4f70f57..0000000
Binary files a/assets/static/fonts/open-iconic/png/euro-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/euro.png b/assets/static/fonts/open-iconic/png/euro.png
deleted file mode 100644
index 5644c0a..0000000
Binary files a/assets/static/fonts/open-iconic/png/euro.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/excerpt-2x.png b/assets/static/fonts/open-iconic/png/excerpt-2x.png
deleted file mode 100644
index d4a131b..0000000
Binary files a/assets/static/fonts/open-iconic/png/excerpt-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/excerpt-3x.png b/assets/static/fonts/open-iconic/png/excerpt-3x.png
deleted file mode 100644
index 11fbd3f..0000000
Binary files a/assets/static/fonts/open-iconic/png/excerpt-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/excerpt-4x.png b/assets/static/fonts/open-iconic/png/excerpt-4x.png
deleted file mode 100644
index 526ff05..0000000
Binary files a/assets/static/fonts/open-iconic/png/excerpt-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/excerpt-6x.png b/assets/static/fonts/open-iconic/png/excerpt-6x.png
deleted file mode 100644
index 4430060..0000000
Binary files a/assets/static/fonts/open-iconic/png/excerpt-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/excerpt-8x.png b/assets/static/fonts/open-iconic/png/excerpt-8x.png
deleted file mode 100644
index 42c9520..0000000
Binary files a/assets/static/fonts/open-iconic/png/excerpt-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/excerpt.png b/assets/static/fonts/open-iconic/png/excerpt.png
deleted file mode 100644
index 63657ae..0000000
Binary files a/assets/static/fonts/open-iconic/png/excerpt.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/expand-down-2x.png b/assets/static/fonts/open-iconic/png/expand-down-2x.png
deleted file mode 100644
index bbe78e2..0000000
Binary files a/assets/static/fonts/open-iconic/png/expand-down-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/expand-down-3x.png b/assets/static/fonts/open-iconic/png/expand-down-3x.png
deleted file mode 100644
index 4b40ea2..0000000
Binary files a/assets/static/fonts/open-iconic/png/expand-down-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/expand-down-4x.png b/assets/static/fonts/open-iconic/png/expand-down-4x.png
deleted file mode 100644
index e482519..0000000
Binary files a/assets/static/fonts/open-iconic/png/expand-down-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/expand-down-6x.png b/assets/static/fonts/open-iconic/png/expand-down-6x.png
deleted file mode 100644
index 35c1e41..0000000
Binary files a/assets/static/fonts/open-iconic/png/expand-down-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/expand-down-8x.png b/assets/static/fonts/open-iconic/png/expand-down-8x.png
deleted file mode 100644
index 69cd3c3..0000000
Binary files a/assets/static/fonts/open-iconic/png/expand-down-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/expand-down.png b/assets/static/fonts/open-iconic/png/expand-down.png
deleted file mode 100644
index e6e5a74..0000000
Binary files a/assets/static/fonts/open-iconic/png/expand-down.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/expand-left-2x.png b/assets/static/fonts/open-iconic/png/expand-left-2x.png
deleted file mode 100644
index 1d7308d..0000000
Binary files a/assets/static/fonts/open-iconic/png/expand-left-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/expand-left-3x.png b/assets/static/fonts/open-iconic/png/expand-left-3x.png
deleted file mode 100644
index 21a34a3..0000000
Binary files a/assets/static/fonts/open-iconic/png/expand-left-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/expand-left-4x.png b/assets/static/fonts/open-iconic/png/expand-left-4x.png
deleted file mode 100644
index b4ee5ef..0000000
Binary files a/assets/static/fonts/open-iconic/png/expand-left-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/expand-left-6x.png b/assets/static/fonts/open-iconic/png/expand-left-6x.png
deleted file mode 100644
index c74cbdf..0000000
Binary files a/assets/static/fonts/open-iconic/png/expand-left-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/expand-left-8x.png b/assets/static/fonts/open-iconic/png/expand-left-8x.png
deleted file mode 100644
index e0711c9..0000000
Binary files a/assets/static/fonts/open-iconic/png/expand-left-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/expand-left.png b/assets/static/fonts/open-iconic/png/expand-left.png
deleted file mode 100644
index 91cbc6d..0000000
Binary files a/assets/static/fonts/open-iconic/png/expand-left.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/expand-right-2x.png b/assets/static/fonts/open-iconic/png/expand-right-2x.png
deleted file mode 100644
index 533bc36..0000000
Binary files a/assets/static/fonts/open-iconic/png/expand-right-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/expand-right-3x.png b/assets/static/fonts/open-iconic/png/expand-right-3x.png
deleted file mode 100644
index 2590584..0000000
Binary files a/assets/static/fonts/open-iconic/png/expand-right-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/expand-right-4x.png b/assets/static/fonts/open-iconic/png/expand-right-4x.png
deleted file mode 100644
index 97a6ddc..0000000
Binary files a/assets/static/fonts/open-iconic/png/expand-right-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/expand-right-6x.png b/assets/static/fonts/open-iconic/png/expand-right-6x.png
deleted file mode 100644
index af5c118..0000000
Binary files a/assets/static/fonts/open-iconic/png/expand-right-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/expand-right-8x.png b/assets/static/fonts/open-iconic/png/expand-right-8x.png
deleted file mode 100644
index c16fcba..0000000
Binary files a/assets/static/fonts/open-iconic/png/expand-right-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/expand-right.png b/assets/static/fonts/open-iconic/png/expand-right.png
deleted file mode 100644
index 39ae043..0000000
Binary files a/assets/static/fonts/open-iconic/png/expand-right.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/expand-up-2x.png b/assets/static/fonts/open-iconic/png/expand-up-2x.png
deleted file mode 100644
index 63c85cf..0000000
Binary files a/assets/static/fonts/open-iconic/png/expand-up-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/expand-up-3x.png b/assets/static/fonts/open-iconic/png/expand-up-3x.png
deleted file mode 100644
index 09d234d..0000000
Binary files a/assets/static/fonts/open-iconic/png/expand-up-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/expand-up-4x.png b/assets/static/fonts/open-iconic/png/expand-up-4x.png
deleted file mode 100644
index 0d8611f..0000000
Binary files a/assets/static/fonts/open-iconic/png/expand-up-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/expand-up-6x.png b/assets/static/fonts/open-iconic/png/expand-up-6x.png
deleted file mode 100644
index 8f3e5c4..0000000
Binary files a/assets/static/fonts/open-iconic/png/expand-up-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/expand-up-8x.png b/assets/static/fonts/open-iconic/png/expand-up-8x.png
deleted file mode 100644
index 21ebd52..0000000
Binary files a/assets/static/fonts/open-iconic/png/expand-up-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/expand-up.png b/assets/static/fonts/open-iconic/png/expand-up.png
deleted file mode 100644
index ea65f6a..0000000
Binary files a/assets/static/fonts/open-iconic/png/expand-up.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/external-link-2x.png b/assets/static/fonts/open-iconic/png/external-link-2x.png
deleted file mode 100644
index 189a93f..0000000
Binary files a/assets/static/fonts/open-iconic/png/external-link-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/external-link-3x.png b/assets/static/fonts/open-iconic/png/external-link-3x.png
deleted file mode 100644
index 8c6b2e7..0000000
Binary files a/assets/static/fonts/open-iconic/png/external-link-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/external-link-4x.png b/assets/static/fonts/open-iconic/png/external-link-4x.png
deleted file mode 100644
index a728f8d..0000000
Binary files a/assets/static/fonts/open-iconic/png/external-link-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/external-link-6x.png b/assets/static/fonts/open-iconic/png/external-link-6x.png
deleted file mode 100644
index 31f8451..0000000
Binary files a/assets/static/fonts/open-iconic/png/external-link-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/external-link-8x.png b/assets/static/fonts/open-iconic/png/external-link-8x.png
deleted file mode 100644
index 2c711b6..0000000
Binary files a/assets/static/fonts/open-iconic/png/external-link-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/external-link.png b/assets/static/fonts/open-iconic/png/external-link.png
deleted file mode 100644
index 9f57d5a..0000000
Binary files a/assets/static/fonts/open-iconic/png/external-link.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/eye-2x.png b/assets/static/fonts/open-iconic/png/eye-2x.png
deleted file mode 100644
index b6d55ed..0000000
Binary files a/assets/static/fonts/open-iconic/png/eye-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/eye-3x.png b/assets/static/fonts/open-iconic/png/eye-3x.png
deleted file mode 100644
index 5e7a449..0000000
Binary files a/assets/static/fonts/open-iconic/png/eye-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/eye-4x.png b/assets/static/fonts/open-iconic/png/eye-4x.png
deleted file mode 100644
index 4290ce8..0000000
Binary files a/assets/static/fonts/open-iconic/png/eye-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/eye-6x.png b/assets/static/fonts/open-iconic/png/eye-6x.png
deleted file mode 100644
index e4ebaa3..0000000
Binary files a/assets/static/fonts/open-iconic/png/eye-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/eye-8x.png b/assets/static/fonts/open-iconic/png/eye-8x.png
deleted file mode 100644
index 16bab41..0000000
Binary files a/assets/static/fonts/open-iconic/png/eye-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/eye.png b/assets/static/fonts/open-iconic/png/eye.png
deleted file mode 100644
index 5874d04..0000000
Binary files a/assets/static/fonts/open-iconic/png/eye.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/eyedropper-2x.png b/assets/static/fonts/open-iconic/png/eyedropper-2x.png
deleted file mode 100644
index cdf1a8d..0000000
Binary files a/assets/static/fonts/open-iconic/png/eyedropper-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/eyedropper-3x.png b/assets/static/fonts/open-iconic/png/eyedropper-3x.png
deleted file mode 100644
index e62e246..0000000
Binary files a/assets/static/fonts/open-iconic/png/eyedropper-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/eyedropper-4x.png b/assets/static/fonts/open-iconic/png/eyedropper-4x.png
deleted file mode 100644
index 8030e89..0000000
Binary files a/assets/static/fonts/open-iconic/png/eyedropper-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/eyedropper-6x.png b/assets/static/fonts/open-iconic/png/eyedropper-6x.png
deleted file mode 100644
index 9bee1de..0000000
Binary files a/assets/static/fonts/open-iconic/png/eyedropper-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/eyedropper-8x.png b/assets/static/fonts/open-iconic/png/eyedropper-8x.png
deleted file mode 100644
index 505cbf6..0000000
Binary files a/assets/static/fonts/open-iconic/png/eyedropper-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/eyedropper.png b/assets/static/fonts/open-iconic/png/eyedropper.png
deleted file mode 100644
index 7d14fe9..0000000
Binary files a/assets/static/fonts/open-iconic/png/eyedropper.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/file-2x.png b/assets/static/fonts/open-iconic/png/file-2x.png
deleted file mode 100644
index 4196c44..0000000
Binary files a/assets/static/fonts/open-iconic/png/file-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/file-3x.png b/assets/static/fonts/open-iconic/png/file-3x.png
deleted file mode 100644
index 2082b43..0000000
Binary files a/assets/static/fonts/open-iconic/png/file-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/file-4x.png b/assets/static/fonts/open-iconic/png/file-4x.png
deleted file mode 100644
index 894dfdc..0000000
Binary files a/assets/static/fonts/open-iconic/png/file-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/file-6x.png b/assets/static/fonts/open-iconic/png/file-6x.png
deleted file mode 100644
index 580ab17..0000000
Binary files a/assets/static/fonts/open-iconic/png/file-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/file-8x.png b/assets/static/fonts/open-iconic/png/file-8x.png
deleted file mode 100644
index 54ca80f..0000000
Binary files a/assets/static/fonts/open-iconic/png/file-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/file.png b/assets/static/fonts/open-iconic/png/file.png
deleted file mode 100644
index fda62cc..0000000
Binary files a/assets/static/fonts/open-iconic/png/file.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/fire-2x.png b/assets/static/fonts/open-iconic/png/fire-2x.png
deleted file mode 100644
index acf6b29..0000000
Binary files a/assets/static/fonts/open-iconic/png/fire-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/fire-3x.png b/assets/static/fonts/open-iconic/png/fire-3x.png
deleted file mode 100644
index 2fc1b79..0000000
Binary files a/assets/static/fonts/open-iconic/png/fire-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/fire-4x.png b/assets/static/fonts/open-iconic/png/fire-4x.png
deleted file mode 100644
index bed9004..0000000
Binary files a/assets/static/fonts/open-iconic/png/fire-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/fire-6x.png b/assets/static/fonts/open-iconic/png/fire-6x.png
deleted file mode 100644
index 6a9e42d..0000000
Binary files a/assets/static/fonts/open-iconic/png/fire-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/fire-8x.png b/assets/static/fonts/open-iconic/png/fire-8x.png
deleted file mode 100644
index 3582f1d..0000000
Binary files a/assets/static/fonts/open-iconic/png/fire-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/fire.png b/assets/static/fonts/open-iconic/png/fire.png
deleted file mode 100644
index 4f84ba4..0000000
Binary files a/assets/static/fonts/open-iconic/png/fire.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/flag-2x.png b/assets/static/fonts/open-iconic/png/flag-2x.png
deleted file mode 100644
index 0b26970..0000000
Binary files a/assets/static/fonts/open-iconic/png/flag-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/flag-3x.png b/assets/static/fonts/open-iconic/png/flag-3x.png
deleted file mode 100644
index 8f6f9f1..0000000
Binary files a/assets/static/fonts/open-iconic/png/flag-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/flag-4x.png b/assets/static/fonts/open-iconic/png/flag-4x.png
deleted file mode 100644
index 1402013..0000000
Binary files a/assets/static/fonts/open-iconic/png/flag-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/flag-6x.png b/assets/static/fonts/open-iconic/png/flag-6x.png
deleted file mode 100644
index 2b45f10..0000000
Binary files a/assets/static/fonts/open-iconic/png/flag-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/flag-8x.png b/assets/static/fonts/open-iconic/png/flag-8x.png
deleted file mode 100644
index d8fa7f4..0000000
Binary files a/assets/static/fonts/open-iconic/png/flag-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/flag.png b/assets/static/fonts/open-iconic/png/flag.png
deleted file mode 100644
index 7d9d588..0000000
Binary files a/assets/static/fonts/open-iconic/png/flag.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/flash-2x.png b/assets/static/fonts/open-iconic/png/flash-2x.png
deleted file mode 100644
index 3b7e0d1..0000000
Binary files a/assets/static/fonts/open-iconic/png/flash-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/flash-3x.png b/assets/static/fonts/open-iconic/png/flash-3x.png
deleted file mode 100644
index f0a11ae..0000000
Binary files a/assets/static/fonts/open-iconic/png/flash-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/flash-4x.png b/assets/static/fonts/open-iconic/png/flash-4x.png
deleted file mode 100644
index 53c14b9..0000000
Binary files a/assets/static/fonts/open-iconic/png/flash-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/flash-6x.png b/assets/static/fonts/open-iconic/png/flash-6x.png
deleted file mode 100644
index 7001b2e..0000000
Binary files a/assets/static/fonts/open-iconic/png/flash-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/flash-8x.png b/assets/static/fonts/open-iconic/png/flash-8x.png
deleted file mode 100644
index 17fa68a..0000000
Binary files a/assets/static/fonts/open-iconic/png/flash-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/flash.png b/assets/static/fonts/open-iconic/png/flash.png
deleted file mode 100644
index 151b591..0000000
Binary files a/assets/static/fonts/open-iconic/png/flash.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/folder-2x.png b/assets/static/fonts/open-iconic/png/folder-2x.png
deleted file mode 100644
index 08f7ab5..0000000
Binary files a/assets/static/fonts/open-iconic/png/folder-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/folder-3x.png b/assets/static/fonts/open-iconic/png/folder-3x.png
deleted file mode 100644
index 12d55dc..0000000
Binary files a/assets/static/fonts/open-iconic/png/folder-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/folder-4x.png b/assets/static/fonts/open-iconic/png/folder-4x.png
deleted file mode 100644
index 9d5e033..0000000
Binary files a/assets/static/fonts/open-iconic/png/folder-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/folder-6x.png b/assets/static/fonts/open-iconic/png/folder-6x.png
deleted file mode 100644
index e2f6dbf..0000000
Binary files a/assets/static/fonts/open-iconic/png/folder-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/folder-8x.png b/assets/static/fonts/open-iconic/png/folder-8x.png
deleted file mode 100644
index 6f2acc4..0000000
Binary files a/assets/static/fonts/open-iconic/png/folder-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/folder.png b/assets/static/fonts/open-iconic/png/folder.png
deleted file mode 100644
index 4c23e66..0000000
Binary files a/assets/static/fonts/open-iconic/png/folder.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/fork-2x.png b/assets/static/fonts/open-iconic/png/fork-2x.png
deleted file mode 100644
index 400824e..0000000
Binary files a/assets/static/fonts/open-iconic/png/fork-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/fork-3x.png b/assets/static/fonts/open-iconic/png/fork-3x.png
deleted file mode 100644
index dac801b..0000000
Binary files a/assets/static/fonts/open-iconic/png/fork-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/fork-4x.png b/assets/static/fonts/open-iconic/png/fork-4x.png
deleted file mode 100644
index 42340ed..0000000
Binary files a/assets/static/fonts/open-iconic/png/fork-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/fork-6x.png b/assets/static/fonts/open-iconic/png/fork-6x.png
deleted file mode 100644
index 75b40f8..0000000
Binary files a/assets/static/fonts/open-iconic/png/fork-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/fork-8x.png b/assets/static/fonts/open-iconic/png/fork-8x.png
deleted file mode 100644
index 4fdd761..0000000
Binary files a/assets/static/fonts/open-iconic/png/fork-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/fork.png b/assets/static/fonts/open-iconic/png/fork.png
deleted file mode 100644
index 2d8d1a7..0000000
Binary files a/assets/static/fonts/open-iconic/png/fork.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/fullscreen-enter-2x.png b/assets/static/fonts/open-iconic/png/fullscreen-enter-2x.png
deleted file mode 100644
index b77edb8..0000000
Binary files a/assets/static/fonts/open-iconic/png/fullscreen-enter-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/fullscreen-enter-3x.png b/assets/static/fonts/open-iconic/png/fullscreen-enter-3x.png
deleted file mode 100644
index 9ca7754..0000000
Binary files a/assets/static/fonts/open-iconic/png/fullscreen-enter-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/fullscreen-enter-4x.png b/assets/static/fonts/open-iconic/png/fullscreen-enter-4x.png
deleted file mode 100644
index 70b75e2..0000000
Binary files a/assets/static/fonts/open-iconic/png/fullscreen-enter-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/fullscreen-enter-6x.png b/assets/static/fonts/open-iconic/png/fullscreen-enter-6x.png
deleted file mode 100644
index 0bbb5e1..0000000
Binary files a/assets/static/fonts/open-iconic/png/fullscreen-enter-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/fullscreen-enter-8x.png b/assets/static/fonts/open-iconic/png/fullscreen-enter-8x.png
deleted file mode 100644
index 9b0405d..0000000
Binary files a/assets/static/fonts/open-iconic/png/fullscreen-enter-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/fullscreen-enter.png b/assets/static/fonts/open-iconic/png/fullscreen-enter.png
deleted file mode 100644
index 143be07..0000000
Binary files a/assets/static/fonts/open-iconic/png/fullscreen-enter.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/fullscreen-exit-2x.png b/assets/static/fonts/open-iconic/png/fullscreen-exit-2x.png
deleted file mode 100644
index 5d1f046..0000000
Binary files a/assets/static/fonts/open-iconic/png/fullscreen-exit-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/fullscreen-exit-3x.png b/assets/static/fonts/open-iconic/png/fullscreen-exit-3x.png
deleted file mode 100644
index 3a5ca7b..0000000
Binary files a/assets/static/fonts/open-iconic/png/fullscreen-exit-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/fullscreen-exit-4x.png b/assets/static/fonts/open-iconic/png/fullscreen-exit-4x.png
deleted file mode 100644
index fb49713..0000000
Binary files a/assets/static/fonts/open-iconic/png/fullscreen-exit-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/fullscreen-exit-6x.png b/assets/static/fonts/open-iconic/png/fullscreen-exit-6x.png
deleted file mode 100644
index 9b57007..0000000
Binary files a/assets/static/fonts/open-iconic/png/fullscreen-exit-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/fullscreen-exit-8x.png b/assets/static/fonts/open-iconic/png/fullscreen-exit-8x.png
deleted file mode 100644
index f8e4c0c..0000000
Binary files a/assets/static/fonts/open-iconic/png/fullscreen-exit-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/fullscreen-exit.png b/assets/static/fonts/open-iconic/png/fullscreen-exit.png
deleted file mode 100644
index e6b6908..0000000
Binary files a/assets/static/fonts/open-iconic/png/fullscreen-exit.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/globe-2x.png b/assets/static/fonts/open-iconic/png/globe-2x.png
deleted file mode 100644
index d01318f..0000000
Binary files a/assets/static/fonts/open-iconic/png/globe-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/globe-3x.png b/assets/static/fonts/open-iconic/png/globe-3x.png
deleted file mode 100644
index 074a25b..0000000
Binary files a/assets/static/fonts/open-iconic/png/globe-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/globe-4x.png b/assets/static/fonts/open-iconic/png/globe-4x.png
deleted file mode 100644
index 4191eb7..0000000
Binary files a/assets/static/fonts/open-iconic/png/globe-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/globe-6x.png b/assets/static/fonts/open-iconic/png/globe-6x.png
deleted file mode 100644
index db3bf0b..0000000
Binary files a/assets/static/fonts/open-iconic/png/globe-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/globe-8x.png b/assets/static/fonts/open-iconic/png/globe-8x.png
deleted file mode 100644
index 47b5487..0000000
Binary files a/assets/static/fonts/open-iconic/png/globe-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/globe.png b/assets/static/fonts/open-iconic/png/globe.png
deleted file mode 100644
index c8c03dd..0000000
Binary files a/assets/static/fonts/open-iconic/png/globe.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/graph-2x.png b/assets/static/fonts/open-iconic/png/graph-2x.png
deleted file mode 100644
index 32a75cd..0000000
Binary files a/assets/static/fonts/open-iconic/png/graph-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/graph-3x.png b/assets/static/fonts/open-iconic/png/graph-3x.png
deleted file mode 100644
index 4a1221f..0000000
Binary files a/assets/static/fonts/open-iconic/png/graph-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/graph-4x.png b/assets/static/fonts/open-iconic/png/graph-4x.png
deleted file mode 100644
index d4b876b..0000000
Binary files a/assets/static/fonts/open-iconic/png/graph-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/graph-6x.png b/assets/static/fonts/open-iconic/png/graph-6x.png
deleted file mode 100644
index c104689..0000000
Binary files a/assets/static/fonts/open-iconic/png/graph-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/graph-8x.png b/assets/static/fonts/open-iconic/png/graph-8x.png
deleted file mode 100644
index 1de1360..0000000
Binary files a/assets/static/fonts/open-iconic/png/graph-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/graph.png b/assets/static/fonts/open-iconic/png/graph.png
deleted file mode 100644
index 4b9321e..0000000
Binary files a/assets/static/fonts/open-iconic/png/graph.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/grid-four-up-2x.png b/assets/static/fonts/open-iconic/png/grid-four-up-2x.png
deleted file mode 100644
index 9245445..0000000
Binary files a/assets/static/fonts/open-iconic/png/grid-four-up-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/grid-four-up-3x.png b/assets/static/fonts/open-iconic/png/grid-four-up-3x.png
deleted file mode 100644
index 7ef3ff3..0000000
Binary files a/assets/static/fonts/open-iconic/png/grid-four-up-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/grid-four-up-4x.png b/assets/static/fonts/open-iconic/png/grid-four-up-4x.png
deleted file mode 100644
index 49ce0a0..0000000
Binary files a/assets/static/fonts/open-iconic/png/grid-four-up-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/grid-four-up-6x.png b/assets/static/fonts/open-iconic/png/grid-four-up-6x.png
deleted file mode 100644
index b1045c6..0000000
Binary files a/assets/static/fonts/open-iconic/png/grid-four-up-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/grid-four-up-8x.png b/assets/static/fonts/open-iconic/png/grid-four-up-8x.png
deleted file mode 100644
index a05adb4..0000000
Binary files a/assets/static/fonts/open-iconic/png/grid-four-up-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/grid-four-up.png b/assets/static/fonts/open-iconic/png/grid-four-up.png
deleted file mode 100644
index 8e71100..0000000
Binary files a/assets/static/fonts/open-iconic/png/grid-four-up.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/grid-three-up-2x.png b/assets/static/fonts/open-iconic/png/grid-three-up-2x.png
deleted file mode 100644
index 7efe4f0..0000000
Binary files a/assets/static/fonts/open-iconic/png/grid-three-up-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/grid-three-up-3x.png b/assets/static/fonts/open-iconic/png/grid-three-up-3x.png
deleted file mode 100644
index c3f70a2..0000000
Binary files a/assets/static/fonts/open-iconic/png/grid-three-up-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/grid-three-up-4x.png b/assets/static/fonts/open-iconic/png/grid-three-up-4x.png
deleted file mode 100644
index c5ec4f0..0000000
Binary files a/assets/static/fonts/open-iconic/png/grid-three-up-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/grid-three-up-6x.png b/assets/static/fonts/open-iconic/png/grid-three-up-6x.png
deleted file mode 100644
index 30517d1..0000000
Binary files a/assets/static/fonts/open-iconic/png/grid-three-up-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/grid-three-up-8x.png b/assets/static/fonts/open-iconic/png/grid-three-up-8x.png
deleted file mode 100644
index a836d83..0000000
Binary files a/assets/static/fonts/open-iconic/png/grid-three-up-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/grid-three-up.png b/assets/static/fonts/open-iconic/png/grid-three-up.png
deleted file mode 100644
index 3269e87..0000000
Binary files a/assets/static/fonts/open-iconic/png/grid-three-up.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/grid-two-up-2x.png b/assets/static/fonts/open-iconic/png/grid-two-up-2x.png
deleted file mode 100644
index a6b29dc..0000000
Binary files a/assets/static/fonts/open-iconic/png/grid-two-up-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/grid-two-up-3x.png b/assets/static/fonts/open-iconic/png/grid-two-up-3x.png
deleted file mode 100644
index 4e4328d..0000000
Binary files a/assets/static/fonts/open-iconic/png/grid-two-up-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/grid-two-up-4x.png b/assets/static/fonts/open-iconic/png/grid-two-up-4x.png
deleted file mode 100644
index 3bb9d24..0000000
Binary files a/assets/static/fonts/open-iconic/png/grid-two-up-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/grid-two-up-6x.png b/assets/static/fonts/open-iconic/png/grid-two-up-6x.png
deleted file mode 100644
index d182587..0000000
Binary files a/assets/static/fonts/open-iconic/png/grid-two-up-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/grid-two-up-8x.png b/assets/static/fonts/open-iconic/png/grid-two-up-8x.png
deleted file mode 100644
index 1a38f27..0000000
Binary files a/assets/static/fonts/open-iconic/png/grid-two-up-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/grid-two-up.png b/assets/static/fonts/open-iconic/png/grid-two-up.png
deleted file mode 100644
index a89d2e4..0000000
Binary files a/assets/static/fonts/open-iconic/png/grid-two-up.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/hard-drive-2x.png b/assets/static/fonts/open-iconic/png/hard-drive-2x.png
deleted file mode 100644
index e18e6ff..0000000
Binary files a/assets/static/fonts/open-iconic/png/hard-drive-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/hard-drive-3x.png b/assets/static/fonts/open-iconic/png/hard-drive-3x.png
deleted file mode 100644
index 7245511..0000000
Binary files a/assets/static/fonts/open-iconic/png/hard-drive-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/hard-drive-4x.png b/assets/static/fonts/open-iconic/png/hard-drive-4x.png
deleted file mode 100644
index 676ab06..0000000
Binary files a/assets/static/fonts/open-iconic/png/hard-drive-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/hard-drive-6x.png b/assets/static/fonts/open-iconic/png/hard-drive-6x.png
deleted file mode 100644
index 64a3481..0000000
Binary files a/assets/static/fonts/open-iconic/png/hard-drive-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/hard-drive-8x.png b/assets/static/fonts/open-iconic/png/hard-drive-8x.png
deleted file mode 100644
index 19fc0df..0000000
Binary files a/assets/static/fonts/open-iconic/png/hard-drive-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/hard-drive.png b/assets/static/fonts/open-iconic/png/hard-drive.png
deleted file mode 100644
index 9c4b77b..0000000
Binary files a/assets/static/fonts/open-iconic/png/hard-drive.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/header-2x.png b/assets/static/fonts/open-iconic/png/header-2x.png
deleted file mode 100644
index ba67f61..0000000
Binary files a/assets/static/fonts/open-iconic/png/header-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/header-3x.png b/assets/static/fonts/open-iconic/png/header-3x.png
deleted file mode 100644
index bcf0d9a..0000000
Binary files a/assets/static/fonts/open-iconic/png/header-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/header-4x.png b/assets/static/fonts/open-iconic/png/header-4x.png
deleted file mode 100644
index 4bba156..0000000
Binary files a/assets/static/fonts/open-iconic/png/header-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/header-6x.png b/assets/static/fonts/open-iconic/png/header-6x.png
deleted file mode 100644
index 411d22f..0000000
Binary files a/assets/static/fonts/open-iconic/png/header-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/header-8x.png b/assets/static/fonts/open-iconic/png/header-8x.png
deleted file mode 100644
index d4f97af..0000000
Binary files a/assets/static/fonts/open-iconic/png/header-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/header.png b/assets/static/fonts/open-iconic/png/header.png
deleted file mode 100644
index cdf6d0e..0000000
Binary files a/assets/static/fonts/open-iconic/png/header.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/headphones-2x.png b/assets/static/fonts/open-iconic/png/headphones-2x.png
deleted file mode 100644
index 2389741..0000000
Binary files a/assets/static/fonts/open-iconic/png/headphones-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/headphones-3x.png b/assets/static/fonts/open-iconic/png/headphones-3x.png
deleted file mode 100644
index 1b16dd2..0000000
Binary files a/assets/static/fonts/open-iconic/png/headphones-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/headphones-4x.png b/assets/static/fonts/open-iconic/png/headphones-4x.png
deleted file mode 100644
index 094fbd4..0000000
Binary files a/assets/static/fonts/open-iconic/png/headphones-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/headphones-6x.png b/assets/static/fonts/open-iconic/png/headphones-6x.png
deleted file mode 100644
index eb1c35f..0000000
Binary files a/assets/static/fonts/open-iconic/png/headphones-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/headphones-8x.png b/assets/static/fonts/open-iconic/png/headphones-8x.png
deleted file mode 100644
index 00bd9f6..0000000
Binary files a/assets/static/fonts/open-iconic/png/headphones-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/headphones.png b/assets/static/fonts/open-iconic/png/headphones.png
deleted file mode 100644
index 9fa5d67..0000000
Binary files a/assets/static/fonts/open-iconic/png/headphones.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/heart-2x.png b/assets/static/fonts/open-iconic/png/heart-2x.png
deleted file mode 100644
index 019855d..0000000
Binary files a/assets/static/fonts/open-iconic/png/heart-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/heart-3x.png b/assets/static/fonts/open-iconic/png/heart-3x.png
deleted file mode 100644
index b77f469..0000000
Binary files a/assets/static/fonts/open-iconic/png/heart-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/heart-4x.png b/assets/static/fonts/open-iconic/png/heart-4x.png
deleted file mode 100644
index 6915f4a..0000000
Binary files a/assets/static/fonts/open-iconic/png/heart-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/heart-6x.png b/assets/static/fonts/open-iconic/png/heart-6x.png
deleted file mode 100644
index 4dd69aa..0000000
Binary files a/assets/static/fonts/open-iconic/png/heart-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/heart-8x.png b/assets/static/fonts/open-iconic/png/heart-8x.png
deleted file mode 100644
index 9b7f140..0000000
Binary files a/assets/static/fonts/open-iconic/png/heart-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/heart.png b/assets/static/fonts/open-iconic/png/heart.png
deleted file mode 100644
index 7cd52e5..0000000
Binary files a/assets/static/fonts/open-iconic/png/heart.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/home-2x.png b/assets/static/fonts/open-iconic/png/home-2x.png
deleted file mode 100644
index 2dd1d3d..0000000
Binary files a/assets/static/fonts/open-iconic/png/home-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/home-3x.png b/assets/static/fonts/open-iconic/png/home-3x.png
deleted file mode 100644
index 944bf55..0000000
Binary files a/assets/static/fonts/open-iconic/png/home-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/home-4x.png b/assets/static/fonts/open-iconic/png/home-4x.png
deleted file mode 100644
index 946cd1a..0000000
Binary files a/assets/static/fonts/open-iconic/png/home-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/home-6x.png b/assets/static/fonts/open-iconic/png/home-6x.png
deleted file mode 100644
index 9c9b84a..0000000
Binary files a/assets/static/fonts/open-iconic/png/home-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/home-8x.png b/assets/static/fonts/open-iconic/png/home-8x.png
deleted file mode 100644
index 7110882..0000000
Binary files a/assets/static/fonts/open-iconic/png/home-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/home.png b/assets/static/fonts/open-iconic/png/home.png
deleted file mode 100644
index bb4531b..0000000
Binary files a/assets/static/fonts/open-iconic/png/home.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/image-2x.png b/assets/static/fonts/open-iconic/png/image-2x.png
deleted file mode 100644
index 3a1b005..0000000
Binary files a/assets/static/fonts/open-iconic/png/image-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/image-3x.png b/assets/static/fonts/open-iconic/png/image-3x.png
deleted file mode 100644
index 25f704f..0000000
Binary files a/assets/static/fonts/open-iconic/png/image-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/image-4x.png b/assets/static/fonts/open-iconic/png/image-4x.png
deleted file mode 100644
index 91aa7a3..0000000
Binary files a/assets/static/fonts/open-iconic/png/image-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/image-6x.png b/assets/static/fonts/open-iconic/png/image-6x.png
deleted file mode 100644
index ebd1797..0000000
Binary files a/assets/static/fonts/open-iconic/png/image-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/image-8x.png b/assets/static/fonts/open-iconic/png/image-8x.png
deleted file mode 100644
index 9b455b5..0000000
Binary files a/assets/static/fonts/open-iconic/png/image-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/image.png b/assets/static/fonts/open-iconic/png/image.png
deleted file mode 100644
index b46dffb..0000000
Binary files a/assets/static/fonts/open-iconic/png/image.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/inbox-2x.png b/assets/static/fonts/open-iconic/png/inbox-2x.png
deleted file mode 100644
index e4e18f8..0000000
Binary files a/assets/static/fonts/open-iconic/png/inbox-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/inbox-3x.png b/assets/static/fonts/open-iconic/png/inbox-3x.png
deleted file mode 100644
index 66b00a7..0000000
Binary files a/assets/static/fonts/open-iconic/png/inbox-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/inbox-4x.png b/assets/static/fonts/open-iconic/png/inbox-4x.png
deleted file mode 100644
index 58cb810..0000000
Binary files a/assets/static/fonts/open-iconic/png/inbox-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/inbox-6x.png b/assets/static/fonts/open-iconic/png/inbox-6x.png
deleted file mode 100644
index c3eb9e7..0000000
Binary files a/assets/static/fonts/open-iconic/png/inbox-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/inbox-8x.png b/assets/static/fonts/open-iconic/png/inbox-8x.png
deleted file mode 100644
index 5caf5e6..0000000
Binary files a/assets/static/fonts/open-iconic/png/inbox-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/inbox.png b/assets/static/fonts/open-iconic/png/inbox.png
deleted file mode 100644
index 7aac968..0000000
Binary files a/assets/static/fonts/open-iconic/png/inbox.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/infinity-2x.png b/assets/static/fonts/open-iconic/png/infinity-2x.png
deleted file mode 100644
index 97538aa..0000000
Binary files a/assets/static/fonts/open-iconic/png/infinity-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/infinity-3x.png b/assets/static/fonts/open-iconic/png/infinity-3x.png
deleted file mode 100644
index 8b0284f..0000000
Binary files a/assets/static/fonts/open-iconic/png/infinity-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/infinity-4x.png b/assets/static/fonts/open-iconic/png/infinity-4x.png
deleted file mode 100644
index c999801..0000000
Binary files a/assets/static/fonts/open-iconic/png/infinity-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/infinity-6x.png b/assets/static/fonts/open-iconic/png/infinity-6x.png
deleted file mode 100644
index 70dc656..0000000
Binary files a/assets/static/fonts/open-iconic/png/infinity-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/infinity-8x.png b/assets/static/fonts/open-iconic/png/infinity-8x.png
deleted file mode 100644
index ca95f4e..0000000
Binary files a/assets/static/fonts/open-iconic/png/infinity-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/infinity.png b/assets/static/fonts/open-iconic/png/infinity.png
deleted file mode 100644
index db25fbe..0000000
Binary files a/assets/static/fonts/open-iconic/png/infinity.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/info-2x.png b/assets/static/fonts/open-iconic/png/info-2x.png
deleted file mode 100644
index 36c3cf8..0000000
Binary files a/assets/static/fonts/open-iconic/png/info-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/info-3x.png b/assets/static/fonts/open-iconic/png/info-3x.png
deleted file mode 100644
index 10e7fc5..0000000
Binary files a/assets/static/fonts/open-iconic/png/info-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/info-4x.png b/assets/static/fonts/open-iconic/png/info-4x.png
deleted file mode 100644
index f3be15c..0000000
Binary files a/assets/static/fonts/open-iconic/png/info-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/info-6x.png b/assets/static/fonts/open-iconic/png/info-6x.png
deleted file mode 100644
index 48ab373..0000000
Binary files a/assets/static/fonts/open-iconic/png/info-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/info-8x.png b/assets/static/fonts/open-iconic/png/info-8x.png
deleted file mode 100644
index afd7f83..0000000
Binary files a/assets/static/fonts/open-iconic/png/info-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/info.png b/assets/static/fonts/open-iconic/png/info.png
deleted file mode 100644
index 552fa18..0000000
Binary files a/assets/static/fonts/open-iconic/png/info.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/italic-2x.png b/assets/static/fonts/open-iconic/png/italic-2x.png
deleted file mode 100644
index 3661581..0000000
Binary files a/assets/static/fonts/open-iconic/png/italic-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/italic-3x.png b/assets/static/fonts/open-iconic/png/italic-3x.png
deleted file mode 100644
index 53580fa..0000000
Binary files a/assets/static/fonts/open-iconic/png/italic-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/italic-4x.png b/assets/static/fonts/open-iconic/png/italic-4x.png
deleted file mode 100644
index d2723f8..0000000
Binary files a/assets/static/fonts/open-iconic/png/italic-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/italic-6x.png b/assets/static/fonts/open-iconic/png/italic-6x.png
deleted file mode 100644
index 2d933d7..0000000
Binary files a/assets/static/fonts/open-iconic/png/italic-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/italic-8x.png b/assets/static/fonts/open-iconic/png/italic-8x.png
deleted file mode 100644
index d6d3d22..0000000
Binary files a/assets/static/fonts/open-iconic/png/italic-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/italic.png b/assets/static/fonts/open-iconic/png/italic.png
deleted file mode 100644
index 30120f8..0000000
Binary files a/assets/static/fonts/open-iconic/png/italic.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/justify-center-2x.png b/assets/static/fonts/open-iconic/png/justify-center-2x.png
deleted file mode 100644
index c504dd4..0000000
Binary files a/assets/static/fonts/open-iconic/png/justify-center-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/justify-center-3x.png b/assets/static/fonts/open-iconic/png/justify-center-3x.png
deleted file mode 100644
index 1202196..0000000
Binary files a/assets/static/fonts/open-iconic/png/justify-center-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/justify-center-4x.png b/assets/static/fonts/open-iconic/png/justify-center-4x.png
deleted file mode 100644
index 29aa793..0000000
Binary files a/assets/static/fonts/open-iconic/png/justify-center-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/justify-center-6x.png b/assets/static/fonts/open-iconic/png/justify-center-6x.png
deleted file mode 100644
index 4357395..0000000
Binary files a/assets/static/fonts/open-iconic/png/justify-center-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/justify-center-8x.png b/assets/static/fonts/open-iconic/png/justify-center-8x.png
deleted file mode 100644
index ed7e630..0000000
Binary files a/assets/static/fonts/open-iconic/png/justify-center-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/justify-center.png b/assets/static/fonts/open-iconic/png/justify-center.png
deleted file mode 100644
index ac753f3..0000000
Binary files a/assets/static/fonts/open-iconic/png/justify-center.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/justify-left-2x.png b/assets/static/fonts/open-iconic/png/justify-left-2x.png
deleted file mode 100644
index 96eccc5..0000000
Binary files a/assets/static/fonts/open-iconic/png/justify-left-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/justify-left-3x.png b/assets/static/fonts/open-iconic/png/justify-left-3x.png
deleted file mode 100644
index 36da4b2..0000000
Binary files a/assets/static/fonts/open-iconic/png/justify-left-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/justify-left-4x.png b/assets/static/fonts/open-iconic/png/justify-left-4x.png
deleted file mode 100644
index 75d2d64..0000000
Binary files a/assets/static/fonts/open-iconic/png/justify-left-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/justify-left-6x.png b/assets/static/fonts/open-iconic/png/justify-left-6x.png
deleted file mode 100644
index 8713684..0000000
Binary files a/assets/static/fonts/open-iconic/png/justify-left-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/justify-left-8x.png b/assets/static/fonts/open-iconic/png/justify-left-8x.png
deleted file mode 100644
index bfeac17..0000000
Binary files a/assets/static/fonts/open-iconic/png/justify-left-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/justify-left.png b/assets/static/fonts/open-iconic/png/justify-left.png
deleted file mode 100644
index 79851bd..0000000
Binary files a/assets/static/fonts/open-iconic/png/justify-left.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/justify-right-2x.png b/assets/static/fonts/open-iconic/png/justify-right-2x.png
deleted file mode 100644
index 61c31fd..0000000
Binary files a/assets/static/fonts/open-iconic/png/justify-right-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/justify-right-3x.png b/assets/static/fonts/open-iconic/png/justify-right-3x.png
deleted file mode 100644
index f2ad5ad..0000000
Binary files a/assets/static/fonts/open-iconic/png/justify-right-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/justify-right-4x.png b/assets/static/fonts/open-iconic/png/justify-right-4x.png
deleted file mode 100644
index 06767cd..0000000
Binary files a/assets/static/fonts/open-iconic/png/justify-right-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/justify-right-6x.png b/assets/static/fonts/open-iconic/png/justify-right-6x.png
deleted file mode 100644
index 6b72189..0000000
Binary files a/assets/static/fonts/open-iconic/png/justify-right-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/justify-right-8x.png b/assets/static/fonts/open-iconic/png/justify-right-8x.png
deleted file mode 100644
index 5de6be2..0000000
Binary files a/assets/static/fonts/open-iconic/png/justify-right-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/justify-right.png b/assets/static/fonts/open-iconic/png/justify-right.png
deleted file mode 100644
index dc5c98d..0000000
Binary files a/assets/static/fonts/open-iconic/png/justify-right.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/key-2x.png b/assets/static/fonts/open-iconic/png/key-2x.png
deleted file mode 100644
index 006575a..0000000
Binary files a/assets/static/fonts/open-iconic/png/key-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/key-3x.png b/assets/static/fonts/open-iconic/png/key-3x.png
deleted file mode 100644
index 4351154..0000000
Binary files a/assets/static/fonts/open-iconic/png/key-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/key-4x.png b/assets/static/fonts/open-iconic/png/key-4x.png
deleted file mode 100644
index f863e91..0000000
Binary files a/assets/static/fonts/open-iconic/png/key-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/key-6x.png b/assets/static/fonts/open-iconic/png/key-6x.png
deleted file mode 100644
index 9112348..0000000
Binary files a/assets/static/fonts/open-iconic/png/key-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/key-8x.png b/assets/static/fonts/open-iconic/png/key-8x.png
deleted file mode 100644
index 3618605..0000000
Binary files a/assets/static/fonts/open-iconic/png/key-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/key.png b/assets/static/fonts/open-iconic/png/key.png
deleted file mode 100644
index ad1c933..0000000
Binary files a/assets/static/fonts/open-iconic/png/key.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/laptop-2x.png b/assets/static/fonts/open-iconic/png/laptop-2x.png
deleted file mode 100644
index c13f0d2..0000000
Binary files a/assets/static/fonts/open-iconic/png/laptop-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/laptop-3x.png b/assets/static/fonts/open-iconic/png/laptop-3x.png
deleted file mode 100644
index c559446..0000000
Binary files a/assets/static/fonts/open-iconic/png/laptop-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/laptop-4x.png b/assets/static/fonts/open-iconic/png/laptop-4x.png
deleted file mode 100644
index 3f52cb8..0000000
Binary files a/assets/static/fonts/open-iconic/png/laptop-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/laptop-6x.png b/assets/static/fonts/open-iconic/png/laptop-6x.png
deleted file mode 100644
index f946322..0000000
Binary files a/assets/static/fonts/open-iconic/png/laptop-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/laptop-8x.png b/assets/static/fonts/open-iconic/png/laptop-8x.png
deleted file mode 100644
index 823d268..0000000
Binary files a/assets/static/fonts/open-iconic/png/laptop-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/laptop.png b/assets/static/fonts/open-iconic/png/laptop.png
deleted file mode 100644
index 5873d71..0000000
Binary files a/assets/static/fonts/open-iconic/png/laptop.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/layers-2x.png b/assets/static/fonts/open-iconic/png/layers-2x.png
deleted file mode 100644
index 6c56a67..0000000
Binary files a/assets/static/fonts/open-iconic/png/layers-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/layers-3x.png b/assets/static/fonts/open-iconic/png/layers-3x.png
deleted file mode 100644
index 9bcd6a6..0000000
Binary files a/assets/static/fonts/open-iconic/png/layers-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/layers-4x.png b/assets/static/fonts/open-iconic/png/layers-4x.png
deleted file mode 100644
index 6187756..0000000
Binary files a/assets/static/fonts/open-iconic/png/layers-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/layers-6x.png b/assets/static/fonts/open-iconic/png/layers-6x.png
deleted file mode 100644
index c530518..0000000
Binary files a/assets/static/fonts/open-iconic/png/layers-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/layers-8x.png b/assets/static/fonts/open-iconic/png/layers-8x.png
deleted file mode 100644
index 04f2ba5..0000000
Binary files a/assets/static/fonts/open-iconic/png/layers-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/layers.png b/assets/static/fonts/open-iconic/png/layers.png
deleted file mode 100644
index 72d7faf..0000000
Binary files a/assets/static/fonts/open-iconic/png/layers.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/lightbulb-2x.png b/assets/static/fonts/open-iconic/png/lightbulb-2x.png
deleted file mode 100644
index 66391ba..0000000
Binary files a/assets/static/fonts/open-iconic/png/lightbulb-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/lightbulb-3x.png b/assets/static/fonts/open-iconic/png/lightbulb-3x.png
deleted file mode 100644
index 17addc1..0000000
Binary files a/assets/static/fonts/open-iconic/png/lightbulb-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/lightbulb-4x.png b/assets/static/fonts/open-iconic/png/lightbulb-4x.png
deleted file mode 100644
index bae9ab8..0000000
Binary files a/assets/static/fonts/open-iconic/png/lightbulb-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/lightbulb-6x.png b/assets/static/fonts/open-iconic/png/lightbulb-6x.png
deleted file mode 100644
index d64496a..0000000
Binary files a/assets/static/fonts/open-iconic/png/lightbulb-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/lightbulb-8x.png b/assets/static/fonts/open-iconic/png/lightbulb-8x.png
deleted file mode 100644
index 010c744..0000000
Binary files a/assets/static/fonts/open-iconic/png/lightbulb-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/lightbulb.png b/assets/static/fonts/open-iconic/png/lightbulb.png
deleted file mode 100644
index dc7633a..0000000
Binary files a/assets/static/fonts/open-iconic/png/lightbulb.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/link-broken-2x.png b/assets/static/fonts/open-iconic/png/link-broken-2x.png
deleted file mode 100644
index 6af40b0..0000000
Binary files a/assets/static/fonts/open-iconic/png/link-broken-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/link-broken-3x.png b/assets/static/fonts/open-iconic/png/link-broken-3x.png
deleted file mode 100644
index c9f7969..0000000
Binary files a/assets/static/fonts/open-iconic/png/link-broken-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/link-broken-4x.png b/assets/static/fonts/open-iconic/png/link-broken-4x.png
deleted file mode 100644
index 81b8231..0000000
Binary files a/assets/static/fonts/open-iconic/png/link-broken-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/link-broken-6x.png b/assets/static/fonts/open-iconic/png/link-broken-6x.png
deleted file mode 100644
index 8075f86..0000000
Binary files a/assets/static/fonts/open-iconic/png/link-broken-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/link-broken-8x.png b/assets/static/fonts/open-iconic/png/link-broken-8x.png
deleted file mode 100644
index c446e05..0000000
Binary files a/assets/static/fonts/open-iconic/png/link-broken-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/link-broken.png b/assets/static/fonts/open-iconic/png/link-broken.png
deleted file mode 100644
index 467f394..0000000
Binary files a/assets/static/fonts/open-iconic/png/link-broken.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/link-intact-2x.png b/assets/static/fonts/open-iconic/png/link-intact-2x.png
deleted file mode 100644
index b157e9b..0000000
Binary files a/assets/static/fonts/open-iconic/png/link-intact-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/link-intact-3x.png b/assets/static/fonts/open-iconic/png/link-intact-3x.png
deleted file mode 100644
index 430c1b6..0000000
Binary files a/assets/static/fonts/open-iconic/png/link-intact-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/link-intact-4x.png b/assets/static/fonts/open-iconic/png/link-intact-4x.png
deleted file mode 100644
index 6f5bc0f..0000000
Binary files a/assets/static/fonts/open-iconic/png/link-intact-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/link-intact-6x.png b/assets/static/fonts/open-iconic/png/link-intact-6x.png
deleted file mode 100644
index ab8946d..0000000
Binary files a/assets/static/fonts/open-iconic/png/link-intact-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/link-intact-8x.png b/assets/static/fonts/open-iconic/png/link-intact-8x.png
deleted file mode 100644
index 52d18e5..0000000
Binary files a/assets/static/fonts/open-iconic/png/link-intact-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/link-intact.png b/assets/static/fonts/open-iconic/png/link-intact.png
deleted file mode 100644
index 35e35a2..0000000
Binary files a/assets/static/fonts/open-iconic/png/link-intact.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/list-2x.png b/assets/static/fonts/open-iconic/png/list-2x.png
deleted file mode 100644
index 1fc4450..0000000
Binary files a/assets/static/fonts/open-iconic/png/list-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/list-3x.png b/assets/static/fonts/open-iconic/png/list-3x.png
deleted file mode 100644
index 8042894..0000000
Binary files a/assets/static/fonts/open-iconic/png/list-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/list-4x.png b/assets/static/fonts/open-iconic/png/list-4x.png
deleted file mode 100644
index 649bb80..0000000
Binary files a/assets/static/fonts/open-iconic/png/list-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/list-6x.png b/assets/static/fonts/open-iconic/png/list-6x.png
deleted file mode 100644
index 5df8c4d..0000000
Binary files a/assets/static/fonts/open-iconic/png/list-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/list-8x.png b/assets/static/fonts/open-iconic/png/list-8x.png
deleted file mode 100644
index 27d941c..0000000
Binary files a/assets/static/fonts/open-iconic/png/list-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/list-rich-2x.png b/assets/static/fonts/open-iconic/png/list-rich-2x.png
deleted file mode 100644
index 0b7e985..0000000
Binary files a/assets/static/fonts/open-iconic/png/list-rich-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/list-rich-3x.png b/assets/static/fonts/open-iconic/png/list-rich-3x.png
deleted file mode 100644
index 84dfef5..0000000
Binary files a/assets/static/fonts/open-iconic/png/list-rich-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/list-rich-4x.png b/assets/static/fonts/open-iconic/png/list-rich-4x.png
deleted file mode 100644
index adf25e7..0000000
Binary files a/assets/static/fonts/open-iconic/png/list-rich-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/list-rich-6x.png b/assets/static/fonts/open-iconic/png/list-rich-6x.png
deleted file mode 100644
index f0cd2e8..0000000
Binary files a/assets/static/fonts/open-iconic/png/list-rich-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/list-rich-8x.png b/assets/static/fonts/open-iconic/png/list-rich-8x.png
deleted file mode 100644
index f60c173..0000000
Binary files a/assets/static/fonts/open-iconic/png/list-rich-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/list-rich.png b/assets/static/fonts/open-iconic/png/list-rich.png
deleted file mode 100644
index 3ee3e90..0000000
Binary files a/assets/static/fonts/open-iconic/png/list-rich.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/list.png b/assets/static/fonts/open-iconic/png/list.png
deleted file mode 100644
index e0045ab..0000000
Binary files a/assets/static/fonts/open-iconic/png/list.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/location-2x.png b/assets/static/fonts/open-iconic/png/location-2x.png
deleted file mode 100644
index 138023f..0000000
Binary files a/assets/static/fonts/open-iconic/png/location-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/location-3x.png b/assets/static/fonts/open-iconic/png/location-3x.png
deleted file mode 100644
index 82a54b0..0000000
Binary files a/assets/static/fonts/open-iconic/png/location-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/location-4x.png b/assets/static/fonts/open-iconic/png/location-4x.png
deleted file mode 100644
index 668df11..0000000
Binary files a/assets/static/fonts/open-iconic/png/location-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/location-6x.png b/assets/static/fonts/open-iconic/png/location-6x.png
deleted file mode 100644
index e3b8472..0000000
Binary files a/assets/static/fonts/open-iconic/png/location-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/location-8x.png b/assets/static/fonts/open-iconic/png/location-8x.png
deleted file mode 100644
index 0acb8d7..0000000
Binary files a/assets/static/fonts/open-iconic/png/location-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/location.png b/assets/static/fonts/open-iconic/png/location.png
deleted file mode 100644
index 0dc9027..0000000
Binary files a/assets/static/fonts/open-iconic/png/location.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/lock-locked-2x.png b/assets/static/fonts/open-iconic/png/lock-locked-2x.png
deleted file mode 100644
index f2646f5..0000000
Binary files a/assets/static/fonts/open-iconic/png/lock-locked-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/lock-locked-3x.png b/assets/static/fonts/open-iconic/png/lock-locked-3x.png
deleted file mode 100644
index 5e4b247..0000000
Binary files a/assets/static/fonts/open-iconic/png/lock-locked-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/lock-locked-4x.png b/assets/static/fonts/open-iconic/png/lock-locked-4x.png
deleted file mode 100644
index 90cfdf9..0000000
Binary files a/assets/static/fonts/open-iconic/png/lock-locked-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/lock-locked-6x.png b/assets/static/fonts/open-iconic/png/lock-locked-6x.png
deleted file mode 100644
index 1393e2d..0000000
Binary files a/assets/static/fonts/open-iconic/png/lock-locked-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/lock-locked-8x.png b/assets/static/fonts/open-iconic/png/lock-locked-8x.png
deleted file mode 100644
index 335f006..0000000
Binary files a/assets/static/fonts/open-iconic/png/lock-locked-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/lock-locked.png b/assets/static/fonts/open-iconic/png/lock-locked.png
deleted file mode 100644
index fef8198..0000000
Binary files a/assets/static/fonts/open-iconic/png/lock-locked.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/lock-unlocked-2x.png b/assets/static/fonts/open-iconic/png/lock-unlocked-2x.png
deleted file mode 100644
index ca13401..0000000
Binary files a/assets/static/fonts/open-iconic/png/lock-unlocked-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/lock-unlocked-3x.png b/assets/static/fonts/open-iconic/png/lock-unlocked-3x.png
deleted file mode 100644
index 230c8c8..0000000
Binary files a/assets/static/fonts/open-iconic/png/lock-unlocked-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/lock-unlocked-4x.png b/assets/static/fonts/open-iconic/png/lock-unlocked-4x.png
deleted file mode 100644
index 5567f6b..0000000
Binary files a/assets/static/fonts/open-iconic/png/lock-unlocked-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/lock-unlocked-6x.png b/assets/static/fonts/open-iconic/png/lock-unlocked-6x.png
deleted file mode 100644
index cbf5bff..0000000
Binary files a/assets/static/fonts/open-iconic/png/lock-unlocked-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/lock-unlocked-8x.png b/assets/static/fonts/open-iconic/png/lock-unlocked-8x.png
deleted file mode 100644
index 1730aa0..0000000
Binary files a/assets/static/fonts/open-iconic/png/lock-unlocked-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/lock-unlocked.png b/assets/static/fonts/open-iconic/png/lock-unlocked.png
deleted file mode 100644
index 27195e0..0000000
Binary files a/assets/static/fonts/open-iconic/png/lock-unlocked.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/loop-2x.png b/assets/static/fonts/open-iconic/png/loop-2x.png
deleted file mode 100644
index d7392d8..0000000
Binary files a/assets/static/fonts/open-iconic/png/loop-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/loop-3x.png b/assets/static/fonts/open-iconic/png/loop-3x.png
deleted file mode 100644
index c9f3a41..0000000
Binary files a/assets/static/fonts/open-iconic/png/loop-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/loop-4x.png b/assets/static/fonts/open-iconic/png/loop-4x.png
deleted file mode 100644
index c93cf7e..0000000
Binary files a/assets/static/fonts/open-iconic/png/loop-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/loop-6x.png b/assets/static/fonts/open-iconic/png/loop-6x.png
deleted file mode 100644
index 18b0420..0000000
Binary files a/assets/static/fonts/open-iconic/png/loop-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/loop-8x.png b/assets/static/fonts/open-iconic/png/loop-8x.png
deleted file mode 100644
index 4a551d8..0000000
Binary files a/assets/static/fonts/open-iconic/png/loop-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/loop-circular-2x.png b/assets/static/fonts/open-iconic/png/loop-circular-2x.png
deleted file mode 100644
index 5b4bac0..0000000
Binary files a/assets/static/fonts/open-iconic/png/loop-circular-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/loop-circular-3x.png b/assets/static/fonts/open-iconic/png/loop-circular-3x.png
deleted file mode 100644
index 09195f0..0000000
Binary files a/assets/static/fonts/open-iconic/png/loop-circular-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/loop-circular-4x.png b/assets/static/fonts/open-iconic/png/loop-circular-4x.png
deleted file mode 100644
index 241af4d..0000000
Binary files a/assets/static/fonts/open-iconic/png/loop-circular-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/loop-circular-6x.png b/assets/static/fonts/open-iconic/png/loop-circular-6x.png
deleted file mode 100644
index fc6ea75..0000000
Binary files a/assets/static/fonts/open-iconic/png/loop-circular-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/loop-circular-8x.png b/assets/static/fonts/open-iconic/png/loop-circular-8x.png
deleted file mode 100644
index c25224d..0000000
Binary files a/assets/static/fonts/open-iconic/png/loop-circular-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/loop-circular.png b/assets/static/fonts/open-iconic/png/loop-circular.png
deleted file mode 100644
index 887fefb..0000000
Binary files a/assets/static/fonts/open-iconic/png/loop-circular.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/loop-square-2x.png b/assets/static/fonts/open-iconic/png/loop-square-2x.png
deleted file mode 100644
index 09e7e3a..0000000
Binary files a/assets/static/fonts/open-iconic/png/loop-square-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/loop-square-3x.png b/assets/static/fonts/open-iconic/png/loop-square-3x.png
deleted file mode 100644
index 281b5f1..0000000
Binary files a/assets/static/fonts/open-iconic/png/loop-square-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/loop-square-4x.png b/assets/static/fonts/open-iconic/png/loop-square-4x.png
deleted file mode 100644
index 7d0797b..0000000
Binary files a/assets/static/fonts/open-iconic/png/loop-square-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/loop-square-6x.png b/assets/static/fonts/open-iconic/png/loop-square-6x.png
deleted file mode 100644
index 6f90121..0000000
Binary files a/assets/static/fonts/open-iconic/png/loop-square-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/loop-square-8x.png b/assets/static/fonts/open-iconic/png/loop-square-8x.png
deleted file mode 100644
index 44e07ba..0000000
Binary files a/assets/static/fonts/open-iconic/png/loop-square-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/loop-square.png b/assets/static/fonts/open-iconic/png/loop-square.png
deleted file mode 100644
index 6f987a7..0000000
Binary files a/assets/static/fonts/open-iconic/png/loop-square.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/loop.png b/assets/static/fonts/open-iconic/png/loop.png
deleted file mode 100644
index ba15577..0000000
Binary files a/assets/static/fonts/open-iconic/png/loop.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/magnifying-glass-2x.png b/assets/static/fonts/open-iconic/png/magnifying-glass-2x.png
deleted file mode 100644
index f4fa628..0000000
Binary files a/assets/static/fonts/open-iconic/png/magnifying-glass-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/magnifying-glass-3x.png b/assets/static/fonts/open-iconic/png/magnifying-glass-3x.png
deleted file mode 100644
index adcae4f..0000000
Binary files a/assets/static/fonts/open-iconic/png/magnifying-glass-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/magnifying-glass-4x.png b/assets/static/fonts/open-iconic/png/magnifying-glass-4x.png
deleted file mode 100644
index 5aadcc8..0000000
Binary files a/assets/static/fonts/open-iconic/png/magnifying-glass-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/magnifying-glass-6x.png b/assets/static/fonts/open-iconic/png/magnifying-glass-6x.png
deleted file mode 100644
index 2b765fa..0000000
Binary files a/assets/static/fonts/open-iconic/png/magnifying-glass-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/magnifying-glass-8x.png b/assets/static/fonts/open-iconic/png/magnifying-glass-8x.png
deleted file mode 100644
index 2baa23e..0000000
Binary files a/assets/static/fonts/open-iconic/png/magnifying-glass-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/magnifying-glass.png b/assets/static/fonts/open-iconic/png/magnifying-glass.png
deleted file mode 100644
index f048de1..0000000
Binary files a/assets/static/fonts/open-iconic/png/magnifying-glass.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/map-2x.png b/assets/static/fonts/open-iconic/png/map-2x.png
deleted file mode 100644
index 90126c7..0000000
Binary files a/assets/static/fonts/open-iconic/png/map-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/map-3x.png b/assets/static/fonts/open-iconic/png/map-3x.png
deleted file mode 100644
index 0acb099..0000000
Binary files a/assets/static/fonts/open-iconic/png/map-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/map-4x.png b/assets/static/fonts/open-iconic/png/map-4x.png
deleted file mode 100644
index 8b33235..0000000
Binary files a/assets/static/fonts/open-iconic/png/map-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/map-6x.png b/assets/static/fonts/open-iconic/png/map-6x.png
deleted file mode 100644
index 93f67ae..0000000
Binary files a/assets/static/fonts/open-iconic/png/map-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/map-8x.png b/assets/static/fonts/open-iconic/png/map-8x.png
deleted file mode 100644
index 3b5040c..0000000
Binary files a/assets/static/fonts/open-iconic/png/map-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/map-marker-2x.png b/assets/static/fonts/open-iconic/png/map-marker-2x.png
deleted file mode 100644
index 165b0bd..0000000
Binary files a/assets/static/fonts/open-iconic/png/map-marker-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/map-marker-3x.png b/assets/static/fonts/open-iconic/png/map-marker-3x.png
deleted file mode 100644
index c29f604..0000000
Binary files a/assets/static/fonts/open-iconic/png/map-marker-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/map-marker-4x.png b/assets/static/fonts/open-iconic/png/map-marker-4x.png
deleted file mode 100644
index a0e7819..0000000
Binary files a/assets/static/fonts/open-iconic/png/map-marker-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/map-marker-6x.png b/assets/static/fonts/open-iconic/png/map-marker-6x.png
deleted file mode 100644
index c171b74..0000000
Binary files a/assets/static/fonts/open-iconic/png/map-marker-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/map-marker-8x.png b/assets/static/fonts/open-iconic/png/map-marker-8x.png
deleted file mode 100644
index 0a516e3..0000000
Binary files a/assets/static/fonts/open-iconic/png/map-marker-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/map-marker.png b/assets/static/fonts/open-iconic/png/map-marker.png
deleted file mode 100644
index 32d8ec3..0000000
Binary files a/assets/static/fonts/open-iconic/png/map-marker.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/map.png b/assets/static/fonts/open-iconic/png/map.png
deleted file mode 100644
index c2791c3..0000000
Binary files a/assets/static/fonts/open-iconic/png/map.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-pause-2x.png b/assets/static/fonts/open-iconic/png/media-pause-2x.png
deleted file mode 100644
index 19a7b09..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-pause-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-pause-3x.png b/assets/static/fonts/open-iconic/png/media-pause-3x.png
deleted file mode 100644
index c373b5e..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-pause-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-pause-4x.png b/assets/static/fonts/open-iconic/png/media-pause-4x.png
deleted file mode 100644
index 970dff5..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-pause-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-pause-6x.png b/assets/static/fonts/open-iconic/png/media-pause-6x.png
deleted file mode 100644
index eb31daf..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-pause-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-pause-8x.png b/assets/static/fonts/open-iconic/png/media-pause-8x.png
deleted file mode 100644
index bbdc5b7..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-pause-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-pause.png b/assets/static/fonts/open-iconic/png/media-pause.png
deleted file mode 100644
index 1077278..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-pause.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-play-2x.png b/assets/static/fonts/open-iconic/png/media-play-2x.png
deleted file mode 100644
index e934b0a..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-play-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-play-3x.png b/assets/static/fonts/open-iconic/png/media-play-3x.png
deleted file mode 100644
index daf5cf2..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-play-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-play-4x.png b/assets/static/fonts/open-iconic/png/media-play-4x.png
deleted file mode 100644
index df5a660..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-play-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-play-6x.png b/assets/static/fonts/open-iconic/png/media-play-6x.png
deleted file mode 100644
index 41ffbb2..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-play-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-play-8x.png b/assets/static/fonts/open-iconic/png/media-play-8x.png
deleted file mode 100644
index 6fd56f1..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-play-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-play.png b/assets/static/fonts/open-iconic/png/media-play.png
deleted file mode 100644
index 6f92016..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-play.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-record-2x.png b/assets/static/fonts/open-iconic/png/media-record-2x.png
deleted file mode 100644
index 3e6faf4..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-record-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-record-3x.png b/assets/static/fonts/open-iconic/png/media-record-3x.png
deleted file mode 100644
index d353252..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-record-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-record-4x.png b/assets/static/fonts/open-iconic/png/media-record-4x.png
deleted file mode 100644
index 31c5a97..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-record-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-record-6x.png b/assets/static/fonts/open-iconic/png/media-record-6x.png
deleted file mode 100644
index 7912ec7..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-record-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-record-8x.png b/assets/static/fonts/open-iconic/png/media-record-8x.png
deleted file mode 100644
index 564042d..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-record-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-record.png b/assets/static/fonts/open-iconic/png/media-record.png
deleted file mode 100644
index fad32e3..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-record.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-skip-backward-2x.png b/assets/static/fonts/open-iconic/png/media-skip-backward-2x.png
deleted file mode 100644
index baeaad1..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-skip-backward-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-skip-backward-3x.png b/assets/static/fonts/open-iconic/png/media-skip-backward-3x.png
deleted file mode 100644
index c33b776..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-skip-backward-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-skip-backward-4x.png b/assets/static/fonts/open-iconic/png/media-skip-backward-4x.png
deleted file mode 100644
index 7024dc9..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-skip-backward-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-skip-backward-6x.png b/assets/static/fonts/open-iconic/png/media-skip-backward-6x.png
deleted file mode 100644
index 3f8bb4e..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-skip-backward-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-skip-backward-8x.png b/assets/static/fonts/open-iconic/png/media-skip-backward-8x.png
deleted file mode 100644
index 4ac01d8..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-skip-backward-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-skip-backward.png b/assets/static/fonts/open-iconic/png/media-skip-backward.png
deleted file mode 100644
index 7994fb3..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-skip-backward.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-skip-forward-2x.png b/assets/static/fonts/open-iconic/png/media-skip-forward-2x.png
deleted file mode 100644
index 5865176..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-skip-forward-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-skip-forward-3x.png b/assets/static/fonts/open-iconic/png/media-skip-forward-3x.png
deleted file mode 100644
index d3a45e7..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-skip-forward-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-skip-forward-4x.png b/assets/static/fonts/open-iconic/png/media-skip-forward-4x.png
deleted file mode 100644
index 04eec0c..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-skip-forward-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-skip-forward-6x.png b/assets/static/fonts/open-iconic/png/media-skip-forward-6x.png
deleted file mode 100644
index 77967f2..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-skip-forward-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-skip-forward-8x.png b/assets/static/fonts/open-iconic/png/media-skip-forward-8x.png
deleted file mode 100644
index 562aaa5..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-skip-forward-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-skip-forward.png b/assets/static/fonts/open-iconic/png/media-skip-forward.png
deleted file mode 100644
index 43d635d..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-skip-forward.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-step-backward-2x.png b/assets/static/fonts/open-iconic/png/media-step-backward-2x.png
deleted file mode 100644
index bc2018b..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-step-backward-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-step-backward-3x.png b/assets/static/fonts/open-iconic/png/media-step-backward-3x.png
deleted file mode 100644
index c4012cc..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-step-backward-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-step-backward-4x.png b/assets/static/fonts/open-iconic/png/media-step-backward-4x.png
deleted file mode 100644
index 028d8c5..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-step-backward-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-step-backward-6x.png b/assets/static/fonts/open-iconic/png/media-step-backward-6x.png
deleted file mode 100644
index d9a07fe..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-step-backward-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-step-backward-8x.png b/assets/static/fonts/open-iconic/png/media-step-backward-8x.png
deleted file mode 100644
index 7c8b248..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-step-backward-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-step-backward.png b/assets/static/fonts/open-iconic/png/media-step-backward.png
deleted file mode 100644
index 67a228d..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-step-backward.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-step-forward-2x.png b/assets/static/fonts/open-iconic/png/media-step-forward-2x.png
deleted file mode 100644
index e56e8ca..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-step-forward-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-step-forward-3x.png b/assets/static/fonts/open-iconic/png/media-step-forward-3x.png
deleted file mode 100644
index c5d71dc..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-step-forward-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-step-forward-4x.png b/assets/static/fonts/open-iconic/png/media-step-forward-4x.png
deleted file mode 100644
index 0589fca..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-step-forward-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-step-forward-6x.png b/assets/static/fonts/open-iconic/png/media-step-forward-6x.png
deleted file mode 100644
index 62e49f9..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-step-forward-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-step-forward-8x.png b/assets/static/fonts/open-iconic/png/media-step-forward-8x.png
deleted file mode 100644
index 9424d12..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-step-forward-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-step-forward.png b/assets/static/fonts/open-iconic/png/media-step-forward.png
deleted file mode 100644
index 12efd2e..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-step-forward.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-stop-2x.png b/assets/static/fonts/open-iconic/png/media-stop-2x.png
deleted file mode 100644
index c261089..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-stop-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-stop-3x.png b/assets/static/fonts/open-iconic/png/media-stop-3x.png
deleted file mode 100644
index 1639e30..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-stop-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-stop-4x.png b/assets/static/fonts/open-iconic/png/media-stop-4x.png
deleted file mode 100644
index 2f8803c..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-stop-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-stop-6x.png b/assets/static/fonts/open-iconic/png/media-stop-6x.png
deleted file mode 100644
index 2d86e8e..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-stop-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-stop-8x.png b/assets/static/fonts/open-iconic/png/media-stop-8x.png
deleted file mode 100644
index 5d76a52..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-stop-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/media-stop.png b/assets/static/fonts/open-iconic/png/media-stop.png
deleted file mode 100644
index 7de1f4c..0000000
Binary files a/assets/static/fonts/open-iconic/png/media-stop.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/medical-cross-2x.png b/assets/static/fonts/open-iconic/png/medical-cross-2x.png
deleted file mode 100644
index 24193be..0000000
Binary files a/assets/static/fonts/open-iconic/png/medical-cross-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/medical-cross-3x.png b/assets/static/fonts/open-iconic/png/medical-cross-3x.png
deleted file mode 100644
index 2cc0732..0000000
Binary files a/assets/static/fonts/open-iconic/png/medical-cross-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/medical-cross-4x.png b/assets/static/fonts/open-iconic/png/medical-cross-4x.png
deleted file mode 100644
index d50065c..0000000
Binary files a/assets/static/fonts/open-iconic/png/medical-cross-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/medical-cross-6x.png b/assets/static/fonts/open-iconic/png/medical-cross-6x.png
deleted file mode 100644
index 5c19a5a..0000000
Binary files a/assets/static/fonts/open-iconic/png/medical-cross-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/medical-cross-8x.png b/assets/static/fonts/open-iconic/png/medical-cross-8x.png
deleted file mode 100644
index 909b733..0000000
Binary files a/assets/static/fonts/open-iconic/png/medical-cross-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/medical-cross.png b/assets/static/fonts/open-iconic/png/medical-cross.png
deleted file mode 100644
index 3ce95b1..0000000
Binary files a/assets/static/fonts/open-iconic/png/medical-cross.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/menu-2x.png b/assets/static/fonts/open-iconic/png/menu-2x.png
deleted file mode 100644
index 7104b65..0000000
Binary files a/assets/static/fonts/open-iconic/png/menu-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/menu-3x.png b/assets/static/fonts/open-iconic/png/menu-3x.png
deleted file mode 100644
index 0980e8e..0000000
Binary files a/assets/static/fonts/open-iconic/png/menu-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/menu-4x.png b/assets/static/fonts/open-iconic/png/menu-4x.png
deleted file mode 100644
index 6de4e43..0000000
Binary files a/assets/static/fonts/open-iconic/png/menu-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/menu-6x.png b/assets/static/fonts/open-iconic/png/menu-6x.png
deleted file mode 100644
index 6b146ff..0000000
Binary files a/assets/static/fonts/open-iconic/png/menu-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/menu-8x.png b/assets/static/fonts/open-iconic/png/menu-8x.png
deleted file mode 100644
index 717221c..0000000
Binary files a/assets/static/fonts/open-iconic/png/menu-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/menu.png b/assets/static/fonts/open-iconic/png/menu.png
deleted file mode 100644
index 2cbedf6..0000000
Binary files a/assets/static/fonts/open-iconic/png/menu.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/microphone-2x.png b/assets/static/fonts/open-iconic/png/microphone-2x.png
deleted file mode 100644
index 7dc94c6..0000000
Binary files a/assets/static/fonts/open-iconic/png/microphone-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/microphone-3x.png b/assets/static/fonts/open-iconic/png/microphone-3x.png
deleted file mode 100644
index 73963f2..0000000
Binary files a/assets/static/fonts/open-iconic/png/microphone-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/microphone-4x.png b/assets/static/fonts/open-iconic/png/microphone-4x.png
deleted file mode 100644
index c0df974..0000000
Binary files a/assets/static/fonts/open-iconic/png/microphone-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/microphone-6x.png b/assets/static/fonts/open-iconic/png/microphone-6x.png
deleted file mode 100644
index 7a6fea1..0000000
Binary files a/assets/static/fonts/open-iconic/png/microphone-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/microphone-8x.png b/assets/static/fonts/open-iconic/png/microphone-8x.png
deleted file mode 100644
index f0eb472..0000000
Binary files a/assets/static/fonts/open-iconic/png/microphone-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/microphone.png b/assets/static/fonts/open-iconic/png/microphone.png
deleted file mode 100644
index 70822fa..0000000
Binary files a/assets/static/fonts/open-iconic/png/microphone.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/minus-2x.png b/assets/static/fonts/open-iconic/png/minus-2x.png
deleted file mode 100644
index 0ec8087..0000000
Binary files a/assets/static/fonts/open-iconic/png/minus-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/minus-3x.png b/assets/static/fonts/open-iconic/png/minus-3x.png
deleted file mode 100644
index 1d92137..0000000
Binary files a/assets/static/fonts/open-iconic/png/minus-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/minus-4x.png b/assets/static/fonts/open-iconic/png/minus-4x.png
deleted file mode 100644
index 785adf5..0000000
Binary files a/assets/static/fonts/open-iconic/png/minus-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/minus-6x.png b/assets/static/fonts/open-iconic/png/minus-6x.png
deleted file mode 100644
index 3ca8d0b..0000000
Binary files a/assets/static/fonts/open-iconic/png/minus-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/minus-8x.png b/assets/static/fonts/open-iconic/png/minus-8x.png
deleted file mode 100644
index 64f2c5f..0000000
Binary files a/assets/static/fonts/open-iconic/png/minus-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/minus.png b/assets/static/fonts/open-iconic/png/minus.png
deleted file mode 100644
index e10ee05..0000000
Binary files a/assets/static/fonts/open-iconic/png/minus.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/monitor-2x.png b/assets/static/fonts/open-iconic/png/monitor-2x.png
deleted file mode 100644
index 47cdfc1..0000000
Binary files a/assets/static/fonts/open-iconic/png/monitor-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/monitor-3x.png b/assets/static/fonts/open-iconic/png/monitor-3x.png
deleted file mode 100644
index 7f27810..0000000
Binary files a/assets/static/fonts/open-iconic/png/monitor-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/monitor-4x.png b/assets/static/fonts/open-iconic/png/monitor-4x.png
deleted file mode 100644
index d6687be..0000000
Binary files a/assets/static/fonts/open-iconic/png/monitor-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/monitor-6x.png b/assets/static/fonts/open-iconic/png/monitor-6x.png
deleted file mode 100644
index a67a026..0000000
Binary files a/assets/static/fonts/open-iconic/png/monitor-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/monitor-8x.png b/assets/static/fonts/open-iconic/png/monitor-8x.png
deleted file mode 100644
index 2be901c..0000000
Binary files a/assets/static/fonts/open-iconic/png/monitor-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/monitor.png b/assets/static/fonts/open-iconic/png/monitor.png
deleted file mode 100644
index 6d3a70f..0000000
Binary files a/assets/static/fonts/open-iconic/png/monitor.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/moon-2x.png b/assets/static/fonts/open-iconic/png/moon-2x.png
deleted file mode 100644
index 2b86f40..0000000
Binary files a/assets/static/fonts/open-iconic/png/moon-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/moon-3x.png b/assets/static/fonts/open-iconic/png/moon-3x.png
deleted file mode 100644
index 160b1ae..0000000
Binary files a/assets/static/fonts/open-iconic/png/moon-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/moon-4x.png b/assets/static/fonts/open-iconic/png/moon-4x.png
deleted file mode 100644
index c0f291a..0000000
Binary files a/assets/static/fonts/open-iconic/png/moon-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/moon-6x.png b/assets/static/fonts/open-iconic/png/moon-6x.png
deleted file mode 100644
index 49de690..0000000
Binary files a/assets/static/fonts/open-iconic/png/moon-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/moon-8x.png b/assets/static/fonts/open-iconic/png/moon-8x.png
deleted file mode 100644
index b40de76..0000000
Binary files a/assets/static/fonts/open-iconic/png/moon-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/moon.png b/assets/static/fonts/open-iconic/png/moon.png
deleted file mode 100644
index af1df7e..0000000
Binary files a/assets/static/fonts/open-iconic/png/moon.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/move-2x.png b/assets/static/fonts/open-iconic/png/move-2x.png
deleted file mode 100644
index 5ab75d5..0000000
Binary files a/assets/static/fonts/open-iconic/png/move-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/move-3x.png b/assets/static/fonts/open-iconic/png/move-3x.png
deleted file mode 100644
index fb63c7a..0000000
Binary files a/assets/static/fonts/open-iconic/png/move-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/move-4x.png b/assets/static/fonts/open-iconic/png/move-4x.png
deleted file mode 100644
index 9bc0019..0000000
Binary files a/assets/static/fonts/open-iconic/png/move-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/move-6x.png b/assets/static/fonts/open-iconic/png/move-6x.png
deleted file mode 100644
index 151b804..0000000
Binary files a/assets/static/fonts/open-iconic/png/move-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/move-8x.png b/assets/static/fonts/open-iconic/png/move-8x.png
deleted file mode 100644
index c1cc4bf..0000000
Binary files a/assets/static/fonts/open-iconic/png/move-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/move.png b/assets/static/fonts/open-iconic/png/move.png
deleted file mode 100644
index b25a953..0000000
Binary files a/assets/static/fonts/open-iconic/png/move.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/musical-note-2x.png b/assets/static/fonts/open-iconic/png/musical-note-2x.png
deleted file mode 100644
index a342240..0000000
Binary files a/assets/static/fonts/open-iconic/png/musical-note-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/musical-note-3x.png b/assets/static/fonts/open-iconic/png/musical-note-3x.png
deleted file mode 100644
index 8594d50..0000000
Binary files a/assets/static/fonts/open-iconic/png/musical-note-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/musical-note-4x.png b/assets/static/fonts/open-iconic/png/musical-note-4x.png
deleted file mode 100644
index a4350f4..0000000
Binary files a/assets/static/fonts/open-iconic/png/musical-note-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/musical-note-6x.png b/assets/static/fonts/open-iconic/png/musical-note-6x.png
deleted file mode 100644
index 768d8ee..0000000
Binary files a/assets/static/fonts/open-iconic/png/musical-note-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/musical-note-8x.png b/assets/static/fonts/open-iconic/png/musical-note-8x.png
deleted file mode 100644
index 85ae198..0000000
Binary files a/assets/static/fonts/open-iconic/png/musical-note-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/musical-note.png b/assets/static/fonts/open-iconic/png/musical-note.png
deleted file mode 100644
index d410ef2..0000000
Binary files a/assets/static/fonts/open-iconic/png/musical-note.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/paperclip-2x.png b/assets/static/fonts/open-iconic/png/paperclip-2x.png
deleted file mode 100644
index b60f07d..0000000
Binary files a/assets/static/fonts/open-iconic/png/paperclip-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/paperclip-3x.png b/assets/static/fonts/open-iconic/png/paperclip-3x.png
deleted file mode 100644
index 0bb10b4..0000000
Binary files a/assets/static/fonts/open-iconic/png/paperclip-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/paperclip-4x.png b/assets/static/fonts/open-iconic/png/paperclip-4x.png
deleted file mode 100644
index d22c79a..0000000
Binary files a/assets/static/fonts/open-iconic/png/paperclip-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/paperclip-6x.png b/assets/static/fonts/open-iconic/png/paperclip-6x.png
deleted file mode 100644
index dca6a09..0000000
Binary files a/assets/static/fonts/open-iconic/png/paperclip-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/paperclip-8x.png b/assets/static/fonts/open-iconic/png/paperclip-8x.png
deleted file mode 100644
index 74b50a2..0000000
Binary files a/assets/static/fonts/open-iconic/png/paperclip-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/paperclip.png b/assets/static/fonts/open-iconic/png/paperclip.png
deleted file mode 100644
index 97b6906..0000000
Binary files a/assets/static/fonts/open-iconic/png/paperclip.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/pencil-2x.png b/assets/static/fonts/open-iconic/png/pencil-2x.png
deleted file mode 100644
index 88971f0..0000000
Binary files a/assets/static/fonts/open-iconic/png/pencil-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/pencil-3x.png b/assets/static/fonts/open-iconic/png/pencil-3x.png
deleted file mode 100644
index f14464d..0000000
Binary files a/assets/static/fonts/open-iconic/png/pencil-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/pencil-4x.png b/assets/static/fonts/open-iconic/png/pencil-4x.png
deleted file mode 100644
index ead8536..0000000
Binary files a/assets/static/fonts/open-iconic/png/pencil-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/pencil-6x.png b/assets/static/fonts/open-iconic/png/pencil-6x.png
deleted file mode 100644
index 81ea986..0000000
Binary files a/assets/static/fonts/open-iconic/png/pencil-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/pencil-8x.png b/assets/static/fonts/open-iconic/png/pencil-8x.png
deleted file mode 100644
index b3a1599..0000000
Binary files a/assets/static/fonts/open-iconic/png/pencil-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/pencil.png b/assets/static/fonts/open-iconic/png/pencil.png
deleted file mode 100644
index ed3cbfd..0000000
Binary files a/assets/static/fonts/open-iconic/png/pencil.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/people-2x.png b/assets/static/fonts/open-iconic/png/people-2x.png
deleted file mode 100644
index e186bec..0000000
Binary files a/assets/static/fonts/open-iconic/png/people-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/people-3x.png b/assets/static/fonts/open-iconic/png/people-3x.png
deleted file mode 100644
index 4406f67..0000000
Binary files a/assets/static/fonts/open-iconic/png/people-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/people-4x.png b/assets/static/fonts/open-iconic/png/people-4x.png
deleted file mode 100644
index 5decec2..0000000
Binary files a/assets/static/fonts/open-iconic/png/people-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/people-6x.png b/assets/static/fonts/open-iconic/png/people-6x.png
deleted file mode 100644
index 8b4ce8c..0000000
Binary files a/assets/static/fonts/open-iconic/png/people-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/people-8x.png b/assets/static/fonts/open-iconic/png/people-8x.png
deleted file mode 100644
index ebdafe2..0000000
Binary files a/assets/static/fonts/open-iconic/png/people-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/people.png b/assets/static/fonts/open-iconic/png/people.png
deleted file mode 100644
index 8bcbac8..0000000
Binary files a/assets/static/fonts/open-iconic/png/people.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/person-2x.png b/assets/static/fonts/open-iconic/png/person-2x.png
deleted file mode 100644
index d5e8fce..0000000
Binary files a/assets/static/fonts/open-iconic/png/person-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/person-3x.png b/assets/static/fonts/open-iconic/png/person-3x.png
deleted file mode 100644
index 188c177..0000000
Binary files a/assets/static/fonts/open-iconic/png/person-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/person-4x.png b/assets/static/fonts/open-iconic/png/person-4x.png
deleted file mode 100644
index 3c12ee2..0000000
Binary files a/assets/static/fonts/open-iconic/png/person-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/person-6x.png b/assets/static/fonts/open-iconic/png/person-6x.png
deleted file mode 100644
index 8eab7bc..0000000
Binary files a/assets/static/fonts/open-iconic/png/person-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/person-8x.png b/assets/static/fonts/open-iconic/png/person-8x.png
deleted file mode 100644
index 0d21780..0000000
Binary files a/assets/static/fonts/open-iconic/png/person-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/person.png b/assets/static/fonts/open-iconic/png/person.png
deleted file mode 100644
index a873aef..0000000
Binary files a/assets/static/fonts/open-iconic/png/person.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/phone-2x.png b/assets/static/fonts/open-iconic/png/phone-2x.png
deleted file mode 100644
index 57caca1..0000000
Binary files a/assets/static/fonts/open-iconic/png/phone-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/phone-3x.png b/assets/static/fonts/open-iconic/png/phone-3x.png
deleted file mode 100644
index 1c4e087..0000000
Binary files a/assets/static/fonts/open-iconic/png/phone-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/phone-4x.png b/assets/static/fonts/open-iconic/png/phone-4x.png
deleted file mode 100644
index 3a64be9..0000000
Binary files a/assets/static/fonts/open-iconic/png/phone-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/phone-6x.png b/assets/static/fonts/open-iconic/png/phone-6x.png
deleted file mode 100644
index 1c81130..0000000
Binary files a/assets/static/fonts/open-iconic/png/phone-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/phone-8x.png b/assets/static/fonts/open-iconic/png/phone-8x.png
deleted file mode 100644
index 19098e5..0000000
Binary files a/assets/static/fonts/open-iconic/png/phone-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/phone.png b/assets/static/fonts/open-iconic/png/phone.png
deleted file mode 100644
index c6366d9..0000000
Binary files a/assets/static/fonts/open-iconic/png/phone.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/pie-chart-2x.png b/assets/static/fonts/open-iconic/png/pie-chart-2x.png
deleted file mode 100644
index 07c5db6..0000000
Binary files a/assets/static/fonts/open-iconic/png/pie-chart-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/pie-chart-3x.png b/assets/static/fonts/open-iconic/png/pie-chart-3x.png
deleted file mode 100644
index 0c2c94a..0000000
Binary files a/assets/static/fonts/open-iconic/png/pie-chart-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/pie-chart-4x.png b/assets/static/fonts/open-iconic/png/pie-chart-4x.png
deleted file mode 100644
index 0d2d0ad..0000000
Binary files a/assets/static/fonts/open-iconic/png/pie-chart-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/pie-chart-6x.png b/assets/static/fonts/open-iconic/png/pie-chart-6x.png
deleted file mode 100644
index 9829233..0000000
Binary files a/assets/static/fonts/open-iconic/png/pie-chart-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/pie-chart-8x.png b/assets/static/fonts/open-iconic/png/pie-chart-8x.png
deleted file mode 100644
index eb63e77..0000000
Binary files a/assets/static/fonts/open-iconic/png/pie-chart-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/pie-chart.png b/assets/static/fonts/open-iconic/png/pie-chart.png
deleted file mode 100644
index eb45098..0000000
Binary files a/assets/static/fonts/open-iconic/png/pie-chart.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/pin-2x.png b/assets/static/fonts/open-iconic/png/pin-2x.png
deleted file mode 100644
index 2814c8d..0000000
Binary files a/assets/static/fonts/open-iconic/png/pin-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/pin-3x.png b/assets/static/fonts/open-iconic/png/pin-3x.png
deleted file mode 100644
index 08bfeb9..0000000
Binary files a/assets/static/fonts/open-iconic/png/pin-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/pin-4x.png b/assets/static/fonts/open-iconic/png/pin-4x.png
deleted file mode 100644
index c26f78e..0000000
Binary files a/assets/static/fonts/open-iconic/png/pin-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/pin-6x.png b/assets/static/fonts/open-iconic/png/pin-6x.png
deleted file mode 100644
index c5721c3..0000000
Binary files a/assets/static/fonts/open-iconic/png/pin-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/pin-8x.png b/assets/static/fonts/open-iconic/png/pin-8x.png
deleted file mode 100644
index 8ee302f..0000000
Binary files a/assets/static/fonts/open-iconic/png/pin-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/pin.png b/assets/static/fonts/open-iconic/png/pin.png
deleted file mode 100644
index c3aad71..0000000
Binary files a/assets/static/fonts/open-iconic/png/pin.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/play-circle-2x.png b/assets/static/fonts/open-iconic/png/play-circle-2x.png
deleted file mode 100644
index 51d5aeb..0000000
Binary files a/assets/static/fonts/open-iconic/png/play-circle-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/play-circle-3x.png b/assets/static/fonts/open-iconic/png/play-circle-3x.png
deleted file mode 100644
index 42e13f4..0000000
Binary files a/assets/static/fonts/open-iconic/png/play-circle-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/play-circle-4x.png b/assets/static/fonts/open-iconic/png/play-circle-4x.png
deleted file mode 100644
index 48f26e2..0000000
Binary files a/assets/static/fonts/open-iconic/png/play-circle-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/play-circle-6x.png b/assets/static/fonts/open-iconic/png/play-circle-6x.png
deleted file mode 100644
index 5eb5e5e..0000000
Binary files a/assets/static/fonts/open-iconic/png/play-circle-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/play-circle-8x.png b/assets/static/fonts/open-iconic/png/play-circle-8x.png
deleted file mode 100644
index ff8ec2f..0000000
Binary files a/assets/static/fonts/open-iconic/png/play-circle-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/play-circle.png b/assets/static/fonts/open-iconic/png/play-circle.png
deleted file mode 100644
index eb7bb51..0000000
Binary files a/assets/static/fonts/open-iconic/png/play-circle.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/plus-2x.png b/assets/static/fonts/open-iconic/png/plus-2x.png
deleted file mode 100644
index 667b035..0000000
Binary files a/assets/static/fonts/open-iconic/png/plus-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/plus-3x.png b/assets/static/fonts/open-iconic/png/plus-3x.png
deleted file mode 100644
index 21c45ed..0000000
Binary files a/assets/static/fonts/open-iconic/png/plus-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/plus-4x.png b/assets/static/fonts/open-iconic/png/plus-4x.png
deleted file mode 100644
index 23967d4..0000000
Binary files a/assets/static/fonts/open-iconic/png/plus-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/plus-6x.png b/assets/static/fonts/open-iconic/png/plus-6x.png
deleted file mode 100644
index 0a343a1..0000000
Binary files a/assets/static/fonts/open-iconic/png/plus-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/plus-8x.png b/assets/static/fonts/open-iconic/png/plus-8x.png
deleted file mode 100644
index f58fed7..0000000
Binary files a/assets/static/fonts/open-iconic/png/plus-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/plus.png b/assets/static/fonts/open-iconic/png/plus.png
deleted file mode 100644
index 1088eb9..0000000
Binary files a/assets/static/fonts/open-iconic/png/plus.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/power-standby-2x.png b/assets/static/fonts/open-iconic/png/power-standby-2x.png
deleted file mode 100644
index 10ed7da..0000000
Binary files a/assets/static/fonts/open-iconic/png/power-standby-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/power-standby-3x.png b/assets/static/fonts/open-iconic/png/power-standby-3x.png
deleted file mode 100644
index e7e9177..0000000
Binary files a/assets/static/fonts/open-iconic/png/power-standby-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/power-standby-4x.png b/assets/static/fonts/open-iconic/png/power-standby-4x.png
deleted file mode 100644
index f49d8d0..0000000
Binary files a/assets/static/fonts/open-iconic/png/power-standby-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/power-standby-6x.png b/assets/static/fonts/open-iconic/png/power-standby-6x.png
deleted file mode 100644
index 1533b4d..0000000
Binary files a/assets/static/fonts/open-iconic/png/power-standby-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/power-standby-8x.png b/assets/static/fonts/open-iconic/png/power-standby-8x.png
deleted file mode 100644
index ac7eb06..0000000
Binary files a/assets/static/fonts/open-iconic/png/power-standby-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/power-standby.png b/assets/static/fonts/open-iconic/png/power-standby.png
deleted file mode 100644
index 03965ad..0000000
Binary files a/assets/static/fonts/open-iconic/png/power-standby.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/print-2x.png b/assets/static/fonts/open-iconic/png/print-2x.png
deleted file mode 100644
index 9f3525f..0000000
Binary files a/assets/static/fonts/open-iconic/png/print-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/print-3x.png b/assets/static/fonts/open-iconic/png/print-3x.png
deleted file mode 100644
index ad29bc5..0000000
Binary files a/assets/static/fonts/open-iconic/png/print-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/print-4x.png b/assets/static/fonts/open-iconic/png/print-4x.png
deleted file mode 100644
index 774bcc3..0000000
Binary files a/assets/static/fonts/open-iconic/png/print-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/print-6x.png b/assets/static/fonts/open-iconic/png/print-6x.png
deleted file mode 100644
index 22df5a9..0000000
Binary files a/assets/static/fonts/open-iconic/png/print-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/print-8x.png b/assets/static/fonts/open-iconic/png/print-8x.png
deleted file mode 100644
index 0570040..0000000
Binary files a/assets/static/fonts/open-iconic/png/print-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/print.png b/assets/static/fonts/open-iconic/png/print.png
deleted file mode 100644
index e3a1e6e..0000000
Binary files a/assets/static/fonts/open-iconic/png/print.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/project-2x.png b/assets/static/fonts/open-iconic/png/project-2x.png
deleted file mode 100644
index bf512b4..0000000
Binary files a/assets/static/fonts/open-iconic/png/project-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/project-3x.png b/assets/static/fonts/open-iconic/png/project-3x.png
deleted file mode 100644
index e9b5d0c..0000000
Binary files a/assets/static/fonts/open-iconic/png/project-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/project-4x.png b/assets/static/fonts/open-iconic/png/project-4x.png
deleted file mode 100644
index 812cf18..0000000
Binary files a/assets/static/fonts/open-iconic/png/project-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/project-6x.png b/assets/static/fonts/open-iconic/png/project-6x.png
deleted file mode 100644
index 76976b6..0000000
Binary files a/assets/static/fonts/open-iconic/png/project-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/project-8x.png b/assets/static/fonts/open-iconic/png/project-8x.png
deleted file mode 100644
index 2db3a5d..0000000
Binary files a/assets/static/fonts/open-iconic/png/project-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/project.png b/assets/static/fonts/open-iconic/png/project.png
deleted file mode 100644
index 227bbaa..0000000
Binary files a/assets/static/fonts/open-iconic/png/project.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/pulse-2x.png b/assets/static/fonts/open-iconic/png/pulse-2x.png
deleted file mode 100644
index 1ae1055..0000000
Binary files a/assets/static/fonts/open-iconic/png/pulse-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/pulse-3x.png b/assets/static/fonts/open-iconic/png/pulse-3x.png
deleted file mode 100644
index d5ae434..0000000
Binary files a/assets/static/fonts/open-iconic/png/pulse-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/pulse-4x.png b/assets/static/fonts/open-iconic/png/pulse-4x.png
deleted file mode 100644
index ccd5a7c..0000000
Binary files a/assets/static/fonts/open-iconic/png/pulse-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/pulse-6x.png b/assets/static/fonts/open-iconic/png/pulse-6x.png
deleted file mode 100644
index a7c67b7..0000000
Binary files a/assets/static/fonts/open-iconic/png/pulse-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/pulse-8x.png b/assets/static/fonts/open-iconic/png/pulse-8x.png
deleted file mode 100644
index 5705362..0000000
Binary files a/assets/static/fonts/open-iconic/png/pulse-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/pulse.png b/assets/static/fonts/open-iconic/png/pulse.png
deleted file mode 100644
index 6aee55a..0000000
Binary files a/assets/static/fonts/open-iconic/png/pulse.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/puzzle-piece-2x.png b/assets/static/fonts/open-iconic/png/puzzle-piece-2x.png
deleted file mode 100644
index 6279207..0000000
Binary files a/assets/static/fonts/open-iconic/png/puzzle-piece-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/puzzle-piece-3x.png b/assets/static/fonts/open-iconic/png/puzzle-piece-3x.png
deleted file mode 100644
index b01a9c8..0000000
Binary files a/assets/static/fonts/open-iconic/png/puzzle-piece-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/puzzle-piece-4x.png b/assets/static/fonts/open-iconic/png/puzzle-piece-4x.png
deleted file mode 100644
index d6461b2..0000000
Binary files a/assets/static/fonts/open-iconic/png/puzzle-piece-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/puzzle-piece-6x.png b/assets/static/fonts/open-iconic/png/puzzle-piece-6x.png
deleted file mode 100644
index d7f2833..0000000
Binary files a/assets/static/fonts/open-iconic/png/puzzle-piece-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/puzzle-piece-8x.png b/assets/static/fonts/open-iconic/png/puzzle-piece-8x.png
deleted file mode 100644
index be6d6f0..0000000
Binary files a/assets/static/fonts/open-iconic/png/puzzle-piece-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/puzzle-piece.png b/assets/static/fonts/open-iconic/png/puzzle-piece.png
deleted file mode 100644
index 2ae1782..0000000
Binary files a/assets/static/fonts/open-iconic/png/puzzle-piece.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/question-mark-2x.png b/assets/static/fonts/open-iconic/png/question-mark-2x.png
deleted file mode 100644
index 264cc89..0000000
Binary files a/assets/static/fonts/open-iconic/png/question-mark-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/question-mark-3x.png b/assets/static/fonts/open-iconic/png/question-mark-3x.png
deleted file mode 100644
index 29e6568..0000000
Binary files a/assets/static/fonts/open-iconic/png/question-mark-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/question-mark-4x.png b/assets/static/fonts/open-iconic/png/question-mark-4x.png
deleted file mode 100644
index 92c49b4..0000000
Binary files a/assets/static/fonts/open-iconic/png/question-mark-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/question-mark-6x.png b/assets/static/fonts/open-iconic/png/question-mark-6x.png
deleted file mode 100644
index 5a696fa..0000000
Binary files a/assets/static/fonts/open-iconic/png/question-mark-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/question-mark-8x.png b/assets/static/fonts/open-iconic/png/question-mark-8x.png
deleted file mode 100644
index 6b384e0..0000000
Binary files a/assets/static/fonts/open-iconic/png/question-mark-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/question-mark.png b/assets/static/fonts/open-iconic/png/question-mark.png
deleted file mode 100644
index 86cea63..0000000
Binary files a/assets/static/fonts/open-iconic/png/question-mark.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/rain-2x.png b/assets/static/fonts/open-iconic/png/rain-2x.png
deleted file mode 100644
index b618140..0000000
Binary files a/assets/static/fonts/open-iconic/png/rain-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/rain-3x.png b/assets/static/fonts/open-iconic/png/rain-3x.png
deleted file mode 100644
index aa6a5e0..0000000
Binary files a/assets/static/fonts/open-iconic/png/rain-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/rain-4x.png b/assets/static/fonts/open-iconic/png/rain-4x.png
deleted file mode 100644
index b9214b9..0000000
Binary files a/assets/static/fonts/open-iconic/png/rain-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/rain-6x.png b/assets/static/fonts/open-iconic/png/rain-6x.png
deleted file mode 100644
index 437de50..0000000
Binary files a/assets/static/fonts/open-iconic/png/rain-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/rain-8x.png b/assets/static/fonts/open-iconic/png/rain-8x.png
deleted file mode 100644
index 10c0dbf..0000000
Binary files a/assets/static/fonts/open-iconic/png/rain-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/rain.png b/assets/static/fonts/open-iconic/png/rain.png
deleted file mode 100644
index ed0dbdf..0000000
Binary files a/assets/static/fonts/open-iconic/png/rain.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/random-2x.png b/assets/static/fonts/open-iconic/png/random-2x.png
deleted file mode 100644
index 8521b19..0000000
Binary files a/assets/static/fonts/open-iconic/png/random-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/random-3x.png b/assets/static/fonts/open-iconic/png/random-3x.png
deleted file mode 100644
index a3a2547..0000000
Binary files a/assets/static/fonts/open-iconic/png/random-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/random-4x.png b/assets/static/fonts/open-iconic/png/random-4x.png
deleted file mode 100644
index 52b2375..0000000
Binary files a/assets/static/fonts/open-iconic/png/random-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/random-6x.png b/assets/static/fonts/open-iconic/png/random-6x.png
deleted file mode 100644
index add77a7..0000000
Binary files a/assets/static/fonts/open-iconic/png/random-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/random-8x.png b/assets/static/fonts/open-iconic/png/random-8x.png
deleted file mode 100644
index 2350985..0000000
Binary files a/assets/static/fonts/open-iconic/png/random-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/random.png b/assets/static/fonts/open-iconic/png/random.png
deleted file mode 100644
index 792d5c1..0000000
Binary files a/assets/static/fonts/open-iconic/png/random.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/reload-2x.png b/assets/static/fonts/open-iconic/png/reload-2x.png
deleted file mode 100644
index 2a79f16..0000000
Binary files a/assets/static/fonts/open-iconic/png/reload-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/reload-3x.png b/assets/static/fonts/open-iconic/png/reload-3x.png
deleted file mode 100644
index 55c0d01..0000000
Binary files a/assets/static/fonts/open-iconic/png/reload-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/reload-4x.png b/assets/static/fonts/open-iconic/png/reload-4x.png
deleted file mode 100644
index f7b09c0..0000000
Binary files a/assets/static/fonts/open-iconic/png/reload-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/reload-6x.png b/assets/static/fonts/open-iconic/png/reload-6x.png
deleted file mode 100644
index e736d55..0000000
Binary files a/assets/static/fonts/open-iconic/png/reload-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/reload-8x.png b/assets/static/fonts/open-iconic/png/reload-8x.png
deleted file mode 100644
index 05dd17b..0000000
Binary files a/assets/static/fonts/open-iconic/png/reload-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/reload.png b/assets/static/fonts/open-iconic/png/reload.png
deleted file mode 100644
index 1c14ac2..0000000
Binary files a/assets/static/fonts/open-iconic/png/reload.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/resize-both-2x.png b/assets/static/fonts/open-iconic/png/resize-both-2x.png
deleted file mode 100644
index 6d4ff02..0000000
Binary files a/assets/static/fonts/open-iconic/png/resize-both-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/resize-both-3x.png b/assets/static/fonts/open-iconic/png/resize-both-3x.png
deleted file mode 100644
index 804b18e..0000000
Binary files a/assets/static/fonts/open-iconic/png/resize-both-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/resize-both-4x.png b/assets/static/fonts/open-iconic/png/resize-both-4x.png
deleted file mode 100644
index d4d69fc..0000000
Binary files a/assets/static/fonts/open-iconic/png/resize-both-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/resize-both-6x.png b/assets/static/fonts/open-iconic/png/resize-both-6x.png
deleted file mode 100644
index 63f7ecd..0000000
Binary files a/assets/static/fonts/open-iconic/png/resize-both-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/resize-both-8x.png b/assets/static/fonts/open-iconic/png/resize-both-8x.png
deleted file mode 100644
index 71f2e33..0000000
Binary files a/assets/static/fonts/open-iconic/png/resize-both-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/resize-both.png b/assets/static/fonts/open-iconic/png/resize-both.png
deleted file mode 100644
index b99f63a..0000000
Binary files a/assets/static/fonts/open-iconic/png/resize-both.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/resize-height-2x.png b/assets/static/fonts/open-iconic/png/resize-height-2x.png
deleted file mode 100644
index de458be..0000000
Binary files a/assets/static/fonts/open-iconic/png/resize-height-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/resize-height-3x.png b/assets/static/fonts/open-iconic/png/resize-height-3x.png
deleted file mode 100644
index 6492d3c..0000000
Binary files a/assets/static/fonts/open-iconic/png/resize-height-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/resize-height-4x.png b/assets/static/fonts/open-iconic/png/resize-height-4x.png
deleted file mode 100644
index 0bd140c..0000000
Binary files a/assets/static/fonts/open-iconic/png/resize-height-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/resize-height-6x.png b/assets/static/fonts/open-iconic/png/resize-height-6x.png
deleted file mode 100644
index 1ee0460..0000000
Binary files a/assets/static/fonts/open-iconic/png/resize-height-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/resize-height-8x.png b/assets/static/fonts/open-iconic/png/resize-height-8x.png
deleted file mode 100644
index f041fe0..0000000
Binary files a/assets/static/fonts/open-iconic/png/resize-height-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/resize-height.png b/assets/static/fonts/open-iconic/png/resize-height.png
deleted file mode 100644
index 9409a78..0000000
Binary files a/assets/static/fonts/open-iconic/png/resize-height.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/resize-width-2x.png b/assets/static/fonts/open-iconic/png/resize-width-2x.png
deleted file mode 100644
index 5443483..0000000
Binary files a/assets/static/fonts/open-iconic/png/resize-width-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/resize-width-3x.png b/assets/static/fonts/open-iconic/png/resize-width-3x.png
deleted file mode 100644
index ef245aa..0000000
Binary files a/assets/static/fonts/open-iconic/png/resize-width-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/resize-width-4x.png b/assets/static/fonts/open-iconic/png/resize-width-4x.png
deleted file mode 100644
index 9a45be2..0000000
Binary files a/assets/static/fonts/open-iconic/png/resize-width-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/resize-width-6x.png b/assets/static/fonts/open-iconic/png/resize-width-6x.png
deleted file mode 100644
index 5db70cb..0000000
Binary files a/assets/static/fonts/open-iconic/png/resize-width-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/resize-width-8x.png b/assets/static/fonts/open-iconic/png/resize-width-8x.png
deleted file mode 100644
index 3a06f4d..0000000
Binary files a/assets/static/fonts/open-iconic/png/resize-width-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/resize-width.png b/assets/static/fonts/open-iconic/png/resize-width.png
deleted file mode 100644
index 8e53374..0000000
Binary files a/assets/static/fonts/open-iconic/png/resize-width.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/rss-2x.png b/assets/static/fonts/open-iconic/png/rss-2x.png
deleted file mode 100644
index 335013e..0000000
Binary files a/assets/static/fonts/open-iconic/png/rss-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/rss-3x.png b/assets/static/fonts/open-iconic/png/rss-3x.png
deleted file mode 100644
index 67b673c..0000000
Binary files a/assets/static/fonts/open-iconic/png/rss-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/rss-4x.png b/assets/static/fonts/open-iconic/png/rss-4x.png
deleted file mode 100644
index e873956..0000000
Binary files a/assets/static/fonts/open-iconic/png/rss-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/rss-6x.png b/assets/static/fonts/open-iconic/png/rss-6x.png
deleted file mode 100644
index 8af7b64..0000000
Binary files a/assets/static/fonts/open-iconic/png/rss-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/rss-8x.png b/assets/static/fonts/open-iconic/png/rss-8x.png
deleted file mode 100644
index 0486072..0000000
Binary files a/assets/static/fonts/open-iconic/png/rss-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/rss-alt-2x.png b/assets/static/fonts/open-iconic/png/rss-alt-2x.png
deleted file mode 100644
index 829ec1c..0000000
Binary files a/assets/static/fonts/open-iconic/png/rss-alt-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/rss-alt-3x.png b/assets/static/fonts/open-iconic/png/rss-alt-3x.png
deleted file mode 100644
index bb18c44..0000000
Binary files a/assets/static/fonts/open-iconic/png/rss-alt-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/rss-alt-4x.png b/assets/static/fonts/open-iconic/png/rss-alt-4x.png
deleted file mode 100644
index 58799a5..0000000
Binary files a/assets/static/fonts/open-iconic/png/rss-alt-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/rss-alt-6x.png b/assets/static/fonts/open-iconic/png/rss-alt-6x.png
deleted file mode 100644
index ae0953c..0000000
Binary files a/assets/static/fonts/open-iconic/png/rss-alt-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/rss-alt-8x.png b/assets/static/fonts/open-iconic/png/rss-alt-8x.png
deleted file mode 100644
index 716bfa6..0000000
Binary files a/assets/static/fonts/open-iconic/png/rss-alt-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/rss-alt.png b/assets/static/fonts/open-iconic/png/rss-alt.png
deleted file mode 100644
index 4d44b9c..0000000
Binary files a/assets/static/fonts/open-iconic/png/rss-alt.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/rss.png b/assets/static/fonts/open-iconic/png/rss.png
deleted file mode 100644
index e3da2c1..0000000
Binary files a/assets/static/fonts/open-iconic/png/rss.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/script-2x.png b/assets/static/fonts/open-iconic/png/script-2x.png
deleted file mode 100644
index b3cae8c..0000000
Binary files a/assets/static/fonts/open-iconic/png/script-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/script-3x.png b/assets/static/fonts/open-iconic/png/script-3x.png
deleted file mode 100644
index 96ac10e..0000000
Binary files a/assets/static/fonts/open-iconic/png/script-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/script-4x.png b/assets/static/fonts/open-iconic/png/script-4x.png
deleted file mode 100644
index a633618..0000000
Binary files a/assets/static/fonts/open-iconic/png/script-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/script-6x.png b/assets/static/fonts/open-iconic/png/script-6x.png
deleted file mode 100644
index 25a398d..0000000
Binary files a/assets/static/fonts/open-iconic/png/script-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/script-8x.png b/assets/static/fonts/open-iconic/png/script-8x.png
deleted file mode 100644
index ab6beab..0000000
Binary files a/assets/static/fonts/open-iconic/png/script-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/script.png b/assets/static/fonts/open-iconic/png/script.png
deleted file mode 100644
index 7797093..0000000
Binary files a/assets/static/fonts/open-iconic/png/script.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/share-2x.png b/assets/static/fonts/open-iconic/png/share-2x.png
deleted file mode 100644
index ef5679e..0000000
Binary files a/assets/static/fonts/open-iconic/png/share-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/share-3x.png b/assets/static/fonts/open-iconic/png/share-3x.png
deleted file mode 100644
index f1f4060..0000000
Binary files a/assets/static/fonts/open-iconic/png/share-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/share-4x.png b/assets/static/fonts/open-iconic/png/share-4x.png
deleted file mode 100644
index 34d1498..0000000
Binary files a/assets/static/fonts/open-iconic/png/share-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/share-6x.png b/assets/static/fonts/open-iconic/png/share-6x.png
deleted file mode 100644
index 9cc7a68..0000000
Binary files a/assets/static/fonts/open-iconic/png/share-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/share-8x.png b/assets/static/fonts/open-iconic/png/share-8x.png
deleted file mode 100644
index e3a1d33..0000000
Binary files a/assets/static/fonts/open-iconic/png/share-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/share-boxed-2x.png b/assets/static/fonts/open-iconic/png/share-boxed-2x.png
deleted file mode 100644
index 88df728..0000000
Binary files a/assets/static/fonts/open-iconic/png/share-boxed-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/share-boxed-3x.png b/assets/static/fonts/open-iconic/png/share-boxed-3x.png
deleted file mode 100644
index 41454c3..0000000
Binary files a/assets/static/fonts/open-iconic/png/share-boxed-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/share-boxed-4x.png b/assets/static/fonts/open-iconic/png/share-boxed-4x.png
deleted file mode 100644
index c5a06ba..0000000
Binary files a/assets/static/fonts/open-iconic/png/share-boxed-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/share-boxed-6x.png b/assets/static/fonts/open-iconic/png/share-boxed-6x.png
deleted file mode 100644
index 12f7b81..0000000
Binary files a/assets/static/fonts/open-iconic/png/share-boxed-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/share-boxed-8x.png b/assets/static/fonts/open-iconic/png/share-boxed-8x.png
deleted file mode 100644
index e92a036..0000000
Binary files a/assets/static/fonts/open-iconic/png/share-boxed-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/share-boxed.png b/assets/static/fonts/open-iconic/png/share-boxed.png
deleted file mode 100644
index cf7bf56..0000000
Binary files a/assets/static/fonts/open-iconic/png/share-boxed.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/share.png b/assets/static/fonts/open-iconic/png/share.png
deleted file mode 100644
index 262ae6f..0000000
Binary files a/assets/static/fonts/open-iconic/png/share.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/shield-2x.png b/assets/static/fonts/open-iconic/png/shield-2x.png
deleted file mode 100644
index dab3671..0000000
Binary files a/assets/static/fonts/open-iconic/png/shield-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/shield-3x.png b/assets/static/fonts/open-iconic/png/shield-3x.png
deleted file mode 100644
index d44eeb3..0000000
Binary files a/assets/static/fonts/open-iconic/png/shield-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/shield-4x.png b/assets/static/fonts/open-iconic/png/shield-4x.png
deleted file mode 100644
index f7b3584..0000000
Binary files a/assets/static/fonts/open-iconic/png/shield-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/shield-6x.png b/assets/static/fonts/open-iconic/png/shield-6x.png
deleted file mode 100644
index 78b0f1d..0000000
Binary files a/assets/static/fonts/open-iconic/png/shield-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/shield-8x.png b/assets/static/fonts/open-iconic/png/shield-8x.png
deleted file mode 100644
index f7dcd80..0000000
Binary files a/assets/static/fonts/open-iconic/png/shield-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/shield.png b/assets/static/fonts/open-iconic/png/shield.png
deleted file mode 100644
index 0795604..0000000
Binary files a/assets/static/fonts/open-iconic/png/shield.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/signal-2x.png b/assets/static/fonts/open-iconic/png/signal-2x.png
deleted file mode 100644
index b836edf..0000000
Binary files a/assets/static/fonts/open-iconic/png/signal-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/signal-3x.png b/assets/static/fonts/open-iconic/png/signal-3x.png
deleted file mode 100644
index a6cd70a..0000000
Binary files a/assets/static/fonts/open-iconic/png/signal-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/signal-4x.png b/assets/static/fonts/open-iconic/png/signal-4x.png
deleted file mode 100644
index 5e627e5..0000000
Binary files a/assets/static/fonts/open-iconic/png/signal-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/signal-6x.png b/assets/static/fonts/open-iconic/png/signal-6x.png
deleted file mode 100644
index d01377c..0000000
Binary files a/assets/static/fonts/open-iconic/png/signal-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/signal-8x.png b/assets/static/fonts/open-iconic/png/signal-8x.png
deleted file mode 100644
index 34b58ab..0000000
Binary files a/assets/static/fonts/open-iconic/png/signal-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/signal.png b/assets/static/fonts/open-iconic/png/signal.png
deleted file mode 100644
index 4c47a64..0000000
Binary files a/assets/static/fonts/open-iconic/png/signal.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/signpost-2x.png b/assets/static/fonts/open-iconic/png/signpost-2x.png
deleted file mode 100644
index c7638e7..0000000
Binary files a/assets/static/fonts/open-iconic/png/signpost-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/signpost-3x.png b/assets/static/fonts/open-iconic/png/signpost-3x.png
deleted file mode 100644
index 258079a..0000000
Binary files a/assets/static/fonts/open-iconic/png/signpost-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/signpost-4x.png b/assets/static/fonts/open-iconic/png/signpost-4x.png
deleted file mode 100644
index 3948711..0000000
Binary files a/assets/static/fonts/open-iconic/png/signpost-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/signpost-6x.png b/assets/static/fonts/open-iconic/png/signpost-6x.png
deleted file mode 100644
index 5b09546..0000000
Binary files a/assets/static/fonts/open-iconic/png/signpost-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/signpost-8x.png b/assets/static/fonts/open-iconic/png/signpost-8x.png
deleted file mode 100644
index 6ec91a6..0000000
Binary files a/assets/static/fonts/open-iconic/png/signpost-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/signpost.png b/assets/static/fonts/open-iconic/png/signpost.png
deleted file mode 100644
index 97a9294..0000000
Binary files a/assets/static/fonts/open-iconic/png/signpost.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/sort-ascending-2x.png b/assets/static/fonts/open-iconic/png/sort-ascending-2x.png
deleted file mode 100644
index c500471..0000000
Binary files a/assets/static/fonts/open-iconic/png/sort-ascending-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/sort-ascending-3x.png b/assets/static/fonts/open-iconic/png/sort-ascending-3x.png
deleted file mode 100644
index 1c094ce..0000000
Binary files a/assets/static/fonts/open-iconic/png/sort-ascending-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/sort-ascending-4x.png b/assets/static/fonts/open-iconic/png/sort-ascending-4x.png
deleted file mode 100644
index 4172b7c..0000000
Binary files a/assets/static/fonts/open-iconic/png/sort-ascending-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/sort-ascending-6x.png b/assets/static/fonts/open-iconic/png/sort-ascending-6x.png
deleted file mode 100644
index 9df9811..0000000
Binary files a/assets/static/fonts/open-iconic/png/sort-ascending-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/sort-ascending-8x.png b/assets/static/fonts/open-iconic/png/sort-ascending-8x.png
deleted file mode 100644
index 8ec9207..0000000
Binary files a/assets/static/fonts/open-iconic/png/sort-ascending-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/sort-ascending.png b/assets/static/fonts/open-iconic/png/sort-ascending.png
deleted file mode 100644
index e156d2f..0000000
Binary files a/assets/static/fonts/open-iconic/png/sort-ascending.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/sort-descending-2x.png b/assets/static/fonts/open-iconic/png/sort-descending-2x.png
deleted file mode 100644
index 7a2333a..0000000
Binary files a/assets/static/fonts/open-iconic/png/sort-descending-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/sort-descending-3x.png b/assets/static/fonts/open-iconic/png/sort-descending-3x.png
deleted file mode 100644
index 4126067..0000000
Binary files a/assets/static/fonts/open-iconic/png/sort-descending-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/sort-descending-4x.png b/assets/static/fonts/open-iconic/png/sort-descending-4x.png
deleted file mode 100644
index c750c58..0000000
Binary files a/assets/static/fonts/open-iconic/png/sort-descending-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/sort-descending-6x.png b/assets/static/fonts/open-iconic/png/sort-descending-6x.png
deleted file mode 100644
index 0d3e123..0000000
Binary files a/assets/static/fonts/open-iconic/png/sort-descending-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/sort-descending-8x.png b/assets/static/fonts/open-iconic/png/sort-descending-8x.png
deleted file mode 100644
index 00d8ae3..0000000
Binary files a/assets/static/fonts/open-iconic/png/sort-descending-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/sort-descending.png b/assets/static/fonts/open-iconic/png/sort-descending.png
deleted file mode 100644
index 4d09b78..0000000
Binary files a/assets/static/fonts/open-iconic/png/sort-descending.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/spreadsheet-2x.png b/assets/static/fonts/open-iconic/png/spreadsheet-2x.png
deleted file mode 100644
index c70071f..0000000
Binary files a/assets/static/fonts/open-iconic/png/spreadsheet-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/spreadsheet-3x.png b/assets/static/fonts/open-iconic/png/spreadsheet-3x.png
deleted file mode 100644
index 97fac3c..0000000
Binary files a/assets/static/fonts/open-iconic/png/spreadsheet-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/spreadsheet-4x.png b/assets/static/fonts/open-iconic/png/spreadsheet-4x.png
deleted file mode 100644
index fa6af8a..0000000
Binary files a/assets/static/fonts/open-iconic/png/spreadsheet-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/spreadsheet-6x.png b/assets/static/fonts/open-iconic/png/spreadsheet-6x.png
deleted file mode 100644
index ddd1386..0000000
Binary files a/assets/static/fonts/open-iconic/png/spreadsheet-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/spreadsheet-8x.png b/assets/static/fonts/open-iconic/png/spreadsheet-8x.png
deleted file mode 100644
index b6a53ac..0000000
Binary files a/assets/static/fonts/open-iconic/png/spreadsheet-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/spreadsheet.png b/assets/static/fonts/open-iconic/png/spreadsheet.png
deleted file mode 100644
index 4794554..0000000
Binary files a/assets/static/fonts/open-iconic/png/spreadsheet.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/star-2x.png b/assets/static/fonts/open-iconic/png/star-2x.png
deleted file mode 100644
index ff75afd..0000000
Binary files a/assets/static/fonts/open-iconic/png/star-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/star-3x.png b/assets/static/fonts/open-iconic/png/star-3x.png
deleted file mode 100644
index af363af..0000000
Binary files a/assets/static/fonts/open-iconic/png/star-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/star-4x.png b/assets/static/fonts/open-iconic/png/star-4x.png
deleted file mode 100644
index 16f7b2d..0000000
Binary files a/assets/static/fonts/open-iconic/png/star-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/star-6x.png b/assets/static/fonts/open-iconic/png/star-6x.png
deleted file mode 100644
index 8e06d7b..0000000
Binary files a/assets/static/fonts/open-iconic/png/star-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/star-8x.png b/assets/static/fonts/open-iconic/png/star-8x.png
deleted file mode 100644
index de4a9b4..0000000
Binary files a/assets/static/fonts/open-iconic/png/star-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/star.png b/assets/static/fonts/open-iconic/png/star.png
deleted file mode 100644
index 2fa28e6..0000000
Binary files a/assets/static/fonts/open-iconic/png/star.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/sun-2x.png b/assets/static/fonts/open-iconic/png/sun-2x.png
deleted file mode 100644
index 9e4f7f7..0000000
Binary files a/assets/static/fonts/open-iconic/png/sun-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/sun-3x.png b/assets/static/fonts/open-iconic/png/sun-3x.png
deleted file mode 100644
index 58df513..0000000
Binary files a/assets/static/fonts/open-iconic/png/sun-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/sun-4x.png b/assets/static/fonts/open-iconic/png/sun-4x.png
deleted file mode 100644
index e76c683..0000000
Binary files a/assets/static/fonts/open-iconic/png/sun-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/sun-6x.png b/assets/static/fonts/open-iconic/png/sun-6x.png
deleted file mode 100644
index 6000576..0000000
Binary files a/assets/static/fonts/open-iconic/png/sun-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/sun-8x.png b/assets/static/fonts/open-iconic/png/sun-8x.png
deleted file mode 100644
index b489760..0000000
Binary files a/assets/static/fonts/open-iconic/png/sun-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/sun.png b/assets/static/fonts/open-iconic/png/sun.png
deleted file mode 100644
index 8dd636c..0000000
Binary files a/assets/static/fonts/open-iconic/png/sun.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/tablet-2x.png b/assets/static/fonts/open-iconic/png/tablet-2x.png
deleted file mode 100644
index 0bb18a1..0000000
Binary files a/assets/static/fonts/open-iconic/png/tablet-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/tablet-3x.png b/assets/static/fonts/open-iconic/png/tablet-3x.png
deleted file mode 100644
index 29a93f6..0000000
Binary files a/assets/static/fonts/open-iconic/png/tablet-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/tablet-4x.png b/assets/static/fonts/open-iconic/png/tablet-4x.png
deleted file mode 100644
index cd2c6df..0000000
Binary files a/assets/static/fonts/open-iconic/png/tablet-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/tablet-6x.png b/assets/static/fonts/open-iconic/png/tablet-6x.png
deleted file mode 100644
index 11630da..0000000
Binary files a/assets/static/fonts/open-iconic/png/tablet-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/tablet-8x.png b/assets/static/fonts/open-iconic/png/tablet-8x.png
deleted file mode 100644
index 4b755ec..0000000
Binary files a/assets/static/fonts/open-iconic/png/tablet-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/tablet.png b/assets/static/fonts/open-iconic/png/tablet.png
deleted file mode 100644
index 2dda041..0000000
Binary files a/assets/static/fonts/open-iconic/png/tablet.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/tag-2x.png b/assets/static/fonts/open-iconic/png/tag-2x.png
deleted file mode 100644
index 676e574..0000000
Binary files a/assets/static/fonts/open-iconic/png/tag-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/tag-3x.png b/assets/static/fonts/open-iconic/png/tag-3x.png
deleted file mode 100644
index de1e4c8..0000000
Binary files a/assets/static/fonts/open-iconic/png/tag-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/tag-4x.png b/assets/static/fonts/open-iconic/png/tag-4x.png
deleted file mode 100644
index 5a446f5..0000000
Binary files a/assets/static/fonts/open-iconic/png/tag-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/tag-6x.png b/assets/static/fonts/open-iconic/png/tag-6x.png
deleted file mode 100644
index 3d42195..0000000
Binary files a/assets/static/fonts/open-iconic/png/tag-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/tag-8x.png b/assets/static/fonts/open-iconic/png/tag-8x.png
deleted file mode 100644
index 99cfa66..0000000
Binary files a/assets/static/fonts/open-iconic/png/tag-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/tag.png b/assets/static/fonts/open-iconic/png/tag.png
deleted file mode 100644
index cceea45..0000000
Binary files a/assets/static/fonts/open-iconic/png/tag.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/tags-2x.png b/assets/static/fonts/open-iconic/png/tags-2x.png
deleted file mode 100644
index 60b27cf..0000000
Binary files a/assets/static/fonts/open-iconic/png/tags-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/tags-3x.png b/assets/static/fonts/open-iconic/png/tags-3x.png
deleted file mode 100644
index f61f2d8..0000000
Binary files a/assets/static/fonts/open-iconic/png/tags-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/tags-4x.png b/assets/static/fonts/open-iconic/png/tags-4x.png
deleted file mode 100644
index 4e7a713..0000000
Binary files a/assets/static/fonts/open-iconic/png/tags-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/tags-6x.png b/assets/static/fonts/open-iconic/png/tags-6x.png
deleted file mode 100644
index 6f04f6f..0000000
Binary files a/assets/static/fonts/open-iconic/png/tags-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/tags-8x.png b/assets/static/fonts/open-iconic/png/tags-8x.png
deleted file mode 100644
index b133db0..0000000
Binary files a/assets/static/fonts/open-iconic/png/tags-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/tags.png b/assets/static/fonts/open-iconic/png/tags.png
deleted file mode 100644
index 539a544..0000000
Binary files a/assets/static/fonts/open-iconic/png/tags.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/target-2x.png b/assets/static/fonts/open-iconic/png/target-2x.png
deleted file mode 100644
index 96ba8ef..0000000
Binary files a/assets/static/fonts/open-iconic/png/target-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/target-3x.png b/assets/static/fonts/open-iconic/png/target-3x.png
deleted file mode 100644
index 2bab27e..0000000
Binary files a/assets/static/fonts/open-iconic/png/target-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/target-4x.png b/assets/static/fonts/open-iconic/png/target-4x.png
deleted file mode 100644
index 82f0e4e..0000000
Binary files a/assets/static/fonts/open-iconic/png/target-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/target-6x.png b/assets/static/fonts/open-iconic/png/target-6x.png
deleted file mode 100644
index db55588..0000000
Binary files a/assets/static/fonts/open-iconic/png/target-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/target-8x.png b/assets/static/fonts/open-iconic/png/target-8x.png
deleted file mode 100644
index 08c5669..0000000
Binary files a/assets/static/fonts/open-iconic/png/target-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/target.png b/assets/static/fonts/open-iconic/png/target.png
deleted file mode 100644
index 725ab89..0000000
Binary files a/assets/static/fonts/open-iconic/png/target.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/task-2x.png b/assets/static/fonts/open-iconic/png/task-2x.png
deleted file mode 100644
index eba8983..0000000
Binary files a/assets/static/fonts/open-iconic/png/task-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/task-3x.png b/assets/static/fonts/open-iconic/png/task-3x.png
deleted file mode 100644
index b67a233..0000000
Binary files a/assets/static/fonts/open-iconic/png/task-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/task-4x.png b/assets/static/fonts/open-iconic/png/task-4x.png
deleted file mode 100644
index 28f9102..0000000
Binary files a/assets/static/fonts/open-iconic/png/task-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/task-6x.png b/assets/static/fonts/open-iconic/png/task-6x.png
deleted file mode 100644
index 8a5eccf..0000000
Binary files a/assets/static/fonts/open-iconic/png/task-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/task-8x.png b/assets/static/fonts/open-iconic/png/task-8x.png
deleted file mode 100644
index a94d1d6..0000000
Binary files a/assets/static/fonts/open-iconic/png/task-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/task.png b/assets/static/fonts/open-iconic/png/task.png
deleted file mode 100644
index 897af2d..0000000
Binary files a/assets/static/fonts/open-iconic/png/task.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/terminal-2x.png b/assets/static/fonts/open-iconic/png/terminal-2x.png
deleted file mode 100644
index d169053..0000000
Binary files a/assets/static/fonts/open-iconic/png/terminal-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/terminal-3x.png b/assets/static/fonts/open-iconic/png/terminal-3x.png
deleted file mode 100644
index 622e227..0000000
Binary files a/assets/static/fonts/open-iconic/png/terminal-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/terminal-4x.png b/assets/static/fonts/open-iconic/png/terminal-4x.png
deleted file mode 100644
index 834d756..0000000
Binary files a/assets/static/fonts/open-iconic/png/terminal-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/terminal-6x.png b/assets/static/fonts/open-iconic/png/terminal-6x.png
deleted file mode 100644
index 23d7033..0000000
Binary files a/assets/static/fonts/open-iconic/png/terminal-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/terminal-8x.png b/assets/static/fonts/open-iconic/png/terminal-8x.png
deleted file mode 100644
index 1c6b573..0000000
Binary files a/assets/static/fonts/open-iconic/png/terminal-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/terminal.png b/assets/static/fonts/open-iconic/png/terminal.png
deleted file mode 100644
index a1cccfe..0000000
Binary files a/assets/static/fonts/open-iconic/png/terminal.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/text-2x.png b/assets/static/fonts/open-iconic/png/text-2x.png
deleted file mode 100644
index e0165ff..0000000
Binary files a/assets/static/fonts/open-iconic/png/text-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/text-3x.png b/assets/static/fonts/open-iconic/png/text-3x.png
deleted file mode 100644
index 3fda7ca..0000000
Binary files a/assets/static/fonts/open-iconic/png/text-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/text-4x.png b/assets/static/fonts/open-iconic/png/text-4x.png
deleted file mode 100644
index b78effb..0000000
Binary files a/assets/static/fonts/open-iconic/png/text-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/text-6x.png b/assets/static/fonts/open-iconic/png/text-6x.png
deleted file mode 100644
index ba31d0e..0000000
Binary files a/assets/static/fonts/open-iconic/png/text-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/text-8x.png b/assets/static/fonts/open-iconic/png/text-8x.png
deleted file mode 100644
index 031b0e1..0000000
Binary files a/assets/static/fonts/open-iconic/png/text-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/text.png b/assets/static/fonts/open-iconic/png/text.png
deleted file mode 100644
index d07fa87..0000000
Binary files a/assets/static/fonts/open-iconic/png/text.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/thumb-down-2x.png b/assets/static/fonts/open-iconic/png/thumb-down-2x.png
deleted file mode 100644
index 6c8014f..0000000
Binary files a/assets/static/fonts/open-iconic/png/thumb-down-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/thumb-down-3x.png b/assets/static/fonts/open-iconic/png/thumb-down-3x.png
deleted file mode 100644
index 3b1a41e..0000000
Binary files a/assets/static/fonts/open-iconic/png/thumb-down-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/thumb-down-4x.png b/assets/static/fonts/open-iconic/png/thumb-down-4x.png
deleted file mode 100644
index cfda26a..0000000
Binary files a/assets/static/fonts/open-iconic/png/thumb-down-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/thumb-down-6x.png b/assets/static/fonts/open-iconic/png/thumb-down-6x.png
deleted file mode 100644
index 76b354e..0000000
Binary files a/assets/static/fonts/open-iconic/png/thumb-down-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/thumb-down-8x.png b/assets/static/fonts/open-iconic/png/thumb-down-8x.png
deleted file mode 100644
index bdbb51d..0000000
Binary files a/assets/static/fonts/open-iconic/png/thumb-down-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/thumb-down.png b/assets/static/fonts/open-iconic/png/thumb-down.png
deleted file mode 100644
index b5c9bb4..0000000
Binary files a/assets/static/fonts/open-iconic/png/thumb-down.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/thumb-up-2x.png b/assets/static/fonts/open-iconic/png/thumb-up-2x.png
deleted file mode 100644
index ad96490..0000000
Binary files a/assets/static/fonts/open-iconic/png/thumb-up-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/thumb-up-3x.png b/assets/static/fonts/open-iconic/png/thumb-up-3x.png
deleted file mode 100644
index 74f9cfa..0000000
Binary files a/assets/static/fonts/open-iconic/png/thumb-up-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/thumb-up-4x.png b/assets/static/fonts/open-iconic/png/thumb-up-4x.png
deleted file mode 100644
index 56adb20..0000000
Binary files a/assets/static/fonts/open-iconic/png/thumb-up-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/thumb-up-6x.png b/assets/static/fonts/open-iconic/png/thumb-up-6x.png
deleted file mode 100644
index 93a7cfd..0000000
Binary files a/assets/static/fonts/open-iconic/png/thumb-up-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/thumb-up-8x.png b/assets/static/fonts/open-iconic/png/thumb-up-8x.png
deleted file mode 100644
index 6e92715..0000000
Binary files a/assets/static/fonts/open-iconic/png/thumb-up-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/thumb-up.png b/assets/static/fonts/open-iconic/png/thumb-up.png
deleted file mode 100644
index 72e4253..0000000
Binary files a/assets/static/fonts/open-iconic/png/thumb-up.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/timer-2x.png b/assets/static/fonts/open-iconic/png/timer-2x.png
deleted file mode 100644
index 9af3c98..0000000
Binary files a/assets/static/fonts/open-iconic/png/timer-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/timer-3x.png b/assets/static/fonts/open-iconic/png/timer-3x.png
deleted file mode 100644
index c76e6fc..0000000
Binary files a/assets/static/fonts/open-iconic/png/timer-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/timer-4x.png b/assets/static/fonts/open-iconic/png/timer-4x.png
deleted file mode 100644
index d58e355..0000000
Binary files a/assets/static/fonts/open-iconic/png/timer-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/timer-6x.png b/assets/static/fonts/open-iconic/png/timer-6x.png
deleted file mode 100644
index a8a50b6..0000000
Binary files a/assets/static/fonts/open-iconic/png/timer-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/timer-8x.png b/assets/static/fonts/open-iconic/png/timer-8x.png
deleted file mode 100644
index a004f2d..0000000
Binary files a/assets/static/fonts/open-iconic/png/timer-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/timer.png b/assets/static/fonts/open-iconic/png/timer.png
deleted file mode 100644
index a30f632..0000000
Binary files a/assets/static/fonts/open-iconic/png/timer.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/transfer-2x.png b/assets/static/fonts/open-iconic/png/transfer-2x.png
deleted file mode 100644
index 27566b5..0000000
Binary files a/assets/static/fonts/open-iconic/png/transfer-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/transfer-3x.png b/assets/static/fonts/open-iconic/png/transfer-3x.png
deleted file mode 100644
index f9fe6ce..0000000
Binary files a/assets/static/fonts/open-iconic/png/transfer-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/transfer-4x.png b/assets/static/fonts/open-iconic/png/transfer-4x.png
deleted file mode 100644
index bc957d4..0000000
Binary files a/assets/static/fonts/open-iconic/png/transfer-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/transfer-6x.png b/assets/static/fonts/open-iconic/png/transfer-6x.png
deleted file mode 100644
index 6968fec..0000000
Binary files a/assets/static/fonts/open-iconic/png/transfer-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/transfer-8x.png b/assets/static/fonts/open-iconic/png/transfer-8x.png
deleted file mode 100644
index b35fd4a..0000000
Binary files a/assets/static/fonts/open-iconic/png/transfer-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/transfer.png b/assets/static/fonts/open-iconic/png/transfer.png
deleted file mode 100644
index 5969a01..0000000
Binary files a/assets/static/fonts/open-iconic/png/transfer.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/trash-2x.png b/assets/static/fonts/open-iconic/png/trash-2x.png
deleted file mode 100644
index de1127e..0000000
Binary files a/assets/static/fonts/open-iconic/png/trash-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/trash-3x.png b/assets/static/fonts/open-iconic/png/trash-3x.png
deleted file mode 100644
index 1a573fc..0000000
Binary files a/assets/static/fonts/open-iconic/png/trash-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/trash-4x.png b/assets/static/fonts/open-iconic/png/trash-4x.png
deleted file mode 100644
index e142d3c..0000000
Binary files a/assets/static/fonts/open-iconic/png/trash-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/trash-6x.png b/assets/static/fonts/open-iconic/png/trash-6x.png
deleted file mode 100644
index b40d695..0000000
Binary files a/assets/static/fonts/open-iconic/png/trash-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/trash-8x.png b/assets/static/fonts/open-iconic/png/trash-8x.png
deleted file mode 100644
index 70a1700..0000000
Binary files a/assets/static/fonts/open-iconic/png/trash-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/trash.png b/assets/static/fonts/open-iconic/png/trash.png
deleted file mode 100644
index 385fb92..0000000
Binary files a/assets/static/fonts/open-iconic/png/trash.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/underline-2x.png b/assets/static/fonts/open-iconic/png/underline-2x.png
deleted file mode 100644
index 70c90d0..0000000
Binary files a/assets/static/fonts/open-iconic/png/underline-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/underline-3x.png b/assets/static/fonts/open-iconic/png/underline-3x.png
deleted file mode 100644
index 64b19ab..0000000
Binary files a/assets/static/fonts/open-iconic/png/underline-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/underline-4x.png b/assets/static/fonts/open-iconic/png/underline-4x.png
deleted file mode 100644
index fb59b23..0000000
Binary files a/assets/static/fonts/open-iconic/png/underline-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/underline-6x.png b/assets/static/fonts/open-iconic/png/underline-6x.png
deleted file mode 100644
index c848de9..0000000
Binary files a/assets/static/fonts/open-iconic/png/underline-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/underline-8x.png b/assets/static/fonts/open-iconic/png/underline-8x.png
deleted file mode 100644
index 5c21998..0000000
Binary files a/assets/static/fonts/open-iconic/png/underline-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/underline.png b/assets/static/fonts/open-iconic/png/underline.png
deleted file mode 100644
index 077f21d..0000000
Binary files a/assets/static/fonts/open-iconic/png/underline.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/vertical-align-bottom-2x.png b/assets/static/fonts/open-iconic/png/vertical-align-bottom-2x.png
deleted file mode 100644
index 36908fb..0000000
Binary files a/assets/static/fonts/open-iconic/png/vertical-align-bottom-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/vertical-align-bottom-3x.png b/assets/static/fonts/open-iconic/png/vertical-align-bottom-3x.png
deleted file mode 100644
index 1424933..0000000
Binary files a/assets/static/fonts/open-iconic/png/vertical-align-bottom-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/vertical-align-bottom-4x.png b/assets/static/fonts/open-iconic/png/vertical-align-bottom-4x.png
deleted file mode 100644
index d68689a..0000000
Binary files a/assets/static/fonts/open-iconic/png/vertical-align-bottom-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/vertical-align-bottom-6x.png b/assets/static/fonts/open-iconic/png/vertical-align-bottom-6x.png
deleted file mode 100644
index 796581c..0000000
Binary files a/assets/static/fonts/open-iconic/png/vertical-align-bottom-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/vertical-align-bottom-8x.png b/assets/static/fonts/open-iconic/png/vertical-align-bottom-8x.png
deleted file mode 100644
index 1f593da..0000000
Binary files a/assets/static/fonts/open-iconic/png/vertical-align-bottom-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/vertical-align-bottom.png b/assets/static/fonts/open-iconic/png/vertical-align-bottom.png
deleted file mode 100644
index 95c5a93..0000000
Binary files a/assets/static/fonts/open-iconic/png/vertical-align-bottom.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/vertical-align-center-2x.png b/assets/static/fonts/open-iconic/png/vertical-align-center-2x.png
deleted file mode 100644
index f806e7a..0000000
Binary files a/assets/static/fonts/open-iconic/png/vertical-align-center-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/vertical-align-center-3x.png b/assets/static/fonts/open-iconic/png/vertical-align-center-3x.png
deleted file mode 100644
index 120fb5b..0000000
Binary files a/assets/static/fonts/open-iconic/png/vertical-align-center-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/vertical-align-center-4x.png b/assets/static/fonts/open-iconic/png/vertical-align-center-4x.png
deleted file mode 100644
index 5b36c8a..0000000
Binary files a/assets/static/fonts/open-iconic/png/vertical-align-center-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/vertical-align-center-6x.png b/assets/static/fonts/open-iconic/png/vertical-align-center-6x.png
deleted file mode 100644
index 8cebcd2..0000000
Binary files a/assets/static/fonts/open-iconic/png/vertical-align-center-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/vertical-align-center-8x.png b/assets/static/fonts/open-iconic/png/vertical-align-center-8x.png
deleted file mode 100644
index 11d9e48..0000000
Binary files a/assets/static/fonts/open-iconic/png/vertical-align-center-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/vertical-align-center.png b/assets/static/fonts/open-iconic/png/vertical-align-center.png
deleted file mode 100644
index 66ed0fd..0000000
Binary files a/assets/static/fonts/open-iconic/png/vertical-align-center.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/vertical-align-top-2x.png b/assets/static/fonts/open-iconic/png/vertical-align-top-2x.png
deleted file mode 100644
index 2d27106..0000000
Binary files a/assets/static/fonts/open-iconic/png/vertical-align-top-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/vertical-align-top-3x.png b/assets/static/fonts/open-iconic/png/vertical-align-top-3x.png
deleted file mode 100644
index 4b0caf9..0000000
Binary files a/assets/static/fonts/open-iconic/png/vertical-align-top-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/vertical-align-top-4x.png b/assets/static/fonts/open-iconic/png/vertical-align-top-4x.png
deleted file mode 100644
index 73d1010..0000000
Binary files a/assets/static/fonts/open-iconic/png/vertical-align-top-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/vertical-align-top-6x.png b/assets/static/fonts/open-iconic/png/vertical-align-top-6x.png
deleted file mode 100644
index 16ffa77..0000000
Binary files a/assets/static/fonts/open-iconic/png/vertical-align-top-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/vertical-align-top-8x.png b/assets/static/fonts/open-iconic/png/vertical-align-top-8x.png
deleted file mode 100644
index 67b290b..0000000
Binary files a/assets/static/fonts/open-iconic/png/vertical-align-top-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/vertical-align-top.png b/assets/static/fonts/open-iconic/png/vertical-align-top.png
deleted file mode 100644
index d4c5384..0000000
Binary files a/assets/static/fonts/open-iconic/png/vertical-align-top.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/video-2x.png b/assets/static/fonts/open-iconic/png/video-2x.png
deleted file mode 100644
index 312a21d..0000000
Binary files a/assets/static/fonts/open-iconic/png/video-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/video-3x.png b/assets/static/fonts/open-iconic/png/video-3x.png
deleted file mode 100644
index 7accdca..0000000
Binary files a/assets/static/fonts/open-iconic/png/video-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/video-4x.png b/assets/static/fonts/open-iconic/png/video-4x.png
deleted file mode 100644
index 1816fc9..0000000
Binary files a/assets/static/fonts/open-iconic/png/video-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/video-6x.png b/assets/static/fonts/open-iconic/png/video-6x.png
deleted file mode 100644
index bea7967..0000000
Binary files a/assets/static/fonts/open-iconic/png/video-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/video-8x.png b/assets/static/fonts/open-iconic/png/video-8x.png
deleted file mode 100644
index d912be2..0000000
Binary files a/assets/static/fonts/open-iconic/png/video-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/video.png b/assets/static/fonts/open-iconic/png/video.png
deleted file mode 100644
index 6e0b95f..0000000
Binary files a/assets/static/fonts/open-iconic/png/video.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/volume-high-2x.png b/assets/static/fonts/open-iconic/png/volume-high-2x.png
deleted file mode 100644
index 5e5617d..0000000
Binary files a/assets/static/fonts/open-iconic/png/volume-high-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/volume-high-3x.png b/assets/static/fonts/open-iconic/png/volume-high-3x.png
deleted file mode 100644
index df99e90..0000000
Binary files a/assets/static/fonts/open-iconic/png/volume-high-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/volume-high-4x.png b/assets/static/fonts/open-iconic/png/volume-high-4x.png
deleted file mode 100644
index d76349c..0000000
Binary files a/assets/static/fonts/open-iconic/png/volume-high-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/volume-high-6x.png b/assets/static/fonts/open-iconic/png/volume-high-6x.png
deleted file mode 100644
index bd0373b..0000000
Binary files a/assets/static/fonts/open-iconic/png/volume-high-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/volume-high-8x.png b/assets/static/fonts/open-iconic/png/volume-high-8x.png
deleted file mode 100644
index c9c6cec..0000000
Binary files a/assets/static/fonts/open-iconic/png/volume-high-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/volume-high.png b/assets/static/fonts/open-iconic/png/volume-high.png
deleted file mode 100644
index 7f00581..0000000
Binary files a/assets/static/fonts/open-iconic/png/volume-high.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/volume-low-2x.png b/assets/static/fonts/open-iconic/png/volume-low-2x.png
deleted file mode 100644
index b30cc59..0000000
Binary files a/assets/static/fonts/open-iconic/png/volume-low-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/volume-low-3x.png b/assets/static/fonts/open-iconic/png/volume-low-3x.png
deleted file mode 100644
index af03e9c..0000000
Binary files a/assets/static/fonts/open-iconic/png/volume-low-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/volume-low-4x.png b/assets/static/fonts/open-iconic/png/volume-low-4x.png
deleted file mode 100644
index 8920086..0000000
Binary files a/assets/static/fonts/open-iconic/png/volume-low-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/volume-low-6x.png b/assets/static/fonts/open-iconic/png/volume-low-6x.png
deleted file mode 100644
index 36b579f..0000000
Binary files a/assets/static/fonts/open-iconic/png/volume-low-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/volume-low-8x.png b/assets/static/fonts/open-iconic/png/volume-low-8x.png
deleted file mode 100644
index 653704a..0000000
Binary files a/assets/static/fonts/open-iconic/png/volume-low-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/volume-low.png b/assets/static/fonts/open-iconic/png/volume-low.png
deleted file mode 100644
index e1b735f..0000000
Binary files a/assets/static/fonts/open-iconic/png/volume-low.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/volume-off-2x.png b/assets/static/fonts/open-iconic/png/volume-off-2x.png
deleted file mode 100644
index c0f161e..0000000
Binary files a/assets/static/fonts/open-iconic/png/volume-off-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/volume-off-3x.png b/assets/static/fonts/open-iconic/png/volume-off-3x.png
deleted file mode 100644
index a8e1795..0000000
Binary files a/assets/static/fonts/open-iconic/png/volume-off-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/volume-off-4x.png b/assets/static/fonts/open-iconic/png/volume-off-4x.png
deleted file mode 100644
index bc354f7..0000000
Binary files a/assets/static/fonts/open-iconic/png/volume-off-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/volume-off-6x.png b/assets/static/fonts/open-iconic/png/volume-off-6x.png
deleted file mode 100644
index 56d3897..0000000
Binary files a/assets/static/fonts/open-iconic/png/volume-off-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/volume-off-8x.png b/assets/static/fonts/open-iconic/png/volume-off-8x.png
deleted file mode 100644
index 7dd0461..0000000
Binary files a/assets/static/fonts/open-iconic/png/volume-off-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/volume-off.png b/assets/static/fonts/open-iconic/png/volume-off.png
deleted file mode 100644
index 14cf805..0000000
Binary files a/assets/static/fonts/open-iconic/png/volume-off.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/warning-2x.png b/assets/static/fonts/open-iconic/png/warning-2x.png
deleted file mode 100644
index 81d7ad6..0000000
Binary files a/assets/static/fonts/open-iconic/png/warning-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/warning-3x.png b/assets/static/fonts/open-iconic/png/warning-3x.png
deleted file mode 100644
index 4cf3486..0000000
Binary files a/assets/static/fonts/open-iconic/png/warning-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/warning-4x.png b/assets/static/fonts/open-iconic/png/warning-4x.png
deleted file mode 100644
index b138cc8..0000000
Binary files a/assets/static/fonts/open-iconic/png/warning-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/warning-6x.png b/assets/static/fonts/open-iconic/png/warning-6x.png
deleted file mode 100644
index da2bc35..0000000
Binary files a/assets/static/fonts/open-iconic/png/warning-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/warning-8x.png b/assets/static/fonts/open-iconic/png/warning-8x.png
deleted file mode 100644
index 748c58d..0000000
Binary files a/assets/static/fonts/open-iconic/png/warning-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/warning.png b/assets/static/fonts/open-iconic/png/warning.png
deleted file mode 100644
index ea6cf9c..0000000
Binary files a/assets/static/fonts/open-iconic/png/warning.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/wifi-2x.png b/assets/static/fonts/open-iconic/png/wifi-2x.png
deleted file mode 100644
index bbd6001..0000000
Binary files a/assets/static/fonts/open-iconic/png/wifi-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/wifi-3x.png b/assets/static/fonts/open-iconic/png/wifi-3x.png
deleted file mode 100644
index 5bbd234..0000000
Binary files a/assets/static/fonts/open-iconic/png/wifi-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/wifi-4x.png b/assets/static/fonts/open-iconic/png/wifi-4x.png
deleted file mode 100644
index c6b31a0..0000000
Binary files a/assets/static/fonts/open-iconic/png/wifi-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/wifi-6x.png b/assets/static/fonts/open-iconic/png/wifi-6x.png
deleted file mode 100644
index 0d03f42..0000000
Binary files a/assets/static/fonts/open-iconic/png/wifi-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/wifi-8x.png b/assets/static/fonts/open-iconic/png/wifi-8x.png
deleted file mode 100644
index 8c24c08..0000000
Binary files a/assets/static/fonts/open-iconic/png/wifi-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/wifi.png b/assets/static/fonts/open-iconic/png/wifi.png
deleted file mode 100644
index 965ed52..0000000
Binary files a/assets/static/fonts/open-iconic/png/wifi.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/wrench-2x.png b/assets/static/fonts/open-iconic/png/wrench-2x.png
deleted file mode 100644
index ec4a206..0000000
Binary files a/assets/static/fonts/open-iconic/png/wrench-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/wrench-3x.png b/assets/static/fonts/open-iconic/png/wrench-3x.png
deleted file mode 100644
index 4ac8568..0000000
Binary files a/assets/static/fonts/open-iconic/png/wrench-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/wrench-4x.png b/assets/static/fonts/open-iconic/png/wrench-4x.png
deleted file mode 100644
index 815d120..0000000
Binary files a/assets/static/fonts/open-iconic/png/wrench-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/wrench-6x.png b/assets/static/fonts/open-iconic/png/wrench-6x.png
deleted file mode 100644
index 76ace6c..0000000
Binary files a/assets/static/fonts/open-iconic/png/wrench-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/wrench-8x.png b/assets/static/fonts/open-iconic/png/wrench-8x.png
deleted file mode 100644
index 19c7634..0000000
Binary files a/assets/static/fonts/open-iconic/png/wrench-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/wrench.png b/assets/static/fonts/open-iconic/png/wrench.png
deleted file mode 100644
index 059e41c..0000000
Binary files a/assets/static/fonts/open-iconic/png/wrench.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/x-2x.png b/assets/static/fonts/open-iconic/png/x-2x.png
deleted file mode 100644
index 6ae2ab8..0000000
Binary files a/assets/static/fonts/open-iconic/png/x-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/x-3x.png b/assets/static/fonts/open-iconic/png/x-3x.png
deleted file mode 100644
index 08c080e..0000000
Binary files a/assets/static/fonts/open-iconic/png/x-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/x-4x.png b/assets/static/fonts/open-iconic/png/x-4x.png
deleted file mode 100644
index 328d590..0000000
Binary files a/assets/static/fonts/open-iconic/png/x-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/x-6x.png b/assets/static/fonts/open-iconic/png/x-6x.png
deleted file mode 100644
index 175e648..0000000
Binary files a/assets/static/fonts/open-iconic/png/x-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/x-8x.png b/assets/static/fonts/open-iconic/png/x-8x.png
deleted file mode 100644
index 4a07f35..0000000
Binary files a/assets/static/fonts/open-iconic/png/x-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/x.png b/assets/static/fonts/open-iconic/png/x.png
deleted file mode 100644
index 23b0787..0000000
Binary files a/assets/static/fonts/open-iconic/png/x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/yen-2x.png b/assets/static/fonts/open-iconic/png/yen-2x.png
deleted file mode 100644
index a9acb09..0000000
Binary files a/assets/static/fonts/open-iconic/png/yen-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/yen-3x.png b/assets/static/fonts/open-iconic/png/yen-3x.png
deleted file mode 100644
index 0649b7f..0000000
Binary files a/assets/static/fonts/open-iconic/png/yen-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/yen-4x.png b/assets/static/fonts/open-iconic/png/yen-4x.png
deleted file mode 100644
index 9c57365..0000000
Binary files a/assets/static/fonts/open-iconic/png/yen-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/yen-6x.png b/assets/static/fonts/open-iconic/png/yen-6x.png
deleted file mode 100644
index dd5e837..0000000
Binary files a/assets/static/fonts/open-iconic/png/yen-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/yen-8x.png b/assets/static/fonts/open-iconic/png/yen-8x.png
deleted file mode 100644
index f49a6c9..0000000
Binary files a/assets/static/fonts/open-iconic/png/yen-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/yen.png b/assets/static/fonts/open-iconic/png/yen.png
deleted file mode 100644
index 1deae41..0000000
Binary files a/assets/static/fonts/open-iconic/png/yen.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/zoom-in-2x.png b/assets/static/fonts/open-iconic/png/zoom-in-2x.png
deleted file mode 100644
index 1b63daf..0000000
Binary files a/assets/static/fonts/open-iconic/png/zoom-in-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/zoom-in-3x.png b/assets/static/fonts/open-iconic/png/zoom-in-3x.png
deleted file mode 100644
index 285e04c..0000000
Binary files a/assets/static/fonts/open-iconic/png/zoom-in-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/zoom-in-4x.png b/assets/static/fonts/open-iconic/png/zoom-in-4x.png
deleted file mode 100644
index fa02059..0000000
Binary files a/assets/static/fonts/open-iconic/png/zoom-in-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/zoom-in-6x.png b/assets/static/fonts/open-iconic/png/zoom-in-6x.png
deleted file mode 100644
index f908d90..0000000
Binary files a/assets/static/fonts/open-iconic/png/zoom-in-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/zoom-in-8x.png b/assets/static/fonts/open-iconic/png/zoom-in-8x.png
deleted file mode 100644
index 85b9cff..0000000
Binary files a/assets/static/fonts/open-iconic/png/zoom-in-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/zoom-in.png b/assets/static/fonts/open-iconic/png/zoom-in.png
deleted file mode 100644
index 0292fed..0000000
Binary files a/assets/static/fonts/open-iconic/png/zoom-in.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/zoom-out-2x.png b/assets/static/fonts/open-iconic/png/zoom-out-2x.png
deleted file mode 100644
index 18d6a1d..0000000
Binary files a/assets/static/fonts/open-iconic/png/zoom-out-2x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/zoom-out-3x.png b/assets/static/fonts/open-iconic/png/zoom-out-3x.png
deleted file mode 100644
index 7b090ec..0000000
Binary files a/assets/static/fonts/open-iconic/png/zoom-out-3x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/zoom-out-4x.png b/assets/static/fonts/open-iconic/png/zoom-out-4x.png
deleted file mode 100644
index b7abcea..0000000
Binary files a/assets/static/fonts/open-iconic/png/zoom-out-4x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/zoom-out-6x.png b/assets/static/fonts/open-iconic/png/zoom-out-6x.png
deleted file mode 100644
index 918214b..0000000
Binary files a/assets/static/fonts/open-iconic/png/zoom-out-6x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/zoom-out-8x.png b/assets/static/fonts/open-iconic/png/zoom-out-8x.png
deleted file mode 100644
index ff96582..0000000
Binary files a/assets/static/fonts/open-iconic/png/zoom-out-8x.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/png/zoom-out.png b/assets/static/fonts/open-iconic/png/zoom-out.png
deleted file mode 100644
index 33b1c90..0000000
Binary files a/assets/static/fonts/open-iconic/png/zoom-out.png and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/sprite/open-iconic.html b/assets/static/fonts/open-iconic/sprite/open-iconic.html
deleted file mode 100644
index 82b0fb5..0000000
--- a/assets/static/fonts/open-iconic/sprite/open-iconic.html
+++ /dev/null
@@ -1,929 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-<style>
-  body {
-    font-family: 'Helvetica', sans-serif;
-    margin: 50px 0;
-  }
-
-  .container {
-    width: 600px;
-    text-align: center;
-    margin: 20px auto;
-  }
-
-  .intro {
-    text-align: left;
-  }
-
-  .icon {
-
-    margin: 10px;
-    width: 16px;
-    height: 16px;
-  }
-</style>
-</head>
-<body>
-
-<div class="container">
-  <p class='intro'>
-    Make sure to run this through a web server otherwise you won’t see any icons. You can use <a href="https://github.com/visionmedia/serve">Serve</a> for local testing.
-  </p>
-  <svg class="icon">
-    <use xlink:href="open-iconic.svg#account-login"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#account-logout"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#action-redo"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#action-undo"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#align-center"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#align-left"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#align-right"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#aperture"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#arrow-bottom"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#arrow-circle-bottom"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#arrow-circle-left"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#arrow-circle-right"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#arrow-circle-top"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#arrow-left"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#arrow-right"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#arrow-thick-bottom"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#arrow-thick-left"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#arrow-thick-right"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#arrow-thick-top"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#arrow-top"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#audio-spectrum"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#audio"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#badge"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#ban"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#bar-chart"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#basket"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#battery-empty"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#battery-full"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#beaker"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#bell"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#bluetooth"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#bold"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#bolt"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#book"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#bookmark"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#box"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#briefcase"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#british-pound"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#browser"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#brush"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#bug"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#bullhorn"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#calculator"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#calendar"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#camera-slr"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#caret-bottom"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#caret-left"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#caret-right"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#caret-top"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#cart"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#chat"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#check"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#chevron-bottom"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#chevron-left"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#chevron-right"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#chevron-top"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#circle-check"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#circle-x"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#clipboard"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#clock"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#cloud-download"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#cloud-upload"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#cloud"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#cloudy"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#code"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#cog"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#collapse-down"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#collapse-left"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#collapse-right"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#collapse-up"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#command"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#comment-square"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#compass"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#contrast"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#copywriting"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#credit-card"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#crop"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#dashboard"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#data-transfer-download"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#data-transfer-upload"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#delete"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#dial"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#document"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#dollar"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#double-quote-sans-left"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#double-quote-sans-right"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#double-quote-serif-left"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#double-quote-serif-right"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#droplet"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#eject"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#elevator"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#ellipses"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#envelope-closed"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#envelope-open"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#euro"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#excerpt"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#expand-down"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#expand-left"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#expand-right"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#expand-up"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#external-link"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#eye"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#eyedropper"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#file"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#fire"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#flag"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#flash"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#folder"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#fork"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#fullscreen-enter"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#fullscreen-exit"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#globe"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#graph"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#grid-four-up"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#grid-three-up"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#grid-two-up"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#hard-drive"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#header"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#headphones"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#heart"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#home"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#image"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#inbox"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#infinity"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#info"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#italic"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#justify-center"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#justify-left"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#justify-right"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#key"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#laptop"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#layers"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#lightbulb"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#link-broken"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#link-intact"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#list-rich"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#list"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#location"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#lock-locked"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#lock-unlocked"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#loop-circular"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#loop-square"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#loop"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#magnifying-glass"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#map-marker"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#map"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#media-pause"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#media-play"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#media-record"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#media-skip-backward"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#media-skip-forward"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#media-step-backward"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#media-step-forward"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#media-stop"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#medical-cross"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#menu"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#microphone"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#minus"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#monitor"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#moon"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#move"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#musical-note"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#paperclip"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#pencil"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#people"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#person"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#phone"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#pie-chart"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#pin"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#play-circle"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#plus"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#power-standby"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#print"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#project"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#pulse"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#puzzle-piece"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#question-mark"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#rain"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#random"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#reload"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#resize-both"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#resize-height"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#resize-width"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#rss-alt"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#rss"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#script"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#share-boxed"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#share"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#shield"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#signal"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#signpost"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#sort-ascending"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#sort-descending"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#spreadsheet"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#star"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#sun"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#tablet"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#tag"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#tags"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#target"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#task"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#terminal"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#text"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#thumb-down"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#thumb-up"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#timer"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#transfer"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#trash"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#underline"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#vertical-align-bottom"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#vertical-align-center"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#vertical-align-top"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#video"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#volume-high"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#volume-low"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#volume-off"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#warning"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#wifi"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#wrench"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#x"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#yen"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#zoom-in"></use>
-  </svg>
-
-  <svg viewBox="0 0 8 8" class="icon">
-    <use xlink:href="open-iconic.svg#zoom-out"></use>
-  </svg>
-
-</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/sprite/open-iconic.min.svg b/assets/static/fonts/open-iconic/sprite/open-iconic.min.svg
deleted file mode 100644
index 19b6fcf..0000000
--- a/assets/static/fonts/open-iconic/sprite/open-iconic.min.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg"><defs><path d="M3 0v1h4v5h-4v1h5v-7h-5zm1 2v1h-4v1h4v1l2-1.5-2-1.5z" id="account-login"/><path d="M3 0v1h4v5h-4v1h5v-7h-5zm-1 2l-2 1.5 2 1.5v-1h4v-1h-4v-1z" id="account-logout"/><path d="M3.5 1c-1.93 0-3.5 1.57-3.5 3.5 0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v.5h-1l2 2 2-2h-1v-.5c0-1.93-1.57-3.5-3.5-3.5z" id="action-redo"/><path d="M4.5 1c-1.93 0-3.5 1.57-3.5 3.5v.5h-1l2 2 2-2h-1v-.5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5c0-1.93-1.57-3.5-3.5-3.5z" id="action-undo"/><path d="M0 0v1h8v-1h-8zm1 2v1h6v-1h-6zm-1 2v1h8v-1h-8zm1 2v1h6v-1h-6z" id="align-center"/><path d="M0 0v1h8v-1h-8zm0 2v1h6v-1h-6zm0 2v1h8v-1h-8zm0 2v1h6v-1h-6z" id="align-left"/><path d="M0 0v1h8v-1h-8zm2 2v1h6v-1h-6zm-2 2v1h8v-1h-8zm2 2v1h6v-1h-6z" id="align-right"/><path d="M4 0c-.69 0-1.336.19-1.906.5l3.219 2.344.719-2.25c-.59-.36-1.281-.594-2.031-.594zm-2.75 1.125c-.76.73-1.25 1.735-1.25 2.875 0 .25.022.489.063.719l3.094-2.219-1.906-1.375zm5.625.125l-1.219 3.75h
 2.219c.08-.32.125-.65.125-1 0-1.07-.435-2.03-1.125-2.75zm-4.719 3.188l-1.75 1.281c.55 1.13 1.595 1.989 2.875 2.219l-1.125-3.5zm1.563 1.563l.625 1.969c1.33-.11 2.454-.879 3.094-1.969h-3.719z" id="aperture"/><path d="M3 0v5h-2l2.531 3 2.469-3h-2v-5h-1z" id="arrow-bottom"/><path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-1 1h2v3h2l-3 3-3-3h2v-3z" id="arrow-circle-bottom"/><path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1v2h3v2h-3v2l-3-3 3-3z" id="arrow-circle-left"/><path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1l3 3-3 3v-2h-3v-2h3v-2z" id="arrow-circle-right"/><path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1l3 3h-2v3h-2v-3h-2l3-3z" id="arrow-circle-top"/><path d="M3 1l-3 2.531 3 2.469v-2h5v-1h-5v-2z" id="arrow-left"/><path d="M5 1v2h-5v1h5v2l3-2.531-3-2.469z" id="arrow-right"/><path d="M3 0v5h-2l3.031 3 2.969-3h-2v-5h-2z" id="arrow-thick-bottom"/><path d="M3 1l-3 3.031 3 2.969v-2h5v-2h-5v-2z" id="arro
 w-thick-left"/><path d="M5 1v2h-5v2h5v2l3-3.031-3-2.969z" id="arrow-thick-right"/><path d="M3.969 0l-2.969 3h2v5h2v-5h2l-3.031-3z" id="arrow-thick-top"/><path d="M3.469 0l-2.469 3h2v5h1v-5h2l-2.531-3z" id="arrow-top"/><path d="M4 0v8h1v-8h-1zm-2 1v6h1v-6h-1zm4 1v4h1v-4h-1zm-6 1v2h1v-2h-1z" id="audio-spectrum"/><path d="M1.188 1c-.734.722-1.188 1.748-1.188 2.844 0 1.095.454 2.09 1.188 2.813l.688-.719c-.546-.538-.875-1.269-.875-2.094s.329-1.587.875-2.125l-.688-.719zm5.625 0l-.688.719c.552.552.875 1.289.875 2.125 0 .836-.327 1.554-.875 2.094l.688.719c.732-.72 1.188-1.708 1.188-2.813 0-1.104-.459-2.115-1.188-2.844zm-4.219 1.406c-.362.362-.594.889-.594 1.438 0 .548.232 1.045.594 1.406l.688-.719c-.178-.178-.281-.416-.281-.688 0-.272.103-.54.281-.719l-.688-.719zm2.813 0l-.688.719c.183.183.281.434.281.719s-.099.505-.281.688l.688.719c.357-.357.594-.851.594-1.406 0-.555-.236-1.08-.594-1.438z" id="audio"/><path d="M4 0c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2zm-1 4.813v3.188l1-1 1 
 1v-3.188c-.31.11-.65.188-1 .188s-.69-.077-1-.188z" id="badge"/><path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c.655 0 1.258.209 1.75.563l-4.188 4.188c-.353-.492-.563-1.095-.563-1.75 0-1.663 1.337-3 3-3zm2.438 1.25c.353.492.563 1.095.563 1.75 0 1.663-1.337 3-3 3-.655 0-1.258-.209-1.75-.563l4.188-4.188z" id="ban"/><path d="M0 0v7h8v-1h-7v-6h-1zm5 0v5h2v-5h-2zm-3 2v3h2v-3h-2z" id="bar-chart"/><path d="M3.969 0c-.127.011-.259.083-.344.188l-2.344 2.813h-1.281v1h1v3.656c0 .18.164.344.344.344h5.313c.18 0 .344-.164.344-.344v-3.656h1v-1h-1.281c-.274-.329-2.387-2.866-2.406-2.875-.105-.09-.216-.136-.344-.125zm.031 1.281l1.438 1.719h-2.875l1.438-1.719zm-1.5 3.719c.28 0 .5.22.5.5v1c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1c0-.28.22-.5.5-.5zm3 0c.28 0 .5.22.5.5v1c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1c0-.28.22-.5.5-.5z" id="basket"/><path d="M.094 1c-.06 0-.094.034-.094.094v5.813c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-1.906h1v-2h-1v-1.906c0-.0
 6-.034-.094-.094-.094h-6.813zm.906 1h5v4h-5v-4z" id="battery-empty"/><path d="M.094 1c-.06 0-.094.034-.094.094v5.813c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-1.906h1v-2h-1v-1.906c0-.06-.034-.094-.094-.094h-6.813z" id="battery-full"/><path d="M1.344 0a.502.502 0 0 0 .156 1h.5v1.406c-.088.172-1.194 2.313-1.656 3.094-.153.268-.344.612-.344 1.063 0 .383.139.764.406 1.031.26.26.643.406 1.031.406h5.125c.383 0 .764-.139 1.031-.406.26-.26.406-.643.406-1.031 0-.452-.194-.801-.344-1.063-.463-.78-1.568-2.922-1.656-3.094v-1.406h.5a.5.5 0 1 0 0-1h-5a.5.5 0 0 0-.094 0 .502.502 0 0 0-.063 0zm1.656 1h2v1.625l.063.094s.652 1.233 1.219 2.281h-4.563c.567-1.049 1.219-2.281 1.219-2.281l.063-.094v-1.625z" id="beaker"/><path d="M4 0c-1.1 0-2 .9-2 2 0 1.04-.524 1.976-1.344 2.656-.42.34-.656.824-.656 1.344h8c0-.52-.236-1.004-.656-1.344-.82-.68-1.344-1.616-1.344-2.656 0-1.1-.9-2-2-2zm-1 7c0 .55.45 1 1 1s1-.45 1-1h-2z" id="bell"/><path d="M2.5 0v2.5l-.75-.75-.75.75 1.5 1.5-1.5 1.5.75.75.75-.75v2.
 5h.5l3.5-2.5-2.25-1.531 2.25-1.469-3.5-2.5h-.5zm1 1.5l1.5 1-1.5 1v-2zm0 3l1.5 1-1.5 1v-2z" id="bluetooth"/><path d="M0 0v1c.55 0 1 .45 1 1v4c0 .55-.45 1-1 1v1h5.5c1.38 0 2.5-1.12 2.5-2.5 0-1-.588-1.85-1.438-2.25.27-.34.438-.78.438-1.25 0-1.1-.9-2-2-2h-5zm3 1h1c.55 0 1 .45 1 1s-.45 1-1 1h-1v-2zm0 3h1.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-1.5v-3z" id="bold"/><path d="M4 0l-3 5h2v3l3-5h-2v-3z" id="bolt"/><path d="M1 0l-.188.031c-.39.08-.701.391-.781.781l-.031.188v5.5c0 .83.67 1.5 1.5 1.5h5.5v-1h-5.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h5.5v-5.5c0-.28-.22-.5-.5-.5h-.5v3l-1-1-1 1v-3h-3z" id="book"/><path d="M2 0v8l2-2 2 2v-8h-4z" id="bookmark"/><path d="M0 0v1h8v-1h-8zm0 2v5.906c0 .06.034.094.094.094h7.813c.06 0 .094-.034.094-.094v-5.906h-2.969v1.031h-2.031v-1.031h-3z" id="box"/><path d="M3 0c-.554 0-1 .458-1 1v1h-1.906c-.06 0-.094.034-.094.094v2.406c0 .28.22.5.5.5h7c.28 0 .5-.22.5-.5v-2.406c0-.06-.034-.094-.094-.094h-1.906v-1c0-.542-.446-1-1-1h-2zm0 1h2v1h-2v-1zm-3 4.906v2c0 .06.034.094.0
 94.094h7.813c.06 0 .094-.034.094-.094v-2c-.16.05-.32.094-.5.094h-7c-.18 0-.34-.044-.5-.094z" id="briefcase"/><path d="M4 0c-.619 0-1.159.262-1.5.688-.341.426-.5.986-.5 1.563 0 .692.165 1.245.25 1.75h-1.25v1h1.219c-.112.448-.37.964-1.063 1.656l-.156.125v1.219h6v-1h-4.906c.641-.729.982-1.397 1.125-2h1.781v-1h-1.719c-.078-.683-.281-1.242-.281-1.75 0-.394.115-.731.281-.938.166-.207.368-.313.719-.313.394 0 .609.109.75.25.141.141.25.356.25.75h1c0-.576-.165-1.102-.531-1.469-.366-.366-.893-.531-1.469-.531z" id="british-pound"/><path d="M.344 0a.5.5 0 0 0-.344.5v7a.5.5 0 0 0 .5.5h7a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.5-.5h-7a.5.5 0 0 0-.094 0 .5.5 0 0 0-.063 0zm1.156 1c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zm2 0h3c.28 0 .5.22.5.5s-.22.5-.5.5h-3c-.28 0-.5-.22-.5-.5s.22-.5.5-.5zm-2.5 2h6v4h-6v-4z" id="browser"/><path d="M7.438.031l-.063.031-3.75 2.656-.125.156-.125.25c.719.229 1.271.781 1.5 1.5l.25-.125c.05-.02.126-.075.156-.125l2.656-3.75c.03-.04.04-.116 0-.156l-.406-.406-.094-.031zm
 -4.781 3.969c-.73 0-1.313.614-1.313 1.344 0 .99-.544 1.821-1.344 2.281.4.23.864.375 1.344.375 1.48 0 2.656-1.176 2.656-2.656 0-.73-.604-1.344-1.344-1.344z" id="brush"/><path d="M3.5 0c-1.19 0-1.978 1.69-1.188 2.5l-.281.219-1.313-.656a.5.5 0 0 0-.344-.063.5.5 0 0 0-.094.938l1.156.563c-.09.156-.186.328-.25.5h-.688a.5.5 0 0 0-.094 0 .502.502 0 1 0 .094 1h.5c0 .227.023.445.063.656l-.781.406a.5.5 0 1 0 .438.875l.656-.344c.245.46.59.844 1 1.094.35-.19.625-.439.625-.719v-1.438a.5.5 0 0 0 0-.094v-.813a.5.5 0 0 0 0-.219c.045-.231.254-.406.5-.406.28 0 .5.22.5.5v.875a.5.5 0 0 0 0 .094v.063a.5.5 0 0 0 0 .094v1.344c0 .27.275.497.625.688.41-.245.755-.604 1-1.063l.656.344a.5.5 0 1 0 .438-.875l-.781-.406c.04-.211.063-.429.063-.656h.5a.5.5 0 1 0 0-1h-.688c-.064-.172-.16-.344-.25-.5l1.156-.563a.5.5 0 0 0-.313-.938.5.5 0 0 0-.125.063l-1.313.656-.281-.219c.78-.83.003-2.5-1.188-2.5z" id="bug"/><path d="M6.094 0l-.094.031v5.969h.907c.06 0 .094-.034.094-.094v-5.813c0-.06-.034-.094-.094-.094h-.813zm-1.094.
 5l-2.906 1.469-.188.031h-1.813c-.06 0-.094.034-.094.094v1.813c0 .06.034.094.094.094h.906l1.031 2.719c.11.25.406.36.656.25.25-.11.36-.406.25-.656l-.719-1.781c.033-.136.136-.25.281-.25v-.031l2.5 1.25v-5z" id="bullhorn"/><path d="M.094 0c-.06 0-.094.034-.094.094v7.813c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-7.813c0-.06-.034-.094-.094-.094h-6.813zm.906 1h5v2h-5v-2zm0 3h1v1h-1v-1zm2 0h1v1h-1v-1zm2 0h1v3h-1v-3zm-4 2h1v1h-1v-1zm2 0h1v1h-1v-1z" id="calculator"/><path d="M0 0v2h7v-2h-7zm0 3v4.906c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-4.906h-7zm1 1h1v1h-1v-1zm2 0h1v1h-1v-1zm2 0h1v1h-1v-1zm-4 2h1v1h-1v-1zm2 0h1v1h-1v-1z" id="calendar"/><path d="M4.094 0c-.06 0-.105.044-.125.094l-.938 1.813c-.02.05-.065.094-.125.094h-1.406c-.83 0-1.5.67-1.5 1.5v4.406c0 .06.034.094.094.094h7.813c.06 0 .094-.034.094-.094v-5.813c0-.06-.034-.094-.094-.094h-.813c-.06 0-.105-.044-.125-.094l-.938-1.813c-.02-.05-.065-.094-.125-.094h-1.813zm-2.594 3c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.
 22-.5.5-.5zm3.5 0c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm0 1c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z" id="camera-slr"/><path d="M0 2l4 4 4-4h-8z" id="caret-bottom"/><path d="M6 0l-4 4 4 4v-8z" id="caret-left"/><path d="M2 0v8l4-4-4-4z" id="caret-right"/><path d="M4 2l-4 4h8l-4-4z" id="caret-top"/><path d="M.344 0a.502.502 0 0 0 .156 1h1.5l.094.25.406 1.25.406 1.25c.04.13.204.25.344.25h3.5c.14 0 .304-.12.344-.25l.813-2.531c.04-.12-.016-.219-.156-.219h-4.438l-.375-.719a.5.5 0 0 0-.438-.281h-2a.5.5 0 0 0-.094 0 .502.502 0 0 0-.063 0zm3.156 5c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm3 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5z" transform="translate(0 1)" id="cart"/><path d="M0 0v5l1-1h1v-3h3v-1h-5zm3 2v4h4l1 1v-5h-5z" id="chat"/><path d="M6.406 1l-.719.688-2.781 2.781-.781-.781-.719-.688-1.406 1.406.688.719 1.5 1.5.719.688.719-.688 3.5-3.5.688-.719-1.406-1.406z" id="check"/><path d="M1.5 1l-1.5 1.5 4 4 4-4-1.5-1.5-2.5 2.5-2.5-2.5z" id="chev
 ron-bottom"/><path d="M5 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z" id="chevron-left"/><path d="M2.5 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z" id="chevron-right"/><path d="M4 1l-4 4 1.5 1.5 2.5-2.5 2.5 2.5 1.5-1.5-4-4z" id="chevron-top"/><path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm2 1.781l.719.719-3.219 3.219-1.719-1.719.719-.719 1 1 2.5-2.5z" id="circle-check"/><path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-1.5 1.781l1.5 1.5 1.5-1.5.719.719-1.5 1.5 1.5 1.5-.719.719-1.5-1.5-1.5 1.5-.719-.719 1.5-1.5-1.5-1.5.719-.719z" id="circle-x"/><path d="M3.5 0c-.28 0-.5.22-.5.5v.5h-.75c-.14 0-.25.11-.25.25v.75h3v-.75c0-.14-.11-.25-.25-.25h-.75v-.5c0-.28-.22-.5-.5-.5zm-3.25 1c-.14 0-.25.11-.25.25v6.5c0 .14.11.25.25.25h6.5c.14 0 .25-.11.25-.25v-6.5c0-.14-.11-.25-.25-.25h-.75v2h-5v-2h-.75z" id="clipboard"/><path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3-3-1.337-3-3 
 1.337-3 3-3zm-.5 1v2.219l.156.125.5.5.344.375.719-.719-.375-.344-.344-.344v-1.813h-1z" id="clock"/><path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2 0 .37.111.7.281 1h2.719v-.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v.5h1.906c.05-.16.094-.32.094-.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5zm-.156 4a.5.5 0 0 0-.344.5v1.5h-1.5l2 2 2-2h-1.5v-1.5a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0z" id="cloud-download"/><path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2 0 .37.111.7.281 1h2.219l2-2 2 2h1.406c.05-.16.094-.32.094-.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5zm0 4.5l-2.5 2.5h2v.5a.5.5 0 1 0 1 0v-.5h2l-2.5-2.5z" id="cloud-upload"/><path d="M4.5 1c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2s.9 2 2 2h4.5c.83 0 1.5-.67 1.5-1.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5z" id="cloud"/><path d="M2.5 0c-1.38 0-2.5 1.12-2.5 2.5 0 .39.09.743.25 1.063.3-.21.63-.379 1-.469.55-1.25 1.82-2.084 3.25-2.094-.46-.6-1.18-1-2-1zm2 2c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2s.9 2 2 2h4.5c.83 0 1.5-.67 
 1.5-1.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5z" id="cloudy"/><path d="M5 1l-3 6h1l3-6h-1zm-4 1l-1 2 1 2h1l-1-2 1-2h-1zm5 0l1 2-1 2h1l1-2-1-2h-1z" id="code"/><path d="M3.5 0l-.5 1.188-.281.125-1.188-.5-.719.719.5 1.188-.125.281-1.188.5v1l1.188.5.125.313-.5 1.156.719.719 1.188-.5.281.125.5 1.188h1l.5-1.188.281-.125 1.188.5.719-.719-.5-1.188.125-.281 1.188-.5v-1l-1.188-.5-.125-.281.469-1.188-.688-.719-1.188.5-.281-.125-.5-1.188h-1zm.5 2.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5-1.5-.67-1.5-1.5.67-1.5 1.5-1.5z" id="cog"/><path d="M0 0v2h8v-2h-8zm2 3l2 2 2-2h-4zm-2 4v1h8v-1h-8z" id="collapse-down"/><path d="M0 0v8h1v-8h-1zm6 0v8h2v-8h-2zm-1 2l-2 2 2 2v-4z" id="collapse-left"/><path d="M0 0v8h2v-8h-2zm7 0v8h1v-8h-1zm-4 2v4l2-2-2-2z" id="collapse-right"/><path d="M0 0v1h8v-1h-8zm4 3l-2 2h4l-2-2zm-4 3v2h8v-2h-8z" id="collapse-up"/><path d="M1.5 0c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5h.5v1h-.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5v-.5h1v.5c0 .83.67 1.5 1.5 1.5s1.5-.6
 7 1.5-1.5-.67-1.5-1.5-1.5h-.5v-1h.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5v.5h-1v-.5c0-.83-.67-1.5-1.5-1.5zm0 1c.28 0 .5.22.5.5v.5h-.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5zm4 0c.28 0 .5.22.5.5s-.22.5-.5.5h-.5v-.5c0-.28.22-.5.5-.5zm-2.5 2h1v1h-1v-1zm-1.5 2h.5v.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5.22-.5.5-.5zm3.5 0h.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5v-.5z" id="command"/><path d="M.094 0c-.06 0-.094.034-.094.094v5.813c0 .06.034.094.094.094h5.906l2 2v-7.906c0-.06-.034-.094-.094-.094h-7.813z" id="comment-square"/><path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3-3-1.337-3-3 1.337-3 3-3zm2 1l-3 1-1 3 3-1 1-3zm-2 1.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="compass"/><path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3v-6z" id="contrast"/><path d="M0 0v1h8v-1h-8zm0 2v1h5v-1h-5zm0 3v1h8v-1h-8zm0 2v1h
 6v-1h-6zm7.5 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5z" id="copywriting"/><path d="M.25 1c-.14 0-.25.11-.25.25v.75h8v-.75c0-.14-.11-.25-.25-.25h-7.5zm-.25 2v3.75c0 .14.11.25.25.25h7.5c.14 0 .25-.11.25-.25v-3.75h-8zm1 2h1v1h-1v-1zm2 0h1v1h-1v-1z" id="credit-card"/><path d="M1 0v1h-1v1h1v5h5v1h1v-1h1v-1h-1v-4.5l1-1-.5-.5-1 1h-4.5v-1h-1zm1 2h3.5l-3.5 3.5v-3.5zm4 .5v3.5h-3.5l3.5-3.5z" id="crop"/><path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3-3-1.337-3-3 1.337-3 3-3zm0 1c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-1.656 1a.5.5 0 0 0-.188.844l.906.906-.063.25c0 .552.448 1 1 1s1-.448 1-1-.448-1-1-1l-.25.063-.906-.906a.5.5 0 0 0-.438-.156.5.5 0 0 0-.063 0zm3.156 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5z" id="dashboard"/><path d="M3 0v3h-2l3 3 3-3h-2v-3h-2zm-3 7v1h8v-1h-8z" id="data-transfer-download"/><path d="M0 0v1h8v-1h-8zm4 2l-3 3h2v3h2v-3h2l-3-3z" id=
 "data-transfer-upload"/><path d="M2 1l-2 3 2 3h6v-6h-6zm1.5.781l1.5 1.5 1.5-1.5.719.719-1.5 1.5 1.5 1.5-.719.719-1.5-1.5-1.5 1.5-.719-.719 1.5-1.5-1.5-1.5.719-.719z" id="delete"/><path d="M4 1c-2.201 0-4 1.799-4 4h1c0-1.659 1.341-3 3-3s3 1.341 3 3h1c0-2.201-1.799-4-4-4zm-.594 2.094c-.82.25-1.406 1.006-1.406 1.906 0 1.1.9 2 2 2s2-.9 2-2c0-.9-.586-1.656-1.406-1.906l-.594.875-.594-.875z" id="dial"/><path d="M0 0v8h7v-4h-4v-4h-3zm4 0v3h3l-3-3zm-3 2h1v1h-1v-1zm0 2h1v1h-1v-1zm0 2h4v1h-4v-1z" id="document"/><path d="M3 0v1h-.75c-.686 0-1.25.564-1.25 1.25v.5c0 .678.437 1.242 1.094 1.406l2.563.656c.143.036.344.296.344.438v.5c0 .134-.116.25-.25.25h-2.5c-.116 0-.212-.037-.25-.063v-.938h-1v1c0 .342.203.627.438.781.234.155.518.219.813.219h.75v1h1v-1h.75c.686 0 1.25-.564 1.25-1.25v-.5c0-.678-.437-1.242-1.094-1.406l-2.563-.656c-.143-.036-.344-.296-.344-.438v-.5c0-.134.116-.25.25-.25h2.5c.116 0 .212.037.25.063v.938h1v-1c0-.342-.203-.627-.438-.781-.234-.155-.518-.219-.813-.219h-.75v-1h-1z" id="dolla
 r"/><path d="M0 1v6l3-3v-3h-3zm5 0v6l3-3v-3h-3z" id="double-quote-sans-left"/><path d="M3 1l-3 3v3h3v-6zm5 0l-3 3v3h3v-6z" id="double-quote-sans-right"/><path d="M3 1c-1.651 0-3 1.349-3 3v3h3v-3h-2c0-1.109.891-2 2-2v-1zm5 0c-1.651 0-3 1.349-3 3v3h3v-3h-2c0-1.109.891-2 2-2v-1z" id="double-quote-serif-left"/><path d="M0 1v3h2c0 1.109-.891 2-2 2v1c1.651 0 3-1.349 3-3v-3h-3zm5 0v3h2c0 1.109-.891 2-2 2v1c1.651 0 3-1.349 3-3v-3h-3z" id="double-quote-serif-right"/><path d="M4 0l-.344.344c-.11.11-2.656 2.685-2.656 4.875 0 1.65 1.35 3 3 3s3-1.35 3-3c0-2.19-2.546-4.765-2.656-4.875l-.344-.344zm-1.5 4.719c.28 0 .5.22.5.5 0 .55.45 1 1 1 .28 0 .5.22.5.5s-.22.5-.5.5c-1.1 0-2-.9-2-2 0-.28.22-.5.5-.5z" id="droplet"/><path d="M4 0l-4 5h8l-4-5zm-4 6v2h8v-2h-8z" id="eject"/><path d="M4 0l-3 3h6l-3-3zm-3 5l3 3 3-3h-6z" id="elevator"/><path d="M0 3v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2z" id="ellipses"/><path d="M0 1v1l4 2 4-2v-1h-8zm0 2v4h8v-4l-4 2-4-2z" id="envelope-closed"/><path d="M4 0l-4 2v6h8v-6l
 -4-2zm0 1.125l3 1.5v1.875l-3 1.5-3-1.5v-1.875l3-1.5zm-2 1.875v1l2 1 2-1v-1h-4z" id="envelope-open"/><path d="M5 0c-1.858 0-3.398 1.278-3.844 3h-1.906l-.25 1h2c0 .345.073.68.156 1h-1.969l-.188 1h2.563c.696 1.185 1.969 2 3.438 2 .734 0 1.407-.215 2-.563v-1.219c-.531.479-1.225.781-2 .781-.888 0-1.671-.392-2.219-1h2.219l.156-1h-2.969c-.113-.317-.188-.643-.188-1h3.344l.156-1h-3.313c.414-1.16 1.507-2 2.813-2 .655 0 1.258.209 1.75.563l.156-1.063c-.57-.313-1.213-.5-1.906-.5z" id="euro"/><path d="M0 0v1h7v-1h-7zm0 2v1h5v-1h-5zm0 2v1h8v-1h-8zm0 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1z" id="excerpt"/><path d="M0 0v1h8v-1h-8zm2 2l2 2 2-2h-4zm-2 4v2h8v-2h-8z" id="expand-down"/><path d="M0 0v8h1v-8h-1zm6 0v8h2v-8h-2zm-4 2v4l2-2-2-2z" id="expand-left"/><path d="M0 0v8h2v-8h-2zm7 0v8h1v-8h-1zm-1 2l-2 2 2 2v-4z" id="expand-right"/><path d="M0 0v2h8v-2h-8zm4 4l-2 2h4l-2-2zm-4 3v1h8v-1h-8z" id="expand-up"/><path d="M0 0v8h8v-2h-1v1h-6v-6h1v-1h-2zm4 0l1.5 1.5-2.5 2.5 1 1 2.5-2.5 1.5 1.5v-4h-4z" id="e
 xternal-link"/><path d="M4.031 1c-2.53 0-4.031 3-4.031 3s1.501 3 4.031 3c2.47 0 3.969-3 3.969-3s-1.499-3-3.969-3zm-.031 1c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm0 1c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1c0-.1-.032-.191-.063-.281-.08.16-.237.281-.438.281-.28 0-.5-.22-.5-.5 0-.2.121-.357.281-.438-.09-.03-.181-.063-.281-.063z" id="eye"/><path d="M3.313 0a.5.5 0 0 0-.188.844l.625.625-3.594 3.656-.156.156v2.719h2.719l.125-.156 3.656-3.656.625.656a.5.5 0 1 0 .719-.688l-.938-.938.656-.656c.59-.58.59-1.545 0-2.125-.56-.57-1.555-.57-2.125 0l-.656.656-.938-.938a.5.5 0 0 0-.469-.156.5.5 0 0 0-.063 0zm1.156 2.188l1.313 1.313-3.156 3.156-1.281-1.313 3.125-3.156z" id="eyedropper"/><path d="M0 0v8h7v-4h-4v-4h-3zm4 0v3h3l-3-3z" id="file"/><path d="M2 0c1 2-2 3-2 5l2 3c-.98-1.98 2-3 2-5l-2-3zm3 3c1 2-2 3-2 5h3c.4 0 1-.5 1-2 0-2-2-3-2-3z" id="fire"/><path d="M0 0v8h1v-8h-1zm2 0v4h2v1h4l-2-1.969 2-2.031h-3v-1h-3z" id="flag"/><path d="M3.5 0l-1.5 3h2l-.656 2h-1.344l1 3 3-3h-1.5l1.5-3h-2l1-2h-1.5z" i
 d="flash"/><path d="M0 0v2h8v-1h-5v-1h-3zm0 3v4.5c0 .28.22.5.5.5h7c.28 0 .5-.22.5-.5v-4.5h-8z" id="folder"/><path d="M1.5 0c-.828 0-1.5.672-1.5 1.5 0 .656.414 1.202 1 1.406v2.188c-.586.204-1 .75-1 1.406 0 .828.672 1.5 1.5 1.5s1.5-.672 1.5-1.5c0-.595-.341-1.101-.844-1.344.09-.09.205-.156.344-.156h2c.823 0 1.5-.677 1.5-1.5v-.594c.586-.204 1-.75 1-1.406 0-.828-.672-1.5-1.5-1.5s-1.5.672-1.5 1.5c0 .656.414 1.202 1 1.406v.594c0 .277-.223.5-.5.5h-2c-.171 0-.346.04-.5.094v-1.188c.586-.204 1-.75 1-1.406 0-.828-.672-1.5-1.5-1.5z" id="fork"/><path d="M0 0v4l1.5-1.5 1.5 1.5 1-1-1.5-1.5 1.5-1.5h-4zm5 4l-1 1 1.5 1.5-1.5 1.5h4v-4l-1.5 1.5-1.5-1.5z" id="fullscreen-enter"/><path d="M1 0l-1 1 1.5 1.5-1.5 1.5h4v-4l-1.5 1.5-1.5-1.5zm3 4v4l1.5-1.5 1.5 1.5 1-1-1.5-1.5 1.5-1.5h-4z" id="fullscreen-exit"/><path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1c.333 0 .637.086.938.188-.214.197-.45.383-.406.563.04.18.688.13.688.5 0 .27-.425.346-.125.656.35.35-.636.978-.656 1.438-.03.83.841.969 
 1.531.969.424 0 .503.195.469.438-.546.758-1.438 1.25-2.438 1.25-.378 0-.729-.09-1.063-.219.224-.442-.313-1.344-.781-1.625-.226-.226-.689-.114-.969-.219-.092-.271-.178-.545-.188-.844.031-.05.081-.094.156-.094.19 0 .454.374.594.344.18-.04-.742-1.313-.313-1.563.2-.12.609.394.469-.156-.12-.51.366-.276.656-.406.26-.11.455-.414.125-.594l-.219-.188c.45-.27.972-.438 1.531-.438zm2.313 1.094c.184.222.323.481.438.75l-.188.219c-.29.27-.327-.212-.438-.313-.13-.11-.638.025-.688-.125-.077-.181.499-.418.875-.531z" id="globe"/><path d="M7.031 0l-3.031 3-1-1-3 3.031 1 1 2-2.031 1 1 4-4-.969-1zm-7.031 7v1h8v-1h-8z" id="graph"/><path d="M0 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm-6 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm-6 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm-6 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1z" id="grid-four-up"/><path d="M0 0v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2zm-6 3v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2zm-6 3v2h
 2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2z" id="grid-three-up"/><path d="M0 0v3h3v-3h-3zm5 0v3h3v-3h-3zm-5 5v3h3v-3h-3zm5 0v3h3v-3h-3z" id="grid-two-up"/><path d="M.188 0c-.11 0-.188.077-.188.188v3.313c0 .28.22.5.5.5h6c.28 0 .5-.22.5-.5v-3.313c0-.11-.077-.188-.188-.188h-6.625zm-.188 4.906v2.906c0 .11.077.188.188.188h6.625c.11 0 .188-.077.188-.188v-2.906c-.16.05-.32.094-.5.094h-6c-.18 0-.34-.044-.5-.094zm5.5 1.094c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="hard-drive"/><path d="M0 0v1h.5c.28 0 .5.22.5.5v4c0 .28-.22.5-.5.5h-.5v1h3v-1h-.5c-.28 0-.5-.22-.5-.5v-1.5h3v1.5c0 .28-.22.5-.5.5h-.5v1h3v-1h-.5c-.28 0-.5-.22-.5-.5v-4c0-.28.22-.5.5-.5h.5v-1h-3v1h.5c.28 0 .5.22.5.5v1.5h-3v-1.5c0-.28.22-.5.5-.5h.5v-1h-3z" id="header"/><path d="M4 0c-1.651 0-3 1.349-3 3v1h-.5a.5.5 0 0 0-.5.5v2a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-3.5c0-1.109.891-2 2-2s2 .891 2 2v3.5a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-2a.5.5 0 0 0-.5-.5h-.5v-1c0-1.651-1.349-3-3-3z" id="headphones"/><path d="M2 1c-.55 0-1.04
 6.224-1.406.594-.37.36-.594.856-.594 1.406 0 .55.224 1.046.594 1.406l3.406 3.438 3.406-3.438c.37-.37.594-.856.594-1.406 0-.55-.224-1.046-.594-1.406-.36-.37-.856-.594-1.406-.594-.55 0-1.046.224-1.406.594-.37.36-.594.856-.594 1.406 0-.55-.224-1.046-.594-1.406-.36-.37-.856-.594-1.406-.594z" id="heart"/><path d="M4 0l-4 3h1v4h2v-2h2v2h2v-4.031l1 .031-4-3z" id="home"/><path d="M0 0v8h8v-8h-8zm1 1h6v3l-1-1-1 1 2 2v1h-1l-4-4-1 1v-3z" id="image"/><path d="M.188 0c-.11 0-.188.077-.188.188v7.625c0 .11.077.188.188.188h7.625c.11 0 .188-.077.188-.188v-7.625c0-.11-.077-.188-.188-.188h-7.625zm.813 2h6v3h-1l-1 1h-2l-1-1h-1v-3z" id="inbox"/><path d="M2 2c-1.31 0-2 1.01-2 2s.69 2 2 2c.79 0 1.42-.559 2-1.219.58.66 1.19 1.219 2 1.219 1.31 0 2-1.01 2-2s-.69-2-2-2c-.81 0-1.42.559-2 1.219-.57-.66-1.21-1.219-2-1.219zm0 1c.42 0 .884.47 1.344 1-.46.53-.924 1-1.344 1-.74 0-1-.54-1-1 0-.46.26-1 1-1zm4 0c.74 0 1 .54 1 1 0 .46-.26 1-1 1-.43 0-.894-.47-1.344-1 .45-.53.914-1 1.344-1z" id="infinity"/><path d="M5 0c
 -.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1zm-1.5 2.5c-.83 0-1.5.67-1.5 1.5h1c0-.28.22-.5.5-.5s.5.22.5.5-1 1.64-1 2.5c0 .86.67 1.5 1.5 1.5s1.5-.67 1.5-1.5h-1c0 .28-.22.5-.5.5s-.5-.22-.5-.5c0-.36 1-1.84 1-2.5 0-.81-.67-1.5-1.5-1.5z" id="info"/><path d="M2 0v1h1.625l-.063.125-2 5-.344.875h-1.219v1h5v-1h-1.625l.063-.125 2-5 .344-.875h1.219v-1h-5z" id="italic"/><path d="M0 0v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h8v-1h-8zm1 2v1h6v-1h-6z" id="justify-center"/><path d="M0 0v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h6v-1h-6z" id="justify-left"/><path d="M0 0v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h8v-1h-8zm2 2v1h6v-1h-6z" id="justify-right"/><path d="M5.5 0c-1.38 0-2.5 1.12-2.5 2.5 0 .16.033.297.063.438l-3.063 3.063v2h3v-2h2v-1l.063-.063c.14.03.277.063.438.063 1.38 0 2.5-1.12 2.5-2.5s-1.12-2.5-2.5-2.5zm.5 1c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z" id="key"/><path d="M1.344 0a.5.5 0 0 0-.344.5v3.5h-1v1.5c0 .28.22.5.5.5h7c.28 0 .5-.22.5-.5v-1.5h-1v-3.5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0-.0
 94 0 .5.5 0 0 0-.063 0zm.656 1h4v3h-1v1h-2v-1h-1v-3z" transform="translate(0 1)" id="laptop"/><path d="M0 0v4h4v-4h-4zm5 2v3h-3v1h4v-4h-1zm2 2v3h-3v1h4v-4h-1z" id="layers"/><path d="M3.406 0a.5.5 0 0 0-.125.063l-3 1.5a.5.5 0 1 0 .438.875l3-1.5a.5.5 0 0 0-.313-.938zm1 1.5a.5.5 0 0 0-.125.063l-4 2a.5.5 0 1 0 .438.875l4-2a.5.5 0 0 0-.313-.938zm0 2a.5.5 0 0 0-.125.063l-3 1.5a.5.5 0 0 0 .219.938h2a.502.502 0 0 0 .156-1l1.063-.563a.5.5 0 0 0-.313-.938zm-2.563 3.5a.502.502 0 0 0 .156 1h1a.5.5 0 1 0 0-1h-1a.5.5 0 0 0-.094 0 .502.502 0 0 0-.063 0z" transform="translate(1)" id="lightbulb"/><path d="M2 0v1h-1v1h2v-2h-1zm3.875.031c-.184.01-.354.03-.531.094-.27.095-.531.25-.75.469l-.438.438a.5.5 0 1 0 .688.688l.438-.438c.101-.101.245-.173.375-.219.352-.126.78-.064 1.063.219.395.389.4 1.037 0 1.438l-1.5 1.5a.5.5 0 1 0 .688.688l1.5-1.5c.78-.78.785-2.041 0-2.813-.279-.279-.606-.452-.969-.531-.181-.039-.379-.041-.563-.031zm-3.594 2.906a.5.5 0 0 0-.188.156l-1.5 1.5c-.78.78-.785 2.041 0 2.813.557.557 
 1.355.722 2.063.469.27-.095.531-.25.75-.469l.438-.438a.5.5 0 1 0-.688-.688l-.438.438c-.101.101-.245.173-.375.219-.352.126-.78.064-1.063-.219-.395-.389-.4-1.037 0-1.438l1.5-1.5a.5.5 0 0 0-.438-.844.5.5 0 0 0-.063 0zm2.719 3.063v2h1v-1h1v-1h-2z" id="link-broken"/><path d="M5.875.031c-.184.01-.354.03-.531.094-.27.095-.531.25-.75.469a.5.5 0 1 0 .688.688c.101-.101.245-.173.375-.219.352-.126.78-.064 1.063.219.395.389.4 1.037 0 1.438l-1.5 1.5c-.434.434-.799.483-1.063.469-.264-.015-.406-.125-.406-.125a.504.504 0 1 0-.5.875s.34.222.844.25c.504.028 1.197-.165 1.813-.781l1.5-1.5c.78-.78.785-2.041 0-2.813-.279-.279-.606-.452-.969-.531-.181-.039-.379-.041-.563-.031zm-2 2.313c-.501-.019-1.186.155-1.781.75l-1.5 1.5c-.78.78-.785 2.041 0 2.813.557.557 1.355.722 2.063.469.27-.095.531-.25.75-.469a.5.5 0 1 0-.688-.688c-.101.101-.245.173-.375.219-.352.126-.78.064-1.063-.219-.395-.389-.4-1.037 0-1.438l1.5-1.5c.405-.405.752-.448 1.031-.438.279.011.469.094.469.094a.5.5 0 1 0 .438-.875s-.343-.199-.844-.219z
 " id="link-intact"/><path d="M0 0v3h3v-3h-3zm4 0v1h4v-1h-4zm0 2v1h3v-1h-3zm-4 2v3h3v-3h-3zm4 0v1h4v-1h-4zm0 2v1h3v-1h-3z" id="list-rich"/><path d="M.5 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm1.5 0v1h6v-1h-6zm-1.5 2c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm1.5 0v1h6v-1h-6zm-1.5 2c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm1.5 0v1h6v-1h-6zm-1.5 2c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm1.5 0v1h6v-1h-6z" id="list"/><path d="M8 0l-8 4 3 1 1 3 4-8z" id="location"/><path d="M4 0c-1.099 0-2 .901-2 2v1h-1v4h6v-4h-1v-1c0-1.099-.901-2-2-2zm0 1c.561 0 1 .439 1 1v1h-2v-1c0-.561.439-1 1-1z" id="lock-locked"/><path d="M4 0c-1.099 0-2 .901-2 2h1c0-.561.439-1 1-1 .561 0 1 .439 1 1v2h-4v4h6v-4h-1v-2c0-1.099-.901-2-2-2z" id="lock-unlocked"/><path d="M4 1c-1.651 0-3 1.349-3 3h-1l1.5 2 1.5-2h-1c0-1.109.891-2 2-2v-1zm2.5 1l-1.5 2h1c0 1.109-.891 2-2 2v1c1.651 0 3-1.349 3-3h1l-1.5-2z" id="loop-circular"/><path d="M1 0v2h1v-1h4v2h-1l1.5 
 2.5 1.5-2.5h-1v-3h-6zm.5 2.5l-1.5 2.5h1v3h6v-2h-1v1h-4v-2h1l-1.5-2.5z" id="loop-square"/><path d="M6 0v1h-5c-.554 0-1 .446-1 1v1h1v-1h5v1l2-1.5-2-1.5zm-4 4l-2 1.5 2 1.5v-1h5c.542 0 1-.458 1-1v-1h-1v1h-5v-1z" id="loop"/><path d="M3.5 0c-1.927 0-3.5 1.573-3.5 3.5s1.573 3.5 3.5 3.5c.592 0 1.166-.145 1.656-.406a1 1 0 0 0 .125.125l1 1a1.016 1.016 0 1 0 1.438-1.438l-1-1a1 1 0 0 0-.156-.125c.266-.493.438-1.059.438-1.656 0-1.927-1.573-3.5-3.5-3.5zm0 1c1.387 0 2.5 1.113 2.5 2.5 0 .661-.241 1.273-.656 1.719l-.031.031a1 1 0 0 0-.125.125c-.442.397-1.043.625-1.688.625-1.387 0-2.5-1.113-2.5-2.5s1.113-2.5 2.5-2.5z" id="magnifying-glass"/><path d="M4 0c-1.66 0-3 1.34-3 3 0 2 3 5 3 5s3-3 3-5c0-1.66-1.34-3-3-3zm0 1c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2z" id="map-marker"/><path d="M0 0v8h8v-2.375a.5.5 0 0 0 0-.219v-5.406h-8zm1 1h6v4h-1.5a.5.5 0 0 0-.094 0 .502.502 0 1 0 .094 1h1.5v1h-6v-6zm2.5 1c-.83 0-1.5.67-1.5 1.5 0 1 1.5 2.5 1.5 2.5s1.5-1.5 1.5-2.5c0-.83-.67-1.5-1.5-1.5zm0 1c.28 0 .5.22.5.5s-
 .22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="map"/><path d="M1 1v6h2v-6h-2zm4 0v6h2v-6h-2z" id="media-pause"/><path d="M1 1v6l6-3-6-3z" id="media-play"/><path d="M4 1c-1.657 0-3 1.343-3 3s1.343 3 3 3 3-1.343 3-3-1.343-3-3-3z" id="media-record"/><path d="M4 1l-4 3 4 3v-6zm0 3l4 3v-6l-4 3z" id="media-skip-backward"/><path d="M0 1v6l4-3-4-3zm4 3v3l4-3-4-3v3z" id="media-skip-forward"/><path d="M0 1v6h2v-6h-2zm2 3l5 3v-6l-5 3z" id="media-step-backward"/><path d="M0 1v6l5-3-5-3zm5 3v3h2v-6h-2v3z" id="media-step-forward"/><path d="M1 1v6h6v-6h-6z" id="media-stop"/><path d="M2 0v2h-2v4h2v2h4v-2h2v-4h-2v-2h-4z" id="medical-cross"/><path d="M0 1v1h8v-1h-8zm0 2.969v1h8v-1h-8zm0 3v1h8v-1h-8z" id="menu"/><path d="M2.906-.031a1 1 0 0 0-.125.031 1 1 0 0 0-.781 1v2a1 1 0 1 0 2 0v-2a1 1 0 0 0-1.094-1.031zm-2.563 2.031a.5.5 0 0 0-.344.5v.5c0 1.476 1.091 2.693 2.5 2.938v1.063h-.5c-.55 0-1 .45-1 1h4c0-.55-.45-1-1-1h-.5v-1.063c1.409-.244 2.5-1.461 2.5-2.938v-.5a.5.5 0 1 0-1 0v.5c0 1.109-.891 2-2 2s-2-.891-2
 -2v-.5a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0z" transform="translate(1)" id="microphone"/><path d="M0 3v2h8v-2h-8z" id="minus"/><path d="M.344 0a.5.5 0 0 0-.344.5v5a.5.5 0 0 0 .5.5h2.5v1h-1c-.55 0-1 .45-1 1h6c0-.55-.45-1-1-1h-1v-1h2.5a.5.5 0 0 0 .5-.5v-5a.5.5 0 0 0-.5-.5h-7a.5.5 0 0 0-.094 0 .5.5 0 0 0-.063 0zm.656 1h6v4h-6v-4z" id="monitor"/><path d="M2.719 0c-1.58.53-2.719 2.021-2.719 3.781 0 2.21 1.79 4 4 4 1.76 0 3.251-1.17 3.781-2.75-.4.14-.831.25-1.281.25-2.21 0-4-1.79-4-4 0-.44.079-.881.219-1.281z" id="moon"/><path d="M3.5 0l-1.5 1.5h1v1.5h-1.5v-1l-1.5 1.5 1.5 1.5v-1h1.5v1.5h-1l1.5 1.5 1.5-1.5h-1v-1.5h1.5v1l1.5-1.5-1.5-1.5v1h-1.5v-1.5h1l-1.5-1.5z" id="move"/><path d="M8 0c-5 0-6 1-6 1v4.094c-.154-.054-.327-.094-.5-.094-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5v-3.969c.732-.226 1.99-.438 4-.5v2.063c-.154-.054-.327-.094-.5-.094-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5v-5.5z" id="musical-note"/><path d="M5 0c-.514 0-1.021.201-1.406.594l-2.781 2.719c-1
 .07 1.07-1.07 2.805 0 3.875 1.07 1.07 2.805 1.07 3.875 0l1.25-1.25-.688-.688-.906.875-.344.375c-.69.69-1.81.69-2.5 0-.682-.682-.668-1.778 0-2.469l2.781-2.719v-.031c.389-.395 1.037-.4 1.438 0 .388.381.378 1.006 0 1.406l-2.5 2.469c-.095.095-.28.095-.375 0-.095-.095-.095-.28 0-.375l.375-.344.594-.625-.688-.688-.875.875-.094.094c-.485.485-.485 1.265 0 1.75.485.485 1.265.485 1.75 0l2.5-2.438c.78-.78.785-2.041 0-2.813-.39-.39-.893-.594-1.406-.594z" id="paperclip"/><path d="M6 0l-1 1 2 2 1-1-2-2zm-2 2l-4 4v2h2l4-4-2-2z" id="pencil"/><path d="M5.5 0c-.51 0-.949.355-1.219.875.45.54.719 1.275.719 2.125 0 .29-.034.574-.094.844.18.11.374.156.594.156.83 0 1.5-.9 1.5-2s-.67-2-1.5-2zm-3 1c-.828 0-1.5.895-1.5 2s.672 2 1.5 2 1.5-.895 1.5-2-.672-2-1.5-2zm4.75 3.156c-.43.51-1.018.824-1.688.844.27.38.438.844.438 1.344v.656h2v-1.656c0-.52-.31-.968-.75-1.188zm-6.5 1c-.44.22-.75.668-.75 1.188v1.656h5v-1.656c0-.52-.31-.968-.75-1.188-.44.53-1.06.844-1.75.844s-1.31-.314-1.75-.844z" id="people"/><path d="M4 0
 c-1.105 0-2 1.119-2 2.5s.895 2.5 2 2.5 2-1.119 2-2.5-.895-2.5-2-2.5zm-2.094 5c-1.07.04-1.906.92-1.906 2v1h8v-1c0-1.08-.836-1.96-1.906-2-.54.61-1.284 1-2.094 1-.81 0-1.554-.39-2.094-1z" id="person"/><path d="M1.188 0c-.11 0-.188.077-.188.188v7.625c0 .11.077.188.188.188h4.625c.11 0 .188-.077.188-.188v-7.625c0-.11-.077-.188-.188-.188h-4.625zm.813 1h3v5h-3v-5zm1.5 5.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="phone"/><path d="M3.5 0c-.97 0-1.839.391-2.469 1.031l2.969 2.969v-3.969c-.16-.03-.33-.031-.5-.031zm1.5 1.063v3.406l-2.719 2.719c.6.5 1.369.813 2.219.813 1.93 0 3.5-1.57 3.5-3.5 0-1.76-1.31-3.197-3-3.438zm-4.094 1.313c-.55.54-.906 1.285-.906 2.125 0 .95.435 1.804 1.125 2.344l2.156-2.125-2.375-2.344z" id="pie-chart"/><path d="M1.344 0a.502.502 0 0 0 .156 1h.5v2h-1c-.55 0-1 .45-1 1h3v3l.438 1 .563-1v-3h3c0-.55-.45-1-1-1h-1v-2h.5a.5.5 0 1 0 0-1h-4a.5.5 0 0 0-.094 0 .502.502 0 0 0-.063 0z" id="pin"/><path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-1 2l
 3 2-3 2v-4z" id="play-circle"/><path d="M3 0v3h-3v2h3v3h2v-3h3v-2h-3v-3h-2z" id="plus"/><path d="M3 0v4h1v-4h-1zm-1.281 1.438l-.375.313c-.803.64-1.344 1.634-1.344 2.75 0 1.929 1.571 3.5 3.5 3.5s3.5-1.571 3.5-3.5c0-1.116-.529-2.11-1.344-2.75l-.375-.313-.625.781.375.313c.585.46.969 1.165.969 1.969 0 1.391-1.109 2.5-2.5 2.5s-2.5-1.109-2.5-2.5c0-.804.361-1.509.938-1.969l.406-.313-.625-.781z" id="power-standby"/><path d="M2 0v2h4v-2h-4zm-1.906 3c-.06 0-.094.034-.094.094v2.813c0 .06.034.094.094.094h.906v-2h6v2h.906c.06 0 .094-.034.094-.094v-2.813c0-.06-.034-.094-.094-.094h-7.813zm1.906 2v3h4v-3h-4z" id="print"/><path d="M0 0v7h1v-7h-1zm7 0v7h1v-7h-1zm-5 1v1h2v-1h-2zm1 2v1h2v-1h-2zm1 2v1h2v-1h-2z" id="project"/><path d="M3.25 0l-.469 1.531-.781 2.563-.031-.063-.094-.344h-1.875v1h1.156l.375 1.156.469 1.469.469-1.469.781-2.5.781 2.5.406 1.313.531-1.281.594-1.469.125.281h2.313v-1h-1.688l-.375-.719-.5-1-.406 1.031-.469 1.188-.844-2.656-.469-1.531z" id="pulse"/><path d="M3 0c-.28 0-.539.101-.71
 9.281-.18.18-.281.439-.281.719 0 .28.181.479.281.719.03.06.063.161.063.281h-2.344v6h2.344c0-.12-.011-.221-.031-.281-.11-.24-.313-.439-.313-.719 0-.28.101-.539.281-.719.18-.18.439-.281.719-.281.28 0 .539.101.719.281.18.18.281.439.281.719 0 .28-.181.479-.281.719-.03.06-.063.161-.063.281h2.344v-2.344c.12 0 .221.011.281.031.24.11.439.313.719.313.28 0 .539-.101.719-.281.18-.18.281-.439.281-.719 0-.28-.101-.539-.281-.719-.18-.18-.439-.281-.719-.281-.28 0-.479.181-.719.281-.06.03-.161.063-.281.063v-2.344h-2.344c0-.12.011-.221.031-.281.11-.24.313-.439.313-.719 0-.28-.101-.539-.281-.719-.18-.18-.439-.281-.719-.281z" id="puzzle-piece"/><path d="M4.469 0c-.854 0-1.48.256-1.875.656s-.54.901-.594 1.281l1 .125c.036-.26.125-.497.313-.688.188-.19.491-.375 1.156-.375.664 0 1.019.163 1.219.344.199.181.281.405.281.656 0 .833-.313 1.063-.813 1.5-.5.438-1.188 1.083-1.188 2.25v.25h1v-.25c0-.833.344-1.063.844-1.5.5-.438 1.156-1.083 1.156-2.25 0-.479-.168-1.02-.594-1.406-.426-.387-1.071-.594-1.906-.594zm-.
 5 7v1h1v-1h-1z" id="question-mark"/><path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2 0 .52.201 1.015.531 1.375.26-.22.599-.375.969-.375.2 0 .393.055.563.125.17-.64.748-1.125 1.438-1.125s1.268.485 1.438 1.125c.17-.07.362-.125.563-.125.63 0 1.155.388 1.375.938.64-.17 1.125-.747 1.125-1.438 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5zm-1.156 5a.5.5 0 0 0-.344.5v2a.5.5 0 1 0 1 0v-2a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0zm-2 1a.5.5 0 0 0-.344.5v1a.5.5 0 1 0 1 0v-1a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0zm4 0a.5.5 0 0 0-.344.5v1a.5.5 0 1 0 1 0v-1a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0z" id="rain"/><path d="M6 0v1h-.5c-.354 0-.6.116-.813.375l-1.406 1.75-1.5-1.75v-.031c-.212-.236-.427-.344-.781-.344h-1v1h1.031v.031l1.625 1.906-1.625 2.031v.031h-1.031v1h1c.354 0 .6-.116.813-.375l1.531-1.906 1.625 1.906v.031c.212.236.427.344.781.344h.25v1l2-1.5-2-1.5v1h-.281v-.031l-1.75-2.063 1.5-1.875v-.031h.531v1l2-1.5-2-1.5z" id="random"/><path d="M4 0c-2.201 0-4 1.799-4 4s1.799 4 4 4c1.104 0 2.092-.456 2.8
 13-1.188l-.688-.688c-.54.548-1.289.875-2.125.875-1.659 0-3-1.341-3-3s1.341-3 3-3c.834 0 1.545.354 2.094.906l-1.094 1.094h3v-3l-1.188 1.188c-.731-.72-1.719-1.188-2.813-1.188z" id="reload"/><path d="M4 0l1.656 1.656-4 4-1.656-1.656v4h4l-1.656-1.656 4-4 1.656 1.656v-4h-4z" id="resize-both"/><path d="M3.5 0l-2.5 3h2v2h-2l2.5 3 2.5-3h-2v-2h2l-2.5-3z" id="resize-height"/><path d="M3 1l-3 2.5 3 2.5v-2h2v2l3-2.5-3-2.5v2h-2v-2z" id="resize-width"/><path d="M0 0v2c3.331 0 6 2.669 6 6h2c0-4.409-3.591-8-8-8zm0 3v2c1.67 0 3 1.33 3 3h2c0-2.75-2.25-5-5-5zm0 3v2h2c0-1.11-.89-2-2-2z" id="rss-alt"/><path d="M1 0v1c3.32 0 6 2.68 6 6h1c0-3.86-3.14-7-7-7zm0 2v1c2.221 0 4 1.779 4 4h1c0-2.759-2.241-5-5-5zm0 2v1c1.109 0 2 .891 2 2h1c0-1.651-1.349-3-3-3zm0 2c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z" id="rss"/><path d="M3 0c-.55 0-1 .45-1 1v5.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1.5h-1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-3h-4v-2.5c0-.28.22-.5.5-.5s.5.22.5.5v1.5h4v-2c0-.55-.45-1-1-1h-4z" id="script"/
 ><path d="M.75 0c-.402 0-.75.348-.75.75v5.5c0 .402.348.75.75.75h4.5c.402 0 .75-.348.75-.75v-1.25h-1v1h-4v-5h2v-1h-2.25zm5.25 0v1c-2.05 0-3.704 1.544-3.938 3.531.213-.875.999-1.531 1.938-1.531h2v1l2-2-2-2z" id="share-boxed"/><path d="M5 0v2c-4 0-5 2.05-5 5 .52-1.98 2-3 4-3h1v2l3-3.156-3-2.844z" id="share"/><path d="M4 0l-.188.094-3.5 1.469-.313.125v.313c0 1.657.666 3.122 1.469 4.188.401.533.828.969 1.25 1.281.422.313.826.531 1.281.531.455 0 .86-.219 1.281-.531.422-.313.849-.749 1.25-1.281.803-1.065 1.469-2.53 1.469-4.188v-.313l-.313-.125-3.5-1.469-.188-.094zm0 1.094v5.906c-.045 0-.328-.069-.656-.313s-.714-.631-1.063-1.094c-.642-.851-1.137-2.025-1.219-3.281l2.938-1.219z" id="shield"/><path d="M6 0v8h1v-8h-1zm-2 1v7h1v-7h-1zm-2 2v5h1v-5h-1zm-2 2v3h1v-3h-1z" id="signal"/><path d="M3 0v1h-2l-1 1 1 1h2v5h1v-4h2l1-1-1-1h-2v-2h-1z" id="signpost"/><path d="M2 0v6h-2l2.5 2 2.5-2h-2v-6h-1zm2 0v1h2v-1h-2zm0 2v1h3v-1h-3zm0 2v1h4v-1h-4z" id="sort-ascending"/><path d="M2 0v6h-2l2.5 2 2.5-2h-2v-6h-
 1zm2 0v1h4v-1h-4zm0 2v1h3v-1h-3zm0 2v1h2v-1h-2z" id="sort-descending"/><path d="M.75 0c-.402 0-.75.348-.75.75v5.5c0 .402.348.75.75.75h6.5c.402 0 .75-.348.75-.75v-5.5c0-.402-.348-.75-.75-.75h-6.5zm.25 1h1v1h-1v-1zm2 0h4v1h-4v-1zm-2 2h1v1h-1v-1zm2 0h4v1h-4v-1zm-2 2h1v1h-1v-1zm2 0h4v1h-4v-1z" id="spreadsheet"/><path d="M4 0l-1 3h-3l2.5 2-1 3 2.5-2 2.5 2-1-3 2.5-2h-3l-1-3z" id="star"/><path d="M4 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-2.5 1c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm5 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-2.5 1c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2zm-3.5 1.5c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm7 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-6 2.5c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm5 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-2.5 1c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5z" id="sun"/><path d="M.344 0c-.18
  0-.344.164-.344.344v7.313c0 .18.164.344.344.344h6.313c.18 0 .344-.164.344-.344v-7.313c0-.18-.164-.344-.344-.344h-6.313zm.656 1h5v5h-5v-5zm2.5 5.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="tablet"/><path d="M0 0v3l5 5 3-3-5-5h-3zm2 1c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z" id="tag"/><path d="M0 1v2l3 3 1.5-1.5.5-.5-2-2-1-1h-2zm3.406 0l3 3-1.188 1.219.781.781 2-2-3-3h-1.594zm-1.906 1c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="tags"/><path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3-3-1.337-3-3 1.337-3 3-3zm0 1c-1.099 0-2 .901-2 2s.901 2 2 2 2-.901 2-2-.901-2-2-2zm0 1c.558 0 1 .442 1 1s-.442 1-1 1-1-.442-1-1 .442-1 1-1z" id="target"/><path d="M0 0v7h7v-3.594l-1 1v1.594h-5v-5h3.594l1-1h-5.594zm7 0l-3 3-1-1-1 1 2 2 4-4-1-1z" id="task"/><path d="M.094 0c-.06 0-.094.034-.094.094v7.813c0 .06.034.094.094.094h7.813c.06 0 .094-.034.094-.094v-7.813c0-.06-.034-.094-.094-.09
 4h-7.813zm1.406.781l1.719 1.719-1.719 1.719-.719-.719 1-1-1-1 .719-.719zm2.5 2.219h3v1h-3v-1z" id="terminal"/><path d="M0 0v2h.5c0-.55.45-1 1-1h1.5v5.5c0 .28-.22.5-.5.5h-.5v1h4v-1h-.5c-.28 0-.5-.22-.5-.5v-5.5h1.5c.55 0 1 .45 1 1h.5v-2h-8z" id="text"/><path d="M0 0v4h1v-4h-1zm2 0v4.001c.28 0 .529.101.719.281.18.19 1.151 2.115 1.281 2.375.13.26.386.393.656.313.26-.08.393-.355.313-.625-.08-.26-.469-1.594-.469-1.844s.22-.5.5-.5h1.5c.28 0 .5-.22.5-.5l-1.031-3.188c-.08-.18-.259-.313-.469-.313h-3.5z" id="thumb-down"/><path d="M4.438 0c-.19.021-.34.149-.438.344-.13.26-1.101 2.185-1.281 2.375-.19.18-.439.281-.719.281v4.001h3.5c.21 0 .389-.133.469-.313 0 0 1.031-2.908 1.031-3.188 0-.28-.22-.5-.5-.5h-1.5c-.28 0-.5-.25-.5-.5s.389-1.574.469-1.844c.08-.27-.053-.545-.313-.625l-.219-.031zm-4.438 3v4h1v-4h-1z" id="thumb-up"/><path d="M2 0v1h1v.031c-1.697.241-3 1.707-3 3.469 0 1.929 1.571 3.5 3.5 3.5s3.5-1.571 3.5-3.5c0-.45-.086-.874-.219-1.25l-.938.344c.107.304.156.596.156.906 0 1.391-1.109 2.5-2.5 
 2.5s-2.5-1.109-2.5-2.5 1.109-2.5 2.5-2.5c.298 0 .585.051.875.156l.344-.938c-.221-.081-.471-.119-.719-.156v-.063h1v-1h-3zm5 1.125s-3.675 2.8-3.875 3c-.2.2-.2.519 0 .719.2.2.519.2.719 0 .2-.19 3.156-3.719 3.156-3.719z" id="timer"/><path d="M6 0v1h-6v1h6v1l2-1.5-2-1.5zm-4 4l-2 1.5 2 1.5v-1h6v-1h-6v-1z" id="transfer"/><path d="M3 0c-.55 0-1 .45-1 1h-1c-.55 0-1 .45-1 1h7c0-.55-.45-1-1-1h-1c0-.55-.45-1-1-1h-1zm-2 3v4.813c0 .11.077.188.188.188h4.625c.11 0 .188-.077.188-.188v-4.813h-1v3.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-3.5h-1v3.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-3.5h-1z" id="trash"/><path d="M1 0v4c0 1.1 1.12 2 2.5 2h.5c1.1 0 2-.9 2-2v-4h-1v4c0 .55-.45 1-1 1s-1-.45-1-1v-4h-2zm-1 7v1h7v-1h-7z" id="underline"/><path d="M.094 0c-.06 0-.094.034-.094.094v4.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-4.813c0-.06-.034-.094-.094-.094h-1.813zm6 0c-.06 0-.094.034-.094.094v4.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-4.813c0-.06-.034-.094-.094-.094h-1.813zm-3 2c-.06 0-.094
 .034-.094.094v2.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-2.813c0-.06-.034-.094-.094-.094h-1.813zm-3.094 4v1h8v-1h-8z" id="vertical-align-bottom"/><path d="M.094 0c-.06 0-.094.034-.094.094v1.906h2v-1.906c0-.06-.034-.094-.094-.094h-1.813zm6 0c-.06 0-.094.034-.094.094v1.906h2v-1.906c0-.06-.034-.094-.094-.094h-1.813zm-3 1c-.06 0-.094.034-.094.094v.906h2v-.906c0-.06-.034-.094-.094-.094h-1.813zm-3.094 2v1h8v-1h-8zm0 2v1.906c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-1.906h-2zm3 0v.906c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-.906h-2zm3 0v1.906c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-1.906h-2z" id="vertical-align-center"/><path d="M0 0v1h8v-1h-8zm.094 2c-.06 0-.094.034-.094.094v4.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-4.813c0-.06-.034-.094-.094-.094h-1.813zm3 0c-.06 0-.094.034-.094.094v2.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-2.813c0-.06-.034-.094-.094-.094h-1.813zm3 0c-.06 0-.094.034-.094.094v4.81
 3c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-4.813c0-.06-.034-.094-.094-.094h-1.813z" id="vertical-align-top"/><path d="M.5 1c-.28 0-.5.22-.5.5v4c0 .28.22.5.5.5h5c.28 0 .5-.22.5-.5v-1.5l1 1h1v-3h-1l-1 1v-1.5c0-.28-.22-.5-.5-.5h-5z" id="video"/><path d="M3.344 0l-1.344 2h-2v4h2l1.344 2h.656v-8h-.656zm1.656 1v1c.152 0 .313.026.469.063h.031c.86.215 1.5.995 1.5 1.938 0 .942-.64 1.722-1.5 1.938-.166.041-.338.063-.5.063v1c.258 0 .516-.035.75-.094 1.3-.325 2.25-1.508 2.25-2.906 0-1.398-.95-2.581-2.25-2.906-.234-.059-.492-.094-.75-.094zm0 2v2l.25-.031c.433-.118.75-.507.75-.969 0-.446-.325-.819-.75-.938v-.031h-.031l-.219-.031z" id="volume-high"/><path d="M4.344 0l-1.344 2h-2v4h2l1.344 2h.656v-8h-.656zm1.656 3v2l.25-.031c.433-.118.75-.507.75-.969 0-.446-.325-.819-.75-.938v-.031h-.031l-.219-.031z" id="volume-low"/><path d="M5.344 0l-1.344 2h-2v4h2l1.344 2h.656v-8h-.656z" id="volume-off"/><path d="M3.094 0c-.06 0-.105.044-.125.094l-2.938 6.813-.031.188v.813c0 .06.034.094.094.094h6.81
 3c.06 0 .094-.034.094-.094v-.813l-.031-.188-2.938-6.813c-.02-.05-.065-.094-.125-.094h-.813zm-.094 3h1v2h-1v-2zm0 3h1v1h-1v-1z" id="warning"/><path d="M3.75 0c-1.374 0-2.66.372-3.75 1.063l.531.875c.93-.59 2.033-.938 3.219-.938 1.2 0 2.323.31 3.25.906l.531-.813c-1.093-.703-2.401-1.094-3.781-1.094zm.031 3c-.795 0-1.531.227-2.156.625l.531.844c.475-.302 1.02-.469 1.625-.469.593 0 1.13.177 1.594.469l.531-.844c-.616-.388-1.338-.625-2.125-.625zm-.031 3c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z" id="wifi"/><path d="M5.5 0c-1.38 0-2.5 1.12-2.5 2.5 0 .32.078.626.188.906l-2.906 2.875c-.39.39-.39 1.016 0 1.406.2.2.459.313.719.313.26 0 .519-.091.719-.281l2.875-2.875c.28.1.586.156.906.156 1.38 0 2.5-1.12 2.5-2.5 0-.16-.032-.297-.063-.438l-.938.938h-2v-2l.938-.938c-.14-.03-.277-.062-.438-.063zm-4.5 6.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="wrench"/><path d="M1.406 0l-1.406 1.406.688.719 1.781 1.781-1.781 1.781-.688.719 1.406 1.406.719-.688 1.781-1.781 1.781 1.781.719.
 688 1.406-1.406-.688-.719-1.781-1.781 1.781-1.781.688-.719-1.406-1.406-.719.688-1.781 1.781-1.781-1.781-.719-.688z" id="x"/><path d="M0 0l2.25 3h-2.25v1h3v1h-3v1h3v2h1v-2h3v-1h-3v-1h3v-1h-2.25l2.25-3h-1l-2.313 3h-.375l-2.313-3h-1z" id="yen"/><path d="M3.5 0c-1.927 0-3.5 1.573-3.5 3.5s1.573 3.5 3.5 3.5c.592 0 1.166-.145 1.656-.406a1 1 0 0 0 .094.094l1.031 1.031a1.016 1.016 0 1 0 1.438-1.438l-1.031-1.031a1 1 0 0 0-.125-.094c.266-.493.438-1.059.438-1.656 0-1.927-1.573-3.5-3.5-3.5zm0 1c1.387 0 2.5 1.113 2.5 2.5 0 .587-.196 1.137-.531 1.563l-.031.031a1 1 0 0 0-.063.031 1 1 0 0 0-.281.281 1 1 0 0 0-.063.063c-.422.326-.953.531-1.531.531-1.387 0-2.5-1.113-2.5-2.5s1.113-2.5 2.5-2.5zm-.5 1v1h-1v1h1v1h1v-1h1v-1h-1v-1h-1z" id="zoom-in"/><path d="M3.5 0c-1.927 0-3.5 1.573-3.5 3.5s1.573 3.5 3.5 3.5c.592 0 1.166-.145 1.656-.406a1 1 0 0 0 .094.094l1.031 1.031a1.016 1.016 0 1 0 1.438-1.438l-1.031-1.031a1 1 0 0 0-.125-.094c.266-.493.438-1.059.438-1.656 0-1.927-1.573-3.5-3.5-3.5zm0 1c1.387 0 2.5 1.113
  2.5 2.5 0 .587-.196 1.137-.531 1.563l-.031.031a1 1 0 0 0-.063.031 1 1 0 0 0-.281.281 1 1 0 0 0-.063.063c-.422.326-.953.531-1.531.531-1.387 0-2.5-1.113-2.5-2.5s1.113-2.5 2.5-2.5zm-1.5 2v1h3v-1h-3z" id="zoom-out"/></defs></svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/sprite/open-iconic.svg b/assets/static/fonts/open-iconic/sprite/open-iconic.svg
deleted file mode 100644
index cba89bc..0000000
--- a/assets/static/fonts/open-iconic/sprite/open-iconic.svg
+++ /dev/null
@@ -1,452 +0,0 @@
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 8 8" style="display:none;">
-  <symbol viewBox="0 0 8 8" id="account-login">
-    <path d="M3 0v1h4v5h-4v1h5v-7h-5zm1 2v1h-4v1h4v1l2-1.5-2-1.5z" id="account-login"></path>
-  </symbol>
-  <defs>
-
-
-    <path d="M3 0v1h4v5h-4v1h5v-7h-5zm-1 2l-2 1.5 2 1.5v-1h4v-1h-4v-1z" id="account-logout"></path>
-
-    <path d="M3.5 1c-1.93 0-3.5 1.57-3.5 3.5 0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v.5h-1l2 2 2-2h-1v-.5c0-1.93-1.57-3.5-3.5-3.5z" id="action-redo"></path>
-
-    <path d="M4.5 1c-1.93 0-3.5 1.57-3.5 3.5v.5h-1l2 2 2-2h-1v-.5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5c0-1.93-1.57-3.5-3.5-3.5z" id="action-undo"></path>
-
-    <path d="M0 0v1h8v-1h-8zm1 2v1h6v-1h-6zm-1 2v1h8v-1h-8zm1 2v1h6v-1h-6z" id="align-center"></path>
-
-    <path d="M0 0v1h8v-1h-8zm0 2v1h6v-1h-6zm0 2v1h8v-1h-8zm0 2v1h6v-1h-6z" id="align-left"></path>
-
-    <path d="M0 0v1h8v-1h-8zm2 2v1h6v-1h-6zm-2 2v1h8v-1h-8zm2 2v1h6v-1h-6z" id="align-right"></path>
-
-    <path d="M4 0c-.69 0-1.336.19-1.906.5l3.219 2.344.719-2.25c-.59-.36-1.281-.594-2.031-.594zm-2.75 1.125c-.76.73-1.25 1.735-1.25 2.875 0 .25.022.489.063.719l3.094-2.219-1.906-1.375zm5.625.125l-1.219 3.75h2.219c.08-.32.125-.65.125-1 0-1.07-.435-2.03-1.125-2.75zm-4.719 3.188l-1.75 1.281c.55 1.13 1.595 1.989 2.875 2.219l-1.125-3.5zm1.563 1.563l.625 1.969c1.33-.11 2.454-.879 3.094-1.969h-3.719z" id="aperture"></path>
-
-    <path d="M3 0v5h-2l2.531 3 2.469-3h-2v-5h-1z" id="arrow-bottom"></path>
-
-    <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-1 1h2v3h2l-3 3-3-3h2v-3z" id="arrow-circle-bottom"></path>
-
-    <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1v2h3v2h-3v2l-3-3 3-3z" id="arrow-circle-left"></path>
-
-    <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1l3 3-3 3v-2h-3v-2h3v-2z" id="arrow-circle-right"></path>
-
-    <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1l3 3h-2v3h-2v-3h-2l3-3z" id="arrow-circle-top"></path>
-
-    <path d="M3 1l-3 2.531 3 2.469v-2h5v-1h-5v-2z" id="arrow-left"></path>
-
-    <path d="M5 1v2h-5v1h5v2l3-2.531-3-2.469z" id="arrow-right"></path>
-
-    <path d="M3 0v5h-2l3.031 3 2.969-3h-2v-5h-2z" id="arrow-thick-bottom"></path>
-
-    <path d="M3 1l-3 3.031 3 2.969v-2h5v-2h-5v-2z" id="arrow-thick-left"></path>
-
-    <path d="M5 1v2h-5v2h5v2l3-3.031-3-2.969z" id="arrow-thick-right"></path>
-
-    <path d="M3.969 0l-2.969 3h2v5h2v-5h2l-3.031-3z" id="arrow-thick-top"></path>
-
-    <path d="M3.469 0l-2.469 3h2v5h1v-5h2l-2.531-3z" id="arrow-top"></path>
-
-    <path d="M4 0v8h1v-8h-1zm-2 1v6h1v-6h-1zm4 1v4h1v-4h-1zm-6 1v2h1v-2h-1z" id="audio-spectrum"></path>
-
-    <path d="M1.188 1c-.734.722-1.188 1.748-1.188 2.844 0 1.095.454 2.09 1.188 2.813l.688-.719c-.546-.538-.875-1.269-.875-2.094s.329-1.587.875-2.125l-.688-.719zm5.625 0l-.688.719c.552.552.875 1.289.875 2.125 0 .836-.327 1.554-.875 2.094l.688.719c.732-.72 1.188-1.708 1.188-2.813 0-1.104-.459-2.115-1.188-2.844zm-4.219 1.406c-.362.362-.594.889-.594 1.438 0 .548.232 1.045.594 1.406l.688-.719c-.178-.178-.281-.416-.281-.688 0-.272.103-.54.281-.719l-.688-.719zm2.813 0l-.688.719c.183.183.281.434.281.719s-.099.505-.281.688l.688.719c.357-.357.594-.851.594-1.406 0-.555-.236-1.08-.594-1.438z" id="audio"></path>
-
-    <path d="M4 0c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2zm-1 4.813v3.188l1-1 1 1v-3.188c-.31.11-.65.188-1 .188s-.69-.077-1-.188z" id="badge"></path>
-
-    <path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c.655 0 1.258.209 1.75.563l-4.188 4.188c-.353-.492-.563-1.095-.563-1.75 0-1.663 1.337-3 3-3zm2.438 1.25c.353.492.563 1.095.563 1.75 0 1.663-1.337 3-3 3-.655 0-1.258-.209-1.75-.563l4.188-4.188z" id="ban"></path>
-
-    <path d="M0 0v7h8v-1h-7v-6h-1zm5 0v5h2v-5h-2zm-3 2v3h2v-3h-2z" id="bar-chart"></path>
-
-    <path d="M3.969 0c-.127.011-.259.083-.344.188l-2.344 2.813h-1.281v1h1v3.656c0 .18.164.344.344.344h5.313c.18 0 .344-.164.344-.344v-3.656h1v-1h-1.281c-.274-.329-2.387-2.866-2.406-2.875-.105-.09-.216-.136-.344-.125zm.031 1.281l1.438 1.719h-2.875l1.438-1.719zm-1.5 3.719c.28 0 .5.22.5.5v1c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1c0-.28.22-.5.5-.5zm3 0c.28 0 .5.22.5.5v1c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1c0-.28.22-.5.5-.5z" id="basket"></path>
-
-    <path d="M.094 1c-.06 0-.094.034-.094.094v5.813c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-1.906h1v-2h-1v-1.906c0-.06-.034-.094-.094-.094h-6.813zm.906 1h5v4h-5v-4z" id="battery-empty"></path>
-
-    <path d="M.094 1c-.06 0-.094.034-.094.094v5.813c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-1.906h1v-2h-1v-1.906c0-.06-.034-.094-.094-.094h-6.813z" id="battery-full"></path>
-
-    <path d="M1.344 0a.502.502 0 0 0 .156 1h.5v1.406c-.088.172-1.194 2.313-1.656 3.094-.153.268-.344.612-.344 1.063 0 .383.139.764.406 1.031.26.26.643.406 1.031.406h5.125c.383 0 .764-.139 1.031-.406.26-.26.406-.643.406-1.031 0-.452-.194-.801-.344-1.063-.463-.78-1.568-2.922-1.656-3.094v-1.406h.5a.5.5 0 1 0 0-1h-5a.5.5 0 0 0-.094 0 .502.502 0 0 0-.063 0zm1.656 1h2v1.625l.063.094s.652 1.233 1.219 2.281h-4.563c.567-1.049 1.219-2.281 1.219-2.281l.063-.094v-1.625z" id="beaker"></path>
-
-    <path d="M4 0c-1.1 0-2 .9-2 2 0 1.04-.524 1.976-1.344 2.656-.42.34-.656.824-.656 1.344h8c0-.52-.236-1.004-.656-1.344-.82-.68-1.344-1.616-1.344-2.656 0-1.1-.9-2-2-2zm-1 7c0 .55.45 1 1 1s1-.45 1-1h-2z" id="bell"></path>
-
-    <path d="M2.5 0v2.5l-.75-.75-.75.75 1.5 1.5-1.5 1.5.75.75.75-.75v2.5h.5l3.5-2.5-2.25-1.531 2.25-1.469-3.5-2.5h-.5zm1 1.5l1.5 1-1.5 1v-2zm0 3l1.5 1-1.5 1v-2z" id="bluetooth"></path>
-
-    <path d="M0 0v1c.55 0 1 .45 1 1v4c0 .55-.45 1-1 1v1h5.5c1.38 0 2.5-1.12 2.5-2.5 0-1-.588-1.85-1.438-2.25.27-.34.438-.78.438-1.25 0-1.1-.9-2-2-2h-5zm3 1h1c.55 0 1 .45 1 1s-.45 1-1 1h-1v-2zm0 3h1.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-1.5v-3z" id="bold"></path>
-
-    <path d="M4 0l-3 5h2v3l3-5h-2v-3z" id="bolt"></path>
-
-    <path d="M1 0l-.188.031c-.39.08-.701.391-.781.781l-.031.188v5.5c0 .83.67 1.5 1.5 1.5h5.5v-1h-5.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h5.5v-5.5c0-.28-.22-.5-.5-.5h-.5v3l-1-1-1 1v-3h-3z" id="book"></path>
-
-    <path d="M2 0v8l2-2 2 2v-8h-4z" id="bookmark"></path>
-
-    <path d="M0 0v1h8v-1h-8zm0 2v5.906c0 .06.034.094.094.094h7.813c.06 0 .094-.034.094-.094v-5.906h-2.969v1.031h-2.031v-1.031h-3z" id="box"></path>
-
-    <path d="M3 0c-.554 0-1 .458-1 1v1h-1.906c-.06 0-.094.034-.094.094v2.406c0 .28.22.5.5.5h7c.28 0 .5-.22.5-.5v-2.406c0-.06-.034-.094-.094-.094h-1.906v-1c0-.542-.446-1-1-1h-2zm0 1h2v1h-2v-1zm-3 4.906v2c0 .06.034.094.094.094h7.813c.06 0 .094-.034.094-.094v-2c-.16.05-.32.094-.5.094h-7c-.18 0-.34-.044-.5-.094z" id="briefcase"></path>
-
-    <path d="M4 0c-.619 0-1.159.262-1.5.688-.341.426-.5.986-.5 1.563 0 .692.165 1.245.25 1.75h-1.25v1h1.219c-.112.448-.37.964-1.063 1.656l-.156.125v1.219h6v-1h-4.906c.641-.729.982-1.397 1.125-2h1.781v-1h-1.719c-.078-.683-.281-1.242-.281-1.75 0-.394.115-.731.281-.938.166-.207.368-.313.719-.313.394 0 .609.109.75.25.141.141.25.356.25.75h1c0-.576-.165-1.102-.531-1.469-.366-.366-.893-.531-1.469-.531z" id="british-pound"></path>
-
-    <path d="M.344 0a.5.5 0 0 0-.344.5v7a.5.5 0 0 0 .5.5h7a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.5-.5h-7a.5.5 0 0 0-.094 0 .5.5 0 0 0-.063 0zm1.156 1c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zm2 0h3c.28 0 .5.22.5.5s-.22.5-.5.5h-3c-.28 0-.5-.22-.5-.5s.22-.5.5-.5zm-2.5 2h6v4h-6v-4z" id="browser"></path>
-
-    <path d="M7.438.031l-.063.031-3.75 2.656-.125.156-.125.25c.719.229 1.271.781 1.5 1.5l.25-.125c.05-.02.126-.075.156-.125l2.656-3.75c.03-.04.04-.116 0-.156l-.406-.406-.094-.031zm-4.781 3.969c-.73 0-1.313.614-1.313 1.344 0 .99-.544 1.821-1.344 2.281.4.23.864.375 1.344.375 1.48 0 2.656-1.176 2.656-2.656 0-.73-.604-1.344-1.344-1.344z" id="brush"></path>
-
-    <path d="M3.5 0c-1.19 0-1.978 1.69-1.188 2.5l-.281.219-1.313-.656a.5.5 0 0 0-.344-.063.5.5 0 0 0-.094.938l1.156.563c-.09.156-.186.328-.25.5h-.688a.5.5 0 0 0-.094 0 .502.502 0 1 0 .094 1h.5c0 .227.023.445.063.656l-.781.406a.5.5 0 1 0 .438.875l.656-.344c.245.46.59.844 1 1.094.35-.19.625-.439.625-.719v-1.438a.5.5 0 0 0 0-.094v-.813a.5.5 0 0 0 0-.219c.045-.231.254-.406.5-.406.28 0 .5.22.5.5v.875a.5.5 0 0 0 0 .094v.063a.5.5 0 0 0 0 .094v1.344c0 .27.275.497.625.688.41-.245.755-.604 1-1.063l.656.344a.5.5 0 1 0 .438-.875l-.781-.406c.04-.211.063-.429.063-.656h.5a.5.5 0 1 0 0-1h-.688c-.064-.172-.16-.344-.25-.5l1.156-.563a.5.5 0 0 0-.313-.938.5.5 0 0 0-.125.063l-1.313.656-.281-.219c.78-.83.003-2.5-1.188-2.5z" id="bug"></path>
-
-    <path d="M6.094 0l-.094.031v5.969h.907c.06 0 .094-.034.094-.094v-5.813c0-.06-.034-.094-.094-.094h-.813zm-1.094.5l-2.906 1.469-.188.031h-1.813c-.06 0-.094.034-.094.094v1.813c0 .06.034.094.094.094h.906l1.031 2.719c.11.25.406.36.656.25.25-.11.36-.406.25-.656l-.719-1.781c.033-.136.136-.25.281-.25v-.031l2.5 1.25v-5z" id="bullhorn"></path>
-
-    <path d="M.094 0c-.06 0-.094.034-.094.094v7.813c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-7.813c0-.06-.034-.094-.094-.094h-6.813zm.906 1h5v2h-5v-2zm0 3h1v1h-1v-1zm2 0h1v1h-1v-1zm2 0h1v3h-1v-3zm-4 2h1v1h-1v-1zm2 0h1v1h-1v-1z" id="calculator"></path>
-
-    <path d="M0 0v2h7v-2h-7zm0 3v4.906c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-4.906h-7zm1 1h1v1h-1v-1zm2 0h1v1h-1v-1zm2 0h1v1h-1v-1zm-4 2h1v1h-1v-1zm2 0h1v1h-1v-1z" id="calendar"></path>
-
-    <path d="M4.094 0c-.06 0-.105.044-.125.094l-.938 1.813c-.02.05-.065.094-.125.094h-1.406c-.83 0-1.5.67-1.5 1.5v4.406c0 .06.034.094.094.094h7.813c.06 0 .094-.034.094-.094v-5.813c0-.06-.034-.094-.094-.094h-.813c-.06 0-.105-.044-.125-.094l-.938-1.813c-.02-.05-.065-.094-.125-.094h-1.813zm-2.594 3c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zm3.5 0c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm0 1c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z" id="camera-slr"></path>
-
-    <path d="M0 2l4 4 4-4h-8z" id="caret-bottom"></path>
-
-    <path d="M6 0l-4 4 4 4v-8z" id="caret-left"></path>
-
-    <path d="M2 0v8l4-4-4-4z" id="caret-right"></path>
-
-    <path d="M4 2l-4 4h8l-4-4z" id="caret-top"></path>
-
-    <path d="M.344 0a.502.502 0 0 0 .156 1h1.5l.094.25.406 1.25.406 1.25c.04.13.204.25.344.25h3.5c.14 0 .304-.12.344-.25l.813-2.531c.04-.12-.016-.219-.156-.219h-4.438l-.375-.719a.5.5 0 0 0-.438-.281h-2a.5.5 0 0 0-.094 0 .502.502 0 0 0-.063 0zm3.156 5c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm3 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5z" transform="translate(0 1)" id="cart"></path>
-
-    <path d="M0 0v5l1-1h1v-3h3v-1h-5zm3 2v4h4l1 1v-5h-5z" id="chat"></path>
-
-    <path d="M6.406 1l-.719.688-2.781 2.781-.781-.781-.719-.688-1.406 1.406.688.719 1.5 1.5.719.688.719-.688 3.5-3.5.688-.719-1.406-1.406z" id="check"></path>
-
-    <path d="M1.5 1l-1.5 1.5 4 4 4-4-1.5-1.5-2.5 2.5-2.5-2.5z" id="chevron-bottom"></path>
-
-    <path d="M5 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z" id="chevron-left"></path>
-
-    <path d="M2.5 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z" id="chevron-right"></path>
-
-    <path d="M4 1l-4 4 1.5 1.5 2.5-2.5 2.5 2.5 1.5-1.5-4-4z" id="chevron-top"></path>
-
-    <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm2 1.781l.719.719-3.219 3.219-1.719-1.719.719-.719 1 1 2.5-2.5z" id="circle-check"></path>
-
-    <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-1.5 1.781l1.5 1.5 1.5-1.5.719.719-1.5 1.5 1.5 1.5-.719.719-1.5-1.5-1.5 1.5-.719-.719 1.5-1.5-1.5-1.5.719-.719z" id="circle-x"></path>
-
-    <path d="M3.5 0c-.28 0-.5.22-.5.5v.5h-.75c-.14 0-.25.11-.25.25v.75h3v-.75c0-.14-.11-.25-.25-.25h-.75v-.5c0-.28-.22-.5-.5-.5zm-3.25 1c-.14 0-.25.11-.25.25v6.5c0 .14.11.25.25.25h6.5c.14 0 .25-.11.25-.25v-6.5c0-.14-.11-.25-.25-.25h-.75v2h-5v-2h-.75z" id="clipboard"></path>
-
-    <path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3-3-1.337-3-3 1.337-3 3-3zm-.5 1v2.219l.156.125.5.5.344.375.719-.719-.375-.344-.344-.344v-1.813h-1z" id="clock"></path>
-
-    <path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2 0 .37.111.7.281 1h2.719v-.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v.5h1.906c.05-.16.094-.32.094-.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5zm-.156 4a.5.5 0 0 0-.344.5v1.5h-1.5l2 2 2-2h-1.5v-1.5a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0z" id="cloud-download"></path>
-
-    <path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2 0 .37.111.7.281 1h2.219l2-2 2 2h1.406c.05-.16.094-.32.094-.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5zm0 4.5l-2.5 2.5h2v.5a.5.5 0 1 0 1 0v-.5h2l-2.5-2.5z" id="cloud-upload"></path>
-
-    <path d="M4.5 1c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2s.9 2 2 2h4.5c.83 0 1.5-.67 1.5-1.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5z" id="cloud"></path>
-
-    <path d="M2.5 0c-1.38 0-2.5 1.12-2.5 2.5 0 .39.09.743.25 1.063.3-.21.63-.379 1-.469.55-1.25 1.82-2.084 3.25-2.094-.46-.6-1.18-1-2-1zm2 2c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2s.9 2 2 2h4.5c.83 0 1.5-.67 1.5-1.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5z" id="cloudy"></path>
-
-    <path d="M5 1l-3 6h1l3-6h-1zm-4 1l-1 2 1 2h1l-1-2 1-2h-1zm5 0l1 2-1 2h1l1-2-1-2h-1z" id="code"></path>
-
-    <path d="M3.5 0l-.5 1.188-.281.125-1.188-.5-.719.719.5 1.188-.125.281-1.188.5v1l1.188.5.125.313-.5 1.156.719.719 1.188-.5.281.125.5 1.188h1l.5-1.188.281-.125 1.188.5.719-.719-.5-1.188.125-.281 1.188-.5v-1l-1.188-.5-.125-.281.469-1.188-.688-.719-1.188.5-.281-.125-.5-1.188h-1zm.5 2.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5-1.5-.67-1.5-1.5.67-1.5 1.5-1.5z" id="cog"></path>
-
-    <path d="M0 0v2h8v-2h-8zm2 3l2 2 2-2h-4zm-2 4v1h8v-1h-8z" id="collapse-down"></path>
-
-    <path d="M0 0v8h1v-8h-1zm6 0v8h2v-8h-2zm-1 2l-2 2 2 2v-4z" id="collapse-left"></path>
-
-    <path d="M0 0v8h2v-8h-2zm7 0v8h1v-8h-1zm-4 2v4l2-2-2-2z" id="collapse-right"></path>
-
-    <path d="M0 0v1h8v-1h-8zm4 3l-2 2h4l-2-2zm-4 3v2h8v-2h-8z" id="collapse-up"></path>
-
-    <path d="M1.5 0c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5h.5v1h-.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5v-.5h1v.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5-.67-1.5-1.5-1.5h-.5v-1h.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5v.5h-1v-.5c0-.83-.67-1.5-1.5-1.5zm0 1c.28 0 .5.22.5.5v.5h-.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5zm4 0c.28 0 .5.22.5.5s-.22.5-.5.5h-.5v-.5c0-.28.22-.5.5-.5zm-2.5 2h1v1h-1v-1zm-1.5 2h.5v.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5.22-.5.5-.5zm3.5 0h.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5v-.5z" id="command"></path>
-
-    <path d="M.094 0c-.06 0-.094.034-.094.094v5.813c0 .06.034.094.094.094h5.906l2 2v-7.906c0-.06-.034-.094-.094-.094h-7.813z" id="comment-square"></path>
-
-    <path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3-3-1.337-3-3 1.337-3 3-3zm2 1l-3 1-1 3 3-1 1-3zm-2 1.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="compass"></path>
-
-    <path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3v-6z" id="contrast"></path>
-
-    <path d="M0 0v1h8v-1h-8zm0 2v1h5v-1h-5zm0 3v1h8v-1h-8zm0 2v1h6v-1h-6zm7.5 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5z" id="copywriting"></path>
-
-    <path d="M.25 1c-.14 0-.25.11-.25.25v.75h8v-.75c0-.14-.11-.25-.25-.25h-7.5zm-.25 2v3.75c0 .14.11.25.25.25h7.5c.14 0 .25-.11.25-.25v-3.75h-8zm1 2h1v1h-1v-1zm2 0h1v1h-1v-1z" id="credit-card"></path>
-
-    <path d="M1 0v1h-1v1h1v5h5v1h1v-1h1v-1h-1v-4.5l1-1-.5-.5-1 1h-4.5v-1h-1zm1 2h3.5l-3.5 3.5v-3.5zm4 .5v3.5h-3.5l3.5-3.5z" id="crop"></path>
-
-    <path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3-3-1.337-3-3 1.337-3 3-3zm0 1c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-1.656 1a.5.5 0 0 0-.188.844l.906.906-.063.25c0 .552.448 1 1 1s1-.448 1-1-.448-1-1-1l-.25.063-.906-.906a.5.5 0 0 0-.438-.156.5.5 0 0 0-.063 0zm3.156 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5z" id="dashboard"></path>
-
-    <path d="M3 0v3h-2l3 3 3-3h-2v-3h-2zm-3 7v1h8v-1h-8z" id="data-transfer-download"></path>
-
-    <path d="M0 0v1h8v-1h-8zm4 2l-3 3h2v3h2v-3h2l-3-3z" id="data-transfer-upload"></path>
-
-    <path d="M2 1l-2 3 2 3h6v-6h-6zm1.5.781l1.5 1.5 1.5-1.5.719.719-1.5 1.5 1.5 1.5-.719.719-1.5-1.5-1.5 1.5-.719-.719 1.5-1.5-1.5-1.5.719-.719z" id="delete"></path>
-
-    <path d="M4 1c-2.201 0-4 1.799-4 4h1c0-1.659 1.341-3 3-3s3 1.341 3 3h1c0-2.201-1.799-4-4-4zm-.594 2.094c-.82.25-1.406 1.006-1.406 1.906 0 1.1.9 2 2 2s2-.9 2-2c0-.9-.586-1.656-1.406-1.906l-.594.875-.594-.875z" id="dial"></path>
-
-    <path d="M0 0v8h7v-4h-4v-4h-3zm4 0v3h3l-3-3zm-3 2h1v1h-1v-1zm0 2h1v1h-1v-1zm0 2h4v1h-4v-1z" id="document"></path>
-
-    <path d="M3 0v1h-.75c-.686 0-1.25.564-1.25 1.25v.5c0 .678.437 1.242 1.094 1.406l2.563.656c.143.036.344.296.344.438v.5c0 .134-.116.25-.25.25h-2.5c-.116 0-.212-.037-.25-.063v-.938h-1v1c0 .342.203.627.438.781.234.155.518.219.813.219h.75v1h1v-1h.75c.686 0 1.25-.564 1.25-1.25v-.5c0-.678-.437-1.242-1.094-1.406l-2.563-.656c-.143-.036-.344-.296-.344-.438v-.5c0-.134.116-.25.25-.25h2.5c.116 0 .212.037.25.063v.938h1v-1c0-.342-.203-.627-.438-.781-.234-.155-.518-.219-.813-.219h-.75v-1h-1z" id="dollar"></path>
-
-    <path d="M0 1v6l3-3v-3h-3zm5 0v6l3-3v-3h-3z" id="double-quote-sans-left"></path>
-
-    <path d="M3 1l-3 3v3h3v-6zm5 0l-3 3v3h3v-6z" id="double-quote-sans-right"></path>
-
-    <path d="M3 1c-1.651 0-3 1.349-3 3v3h3v-3h-2c0-1.109.891-2 2-2v-1zm5 0c-1.651 0-3 1.349-3 3v3h3v-3h-2c0-1.109.891-2 2-2v-1z" id="double-quote-serif-left"></path>
-
-    <path d="M0 1v3h2c0 1.109-.891 2-2 2v1c1.651 0 3-1.349 3-3v-3h-3zm5 0v3h2c0 1.109-.891 2-2 2v1c1.651 0 3-1.349 3-3v-3h-3z" id="double-quote-serif-right"></path>
-
-    <path d="M4 0l-.344.344c-.11.11-2.656 2.685-2.656 4.875 0 1.65 1.35 3 3 3s3-1.35 3-3c0-2.19-2.546-4.765-2.656-4.875l-.344-.344zm-1.5 4.719c.28 0 .5.22.5.5 0 .55.45 1 1 1 .28 0 .5.22.5.5s-.22.5-.5.5c-1.1 0-2-.9-2-2 0-.28.22-.5.5-.5z" id="droplet"></path>
-
-    <path d="M4 0l-4 5h8l-4-5zm-4 6v2h8v-2h-8z" id="eject"></path>
-
-    <path d="M4 0l-3 3h6l-3-3zm-3 5l3 3 3-3h-6z" id="elevator"></path>
-
-    <path d="M0 3v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2z" id="ellipses"></path>
-
-    <path d="M0 1v1l4 2 4-2v-1h-8zm0 2v4h8v-4l-4 2-4-2z" id="envelope-closed"></path>
-
-    <path d="M4 0l-4 2v6h8v-6l-4-2zm0 1.125l3 1.5v1.875l-3 1.5-3-1.5v-1.875l3-1.5zm-2 1.875v1l2 1 2-1v-1h-4z" id="envelope-open"></path>
-
-    <path d="M5 0c-1.858 0-3.398 1.278-3.844 3h-1.906l-.25 1h2c0 .345.073.68.156 1h-1.969l-.188 1h2.563c.696 1.185 1.969 2 3.438 2 .734 0 1.407-.215 2-.563v-1.219c-.531.479-1.225.781-2 .781-.888 0-1.671-.392-2.219-1h2.219l.156-1h-2.969c-.113-.317-.188-.643-.188-1h3.344l.156-1h-3.313c.414-1.16 1.507-2 2.813-2 .655 0 1.258.209 1.75.563l.156-1.063c-.57-.313-1.213-.5-1.906-.5z" id="euro"></path>
-
-    <path d="M0 0v1h7v-1h-7zm0 2v1h5v-1h-5zm0 2v1h8v-1h-8zm0 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1z" id="excerpt"></path>
-
-    <path d="M0 0v1h8v-1h-8zm2 2l2 2 2-2h-4zm-2 4v2h8v-2h-8z" id="expand-down"></path>
-
-    <path d="M0 0v8h1v-8h-1zm6 0v8h2v-8h-2zm-4 2v4l2-2-2-2z" id="expand-left"></path>
-
-    <path d="M0 0v8h2v-8h-2zm7 0v8h1v-8h-1zm-1 2l-2 2 2 2v-4z" id="expand-right"></path>
-
-    <path d="M0 0v2h8v-2h-8zm4 4l-2 2h4l-2-2zm-4 3v1h8v-1h-8z" id="expand-up"></path>
-
-    <path d="M0 0v8h8v-2h-1v1h-6v-6h1v-1h-2zm4 0l1.5 1.5-2.5 2.5 1 1 2.5-2.5 1.5 1.5v-4h-4z" id="external-link"></path>
-
-    <path d="M4.031 1c-2.53 0-4.031 3-4.031 3s1.501 3 4.031 3c2.47 0 3.969-3 3.969-3s-1.499-3-3.969-3zm-.031 1c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm0 1c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1c0-.1-.032-.191-.063-.281-.08.16-.237.281-.438.281-.28 0-.5-.22-.5-.5 0-.2.121-.357.281-.438-.09-.03-.181-.063-.281-.063z" id="eye"></path>
-
-    <path d="M3.313 0a.5.5 0 0 0-.188.844l.625.625-3.594 3.656-.156.156v2.719h2.719l.125-.156 3.656-3.656.625.656a.5.5 0 1 0 .719-.688l-.938-.938.656-.656c.59-.58.59-1.545 0-2.125-.56-.57-1.555-.57-2.125 0l-.656.656-.938-.938a.5.5 0 0 0-.469-.156.5.5 0 0 0-.063 0zm1.156 2.188l1.313 1.313-3.156 3.156-1.281-1.313 3.125-3.156z" id="eyedropper"></path>
-
-    <path d="M0 0v8h7v-4h-4v-4h-3zm4 0v3h3l-3-3z" id="file"></path>
-
-    <path d="M2 0c1 2-2 3-2 5l2 3c-.98-1.98 2-3 2-5l-2-3zm3 3c1 2-2 3-2 5h3c.4 0 1-.5 1-2 0-2-2-3-2-3z" id="fire"></path>
-
-    <path d="M0 0v8h1v-8h-1zm2 0v4h2v1h4l-2-1.969 2-2.031h-3v-1h-3z" id="flag"></path>
-
-    <path d="M3.5 0l-1.5 3h2l-.656 2h-1.344l1 3 3-3h-1.5l1.5-3h-2l1-2h-1.5z" id="flash"></path>
-
-    <path d="M0 0v2h8v-1h-5v-1h-3zm0 3v4.5c0 .28.22.5.5.5h7c.28 0 .5-.22.5-.5v-4.5h-8z" id="folder"></path>
-
-    <path d="M1.5 0c-.828 0-1.5.672-1.5 1.5 0 .656.414 1.202 1 1.406v2.188c-.586.204-1 .75-1 1.406 0 .828.672 1.5 1.5 1.5s1.5-.672 1.5-1.5c0-.595-.341-1.101-.844-1.344.09-.09.205-.156.344-.156h2c.823 0 1.5-.677 1.5-1.5v-.594c.586-.204 1-.75 1-1.406 0-.828-.672-1.5-1.5-1.5s-1.5.672-1.5 1.5c0 .656.414 1.202 1 1.406v.594c0 .277-.223.5-.5.5h-2c-.171 0-.346.04-.5.094v-1.188c.586-.204 1-.75 1-1.406 0-.828-.672-1.5-1.5-1.5z" id="fork"></path>
-
-    <path d="M0 0v4l1.5-1.5 1.5 1.5 1-1-1.5-1.5 1.5-1.5h-4zm5 4l-1 1 1.5 1.5-1.5 1.5h4v-4l-1.5 1.5-1.5-1.5z" id="fullscreen-enter"></path>
-
-    <path d="M1 0l-1 1 1.5 1.5-1.5 1.5h4v-4l-1.5 1.5-1.5-1.5zm3 4v4l1.5-1.5 1.5 1.5 1-1-1.5-1.5 1.5-1.5h-4z" id="fullscreen-exit"></path>
-
-    <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1c.333 0 .637.086.938.188-.214.197-.45.383-.406.563.04.18.688.13.688.5 0 .27-.425.346-.125.656.35.35-.636.978-.656 1.438-.03.83.841.969 1.531.969.424 0 .503.195.469.438-.546.758-1.438 1.25-2.438 1.25-.378 0-.729-.09-1.063-.219.224-.442-.313-1.344-.781-1.625-.226-.226-.689-.114-.969-.219-.092-.271-.178-.545-.188-.844.031-.05.081-.094.156-.094.19 0 .454.374.594.344.18-.04-.742-1.313-.313-1.563.2-.12.609.394.469-.156-.12-.51.366-.276.656-.406.26-.11.455-.414.125-.594l-.219-.188c.45-.27.972-.438 1.531-.438zm2.313 1.094c.184.222.323.481.438.75l-.188.219c-.29.27-.327-.212-.438-.313-.13-.11-.638.025-.688-.125-.077-.181.499-.418.875-.531z" id="globe"></path>
-
-    <path d="M7.031 0l-3.031 3-1-1-3 3.031 1 1 2-2.031 1 1 4-4-.969-1zm-7.031 7v1h8v-1h-8z" id="graph"></path>
-
-    <path d="M0 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm-6 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm-6 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm-6 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1z" id="grid-four-up"></path>
-
-    <path d="M0 0v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2zm-6 3v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2zm-6 3v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2z" id="grid-three-up"></path>
-
-    <path d="M0 0v3h3v-3h-3zm5 0v3h3v-3h-3zm-5 5v3h3v-3h-3zm5 0v3h3v-3h-3z" id="grid-two-up"></path>
-
-    <path d="M.188 0c-.11 0-.188.077-.188.188v3.313c0 .28.22.5.5.5h6c.28 0 .5-.22.5-.5v-3.313c0-.11-.077-.188-.188-.188h-6.625zm-.188 4.906v2.906c0 .11.077.188.188.188h6.625c.11 0 .188-.077.188-.188v-2.906c-.16.05-.32.094-.5.094h-6c-.18 0-.34-.044-.5-.094zm5.5 1.094c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="hard-drive"></path>
-
-    <path d="M0 0v1h.5c.28 0 .5.22.5.5v4c0 .28-.22.5-.5.5h-.5v1h3v-1h-.5c-.28 0-.5-.22-.5-.5v-1.5h3v1.5c0 .28-.22.5-.5.5h-.5v1h3v-1h-.5c-.28 0-.5-.22-.5-.5v-4c0-.28.22-.5.5-.5h.5v-1h-3v1h.5c.28 0 .5.22.5.5v1.5h-3v-1.5c0-.28.22-.5.5-.5h.5v-1h-3z" id="header"></path>
-
-    <path d="M4 0c-1.651 0-3 1.349-3 3v1h-.5a.5.5 0 0 0-.5.5v2a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-3.5c0-1.109.891-2 2-2s2 .891 2 2v3.5a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-2a.5.5 0 0 0-.5-.5h-.5v-1c0-1.651-1.349-3-3-3z" id="headphones"></path>
-
-    <path d="M2 1c-.55 0-1.046.224-1.406.594-.37.36-.594.856-.594 1.406 0 .55.224 1.046.594 1.406l3.406 3.438 3.406-3.438c.37-.37.594-.856.594-1.406 0-.55-.224-1.046-.594-1.406-.36-.37-.856-.594-1.406-.594-.55 0-1.046.224-1.406.594-.37.36-.594.856-.594 1.406 0-.55-.224-1.046-.594-1.406-.36-.37-.856-.594-1.406-.594z" id="heart"></path>
-
-    <path d="M4 0l-4 3h1v4h2v-2h2v2h2v-4.031l1 .031-4-3z" id="home"></path>
-
-    <path d="M0 0v8h8v-8h-8zm1 1h6v3l-1-1-1 1 2 2v1h-1l-4-4-1 1v-3z" id="image"></path>
-
-    <path d="M.188 0c-.11 0-.188.077-.188.188v7.625c0 .11.077.188.188.188h7.625c.11 0 .188-.077.188-.188v-7.625c0-.11-.077-.188-.188-.188h-7.625zm.813 2h6v3h-1l-1 1h-2l-1-1h-1v-3z" id="inbox"></path>
-
-    <path d="M2 2c-1.31 0-2 1.01-2 2s.69 2 2 2c.79 0 1.42-.559 2-1.219.58.66 1.19 1.219 2 1.219 1.31 0 2-1.01 2-2s-.69-2-2-2c-.81 0-1.42.559-2 1.219-.57-.66-1.21-1.219-2-1.219zm0 1c.42 0 .884.47 1.344 1-.46.53-.924 1-1.344 1-.74 0-1-.54-1-1 0-.46.26-1 1-1zm4 0c.74 0 1 .54 1 1 0 .46-.26 1-1 1-.43 0-.894-.47-1.344-1 .45-.53.914-1 1.344-1z" id="infinity"></path>
-
-    <path d="M5 0c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1zm-1.5 2.5c-.83 0-1.5.67-1.5 1.5h1c0-.28.22-.5.5-.5s.5.22.5.5-1 1.64-1 2.5c0 .86.67 1.5 1.5 1.5s1.5-.67 1.5-1.5h-1c0 .28-.22.5-.5.5s-.5-.22-.5-.5c0-.36 1-1.84 1-2.5 0-.81-.67-1.5-1.5-1.5z" id="info"></path>
-
-    <path d="M2 0v1h1.625l-.063.125-2 5-.344.875h-1.219v1h5v-1h-1.625l.063-.125 2-5 .344-.875h1.219v-1h-5z" id="italic"></path>
-
-    <path d="M0 0v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h8v-1h-8zm1 2v1h6v-1h-6z" id="justify-center"></path>
-
-    <path d="M0 0v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h6v-1h-6z" id="justify-left"></path>
-
-    <path d="M0 0v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h8v-1h-8zm2 2v1h6v-1h-6z" id="justify-right"></path>
-
-    <path d="M5.5 0c-1.38 0-2.5 1.12-2.5 2.5 0 .16.033.297.063.438l-3.063 3.063v2h3v-2h2v-1l.063-.063c.14.03.277.063.438.063 1.38 0 2.5-1.12 2.5-2.5s-1.12-2.5-2.5-2.5zm.5 1c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z" id="key"></path>
-
-    <path d="M1.344 0a.5.5 0 0 0-.344.5v3.5h-1v1.5c0 .28.22.5.5.5h7c.28 0 .5-.22.5-.5v-1.5h-1v-3.5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0-.094 0 .5.5 0 0 0-.063 0zm.656 1h4v3h-1v1h-2v-1h-1v-3z" transform="translate(0 1)" id="laptop"></path>
-
-    <path d="M0 0v4h4v-4h-4zm5 2v3h-3v1h4v-4h-1zm2 2v3h-3v1h4v-4h-1z" id="layers"></path>
-
-    <path d="M3.406 0a.5.5 0 0 0-.125.063l-3 1.5a.5.5 0 1 0 .438.875l3-1.5a.5.5 0 0 0-.313-.938zm1 1.5a.5.5 0 0 0-.125.063l-4 2a.5.5 0 1 0 .438.875l4-2a.5.5 0 0 0-.313-.938zm0 2a.5.5 0 0 0-.125.063l-3 1.5a.5.5 0 0 0 .219.938h2a.502.502 0 0 0 .156-1l1.063-.563a.5.5 0 0 0-.313-.938zm-2.563 3.5a.502.502 0 0 0 .156 1h1a.5.5 0 1 0 0-1h-1a.5.5 0 0 0-.094 0 .502.502 0 0 0-.063 0z" transform="translate(1)" id="lightbulb"></path>
-
-    <path d="M2 0v1h-1v1h2v-2h-1zm3.875.031c-.184.01-.354.03-.531.094-.27.095-.531.25-.75.469l-.438.438a.5.5 0 1 0 .688.688l.438-.438c.101-.101.245-.173.375-.219.352-.126.78-.064 1.063.219.395.389.4 1.037 0 1.438l-1.5 1.5a.5.5 0 1 0 .688.688l1.5-1.5c.78-.78.785-2.041 0-2.813-.279-.279-.606-.452-.969-.531-.181-.039-.379-.041-.563-.031zm-3.594 2.906a.5.5 0 0 0-.188.156l-1.5 1.5c-.78.78-.785 2.041 0 2.813.557.557 1.355.722 2.063.469.27-.095.531-.25.75-.469l.438-.438a.5.5 0 1 0-.688-.688l-.438.438c-.101.101-.245.173-.375.219-.352.126-.78.064-1.063-.219-.395-.389-.4-1.037 0-1.438l1.5-1.5a.5.5 0 0 0-.438-.844.5.5 0 0 0-.063 0zm2.719 3.063v2h1v-1h1v-1h-2z" id="link-broken"></path>
-
-    <path d="M5.875.031c-.184.01-.354.03-.531.094-.27.095-.531.25-.75.469a.5.5 0 1 0 .688.688c.101-.101.245-.173.375-.219.352-.126.78-.064 1.063.219.395.389.4 1.037 0 1.438l-1.5 1.5c-.434.434-.799.483-1.063.469-.264-.015-.406-.125-.406-.125a.504.504 0 1 0-.5.875s.34.222.844.25c.504.028 1.197-.165 1.813-.781l1.5-1.5c.78-.78.785-2.041 0-2.813-.279-.279-.606-.452-.969-.531-.181-.039-.379-.041-.563-.031zm-2 2.313c-.501-.019-1.186.155-1.781.75l-1.5 1.5c-.78.78-.785 2.041 0 2.813.557.557 1.355.722 2.063.469.27-.095.531-.25.75-.469a.5.5 0 1 0-.688-.688c-.101.101-.245.173-.375.219-.352.126-.78.064-1.063-.219-.395-.389-.4-1.037 0-1.438l1.5-1.5c.405-.405.752-.448 1.031-.438.279.011.469.094.469.094a.5.5 0 1 0 .438-.875s-.343-.199-.844-.219z" id="link-intact"></path>
-
-    <path d="M0 0v3h3v-3h-3zm4 0v1h4v-1h-4zm0 2v1h3v-1h-3zm-4 2v3h3v-3h-3zm4 0v1h4v-1h-4zm0 2v1h3v-1h-3z" id="list-rich"></path>
-
-    <path d="M.5 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm1.5 0v1h6v-1h-6zm-1.5 2c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm1.5 0v1h6v-1h-6zm-1.5 2c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm1.5 0v1h6v-1h-6zm-1.5 2c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm1.5 0v1h6v-1h-6z" id="list"></path>
-
-    <path d="M8 0l-8 4 3 1 1 3 4-8z" id="location"></path>
-
-    <path d="M4 0c-1.099 0-2 .901-2 2v1h-1v4h6v-4h-1v-1c0-1.099-.901-2-2-2zm0 1c.561 0 1 .439 1 1v1h-2v-1c0-.561.439-1 1-1z" id="lock-locked"></path>
-
-    <path d="M4 0c-1.099 0-2 .901-2 2h1c0-.561.439-1 1-1 .561 0 1 .439 1 1v2h-4v4h6v-4h-1v-2c0-1.099-.901-2-2-2z" id="lock-unlocked"></path>
-
-    <path d="M4 1c-1.651 0-3 1.349-3 3h-1l1.5 2 1.5-2h-1c0-1.109.891-2 2-2v-1zm2.5 1l-1.5 2h1c0 1.109-.891 2-2 2v1c1.651 0 3-1.349 3-3h1l-1.5-2z" id="loop-circular"></path>
-
-    <path d="M1 0v2h1v-1h4v2h-1l1.5 2.5 1.5-2.5h-1v-3h-6zm.5 2.5l-1.5 2.5h1v3h6v-2h-1v1h-4v-2h1l-1.5-2.5z" id="loop-square"></path>
-
-    <path d="M6 0v1h-5c-.554 0-1 .446-1 1v1h1v-1h5v1l2-1.5-2-1.5zm-4 4l-2 1.5 2 1.5v-1h5c.542 0 1-.458 1-1v-1h-1v1h-5v-1z" id="loop"></path>
-
-    <path d="M3.5 0c-1.927 0-3.5 1.573-3.5 3.5s1.573 3.5 3.5 3.5c.592 0 1.166-.145 1.656-.406a1 1 0 0 0 .125.125l1 1a1.016 1.016 0 1 0 1.438-1.438l-1-1a1 1 0 0 0-.156-.125c.266-.493.438-1.059.438-1.656 0-1.927-1.573-3.5-3.5-3.5zm0 1c1.387 0 2.5 1.113 2.5 2.5 0 .661-.241 1.273-.656 1.719l-.031.031a1 1 0 0 0-.125.125c-.442.397-1.043.625-1.688.625-1.387 0-2.5-1.113-2.5-2.5s1.113-2.5 2.5-2.5z" id="magnifying-glass"></path>
-
-    <path d="M4 0c-1.66 0-3 1.34-3 3 0 2 3 5 3 5s3-3 3-5c0-1.66-1.34-3-3-3zm0 1c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2z" id="map-marker"></path>
-
-    <path d="M0 0v8h8v-2.375a.5.5 0 0 0 0-.219v-5.406h-8zm1 1h6v4h-1.5a.5.5 0 0 0-.094 0 .502.502 0 1 0 .094 1h1.5v1h-6v-6zm2.5 1c-.83 0-1.5.67-1.5 1.5 0 1 1.5 2.5 1.5 2.5s1.5-1.5 1.5-2.5c0-.83-.67-1.5-1.5-1.5zm0 1c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="map"></path>
-
-    <path d="M1 1v6h2v-6h-2zm4 0v6h2v-6h-2z" id="media-pause"></path>
-
-    <path d="M1 1v6l6-3-6-3z" id="media-play"></path>
-
-    <path d="M4 1c-1.657 0-3 1.343-3 3s1.343 3 3 3 3-1.343 3-3-1.343-3-3-3z" id="media-record"></path>
-
-    <path d="M4 1l-4 3 4 3v-6zm0 3l4 3v-6l-4 3z" id="media-skip-backward"></path>
-
-    <path d="M0 1v6l4-3-4-3zm4 3v3l4-3-4-3v3z" id="media-skip-forward"></path>
-
-    <path d="M0 1v6h2v-6h-2zm2 3l5 3v-6l-5 3z" id="media-step-backward"></path>
-
-    <path d="M0 1v6l5-3-5-3zm5 3v3h2v-6h-2v3z" id="media-step-forward"></path>
-
-    <path d="M1 1v6h6v-6h-6z" id="media-stop"></path>
-
-    <path d="M2 0v2h-2v4h2v2h4v-2h2v-4h-2v-2h-4z" id="medical-cross"></path>
-
-    <path d="M0 1v1h8v-1h-8zm0 2.969v1h8v-1h-8zm0 3v1h8v-1h-8z" id="menu"></path>
-
-    <path d="M2.906-.031a1 1 0 0 0-.125.031 1 1 0 0 0-.781 1v2a1 1 0 1 0 2 0v-2a1 1 0 0 0-1.094-1.031zm-2.563 2.031a.5.5 0 0 0-.344.5v.5c0 1.476 1.091 2.693 2.5 2.938v1.063h-.5c-.55 0-1 .45-1 1h4c0-.55-.45-1-1-1h-.5v-1.063c1.409-.244 2.5-1.461 2.5-2.938v-.5a.5.5 0 1 0-1 0v.5c0 1.109-.891 2-2 2s-2-.891-2-2v-.5a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0z" transform="translate(1)" id="microphone"></path>
-
-    <path d="M0 3v2h8v-2h-8z" id="minus"></path>
-
-    <path d="M.344 0a.5.5 0 0 0-.344.5v5a.5.5 0 0 0 .5.5h2.5v1h-1c-.55 0-1 .45-1 1h6c0-.55-.45-1-1-1h-1v-1h2.5a.5.5 0 0 0 .5-.5v-5a.5.5 0 0 0-.5-.5h-7a.5.5 0 0 0-.094 0 .5.5 0 0 0-.063 0zm.656 1h6v4h-6v-4z" id="monitor"></path>
-
-    <path d="M2.719 0c-1.58.53-2.719 2.021-2.719 3.781 0 2.21 1.79 4 4 4 1.76 0 3.251-1.17 3.781-2.75-.4.14-.831.25-1.281.25-2.21 0-4-1.79-4-4 0-.44.079-.881.219-1.281z" id="moon"></path>
-
-    <path d="M3.5 0l-1.5 1.5h1v1.5h-1.5v-1l-1.5 1.5 1.5 1.5v-1h1.5v1.5h-1l1.5 1.5 1.5-1.5h-1v-1.5h1.5v1l1.5-1.5-1.5-1.5v1h-1.5v-1.5h1l-1.5-1.5z" id="move"></path>
-
-    <path d="M8 0c-5 0-6 1-6 1v4.094c-.154-.054-.327-.094-.5-.094-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5v-3.969c.732-.226 1.99-.438 4-.5v2.063c-.154-.054-.327-.094-.5-.094-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5v-5.5z" id="musical-note"></path>
-
-    <path d="M5 0c-.514 0-1.021.201-1.406.594l-2.781 2.719c-1.07 1.07-1.07 2.805 0 3.875 1.07 1.07 2.805 1.07 3.875 0l1.25-1.25-.688-.688-.906.875-.344.375c-.69.69-1.81.69-2.5 0-.682-.682-.668-1.778 0-2.469l2.781-2.719v-.031c.389-.395 1.037-.4 1.438 0 .388.381.378 1.006 0 1.406l-2.5 2.469c-.095.095-.28.095-.375 0-.095-.095-.095-.28 0-.375l.375-.344.594-.625-.688-.688-.875.875-.094.094c-.485.485-.485 1.265 0 1.75.485.485 1.265.485 1.75 0l2.5-2.438c.78-.78.785-2.041 0-2.813-.39-.39-.893-.594-1.406-.594z" id="paperclip"></path>
-
-    <path d="M6 0l-1 1 2 2 1-1-2-2zm-2 2l-4 4v2h2l4-4-2-2z" id="pencil"></path>
-
-    <path d="M5.5 0c-.51 0-.949.355-1.219.875.45.54.719 1.275.719 2.125 0 .29-.034.574-.094.844.18.11.374.156.594.156.83 0 1.5-.9 1.5-2s-.67-2-1.5-2zm-3 1c-.828 0-1.5.895-1.5 2s.672 2 1.5 2 1.5-.895 1.5-2-.672-2-1.5-2zm4.75 3.156c-.43.51-1.018.824-1.688.844.27.38.438.844.438 1.344v.656h2v-1.656c0-.52-.31-.968-.75-1.188zm-6.5 1c-.44.22-.75.668-.75 1.188v1.656h5v-1.656c0-.52-.31-.968-.75-1.188-.44.53-1.06.844-1.75.844s-1.31-.314-1.75-.844z" id="people"></path>
-
-    <path d="M4 0c-1.105 0-2 1.119-2 2.5s.895 2.5 2 2.5 2-1.119 2-2.5-.895-2.5-2-2.5zm-2.094 5c-1.07.04-1.906.92-1.906 2v1h8v-1c0-1.08-.836-1.96-1.906-2-.54.61-1.284 1-2.094 1-.81 0-1.554-.39-2.094-1z" id="person"></path>
-
-    <path d="M1.188 0c-.11 0-.188.077-.188.188v7.625c0 .11.077.188.188.188h4.625c.11 0 .188-.077.188-.188v-7.625c0-.11-.077-.188-.188-.188h-4.625zm.813 1h3v5h-3v-5zm1.5 5.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="phone"></path>
-
-    <path d="M3.5 0c-.97 0-1.839.391-2.469 1.031l2.969 2.969v-3.969c-.16-.03-.33-.031-.5-.031zm1.5 1.063v3.406l-2.719 2.719c.6.5 1.369.813 2.219.813 1.93 0 3.5-1.57 3.5-3.5 0-1.76-1.31-3.197-3-3.438zm-4.094 1.313c-.55.54-.906 1.285-.906 2.125 0 .95.435 1.804 1.125 2.344l2.156-2.125-2.375-2.344z" id="pie-chart"></path>
-
-    <path d="M1.344 0a.502.502 0 0 0 .156 1h.5v2h-1c-.55 0-1 .45-1 1h3v3l.438 1 .563-1v-3h3c0-.55-.45-1-1-1h-1v-2h.5a.5.5 0 1 0 0-1h-4a.5.5 0 0 0-.094 0 .502.502 0 0 0-.063 0z" id="pin"></path>
-
-    <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-1 2l3 2-3 2v-4z" id="play-circle"></path>
-
-    <path d="M3 0v3h-3v2h3v3h2v-3h3v-2h-3v-3h-2z" id="plus"></path>
-
-    <path d="M3 0v4h1v-4h-1zm-1.281 1.438l-.375.313c-.803.64-1.344 1.634-1.344 2.75 0 1.929 1.571 3.5 3.5 3.5s3.5-1.571 3.5-3.5c0-1.116-.529-2.11-1.344-2.75l-.375-.313-.625.781.375.313c.585.46.969 1.165.969 1.969 0 1.391-1.109 2.5-2.5 2.5s-2.5-1.109-2.5-2.5c0-.804.361-1.509.938-1.969l.406-.313-.625-.781z" id="power-standby"></path>
-
-    <path d="M2 0v2h4v-2h-4zm-1.906 3c-.06 0-.094.034-.094.094v2.813c0 .06.034.094.094.094h.906v-2h6v2h.906c.06 0 .094-.034.094-.094v-2.813c0-.06-.034-.094-.094-.094h-7.813zm1.906 2v3h4v-3h-4z" id="print"></path>
-
-    <path d="M0 0v7h1v-7h-1zm7 0v7h1v-7h-1zm-5 1v1h2v-1h-2zm1 2v1h2v-1h-2zm1 2v1h2v-1h-2z" id="project"></path>
-
-    <path d="M3.25 0l-.469 1.531-.781 2.563-.031-.063-.094-.344h-1.875v1h1.156l.375 1.156.469 1.469.469-1.469.781-2.5.781 2.5.406 1.313.531-1.281.594-1.469.125.281h2.313v-1h-1.688l-.375-.719-.5-1-.406 1.031-.469 1.188-.844-2.656-.469-1.531z" id="pulse"></path>
-
-    <path d="M3 0c-.28 0-.539.101-.719.281-.18.18-.281.439-.281.719 0 .28.181.479.281.719.03.06.063.161.063.281h-2.344v6h2.344c0-.12-.011-.221-.031-.281-.11-.24-.313-.439-.313-.719 0-.28.101-.539.281-.719.18-.18.439-.281.719-.281.28 0 .539.101.719.281.18.18.281.439.281.719 0 .28-.181.479-.281.719-.03.06-.063.161-.063.281h2.344v-2.344c.12 0 .221.011.281.031.24.11.439.313.719.313.28 0 .539-.101.719-.281.18-.18.281-.439.281-.719 0-.28-.101-.539-.281-.719-.18-.18-.439-.281-.719-.281-.28 0-.479.181-.719.281-.06.03-.161.063-.281.063v-2.344h-2.344c0-.12.011-.221.031-.281.11-.24.313-.439.313-.719 0-.28-.101-.539-.281-.719-.18-.18-.439-.281-.719-.281z" id="puzzle-piece"></path>
-
-    <path d="M4.469 0c-.854 0-1.48.256-1.875.656s-.54.901-.594 1.281l1 .125c.036-.26.125-.497.313-.688.188-.19.491-.375 1.156-.375.664 0 1.019.163 1.219.344.199.181.281.405.281.656 0 .833-.313 1.063-.813 1.5-.5.438-1.188 1.083-1.188 2.25v.25h1v-.25c0-.833.344-1.063.844-1.5.5-.438 1.156-1.083 1.156-2.25 0-.479-.168-1.02-.594-1.406-.426-.387-1.071-.594-1.906-.594zm-.5 7v1h1v-1h-1z" id="question-mark"></path>
-
-    <path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2 0 .52.201 1.015.531 1.375.26-.22.599-.375.969-.375.2 0 .393.055.563.125.17-.64.748-1.125 1.438-1.125s1.268.485 1.438 1.125c.17-.07.362-.125.563-.125.63 0 1.155.388 1.375.938.64-.17 1.125-.747 1.125-1.438 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5zm-1.156 5a.5.5 0 0 0-.344.5v2a.5.5 0 1 0 1 0v-2a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0zm-2 1a.5.5 0 0 0-.344.5v1a.5.5 0 1 0 1 0v-1a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0zm4 0a.5.5 0 0 0-.344.5v1a.5.5 0 1 0 1 0v-1a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0z" id="rain"></path>
-
-    <path d="M6 0v1h-.5c-.354 0-.6.116-.813.375l-1.406 1.75-1.5-1.75v-.031c-.212-.236-.427-.344-.781-.344h-1v1h1.031v.031l1.625 1.906-1.625 2.031v.031h-1.031v1h1c.354 0 .6-.116.813-.375l1.531-1.906 1.625 1.906v.031c.212.236.427.344.781.344h.25v1l2-1.5-2-1.5v1h-.281v-.031l-1.75-2.063 1.5-1.875v-.031h.531v1l2-1.5-2-1.5z" id="random"></path>
-
-    <path d="M4 0c-2.201 0-4 1.799-4 4s1.799 4 4 4c1.104 0 2.092-.456 2.813-1.188l-.688-.688c-.54.548-1.289.875-2.125.875-1.659 0-3-1.341-3-3s1.341-3 3-3c.834 0 1.545.354 2.094.906l-1.094 1.094h3v-3l-1.188 1.188c-.731-.72-1.719-1.188-2.813-1.188z" id="reload"></path>
-
-    <path d="M4 0l1.656 1.656-4 4-1.656-1.656v4h4l-1.656-1.656 4-4 1.656 1.656v-4h-4z" id="resize-both"></path>
-
-    <path d="M3.5 0l-2.5 3h2v2h-2l2.5 3 2.5-3h-2v-2h2l-2.5-3z" id="resize-height"></path>
-
-    <path d="M3 1l-3 2.5 3 2.5v-2h2v2l3-2.5-3-2.5v2h-2v-2z" id="resize-width"></path>
-
-    <path d="M0 0v2c3.331 0 6 2.669 6 6h2c0-4.409-3.591-8-8-8zm0 3v2c1.67 0 3 1.33 3 3h2c0-2.75-2.25-5-5-5zm0 3v2h2c0-1.11-.89-2-2-2z" id="rss-alt"></path>
-
-    <path d="M1 0v1c3.32 0 6 2.68 6 6h1c0-3.86-3.14-7-7-7zm0 2v1c2.221 0 4 1.779 4 4h1c0-2.759-2.241-5-5-5zm0 2v1c1.109 0 2 .891 2 2h1c0-1.651-1.349-3-3-3zm0 2c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z" id="rss"></path>
-
-    <path d="M3 0c-.55 0-1 .45-1 1v5.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1.5h-1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-3h-4v-2.5c0-.28.22-.5.5-.5s.5.22.5.5v1.5h4v-2c0-.55-.45-1-1-1h-4z" id="script"></path>
-
-    <path d="M.75 0c-.402 0-.75.348-.75.75v5.5c0 .402.348.75.75.75h4.5c.402 0 .75-.348.75-.75v-1.25h-1v1h-4v-5h2v-1h-2.25zm5.25 0v1c-2.05 0-3.704 1.544-3.938 3.531.213-.875.999-1.531 1.938-1.531h2v1l2-2-2-2z" id="share-boxed"></path>
-
-    <path d="M5 0v2c-4 0-5 2.05-5 5 .52-1.98 2-3 4-3h1v2l3-3.156-3-2.844z" id="share"></path>
-
-    <path d="M4 0l-.188.094-3.5 1.469-.313.125v.313c0 1.657.666 3.122 1.469 4.188.401.533.828.969 1.25 1.281.422.313.826.531 1.281.531.455 0 .86-.219 1.281-.531.422-.313.849-.749 1.25-1.281.803-1.065 1.469-2.53 1.469-4.188v-.313l-.313-.125-3.5-1.469-.188-.094zm0 1.094v5.906c-.045 0-.328-.069-.656-.313s-.714-.631-1.063-1.094c-.642-.851-1.137-2.025-1.219-3.281l2.938-1.219z" id="shield"></path>
-
-    <path d="M6 0v8h1v-8h-1zm-2 1v7h1v-7h-1zm-2 2v5h1v-5h-1zm-2 2v3h1v-3h-1z" id="signal"></path>
-
-    <path d="M3 0v1h-2l-1 1 1 1h2v5h1v-4h2l1-1-1-1h-2v-2h-1z" id="signpost"></path>
-
-    <path d="M2 0v6h-2l2.5 2 2.5-2h-2v-6h-1zm2 0v1h2v-1h-2zm0 2v1h3v-1h-3zm0 2v1h4v-1h-4z" id="sort-ascending"></path>
-
-    <path d="M2 0v6h-2l2.5 2 2.5-2h-2v-6h-1zm2 0v1h4v-1h-4zm0 2v1h3v-1h-3zm0 2v1h2v-1h-2z" id="sort-descending"></path>
-
-    <path d="M.75 0c-.402 0-.75.348-.75.75v5.5c0 .402.348.75.75.75h6.5c.402 0 .75-.348.75-.75v-5.5c0-.402-.348-.75-.75-.75h-6.5zm.25 1h1v1h-1v-1zm2 0h4v1h-4v-1zm-2 2h1v1h-1v-1zm2 0h4v1h-4v-1zm-2 2h1v1h-1v-1zm2 0h4v1h-4v-1z" id="spreadsheet"></path>
-
-    <path d="M4 0l-1 3h-3l2.5 2-1 3 2.5-2 2.5 2-1-3 2.5-2h-3l-1-3z" id="star"></path>
-
-    <path d="M4 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-2.5 1c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm5 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-2.5 1c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2zm-3.5 1.5c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm7 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-6 2.5c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm5 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-2.5 1c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5z" id="sun"></path>
-
-    <path d="M.344 0c-.18 0-.344.164-.344.344v7.313c0 .18.164.344.344.344h6.313c.18 0 .344-.164.344-.344v-7.313c0-.18-.164-.344-.344-.344h-6.313zm.656 1h5v5h-5v-5zm2.5 5.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="tablet"></path>
-
-    <path d="M0 0v3l5 5 3-3-5-5h-3zm2 1c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z" id="tag"></path>
-
-    <path d="M0 1v2l3 3 1.5-1.5.5-.5-2-2-1-1h-2zm3.406 0l3 3-1.188 1.219.781.781 2-2-3-3h-1.594zm-1.906 1c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="tags"></path>
-
-    <path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3-3-1.337-3-3 1.337-3 3-3zm0 1c-1.099 0-2 .901-2 2s.901 2 2 2 2-.901 2-2-.901-2-2-2zm0 1c.558 0 1 .442 1 1s-.442 1-1 1-1-.442-1-1 .442-1 1-1z" id="target"></path>
-
-    <path d="M0 0v7h7v-3.594l-1 1v1.594h-5v-5h3.594l1-1h-5.594zm7 0l-3 3-1-1-1 1 2 2 4-4-1-1z" id="task"></path>
-
-    <path d="M.094 0c-.06 0-.094.034-.094.094v7.813c0 .06.034.094.094.094h7.813c.06 0 .094-.034.094-.094v-7.813c0-.06-.034-.094-.094-.094h-7.813zm1.406.781l1.719 1.719-1.719 1.719-.719-.719 1-1-1-1 .719-.719zm2.5 2.219h3v1h-3v-1z" id="terminal"></path>
-
-    <path d="M0 0v2h.5c0-.55.45-1 1-1h1.5v5.5c0 .28-.22.5-.5.5h-.5v1h4v-1h-.5c-.28 0-.5-.22-.5-.5v-5.5h1.5c.55 0 1 .45 1 1h.5v-2h-8z" id="text"></path>
-
-    <path d="M0 0v4h1v-4h-1zm2 0v4.001c.28 0 .529.101.719.281.18.19 1.151 2.115 1.281 2.375.13.26.386.393.656.313.26-.08.393-.355.313-.625-.08-.26-.469-1.594-.469-1.844s.22-.5.5-.5h1.5c.28 0 .5-.22.5-.5l-1.031-3.188c-.08-.18-.259-.313-.469-.313h-3.5z" id="thumb-down"></path>
-
-    <path d="M4.438 0c-.19.021-.34.149-.438.344-.13.26-1.101 2.185-1.281 2.375-.19.18-.439.281-.719.281v4.001h3.5c.21 0 .389-.133.469-.313 0 0 1.031-2.908 1.031-3.188 0-.28-.22-.5-.5-.5h-1.5c-.28 0-.5-.25-.5-.5s.389-1.574.469-1.844c.08-.27-.053-.545-.313-.625l-.219-.031zm-4.438 3v4h1v-4h-1z" id="thumb-up"></path>
-
-    <path d="M2 0v1h1v.031c-1.697.241-3 1.707-3 3.469 0 1.929 1.571 3.5 3.5 3.5s3.5-1.571 3.5-3.5c0-.45-.086-.874-.219-1.25l-.938.344c.107.304.156.596.156.906 0 1.391-1.109 2.5-2.5 2.5s-2.5-1.109-2.5-2.5 1.109-2.5 2.5-2.5c.298 0 .585.051.875.156l.344-.938c-.221-.081-.471-.119-.719-.156v-.063h1v-1h-3zm5 1.125s-3.675 2.8-3.875 3c-.2.2-.2.519 0 .719.2.2.519.2.719 0 .2-.19 3.156-3.719 3.156-3.719z" id="timer"></path>
-
-    <path d="M6 0v1h-6v1h6v1l2-1.5-2-1.5zm-4 4l-2 1.5 2 1.5v-1h6v-1h-6v-1z" id="transfer"></path>
-
-    <path d="M3 0c-.55 0-1 .45-1 1h-1c-.55 0-1 .45-1 1h7c0-.55-.45-1-1-1h-1c0-.55-.45-1-1-1h-1zm-2 3v4.813c0 .11.077.188.188.188h4.625c.11 0 .188-.077.188-.188v-4.813h-1v3.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-3.5h-1v3.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-3.5h-1z" id="trash"></path>
-
-    <path d="M1 0v4c0 1.1 1.12 2 2.5 2h.5c1.1 0 2-.9 2-2v-4h-1v4c0 .55-.45 1-1 1s-1-.45-1-1v-4h-2zm-1 7v1h7v-1h-7z" id="underline"></path>
-
-    <path d="M.094 0c-.06 0-.094.034-.094.094v4.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-4.813c0-.06-.034-.094-.094-.094h-1.813zm6 0c-.06 0-.094.034-.094.094v4.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-4.813c0-.06-.034-.094-.094-.094h-1.813zm-3 2c-.06 0-.094.034-.094.094v2.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-2.813c0-.06-.034-.094-.094-.094h-1.813zm-3.094 4v1h8v-1h-8z" id="vertical-align-bottom"></path>
-
-    <path d="M.094 0c-.06 0-.094.034-.094.094v1.906h2v-1.906c0-.06-.034-.094-.094-.094h-1.813zm6 0c-.06 0-.094.034-.094.094v1.906h2v-1.906c0-.06-.034-.094-.094-.094h-1.813zm-3 1c-.06 0-.094.034-.094.094v.906h2v-.906c0-.06-.034-.094-.094-.094h-1.813zm-3.094 2v1h8v-1h-8zm0 2v1.906c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-1.906h-2zm3 0v.906c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-.906h-2zm3 0v1.906c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-1.906h-2z" id="vertical-align-center"></path>
-
-    <path d="M0 0v1h8v-1h-8zm.094 2c-.06 0-.094.034-.094.094v4.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-4.813c0-.06-.034-.094-.094-.094h-1.813zm3 0c-.06 0-.094.034-.094.094v2.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-2.813c0-.06-.034-.094-.094-.094h-1.813zm3 0c-.06 0-.094.034-.094.094v4.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-4.813c0-.06-.034-.094-.094-.094h-1.813z" id="vertical-align-top"></path>
-
-    <path d="M.5 1c-.28 0-.5.22-.5.5v4c0 .28.22.5.5.5h5c.28 0 .5-.22.5-.5v-1.5l1 1h1v-3h-1l-1 1v-1.5c0-.28-.22-.5-.5-.5h-5z" id="video"></path>
-
-    <path d="M3.344 0l-1.344 2h-2v4h2l1.344 2h.656v-8h-.656zm1.656 1v1c.152 0 .313.026.469.063h.031c.86.215 1.5.995 1.5 1.938 0 .942-.64 1.722-1.5 1.938-.166.041-.338.063-.5.063v1c.258 0 .516-.035.75-.094 1.3-.325 2.25-1.508 2.25-2.906 0-1.398-.95-2.581-2.25-2.906-.234-.059-.492-.094-.75-.094zm0 2v2l.25-.031c.433-.118.75-.507.75-.969 0-.446-.325-.819-.75-.938v-.031h-.031l-.219-.031z" id="volume-high"></path>
-
-    <path d="M4.344 0l-1.344 2h-2v4h2l1.344 2h.656v-8h-.656zm1.656 3v2l.25-.031c.433-.118.75-.507.75-.969 0-.446-.325-.819-.75-.938v-.031h-.031l-.219-.031z" id="volume-low"></path>
-
-    <path d="M5.344 0l-1.344 2h-2v4h2l1.344 2h.656v-8h-.656z" id="volume-off"></path>
-
-    <path d="M3.094 0c-.06 0-.105.044-.125.094l-2.938 6.813-.031.188v.813c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-.813l-.031-.188-2.938-6.813c-.02-.05-.065-.094-.125-.094h-.813zm-.094 3h1v2h-1v-2zm0 3h1v1h-1v-1z" id="warning"></path>
-
-    <path d="M3.75 0c-1.374 0-2.66.372-3.75 1.063l.531.875c.93-.59 2.033-.938 3.219-.938 1.2 0 2.323.31 3.25.906l.531-.813c-1.093-.703-2.401-1.094-3.781-1.094zm.031 3c-.795 0-1.531.227-2.156.625l.531.844c.475-.302 1.02-.469 1.625-.469.593 0 1.13.177 1.594.469l.531-.844c-.616-.388-1.338-.625-2.125-.625zm-.031 3c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z" id="wifi"></path>
-
-    <path d="M5.5 0c-1.38 0-2.5 1.12-2.5 2.5 0 .32.078.626.188.906l-2.906 2.875c-.39.39-.39 1.016 0 1.406.2.2.459.313.719.313.26 0 .519-.091.719-.281l2.875-2.875c.28.1.586.156.906.156 1.38 0 2.5-1.12 2.5-2.5 0-.16-.032-.297-.063-.438l-.938.938h-2v-2l.938-.938c-.14-.03-.277-.062-.438-.063zm-4.5 6.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" id="wrench"></path>
-
-    <path d="M1.406 0l-1.406 1.406.688.719 1.781 1.781-1.781 1.781-.688.719 1.406 1.406.719-.688 1.781-1.781 1.781 1.781.719.688 1.406-1.406-.688-.719-1.781-1.781 1.781-1.781.688-.719-1.406-1.406-.719.688-1.781 1.781-1.781-1.781-.719-.688z" id="x"></path>
-
-    <path d="M0 0l2.25 3h-2.25v1h3v1h-3v1h3v2h1v-2h3v-1h-3v-1h3v-1h-2.25l2.25-3h-1l-2.313 3h-.375l-2.313-3h-1z" id="yen"></path>
-
-    <path d="M3.5 0c-1.927 0-3.5 1.573-3.5 3.5s1.573 3.5 3.5 3.5c.592 0 1.166-.145 1.656-.406a1 1 0 0 0 .094.094l1.031 1.031a1.016 1.016 0 1 0 1.438-1.438l-1.031-1.031a1 1 0 0 0-.125-.094c.266-.493.438-1.059.438-1.656 0-1.927-1.573-3.5-3.5-3.5zm0 1c1.387 0 2.5 1.113 2.5 2.5 0 .587-.196 1.137-.531 1.563l-.031.031a1 1 0 0 0-.063.031 1 1 0 0 0-.281.281 1 1 0 0 0-.063.063c-.422.326-.953.531-1.531.531-1.387 0-2.5-1.113-2.5-2.5s1.113-2.5 2.5-2.5zm-.5 1v1h-1v1h1v1h1v-1h1v-1h-1v-1h-1z" id="zoom-in"></path>
-
-    <path d="M3.5 0c-1.927 0-3.5 1.573-3.5 3.5s1.573 3.5 3.5 3.5c.592 0 1.166-.145 1.656-.406a1 1 0 0 0 .094.094l1.031 1.031a1.016 1.016 0 1 0 1.438-1.438l-1.031-1.031a1 1 0 0 0-.125-.094c.266-.493.438-1.059.438-1.656 0-1.927-1.573-3.5-3.5-3.5zm0 1c1.387 0 2.5 1.113 2.5 2.5 0 .587-.196 1.137-.531 1.563l-.031.031a1 1 0 0 0-.063.031 1 1 0 0 0-.281.281 1 1 0 0 0-.063.063c-.422.326-.953.531-1.531.531-1.387 0-2.5-1.113-2.5-2.5s1.113-2.5 2.5-2.5zm-1.5 2v1h3v-1h-3z" id="zoom-out"></path>
-  </defs>
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/sprite/sprite.html b/assets/static/fonts/open-iconic/sprite/sprite.html
deleted file mode 100644
index d945efe..0000000
--- a/assets/static/fonts/open-iconic/sprite/sprite.html
+++ /dev/null
@@ -1,926 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-<style>
-  body {
-    font-family: Helvetica, sans-serif;
-  }
-
-  .container {
-    width: 600px;
-    text-align: center;
-    margin: 20px auto;
-  }
-
-  .message {
-    text-align: left;
-  }
-
-  .icon {
-    display: inline-block;
-    margin: 10px;
-    width: 16px;
-    height: 16px;
-  }
-</style>
-</head>
-<body>
-
-<div class="container">
-  <p class="message">Make sure to run this through a web server otherwise you won’t see any icons. You can use <a href="https://github.com/visionmedia/serve">Serve</a> for local testing.</p>
-  <svg class="icon">
-    <use xlink:href="sprite.svg#account-login"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#account-logout"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#action-redo"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#action-undo"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#align-center"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#align-left"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#align-right"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#aperture"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#arrow-bottom"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#arrow-circle-bottom"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#arrow-circle-left"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#arrow-circle-right"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#arrow-circle-top"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#arrow-left"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#arrow-right"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#arrow-thick-bottom"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#arrow-thick-left"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#arrow-thick-right"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#arrow-thick-top"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#arrow-top"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#audio-spectrum"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#audio"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#badge"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#ban"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#bar-chart"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#basket"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#battery-empty"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#battery-full"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#beaker"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#bell"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#bluetooth"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#bold"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#bolt"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#book"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#bookmark"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#box"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#briefcase"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#british-pound"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#browser"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#brush"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#bug"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#bullhorn"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#calculator"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#calendar"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#camera-slr"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#caret-bottom"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#caret-left"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#caret-right"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#caret-top"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#cart"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#chat"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#check"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#chevron-bottom"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#chevron-left"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#chevron-right"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#chevron-top"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#circle-check"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#circle-x"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#clipboard"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#clock"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#cloud-download"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#cloud-upload"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#cloud"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#cloudy"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#code"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#cog"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#collapse-down"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#collapse-left"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#collapse-right"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#collapse-up"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#command"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#comment-square"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#compass"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#contrast"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#copywriting"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#credit-card"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#crop"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#dashboard"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#data-transfer-download"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#data-transfer-upload"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#delete"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#dial"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#document"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#dollar"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#double-quote-sans-left"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#double-quote-sans-right"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#double-quote-serif-left"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#double-quote-serif-right"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#droplet"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#eject"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#elevator"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#ellipses"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#envelope-closed"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#envelope-open"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#euro"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#excerpt"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#expand-down"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#expand-left"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#expand-right"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#expand-up"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#external-link"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#eye"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#eyedropper"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#file"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#fire"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#flag"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#flash"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#folder"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#fork"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#fullscreen-enter"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#fullscreen-exit"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#globe"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#graph"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#grid-four-up"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#grid-three-up"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#grid-two-up"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#hard-drive"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#header"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#headphones"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#heart"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#home"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#image"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#inbox"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#infinity"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#info"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#italic"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#justify-center"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#justify-left"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#justify-right"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#key"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#laptop"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#layers"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#lightbulb"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#link-broken"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#link-intact"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#list-rich"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#list"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#location"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#lock-locked"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#lock-unlocked"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#loop-circular"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#loop-square"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#loop"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#magnifying-glass"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#map-marker"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#map"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#media-pause"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#media-play"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#media-record"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#media-skip-backward"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#media-skip-forward"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#media-step-backward"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#media-step-forward"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#media-stop"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#medical-cross"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#menu"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#microphone"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#minus"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#monitor"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#moon"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#move"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#musical-note"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#paperclip"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#pencil"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#people"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#person"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#phone"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#pie-chart"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#pin"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#play-circle"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#plus"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#power-standby"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#print"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#project"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#pulse"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#puzzle-piece"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#question-mark"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#rain"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#random"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#reload"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#resize-both"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#resize-height"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#resize-width"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#rss-alt"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#rss"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#script"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#share-boxed"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#share"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#shield"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#signal"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#signpost"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#sort-ascending"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#sort-descending"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#spreadsheet"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#star"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#sun"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#tablet"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#tag"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#tags"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#target"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#task"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#terminal"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#text"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#thumb-down"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#thumb-up"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#timer"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#transfer"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#trash"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#underline"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#vertical-align-bottom"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#vertical-align-center"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#vertical-align-top"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#video"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#volume-high"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#volume-low"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#volume-off"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#warning"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#wifi"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#wrench"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#x"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#yen"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#zoom-in"></use>
-  </svg>
-
-  <svg class="icon">
-    <use xlink:href="sprite.svg#zoom-out"></use>
-  </svg>
-
-</div>
-</body>
-</html>
diff --git a/assets/static/fonts/open-iconic/sprite/sprite.min.svg b/assets/static/fonts/open-iconic/sprite/sprite.min.svg
deleted file mode 100644
index af927c6..0000000
--- a/assets/static/fonts/open-iconic/sprite/sprite.min.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg"><defs><symbol id="account-login" viewBox="0 0 8 8"><path d="M3 0v1h4v5h-4v1h5v-7h-5zm1 2v1h-4v1h4v1l2-1.5-2-1.5z"/></symbol><symbol id="account-logout" viewBox="0 0 8 8"><path d="M3 0v1h4v5h-4v1h5v-7h-5zm-1 2l-2 1.5 2 1.5v-1h4v-1h-4v-1z"/></symbol><symbol id="action-redo" viewBox="0 0 8 8"><path d="M3.5 0c-1.93 0-3.5 1.57-3.5 3.5 0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v.5h-1l2 2 2-2h-1v-.5c0-1.93-1.57-3.5-3.5-3.5z" transform="translate(0 1)"/></symbol><symbol id="action-undo" viewBox="0 0 8 8"><path d="M4.5 0c-1.93 0-3.5 1.57-3.5 3.5v.5h-1l2 2 2-2h-1v-.5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5c0-1.93-1.57-3.5-3.5-3.5z" transform="translate(0 1)"/></symbol><symbol id="align-center" viewBox="0 0 8 8"><path d="M0 0v1h8v-1h-8zm1 2v1h6v-1h-6zm-1 2v1h8v-1h-8zm1 2v1h6v-1h-6z"/></symbol><symbol id="align-left" viewBox="0 0 8 8"><path d="M0 0v1h8v-1h-8zm0 2v1h6v-1h-6zm0 2v1h8v-1h-8zm0 2v1h6v-1h-6z"/></symbol><symbol id="align-right" vie
 wBox="0 0 8 8"><path d="M0 0v1h8v-1h-8zm2 2v1h6v-1h-6zm-2 2v1h8v-1h-8zm2 2v1h6v-1h-6z"/></symbol><symbol id="aperture" viewBox="0 0 8 8"><path d="M4 0c-.69 0-1.336.19-1.906.5l3.219 2.344.719-2.25c-.59-.36-1.281-.594-2.031-.594zm-2.75 1.125c-.76.73-1.25 1.735-1.25 2.875 0 .25.022.489.063.719l3.094-2.219-1.906-1.375zm5.625.125l-1.219 3.75h2.219c.08-.32.125-.65.125-1 0-1.07-.435-2.03-1.125-2.75zm-4.719 3.188l-1.75 1.281c.55 1.13 1.595 1.989 2.875 2.219l-1.125-3.5zm1.563 1.563l.625 1.969c1.33-.11 2.454-.879 3.094-1.969h-3.719z"/></symbol><symbol id="arrow-bottom" viewBox="0 0 8 8"><path d="M2 0v5h-2l2.531 3 2.469-3h-2v-5h-1z" transform="translate(1)"/></symbol><symbol id="arrow-circle-bottom" viewBox="0 0 8 8"><path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-1 1h2v3h2l-3 3-3-3h2v-3z"/></symbol><symbol id="arrow-circle-left" viewBox="0 0 8 8"><path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1v2h3v2h-3v2l-3-3 3-3z"/></symbol><symbol id="arrow-circle-
 right" viewBox="0 0 8 8"><path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1l3 3-3 3v-2h-3v-2h3v-2z"/></symbol><symbol id="arrow-circle-top" viewBox="0 0 8 8"><path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1l3 3h-2v3h-2v-3h-2l3-3z"/></symbol><symbol id="arrow-left" viewBox="0 0 8 8"><path d="M3 0l-3 2.531 3 2.469v-2h5v-1h-5v-2z" transform="translate(0 1)"/></symbol><symbol id="arrow-right" viewBox="0 0 8 8"><path d="M5 0v2h-5v1h5v2l3-2.531-3-2.469z" transform="translate(0 1)"/></symbol><symbol id="arrow-thick-bottom" viewBox="0 0 8 8"><path d="M2 0v5h-2l3.031 3 2.969-3h-2v-5h-2z" transform="translate(1)"/></symbol><symbol id="arrow-thick-left" viewBox="0 0 8 8"><path d="M3 0l-3 3.031 3 2.969v-2h5v-2h-5v-2z" transform="translate(0 1)"/></symbol><symbol id="arrow-thick-right" viewBox="0 0 8 8"><path d="M5 0v2h-5v2h5v2l3-3.031-3-2.969z" transform="translate(0 1)"/></symbol><symbol id="arrow-thick-top" viewBox="0 0 8 8"><path d="M2.969 0l-2.969 3
 h2v5h2v-5h2l-3.031-3z" transform="translate(1)"/></symbol><symbol id="arrow-top" viewBox="0 0 8 8"><path d="M2.469 0l-2.469 3h2v5h1v-5h2l-2.531-3z" transform="translate(1)"/></symbol><symbol id="audio-spectrum" viewBox="0 0 8 8"><path d="M4 0v8h1v-8h-1zm-2 1v6h1v-6h-1zm4 1v4h1v-4h-1zm-6 1v2h1v-2h-1z"/></symbol><symbol id="audio" viewBox="0 0 8 8"><path d="M1.188 0c-.734.722-1.188 1.748-1.188 2.844 0 1.095.454 2.09 1.188 2.813l.688-.719c-.546-.538-.875-1.269-.875-2.094s.329-1.587.875-2.125l-.688-.719zm5.625 0l-.688.719c.552.552.875 1.289.875 2.125 0 .836-.327 1.554-.875 2.094l.688.719c.732-.72 1.188-1.708 1.188-2.813 0-1.104-.459-2.115-1.188-2.844zm-4.219 1.406c-.362.362-.594.889-.594 1.438 0 .548.232 1.045.594 1.406l.688-.719c-.178-.178-.281-.416-.281-.688 0-.272.103-.54.281-.719l-.688-.719zm2.813 0l-.688.719c.183.183.281.434.281.719s-.099.505-.281.688l.688.719c.357-.357.594-.851.594-1.406 0-.555-.236-1.08-.594-1.438z" transform="translate(0 1)"/></symbol><symbol id="badge" viewBox=
 "0 0 8 8"><path d="M2 0c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2zm-1 4.813v3.188l1-1 1 1v-3.188c-.31.11-.65.188-1 .188s-.69-.077-1-.188z" transform="translate(2)"/></symbol><symbol id="ban" viewBox="0 0 8 8"><path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c.655 0 1.258.209 1.75.563l-4.188 4.188c-.353-.492-.563-1.095-.563-1.75 0-1.663 1.337-3 3-3zm2.438 1.25c.353.492.563 1.095.563 1.75 0 1.663-1.337 3-3 3-.655 0-1.258-.209-1.75-.563l4.188-4.188z"/></symbol><symbol id="bar-chart" viewBox="0 0 8 8"><path d="M0 0v7h8v-1h-7v-6h-1zm5 0v5h2v-5h-2zm-3 2v3h2v-3h-2z"/></symbol><symbol id="basket" viewBox="0 0 8 8"><path d="M3.969 0c-.127.011-.259.083-.344.188l-2.344 2.813h-1.281v1h1v3.656c0 .18.164.344.344.344h5.313c.18 0 .344-.164.344-.344v-3.656h1v-1h-1.281c-.274-.329-2.387-2.866-2.406-2.875-.105-.09-.216-.136-.344-.125zm.031 1.281l1.438 1.719h-2.875l1.438-1.719zm-1.5 3.719c.28 0 .5.22.5.5v1c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1c0-.
 28.22-.5.5-.5zm3 0c.28 0 .5.22.5.5v1c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1c0-.28.22-.5.5-.5z"/></symbol><symbol id="battery-empty" viewBox="0 0 8 8"><path d="M.094 0c-.06 0-.094.034-.094.094v5.813c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-1.906h1v-2h-1v-1.906c0-.06-.034-.094-.094-.094h-6.813zm.906 1h5v4h-5v-4z" transform="translate(0 1)"/></symbol><symbol id="battery-full" viewBox="0 0 8 8"><path d="M.094 0c-.06 0-.094.034-.094.094v5.813c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-1.906h1v-2h-1v-1.906c0-.06-.034-.094-.094-.094h-6.813z" transform="translate(0 1)"/></symbol><symbol id="beaker" viewBox="0 0 8 8"><path d="M1.344 0a.502.502 0 0 0 .156 1h.5v1.406c-.088.172-1.194 2.313-1.656 3.094-.153.268-.344.612-.344 1.063 0 .383.139.764.406 1.031.26.26.643.406 1.031.406h5.125c.383 0 .764-.139 1.031-.406.26-.26.406-.643.406-1.031 0-.452-.194-.801-.344-1.063-.463-.78-1.568-2.922-1.656-3.094v-1.406h.5a.5.5 0 1 0 0-1h-5a.5.5 0 0 0-.094 0 .502.502 0 0 0-.063 0zm1.656 1h2v1
 .625l.063.094s.652 1.233 1.219 2.281h-4.563c.567-1.049 1.219-2.281 1.219-2.281l.063-.094v-1.625z"/></symbol><symbol id="bell" viewBox="0 0 8 8"><path d="M4 0c-1.1 0-2 .9-2 2 0 1.04-.524 1.976-1.344 2.656-.42.34-.656.824-.656 1.344h8c0-.52-.236-1.004-.656-1.344-.82-.68-1.344-1.616-1.344-2.656 0-1.1-.9-2-2-2zm-1 7c0 .55.45 1 1 1s1-.45 1-1h-2z"/></symbol><symbol id="bluetooth" viewBox="0 0 8 8"><path d="M1.5 0v2.5l-.75-.75-.75.75 1.5 1.5-1.5 1.5.75.75.75-.75v2.5h.5l3.5-2.5-2.25-1.531 2.25-1.469-3.5-2.5h-.5zm1 1.5l1.5 1-1.5 1v-2zm0 3l1.5 1-1.5 1v-2z" transform="translate(1)"/></symbol><symbol id="bold" viewBox="0 0 8 8"><path d="M0 0v1c.55 0 1 .45 1 1v4c0 .55-.45 1-1 1v1h5.5c1.38 0 2.5-1.12 2.5-2.5 0-1-.588-1.85-1.438-2.25.27-.34.438-.78.438-1.25 0-1.1-.9-2-2-2h-5zm3 1h1c.55 0 1 .45 1 1s-.45 1-1 1h-1v-2zm0 3h1.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-1.5v-3z"/></symbol><symbol id="bolt" viewBox="0 0 8 8"><path d="M3 0l-3 5h2v3l3-5h-2v-3z" transform="translate(1)"/></symbol><symbol id="b
 ook" viewBox="0 0 8 8"><path d="M1 0c-.07 0-.127.001-.188.031-.39.08-.701.391-.781.781-.03.06-.031.118-.031.188v5.5c0 .83.67 1.5 1.5 1.5h5.5v-1h-5.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h5.5v-5.5c0-.28-.22-.5-.5-.5h-.5v3l-1-1-1 1v-3h-3z"/></symbol><symbol id="bookmark" viewBox="0 0 8 8"><path d="M0 0v8l2-2 2 2v-8h-4z" transform="translate(2)"/></symbol><symbol id="box" viewBox="0 0 8 8"><path d="M0 0v1h8v-1h-8zm0 2v5.906c0 .06.034.094.094.094h7.813c.06 0 .094-.034.094-.094v-5.906h-2.969v1.031h-2.031v-1.031h-3z"/></symbol><symbol id="briefcase" viewBox="0 0 8 8"><path d="M3 0c-.554 0-1 .458-1 1v1h-1.906c-.06 0-.094.034-.094.094v2.406c0 .28.22.5.5.5h7c.28 0 .5-.22.5-.5v-2.406c0-.06-.034-.094-.094-.094h-1.906v-1c0-.542-.446-1-1-1h-2zm0 1h2v1h-2v-1zm-3 4.906v2c0 .06.034.094.094.094h7.813c.06 0 .094-.034.094-.094v-2c-.16.05-.32.094-.5.094h-7c-.18 0-.34-.044-.5-.094z"/></symbol><symbol id="british-pound" viewBox="0 0 8 8"><path d="M3 0c-.619 0-1.159.262-1.5.688-.341.426-.5.986-.5 1.563 0 .692.1
 65 1.245.25 1.75h-1.25v1h1.219c-.112.448-.37.964-1.063 1.656l-.156.125v1.219h6v-1h-4.906c.641-.729.982-1.397 1.125-2h1.781v-1h-1.719c-.078-.683-.281-1.242-.281-1.75 0-.394.115-.731.281-.938.166-.207.368-.313.719-.313.394 0 .609.109.75.25.141.141.25.356.25.75h1c0-.576-.165-1.102-.531-1.469-.366-.366-.893-.531-1.469-.531z" transform="translate(1)"/></symbol><symbol id="browser" viewBox="0 0 8 8"><path d="M.344 0a.5.5 0 0 0-.344.5v7a.5.5 0 0 0 .5.5h7a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.5-.5h-7a.5.5 0 0 0-.094 0 .5.5 0 0 0-.063 0zm1.156 1c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zm2 0h3c.28 0 .5.22.5.5s-.22.5-.5.5h-3c-.28 0-.5-.22-.5-.5s.22-.5.5-.5zm-2.5 2h6v4h-6v-4z"/></symbol><symbol id="brush" viewBox="0 0 8 8"><path d="M7.438.031c-.029-.001-.037.016-.063.031l-3.75 2.656c-.04.03-.095.106-.125.156l-.125.25c.719.229 1.271.781 1.5 1.5l.25-.125c.05-.02.126-.075.156-.125l2.656-3.75c.03-.04.04-.116 0-.156l-.406-.406c-.02-.02-.065-.03-.094-.031zm-4.781 3.969c-.73 0-1.313.614-1.313 1.3
 44 0 .99-.544 1.821-1.344 2.281.4.23.864.375 1.344.375 1.48 0 2.656-1.176 2.656-2.656 0-.73-.604-1.344-1.344-1.344z"/></symbol><symbol id="bug" viewBox="0 0 8 8"><path d="M3.5 0c-1.19 0-1.978 1.69-1.188 2.5-.09.07-.196.137-.281.219l-1.313-.656a.5.5 0 0 0-.344-.063.5.5 0 0 0-.094.938l1.156.563c-.09.156-.186.328-.25.5h-.688a.5.5 0 0 0-.094 0 .502.502 0 1 0 .094 1h.5c0 .227.023.445.063.656l-.781.406a.5.5 0 1 0 .438.875l.656-.344c.245.46.59.844 1 1.094.35-.19.625-.439.625-.719v-1.438a.5.5 0 0 0 0-.094v-.813a.5.5 0 0 0 0-.219c.045-.231.254-.406.5-.406.28 0 .5.22.5.5v.875a.5.5 0 0 0 0 .094v.063a.5.5 0 0 0 0 .094v1.344c0 .27.275.497.625.688.41-.245.755-.604 1-1.063l.656.344a.5.5 0 1 0 .438-.875l-.781-.406c.04-.211.063-.429.063-.656h.5a.5.5 0 1 0 0-1h-.688c-.064-.172-.16-.344-.25-.5l1.156-.563a.5.5 0 0 0-.313-.938.5.5 0 0 0-.125.063l-1.313.656c-.086-.082-.191-.149-.281-.219.78-.83.003-2.5-1.188-2.5z"/></symbol><symbol id="bullhorn" viewBox="0 0 8 8"><path d="M6.094 0c-.03 0-.06.022-.094.031
 v5.969c.033.007.065 0 .094 0h.813c.06 0 .094-.034.094-.094v-5.813c0-.06-.034-.094-.094-.094h-.813zm-1.094.5l-2.906 1.469c-.05.02-.127.031-.188.031h-1.813c-.06 0-.094.034-.094.094v1.813c0 .06.034.094.094.094h.906l1.031 2.719c.11.25.406.36.656.25.25-.11.36-.406.25-.656l-.719-1.781c.033-.136.136-.25.281-.25v-.031l2.5 1.25v-5z"/></symbol><symbol id="calculator" viewBox="0 0 8 8"><path d="M.094 0c-.06 0-.094.034-.094.094v7.813c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-7.813c0-.06-.034-.094-.094-.094h-6.813zm.906 1h5v2h-5v-2zm0 3h1v1h-1v-1zm2 0h1v1h-1v-1zm2 0h1v3h-1v-3zm-4 2h1v1h-1v-1zm2 0h1v1h-1v-1z"/></symbol><symbol id="calendar" viewBox="0 0 8 8"><path d="M0 0v2h7v-2h-7zm0 3v4.906c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-4.906h-7zm1 1h1v1h-1v-1zm2 0h1v1h-1v-1zm2 0h1v1h-1v-1zm-4 2h1v1h-1v-1zm2 0h1v1h-1v-1z"/></symbol><symbol id="camera-slr" viewBox="0 0 8 8"><path d="M4.094 0c-.06 0-.105.044-.125.094l-.938 1.813c-.02.05-.065.094-.125.094h-1.406c-.83 0-1.5.67-1.
 5 1.5v4.406c0 .06.034.094.094.094h7.813c.06 0 .094-.034.094-.094v-5.813c0-.06-.034-.094-.094-.094h-.813c-.06 0-.105-.044-.125-.094l-.938-1.813c-.02-.05-.065-.094-.125-.094h-1.813zm-2.594 3c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zm3.5 0c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm0 1c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z"/></symbol><symbol id="caret-bottom" viewBox="0 0 8 8"><path d="M0 0l4 4 4-4h-8z" transform="translate(0 2)"/></symbol><symbol id="caret-left" viewBox="0 0 8 8"><path d="M4 0l-4 4 4 4v-8z" transform="translate(2)"/></symbol><symbol id="caret-right" viewBox="0 0 8 8"><path d="M0 0v8l4-4-4-4z" transform="translate(2)"/></symbol><symbol id="caret-top" viewBox="0 0 8 8"><path d="M4 0l-4 4h8l-4-4z" transform="translate(0 2)"/></symbol><symbol id="cart" viewBox="0 0 8 8"><path d="M.344 0a.502.502 0 0 0 .156 1h1.5l.094.25.406 1.25.406 1.25c.04.13.204.25.344.25h3.5c.14 0 .304-.12.344-.25l.813-2.531c.04-.12-.016-.219-.156-.219h-4.438l-.375-.719a.5.5 0 0 
 0-.438-.281h-2a.5.5 0 0 0-.094 0 .502.502 0 0 0-.063 0zm3.156 5c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm3 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5z" transform="translate(0 1)"/></symbol><symbol id="chat" viewBox="0 0 8 8"><path d="M0 0v5l1-1h1v-3h3v-1h-5zm3 2v4h4l1 1v-5h-5z"/></symbol><symbol id="check" viewBox="0 0 8 8"><path d="M6.406 0l-.719.688-2.781 2.781-.781-.781-.719-.688-1.406 1.406.688.719 1.5 1.5.719.688.719-.688 3.5-3.5.688-.719-1.406-1.406z" transform="translate(0 1)"/></symbol><symbol id="chevron-bottom" viewBox="0 0 8 8"><path d="M1.5 0l-1.5 1.5 4 4 4-4-1.5-1.5-2.5 2.5-2.5-2.5z" transform="translate(0 1)"/></symbol><symbol id="chevron-left" viewBox="0 0 8 8"><path d="M4 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z" transform="translate(1)"/></symbol><symbol id="chevron-right" viewBox="0 0 8 8"><path d="M1.5 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z" transform="translate(1)"/></symbol><symbol id="chevron-top" viewBox="0 0 8 8"><path
  d="M4 0l-4 4 1.5 1.5 2.5-2.5 2.5 2.5 1.5-1.5-4-4z" transform="translate(0 1)"/></symbol><symbol id="circle-check" viewBox="0 0 8 8"><path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm2 1.781l.719.719-3.219 3.219-1.719-1.719.719-.719 1 1 2.5-2.5z"/></symbol><symbol id="circle-x" viewBox="0 0 8 8"><path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-1.5 1.781l1.5 1.5 1.5-1.5.719.719-1.5 1.5 1.5 1.5-.719.719-1.5-1.5-1.5 1.5-.719-.719 1.5-1.5-1.5-1.5.719-.719z"/></symbol><symbol id="clipboard" viewBox="0 0 8 8"><path d="M3.5 0c-.28 0-.5.22-.5.5v.5h-.75c-.14 0-.25.11-.25.25v.75h3v-.75c0-.14-.11-.25-.25-.25h-.75v-.5c0-.28-.22-.5-.5-.5zm-3.25 1c-.14 0-.25.11-.25.25v6.5c0 .14.11.25.25.25h6.5c.14 0 .25-.11.25-.25v-6.5c0-.14-.11-.25-.25-.25h-.75v2h-5v-2h-.75z"/></symbol><symbol id="clock" viewBox="0 0 8 8"><path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3-3-1.337-3-3 1.337-3 3-3z
 m-.5 1v2.219l.156.125.5.5.344.375.719-.719-.375-.344-.344-.344v-1.813h-1z"/></symbol><symbol id="cloud-download" viewBox="0 0 8 8"><path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2 0 .37.111.7.281 1h2.719v-.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v.5h1.906c.05-.16.094-.32.094-.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5zm-.156 4a.5.5 0 0 0-.344.5v1.5h-1.5l2 2 2-2h-1.5v-1.5a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0z"/></symbol><symbol id="cloud-upload" viewBox="0 0 8 8"><path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2 0 .37.111.7.281 1h2.219l2-2 2 2h1.406c.05-.16.094-.32.094-.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5zm0 4.5l-2.5 2.5h2v.5a.5.5 0 1 0 1 0v-.5h2l-2.5-2.5z"/></symbol><symbol id="cloud" viewBox="0 0 8 8"><path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2s.9 2 2 2h4.5c.83 0 1.5-.67 1.5-1.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5z" transform="translate(0 1)"/></symbol><symbol id="cloudy" viewBox="0 0 8 8"><path d="M2.5 0c-1.38 0-2.5 1.12-2.5 2.5 0 .3
 9.09.743.25 1.063.3-.21.63-.379 1-.469.55-1.25 1.82-2.084 3.25-2.094-.46-.6-1.18-1-2-1zm2 2c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2s.9 2 2 2h4.5c.83 0 1.5-.67 1.5-1.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5z"/></symbol><symbol id="code" viewBox="0 0 8 8"><path d="M5 0l-3 6h1l3-6h-1zm-4 1l-1 2 1 2h1l-1-2 1-2h-1zm5 0l1 2-1 2h1l1-2-1-2h-1z" transform="translate(0 1)"/></symbol><symbol id="cog" viewBox="0 0 8 8"><path d="M3.5 0l-.5 1.188c-.1.04-.191.085-.281.125l-1.188-.5-.719.719.5 1.188c-.05.1-.095.181-.125.281l-1.188.5v1l1.188.5c.03.1.075.213.125.313l-.5 1.156.719.719 1.188-.5c.1.05.181.085.281.125l.5 1.188h1l.5-1.188c.1-.03.191-.085.281-.125l1.188.5.719-.719-.5-1.188c.04-.09.085-.181.125-.281l1.188-.5v-1l-1.188-.5c-.03-.09-.075-.191-.125-.281l.469-1.188-.688-.719-1.188.5c-.09-.04-.181-.095-.281-.125l-.5-1.188h-1zm.5 2.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5-1.5-.67-1.5-1.5.67-1.5 1.5-1.5z"/></symbol><symbol id="collapse-down" viewBox="0 0 8 8"><path d="M0 0v2h8v-2h-8zm2 3l2 2 
 2-2h-4zm-2 4v1h8v-1h-8z"/></symbol><symbol id="collapse-left" viewBox="0 0 8 8"><path d="M0 0v8h1v-8h-1zm6 0v8h2v-8h-2zm-1 2l-2 2 2 2v-4z"/></symbol><symbol id="collapse-right" viewBox="0 0 8 8"><path d="M0 0v8h2v-8h-2zm7 0v8h1v-8h-1zm-4 2v4l2-2-2-2z"/></symbol><symbol id="collapse-up" viewBox="0 0 8 8"><path d="M0 0v1h8v-1h-8zm4 3l-2 2h4l-2-2zm-4 3v2h8v-2h-8z"/></symbol><symbol id="command" viewBox="0 0 8 8"><path d="M1.5 0c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5h.5v1h-.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5v-.5h1v.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5-.67-1.5-1.5-1.5h-.5v-1h.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5v.5h-1v-.5c0-.83-.67-1.5-1.5-1.5zm0 1c.28 0 .5.22.5.5v.5h-.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5zm4 0c.28 0 .5.22.5.5s-.22.5-.5.5h-.5v-.5c0-.28.22-.5.5-.5zm-2.5 2h1v1h-1v-1zm-1.5 2h.5v.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5.22-.5.5-.5zm3.5 0h.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5v-.5z"/></symbol><symbol id="comment-square" viewBox="0 0 8 8"><pat
 h d="M.094 0c-.06 0-.094.034-.094.094v5.813c0 .06.034.094.094.094h5.906l2 2v-7.906c0-.06-.034-.094-.094-.094h-7.813z"/></symbol><symbol id="compass" viewBox="0 0 8 8"><path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3-3-1.337-3-3 1.337-3 3-3zm2 1l-3 1-1 3 3-1 1-3zm-2 1.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z"/></symbol><symbol id="contrast" viewBox="0 0 8 8"><path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3v-6z"/></symbol><symbol id="copywriting" viewBox="0 0 8 8"><path d="M0 0v1h8v-1h-8zm0 2v1h5v-1h-5zm0 3v1h8v-1h-8zm0 2v1h6v-1h-6zm7.5 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5z"/></symbol><symbol id="credit-card" viewBox="0 0 8 8"><path d="M.25 0c-.14 0-.25.11-.25.25v.75h8v-.75c0-.14-.11-.25-.25-.25h-7.5zm-.25 2v3.75c0 .14.11.25.25.25h7.5c.14 0 .25-.11.25-.25v-3.75h-8zm1 2h1v1h-1v-1zm2 0h
 1v1h-1v-1z" transform="translate(0 1)"/></symbol><symbol id="crop" viewBox="0 0 8 8"><path d="M1 0v1h-1v1h1v5h5v1h1v-1h1v-1h-1v-4.5l1-1-.5-.5-1 1h-4.5v-1h-1zm1 2h3.5l-3.5 3.5v-3.5zm4 .5v3.5h-3.5l3.5-3.5z"/></symbol><symbol id="dashboard" viewBox="0 0 8 8"><path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3-3-1.337-3-3 1.337-3 3-3zm0 1c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-1.656 1a.5.5 0 0 0-.188.844l.906.906c-.023.085-.063.158-.063.25 0 .552.448 1 1 1s1-.448 1-1-.448-1-1-1c-.092 0-.165.039-.25.063l-.906-.906a.5.5 0 0 0-.438-.156.5.5 0 0 0-.063 0zm3.156 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5z"/></symbol><symbol id="data-transfer-download" viewBox="0 0 8 8"><path d="M3 0v3h-2l3 3 3-3h-2v-3h-2zm-3 7v1h8v-1h-8z"/></symbol><symbol id="data-transfer-upload" viewBox="0 0 8 8"><path d="M0 0v1h8v-1h-8zm4 2l-3 3h2v3h2v-3h2l-3-3z"/></symbol><symbol id="delete" viewBox="0 0 
 8 8"><path d="M2 0l-2 3 2 3h6v-6h-6zm1.5.781l1.5 1.5 1.5-1.5.719.719-1.5 1.5 1.5 1.5-.719.719-1.5-1.5-1.5 1.5-.719-.719 1.5-1.5-1.5-1.5.719-.719z" transform="translate(0 1)"/></symbol><symbol id="dial" viewBox="0 0 8 8"><path d="M4 0c-2.201 0-4 1.799-4 4h1c0-1.659 1.341-3 3-3s3 1.341 3 3h1c0-2.201-1.799-4-4-4zm-.594 2.094c-.82.25-1.406 1.006-1.406 1.906 0 1.1.9 2 2 2s2-.9 2-2c0-.9-.586-1.656-1.406-1.906l-.594.875-.594-.875z" transform="translate(0 1)"/></symbol><symbol id="document" viewBox="0 0 8 8"><path d="M0 0v8h7v-4h-4v-4h-3zm4 0v3h3l-3-3zm-3 2h1v1h-1v-1zm0 2h1v1h-1v-1zm0 2h4v1h-4v-1z"/></symbol><symbol id="dollar" viewBox="0 0 8 8"><path d="M2 0v1h-.75c-.686 0-1.25.564-1.25 1.25v.5c0 .678.437 1.242 1.094 1.406l2.563.656c.143.036.344.296.344.438v.5c0 .134-.116.25-.25.25h-2.5c-.116 0-.212-.037-.25-.063v-.938h-1v1c0 .342.203.627.438.781.234.155.518.219.813.219h.75v1h1v-1h.75c.686 0 1.25-.564 1.25-1.25v-.5c0-.678-.437-1.242-1.094-1.406l-2.563-.656c-.143-.036-.344-.296-.344-.438v-.
 5c0-.134.116-.25.25-.25h2.5c.116 0 .212.037.25.063v.938h1v-1c0-.342-.203-.627-.438-.781-.234-.155-.518-.219-.813-.219h-.75v-1h-1z" transform="translate(1)"/></symbol><symbol id="double-quote-sans-left" viewBox="0 0 8 8"><path d="M0 0v6l3-3v-3h-3zm5 0v6l3-3v-3h-3z" transform="translate(0 1)"/></symbol><symbol id="double-quote-sans-right" viewBox="0 0 8 8"><path d="M3 0l-3 3v3h3v-6zm5 0l-3 3v3h3v-6z" transform="translate(0 1)"/></symbol><symbol id="double-quote-serif-left" viewBox="0 0 8 8"><path d="M3 0c-1.651 0-3 1.349-3 3v3h3v-3h-2c0-1.109.891-2 2-2v-1zm5 0c-1.651 0-3 1.349-3 3v3h3v-3h-2c0-1.109.891-2 2-2v-1z" transform="translate(0 1)"/></symbol><symbol id="double-quote-serif-right" viewBox="0 0 8 8"><path d="M0 0v3h2c0 1.109-.891 2-2 2v1c1.651 0 3-1.349 3-3v-3h-3zm5 0v3h2c0 1.109-.891 2-2 2v1c1.651 0 3-1.349 3-3v-3h-3z" transform="translate(0 1)"/></symbol><symbol id="droplet" viewBox="0 0 8 8"><path d="M3 0l-.344.344c-.11.11-2.656 2.685-2.656 4.875 0 1.65 1.35 3 3 3s3-1.35 3-3c0
 -2.19-2.546-4.765-2.656-4.875l-.344-.344zm-1.5 4.719c.28 0 .5.22.5.5 0 .55.45 1 1 1 .28 0 .5.22.5.5s-.22.5-.5.5c-1.1 0-2-.9-2-2 0-.28.22-.5.5-.5z" transform="translate(1)"/></symbol><symbol id="eject" viewBox="0 0 8 8"><path d="M4 0l-4 5h8l-4-5zm-4 6v2h8v-2h-8z"/></symbol><symbol id="elevator" viewBox="0 0 8 8"><path d="M3 0l-3 3h6l-3-3zm-3 5l3 3 3-3h-6z" transform="translate(1)"/></symbol><symbol id="ellipses" viewBox="0 0 8 8"><path d="M0 0v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2z" transform="translate(0 3)"/></symbol><symbol id="envelope-closed" viewBox="0 0 8 8"><path d="M0 0v1l4 2 4-2v-1h-8zm0 2v4h8v-4l-4 2-4-2z" transform="translate(0 1)"/></symbol><symbol id="envelope-open" viewBox="0 0 8 8"><path d="M4 0l-4 2v6h8v-6l-4-2zm0 1.125l3 1.5v1.875l-3 1.5-3-1.5v-1.875l3-1.5zm-2 1.875v1l2 1 2-1v-1h-4z"/></symbol><symbol id="euro" viewBox="0 0 8 8"><path d="M6 0c-1.858 0-3.398 1.278-3.844 3h-1.906l-.25 1h2c0 .345.073.68.156 1h-1.969l-.188 1h2.563c.696 1.185 1.969 2 3.438 2 .734 0 1.4
 07-.215 2-.563v-1.219c-.531.479-1.225.781-2 .781-.888 0-1.671-.392-2.219-1h2.219l.156-1h-2.969c-.113-.317-.188-.643-.188-1h3.344l.156-1h-3.313c.414-1.16 1.507-2 2.813-2 .655 0 1.258.209 1.75.563l.156-1.063c-.57-.313-1.213-.5-1.906-.5z" transform="translate(-1)"/></symbol><symbol id="excerpt" viewBox="0 0 8 8"><path d="M0 0v1h7v-1h-7zm0 2v1h5v-1h-5zm0 2v1h8v-1h-8zm0 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1z"/></symbol><symbol id="expand-down" viewBox="0 0 8 8"><path d="M0 0v1h8v-1h-8zm2 2l2 2 2-2h-4zm-2 4v2h8v-2h-8z"/></symbol><symbol id="expand-left" viewBox="0 0 8 8"><path d="M0 0v8h1v-8h-1zm6 0v8h2v-8h-2zm-4 2v4l2-2-2-2z"/></symbol><symbol id="expand-right" viewBox="0 0 8 8"><path d="M0 0v8h2v-8h-2zm7 0v8h1v-8h-1zm-1 2l-2 2 2 2v-4z"/></symbol><symbol id="expand-up" viewBox="0 0 8 8"><path d="M0 0v2h8v-2h-8zm4 4l-2 2h4l-2-2zm-4 3v1h8v-1h-8z"/></symbol><symbol id="external-link" viewBox="0 0 8 8"><path d="M0 0v8h8v-2h-1v1h-6v-6h1v-1h-2zm4 0l1.5 1.5-2.5 2.5 1 1 2.5-2.5 1.5 1.5v-4h-4
 z"/></symbol><symbol id="eye" viewBox="0 0 8 8"><path d="M4.031 0c-2.53 0-4.031 3-4.031 3s1.501 3 4.031 3c2.47 0 3.969-3 3.969-3s-1.499-3-3.969-3zm-.031 1c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm0 1c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1c0-.1-.032-.191-.063-.281-.08.16-.237.281-.438.281-.28 0-.5-.22-.5-.5 0-.2.121-.357.281-.438-.09-.03-.181-.063-.281-.063z" transform="translate(0 1)"/></symbol><symbol id="eyedropper" viewBox="0 0 8 8"><path d="M3.313 0a.5.5 0 0 0-.188.844l.625.625-3.594 3.656-.156.156v2.719h2.719l.125-.156 3.656-3.656.625.656a.5.5 0 1 0 .719-.688l-.938-.938.656-.656c.59-.58.59-1.545 0-2.125-.56-.57-1.555-.57-2.125 0l-.656.656-.938-.938a.5.5 0 0 0-.469-.156.5.5 0 0 0-.063 0zm1.156 2.188l1.313 1.313-3.156 3.156-1.281-1.313 3.125-3.156z"/></symbol><symbol id="file" viewBox="0 0 8 8"><path d="M0 0v8h7v-4h-4v-4h-3zm4 0v3h3l-3-3z"/></symbol><symbol id="fire" viewBox="0 0 8 8"><path d="M2 0c1 2-2 3-2 5s2 3 2 3c-.98-1.98 2-3 2-5s-2-3-2-3zm3 3c1 2-2 3-2 5h3c.4 0 1-.5 1-2 0
 -2-2-3-2-3z"/></symbol><symbol id="flag" viewBox="0 0 8 8"><path d="M0 0v8h1v-8h-1zm2 0v4h2v1h4l-2-1.969 2-2.031h-3v-1h-3z"/></symbol><symbol id="flash" viewBox="0 0 8 8"><path d="M1.5 0l-1.5 3h2l-.656 2h-1.344l1 3 3-3h-1.5l1.5-3h-2l1-2h-1.5z" transform="translate(2)"/></symbol><symbol id="folder" viewBox="0 0 8 8"><path d="M0 0v2h8v-1h-5v-1h-3zm0 3v4.5c0 .28.22.5.5.5h7c.28 0 .5-.22.5-.5v-4.5h-8z"/></symbol><symbol id="fork" viewBox="0 0 8 8"><path d="M1.5 0c-.828 0-1.5.672-1.5 1.5 0 .656.414 1.202 1 1.406v2.188c-.586.204-1 .75-1 1.406 0 .828.672 1.5 1.5 1.5s1.5-.672 1.5-1.5c0-.595-.341-1.101-.844-1.344.09-.09.205-.156.344-.156h2c.823 0 1.5-.677 1.5-1.5v-.594c.586-.204 1-.75 1-1.406 0-.828-.672-1.5-1.5-1.5s-1.5.672-1.5 1.5c0 .656.414 1.202 1 1.406v.594c0 .277-.223.5-.5.5h-2c-.171 0-.346.04-.5.094v-1.188c.586-.204 1-.75 1-1.406 0-.828-.672-1.5-1.5-1.5z"/></symbol><symbol id="fullscreen-enter" viewBox="0 0 8 8"><path d="M0 0v4l1.5-1.5 1.5 1.5 1-1-1.5-1.5 1.5-1.5h-4zm5 4l-1 1 1.5 1.5-1
 .5 1.5h4v-4l-1.5 1.5-1.5-1.5z"/></symbol><symbol id="fullscreen-exit" viewBox="0 0 8 8"><path d="M1 0l-1 1 1.5 1.5-1.5 1.5h4v-4l-1.5 1.5-1.5-1.5zm3 4v4l1.5-1.5 1.5 1.5 1-1-1.5-1.5 1.5-1.5h-4z"/></symbol><symbol id="globe" viewBox="0 0 8 8"><path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1c.333 0 .637.086.938.188-.214.197-.45.383-.406.563.04.18.688.13.688.5 0 .27-.425.346-.125.656.35.35-.636.978-.656 1.438-.03.83.841.969 1.531.969.424 0 .503.195.469.438-.546.758-1.438 1.25-2.438 1.25-.378 0-.729-.09-1.063-.219.224-.442-.313-1.344-.781-1.625-.226-.226-.689-.114-.969-.219-.092-.271-.178-.545-.188-.844.031-.05.081-.094.156-.094.19 0 .454.374.594.344.18-.04-.742-1.313-.313-1.563.2-.12.609.394.469-.156-.12-.51.366-.276.656-.406.26-.11.455-.414.125-.594-.057-.031-.133-.104-.219-.188.45-.27.972-.438 1.531-.438zm2.313 1.094c.184.222.323.481.438.75-.043.065-.083.114-.188.219-.29.27-.327-.212-.438-.313-.13-.11-.638.025-.688-.125-.077-.181.499-.418.875-.531z"/></symbol><sym
 bol id="graph" viewBox="0 0 8 8"><path d="M7.031 0l-3.031 3-1-1-3 3.031 1 1 2-2.031 1 1 4-4-.969-1zm-7.031 7v1h8v-1h-8z"/></symbol><symbol id="grid-four-up" viewBox="0 0 8 8"><path d="M0 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm-6 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm-6 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm-6 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1z"/></symbol><symbol id="grid-three-up" viewBox="0 0 8 8"><path d="M0 0v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2zm-6 3v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2zm-6 3v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2z"/></symbol><symbol id="grid-two-up" viewBox="0 0 8 8"><path d="M0 0v3h3v-3h-3zm5 0v3h3v-3h-3zm-5 5v3h3v-3h-3zm5 0v3h3v-3h-3z"/></symbol><symbol id="hard-drive" viewBox="0 0 8 8"><path d="M.188 0c-.11 0-.188.077-.188.188v3.313c0 .28.22.5.5.5h6c.28 0 .5-.22.5-.5v-3.313c0-.11-.077-.188-.188-.188h-6.625zm-.188 4.906v2.906c0 .11.077.188.188.188h6.625c.11 0 .188-.077.18
 8-.188v-2.906c-.16.05-.32.094-.5.094h-6c-.18 0-.34-.044-.5-.094zm5.5 1.094c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z"/></symbol><symbol id="header" viewBox="0 0 8 8"><path d="M0 0v1h.5c.28 0 .5.22.5.5v4c0 .28-.22.5-.5.5h-.5v1h3v-1h-.5c-.28 0-.5-.22-.5-.5v-1.5h3v1.5c0 .28-.22.5-.5.5h-.5v1h3v-1h-.5c-.28 0-.5-.22-.5-.5v-4c0-.28.22-.5.5-.5h.5v-1h-3v1h.5c.28 0 .5.22.5.5v1.5h-3v-1.5c0-.28.22-.5.5-.5h.5v-1h-3z"/></symbol><symbol id="headphones" viewBox="0 0 8 8"><path d="M4 0c-1.651 0-3 1.349-3 3v1h-.5a.5.5 0 0 0-.5.5v2a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-3.5c0-1.109.891-2 2-2s2 .891 2 2v3.5a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-2a.5.5 0 0 0-.5-.5h-.5v-1c0-1.651-1.349-3-3-3z"/></symbol><symbol id="heart" viewBox="0 0 8 8"><path d="M2 0c-.55 0-1.046.224-1.406.594-.37.36-.594.856-.594 1.406 0 .55.224 1.046.594 1.406l3.406 3.438 3.406-3.438c.37-.37.594-.856.594-1.406 0-.55-.224-1.046-.594-1.406-.36-.37-.856-.594-1.406-.594-.55 0-1.046.224-1.406.594-.37.36-.594.856-.594 1.406 0-.55-.2
 24-1.046-.594-1.406-.36-.37-.856-.594-1.406-.594z" transform="translate(0 1)"/></symbol><symbol id="home" viewBox="0 0 8 8"><path d="M4 0l-4 3h1v4h2v-2h2v2h2v-4.031l1 .031-4-3z"/></symbol><symbol id="image" viewBox="0 0 8 8"><path d="M0 0v8h8v-8h-8zm1 1h6v3l-1-1-1 1 2 2v1h-1l-4-4-1 1v-3z"/></symbol><symbol id="inbox" viewBox="0 0 8 8"><path d="M.188 0c-.11 0-.188.077-.188.188v7.625c0 .11.077.188.188.188h7.625c.11 0 .188-.077.188-.188v-7.625c0-.11-.077-.188-.188-.188h-7.625zm.813 2h6v3h-1l-1 1h-2l-1-1h-1v-3z"/></symbol><symbol id="infinity" viewBox="0 0 8 8"><path d="M2 0c-1.31 0-2 1.01-2 2s.69 2 2 2c.79 0 1.42-.559 2-1.219.58.66 1.19 1.219 2 1.219 1.31 0 2-1.01 2-2s-.69-2-2-2c-.81 0-1.42.559-2 1.219-.57-.66-1.21-1.219-2-1.219zm0 1c.42 0 .884.47 1.344 1-.46.53-.924 1-1.344 1-.74 0-1-.54-1-1 0-.46.26-1 1-1zm4 0c.74 0 1 .54 1 1 0 .46-.26 1-1 1-.43 0-.894-.47-1.344-1 .45-.53.914-1 1.344-1z" transform="translate(0 2)"/></symbol><symbol id="info" viewBox="0 0 8 8"><path d="M3 0c-.552 0-1 
 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1zm-1.5 2.5c-.83 0-1.5.67-1.5 1.5h1c0-.28.22-.5.5-.5s.5.22.5.5-1 1.64-1 2.5c0 .86.67 1.5 1.5 1.5s1.5-.67 1.5-1.5h-1c0 .28-.22.5-.5.5s-.5-.22-.5-.5c0-.36 1-1.84 1-2.5 0-.81-.67-1.5-1.5-1.5z" transform="translate(2)"/></symbol><symbol id="italic" viewBox="0 0 8 8"><path d="M2 0v1h1.625l-.063.125-2 5-.344.875h-1.219v1h5v-1h-1.625l.063-.125 2-5 .344-.875h1.219v-1h-5z"/></symbol><symbol id="justify-center" viewBox="0 0 8 8"><path d="M0 0v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h8v-1h-8zm1 2v1h6v-1h-6z"/></symbol><symbol id="justify-left" viewBox="0 0 8 8"><path d="M0 0v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h6v-1h-6z"/></symbol><symbol id="justify-right" viewBox="0 0 8 8"><path d="M0 0v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h8v-1h-8zm2 2v1h6v-1h-6z"/></symbol><symbol id="key" viewBox="0 0 8 8"><path d="M5.5 0c-1.38 0-2.5 1.12-2.5 2.5 0 .16.033.297.063.438l-3.063 3.063v2h3v-2h2v-1l.063-.063c.14.03.277.063.438.063 1.38 0 2.5-1.12 2.5-2.5s-1.12-2.5-2.5-2.5zm.5 
 1c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z"/></symbol><symbol id="laptop" viewBox="0 0 8 8"><path d="M1.344 0a.5.5 0 0 0-.344.5v3.5h-1v1.5c0 .28.22.5.5.5h7c.28 0 .5-.22.5-.5v-1.5h-1v-3.5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0-.094 0 .5.5 0 0 0-.063 0zm.656 1h4v3h-1v1h-2v-1h-1v-3z" transform="translate(0 1)"/></symbol><symbol id="layers" viewBox="0 0 8 8"><path d="M0 0v4h4v-4h-4zm5 2v3h-3v1h4v-4h-1zm2 2v3h-3v1h4v-4h-1z"/></symbol><symbol id="lightbulb" viewBox="0 0 8 8"><path d="M3.406 0a.5.5 0 0 0-.125.063l-3 1.5a.5.5 0 1 0 .438.875l3-1.5a.5.5 0 0 0-.313-.938zm1 1.5a.5.5 0 0 0-.125.063l-4 2a.5.5 0 1 0 .438.875l4-2a.5.5 0 0 0-.313-.938zm0 2a.5.5 0 0 0-.125.063l-3 1.5a.5.5 0 0 0 .219.938h2a.502.502 0 0 0 .156-1l1.063-.563a.5.5 0 0 0-.313-.938zm-2.563 3.5a.502.502 0 0 0 .156 1h1a.5.5 0 1 0 0-1h-1a.5.5 0 0 0-.094 0 .502.502 0 0 0-.063 0z" transform="translate(1)"/></symbol><symbol id="link-broken" viewBox="0 0 8 8"><path d="M2 0v1h-1v1h2v-2h-1zm3.875.031c-.184.01-.354.03-.531.094-.27.095
 -.531.25-.75.469l-.438.438a.5.5 0 1 0 .688.688l.438-.438c.101-.101.245-.173.375-.219.352-.126.78-.064 1.063.219.395.389.4 1.037 0 1.438l-1.5 1.5a.5.5 0 1 0 .688.688l1.5-1.5c.78-.78.785-2.041 0-2.813-.279-.279-.606-.452-.969-.531-.181-.039-.379-.041-.563-.031zm-3.594 2.906a.5.5 0 0 0-.188.156l-1.5 1.5c-.78.78-.785 2.041 0 2.813.557.557 1.355.722 2.063.469.27-.095.531-.25.75-.469l.438-.438a.5.5 0 1 0-.688-.688l-.438.438c-.101.101-.245.173-.375.219-.352.126-.78.064-1.063-.219-.395-.389-.4-1.037 0-1.438l1.5-1.5a.5.5 0 0 0-.438-.844.5.5 0 0 0-.063 0zm2.719 3.063v2h1v-1h1v-1h-2z"/></symbol><symbol id="link-intact" viewBox="0 0 8 8"><path d="M5.875.031c-.184.01-.354.03-.531.094-.27.095-.531.25-.75.469a.5.5 0 1 0 .688.688c.101-.101.245-.173.375-.219.352-.126.78-.064 1.063.219.395.389.4 1.037 0 1.438l-1.5 1.5c-.434.434-.799.483-1.063.469-.264-.015-.406-.125-.406-.125a.504.504 0 1 0-.5.875s.34.222.844.25c.504.028 1.197-.165 1.813-.781l1.5-1.5c.78-.78.785-2.041 0-2.813-.279-.279-.606-.452-.969
 -.531-.181-.039-.379-.041-.563-.031zm-2 2.313c-.501-.019-1.186.155-1.781.75l-1.5 1.5c-.78.78-.785 2.041 0 2.813.557.557 1.355.722 2.063.469.27-.095.531-.25.75-.469a.5.5 0 1 0-.688-.688c-.101.101-.245.173-.375.219-.352.126-.78.064-1.063-.219-.395-.389-.4-1.037 0-1.438l1.5-1.5c.405-.405.752-.448 1.031-.438.279.011.469.094.469.094a.5.5 0 1 0 .438-.875s-.343-.199-.844-.219z"/></symbol><symbol id="list-rich" viewBox="0 0 8 8"><path d="M0 0v3h3v-3h-3zm4 0v1h4v-1h-4zm0 2v1h3v-1h-3zm-4 2v3h3v-3h-3zm4 0v1h4v-1h-4zm0 2v1h3v-1h-3z"/></symbol><symbol id="list" viewBox="0 0 8 8"><path d="M.5 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm1.5 0v1h6v-1h-6zm-1.5 2c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm1.5 0v1h6v-1h-6zm-1.5 2c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm1.5 0v1h6v-1h-6zm-1.5 2c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm1.5 0v1h6v-1h-6z"/></symbol><symbol id="location" viewBox="0 0 8 8"><path d="M8 0l-8 4 3 1 1 3 4-8z"/></s
 ymbol><symbol id="lock-locked" viewBox="0 0 8 8"><path d="M3 0c-1.099 0-2 .901-2 2v1h-1v4h6v-4h-1v-1c0-1.099-.901-2-2-2zm0 1c.561 0 1 .439 1 1v1h-2v-1c0-.561.439-1 1-1z" transform="translate(1)"/></symbol><symbol id="lock-unlocked" viewBox="0 0 8 8"><path d="M3 0c-1.099 0-2 .901-2 2h1c0-.561.439-1 1-1 .561 0 1 .439 1 1v2h-4v4h6v-4h-1v-2c0-1.099-.901-2-2-2z" transform="translate(1)"/></symbol><symbol id="loop-circular" viewBox="0 0 8 8"><path d="M4 0c-1.651 0-3 1.349-3 3h-1l1.5 2 1.5-2h-1c0-1.109.891-2 2-2v-1zm2.5 1l-1.5 2h1c0 1.109-.891 2-2 2v1c1.651 0 3-1.349 3-3h1l-1.5-2z" transform="translate(0 1)"/></symbol><symbol id="loop-square" viewBox="0 0 8 8"><path d="M1 0v2h1v-1h4v2h-1l1.5 2.5 1.5-2.5h-1v-3h-6zm.5 2.5l-1.5 2.5h1v3h6v-2h-1v1h-4v-2h1l-1.5-2.5z"/></symbol><symbol id="loop" viewBox="0 0 8 8"><path d="M6 0v1h-5c-.554 0-1 .446-1 1v1h1v-1h5v1l2-1.5-2-1.5zm-4 4l-2 1.5 2 1.5v-1h5c.542 0 1-.458 1-1v-1h-1v1h-5v-1z"/></symbol><symbol id="magnifying-glass" viewBox="0 0 8 8"><path d="
 M3.5 0c-1.927 0-3.5 1.573-3.5 3.5s1.573 3.5 3.5 3.5c.592 0 1.166-.145 1.656-.406a1 1 0 0 0 .125.125l1 1a1.016 1.016 0 1 0 1.438-1.438l-1-1a1 1 0 0 0-.156-.125c.266-.493.438-1.059.438-1.656 0-1.927-1.573-3.5-3.5-3.5zm0 1c1.387 0 2.5 1.113 2.5 2.5 0 .661-.241 1.273-.656 1.719-.01.011-.021.021-.031.031a1 1 0 0 0-.125.125c-.442.397-1.043.625-1.688.625-1.387 0-2.5-1.113-2.5-2.5s1.113-2.5 2.5-2.5z"/></symbol><symbol id="map-marker" viewBox="0 0 8 8"><path d="M3 0c-1.66 0-3 1.34-3 3 0 2 3 5 3 5s3-3 3-5c0-1.66-1.34-3-3-3zm0 1c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2z" transform="translate(1)"/></symbol><symbol id="map" viewBox="0 0 8 8"><path d="M0 0v8h8v-2.375a.5.5 0 0 0 0-.219v-5.406h-8zm1 1h6v4h-1.5a.5.5 0 0 0-.094 0 .502.502 0 1 0 .094 1h1.5v1h-6v-6zm2.5 1c-.83 0-1.5.67-1.5 1.5 0 1 1.5 2.5 1.5 2.5s1.5-1.5 1.5-2.5c0-.83-.67-1.5-1.5-1.5zm0 1c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z"/></symbol><symbol id="media-pause" viewBox="0 0 8 8"><path d="M0 0v6h2v-6h-2zm4 0v6h2v-6h-2z"
  transform="translate(1 1)"/></symbol><symbol id="media-play" viewBox="0 0 8 8"><path d="M0 0v6l6-3-6-3z" transform="translate(1 1)"/></symbol><symbol id="media-record" viewBox="0 0 8 8"><path d="M3 0c-1.657 0-3 1.343-3 3s1.343 3 3 3 3-1.343 3-3-1.343-3-3-3z" transform="translate(1 1)"/></symbol><symbol id="media-skip-backward" viewBox="0 0 8 8"><path d="M4 0l-4 3 4 3v-6zm0 3l4 3v-6l-4 3z" transform="translate(0 1)"/></symbol><symbol id="media-skip-forward" viewBox="0 0 8 8"><path d="M0 0v6l4-3-4-3zm4 3v3l4-3-4-3v3z" transform="translate(0 1)"/></symbol><symbol id="media-step-backward" viewBox="0 0 8 8"><path d="M0 0v6h2v-6h-2zm2 3l5 3v-6l-5 3z" transform="translate(0 1)"/></symbol><symbol id="media-step-forward" viewBox="0 0 8 8"><path d="M0 0v6l5-3-5-3zm5 3v3h2v-6h-2v3z" transform="translate(0 1)"/></symbol><symbol id="media-stop" viewBox="0 0 8 8"><path d="M0 0v6h6v-6h-6z" transform="translate(1 1)"/></symbol><symbol id="medical-cross" viewBox="0 0 8 8"><path d="M2 0v2h-2v4h2v2h4
 v-2h2v-4h-2v-2h-4z"/></symbol><symbol id="menu" viewBox="0 0 8 8"><path d="M0 0v1h8v-1h-8zm0 2.969v1h8v-1h-8zm0 3v1h8v-1h-8z" transform="translate(0 1)"/></symbol><symbol id="microphone" viewBox="0 0 8 8"><path d="M2.906-.031a1 1 0 0 0-.125.031 1 1 0 0 0-.781 1v2a1 1 0 1 0 2 0v-2a1 1 0 0 0-1.094-1.031zm-2.563 2.031a.5.5 0 0 0-.344.5v.5c0 1.476 1.091 2.693 2.5 2.938v1.063h-.5c-.55 0-1 .45-1 1h4c0-.55-.45-1-1-1h-.5v-1.063c1.409-.244 2.5-1.461 2.5-2.938v-.5a.5.5 0 1 0-1 0v.5c0 1.109-.891 2-2 2s-2-.891-2-2v-.5a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0z" transform="translate(1)"/></symbol><symbol id="minus" viewBox="0 0 8 8"><path d="M0 0v2h8v-2h-8z" transform="translate(0 3)"/></symbol><symbol id="monitor" viewBox="0 0 8 8"><path d="M.344 0a.5.5 0 0 0-.344.5v5a.5.5 0 0 0 .5.5h2.5v1h-1c-.55 0-1 .45-1 1h6c0-.55-.45-1-1-1h-1v-1h2.5a.5.5 0 0 0 .5-.5v-5a.5.5 0 0 0-.5-.5h-7a.5.5 0 0 0-.094 0 .5.5 0 0 0-.063 0zm.656 1h6v4h-6v-4z"/></symbol><symbol id="moon" viewBox="0 0 8 8"><path d="M2.719 0c-1.58.
 53-2.719 2.021-2.719 3.781 0 2.21 1.79 4 4 4 1.76 0 3.251-1.17 3.781-2.75-.4.14-.831.25-1.281.25-2.21 0-4-1.79-4-4 0-.44.079-.881.219-1.281z"/></symbol><symbol id="move" viewBox="0 0 8 8"><path d="M3.5 0l-1.5 1.5h1v1.5h-1.5v-1l-1.5 1.5 1.5 1.5v-1h1.5v1.5h-1l1.5 1.5 1.5-1.5h-1v-1.5h1.5v1l1.5-1.5-1.5-1.5v1h-1.5v-1.5h1l-1.5-1.5z"/></symbol><symbol id="musical-note" viewBox="0 0 8 8"><path d="M8 0c-5 0-6 1-6 1v4.094c-.154-.054-.327-.094-.5-.094-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5v-3.969c.732-.226 1.99-.438 4-.5v2.063c-.154-.054-.327-.094-.5-.094-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5v-5.5z"/></symbol><symbol id="paperclip" viewBox="0 0 8 8"><path d="M5 0c-.514 0-1.021.201-1.406.594l-2.781 2.719c-1.07 1.07-1.07 2.805 0 3.875 1.07 1.07 2.805 1.07 3.875 0l1.25-1.25-.688-.688-.906.875-.344.375c-.69.69-1.81.69-2.5 0-.682-.682-.668-1.778 0-2.469l2.781-2.719v-.031c.389-.395 1.037-.4 1.438 0 .388.381.378 1.006 0 1.406l-2.5 2.469c-.095.095-.28.095-.375 0-.0
 95-.095-.095-.28 0-.375l.375-.344.594-.625-.688-.688-.875.875-.094.094c-.485.485-.485 1.265 0 1.75.485.485 1.265.485 1.75 0l2.5-2.438c.78-.78.785-2.041 0-2.813-.39-.39-.893-.594-1.406-.594z"/></symbol><symbol id="pencil" viewBox="0 0 8 8"><path d="M6 0l-1 1 2 2 1-1-2-2zm-2 2l-4 4v2h2l4-4-2-2z"/></symbol><symbol id="people" viewBox="0 0 8 8"><path d="M5.5 0c-.51 0-.949.355-1.219.875.45.54.719 1.275.719 2.125 0 .29-.034.574-.094.844.18.11.374.156.594.156.83 0 1.5-.9 1.5-2s-.67-2-1.5-2zm-3 1c-.828 0-1.5.895-1.5 2s.672 2 1.5 2 1.5-.895 1.5-2-.672-2-1.5-2zm4.75 3.156c-.43.51-1.018.824-1.688.844.27.38.438.844.438 1.344v.656h2v-1.656c0-.52-.31-.968-.75-1.188zm-6.5 1c-.44.22-.75.668-.75 1.188v1.656h5v-1.656c0-.52-.31-.968-.75-1.188-.44.53-1.06.844-1.75.844s-1.31-.314-1.75-.844z"/></symbol><symbol id="person" viewBox="0 0 8 8"><path d="M4 0c-1.105 0-2 1.119-2 2.5s.895 2.5 2 2.5 2-1.119 2-2.5-.895-2.5-2-2.5zm-2.094 5c-1.07.04-1.906.92-1.906 2v1h8v-1c0-1.08-.836-1.96-1.906-2-.54.61-1.284 1-2.0
 94 1-.81 0-1.554-.39-2.094-1z"/></symbol><symbol id="phone" viewBox="0 0 8 8"><path d="M.188 0c-.11 0-.188.077-.188.188v7.625c0 .11.077.188.188.188h4.625c.11 0 .188-.077.188-.188v-7.625c0-.11-.077-.188-.188-.188h-4.625zm.813 1h3v5h-3v-5zm1.5 5.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" transform="translate(1)"/></symbol><symbol id="pie-chart" viewBox="0 0 8 8"><path d="M3.5 0c-.97 0-1.839.391-2.469 1.031l2.969 2.969v-3.969c-.16-.03-.33-.031-.5-.031zm1.5 1.063v3.406l-2.719 2.719c.6.5 1.369.813 2.219.813 1.93 0 3.5-1.57 3.5-3.5 0-1.76-1.31-3.197-3-3.438zm-4.094 1.313c-.55.54-.906 1.285-.906 2.125 0 .95.435 1.804 1.125 2.344l2.156-2.125-2.375-2.344z"/></symbol><symbol id="pin" viewBox="0 0 8 8"><path d="M1.344 0a.502.502 0 0 0 .156 1h.5v2h-1c-.55 0-1 .45-1 1h3v3l.438 1 .563-1v-3h3c0-.55-.45-1-1-1h-1v-2h.5a.5.5 0 1 0 0-1h-4a.5.5 0 0 0-.094 0 .502.502 0 0 0-.063 0z"/></symbol><symbol id="play-circle" viewBox="0 0 8 8"><path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.
 79-4-4-4zm-1 2l3 2-3 2v-4z"/></symbol><symbol id="plus" viewBox="0 0 8 8"><path d="M3 0v3h-3v2h3v3h2v-3h3v-2h-3v-3h-2z"/></symbol><symbol id="power-standby" viewBox="0 0 8 8"><path d="M3 0v4h1v-4h-1zm-1.281 1.438l-.375.313c-.803.64-1.344 1.634-1.344 2.75 0 1.929 1.571 3.5 3.5 3.5s3.5-1.571 3.5-3.5c0-1.116-.529-2.11-1.344-2.75l-.375-.313-.625.781.375.313c.585.46.969 1.165.969 1.969 0 1.391-1.109 2.5-2.5 2.5s-2.5-1.109-2.5-2.5c0-.804.361-1.509.938-1.969l.406-.313-.625-.781z"/></symbol><symbol id="print" viewBox="0 0 8 8"><path d="M2 0v2h4v-2h-4zm-1.906 3c-.06 0-.094.034-.094.094v2.813c0 .06.034.094.094.094h.906v-2h6v2h.906c.06 0 .094-.034.094-.094v-2.813c0-.06-.034-.094-.094-.094h-7.813zm1.906 2v3h4v-3h-4z"/></symbol><symbol id="project" viewBox="0 0 8 8"><path d="M0 0v7h1v-7h-1zm7 0v7h1v-7h-1zm-5 1v1h2v-1h-2zm1 2v1h2v-1h-2zm1 2v1h2v-1h-2z"/></symbol><symbol id="pulse" viewBox="0 0 8 8"><path d="M3.25 0l-.469 1.531-.781 2.563-.031-.063-.094-.344h-1.875v1h1.156l.375 1.156.469 1.469.469
 -1.469.781-2.5.781 2.5.406 1.313.531-1.281.594-1.469.125.281h2.313v-1h-1.688l-.375-.719-.5-1-.406 1.031-.469 1.188-.844-2.656-.469-1.531z"/></symbol><symbol id="puzzle-piece" viewBox="0 0 8 8"><path d="M3 0c-.28 0-.539.101-.719.281-.18.18-.281.439-.281.719 0 .28.181.479.281.719.03.06.063.161.063.281h-2.344v6h2.344c0-.12-.011-.221-.031-.281-.11-.24-.313-.439-.313-.719 0-.28.101-.539.281-.719.18-.18.439-.281.719-.281.28 0 .539.101.719.281.18.18.281.439.281.719 0 .28-.181.479-.281.719-.03.06-.063.161-.063.281h2.344v-2.344c.12 0 .221.011.281.031.24.11.439.313.719.313.28 0 .539-.101.719-.281.18-.18.281-.439.281-.719 0-.28-.101-.539-.281-.719-.18-.18-.439-.281-.719-.281-.28 0-.479.181-.719.281-.06.03-.161.063-.281.063v-2.344h-2.344c0-.12.011-.221.031-.281.11-.24.313-.439.313-.719 0-.28-.101-.539-.281-.719-.18-.18-.439-.281-.719-.281z"/></symbol><symbol id="question-mark" viewBox="0 0 8 8"><path d="M2.469 0c-.854 0-1.48.256-1.875.656s-.54.901-.594 1.281l1 .125c.036-.26.125-.497.313-.688.18
 8-.19.491-.375 1.156-.375.664 0 1.019.163 1.219.344.199.181.281.405.281.656 0 .833-.313 1.063-.813 1.5-.5.438-1.188 1.083-1.188 2.25v.25h1v-.25c0-.833.344-1.063.844-1.5.5-.438 1.156-1.083 1.156-2.25 0-.479-.168-1.02-.594-1.406-.426-.387-1.071-.594-1.906-.594zm-.5 7v1h1v-1h-1z" transform="translate(2)"/></symbol><symbol id="rain" viewBox="0 0 8 8"><path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2 0 .52.201 1.015.531 1.375.26-.22.599-.375.969-.375.2 0 .393.055.563.125.17-.64.748-1.125 1.438-1.125s1.268.485 1.438 1.125c.17-.07.362-.125.563-.125.63 0 1.155.388 1.375.938.64-.17 1.125-.747 1.125-1.438 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5zm-1.156 5a.5.5 0 0 0-.344.5v2a.5.5 0 1 0 1 0v-2a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0zm-2 1a.5.5 0 0 0-.344.5v1a.5.5 0 1 0 1 0v-1a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0zm4 0a.5.5 0 0 0-.344.5v1a.5.5 0 1 0 1 0v-1a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0z"/></symbol><symbol id="random" viewBox="0 0 8 8"><path d="M6 0v1h-.5c-.354 0-.6.116-.813.375l-1.40
 6 1.75-1.5-1.75v-.031c-.212-.236-.427-.344-.781-.344h-1v1h1c-.037 0 .008-.011.031 0v.031l1.625 1.906-1.625 2.031c.016-.02.019.022 0 .031-.019.009-.068 0-.031 0h-1v1h1c.354 0 .6-.116.813-.375l1.531-1.906 1.625 1.906v.031c.212.236.427.344.781.344h.25v1l2-1.5-2-1.5v1h-.25c.037 0-.008.011-.031 0v-.031l-1.75-2.063 1.5-1.875v-.031c.019-.009.068 0 .031 0h.5v1l2-1.5-2-1.5z"/></symbol><symbol id="reload" viewBox="0 0 8 8"><path d="M4 0c-2.201 0-4 1.799-4 4s1.799 4 4 4c1.104 0 2.092-.456 2.813-1.188l-.688-.688c-.54.548-1.289.875-2.125.875-1.659 0-3-1.341-3-3s1.341-3 3-3c.834 0 1.545.354 2.094.906l-1.094 1.094h3v-3l-1.188 1.188c-.731-.72-1.719-1.188-2.813-1.188z"/></symbol><symbol id="resize-both" viewBox="0 0 8 8"><path d="M4 0l1.656 1.656-4 4-1.656-1.656v4h4l-1.656-1.656 4-4 1.656 1.656v-4h-4z"/></symbol><symbol id="resize-height" viewBox="0 0 8 8"><path d="M2.5 0l-2.5 3h2v2h-2l2.5 3 2.5-3h-2v-2h2l-2.5-3z" transform="translate(1)"/></symbol><symbol id="resize-width" viewBox="0 0 8 8"><path d
 ="M3 0l-3 2.5 3 2.5v-2h2v2l3-2.5-3-2.5v2h-2v-2z" transform="translate(0 1)"/></symbol><symbol id="rss-alt" viewBox="0 0 8 8"><path d="M0 0v2c3.331 0 6 2.669 6 6h2c0-4.409-3.591-8-8-8zm0 3v2c1.67 0 3 1.33 3 3h2c0-2.75-2.25-5-5-5zm0 3v2h2c0-1.11-.89-2-2-2z"/></symbol><symbol id="rss" viewBox="0 0 8 8"><path d="M1 0v1c3.32 0 6 2.68 6 6h1c0-3.86-3.14-7-7-7zm0 2v1c2.221 0 4 1.779 4 4h1c0-2.759-2.241-5-5-5zm0 2v1c1.109 0 2 .891 2 2h1c0-1.651-1.349-3-3-3zm0 2c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z"/></symbol><symbol id="script" viewBox="0 0 8 8"><path d="M3 0c-.55 0-1 .45-1 1v5.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1.5h-1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-3h-4v-2.5c0-.28.22-.5.5-.5s.5.22.5.5v1.5h4v-2c0-.55-.45-1-1-1h-4z"/></symbol><symbol id="share-boxed" viewBox="0 0 8 8"><path d="M.75 0c-.402 0-.75.348-.75.75v5.5c0 .402.348.75.75.75h4.5c.402 0 .75-.348.75-.75v-1.25h-1v1h-4v-5h2v-1h-2.25zm5.25 0v1c-2.05 0-3.704 1.544-3.938 3.531.213-.875.999-1.531 1.938-1.531h2v1l2-2-2-2z"/></
 symbol><symbol id="share" viewBox="0 0 8 8"><path d="M5 0v2c-4 0-5 2.05-5 5 .52-1.98 2-3 4-3h1v2l3-3.156-3-2.844z"/></symbol><symbol id="shield" viewBox="0 0 8 8"><path d="M4 0l-.188.094-3.5 1.469-.313.125v.313c0 1.657.666 3.122 1.469 4.188.401.533.828.969 1.25 1.281.422.313.826.531 1.281.531.455 0 .86-.219 1.281-.531.422-.313.849-.749 1.25-1.281.803-1.065 1.469-2.53 1.469-4.188v-.313l-.313-.125-3.5-1.469-.188-.094zm0 1.094v5.906c-.045 0-.328-.069-.656-.313s-.714-.631-1.063-1.094c-.642-.851-1.137-2.025-1.219-3.281l2.938-1.219z"/></symbol><symbol id="signal" viewBox="0 0 8 8"><path d="M6 0v8h1v-8h-1zm-2 1v7h1v-7h-1zm-2 2v5h1v-5h-1zm-2 2v3h1v-3h-1z"/></symbol><symbol id="signpost" viewBox="0 0 8 8"><path d="M3 0v1h-2l-1 1 1 1h2v5h1v-4h2l1-1-1-1h-2v-2h-1z"/></symbol><symbol id="sort-ascending" viewBox="0 0 8 8"><path d="M2 0v6h-2l2.5 2 2.5-2h-2v-6h-1zm2 0v1h2v-1h-2zm0 2v1h3v-1h-3zm0 2v1h4v-1h-4z"/></symbol><symbol id="sort-descending" viewBox="0 0 8 8"><path d="M2 0v6h-2l2.5 2 2.5-2h-2
 v-6h-1zm2 0v1h4v-1h-4zm0 2v1h3v-1h-3zm0 2v1h2v-1h-2z"/></symbol><symbol id="spreadsheet" viewBox="0 0 8 8"><path d="M.75 0c-.402 0-.75.348-.75.75v5.5c0 .402.348.75.75.75h6.5c.402 0 .75-.348.75-.75v-5.5c0-.402-.348-.75-.75-.75h-6.5zm.25 1h1v1h-1v-1zm2 0h4v1h-4v-1zm-2 2h1v1h-1v-1zm2 0h4v1h-4v-1zm-2 2h1v1h-1v-1zm2 0h4v1h-4v-1z"/></symbol><symbol id="star" viewBox="0 0 8 8"><path d="M4 0l-1 3h-3l2.5 2-1 3 2.5-2 2.5 2-1-3 2.5-2h-3l-1-3z"/></symbol><symbol id="sun" viewBox="0 0 8 8"><path d="M4 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-2.5 1c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm5 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-2.5 1c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2zm-3.5 1.5c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm7 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-6 2.5c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm5 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5z
 m-2.5 1c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5z"/></symbol><symbol id="tablet" viewBox="0 0 8 8"><path d="M.344 0c-.18 0-.344.164-.344.344v7.313c0 .18.164.344.344.344h6.313c.18 0 .344-.164.344-.344v-7.313c0-.18-.164-.344-.344-.344h-6.313zm.656 1h5v5h-5v-5zm2.5 5.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z"/></symbol><symbol id="tag" viewBox="0 0 8 8"><path d="M0 0v3l5 5 3-3-5-5h-3zm2 1c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z"/></symbol><symbol id="tags" viewBox="0 0 8 8"><path d="M0 0v2l3 3 1.5-1.5.5-.5-2-2-1-1h-2zm3.406 0l3 3-1.188 1.219.781.781 2-2-3-3h-1.594zm-1.906 1c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" transform="translate(0 1)"/></symbol><symbol id="target" viewBox="0 0 8 8"><path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3-3-1.337-3-3 1.337-3 3-3zm0 1c-1.099 0-2 .901-2 2s.901 2 2 2 2-.901 2-2-.901-2-2-2zm0 1c.558 0 1 .442 1 1s-.442 1-1 1-1-.
 442-1-1 .442-1 1-1z"/></symbol><symbol id="task" viewBox="0 0 8 8"><path d="M0 0v7h7v-3.594l-1 1v1.594h-5v-5h3.594l1-1h-5.594zm7 0l-3 3-1-1-1 1 2 2 4-4-1-1z"/></symbol><symbol id="terminal" viewBox="0 0 8 8"><path d="M.094 0c-.06 0-.094.034-.094.094v7.813c0 .06.034.094.094.094h7.813c.06 0 .094-.034.094-.094v-7.813c0-.06-.034-.094-.094-.094h-7.813zm1.406.781l1.719 1.719-1.719 1.719-.719-.719 1-1-1-1 .719-.719zm2.5 2.219h3v1h-3v-1z"/></symbol><symbol id="text" viewBox="0 0 8 8"><path d="M0 0v2h.5c0-.55.45-1 1-1h1.5v5.5c0 .28-.22.5-.5.5h-.5v1h4v-1h-.5c-.28 0-.5-.22-.5-.5v-5.5h1.5c.55 0 1 .45 1 1h.5v-2h-8z"/></symbol><symbol id="thumb-down" viewBox="0 0 8 8"><path d="M0 0v4h1v-4h-1zm2 0v4.001c.28 0 .529.101.719.281.18.19 1.151 2.115 1.281 2.375.13.26.386.393.656.313.26-.08.393-.355.313-.625-.08-.26-.469-1.594-.469-1.844s.22-.5.5-.5h1.5c.28 0 .5-.22.5-.5s-1.031-3.188-1.031-3.188c-.08-.18-.259-.313-.469-.313h-3.5z"/></symbol><symbol id="thumb-up" viewBox="0 0 8 8"><path d="M4.438 0c-.19.0
 21-.34.149-.438.344-.13.26-1.101 2.185-1.281 2.375-.19.18-.439.281-.719.281v4.001h3.5c.21 0 .389-.133.469-.313 0 0 1.031-2.908 1.031-3.188 0-.28-.22-.5-.5-.5h-1.5c-.28 0-.5-.25-.5-.5s.389-1.574.469-1.844c.08-.27-.053-.545-.313-.625-.067-.02-.155-.038-.219-.031zm-4.438 3v4h1v-4h-1z"/></symbol><symbol id="timer" viewBox="0 0 8 8"><path d="M2 0v1h1v.031c-1.697.241-3 1.707-3 3.469 0 1.929 1.571 3.5 3.5 3.5s3.5-1.571 3.5-3.5c0-.45-.086-.874-.219-1.25l-.938.344c.107.304.156.596.156.906 0 1.391-1.109 2.5-2.5 2.5s-2.5-1.109-2.5-2.5 1.109-2.5 2.5-2.5c.298 0 .585.051.875.156l.344-.938c-.221-.081-.471-.119-.719-.156v-.063h1v-1h-3zm5 1.125s-3.675 2.8-3.875 3c-.2.2-.2.519 0 .719.2.2.519.2.719 0 .2-.19 3.156-3.719 3.156-3.719z"/></symbol><symbol id="transfer" viewBox="0 0 8 8"><path d="M6 0v1h-6v1h6v1l2-1.5-2-1.5zm-4 4l-2 1.5 2 1.5v-1h6v-1h-6v-1z"/></symbol><symbol id="trash" viewBox="0 0 8 8"><path d="M3 0c-.55 0-1 .45-1 1h-1c-.55 0-1 .45-1 1h7c0-.55-.45-1-1-1h-1c0-.55-.45-1-1-1h-1zm-2 3v4.813c0
  .11.077.188.188.188h4.625c.11 0 .188-.077.188-.188v-4.813h-1v3.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-3.5h-1v3.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-3.5h-1z"/></symbol><symbol id="underline" viewBox="0 0 8 8"><path d="M1 0v4c0 1.1 1.12 2 2.5 2h.5c1.1 0 2-.9 2-2v-4h-1v4c0 .55-.45 1-1 1s-1-.45-1-1v-4h-2zm-1 7v1h7v-1h-7z"/></symbol><symbol id="vertical-align-bottom" viewBox="0 0 8 8"><path d="M.094 0c-.06 0-.094.034-.094.094v4.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-4.813c0-.06-.034-.094-.094-.094h-1.813zm6 0c-.06 0-.094.034-.094.094v4.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-4.813c0-.06-.034-.094-.094-.094h-1.813zm-3 2c-.06 0-.094.034-.094.094v2.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-2.813c0-.06-.034-.094-.094-.094h-1.813zm-3.094 4v1h8v-1h-8z"/></symbol><symbol id="vertical-align-center" viewBox="0 0 8 8"><path d="M.094 0c-.06 0-.094.034-.094.094v1.906h2v-1.906c0-.06-.034-.094-.094-.094h-1.813zm6 0c-.06 0-.094.034-.094.094v1.906h2v-1.906c0
 -.06-.034-.094-.094-.094h-1.813zm-3 1c-.06 0-.094.034-.094.094v.906h2v-.906c0-.06-.034-.094-.094-.094h-1.813zm-3.094 2v1h8v-1h-8zm0 2v1.906c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-1.906h-2zm3 0v.906c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-.906h-2zm3 0v1.906c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-1.906h-2z"/></symbol><symbol id="vertical-align-top" viewBox="0 0 8 8"><path d="M0 0v1h8v-1h-8zm.094 2c-.06 0-.094.034-.094.094v4.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-4.813c0-.06-.034-.094-.094-.094h-1.813zm3 0c-.06 0-.094.034-.094.094v2.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-2.813c0-.06-.034-.094-.094-.094h-1.813zm3 0c-.06 0-.094.034-.094.094v4.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-4.813c0-.06-.034-.094-.094-.094h-1.813z"/></symbol><symbol id="video" viewBox="0 0 8 8"><path d="M.5 0c-.28 0-.5.22-.5.5v4c0 .28.22.5.5.5h5c.28 0 .5-.22.5-.5v-1.5l1 1h1v-3h-1l-1 1v-1.5c0-.28-.22-.5-.5-.5h-5z" tr
 ansform="translate(0 1)"/></symbol><symbol id="volume-high" viewBox="0 0 8 8"><path d="M3.344 0l-1.344 2h-2v4h2l1.344 2h.656v-8h-.656zm1.656 1v1c.152 0 .313.026.469.063h.031c.86.215 1.5.995 1.5 1.938 0 .942-.64 1.722-1.5 1.938-.166.041-.338.063-.5.063v1c.258 0 .516-.035.75-.094 1.3-.325 2.25-1.508 2.25-2.906 0-1.398-.95-2.581-2.25-2.906-.234-.059-.492-.094-.75-.094zm0 2v2c.04 0 .134-.002.25-.031.433-.118.75-.507.75-.969 0-.446-.325-.819-.75-.938v-.031c-.005-.001-.025.002-.031 0-.043-.011-.111-.031-.219-.031z"/></symbol><symbol id="volume-low" viewBox="0 0 8 8"><path d="M3.344 0l-1.344 2h-2v4h2l1.344 2h.656v-8h-.656zm1.656 3v2c.04 0 .134-.002.25-.031.433-.118.75-.507.75-.969 0-.446-.325-.819-.75-.938v-.031c-.005-.001-.025.002-.031 0-.043-.011-.111-.031-.219-.031z" transform="translate(1)"/></symbol><symbol id="volume-off" viewBox="0 0 8 8"><path d="M3.344 0l-1.344 2h-2v4h2l1.344 2h.656v-8h-.656z" transform="translate(2)"/></symbol><symbol id="warning" viewBox="0 0 8 8"><path d="M3.09
 4 0c-.06 0-.105.044-.125.094l-2.938 6.813c-.02.05-.031.128-.031.188v.813c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-.813c0-.06-.011-.128-.031-.188l-2.938-6.813c-.02-.05-.065-.094-.125-.094h-.813zm-.094 3h1v2h-1v-2zm0 3h1v1h-1v-1z"/></symbol><symbol id="wifi" viewBox="0 0 8 8"><path d="M3.75 0c-1.374 0-2.66.372-3.75 1.063l.531.875c.93-.59 2.033-.938 3.219-.938 1.2 0 2.323.31 3.25.906l.531-.813c-1.093-.703-2.401-1.094-3.781-1.094zm.031 3c-.795 0-1.531.227-2.156.625l.531.844c.475-.302 1.02-.469 1.625-.469.593 0 1.13.177 1.594.469l.531-.844c-.616-.388-1.338-.625-2.125-.625zm-.031 3c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z"/></symbol><symbol id="wrench" viewBox="0 0 8 8"><path d="M5.5 0c-1.38 0-2.5 1.12-2.5 2.5 0 .32.078.626.188.906l-2.906 2.875c-.39.39-.39 1.016 0 1.406.2.2.459.313.719.313.26 0 .519-.091.719-.281l2.875-2.875c.28.1.586.156.906.156 1.38 0 2.5-1.12 2.5-2.5 0-.16-.032-.297-.063-.438l-.938.938h-2v-2l.938-.938c-.14-.03-.277-.062-.438-.063zm-4.5 6.5c.28 
 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z"/></symbol><symbol id="x" viewBox="0 0 8 8"><path d="M1.406 0l-1.406 1.406.688.719 1.781 1.781-1.781 1.781-.688.719 1.406 1.406.719-.688 1.781-1.781 1.781 1.781.719.688 1.406-1.406-.688-.719-1.781-1.781 1.781-1.781.688-.719-1.406-1.406-.719.688-1.781 1.781-1.781-1.781-.719-.688z"/></symbol><symbol id="yen" viewBox="0 0 8 8"><path d="M0 0l2.25 3h-2.25v1h3v1h-3v1h3v2h1v-2h3v-1h-3v-1h3v-1h-2.25l2.25-3h-1l-2.313 3h-.375l-2.313-3h-1z"/></symbol><symbol id="zoom-in" viewBox="0 0 8 8"><path d="M3.5 0c-1.927 0-3.5 1.573-3.5 3.5s1.573 3.5 3.5 3.5c.592 0 1.166-.145 1.656-.406a1 1 0 0 0 .094.094l1.031 1.031a1.016 1.016 0 1 0 1.438-1.438l-1.031-1.031a1 1 0 0 0-.125-.094c.266-.493.438-1.059.438-1.656 0-1.927-1.573-3.5-3.5-3.5zm0 1c1.387 0 2.5 1.113 2.5 2.5 0 .587-.196 1.137-.531 1.563-.009.012-.022.02-.031.031a1 1 0 0 0-.063.031 1 1 0 0 0-.281.281 1 1 0 0 0-.063.063c-.422.326-.953.531-1.531.531-1.387 0-2.5-1.113-2.5-2.5s1.113-2.5 2.5-2.5zm-.5 1v1h
 -1v1h1v1h1v-1h1v-1h-1v-1h-1z"/></symbol><symbol id="zoom-out" viewBox="0 0 8 8"><path d="M3.5 0c-1.927 0-3.5 1.573-3.5 3.5s1.573 3.5 3.5 3.5c.592 0 1.166-.145 1.656-.406a1 1 0 0 0 .094.094l1.031 1.031a1.016 1.016 0 1 0 1.438-1.438l-1.031-1.031a1 1 0 0 0-.125-.094c.266-.493.438-1.059.438-1.656 0-1.927-1.573-3.5-3.5-3.5zm0 1c1.387 0 2.5 1.113 2.5 2.5 0 .587-.196 1.137-.531 1.563-.009.012-.022.02-.031.031a1 1 0 0 0-.063.031 1 1 0 0 0-.281.281 1 1 0 0 0-.063.063c-.422.326-.953.531-1.531.531-1.387 0-2.5-1.113-2.5-2.5s1.113-2.5 2.5-2.5zm-1.5 2v1h3v-1h-3z"/></symbol></defs></svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/sprite/sprite.svg b/assets/static/fonts/open-iconic/sprite/sprite.svg
deleted file mode 100644
index 63d2cf4..0000000
--- a/assets/static/fonts/open-iconic/sprite/sprite.svg
+++ /dev/null
@@ -1,673 +0,0 @@
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg">
-<defs>
-<symbol id="account-login" viewBox="0 0 8 8">
-  <path d="M3 0v1h4v5h-4v1h5v-7h-5zm1 2v1h-4v1h4v1l2-1.5-2-1.5z"></path>
-</symbol>
-<symbol id="account-logout" viewBox="0 0 8 8">
-  <path d="M3 0v1h4v5h-4v1h5v-7h-5zm-1 2l-2 1.5 2 1.5v-1h4v-1h-4v-1z"></path>
-</symbol>
-<symbol id="action-redo" viewBox="0 0 8 8">
-  <path d="M3.5 0c-1.93 0-3.5 1.57-3.5 3.5 0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v.5h-1l2 2 2-2h-1v-.5c0-1.93-1.57-3.5-3.5-3.5z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="action-undo" viewBox="0 0 8 8">
-  <path d="M4.5 0c-1.93 0-3.5 1.57-3.5 3.5v.5h-1l2 2 2-2h-1v-.5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5c0-1.93-1.57-3.5-3.5-3.5z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="align-center" viewBox="0 0 8 8">
-  <path d="M0 0v1h8v-1h-8zm1 2v1h6v-1h-6zm-1 2v1h8v-1h-8zm1 2v1h6v-1h-6z"></path>
-</symbol>
-<symbol id="align-left" viewBox="0 0 8 8">
-  <path d="M0 0v1h8v-1h-8zm0 2v1h6v-1h-6zm0 2v1h8v-1h-8zm0 2v1h6v-1h-6z"></path>
-</symbol>
-<symbol id="align-right" viewBox="0 0 8 8">
-  <path d="M0 0v1h8v-1h-8zm2 2v1h6v-1h-6zm-2 2v1h8v-1h-8zm2 2v1h6v-1h-6z"></path>
-</symbol>
-<symbol id="aperture" viewBox="0 0 8 8">
-  <path d="M4 0c-.69 0-1.336.19-1.906.5l3.219 2.344.719-2.25c-.59-.36-1.281-.594-2.031-.594zm-2.75 1.125c-.76.73-1.25 1.735-1.25 2.875 0 .25.022.489.063.719l3.094-2.219-1.906-1.375zm5.625.125l-1.219 3.75h2.219c.08-.32.125-.65.125-1 0-1.07-.435-2.03-1.125-2.75zm-4.719 3.188l-1.75 1.281c.55 1.13 1.595 1.989 2.875 2.219l-1.125-3.5zm1.563 1.563l.625 1.969c1.33-.11 2.454-.879 3.094-1.969h-3.719z"></path>
-</symbol>
-<symbol id="arrow-bottom" viewBox="0 0 8 8">
-  <path d="M2 0v5h-2l2.531 3 2.469-3h-2v-5h-1z" transform="translate(1)"></path>
-</symbol>
-<symbol id="arrow-circle-bottom" viewBox="0 0 8 8">
-  <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-1 1h2v3h2l-3 3-3-3h2v-3z"></path>
-</symbol>
-<symbol id="arrow-circle-left" viewBox="0 0 8 8">
-  <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1v2h3v2h-3v2l-3-3 3-3z"></path>
-</symbol>
-<symbol id="arrow-circle-right" viewBox="0 0 8 8">
-  <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1l3 3-3 3v-2h-3v-2h3v-2z"></path>
-</symbol>
-<symbol id="arrow-circle-top" viewBox="0 0 8 8">
-  <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1l3 3h-2v3h-2v-3h-2l3-3z"></path>
-</symbol>
-<symbol id="arrow-left" viewBox="0 0 8 8">
-  <path d="M3 0l-3 2.531 3 2.469v-2h5v-1h-5v-2z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="arrow-right" viewBox="0 0 8 8">
-  <path d="M5 0v2h-5v1h5v2l3-2.531-3-2.469z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="arrow-thick-bottom" viewBox="0 0 8 8">
-  <path d="M2 0v5h-2l3.031 3 2.969-3h-2v-5h-2z" transform="translate(1)"></path>
-</symbol>
-<symbol id="arrow-thick-left" viewBox="0 0 8 8">
-  <path d="M3 0l-3 3.031 3 2.969v-2h5v-2h-5v-2z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="arrow-thick-right" viewBox="0 0 8 8">
-  <path d="M5 0v2h-5v2h5v2l3-3.031-3-2.969z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="arrow-thick-top" viewBox="0 0 8 8">
-  <path d="M2.969 0l-2.969 3h2v5h2v-5h2l-3.031-3z" transform="translate(1)"></path>
-</symbol>
-<symbol id="arrow-top" viewBox="0 0 8 8">
-  <path d="M2.469 0l-2.469 3h2v5h1v-5h2l-2.531-3z" transform="translate(1)"></path>
-</symbol>
-<symbol id="audio-spectrum" viewBox="0 0 8 8">
-  <path d="M4 0v8h1v-8h-1zm-2 1v6h1v-6h-1zm4 1v4h1v-4h-1zm-6 1v2h1v-2h-1z"></path>
-</symbol>
-<symbol id="audio" viewBox="0 0 8 8">
-  <path d="M1.188 0c-.734.722-1.188 1.748-1.188 2.844 0 1.095.454 2.09 1.188 2.813l.688-.719c-.546-.538-.875-1.269-.875-2.094s.329-1.587.875-2.125l-.688-.719zm5.625 0l-.688.719c.552.552.875 1.289.875 2.125 0 .836-.327 1.554-.875 2.094l.688.719c.732-.72 1.188-1.708 1.188-2.813 0-1.104-.459-2.115-1.188-2.844zm-4.219 1.406c-.362.362-.594.889-.594 1.438 0 .548.232 1.045.594 1.406l.688-.719c-.178-.178-.281-.416-.281-.688 0-.272.103-.54.281-.719l-.688-.719zm2.813 0l-.688.719c.183.183.281.434.281.719s-.099.505-.281.688l.688.719c.357-.357.594-.851.594-1.406 0-.555-.236-1.08-.594-1.438z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="badge" viewBox="0 0 8 8">
-  <path d="M2 0c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2zm-1 4.813v3.188l1-1 1 1v-3.188c-.31.11-.65.188-1 .188s-.69-.077-1-.188z" transform="translate(2)"></path>
-</symbol>
-<symbol id="ban" viewBox="0 0 8 8">
-  <path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c.655 0 1.258.209 1.75.563l-4.188 4.188c-.353-.492-.563-1.095-.563-1.75 0-1.663 1.337-3 3-3zm2.438 1.25c.353.492.563 1.095.563 1.75 0 1.663-1.337 3-3 3-.655 0-1.258-.209-1.75-.563l4.188-4.188z"></path>
-</symbol>
-<symbol id="bar-chart" viewBox="0 0 8 8">
-  <path d="M0 0v7h8v-1h-7v-6h-1zm5 0v5h2v-5h-2zm-3 2v3h2v-3h-2z"></path>
-</symbol>
-<symbol id="basket" viewBox="0 0 8 8">
-  <path d="M3.969 0c-.127.011-.259.083-.344.188l-2.344 2.813h-1.281v1h1v3.656c0 .18.164.344.344.344h5.313c.18 0 .344-.164.344-.344v-3.656h1v-1h-1.281c-.274-.329-2.387-2.866-2.406-2.875-.105-.09-.216-.136-.344-.125zm.031 1.281l1.438 1.719h-2.875l1.438-1.719zm-1.5 3.719c.28 0 .5.22.5.5v1c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1c0-.28.22-.5.5-.5zm3 0c.28 0 .5.22.5.5v1c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1c0-.28.22-.5.5-.5z"></path>
-</symbol>
-<symbol id="battery-empty" viewBox="0 0 8 8">
-  <path d="M.094 0c-.06 0-.094.034-.094.094v5.813c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-1.906h1v-2h-1v-1.906c0-.06-.034-.094-.094-.094h-6.813zm.906 1h5v4h-5v-4z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="battery-full" viewBox="0 0 8 8">
-  <path d="M.094 0c-.06 0-.094.034-.094.094v5.813c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-1.906h1v-2h-1v-1.906c0-.06-.034-.094-.094-.094h-6.813z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="beaker" viewBox="0 0 8 8">
-  <path d="M1.344 0a.502.502 0 0 0 .156 1h.5v1.406c-.088.172-1.194 2.313-1.656 3.094-.153.268-.344.612-.344 1.063 0 .383.139.764.406 1.031.26.26.643.406 1.031.406h5.125c.383 0 .764-.139 1.031-.406.26-.26.406-.643.406-1.031 0-.452-.194-.801-.344-1.063-.463-.78-1.568-2.922-1.656-3.094v-1.406h.5a.5.5 0 1 0 0-1h-5a.5.5 0 0 0-.094 0 .502.502 0 0 0-.063 0zm1.656 1h2v1.625l.063.094s.652 1.233 1.219 2.281h-4.563c.567-1.049 1.219-2.281 1.219-2.281l.063-.094v-1.625z"></path>
-</symbol>
-<symbol id="bell" viewBox="0 0 8 8">
-  <path d="M4 0c-1.1 0-2 .9-2 2 0 1.04-.524 1.976-1.344 2.656-.42.34-.656.824-.656 1.344h8c0-.52-.236-1.004-.656-1.344-.82-.68-1.344-1.616-1.344-2.656 0-1.1-.9-2-2-2zm-1 7c0 .55.45 1 1 1s1-.45 1-1h-2z"></path>
-</symbol>
-<symbol id="bluetooth" viewBox="0 0 8 8">
-  <path d="M1.5 0v2.5l-.75-.75-.75.75 1.5 1.5-1.5 1.5.75.75.75-.75v2.5h.5l3.5-2.5-2.25-1.531 2.25-1.469-3.5-2.5h-.5zm1 1.5l1.5 1-1.5 1v-2zm0 3l1.5 1-1.5 1v-2z" transform="translate(1)"></path>
-</symbol>
-<symbol id="bold" viewBox="0 0 8 8">
-  <path d="M0 0v1c.55 0 1 .45 1 1v4c0 .55-.45 1-1 1v1h5.5c1.38 0 2.5-1.12 2.5-2.5 0-1-.588-1.85-1.438-2.25.27-.34.438-.78.438-1.25 0-1.1-.9-2-2-2h-5zm3 1h1c.55 0 1 .45 1 1s-.45 1-1 1h-1v-2zm0 3h1.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-1.5v-3z"></path>
-</symbol>
-<symbol id="bolt" viewBox="0 0 8 8">
-  <path d="M3 0l-3 5h2v3l3-5h-2v-3z" transform="translate(1)"></path>
-</symbol>
-<symbol id="book" viewBox="0 0 8 8">
-  <path d="M1 0c-.07 0-.127.001-.188.031-.39.08-.701.391-.781.781-.03.06-.031.118-.031.188v5.5c0 .83.67 1.5 1.5 1.5h5.5v-1h-5.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h5.5v-5.5c0-.28-.22-.5-.5-.5h-.5v3l-1-1-1 1v-3h-3z"></path>
-</symbol>
-<symbol id="bookmark" viewBox="0 0 8 8">
-  <path d="M0 0v8l2-2 2 2v-8h-4z" transform="translate(2)"></path>
-</symbol>
-<symbol id="box" viewBox="0 0 8 8">
-  <path d="M0 0v1h8v-1h-8zm0 2v5.906c0 .06.034.094.094.094h7.813c.06 0 .094-.034.094-.094v-5.906h-2.969v1.031h-2.031v-1.031h-3z"></path>
-</symbol>
-<symbol id="briefcase" viewBox="0 0 8 8">
-  <path d="M3 0c-.554 0-1 .458-1 1v1h-1.906c-.06 0-.094.034-.094.094v2.406c0 .28.22.5.5.5h7c.28 0 .5-.22.5-.5v-2.406c0-.06-.034-.094-.094-.094h-1.906v-1c0-.542-.446-1-1-1h-2zm0 1h2v1h-2v-1zm-3 4.906v2c0 .06.034.094.094.094h7.813c.06 0 .094-.034.094-.094v-2c-.16.05-.32.094-.5.094h-7c-.18 0-.34-.044-.5-.094z"></path>
-</symbol>
-<symbol id="british-pound" viewBox="0 0 8 8">
-  <path d="M3 0c-.619 0-1.159.262-1.5.688-.341.426-.5.986-.5 1.563 0 .692.165 1.245.25 1.75h-1.25v1h1.219c-.112.448-.37.964-1.063 1.656l-.156.125v1.2189999999999999h6v-1h-4.906c.641-.729.982-1.397 1.125-2h1.781v-1h-1.719c-.078-.683-.281-1.242-.281-1.75 0-.394.115-.731.281-.938.166-.207.368-.313.719-.313.394 0 .609.109.75.25.141.141.25.356.25.75h1c0-.576-.165-1.102-.531-1.469-.366-.366-.893-.531-1.469-.531z" transform="translate(1)"></path>
-</symbol>
-<symbol id="browser" viewBox="0 0 8 8">
-  <path d="M.344 0a.5.5 0 0 0-.344.5v7a.5.5 0 0 0 .5.5h7a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.5-.5h-7a.5.5 0 0 0-.094 0 .5.5 0 0 0-.063 0zm1.156 1c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zm2 0h3c.28 0 .5.22.5.5s-.22.5-.5.5h-3c-.28 0-.5-.22-.5-.5s.22-.5.5-.5zm-2.5 2h6v4h-6v-4z"></path>
-</symbol>
-<symbol id="brush" viewBox="0 0 8 8">
-  <path d="M7.438.031c-.029-.001-.037.016-.063.031l-3.75 2.656c-.04.03-.095.106-.125.156l-.125.25c.719.229 1.271.781 1.5 1.5l.25-.125c.05-.02.126-.075.156-.125l2.656-3.75c.03-.04.04-.116 0-.156l-.406-.406c-.02-.02-.065-.03-.094-.031zm-4.781 3.969c-.73 0-1.313.614-1.313 1.344 0 .99-.544 1.821-1.344 2.281.4.23.864.375 1.344.375 1.48 0 2.656-1.176 2.656-2.656 0-.73-.604-1.344-1.344-1.344z"></path>
-</symbol>
-<symbol id="bug" viewBox="0 0 8 8">
-  <path d="M3.5 0c-1.19 0-1.978 1.69-1.188 2.5-.09.07-.196.137-.281.219l-1.313-.656a.5.5 0 0 0-.344-.063.5.5 0 0 0-.094.938l1.156.563c-.09.156-.186.328-.25.5h-.688a.5.5 0 0 0-.094 0 .502.502 0 1 0 .094 1h.5c0 .227.023.445.063.656l-.781.406a.5.5 0 1 0 .438.875l.656-.344c.245.46.59.844 1 1.094.35-.19.625-.439.625-.719v-1.438a.5.5 0 0 0 0-.094v-.813a.5.5 0 0 0 0-.219c.045-.231.254-.406.5-.406.28 0 .5.22.5.5v.875a.5.5 0 0 0 0 .094v.063a.5.5 0 0 0 0 .094v1.344c0 .27.275.497.625.688.41-.245.755-.604 1-1.063l.656.344a.5.5 0 1 0 .438-.875l-.781-.406c.04-.211.063-.429.063-.656h.5a.5.5 0 1 0 0-1h-.688c-.064-.172-.16-.344-.25-.5l1.156-.563a.5.5 0 0 0-.313-.938.5.5 0 0 0-.125.063l-1.313.656c-.086-.082-.191-.149-.281-.219.78-.83.003-2.5-1.188-2.5z"></path>
-</symbol>
-<symbol id="bullhorn" viewBox="0 0 8 8">
-  <path d="M6.094 0c-.03 0-.06.022-.094.031v5.969c.033.007.065 0 .094 0h.813c.06 0 .094-.034.094-.094v-5.813c0-.06-.034-.094-.094-.094h-.813zm-1.094.5l-2.906 1.469c-.05.02-.127.031-.188.031h-1.813c-.06 0-.094.034-.094.094v1.813c0 .06.034.094.094.094h.906l1.031 2.719c.11.25.406.36.656.25.25-.11.36-.406.25-.656l-.719-1.781c.033-.136.136-.25.281-.25v-.031l2.5 1.25v-5z"></path>
-</symbol>
-<symbol id="calculator" viewBox="0 0 8 8">
-  <path d="M.094 0c-.06 0-.094.034-.094.094v7.813c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-7.813c0-.06-.034-.094-.094-.094h-6.813zm.906 1h5v2h-5v-2zm0 3h1v1h-1v-1zm2 0h1v1h-1v-1zm2 0h1v3h-1v-3zm-4 2h1v1h-1v-1zm2 0h1v1h-1v-1z"></path>
-</symbol>
-<symbol id="calendar" viewBox="0 0 8 8">
-  <path d="M0 0v2h7v-2h-7zm0 3v4.906c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-4.906h-7zm1 1h1v1h-1v-1zm2 0h1v1h-1v-1zm2 0h1v1h-1v-1zm-4 2h1v1h-1v-1zm2 0h1v1h-1v-1z"></path>
-</symbol>
-<symbol id="camera-slr" viewBox="0 0 8 8">
-  <path d="M4.094 0c-.06 0-.105.044-.125.094l-.938 1.813c-.02.05-.065.094-.125.094h-1.406c-.83 0-1.5.67-1.5 1.5v4.406c0 .06.034.094.094.094h7.813c.06 0 .094-.034.094-.094v-5.813c0-.06-.034-.094-.094-.094h-.813c-.06 0-.105-.044-.125-.094l-.938-1.813c-.02-.05-.065-.094-.125-.094h-1.813zm-2.594 3c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zm3.5 0c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm0 1c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z"></path>
-</symbol>
-<symbol id="caret-bottom" viewBox="0 0 8 8">
-  <path d="M0 0l4 4 4-4h-8z" transform="translate(0 2)"></path>
-</symbol>
-<symbol id="caret-left" viewBox="0 0 8 8">
-  <path d="M4 0l-4 4 4 4v-8z" transform="translate(2)"></path>
-</symbol>
-<symbol id="caret-right" viewBox="0 0 8 8">
-  <path d="M0 0v8l4-4-4-4z" transform="translate(2)"></path>
-</symbol>
-<symbol id="caret-top" viewBox="0 0 8 8">
-  <path d="M4 0l-4 4h8l-4-4z" transform="translate(0 2)"></path>
-</symbol>
-<symbol id="cart" viewBox="0 0 8 8">
-  <path d="M.344 0a.502.502 0 0 0 .156 1h1.5l.094.25.406 1.25.406 1.25c.04.13.204.25.344.25h3.5c.14 0 .304-.12.344-.25l.813-2.531c.04-.12-.016-.219-.156-.219h-4.438l-.375-.719a.5.5 0 0 0-.438-.281h-2a.5.5 0 0 0-.094 0 .502.502 0 0 0-.063 0zm3.156 5c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm3 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="chat" viewBox="0 0 8 8">
-  <path d="M0 0v5l1-1h1v-3h3v-1h-5zm3 2v4h4l1 1v-5h-5z"></path>
-</symbol>
-<symbol id="check" viewBox="0 0 8 8">
-  <path d="M6.406 0l-.719.688-2.781 2.781-.781-.781-.719-.688-1.406 1.406.688.719 1.5 1.5.719.688.719-.688 3.5-3.5.688-.719-1.406-1.406z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="chevron-bottom" viewBox="0 0 8 8">
-  <path d="M1.5 0l-1.5 1.5 4 4 4-4-1.5-1.5-2.5 2.5-2.5-2.5z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="chevron-left" viewBox="0 0 8 8">
-  <path d="M4 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z" transform="translate(1)"></path>
-</symbol>
-<symbol id="chevron-right" viewBox="0 0 8 8">
-  <path d="M1.5 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z" transform="translate(1)"></path>
-</symbol>
-<symbol id="chevron-top" viewBox="0 0 8 8">
-  <path d="M4 0l-4 4 1.5 1.5 2.5-2.5 2.5 2.5 1.5-1.5-4-4z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="circle-check" viewBox="0 0 8 8">
-  <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm2 1.781l.719.719-3.219 3.219-1.719-1.719.719-.719 1 1 2.5-2.5z"></path>
-</symbol>
-<symbol id="circle-x" viewBox="0 0 8 8">
-  <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-1.5 1.781l1.5 1.5 1.5-1.5.719.719-1.5 1.5 1.5 1.5-.719.719-1.5-1.5-1.5 1.5-.719-.719 1.5-1.5-1.5-1.5.719-.719z"></path>
-</symbol>
-<symbol id="clipboard" viewBox="0 0 8 8">
-  <path d="M3.5 0c-.28 0-.5.22-.5.5v.5h-.75c-.14 0-.25.11-.25.25v.75h3v-.75c0-.14-.11-.25-.25-.25h-.75v-.5c0-.28-.22-.5-.5-.5zm-3.25 1c-.14 0-.25.11-.25.25v6.5c0 .14.11.25.25.25h6.5c.14 0 .25-.11.25-.25v-6.5c0-.14-.11-.25-.25-.25h-.75v2h-5v-2h-.75z"></path>
-</symbol>
-<symbol id="clock" viewBox="0 0 8 8">
-  <path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3-3-1.337-3-3 1.337-3 3-3zm-.5 1v2.219l.156.125.5.5.344.375.719-.719-.375-.344-.344-.344v-1.813h-1z"></path>
-</symbol>
-<symbol id="cloud-download" viewBox="0 0 8 8">
-  <path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2 0 .37.111.7.281 1h2.719v-.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v.5h1.906c.05-.16.094-.32.094-.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5zm-.156 4a.5.5 0 0 0-.344.5v1.5h-1.5l2 2 2-2h-1.5v-1.5a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0z"></path>
-</symbol>
-<symbol id="cloud-upload" viewBox="0 0 8 8">
-  <path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2 0 .37.111.7.281 1h2.219l2-2 2 2h1.406c.05-.16.094-.32.094-.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5zm0 4.5l-2.5 2.5h2v.5a.5.5 0 1 0 1 0v-.5h2l-2.5-2.5z"></path>
-</symbol>
-<symbol id="cloud" viewBox="0 0 8 8">
-  <path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2s.9 2 2 2h4.5c.83 0 1.5-.67 1.5-1.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="cloudy" viewBox="0 0 8 8">
-  <path d="M2.5 0c-1.38 0-2.5 1.12-2.5 2.5 0 .39.09.743.25 1.063.3-.21.63-.379 1-.469.55-1.25 1.82-2.084 3.25-2.094-.46-.6-1.18-1-2-1zm2 2c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2s.9 2 2 2h4.5c.83 0 1.5-.67 1.5-1.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5z"></path>
-</symbol>
-<symbol id="code" viewBox="0 0 8 8">
-  <path d="M5 0l-3 6h1l3-6h-1zm-4 1l-1 2 1 2h1l-1-2 1-2h-1zm5 0l1 2-1 2h1l1-2-1-2h-1z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="cog" viewBox="0 0 8 8">
-  <path d="M3.5 0l-.5 1.188c-.1.04-.191.085-.281.125l-1.188-.5-.719.719.5 1.188c-.05.1-.095.181-.125.281l-1.188.5v1l1.188.5c.03.1.075.213.125.313l-.5 1.156.719.719 1.188-.5c.1.05.181.085.281.125l.5 1.188h1l.5-1.188c.1-.03.191-.085.281-.125l1.188.5.719-.719-.5-1.188c.04-.09.085-.181.125-.281l1.188-.5v-1l-1.188-.5c-.03-.09-.075-.191-.125-.281l.469-1.188-.688-.719-1.188.5c-.09-.04-.181-.095-.281-.125l-.5-1.188h-1zm.5 2.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5-1.5-.67-1.5-1.5.67-1.5 1.5-1.5z"></path>
-</symbol>
-<symbol id="collapse-down" viewBox="0 0 8 8">
-  <path d="M0 0v2h8v-2h-8zm2 3l2 2 2-2h-4zm-2 4v1h8v-1h-8z"></path>
-</symbol>
-<symbol id="collapse-left" viewBox="0 0 8 8">
-  <path d="M0 0v8h1v-8h-1zm6 0v8h2v-8h-2zm-1 2l-2 2 2 2v-4z"></path>
-</symbol>
-<symbol id="collapse-right" viewBox="0 0 8 8">
-  <path d="M0 0v8h2v-8h-2zm7 0v8h1v-8h-1zm-4 2v4l2-2-2-2z"></path>
-</symbol>
-<symbol id="collapse-up" viewBox="0 0 8 8">
-  <path d="M0 0v1h8v-1h-8zm4 3l-2 2h4l-2-2zm-4 3v2h8v-2h-8z"></path>
-</symbol>
-<symbol id="command" viewBox="0 0 8 8">
-  <path d="M1.5 0c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5h.5v1h-.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5v-.5h1v.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5-.67-1.5-1.5-1.5h-.5v-1h.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5v.5h-1v-.5c0-.83-.67-1.5-1.5-1.5zm0 1c.28 0 .5.22.5.5v.5h-.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5zm4 0c.28 0 .5.22.5.5s-.22.5-.5.5h-.5v-.5c0-.28.22-.5.5-.5zm-2.5 2h1v1h-1v-1zm-1.5 2h.5v.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5.22-.5.5-.5zm3.5 0h.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5v-.5z"></path>
-</symbol>
-<symbol id="comment-square" viewBox="0 0 8 8">
-  <path d="M.094 0c-.06 0-.094.034-.094.094v5.813c0 .06.034.094.094.094h5.906l2 2v-7.906000000000001c0-.06-.034-.094-.094-.094h-7.813z"></path>
-</symbol>
-<symbol id="compass" viewBox="0 0 8 8">
-  <path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3-3-1.337-3-3 1.337-3 3-3zm2 1l-3 1-1 3 3-1 1-3zm-2 1.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z"></path>
-</symbol>
-<symbol id="contrast" viewBox="0 0 8 8">
-  <path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3v-6z"></path>
-</symbol>
-<symbol id="copywriting" viewBox="0 0 8 8">
-  <path d="M0 0v1h8v-1h-8zm0 2v1h5v-1h-5zm0 3v1h8v-1h-8zm0 2v1h6v-1h-6zm7.5 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5z"></path>
-</symbol>
-<symbol id="credit-card" viewBox="0 0 8 8">
-  <path d="M.25 0c-.14 0-.25.11-.25.25v.75h8v-.75c0-.14-.11-.25-.25-.25h-7.5zm-.25 2v3.75c0 .14.11.25.25.25h7.5c.14 0 .25-.11.25-.25v-3.75h-8zm1 2h1v1h-1v-1zm2 0h1v1h-1v-1z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="crop" viewBox="0 0 8 8">
-  <path d="M1 0v1h-1v1h1v5h5v1h1v-1h1v-1h-1v-4.5l1-1-.5-.5-1 1h-4.5v-1h-1zm1 2h3.5l-3.5 3.5v-3.5zm4 .5v3.5h-3.5l3.5-3.5z"></path>
-</symbol>
-<symbol id="dashboard" viewBox="0 0 8 8">
-  <path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3-3-1.337-3-3 1.337-3 3-3zm0 1c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-1.656 1a.5.5 0 0 0-.188.844l.906.906c-.023.085-.063.158-.063.25 0 .552.448 1 1 1s1-.448 1-1-.448-1-1-1c-.092 0-.165.039-.25.063l-.906-.906a.5.5 0 0 0-.438-.156.5.5 0 0 0-.063 0zm3.156 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5z"></path>
-</symbol>
-<symbol id="data-transfer-download" viewBox="0 0 8 8">
-  <path d="M3 0v3h-2l3 3 3-3h-2v-3h-2zm-3 7v1h8v-1h-8z"></path>
-</symbol>
-<symbol id="data-transfer-upload" viewBox="0 0 8 8">
-  <path d="M0 0v1h8v-1h-8zm4 2l-3 3h2v3h2v-3h2l-3-3z"></path>
-</symbol>
-<symbol id="delete" viewBox="0 0 8 8">
-  <path d="M2 0l-2 3 2 3h6v-6h-6zm1.5.781l1.5 1.5 1.5-1.5.719.719-1.5 1.5 1.5 1.5-.719.719-1.5-1.5-1.5 1.5-.719-.719 1.5-1.5-1.5-1.5.719-.719z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="dial" viewBox="0 0 8 8">
-  <path d="M4 0c-2.201 0-4 1.799-4 4h1c0-1.659 1.341-3 3-3s3 1.341 3 3h1c0-2.201-1.799-4-4-4zm-.594 2.094c-.82.25-1.406 1.006-1.406 1.906 0 1.1.9 2 2 2s2-.9 2-2c0-.9-.586-1.656-1.406-1.906l-.594.875-.594-.875z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="document" viewBox="0 0 8 8">
-  <path d="M0 0v8h7v-4h-4v-4h-3zm4 0v3h3l-3-3zm-3 2h1v1h-1v-1zm0 2h1v1h-1v-1zm0 2h4v1h-4v-1z"></path>
-</symbol>
-<symbol id="dollar" viewBox="0 0 8 8">
-  <path d="M2 0v1h-.75c-.686 0-1.25.564-1.25 1.25v.5c0 .678.437 1.242 1.094 1.406l2.563.656c.143.036.344.296.344.438v.5c0 .134-.116.25-.25.25h-2.5c-.116 0-.212-.037-.25-.063v-.938h-1v1c0 .342.203.627.438.781.234.155.518.219.813.219h.75v1h1v-1h.75c.686 0 1.25-.564 1.25-1.25v-.5c0-.678-.437-1.242-1.094-1.406l-2.563-.656c-.143-.036-.344-.296-.344-.438v-.5c0-.134.116-.25.25-.25h2.5c.116 0 .212.037.25.063v.938h1v-1c0-.342-.203-.627-.438-.781-.234-.155-.518-.219-.813-.219h-.75v-1h-1z" transform="translate(1)"></path>
-</symbol>
-<symbol id="double-quote-sans-left" viewBox="0 0 8 8">
-  <path d="M0 0v6l3-3v-3h-3zm5 0v6l3-3v-3h-3z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="double-quote-sans-right" viewBox="0 0 8 8">
-  <path d="M3 0l-3 3v3h3v-6zm5 0l-3 3v3h3v-6z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="double-quote-serif-left" viewBox="0 0 8 8">
-  <path d="M3 0c-1.651 0-3 1.349-3 3v3h3v-3h-2c0-1.109.891-2 2-2v-1zm5 0c-1.651 0-3 1.349-3 3v3h3v-3h-2c0-1.109.891-2 2-2v-1z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="double-quote-serif-right" viewBox="0 0 8 8">
-  <path d="M0 0v3h2c0 1.109-.891 2-2 2v1c1.651 0 3-1.349 3-3v-3h-3zm5 0v3h2c0 1.109-.891 2-2 2v1c1.651 0 3-1.349 3-3v-3h-3z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="droplet" viewBox="0 0 8 8">
-  <path d="M3 0l-.344.344c-.11.11-2.656 2.685-2.656 4.875 0 1.65 1.35 3 3 3s3-1.35 3-3c0-2.19-2.546-4.765-2.656-4.875l-.344-.344zm-1.5 4.719c.28 0 .5.22.5.5 0 .55.45 1 1 1 .28 0 .5.22.5.5s-.22.5-.5.5c-1.1 0-2-.9-2-2 0-.28.22-.5.5-.5z" transform="translate(1)"></path>
-</symbol>
-<symbol id="eject" viewBox="0 0 8 8">
-  <path d="M4 0l-4 5h8l-4-5zm-4 6v2h8v-2h-8z"></path>
-</symbol>
-<symbol id="elevator" viewBox="0 0 8 8">
-  <path d="M3 0l-3 3h6l-3-3zm-3 5l3 3 3-3h-6z" transform="translate(1)"></path>
-</symbol>
-<symbol id="ellipses" viewBox="0 0 8 8">
-  <path d="M0 0v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2z" transform="translate(0 3)"></path>
-</symbol>
-<symbol id="envelope-closed" viewBox="0 0 8 8">
-  <path d="M0 0v1l4 2 4-2v-1h-8zm0 2v4h8v-4l-4 2-4-2z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="envelope-open" viewBox="0 0 8 8">
-  <path d="M4 0l-4 2v6h8v-6l-4-2zm0 1.125l3 1.5v1.875l-3 1.5-3-1.5v-1.875l3-1.5zm-2 1.875v1l2 1 2-1v-1h-4z"></path>
-</symbol>
-<symbol id="euro" viewBox="0 0 8 8">
-  <path d="M6 0c-1.858 0-3.398 1.278-3.844 3h-1.906l-.25 1h2c0 .345.073.68.156 1h-1.969l-.188 1h2.563c.696 1.185 1.969 2 3.438 2 .734 0 1.407-.215 2-.563v-1.219c-.531.479-1.225.781-2 .781-.888 0-1.671-.392-2.219-1h2.219l.156-1h-2.969c-.113-.317-.188-.643-.188-1h3.344l.156-1h-3.313c.414-1.16 1.507-2 2.813-2 .655 0 1.258.209 1.75.563l.156-1.063c-.57-.313-1.213-.5-1.906-.5z" transform="translate(-1)"></path>
-</symbol>
-<symbol id="excerpt" viewBox="0 0 8 8">
-  <path d="M0 0v1h7v-1h-7zm0 2v1h5v-1h-5zm0 2v1h8v-1h-8zm0 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1z"></path>
-</symbol>
-<symbol id="expand-down" viewBox="0 0 8 8">
-  <path d="M0 0v1h8v-1h-8zm2 2l2 2 2-2h-4zm-2 4v2h8v-2h-8z"></path>
-</symbol>
-<symbol id="expand-left" viewBox="0 0 8 8">
-  <path d="M0 0v8h1v-8h-1zm6 0v8h2v-8h-2zm-4 2v4l2-2-2-2z"></path>
-</symbol>
-<symbol id="expand-right" viewBox="0 0 8 8">
-  <path d="M0 0v8h2v-8h-2zm7 0v8h1v-8h-1zm-1 2l-2 2 2 2v-4z"></path>
-</symbol>
-<symbol id="expand-up" viewBox="0 0 8 8">
-  <path d="M0 0v2h8v-2h-8zm4 4l-2 2h4l-2-2zm-4 3v1h8v-1h-8z"></path>
-</symbol>
-<symbol id="external-link" viewBox="0 0 8 8">
-  <path d="M0 0v8h8v-2h-1v1h-6v-6h1v-1h-2zm4 0l1.5 1.5-2.5 2.5 1 1 2.5-2.5 1.5 1.5v-4h-4z"></path>
-</symbol>
-<symbol id="eye" viewBox="0 0 8 8">
-  <path d="M4.031 0c-2.53 0-4.031 3-4.031 3s1.501 3 4.031 3c2.47 0 3.969-3 3.969-3s-1.499-3-3.969-3zm-.031 1c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm0 1c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1c0-.1-.032-.191-.063-.281-.08.16-.237.281-.438.281-.28 0-.5-.22-.5-.5 0-.2.121-.357.281-.438-.09-.03-.181-.063-.281-.063z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="eyedropper" viewBox="0 0 8 8">
-  <path d="M3.313 0a.5.5 0 0 0-.188.844l.625.625-3.594 3.656-.156.156v2.7190000000000003h2.719l.125-.156 3.656-3.656.625.656a.5.5 0 1 0 .719-.688l-.938-.938.656-.656c.59-.58.59-1.545 0-2.125-.56-.57-1.555-.57-2.125 0l-.656.656-.938-.938a.5.5 0 0 0-.469-.156.5.5 0 0 0-.063 0zm1.156 2.188l1.313 1.313-3.156 3.156-1.281-1.313 3.125-3.156z"></path>
-</symbol>
-<symbol id="file" viewBox="0 0 8 8">
-  <path d="M0 0v8h7v-4h-4v-4h-3zm4 0v3h3l-3-3z"></path>
-</symbol>
-<symbol id="fire" viewBox="0 0 8 8">
-  <path d="M2 0c1 2-2 3-2 5s2 3 2 3c-.98-1.98 2-3 2-5s-2-3-2-3zm3 3c1 2-2 3-2 5h3c.4 0 1-.5 1-2 0-2-2-3-2-3z"></path>
-</symbol>
-<symbol id="flag" viewBox="0 0 8 8">
-  <path d="M0 0v8h1v-8h-1zm2 0v4h2v1h4l-2-1.969 2-2.031h-3v-1h-3z"></path>
-</symbol>
-<symbol id="flash" viewBox="0 0 8 8">
-  <path d="M1.5 0l-1.5 3h2l-.656 2h-1.344l1 3 3-3h-1.5l1.5-3h-2l1-2h-1.5z" transform="translate(2)"></path>
-</symbol>
-<symbol id="folder" viewBox="0 0 8 8">
-  <path d="M0 0v2h8v-1h-5v-1h-3zm0 3v4.5c0 .28.22.5.5.5h7c.28 0 .5-.22.5-.5v-4.5h-8z"></path>
-</symbol>
-<symbol id="fork" viewBox="0 0 8 8">
-  <path d="M1.5 0c-.828 0-1.5.672-1.5 1.5 0 .656.414 1.202 1 1.406v2.188c-.586.204-1 .75-1 1.406 0 .828.672 1.5 1.5 1.5s1.5-.672 1.5-1.5c0-.595-.341-1.101-.844-1.344.09-.09.205-.156.344-.156h2c.823 0 1.5-.677 1.5-1.5v-.594c.586-.204 1-.75 1-1.406 0-.828-.672-1.5-1.5-1.5s-1.5.672-1.5 1.5c0 .656.414 1.202 1 1.406v.594c0 .277-.223.5-.5.5h-2c-.171 0-.346.04-.5.094v-1.188c.586-.204 1-.75 1-1.406 0-.828-.672-1.5-1.5-1.5z"></path>
-</symbol>
-<symbol id="fullscreen-enter" viewBox="0 0 8 8">
-  <path d="M0 0v4l1.5-1.5 1.5 1.5 1-1-1.5-1.5 1.5-1.5h-4zm5 4l-1 1 1.5 1.5-1.5 1.5h4v-4l-1.5 1.5-1.5-1.5z"></path>
-</symbol>
-<symbol id="fullscreen-exit" viewBox="0 0 8 8">
-  <path d="M1 0l-1 1 1.5 1.5-1.5 1.5h4v-4l-1.5 1.5-1.5-1.5zm3 4v4l1.5-1.5 1.5 1.5 1-1-1.5-1.5 1.5-1.5h-4z"></path>
-</symbol>
-<symbol id="globe" viewBox="0 0 8 8">
-  <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1c.333 0 .637.086.938.188-.214.197-.45.383-.406.563.04.18.688.13.688.5 0 .27-.425.346-.125.656.35.35-.636.978-.656 1.438-.03.83.841.969 1.531.969.424 0 .503.195.469.438-.546.758-1.438 1.25-2.438 1.25-.378 0-.729-.09-1.063-.219.224-.442-.313-1.344-.781-1.625-.226-.226-.689-.114-.969-.219-.092-.271-.178-.545-.188-.844.031-.05.081-.094.156-.094.19 0 .454.374.594.344.18-.04-.742-1.313-.313-1.563.2-.12.609.394.469-.156-.12-.51.366-.276.656-.406.26-.11.455-.414.125-.594-.057-.031-.133-.104-.219-.188.45-.27.972-.438 1.531-.438zm2.313 1.094c.184.222.323.481.438.75-.043.065-.083.114-.188.219-.29.27-.327-.212-.438-.313-.13-.11-.638.025-.688-.125-.077-.181.499-.418.875-.531z"></path>
-</symbol>
-<symbol id="graph" viewBox="0 0 8 8">
-  <path d="M7.031 0l-3.031 3-1-1-3 3.031 1 1 2-2.031 1 1 4-4-.969-1zm-7.031 7v1h8v-1h-8z"></path>
-</symbol>
-<symbol id="grid-four-up" viewBox="0 0 8 8">
-  <path d="M0 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm-6 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm-6 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm-6 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1z"></path>
-</symbol>
-<symbol id="grid-three-up" viewBox="0 0 8 8">
-  <path d="M0 0v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2zm-6 3v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2zm-6 3v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2z"></path>
-</symbol>
-<symbol id="grid-two-up" viewBox="0 0 8 8">
-  <path d="M0 0v3h3v-3h-3zm5 0v3h3v-3h-3zm-5 5v3h3v-3h-3zm5 0v3h3v-3h-3z"></path>
-</symbol>
-<symbol id="hard-drive" viewBox="0 0 8 8">
-  <path d="M.188 0c-.11 0-.188.077-.188.188v3.313c0 .28.22.5.5.5h6c.28 0 .5-.22.5-.5v-3.313c0-.11-.077-.188-.188-.188h-6.625zm-.188 4.906v2.906c0 .11.077.188.188.188h6.625c.11 0 .188-.077.188-.188v-2.906c-.16.05-.32.094-.5.094h-6c-.18 0-.34-.044-.5-.094zm5.5 1.094c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z"></path>
-</symbol>
-<symbol id="header" viewBox="0 0 8 8">
-  <path d="M0 0v1h.5c.28 0 .5.22.5.5v4c0 .28-.22.5-.5.5h-.5v1h3v-1h-.5c-.28 0-.5-.22-.5-.5v-1.5h3v1.5c0 .28-.22.5-.5.5h-.5v1h3v-1h-.5c-.28 0-.5-.22-.5-.5v-4c0-.28.22-.5.5-.5h.5v-1h-3v1h.5c.28 0 .5.22.5.5v1.5h-3v-1.5c0-.28.22-.5.5-.5h.5v-1h-3z"></path>
-</symbol>
-<symbol id="headphones" viewBox="0 0 8 8">
-  <path d="M4 0c-1.651 0-3 1.349-3 3v1h-.5a.5.5 0 0 0-.5.5v2a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-3.5c0-1.109.891-2 2-2s2 .891 2 2v3.5a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-2a.5.5 0 0 0-.5-.5h-.5v-1c0-1.651-1.349-3-3-3z"></path>
-</symbol>
-<symbol id="heart" viewBox="0 0 8 8">
-  <path d="M2 0c-.55 0-1.046.224-1.406.594-.37.36-.594.856-.594 1.406 0 .55.224 1.046.594 1.406l3.406 3.438 3.406-3.438c.37-.37.594-.856.594-1.406 0-.55-.224-1.046-.594-1.406-.36-.37-.856-.594-1.406-.594-.55 0-1.046.224-1.406.594-.37.36-.594.856-.594 1.406 0-.55-.224-1.046-.594-1.406-.36-.37-.856-.594-1.406-.594z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="home" viewBox="0 0 8 8">
-  <path d="M4 0l-4 3h1v4h2v-2h2v2h2v-4.031l1 .031-4-3z"></path>
-</symbol>
-<symbol id="image" viewBox="0 0 8 8">
-  <path d="M0 0v8h8v-8h-8zm1 1h6v3l-1-1-1 1 2 2v1h-1l-4-4-1 1v-3z"></path>
-</symbol>
-<symbol id="inbox" viewBox="0 0 8 8">
-  <path d="M.188 0c-.11 0-.188.077-.188.188v7.625c0 .11.077.188.188.188h7.625c.11 0 .188-.077.188-.188v-7.625c0-.11-.077-.188-.188-.188h-7.625zm.813 2h6v3h-1l-1 1h-2l-1-1h-1v-3z"></path>
-</symbol>
-<symbol id="infinity" viewBox="0 0 8 8">
-  <path d="M2 0c-1.31 0-2 1.01-2 2s.69 2 2 2c.79 0 1.42-.559 2-1.219.58.66 1.19 1.219 2 1.219 1.31 0 2-1.01 2-2s-.69-2-2-2c-.81 0-1.42.559-2 1.219-.57-.66-1.21-1.219-2-1.219zm0 1c.42 0 .884.47 1.344 1-.46.53-.924 1-1.344 1-.74 0-1-.54-1-1 0-.46.26-1 1-1zm4 0c.74 0 1 .54 1 1 0 .46-.26 1-1 1-.43 0-.894-.47-1.344-1 .45-.53.914-1 1.344-1z" transform="translate(0 2)"></path>
-</symbol>
-<symbol id="info" viewBox="0 0 8 8">
-  <path d="M3 0c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1zm-1.5 2.5c-.83 0-1.5.67-1.5 1.5h1c0-.28.22-.5.5-.5s.5.22.5.5-1 1.64-1 2.5c0 .86.67 1.5 1.5 1.5s1.5-.67 1.5-1.5h-1c0 .28-.22.5-.5.5s-.5-.22-.5-.5c0-.36 1-1.84 1-2.5 0-.81-.67-1.5-1.5-1.5z" transform="translate(2)"></path>
-</symbol>
-<symbol id="italic" viewBox="0 0 8 8">
-  <path d="M2 0v1h1.625l-.063.125-2 5-.344.875h-1.219v1h5v-1h-1.625l.063-.125 2-5 .344-.875h1.219v-1h-5z"></path>
-</symbol>
-<symbol id="justify-center" viewBox="0 0 8 8">
-  <path d="M0 0v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h8v-1h-8zm1 2v1h6v-1h-6z"></path>
-</symbol>
-<symbol id="justify-left" viewBox="0 0 8 8">
-  <path d="M0 0v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h6v-1h-6z"></path>
-</symbol>
-<symbol id="justify-right" viewBox="0 0 8 8">
-  <path d="M0 0v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h8v-1h-8zm2 2v1h6v-1h-6z"></path>
-</symbol>
-<symbol id="key" viewBox="0 0 8 8">
-  <path d="M5.5 0c-1.38 0-2.5 1.12-2.5 2.5 0 .16.033.297.063.438l-3.063 3.063v2h3v-2h2v-1l.063-.063c.14.03.277.063.438.063 1.38 0 2.5-1.12 2.5-2.5s-1.12-2.5-2.5-2.5zm.5 1c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z"></path>
-</symbol>
-<symbol id="laptop" viewBox="0 0 8 8">
-  <path d="M1.344 0a.5.5 0 0 0-.344.5v3.5h-1v1.5c0 .28.22.5.5.5h6.999999999999999c.28 0 .5-.22.5-.5v-1.5h-1v-3.5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0-.094 0 .5.5 0 0 0-.063 0zm.656 1h4v3h-1v1h-2v-1h-1v-3z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="layers" viewBox="0 0 8 8">
-  <path d="M0 0v4h4v-4h-4zm5 2v3h-3v1h4v-4h-1zm2 2v3h-3v1h4v-4h-1z"></path>
-</symbol>
-<symbol id="lightbulb" viewBox="0 0 8 8">
-  <path d="M3.406 0a.5.5 0 0 0-.125.063l-3 1.5a.5.5 0 1 0 .438.875l3-1.5a.5.5 0 0 0-.313-.938zm1 1.5a.5.5 0 0 0-.125.063l-4 2a.5.5 0 1 0 .438.875l4-2a.5.5 0 0 0-.313-.938zm0 2a.5.5 0 0 0-.125.063l-3 1.5a.5.5 0 0 0 .219.938h2a.502.502 0 0 0 .156-1l1.063-.563a.5.5 0 0 0-.313-.938zm-2.563 3.5a.502.502 0 0 0 .156 1h1a.5.5 0 1 0 0-1h-1a.5.5 0 0 0-.094 0 .502.502 0 0 0-.063 0z" transform="translate(1)"></path>
-</symbol>
-<symbol id="link-broken" viewBox="0 0 8 8">
-  <path d="M2 0v1h-1v1h2v-2h-1zm3.875.031c-.184.01-.354.03-.531.094-.27.095-.531.25-.75.469l-.438.438a.5.5 0 1 0 .688.688l.438-.438c.101-.101.245-.173.375-.219.352-.126.78-.064 1.063.219.395.389.4 1.037 0 1.438l-1.5 1.5a.5.5 0 1 0 .688.688l1.5-1.5c.78-.78.785-2.041 0-2.813-.279-.279-.606-.452-.969-.531-.181-.039-.379-.041-.563-.031zm-3.594 2.906a.5.5 0 0 0-.188.156l-1.5 1.5c-.78.78-.785 2.041 0 2.813.557.557 1.355.722 2.063.469.27-.095.531-.25.75-.469l.438-.438a.5.5 0 1 0-.688-.688l-.438.438c-.101.101-.245.173-.375.219-.352.126-.78.064-1.063-.219-.395-.389-.4-1.037 0-1.438l1.5-1.5a.5.5 0 0 0-.438-.844.5.5 0 0 0-.063 0zm2.719 3.063v2h1v-1h1v-1h-2z"></path>
-</symbol>
-<symbol id="link-intact" viewBox="0 0 8 8">
-  <path d="M5.875.031c-.184.01-.354.03-.531.094-.27.095-.531.25-.75.469a.5.5 0 1 0 .688.688c.101-.101.245-.173.375-.219.352-.126.78-.064 1.063.219.395.389.4 1.037 0 1.438l-1.5 1.5c-.434.434-.799.483-1.063.469-.264-.015-.406-.125-.406-.125a.504.504 0 1 0-.5.875s.34.222.844.25c.504.028 1.197-.165 1.813-.781l1.5-1.5c.78-.78.785-2.041 0-2.813-.279-.279-.606-.452-.969-.531-.181-.039-.379-.041-.563-.031zm-2 2.313c-.501-.019-1.186.155-1.781.75l-1.5 1.5c-.78.78-.785 2.041 0 2.813.557.557 1.355.722 2.063.469.27-.095.531-.25.75-.469a.5.5 0 1 0-.688-.688c-.101.101-.245.173-.375.219-.352.126-.78.064-1.063-.219-.395-.389-.4-1.037 0-1.438l1.5-1.5c.405-.405.752-.448 1.031-.438.279.011.469.094.469.094a.5.5 0 1 0 .438-.875s-.343-.199-.844-.219z"></path>
-</symbol>
-<symbol id="list-rich" viewBox="0 0 8 8">
-  <path d="M0 0v3h3v-3h-3zm4 0v1h4v-1h-4zm0 2v1h3v-1h-3zm-4 2v3h3v-3h-3zm4 0v1h4v-1h-4zm0 2v1h3v-1h-3z"></path>
-</symbol>
-<symbol id="list" viewBox="0 0 8 8">
-  <path d="M.5 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm1.5 0v1h6v-1h-6zm-1.5 2c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm1.5 0v1h6v-1h-6zm-1.5 2c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm1.5 0v1h6v-1h-6zm-1.5 2c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm1.5 0v1h6v-1h-6z"></path>
-</symbol>
-<symbol id="location" viewBox="0 0 8 8">
-  <path d="M8 0l-8 4 3 1 1 3 4-8z"></path>
-</symbol>
-<symbol id="lock-locked" viewBox="0 0 8 8">
-  <path d="M3 0c-1.099 0-2 .901-2 2v1h-1v4h6v-4h-1v-1c0-1.099-.901-2-2-2zm0 1c.561 0 1 .439 1 1v1h-2v-1c0-.561.439-1 1-1z" transform="translate(1)"></path>
-</symbol>
-<symbol id="lock-unlocked" viewBox="0 0 8 8">
-  <path d="M3 0c-1.099 0-2 .901-2 2h1c0-.561.439-1 1-1 .561 0 1 .439 1 1v2h-4v4h6v-4h-1v-2c0-1.099-.901-2-2-2z" transform="translate(1)"></path>
-</symbol>
-<symbol id="loop-circular" viewBox="0 0 8 8">
-  <path d="M4 0c-1.651 0-3 1.349-3 3h-1l1.5 2 1.5-2h-1c0-1.109.891-2 2-2v-1zm2.5 1l-1.5 2h1c0 1.109-.891 2-2 2v1c1.651 0 3-1.349 3-3h1l-1.5-2z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="loop-square" viewBox="0 0 8 8">
-  <path d="M1 0v2h1v-1h4v2h-1l1.5 2.5 1.5-2.5h-1v-3h-6zm.5 2.5l-1.5 2.5h1v3h6v-2h-1v1h-4v-2h1l-1.5-2.5z"></path>
-</symbol>
-<symbol id="loop" viewBox="0 0 8 8">
-  <path d="M6 0v1h-5c-.554 0-1 .446-1 1v1h1v-1h5v1l2-1.5-2-1.5zm-4 4l-2 1.5 2 1.5v-1h5c.542 0 1-.458 1-1v-1h-1v1h-5v-1z"></path>
-</symbol>
-<symbol id="magnifying-glass" viewBox="0 0 8 8">
-  <path d="M3.5 0c-1.927 0-3.5 1.573-3.5 3.5s1.573 3.5 3.5 3.5c.592 0 1.166-.145 1.656-.406a1 1 0 0 0 .125.125l1 1a1.016 1.016 0 1 0 1.438-1.438l-1-1a1 1 0 0 0-.156-.125c.266-.493.438-1.059.438-1.656 0-1.927-1.573-3.5-3.5-3.5zm0 1c1.387 0 2.5 1.113 2.5 2.5 0 .661-.241 1.273-.656 1.719-.01.011-.021.021-.031.031a1 1 0 0 0-.125.125c-.442.397-1.043.625-1.688.625-1.387 0-2.5-1.113-2.5-2.5s1.113-2.5 2.5-2.5z"></path>
-</symbol>
-<symbol id="map-marker" viewBox="0 0 8 8">
-  <path d="M3 0c-1.66 0-3 1.34-3 3 0 2 3 5 3 5s3-3 3-5c0-1.66-1.34-3-3-3zm0 1c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2z" transform="translate(1)"></path>
-</symbol>
-<symbol id="map" viewBox="0 0 8 8">
-  <path d="M0 0v8h8v-2.375a.5.5 0 0 0 0-.219v-5.406h-8zm1 1h6v4h-1.5a.5.5 0 0 0-.094 0 .502.502 0 1 0 .094 1h1.5v1h-6v-6zm2.5 1c-.83 0-1.5.67-1.5 1.5 0 1 1.5 2.5 1.5 2.5s1.5-1.5 1.5-2.5c0-.83-.67-1.5-1.5-1.5zm0 1c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z"></path>
-</symbol>
-<symbol id="media-pause" viewBox="0 0 8 8">
-  <path d="M0 0v6h2v-6h-2zm4 0v6h2v-6h-2z" transform="translate(1 1)"></path>
-</symbol>
-<symbol id="media-play" viewBox="0 0 8 8">
-  <path d="M0 0v6l6-3-6-3z" transform="translate(1 1)"></path>
-</symbol>
-<symbol id="media-record" viewBox="0 0 8 8">
-  <path d="M3 0c-1.657 0-3 1.343-3 3s1.343 3 3 3 3-1.343 3-3-1.343-3-3-3z" transform="translate(1 1)"></path>
-</symbol>
-<symbol id="media-skip-backward" viewBox="0 0 8 8">
-  <path d="M4 0l-4 3 4 3v-6zm0 3l4 3v-6l-4 3z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="media-skip-forward" viewBox="0 0 8 8">
-  <path d="M0 0v6l4-3-4-3zm4 3v3l4-3-4-3v3z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="media-step-backward" viewBox="0 0 8 8">
-  <path d="M0 0v6h2v-6h-2zm2 3l5 3v-6l-5 3z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="media-step-forward" viewBox="0 0 8 8">
-  <path d="M0 0v6l5-3-5-3zm5 3v3h2v-6h-2v3z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="media-stop" viewBox="0 0 8 8">
-  <path d="M0 0v6h6v-6h-6z" transform="translate(1 1)"></path>
-</symbol>
-<symbol id="medical-cross" viewBox="0 0 8 8">
-  <path d="M2 0v2h-2v4h2v2h4v-2h2v-4h-2v-2h-4z"></path>
-</symbol>
-<symbol id="menu" viewBox="0 0 8 8">
-  <path d="M0 0v1h8v-1h-8zm0 2.969v1h8v-1h-8zm0 3v1h8v-1h-8z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="microphone" viewBox="0 0 8 8">
-  <path d="M2.906-.031a1 1 0 0 0-.125.031 1 1 0 0 0-.781 1v2a1 1 0 1 0 2 0v-2a1 1 0 0 0-1.094-1.031zm-2.563 2.031a.5.5 0 0 0-.344.5v.5c0 1.476 1.091 2.693 2.5 2.938v1.063h-.5c-.55 0-1 .45-1 1h4c0-.55-.45-1-1-1h-.5v-1.063c1.409-.244 2.5-1.461 2.5-2.938v-.5a.5.5 0 1 0-1 0v.5c0 1.109-.891 2-2 2s-2-.891-2-2v-.5a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0z" transform="translate(1)"></path>
-</symbol>
-<symbol id="minus" viewBox="0 0 8 8">
-  <path d="M0 0v2h8v-2h-8z" transform="translate(0 3)"></path>
-</symbol>
-<symbol id="monitor" viewBox="0 0 8 8">
-  <path d="M.344 0a.5.5 0 0 0-.344.5v5a.5.5 0 0 0 .5.5h2.5v1h-1c-.55 0-1 .45-1 1h6c0-.55-.45-1-1-1h-1v-1h2.5a.5.5 0 0 0 .5-.5v-5a.5.5 0 0 0-.5-.5h-7a.5.5 0 0 0-.094 0 .5.5 0 0 0-.063 0zm.656 1h6v4h-6v-4z"></path>
-</symbol>
-<symbol id="moon" viewBox="0 0 8 8">
-  <path d="M2.719 0c-1.58.53-2.719 2.021-2.719 3.781 0 2.21 1.79 4 4 4 1.76 0 3.251-1.17 3.781-2.75-.4.14-.831.25-1.281.25-2.21 0-4-1.79-4-4 0-.44.079-.881.219-1.281z"></path>
-</symbol>
-<symbol id="move" viewBox="0 0 8 8">
-  <path d="M3.5 0l-1.5 1.5h1v1.5h-1.5v-1l-1.5 1.5 1.5 1.5v-1h1.5v1.5h-1l1.5 1.5 1.5-1.5h-1v-1.5h1.5v1l1.5-1.5-1.5-1.5v1h-1.5v-1.5h1l-1.5-1.5z"></path>
-</symbol>
-<symbol id="musical-note" viewBox="0 0 8 8">
-  <path d="M8 0c-5 0-6 1-6 1v4.093999999999999c-.154-.054-.327-.094-.5-.094-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5v-3.969c.732-.226 1.99-.438 4-.5v2.063c-.154-.054-.327-.094-.5-.094-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5v-5.5z"></path>
-</symbol>
-<symbol id="paperclip" viewBox="0 0 8 8">
-  <path d="M5 0c-.514 0-1.021.201-1.406.594l-2.781 2.719c-1.07 1.07-1.07 2.805 0 3.875 1.07 1.07 2.805 1.07 3.875 0l1.25-1.25-.688-.688-.906.875-.344.375c-.69.69-1.81.69-2.5 0-.682-.682-.668-1.778 0-2.469l2.781-2.719v-.031c.389-.395 1.037-.4 1.438 0 .388.381.378 1.006 0 1.406l-2.5 2.469c-.095.095-.28.095-.375 0-.095-.095-.095-.28 0-.375l.375-.344.594-.625-.688-.688-.875.875-.094.094c-.485.485-.485 1.265 0 1.75.485.485 1.265.485 1.75 0l2.5-2.438c.78-.78.785-2.041 0-2.813-.39-.39-.893-.594-1.406-.594z"></path>
-</symbol>
-<symbol id="pencil" viewBox="0 0 8 8">
-  <path d="M6 0l-1 1 2 2 1-1-2-2zm-2 2l-4 4v2h2l4-4-2-2z"></path>
-</symbol>
-<symbol id="people" viewBox="0 0 8 8">
-  <path d="M5.5 0c-.51 0-.949.355-1.219.875.45.54.719 1.275.719 2.125 0 .29-.034.574-.094.844.18.11.374.156.594.156.83 0 1.5-.9 1.5-2s-.67-2-1.5-2zm-3 1c-.828 0-1.5.895-1.5 2s.672 2 1.5 2 1.5-.895 1.5-2-.672-2-1.5-2zm4.75 3.156c-.43.51-1.018.824-1.688.844.27.38.438.844.438 1.344v.656h2v-1.656c0-.52-.31-.968-.75-1.188zm-6.5 1c-.44.22-.75.668-.75 1.188v1.656h5v-1.656c0-.52-.31-.968-.75-1.188-.44.53-1.06.844-1.75.844s-1.31-.314-1.75-.844z"></path>
-</symbol>
-<symbol id="person" viewBox="0 0 8 8">
-  <path d="M4 0c-1.105 0-2 1.119-2 2.5s.895 2.5 2 2.5 2-1.119 2-2.5-.895-2.5-2-2.5zm-2.094 5c-1.07.04-1.906.92-1.906 2v1h8v-1c0-1.08-.836-1.96-1.906-2-.54.61-1.284 1-2.094 1-.81 0-1.554-.39-2.094-1z"></path>
-</symbol>
-<symbol id="phone" viewBox="0 0 8 8">
-  <path d="M.188 0c-.11 0-.188.077-.188.188v7.625c0 .11.077.188.188.188h4.625c.11 0 .188-.077.188-.188v-7.625c0-.11-.077-.188-.188-.188h-4.625zm.813 1h3v5h-3v-5zm1.5 5.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" transform="translate(1)"></path>
-</symbol>
-<symbol id="pie-chart" viewBox="0 0 8 8">
-  <path d="M3.5 0c-.97 0-1.839.391-2.469 1.031l2.969 2.969v-3.969c-.16-.03-.33-.031-.5-.031zm1.5 1.063v3.406l-2.719 2.719c.6.5 1.369.813 2.219.813 1.93 0 3.5-1.57 3.5-3.5 0-1.76-1.31-3.197-3-3.438zm-4.094 1.313c-.55.54-.906 1.285-.906 2.125 0 .95.435 1.804 1.125 2.344l2.156-2.125-2.375-2.344z"></path>
-</symbol>
-<symbol id="pin" viewBox="0 0 8 8">
-  <path d="M1.344 0a.502.502 0 0 0 .156 1h.5v2h-1c-.55 0-1 .45-1 1h3v3l.438 1 .563-1v-3h3c0-.55-.45-1-1-1h-1v-2h.5a.5.5 0 1 0 0-1h-4a.5.5 0 0 0-.094 0 .502.502 0 0 0-.063 0z"></path>
-</symbol>
-<symbol id="play-circle" viewBox="0 0 8 8">
-  <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-1 2l3 2-3 2v-4z"></path>
-</symbol>
-<symbol id="plus" viewBox="0 0 8 8">
-  <path d="M3 0v3h-3v2h3v3h2v-3h3v-2h-3v-3h-2z"></path>
-</symbol>
-<symbol id="power-standby" viewBox="0 0 8 8">
-  <path d="M3 0v4h1v-4h-1zm-1.281 1.438l-.375.313c-.803.64-1.344 1.634-1.344 2.75 0 1.929 1.571 3.5 3.5 3.5s3.5-1.571 3.5-3.5c0-1.116-.529-2.11-1.344-2.75l-.375-.313-.625.781.375.313c.585.46.969 1.165.969 1.969 0 1.391-1.109 2.5-2.5 2.5s-2.5-1.109-2.5-2.5c0-.804.361-1.509.938-1.969l.406-.313-.625-.781z"></path>
-</symbol>
-<symbol id="print" viewBox="0 0 8 8">
-  <path d="M2 0v2h4v-2h-4zm-1.906 3c-.06 0-.094.034-.094.094v2.813c0 .06.034.094.094.094h.906v-2h6v2h.906c.06 0 .094-.034.094-.094v-2.813c0-.06-.034-.094-.094-.094h-7.813zm1.906 2v3h4v-3h-4z"></path>
-</symbol>
-<symbol id="project" viewBox="0 0 8 8">
-  <path d="M0 0v7h1v-7h-1zm7 0v7h1v-7h-1zm-5 1v1h2v-1h-2zm1 2v1h2v-1h-2zm1 2v1h2v-1h-2z"></path>
-</symbol>
-<symbol id="pulse" viewBox="0 0 8 8">
-  <path d="M3.25 0l-.469 1.531-.781 2.563-.031-.063-.094-.344h-1.875v1h1.1560000000000001l.375 1.156.469 1.469.469-1.469.781-2.5.781 2.5.406 1.313.531-1.281.594-1.469.125.281h2.3129999999999997v-1h-1.688l-.375-.719-.5-1-.406 1.031-.469 1.188-.844-2.656-.469-1.531z"></path>
-</symbol>
-<symbol id="puzzle-piece" viewBox="0 0 8 8">
-  <path d="M3 0c-.28 0-.539.101-.719.281-.18.18-.281.439-.281.719 0 .28.181.479.281.719.03.06.063.161.063.281h-2.344v6h2.344c0-.12-.011-.221-.031-.281-.11-.24-.313-.439-.313-.719 0-.28.101-.539.281-.719.18-.18.439-.281.719-.281.28 0 .539.101.719.281.18.18.281.439.281.719 0 .28-.181.479-.281.719-.03.06-.063.161-.063.281h2.344v-2.344c.12 0 .221.011.281.031.24.11.439.313.719.313.28 0 .539-.101.719-.281.18-.18.281-.439.281-.719 0-.28-.101-.539-.281-.719-.18-.18-.439-.281-.719-.281-.28 0-.479.181-.719.281-.06.03-.161.063-.281.063v-2.344h-2.344c0-.12.011-.221.031-.281.11-.24.313-.439.313-.719 0-.28-.101-.539-.281-.719-.18-.18-.439-.281-.719-.281z"></path>
-</symbol>
-<symbol id="question-mark" viewBox="0 0 8 8">
-  <path d="M2.469 0c-.854 0-1.48.256-1.875.656s-.54.901-.594 1.281l1 .125c.036-.26.125-.497.313-.688.188-.19.491-.375 1.156-.375.664 0 1.019.163 1.219.344.199.181.281.405.281.656 0 .833-.313 1.063-.813 1.5-.5.438-1.188 1.083-1.188 2.25v.25h1v-.25c0-.833.344-1.063.844-1.5.5-.438 1.156-1.083 1.156-2.25 0-.479-.168-1.02-.594-1.406-.426-.387-1.071-.594-1.906-.594zm-.5 7v1h1v-1h-1z" transform="translate(2)"></path>
-</symbol>
-<symbol id="rain" viewBox="0 0 8 8">
-  <path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2 0 .52.201 1.015.531 1.375.26-.22.599-.375.969-.375.2 0 .393.055.563.125.17-.64.748-1.125 1.438-1.125s1.268.485 1.438 1.125c.17-.07.362-.125.563-.125.63 0 1.155.388 1.375.938.64-.17 1.125-.747 1.125-1.438 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5zm-1.156 5a.5.5 0 0 0-.344.5v2a.5.5 0 1 0 1 0v-2a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0zm-2 1a.5.5 0 0 0-.344.5v1a.5.5 0 1 0 1 0v-1a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0zm4 0a.5.5 0 0 0-.344.5v1a.5.5 0 1 0 1 0v-1a.5.5 0 0 0-.594-.5.5.5 0 0 0-.063 0z"></path>
-</symbol>
-<symbol id="random" viewBox="0 0 8 8">
-  <path d="M6 0v1h-.5c-.354 0-.6.116-.813.375l-1.406 1.75-1.5-1.75v-.031c-.212-.236-.427-.344-.781-.344h-1v1h1c-.037 0 .008-.011.031 0v.031l1.625 1.906-1.625 2.031c.016-.02.019.022 0 .031-.019.009-.068 0-.031 0h-1v1h1c.354 0 .6-.116.813-.375l1.531-1.906 1.625 1.906v.031c.212.236.427.344.781.344h.25v1l2-1.5-2-1.5v1h-.25c.037 0-.008.011-.031 0v-.031l-1.75-2.063 1.5-1.875v-.031c.019-.009.068 0 .031 0h.5v1l2-1.5-2-1.5z"></path>
-</symbol>
-<symbol id="reload" viewBox="0 0 8 8">
-  <path d="M4 0c-2.201 0-4 1.799-4 4s1.799 4 4 4c1.104 0 2.092-.456 2.813-1.188l-.688-.688c-.54.548-1.289.875-2.125.875-1.659 0-3-1.341-3-3s1.341-3 3-3c.834 0 1.545.354 2.094.906l-1.094 1.094h3v-3l-1.188 1.188c-.731-.72-1.719-1.188-2.813-1.188z"></path>
-</symbol>
-<symbol id="resize-both" viewBox="0 0 8 8">
-  <path d="M4 0l1.656 1.656-4 4-1.656-1.656v4h4l-1.656-1.656 4-4 1.656 1.656v-4h-4z"></path>
-</symbol>
-<symbol id="resize-height" viewBox="0 0 8 8">
-  <path d="M2.5 0l-2.5 3h2v2h-2l2.5 3 2.5-3h-2v-2h2l-2.5-3z" transform="translate(1)"></path>
-</symbol>
-<symbol id="resize-width" viewBox="0 0 8 8">
-  <path d="M3 0l-3 2.5 3 2.5v-2h2v2l3-2.5-3-2.5v2h-2v-2z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="rss-alt" viewBox="0 0 8 8">
-  <path d="M0 0v2c3.331 0 6 2.669 6 6h2c0-4.409-3.591-8-8-8zm0 3v2c1.67 0 3 1.33 3 3h2c0-2.75-2.25-5-5-5zm0 3v2h2c0-1.11-.89-2-2-2z"></path>
-</symbol>
-<symbol id="rss" viewBox="0 0 8 8">
-  <path d="M1 0v1c3.32 0 6 2.68 6 6h1c0-3.86-3.14-7-7-7zm0 2v1c2.221 0 4 1.779 4 4h1c0-2.759-2.241-5-5-5zm0 2v1c1.109 0 2 .891 2 2h1c0-1.651-1.349-3-3-3zm0 2c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z"></path>
-</symbol>
-<symbol id="script" viewBox="0 0 8 8">
-  <path d="M3 0c-.55 0-1 .45-1 1v5.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1.5h-1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-3h-4v-2.5c0-.28.22-.5.5-.5s.5.22.5.5v1.5h4v-2c0-.55-.45-1-1-1h-4z"></path>
-</symbol>
-<symbol id="share-boxed" viewBox="0 0 8 8">
-  <path d="M.75 0c-.402 0-.75.348-.75.75v5.5c0 .402.348.75.75.75h4.5c.402 0 .75-.348.75-.75v-1.25h-1v1h-4v-5h2v-1h-2.25zm5.25 0v1c-2.05 0-3.704 1.544-3.938 3.531.213-.875.999-1.531 1.938-1.531h2v1l2-2-2-2z"></path>
-</symbol>
-<symbol id="share" viewBox="0 0 8 8">
-  <path d="M5 0v2c-4 0-5 2.05-5 5 .52-1.98 2-3 4-3h1v2l3-3.156-3-2.844z"></path>
-</symbol>
-<symbol id="shield" viewBox="0 0 8 8">
-  <path d="M4 0l-.188.094-3.5 1.469-.313.125v.313c0 1.657.666 3.122 1.469 4.188.401.533.828.969 1.25 1.281.422.313.826.531 1.281.531.455 0 .86-.219 1.281-.531.422-.313.849-.749 1.25-1.281.803-1.065 1.469-2.53 1.469-4.188v-.313l-.313-.125-3.5-1.469-.188-.094zm0 1.094v5.906c-.045 0-.328-.069-.656-.313s-.714-.631-1.063-1.094c-.642-.851-1.137-2.025-1.219-3.281l2.938-1.219z"></path>
-</symbol>
-<symbol id="signal" viewBox="0 0 8 8">
-  <path d="M6 0v8h1v-8h-1zm-2 1v7h1v-7h-1zm-2 2v5h1v-5h-1zm-2 2v3h1v-3h-1z"></path>
-</symbol>
-<symbol id="signpost" viewBox="0 0 8 8">
-  <path d="M3 0v1h-2l-1 1 1 1h2v5h1v-4h2l1-1-1-1h-2v-2h-1z"></path>
-</symbol>
-<symbol id="sort-ascending" viewBox="0 0 8 8">
-  <path d="M2 0v6h-2l2.5 2 2.5-2h-2v-6h-1zm2 0v1h2v-1h-2zm0 2v1h3v-1h-3zm0 2v1h4v-1h-4z"></path>
-</symbol>
-<symbol id="sort-descending" viewBox="0 0 8 8">
-  <path d="M2 0v6h-2l2.5 2 2.5-2h-2v-6h-1zm2 0v1h4v-1h-4zm0 2v1h3v-1h-3zm0 2v1h2v-1h-2z"></path>
-</symbol>
-<symbol id="spreadsheet" viewBox="0 0 8 8">
-  <path d="M.75 0c-.402 0-.75.348-.75.75v5.5c0 .402.348.75.75.75h6.5c.402 0 .75-.348.75-.75v-5.5c0-.402-.348-.75-.75-.75h-6.5zm.25 1h1v1h-1v-1zm2 0h4v1h-4v-1zm-2 2h1v1h-1v-1zm2 0h4v1h-4v-1zm-2 2h1v1h-1v-1zm2 0h4v1h-4v-1z"></path>
-</symbol>
-<symbol id="star" viewBox="0 0 8 8">
-  <path d="M4 0l-1 3h-3l2.5 2-1 3 2.5-2 2.5 2-1-3 2.5-2h-3l-1-3z"></path>
-</symbol>
-<symbol id="sun" viewBox="0 0 8 8">
-  <path d="M4 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-2.5 1c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm5 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-2.5 1c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2zm-3.5 1.5c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm7 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-6 2.5c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm5 0c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5zm-2.5 1c-.276 0-.5.224-.5.5s.224.5.5.5.5-.224.5-.5-.224-.5-.5-.5z"></path>
-</symbol>
-<symbol id="tablet" viewBox="0 0 8 8">
-  <path d="M.344 0c-.18 0-.344.164-.344.344v7.313c0 .18.164.344.344.344h6.313c.18 0 .344-.164.344-.344v-7.313c0-.18-.164-.344-.344-.344h-6.313zm.656 1h5v5h-5v-5zm2.5 5.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z"></path>
-</symbol>
-<symbol id="tag" viewBox="0 0 8 8">
-  <path d="M0 0v3l5 5 3-3-5-5h-3zm2 1c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z"></path>
-</symbol>
-<symbol id="tags" viewBox="0 0 8 8">
-  <path d="M0 0v2l3 3 1.5-1.5.5-.5-2-2-1-1h-2zm3.406 0l3 3-1.188 1.219.781.781 2-2-3-3h-1.594zm-1.906 1c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="target" viewBox="0 0 8 8">
-  <path d="M4 0c-2.203 0-4 1.797-4 4 0 2.203 1.797 4 4 4 2.203 0 4-1.797 4-4 0-2.203-1.797-4-4-4zm0 1c1.663 0 3 1.337 3 3s-1.337 3-3 3-3-1.337-3-3 1.337-3 3-3zm0 1c-1.099 0-2 .901-2 2s.901 2 2 2 2-.901 2-2-.901-2-2-2zm0 1c.558 0 1 .442 1 1s-.442 1-1 1-1-.442-1-1 .442-1 1-1z"></path>
-</symbol>
-<symbol id="task" viewBox="0 0 8 8">
-  <path d="M0 0v7h7v-3.594l-1 1v1.594h-5v-5h3.594l1-1h-5.594zm7 0l-3 3-1-1-1 1 2 2 4-4-1-1z"></path>
-</symbol>
-<symbol id="terminal" viewBox="0 0 8 8">
-  <path d="M.094 0c-.06 0-.094.034-.094.094v7.813c0 .06.034.094.094.094h7.813c.06 0 .094-.034.094-.094v-7.813c0-.06-.034-.094-.094-.094h-7.813zm1.406.781l1.719 1.719-1.719 1.719-.719-.719 1-1-1-1 .719-.719zm2.5 2.219h3v1h-3v-1z"></path>
-</symbol>
-<symbol id="text" viewBox="0 0 8 8">
-  <path d="M0 0v2h.5c0-.55.45-1 1-1h1.5v5.5c0 .28-.22.5-.5.5h-.5v1h4v-1h-.5c-.28 0-.5-.22-.5-.5v-5.5h1.5c.55 0 1 .45 1 1h.5v-2h-8z"></path>
-</symbol>
-<symbol id="thumb-down" viewBox="0 0 8 8">
-  <path d="M0 0v4h1v-4h-1zm2 0v4.001c.28 0 .529.101.719.281.18.19 1.151 2.115 1.281 2.375.13.26.386.393.656.313.26-.08.393-.355.313-.625-.08-.26-.469-1.594-.469-1.844s.22-.5.5-.5h1.5c.28 0 .5-.22.5-.5s-1.031-3.188-1.031-3.188c-.08-.18-.259-.313-.469-.313h-3.5z"></path>
-</symbol>
-<symbol id="thumb-up" viewBox="0 0 8 8">
-  <path d="M4.438 0c-.19.021-.34.149-.438.344-.13.26-1.101 2.185-1.281 2.375-.19.18-.439.281-.719.281v4.001h3.5c.21 0 .389-.133.469-.313 0 0 1.031-2.908 1.031-3.188 0-.28-.22-.5-.5-.5h-1.5c-.28 0-.5-.25-.5-.5s.389-1.574.469-1.844c.08-.27-.053-.545-.313-.625-.067-.02-.155-.038-.219-.031zm-4.438 3v4h1v-4h-1z"></path>
-</symbol>
-<symbol id="timer" viewBox="0 0 8 8">
-  <path d="M2 0v1h1v.031c-1.697.241-3 1.707-3 3.469 0 1.929 1.571 3.5 3.5 3.5s3.5-1.571 3.5-3.5c0-.45-.086-.874-.219-1.25l-.938.344c.107.304.156.596.156.906 0 1.391-1.109 2.5-2.5 2.5s-2.5-1.109-2.5-2.5 1.109-2.5 2.5-2.5c.298 0 .585.051.875.156l.344-.938c-.221-.081-.471-.119-.719-.156v-.063h1v-1h-3zm5 1.125s-3.675 2.8-3.875 3c-.2.2-.2.519 0 .719.2.2.519.2.719 0 .2-.19 3.156-3.719 3.156-3.719z"></path>
-</symbol>
-<symbol id="transfer" viewBox="0 0 8 8">
-  <path d="M6 0v1h-6v1h6v1l2-1.5-2-1.5zm-4 4l-2 1.5 2 1.5v-1h6v-1h-6v-1z"></path>
-</symbol>
-<symbol id="trash" viewBox="0 0 8 8">
-  <path d="M3 0c-.55 0-1 .45-1 1h-1c-.55 0-1 .45-1 1h7c0-.55-.45-1-1-1h-1c0-.55-.45-1-1-1h-1zm-2 3v4.813c0 .11.077.188.188.188h4.625c.11 0 .188-.077.188-.188v-4.813h-1v3.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-3.5h-1v3.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-3.5h-1z"></path>
-</symbol>
-<symbol id="underline" viewBox="0 0 8 8">
-  <path d="M1 0v4c0 1.1 1.12 2 2.5 2h.5c1.1 0 2-.9 2-2v-4h-1v4c0 .55-.45 1-1 1s-1-.45-1-1v-4h-2zm-1 7v1h7v-1h-7z"></path>
-</symbol>
-<symbol id="vertical-align-bottom" viewBox="0 0 8 8">
-  <path d="M.094 0c-.06 0-.094.034-.094.094v4.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-4.813c0-.06-.034-.094-.094-.094h-1.813zm6 0c-.06 0-.094.034-.094.094v4.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-4.813c0-.06-.034-.094-.094-.094h-1.813zm-3 2c-.06 0-.094.034-.094.094v2.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-2.813c0-.06-.034-.094-.094-.094h-1.813zm-3.094 4v1h8v-1h-8z"></path>
-</symbol>
-<symbol id="vertical-align-center" viewBox="0 0 8 8">
-  <path d="M.094 0c-.06 0-.094.034-.094.094v1.906h2v-1.906c0-.06-.034-.094-.094-.094h-1.813zm6 0c-.06 0-.094.034-.094.094v1.906h2v-1.906c0-.06-.034-.094-.094-.094h-1.813zm-3 1c-.06 0-.094.034-.094.094v.906h2v-.906c0-.06-.034-.094-.094-.094h-1.813zm-3.094 2v1h8v-1h-8zm0 2v1.906c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-1.906h-2zm3 0v.906c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-.906h-2zm3 0v1.906c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-1.906h-2z"></path>
-</symbol>
-<symbol id="vertical-align-top" viewBox="0 0 8 8">
-  <path d="M0 0v1h8v-1h-8zm.094 2c-.06 0-.094.034-.094.094v4.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-4.813c0-.06-.034-.094-.094-.094h-1.813zm3 0c-.06 0-.094.034-.094.094v2.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-2.813c0-.06-.034-.094-.094-.094h-1.813zm3 0c-.06 0-.094.034-.094.094v4.813c0 .06.034.094.094.094h1.813c.06 0 .094-.034.094-.094v-4.813c0-.06-.034-.094-.094-.094h-1.813z"></path>
-</symbol>
-<symbol id="video" viewBox="0 0 8 8">
-  <path d="M.5 0c-.28 0-.5.22-.5.5v4c0 .28.22.5.5.5h5c.28 0 .5-.22.5-.5v-1.5l1 1h1v-3h-1l-1 1v-1.5c0-.28-.22-.5-.5-.5h-5z" transform="translate(0 1)"></path>
-</symbol>
-<symbol id="volume-high" viewBox="0 0 8 8">
-  <path d="M3.344 0l-1.344 2h-2v4h2l1.344 2h.656v-8h-.656zm1.656 1v1c.152 0 .313.026.469.063h.031c.86.215 1.5.995 1.5 1.938 0 .942-.64 1.722-1.5 1.938-.166.041-.338.063-.5.063v1c.258 0 .516-.035.75-.094 1.3-.325 2.25-1.508 2.25-2.906 0-1.398-.95-2.581-2.25-2.906-.234-.059-.492-.094-.75-.094zm0 2v2c.04 0 .134-.002.25-.031.433-.118.75-.507.75-.969 0-.446-.325-.819-.75-.938v-.031c-.005-.001-.025.002-.031 0-.043-.011-.111-.031-.219-.031z"></path>
-</symbol>
-<symbol id="volume-low" viewBox="0 0 8 8">
-  <path d="M3.344 0l-1.344 2h-2v4h2l1.344 2h.656v-8h-.656zm1.656 3v2c.04 0 .134-.002.25-.031.433-.118.75-.507.75-.969 0-.446-.325-.819-.75-.938v-.031c-.005-.001-.025.002-.031 0-.043-.011-.111-.031-.219-.031z" transform="translate(1)"></path>
-</symbol>
-<symbol id="volume-off" viewBox="0 0 8 8">
-  <path d="M3.344 0l-1.344 2h-2v4h2l1.344 2h.656v-8h-.656z" transform="translate(2)"></path>
-</symbol>
-<symbol id="warning" viewBox="0 0 8 8">
-  <path d="M3.094 0c-.06 0-.105.044-.125.094l-2.938 6.813c-.02.05-.031.128-.031.188v.813c0 .06.034.094.094.094h6.813c.06 0 .094-.034.094-.094v-.813c0-.06-.011-.128-.031-.188l-2.938-6.813c-.02-.05-.065-.094-.125-.094h-.813zm-.094 3h1v2h-1v-2zm0 3h1v1h-1v-1z"></path>
-</symbol>
-<symbol id="wifi" viewBox="0 0 8 8">
-  <path d="M3.75 0c-1.374 0-2.66.372-3.75 1.063l.531.875c.93-.59 2.033-.938 3.219-.938 1.2 0 2.323.31 3.25.906l.531-.813c-1.093-.703-2.401-1.094-3.781-1.094zm.031 3c-.795 0-1.531.227-2.156.625l.531.844c.475-.302 1.02-.469 1.625-.469.593 0 1.13.177 1.594.469l.531-.844c-.616-.388-1.338-.625-2.125-.625zm-.031 3c-.552 0-1 .448-1 1s.448 1 1 1 1-.448 1-1-.448-1-1-1z"></path>
-</symbol>
-<symbol id="wrench" viewBox="0 0 8 8">
-  <path d="M5.5 0c-1.38 0-2.5 1.12-2.5 2.5 0 .32.078.626.188.906l-2.906 2.875c-.39.39-.39 1.016 0 1.406.2.2.459.313.719.313.26 0 .519-.091.719-.281l2.875-2.875c.28.1.586.156.906.156 1.38 0 2.5-1.12 2.5-2.5 0-.16-.032-.297-.063-.438l-.938.938h-2v-2l.938-.938c-.14-.03-.277-.062-.438-.063zm-4.5 6.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z"></path>
-</symbol>
-<symbol id="x" viewBox="0 0 8 8">
-  <path d="M1.406 0l-1.406 1.406.688.719 1.781 1.781-1.781 1.781-.688.719 1.406 1.406.719-.688 1.781-1.781 1.781 1.781.719.688 1.406-1.406-.688-.719-1.781-1.781 1.781-1.781.688-.719-1.406-1.406-.719.688-1.781 1.781-1.781-1.781-.719-.688z"></path>
-</symbol>
-<symbol id="yen" viewBox="0 0 8 8">
-  <path d="M0 0l2.25 3h-2.25v1h3v1h-3v1h3v2h1v-2h3v-1h-3v-1h3v-1h-2.25l2.25-3h-1l-2.313 3h-.375l-2.313-3h-1z"></path>
-</symbol>
-<symbol id="zoom-in" viewBox="0 0 8 8">
-  <path d="M3.5 0c-1.927 0-3.5 1.573-3.5 3.5s1.573 3.5 3.5 3.5c.592 0 1.166-.145 1.656-.406a1 1 0 0 0 .094.094l1.031 1.031a1.016 1.016 0 1 0 1.438-1.438l-1.031-1.031a1 1 0 0 0-.125-.094c.266-.493.438-1.059.438-1.656 0-1.927-1.573-3.5-3.5-3.5zm0 1c1.387 0 2.5 1.113 2.5 2.5 0 .587-.196 1.137-.531 1.563-.009.012-.022.02-.031.031a1 1 0 0 0-.063.031 1 1 0 0 0-.281.281 1 1 0 0 0-.063.063c-.422.326-.953.531-1.531.531-1.387 0-2.5-1.113-2.5-2.5s1.113-2.5 2.5-2.5zm-.5 1v1h-1v1h1v1h1v-1h1v-1h-1v-1h-1z"></path>
-</symbol>
-<symbol id="zoom-out" viewBox="0 0 8 8">
-  <path d="M3.5 0c-1.927 0-3.5 1.573-3.5 3.5s1.573 3.5 3.5 3.5c.592 0 1.166-.145 1.656-.406a1 1 0 0 0 .094.094l1.031 1.031a1.016 1.016 0 1 0 1.438-1.438l-1.031-1.031a1 1 0 0 0-.125-.094c.266-.493.438-1.059.438-1.656 0-1.927-1.573-3.5-3.5-3.5zm0 1c1.387 0 2.5 1.113 2.5 2.5 0 .587-.196 1.137-.531 1.563-.009.012-.022.02-.031.031a1 1 0 0 0-.063.031 1 1 0 0 0-.281.281 1 1 0 0 0-.063.063c-.422.326-.953.531-1.531.531-1.387 0-2.5-1.113-2.5-2.5s1.113-2.5 2.5-2.5zm-1.5 2v1h3v-1h-3z"></path>
-</symbol>
-</defs>
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/account-login.svg b/assets/static/fonts/open-iconic/svg/account-login.svg
deleted file mode 100644
index 225d912..0000000
--- a/assets/static/fonts/open-iconic/svg/account-login.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3 0v1h4v5h-4v1h5v-7h-5zm1 2v1h-4v1h4v1l2-1.5-2-1.5z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/account-logout.svg b/assets/static/fonts/open-iconic/svg/account-logout.svg
deleted file mode 100644
index 123cece..0000000
--- a/assets/static/fonts/open-iconic/svg/account-logout.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3 0v1h4v5h-4v1h5v-7h-5zm-1 2l-2 1.5 2 1.5v-1h4v-1h-4v-1z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/action-redo.svg b/assets/static/fonts/open-iconic/svg/action-redo.svg
deleted file mode 100644
index 373f7cb..0000000
--- a/assets/static/fonts/open-iconic/svg/action-redo.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3.5 0c-1.93 0-3.5 1.57-3.5 3.5 0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v.5h-1l2 2 2-2h-1v-.5c0-1.93-1.57-3.5-3.5-3.5z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/action-undo.svg b/assets/static/fonts/open-iconic/svg/action-undo.svg
deleted file mode 100644
index 6e4cfa3..0000000
--- a/assets/static/fonts/open-iconic/svg/action-undo.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4.5 0c-1.93 0-3.5 1.57-3.5 3.5v.5h-1l2 2 2-2h-1v-.5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5c0-1.93-1.57-3.5-3.5-3.5z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/align-center.svg b/assets/static/fonts/open-iconic/svg/align-center.svg
deleted file mode 100644
index bbac8ec..0000000
--- a/assets/static/fonts/open-iconic/svg/align-center.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v1h8v-1h-8zm1 2v1h6v-1h-6zm-1 2v1h8v-1h-8zm1 2v1h6v-1h-6z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/align-left.svg b/assets/static/fonts/open-iconic/svg/align-left.svg
deleted file mode 100644
index 2e92e0d..0000000
--- a/assets/static/fonts/open-iconic/svg/align-left.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v1h8v-1h-8zm0 2v1h6v-1h-6zm0 2v1h8v-1h-8zm0 2v1h6v-1h-6z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/align-right.svg b/assets/static/fonts/open-iconic/svg/align-right.svg
deleted file mode 100644
index 22d127a..0000000
--- a/assets/static/fonts/open-iconic/svg/align-right.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v1h8v-1h-8zm2 2v1h6v-1h-6zm-2 2v1h8v-1h-8zm2 2v1h6v-1h-6z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/aperture.svg b/assets/static/fonts/open-iconic/svg/aperture.svg
deleted file mode 100644
index d45f6ca..0000000
--- a/assets/static/fonts/open-iconic/svg/aperture.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0c-.69 0-1.34.19-1.91.5l3.22 2.34.75-2.25c-.6-.36-1.31-.59-2.06-.59zm-2.75 1.13c-.76.73-1.25 1.74-1.25 2.88 0 .25.02.48.06.72l3.09-2.22-1.91-1.38zm5.63.13l-1.22 3.75h2.19c.08-.32.16-.65.16-1 0-1.07-.44-2.03-1.13-2.75zm-4.72 3.22l-1.75 1.25c.55 1.13 1.6 1.99 2.88 2.22l-1.13-3.47zm1.56 1.53l.63 1.97c1.33-.12 2.46-.88 3.09-1.97h-3.72z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/arrow-bottom.svg b/assets/static/fonts/open-iconic/svg/arrow-bottom.svg
deleted file mode 100644
index 005d723..0000000
--- a/assets/static/fonts/open-iconic/svg/arrow-bottom.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M2 0v5h-2l2.53 3 2.47-3h-2v-5h-1z" transform="translate(1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/arrow-circle-bottom.svg b/assets/static/fonts/open-iconic/svg/arrow-circle-bottom.svg
deleted file mode 100644
index fffa96b..0000000
--- a/assets/static/fonts/open-iconic/svg/arrow-circle-bottom.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-1 1h2v3h2l-3 3-3-3h2v-3z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/arrow-circle-left.svg b/assets/static/fonts/open-iconic/svg/arrow-circle-left.svg
deleted file mode 100644
index b4d7600..0000000
--- a/assets/static/fonts/open-iconic/svg/arrow-circle-left.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1v2h3v2h-3v2l-3-3 3-3z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/arrow-circle-right.svg b/assets/static/fonts/open-iconic/svg/arrow-circle-right.svg
deleted file mode 100644
index a62bc17..0000000
--- a/assets/static/fonts/open-iconic/svg/arrow-circle-right.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1l3 3-3 3v-2h-3v-2h3v-2z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/arrow-circle-top.svg b/assets/static/fonts/open-iconic/svg/arrow-circle-top.svg
deleted file mode 100644
index 2ac6e7f..0000000
--- a/assets/static/fonts/open-iconic/svg/arrow-circle-top.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1l3 3h-2v3h-2v-3h-2l3-3z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/arrow-left.svg b/assets/static/fonts/open-iconic/svg/arrow-left.svg
deleted file mode 100644
index 6de9f24..0000000
--- a/assets/static/fonts/open-iconic/svg/arrow-left.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3 0l-3 2.53 3 2.47v-2h5v-1h-5v-2z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/arrow-right.svg b/assets/static/fonts/open-iconic/svg/arrow-right.svg
deleted file mode 100644
index 735e5f6..0000000
--- a/assets/static/fonts/open-iconic/svg/arrow-right.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M5 0v2h-5v1h5v2l3-2.53-3-2.47z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/arrow-thick-bottom.svg b/assets/static/fonts/open-iconic/svg/arrow-thick-bottom.svg
deleted file mode 100644
index 0c05067..0000000
--- a/assets/static/fonts/open-iconic/svg/arrow-thick-bottom.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M2 0v5h-2l3.03 3 2.97-3h-2v-5h-2z" transform="translate(1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/arrow-thick-left.svg b/assets/static/fonts/open-iconic/svg/arrow-thick-left.svg
deleted file mode 100644
index 2075e42..0000000
--- a/assets/static/fonts/open-iconic/svg/arrow-thick-left.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3 0l-3 3.03 3 2.97v-2h5v-2h-5v-2z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/arrow-thick-right.svg b/assets/static/fonts/open-iconic/svg/arrow-thick-right.svg
deleted file mode 100644
index 8b407e9..0000000
--- a/assets/static/fonts/open-iconic/svg/arrow-thick-right.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M5 0v2h-5v2h5v2l3-3.03-3-2.97z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/arrow-thick-top.svg b/assets/static/fonts/open-iconic/svg/arrow-thick-top.svg
deleted file mode 100644
index 78b310c..0000000
--- a/assets/static/fonts/open-iconic/svg/arrow-thick-top.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M2.97 0l-2.97 3h2v5h2v-5h2l-3.03-3z" transform="translate(1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/arrow-top.svg b/assets/static/fonts/open-iconic/svg/arrow-top.svg
deleted file mode 100644
index d03d52d..0000000
--- a/assets/static/fonts/open-iconic/svg/arrow-top.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M2.47 0l-2.47 3h2v5h1v-5h2l-2.53-3z" transform="translate(1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/audio-spectrum.svg b/assets/static/fonts/open-iconic/svg/audio-spectrum.svg
deleted file mode 100644
index 7077ec7..0000000
--- a/assets/static/fonts/open-iconic/svg/audio-spectrum.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0v8h1v-8h-1zm-2 1v6h1v-6h-1zm4 1v4h1v-4h-1zm-6 1v2h1v-2h-1z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/audio.svg b/assets/static/fonts/open-iconic/svg/audio.svg
deleted file mode 100644
index 803d592..0000000
--- a/assets/static/fonts/open-iconic/svg/audio.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M1.16 0c-.72.72-1.16 1.71-1.16 2.81s.43 2.12 1.16 2.84l.72-.72c-.54-.54-.88-1.29-.88-2.13 0-.83.33-1.55.88-2.09l-.72-.72zm5.69 0l-.72.72c.54.54.88 1.26.88 2.09 0 .83-.33 1.58-.88 2.13l.72.72c.72-.72 1.16-1.74 1.16-2.84 0-1.1-.43-2.09-1.16-2.81zm-4.25 1.41c-.36.36-.59.86-.59 1.41 0 .55.23 1.08.59 1.44l.69-.72c-.18-.18-.28-.44-.28-.72 0-.28.1-.5.28-.69l-.69-.72zm2.81 0l-.69.72c.18.18.28.41.28.69 0 .28-.1.54-.28.72l.69.72c.36-.36.59-.89.59-1.44 0-.55-.23-1.05-.59-1.41z"
-  transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/badge.svg b/assets/static/fonts/open-iconic/svg/badge.svg
deleted file mode 100644
index 47b8322..0000000
--- a/assets/static/fonts/open-iconic/svg/badge.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M2 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-1 4.81v3.19l1-1 1 1v-3.19c-.31.11-.65.19-1 .19s-.69-.08-1-.19z" transform="translate(2)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/ban.svg b/assets/static/fonts/open-iconic/svg/ban.svg
deleted file mode 100644
index 3a23300..0000000
--- a/assets/static/fonts/open-iconic/svg/ban.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm0 1c.66 0 1.26.21 1.75.56l-4.19 4.19c-.35-.49-.56-1.09-.56-1.75 0-1.66 1.34-3 3-3zm2.44 1.25c.35.49.56 1.09.56 1.75 0 1.66-1.34 3-3 3-.66 0-1.26-.21-1.75-.56l4.19-4.19z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/bar-chart.svg b/assets/static/fonts/open-iconic/svg/bar-chart.svg
deleted file mode 100644
index a1cde5a..0000000
--- a/assets/static/fonts/open-iconic/svg/bar-chart.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v7h8v-1h-7v-6h-1zm5 0v5h2v-5h-2zm-3 2v3h2v-3h-2z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/basket.svg b/assets/static/fonts/open-iconic/svg/basket.svg
deleted file mode 100644
index fc5f8c5..0000000
--- a/assets/static/fonts/open-iconic/svg/basket.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3.97 0c-.13.01-.26.08-.34.19l-2.34 2.81h-1.28v1h1v3.66c0 .18.16.34.34.34h5.31c.18 0 .34-.16.34-.34v-3.66h1v-1h-1.28c-.27-.33-2.39-2.86-2.41-2.88-.11-.09-.22-.14-.34-.13zm.03 1.28l1.44 1.72h-2.88l1.44-1.72zm-1.5 3.72c.28 0 .5.22.5.5v1c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1c0-.28.22-.5.5-.5zm3 0c.28 0 .5.22.5.5v1c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1c0-.28.22-.5.5-.5z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/battery-empty.svg b/assets/static/fonts/open-iconic/svg/battery-empty.svg
deleted file mode 100644
index 61efd9a..0000000
--- a/assets/static/fonts/open-iconic/svg/battery-empty.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M.09 0c-.06 0-.09.04-.09.09v5.81c0 .05.04.09.09.09h6.81c.05 0 .09-.04.09-.09v-1.91h1v-2h-1v-1.91c0-.06-.04-.09-.09-.09h-6.81zm.91 1h5v4h-5v-4z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/battery-full.svg b/assets/static/fonts/open-iconic/svg/battery-full.svg
deleted file mode 100644
index 85d8839..0000000
--- a/assets/static/fonts/open-iconic/svg/battery-full.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M.09 0c-.06 0-.09.04-.09.09v5.81c0 .05.04.09.09.09h6.81c.05 0 .09-.04.09-.09v-1.91h1v-2h-1v-1.91c0-.06-.04-.09-.09-.09h-6.81z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/beaker.svg b/assets/static/fonts/open-iconic/svg/beaker.svg
deleted file mode 100644
index 0eb1c02..0000000
--- a/assets/static/fonts/open-iconic/svg/beaker.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M1.34 0a.5.5 0 0 0 .16 1h.5v1.41c-.09.17-1.2 2.31-1.66 3.09-.16.26-.34.61-.34 1.06 0 .39.15.77.41 1.03s.64.41 1.03.41h5.13c.38 0 .74-.16 1-.41h.03c.26-.26.41-.64.41-1.03 0-.45-.19-.8-.34-1.06-.46-.78-1.57-2.92-1.66-3.09v-1.41h.5a.5.5 0 1 0 0-1h-5a.5.5 0 0 0-.09 0 .5.5 0 0 0-.06 0zm1.66 1h2v1.63l.06.09s.63 1.23 1.19 2.28h-4.5c.56-1.05 1.19-2.28 1.19-2.28l.06-.09v-1.63z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/bell.svg b/assets/static/fonts/open-iconic/svg/bell.svg
deleted file mode 100644
index a701e7e..0000000
--- a/assets/static/fonts/open-iconic/svg/bell.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0c-1.1 0-2 .9-2 2 0 1.04-.52 1.98-1.34 2.66-.41.34-.66.82-.66 1.34h8c0-.52-.24-1-.66-1.34-.82-.68-1.34-1.62-1.34-2.66 0-1.1-.89-2-2-2zm-1 7c0 .55.45 1 1 1s1-.45 1-1h-2z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/bluetooth.svg b/assets/static/fonts/open-iconic/svg/bluetooth.svg
deleted file mode 100644
index 36a4028..0000000
--- a/assets/static/fonts/open-iconic/svg/bluetooth.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M1.5 0v2.5l-.75-.75-.75.75 1.5 1.5-1.5 1.5.75.75.75-.75v2.5h.5l3.5-2.5-2.25-1.53 2.25-1.47-3.5-2.5h-.5zm1 1.5l1.5 1-1.5 1v-2zm0 3l1.5 1-1.5 1v-2z" transform="translate(1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/bold.svg b/assets/static/fonts/open-iconic/svg/bold.svg
deleted file mode 100644
index 72432db..0000000
--- a/assets/static/fonts/open-iconic/svg/bold.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v1c.55 0 1 .45 1 1v4c0 .55-.45 1-1 1v1h5.5c1.38 0 2.5-1.12 2.5-2.5 0-1-.59-1.85-1.44-2.25.27-.34.44-.78.44-1.25 0-1.1-.89-2-2-2h-5zm3 1h1c.55 0 1 .45 1 1s-.45 1-1 1h-1v-2zm0 3h1.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-1.5v-3z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/bolt.svg b/assets/static/fonts/open-iconic/svg/bolt.svg
deleted file mode 100644
index d6e8df1..0000000
--- a/assets/static/fonts/open-iconic/svg/bolt.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3 0l-3 5h2v3l3-5h-2v-3z" transform="translate(1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/book.svg b/assets/static/fonts/open-iconic/svg/book.svg
deleted file mode 100644
index dd6a29b..0000000
--- a/assets/static/fonts/open-iconic/svg/book.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M1 0c-.07 0-.13.01-.19.03-.39.08-.7.39-.78.78-.03.06-.03.12-.03.19v5.5c0 .83.67 1.5 1.5 1.5h5.5v-1h-5.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5h5.5v-5.5c0-.28-.22-.5-.5-.5h-.5v3l-1-1-1 1v-3h-3z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/bookmark.svg b/assets/static/fonts/open-iconic/svg/bookmark.svg
deleted file mode 100644
index cd349c7..0000000
--- a/assets/static/fonts/open-iconic/svg/bookmark.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v8l2-2 2 2v-8h-4z" transform="translate(2)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/box.svg b/assets/static/fonts/open-iconic/svg/box.svg
deleted file mode 100644
index 9d1abb0..0000000
--- a/assets/static/fonts/open-iconic/svg/box.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v1h8v-1h-8zm0 2v5.91c0 .05.04.09.09.09h7.81c.05 0 .09-.04.09-.09v-5.91h-2.97v1.03h-2.03v-1.03h-3z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/briefcase.svg b/assets/static/fonts/open-iconic/svg/briefcase.svg
deleted file mode 100644
index b211550..0000000
--- a/assets/static/fonts/open-iconic/svg/briefcase.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3 0c-.55 0-1 .45-1 1v1h-1.91c-.06 0-.09.04-.09.09v2.41c0 .28.22.5.5.5h7c.28 0 .5-.22.5-.5v-2.41c0-.06-.04-.09-.09-.09h-1.91v-1c0-.55-.45-1-1-1h-2zm0 1h2v1h-2v-1zm-3 4.91v2c0 .05.04.09.09.09h7.81c.05 0 .09-.04.09-.09v-2c-.16.06-.32.09-.5.09h-7c-.18 0-.34-.04-.5-.09z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/british-pound.svg b/assets/static/fonts/open-iconic/svg/british-pound.svg
deleted file mode 100644
index ef70d88..0000000
--- a/assets/static/fonts/open-iconic/svg/british-pound.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3 0c-.62 0-1.16.26-1.5.69-.34.43-.5.99-.5 1.56 0 .69.16 1.25.25 1.75h-1.25v1h1.22c-.11.45-.37.96-1.06 1.66l-.16.13v1.22h6v-1h-4.91c.64-.73.98-1.4 1.13-2h1.78v-1h-1.72c-.08-.68-.28-1.24-.28-1.75 0-.39.11-.73.28-.94.17-.21.37-.31.72-.31.39 0 .61.11.75.25s.25.36.25.75h1c0-.58-.17-1.1-.53-1.47-.37-.37-.89-.53-1.47-.53z"
-  transform="translate(1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/browser.svg b/assets/static/fonts/open-iconic/svg/browser.svg
deleted file mode 100644
index 616cfbe..0000000
--- a/assets/static/fonts/open-iconic/svg/browser.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M.34 0a.5.5 0 0 0-.34.5v7a.5.5 0 0 0 .5.5h7a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.5-.5h-7a.5.5 0 0 0-.09 0 .5.5 0 0 0-.06 0zm1.16 1c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zm2 0h3c.28 0 .5.22.5.5s-.22.5-.5.5h-3c-.28 0-.5-.22-.5-.5s.22-.5.5-.5zm-2.5 2h6v4h-6v-4z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/brush.svg b/assets/static/fonts/open-iconic/svg/brush.svg
deleted file mode 100644
index bad9ec0..0000000
--- a/assets/static/fonts/open-iconic/svg/brush.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M7.44.03c-.03 0-.04.02-.06.03l-3.75 2.66c-.04.03-.1.11-.13.16l-.13.25c.72.23 1.27.78 1.5 1.5l.25-.13c.05-.03.12-.08.16-.13l2.66-3.75c.03-.05.04-.09 0-.13l-.44-.44c-.02-.02-.04-.03-.06-.03zm-4.78 3.97c-.74 0-1.31.61-1.31 1.34 0 .99-.55 1.85-1.34 2.31.39.22.86.34 1.34.34 1.47 0 2.66-1.18 2.66-2.66 0-.74-.61-1.34-1.34-1.34z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/bug.svg b/assets/static/fonts/open-iconic/svg/bug.svg
deleted file mode 100644
index 70c1473..0000000
--- a/assets/static/fonts/open-iconic/svg/bug.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3.5 0c-1.19 0-1.98 1.69-1.19 2.5-.09.07-.2.14-.28.22l-1.31-.66a.5.5 0 0 0-.34-.06.5.5 0 0 0-.09.94l1.16.56c-.09.16-.19.33-.25.5h-.69a.5.5 0 0 0-.09 0 .5.5 0 1 0 .09 1h.5c0 .23.02.45.06.66l-.78.41a.5.5 0 1 0 .44.88l.66-.34c.25.46.62.85 1.03 1.09.35-.19.59-.44.59-.72v-1.44a.5.5 0 0 0 0-.09v-.81a.5.5 0 0 0 0-.22c.05-.23.26-.41.5-.41.28 0 .5.22.5.5v.88a.5.5 0 0 0 0 .09v.06a.5.5 0 0 0 0 .09v1.34c0 .27.24.53.59.72.41-.25.79-.63 1.03-1.09l.66.34a.5.5 0 1 0 .44-.88l-.78-.41c.04-.21.06-.43.06-.66h.5a.5.5 0 1 0 0-1h-.69c-.06-.17-.16-.34-.25-.5l1.16-.56a.5.5 0 0 0-.31-.94.5.5 0 0 0-.13.06l-1.31.66c-.09-.08-.19-.15-.28-.22.78-.83 0-2.5-1.19-2.5z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/bullhorn.svg b/assets/static/fonts/open-iconic/svg/bullhorn.svg
deleted file mode 100644
index 885f0d5..0000000
--- a/assets/static/fonts/open-iconic/svg/bullhorn.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M6 0v6c.03.01.07 0 .09 0h.81c.05 0 .09-.04.09-.09v-5.81c0-.06-.04-.09-.09-.09h-.91zm-1 .5l-2.91 1.47c-.05.02-.13.03-.19.03h-1.81c-.06 0-.09.04-.09.09v1.81c0 .06.04.09.09.09h.91l1.03 2.72c.11.25.44.36.69.25.25-.11.36-.44.25-.69l-.75-1.78c.03-.14.13-.22.28-.22v-.03l2.5 1.25v-5z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/calculator.svg b/assets/static/fonts/open-iconic/svg/calculator.svg
deleted file mode 100644
index f756287..0000000
--- a/assets/static/fonts/open-iconic/svg/calculator.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M.09 0c-.06 0-.09.04-.09.09v7.81c0 .05.04.09.09.09h6.81c.05 0 .09-.04.09-.09v-7.81c0-.06-.04-.09-.09-.09h-6.81zm.91 1h5v2h-5v-2zm0 3h1v1h-1v-1zm2 0h1v1h-1v-1zm2 0h1v3h-1v-3zm-4 2h1v1h-1v-1zm2 0h1v1h-1v-1z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/calendar.svg b/assets/static/fonts/open-iconic/svg/calendar.svg
deleted file mode 100644
index a35049b..0000000
--- a/assets/static/fonts/open-iconic/svg/calendar.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v2h7v-2h-7zm0 3v4.91c0 .05.04.09.09.09h6.81c.05 0 .09-.04.09-.09v-4.91h-7zm1 1h1v1h-1v-1zm2 0h1v1h-1v-1zm2 0h1v1h-1v-1zm-4 2h1v1h-1v-1zm2 0h1v1h-1v-1z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/camera-slr.svg b/assets/static/fonts/open-iconic/svg/camera-slr.svg
deleted file mode 100644
index 0ee45c0..0000000
--- a/assets/static/fonts/open-iconic/svg/camera-slr.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4.09 0c-.05 0-.1.04-.13.09l-.94 1.81c-.02.05-.07.09-.13.09h-1.41c-.83 0-1.5.67-1.5 1.5v4.41c0 .05.04.09.09.09h7.81c.05 0 .09-.04.09-.09v-5.81c0-.06-.04-.09-.09-.09h-.81c-.05 0-.1-.04-.13-.09l-.94-1.81c-.03-.05-.07-.09-.13-.09h-1.81zm-2.59 3c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5zm3.5 0c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm0 1c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/caret-bottom.svg b/assets/static/fonts/open-iconic/svg/caret-bottom.svg
deleted file mode 100644
index 2b4c525..0000000
--- a/assets/static/fonts/open-iconic/svg/caret-bottom.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0l4 4 4-4h-8z" transform="translate(0 2)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/caret-left.svg b/assets/static/fonts/open-iconic/svg/caret-left.svg
deleted file mode 100644
index 9d2c25a..0000000
--- a/assets/static/fonts/open-iconic/svg/caret-left.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0l-4 4 4 4v-8z" transform="translate(2)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/caret-right.svg b/assets/static/fonts/open-iconic/svg/caret-right.svg
deleted file mode 100644
index 23b33a0..0000000
--- a/assets/static/fonts/open-iconic/svg/caret-right.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v8l4-4-4-4z" transform="translate(2)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/caret-top.svg b/assets/static/fonts/open-iconic/svg/caret-top.svg
deleted file mode 100644
index 2ad42e0..0000000
--- a/assets/static/fonts/open-iconic/svg/caret-top.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0l-4 4h8l-4-4z" transform="translate(0 2)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/cart.svg b/assets/static/fonts/open-iconic/svg/cart.svg
deleted file mode 100644
index 55bdfc0..0000000
--- a/assets/static/fonts/open-iconic/svg/cart.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M.34 0a.5.5 0 0 0 .16 1h1.5l.09.25.41 1.25.41 1.25c.04.13.21.25.34.25h3.5c.14 0 .3-.12.34-.25l.81-2.5c.04-.13-.02-.25-.16-.25h-4.44l-.38-.72a.5.5 0 0 0-.44-.28h-2a.5.5 0 0 0-.09 0 .5.5 0 0 0-.06 0zm3.16 5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm3 0c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5z"
-  transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/chat.svg b/assets/static/fonts/open-iconic/svg/chat.svg
deleted file mode 100644
index e1a1da0..0000000
--- a/assets/static/fonts/open-iconic/svg/chat.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v5l1-1h1v-3h3v-1h-5zm3 2v4h4l1 1v-5h-5z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/check.svg b/assets/static/fonts/open-iconic/svg/check.svg
deleted file mode 100644
index 8b0e73d..0000000
--- a/assets/static/fonts/open-iconic/svg/check.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M6.41 0l-.69.72-2.78 2.78-.81-.78-.72-.72-1.41 1.41.72.72 1.5 1.5.69.72.72-.72 3.5-3.5.72-.72-1.44-1.41z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/chevron-bottom.svg b/assets/static/fonts/open-iconic/svg/chevron-bottom.svg
deleted file mode 100644
index b919722..0000000
--- a/assets/static/fonts/open-iconic/svg/chevron-bottom.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M1.5 0l-1.5 1.5 4 4 4-4-1.5-1.5-2.5 2.5-2.5-2.5z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/chevron-left.svg b/assets/static/fonts/open-iconic/svg/chevron-left.svg
deleted file mode 100644
index 256902c..0000000
--- a/assets/static/fonts/open-iconic/svg/chevron-left.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z" transform="translate(1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/chevron-right.svg b/assets/static/fonts/open-iconic/svg/chevron-right.svg
deleted file mode 100644
index 2da0760..0000000
--- a/assets/static/fonts/open-iconic/svg/chevron-right.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M1.5 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z" transform="translate(1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/chevron-top.svg b/assets/static/fonts/open-iconic/svg/chevron-top.svg
deleted file mode 100644
index d8bf89c..0000000
--- a/assets/static/fonts/open-iconic/svg/chevron-top.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0l-4 4 1.5 1.5 2.5-2.5 2.5 2.5 1.5-1.5-4-4z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/circle-check.svg b/assets/static/fonts/open-iconic/svg/circle-check.svg
deleted file mode 100644
index 5df0f15..0000000
--- a/assets/static/fonts/open-iconic/svg/circle-check.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm2 1.78l.72.72-3.22 3.22-1.72-1.72.72-.72 1 1 2.5-2.5z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/circle-x.svg b/assets/static/fonts/open-iconic/svg/circle-x.svg
deleted file mode 100644
index 0244752..0000000
--- a/assets/static/fonts/open-iconic/svg/circle-x.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-1.5 1.78l1.5 1.5 1.5-1.5.72.72-1.5 1.5 1.5 1.5-.72.72-1.5-1.5-1.5 1.5-.72-.72 1.5-1.5-1.5-1.5.72-.72z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/clipboard.svg b/assets/static/fonts/open-iconic/svg/clipboard.svg
deleted file mode 100644
index 6b0be4d..0000000
--- a/assets/static/fonts/open-iconic/svg/clipboard.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3.5 0c-.28 0-.5.22-.5.5v.5h-.75c-.14 0-.25.11-.25.25v.75h3v-.75c0-.14-.11-.25-.25-.25h-.75v-.5c0-.28-.22-.5-.5-.5zm-3.25 1c-.14 0-.25.11-.25.25v6.5c0 .14.11.25.25.25h6.5c.14 0 .25-.11.25-.25v-6.5c0-.14-.11-.25-.25-.25h-.75v2h-5v-2h-.75z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/clock.svg b/assets/static/fonts/open-iconic/svg/clock.svg
deleted file mode 100644
index 058e443..0000000
--- a/assets/static/fonts/open-iconic/svg/clock.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm0 1c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm-.5 1v2.22l.16.13.5.5.34.38.72-.72-.38-.34-.34-.34v-1.81h-1z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/cloud-download.svg b/assets/static/fonts/open-iconic/svg/cloud-download.svg
deleted file mode 100644
index 485cf92..0000000
--- a/assets/static/fonts/open-iconic/svg/cloud-download.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2 0 .37.11.71.28 1h2.72v-.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v.5h1.91c.06-.16.09-.32.09-.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5zm-.16 4a.5.5 0 0 0-.34.5v1.5h-1.5l2 2 2-2h-1.5v-1.5a.5.5 0 0 0-.59-.5.5.5 0 0 0-.06 0z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/cloud-upload.svg b/assets/static/fonts/open-iconic/svg/cloud-upload.svg
deleted file mode 100644
index 2bb2196..0000000
--- a/assets/static/fonts/open-iconic/svg/cloud-upload.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2 0 .37.11.71.28 1h2.22l2-2 2 2h1.41c.06-.16.09-.32.09-.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5zm0 4.5l-2.5 2.5h2v.5a.5.5 0 1 0 1 0v-.5h2l-2.5-2.5z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/cloud.svg b/assets/static/fonts/open-iconic/svg/cloud.svg
deleted file mode 100644
index 8c858ab..0000000
--- a/assets/static/fonts/open-iconic/svg/cloud.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2s.9 2 2 2h4.5c.83 0 1.5-.67 1.5-1.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/cloudy.svg b/assets/static/fonts/open-iconic/svg/cloudy.svg
deleted file mode 100644
index 0bd98c6..0000000
--- a/assets/static/fonts/open-iconic/svg/cloudy.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M2.5 0c-1.38 0-2.5 1.12-2.5 2.5 0 .39.09.74.25 1.06.3-.21.64-.37 1-.47.55-1.25 1.82-2.09 3.25-2.09-.46-.6-1.18-1-2-1zm2 2c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2s.9 2 2 2h4.5c.83 0 1.5-.67 1.5-1.5 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/code.svg b/assets/static/fonts/open-iconic/svg/code.svg
deleted file mode 100644
index 14e4937..0000000
--- a/assets/static/fonts/open-iconic/svg/code.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M5 0l-3 6h1l3-6h-1zm-4 1l-1 2 1 2h1l-1-2 1-2h-1zm5 0l1 2-1 2h1l1-2-1-2h-1z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/cog.svg b/assets/static/fonts/open-iconic/svg/cog.svg
deleted file mode 100644
index 7bbbce4..0000000
--- a/assets/static/fonts/open-iconic/svg/cog.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3.5 0l-.5 1.19c-.1.03-.19.08-.28.13l-1.19-.5-.72.72.5 1.19c-.05.1-.09.18-.13.28l-1.19.5v1l1.19.5c.04.1.08.18.13.28l-.5 1.19.72.72 1.19-.5c.09.04.18.09.28.13l.5 1.19h1l.5-1.19c.09-.04.19-.08.28-.13l1.19.5.72-.72-.5-1.19c.04-.09.09-.19.13-.28l1.19-.5v-1l-1.19-.5c-.03-.09-.08-.19-.13-.28l.5-1.19-.72-.72-1.19.5c-.09-.04-.19-.09-.28-.13l-.5-1.19h-1zm.5 2.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5-1.5-.67-1.5-1.5.67-1.5 1.5-1.5z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/collapse-down.svg b/assets/static/fonts/open-iconic/svg/collapse-down.svg
deleted file mode 100644
index 47a37c5..0000000
--- a/assets/static/fonts/open-iconic/svg/collapse-down.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v2h8v-2h-8zm2 3l2 2 2-2h-4zm-2 4v1h8v-1h-8z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/collapse-left.svg b/assets/static/fonts/open-iconic/svg/collapse-left.svg
deleted file mode 100644
index 31ef1d6..0000000
--- a/assets/static/fonts/open-iconic/svg/collapse-left.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v8h1v-8h-1zm6 0v8h2v-8h-2zm-1 2l-2 2 2 2v-4z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/collapse-right.svg b/assets/static/fonts/open-iconic/svg/collapse-right.svg
deleted file mode 100644
index 6f104f6..0000000
--- a/assets/static/fonts/open-iconic/svg/collapse-right.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v8h2v-8h-2zm7 0v8h1v-8h-1zm-4 2v4l2-2-2-2z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/collapse-up.svg b/assets/static/fonts/open-iconic/svg/collapse-up.svg
deleted file mode 100644
index 6693e1e..0000000
--- a/assets/static/fonts/open-iconic/svg/collapse-up.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v1h8v-1h-8zm4 3l-2 2h4l-2-2zm-4 3v2h8v-2h-8z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/command.svg b/assets/static/fonts/open-iconic/svg/command.svg
deleted file mode 100644
index ae05df6..0000000
--- a/assets/static/fonts/open-iconic/svg/command.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M1.5 0c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5h.5v1h-.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5v-.5h1v.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5-.67-1.5-1.5-1.5h-.5v-1h.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5v.5h-1v-.5c0-.83-.67-1.5-1.5-1.5zm0 1c.28 0 .5.22.5.5v.5h-.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5zm4 0c.28 0 .5.22.5.5s-.22.5-.5.5h-.5v-.5c0-.28.22-.5.5-.5zm-2.5 2h1v1h-1v-1zm-1.5 2h.5v.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5.22-.5.5-.5zm3.5 0h.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5v-.5z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/comment-square.svg b/assets/static/fonts/open-iconic/svg/comment-square.svg
deleted file mode 100644
index 591eb51..0000000
--- a/assets/static/fonts/open-iconic/svg/comment-square.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M.09 0c-.06 0-.09.04-.09.09v5.81c0 .05.04.09.09.09h5.91l2 2v-7.91c0-.06-.04-.09-.09-.09h-7.81z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/compass.svg b/assets/static/fonts/open-iconic/svg/compass.svg
deleted file mode 100644
index 7b923b7..0000000
--- a/assets/static/fonts/open-iconic/svg/compass.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm0 1c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm2 1l-3 1-1 3 3-1 1-3zm-2 1.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/contrast.svg b/assets/static/fonts/open-iconic/svg/contrast.svg
deleted file mode 100644
index a38a3a4..0000000
--- a/assets/static/fonts/open-iconic/svg/contrast.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm0 1c1.66 0 3 1.34 3 3s-1.34 3-3 3v-6z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/copywriting.svg b/assets/static/fonts/open-iconic/svg/copywriting.svg
deleted file mode 100644
index 910f8c0..0000000
--- a/assets/static/fonts/open-iconic/svg/copywriting.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v1h8v-1h-8zm0 2v1h5v-1h-5zm0 3v1h8v-1h-8zm0 2v1h6v-1h-6zm7.5 0c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/credit-card.svg b/assets/static/fonts/open-iconic/svg/credit-card.svg
deleted file mode 100644
index 58b508b..0000000
--- a/assets/static/fonts/open-iconic/svg/credit-card.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M.25 0c-.14 0-.25.11-.25.25v.75h8v-.75c0-.14-.11-.25-.25-.25h-7.5zm-.25 2v3.75c0 .14.11.25.25.25h7.5c.14 0 .25-.11.25-.25v-3.75h-8zm1 2h1v1h-1v-1zm2 0h1v1h-1v-1z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/crop.svg b/assets/static/fonts/open-iconic/svg/crop.svg
deleted file mode 100644
index 8a7f1eb..0000000
--- a/assets/static/fonts/open-iconic/svg/crop.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M1 0v1h-1v1h1v5h5v1h1v-1h1v-1h-1v-4.5l1-1-.5-.5-1 1h-4.5v-1h-1zm1 2h3.5l-3.5 3.5v-3.5zm4 .5v3.5h-3.5l3.5-3.5z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/dashboard.svg b/assets/static/fonts/open-iconic/svg/dashboard.svg
deleted file mode 100644
index 083918d..0000000
--- a/assets/static/fonts/open-iconic/svg/dashboard.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm0 1c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 1c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-1.66 1a.5.5 0 0 0-.19.84l.91.91c-.02.08-.06.16-.06.25 0 .55.45 1 1 1s1-.45 1-1-.45-1-1-1c-.09 0-.17.04-.25.06l-.91-.91a.5.5 0 0 0-.44-.16.5.5 0 0 0-.06 0zm3.16 0c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/data-transfer-download.svg b/assets/static/fonts/open-iconic/svg/data-transfer-download.svg
deleted file mode 100644
index 9f14f33..0000000
--- a/assets/static/fonts/open-iconic/svg/data-transfer-download.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3 0v3h-2l3 3 3-3h-2v-3h-2zm-3 7v1h8v-1h-8z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/data-transfer-upload.svg b/assets/static/fonts/open-iconic/svg/data-transfer-upload.svg
deleted file mode 100644
index 5fb17fa..0000000
--- a/assets/static/fonts/open-iconic/svg/data-transfer-upload.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v1h8v-1h-8zm4 2l-3 3h2v3h2v-3h2l-3-3z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/delete.svg b/assets/static/fonts/open-iconic/svg/delete.svg
deleted file mode 100644
index 2f7ca18..0000000
--- a/assets/static/fonts/open-iconic/svg/delete.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M2 0l-2 3 2 3h6v-6h-6zm1.5.78l1.5 1.5 1.5-1.5.72.72-1.5 1.5 1.5 1.5-.72.72-1.5-1.5-1.5 1.5-.72-.72 1.5-1.5-1.5-1.5.72-.72z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/dial.svg b/assets/static/fonts/open-iconic/svg/dial.svg
deleted file mode 100644
index 0371785..0000000
--- a/assets/static/fonts/open-iconic/svg/dial.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0c-2.2 0-4 1.8-4 4h1c0-1.66 1.34-3 3-3s3 1.34 3 3h1c0-2.2-1.8-4-4-4zm-.59 2.09c-.81.25-1.41 1.01-1.41 1.91 0 1.11.9 2 2 2 1.11 0 2-.89 2-2 0-.9-.59-1.65-1.41-1.91l-.59.88-.59-.88z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/document.svg b/assets/static/fonts/open-iconic/svg/document.svg
deleted file mode 100644
index 8e2ba05..0000000
--- a/assets/static/fonts/open-iconic/svg/document.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v8h7v-4h-4v-4h-3zm4 0v3h3l-3-3zm-3 2h1v1h-1v-1zm0 2h1v1h-1v-1zm0 2h4v1h-4v-1z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/dollar.svg b/assets/static/fonts/open-iconic/svg/dollar.svg
deleted file mode 100644
index f49a4ad..0000000
--- a/assets/static/fonts/open-iconic/svg/dollar.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M2 0v1h-.75c-.68 0-1.25.57-1.25 1.25v.5c0 .68.44 1.24 1.09 1.41l2.56.66c.14.04.34.29.34.44v.5c0 .14-.11.25-.25.25h-2.5c-.12 0-.21-.04-.25-.06v-.94h-1v1c0 .34.2.63.44.78.23.16.52.22.81.22h.75v1h1v-1h.75c.69 0 1.25-.56 1.25-1.25v-.5c0-.68-.44-1.24-1.09-1.41l-2.56-.66c-.14-.04-.34-.29-.34-.44v-.5c0-.14.11-.25.25-.25h2.5c.11 0 .21.04.25.06v.94h1v-1c0-.34-.2-.63-.44-.78-.23-.16-.52-.22-.81-.22h-.75v-1h-1z"
-  transform="translate(1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/double-quote-sans-left.svg b/assets/static/fonts/open-iconic/svg/double-quote-sans-left.svg
deleted file mode 100644
index 1ceb012..0000000
--- a/assets/static/fonts/open-iconic/svg/double-quote-sans-left.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v6l3-3v-3h-3zm5 0v6l3-3v-3h-3z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/double-quote-sans-right.svg b/assets/static/fonts/open-iconic/svg/double-quote-sans-right.svg
deleted file mode 100644
index 93705ae..0000000
--- a/assets/static/fonts/open-iconic/svg/double-quote-sans-right.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3 0l-3 3v3h3v-6zm5 0l-3 3v3h3v-6z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/double-quote-serif-left.svg b/assets/static/fonts/open-iconic/svg/double-quote-serif-left.svg
deleted file mode 100644
index 3e04ae6..0000000
--- a/assets/static/fonts/open-iconic/svg/double-quote-serif-left.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3 0c-1.65 0-3 1.35-3 3v3h3v-3h-2c0-1.11.89-2 2-2v-1zm5 0c-1.65 0-3 1.35-3 3v3h3v-3h-2c0-1.11.89-2 2-2v-1z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/double-quote-serif-right.svg b/assets/static/fonts/open-iconic/svg/double-quote-serif-right.svg
deleted file mode 100644
index 9d38e9e..0000000
--- a/assets/static/fonts/open-iconic/svg/double-quote-serif-right.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v3h2c0 1.11-.89 2-2 2v1c1.65 0 3-1.35 3-3v-3h-3zm5 0v3h2c0 1.11-.89 2-2 2v1c1.65 0 3-1.35 3-3v-3h-3z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/droplet.svg b/assets/static/fonts/open-iconic/svg/droplet.svg
deleted file mode 100644
index fc4a2d4..0000000
--- a/assets/static/fonts/open-iconic/svg/droplet.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3 0l-.34.34c-.11.11-2.66 2.69-2.66 4.88 0 1.65 1.35 3 3 3s3-1.35 3-3c0-2.18-2.55-4.77-2.66-4.88l-.34-.34zm-1.5 4.72c.28 0 .5.22.5.5 0 .55.45 1 1 1 .28 0 .5.22.5.5s-.22.5-.5.5c-1.1 0-2-.9-2-2 0-.28.22-.5.5-.5z" transform="translate(1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/eject.svg b/assets/static/fonts/open-iconic/svg/eject.svg
deleted file mode 100644
index f7ff102..0000000
--- a/assets/static/fonts/open-iconic/svg/eject.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0l-4 5h8l-4-5zm-4 6v2h8v-2h-8z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/elevator.svg b/assets/static/fonts/open-iconic/svg/elevator.svg
deleted file mode 100644
index 1e839cf..0000000
--- a/assets/static/fonts/open-iconic/svg/elevator.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3 0l-3 3h6l-3-3zm-3 5l3 3 3-3h-6z" transform="translate(1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/ellipses.svg b/assets/static/fonts/open-iconic/svg/ellipses.svg
deleted file mode 100644
index dd2a7ee..0000000
--- a/assets/static/fonts/open-iconic/svg/ellipses.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2z" transform="translate(0 3)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/envelope-closed.svg b/assets/static/fonts/open-iconic/svg/envelope-closed.svg
deleted file mode 100644
index 9fb9588..0000000
--- a/assets/static/fonts/open-iconic/svg/envelope-closed.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v1l4 2 4-2v-1h-8zm0 2v4h8v-4l-4 2-4-2z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/envelope-open.svg b/assets/static/fonts/open-iconic/svg/envelope-open.svg
deleted file mode 100644
index b67740f..0000000
--- a/assets/static/fonts/open-iconic/svg/envelope-open.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0l-4 2v6h8v-6l-4-2zm0 1.13l3 1.5v1.88l-3 1.5-3-1.5v-1.88l3-1.5zm-2 1.88v1l2 1 2-1v-1h-4z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/euro.svg b/assets/static/fonts/open-iconic/svg/euro.svg
deleted file mode 100644
index b109761..0000000
--- a/assets/static/fonts/open-iconic/svg/euro.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M6 0c-1.86 0-3.4 1.28-3.84 3h-1.91l-.25 1h2.01c0 .35.07.68.16 1h-1.97l-.19 1h2.56c.7 1.19 1.97 2 3.44 2 .73 0 1.41-.21 2-.56v-1.22c-.53.48-1.22.78-2 .78-.89 0-1.67-.39-2.22-1h2.22l.16-1h-2.97c-.11-.32-.19-.64-.19-1h3.34l.16-1h-3.31c.41-1.16 1.51-2 2.81-2 .66 0 1.26.21 1.75.56l.16-1.06c-.57-.31-1.21-.5-1.91-.5z"
-  transform="translate(-1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/excerpt.svg b/assets/static/fonts/open-iconic/svg/excerpt.svg
deleted file mode 100644
index e83a3ee..0000000
--- a/assets/static/fonts/open-iconic/svg/excerpt.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v1h7v-1h-7zm0 2v1h5v-1h-5zm0 2v1h8v-1h-8zm0 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/expand-down.svg b/assets/static/fonts/open-iconic/svg/expand-down.svg
deleted file mode 100644
index b1d8ed0..0000000
--- a/assets/static/fonts/open-iconic/svg/expand-down.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v1h8v-1h-8zm2 2l2 2 2-2h-4zm-2 4v2h8v-2h-8z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/expand-left.svg b/assets/static/fonts/open-iconic/svg/expand-left.svg
deleted file mode 100644
index 380eae2..0000000
--- a/assets/static/fonts/open-iconic/svg/expand-left.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v8h1v-8h-1zm6 0v8h2v-8h-2zm-4 2v4l2-2-2-2z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/expand-right.svg b/assets/static/fonts/open-iconic/svg/expand-right.svg
deleted file mode 100644
index a75dadb..0000000
--- a/assets/static/fonts/open-iconic/svg/expand-right.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v8h2v-8h-2zm7 0v8h1v-8h-1zm-1 2l-2 2 2 2v-4z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/expand-up.svg b/assets/static/fonts/open-iconic/svg/expand-up.svg
deleted file mode 100644
index 36c3973..0000000
--- a/assets/static/fonts/open-iconic/svg/expand-up.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v2h8v-2h-8zm4 4l-2 2h4l-2-2zm-4 3v1h8v-1h-8z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/external-link.svg b/assets/static/fonts/open-iconic/svg/external-link.svg
deleted file mode 100644
index 6fdc00c..0000000
--- a/assets/static/fonts/open-iconic/svg/external-link.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v8h8v-2h-1v1h-6v-6h1v-1h-2zm4 0l1.5 1.5-2.5 2.5 1 1 2.5-2.5 1.5 1.5v-4h-4z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/eye.svg b/assets/static/fonts/open-iconic/svg/eye.svg
deleted file mode 100644
index 9f6f158..0000000
--- a/assets/static/fonts/open-iconic/svg/eye.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4.03 0c-2.53 0-4.03 3-4.03 3s1.5 3 4.03 3c2.47 0 3.97-3 3.97-3s-1.5-3-3.97-3zm-.03 1c1.11 0 2 .9 2 2 0 1.11-.89 2-2 2-1.1 0-2-.89-2-2 0-1.1.9-2 2-2zm0 1c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1c0-.1-.04-.19-.06-.28-.08.16-.24.28-.44.28-.28 0-.5-.22-.5-.5 0-.2.12-.36.28-.44-.09-.03-.18-.06-.28-.06z"
-  transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/eyedropper.svg b/assets/static/fonts/open-iconic/svg/eyedropper.svg
deleted file mode 100644
index 97b8e13..0000000
--- a/assets/static/fonts/open-iconic/svg/eyedropper.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3.31 0a.5.5 0 0 0-.19.84l.63.63-3.59 3.66-.16.16v2.7199999999999998h2.69l.16-.16 3.66-3.66.63.66a.5.5 0 1 0 .72-.69l-.94-.94.66-.66c.59-.58.59-1.54 0-2.13-.57-.57-1.56-.57-2.13 0l-.66.66-.94-.94a.5.5 0 0 0-.47-.16.5.5 0 0 0-.06 0zm1.16 2.19l1.31 1.31-3.16 3.16-1.28-1.31 3.13-3.16z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/file.svg b/assets/static/fonts/open-iconic/svg/file.svg
deleted file mode 100644
index 145853d..0000000
--- a/assets/static/fonts/open-iconic/svg/file.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v8h7v-4h-4v-4h-3zm4 0v3h3l-3-3z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/fire.svg b/assets/static/fonts/open-iconic/svg/fire.svg
deleted file mode 100644
index aeb99e7..0000000
--- a/assets/static/fonts/open-iconic/svg/fire.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M2 0c1 2-2 3-2 5s2 3 2 3c-.98-1.98 2-3 2-5s-2-3-2-3zm3 3c1 2-2 3-2 5h3c.4 0 1-.5 1-2 0-2-2-3-2-3z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/flag.svg b/assets/static/fonts/open-iconic/svg/flag.svg
deleted file mode 100644
index da93787..0000000
--- a/assets/static/fonts/open-iconic/svg/flag.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v8h1v-8h-1zm2 0v4h2v1h4l-2-1.97 2-2.03h-3v-1h-3z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/flash.svg b/assets/static/fonts/open-iconic/svg/flash.svg
deleted file mode 100644
index 20a8a37..0000000
--- a/assets/static/fonts/open-iconic/svg/flash.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M1.5 0l-1.5 3h2l-.66 2h-1.34l1 3 3-3h-1.5l1.5-3h-2l1-2h-1.5z" transform="translate(2)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/folder.svg b/assets/static/fonts/open-iconic/svg/folder.svg
deleted file mode 100644
index ef47dd6..0000000
--- a/assets/static/fonts/open-iconic/svg/folder.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v2h8v-1h-5v-1h-3zm0 3v4.5c0 .28.22.5.5.5h7c.28 0 .5-.22.5-.5v-4.5h-8z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/fork.svg b/assets/static/fonts/open-iconic/svg/fork.svg
deleted file mode 100644
index 12e41f5..0000000
--- a/assets/static/fonts/open-iconic/svg/fork.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M1.5 0c-.83 0-1.5.67-1.5 1.5 0 .66.41 1.2 1 1.41v2.19c-.59.2-1 .75-1 1.41 0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5c0-.6-.34-1.1-.84-1.34.09-.09.21-.16.34-.16h2c.82 0 1.5-.68 1.5-1.5v-.59c.59-.2 1-.75 1-1.41 0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5c0 .66.41 1.2 1 1.41v.59c0 .28-.22.5-.5.5h-2c-.17 0-.35.04-.5.09v-1.19c.59-.2 1-.75 1-1.41 0-.83-.67-1.5-1.5-1.5z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/fullscreen-enter.svg b/assets/static/fonts/open-iconic/svg/fullscreen-enter.svg
deleted file mode 100644
index 4efb890..0000000
--- a/assets/static/fonts/open-iconic/svg/fullscreen-enter.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v4l1.5-1.5 1.5 1.5 1-1-1.5-1.5 1.5-1.5h-4zm5 4l-1 1 1.5 1.5-1.5 1.5h4v-4l-1.5 1.5-1.5-1.5z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/fullscreen-exit.svg b/assets/static/fonts/open-iconic/svg/fullscreen-exit.svg
deleted file mode 100644
index c57d8ad..0000000
--- a/assets/static/fonts/open-iconic/svg/fullscreen-exit.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M1 0l-1 1 1.5 1.5-1.5 1.5h4v-4l-1.5 1.5-1.5-1.5zm3 4v4l1.5-1.5 1.5 1.5 1-1-1.5-1.5 1.5-1.5h-4z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/globe.svg b/assets/static/fonts/open-iconic/svg/globe.svg
deleted file mode 100644
index 42a6dfe..0000000
--- a/assets/static/fonts/open-iconic/svg/globe.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 1c.33 0 .64.09.94.19-.21.2-.45.38-.41.56.04.18.69.13.69.5 0 .27-.42.35-.13.66.35.35-.64.98-.66 1.44-.03.83.84.97 1.53.97.42 0 .53.2.5.44-.54.77-1.46 1.25-2.47 1.25-.38 0-.73-.09-1.06-.22.22-.44-.28-1.31-.75-1.59-.23-.23-.72-.14-1-.25-.09-.27-.18-.54-.19-.84.03-.05.08-.09.16-.09.19 0 .45.38.59.34.18-.04-.74-1.31-.31-1.56.2-.12.6.39.47-.16-.12-.51.36-.28.66-.41.26-.11.45-.41.13-.59-.06-.03-.13-.1-.22-.19.45-.27.97-.44 1.53-.44zm2.31 1.09c.18.22.32.46.44.72 0 .01 0 .02 0 .03-.04.07-.11.11-.22.22-.28.28-.32-.21-.44-.31-.13-.12-.6.02-.66-.13-.07-.18.5-.42.88-.53z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/graph.svg b/assets/static/fonts/open-iconic/svg/graph.svg
deleted file mode 100644
index 4727dd8..0000000
--- a/assets/static/fonts/open-iconic/svg/graph.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M7.03 0l-3.03 3-1-1-3 3.03 1 1 2-2.03 1 1 4-4-.97-1zm-7.03 7v1h8v-1h-8z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/grid-four-up.svg b/assets/static/fonts/open-iconic/svg/grid-four-up.svg
deleted file mode 100644
index bdcc178..0000000
--- a/assets/static/fonts/open-iconic/svg/grid-four-up.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm-6 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm-6 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm-6 2v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1zm2 0v1h1v-1h-1z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/grid-three-up.svg b/assets/static/fonts/open-iconic/svg/grid-three-up.svg
deleted file mode 100644
index 2a929a0..0000000
--- a/assets/static/fonts/open-iconic/svg/grid-three-up.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2zm-6 3v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2zm-6 3v2h2v-2h-2zm3 0v2h2v-2h-2zm3 0v2h2v-2h-2z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/grid-two-up.svg b/assets/static/fonts/open-iconic/svg/grid-two-up.svg
deleted file mode 100644
index 71503ba..0000000
--- a/assets/static/fonts/open-iconic/svg/grid-two-up.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v3h3v-3h-3zm5 0v3h3v-3h-3zm-5 5v3h3v-3h-3zm5 0v3h3v-3h-3z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/hard-drive.svg b/assets/static/fonts/open-iconic/svg/hard-drive.svg
deleted file mode 100644
index 8fcd853..0000000
--- a/assets/static/fonts/open-iconic/svg/hard-drive.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M.19 0c-.11 0-.19.08-.19.19v3.31c0 .28.22.5.5.5h6c.28 0 .5-.22.5-.5v-3.31c0-.11-.08-.19-.19-.19h-6.63zm-.19 4.91v2.91c0 .11.08.19.19.19h6.63c.11 0 .19-.08.19-.19v-2.91c-.16.06-.32.09-.5.09h-6c-.18 0-.34-.04-.5-.09zm5.5 1.09c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/header.svg b/assets/static/fonts/open-iconic/svg/header.svg
deleted file mode 100644
index e794cc4..0000000
--- a/assets/static/fonts/open-iconic/svg/header.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v1h.5c.28 0 .5.22.5.5v4c0 .28-.22.5-.5.5h-.5v1h3v-1h-.5c-.28 0-.5-.22-.5-.5v-1.5h3v1.5c0 .28-.22.5-.5.5h-.5v1h3v-1h-.5c-.28 0-.5-.22-.5-.5v-4c0-.28.22-.5.5-.5h.5v-1h-3v1h.5c.28 0 .5.22.5.5v1.5h-3v-1.5c0-.28.22-.5.5-.5h.5v-1h-3z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/headphones.svg b/assets/static/fonts/open-iconic/svg/headphones.svg
deleted file mode 100644
index 63e4559..0000000
--- a/assets/static/fonts/open-iconic/svg/headphones.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0c-1.65 0-3 1.35-3 3v1h-.5a.5.5 0 0 0-.5.5v2a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-3.5c0-1.11.89-2 2-2 1.11 0 2 .89 2 2v3.5a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-2a.5.5 0 0 0-.5-.5h-.5v-1c0-1.65-1.35-3-3-3z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/heart.svg b/assets/static/fonts/open-iconic/svg/heart.svg
deleted file mode 100644
index cc5f71e..0000000
--- a/assets/static/fonts/open-iconic/svg/heart.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M2 0c-.55 0-1.04.23-1.41.59-.36.36-.59.85-.59 1.41 0 .55.23 1.04.59 1.41l3.41 3.41 3.41-3.41c.36-.36.59-.85.59-1.41 0-.55-.23-1.04-.59-1.41-.36-.36-.85-.59-1.41-.59-.55 0-1.04.23-1.41.59-.36.36-.59.85-.59 1.41 0-.55-.23-1.04-.59-1.41-.36-.36-.85-.59-1.41-.59z"
-  transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/home.svg b/assets/static/fonts/open-iconic/svg/home.svg
deleted file mode 100644
index 8057619..0000000
--- a/assets/static/fonts/open-iconic/svg/home.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0l-4 3h1v4h2v-2h2v2h2v-4.03l1 .03-4-3z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/image.svg b/assets/static/fonts/open-iconic/svg/image.svg
deleted file mode 100644
index fa9a105..0000000
--- a/assets/static/fonts/open-iconic/svg/image.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v8h8v-8h-8zm1 1h6v3l-1-1-1 1 2 2v1h-1l-4-4-1 1v-3z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/inbox.svg b/assets/static/fonts/open-iconic/svg/inbox.svg
deleted file mode 100644
index 4c8fbd0..0000000
--- a/assets/static/fonts/open-iconic/svg/inbox.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M.19 0c-.11 0-.19.08-.19.19v7.63c0 .11.08.19.19.19h7.63c.11 0 .19-.08.19-.19v-7.63c0-.11-.08-.19-.19-.19h-7.63zm.81 2h6v3h-1l-1 1h-2l-1-1h-1v-3z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/infinity.svg b/assets/static/fonts/open-iconic/svg/infinity.svg
deleted file mode 100644
index bdc5569..0000000
--- a/assets/static/fonts/open-iconic/svg/infinity.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M2 0c-1.31 0-2 1.01-2 2s.69 2 2 2c.79 0 1.42-.56 2-1.22.58.66 1.19 1.22 2 1.22 1.31 0 2-1.01 2-2s-.69-2-2-2c-.81 0-1.42.56-2 1.22-.58-.66-1.21-1.22-2-1.22zm0 1c.42 0 .88.47 1.34 1-.46.53-.92 1-1.34 1-.74 0-1-.54-1-1 0-.46.26-1 1-1zm4 0c.74 0 1 .54 1 1 0 .46-.26 1-1 1-.43 0-.89-.47-1.34-1 .46-.53.91-1 1.34-1z"
-  transform="translate(0 2)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/info.svg b/assets/static/fonts/open-iconic/svg/info.svg
deleted file mode 100644
index a61e598..0000000
--- a/assets/static/fonts/open-iconic/svg/info.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3 0c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-1.5 2.5c-.83 0-1.5.67-1.5 1.5h1c0-.28.22-.5.5-.5s.5.22.5.5-1 1.64-1 2.5c0 .86.67 1.5 1.5 1.5s1.5-.67 1.5-1.5h-1c0 .28-.22.5-.5.5s-.5-.22-.5-.5c0-.36 1-1.84 1-2.5 0-.81-.67-1.5-1.5-1.5z" transform="translate(2)"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/italic.svg b/assets/static/fonts/open-iconic/svg/italic.svg
deleted file mode 100644
index facb403..0000000
--- a/assets/static/fonts/open-iconic/svg/italic.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M2 0v1h1.63l-.06.13-2 5-.34.88h-1.22v1h5v-1h-1.63l.06-.13 2-5 .34-.88h1.22v-1h-5z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/justify-center.svg b/assets/static/fonts/open-iconic/svg/justify-center.svg
deleted file mode 100644
index 544162c..0000000
--- a/assets/static/fonts/open-iconic/svg/justify-center.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h8v-1h-8zm1 2v1h6v-1h-6z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/justify-left.svg b/assets/static/fonts/open-iconic/svg/justify-left.svg
deleted file mode 100644
index e5787c3..0000000
--- a/assets/static/fonts/open-iconic/svg/justify-left.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h6v-1h-6z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/justify-right.svg b/assets/static/fonts/open-iconic/svg/justify-right.svg
deleted file mode 100644
index 2e8c6fd..0000000
--- a/assets/static/fonts/open-iconic/svg/justify-right.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v1h8v-1h-8zm0 2v1h8v-1h-8zm0 2v1h8v-1h-8zm2 2v1h6v-1h-6z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/key.svg b/assets/static/fonts/open-iconic/svg/key.svg
deleted file mode 100644
index 9517346..0000000
--- a/assets/static/fonts/open-iconic/svg/key.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M5.5 0c-1.38 0-2.5 1.12-2.5 2.5 0 .16 0 .32.03.47l-3.03 3.03v2h3v-2h2v-1l.03-.03c.15.03.31.03.47.03 1.38 0 2.5-1.12 2.5-2.5s-1.12-2.5-2.5-2.5zm.5 1c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/laptop.svg b/assets/static/fonts/open-iconic/svg/laptop.svg
deleted file mode 100644
index b8e7e56..0000000
--- a/assets/static/fonts/open-iconic/svg/laptop.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M1.34 0a.5.5 0 0 0-.34.5v3.5h-1v1.5c0 .28.22.5.5.5h7.010000000000001c.28 0 .5-.22.5-.5v-1.5h-1v-3.5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0-.09 0 .5.5 0 0 0-.06 0zm.66 1h4v3h-1v1h-2v-1h-1v-3z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/layers.svg b/assets/static/fonts/open-iconic/svg/layers.svg
deleted file mode 100644
index 564c4ae..0000000
--- a/assets/static/fonts/open-iconic/svg/layers.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v4h4v-4h-4zm5 2v3h-3v1h4v-4h-1zm2 2v3h-3v1h4v-4h-1z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/lightbulb.svg b/assets/static/fonts/open-iconic/svg/lightbulb.svg
deleted file mode 100644
index 8c0d98a..0000000
--- a/assets/static/fonts/open-iconic/svg/lightbulb.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3.41 0a.5.5 0 0 0-.13.06l-3 1.5a.5.5 0 1 0 .44.88l3-1.5a.5.5 0 0 0-.31-.94zm1 1.5a.5.5 0 0 0-.13.06l-4 2a.5.5 0 1 0 .44.88l4-2a.5.5 0 0 0-.31-.94zm0 2a.5.5 0 0 0-.13.06l-3 1.5a.5.5 0 0 0 .22.94h2a.5.5 0 0 0 .16-1l1.06-.56a.5.5 0 0 0-.31-.94zm-2.56 3.5a.5.5 0 0 0 .16 1h1a.5.5 0 1 0 0-1h-1a.5.5 0 0 0-.09 0 .5.5 0 0 0-.06 0z"
-  transform="translate(1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/link-broken.svg b/assets/static/fonts/open-iconic/svg/link-broken.svg
deleted file mode 100644
index 7bd085e..0000000
--- a/assets/static/fonts/open-iconic/svg/link-broken.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M2 0v1h-1v1h2v-2h-1zm3.88.03c-.18.01-.36.03-.53.09-.27.1-.53.25-.75.47l-.44.44a.5.5 0 1 0 .69.69l.44-.44c.11-.11.24-.17.38-.22.35-.12.78-.07 1.06.22.39.39.39 1.04 0 1.44l-1.5 1.5a.5.5 0 1 0 .69.69l1.5-1.5c.78-.78.78-2.04 0-2.81-.28-.28-.61-.45-.97-.53-.18-.04-.38-.04-.56-.03zm-3.59 2.91a.5.5 0 0 0-.19.16l-1.5 1.5c-.78.78-.78 2.04 0 2.81.56.56 1.36.72 2.06.47.27-.1.53-.25.75-.47l.44-.44a.5.5 0 1 0-.69-.69l-.44.44c-.11.11-.24.17-.38.22-.35.12-.78.07-1.06-.22-.39-.39-.39-1.04 0-1.44l1.5-1.5a.5.5 0 0 0-.44-.84.5.5 0 0 0-.06 0zm2.72 3.06v2h1v-1h1v-1h-2z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/link-intact.svg b/assets/static/fonts/open-iconic/svg/link-intact.svg
deleted file mode 100644
index cdfbabd..0000000
--- a/assets/static/fonts/open-iconic/svg/link-intact.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M5.88.03c-.18.01-.36.03-.53.09-.27.1-.53.25-.75.47a.5.5 0 1 0 .69.69c.11-.11.24-.17.38-.22.35-.12.78-.07 1.06.22.39.39.39 1.04 0 1.44l-1.5 1.5c-.44.44-.8.48-1.06.47-.26-.01-.41-.13-.41-.13a.5.5 0 1 0-.5.88s.34.22.84.25c.5.03 1.2-.16 1.81-.78l1.5-1.5c.78-.78.78-2.04 0-2.81-.28-.28-.61-.45-.97-.53-.18-.04-.38-.04-.56-.03zm-2 2.31c-.5-.02-1.19.15-1.78.75l-1.5 1.5c-.78.78-.78 2.04 0 2.81.56.56 1.36.72 2.06.47.27-.1.53-.25.75-.47a.5.5 0 1 0-.69-.69c-.11.11-.24.17-.38.22-.35.12-.78.07-1.06-.22-.39-.39-.39-1.04 0-1.44l1.5-1.5c.4-.4.75-.45 1.03-.44.28.01.47.09.47.09a.5.5 0 1 0 .44-.88s-.34-.2-.84-.22z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/list-rich.svg b/assets/static/fonts/open-iconic/svg/list-rich.svg
deleted file mode 100644
index cf816d1..0000000
--- a/assets/static/fonts/open-iconic/svg/list-rich.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v3h3v-3h-3zm4 0v1h4v-1h-4zm0 2v1h3v-1h-3zm-4 2v3h3v-3h-3zm4 0v1h4v-1h-4zm0 2v1h3v-1h-3z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/list.svg b/assets/static/fonts/open-iconic/svg/list.svg
deleted file mode 100644
index 83ada76..0000000
--- a/assets/static/fonts/open-iconic/svg/list.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M.5 0c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm1.5 0v1h6v-1h-6zm-1.5 2c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm1.5 0v1h6v-1h-6zm-1.5 2c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm1.5 0v1h6v-1h-6zm-1.5 2c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm1.5 0v1h6v-1h-6z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/location.svg b/assets/static/fonts/open-iconic/svg/location.svg
deleted file mode 100644
index 9fa01f2..0000000
--- a/assets/static/fonts/open-iconic/svg/location.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M8 0l-8 4 3 1 1 3 4-8z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/lock-locked.svg b/assets/static/fonts/open-iconic/svg/lock-locked.svg
deleted file mode 100644
index ef54f3a..0000000
--- a/assets/static/fonts/open-iconic/svg/lock-locked.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3 0c-1.1 0-2 .9-2 2v1h-1v4h6v-4h-1v-1c0-1.1-.9-2-2-2zm0 1c.56 0 1 .44 1 1v1h-2v-1c0-.56.44-1 1-1z" transform="translate(1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/lock-unlocked.svg b/assets/static/fonts/open-iconic/svg/lock-unlocked.svg
deleted file mode 100644
index 7f78a6f..0000000
--- a/assets/static/fonts/open-iconic/svg/lock-unlocked.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3 0c-1.1 0-2 .9-2 2h1c0-.56.44-1 1-1s1 .44 1 1v2h-4v4h6v-4h-1v-2c0-1.1-.9-2-2-2z" transform="translate(1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/loop-circular.svg b/assets/static/fonts/open-iconic/svg/loop-circular.svg
deleted file mode 100644
index fe5853a..0000000
--- a/assets/static/fonts/open-iconic/svg/loop-circular.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0c-1.65 0-3 1.35-3 3h-1l1.5 2 1.5-2h-1c0-1.11.89-2 2-2v-1zm2.5 1l-1.5 2h1c0 1.11-.89 2-2 2v1c1.65 0 3-1.35 3-3h1l-1.5-2z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/loop-square.svg b/assets/static/fonts/open-iconic/svg/loop-square.svg
deleted file mode 100644
index e052f40..0000000
--- a/assets/static/fonts/open-iconic/svg/loop-square.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M1 0v2h1v-1h4v2h-1l1.5 2.5 1.5-2.5h-1v-3h-6zm.5 2.5l-1.5 2.5h1v3h6v-2h-1v1h-4v-2h1l-1.5-2.5z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/loop.svg b/assets/static/fonts/open-iconic/svg/loop.svg
deleted file mode 100644
index 4b524c3..0000000
--- a/assets/static/fonts/open-iconic/svg/loop.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M6 0v1h-5c-.55 0-1 .45-1 1v1h1v-1h5v1l2-1.5-2-1.5zm-4 4l-2 1.5 2 1.5v-1h5c.55 0 1-.45 1-1v-1h-1v1h-5v-1z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/magnifying-glass.svg b/assets/static/fonts/open-iconic/svg/magnifying-glass.svg
deleted file mode 100644
index 1e4ffb6..0000000
--- a/assets/static/fonts/open-iconic/svg/magnifying-glass.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3.5 0c-1.93 0-3.5 1.57-3.5 3.5s1.57 3.5 3.5 3.5c.59 0 1.17-.14 1.66-.41a1 1 0 0 0 .13.13l1 1a1.02 1.02 0 1 0 1.44-1.44l-1-1a1 1 0 0 0-.16-.13c.27-.49.44-1.06.44-1.66 0-1.93-1.57-3.5-3.5-3.5zm0 1c1.39 0 2.5 1.11 2.5 2.5 0 .66-.24 1.27-.66 1.72-.01.01-.02.02-.03.03a1 1 0 0 0-.13.13c-.44.4-1.04.63-1.69.63-1.39 0-2.5-1.11-2.5-2.5s1.11-2.5 2.5-2.5z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/map-marker.svg b/assets/static/fonts/open-iconic/svg/map-marker.svg
deleted file mode 100644
index e1f5b99..0000000
--- a/assets/static/fonts/open-iconic/svg/map-marker.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3 0c-1.66 0-3 1.34-3 3 0 2 3 5 3 5s3-3 3-5c0-1.66-1.34-3-3-3zm0 1c1.11 0 2 .9 2 2 0 1.11-.89 2-2 2-1.1 0-2-.89-2-2 0-1.1.9-2 2-2z" transform="translate(1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/map.svg b/assets/static/fonts/open-iconic/svg/map.svg
deleted file mode 100644
index 28f377c..0000000
--- a/assets/static/fonts/open-iconic/svg/map.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v8h8v-2.38a.5.5 0 0 0 0-.22v-5.41h-8zm1 1h6v4h-1.5a.5.5 0 0 0-.09 0 .5.5 0 1 0 .09 1h1.5v1h-6v-6zm2.5 1c-.83 0-1.5.67-1.5 1.5 0 1 1.5 2.5 1.5 2.5s1.5-1.5 1.5-2.5c0-.83-.67-1.5-1.5-1.5zm0 1c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/media-pause.svg b/assets/static/fonts/open-iconic/svg/media-pause.svg
deleted file mode 100644
index a74159e..0000000
--- a/assets/static/fonts/open-iconic/svg/media-pause.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v6h2v-6h-2zm4 0v6h2v-6h-2z" transform="translate(1 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/media-play.svg b/assets/static/fonts/open-iconic/svg/media-play.svg
deleted file mode 100644
index 54cebff..0000000
--- a/assets/static/fonts/open-iconic/svg/media-play.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v6l6-3-6-3z" transform="translate(1 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/media-record.svg b/assets/static/fonts/open-iconic/svg/media-record.svg
deleted file mode 100644
index 6bbe079..0000000
--- a/assets/static/fonts/open-iconic/svg/media-record.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3 0c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z" transform="translate(1 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/media-skip-backward.svg b/assets/static/fonts/open-iconic/svg/media-skip-backward.svg
deleted file mode 100644
index c60167b..0000000
--- a/assets/static/fonts/open-iconic/svg/media-skip-backward.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0l-4 3 4 3v-6zm0 3l4 3v-6l-4 3z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/media-skip-forward.svg b/assets/static/fonts/open-iconic/svg/media-skip-forward.svg
deleted file mode 100644
index 13b8a52..0000000
--- a/assets/static/fonts/open-iconic/svg/media-skip-forward.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v6l4-3-4-3zm4 3v3l4-3-4-3v3z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/media-step-backward.svg b/assets/static/fonts/open-iconic/svg/media-step-backward.svg
deleted file mode 100644
index 78ac714..0000000
--- a/assets/static/fonts/open-iconic/svg/media-step-backward.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v6h2v-6h-2zm2 3l5 3v-6l-5 3z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/media-step-forward.svg b/assets/static/fonts/open-iconic/svg/media-step-forward.svg
deleted file mode 100644
index df21299..0000000
--- a/assets/static/fonts/open-iconic/svg/media-step-forward.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v6l5-3-5-3zm5 3v3h2v-6h-2v3z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/media-stop.svg b/assets/static/fonts/open-iconic/svg/media-stop.svg
deleted file mode 100644
index af6f4f4..0000000
--- a/assets/static/fonts/open-iconic/svg/media-stop.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v6h6v-6h-6z" transform="translate(1 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/medical-cross.svg b/assets/static/fonts/open-iconic/svg/medical-cross.svg
deleted file mode 100644
index 71028f9..0000000
--- a/assets/static/fonts/open-iconic/svg/medical-cross.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M2 0v2h-2v4h2v2h4v-2h2v-4h-2v-2h-4z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/menu.svg b/assets/static/fonts/open-iconic/svg/menu.svg
deleted file mode 100644
index 79a4d8c..0000000
--- a/assets/static/fonts/open-iconic/svg/menu.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v1h8v-1h-8zm0 2.97v1h8v-1h-8zm0 3v1h8v-1h-8z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/microphone.svg b/assets/static/fonts/open-iconic/svg/microphone.svg
deleted file mode 100644
index 088bc44..0000000
--- a/assets/static/fonts/open-iconic/svg/microphone.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M2.91-.03a1 1 0 0 0-.13.03 1 1 0 0 0-.78 1v2a1 1 0 1 0 2 0v-2a1 1 0 0 0-1.09-1.03zm-2.56 2.03a.5.5 0 0 0-.34.5v.5c0 1.48 1.09 2.69 2.5 2.94v1.06h-.5c-.55 0-1 .45-1 1h4.01c0-.55-.45-1-1-1h-.5v-1.06c1.41-.24 2.5-1.46 2.5-2.94v-.5a.5.5 0 1 0-1 0v.5c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2v-.5a.5.5 0 0 0-.59-.5.5.5 0 0 0-.06 0z"
-  transform="translate(1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/minus.svg b/assets/static/fonts/open-iconic/svg/minus.svg
deleted file mode 100644
index 82f4163..0000000
--- a/assets/static/fonts/open-iconic/svg/minus.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v2h8v-2h-8z" transform="translate(0 3)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/monitor.svg b/assets/static/fonts/open-iconic/svg/monitor.svg
deleted file mode 100644
index a7c4667..0000000
--- a/assets/static/fonts/open-iconic/svg/monitor.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M.34 0a.5.5 0 0 0-.34.5v5a.5.5 0 0 0 .5.5h2.5v1h-1c-.55 0-1 .45-1 1h6c0-.55-.45-1-1-1h-1v-1h2.5a.5.5 0 0 0 .5-.5v-5a.5.5 0 0 0-.5-.5h-7a.5.5 0 0 0-.09 0 .5.5 0 0 0-.06 0zm.66 1h6v4h-6v-4z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/moon.svg b/assets/static/fonts/open-iconic/svg/moon.svg
deleted file mode 100644
index b5520af..0000000
--- a/assets/static/fonts/open-iconic/svg/moon.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M2.72 0c-1.58.53-2.72 2.02-2.72 3.78 0 2.21 1.79 4 4 4 1.76 0 3.25-1.14 3.78-2.72-.4.13-.83.22-1.28.22-2.21 0-4-1.79-4-4 0-.45.08-.88.22-1.28z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/move.svg b/assets/static/fonts/open-iconic/svg/move.svg
deleted file mode 100644
index 4674db8..0000000
--- a/assets/static/fonts/open-iconic/svg/move.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3.5 0l-1.5 1.5h1v1.5h-1.5v-1l-1.5 1.5 1.5 1.5v-1h1.5v1.5h-1l1.5 1.5 1.5-1.5h-1v-1.5h1.5v1l1.5-1.5-1.5-1.5v1h-1.5v-1.5h1l-1.5-1.5z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/musical-note.svg b/assets/static/fonts/open-iconic/svg/musical-note.svg
deleted file mode 100644
index 644ca61..0000000
--- a/assets/static/fonts/open-iconic/svg/musical-note.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M8 0c-5 0-6 1-6 1v4.09c-.15-.05-.33-.09-.5-.09-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5v-3.97c.73-.23 1.99-.44 4-.5v2.06c-.15-.05-.33-.09-.5-.09-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5v-5.5z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/paperclip.svg b/assets/static/fonts/open-iconic/svg/paperclip.svg
deleted file mode 100644
index 380fe55..0000000
--- a/assets/static/fonts/open-iconic/svg/paperclip.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M5 0c-.51 0-1.02.21-1.41.59l-2.78 2.72c-1.07 1.07-1.07 2.8 0 3.88 1.07 1.07 2.8 1.07 3.88 0l1.25-1.25-.69-.69-1.16 1.13-.09.13c-.69.69-1.81.69-2.5 0-.68-.68-.66-1.78 0-2.47l2.78-2.75c.39-.39 1.04-.39 1.44 0 .39.39.37 1.01 0 1.41l-2.5 2.47c-.1.1-.27.1-.38 0-.1-.1-.1-.27 0-.38l.06-.03.91-.94-.69-.69-.97.97c-.48.48-.48 1.27 0 1.75s1.27.49 1.75 0l2.5-2.44c.78-.78.78-2.04 0-2.81-.39-.39-.89-.59-1.41-.59z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/pencil.svg b/assets/static/fonts/open-iconic/svg/pencil.svg
deleted file mode 100644
index 8109530..0000000
--- a/assets/static/fonts/open-iconic/svg/pencil.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M6 0l-1 1 2 2 1-1-2-2zm-2 2l-4 4v2h2l4-4-2-2z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/people.svg b/assets/static/fonts/open-iconic/svg/people.svg
deleted file mode 100644
index 7d909ca..0000000
--- a/assets/static/fonts/open-iconic/svg/people.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M5.5 0c-.51 0-.95.35-1.22.88.45.54.72 1.28.72 2.13 0 .29-.03.55-.09.81.19.11.38.19.59.19.83 0 1.5-.9 1.5-2s-.67-2-1.5-2zm-3 1c-.83 0-1.5.9-1.5 2s.67 2 1.5 2 1.5-.9 1.5-2-.67-2-1.5-2zm4.75 3.16c-.43.51-1.02.82-1.69.84.27.38.44.84.44 1.34v.66h2v-1.66c0-.52-.31-.97-.75-1.19zm-6.5 1c-.44.22-.75.67-.75 1.19v1.66h5v-1.66c0-.52-.31-.97-.75-1.19-.45.53-1.06.84-1.75.84s-1.3-.32-1.75-.84z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/person.svg b/assets/static/fonts/open-iconic/svg/person.svg
deleted file mode 100644
index a9396b2..0000000
--- a/assets/static/fonts/open-iconic/svg/person.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0c-1.1 0-2 1.12-2 2.5s.9 2.5 2 2.5 2-1.12 2-2.5-.9-2.5-2-2.5zm-2.09 5c-1.06.05-1.91.92-1.91 2v1h8v-1c0-1.08-.84-1.95-1.91-2-.54.61-1.28 1-2.09 1-.81 0-1.55-.39-2.09-1z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/phone.svg b/assets/static/fonts/open-iconic/svg/phone.svg
deleted file mode 100644
index 883f3ba..0000000
--- a/assets/static/fonts/open-iconic/svg/phone.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M.19 0c-.11 0-.19.08-.19.19v7.63c0 .11.08.19.19.19h4.63c.11 0 .19-.08.19-.19v-7.63c0-.11-.08-.19-.19-.19h-4.63zm.81 1h3v5h-3v-5zm1.5 5.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" transform="translate(1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/pie-chart.svg b/assets/static/fonts/open-iconic/svg/pie-chart.svg
deleted file mode 100644
index 8d04463..0000000
--- a/assets/static/fonts/open-iconic/svg/pie-chart.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3.5 0c-.97 0-1.84.4-2.47 1.03l2.97 2.97v-3.97c-.16-.02-.33-.03-.5-.03zm1.5 1.06v3.41l-2.72 2.72c.61.5 1.37.81 2.22.81 1.93 0 3.5-1.57 3.5-3.5 0-1.76-1.31-3.19-3-3.44zm-4.09 1.31c-.56.54-.91 1.29-.91 2.13 0 .96.46 1.79 1.16 2.34l2.13-2.13-2.38-2.34z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/pin.svg b/assets/static/fonts/open-iconic/svg/pin.svg
deleted file mode 100644
index 3aa1c8c..0000000
--- a/assets/static/fonts/open-iconic/svg/pin.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M1.34 0a.5.5 0 0 0 .16 1h.5v2h-1c-.55 0-1 .45-1 1h3v3l.44 1 .56-1v-3h3c0-.55-.45-1-1-1h-1v-2h.5a.5.5 0 1 0 0-1h-4a.5.5 0 0 0-.09 0 .5.5 0 0 0-.06 0z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/play-circle.svg b/assets/static/fonts/open-iconic/svg/play-circle.svg
deleted file mode 100644
index d668d52..0000000
--- a/assets/static/fonts/open-iconic/svg/play-circle.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-1 2l3 2-3 2v-4z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/plus.svg b/assets/static/fonts/open-iconic/svg/plus.svg
deleted file mode 100644
index 74aea49..0000000
--- a/assets/static/fonts/open-iconic/svg/plus.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3 0v3h-3v2h3v3h2v-3h3v-2h-3v-3h-2z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/power-standby.svg b/assets/static/fonts/open-iconic/svg/power-standby.svg
deleted file mode 100644
index 0a08500..0000000
--- a/assets/static/fonts/open-iconic/svg/power-standby.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3 0v4h1v-4h-1zm-1.28 1.44l-.38.31c-.81.64-1.34 1.64-1.34 2.75 0 1.93 1.57 3.5 3.5 3.5s3.5-1.57 3.5-3.5c0-1.11-.53-2.11-1.34-2.75l-.38-.31-.63.78.38.31c.58.46.97 1.17.97 1.97 0 1.39-1.11 2.5-2.5 2.5s-2.5-1.11-2.5-2.5c0-.8.36-1.51.94-1.97l.41-.31-.63-.78z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/print.svg b/assets/static/fonts/open-iconic/svg/print.svg
deleted file mode 100644
index 4fa2202..0000000
--- a/assets/static/fonts/open-iconic/svg/print.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M2 0v2h4v-2h-4zm-1.91 3c-.06 0-.09.04-.09.09v2.81c0 .05.04.09.09.09h.91v-2h6v2h.91c.05 0 .09-.04.09-.09v-2.81c0-.06-.04-.09-.09-.09h-7.81zm1.91 2v3h4v-3h-4z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/project.svg b/assets/static/fonts/open-iconic/svg/project.svg
deleted file mode 100644
index e8e9154..0000000
--- a/assets/static/fonts/open-iconic/svg/project.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v7h1v-7h-1zm7 0v7h1v-7h-1zm-5 1v1h2v-1h-2zm1 2v1h2v-1h-2zm1 2v1h2v-1h-2z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/pulse.svg b/assets/static/fonts/open-iconic/svg/pulse.svg
deleted file mode 100644
index 751c7e0..0000000
--- a/assets/static/fonts/open-iconic/svg/pulse.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3.25 0l-.47 1.53-.78 2.56-.03-.06-.09-.34h-1.88v1h1.1600000000000001l.38 1.16.47 1.47.47-1.5.78-2.5.78 2.5.41 1.34.53-1.28.59-1.47.13.28h2.31v-1h-1.69l-.38-.75-.5-.97-.41 1.03-.47 1.19-.84-2.66-.47-1.53z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/puzzle-piece.svg b/assets/static/fonts/open-iconic/svg/puzzle-piece.svg
deleted file mode 100644
index 6a56995..0000000
--- a/assets/static/fonts/open-iconic/svg/puzzle-piece.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3 0c-.28 0-.54.1-.72.28-.18.18-.28.44-.28.72 0 .28.18.48.28.72.03.06.03.16.03.28h-2.31v6h2.31c0-.12-.01-.22-.03-.28-.1-.24-.28-.44-.28-.72 0-.28.1-.54.28-.72.18-.18.44-.28.72-.28.28 0 .54.1.72.28.18.18.28.44.28.72 0 .28-.18.48-.28.72-.03.06-.03.16-.03.28h2.31v-2.31c.12 0 .22.01.28.03.24.1.44.28.72.28.28 0 .54-.1.72-.28.18-.18.28-.44.28-.72 0-.28-.1-.54-.28-.72-.18-.18-.44-.28-.72-.28-.28 0-.48.18-.72.28-.06.03-.16.03-.28.03v-2.31h-2.31c0-.12.01-.22.03-.28.1-.24.28-.44.28-.72 0-.28-.1-.54-.28-.72-.18-.18-.44-.28-.72-.28z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/question-mark.svg b/assets/static/fonts/open-iconic/svg/question-mark.svg
deleted file mode 100644
index a5e65ce..0000000
--- a/assets/static/fonts/open-iconic/svg/question-mark.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M2.47 0c-.85 0-1.48.26-1.88.66-.4.4-.54.9-.59 1.28l1 .13c.04-.25.12-.5.31-.69.19-.19.49-.38 1.16-.38.66 0 1.02.16 1.22.34.2.18.28.4.28.66 0 .83-.34 1.06-.84 1.5-.5.44-1.16 1.08-1.16 2.25v.25h1v-.25c0-.83.31-1.06.81-1.5.5-.44 1.19-1.08 1.19-2.25 0-.48-.17-1.02-.59-1.41-.43-.39-1.07-.59-1.91-.59zm-.5 7v1h1v-1h-1z"
-  transform="translate(2)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/rain.svg b/assets/static/fonts/open-iconic/svg/rain.svg
deleted file mode 100644
index 0891310..0000000
--- a/assets/static/fonts/open-iconic/svg/rain.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4.5 0c-1.21 0-2.27.86-2.5 2-1.1 0-2 .9-2 2 0 .53.2.99.53 1.34.26-.22.6-.34.97-.34.2 0 .39.05.56.13.17-.64.74-1.13 1.44-1.13.69 0 1.27.49 1.44 1.13.17-.07.36-.13.56-.13.63 0 1.15.39 1.38.94.64-.17 1.13-.75 1.13-1.44 0-.65-.42-1.29-1-1.5v-.5c0-1.38-1.12-2.5-2.5-2.5zm-1.16 5a.5.5 0 0 0-.34.5v2a.5.5 0 1 0 1 0v-2a.5.5 0 0 0-.59-.5.5.5 0 0 0-.06 0zm-2 1a.5.5 0 0 0-.34.5v1a.5.5 0 1 0 1 0v-1a.5.5 0 0 0-.59-.5.5.5 0 0 0-.06 0zm4 0a.5.5 0 0 0-.34.5v1a.5.5 0 1 0 1 0v-1a.5.5 0 0 0-.59-.5.5.5 0 0 0-.06 0z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/random.svg b/assets/static/fonts/open-iconic/svg/random.svg
deleted file mode 100644
index 9908f14..0000000
--- a/assets/static/fonts/open-iconic/svg/random.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M6 0v1h-.5c-.35 0-.56.1-.78.38l-1.41 1.78-1.53-1.78c-.22-.26-.44-.38-.78-.38h-1v1h1c-.05 0 .01.04.03.03l1.63 1.91-1.66 2.06h-1v1h1c.35 0 .56-.1.78-.38l1.53-1.91 1.66 1.91c.22.26.44.38.78.38h.25v1l2-1.5-2-1.5v1h-.22c-.01-.01-.05-.04-.06-.03l-1.75-2.06 1.53-1.91h.5v1l2-1.5-2-1.5z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/reload.svg b/assets/static/fonts/open-iconic/svg/reload.svg
deleted file mode 100644
index 92611c5..0000000
--- a/assets/static/fonts/open-iconic/svg/reload.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0c-2.2 0-4 1.8-4 4s1.8 4 4 4c1.1 0 2.12-.43 2.84-1.16l-.72-.72c-.54.54-1.29.88-2.13.88-1.66 0-3-1.34-3-3s1.34-3 3-3c.83 0 1.55.36 2.09.91l-1.09 1.09h3v-3l-1.19 1.19c-.72-.72-1.71-1.19-2.81-1.19z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/resize-both.svg b/assets/static/fonts/open-iconic/svg/resize-both.svg
deleted file mode 100644
index d4d0fb4..0000000
--- a/assets/static/fonts/open-iconic/svg/resize-both.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0l1.66 1.66-4 4-1.66-1.66v4h4l-1.66-1.66 4-4 1.66 1.66v-4h-4z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/resize-height.svg b/assets/static/fonts/open-iconic/svg/resize-height.svg
deleted file mode 100644
index 8ddb0e5..0000000
--- a/assets/static/fonts/open-iconic/svg/resize-height.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M2.5 0l-2.5 3h2v2h-2l2.5 3 2.5-3h-2v-2h2l-2.5-3z" transform="translate(1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/resize-width.svg b/assets/static/fonts/open-iconic/svg/resize-width.svg
deleted file mode 100644
index 864ebaf..0000000
--- a/assets/static/fonts/open-iconic/svg/resize-width.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3 0l-3 2.5 3 2.5v-2h2v2l3-2.5-3-2.5v2h-2v-2z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/rss-alt.svg b/assets/static/fonts/open-iconic/svg/rss-alt.svg
deleted file mode 100644
index b55d816..0000000
--- a/assets/static/fonts/open-iconic/svg/rss-alt.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v2c3.33 0 6 2.67 6 6h2c0-4.41-3.59-8-8-8zm0 3v2c1.67 0 3 1.33 3 3h2c0-2.75-2.25-5-5-5zm0 3v2h2c0-1.11-.9-2-2-2z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/rss.svg b/assets/static/fonts/open-iconic/svg/rss.svg
deleted file mode 100644
index 1e70b74..0000000
--- a/assets/static/fonts/open-iconic/svg/rss.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M1 0v1c3.32 0 6 2.68 6 6h1c0-3.86-3.14-7-7-7zm0 2v1c2.21 0 4 1.79 4 4h1c0-2.76-2.24-5-5-5zm0 2v1c1.11 0 2 .89 2 2h1c0-1.65-1.35-3-3-3zm0 2c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/script.svg b/assets/static/fonts/open-iconic/svg/script.svg
deleted file mode 100644
index 14b7ff8..0000000
--- a/assets/static/fonts/open-iconic/svg/script.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3 0c-.55 0-1 .45-1 1v5.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-1.5h-1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-3h-4v-2.5c0-.28.22-.5.5-.5s.5.22.5.5v1.5h4v-2c0-.55-.45-1-1-1h-4z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/share-boxed.svg b/assets/static/fonts/open-iconic/svg/share-boxed.svg
deleted file mode 100644
index 46f29a5..0000000
--- a/assets/static/fonts/open-iconic/svg/share-boxed.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M.75 0c-.41 0-.75.34-.75.75v5.5c0 .41.34.75.75.75h4.5c.41 0 .75-.34.75-.75v-1.25h-1v1h-4v-5h2v-1h-2.25zm5.25 0v1c-2.05 0-3.7 1.54-3.94 3.53.21-.88.99-1.53 1.94-1.53h2v1l2-2-2-2z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/share.svg b/assets/static/fonts/open-iconic/svg/share.svg
deleted file mode 100644
index 604cf5a..0000000
--- a/assets/static/fonts/open-iconic/svg/share.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M5 0v2c-4 0-5 2.05-5 5 .52-1.98 2-3 4-3h1v2l3-3.16-3-2.84z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/shield.svg b/assets/static/fonts/open-iconic/svg/shield.svg
deleted file mode 100644
index 1ebf81e..0000000
--- a/assets/static/fonts/open-iconic/svg/shield.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0l-.19.09-3.5 1.47-.31.13v.31c0 1.66.67 3.12 1.47 4.19.4.53.83.97 1.25 1.28.42.31.83.53 1.28.53.46 0 .86-.22 1.28-.53.42-.31.85-.75 1.25-1.28.8-1.07 1.47-2.53 1.47-4.19v-.31l-.31-.13-3.5-1.47-.19-.09zm0 1.09v5.91c-.04 0-.33-.07-.66-.31s-.71-.63-1.06-1.09c-.64-.85-1.14-2.03-1.22-3.28l2.94-1.22z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/signal.svg b/assets/static/fonts/open-iconic/svg/signal.svg
deleted file mode 100644
index 14137f4..0000000
--- a/assets/static/fonts/open-iconic/svg/signal.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M6 0v8h1v-8h-1zm-2 1v7h1v-7h-1zm-2 2v5h1v-5h-1zm-2 2v3h1v-3h-1z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/signpost.svg b/assets/static/fonts/open-iconic/svg/signpost.svg
deleted file mode 100644
index 965e95a..0000000
--- a/assets/static/fonts/open-iconic/svg/signpost.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3 0v1h-2l-1 1 1 1h2v5h1v-4h2l1-1-1-1h-2v-2h-1z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/sort-ascending.svg b/assets/static/fonts/open-iconic/svg/sort-ascending.svg
deleted file mode 100644
index bb8d497..0000000
--- a/assets/static/fonts/open-iconic/svg/sort-ascending.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M2 0v6h-2l2.5 2 2.5-2h-2v-6h-1zm2 0v1h2v-1h-2zm0 2v1h3v-1h-3zm0 2v1h4v-1h-4z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/sort-descending.svg b/assets/static/fonts/open-iconic/svg/sort-descending.svg
deleted file mode 100644
index 6af7349..0000000
--- a/assets/static/fonts/open-iconic/svg/sort-descending.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M2 0v6h-2l2.5 2 2.5-2h-2v-6h-1zm2 0v1h4v-1h-4zm0 2v1h3v-1h-3zm0 2v1h2v-1h-2z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/spreadsheet.svg b/assets/static/fonts/open-iconic/svg/spreadsheet.svg
deleted file mode 100644
index f2f7c8f..0000000
--- a/assets/static/fonts/open-iconic/svg/spreadsheet.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M.75 0c-.41 0-.75.34-.75.75v5.5c0 .41.34.75.75.75h6.5c.41 0 .75-.34.75-.75v-5.5c0-.41-.34-.75-.75-.75h-6.5zm.25 1h1v1h-1v-1zm2 0h4v1h-4v-1zm-2 2h1v1h-1v-1zm2 0h4v1h-4v-1zm-2 2h1v1h-1v-1zm2 0h4v1h-4v-1z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/star.svg b/assets/static/fonts/open-iconic/svg/star.svg
deleted file mode 100644
index ab716a0..0000000
--- a/assets/static/fonts/open-iconic/svg/star.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0l-1 3h-3l2.5 2-1 3 2.5-2 2.5 2-1-3 2.5-2h-3l-1-3z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/sun.svg b/assets/static/fonts/open-iconic/svg/sun.svg
deleted file mode 100644
index d8245ff..0000000
--- a/assets/static/fonts/open-iconic/svg/sun.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-2.5 1c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm5 0c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-2.5 1c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-3.5 1.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm7 0c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-6 2.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm5 0c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-2.5 1c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/tablet.svg b/assets/static/fonts/open-iconic/svg/tablet.svg
deleted file mode 100644
index 25d0eaa..0000000
--- a/assets/static/fonts/open-iconic/svg/tablet.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M.34 0c-.18 0-.34.16-.34.34v7.31c0 .18.16.34.34.34h6.31c.18 0 .34-.16.34-.34v-7.31c0-.18-.16-.34-.34-.34h-6.31zm.66 1h5v5h-5v-5zm2.5 5.5c.38 0 .63.42.44.75s-.68.33-.88 0c-.19-.33.05-.75.44-.75z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/tag.svg b/assets/static/fonts/open-iconic/svg/tag.svg
deleted file mode 100644
index b9efc2b..0000000
--- a/assets/static/fonts/open-iconic/svg/tag.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v3l5 5 3-3-5-5h-3zm2 1c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/tags.svg b/assets/static/fonts/open-iconic/svg/tags.svg
deleted file mode 100644
index d01264d..0000000
--- a/assets/static/fonts/open-iconic/svg/tags.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v2l3 3 1.5-1.5.5-.5-2-2-1-1h-2zm3.41 0l3 3-1.19 1.22.78.78 2-2-3-3h-1.59zm-1.91 1c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/target.svg b/assets/static/fonts/open-iconic/svg/target.svg
deleted file mode 100644
index 68daa5e..0000000
--- a/assets/static/fonts/open-iconic/svg/target.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4 0c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm0 1c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 1c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 1c.56 0 1 .44 1 1s-.44 1-1 1-1-.44-1-1 .44-1 1-1z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/task.svg b/assets/static/fonts/open-iconic/svg/task.svg
deleted file mode 100644
index 786c7bf..0000000
--- a/assets/static/fonts/open-iconic/svg/task.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v7h7v-3.59l-1 1v1.59h-5v-5h3.59l1-1h-5.59zm7 0l-3 3-1-1-1 1 2 2 4-4-1-1z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/terminal.svg b/assets/static/fonts/open-iconic/svg/terminal.svg
deleted file mode 100644
index 59fabc5..0000000
--- a/assets/static/fonts/open-iconic/svg/terminal.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M.09 0c-.06 0-.09.04-.09.09v7.81c0 .05.04.09.09.09h7.81c.05 0 .09-.04.09-.09v-7.81c0-.06-.04-.09-.09-.09h-7.81zm1.41.78l1.72 1.72-1.72 1.72-.72-.72 1-1-1-1 .72-.72zm2.5 2.22h3v1h-3v-1z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/text.svg b/assets/static/fonts/open-iconic/svg/text.svg
deleted file mode 100644
index 7a4ffb4..0000000
--- a/assets/static/fonts/open-iconic/svg/text.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v2h.5c0-.55.45-1 1-1h1.5v5.5c0 .28-.22.5-.5.5h-.5v1h4v-1h-.5c-.28 0-.5-.22-.5-.5v-5.5h1.5c.55 0 1 .45 1 1h.5v-2h-8z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/thumb-down.svg b/assets/static/fonts/open-iconic/svg/thumb-down.svg
deleted file mode 100644
index e2d2706..0000000
--- a/assets/static/fonts/open-iconic/svg/thumb-down.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v4h1v-4h-1zm2 0v4c.28 0 .53.09.72.28.19.19 1.15 2.12 1.28 2.38.13.26.39.39.66.31.26-.08.4-.36.31-.63-.08-.26-.47-1.59-.47-1.84s.22-.5.5-.5h1.5c.28 0 .5-.22.5-.5s-1.03-3.19-1.03-3.19c-.08-.18-.26-.31-.47-.31h-3.5z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/thumb-up.svg b/assets/static/fonts/open-iconic/svg/thumb-up.svg
deleted file mode 100644
index 2c936b6..0000000
--- a/assets/static/fonts/open-iconic/svg/thumb-up.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M4.47 0c-.19.02-.37.15-.47.34-.13.26-1.09 2.19-1.28 2.38-.19.19-.44.28-.72.28v4h3.5c.21 0 .39-.13.47-.31 0 0 1.03-2.91 1.03-3.19 0-.28-.22-.5-.5-.5h-1.5c-.28 0-.5-.25-.5-.5s.39-1.58.47-1.84c.08-.26-.05-.54-.31-.63-.07-.02-.12-.04-.19-.03zm-4.47 3v4h1v-4h-1z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/timer.svg b/assets/static/fonts/open-iconic/svg/timer.svg
deleted file mode 100644
index 9041be3..0000000
--- a/assets/static/fonts/open-iconic/svg/timer.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M2 0v1h1v.03c-1.7.24-3 1.71-3 3.47 0 1.93 1.57 3.5 3.5 3.5s3.5-1.57 3.5-3.5c0-.45-.1-.87-.25-1.25l-.91.38c.11.29.16.57.16.88 0 1.39-1.11 2.5-2.5 2.5s-2.5-1.11-2.5-2.5 1.11-2.5 2.5-2.5c.3 0 .59.05.88.16l.34-.94c-.23-.08-.47-.12-.72-.16v-.06h1v-1h-3zm5 1.16s-3.65 2.81-3.84 3c-.19.2-.19.49 0 .69.19.2.49.2.69 0 .2-.2 3.16-3.69 3.16-3.69z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/transfer.svg b/assets/static/fonts/open-iconic/svg/transfer.svg
deleted file mode 100644
index 39ace35..0000000
--- a/assets/static/fonts/open-iconic/svg/transfer.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M6 0v1h-6v1h6v1l2-1.5-2-1.5zm-4 4l-2 1.5 2 1.5v-1h6v-1h-6v-1z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/trash.svg b/assets/static/fonts/open-iconic/svg/trash.svg
deleted file mode 100644
index 83d8cdc..0000000
--- a/assets/static/fonts/open-iconic/svg/trash.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3 0c-.55 0-1 .45-1 1h-1c-.55 0-1 .45-1 1h7c0-.55-.45-1-1-1h-1c0-.55-.45-1-1-1h-1zm-2 3v4.81c0 .11.08.19.19.19h4.63c.11 0 .19-.08.19-.19v-4.81h-1v3.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-3.5h-1v3.5c0 .28-.22.5-.5.5s-.5-.22-.5-.5v-3.5h-1z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/underline.svg b/assets/static/fonts/open-iconic/svg/underline.svg
deleted file mode 100644
index a6f8073..0000000
--- a/assets/static/fonts/open-iconic/svg/underline.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M1 0v4c0 1.1 1.12 2 2.5 2h.5c1.1 0 2-.9 2-2v-4h-1v4c0 .55-.45 1-1 1s-1-.45-1-1v-4h-2zm-1 7v1h7v-1h-7z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/vertical-align-bottom.svg b/assets/static/fonts/open-iconic/svg/vertical-align-bottom.svg
deleted file mode 100644
index 1e8dd01..0000000
--- a/assets/static/fonts/open-iconic/svg/vertical-align-bottom.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M.09 0c-.06 0-.09.04-.09.09v4.81c0 .05.04.09.09.09h1.81c.05 0 .09-.04.09-.09v-4.81c0-.06-.04-.09-.09-.09h-1.81zm6 0c-.05 0-.09.04-.09.09v4.81c0 .05.04.09.09.09h1.81c.05 0 .09-.04.09-.09v-4.81c0-.06-.04-.09-.09-.09h-1.81zm-3 2c-.06 0-.09.04-.09.09v2.81c0 .05.04.09.09.09h1.81c.05 0 .09-.04.09-.09v-2.81c0-.06-.04-.09-.09-.09h-1.81zm-3.09 4v1h8v-1h-8z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/vertical-align-center.svg b/assets/static/fonts/open-iconic/svg/vertical-align-center.svg
deleted file mode 100644
index 2069a11..0000000
--- a/assets/static/fonts/open-iconic/svg/vertical-align-center.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M.09 0c-.06 0-.09.04-.09.09v1.91h2v-1.91c0-.06-.04-.09-.09-.09h-1.81zm6 0c-.05 0-.09.04-.09.09v1.91h2v-1.91c0-.06-.04-.09-.09-.09h-1.81zm-3 1c-.06 0-.09.04-.09.09v.91h2v-.91c0-.05-.04-.09-.09-.09h-1.81zm-3.09 2v1h8v-1h-8zm0 2v1.91c0 .05.04.09.09.09h1.81c.05 0 .09-.04.09-.09v-1.91h-2zm3 0v.91c0 .05.04.09.09.09h1.81c.05 0 .09-.04.09-.09v-.91h-2zm3 0v1.91c0 .05.04.09.09.09h1.81c.05 0 .09-.04.09-.09v-1.91h-2z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/vertical-align-top.svg b/assets/static/fonts/open-iconic/svg/vertical-align-top.svg
deleted file mode 100644
index d303529..0000000
--- a/assets/static/fonts/open-iconic/svg/vertical-align-top.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0v1h8v-1h-8zm.09 2c-.06 0-.09.04-.09.09v4.81c0 .05.04.09.09.09h1.81c.05 0 .09-.04.09-.09v-4.81c0-.06-.04-.09-.09-.09h-1.81zm3 0c-.06 0-.09.04-.09.09v2.81c0 .05.04.09.09.09h1.81c.05 0 .09-.04.09-.09v-2.81c0-.06-.04-.09-.09-.09h-1.81zm3 0c-.05 0-.09.04-.09.09v4.81c0 .05.04.09.09.09h1.81c.05 0 .09-.04.09-.09v-4.81c0-.06-.04-.09-.09-.09h-1.81z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/video.svg b/assets/static/fonts/open-iconic/svg/video.svg
deleted file mode 100644
index 001148b..0000000
--- a/assets/static/fonts/open-iconic/svg/video.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M.5 0c-.28 0-.5.23-.5.5v4c0 .28.23.5.5.5h5c.28 0 .5-.22.5-.5v-1.5l1 1h1v-3h-1l-1 1v-1.5c0-.28-.22-.5-.5-.5h-5z" transform="translate(0 1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/volume-high.svg b/assets/static/fonts/open-iconic/svg/volume-high.svg
deleted file mode 100644
index c8a52c6..0000000
--- a/assets/static/fonts/open-iconic/svg/volume-high.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3.34 0l-1.34 2h-2v4h2l1.34 2h.66v-8h-.66zm1.66 1v1c.17 0 .34.02.5.06.86.22 1.5 1 1.5 1.94s-.63 1.72-1.5 1.94c-.16.04-.33.06-.5.06v1c.25 0 .48-.04.72-.09h.03c1.3-.33 2.25-1.51 2.25-2.91 0-1.4-.95-2.58-2.25-2.91-.23-.06-.49-.09-.75-.09zm0 2v2c.09 0 .18-.01.25-.03.43-.11.75-.51.75-.97 0-.46-.31-.86-.75-.97-.08-.02-.17-.03-.25-.03z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/volume-low.svg b/assets/static/fonts/open-iconic/svg/volume-low.svg
deleted file mode 100644
index bd492db..0000000
--- a/assets/static/fonts/open-iconic/svg/volume-low.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3.34 0l-1.34 2h-2v4h2l1.34 2h.66v-8h-.66zm1.66 3v2c.09 0 .18-.01.25-.03.43-.11.75-.51.75-.97 0-.46-.31-.86-.75-.97-.08-.02-.17-.03-.25-.03z" transform="translate(1)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/volume-off.svg b/assets/static/fonts/open-iconic/svg/volume-off.svg
deleted file mode 100644
index 38237b2..0000000
--- a/assets/static/fonts/open-iconic/svg/volume-off.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3.34 0l-1.34 2h-2v4h2l1.34 2h.66v-8h-.66z" transform="translate(2)" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/warning.svg b/assets/static/fonts/open-iconic/svg/warning.svg
deleted file mode 100644
index e3594a8..0000000
--- a/assets/static/fonts/open-iconic/svg/warning.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3.09 0c-.06 0-.1.04-.13.09l-2.94 6.81c-.02.05-.03.13-.03.19v.81c0 .05.04.09.09.09h6.81c.05 0 .09-.04.09-.09v-.81c0-.05-.01-.14-.03-.19l-2.94-6.81c-.02-.05-.07-.09-.13-.09h-.81zm-.09 3h1v2h-1v-2zm0 3h1v1h-1v-1z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/wifi.svg b/assets/static/fonts/open-iconic/svg/wifi.svg
deleted file mode 100644
index d5ae76b..0000000
--- a/assets/static/fonts/open-iconic/svg/wifi.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3.75 0c-1.38 0-2.66.4-3.75 1.09l.53.81c.93-.59 2.03-.91 3.22-.91 1.2 0 2.32.31 3.25.91l.53-.81c-1.09-.7-2.4-1.09-3.78-1.09zm0 3c-.79 0-1.5.23-2.13.63l.53.84c.47-.3 1-.47 1.59-.47.59 0 1.16.17 1.63.47l.53-.84c-.62-.39-1.37-.63-2.16-.63zm0 3c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/wrench.svg b/assets/static/fonts/open-iconic/svg/wrench.svg
deleted file mode 100644
index b10e33b..0000000
--- a/assets/static/fonts/open-iconic/svg/wrench.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M5.5 0c-1.38 0-2.5 1.12-2.5 2.5 0 .32.08.62.19.91l-2.91 2.88c-.39.39-.39 1.05 0 1.44.2.2.46.28.72.28.26 0 .52-.09.72-.28l2.88-2.91c.28.11.58.19.91.19 1.38 0 2.5-1.12 2.5-2.5 0-.16 0-.32-.03-.47l-.97.97h-2v-2l.97-.97c-.15-.03-.31-.03-.47-.03zm-4.5 6.5c.28 0 .5.22.5.5s-.22.5-.5.5-.5-.22-.5-.5.22-.5.5-.5z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/x.svg b/assets/static/fonts/open-iconic/svg/x.svg
deleted file mode 100644
index fc7251c..0000000
--- a/assets/static/fonts/open-iconic/svg/x.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M1.41 0l-1.41 1.41.72.72 1.78 1.81-1.78 1.78-.72.69 1.41 1.44.72-.72 1.81-1.81 1.78 1.81.69.72 1.44-1.44-.72-.69-1.81-1.78 1.81-1.81.72-.72-1.44-1.41-.69.72-1.78 1.78-1.81-1.78-.72-.72z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/yen.svg b/assets/static/fonts/open-iconic/svg/yen.svg
deleted file mode 100644
index 2a77158..0000000
--- a/assets/static/fonts/open-iconic/svg/yen.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M0 0l2.25 3h-2.25v1h3v1h-3v1h3v2h1v-2h3v-1h-3v-1h3v-1h-2.25l2.25-3h-1l-2.31 3h-.38l-2.31-3h-1z" />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/zoom-in.svg b/assets/static/fonts/open-iconic/svg/zoom-in.svg
deleted file mode 100644
index 6a39b37..0000000
--- a/assets/static/fonts/open-iconic/svg/zoom-in.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3.5 0c-1.93 0-3.5 1.57-3.5 3.5s1.57 3.5 3.5 3.5c.61 0 1.19-.16 1.69-.44a1 1 0 0 0 .09.13l1 1.03a1.02 1.02 0 1 0 1.44-1.44l-1.03-1a1 1 0 0 0-.13-.09c.27-.5.44-1.08.44-1.69 0-1.93-1.57-3.5-3.5-3.5zm0 1c1.39 0 2.5 1.11 2.5 2.5 0 .59-.2 1.14-.53 1.56-.01.01-.02.02-.03.03a1 1 0 0 0-.06.03 1 1 0 0 0-.25.28c-.44.37-1.01.59-1.63.59-1.39 0-2.5-1.11-2.5-2.5s1.11-2.5 2.5-2.5zm-.5 1v1h-1v1h1v1h1v-1h1v-1h-1v-1h-1z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/svg/zoom-out.svg b/assets/static/fonts/open-iconic/svg/zoom-out.svg
deleted file mode 100644
index 9898a86..0000000
--- a/assets/static/fonts/open-iconic/svg/zoom-out.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
-  <path d="M3.5 0c-1.93 0-3.5 1.57-3.5 3.5s1.57 3.5 3.5 3.5c.61 0 1.19-.16 1.69-.44a1 1 0 0 0 .09.13l1 1.03a1.02 1.02 0 1 0 1.44-1.44l-1.03-1a1 1 0 0 0-.13-.09c.27-.5.44-1.08.44-1.69 0-1.93-1.57-3.5-3.5-3.5zm0 1c1.39 0 2.5 1.11 2.5 2.5 0 .59-.2 1.14-.53 1.56-.01.01-.02.02-.03.03a1 1 0 0 0-.06.03 1 1 0 0 0-.25.28c-.44.37-1.01.59-1.63.59-1.39 0-2.5-1.11-2.5-2.5s1.11-2.5 2.5-2.5zm-1.5 2v1h3v-1h-3z"
-  />
-</svg>
\ No newline at end of file
diff --git a/assets/static/fonts/open-iconic/webp/account-login-2x.webp b/assets/static/fonts/open-iconic/webp/account-login-2x.webp
deleted file mode 100644
index 1fc520b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/account-login-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/account-login-3x.webp b/assets/static/fonts/open-iconic/webp/account-login-3x.webp
deleted file mode 100644
index 97693c7..0000000
Binary files a/assets/static/fonts/open-iconic/webp/account-login-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/account-login-4x.webp b/assets/static/fonts/open-iconic/webp/account-login-4x.webp
deleted file mode 100644
index ed430e1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/account-login-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/account-login-6x.webp b/assets/static/fonts/open-iconic/webp/account-login-6x.webp
deleted file mode 100644
index 2ec8796..0000000
Binary files a/assets/static/fonts/open-iconic/webp/account-login-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/account-login-8x.webp b/assets/static/fonts/open-iconic/webp/account-login-8x.webp
deleted file mode 100644
index acdfca8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/account-login-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/account-login.webp b/assets/static/fonts/open-iconic/webp/account-login.webp
deleted file mode 100644
index 22c39c7..0000000
Binary files a/assets/static/fonts/open-iconic/webp/account-login.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/account-logout-2x.webp b/assets/static/fonts/open-iconic/webp/account-logout-2x.webp
deleted file mode 100644
index f5e6c9b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/account-logout-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/account-logout-3x.webp b/assets/static/fonts/open-iconic/webp/account-logout-3x.webp
deleted file mode 100644
index 4d5a0e9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/account-logout-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/account-logout-4x.webp b/assets/static/fonts/open-iconic/webp/account-logout-4x.webp
deleted file mode 100644
index 6ed5793..0000000
Binary files a/assets/static/fonts/open-iconic/webp/account-logout-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/account-logout-6x.webp b/assets/static/fonts/open-iconic/webp/account-logout-6x.webp
deleted file mode 100644
index b1b2229..0000000
Binary files a/assets/static/fonts/open-iconic/webp/account-logout-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/account-logout-8x.webp b/assets/static/fonts/open-iconic/webp/account-logout-8x.webp
deleted file mode 100644
index 9df6a51..0000000
Binary files a/assets/static/fonts/open-iconic/webp/account-logout-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/account-logout.webp b/assets/static/fonts/open-iconic/webp/account-logout.webp
deleted file mode 100644
index bb19373..0000000
Binary files a/assets/static/fonts/open-iconic/webp/account-logout.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/action-redo-2x.webp b/assets/static/fonts/open-iconic/webp/action-redo-2x.webp
deleted file mode 100644
index 850cd22..0000000
Binary files a/assets/static/fonts/open-iconic/webp/action-redo-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/action-redo-3x.webp b/assets/static/fonts/open-iconic/webp/action-redo-3x.webp
deleted file mode 100644
index b347391..0000000
Binary files a/assets/static/fonts/open-iconic/webp/action-redo-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/action-redo-4x.webp b/assets/static/fonts/open-iconic/webp/action-redo-4x.webp
deleted file mode 100644
index 64d1eb7..0000000
Binary files a/assets/static/fonts/open-iconic/webp/action-redo-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/action-redo-6x.webp b/assets/static/fonts/open-iconic/webp/action-redo-6x.webp
deleted file mode 100644
index 622aeab..0000000
Binary files a/assets/static/fonts/open-iconic/webp/action-redo-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/action-redo-8x.webp b/assets/static/fonts/open-iconic/webp/action-redo-8x.webp
deleted file mode 100644
index 9b7e0b2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/action-redo-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/action-redo.webp b/assets/static/fonts/open-iconic/webp/action-redo.webp
deleted file mode 100644
index 6d915d5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/action-redo.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/action-undo-2x.webp b/assets/static/fonts/open-iconic/webp/action-undo-2x.webp
deleted file mode 100644
index 22295ae..0000000
Binary files a/assets/static/fonts/open-iconic/webp/action-undo-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/action-undo-3x.webp b/assets/static/fonts/open-iconic/webp/action-undo-3x.webp
deleted file mode 100644
index 04dbebb..0000000
Binary files a/assets/static/fonts/open-iconic/webp/action-undo-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/action-undo-4x.webp b/assets/static/fonts/open-iconic/webp/action-undo-4x.webp
deleted file mode 100644
index 9f3c125..0000000
Binary files a/assets/static/fonts/open-iconic/webp/action-undo-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/action-undo-6x.webp b/assets/static/fonts/open-iconic/webp/action-undo-6x.webp
deleted file mode 100644
index 816db0c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/action-undo-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/action-undo-8x.webp b/assets/static/fonts/open-iconic/webp/action-undo-8x.webp
deleted file mode 100644
index 3640e1e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/action-undo-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/action-undo.webp b/assets/static/fonts/open-iconic/webp/action-undo.webp
deleted file mode 100644
index 06b314e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/action-undo.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/align-center-2x.webp b/assets/static/fonts/open-iconic/webp/align-center-2x.webp
deleted file mode 100644
index e41a425..0000000
Binary files a/assets/static/fonts/open-iconic/webp/align-center-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/align-center-3x.webp b/assets/static/fonts/open-iconic/webp/align-center-3x.webp
deleted file mode 100644
index b85809a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/align-center-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/align-center-4x.webp b/assets/static/fonts/open-iconic/webp/align-center-4x.webp
deleted file mode 100644
index 98b5377..0000000
Binary files a/assets/static/fonts/open-iconic/webp/align-center-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/align-center-6x.webp b/assets/static/fonts/open-iconic/webp/align-center-6x.webp
deleted file mode 100644
index 3b58978..0000000
Binary files a/assets/static/fonts/open-iconic/webp/align-center-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/align-center-8x.webp b/assets/static/fonts/open-iconic/webp/align-center-8x.webp
deleted file mode 100644
index e2a153a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/align-center-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/align-center.webp b/assets/static/fonts/open-iconic/webp/align-center.webp
deleted file mode 100644
index 74d3b87..0000000
Binary files a/assets/static/fonts/open-iconic/webp/align-center.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/align-left-2x.webp b/assets/static/fonts/open-iconic/webp/align-left-2x.webp
deleted file mode 100644
index f83591a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/align-left-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/align-left-3x.webp b/assets/static/fonts/open-iconic/webp/align-left-3x.webp
deleted file mode 100644
index 6e943ed..0000000
Binary files a/assets/static/fonts/open-iconic/webp/align-left-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/align-left-4x.webp b/assets/static/fonts/open-iconic/webp/align-left-4x.webp
deleted file mode 100644
index 3f8541e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/align-left-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/align-left-6x.webp b/assets/static/fonts/open-iconic/webp/align-left-6x.webp
deleted file mode 100644
index cb5dee3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/align-left-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/align-left-8x.webp b/assets/static/fonts/open-iconic/webp/align-left-8x.webp
deleted file mode 100644
index 1c70f94..0000000
Binary files a/assets/static/fonts/open-iconic/webp/align-left-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/align-left.webp b/assets/static/fonts/open-iconic/webp/align-left.webp
deleted file mode 100644
index a0d8228..0000000
Binary files a/assets/static/fonts/open-iconic/webp/align-left.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/align-right-2x.webp b/assets/static/fonts/open-iconic/webp/align-right-2x.webp
deleted file mode 100644
index 73ace6b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/align-right-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/align-right-3x.webp b/assets/static/fonts/open-iconic/webp/align-right-3x.webp
deleted file mode 100644
index 8fe0c2d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/align-right-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/align-right-4x.webp b/assets/static/fonts/open-iconic/webp/align-right-4x.webp
deleted file mode 100644
index 11553b7..0000000
Binary files a/assets/static/fonts/open-iconic/webp/align-right-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/align-right-6x.webp b/assets/static/fonts/open-iconic/webp/align-right-6x.webp
deleted file mode 100644
index 8408b55..0000000
Binary files a/assets/static/fonts/open-iconic/webp/align-right-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/align-right-8x.webp b/assets/static/fonts/open-iconic/webp/align-right-8x.webp
deleted file mode 100644
index 051140a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/align-right-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/align-right.webp b/assets/static/fonts/open-iconic/webp/align-right.webp
deleted file mode 100644
index d47e89f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/align-right.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/aperture-2x.webp b/assets/static/fonts/open-iconic/webp/aperture-2x.webp
deleted file mode 100644
index 2abaa60..0000000
Binary files a/assets/static/fonts/open-iconic/webp/aperture-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/aperture-3x.webp b/assets/static/fonts/open-iconic/webp/aperture-3x.webp
deleted file mode 100644
index 6c46daf..0000000
Binary files a/assets/static/fonts/open-iconic/webp/aperture-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/aperture-4x.webp b/assets/static/fonts/open-iconic/webp/aperture-4x.webp
deleted file mode 100644
index 7605bed..0000000
Binary files a/assets/static/fonts/open-iconic/webp/aperture-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/aperture-6x.webp b/assets/static/fonts/open-iconic/webp/aperture-6x.webp
deleted file mode 100644
index 6613b0b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/aperture-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/aperture-8x.webp b/assets/static/fonts/open-iconic/webp/aperture-8x.webp
deleted file mode 100644
index 4553389..0000000
Binary files a/assets/static/fonts/open-iconic/webp/aperture-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/aperture.webp b/assets/static/fonts/open-iconic/webp/aperture.webp
deleted file mode 100644
index aa1a212..0000000
Binary files a/assets/static/fonts/open-iconic/webp/aperture.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-bottom-2x.webp b/assets/static/fonts/open-iconic/webp/arrow-bottom-2x.webp
deleted file mode 100644
index b1a7a8e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-bottom-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-bottom-3x.webp b/assets/static/fonts/open-iconic/webp/arrow-bottom-3x.webp
deleted file mode 100644
index f836804..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-bottom-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-bottom-4x.webp b/assets/static/fonts/open-iconic/webp/arrow-bottom-4x.webp
deleted file mode 100644
index 74d5730..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-bottom-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-bottom-6x.webp b/assets/static/fonts/open-iconic/webp/arrow-bottom-6x.webp
deleted file mode 100644
index 3fe07aa..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-bottom-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-bottom-8x.webp b/assets/static/fonts/open-iconic/webp/arrow-bottom-8x.webp
deleted file mode 100644
index 6cc20a4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-bottom-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-bottom.webp b/assets/static/fonts/open-iconic/webp/arrow-bottom.webp
deleted file mode 100644
index a30a8d6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-bottom.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-circle-bottom-2x.webp b/assets/static/fonts/open-iconic/webp/arrow-circle-bottom-2x.webp
deleted file mode 100644
index 6bbc6d1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-circle-bottom-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-circle-bottom-3x.webp b/assets/static/fonts/open-iconic/webp/arrow-circle-bottom-3x.webp
deleted file mode 100644
index 2b62818..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-circle-bottom-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-circle-bottom-4x.webp b/assets/static/fonts/open-iconic/webp/arrow-circle-bottom-4x.webp
deleted file mode 100644
index 5af378b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-circle-bottom-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-circle-bottom-6x.webp b/assets/static/fonts/open-iconic/webp/arrow-circle-bottom-6x.webp
deleted file mode 100644
index 6037e27..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-circle-bottom-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-circle-bottom-8x.webp b/assets/static/fonts/open-iconic/webp/arrow-circle-bottom-8x.webp
deleted file mode 100644
index 74fc2d6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-circle-bottom-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-circle-bottom.webp b/assets/static/fonts/open-iconic/webp/arrow-circle-bottom.webp
deleted file mode 100644
index a318b15..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-circle-bottom.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-circle-left-2x.webp b/assets/static/fonts/open-iconic/webp/arrow-circle-left-2x.webp
deleted file mode 100644
index 9333628..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-circle-left-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-circle-left-3x.webp b/assets/static/fonts/open-iconic/webp/arrow-circle-left-3x.webp
deleted file mode 100644
index 987e2a2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-circle-left-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-circle-left-4x.webp b/assets/static/fonts/open-iconic/webp/arrow-circle-left-4x.webp
deleted file mode 100644
index b6a37ed..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-circle-left-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-circle-left-6x.webp b/assets/static/fonts/open-iconic/webp/arrow-circle-left-6x.webp
deleted file mode 100644
index 37f4ee1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-circle-left-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-circle-left-8x.webp b/assets/static/fonts/open-iconic/webp/arrow-circle-left-8x.webp
deleted file mode 100644
index 8da0a8b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-circle-left-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-circle-left.webp b/assets/static/fonts/open-iconic/webp/arrow-circle-left.webp
deleted file mode 100644
index 9205767..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-circle-left.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-circle-right-2x.webp b/assets/static/fonts/open-iconic/webp/arrow-circle-right-2x.webp
deleted file mode 100644
index 7d5e2a3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-circle-right-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-circle-right-3x.webp b/assets/static/fonts/open-iconic/webp/arrow-circle-right-3x.webp
deleted file mode 100644
index af60c65..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-circle-right-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-circle-right-4x.webp b/assets/static/fonts/open-iconic/webp/arrow-circle-right-4x.webp
deleted file mode 100644
index aadd027..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-circle-right-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-circle-right-6x.webp b/assets/static/fonts/open-iconic/webp/arrow-circle-right-6x.webp
deleted file mode 100644
index c18f531..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-circle-right-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-circle-right-8x.webp b/assets/static/fonts/open-iconic/webp/arrow-circle-right-8x.webp
deleted file mode 100644
index 440ff67..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-circle-right-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-circle-right.webp b/assets/static/fonts/open-iconic/webp/arrow-circle-right.webp
deleted file mode 100644
index 21e206d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-circle-right.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-circle-top-2x.webp b/assets/static/fonts/open-iconic/webp/arrow-circle-top-2x.webp
deleted file mode 100644
index d424bd5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-circle-top-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-circle-top-3x.webp b/assets/static/fonts/open-iconic/webp/arrow-circle-top-3x.webp
deleted file mode 100644
index eb841ca..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-circle-top-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-circle-top-4x.webp b/assets/static/fonts/open-iconic/webp/arrow-circle-top-4x.webp
deleted file mode 100644
index 5c2e0d1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-circle-top-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-circle-top-6x.webp b/assets/static/fonts/open-iconic/webp/arrow-circle-top-6x.webp
deleted file mode 100644
index 8898d9d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-circle-top-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-circle-top-8x.webp b/assets/static/fonts/open-iconic/webp/arrow-circle-top-8x.webp
deleted file mode 100644
index 8da7d92..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-circle-top-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-circle-top.webp b/assets/static/fonts/open-iconic/webp/arrow-circle-top.webp
deleted file mode 100644
index 26aabac..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-circle-top.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-left-2x.webp b/assets/static/fonts/open-iconic/webp/arrow-left-2x.webp
deleted file mode 100644
index 4b58205..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-left-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-left-3x.webp b/assets/static/fonts/open-iconic/webp/arrow-left-3x.webp
deleted file mode 100644
index eaa3cc4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-left-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-left-4x.webp b/assets/static/fonts/open-iconic/webp/arrow-left-4x.webp
deleted file mode 100644
index 70f0cb1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-left-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-left-6x.webp b/assets/static/fonts/open-iconic/webp/arrow-left-6x.webp
deleted file mode 100644
index 0ebad68..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-left-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-left-8x.webp b/assets/static/fonts/open-iconic/webp/arrow-left-8x.webp
deleted file mode 100644
index 998c1b9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-left-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-left.webp b/assets/static/fonts/open-iconic/webp/arrow-left.webp
deleted file mode 100644
index 7dd923b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-left.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-right-2x.webp b/assets/static/fonts/open-iconic/webp/arrow-right-2x.webp
deleted file mode 100644
index 0a7fad1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-right-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-right-3x.webp b/assets/static/fonts/open-iconic/webp/arrow-right-3x.webp
deleted file mode 100644
index 2cfa794..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-right-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-right-4x.webp b/assets/static/fonts/open-iconic/webp/arrow-right-4x.webp
deleted file mode 100644
index aacab21..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-right-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-right-6x.webp b/assets/static/fonts/open-iconic/webp/arrow-right-6x.webp
deleted file mode 100644
index 60c0597..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-right-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-right-8x.webp b/assets/static/fonts/open-iconic/webp/arrow-right-8x.webp
deleted file mode 100644
index 612da43..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-right-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-right.webp b/assets/static/fonts/open-iconic/webp/arrow-right.webp
deleted file mode 100644
index 1b8d7eb..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-right.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-thick-bottom-2x.webp b/assets/static/fonts/open-iconic/webp/arrow-thick-bottom-2x.webp
deleted file mode 100644
index 05d268f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-thick-bottom-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-thick-bottom-3x.webp b/assets/static/fonts/open-iconic/webp/arrow-thick-bottom-3x.webp
deleted file mode 100644
index 68ddf9f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-thick-bottom-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-thick-bottom-4x.webp b/assets/static/fonts/open-iconic/webp/arrow-thick-bottom-4x.webp
deleted file mode 100644
index 82ce3eb..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-thick-bottom-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-thick-bottom-6x.webp b/assets/static/fonts/open-iconic/webp/arrow-thick-bottom-6x.webp
deleted file mode 100644
index 12130d3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-thick-bottom-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-thick-bottom-8x.webp b/assets/static/fonts/open-iconic/webp/arrow-thick-bottom-8x.webp
deleted file mode 100644
index a0c2e1f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-thick-bottom-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-thick-bottom.webp b/assets/static/fonts/open-iconic/webp/arrow-thick-bottom.webp
deleted file mode 100644
index fd55494..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-thick-bottom.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-thick-left-2x.webp b/assets/static/fonts/open-iconic/webp/arrow-thick-left-2x.webp
deleted file mode 100644
index 7ca0d3f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-thick-left-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-thick-left-3x.webp b/assets/static/fonts/open-iconic/webp/arrow-thick-left-3x.webp
deleted file mode 100644
index 041be8a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-thick-left-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-thick-left-4x.webp b/assets/static/fonts/open-iconic/webp/arrow-thick-left-4x.webp
deleted file mode 100644
index b868722..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-thick-left-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-thick-left-6x.webp b/assets/static/fonts/open-iconic/webp/arrow-thick-left-6x.webp
deleted file mode 100644
index 21b42c0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-thick-left-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-thick-left-8x.webp b/assets/static/fonts/open-iconic/webp/arrow-thick-left-8x.webp
deleted file mode 100644
index 58a32a9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-thick-left-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-thick-left.webp b/assets/static/fonts/open-iconic/webp/arrow-thick-left.webp
deleted file mode 100644
index 5a82dd8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-thick-left.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-thick-right-2x.webp b/assets/static/fonts/open-iconic/webp/arrow-thick-right-2x.webp
deleted file mode 100644
index 3f32427..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-thick-right-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-thick-right-3x.webp b/assets/static/fonts/open-iconic/webp/arrow-thick-right-3x.webp
deleted file mode 100644
index ca004ed..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-thick-right-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-thick-right-4x.webp b/assets/static/fonts/open-iconic/webp/arrow-thick-right-4x.webp
deleted file mode 100644
index 35e8fc8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-thick-right-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-thick-right-6x.webp b/assets/static/fonts/open-iconic/webp/arrow-thick-right-6x.webp
deleted file mode 100644
index ccf9536..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-thick-right-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-thick-right-8x.webp b/assets/static/fonts/open-iconic/webp/arrow-thick-right-8x.webp
deleted file mode 100644
index ee8266f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-thick-right-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-thick-right.webp b/assets/static/fonts/open-iconic/webp/arrow-thick-right.webp
deleted file mode 100644
index 0228618..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-thick-right.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-thick-top-2x.webp b/assets/static/fonts/open-iconic/webp/arrow-thick-top-2x.webp
deleted file mode 100644
index cb7fc89..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-thick-top-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-thick-top-3x.webp b/assets/static/fonts/open-iconic/webp/arrow-thick-top-3x.webp
deleted file mode 100644
index ae381e3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-thick-top-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-thick-top-4x.webp b/assets/static/fonts/open-iconic/webp/arrow-thick-top-4x.webp
deleted file mode 100644
index 6f48976..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-thick-top-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-thick-top-6x.webp b/assets/static/fonts/open-iconic/webp/arrow-thick-top-6x.webp
deleted file mode 100644
index 851b51c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-thick-top-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-thick-top-8x.webp b/assets/static/fonts/open-iconic/webp/arrow-thick-top-8x.webp
deleted file mode 100644
index 2eb1f66..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-thick-top-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-thick-top.webp b/assets/static/fonts/open-iconic/webp/arrow-thick-top.webp
deleted file mode 100644
index 06304a4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-thick-top.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-top-2x.webp b/assets/static/fonts/open-iconic/webp/arrow-top-2x.webp
deleted file mode 100644
index ceb4195..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-top-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-top-3x.webp b/assets/static/fonts/open-iconic/webp/arrow-top-3x.webp
deleted file mode 100644
index 1f6bd19..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-top-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-top-4x.webp b/assets/static/fonts/open-iconic/webp/arrow-top-4x.webp
deleted file mode 100644
index 893abec..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-top-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-top-6x.webp b/assets/static/fonts/open-iconic/webp/arrow-top-6x.webp
deleted file mode 100644
index 15cc683..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-top-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-top-8x.webp b/assets/static/fonts/open-iconic/webp/arrow-top-8x.webp
deleted file mode 100644
index 26f0a12..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-top-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/arrow-top.webp b/assets/static/fonts/open-iconic/webp/arrow-top.webp
deleted file mode 100644
index d4b1ead..0000000
Binary files a/assets/static/fonts/open-iconic/webp/arrow-top.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/audio-2x.webp b/assets/static/fonts/open-iconic/webp/audio-2x.webp
deleted file mode 100644
index dcfa7fd..0000000
Binary files a/assets/static/fonts/open-iconic/webp/audio-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/audio-3x.webp b/assets/static/fonts/open-iconic/webp/audio-3x.webp
deleted file mode 100644
index ebdbddf..0000000
Binary files a/assets/static/fonts/open-iconic/webp/audio-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/audio-4x.webp b/assets/static/fonts/open-iconic/webp/audio-4x.webp
deleted file mode 100644
index 7f27743..0000000
Binary files a/assets/static/fonts/open-iconic/webp/audio-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/audio-6x.webp b/assets/static/fonts/open-iconic/webp/audio-6x.webp
deleted file mode 100644
index 24ac1e4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/audio-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/audio-8x.webp b/assets/static/fonts/open-iconic/webp/audio-8x.webp
deleted file mode 100644
index b442695..0000000
Binary files a/assets/static/fonts/open-iconic/webp/audio-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/audio-spectrum-2x.webp b/assets/static/fonts/open-iconic/webp/audio-spectrum-2x.webp
deleted file mode 100644
index ccc26a3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/audio-spectrum-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/audio-spectrum-3x.webp b/assets/static/fonts/open-iconic/webp/audio-spectrum-3x.webp
deleted file mode 100644
index 1a2a060..0000000
Binary files a/assets/static/fonts/open-iconic/webp/audio-spectrum-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/audio-spectrum-4x.webp b/assets/static/fonts/open-iconic/webp/audio-spectrum-4x.webp
deleted file mode 100644
index e27a762..0000000
Binary files a/assets/static/fonts/open-iconic/webp/audio-spectrum-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/audio-spectrum-6x.webp b/assets/static/fonts/open-iconic/webp/audio-spectrum-6x.webp
deleted file mode 100644
index 8407274..0000000
Binary files a/assets/static/fonts/open-iconic/webp/audio-spectrum-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/audio-spectrum-8x.webp b/assets/static/fonts/open-iconic/webp/audio-spectrum-8x.webp
deleted file mode 100644
index 0edbf6b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/audio-spectrum-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/audio-spectrum.webp b/assets/static/fonts/open-iconic/webp/audio-spectrum.webp
deleted file mode 100644
index 048eff1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/audio-spectrum.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/audio.webp b/assets/static/fonts/open-iconic/webp/audio.webp
deleted file mode 100644
index 5201f07..0000000
Binary files a/assets/static/fonts/open-iconic/webp/audio.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/badge-2x.webp b/assets/static/fonts/open-iconic/webp/badge-2x.webp
deleted file mode 100644
index 467e4d2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/badge-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/badge-3x.webp b/assets/static/fonts/open-iconic/webp/badge-3x.webp
deleted file mode 100644
index 86ab709..0000000
Binary files a/assets/static/fonts/open-iconic/webp/badge-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/badge-4x.webp b/assets/static/fonts/open-iconic/webp/badge-4x.webp
deleted file mode 100644
index 796dad8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/badge-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/badge-6x.webp b/assets/static/fonts/open-iconic/webp/badge-6x.webp
deleted file mode 100644
index bb50baf..0000000
Binary files a/assets/static/fonts/open-iconic/webp/badge-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/badge-8x.webp b/assets/static/fonts/open-iconic/webp/badge-8x.webp
deleted file mode 100644
index 3778e4f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/badge-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/badge.webp b/assets/static/fonts/open-iconic/webp/badge.webp
deleted file mode 100644
index 2cd8420..0000000
Binary files a/assets/static/fonts/open-iconic/webp/badge.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/ban-2x.webp b/assets/static/fonts/open-iconic/webp/ban-2x.webp
deleted file mode 100644
index a6faa4d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/ban-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/ban-3x.webp b/assets/static/fonts/open-iconic/webp/ban-3x.webp
deleted file mode 100644
index c873598..0000000
Binary files a/assets/static/fonts/open-iconic/webp/ban-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/ban-4x.webp b/assets/static/fonts/open-iconic/webp/ban-4x.webp
deleted file mode 100644
index 51118dd..0000000
Binary files a/assets/static/fonts/open-iconic/webp/ban-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/ban-6x.webp b/assets/static/fonts/open-iconic/webp/ban-6x.webp
deleted file mode 100644
index a2ca18e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/ban-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/ban-8x.webp b/assets/static/fonts/open-iconic/webp/ban-8x.webp
deleted file mode 100644
index 7e31609..0000000
Binary files a/assets/static/fonts/open-iconic/webp/ban-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/ban.webp b/assets/static/fonts/open-iconic/webp/ban.webp
deleted file mode 100644
index 6ca2eeb..0000000
Binary files a/assets/static/fonts/open-iconic/webp/ban.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bar-chart-2x.webp b/assets/static/fonts/open-iconic/webp/bar-chart-2x.webp
deleted file mode 100644
index 970db46..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bar-chart-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bar-chart-3x.webp b/assets/static/fonts/open-iconic/webp/bar-chart-3x.webp
deleted file mode 100644
index b921325..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bar-chart-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bar-chart-4x.webp b/assets/static/fonts/open-iconic/webp/bar-chart-4x.webp
deleted file mode 100644
index ec225c4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bar-chart-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bar-chart-6x.webp b/assets/static/fonts/open-iconic/webp/bar-chart-6x.webp
deleted file mode 100644
index e94cfa0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bar-chart-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bar-chart-8x.webp b/assets/static/fonts/open-iconic/webp/bar-chart-8x.webp
deleted file mode 100644
index 86c748c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bar-chart-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bar-chart.webp b/assets/static/fonts/open-iconic/webp/bar-chart.webp
deleted file mode 100644
index 6e87328..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bar-chart.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/basket-2x.webp b/assets/static/fonts/open-iconic/webp/basket-2x.webp
deleted file mode 100644
index df49805..0000000
Binary files a/assets/static/fonts/open-iconic/webp/basket-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/basket-3x.webp b/assets/static/fonts/open-iconic/webp/basket-3x.webp
deleted file mode 100644
index 71041fd..0000000
Binary files a/assets/static/fonts/open-iconic/webp/basket-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/basket-4x.webp b/assets/static/fonts/open-iconic/webp/basket-4x.webp
deleted file mode 100644
index ad10114..0000000
Binary files a/assets/static/fonts/open-iconic/webp/basket-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/basket-6x.webp b/assets/static/fonts/open-iconic/webp/basket-6x.webp
deleted file mode 100644
index a287c19..0000000
Binary files a/assets/static/fonts/open-iconic/webp/basket-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/basket-8x.webp b/assets/static/fonts/open-iconic/webp/basket-8x.webp
deleted file mode 100644
index d0ecdfe..0000000
Binary files a/assets/static/fonts/open-iconic/webp/basket-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/basket.webp b/assets/static/fonts/open-iconic/webp/basket.webp
deleted file mode 100644
index 3ce992a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/basket.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/battery-empty-2x.webp b/assets/static/fonts/open-iconic/webp/battery-empty-2x.webp
deleted file mode 100644
index 8cf98c4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/battery-empty-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/battery-empty-3x.webp b/assets/static/fonts/open-iconic/webp/battery-empty-3x.webp
deleted file mode 100644
index b191cb4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/battery-empty-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/battery-empty-4x.webp b/assets/static/fonts/open-iconic/webp/battery-empty-4x.webp
deleted file mode 100644
index e8b2a65..0000000
Binary files a/assets/static/fonts/open-iconic/webp/battery-empty-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/battery-empty-6x.webp b/assets/static/fonts/open-iconic/webp/battery-empty-6x.webp
deleted file mode 100644
index 9096654..0000000
Binary files a/assets/static/fonts/open-iconic/webp/battery-empty-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/battery-empty-8x.webp b/assets/static/fonts/open-iconic/webp/battery-empty-8x.webp
deleted file mode 100644
index c885f96..0000000
Binary files a/assets/static/fonts/open-iconic/webp/battery-empty-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/battery-empty.webp b/assets/static/fonts/open-iconic/webp/battery-empty.webp
deleted file mode 100644
index 86f73f9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/battery-empty.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/battery-full-2x.webp b/assets/static/fonts/open-iconic/webp/battery-full-2x.webp
deleted file mode 100644
index a39f056..0000000
Binary files a/assets/static/fonts/open-iconic/webp/battery-full-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/battery-full-3x.webp b/assets/static/fonts/open-iconic/webp/battery-full-3x.webp
deleted file mode 100644
index 007e321..0000000
Binary files a/assets/static/fonts/open-iconic/webp/battery-full-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/battery-full-4x.webp b/assets/static/fonts/open-iconic/webp/battery-full-4x.webp
deleted file mode 100644
index 690649a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/battery-full-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/battery-full-6x.webp b/assets/static/fonts/open-iconic/webp/battery-full-6x.webp
deleted file mode 100644
index 22f34ef..0000000
Binary files a/assets/static/fonts/open-iconic/webp/battery-full-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/battery-full-8x.webp b/assets/static/fonts/open-iconic/webp/battery-full-8x.webp
deleted file mode 100644
index 1ad8fb5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/battery-full-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/battery-full.webp b/assets/static/fonts/open-iconic/webp/battery-full.webp
deleted file mode 100644
index ad71e6a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/battery-full.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/beaker-2x.webp b/assets/static/fonts/open-iconic/webp/beaker-2x.webp
deleted file mode 100644
index 19a3dc3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/beaker-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/beaker-3x.webp b/assets/static/fonts/open-iconic/webp/beaker-3x.webp
deleted file mode 100644
index bfdf748..0000000
Binary files a/assets/static/fonts/open-iconic/webp/beaker-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/beaker-4x.webp b/assets/static/fonts/open-iconic/webp/beaker-4x.webp
deleted file mode 100644
index 5e67d2c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/beaker-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/beaker-6x.webp b/assets/static/fonts/open-iconic/webp/beaker-6x.webp
deleted file mode 100644
index b8b5526..0000000
Binary files a/assets/static/fonts/open-iconic/webp/beaker-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/beaker-8x.webp b/assets/static/fonts/open-iconic/webp/beaker-8x.webp
deleted file mode 100644
index 4288d44..0000000
Binary files a/assets/static/fonts/open-iconic/webp/beaker-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/beaker.webp b/assets/static/fonts/open-iconic/webp/beaker.webp
deleted file mode 100644
index 32b7b1a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/beaker.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bell-2x.webp b/assets/static/fonts/open-iconic/webp/bell-2x.webp
deleted file mode 100644
index b6dd0ca..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bell-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bell-3x.webp b/assets/static/fonts/open-iconic/webp/bell-3x.webp
deleted file mode 100644
index 1192acd..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bell-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bell-4x.webp b/assets/static/fonts/open-iconic/webp/bell-4x.webp
deleted file mode 100644
index 9c7c049..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bell-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bell-6x.webp b/assets/static/fonts/open-iconic/webp/bell-6x.webp
deleted file mode 100644
index 4deb166..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bell-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bell-8x.webp b/assets/static/fonts/open-iconic/webp/bell-8x.webp
deleted file mode 100644
index 1551541..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bell-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bell.webp b/assets/static/fonts/open-iconic/webp/bell.webp
deleted file mode 100644
index d0ebfdd..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bell.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bluetooth-2x.webp b/assets/static/fonts/open-iconic/webp/bluetooth-2x.webp
deleted file mode 100644
index 0f7dfe6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bluetooth-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bluetooth-3x.webp b/assets/static/fonts/open-iconic/webp/bluetooth-3x.webp
deleted file mode 100644
index 5e80a59..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bluetooth-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bluetooth-4x.webp b/assets/static/fonts/open-iconic/webp/bluetooth-4x.webp
deleted file mode 100644
index cf62d51..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bluetooth-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bluetooth-6x.webp b/assets/static/fonts/open-iconic/webp/bluetooth-6x.webp
deleted file mode 100644
index aee590f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bluetooth-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bluetooth-8x.webp b/assets/static/fonts/open-iconic/webp/bluetooth-8x.webp
deleted file mode 100644
index 1a946c4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bluetooth-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bluetooth.webp b/assets/static/fonts/open-iconic/webp/bluetooth.webp
deleted file mode 100644
index 2f959a7..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bluetooth.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bold-2x.webp b/assets/static/fonts/open-iconic/webp/bold-2x.webp
deleted file mode 100644
index 8abb332..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bold-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bold-3x.webp b/assets/static/fonts/open-iconic/webp/bold-3x.webp
deleted file mode 100644
index 6297e3d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bold-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bold-4x.webp b/assets/static/fonts/open-iconic/webp/bold-4x.webp
deleted file mode 100644
index 78fab57..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bold-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bold-6x.webp b/assets/static/fonts/open-iconic/webp/bold-6x.webp
deleted file mode 100644
index 7dc16aa..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bold-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bold-8x.webp b/assets/static/fonts/open-iconic/webp/bold-8x.webp
deleted file mode 100644
index 7e1987f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bold-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bold.webp b/assets/static/fonts/open-iconic/webp/bold.webp
deleted file mode 100644
index 0238914..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bold.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bolt-2x.webp b/assets/static/fonts/open-iconic/webp/bolt-2x.webp
deleted file mode 100644
index 570b67a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bolt-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bolt-3x.webp b/assets/static/fonts/open-iconic/webp/bolt-3x.webp
deleted file mode 100644
index b0c49de..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bolt-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bolt-4x.webp b/assets/static/fonts/open-iconic/webp/bolt-4x.webp
deleted file mode 100644
index d97eb30..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bolt-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bolt-6x.webp b/assets/static/fonts/open-iconic/webp/bolt-6x.webp
deleted file mode 100644
index eac6291..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bolt-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bolt-8x.webp b/assets/static/fonts/open-iconic/webp/bolt-8x.webp
deleted file mode 100644
index 47187c8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bolt-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bolt.webp b/assets/static/fonts/open-iconic/webp/bolt.webp
deleted file mode 100644
index f83ef99..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bolt.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/book-2x.webp b/assets/static/fonts/open-iconic/webp/book-2x.webp
deleted file mode 100644
index 6ab04b1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/book-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/book-3x.webp b/assets/static/fonts/open-iconic/webp/book-3x.webp
deleted file mode 100644
index f60d257..0000000
Binary files a/assets/static/fonts/open-iconic/webp/book-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/book-4x.webp b/assets/static/fonts/open-iconic/webp/book-4x.webp
deleted file mode 100644
index ef17ab1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/book-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/book-6x.webp b/assets/static/fonts/open-iconic/webp/book-6x.webp
deleted file mode 100644
index 3ddc381..0000000
Binary files a/assets/static/fonts/open-iconic/webp/book-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/book-8x.webp b/assets/static/fonts/open-iconic/webp/book-8x.webp
deleted file mode 100644
index c12415d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/book-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/book.webp b/assets/static/fonts/open-iconic/webp/book.webp
deleted file mode 100644
index c72617b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/book.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bookmark-2x.webp b/assets/static/fonts/open-iconic/webp/bookmark-2x.webp
deleted file mode 100644
index bb2313a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bookmark-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bookmark-3x.webp b/assets/static/fonts/open-iconic/webp/bookmark-3x.webp
deleted file mode 100644
index 7c77e29..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bookmark-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bookmark-4x.webp b/assets/static/fonts/open-iconic/webp/bookmark-4x.webp
deleted file mode 100644
index b2779a0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bookmark-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bookmark-6x.webp b/assets/static/fonts/open-iconic/webp/bookmark-6x.webp
deleted file mode 100644
index 0cb9670..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bookmark-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bookmark-8x.webp b/assets/static/fonts/open-iconic/webp/bookmark-8x.webp
deleted file mode 100644
index 8a495d9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bookmark-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bookmark.webp b/assets/static/fonts/open-iconic/webp/bookmark.webp
deleted file mode 100644
index 929b230..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bookmark.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/box-2x.webp b/assets/static/fonts/open-iconic/webp/box-2x.webp
deleted file mode 100644
index c492f6d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/box-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/box-3x.webp b/assets/static/fonts/open-iconic/webp/box-3x.webp
deleted file mode 100644
index eaa44db..0000000
Binary files a/assets/static/fonts/open-iconic/webp/box-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/box-4x.webp b/assets/static/fonts/open-iconic/webp/box-4x.webp
deleted file mode 100644
index de7dda2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/box-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/box-6x.webp b/assets/static/fonts/open-iconic/webp/box-6x.webp
deleted file mode 100644
index 7cb3a3d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/box-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/box-8x.webp b/assets/static/fonts/open-iconic/webp/box-8x.webp
deleted file mode 100644
index 7c599df..0000000
Binary files a/assets/static/fonts/open-iconic/webp/box-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/box.webp b/assets/static/fonts/open-iconic/webp/box.webp
deleted file mode 100644
index 0754785..0000000
Binary files a/assets/static/fonts/open-iconic/webp/box.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/briefcase-2x.webp b/assets/static/fonts/open-iconic/webp/briefcase-2x.webp
deleted file mode 100644
index c041c5c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/briefcase-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/briefcase-3x.webp b/assets/static/fonts/open-iconic/webp/briefcase-3x.webp
deleted file mode 100644
index da9c3bc..0000000
Binary files a/assets/static/fonts/open-iconic/webp/briefcase-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/briefcase-4x.webp b/assets/static/fonts/open-iconic/webp/briefcase-4x.webp
deleted file mode 100644
index 45baaa2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/briefcase-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/briefcase-6x.webp b/assets/static/fonts/open-iconic/webp/briefcase-6x.webp
deleted file mode 100644
index 7f7e4bc..0000000
Binary files a/assets/static/fonts/open-iconic/webp/briefcase-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/briefcase-8x.webp b/assets/static/fonts/open-iconic/webp/briefcase-8x.webp
deleted file mode 100644
index f817e85..0000000
Binary files a/assets/static/fonts/open-iconic/webp/briefcase-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/briefcase.webp b/assets/static/fonts/open-iconic/webp/briefcase.webp
deleted file mode 100644
index 110c562..0000000
Binary files a/assets/static/fonts/open-iconic/webp/briefcase.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/british-pound-2x.webp b/assets/static/fonts/open-iconic/webp/british-pound-2x.webp
deleted file mode 100644
index e8fb2aa..0000000
Binary files a/assets/static/fonts/open-iconic/webp/british-pound-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/british-pound-3x.webp b/assets/static/fonts/open-iconic/webp/british-pound-3x.webp
deleted file mode 100644
index 0615a12..0000000
Binary files a/assets/static/fonts/open-iconic/webp/british-pound-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/british-pound-4x.webp b/assets/static/fonts/open-iconic/webp/british-pound-4x.webp
deleted file mode 100644
index b970537..0000000
Binary files a/assets/static/fonts/open-iconic/webp/british-pound-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/british-pound-6x.webp b/assets/static/fonts/open-iconic/webp/british-pound-6x.webp
deleted file mode 100644
index a0f26b8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/british-pound-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/british-pound-8x.webp b/assets/static/fonts/open-iconic/webp/british-pound-8x.webp
deleted file mode 100644
index 4864da4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/british-pound-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/british-pound.webp b/assets/static/fonts/open-iconic/webp/british-pound.webp
deleted file mode 100644
index c640d64..0000000
Binary files a/assets/static/fonts/open-iconic/webp/british-pound.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/browser-2x.webp b/assets/static/fonts/open-iconic/webp/browser-2x.webp
deleted file mode 100644
index 6f460e5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/browser-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/browser-3x.webp b/assets/static/fonts/open-iconic/webp/browser-3x.webp
deleted file mode 100644
index bed2910..0000000
Binary files a/assets/static/fonts/open-iconic/webp/browser-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/browser-4x.webp b/assets/static/fonts/open-iconic/webp/browser-4x.webp
deleted file mode 100644
index 0a025c6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/browser-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/browser-6x.webp b/assets/static/fonts/open-iconic/webp/browser-6x.webp
deleted file mode 100644
index 7aac9af..0000000
Binary files a/assets/static/fonts/open-iconic/webp/browser-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/browser-8x.webp b/assets/static/fonts/open-iconic/webp/browser-8x.webp
deleted file mode 100644
index 6efc131..0000000
Binary files a/assets/static/fonts/open-iconic/webp/browser-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/browser.webp b/assets/static/fonts/open-iconic/webp/browser.webp
deleted file mode 100644
index 9ae0eef..0000000
Binary files a/assets/static/fonts/open-iconic/webp/browser.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/brush-2x.webp b/assets/static/fonts/open-iconic/webp/brush-2x.webp
deleted file mode 100644
index 6fed885..0000000
Binary files a/assets/static/fonts/open-iconic/webp/brush-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/brush-3x.webp b/assets/static/fonts/open-iconic/webp/brush-3x.webp
deleted file mode 100644
index 4ba5856..0000000
Binary files a/assets/static/fonts/open-iconic/webp/brush-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/brush-4x.webp b/assets/static/fonts/open-iconic/webp/brush-4x.webp
deleted file mode 100644
index 5d09a1d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/brush-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/brush-6x.webp b/assets/static/fonts/open-iconic/webp/brush-6x.webp
deleted file mode 100644
index 0957d18..0000000
Binary files a/assets/static/fonts/open-iconic/webp/brush-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/brush-8x.webp b/assets/static/fonts/open-iconic/webp/brush-8x.webp
deleted file mode 100644
index 57a1ec7..0000000
Binary files a/assets/static/fonts/open-iconic/webp/brush-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/brush.webp b/assets/static/fonts/open-iconic/webp/brush.webp
deleted file mode 100644
index 7709ec9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/brush.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bug-2x.webp b/assets/static/fonts/open-iconic/webp/bug-2x.webp
deleted file mode 100644
index aee17e2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bug-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bug-3x.webp b/assets/static/fonts/open-iconic/webp/bug-3x.webp
deleted file mode 100644
index 0f1f31f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bug-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bug-4x.webp b/assets/static/fonts/open-iconic/webp/bug-4x.webp
deleted file mode 100644
index 23c9502..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bug-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bug-6x.webp b/assets/static/fonts/open-iconic/webp/bug-6x.webp
deleted file mode 100644
index 16c3547..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bug-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bug-8x.webp b/assets/static/fonts/open-iconic/webp/bug-8x.webp
deleted file mode 100644
index 4c7d689..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bug-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bug.webp b/assets/static/fonts/open-iconic/webp/bug.webp
deleted file mode 100644
index ad908e8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bug.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bullhorn-2x.webp b/assets/static/fonts/open-iconic/webp/bullhorn-2x.webp
deleted file mode 100644
index b87511f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bullhorn-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bullhorn-3x.webp b/assets/static/fonts/open-iconic/webp/bullhorn-3x.webp
deleted file mode 100644
index 3eff2c1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bullhorn-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bullhorn-4x.webp b/assets/static/fonts/open-iconic/webp/bullhorn-4x.webp
deleted file mode 100644
index 2dd634b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bullhorn-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bullhorn-6x.webp b/assets/static/fonts/open-iconic/webp/bullhorn-6x.webp
deleted file mode 100644
index f646437..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bullhorn-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bullhorn-8x.webp b/assets/static/fonts/open-iconic/webp/bullhorn-8x.webp
deleted file mode 100644
index 7a9e15d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bullhorn-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/bullhorn.webp b/assets/static/fonts/open-iconic/webp/bullhorn.webp
deleted file mode 100644
index 0adaa42..0000000
Binary files a/assets/static/fonts/open-iconic/webp/bullhorn.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/calculator-2x.webp b/assets/static/fonts/open-iconic/webp/calculator-2x.webp
deleted file mode 100644
index 9115dfb..0000000
Binary files a/assets/static/fonts/open-iconic/webp/calculator-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/calculator-3x.webp b/assets/static/fonts/open-iconic/webp/calculator-3x.webp
deleted file mode 100644
index 362f4b4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/calculator-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/calculator-4x.webp b/assets/static/fonts/open-iconic/webp/calculator-4x.webp
deleted file mode 100644
index 967059e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/calculator-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/calculator-6x.webp b/assets/static/fonts/open-iconic/webp/calculator-6x.webp
deleted file mode 100644
index 3204179..0000000
Binary files a/assets/static/fonts/open-iconic/webp/calculator-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/calculator-8x.webp b/assets/static/fonts/open-iconic/webp/calculator-8x.webp
deleted file mode 100644
index e66deab..0000000
Binary files a/assets/static/fonts/open-iconic/webp/calculator-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/calculator.webp b/assets/static/fonts/open-iconic/webp/calculator.webp
deleted file mode 100644
index da0a66c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/calculator.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/calendar-2x.webp b/assets/static/fonts/open-iconic/webp/calendar-2x.webp
deleted file mode 100644
index 9d2e6ac..0000000
Binary files a/assets/static/fonts/open-iconic/webp/calendar-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/calendar-3x.webp b/assets/static/fonts/open-iconic/webp/calendar-3x.webp
deleted file mode 100644
index 3ccf8de..0000000
Binary files a/assets/static/fonts/open-iconic/webp/calendar-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/calendar-4x.webp b/assets/static/fonts/open-iconic/webp/calendar-4x.webp
deleted file mode 100644
index 745e3cf..0000000
Binary files a/assets/static/fonts/open-iconic/webp/calendar-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/calendar-6x.webp b/assets/static/fonts/open-iconic/webp/calendar-6x.webp
deleted file mode 100644
index ae45f72..0000000
Binary files a/assets/static/fonts/open-iconic/webp/calendar-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/calendar-8x.webp b/assets/static/fonts/open-iconic/webp/calendar-8x.webp
deleted file mode 100644
index f17f284..0000000
Binary files a/assets/static/fonts/open-iconic/webp/calendar-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/calendar.webp b/assets/static/fonts/open-iconic/webp/calendar.webp
deleted file mode 100644
index ca27b5e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/calendar.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/camera-slr-2x.webp b/assets/static/fonts/open-iconic/webp/camera-slr-2x.webp
deleted file mode 100644
index 4747c59..0000000
Binary files a/assets/static/fonts/open-iconic/webp/camera-slr-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/camera-slr-3x.webp b/assets/static/fonts/open-iconic/webp/camera-slr-3x.webp
deleted file mode 100644
index aa7ead3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/camera-slr-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/camera-slr-4x.webp b/assets/static/fonts/open-iconic/webp/camera-slr-4x.webp
deleted file mode 100644
index 6d78cfc..0000000
Binary files a/assets/static/fonts/open-iconic/webp/camera-slr-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/camera-slr-6x.webp b/assets/static/fonts/open-iconic/webp/camera-slr-6x.webp
deleted file mode 100644
index 662d9cd..0000000
Binary files a/assets/static/fonts/open-iconic/webp/camera-slr-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/camera-slr-8x.webp b/assets/static/fonts/open-iconic/webp/camera-slr-8x.webp
deleted file mode 100644
index 4d97b08..0000000
Binary files a/assets/static/fonts/open-iconic/webp/camera-slr-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/camera-slr.webp b/assets/static/fonts/open-iconic/webp/camera-slr.webp
deleted file mode 100644
index d323ccb..0000000
Binary files a/assets/static/fonts/open-iconic/webp/camera-slr.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/caret-bottom-2x.webp b/assets/static/fonts/open-iconic/webp/caret-bottom-2x.webp
deleted file mode 100644
index 8b9f0a3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/caret-bottom-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/caret-bottom-3x.webp b/assets/static/fonts/open-iconic/webp/caret-bottom-3x.webp
deleted file mode 100644
index fd282a0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/caret-bottom-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/caret-bottom-4x.webp b/assets/static/fonts/open-iconic/webp/caret-bottom-4x.webp
deleted file mode 100644
index f878c54..0000000
Binary files a/assets/static/fonts/open-iconic/webp/caret-bottom-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/caret-bottom-6x.webp b/assets/static/fonts/open-iconic/webp/caret-bottom-6x.webp
deleted file mode 100644
index b73fa97..0000000
Binary files a/assets/static/fonts/open-iconic/webp/caret-bottom-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/caret-bottom-8x.webp b/assets/static/fonts/open-iconic/webp/caret-bottom-8x.webp
deleted file mode 100644
index 572a01c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/caret-bottom-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/caret-bottom.webp b/assets/static/fonts/open-iconic/webp/caret-bottom.webp
deleted file mode 100644
index 445776c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/caret-bottom.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/caret-left-2x.webp b/assets/static/fonts/open-iconic/webp/caret-left-2x.webp
deleted file mode 100644
index c3c945a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/caret-left-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/caret-left-3x.webp b/assets/static/fonts/open-iconic/webp/caret-left-3x.webp
deleted file mode 100644
index 2fcd22e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/caret-left-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/caret-left-4x.webp b/assets/static/fonts/open-iconic/webp/caret-left-4x.webp
deleted file mode 100644
index 08f7967..0000000
Binary files a/assets/static/fonts/open-iconic/webp/caret-left-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/caret-left-6x.webp b/assets/static/fonts/open-iconic/webp/caret-left-6x.webp
deleted file mode 100644
index 99bc242..0000000
Binary files a/assets/static/fonts/open-iconic/webp/caret-left-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/caret-left-8x.webp b/assets/static/fonts/open-iconic/webp/caret-left-8x.webp
deleted file mode 100644
index 292b5ea..0000000
Binary files a/assets/static/fonts/open-iconic/webp/caret-left-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/caret-left.webp b/assets/static/fonts/open-iconic/webp/caret-left.webp
deleted file mode 100644
index a24e0ee..0000000
Binary files a/assets/static/fonts/open-iconic/webp/caret-left.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/caret-right-2x.webp b/assets/static/fonts/open-iconic/webp/caret-right-2x.webp
deleted file mode 100644
index 10a650d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/caret-right-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/caret-right-3x.webp b/assets/static/fonts/open-iconic/webp/caret-right-3x.webp
deleted file mode 100644
index f2788cf..0000000
Binary files a/assets/static/fonts/open-iconic/webp/caret-right-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/caret-right-4x.webp b/assets/static/fonts/open-iconic/webp/caret-right-4x.webp
deleted file mode 100644
index 2e42521..0000000
Binary files a/assets/static/fonts/open-iconic/webp/caret-right-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/caret-right-6x.webp b/assets/static/fonts/open-iconic/webp/caret-right-6x.webp
deleted file mode 100644
index 9cec0a8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/caret-right-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/caret-right-8x.webp b/assets/static/fonts/open-iconic/webp/caret-right-8x.webp
deleted file mode 100644
index 685f193..0000000
Binary files a/assets/static/fonts/open-iconic/webp/caret-right-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/caret-right.webp b/assets/static/fonts/open-iconic/webp/caret-right.webp
deleted file mode 100644
index c6429c5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/caret-right.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/caret-top-2x.webp b/assets/static/fonts/open-iconic/webp/caret-top-2x.webp
deleted file mode 100644
index 0483f18..0000000
Binary files a/assets/static/fonts/open-iconic/webp/caret-top-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/caret-top-3x.webp b/assets/static/fonts/open-iconic/webp/caret-top-3x.webp
deleted file mode 100644
index f55efd1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/caret-top-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/caret-top-4x.webp b/assets/static/fonts/open-iconic/webp/caret-top-4x.webp
deleted file mode 100644
index a3709e1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/caret-top-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/caret-top-6x.webp b/assets/static/fonts/open-iconic/webp/caret-top-6x.webp
deleted file mode 100644
index ce546e3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/caret-top-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/caret-top-8x.webp b/assets/static/fonts/open-iconic/webp/caret-top-8x.webp
deleted file mode 100644
index 3a03cd1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/caret-top-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/caret-top.webp b/assets/static/fonts/open-iconic/webp/caret-top.webp
deleted file mode 100644
index 1c4a359..0000000
Binary files a/assets/static/fonts/open-iconic/webp/caret-top.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cart-2x.webp b/assets/static/fonts/open-iconic/webp/cart-2x.webp
deleted file mode 100644
index f6bf9b4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cart-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cart-3x.webp b/assets/static/fonts/open-iconic/webp/cart-3x.webp
deleted file mode 100644
index e22de55..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cart-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cart-4x.webp b/assets/static/fonts/open-iconic/webp/cart-4x.webp
deleted file mode 100644
index 1559026..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cart-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cart-6x.webp b/assets/static/fonts/open-iconic/webp/cart-6x.webp
deleted file mode 100644
index eb5f9c5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cart-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cart-8x.webp b/assets/static/fonts/open-iconic/webp/cart-8x.webp
deleted file mode 100644
index e0b173e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cart-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cart.webp b/assets/static/fonts/open-iconic/webp/cart.webp
deleted file mode 100644
index c288d71..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cart.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chat-2x.webp b/assets/static/fonts/open-iconic/webp/chat-2x.webp
deleted file mode 100644
index b81ce48..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chat-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chat-3x.webp b/assets/static/fonts/open-iconic/webp/chat-3x.webp
deleted file mode 100644
index 64c121e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chat-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chat-4x.webp b/assets/static/fonts/open-iconic/webp/chat-4x.webp
deleted file mode 100644
index 5222295..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chat-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chat-6x.webp b/assets/static/fonts/open-iconic/webp/chat-6x.webp
deleted file mode 100644
index 376178b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chat-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chat-8x.webp b/assets/static/fonts/open-iconic/webp/chat-8x.webp
deleted file mode 100644
index 035ddc5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chat-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chat.webp b/assets/static/fonts/open-iconic/webp/chat.webp
deleted file mode 100644
index 4b53725..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chat.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/check-2x.webp b/assets/static/fonts/open-iconic/webp/check-2x.webp
deleted file mode 100644
index a71c96e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/check-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/check-3x.webp b/assets/static/fonts/open-iconic/webp/check-3x.webp
deleted file mode 100644
index cc649f8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/check-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/check-4x.webp b/assets/static/fonts/open-iconic/webp/check-4x.webp
deleted file mode 100644
index 5ac0184..0000000
Binary files a/assets/static/fonts/open-iconic/webp/check-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/check-6x.webp b/assets/static/fonts/open-iconic/webp/check-6x.webp
deleted file mode 100644
index 0052219..0000000
Binary files a/assets/static/fonts/open-iconic/webp/check-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/check-8x.webp b/assets/static/fonts/open-iconic/webp/check-8x.webp
deleted file mode 100644
index 7bcb6bc..0000000
Binary files a/assets/static/fonts/open-iconic/webp/check-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/check.webp b/assets/static/fonts/open-iconic/webp/check.webp
deleted file mode 100644
index be3279f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/check.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chevron-bottom-2x.webp b/assets/static/fonts/open-iconic/webp/chevron-bottom-2x.webp
deleted file mode 100644
index c46e0b4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chevron-bottom-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chevron-bottom-3x.webp b/assets/static/fonts/open-iconic/webp/chevron-bottom-3x.webp
deleted file mode 100644
index ed93e7a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chevron-bottom-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chevron-bottom-4x.webp b/assets/static/fonts/open-iconic/webp/chevron-bottom-4x.webp
deleted file mode 100644
index 95c5643..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chevron-bottom-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chevron-bottom-6x.webp b/assets/static/fonts/open-iconic/webp/chevron-bottom-6x.webp
deleted file mode 100644
index dd07e2b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chevron-bottom-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chevron-bottom-8x.webp b/assets/static/fonts/open-iconic/webp/chevron-bottom-8x.webp
deleted file mode 100644
index a211688..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chevron-bottom-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chevron-bottom.webp b/assets/static/fonts/open-iconic/webp/chevron-bottom.webp
deleted file mode 100644
index 07412a3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chevron-bottom.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chevron-left-2x.webp b/assets/static/fonts/open-iconic/webp/chevron-left-2x.webp
deleted file mode 100644
index fae05d6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chevron-left-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chevron-left-3x.webp b/assets/static/fonts/open-iconic/webp/chevron-left-3x.webp
deleted file mode 100644
index a65e73b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chevron-left-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chevron-left-4x.webp b/assets/static/fonts/open-iconic/webp/chevron-left-4x.webp
deleted file mode 100644
index e872a54..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chevron-left-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chevron-left-6x.webp b/assets/static/fonts/open-iconic/webp/chevron-left-6x.webp
deleted file mode 100644
index 10696a1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chevron-left-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chevron-left-8x.webp b/assets/static/fonts/open-iconic/webp/chevron-left-8x.webp
deleted file mode 100644
index 521b065..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chevron-left-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chevron-left.webp b/assets/static/fonts/open-iconic/webp/chevron-left.webp
deleted file mode 100644
index 5ae13ff..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chevron-left.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chevron-right-2x.webp b/assets/static/fonts/open-iconic/webp/chevron-right-2x.webp
deleted file mode 100644
index 515c767..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chevron-right-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chevron-right-3x.webp b/assets/static/fonts/open-iconic/webp/chevron-right-3x.webp
deleted file mode 100644
index 4166134..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chevron-right-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chevron-right-4x.webp b/assets/static/fonts/open-iconic/webp/chevron-right-4x.webp
deleted file mode 100644
index 4d7760e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chevron-right-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chevron-right-6x.webp b/assets/static/fonts/open-iconic/webp/chevron-right-6x.webp
deleted file mode 100644
index beb6955..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chevron-right-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chevron-right-8x.webp b/assets/static/fonts/open-iconic/webp/chevron-right-8x.webp
deleted file mode 100644
index 937deca..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chevron-right-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chevron-right.webp b/assets/static/fonts/open-iconic/webp/chevron-right.webp
deleted file mode 100644
index 419efe5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chevron-right.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chevron-top-2x.webp b/assets/static/fonts/open-iconic/webp/chevron-top-2x.webp
deleted file mode 100644
index 8395b0b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chevron-top-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chevron-top-3x.webp b/assets/static/fonts/open-iconic/webp/chevron-top-3x.webp
deleted file mode 100644
index 5de1e60..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chevron-top-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chevron-top-4x.webp b/assets/static/fonts/open-iconic/webp/chevron-top-4x.webp
deleted file mode 100644
index 504f722..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chevron-top-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chevron-top-6x.webp b/assets/static/fonts/open-iconic/webp/chevron-top-6x.webp
deleted file mode 100644
index 5bfe7ae..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chevron-top-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chevron-top-8x.webp b/assets/static/fonts/open-iconic/webp/chevron-top-8x.webp
deleted file mode 100644
index 6438489..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chevron-top-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/chevron-top.webp b/assets/static/fonts/open-iconic/webp/chevron-top.webp
deleted file mode 100644
index 007fc9f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/chevron-top.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/circle-check-2x.webp b/assets/static/fonts/open-iconic/webp/circle-check-2x.webp
deleted file mode 100644
index 6911532..0000000
Binary files a/assets/static/fonts/open-iconic/webp/circle-check-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/circle-check-3x.webp b/assets/static/fonts/open-iconic/webp/circle-check-3x.webp
deleted file mode 100644
index f2b91d7..0000000
Binary files a/assets/static/fonts/open-iconic/webp/circle-check-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/circle-check-4x.webp b/assets/static/fonts/open-iconic/webp/circle-check-4x.webp
deleted file mode 100644
index 20316f6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/circle-check-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/circle-check-6x.webp b/assets/static/fonts/open-iconic/webp/circle-check-6x.webp
deleted file mode 100644
index b01d009..0000000
Binary files a/assets/static/fonts/open-iconic/webp/circle-check-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/circle-check-8x.webp b/assets/static/fonts/open-iconic/webp/circle-check-8x.webp
deleted file mode 100644
index 74b84ee..0000000
Binary files a/assets/static/fonts/open-iconic/webp/circle-check-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/circle-check.webp b/assets/static/fonts/open-iconic/webp/circle-check.webp
deleted file mode 100644
index 7216bac..0000000
Binary files a/assets/static/fonts/open-iconic/webp/circle-check.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/circle-x-2x.webp b/assets/static/fonts/open-iconic/webp/circle-x-2x.webp
deleted file mode 100644
index 3574e80..0000000
Binary files a/assets/static/fonts/open-iconic/webp/circle-x-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/circle-x-3x.webp b/assets/static/fonts/open-iconic/webp/circle-x-3x.webp
deleted file mode 100644
index bc75500..0000000
Binary files a/assets/static/fonts/open-iconic/webp/circle-x-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/circle-x-4x.webp b/assets/static/fonts/open-iconic/webp/circle-x-4x.webp
deleted file mode 100644
index 409607c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/circle-x-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/circle-x-6x.webp b/assets/static/fonts/open-iconic/webp/circle-x-6x.webp
deleted file mode 100644
index 04429c5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/circle-x-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/circle-x-8x.webp b/assets/static/fonts/open-iconic/webp/circle-x-8x.webp
deleted file mode 100644
index f7f42b8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/circle-x-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/circle-x.webp b/assets/static/fonts/open-iconic/webp/circle-x.webp
deleted file mode 100644
index 597b162..0000000
Binary files a/assets/static/fonts/open-iconic/webp/circle-x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/clipboard-2x.webp b/assets/static/fonts/open-iconic/webp/clipboard-2x.webp
deleted file mode 100644
index f9a9b81..0000000
Binary files a/assets/static/fonts/open-iconic/webp/clipboard-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/clipboard-3x.webp b/assets/static/fonts/open-iconic/webp/clipboard-3x.webp
deleted file mode 100644
index 4272cef..0000000
Binary files a/assets/static/fonts/open-iconic/webp/clipboard-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/clipboard-4x.webp b/assets/static/fonts/open-iconic/webp/clipboard-4x.webp
deleted file mode 100644
index 0de8d18..0000000
Binary files a/assets/static/fonts/open-iconic/webp/clipboard-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/clipboard-6x.webp b/assets/static/fonts/open-iconic/webp/clipboard-6x.webp
deleted file mode 100644
index e3ca5b0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/clipboard-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/clipboard-8x.webp b/assets/static/fonts/open-iconic/webp/clipboard-8x.webp
deleted file mode 100644
index 34f5b0f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/clipboard-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/clipboard.webp b/assets/static/fonts/open-iconic/webp/clipboard.webp
deleted file mode 100644
index 5111268..0000000
Binary files a/assets/static/fonts/open-iconic/webp/clipboard.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/clock-2x.webp b/assets/static/fonts/open-iconic/webp/clock-2x.webp
deleted file mode 100644
index 4b14727..0000000
Binary files a/assets/static/fonts/open-iconic/webp/clock-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/clock-3x.webp b/assets/static/fonts/open-iconic/webp/clock-3x.webp
deleted file mode 100644
index 422e6be..0000000
Binary files a/assets/static/fonts/open-iconic/webp/clock-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/clock-4x.webp b/assets/static/fonts/open-iconic/webp/clock-4x.webp
deleted file mode 100644
index 103a0db..0000000
Binary files a/assets/static/fonts/open-iconic/webp/clock-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/clock-6x.webp b/assets/static/fonts/open-iconic/webp/clock-6x.webp
deleted file mode 100644
index 33698a2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/clock-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/clock-8x.webp b/assets/static/fonts/open-iconic/webp/clock-8x.webp
deleted file mode 100644
index e2eba0e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/clock-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/clock.webp b/assets/static/fonts/open-iconic/webp/clock.webp
deleted file mode 100644
index 752aa69..0000000
Binary files a/assets/static/fonts/open-iconic/webp/clock.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cloud-2x.webp b/assets/static/fonts/open-iconic/webp/cloud-2x.webp
deleted file mode 100644
index 917ccb5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cloud-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cloud-3x.webp b/assets/static/fonts/open-iconic/webp/cloud-3x.webp
deleted file mode 100644
index bb1c6ab..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cloud-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cloud-4x.webp b/assets/static/fonts/open-iconic/webp/cloud-4x.webp
deleted file mode 100644
index deb206d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cloud-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cloud-6x.webp b/assets/static/fonts/open-iconic/webp/cloud-6x.webp
deleted file mode 100644
index f9b1489..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cloud-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cloud-8x.webp b/assets/static/fonts/open-iconic/webp/cloud-8x.webp
deleted file mode 100644
index a2db4b6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cloud-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cloud-download-2x.webp b/assets/static/fonts/open-iconic/webp/cloud-download-2x.webp
deleted file mode 100644
index 9cdb941..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cloud-download-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cloud-download-3x.webp b/assets/static/fonts/open-iconic/webp/cloud-download-3x.webp
deleted file mode 100644
index 0ac4aa0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cloud-download-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cloud-download-4x.webp b/assets/static/fonts/open-iconic/webp/cloud-download-4x.webp
deleted file mode 100644
index 2f164c7..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cloud-download-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cloud-download-6x.webp b/assets/static/fonts/open-iconic/webp/cloud-download-6x.webp
deleted file mode 100644
index c25726c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cloud-download-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cloud-download-8x.webp b/assets/static/fonts/open-iconic/webp/cloud-download-8x.webp
deleted file mode 100644
index 4986f4f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cloud-download-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cloud-download.webp b/assets/static/fonts/open-iconic/webp/cloud-download.webp
deleted file mode 100644
index bacc3f3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cloud-download.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cloud-upload-2x.webp b/assets/static/fonts/open-iconic/webp/cloud-upload-2x.webp
deleted file mode 100644
index 8388e8b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cloud-upload-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cloud-upload-3x.webp b/assets/static/fonts/open-iconic/webp/cloud-upload-3x.webp
deleted file mode 100644
index f51a7c9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cloud-upload-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cloud-upload-4x.webp b/assets/static/fonts/open-iconic/webp/cloud-upload-4x.webp
deleted file mode 100644
index 6d192b4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cloud-upload-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cloud-upload-6x.webp b/assets/static/fonts/open-iconic/webp/cloud-upload-6x.webp
deleted file mode 100644
index 25ec891..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cloud-upload-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cloud-upload-8x.webp b/assets/static/fonts/open-iconic/webp/cloud-upload-8x.webp
deleted file mode 100644
index 3d1eae9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cloud-upload-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cloud-upload.webp b/assets/static/fonts/open-iconic/webp/cloud-upload.webp
deleted file mode 100644
index 8c2f376..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cloud-upload.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cloud.webp b/assets/static/fonts/open-iconic/webp/cloud.webp
deleted file mode 100644
index fa25a34..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cloud.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cloudy-2x.webp b/assets/static/fonts/open-iconic/webp/cloudy-2x.webp
deleted file mode 100644
index 42d7265..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cloudy-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cloudy-3x.webp b/assets/static/fonts/open-iconic/webp/cloudy-3x.webp
deleted file mode 100644
index 6cd8f77..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cloudy-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cloudy-4x.webp b/assets/static/fonts/open-iconic/webp/cloudy-4x.webp
deleted file mode 100644
index 6eeda49..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cloudy-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cloudy-6x.webp b/assets/static/fonts/open-iconic/webp/cloudy-6x.webp
deleted file mode 100644
index 650df05..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cloudy-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cloudy-8x.webp b/assets/static/fonts/open-iconic/webp/cloudy-8x.webp
deleted file mode 100644
index 83f590c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cloudy-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cloudy.webp b/assets/static/fonts/open-iconic/webp/cloudy.webp
deleted file mode 100644
index 44310a8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cloudy.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/code-2x.webp b/assets/static/fonts/open-iconic/webp/code-2x.webp
deleted file mode 100644
index c379839..0000000
Binary files a/assets/static/fonts/open-iconic/webp/code-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/code-3x.webp b/assets/static/fonts/open-iconic/webp/code-3x.webp
deleted file mode 100644
index 3ea181a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/code-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/code-4x.webp b/assets/static/fonts/open-iconic/webp/code-4x.webp
deleted file mode 100644
index 85b7e0c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/code-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/code-6x.webp b/assets/static/fonts/open-iconic/webp/code-6x.webp
deleted file mode 100644
index 6ec8922..0000000
Binary files a/assets/static/fonts/open-iconic/webp/code-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/code-8x.webp b/assets/static/fonts/open-iconic/webp/code-8x.webp
deleted file mode 100644
index 37ad9c9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/code-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/code.webp b/assets/static/fonts/open-iconic/webp/code.webp
deleted file mode 100644
index 5ddf9b4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/code.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cog-2x.webp b/assets/static/fonts/open-iconic/webp/cog-2x.webp
deleted file mode 100644
index ee09349..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cog-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cog-3x.webp b/assets/static/fonts/open-iconic/webp/cog-3x.webp
deleted file mode 100644
index 5c2cd86..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cog-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cog-4x.webp b/assets/static/fonts/open-iconic/webp/cog-4x.webp
deleted file mode 100644
index 736af6f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cog-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cog-6x.webp b/assets/static/fonts/open-iconic/webp/cog-6x.webp
deleted file mode 100644
index 5a9ccb5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cog-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cog-8x.webp b/assets/static/fonts/open-iconic/webp/cog-8x.webp
deleted file mode 100644
index eac7adf..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cog-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/cog.webp b/assets/static/fonts/open-iconic/webp/cog.webp
deleted file mode 100644
index c75aba3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/cog.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/collapse-down-2x.webp b/assets/static/fonts/open-iconic/webp/collapse-down-2x.webp
deleted file mode 100644
index b69d250..0000000
Binary files a/assets/static/fonts/open-iconic/webp/collapse-down-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/collapse-down-3x.webp b/assets/static/fonts/open-iconic/webp/collapse-down-3x.webp
deleted file mode 100644
index 596f23c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/collapse-down-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/collapse-down-4x.webp b/assets/static/fonts/open-iconic/webp/collapse-down-4x.webp
deleted file mode 100644
index e633469..0000000
Binary files a/assets/static/fonts/open-iconic/webp/collapse-down-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/collapse-down-6x.webp b/assets/static/fonts/open-iconic/webp/collapse-down-6x.webp
deleted file mode 100644
index b9363d2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/collapse-down-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/collapse-down-8x.webp b/assets/static/fonts/open-iconic/webp/collapse-down-8x.webp
deleted file mode 100644
index 25ad946..0000000
Binary files a/assets/static/fonts/open-iconic/webp/collapse-down-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/collapse-down.webp b/assets/static/fonts/open-iconic/webp/collapse-down.webp
deleted file mode 100644
index 39f639f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/collapse-down.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/collapse-left-2x.webp b/assets/static/fonts/open-iconic/webp/collapse-left-2x.webp
deleted file mode 100644
index ad94ea4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/collapse-left-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/collapse-left-3x.webp b/assets/static/fonts/open-iconic/webp/collapse-left-3x.webp
deleted file mode 100644
index e9dd819..0000000
Binary files a/assets/static/fonts/open-iconic/webp/collapse-left-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/collapse-left-4x.webp b/assets/static/fonts/open-iconic/webp/collapse-left-4x.webp
deleted file mode 100644
index f03413e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/collapse-left-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/collapse-left-6x.webp b/assets/static/fonts/open-iconic/webp/collapse-left-6x.webp
deleted file mode 100644
index e0a3750..0000000
Binary files a/assets/static/fonts/open-iconic/webp/collapse-left-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/collapse-left-8x.webp b/assets/static/fonts/open-iconic/webp/collapse-left-8x.webp
deleted file mode 100644
index 34c2eaf..0000000
Binary files a/assets/static/fonts/open-iconic/webp/collapse-left-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/collapse-left.webp b/assets/static/fonts/open-iconic/webp/collapse-left.webp
deleted file mode 100644
index f174743..0000000
Binary files a/assets/static/fonts/open-iconic/webp/collapse-left.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/collapse-right-2x.webp b/assets/static/fonts/open-iconic/webp/collapse-right-2x.webp
deleted file mode 100644
index bffd341..0000000
Binary files a/assets/static/fonts/open-iconic/webp/collapse-right-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/collapse-right-3x.webp b/assets/static/fonts/open-iconic/webp/collapse-right-3x.webp
deleted file mode 100644
index 6851360..0000000
Binary files a/assets/static/fonts/open-iconic/webp/collapse-right-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/collapse-right-4x.webp b/assets/static/fonts/open-iconic/webp/collapse-right-4x.webp
deleted file mode 100644
index 139702e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/collapse-right-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/collapse-right-6x.webp b/assets/static/fonts/open-iconic/webp/collapse-right-6x.webp
deleted file mode 100644
index 3638f10..0000000
Binary files a/assets/static/fonts/open-iconic/webp/collapse-right-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/collapse-right-8x.webp b/assets/static/fonts/open-iconic/webp/collapse-right-8x.webp
deleted file mode 100644
index dc80dda..0000000
Binary files a/assets/static/fonts/open-iconic/webp/collapse-right-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/collapse-right.webp b/assets/static/fonts/open-iconic/webp/collapse-right.webp
deleted file mode 100644
index a51423a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/collapse-right.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/collapse-up-2x.webp b/assets/static/fonts/open-iconic/webp/collapse-up-2x.webp
deleted file mode 100644
index d9b837c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/collapse-up-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/collapse-up-3x.webp b/assets/static/fonts/open-iconic/webp/collapse-up-3x.webp
deleted file mode 100644
index 79c5089..0000000
Binary files a/assets/static/fonts/open-iconic/webp/collapse-up-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/collapse-up-4x.webp b/assets/static/fonts/open-iconic/webp/collapse-up-4x.webp
deleted file mode 100644
index a1268c9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/collapse-up-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/collapse-up-6x.webp b/assets/static/fonts/open-iconic/webp/collapse-up-6x.webp
deleted file mode 100644
index f3a269f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/collapse-up-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/collapse-up-8x.webp b/assets/static/fonts/open-iconic/webp/collapse-up-8x.webp
deleted file mode 100644
index dce3960..0000000
Binary files a/assets/static/fonts/open-iconic/webp/collapse-up-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/collapse-up.webp b/assets/static/fonts/open-iconic/webp/collapse-up.webp
deleted file mode 100644
index a8ba1cc..0000000
Binary files a/assets/static/fonts/open-iconic/webp/collapse-up.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/command-2x.webp b/assets/static/fonts/open-iconic/webp/command-2x.webp
deleted file mode 100644
index ea0e1ad..0000000
Binary files a/assets/static/fonts/open-iconic/webp/command-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/command-3x.webp b/assets/static/fonts/open-iconic/webp/command-3x.webp
deleted file mode 100644
index 0c86777..0000000
Binary files a/assets/static/fonts/open-iconic/webp/command-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/command-4x.webp b/assets/static/fonts/open-iconic/webp/command-4x.webp
deleted file mode 100644
index d8bad71..0000000
Binary files a/assets/static/fonts/open-iconic/webp/command-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/command-6x.webp b/assets/static/fonts/open-iconic/webp/command-6x.webp
deleted file mode 100644
index 2243b09..0000000
Binary files a/assets/static/fonts/open-iconic/webp/command-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/command-8x.webp b/assets/static/fonts/open-iconic/webp/command-8x.webp
deleted file mode 100644
index 3cc247e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/command-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/command.webp b/assets/static/fonts/open-iconic/webp/command.webp
deleted file mode 100644
index 9b0ef26..0000000
Binary files a/assets/static/fonts/open-iconic/webp/command.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/comment-square-2x.webp b/assets/static/fonts/open-iconic/webp/comment-square-2x.webp
deleted file mode 100644
index 23ad6ed..0000000
Binary files a/assets/static/fonts/open-iconic/webp/comment-square-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/comment-square-3x.webp b/assets/static/fonts/open-iconic/webp/comment-square-3x.webp
deleted file mode 100644
index 95cd319..0000000
Binary files a/assets/static/fonts/open-iconic/webp/comment-square-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/comment-square-4x.webp b/assets/static/fonts/open-iconic/webp/comment-square-4x.webp
deleted file mode 100644
index f97f0c1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/comment-square-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/comment-square-6x.webp b/assets/static/fonts/open-iconic/webp/comment-square-6x.webp
deleted file mode 100644
index a361597..0000000
Binary files a/assets/static/fonts/open-iconic/webp/comment-square-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/comment-square-8x.webp b/assets/static/fonts/open-iconic/webp/comment-square-8x.webp
deleted file mode 100644
index 6b3c313..0000000
Binary files a/assets/static/fonts/open-iconic/webp/comment-square-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/comment-square.webp b/assets/static/fonts/open-iconic/webp/comment-square.webp
deleted file mode 100644
index 13516c6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/comment-square.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/compass-2x.webp b/assets/static/fonts/open-iconic/webp/compass-2x.webp
deleted file mode 100644
index 4fbba9b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/compass-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/compass-3x.webp b/assets/static/fonts/open-iconic/webp/compass-3x.webp
deleted file mode 100644
index c38e43d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/compass-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/compass-4x.webp b/assets/static/fonts/open-iconic/webp/compass-4x.webp
deleted file mode 100644
index c58e23b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/compass-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/compass-6x.webp b/assets/static/fonts/open-iconic/webp/compass-6x.webp
deleted file mode 100644
index 1b22622..0000000
Binary files a/assets/static/fonts/open-iconic/webp/compass-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/compass-8x.webp b/assets/static/fonts/open-iconic/webp/compass-8x.webp
deleted file mode 100644
index b5b4b0b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/compass-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/compass.webp b/assets/static/fonts/open-iconic/webp/compass.webp
deleted file mode 100644
index 7bbe5e3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/compass.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/contrast-2x.webp b/assets/static/fonts/open-iconic/webp/contrast-2x.webp
deleted file mode 100644
index 3d8aba3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/contrast-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/contrast-3x.webp b/assets/static/fonts/open-iconic/webp/contrast-3x.webp
deleted file mode 100644
index 6738444..0000000
Binary files a/assets/static/fonts/open-iconic/webp/contrast-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/contrast-4x.webp b/assets/static/fonts/open-iconic/webp/contrast-4x.webp
deleted file mode 100644
index 2d70149..0000000
Binary files a/assets/static/fonts/open-iconic/webp/contrast-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/contrast-6x.webp b/assets/static/fonts/open-iconic/webp/contrast-6x.webp
deleted file mode 100644
index de9b811..0000000
Binary files a/assets/static/fonts/open-iconic/webp/contrast-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/contrast-8x.webp b/assets/static/fonts/open-iconic/webp/contrast-8x.webp
deleted file mode 100644
index 1190fbe..0000000
Binary files a/assets/static/fonts/open-iconic/webp/contrast-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/contrast.webp b/assets/static/fonts/open-iconic/webp/contrast.webp
deleted file mode 100644
index 4704c50..0000000
Binary files a/assets/static/fonts/open-iconic/webp/contrast.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/copywriting-2x.webp b/assets/static/fonts/open-iconic/webp/copywriting-2x.webp
deleted file mode 100644
index 6776784..0000000
Binary files a/assets/static/fonts/open-iconic/webp/copywriting-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/copywriting-3x.webp b/assets/static/fonts/open-iconic/webp/copywriting-3x.webp
deleted file mode 100644
index 7476192..0000000
Binary files a/assets/static/fonts/open-iconic/webp/copywriting-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/copywriting-4x.webp b/assets/static/fonts/open-iconic/webp/copywriting-4x.webp
deleted file mode 100644
index b8600d2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/copywriting-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/copywriting-6x.webp b/assets/static/fonts/open-iconic/webp/copywriting-6x.webp
deleted file mode 100644
index ec673d4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/copywriting-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/copywriting-8x.webp b/assets/static/fonts/open-iconic/webp/copywriting-8x.webp
deleted file mode 100644
index ac395c0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/copywriting-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/copywriting.webp b/assets/static/fonts/open-iconic/webp/copywriting.webp
deleted file mode 100644
index 7c7ee2c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/copywriting.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/credit-card-2x.webp b/assets/static/fonts/open-iconic/webp/credit-card-2x.webp
deleted file mode 100644
index af2c321..0000000
Binary files a/assets/static/fonts/open-iconic/webp/credit-card-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/credit-card-3x.webp b/assets/static/fonts/open-iconic/webp/credit-card-3x.webp
deleted file mode 100644
index a354a05..0000000
Binary files a/assets/static/fonts/open-iconic/webp/credit-card-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/credit-card-4x.webp b/assets/static/fonts/open-iconic/webp/credit-card-4x.webp
deleted file mode 100644
index b98e47b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/credit-card-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/credit-card-6x.webp b/assets/static/fonts/open-iconic/webp/credit-card-6x.webp
deleted file mode 100644
index 7de83a4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/credit-card-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/credit-card-8x.webp b/assets/static/fonts/open-iconic/webp/credit-card-8x.webp
deleted file mode 100644
index bc1decf..0000000
Binary files a/assets/static/fonts/open-iconic/webp/credit-card-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/credit-card.webp b/assets/static/fonts/open-iconic/webp/credit-card.webp
deleted file mode 100644
index fee9893..0000000
Binary files a/assets/static/fonts/open-iconic/webp/credit-card.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/crop-2x.webp b/assets/static/fonts/open-iconic/webp/crop-2x.webp
deleted file mode 100644
index 73ac2f6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/crop-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/crop-3x.webp b/assets/static/fonts/open-iconic/webp/crop-3x.webp
deleted file mode 100644
index 6004677..0000000
Binary files a/assets/static/fonts/open-iconic/webp/crop-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/crop-4x.webp b/assets/static/fonts/open-iconic/webp/crop-4x.webp
deleted file mode 100644
index 435d8a8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/crop-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/crop-6x.webp b/assets/static/fonts/open-iconic/webp/crop-6x.webp
deleted file mode 100644
index 21c1b68..0000000
Binary files a/assets/static/fonts/open-iconic/webp/crop-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/crop-8x.webp b/assets/static/fonts/open-iconic/webp/crop-8x.webp
deleted file mode 100644
index 6600f84..0000000
Binary files a/assets/static/fonts/open-iconic/webp/crop-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/crop.webp b/assets/static/fonts/open-iconic/webp/crop.webp
deleted file mode 100644
index 5337726..0000000
Binary files a/assets/static/fonts/open-iconic/webp/crop.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/dashboard-2x.webp b/assets/static/fonts/open-iconic/webp/dashboard-2x.webp
deleted file mode 100644
index 7db9fff..0000000
Binary files a/assets/static/fonts/open-iconic/webp/dashboard-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/dashboard-3x.webp b/assets/static/fonts/open-iconic/webp/dashboard-3x.webp
deleted file mode 100644
index cc57665..0000000
Binary files a/assets/static/fonts/open-iconic/webp/dashboard-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/dashboard-4x.webp b/assets/static/fonts/open-iconic/webp/dashboard-4x.webp
deleted file mode 100644
index 9dd7571..0000000
Binary files a/assets/static/fonts/open-iconic/webp/dashboard-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/dashboard-6x.webp b/assets/static/fonts/open-iconic/webp/dashboard-6x.webp
deleted file mode 100644
index 7319531..0000000
Binary files a/assets/static/fonts/open-iconic/webp/dashboard-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/dashboard-8x.webp b/assets/static/fonts/open-iconic/webp/dashboard-8x.webp
deleted file mode 100644
index 3a660c1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/dashboard-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/dashboard.webp b/assets/static/fonts/open-iconic/webp/dashboard.webp
deleted file mode 100644
index 25b27ec..0000000
Binary files a/assets/static/fonts/open-iconic/webp/dashboard.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/data-transfer-download-2x.webp b/assets/static/fonts/open-iconic/webp/data-transfer-download-2x.webp
deleted file mode 100644
index e9e6530..0000000
Binary files a/assets/static/fonts/open-iconic/webp/data-transfer-download-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/data-transfer-download-3x.webp b/assets/static/fonts/open-iconic/webp/data-transfer-download-3x.webp
deleted file mode 100644
index afd4328..0000000
Binary files a/assets/static/fonts/open-iconic/webp/data-transfer-download-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/data-transfer-download-4x.webp b/assets/static/fonts/open-iconic/webp/data-transfer-download-4x.webp
deleted file mode 100644
index f058314..0000000
Binary files a/assets/static/fonts/open-iconic/webp/data-transfer-download-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/data-transfer-download-6x.webp b/assets/static/fonts/open-iconic/webp/data-transfer-download-6x.webp
deleted file mode 100644
index 6ffbc7d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/data-transfer-download-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/data-transfer-download-8x.webp b/assets/static/fonts/open-iconic/webp/data-transfer-download-8x.webp
deleted file mode 100644
index 68fb04c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/data-transfer-download-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/data-transfer-download.webp b/assets/static/fonts/open-iconic/webp/data-transfer-download.webp
deleted file mode 100644
index 3515dd1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/data-transfer-download.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/data-transfer-upload-2x.webp b/assets/static/fonts/open-iconic/webp/data-transfer-upload-2x.webp
deleted file mode 100644
index 01d10e1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/data-transfer-upload-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/data-transfer-upload-3x.webp b/assets/static/fonts/open-iconic/webp/data-transfer-upload-3x.webp
deleted file mode 100644
index 14d7963..0000000
Binary files a/assets/static/fonts/open-iconic/webp/data-transfer-upload-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/data-transfer-upload-4x.webp b/assets/static/fonts/open-iconic/webp/data-transfer-upload-4x.webp
deleted file mode 100644
index 410117e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/data-transfer-upload-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/data-transfer-upload-6x.webp b/assets/static/fonts/open-iconic/webp/data-transfer-upload-6x.webp
deleted file mode 100644
index f054a85..0000000
Binary files a/assets/static/fonts/open-iconic/webp/data-transfer-upload-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/data-transfer-upload-8x.webp b/assets/static/fonts/open-iconic/webp/data-transfer-upload-8x.webp
deleted file mode 100644
index 5d69d01..0000000
Binary files a/assets/static/fonts/open-iconic/webp/data-transfer-upload-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/data-transfer-upload.webp b/assets/static/fonts/open-iconic/webp/data-transfer-upload.webp
deleted file mode 100644
index a1332c0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/data-transfer-upload.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/delete-2x.webp b/assets/static/fonts/open-iconic/webp/delete-2x.webp
deleted file mode 100644
index 5daf9ee..0000000
Binary files a/assets/static/fonts/open-iconic/webp/delete-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/delete-3x.webp b/assets/static/fonts/open-iconic/webp/delete-3x.webp
deleted file mode 100644
index cf6d26e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/delete-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/delete-4x.webp b/assets/static/fonts/open-iconic/webp/delete-4x.webp
deleted file mode 100644
index e919560..0000000
Binary files a/assets/static/fonts/open-iconic/webp/delete-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/delete-6x.webp b/assets/static/fonts/open-iconic/webp/delete-6x.webp
deleted file mode 100644
index ec59ad5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/delete-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/delete-8x.webp b/assets/static/fonts/open-iconic/webp/delete-8x.webp
deleted file mode 100644
index f3b42c7..0000000
Binary files a/assets/static/fonts/open-iconic/webp/delete-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/delete.webp b/assets/static/fonts/open-iconic/webp/delete.webp
deleted file mode 100644
index 7cc531a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/delete.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/dial-2x.webp b/assets/static/fonts/open-iconic/webp/dial-2x.webp
deleted file mode 100644
index 1299ab6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/dial-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/dial-3x.webp b/assets/static/fonts/open-iconic/webp/dial-3x.webp
deleted file mode 100644
index 929d991..0000000
Binary files a/assets/static/fonts/open-iconic/webp/dial-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/dial-4x.webp b/assets/static/fonts/open-iconic/webp/dial-4x.webp
deleted file mode 100644
index 946f3dc..0000000
Binary files a/assets/static/fonts/open-iconic/webp/dial-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/dial-6x.webp b/assets/static/fonts/open-iconic/webp/dial-6x.webp
deleted file mode 100644
index 161ec94..0000000
Binary files a/assets/static/fonts/open-iconic/webp/dial-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/dial-8x.webp b/assets/static/fonts/open-iconic/webp/dial-8x.webp
deleted file mode 100644
index 649e3e6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/dial-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/dial.webp b/assets/static/fonts/open-iconic/webp/dial.webp
deleted file mode 100644
index 1e9e5fc..0000000
Binary files a/assets/static/fonts/open-iconic/webp/dial.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/document-2x.webp b/assets/static/fonts/open-iconic/webp/document-2x.webp
deleted file mode 100644
index e9fdf0e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/document-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/document-3x.webp b/assets/static/fonts/open-iconic/webp/document-3x.webp
deleted file mode 100644
index 0efa08a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/document-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/document-4x.webp b/assets/static/fonts/open-iconic/webp/document-4x.webp
deleted file mode 100644
index f2db9d2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/document-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/document-6x.webp b/assets/static/fonts/open-iconic/webp/document-6x.webp
deleted file mode 100644
index ce70895..0000000
Binary files a/assets/static/fonts/open-iconic/webp/document-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/document-8x.webp b/assets/static/fonts/open-iconic/webp/document-8x.webp
deleted file mode 100644
index 7ff3884..0000000
Binary files a/assets/static/fonts/open-iconic/webp/document-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/document.webp b/assets/static/fonts/open-iconic/webp/document.webp
deleted file mode 100644
index 138fed0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/document.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/dollar-2x.webp b/assets/static/fonts/open-iconic/webp/dollar-2x.webp
deleted file mode 100644
index 85cbc6e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/dollar-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/dollar-3x.webp b/assets/static/fonts/open-iconic/webp/dollar-3x.webp
deleted file mode 100644
index cb85623..0000000
Binary files a/assets/static/fonts/open-iconic/webp/dollar-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/dollar-4x.webp b/assets/static/fonts/open-iconic/webp/dollar-4x.webp
deleted file mode 100644
index 2caffd4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/dollar-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/dollar-6x.webp b/assets/static/fonts/open-iconic/webp/dollar-6x.webp
deleted file mode 100644
index 2e57b80..0000000
Binary files a/assets/static/fonts/open-iconic/webp/dollar-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/dollar-8x.webp b/assets/static/fonts/open-iconic/webp/dollar-8x.webp
deleted file mode 100644
index e15206d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/dollar-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/dollar.webp b/assets/static/fonts/open-iconic/webp/dollar.webp
deleted file mode 100644
index 8b98a59..0000000
Binary files a/assets/static/fonts/open-iconic/webp/dollar.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/double-quote-sans-left-2x.webp b/assets/static/fonts/open-iconic/webp/double-quote-sans-left-2x.webp
deleted file mode 100644
index 2286fde..0000000
Binary files a/assets/static/fonts/open-iconic/webp/double-quote-sans-left-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/double-quote-sans-left-3x.webp b/assets/static/fonts/open-iconic/webp/double-quote-sans-left-3x.webp
deleted file mode 100644
index abaa9f1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/double-quote-sans-left-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/double-quote-sans-left-4x.webp b/assets/static/fonts/open-iconic/webp/double-quote-sans-left-4x.webp
deleted file mode 100644
index 75680ca..0000000
Binary files a/assets/static/fonts/open-iconic/webp/double-quote-sans-left-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/double-quote-sans-left-6x.webp b/assets/static/fonts/open-iconic/webp/double-quote-sans-left-6x.webp
deleted file mode 100644
index 7d3ea27..0000000
Binary files a/assets/static/fonts/open-iconic/webp/double-quote-sans-left-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/double-quote-sans-left-8x.webp b/assets/static/fonts/open-iconic/webp/double-quote-sans-left-8x.webp
deleted file mode 100644
index 020225e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/double-quote-sans-left-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/double-quote-sans-left.webp b/assets/static/fonts/open-iconic/webp/double-quote-sans-left.webp
deleted file mode 100644
index 968f002..0000000
Binary files a/assets/static/fonts/open-iconic/webp/double-quote-sans-left.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/double-quote-sans-right-2x.webp b/assets/static/fonts/open-iconic/webp/double-quote-sans-right-2x.webp
deleted file mode 100644
index 80d3f2b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/double-quote-sans-right-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/double-quote-sans-right-3x.webp b/assets/static/fonts/open-iconic/webp/double-quote-sans-right-3x.webp
deleted file mode 100644
index 7ada455..0000000
Binary files a/assets/static/fonts/open-iconic/webp/double-quote-sans-right-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/double-quote-sans-right-4x.webp b/assets/static/fonts/open-iconic/webp/double-quote-sans-right-4x.webp
deleted file mode 100644
index 42ff16e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/double-quote-sans-right-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/double-quote-sans-right-6x.webp b/assets/static/fonts/open-iconic/webp/double-quote-sans-right-6x.webp
deleted file mode 100644
index 7df5189..0000000
Binary files a/assets/static/fonts/open-iconic/webp/double-quote-sans-right-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/double-quote-sans-right-8x.webp b/assets/static/fonts/open-iconic/webp/double-quote-sans-right-8x.webp
deleted file mode 100644
index 8bc1f09..0000000
Binary files a/assets/static/fonts/open-iconic/webp/double-quote-sans-right-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/double-quote-sans-right.webp b/assets/static/fonts/open-iconic/webp/double-quote-sans-right.webp
deleted file mode 100644
index 18348f4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/double-quote-sans-right.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/double-quote-serif-left-2x.webp b/assets/static/fonts/open-iconic/webp/double-quote-serif-left-2x.webp
deleted file mode 100644
index 202b842..0000000
Binary files a/assets/static/fonts/open-iconic/webp/double-quote-serif-left-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/double-quote-serif-left-3x.webp b/assets/static/fonts/open-iconic/webp/double-quote-serif-left-3x.webp
deleted file mode 100644
index d984e70..0000000
Binary files a/assets/static/fonts/open-iconic/webp/double-quote-serif-left-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/double-quote-serif-left-4x.webp b/assets/static/fonts/open-iconic/webp/double-quote-serif-left-4x.webp
deleted file mode 100644
index 1b097dc..0000000
Binary files a/assets/static/fonts/open-iconic/webp/double-quote-serif-left-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/double-quote-serif-left-6x.webp b/assets/static/fonts/open-iconic/webp/double-quote-serif-left-6x.webp
deleted file mode 100644
index cc84f31..0000000
Binary files a/assets/static/fonts/open-iconic/webp/double-quote-serif-left-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/double-quote-serif-left-8x.webp b/assets/static/fonts/open-iconic/webp/double-quote-serif-left-8x.webp
deleted file mode 100644
index 1420ba6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/double-quote-serif-left-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/double-quote-serif-left.webp b/assets/static/fonts/open-iconic/webp/double-quote-serif-left.webp
deleted file mode 100644
index 40885bf..0000000
Binary files a/assets/static/fonts/open-iconic/webp/double-quote-serif-left.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/double-quote-serif-right-2x.webp b/assets/static/fonts/open-iconic/webp/double-quote-serif-right-2x.webp
deleted file mode 100644
index ab1e26e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/double-quote-serif-right-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/double-quote-serif-right-3x.webp b/assets/static/fonts/open-iconic/webp/double-quote-serif-right-3x.webp
deleted file mode 100644
index f9e4121..0000000
Binary files a/assets/static/fonts/open-iconic/webp/double-quote-serif-right-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/double-quote-serif-right-4x.webp b/assets/static/fonts/open-iconic/webp/double-quote-serif-right-4x.webp
deleted file mode 100644
index d4e67d3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/double-quote-serif-right-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/double-quote-serif-right-6x.webp b/assets/static/fonts/open-iconic/webp/double-quote-serif-right-6x.webp
deleted file mode 100644
index 1c5d7f0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/double-quote-serif-right-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/double-quote-serif-right-8x.webp b/assets/static/fonts/open-iconic/webp/double-quote-serif-right-8x.webp
deleted file mode 100644
index 89736b0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/double-quote-serif-right-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/double-quote-serif-right.webp b/assets/static/fonts/open-iconic/webp/double-quote-serif-right.webp
deleted file mode 100644
index a9f5fe1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/double-quote-serif-right.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/droplet-2x.webp b/assets/static/fonts/open-iconic/webp/droplet-2x.webp
deleted file mode 100644
index d27463d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/droplet-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/droplet-3x.webp b/assets/static/fonts/open-iconic/webp/droplet-3x.webp
deleted file mode 100644
index 2234dd3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/droplet-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/droplet-4x.webp b/assets/static/fonts/open-iconic/webp/droplet-4x.webp
deleted file mode 100644
index 20b0afa..0000000
Binary files a/assets/static/fonts/open-iconic/webp/droplet-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/droplet-6x.webp b/assets/static/fonts/open-iconic/webp/droplet-6x.webp
deleted file mode 100644
index f473f81..0000000
Binary files a/assets/static/fonts/open-iconic/webp/droplet-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/droplet-8x.webp b/assets/static/fonts/open-iconic/webp/droplet-8x.webp
deleted file mode 100644
index 86412cb..0000000
Binary files a/assets/static/fonts/open-iconic/webp/droplet-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/droplet.webp b/assets/static/fonts/open-iconic/webp/droplet.webp
deleted file mode 100644
index 17fddd9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/droplet.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/eject-2x.webp b/assets/static/fonts/open-iconic/webp/eject-2x.webp
deleted file mode 100644
index 6930e4b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/eject-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/eject-3x.webp b/assets/static/fonts/open-iconic/webp/eject-3x.webp
deleted file mode 100644
index 494bd87..0000000
Binary files a/assets/static/fonts/open-iconic/webp/eject-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/eject-4x.webp b/assets/static/fonts/open-iconic/webp/eject-4x.webp
deleted file mode 100644
index fb74074..0000000
Binary files a/assets/static/fonts/open-iconic/webp/eject-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/eject-6x.webp b/assets/static/fonts/open-iconic/webp/eject-6x.webp
deleted file mode 100644
index 8773355..0000000
Binary files a/assets/static/fonts/open-iconic/webp/eject-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/eject-8x.webp b/assets/static/fonts/open-iconic/webp/eject-8x.webp
deleted file mode 100644
index 725319c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/eject-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/eject.webp b/assets/static/fonts/open-iconic/webp/eject.webp
deleted file mode 100644
index e70a53a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/eject.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/elevator-2x.webp b/assets/static/fonts/open-iconic/webp/elevator-2x.webp
deleted file mode 100644
index 7ae0d64..0000000
Binary files a/assets/static/fonts/open-iconic/webp/elevator-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/elevator-3x.webp b/assets/static/fonts/open-iconic/webp/elevator-3x.webp
deleted file mode 100644
index b703257..0000000
Binary files a/assets/static/fonts/open-iconic/webp/elevator-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/elevator-4x.webp b/assets/static/fonts/open-iconic/webp/elevator-4x.webp
deleted file mode 100644
index d78c836..0000000
Binary files a/assets/static/fonts/open-iconic/webp/elevator-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/elevator-6x.webp b/assets/static/fonts/open-iconic/webp/elevator-6x.webp
deleted file mode 100644
index 9be87bf..0000000
Binary files a/assets/static/fonts/open-iconic/webp/elevator-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/elevator-8x.webp b/assets/static/fonts/open-iconic/webp/elevator-8x.webp
deleted file mode 100644
index af5b614..0000000
Binary files a/assets/static/fonts/open-iconic/webp/elevator-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/elevator.webp b/assets/static/fonts/open-iconic/webp/elevator.webp
deleted file mode 100644
index a26ab9a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/elevator.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/ellipses-2x.webp b/assets/static/fonts/open-iconic/webp/ellipses-2x.webp
deleted file mode 100644
index b001e1b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/ellipses-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/ellipses-3x.webp b/assets/static/fonts/open-iconic/webp/ellipses-3x.webp
deleted file mode 100644
index 68fe31d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/ellipses-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/ellipses-4x.webp b/assets/static/fonts/open-iconic/webp/ellipses-4x.webp
deleted file mode 100644
index e38bdf6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/ellipses-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/ellipses-6x.webp b/assets/static/fonts/open-iconic/webp/ellipses-6x.webp
deleted file mode 100644
index a02f3a5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/ellipses-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/ellipses-8x.webp b/assets/static/fonts/open-iconic/webp/ellipses-8x.webp
deleted file mode 100644
index 435f4d7..0000000
Binary files a/assets/static/fonts/open-iconic/webp/ellipses-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/ellipses.webp b/assets/static/fonts/open-iconic/webp/ellipses.webp
deleted file mode 100644
index af1765d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/ellipses.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/envelope-closed-2x.webp b/assets/static/fonts/open-iconic/webp/envelope-closed-2x.webp
deleted file mode 100644
index f538be2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/envelope-closed-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/envelope-closed-3x.webp b/assets/static/fonts/open-iconic/webp/envelope-closed-3x.webp
deleted file mode 100644
index 8dc790e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/envelope-closed-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/envelope-closed-4x.webp b/assets/static/fonts/open-iconic/webp/envelope-closed-4x.webp
deleted file mode 100644
index 64a5cae..0000000
Binary files a/assets/static/fonts/open-iconic/webp/envelope-closed-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/envelope-closed-6x.webp b/assets/static/fonts/open-iconic/webp/envelope-closed-6x.webp
deleted file mode 100644
index f662b56..0000000
Binary files a/assets/static/fonts/open-iconic/webp/envelope-closed-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/envelope-closed-8x.webp b/assets/static/fonts/open-iconic/webp/envelope-closed-8x.webp
deleted file mode 100644
index 8b525c1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/envelope-closed-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/envelope-closed.webp b/assets/static/fonts/open-iconic/webp/envelope-closed.webp
deleted file mode 100644
index ef12ab2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/envelope-closed.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/envelope-open-2x.webp b/assets/static/fonts/open-iconic/webp/envelope-open-2x.webp
deleted file mode 100644
index ff43cd3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/envelope-open-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/envelope-open-3x.webp b/assets/static/fonts/open-iconic/webp/envelope-open-3x.webp
deleted file mode 100644
index 3d82890..0000000
Binary files a/assets/static/fonts/open-iconic/webp/envelope-open-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/envelope-open-4x.webp b/assets/static/fonts/open-iconic/webp/envelope-open-4x.webp
deleted file mode 100644
index b7708c2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/envelope-open-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/envelope-open-6x.webp b/assets/static/fonts/open-iconic/webp/envelope-open-6x.webp
deleted file mode 100644
index 60498ed..0000000
Binary files a/assets/static/fonts/open-iconic/webp/envelope-open-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/envelope-open-8x.webp b/assets/static/fonts/open-iconic/webp/envelope-open-8x.webp
deleted file mode 100644
index 8edd8cc..0000000
Binary files a/assets/static/fonts/open-iconic/webp/envelope-open-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/envelope-open.webp b/assets/static/fonts/open-iconic/webp/envelope-open.webp
deleted file mode 100644
index ac7e4bb..0000000
Binary files a/assets/static/fonts/open-iconic/webp/envelope-open.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/euro-2x.webp b/assets/static/fonts/open-iconic/webp/euro-2x.webp
deleted file mode 100644
index 2084f0c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/euro-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/euro-3x.webp b/assets/static/fonts/open-iconic/webp/euro-3x.webp
deleted file mode 100644
index b23e100..0000000
Binary files a/assets/static/fonts/open-iconic/webp/euro-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/euro-4x.webp b/assets/static/fonts/open-iconic/webp/euro-4x.webp
deleted file mode 100644
index 58bb02a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/euro-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/euro-6x.webp b/assets/static/fonts/open-iconic/webp/euro-6x.webp
deleted file mode 100644
index d7b63ad..0000000
Binary files a/assets/static/fonts/open-iconic/webp/euro-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/euro-8x.webp b/assets/static/fonts/open-iconic/webp/euro-8x.webp
deleted file mode 100644
index 579cb88..0000000
Binary files a/assets/static/fonts/open-iconic/webp/euro-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/euro.webp b/assets/static/fonts/open-iconic/webp/euro.webp
deleted file mode 100644
index 6bb3e96..0000000
Binary files a/assets/static/fonts/open-iconic/webp/euro.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/excerpt-2x.webp b/assets/static/fonts/open-iconic/webp/excerpt-2x.webp
deleted file mode 100644
index 0882e16..0000000
Binary files a/assets/static/fonts/open-iconic/webp/excerpt-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/excerpt-3x.webp b/assets/static/fonts/open-iconic/webp/excerpt-3x.webp
deleted file mode 100644
index d98c085..0000000
Binary files a/assets/static/fonts/open-iconic/webp/excerpt-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/excerpt-4x.webp b/assets/static/fonts/open-iconic/webp/excerpt-4x.webp
deleted file mode 100644
index 7c1f961..0000000
Binary files a/assets/static/fonts/open-iconic/webp/excerpt-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/excerpt-6x.webp b/assets/static/fonts/open-iconic/webp/excerpt-6x.webp
deleted file mode 100644
index 2cf412e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/excerpt-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/excerpt-8x.webp b/assets/static/fonts/open-iconic/webp/excerpt-8x.webp
deleted file mode 100644
index a9c8ea0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/excerpt-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/excerpt.webp b/assets/static/fonts/open-iconic/webp/excerpt.webp
deleted file mode 100644
index 7d9d5bb..0000000
Binary files a/assets/static/fonts/open-iconic/webp/excerpt.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/expand-down-2x.webp b/assets/static/fonts/open-iconic/webp/expand-down-2x.webp
deleted file mode 100644
index d017db6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/expand-down-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/expand-down-3x.webp b/assets/static/fonts/open-iconic/webp/expand-down-3x.webp
deleted file mode 100644
index facdce8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/expand-down-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/expand-down-4x.webp b/assets/static/fonts/open-iconic/webp/expand-down-4x.webp
deleted file mode 100644
index 13d34c9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/expand-down-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/expand-down-6x.webp b/assets/static/fonts/open-iconic/webp/expand-down-6x.webp
deleted file mode 100644
index e1d6049..0000000
Binary files a/assets/static/fonts/open-iconic/webp/expand-down-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/expand-down-8x.webp b/assets/static/fonts/open-iconic/webp/expand-down-8x.webp
deleted file mode 100644
index b5351fa..0000000
Binary files a/assets/static/fonts/open-iconic/webp/expand-down-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/expand-down.webp b/assets/static/fonts/open-iconic/webp/expand-down.webp
deleted file mode 100644
index 21c3257..0000000
Binary files a/assets/static/fonts/open-iconic/webp/expand-down.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/expand-left-2x.webp b/assets/static/fonts/open-iconic/webp/expand-left-2x.webp
deleted file mode 100644
index 090c77c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/expand-left-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/expand-left-3x.webp b/assets/static/fonts/open-iconic/webp/expand-left-3x.webp
deleted file mode 100644
index 92004c8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/expand-left-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/expand-left-4x.webp b/assets/static/fonts/open-iconic/webp/expand-left-4x.webp
deleted file mode 100644
index ae6e2c5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/expand-left-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/expand-left-6x.webp b/assets/static/fonts/open-iconic/webp/expand-left-6x.webp
deleted file mode 100644
index f86f17f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/expand-left-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/expand-left-8x.webp b/assets/static/fonts/open-iconic/webp/expand-left-8x.webp
deleted file mode 100644
index 59650bf..0000000
Binary files a/assets/static/fonts/open-iconic/webp/expand-left-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/expand-left.webp b/assets/static/fonts/open-iconic/webp/expand-left.webp
deleted file mode 100644
index 0ae80e4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/expand-left.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/expand-right-2x.webp b/assets/static/fonts/open-iconic/webp/expand-right-2x.webp
deleted file mode 100644
index 3cb619c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/expand-right-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/expand-right-3x.webp b/assets/static/fonts/open-iconic/webp/expand-right-3x.webp
deleted file mode 100644
index b9c6958..0000000
Binary files a/assets/static/fonts/open-iconic/webp/expand-right-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/expand-right-4x.webp b/assets/static/fonts/open-iconic/webp/expand-right-4x.webp
deleted file mode 100644
index 34f48a5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/expand-right-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/expand-right-6x.webp b/assets/static/fonts/open-iconic/webp/expand-right-6x.webp
deleted file mode 100644
index 38fc6db..0000000
Binary files a/assets/static/fonts/open-iconic/webp/expand-right-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/expand-right-8x.webp b/assets/static/fonts/open-iconic/webp/expand-right-8x.webp
deleted file mode 100644
index 4bc5819..0000000
Binary files a/assets/static/fonts/open-iconic/webp/expand-right-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/expand-right.webp b/assets/static/fonts/open-iconic/webp/expand-right.webp
deleted file mode 100644
index 83e3ef5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/expand-right.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/expand-up-2x.webp b/assets/static/fonts/open-iconic/webp/expand-up-2x.webp
deleted file mode 100644
index 7ac3b2a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/expand-up-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/expand-up-3x.webp b/assets/static/fonts/open-iconic/webp/expand-up-3x.webp
deleted file mode 100644
index 8cf8689..0000000
Binary files a/assets/static/fonts/open-iconic/webp/expand-up-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/expand-up-4x.webp b/assets/static/fonts/open-iconic/webp/expand-up-4x.webp
deleted file mode 100644
index 886cf2a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/expand-up-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/expand-up-6x.webp b/assets/static/fonts/open-iconic/webp/expand-up-6x.webp
deleted file mode 100644
index 8f68a79..0000000
Binary files a/assets/static/fonts/open-iconic/webp/expand-up-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/expand-up-8x.webp b/assets/static/fonts/open-iconic/webp/expand-up-8x.webp
deleted file mode 100644
index 443bd28..0000000
Binary files a/assets/static/fonts/open-iconic/webp/expand-up-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/expand-up.webp b/assets/static/fonts/open-iconic/webp/expand-up.webp
deleted file mode 100644
index 9cbfd36..0000000
Binary files a/assets/static/fonts/open-iconic/webp/expand-up.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/external-link-2x.webp b/assets/static/fonts/open-iconic/webp/external-link-2x.webp
deleted file mode 100644
index b6264ee..0000000
Binary files a/assets/static/fonts/open-iconic/webp/external-link-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/external-link-3x.webp b/assets/static/fonts/open-iconic/webp/external-link-3x.webp
deleted file mode 100644
index 4fedd8a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/external-link-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/external-link-4x.webp b/assets/static/fonts/open-iconic/webp/external-link-4x.webp
deleted file mode 100644
index d0c8a2a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/external-link-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/external-link-6x.webp b/assets/static/fonts/open-iconic/webp/external-link-6x.webp
deleted file mode 100644
index 58602f9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/external-link-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/external-link-8x.webp b/assets/static/fonts/open-iconic/webp/external-link-8x.webp
deleted file mode 100644
index 035d124..0000000
Binary files a/assets/static/fonts/open-iconic/webp/external-link-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/external-link.webp b/assets/static/fonts/open-iconic/webp/external-link.webp
deleted file mode 100644
index a96f813..0000000
Binary files a/assets/static/fonts/open-iconic/webp/external-link.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/eye-2x.webp b/assets/static/fonts/open-iconic/webp/eye-2x.webp
deleted file mode 100644
index 28600ec..0000000
Binary files a/assets/static/fonts/open-iconic/webp/eye-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/eye-3x.webp b/assets/static/fonts/open-iconic/webp/eye-3x.webp
deleted file mode 100644
index 187b1f5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/eye-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/eye-4x.webp b/assets/static/fonts/open-iconic/webp/eye-4x.webp
deleted file mode 100644
index 3fc1f81..0000000
Binary files a/assets/static/fonts/open-iconic/webp/eye-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/eye-6x.webp b/assets/static/fonts/open-iconic/webp/eye-6x.webp
deleted file mode 100644
index 98dba98..0000000
Binary files a/assets/static/fonts/open-iconic/webp/eye-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/eye-8x.webp b/assets/static/fonts/open-iconic/webp/eye-8x.webp
deleted file mode 100644
index 587db90..0000000
Binary files a/assets/static/fonts/open-iconic/webp/eye-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/eye.webp b/assets/static/fonts/open-iconic/webp/eye.webp
deleted file mode 100644
index c8c8eeb..0000000
Binary files a/assets/static/fonts/open-iconic/webp/eye.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/eyedropper-2x.webp b/assets/static/fonts/open-iconic/webp/eyedropper-2x.webp
deleted file mode 100644
index a50b77a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/eyedropper-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/eyedropper-3x.webp b/assets/static/fonts/open-iconic/webp/eyedropper-3x.webp
deleted file mode 100644
index e7170ef..0000000
Binary files a/assets/static/fonts/open-iconic/webp/eyedropper-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/eyedropper-4x.webp b/assets/static/fonts/open-iconic/webp/eyedropper-4x.webp
deleted file mode 100644
index c8fc51a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/eyedropper-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/eyedropper-6x.webp b/assets/static/fonts/open-iconic/webp/eyedropper-6x.webp
deleted file mode 100644
index c84e0b5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/eyedropper-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/eyedropper-8x.webp b/assets/static/fonts/open-iconic/webp/eyedropper-8x.webp
deleted file mode 100644
index 6d08b1a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/eyedropper-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/eyedropper.webp b/assets/static/fonts/open-iconic/webp/eyedropper.webp
deleted file mode 100644
index cfe865a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/eyedropper.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/file-2x.webp b/assets/static/fonts/open-iconic/webp/file-2x.webp
deleted file mode 100644
index f147bf0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/file-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/file-3x.webp b/assets/static/fonts/open-iconic/webp/file-3x.webp
deleted file mode 100644
index 9b8e177..0000000
Binary files a/assets/static/fonts/open-iconic/webp/file-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/file-4x.webp b/assets/static/fonts/open-iconic/webp/file-4x.webp
deleted file mode 100644
index d3790d9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/file-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/file-6x.webp b/assets/static/fonts/open-iconic/webp/file-6x.webp
deleted file mode 100644
index ca1cabb..0000000
Binary files a/assets/static/fonts/open-iconic/webp/file-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/file-8x.webp b/assets/static/fonts/open-iconic/webp/file-8x.webp
deleted file mode 100644
index df7ca9a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/file-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/file.webp b/assets/static/fonts/open-iconic/webp/file.webp
deleted file mode 100644
index 018d916..0000000
Binary files a/assets/static/fonts/open-iconic/webp/file.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/fire-2x.webp b/assets/static/fonts/open-iconic/webp/fire-2x.webp
deleted file mode 100644
index e129709..0000000
Binary files a/assets/static/fonts/open-iconic/webp/fire-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/fire-3x.webp b/assets/static/fonts/open-iconic/webp/fire-3x.webp
deleted file mode 100644
index 2fdc805..0000000
Binary files a/assets/static/fonts/open-iconic/webp/fire-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/fire-4x.webp b/assets/static/fonts/open-iconic/webp/fire-4x.webp
deleted file mode 100644
index fef409d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/fire-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/fire-6x.webp b/assets/static/fonts/open-iconic/webp/fire-6x.webp
deleted file mode 100644
index bb80a37..0000000
Binary files a/assets/static/fonts/open-iconic/webp/fire-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/fire-8x.webp b/assets/static/fonts/open-iconic/webp/fire-8x.webp
deleted file mode 100644
index f051435..0000000
Binary files a/assets/static/fonts/open-iconic/webp/fire-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/fire.webp b/assets/static/fonts/open-iconic/webp/fire.webp
deleted file mode 100644
index dde1c5e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/fire.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/flag-2x.webp b/assets/static/fonts/open-iconic/webp/flag-2x.webp
deleted file mode 100644
index 50ee40b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/flag-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/flag-3x.webp b/assets/static/fonts/open-iconic/webp/flag-3x.webp
deleted file mode 100644
index 4f9285e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/flag-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/flag-4x.webp b/assets/static/fonts/open-iconic/webp/flag-4x.webp
deleted file mode 100644
index a68cbd1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/flag-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/flag-6x.webp b/assets/static/fonts/open-iconic/webp/flag-6x.webp
deleted file mode 100644
index 746a615..0000000
Binary files a/assets/static/fonts/open-iconic/webp/flag-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/flag-8x.webp b/assets/static/fonts/open-iconic/webp/flag-8x.webp
deleted file mode 100644
index 37dfb7e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/flag-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/flag.webp b/assets/static/fonts/open-iconic/webp/flag.webp
deleted file mode 100644
index e6ba39f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/flag.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/flash-2x.webp b/assets/static/fonts/open-iconic/webp/flash-2x.webp
deleted file mode 100644
index a5929ca..0000000
Binary files a/assets/static/fonts/open-iconic/webp/flash-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/flash-3x.webp b/assets/static/fonts/open-iconic/webp/flash-3x.webp
deleted file mode 100644
index 8fb624d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/flash-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/flash-4x.webp b/assets/static/fonts/open-iconic/webp/flash-4x.webp
deleted file mode 100644
index 164008b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/flash-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/flash-6x.webp b/assets/static/fonts/open-iconic/webp/flash-6x.webp
deleted file mode 100644
index 50af2f3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/flash-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/flash-8x.webp b/assets/static/fonts/open-iconic/webp/flash-8x.webp
deleted file mode 100644
index 726a8b7..0000000
Binary files a/assets/static/fonts/open-iconic/webp/flash-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/flash.webp b/assets/static/fonts/open-iconic/webp/flash.webp
deleted file mode 100644
index ae1fce8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/flash.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/folder-2x.webp b/assets/static/fonts/open-iconic/webp/folder-2x.webp
deleted file mode 100644
index 951608c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/folder-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/folder-3x.webp b/assets/static/fonts/open-iconic/webp/folder-3x.webp
deleted file mode 100644
index 4cc4e50..0000000
Binary files a/assets/static/fonts/open-iconic/webp/folder-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/folder-4x.webp b/assets/static/fonts/open-iconic/webp/folder-4x.webp
deleted file mode 100644
index bba2085..0000000
Binary files a/assets/static/fonts/open-iconic/webp/folder-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/folder-6x.webp b/assets/static/fonts/open-iconic/webp/folder-6x.webp
deleted file mode 100644
index d3ac82c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/folder-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/folder-8x.webp b/assets/static/fonts/open-iconic/webp/folder-8x.webp
deleted file mode 100644
index 104963b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/folder-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/folder.webp b/assets/static/fonts/open-iconic/webp/folder.webp
deleted file mode 100644
index cb71efa..0000000
Binary files a/assets/static/fonts/open-iconic/webp/folder.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/fork-2x.webp b/assets/static/fonts/open-iconic/webp/fork-2x.webp
deleted file mode 100644
index 169dc43..0000000
Binary files a/assets/static/fonts/open-iconic/webp/fork-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/fork-3x.webp b/assets/static/fonts/open-iconic/webp/fork-3x.webp
deleted file mode 100644
index ad851fa..0000000
Binary files a/assets/static/fonts/open-iconic/webp/fork-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/fork-4x.webp b/assets/static/fonts/open-iconic/webp/fork-4x.webp
deleted file mode 100644
index 2dbe9bf..0000000
Binary files a/assets/static/fonts/open-iconic/webp/fork-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/fork-6x.webp b/assets/static/fonts/open-iconic/webp/fork-6x.webp
deleted file mode 100644
index 794c51c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/fork-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/fork-8x.webp b/assets/static/fonts/open-iconic/webp/fork-8x.webp
deleted file mode 100644
index acc9765..0000000
Binary files a/assets/static/fonts/open-iconic/webp/fork-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/fork.webp b/assets/static/fonts/open-iconic/webp/fork.webp
deleted file mode 100644
index 5114013..0000000
Binary files a/assets/static/fonts/open-iconic/webp/fork.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/fullscreen-enter-2x.webp b/assets/static/fonts/open-iconic/webp/fullscreen-enter-2x.webp
deleted file mode 100644
index 8d1fe5e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/fullscreen-enter-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/fullscreen-enter-3x.webp b/assets/static/fonts/open-iconic/webp/fullscreen-enter-3x.webp
deleted file mode 100644
index 3eb90f7..0000000
Binary files a/assets/static/fonts/open-iconic/webp/fullscreen-enter-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/fullscreen-enter-4x.webp b/assets/static/fonts/open-iconic/webp/fullscreen-enter-4x.webp
deleted file mode 100644
index 8e14659..0000000
Binary files a/assets/static/fonts/open-iconic/webp/fullscreen-enter-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/fullscreen-enter-6x.webp b/assets/static/fonts/open-iconic/webp/fullscreen-enter-6x.webp
deleted file mode 100644
index 3c2ee84..0000000
Binary files a/assets/static/fonts/open-iconic/webp/fullscreen-enter-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/fullscreen-enter-8x.webp b/assets/static/fonts/open-iconic/webp/fullscreen-enter-8x.webp
deleted file mode 100644
index 917c1c8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/fullscreen-enter-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/fullscreen-enter.webp b/assets/static/fonts/open-iconic/webp/fullscreen-enter.webp
deleted file mode 100644
index ef43881..0000000
Binary files a/assets/static/fonts/open-iconic/webp/fullscreen-enter.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/fullscreen-exit-2x.webp b/assets/static/fonts/open-iconic/webp/fullscreen-exit-2x.webp
deleted file mode 100644
index ef5b686..0000000
Binary files a/assets/static/fonts/open-iconic/webp/fullscreen-exit-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/fullscreen-exit-3x.webp b/assets/static/fonts/open-iconic/webp/fullscreen-exit-3x.webp
deleted file mode 100644
index 4d94e31..0000000
Binary files a/assets/static/fonts/open-iconic/webp/fullscreen-exit-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/fullscreen-exit-4x.webp b/assets/static/fonts/open-iconic/webp/fullscreen-exit-4x.webp
deleted file mode 100644
index 99ac431..0000000
Binary files a/assets/static/fonts/open-iconic/webp/fullscreen-exit-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/fullscreen-exit-6x.webp b/assets/static/fonts/open-iconic/webp/fullscreen-exit-6x.webp
deleted file mode 100644
index 28b22df..0000000
Binary files a/assets/static/fonts/open-iconic/webp/fullscreen-exit-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/fullscreen-exit-8x.webp b/assets/static/fonts/open-iconic/webp/fullscreen-exit-8x.webp
deleted file mode 100644
index 3f41345..0000000
Binary files a/assets/static/fonts/open-iconic/webp/fullscreen-exit-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/fullscreen-exit.webp b/assets/static/fonts/open-iconic/webp/fullscreen-exit.webp
deleted file mode 100644
index d282c4e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/fullscreen-exit.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/globe-2x.webp b/assets/static/fonts/open-iconic/webp/globe-2x.webp
deleted file mode 100644
index d5b1395..0000000
Binary files a/assets/static/fonts/open-iconic/webp/globe-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/globe-3x.webp b/assets/static/fonts/open-iconic/webp/globe-3x.webp
deleted file mode 100644
index 7238eaf..0000000
Binary files a/assets/static/fonts/open-iconic/webp/globe-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/globe-4x.webp b/assets/static/fonts/open-iconic/webp/globe-4x.webp
deleted file mode 100644
index 2b4ba97..0000000
Binary files a/assets/static/fonts/open-iconic/webp/globe-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/globe-6x.webp b/assets/static/fonts/open-iconic/webp/globe-6x.webp
deleted file mode 100644
index 407b0de..0000000
Binary files a/assets/static/fonts/open-iconic/webp/globe-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/globe-8x.webp b/assets/static/fonts/open-iconic/webp/globe-8x.webp
deleted file mode 100644
index ab8802e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/globe-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/globe.webp b/assets/static/fonts/open-iconic/webp/globe.webp
deleted file mode 100644
index f615c90..0000000
Binary files a/assets/static/fonts/open-iconic/webp/globe.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/graph-2x.webp b/assets/static/fonts/open-iconic/webp/graph-2x.webp
deleted file mode 100644
index b6a142c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/graph-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/graph-3x.webp b/assets/static/fonts/open-iconic/webp/graph-3x.webp
deleted file mode 100644
index 681c236..0000000
Binary files a/assets/static/fonts/open-iconic/webp/graph-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/graph-4x.webp b/assets/static/fonts/open-iconic/webp/graph-4x.webp
deleted file mode 100644
index 76b35ff..0000000
Binary files a/assets/static/fonts/open-iconic/webp/graph-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/graph-6x.webp b/assets/static/fonts/open-iconic/webp/graph-6x.webp
deleted file mode 100644
index e1b6310..0000000
Binary files a/assets/static/fonts/open-iconic/webp/graph-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/graph-8x.webp b/assets/static/fonts/open-iconic/webp/graph-8x.webp
deleted file mode 100644
index 0cc14c1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/graph-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/graph.webp b/assets/static/fonts/open-iconic/webp/graph.webp
deleted file mode 100644
index a00a088..0000000
Binary files a/assets/static/fonts/open-iconic/webp/graph.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/grid-four-up-2x.webp b/assets/static/fonts/open-iconic/webp/grid-four-up-2x.webp
deleted file mode 100644
index 84a2ff9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/grid-four-up-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/grid-four-up-3x.webp b/assets/static/fonts/open-iconic/webp/grid-four-up-3x.webp
deleted file mode 100644
index 2775a8f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/grid-four-up-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/grid-four-up-4x.webp b/assets/static/fonts/open-iconic/webp/grid-four-up-4x.webp
deleted file mode 100644
index 50482f6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/grid-four-up-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/grid-four-up-6x.webp b/assets/static/fonts/open-iconic/webp/grid-four-up-6x.webp
deleted file mode 100644
index c1b2978..0000000
Binary files a/assets/static/fonts/open-iconic/webp/grid-four-up-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/grid-four-up-8x.webp b/assets/static/fonts/open-iconic/webp/grid-four-up-8x.webp
deleted file mode 100644
index 85ab0a8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/grid-four-up-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/grid-four-up.webp b/assets/static/fonts/open-iconic/webp/grid-four-up.webp
deleted file mode 100644
index b01041a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/grid-four-up.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/grid-three-up-2x.webp b/assets/static/fonts/open-iconic/webp/grid-three-up-2x.webp
deleted file mode 100644
index 5901f90..0000000
Binary files a/assets/static/fonts/open-iconic/webp/grid-three-up-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/grid-three-up-3x.webp b/assets/static/fonts/open-iconic/webp/grid-three-up-3x.webp
deleted file mode 100644
index 1087a2a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/grid-three-up-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/grid-three-up-4x.webp b/assets/static/fonts/open-iconic/webp/grid-three-up-4x.webp
deleted file mode 100644
index b10b956..0000000
Binary files a/assets/static/fonts/open-iconic/webp/grid-three-up-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/grid-three-up-6x.webp b/assets/static/fonts/open-iconic/webp/grid-three-up-6x.webp
deleted file mode 100644
index 014b97a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/grid-three-up-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/grid-three-up-8x.webp b/assets/static/fonts/open-iconic/webp/grid-three-up-8x.webp
deleted file mode 100644
index c47a0eb..0000000
Binary files a/assets/static/fonts/open-iconic/webp/grid-three-up-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/grid-three-up.webp b/assets/static/fonts/open-iconic/webp/grid-three-up.webp
deleted file mode 100644
index 796b7d3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/grid-three-up.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/grid-two-up-2x.webp b/assets/static/fonts/open-iconic/webp/grid-two-up-2x.webp
deleted file mode 100644
index 5912dc1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/grid-two-up-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/grid-two-up-3x.webp b/assets/static/fonts/open-iconic/webp/grid-two-up-3x.webp
deleted file mode 100644
index 9f25143..0000000
Binary files a/assets/static/fonts/open-iconic/webp/grid-two-up-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/grid-two-up-4x.webp b/assets/static/fonts/open-iconic/webp/grid-two-up-4x.webp
deleted file mode 100644
index a1db70e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/grid-two-up-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/grid-two-up-6x.webp b/assets/static/fonts/open-iconic/webp/grid-two-up-6x.webp
deleted file mode 100644
index 859c7c3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/grid-two-up-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/grid-two-up-8x.webp b/assets/static/fonts/open-iconic/webp/grid-two-up-8x.webp
deleted file mode 100644
index 097cd14..0000000
Binary files a/assets/static/fonts/open-iconic/webp/grid-two-up-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/grid-two-up.webp b/assets/static/fonts/open-iconic/webp/grid-two-up.webp
deleted file mode 100644
index 2d814ab..0000000
Binary files a/assets/static/fonts/open-iconic/webp/grid-two-up.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/hard-drive-2x.webp b/assets/static/fonts/open-iconic/webp/hard-drive-2x.webp
deleted file mode 100644
index a3ce84e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/hard-drive-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/hard-drive-3x.webp b/assets/static/fonts/open-iconic/webp/hard-drive-3x.webp
deleted file mode 100644
index c1b67a0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/hard-drive-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/hard-drive-4x.webp b/assets/static/fonts/open-iconic/webp/hard-drive-4x.webp
deleted file mode 100644
index 001525b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/hard-drive-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/hard-drive-6x.webp b/assets/static/fonts/open-iconic/webp/hard-drive-6x.webp
deleted file mode 100644
index 1127caa..0000000
Binary files a/assets/static/fonts/open-iconic/webp/hard-drive-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/hard-drive-8x.webp b/assets/static/fonts/open-iconic/webp/hard-drive-8x.webp
deleted file mode 100644
index 79a1a36..0000000
Binary files a/assets/static/fonts/open-iconic/webp/hard-drive-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/hard-drive.webp b/assets/static/fonts/open-iconic/webp/hard-drive.webp
deleted file mode 100644
index 95335e8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/hard-drive.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/header-2x.webp b/assets/static/fonts/open-iconic/webp/header-2x.webp
deleted file mode 100644
index 4c7521c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/header-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/header-3x.webp b/assets/static/fonts/open-iconic/webp/header-3x.webp
deleted file mode 100644
index 561e249..0000000
Binary files a/assets/static/fonts/open-iconic/webp/header-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/header-4x.webp b/assets/static/fonts/open-iconic/webp/header-4x.webp
deleted file mode 100644
index 41fdfbb..0000000
Binary files a/assets/static/fonts/open-iconic/webp/header-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/header-6x.webp b/assets/static/fonts/open-iconic/webp/header-6x.webp
deleted file mode 100644
index eb2f633..0000000
Binary files a/assets/static/fonts/open-iconic/webp/header-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/header-8x.webp b/assets/static/fonts/open-iconic/webp/header-8x.webp
deleted file mode 100644
index e385bd2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/header-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/header.webp b/assets/static/fonts/open-iconic/webp/header.webp
deleted file mode 100644
index 1185618..0000000
Binary files a/assets/static/fonts/open-iconic/webp/header.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/headphones-2x.webp b/assets/static/fonts/open-iconic/webp/headphones-2x.webp
deleted file mode 100644
index b14e218..0000000
Binary files a/assets/static/fonts/open-iconic/webp/headphones-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/headphones-3x.webp b/assets/static/fonts/open-iconic/webp/headphones-3x.webp
deleted file mode 100644
index a50750d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/headphones-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/headphones-4x.webp b/assets/static/fonts/open-iconic/webp/headphones-4x.webp
deleted file mode 100644
index a56debc..0000000
Binary files a/assets/static/fonts/open-iconic/webp/headphones-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/headphones-6x.webp b/assets/static/fonts/open-iconic/webp/headphones-6x.webp
deleted file mode 100644
index 72ec399..0000000
Binary files a/assets/static/fonts/open-iconic/webp/headphones-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/headphones-8x.webp b/assets/static/fonts/open-iconic/webp/headphones-8x.webp
deleted file mode 100644
index 898459d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/headphones-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/headphones.webp b/assets/static/fonts/open-iconic/webp/headphones.webp
deleted file mode 100644
index 8a68e55..0000000
Binary files a/assets/static/fonts/open-iconic/webp/headphones.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/heart-2x.webp b/assets/static/fonts/open-iconic/webp/heart-2x.webp
deleted file mode 100644
index aaca920..0000000
Binary files a/assets/static/fonts/open-iconic/webp/heart-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/heart-3x.webp b/assets/static/fonts/open-iconic/webp/heart-3x.webp
deleted file mode 100644
index c347728..0000000
Binary files a/assets/static/fonts/open-iconic/webp/heart-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/heart-4x.webp b/assets/static/fonts/open-iconic/webp/heart-4x.webp
deleted file mode 100644
index adc048c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/heart-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/heart-6x.webp b/assets/static/fonts/open-iconic/webp/heart-6x.webp
deleted file mode 100644
index 4cec66d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/heart-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/heart-8x.webp b/assets/static/fonts/open-iconic/webp/heart-8x.webp
deleted file mode 100644
index e119afe..0000000
Binary files a/assets/static/fonts/open-iconic/webp/heart-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/heart.webp b/assets/static/fonts/open-iconic/webp/heart.webp
deleted file mode 100644
index cc3055b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/heart.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/home-2x.webp b/assets/static/fonts/open-iconic/webp/home-2x.webp
deleted file mode 100644
index 74dbe3a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/home-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/home-3x.webp b/assets/static/fonts/open-iconic/webp/home-3x.webp
deleted file mode 100644
index 586eb87..0000000
Binary files a/assets/static/fonts/open-iconic/webp/home-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/home-4x.webp b/assets/static/fonts/open-iconic/webp/home-4x.webp
deleted file mode 100644
index 92a5fab..0000000
Binary files a/assets/static/fonts/open-iconic/webp/home-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/home-6x.webp b/assets/static/fonts/open-iconic/webp/home-6x.webp
deleted file mode 100644
index 55f5db4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/home-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/home-8x.webp b/assets/static/fonts/open-iconic/webp/home-8x.webp
deleted file mode 100644
index 824fae2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/home-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/home.webp b/assets/static/fonts/open-iconic/webp/home.webp
deleted file mode 100644
index 80166ba..0000000
Binary files a/assets/static/fonts/open-iconic/webp/home.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/image-2x.webp b/assets/static/fonts/open-iconic/webp/image-2x.webp
deleted file mode 100644
index 906af22..0000000
Binary files a/assets/static/fonts/open-iconic/webp/image-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/image-3x.webp b/assets/static/fonts/open-iconic/webp/image-3x.webp
deleted file mode 100644
index dafcd97..0000000
Binary files a/assets/static/fonts/open-iconic/webp/image-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/image-4x.webp b/assets/static/fonts/open-iconic/webp/image-4x.webp
deleted file mode 100644
index 972a2dd..0000000
Binary files a/assets/static/fonts/open-iconic/webp/image-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/image-6x.webp b/assets/static/fonts/open-iconic/webp/image-6x.webp
deleted file mode 100644
index 613ae2d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/image-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/image-8x.webp b/assets/static/fonts/open-iconic/webp/image-8x.webp
deleted file mode 100644
index c3f14d3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/image-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/image.webp b/assets/static/fonts/open-iconic/webp/image.webp
deleted file mode 100644
index ab412db..0000000
Binary files a/assets/static/fonts/open-iconic/webp/image.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/inbox-2x.webp b/assets/static/fonts/open-iconic/webp/inbox-2x.webp
deleted file mode 100644
index 8f850f7..0000000
Binary files a/assets/static/fonts/open-iconic/webp/inbox-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/inbox-3x.webp b/assets/static/fonts/open-iconic/webp/inbox-3x.webp
deleted file mode 100644
index b94745e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/inbox-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/inbox-4x.webp b/assets/static/fonts/open-iconic/webp/inbox-4x.webp
deleted file mode 100644
index 5e233a7..0000000
Binary files a/assets/static/fonts/open-iconic/webp/inbox-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/inbox-6x.webp b/assets/static/fonts/open-iconic/webp/inbox-6x.webp
deleted file mode 100644
index 82a88f2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/inbox-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/inbox-8x.webp b/assets/static/fonts/open-iconic/webp/inbox-8x.webp
deleted file mode 100644
index ce1346a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/inbox-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/inbox.webp b/assets/static/fonts/open-iconic/webp/inbox.webp
deleted file mode 100644
index 43ebdb0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/inbox.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/infinity-2x.webp b/assets/static/fonts/open-iconic/webp/infinity-2x.webp
deleted file mode 100644
index be4a466..0000000
Binary files a/assets/static/fonts/open-iconic/webp/infinity-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/infinity-3x.webp b/assets/static/fonts/open-iconic/webp/infinity-3x.webp
deleted file mode 100644
index cbff7fa..0000000
Binary files a/assets/static/fonts/open-iconic/webp/infinity-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/infinity-4x.webp b/assets/static/fonts/open-iconic/webp/infinity-4x.webp
deleted file mode 100644
index 4444bea..0000000
Binary files a/assets/static/fonts/open-iconic/webp/infinity-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/infinity-6x.webp b/assets/static/fonts/open-iconic/webp/infinity-6x.webp
deleted file mode 100644
index cbde33f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/infinity-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/infinity-8x.webp b/assets/static/fonts/open-iconic/webp/infinity-8x.webp
deleted file mode 100644
index 6a2faea..0000000
Binary files a/assets/static/fonts/open-iconic/webp/infinity-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/infinity.webp b/assets/static/fonts/open-iconic/webp/infinity.webp
deleted file mode 100644
index 5f73479..0000000
Binary files a/assets/static/fonts/open-iconic/webp/infinity.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/info-2x.webp b/assets/static/fonts/open-iconic/webp/info-2x.webp
deleted file mode 100644
index fa26305..0000000
Binary files a/assets/static/fonts/open-iconic/webp/info-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/info-3x.webp b/assets/static/fonts/open-iconic/webp/info-3x.webp
deleted file mode 100644
index c769077..0000000
Binary files a/assets/static/fonts/open-iconic/webp/info-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/info-4x.webp b/assets/static/fonts/open-iconic/webp/info-4x.webp
deleted file mode 100644
index dbe2a95..0000000
Binary files a/assets/static/fonts/open-iconic/webp/info-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/info-6x.webp b/assets/static/fonts/open-iconic/webp/info-6x.webp
deleted file mode 100644
index 7bd0de0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/info-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/info-8x.webp b/assets/static/fonts/open-iconic/webp/info-8x.webp
deleted file mode 100644
index b950579..0000000
Binary files a/assets/static/fonts/open-iconic/webp/info-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/info.webp b/assets/static/fonts/open-iconic/webp/info.webp
deleted file mode 100644
index d394e0d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/info.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/italic-2x.webp b/assets/static/fonts/open-iconic/webp/italic-2x.webp
deleted file mode 100644
index c4119b2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/italic-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/italic-3x.webp b/assets/static/fonts/open-iconic/webp/italic-3x.webp
deleted file mode 100644
index 79b6626..0000000
Binary files a/assets/static/fonts/open-iconic/webp/italic-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/italic-4x.webp b/assets/static/fonts/open-iconic/webp/italic-4x.webp
deleted file mode 100644
index 04abf50..0000000
Binary files a/assets/static/fonts/open-iconic/webp/italic-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/italic-6x.webp b/assets/static/fonts/open-iconic/webp/italic-6x.webp
deleted file mode 100644
index 9c187fa..0000000
Binary files a/assets/static/fonts/open-iconic/webp/italic-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/italic-8x.webp b/assets/static/fonts/open-iconic/webp/italic-8x.webp
deleted file mode 100644
index 3d785e0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/italic-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/italic.webp b/assets/static/fonts/open-iconic/webp/italic.webp
deleted file mode 100644
index dd8c76e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/italic.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/justify-center-2x.webp b/assets/static/fonts/open-iconic/webp/justify-center-2x.webp
deleted file mode 100644
index 915bb86..0000000
Binary files a/assets/static/fonts/open-iconic/webp/justify-center-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/justify-center-3x.webp b/assets/static/fonts/open-iconic/webp/justify-center-3x.webp
deleted file mode 100644
index a11ff49..0000000
Binary files a/assets/static/fonts/open-iconic/webp/justify-center-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/justify-center-4x.webp b/assets/static/fonts/open-iconic/webp/justify-center-4x.webp
deleted file mode 100644
index 1c9720c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/justify-center-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/justify-center-6x.webp b/assets/static/fonts/open-iconic/webp/justify-center-6x.webp
deleted file mode 100644
index 75da546..0000000
Binary files a/assets/static/fonts/open-iconic/webp/justify-center-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/justify-center-8x.webp b/assets/static/fonts/open-iconic/webp/justify-center-8x.webp
deleted file mode 100644
index 813e679..0000000
Binary files a/assets/static/fonts/open-iconic/webp/justify-center-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/justify-center.webp b/assets/static/fonts/open-iconic/webp/justify-center.webp
deleted file mode 100644
index 6062aea..0000000
Binary files a/assets/static/fonts/open-iconic/webp/justify-center.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/justify-left-2x.webp b/assets/static/fonts/open-iconic/webp/justify-left-2x.webp
deleted file mode 100644
index 4ba9d3f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/justify-left-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/justify-left-3x.webp b/assets/static/fonts/open-iconic/webp/justify-left-3x.webp
deleted file mode 100644
index b648cae..0000000
Binary files a/assets/static/fonts/open-iconic/webp/justify-left-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/justify-left-4x.webp b/assets/static/fonts/open-iconic/webp/justify-left-4x.webp
deleted file mode 100644
index 6478f79..0000000
Binary files a/assets/static/fonts/open-iconic/webp/justify-left-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/justify-left-6x.webp b/assets/static/fonts/open-iconic/webp/justify-left-6x.webp
deleted file mode 100644
index ba30404..0000000
Binary files a/assets/static/fonts/open-iconic/webp/justify-left-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/justify-left-8x.webp b/assets/static/fonts/open-iconic/webp/justify-left-8x.webp
deleted file mode 100644
index 883d529..0000000
Binary files a/assets/static/fonts/open-iconic/webp/justify-left-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/justify-left.webp b/assets/static/fonts/open-iconic/webp/justify-left.webp
deleted file mode 100644
index a524b8e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/justify-left.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/justify-right-2x.webp b/assets/static/fonts/open-iconic/webp/justify-right-2x.webp
deleted file mode 100644
index 6a1b682..0000000
Binary files a/assets/static/fonts/open-iconic/webp/justify-right-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/justify-right-3x.webp b/assets/static/fonts/open-iconic/webp/justify-right-3x.webp
deleted file mode 100644
index eff439a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/justify-right-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/justify-right-4x.webp b/assets/static/fonts/open-iconic/webp/justify-right-4x.webp
deleted file mode 100644
index 0221476..0000000
Binary files a/assets/static/fonts/open-iconic/webp/justify-right-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/justify-right-6x.webp b/assets/static/fonts/open-iconic/webp/justify-right-6x.webp
deleted file mode 100644
index 4512d4c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/justify-right-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/justify-right-8x.webp b/assets/static/fonts/open-iconic/webp/justify-right-8x.webp
deleted file mode 100644
index b91faeb..0000000
Binary files a/assets/static/fonts/open-iconic/webp/justify-right-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/justify-right.webp b/assets/static/fonts/open-iconic/webp/justify-right.webp
deleted file mode 100644
index 4a19723..0000000
Binary files a/assets/static/fonts/open-iconic/webp/justify-right.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/key-2x.webp b/assets/static/fonts/open-iconic/webp/key-2x.webp
deleted file mode 100644
index 0052916..0000000
Binary files a/assets/static/fonts/open-iconic/webp/key-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/key-3x.webp b/assets/static/fonts/open-iconic/webp/key-3x.webp
deleted file mode 100644
index a901fbd..0000000
Binary files a/assets/static/fonts/open-iconic/webp/key-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/key-4x.webp b/assets/static/fonts/open-iconic/webp/key-4x.webp
deleted file mode 100644
index d918258..0000000
Binary files a/assets/static/fonts/open-iconic/webp/key-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/key-6x.webp b/assets/static/fonts/open-iconic/webp/key-6x.webp
deleted file mode 100644
index fdc6e64..0000000
Binary files a/assets/static/fonts/open-iconic/webp/key-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/key-8x.webp b/assets/static/fonts/open-iconic/webp/key-8x.webp
deleted file mode 100644
index e07012d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/key-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/key.webp b/assets/static/fonts/open-iconic/webp/key.webp
deleted file mode 100644
index d740116..0000000
Binary files a/assets/static/fonts/open-iconic/webp/key.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/laptop-2x.webp b/assets/static/fonts/open-iconic/webp/laptop-2x.webp
deleted file mode 100644
index ba84306..0000000
Binary files a/assets/static/fonts/open-iconic/webp/laptop-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/laptop-3x.webp b/assets/static/fonts/open-iconic/webp/laptop-3x.webp
deleted file mode 100644
index 8ef0b12..0000000
Binary files a/assets/static/fonts/open-iconic/webp/laptop-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/laptop-4x.webp b/assets/static/fonts/open-iconic/webp/laptop-4x.webp
deleted file mode 100644
index d1234cc..0000000
Binary files a/assets/static/fonts/open-iconic/webp/laptop-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/laptop-6x.webp b/assets/static/fonts/open-iconic/webp/laptop-6x.webp
deleted file mode 100644
index facfccd..0000000
Binary files a/assets/static/fonts/open-iconic/webp/laptop-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/laptop-8x.webp b/assets/static/fonts/open-iconic/webp/laptop-8x.webp
deleted file mode 100644
index bd125ec..0000000
Binary files a/assets/static/fonts/open-iconic/webp/laptop-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/laptop.webp b/assets/static/fonts/open-iconic/webp/laptop.webp
deleted file mode 100644
index 9eeeb8b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/laptop.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/layers-2x.webp b/assets/static/fonts/open-iconic/webp/layers-2x.webp
deleted file mode 100644
index 4ffc1ec..0000000
Binary files a/assets/static/fonts/open-iconic/webp/layers-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/layers-3x.webp b/assets/static/fonts/open-iconic/webp/layers-3x.webp
deleted file mode 100644
index fa53199..0000000
Binary files a/assets/static/fonts/open-iconic/webp/layers-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/layers-4x.webp b/assets/static/fonts/open-iconic/webp/layers-4x.webp
deleted file mode 100644
index 61d6bec..0000000
Binary files a/assets/static/fonts/open-iconic/webp/layers-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/layers-6x.webp b/assets/static/fonts/open-iconic/webp/layers-6x.webp
deleted file mode 100644
index a586d3b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/layers-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/layers-8x.webp b/assets/static/fonts/open-iconic/webp/layers-8x.webp
deleted file mode 100644
index bacf2d7..0000000
Binary files a/assets/static/fonts/open-iconic/webp/layers-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/layers.webp b/assets/static/fonts/open-iconic/webp/layers.webp
deleted file mode 100644
index 8177b42..0000000
Binary files a/assets/static/fonts/open-iconic/webp/layers.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/lightbulb-2x.webp b/assets/static/fonts/open-iconic/webp/lightbulb-2x.webp
deleted file mode 100644
index 496b813..0000000
Binary files a/assets/static/fonts/open-iconic/webp/lightbulb-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/lightbulb-3x.webp b/assets/static/fonts/open-iconic/webp/lightbulb-3x.webp
deleted file mode 100644
index cd94ede..0000000
Binary files a/assets/static/fonts/open-iconic/webp/lightbulb-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/lightbulb-4x.webp b/assets/static/fonts/open-iconic/webp/lightbulb-4x.webp
deleted file mode 100644
index e413c79..0000000
Binary files a/assets/static/fonts/open-iconic/webp/lightbulb-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/lightbulb-6x.webp b/assets/static/fonts/open-iconic/webp/lightbulb-6x.webp
deleted file mode 100644
index a17b6a9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/lightbulb-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/lightbulb-8x.webp b/assets/static/fonts/open-iconic/webp/lightbulb-8x.webp
deleted file mode 100644
index 173b98b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/lightbulb-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/lightbulb.webp b/assets/static/fonts/open-iconic/webp/lightbulb.webp
deleted file mode 100644
index 67fd467..0000000
Binary files a/assets/static/fonts/open-iconic/webp/lightbulb.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/link-broken-2x.webp b/assets/static/fonts/open-iconic/webp/link-broken-2x.webp
deleted file mode 100644
index eaeb71e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/link-broken-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/link-broken-3x.webp b/assets/static/fonts/open-iconic/webp/link-broken-3x.webp
deleted file mode 100644
index 88266c3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/link-broken-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/link-broken-4x.webp b/assets/static/fonts/open-iconic/webp/link-broken-4x.webp
deleted file mode 100644
index 6f1e288..0000000
Binary files a/assets/static/fonts/open-iconic/webp/link-broken-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/link-broken-6x.webp b/assets/static/fonts/open-iconic/webp/link-broken-6x.webp
deleted file mode 100644
index 146b15b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/link-broken-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/link-broken-8x.webp b/assets/static/fonts/open-iconic/webp/link-broken-8x.webp
deleted file mode 100644
index 3367f70..0000000
Binary files a/assets/static/fonts/open-iconic/webp/link-broken-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/link-broken.webp b/assets/static/fonts/open-iconic/webp/link-broken.webp
deleted file mode 100644
index f778219..0000000
Binary files a/assets/static/fonts/open-iconic/webp/link-broken.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/link-intact-2x.webp b/assets/static/fonts/open-iconic/webp/link-intact-2x.webp
deleted file mode 100644
index 3c8252b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/link-intact-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/link-intact-3x.webp b/assets/static/fonts/open-iconic/webp/link-intact-3x.webp
deleted file mode 100644
index d293422..0000000
Binary files a/assets/static/fonts/open-iconic/webp/link-intact-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/link-intact-4x.webp b/assets/static/fonts/open-iconic/webp/link-intact-4x.webp
deleted file mode 100644
index a8fcb94..0000000
Binary files a/assets/static/fonts/open-iconic/webp/link-intact-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/link-intact-6x.webp b/assets/static/fonts/open-iconic/webp/link-intact-6x.webp
deleted file mode 100644
index 602197a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/link-intact-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/link-intact-8x.webp b/assets/static/fonts/open-iconic/webp/link-intact-8x.webp
deleted file mode 100644
index e8ff587..0000000
Binary files a/assets/static/fonts/open-iconic/webp/link-intact-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/link-intact.webp b/assets/static/fonts/open-iconic/webp/link-intact.webp
deleted file mode 100644
index 2a188ca..0000000
Binary files a/assets/static/fonts/open-iconic/webp/link-intact.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/list-2x.webp b/assets/static/fonts/open-iconic/webp/list-2x.webp
deleted file mode 100644
index f2e81a5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/list-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/list-3x.webp b/assets/static/fonts/open-iconic/webp/list-3x.webp
deleted file mode 100644
index 528c555..0000000
Binary files a/assets/static/fonts/open-iconic/webp/list-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/list-4x.webp b/assets/static/fonts/open-iconic/webp/list-4x.webp
deleted file mode 100644
index f61ad06..0000000
Binary files a/assets/static/fonts/open-iconic/webp/list-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/list-6x.webp b/assets/static/fonts/open-iconic/webp/list-6x.webp
deleted file mode 100644
index ceb2914..0000000
Binary files a/assets/static/fonts/open-iconic/webp/list-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/list-8x.webp b/assets/static/fonts/open-iconic/webp/list-8x.webp
deleted file mode 100644
index 157c317..0000000
Binary files a/assets/static/fonts/open-iconic/webp/list-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/list-rich-2x.webp b/assets/static/fonts/open-iconic/webp/list-rich-2x.webp
deleted file mode 100644
index ec8cd76..0000000
Binary files a/assets/static/fonts/open-iconic/webp/list-rich-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/list-rich-3x.webp b/assets/static/fonts/open-iconic/webp/list-rich-3x.webp
deleted file mode 100644
index e5d2793..0000000
Binary files a/assets/static/fonts/open-iconic/webp/list-rich-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/list-rich-4x.webp b/assets/static/fonts/open-iconic/webp/list-rich-4x.webp
deleted file mode 100644
index 932fa61..0000000
Binary files a/assets/static/fonts/open-iconic/webp/list-rich-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/list-rich-6x.webp b/assets/static/fonts/open-iconic/webp/list-rich-6x.webp
deleted file mode 100644
index b4eadb7..0000000
Binary files a/assets/static/fonts/open-iconic/webp/list-rich-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/list-rich-8x.webp b/assets/static/fonts/open-iconic/webp/list-rich-8x.webp
deleted file mode 100644
index 06c72ee..0000000
Binary files a/assets/static/fonts/open-iconic/webp/list-rich-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/list-rich.webp b/assets/static/fonts/open-iconic/webp/list-rich.webp
deleted file mode 100644
index 3d54807..0000000
Binary files a/assets/static/fonts/open-iconic/webp/list-rich.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/list.webp b/assets/static/fonts/open-iconic/webp/list.webp
deleted file mode 100644
index 433078c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/list.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/location-2x.webp b/assets/static/fonts/open-iconic/webp/location-2x.webp
deleted file mode 100644
index f5c9efd..0000000
Binary files a/assets/static/fonts/open-iconic/webp/location-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/location-3x.webp b/assets/static/fonts/open-iconic/webp/location-3x.webp
deleted file mode 100644
index 8fe8de2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/location-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/location-4x.webp b/assets/static/fonts/open-iconic/webp/location-4x.webp
deleted file mode 100644
index 9f46c1a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/location-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/location-6x.webp b/assets/static/fonts/open-iconic/webp/location-6x.webp
deleted file mode 100644
index 2b2712a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/location-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/location-8x.webp b/assets/static/fonts/open-iconic/webp/location-8x.webp
deleted file mode 100644
index 9c545fc..0000000
Binary files a/assets/static/fonts/open-iconic/webp/location-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/location.webp b/assets/static/fonts/open-iconic/webp/location.webp
deleted file mode 100644
index a2c41e8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/location.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/lock-locked-2x.webp b/assets/static/fonts/open-iconic/webp/lock-locked-2x.webp
deleted file mode 100644
index fa9eb5b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/lock-locked-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/lock-locked-3x.webp b/assets/static/fonts/open-iconic/webp/lock-locked-3x.webp
deleted file mode 100644
index c4e30fd..0000000
Binary files a/assets/static/fonts/open-iconic/webp/lock-locked-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/lock-locked-4x.webp b/assets/static/fonts/open-iconic/webp/lock-locked-4x.webp
deleted file mode 100644
index 60211f5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/lock-locked-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/lock-locked-6x.webp b/assets/static/fonts/open-iconic/webp/lock-locked-6x.webp
deleted file mode 100644
index d20c307..0000000
Binary files a/assets/static/fonts/open-iconic/webp/lock-locked-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/lock-locked-8x.webp b/assets/static/fonts/open-iconic/webp/lock-locked-8x.webp
deleted file mode 100644
index 44aeba4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/lock-locked-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/lock-locked.webp b/assets/static/fonts/open-iconic/webp/lock-locked.webp
deleted file mode 100644
index 87eb3dd..0000000
Binary files a/assets/static/fonts/open-iconic/webp/lock-locked.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/lock-unlocked-2x.webp b/assets/static/fonts/open-iconic/webp/lock-unlocked-2x.webp
deleted file mode 100644
index 798ff49..0000000
Binary files a/assets/static/fonts/open-iconic/webp/lock-unlocked-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/lock-unlocked-3x.webp b/assets/static/fonts/open-iconic/webp/lock-unlocked-3x.webp
deleted file mode 100644
index 3fd7a4a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/lock-unlocked-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/lock-unlocked-4x.webp b/assets/static/fonts/open-iconic/webp/lock-unlocked-4x.webp
deleted file mode 100644
index f811a76..0000000
Binary files a/assets/static/fonts/open-iconic/webp/lock-unlocked-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/lock-unlocked-6x.webp b/assets/static/fonts/open-iconic/webp/lock-unlocked-6x.webp
deleted file mode 100644
index 0bda8fb..0000000
Binary files a/assets/static/fonts/open-iconic/webp/lock-unlocked-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/lock-unlocked-8x.webp b/assets/static/fonts/open-iconic/webp/lock-unlocked-8x.webp
deleted file mode 100644
index 765cfec..0000000
Binary files a/assets/static/fonts/open-iconic/webp/lock-unlocked-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/lock-unlocked.webp b/assets/static/fonts/open-iconic/webp/lock-unlocked.webp
deleted file mode 100644
index c45debc..0000000
Binary files a/assets/static/fonts/open-iconic/webp/lock-unlocked.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/loop-2x.webp b/assets/static/fonts/open-iconic/webp/loop-2x.webp
deleted file mode 100644
index 760e04b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/loop-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/loop-3x.webp b/assets/static/fonts/open-iconic/webp/loop-3x.webp
deleted file mode 100644
index fae3328..0000000
Binary files a/assets/static/fonts/open-iconic/webp/loop-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/loop-4x.webp b/assets/static/fonts/open-iconic/webp/loop-4x.webp
deleted file mode 100644
index 9c50d49..0000000
Binary files a/assets/static/fonts/open-iconic/webp/loop-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/loop-6x.webp b/assets/static/fonts/open-iconic/webp/loop-6x.webp
deleted file mode 100644
index b147cfb..0000000
Binary files a/assets/static/fonts/open-iconic/webp/loop-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/loop-8x.webp b/assets/static/fonts/open-iconic/webp/loop-8x.webp
deleted file mode 100644
index 861e288..0000000
Binary files a/assets/static/fonts/open-iconic/webp/loop-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/loop-circular-2x.webp b/assets/static/fonts/open-iconic/webp/loop-circular-2x.webp
deleted file mode 100644
index 2f4c3f7..0000000
Binary files a/assets/static/fonts/open-iconic/webp/loop-circular-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/loop-circular-3x.webp b/assets/static/fonts/open-iconic/webp/loop-circular-3x.webp
deleted file mode 100644
index f2b2f6d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/loop-circular-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/loop-circular-4x.webp b/assets/static/fonts/open-iconic/webp/loop-circular-4x.webp
deleted file mode 100644
index bc13619..0000000
Binary files a/assets/static/fonts/open-iconic/webp/loop-circular-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/loop-circular-6x.webp b/assets/static/fonts/open-iconic/webp/loop-circular-6x.webp
deleted file mode 100644
index 6c8d24a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/loop-circular-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/loop-circular-8x.webp b/assets/static/fonts/open-iconic/webp/loop-circular-8x.webp
deleted file mode 100644
index 932fb19..0000000
Binary files a/assets/static/fonts/open-iconic/webp/loop-circular-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/loop-circular.webp b/assets/static/fonts/open-iconic/webp/loop-circular.webp
deleted file mode 100644
index 3db5959..0000000
Binary files a/assets/static/fonts/open-iconic/webp/loop-circular.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/loop-square-2x.webp b/assets/static/fonts/open-iconic/webp/loop-square-2x.webp
deleted file mode 100644
index bfb1885..0000000
Binary files a/assets/static/fonts/open-iconic/webp/loop-square-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/loop-square-3x.webp b/assets/static/fonts/open-iconic/webp/loop-square-3x.webp
deleted file mode 100644
index d8605f1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/loop-square-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/loop-square-4x.webp b/assets/static/fonts/open-iconic/webp/loop-square-4x.webp
deleted file mode 100644
index 25a1306..0000000
Binary files a/assets/static/fonts/open-iconic/webp/loop-square-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/loop-square-6x.webp b/assets/static/fonts/open-iconic/webp/loop-square-6x.webp
deleted file mode 100644
index 01d8e9e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/loop-square-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/loop-square-8x.webp b/assets/static/fonts/open-iconic/webp/loop-square-8x.webp
deleted file mode 100644
index 1ea2c58..0000000
Binary files a/assets/static/fonts/open-iconic/webp/loop-square-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/loop-square.webp b/assets/static/fonts/open-iconic/webp/loop-square.webp
deleted file mode 100644
index 9c2e0cc..0000000
Binary files a/assets/static/fonts/open-iconic/webp/loop-square.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/loop.webp b/assets/static/fonts/open-iconic/webp/loop.webp
deleted file mode 100644
index 5eebe6e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/loop.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/magnifying-glass-2x.webp b/assets/static/fonts/open-iconic/webp/magnifying-glass-2x.webp
deleted file mode 100644
index d7889f7..0000000
Binary files a/assets/static/fonts/open-iconic/webp/magnifying-glass-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/magnifying-glass-3x.webp b/assets/static/fonts/open-iconic/webp/magnifying-glass-3x.webp
deleted file mode 100644
index 7a1ac65..0000000
Binary files a/assets/static/fonts/open-iconic/webp/magnifying-glass-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/magnifying-glass-4x.webp b/assets/static/fonts/open-iconic/webp/magnifying-glass-4x.webp
deleted file mode 100644
index 0078ed4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/magnifying-glass-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/magnifying-glass-6x.webp b/assets/static/fonts/open-iconic/webp/magnifying-glass-6x.webp
deleted file mode 100644
index 53d15c0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/magnifying-glass-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/magnifying-glass-8x.webp b/assets/static/fonts/open-iconic/webp/magnifying-glass-8x.webp
deleted file mode 100644
index 8f73515..0000000
Binary files a/assets/static/fonts/open-iconic/webp/magnifying-glass-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/magnifying-glass.webp b/assets/static/fonts/open-iconic/webp/magnifying-glass.webp
deleted file mode 100644
index ed2a435..0000000
Binary files a/assets/static/fonts/open-iconic/webp/magnifying-glass.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/map-2x.webp b/assets/static/fonts/open-iconic/webp/map-2x.webp
deleted file mode 100644
index ed74df7..0000000
Binary files a/assets/static/fonts/open-iconic/webp/map-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/map-3x.webp b/assets/static/fonts/open-iconic/webp/map-3x.webp
deleted file mode 100644
index 7965a79..0000000
Binary files a/assets/static/fonts/open-iconic/webp/map-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/map-4x.webp b/assets/static/fonts/open-iconic/webp/map-4x.webp
deleted file mode 100644
index 5055610..0000000
Binary files a/assets/static/fonts/open-iconic/webp/map-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/map-6x.webp b/assets/static/fonts/open-iconic/webp/map-6x.webp
deleted file mode 100644
index 2cba959..0000000
Binary files a/assets/static/fonts/open-iconic/webp/map-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/map-8x.webp b/assets/static/fonts/open-iconic/webp/map-8x.webp
deleted file mode 100644
index 11e4fb0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/map-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/map-marker-2x.webp b/assets/static/fonts/open-iconic/webp/map-marker-2x.webp
deleted file mode 100644
index 751ccaa..0000000
Binary files a/assets/static/fonts/open-iconic/webp/map-marker-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/map-marker-3x.webp b/assets/static/fonts/open-iconic/webp/map-marker-3x.webp
deleted file mode 100644
index c61cf7b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/map-marker-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/map-marker-4x.webp b/assets/static/fonts/open-iconic/webp/map-marker-4x.webp
deleted file mode 100644
index 3f62273..0000000
Binary files a/assets/static/fonts/open-iconic/webp/map-marker-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/map-marker-6x.webp b/assets/static/fonts/open-iconic/webp/map-marker-6x.webp
deleted file mode 100644
index e7d7540..0000000
Binary files a/assets/static/fonts/open-iconic/webp/map-marker-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/map-marker-8x.webp b/assets/static/fonts/open-iconic/webp/map-marker-8x.webp
deleted file mode 100644
index 09e5985..0000000
Binary files a/assets/static/fonts/open-iconic/webp/map-marker-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/map-marker.webp b/assets/static/fonts/open-iconic/webp/map-marker.webp
deleted file mode 100644
index 90fc968..0000000
Binary files a/assets/static/fonts/open-iconic/webp/map-marker.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/map.webp b/assets/static/fonts/open-iconic/webp/map.webp
deleted file mode 100644
index 0d7fc2a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/map.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-pause-2x.webp b/assets/static/fonts/open-iconic/webp/media-pause-2x.webp
deleted file mode 100644
index 4e7a0ee..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-pause-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-pause-3x.webp b/assets/static/fonts/open-iconic/webp/media-pause-3x.webp
deleted file mode 100644
index 1ac08cd..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-pause-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-pause-4x.webp b/assets/static/fonts/open-iconic/webp/media-pause-4x.webp
deleted file mode 100644
index fa7bce4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-pause-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-pause-6x.webp b/assets/static/fonts/open-iconic/webp/media-pause-6x.webp
deleted file mode 100644
index c61afce..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-pause-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-pause-8x.webp b/assets/static/fonts/open-iconic/webp/media-pause-8x.webp
deleted file mode 100644
index 98d915b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-pause-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-pause.webp b/assets/static/fonts/open-iconic/webp/media-pause.webp
deleted file mode 100644
index 57a2b31..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-pause.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-play-2x.webp b/assets/static/fonts/open-iconic/webp/media-play-2x.webp
deleted file mode 100644
index 8eeec8a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-play-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-play-3x.webp b/assets/static/fonts/open-iconic/webp/media-play-3x.webp
deleted file mode 100644
index 64b9857..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-play-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-play-4x.webp b/assets/static/fonts/open-iconic/webp/media-play-4x.webp
deleted file mode 100644
index 6911a88..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-play-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-play-6x.webp b/assets/static/fonts/open-iconic/webp/media-play-6x.webp
deleted file mode 100644
index 14c55f3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-play-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-play-8x.webp b/assets/static/fonts/open-iconic/webp/media-play-8x.webp
deleted file mode 100644
index f110bf9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-play-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-play.webp b/assets/static/fonts/open-iconic/webp/media-play.webp
deleted file mode 100644
index e0cddc9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-play.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-record-2x.webp b/assets/static/fonts/open-iconic/webp/media-record-2x.webp
deleted file mode 100644
index 86c835a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-record-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-record-3x.webp b/assets/static/fonts/open-iconic/webp/media-record-3x.webp
deleted file mode 100644
index c3d74c4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-record-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-record-4x.webp b/assets/static/fonts/open-iconic/webp/media-record-4x.webp
deleted file mode 100644
index c6421d0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-record-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-record-6x.webp b/assets/static/fonts/open-iconic/webp/media-record-6x.webp
deleted file mode 100644
index a8dd1cb..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-record-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-record-8x.webp b/assets/static/fonts/open-iconic/webp/media-record-8x.webp
deleted file mode 100644
index 7653ddc..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-record-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-record.webp b/assets/static/fonts/open-iconic/webp/media-record.webp
deleted file mode 100644
index d8450bd..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-record.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-skip-backward-2x.webp b/assets/static/fonts/open-iconic/webp/media-skip-backward-2x.webp
deleted file mode 100644
index 3a8507f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-skip-backward-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-skip-backward-3x.webp b/assets/static/fonts/open-iconic/webp/media-skip-backward-3x.webp
deleted file mode 100644
index e92aa14..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-skip-backward-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-skip-backward-4x.webp b/assets/static/fonts/open-iconic/webp/media-skip-backward-4x.webp
deleted file mode 100644
index e6678a9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-skip-backward-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-skip-backward-6x.webp b/assets/static/fonts/open-iconic/webp/media-skip-backward-6x.webp
deleted file mode 100644
index ae7c3b2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-skip-backward-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-skip-backward-8x.webp b/assets/static/fonts/open-iconic/webp/media-skip-backward-8x.webp
deleted file mode 100644
index 60fb938..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-skip-backward-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-skip-backward.webp b/assets/static/fonts/open-iconic/webp/media-skip-backward.webp
deleted file mode 100644
index 8e2492e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-skip-backward.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-skip-forward-2x.webp b/assets/static/fonts/open-iconic/webp/media-skip-forward-2x.webp
deleted file mode 100644
index 2f853ea..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-skip-forward-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-skip-forward-3x.webp b/assets/static/fonts/open-iconic/webp/media-skip-forward-3x.webp
deleted file mode 100644
index 7daea6c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-skip-forward-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-skip-forward-4x.webp b/assets/static/fonts/open-iconic/webp/media-skip-forward-4x.webp
deleted file mode 100644
index f3113fc..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-skip-forward-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-skip-forward-6x.webp b/assets/static/fonts/open-iconic/webp/media-skip-forward-6x.webp
deleted file mode 100644
index 3ff89f4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-skip-forward-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-skip-forward-8x.webp b/assets/static/fonts/open-iconic/webp/media-skip-forward-8x.webp
deleted file mode 100644
index f8d94f9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-skip-forward-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-skip-forward.webp b/assets/static/fonts/open-iconic/webp/media-skip-forward.webp
deleted file mode 100644
index a0607ed..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-skip-forward.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-step-backward-2x.webp b/assets/static/fonts/open-iconic/webp/media-step-backward-2x.webp
deleted file mode 100644
index fe87d1d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-step-backward-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-step-backward-3x.webp b/assets/static/fonts/open-iconic/webp/media-step-backward-3x.webp
deleted file mode 100644
index fc33116..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-step-backward-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-step-backward-4x.webp b/assets/static/fonts/open-iconic/webp/media-step-backward-4x.webp
deleted file mode 100644
index d4f1ca0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-step-backward-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-step-backward-6x.webp b/assets/static/fonts/open-iconic/webp/media-step-backward-6x.webp
deleted file mode 100644
index 6155313..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-step-backward-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-step-backward-8x.webp b/assets/static/fonts/open-iconic/webp/media-step-backward-8x.webp
deleted file mode 100644
index 71e89e0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-step-backward-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-step-backward.webp b/assets/static/fonts/open-iconic/webp/media-step-backward.webp
deleted file mode 100644
index 3e616bd..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-step-backward.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-step-forward-2x.webp b/assets/static/fonts/open-iconic/webp/media-step-forward-2x.webp
deleted file mode 100644
index 0a614e2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-step-forward-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-step-forward-3x.webp b/assets/static/fonts/open-iconic/webp/media-step-forward-3x.webp
deleted file mode 100644
index a7e7d49..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-step-forward-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-step-forward-4x.webp b/assets/static/fonts/open-iconic/webp/media-step-forward-4x.webp
deleted file mode 100644
index 54d9d38..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-step-forward-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-step-forward-6x.webp b/assets/static/fonts/open-iconic/webp/media-step-forward-6x.webp
deleted file mode 100644
index 1400e7c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-step-forward-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-step-forward-8x.webp b/assets/static/fonts/open-iconic/webp/media-step-forward-8x.webp
deleted file mode 100644
index 604eaee..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-step-forward-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-step-forward.webp b/assets/static/fonts/open-iconic/webp/media-step-forward.webp
deleted file mode 100644
index e41e250..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-step-forward.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-stop-2x.webp b/assets/static/fonts/open-iconic/webp/media-stop-2x.webp
deleted file mode 100644
index c9c39d0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-stop-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-stop-3x.webp b/assets/static/fonts/open-iconic/webp/media-stop-3x.webp
deleted file mode 100644
index 9dc380a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-stop-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-stop-4x.webp b/assets/static/fonts/open-iconic/webp/media-stop-4x.webp
deleted file mode 100644
index 12305ea..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-stop-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-stop-6x.webp b/assets/static/fonts/open-iconic/webp/media-stop-6x.webp
deleted file mode 100644
index a429247..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-stop-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-stop-8x.webp b/assets/static/fonts/open-iconic/webp/media-stop-8x.webp
deleted file mode 100644
index cde7ef9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-stop-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/media-stop.webp b/assets/static/fonts/open-iconic/webp/media-stop.webp
deleted file mode 100644
index e9ba3a1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/media-stop.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/medical-cross-2x.webp b/assets/static/fonts/open-iconic/webp/medical-cross-2x.webp
deleted file mode 100644
index 13f18a8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/medical-cross-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/medical-cross-3x.webp b/assets/static/fonts/open-iconic/webp/medical-cross-3x.webp
deleted file mode 100644
index b1b4bfb..0000000
Binary files a/assets/static/fonts/open-iconic/webp/medical-cross-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/medical-cross-4x.webp b/assets/static/fonts/open-iconic/webp/medical-cross-4x.webp
deleted file mode 100644
index b32da4d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/medical-cross-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/medical-cross-6x.webp b/assets/static/fonts/open-iconic/webp/medical-cross-6x.webp
deleted file mode 100644
index c14ee6f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/medical-cross-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/medical-cross-8x.webp b/assets/static/fonts/open-iconic/webp/medical-cross-8x.webp
deleted file mode 100644
index 158f7c1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/medical-cross-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/medical-cross.webp b/assets/static/fonts/open-iconic/webp/medical-cross.webp
deleted file mode 100644
index a557111..0000000
Binary files a/assets/static/fonts/open-iconic/webp/medical-cross.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/menu-2x.webp b/assets/static/fonts/open-iconic/webp/menu-2x.webp
deleted file mode 100644
index dfb3a7e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/menu-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/menu-3x.webp b/assets/static/fonts/open-iconic/webp/menu-3x.webp
deleted file mode 100644
index 0fc9de3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/menu-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/menu-4x.webp b/assets/static/fonts/open-iconic/webp/menu-4x.webp
deleted file mode 100644
index d2f3cd6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/menu-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/menu-6x.webp b/assets/static/fonts/open-iconic/webp/menu-6x.webp
deleted file mode 100644
index 78216ff..0000000
Binary files a/assets/static/fonts/open-iconic/webp/menu-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/menu-8x.webp b/assets/static/fonts/open-iconic/webp/menu-8x.webp
deleted file mode 100644
index ab58dba..0000000
Binary files a/assets/static/fonts/open-iconic/webp/menu-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/menu.webp b/assets/static/fonts/open-iconic/webp/menu.webp
deleted file mode 100644
index a23ed3e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/menu.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/microphone-2x.webp b/assets/static/fonts/open-iconic/webp/microphone-2x.webp
deleted file mode 100644
index 08a60e5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/microphone-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/microphone-3x.webp b/assets/static/fonts/open-iconic/webp/microphone-3x.webp
deleted file mode 100644
index de6e385..0000000
Binary files a/assets/static/fonts/open-iconic/webp/microphone-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/microphone-4x.webp b/assets/static/fonts/open-iconic/webp/microphone-4x.webp
deleted file mode 100644
index ce79370..0000000
Binary files a/assets/static/fonts/open-iconic/webp/microphone-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/microphone-6x.webp b/assets/static/fonts/open-iconic/webp/microphone-6x.webp
deleted file mode 100644
index 1d48ac5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/microphone-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/microphone-8x.webp b/assets/static/fonts/open-iconic/webp/microphone-8x.webp
deleted file mode 100644
index 64002e0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/microphone-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/microphone.webp b/assets/static/fonts/open-iconic/webp/microphone.webp
deleted file mode 100644
index e033250..0000000
Binary files a/assets/static/fonts/open-iconic/webp/microphone.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/minus-2x.webp b/assets/static/fonts/open-iconic/webp/minus-2x.webp
deleted file mode 100644
index 24d22fc..0000000
Binary files a/assets/static/fonts/open-iconic/webp/minus-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/minus-3x.webp b/assets/static/fonts/open-iconic/webp/minus-3x.webp
deleted file mode 100644
index d9e7b7e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/minus-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/minus-4x.webp b/assets/static/fonts/open-iconic/webp/minus-4x.webp
deleted file mode 100644
index 6249d8f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/minus-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/minus-6x.webp b/assets/static/fonts/open-iconic/webp/minus-6x.webp
deleted file mode 100644
index 10753e8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/minus-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/minus-8x.webp b/assets/static/fonts/open-iconic/webp/minus-8x.webp
deleted file mode 100644
index 11a0b37..0000000
Binary files a/assets/static/fonts/open-iconic/webp/minus-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/minus.webp b/assets/static/fonts/open-iconic/webp/minus.webp
deleted file mode 100644
index 9f4a568..0000000
Binary files a/assets/static/fonts/open-iconic/webp/minus.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/monitor-2x.webp b/assets/static/fonts/open-iconic/webp/monitor-2x.webp
deleted file mode 100644
index 752f206..0000000
Binary files a/assets/static/fonts/open-iconic/webp/monitor-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/monitor-3x.webp b/assets/static/fonts/open-iconic/webp/monitor-3x.webp
deleted file mode 100644
index 8c5640d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/monitor-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/monitor-4x.webp b/assets/static/fonts/open-iconic/webp/monitor-4x.webp
deleted file mode 100644
index 1bb2582..0000000
Binary files a/assets/static/fonts/open-iconic/webp/monitor-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/monitor-6x.webp b/assets/static/fonts/open-iconic/webp/monitor-6x.webp
deleted file mode 100644
index c8827fe..0000000
Binary files a/assets/static/fonts/open-iconic/webp/monitor-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/monitor-8x.webp b/assets/static/fonts/open-iconic/webp/monitor-8x.webp
deleted file mode 100644
index 08979f0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/monitor-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/monitor.webp b/assets/static/fonts/open-iconic/webp/monitor.webp
deleted file mode 100644
index 226cda9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/monitor.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/moon-2x.webp b/assets/static/fonts/open-iconic/webp/moon-2x.webp
deleted file mode 100644
index 56845c7..0000000
Binary files a/assets/static/fonts/open-iconic/webp/moon-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/moon-3x.webp b/assets/static/fonts/open-iconic/webp/moon-3x.webp
deleted file mode 100644
index 104182f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/moon-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/moon-4x.webp b/assets/static/fonts/open-iconic/webp/moon-4x.webp
deleted file mode 100644
index 5a3700f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/moon-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/moon-6x.webp b/assets/static/fonts/open-iconic/webp/moon-6x.webp
deleted file mode 100644
index d9440b9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/moon-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/moon-8x.webp b/assets/static/fonts/open-iconic/webp/moon-8x.webp
deleted file mode 100644
index 50ed86b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/moon-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/moon.webp b/assets/static/fonts/open-iconic/webp/moon.webp
deleted file mode 100644
index e9a66f8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/moon.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/move-2x.webp b/assets/static/fonts/open-iconic/webp/move-2x.webp
deleted file mode 100644
index 17e0b53..0000000
Binary files a/assets/static/fonts/open-iconic/webp/move-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/move-3x.webp b/assets/static/fonts/open-iconic/webp/move-3x.webp
deleted file mode 100644
index 7cd5479..0000000
Binary files a/assets/static/fonts/open-iconic/webp/move-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/move-4x.webp b/assets/static/fonts/open-iconic/webp/move-4x.webp
deleted file mode 100644
index b2771df..0000000
Binary files a/assets/static/fonts/open-iconic/webp/move-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/move-6x.webp b/assets/static/fonts/open-iconic/webp/move-6x.webp
deleted file mode 100644
index bba56f1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/move-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/move-8x.webp b/assets/static/fonts/open-iconic/webp/move-8x.webp
deleted file mode 100644
index c43eec2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/move-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/move.webp b/assets/static/fonts/open-iconic/webp/move.webp
deleted file mode 100644
index 975836c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/move.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/musical-note-2x.webp b/assets/static/fonts/open-iconic/webp/musical-note-2x.webp
deleted file mode 100644
index 5c2ad8e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/musical-note-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/musical-note-3x.webp b/assets/static/fonts/open-iconic/webp/musical-note-3x.webp
deleted file mode 100644
index 5337b1d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/musical-note-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/musical-note-4x.webp b/assets/static/fonts/open-iconic/webp/musical-note-4x.webp
deleted file mode 100644
index ceb7da2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/musical-note-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/musical-note-6x.webp b/assets/static/fonts/open-iconic/webp/musical-note-6x.webp
deleted file mode 100644
index 23f06c9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/musical-note-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/musical-note-8x.webp b/assets/static/fonts/open-iconic/webp/musical-note-8x.webp
deleted file mode 100644
index 72cd8a9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/musical-note-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/musical-note.webp b/assets/static/fonts/open-iconic/webp/musical-note.webp
deleted file mode 100644
index 6f20b9b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/musical-note.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/paperclip-2x.webp b/assets/static/fonts/open-iconic/webp/paperclip-2x.webp
deleted file mode 100644
index 6795993..0000000
Binary files a/assets/static/fonts/open-iconic/webp/paperclip-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/paperclip-3x.webp b/assets/static/fonts/open-iconic/webp/paperclip-3x.webp
deleted file mode 100644
index 195fdb1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/paperclip-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/paperclip-4x.webp b/assets/static/fonts/open-iconic/webp/paperclip-4x.webp
deleted file mode 100644
index 12b571a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/paperclip-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/paperclip-6x.webp b/assets/static/fonts/open-iconic/webp/paperclip-6x.webp
deleted file mode 100644
index 159b463..0000000
Binary files a/assets/static/fonts/open-iconic/webp/paperclip-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/paperclip-8x.webp b/assets/static/fonts/open-iconic/webp/paperclip-8x.webp
deleted file mode 100644
index e50d581..0000000
Binary files a/assets/static/fonts/open-iconic/webp/paperclip-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/paperclip.webp b/assets/static/fonts/open-iconic/webp/paperclip.webp
deleted file mode 100644
index 04bcf33..0000000
Binary files a/assets/static/fonts/open-iconic/webp/paperclip.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/pencil-2x.webp b/assets/static/fonts/open-iconic/webp/pencil-2x.webp
deleted file mode 100644
index 6f97541..0000000
Binary files a/assets/static/fonts/open-iconic/webp/pencil-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/pencil-3x.webp b/assets/static/fonts/open-iconic/webp/pencil-3x.webp
deleted file mode 100644
index d5610fa..0000000
Binary files a/assets/static/fonts/open-iconic/webp/pencil-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/pencil-4x.webp b/assets/static/fonts/open-iconic/webp/pencil-4x.webp
deleted file mode 100644
index 5cdb223..0000000
Binary files a/assets/static/fonts/open-iconic/webp/pencil-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/pencil-6x.webp b/assets/static/fonts/open-iconic/webp/pencil-6x.webp
deleted file mode 100644
index 56805ad..0000000
Binary files a/assets/static/fonts/open-iconic/webp/pencil-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/pencil-8x.webp b/assets/static/fonts/open-iconic/webp/pencil-8x.webp
deleted file mode 100644
index 722addd..0000000
Binary files a/assets/static/fonts/open-iconic/webp/pencil-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/pencil.webp b/assets/static/fonts/open-iconic/webp/pencil.webp
deleted file mode 100644
index 090ed8a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/pencil.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/people-2x.webp b/assets/static/fonts/open-iconic/webp/people-2x.webp
deleted file mode 100644
index ff4215a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/people-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/people-3x.webp b/assets/static/fonts/open-iconic/webp/people-3x.webp
deleted file mode 100644
index 9cc75ae..0000000
Binary files a/assets/static/fonts/open-iconic/webp/people-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/people-4x.webp b/assets/static/fonts/open-iconic/webp/people-4x.webp
deleted file mode 100644
index ab5218c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/people-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/people-6x.webp b/assets/static/fonts/open-iconic/webp/people-6x.webp
deleted file mode 100644
index 0ee0b71..0000000
Binary files a/assets/static/fonts/open-iconic/webp/people-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/people-8x.webp b/assets/static/fonts/open-iconic/webp/people-8x.webp
deleted file mode 100644
index 917093f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/people-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/people.webp b/assets/static/fonts/open-iconic/webp/people.webp
deleted file mode 100644
index d66b41b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/people.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/person-2x.webp b/assets/static/fonts/open-iconic/webp/person-2x.webp
deleted file mode 100644
index 5611866..0000000
Binary files a/assets/static/fonts/open-iconic/webp/person-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/person-3x.webp b/assets/static/fonts/open-iconic/webp/person-3x.webp
deleted file mode 100644
index 83da807..0000000
Binary files a/assets/static/fonts/open-iconic/webp/person-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/person-4x.webp b/assets/static/fonts/open-iconic/webp/person-4x.webp
deleted file mode 100644
index b129bd0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/person-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/person-6x.webp b/assets/static/fonts/open-iconic/webp/person-6x.webp
deleted file mode 100644
index c2829e8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/person-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/person-8x.webp b/assets/static/fonts/open-iconic/webp/person-8x.webp
deleted file mode 100644
index 8d48821..0000000
Binary files a/assets/static/fonts/open-iconic/webp/person-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/person.webp b/assets/static/fonts/open-iconic/webp/person.webp
deleted file mode 100644
index a968da0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/person.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/phone-2x.webp b/assets/static/fonts/open-iconic/webp/phone-2x.webp
deleted file mode 100644
index e614459..0000000
Binary files a/assets/static/fonts/open-iconic/webp/phone-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/phone-3x.webp b/assets/static/fonts/open-iconic/webp/phone-3x.webp
deleted file mode 100644
index dfcd4aa..0000000
Binary files a/assets/static/fonts/open-iconic/webp/phone-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/phone-4x.webp b/assets/static/fonts/open-iconic/webp/phone-4x.webp
deleted file mode 100644
index 1bbcec4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/phone-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/phone-6x.webp b/assets/static/fonts/open-iconic/webp/phone-6x.webp
deleted file mode 100644
index dd90c25..0000000
Binary files a/assets/static/fonts/open-iconic/webp/phone-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/phone-8x.webp b/assets/static/fonts/open-iconic/webp/phone-8x.webp
deleted file mode 100644
index 3e32cbd..0000000
Binary files a/assets/static/fonts/open-iconic/webp/phone-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/phone.webp b/assets/static/fonts/open-iconic/webp/phone.webp
deleted file mode 100644
index 8768e42..0000000
Binary files a/assets/static/fonts/open-iconic/webp/phone.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/pie-chart-2x.webp b/assets/static/fonts/open-iconic/webp/pie-chart-2x.webp
deleted file mode 100644
index 9f08d44..0000000
Binary files a/assets/static/fonts/open-iconic/webp/pie-chart-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/pie-chart-3x.webp b/assets/static/fonts/open-iconic/webp/pie-chart-3x.webp
deleted file mode 100644
index 555457d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/pie-chart-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/pie-chart-4x.webp b/assets/static/fonts/open-iconic/webp/pie-chart-4x.webp
deleted file mode 100644
index 051000b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/pie-chart-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/pie-chart-6x.webp b/assets/static/fonts/open-iconic/webp/pie-chart-6x.webp
deleted file mode 100644
index 1d9fb82..0000000
Binary files a/assets/static/fonts/open-iconic/webp/pie-chart-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/pie-chart-8x.webp b/assets/static/fonts/open-iconic/webp/pie-chart-8x.webp
deleted file mode 100644
index a53d76b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/pie-chart-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/pie-chart.webp b/assets/static/fonts/open-iconic/webp/pie-chart.webp
deleted file mode 100644
index 1e2d7a2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/pie-chart.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/pin-2x.webp b/assets/static/fonts/open-iconic/webp/pin-2x.webp
deleted file mode 100644
index 1270e4d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/pin-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/pin-3x.webp b/assets/static/fonts/open-iconic/webp/pin-3x.webp
deleted file mode 100644
index e32cff8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/pin-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/pin-4x.webp b/assets/static/fonts/open-iconic/webp/pin-4x.webp
deleted file mode 100644
index 3255d86..0000000
Binary files a/assets/static/fonts/open-iconic/webp/pin-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/pin-6x.webp b/assets/static/fonts/open-iconic/webp/pin-6x.webp
deleted file mode 100644
index 1bcfff8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/pin-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/pin-8x.webp b/assets/static/fonts/open-iconic/webp/pin-8x.webp
deleted file mode 100644
index b44ad09..0000000
Binary files a/assets/static/fonts/open-iconic/webp/pin-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/pin.webp b/assets/static/fonts/open-iconic/webp/pin.webp
deleted file mode 100644
index 4e4f6ad..0000000
Binary files a/assets/static/fonts/open-iconic/webp/pin.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/play-circle-2x.webp b/assets/static/fonts/open-iconic/webp/play-circle-2x.webp
deleted file mode 100644
index c693853..0000000
Binary files a/assets/static/fonts/open-iconic/webp/play-circle-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/play-circle-3x.webp b/assets/static/fonts/open-iconic/webp/play-circle-3x.webp
deleted file mode 100644
index 96be608..0000000
Binary files a/assets/static/fonts/open-iconic/webp/play-circle-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/play-circle-4x.webp b/assets/static/fonts/open-iconic/webp/play-circle-4x.webp
deleted file mode 100644
index 19d466a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/play-circle-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/play-circle-6x.webp b/assets/static/fonts/open-iconic/webp/play-circle-6x.webp
deleted file mode 100644
index e1a9901..0000000
Binary files a/assets/static/fonts/open-iconic/webp/play-circle-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/play-circle-8x.webp b/assets/static/fonts/open-iconic/webp/play-circle-8x.webp
deleted file mode 100644
index 7e68512..0000000
Binary files a/assets/static/fonts/open-iconic/webp/play-circle-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/play-circle.webp b/assets/static/fonts/open-iconic/webp/play-circle.webp
deleted file mode 100644
index f521f4c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/play-circle.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/plus-2x.webp b/assets/static/fonts/open-iconic/webp/plus-2x.webp
deleted file mode 100644
index 54f1bce..0000000
Binary files a/assets/static/fonts/open-iconic/webp/plus-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/plus-3x.webp b/assets/static/fonts/open-iconic/webp/plus-3x.webp
deleted file mode 100644
index c2dfd29..0000000
Binary files a/assets/static/fonts/open-iconic/webp/plus-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/plus-4x.webp b/assets/static/fonts/open-iconic/webp/plus-4x.webp
deleted file mode 100644
index 0292873..0000000
Binary files a/assets/static/fonts/open-iconic/webp/plus-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/plus-6x.webp b/assets/static/fonts/open-iconic/webp/plus-6x.webp
deleted file mode 100644
index a7bcca6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/plus-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/plus-8x.webp b/assets/static/fonts/open-iconic/webp/plus-8x.webp
deleted file mode 100644
index c79ec13..0000000
Binary files a/assets/static/fonts/open-iconic/webp/plus-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/plus.webp b/assets/static/fonts/open-iconic/webp/plus.webp
deleted file mode 100644
index e1423bd..0000000
Binary files a/assets/static/fonts/open-iconic/webp/plus.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/power-standby-2x.webp b/assets/static/fonts/open-iconic/webp/power-standby-2x.webp
deleted file mode 100644
index 02511c6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/power-standby-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/power-standby-3x.webp b/assets/static/fonts/open-iconic/webp/power-standby-3x.webp
deleted file mode 100644
index c3a54bb..0000000
Binary files a/assets/static/fonts/open-iconic/webp/power-standby-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/power-standby-4x.webp b/assets/static/fonts/open-iconic/webp/power-standby-4x.webp
deleted file mode 100644
index 1c7142e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/power-standby-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/power-standby-6x.webp b/assets/static/fonts/open-iconic/webp/power-standby-6x.webp
deleted file mode 100644
index 1bf977f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/power-standby-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/power-standby-8x.webp b/assets/static/fonts/open-iconic/webp/power-standby-8x.webp
deleted file mode 100644
index 80f2ca0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/power-standby-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/power-standby.webp b/assets/static/fonts/open-iconic/webp/power-standby.webp
deleted file mode 100644
index a15fc76..0000000
Binary files a/assets/static/fonts/open-iconic/webp/power-standby.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/print-2x.webp b/assets/static/fonts/open-iconic/webp/print-2x.webp
deleted file mode 100644
index bf55804..0000000
Binary files a/assets/static/fonts/open-iconic/webp/print-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/print-3x.webp b/assets/static/fonts/open-iconic/webp/print-3x.webp
deleted file mode 100644
index afc638c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/print-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/print-4x.webp b/assets/static/fonts/open-iconic/webp/print-4x.webp
deleted file mode 100644
index 0d8989b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/print-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/print-6x.webp b/assets/static/fonts/open-iconic/webp/print-6x.webp
deleted file mode 100644
index 0855d54..0000000
Binary files a/assets/static/fonts/open-iconic/webp/print-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/print-8x.webp b/assets/static/fonts/open-iconic/webp/print-8x.webp
deleted file mode 100644
index 80cbc60..0000000
Binary files a/assets/static/fonts/open-iconic/webp/print-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/print.webp b/assets/static/fonts/open-iconic/webp/print.webp
deleted file mode 100644
index 13ef37c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/print.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/project-2x.webp b/assets/static/fonts/open-iconic/webp/project-2x.webp
deleted file mode 100644
index 0ad7182..0000000
Binary files a/assets/static/fonts/open-iconic/webp/project-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/project-3x.webp b/assets/static/fonts/open-iconic/webp/project-3x.webp
deleted file mode 100644
index 509c2c7..0000000
Binary files a/assets/static/fonts/open-iconic/webp/project-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/project-4x.webp b/assets/static/fonts/open-iconic/webp/project-4x.webp
deleted file mode 100644
index 5087fa6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/project-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/project-6x.webp b/assets/static/fonts/open-iconic/webp/project-6x.webp
deleted file mode 100644
index db9dba6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/project-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/project-8x.webp b/assets/static/fonts/open-iconic/webp/project-8x.webp
deleted file mode 100644
index 2c4760b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/project-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/project.webp b/assets/static/fonts/open-iconic/webp/project.webp
deleted file mode 100644
index d3d32a0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/project.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/pulse-2x.webp b/assets/static/fonts/open-iconic/webp/pulse-2x.webp
deleted file mode 100644
index 17b78fa..0000000
Binary files a/assets/static/fonts/open-iconic/webp/pulse-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/pulse-3x.webp b/assets/static/fonts/open-iconic/webp/pulse-3x.webp
deleted file mode 100644
index 2ed126f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/pulse-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/pulse-4x.webp b/assets/static/fonts/open-iconic/webp/pulse-4x.webp
deleted file mode 100644
index cf5341f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/pulse-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/pulse-6x.webp b/assets/static/fonts/open-iconic/webp/pulse-6x.webp
deleted file mode 100644
index 06cab74..0000000
Binary files a/assets/static/fonts/open-iconic/webp/pulse-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/pulse-8x.webp b/assets/static/fonts/open-iconic/webp/pulse-8x.webp
deleted file mode 100644
index 36f87d2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/pulse-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/pulse.webp b/assets/static/fonts/open-iconic/webp/pulse.webp
deleted file mode 100644
index 7fc9189..0000000
Binary files a/assets/static/fonts/open-iconic/webp/pulse.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/puzzle-piece-2x.webp b/assets/static/fonts/open-iconic/webp/puzzle-piece-2x.webp
deleted file mode 100644
index c0b4904..0000000
Binary files a/assets/static/fonts/open-iconic/webp/puzzle-piece-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/puzzle-piece-3x.webp b/assets/static/fonts/open-iconic/webp/puzzle-piece-3x.webp
deleted file mode 100644
index b4b3e74..0000000
Binary files a/assets/static/fonts/open-iconic/webp/puzzle-piece-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/puzzle-piece-4x.webp b/assets/static/fonts/open-iconic/webp/puzzle-piece-4x.webp
deleted file mode 100644
index c912d76..0000000
Binary files a/assets/static/fonts/open-iconic/webp/puzzle-piece-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/puzzle-piece-6x.webp b/assets/static/fonts/open-iconic/webp/puzzle-piece-6x.webp
deleted file mode 100644
index d19cfe3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/puzzle-piece-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/puzzle-piece-8x.webp b/assets/static/fonts/open-iconic/webp/puzzle-piece-8x.webp
deleted file mode 100644
index b575441..0000000
Binary files a/assets/static/fonts/open-iconic/webp/puzzle-piece-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/puzzle-piece.webp b/assets/static/fonts/open-iconic/webp/puzzle-piece.webp
deleted file mode 100644
index f6d4801..0000000
Binary files a/assets/static/fonts/open-iconic/webp/puzzle-piece.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/question-mark-2x.webp b/assets/static/fonts/open-iconic/webp/question-mark-2x.webp
deleted file mode 100644
index 9378381..0000000
Binary files a/assets/static/fonts/open-iconic/webp/question-mark-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/question-mark-3x.webp b/assets/static/fonts/open-iconic/webp/question-mark-3x.webp
deleted file mode 100644
index 34535ce..0000000
Binary files a/assets/static/fonts/open-iconic/webp/question-mark-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/question-mark-4x.webp b/assets/static/fonts/open-iconic/webp/question-mark-4x.webp
deleted file mode 100644
index b8a02f4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/question-mark-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/question-mark-6x.webp b/assets/static/fonts/open-iconic/webp/question-mark-6x.webp
deleted file mode 100644
index 7686ed1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/question-mark-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/question-mark-8x.webp b/assets/static/fonts/open-iconic/webp/question-mark-8x.webp
deleted file mode 100644
index 5ccc9a5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/question-mark-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/question-mark.webp b/assets/static/fonts/open-iconic/webp/question-mark.webp
deleted file mode 100644
index 699ab2e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/question-mark.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/rain-2x.webp b/assets/static/fonts/open-iconic/webp/rain-2x.webp
deleted file mode 100644
index 65790c0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/rain-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/rain-3x.webp b/assets/static/fonts/open-iconic/webp/rain-3x.webp
deleted file mode 100644
index 53949e0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/rain-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/rain-4x.webp b/assets/static/fonts/open-iconic/webp/rain-4x.webp
deleted file mode 100644
index 89ce94b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/rain-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/rain-6x.webp b/assets/static/fonts/open-iconic/webp/rain-6x.webp
deleted file mode 100644
index 6345e23..0000000
Binary files a/assets/static/fonts/open-iconic/webp/rain-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/rain-8x.webp b/assets/static/fonts/open-iconic/webp/rain-8x.webp
deleted file mode 100644
index 16d8543..0000000
Binary files a/assets/static/fonts/open-iconic/webp/rain-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/rain.webp b/assets/static/fonts/open-iconic/webp/rain.webp
deleted file mode 100644
index cfe6917..0000000
Binary files a/assets/static/fonts/open-iconic/webp/rain.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/random-2x.webp b/assets/static/fonts/open-iconic/webp/random-2x.webp
deleted file mode 100644
index 983f332..0000000
Binary files a/assets/static/fonts/open-iconic/webp/random-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/random-3x.webp b/assets/static/fonts/open-iconic/webp/random-3x.webp
deleted file mode 100644
index c6492c4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/random-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/random-4x.webp b/assets/static/fonts/open-iconic/webp/random-4x.webp
deleted file mode 100644
index a2572b1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/random-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/random-6x.webp b/assets/static/fonts/open-iconic/webp/random-6x.webp
deleted file mode 100644
index 643d00e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/random-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/random-8x.webp b/assets/static/fonts/open-iconic/webp/random-8x.webp
deleted file mode 100644
index b9e1292..0000000
Binary files a/assets/static/fonts/open-iconic/webp/random-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/random.webp b/assets/static/fonts/open-iconic/webp/random.webp
deleted file mode 100644
index 72e3914..0000000
Binary files a/assets/static/fonts/open-iconic/webp/random.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/reload-2x.webp b/assets/static/fonts/open-iconic/webp/reload-2x.webp
deleted file mode 100644
index 14eb165..0000000
Binary files a/assets/static/fonts/open-iconic/webp/reload-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/reload-3x.webp b/assets/static/fonts/open-iconic/webp/reload-3x.webp
deleted file mode 100644
index 4d8d79b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/reload-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/reload-4x.webp b/assets/static/fonts/open-iconic/webp/reload-4x.webp
deleted file mode 100644
index ae32ea6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/reload-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/reload-6x.webp b/assets/static/fonts/open-iconic/webp/reload-6x.webp
deleted file mode 100644
index 004b563..0000000
Binary files a/assets/static/fonts/open-iconic/webp/reload-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/reload-8x.webp b/assets/static/fonts/open-iconic/webp/reload-8x.webp
deleted file mode 100644
index 5fc865e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/reload-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/reload.webp b/assets/static/fonts/open-iconic/webp/reload.webp
deleted file mode 100644
index d518e31..0000000
Binary files a/assets/static/fonts/open-iconic/webp/reload.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/resize-both-2x.webp b/assets/static/fonts/open-iconic/webp/resize-both-2x.webp
deleted file mode 100644
index 168a587..0000000
Binary files a/assets/static/fonts/open-iconic/webp/resize-both-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/resize-both-3x.webp b/assets/static/fonts/open-iconic/webp/resize-both-3x.webp
deleted file mode 100644
index 5833982..0000000
Binary files a/assets/static/fonts/open-iconic/webp/resize-both-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/resize-both-4x.webp b/assets/static/fonts/open-iconic/webp/resize-both-4x.webp
deleted file mode 100644
index 7215d34..0000000
Binary files a/assets/static/fonts/open-iconic/webp/resize-both-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/resize-both-6x.webp b/assets/static/fonts/open-iconic/webp/resize-both-6x.webp
deleted file mode 100644
index 5801063..0000000
Binary files a/assets/static/fonts/open-iconic/webp/resize-both-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/resize-both-8x.webp b/assets/static/fonts/open-iconic/webp/resize-both-8x.webp
deleted file mode 100644
index 2235a38..0000000
Binary files a/assets/static/fonts/open-iconic/webp/resize-both-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/resize-both.webp b/assets/static/fonts/open-iconic/webp/resize-both.webp
deleted file mode 100644
index 12dff70..0000000
Binary files a/assets/static/fonts/open-iconic/webp/resize-both.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/resize-height-2x.webp b/assets/static/fonts/open-iconic/webp/resize-height-2x.webp
deleted file mode 100644
index 37d97b4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/resize-height-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/resize-height-3x.webp b/assets/static/fonts/open-iconic/webp/resize-height-3x.webp
deleted file mode 100644
index 4642661..0000000
Binary files a/assets/static/fonts/open-iconic/webp/resize-height-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/resize-height-4x.webp b/assets/static/fonts/open-iconic/webp/resize-height-4x.webp
deleted file mode 100644
index 1de01f2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/resize-height-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/resize-height-6x.webp b/assets/static/fonts/open-iconic/webp/resize-height-6x.webp
deleted file mode 100644
index 25dec6b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/resize-height-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/resize-height-8x.webp b/assets/static/fonts/open-iconic/webp/resize-height-8x.webp
deleted file mode 100644
index d7addd7..0000000
Binary files a/assets/static/fonts/open-iconic/webp/resize-height-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/resize-height.webp b/assets/static/fonts/open-iconic/webp/resize-height.webp
deleted file mode 100644
index 0359ed9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/resize-height.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/resize-width-2x.webp b/assets/static/fonts/open-iconic/webp/resize-width-2x.webp
deleted file mode 100644
index 538ce74..0000000
Binary files a/assets/static/fonts/open-iconic/webp/resize-width-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/resize-width-3x.webp b/assets/static/fonts/open-iconic/webp/resize-width-3x.webp
deleted file mode 100644
index 9654ab8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/resize-width-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/resize-width-4x.webp b/assets/static/fonts/open-iconic/webp/resize-width-4x.webp
deleted file mode 100644
index 9a3747f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/resize-width-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/resize-width-6x.webp b/assets/static/fonts/open-iconic/webp/resize-width-6x.webp
deleted file mode 100644
index 193cf39..0000000
Binary files a/assets/static/fonts/open-iconic/webp/resize-width-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/resize-width-8x.webp b/assets/static/fonts/open-iconic/webp/resize-width-8x.webp
deleted file mode 100644
index 09df9d2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/resize-width-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/resize-width.webp b/assets/static/fonts/open-iconic/webp/resize-width.webp
deleted file mode 100644
index a17e05b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/resize-width.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/rss-2x.webp b/assets/static/fonts/open-iconic/webp/rss-2x.webp
deleted file mode 100644
index 72c6587..0000000
Binary files a/assets/static/fonts/open-iconic/webp/rss-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/rss-3x.webp b/assets/static/fonts/open-iconic/webp/rss-3x.webp
deleted file mode 100644
index f6dc824..0000000
Binary files a/assets/static/fonts/open-iconic/webp/rss-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/rss-4x.webp b/assets/static/fonts/open-iconic/webp/rss-4x.webp
deleted file mode 100644
index 7a08d92..0000000
Binary files a/assets/static/fonts/open-iconic/webp/rss-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/rss-6x.webp b/assets/static/fonts/open-iconic/webp/rss-6x.webp
deleted file mode 100644
index 9a79463..0000000
Binary files a/assets/static/fonts/open-iconic/webp/rss-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/rss-8x.webp b/assets/static/fonts/open-iconic/webp/rss-8x.webp
deleted file mode 100644
index f860829..0000000
Binary files a/assets/static/fonts/open-iconic/webp/rss-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/rss-alt-2x.webp b/assets/static/fonts/open-iconic/webp/rss-alt-2x.webp
deleted file mode 100644
index 84ba9f4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/rss-alt-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/rss-alt-3x.webp b/assets/static/fonts/open-iconic/webp/rss-alt-3x.webp
deleted file mode 100644
index 588daaa..0000000
Binary files a/assets/static/fonts/open-iconic/webp/rss-alt-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/rss-alt-4x.webp b/assets/static/fonts/open-iconic/webp/rss-alt-4x.webp
deleted file mode 100644
index 4bcbae8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/rss-alt-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/rss-alt-6x.webp b/assets/static/fonts/open-iconic/webp/rss-alt-6x.webp
deleted file mode 100644
index cc4ec63..0000000
Binary files a/assets/static/fonts/open-iconic/webp/rss-alt-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/rss-alt-8x.webp b/assets/static/fonts/open-iconic/webp/rss-alt-8x.webp
deleted file mode 100644
index b9d6ad7..0000000
Binary files a/assets/static/fonts/open-iconic/webp/rss-alt-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/rss-alt.webp b/assets/static/fonts/open-iconic/webp/rss-alt.webp
deleted file mode 100644
index c1e9d63..0000000
Binary files a/assets/static/fonts/open-iconic/webp/rss-alt.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/rss.webp b/assets/static/fonts/open-iconic/webp/rss.webp
deleted file mode 100644
index 46ecb1e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/rss.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/script-2x.webp b/assets/static/fonts/open-iconic/webp/script-2x.webp
deleted file mode 100644
index 1d22ce0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/script-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/script-3x.webp b/assets/static/fonts/open-iconic/webp/script-3x.webp
deleted file mode 100644
index bc1c8bf..0000000
Binary files a/assets/static/fonts/open-iconic/webp/script-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/script-4x.webp b/assets/static/fonts/open-iconic/webp/script-4x.webp
deleted file mode 100644
index e93eba0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/script-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/script-6x.webp b/assets/static/fonts/open-iconic/webp/script-6x.webp
deleted file mode 100644
index af15042..0000000
Binary files a/assets/static/fonts/open-iconic/webp/script-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/script-8x.webp b/assets/static/fonts/open-iconic/webp/script-8x.webp
deleted file mode 100644
index a15a3ef..0000000
Binary files a/assets/static/fonts/open-iconic/webp/script-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/script.webp b/assets/static/fonts/open-iconic/webp/script.webp
deleted file mode 100644
index 437e89b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/script.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/share-2x.webp b/assets/static/fonts/open-iconic/webp/share-2x.webp
deleted file mode 100644
index 86d86a6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/share-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/share-3x.webp b/assets/static/fonts/open-iconic/webp/share-3x.webp
deleted file mode 100644
index 99a14d0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/share-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/share-4x.webp b/assets/static/fonts/open-iconic/webp/share-4x.webp
deleted file mode 100644
index a3c7fb6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/share-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/share-6x.webp b/assets/static/fonts/open-iconic/webp/share-6x.webp
deleted file mode 100644
index 5a141ac..0000000
Binary files a/assets/static/fonts/open-iconic/webp/share-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/share-8x.webp b/assets/static/fonts/open-iconic/webp/share-8x.webp
deleted file mode 100644
index 7099acb..0000000
Binary files a/assets/static/fonts/open-iconic/webp/share-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/share-boxed-2x.webp b/assets/static/fonts/open-iconic/webp/share-boxed-2x.webp
deleted file mode 100644
index 9f34216..0000000
Binary files a/assets/static/fonts/open-iconic/webp/share-boxed-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/share-boxed-3x.webp b/assets/static/fonts/open-iconic/webp/share-boxed-3x.webp
deleted file mode 100644
index 21d9e69..0000000
Binary files a/assets/static/fonts/open-iconic/webp/share-boxed-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/share-boxed-4x.webp b/assets/static/fonts/open-iconic/webp/share-boxed-4x.webp
deleted file mode 100644
index d43f00e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/share-boxed-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/share-boxed-6x.webp b/assets/static/fonts/open-iconic/webp/share-boxed-6x.webp
deleted file mode 100644
index 08509b8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/share-boxed-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/share-boxed-8x.webp b/assets/static/fonts/open-iconic/webp/share-boxed-8x.webp
deleted file mode 100644
index 4102c6f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/share-boxed-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/share-boxed.webp b/assets/static/fonts/open-iconic/webp/share-boxed.webp
deleted file mode 100644
index cb62ec8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/share-boxed.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/share.webp b/assets/static/fonts/open-iconic/webp/share.webp
deleted file mode 100644
index 1bf9e91..0000000
Binary files a/assets/static/fonts/open-iconic/webp/share.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/shield-2x.webp b/assets/static/fonts/open-iconic/webp/shield-2x.webp
deleted file mode 100644
index cfc188f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/shield-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/shield-3x.webp b/assets/static/fonts/open-iconic/webp/shield-3x.webp
deleted file mode 100644
index da3ca1e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/shield-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/shield-4x.webp b/assets/static/fonts/open-iconic/webp/shield-4x.webp
deleted file mode 100644
index b404134..0000000
Binary files a/assets/static/fonts/open-iconic/webp/shield-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/shield-6x.webp b/assets/static/fonts/open-iconic/webp/shield-6x.webp
deleted file mode 100644
index b8e6669..0000000
Binary files a/assets/static/fonts/open-iconic/webp/shield-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/shield-8x.webp b/assets/static/fonts/open-iconic/webp/shield-8x.webp
deleted file mode 100644
index a1354f3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/shield-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/shield.webp b/assets/static/fonts/open-iconic/webp/shield.webp
deleted file mode 100644
index 78077fe..0000000
Binary files a/assets/static/fonts/open-iconic/webp/shield.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/signal-2x.webp b/assets/static/fonts/open-iconic/webp/signal-2x.webp
deleted file mode 100644
index c537c3d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/signal-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/signal-3x.webp b/assets/static/fonts/open-iconic/webp/signal-3x.webp
deleted file mode 100644
index 4533947..0000000
Binary files a/assets/static/fonts/open-iconic/webp/signal-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/signal-4x.webp b/assets/static/fonts/open-iconic/webp/signal-4x.webp
deleted file mode 100644
index 4105166..0000000
Binary files a/assets/static/fonts/open-iconic/webp/signal-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/signal-6x.webp b/assets/static/fonts/open-iconic/webp/signal-6x.webp
deleted file mode 100644
index 469aa87..0000000
Binary files a/assets/static/fonts/open-iconic/webp/signal-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/signal-8x.webp b/assets/static/fonts/open-iconic/webp/signal-8x.webp
deleted file mode 100644
index f9a7a5d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/signal-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/signal.webp b/assets/static/fonts/open-iconic/webp/signal.webp
deleted file mode 100644
index 6844ec9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/signal.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/signpost-2x.webp b/assets/static/fonts/open-iconic/webp/signpost-2x.webp
deleted file mode 100644
index b1f307a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/signpost-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/signpost-3x.webp b/assets/static/fonts/open-iconic/webp/signpost-3x.webp
deleted file mode 100644
index 58d3b52..0000000
Binary files a/assets/static/fonts/open-iconic/webp/signpost-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/signpost-4x.webp b/assets/static/fonts/open-iconic/webp/signpost-4x.webp
deleted file mode 100644
index 4483d2f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/signpost-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/signpost-6x.webp b/assets/static/fonts/open-iconic/webp/signpost-6x.webp
deleted file mode 100644
index 1905b3a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/signpost-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/signpost-8x.webp b/assets/static/fonts/open-iconic/webp/signpost-8x.webp
deleted file mode 100644
index 0bd4ccc..0000000
Binary files a/assets/static/fonts/open-iconic/webp/signpost-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/signpost.webp b/assets/static/fonts/open-iconic/webp/signpost.webp
deleted file mode 100644
index 0d3e5f3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/signpost.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/sort-ascending-2x.webp b/assets/static/fonts/open-iconic/webp/sort-ascending-2x.webp
deleted file mode 100644
index 5aea605..0000000
Binary files a/assets/static/fonts/open-iconic/webp/sort-ascending-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/sort-ascending-3x.webp b/assets/static/fonts/open-iconic/webp/sort-ascending-3x.webp
deleted file mode 100644
index 993d925..0000000
Binary files a/assets/static/fonts/open-iconic/webp/sort-ascending-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/sort-ascending-4x.webp b/assets/static/fonts/open-iconic/webp/sort-ascending-4x.webp
deleted file mode 100644
index 1cf4789..0000000
Binary files a/assets/static/fonts/open-iconic/webp/sort-ascending-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/sort-ascending-6x.webp b/assets/static/fonts/open-iconic/webp/sort-ascending-6x.webp
deleted file mode 100644
index 7adb40d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/sort-ascending-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/sort-ascending-8x.webp b/assets/static/fonts/open-iconic/webp/sort-ascending-8x.webp
deleted file mode 100644
index 1f4ba9b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/sort-ascending-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/sort-ascending.webp b/assets/static/fonts/open-iconic/webp/sort-ascending.webp
deleted file mode 100644
index 6b52b1d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/sort-ascending.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/sort-descending-2x.webp b/assets/static/fonts/open-iconic/webp/sort-descending-2x.webp
deleted file mode 100644
index e28b3ca..0000000
Binary files a/assets/static/fonts/open-iconic/webp/sort-descending-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/sort-descending-3x.webp b/assets/static/fonts/open-iconic/webp/sort-descending-3x.webp
deleted file mode 100644
index 1449503..0000000
Binary files a/assets/static/fonts/open-iconic/webp/sort-descending-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/sort-descending-4x.webp b/assets/static/fonts/open-iconic/webp/sort-descending-4x.webp
deleted file mode 100644
index 2a73049..0000000
Binary files a/assets/static/fonts/open-iconic/webp/sort-descending-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/sort-descending-6x.webp b/assets/static/fonts/open-iconic/webp/sort-descending-6x.webp
deleted file mode 100644
index 5ab6a13..0000000
Binary files a/assets/static/fonts/open-iconic/webp/sort-descending-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/sort-descending-8x.webp b/assets/static/fonts/open-iconic/webp/sort-descending-8x.webp
deleted file mode 100644
index 2b64c17..0000000
Binary files a/assets/static/fonts/open-iconic/webp/sort-descending-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/sort-descending.webp b/assets/static/fonts/open-iconic/webp/sort-descending.webp
deleted file mode 100644
index bec9284..0000000
Binary files a/assets/static/fonts/open-iconic/webp/sort-descending.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/spreadsheet-2x.webp b/assets/static/fonts/open-iconic/webp/spreadsheet-2x.webp
deleted file mode 100644
index 3893427..0000000
Binary files a/assets/static/fonts/open-iconic/webp/spreadsheet-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/spreadsheet-3x.webp b/assets/static/fonts/open-iconic/webp/spreadsheet-3x.webp
deleted file mode 100644
index 1682b88..0000000
Binary files a/assets/static/fonts/open-iconic/webp/spreadsheet-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/spreadsheet-4x.webp b/assets/static/fonts/open-iconic/webp/spreadsheet-4x.webp
deleted file mode 100644
index 17db4b3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/spreadsheet-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/spreadsheet-6x.webp b/assets/static/fonts/open-iconic/webp/spreadsheet-6x.webp
deleted file mode 100644
index eba164c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/spreadsheet-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/spreadsheet-8x.webp b/assets/static/fonts/open-iconic/webp/spreadsheet-8x.webp
deleted file mode 100644
index b7a2ff8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/spreadsheet-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/spreadsheet.webp b/assets/static/fonts/open-iconic/webp/spreadsheet.webp
deleted file mode 100644
index 5e64b4a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/spreadsheet.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/star-2x.webp b/assets/static/fonts/open-iconic/webp/star-2x.webp
deleted file mode 100644
index 26f462c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/star-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/star-3x.webp b/assets/static/fonts/open-iconic/webp/star-3x.webp
deleted file mode 100644
index 24ccdc6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/star-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/star-4x.webp b/assets/static/fonts/open-iconic/webp/star-4x.webp
deleted file mode 100644
index fb00193..0000000
Binary files a/assets/static/fonts/open-iconic/webp/star-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/star-6x.webp b/assets/static/fonts/open-iconic/webp/star-6x.webp
deleted file mode 100644
index c93ebd5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/star-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/star-8x.webp b/assets/static/fonts/open-iconic/webp/star-8x.webp
deleted file mode 100644
index 844b62e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/star-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/star.webp b/assets/static/fonts/open-iconic/webp/star.webp
deleted file mode 100644
index 5b964ea..0000000
Binary files a/assets/static/fonts/open-iconic/webp/star.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/sun-2x.webp b/assets/static/fonts/open-iconic/webp/sun-2x.webp
deleted file mode 100644
index 7fbd59b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/sun-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/sun-3x.webp b/assets/static/fonts/open-iconic/webp/sun-3x.webp
deleted file mode 100644
index 1529267..0000000
Binary files a/assets/static/fonts/open-iconic/webp/sun-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/sun-4x.webp b/assets/static/fonts/open-iconic/webp/sun-4x.webp
deleted file mode 100644
index 27bece4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/sun-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/sun-6x.webp b/assets/static/fonts/open-iconic/webp/sun-6x.webp
deleted file mode 100644
index 7c96c83..0000000
Binary files a/assets/static/fonts/open-iconic/webp/sun-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/sun-8x.webp b/assets/static/fonts/open-iconic/webp/sun-8x.webp
deleted file mode 100644
index d9b2c0d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/sun-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/sun.webp b/assets/static/fonts/open-iconic/webp/sun.webp
deleted file mode 100644
index bc210d5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/sun.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/tablet-2x.webp b/assets/static/fonts/open-iconic/webp/tablet-2x.webp
deleted file mode 100644
index 1c59108..0000000
Binary files a/assets/static/fonts/open-iconic/webp/tablet-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/tablet-3x.webp b/assets/static/fonts/open-iconic/webp/tablet-3x.webp
deleted file mode 100644
index d17ee18..0000000
Binary files a/assets/static/fonts/open-iconic/webp/tablet-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/tablet-4x.webp b/assets/static/fonts/open-iconic/webp/tablet-4x.webp
deleted file mode 100644
index 91a34c6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/tablet-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/tablet-6x.webp b/assets/static/fonts/open-iconic/webp/tablet-6x.webp
deleted file mode 100644
index 1236829..0000000
Binary files a/assets/static/fonts/open-iconic/webp/tablet-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/tablet-8x.webp b/assets/static/fonts/open-iconic/webp/tablet-8x.webp
deleted file mode 100644
index 02791a6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/tablet-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/tablet.webp b/assets/static/fonts/open-iconic/webp/tablet.webp
deleted file mode 100644
index 91f95fd..0000000
Binary files a/assets/static/fonts/open-iconic/webp/tablet.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/tag-2x.webp b/assets/static/fonts/open-iconic/webp/tag-2x.webp
deleted file mode 100644
index 3e7a873..0000000
Binary files a/assets/static/fonts/open-iconic/webp/tag-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/tag-3x.webp b/assets/static/fonts/open-iconic/webp/tag-3x.webp
deleted file mode 100644
index 66841b6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/tag-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/tag-4x.webp b/assets/static/fonts/open-iconic/webp/tag-4x.webp
deleted file mode 100644
index 2fd0a35..0000000
Binary files a/assets/static/fonts/open-iconic/webp/tag-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/tag-6x.webp b/assets/static/fonts/open-iconic/webp/tag-6x.webp
deleted file mode 100644
index 55cb433..0000000
Binary files a/assets/static/fonts/open-iconic/webp/tag-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/tag-8x.webp b/assets/static/fonts/open-iconic/webp/tag-8x.webp
deleted file mode 100644
index ff65387..0000000
Binary files a/assets/static/fonts/open-iconic/webp/tag-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/tag.webp b/assets/static/fonts/open-iconic/webp/tag.webp
deleted file mode 100644
index 6166da2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/tag.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/tags-2x.webp b/assets/static/fonts/open-iconic/webp/tags-2x.webp
deleted file mode 100644
index 09c1991..0000000
Binary files a/assets/static/fonts/open-iconic/webp/tags-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/tags-3x.webp b/assets/static/fonts/open-iconic/webp/tags-3x.webp
deleted file mode 100644
index 9a4425a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/tags-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/tags-4x.webp b/assets/static/fonts/open-iconic/webp/tags-4x.webp
deleted file mode 100644
index 7a63a30..0000000
Binary files a/assets/static/fonts/open-iconic/webp/tags-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/tags-6x.webp b/assets/static/fonts/open-iconic/webp/tags-6x.webp
deleted file mode 100644
index c1c91ef..0000000
Binary files a/assets/static/fonts/open-iconic/webp/tags-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/tags-8x.webp b/assets/static/fonts/open-iconic/webp/tags-8x.webp
deleted file mode 100644
index dc1eca5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/tags-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/tags.webp b/assets/static/fonts/open-iconic/webp/tags.webp
deleted file mode 100644
index e91dd4f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/tags.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/target-2x.webp b/assets/static/fonts/open-iconic/webp/target-2x.webp
deleted file mode 100644
index fc40adc..0000000
Binary files a/assets/static/fonts/open-iconic/webp/target-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/target-3x.webp b/assets/static/fonts/open-iconic/webp/target-3x.webp
deleted file mode 100644
index 6218170..0000000
Binary files a/assets/static/fonts/open-iconic/webp/target-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/target-4x.webp b/assets/static/fonts/open-iconic/webp/target-4x.webp
deleted file mode 100644
index cdbd7ba..0000000
Binary files a/assets/static/fonts/open-iconic/webp/target-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/target-6x.webp b/assets/static/fonts/open-iconic/webp/target-6x.webp
deleted file mode 100644
index 5c7c504..0000000
Binary files a/assets/static/fonts/open-iconic/webp/target-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/target-8x.webp b/assets/static/fonts/open-iconic/webp/target-8x.webp
deleted file mode 100644
index fa057a6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/target-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/target.webp b/assets/static/fonts/open-iconic/webp/target.webp
deleted file mode 100644
index 2426c5b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/target.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/task-2x.webp b/assets/static/fonts/open-iconic/webp/task-2x.webp
deleted file mode 100644
index 2bfcd97..0000000
Binary files a/assets/static/fonts/open-iconic/webp/task-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/task-3x.webp b/assets/static/fonts/open-iconic/webp/task-3x.webp
deleted file mode 100644
index de3a353..0000000
Binary files a/assets/static/fonts/open-iconic/webp/task-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/task-4x.webp b/assets/static/fonts/open-iconic/webp/task-4x.webp
deleted file mode 100644
index bdca076..0000000
Binary files a/assets/static/fonts/open-iconic/webp/task-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/task-6x.webp b/assets/static/fonts/open-iconic/webp/task-6x.webp
deleted file mode 100644
index 36bf393..0000000
Binary files a/assets/static/fonts/open-iconic/webp/task-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/task-8x.webp b/assets/static/fonts/open-iconic/webp/task-8x.webp
deleted file mode 100644
index efbe188..0000000
Binary files a/assets/static/fonts/open-iconic/webp/task-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/task.webp b/assets/static/fonts/open-iconic/webp/task.webp
deleted file mode 100644
index c8e9dae..0000000
Binary files a/assets/static/fonts/open-iconic/webp/task.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/terminal-2x.webp b/assets/static/fonts/open-iconic/webp/terminal-2x.webp
deleted file mode 100644
index 328d181..0000000
Binary files a/assets/static/fonts/open-iconic/webp/terminal-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/terminal-3x.webp b/assets/static/fonts/open-iconic/webp/terminal-3x.webp
deleted file mode 100644
index 76c7d07..0000000
Binary files a/assets/static/fonts/open-iconic/webp/terminal-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/terminal-4x.webp b/assets/static/fonts/open-iconic/webp/terminal-4x.webp
deleted file mode 100644
index 869622d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/terminal-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/terminal-6x.webp b/assets/static/fonts/open-iconic/webp/terminal-6x.webp
deleted file mode 100644
index a9b20ac..0000000
Binary files a/assets/static/fonts/open-iconic/webp/terminal-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/terminal-8x.webp b/assets/static/fonts/open-iconic/webp/terminal-8x.webp
deleted file mode 100644
index 0f8119e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/terminal-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/terminal.webp b/assets/static/fonts/open-iconic/webp/terminal.webp
deleted file mode 100644
index 67e7d1d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/terminal.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/text-2x.webp b/assets/static/fonts/open-iconic/webp/text-2x.webp
deleted file mode 100644
index b68486d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/text-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/text-3x.webp b/assets/static/fonts/open-iconic/webp/text-3x.webp
deleted file mode 100644
index b7ca701..0000000
Binary files a/assets/static/fonts/open-iconic/webp/text-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/text-4x.webp b/assets/static/fonts/open-iconic/webp/text-4x.webp
deleted file mode 100644
index c9b4c33..0000000
Binary files a/assets/static/fonts/open-iconic/webp/text-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/text-6x.webp b/assets/static/fonts/open-iconic/webp/text-6x.webp
deleted file mode 100644
index 40bba9a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/text-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/text-8x.webp b/assets/static/fonts/open-iconic/webp/text-8x.webp
deleted file mode 100644
index 3b10a70..0000000
Binary files a/assets/static/fonts/open-iconic/webp/text-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/text.webp b/assets/static/fonts/open-iconic/webp/text.webp
deleted file mode 100644
index 7641cf4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/text.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/thumb-down-2x.webp b/assets/static/fonts/open-iconic/webp/thumb-down-2x.webp
deleted file mode 100644
index 5496782..0000000
Binary files a/assets/static/fonts/open-iconic/webp/thumb-down-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/thumb-down-3x.webp b/assets/static/fonts/open-iconic/webp/thumb-down-3x.webp
deleted file mode 100644
index 7f1f814..0000000
Binary files a/assets/static/fonts/open-iconic/webp/thumb-down-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/thumb-down-4x.webp b/assets/static/fonts/open-iconic/webp/thumb-down-4x.webp
deleted file mode 100644
index 0a05f75..0000000
Binary files a/assets/static/fonts/open-iconic/webp/thumb-down-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/thumb-down-6x.webp b/assets/static/fonts/open-iconic/webp/thumb-down-6x.webp
deleted file mode 100644
index 92eceeb..0000000
Binary files a/assets/static/fonts/open-iconic/webp/thumb-down-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/thumb-down-8x.webp b/assets/static/fonts/open-iconic/webp/thumb-down-8x.webp
deleted file mode 100644
index 53c1022..0000000
Binary files a/assets/static/fonts/open-iconic/webp/thumb-down-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/thumb-down.webp b/assets/static/fonts/open-iconic/webp/thumb-down.webp
deleted file mode 100644
index 7012b2b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/thumb-down.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/thumb-up-2x.webp b/assets/static/fonts/open-iconic/webp/thumb-up-2x.webp
deleted file mode 100644
index 410b939..0000000
Binary files a/assets/static/fonts/open-iconic/webp/thumb-up-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/thumb-up-3x.webp b/assets/static/fonts/open-iconic/webp/thumb-up-3x.webp
deleted file mode 100644
index 734bd28..0000000
Binary files a/assets/static/fonts/open-iconic/webp/thumb-up-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/thumb-up-4x.webp b/assets/static/fonts/open-iconic/webp/thumb-up-4x.webp
deleted file mode 100644
index f4051a8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/thumb-up-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/thumb-up-6x.webp b/assets/static/fonts/open-iconic/webp/thumb-up-6x.webp
deleted file mode 100644
index 426b46e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/thumb-up-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/thumb-up-8x.webp b/assets/static/fonts/open-iconic/webp/thumb-up-8x.webp
deleted file mode 100644
index ab0c169..0000000
Binary files a/assets/static/fonts/open-iconic/webp/thumb-up-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/thumb-up.webp b/assets/static/fonts/open-iconic/webp/thumb-up.webp
deleted file mode 100644
index 6a3b137..0000000
Binary files a/assets/static/fonts/open-iconic/webp/thumb-up.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/timer-2x.webp b/assets/static/fonts/open-iconic/webp/timer-2x.webp
deleted file mode 100644
index c4c87ed..0000000
Binary files a/assets/static/fonts/open-iconic/webp/timer-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/timer-3x.webp b/assets/static/fonts/open-iconic/webp/timer-3x.webp
deleted file mode 100644
index 8ab5bc3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/timer-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/timer-4x.webp b/assets/static/fonts/open-iconic/webp/timer-4x.webp
deleted file mode 100644
index 0f84e6c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/timer-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/timer-6x.webp b/assets/static/fonts/open-iconic/webp/timer-6x.webp
deleted file mode 100644
index c541774..0000000
Binary files a/assets/static/fonts/open-iconic/webp/timer-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/timer-8x.webp b/assets/static/fonts/open-iconic/webp/timer-8x.webp
deleted file mode 100644
index a567e86..0000000
Binary files a/assets/static/fonts/open-iconic/webp/timer-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/timer.webp b/assets/static/fonts/open-iconic/webp/timer.webp
deleted file mode 100644
index 5aa4e22..0000000
Binary files a/assets/static/fonts/open-iconic/webp/timer.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/transfer-2x.webp b/assets/static/fonts/open-iconic/webp/transfer-2x.webp
deleted file mode 100644
index 99470da..0000000
Binary files a/assets/static/fonts/open-iconic/webp/transfer-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/transfer-3x.webp b/assets/static/fonts/open-iconic/webp/transfer-3x.webp
deleted file mode 100644
index d9e023d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/transfer-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/transfer-4x.webp b/assets/static/fonts/open-iconic/webp/transfer-4x.webp
deleted file mode 100644
index 9cc41a7..0000000
Binary files a/assets/static/fonts/open-iconic/webp/transfer-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/transfer-6x.webp b/assets/static/fonts/open-iconic/webp/transfer-6x.webp
deleted file mode 100644
index a1f0a7f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/transfer-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/transfer-8x.webp b/assets/static/fonts/open-iconic/webp/transfer-8x.webp
deleted file mode 100644
index ddde408..0000000
Binary files a/assets/static/fonts/open-iconic/webp/transfer-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/transfer.webp b/assets/static/fonts/open-iconic/webp/transfer.webp
deleted file mode 100644
index f6a270f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/transfer.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/trash-2x.webp b/assets/static/fonts/open-iconic/webp/trash-2x.webp
deleted file mode 100644
index 6c45298..0000000
Binary files a/assets/static/fonts/open-iconic/webp/trash-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/trash-3x.webp b/assets/static/fonts/open-iconic/webp/trash-3x.webp
deleted file mode 100644
index d182136..0000000
Binary files a/assets/static/fonts/open-iconic/webp/trash-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/trash-4x.webp b/assets/static/fonts/open-iconic/webp/trash-4x.webp
deleted file mode 100644
index 9b96acc..0000000
Binary files a/assets/static/fonts/open-iconic/webp/trash-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/trash-6x.webp b/assets/static/fonts/open-iconic/webp/trash-6x.webp
deleted file mode 100644
index ac5b5c9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/trash-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/trash-8x.webp b/assets/static/fonts/open-iconic/webp/trash-8x.webp
deleted file mode 100644
index 2e8aca0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/trash-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/trash.webp b/assets/static/fonts/open-iconic/webp/trash.webp
deleted file mode 100644
index 0961266..0000000
Binary files a/assets/static/fonts/open-iconic/webp/trash.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/underline-2x.webp b/assets/static/fonts/open-iconic/webp/underline-2x.webp
deleted file mode 100644
index b5fe508..0000000
Binary files a/assets/static/fonts/open-iconic/webp/underline-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/underline-3x.webp b/assets/static/fonts/open-iconic/webp/underline-3x.webp
deleted file mode 100644
index f96e7e8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/underline-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/underline-4x.webp b/assets/static/fonts/open-iconic/webp/underline-4x.webp
deleted file mode 100644
index 6debce6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/underline-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/underline-6x.webp b/assets/static/fonts/open-iconic/webp/underline-6x.webp
deleted file mode 100644
index aa83a8b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/underline-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/underline-8x.webp b/assets/static/fonts/open-iconic/webp/underline-8x.webp
deleted file mode 100644
index f61a011..0000000
Binary files a/assets/static/fonts/open-iconic/webp/underline-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/underline.webp b/assets/static/fonts/open-iconic/webp/underline.webp
deleted file mode 100644
index a72eb5a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/underline.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/vertical-align-bottom-2x.webp b/assets/static/fonts/open-iconic/webp/vertical-align-bottom-2x.webp
deleted file mode 100644
index ef967e7..0000000
Binary files a/assets/static/fonts/open-iconic/webp/vertical-align-bottom-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/vertical-align-bottom-3x.webp b/assets/static/fonts/open-iconic/webp/vertical-align-bottom-3x.webp
deleted file mode 100644
index c65375f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/vertical-align-bottom-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/vertical-align-bottom-4x.webp b/assets/static/fonts/open-iconic/webp/vertical-align-bottom-4x.webp
deleted file mode 100644
index 281f1f8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/vertical-align-bottom-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/vertical-align-bottom-6x.webp b/assets/static/fonts/open-iconic/webp/vertical-align-bottom-6x.webp
deleted file mode 100644
index b61561b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/vertical-align-bottom-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/vertical-align-bottom-8x.webp b/assets/static/fonts/open-iconic/webp/vertical-align-bottom-8x.webp
deleted file mode 100644
index 8fbd5c2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/vertical-align-bottom-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/vertical-align-bottom.webp b/assets/static/fonts/open-iconic/webp/vertical-align-bottom.webp
deleted file mode 100644
index bab7023..0000000
Binary files a/assets/static/fonts/open-iconic/webp/vertical-align-bottom.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/vertical-align-center-2x.webp b/assets/static/fonts/open-iconic/webp/vertical-align-center-2x.webp
deleted file mode 100644
index d8093f4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/vertical-align-center-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/vertical-align-center-3x.webp b/assets/static/fonts/open-iconic/webp/vertical-align-center-3x.webp
deleted file mode 100644
index 3c9fe16..0000000
Binary files a/assets/static/fonts/open-iconic/webp/vertical-align-center-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/vertical-align-center-4x.webp b/assets/static/fonts/open-iconic/webp/vertical-align-center-4x.webp
deleted file mode 100644
index 66b9897..0000000
Binary files a/assets/static/fonts/open-iconic/webp/vertical-align-center-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/vertical-align-center-6x.webp b/assets/static/fonts/open-iconic/webp/vertical-align-center-6x.webp
deleted file mode 100644
index e25319f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/vertical-align-center-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/vertical-align-center-8x.webp b/assets/static/fonts/open-iconic/webp/vertical-align-center-8x.webp
deleted file mode 100644
index 357fda0..0000000
Binary files a/assets/static/fonts/open-iconic/webp/vertical-align-center-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/vertical-align-center.webp b/assets/static/fonts/open-iconic/webp/vertical-align-center.webp
deleted file mode 100644
index b72b946..0000000
Binary files a/assets/static/fonts/open-iconic/webp/vertical-align-center.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/vertical-align-top-2x.webp b/assets/static/fonts/open-iconic/webp/vertical-align-top-2x.webp
deleted file mode 100644
index 6aeb69d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/vertical-align-top-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/vertical-align-top-3x.webp b/assets/static/fonts/open-iconic/webp/vertical-align-top-3x.webp
deleted file mode 100644
index 99d8e25..0000000
Binary files a/assets/static/fonts/open-iconic/webp/vertical-align-top-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/vertical-align-top-4x.webp b/assets/static/fonts/open-iconic/webp/vertical-align-top-4x.webp
deleted file mode 100644
index 5db720b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/vertical-align-top-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/vertical-align-top-6x.webp b/assets/static/fonts/open-iconic/webp/vertical-align-top-6x.webp
deleted file mode 100644
index f9ab4d6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/vertical-align-top-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/vertical-align-top-8x.webp b/assets/static/fonts/open-iconic/webp/vertical-align-top-8x.webp
deleted file mode 100644
index 98172e2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/vertical-align-top-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/vertical-align-top.webp b/assets/static/fonts/open-iconic/webp/vertical-align-top.webp
deleted file mode 100644
index 5a7409c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/vertical-align-top.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/video-2x.webp b/assets/static/fonts/open-iconic/webp/video-2x.webp
deleted file mode 100644
index 9a397f7..0000000
Binary files a/assets/static/fonts/open-iconic/webp/video-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/video-3x.webp b/assets/static/fonts/open-iconic/webp/video-3x.webp
deleted file mode 100644
index 1e56a47..0000000
Binary files a/assets/static/fonts/open-iconic/webp/video-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/video-4x.webp b/assets/static/fonts/open-iconic/webp/video-4x.webp
deleted file mode 100644
index ccd6c05..0000000
Binary files a/assets/static/fonts/open-iconic/webp/video-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/video-6x.webp b/assets/static/fonts/open-iconic/webp/video-6x.webp
deleted file mode 100644
index c467baf..0000000
Binary files a/assets/static/fonts/open-iconic/webp/video-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/video-8x.webp b/assets/static/fonts/open-iconic/webp/video-8x.webp
deleted file mode 100644
index 22928fc..0000000
Binary files a/assets/static/fonts/open-iconic/webp/video-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/video.webp b/assets/static/fonts/open-iconic/webp/video.webp
deleted file mode 100644
index 1a96def..0000000
Binary files a/assets/static/fonts/open-iconic/webp/video.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/volume-high-2x.webp b/assets/static/fonts/open-iconic/webp/volume-high-2x.webp
deleted file mode 100644
index 70919dc..0000000
Binary files a/assets/static/fonts/open-iconic/webp/volume-high-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/volume-high-3x.webp b/assets/static/fonts/open-iconic/webp/volume-high-3x.webp
deleted file mode 100644
index 5a02af3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/volume-high-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/volume-high-4x.webp b/assets/static/fonts/open-iconic/webp/volume-high-4x.webp
deleted file mode 100644
index 949f6f5..0000000
Binary files a/assets/static/fonts/open-iconic/webp/volume-high-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/volume-high-6x.webp b/assets/static/fonts/open-iconic/webp/volume-high-6x.webp
deleted file mode 100644
index a7f4f36..0000000
Binary files a/assets/static/fonts/open-iconic/webp/volume-high-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/volume-high-8x.webp b/assets/static/fonts/open-iconic/webp/volume-high-8x.webp
deleted file mode 100644
index 3b7288e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/volume-high-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/volume-high.webp b/assets/static/fonts/open-iconic/webp/volume-high.webp
deleted file mode 100644
index bc6d2fe..0000000
Binary files a/assets/static/fonts/open-iconic/webp/volume-high.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/volume-low-2x.webp b/assets/static/fonts/open-iconic/webp/volume-low-2x.webp
deleted file mode 100644
index c9995fe..0000000
Binary files a/assets/static/fonts/open-iconic/webp/volume-low-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/volume-low-3x.webp b/assets/static/fonts/open-iconic/webp/volume-low-3x.webp
deleted file mode 100644
index c3b532f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/volume-low-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/volume-low-4x.webp b/assets/static/fonts/open-iconic/webp/volume-low-4x.webp
deleted file mode 100644
index 0a48bcb..0000000
Binary files a/assets/static/fonts/open-iconic/webp/volume-low-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/volume-low-6x.webp b/assets/static/fonts/open-iconic/webp/volume-low-6x.webp
deleted file mode 100644
index b22a9f2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/volume-low-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/volume-low-8x.webp b/assets/static/fonts/open-iconic/webp/volume-low-8x.webp
deleted file mode 100644
index 1d54520..0000000
Binary files a/assets/static/fonts/open-iconic/webp/volume-low-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/volume-low.webp b/assets/static/fonts/open-iconic/webp/volume-low.webp
deleted file mode 100644
index db277c4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/volume-low.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/volume-off-2x.webp b/assets/static/fonts/open-iconic/webp/volume-off-2x.webp
deleted file mode 100644
index 96ef3c6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/volume-off-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/volume-off-3x.webp b/assets/static/fonts/open-iconic/webp/volume-off-3x.webp
deleted file mode 100644
index 7712ec8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/volume-off-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/volume-off-4x.webp b/assets/static/fonts/open-iconic/webp/volume-off-4x.webp
deleted file mode 100644
index 783a7b8..0000000
Binary files a/assets/static/fonts/open-iconic/webp/volume-off-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/volume-off-6x.webp b/assets/static/fonts/open-iconic/webp/volume-off-6x.webp
deleted file mode 100644
index 2848988..0000000
Binary files a/assets/static/fonts/open-iconic/webp/volume-off-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/volume-off-8x.webp b/assets/static/fonts/open-iconic/webp/volume-off-8x.webp
deleted file mode 100644
index 16fd130..0000000
Binary files a/assets/static/fonts/open-iconic/webp/volume-off-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/volume-off.webp b/assets/static/fonts/open-iconic/webp/volume-off.webp
deleted file mode 100644
index 3477dc6..0000000
Binary files a/assets/static/fonts/open-iconic/webp/volume-off.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/warning-2x.webp b/assets/static/fonts/open-iconic/webp/warning-2x.webp
deleted file mode 100644
index c79d0e3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/warning-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/warning-3x.webp b/assets/static/fonts/open-iconic/webp/warning-3x.webp
deleted file mode 100644
index 6cabfe3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/warning-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/warning-4x.webp b/assets/static/fonts/open-iconic/webp/warning-4x.webp
deleted file mode 100644
index 41d2a20..0000000
Binary files a/assets/static/fonts/open-iconic/webp/warning-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/warning-6x.webp b/assets/static/fonts/open-iconic/webp/warning-6x.webp
deleted file mode 100644
index facb477..0000000
Binary files a/assets/static/fonts/open-iconic/webp/warning-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/warning-8x.webp b/assets/static/fonts/open-iconic/webp/warning-8x.webp
deleted file mode 100644
index 7edd6c9..0000000
Binary files a/assets/static/fonts/open-iconic/webp/warning-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/warning.webp b/assets/static/fonts/open-iconic/webp/warning.webp
deleted file mode 100644
index 1924624..0000000
Binary files a/assets/static/fonts/open-iconic/webp/warning.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/wifi-2x.webp b/assets/static/fonts/open-iconic/webp/wifi-2x.webp
deleted file mode 100644
index 27094ab..0000000
Binary files a/assets/static/fonts/open-iconic/webp/wifi-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/wifi-3x.webp b/assets/static/fonts/open-iconic/webp/wifi-3x.webp
deleted file mode 100644
index 0098781..0000000
Binary files a/assets/static/fonts/open-iconic/webp/wifi-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/wifi-4x.webp b/assets/static/fonts/open-iconic/webp/wifi-4x.webp
deleted file mode 100644
index 6b19ba3..0000000
Binary files a/assets/static/fonts/open-iconic/webp/wifi-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/wifi-6x.webp b/assets/static/fonts/open-iconic/webp/wifi-6x.webp
deleted file mode 100644
index 5059d39..0000000
Binary files a/assets/static/fonts/open-iconic/webp/wifi-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/wifi-8x.webp b/assets/static/fonts/open-iconic/webp/wifi-8x.webp
deleted file mode 100644
index 77bf574..0000000
Binary files a/assets/static/fonts/open-iconic/webp/wifi-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/wifi.webp b/assets/static/fonts/open-iconic/webp/wifi.webp
deleted file mode 100644
index 916f686..0000000
Binary files a/assets/static/fonts/open-iconic/webp/wifi.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/wrench-2x.webp b/assets/static/fonts/open-iconic/webp/wrench-2x.webp
deleted file mode 100644
index 32d192a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/wrench-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/wrench-3x.webp b/assets/static/fonts/open-iconic/webp/wrench-3x.webp
deleted file mode 100644
index 0e10c9e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/wrench-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/wrench-4x.webp b/assets/static/fonts/open-iconic/webp/wrench-4x.webp
deleted file mode 100644
index ac63015..0000000
Binary files a/assets/static/fonts/open-iconic/webp/wrench-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/wrench-6x.webp b/assets/static/fonts/open-iconic/webp/wrench-6x.webp
deleted file mode 100644
index e7df6c1..0000000
Binary files a/assets/static/fonts/open-iconic/webp/wrench-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/wrench-8x.webp b/assets/static/fonts/open-iconic/webp/wrench-8x.webp
deleted file mode 100644
index bcdb394..0000000
Binary files a/assets/static/fonts/open-iconic/webp/wrench-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/wrench.webp b/assets/static/fonts/open-iconic/webp/wrench.webp
deleted file mode 100644
index 8e00859..0000000
Binary files a/assets/static/fonts/open-iconic/webp/wrench.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/x-2x.webp b/assets/static/fonts/open-iconic/webp/x-2x.webp
deleted file mode 100644
index 5534930..0000000
Binary files a/assets/static/fonts/open-iconic/webp/x-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/x-3x.webp b/assets/static/fonts/open-iconic/webp/x-3x.webp
deleted file mode 100644
index 05dc779..0000000
Binary files a/assets/static/fonts/open-iconic/webp/x-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/x-4x.webp b/assets/static/fonts/open-iconic/webp/x-4x.webp
deleted file mode 100644
index 0bc1a55..0000000
Binary files a/assets/static/fonts/open-iconic/webp/x-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/x-6x.webp b/assets/static/fonts/open-iconic/webp/x-6x.webp
deleted file mode 100644
index 86e329e..0000000
Binary files a/assets/static/fonts/open-iconic/webp/x-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/x-8x.webp b/assets/static/fonts/open-iconic/webp/x-8x.webp
deleted file mode 100644
index 1f1ee8f..0000000
Binary files a/assets/static/fonts/open-iconic/webp/x-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/x.webp b/assets/static/fonts/open-iconic/webp/x.webp
deleted file mode 100644
index bec5577..0000000
Binary files a/assets/static/fonts/open-iconic/webp/x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/yen-2x.webp b/assets/static/fonts/open-iconic/webp/yen-2x.webp
deleted file mode 100644
index 7447f89..0000000
Binary files a/assets/static/fonts/open-iconic/webp/yen-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/yen-3x.webp b/assets/static/fonts/open-iconic/webp/yen-3x.webp
deleted file mode 100644
index 8bb8471..0000000
Binary files a/assets/static/fonts/open-iconic/webp/yen-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/yen-4x.webp b/assets/static/fonts/open-iconic/webp/yen-4x.webp
deleted file mode 100644
index 8238b53..0000000
Binary files a/assets/static/fonts/open-iconic/webp/yen-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/yen-6x.webp b/assets/static/fonts/open-iconic/webp/yen-6x.webp
deleted file mode 100644
index 7d6976c..0000000
Binary files a/assets/static/fonts/open-iconic/webp/yen-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/yen-8x.webp b/assets/static/fonts/open-iconic/webp/yen-8x.webp
deleted file mode 100644
index db2f627..0000000
Binary files a/assets/static/fonts/open-iconic/webp/yen-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/yen.webp b/assets/static/fonts/open-iconic/webp/yen.webp
deleted file mode 100644
index cd53cea..0000000
Binary files a/assets/static/fonts/open-iconic/webp/yen.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/zoom-in-2x.webp b/assets/static/fonts/open-iconic/webp/zoom-in-2x.webp
deleted file mode 100644
index b586096..0000000
Binary files a/assets/static/fonts/open-iconic/webp/zoom-in-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/zoom-in-3x.webp b/assets/static/fonts/open-iconic/webp/zoom-in-3x.webp
deleted file mode 100644
index 7f9e568..0000000
Binary files a/assets/static/fonts/open-iconic/webp/zoom-in-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/zoom-in-4x.webp b/assets/static/fonts/open-iconic/webp/zoom-in-4x.webp
deleted file mode 100644
index da3fec2..0000000
Binary files a/assets/static/fonts/open-iconic/webp/zoom-in-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/zoom-in-6x.webp b/assets/static/fonts/open-iconic/webp/zoom-in-6x.webp
deleted file mode 100644
index 588b83a..0000000
Binary files a/assets/static/fonts/open-iconic/webp/zoom-in-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/zoom-in-8x.webp b/assets/static/fonts/open-iconic/webp/zoom-in-8x.webp
deleted file mode 100644
index 12a62e4..0000000
Binary files a/assets/static/fonts/open-iconic/webp/zoom-in-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/zoom-in.webp b/assets/static/fonts/open-iconic/webp/zoom-in.webp
deleted file mode 100644
index 1188570..0000000
Binary files a/assets/static/fonts/open-iconic/webp/zoom-in.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/zoom-out-2x.webp b/assets/static/fonts/open-iconic/webp/zoom-out-2x.webp
deleted file mode 100644
index 4af5373..0000000
Binary files a/assets/static/fonts/open-iconic/webp/zoom-out-2x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/zoom-out-3x.webp b/assets/static/fonts/open-iconic/webp/zoom-out-3x.webp
deleted file mode 100644
index 5e8c509..0000000
Binary files a/assets/static/fonts/open-iconic/webp/zoom-out-3x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/zoom-out-4x.webp b/assets/static/fonts/open-iconic/webp/zoom-out-4x.webp
deleted file mode 100644
index 689bb44..0000000
Binary files a/assets/static/fonts/open-iconic/webp/zoom-out-4x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/zoom-out-6x.webp b/assets/static/fonts/open-iconic/webp/zoom-out-6x.webp
deleted file mode 100644
index 5241d92..0000000
Binary files a/assets/static/fonts/open-iconic/webp/zoom-out-6x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/zoom-out-8x.webp b/assets/static/fonts/open-iconic/webp/zoom-out-8x.webp
deleted file mode 100644
index 962ba0d..0000000
Binary files a/assets/static/fonts/open-iconic/webp/zoom-out-8x.webp and /dev/null differ
diff --git a/assets/static/fonts/open-iconic/webp/zoom-out.webp b/assets/static/fonts/open-iconic/webp/zoom-out.webp
deleted file mode 100644
index 61bc14b..0000000
Binary files a/assets/static/fonts/open-iconic/webp/zoom-out.webp and /dev/null differ
diff --git a/assets/static/js b/assets/static/js
new file mode 120000
index 0000000..7b741e3
--- /dev/null
+++ b/assets/static/js
@@ -0,0 +1 @@
+../../lego/assests/static/js
\ No newline at end of file
diff --git a/assets/static/js/anchor.min.js b/assets/static/js/anchor.min.js
deleted file mode 100755
index ee4e3b3..0000000
--- a/assets/static/js/anchor.min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/**
- * AnchorJS - v4.1.0 - 2017-09-20
- * https://github.com/bryanbraun/anchorjs
- * Copyright (c) 2017 Bryan Braun; Licensed MIT
- */
-!function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(this,function(){"use strict";return function(A){function e(A){A.icon=A.hasOwnProperty("icon")?A.icon:"",A.visible=A.hasOwnProperty("visible")?A.visible:"hover",A.placement=A.hasOwnProperty("placement")?A.placement:"right",A.ariaLabel=A.hasOwnProperty("ariaLabel")?A.ariaLabel:"Anchor",A.class=A.hasOwnProperty("class")?A.class:"",A.truncate=A.hasOwnProperty("truncate")?Math.floor(A.truncate):64}function t(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new Error("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}function i(){if(null===document.head.querySelector("style.anchorjs")){var A,e=document.createElement("style");e.className="anchorjs",e.appendChild(document.createT
 extNode("")),void 0===(A=document.head.querySelector('[rel="stylesheet"], style'))?document.head.appendChild(e):document.head.insertBefore(e,A),e.sheet.insertRule(" .anchorjs-link {   opacity: 0;   text-decoration: none;   -webkit-font-smoothing: antialiased;   -moz-osx-font-smoothing: grayscale; }",e.sheet.cssRules.length),e.sheet.insertRule(" *:hover > .anchorjs-link, .anchorjs-link:focus  {   opacity: 1; }",e.sheet.cssRules.length),e.sheet.insertRule(" [data-anchorjs-icon]::after {   content: attr(data-anchorjs-icon); }",e.sheet.cssRules.length),e.sheet.insertRule(' @font-face {   font-family: "anchorjs-icons";   src: url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MC
 rQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetyp
 e"); }',e.sheet.cssRules.length)}}this.options=A||{},this.elements=[],e(this.options),this.isTouchDevice=function(){return!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)},this.add=function(A){var n,o,s,a,r,c,h,l,u,d,f,p=[];if(e(this.options),"touch"===(f=this.options.visible)&&(f=this.isTouchDevice()?"always":"hover"),A||(A="h2, h3, h4, h5, h6"),0===(n=t(A)).length)return this;for(i(),o=document.querySelectorAll("[id]"),s=[].map.call(o,function(A){return A.id}),r=0;r<n.length;r++)if(this.hasAnchorJSLink(n[r]))p.push(r);else{if(n[r].hasAttribute("id"))a=n[r].getAttribute("id");else if(n[r].hasAttribute("data-anchor-id"))a=n[r].getAttribute("data-anchor-id");else{u=l=this.urlify(n[r].textContent),h=0;do{void 0!==c&&(u=l+"-"+h),c=s.indexOf(u),h+=1}while(-1!==c);c=void 0,s.push(u),n[r].setAttribute("id",u),a=u}a.replace(/-/g," "),(d=document.createElement("a")).className="anchorjs-link "+this.options.class,d.href="#"+a,d.setAttribute("aria-label",thi
 s.options.ariaLabel),d.setAttribute("data-anchorjs-icon",this.options.icon),"always"===f&&(d.style.opacity="1"),""===this.options.icon&&(d.style.font="1em/1 anchorjs-icons","left"===this.options.placement&&(d.style.lineHeight="inherit")),"left"===this.options.placement?(d.style.position="absolute",d.style.marginLeft="-1em",d.style.paddingRight="0.5em",n[r].insertBefore(d,n[r].firstChild)):(d.style.paddingLeft="0.375em",n[r].appendChild(d))}for(r=0;r<p.length;r++)n.splice(p[r]-r,1);return this.elements=this.elements.concat(n),this},this.remove=function(A){for(var e,i,n=t(A),o=0;o<n.length;o++)(i=n[o].querySelector(".anchorjs-link"))&&(-1!==(e=this.elements.indexOf(n[o]))&&this.elements.splice(e,1),n[o].removeChild(i));return this},this.removeAll=function(){this.remove(this.elements)},this.urlify=function(A){var t=/[& +$,:;=?@"#{}|^~[`%!'<>\]\.\/\(\)\*\\]/g;return this.options.truncate||e(this.options),A.trim().replace(/\'/gi,"").replace(t,"-").replace(/-{2,}/g,"-").substring(0,thi
 s.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&(" "+A.firstChild.className+" ").indexOf(" anchorjs-link ")>-1,t=A.lastChild&&(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ")>-1;return e||t||!1}}});
\ No newline at end of file
diff --git a/assets/static/js/bootstrap.bundle.js b/assets/static/js/bootstrap.bundle.js
deleted file mode 100755
index 8849439..0000000
--- a/assets/static/js/bootstrap.bundle.js
+++ /dev/null
@@ -1,6287 +0,0 @@
-/*!
-  * Bootstrap v4.0.0-beta.2 (https://getbootstrap.com)
-  * Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
-  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
-  */
-var bootstrap = (function (exports,$) {
-'use strict';
-
-$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): util.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-var Util = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Private TransitionEnd Helpers
-   * ------------------------------------------------------------------------
-   */
-  var transition = false;
-  var MAX_UID = 1000000;
-  var TransitionEndEvent = {
-    WebkitTransition: 'webkitTransitionEnd',
-    MozTransition: 'transitionend',
-    OTransition: 'oTransitionEnd otransitionend',
-    transition: 'transitionend' // shoutout AngusCroll (https://goo.gl/pxwQGp)
-
-  };
-
-  function toType(obj) {
-    return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
-  }
-
-  function getSpecialTransitionEndEvent() {
-    return {
-      bindType: transition.end,
-      delegateType: transition.end,
-      handle: function handle(event) {
-        if ($(event.target).is(this)) {
-          return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
-        }
-
-        return undefined; // eslint-disable-line no-undefined
-      }
-    };
-  }
-
-  function transitionEndTest() {
-    if (window.QUnit) {
-      return false;
-    }
-
-    var el = document.createElement('bootstrap');
-
-    for (var name in TransitionEndEvent) {
-      if (typeof el.style[name] !== 'undefined') {
-        return {
-          end: TransitionEndEvent[name]
-        };
-      }
-    }
-
-    return false;
-  }
-
-  function transitionEndEmulator(duration) {
-    var _this = this;
-
-    var called = false;
-    $(this).one(Util.TRANSITION_END, function () {
-      called = true;
-    });
-    setTimeout(function () {
-      if (!called) {
-        Util.triggerTransitionEnd(_this);
-      }
-    }, duration);
-    return this;
-  }
-
-  function setTransitionEndSupport() {
-    transition = transitionEndTest();
-    $.fn.emulateTransitionEnd = transitionEndEmulator;
-
-    if (Util.supportsTransitionEnd()) {
-      $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
-    }
-  }
-  /**
-   * --------------------------------------------------------------------------
-   * Public Util Api
-   * --------------------------------------------------------------------------
-   */
-
-
-  var Util = {
-    TRANSITION_END: 'bsTransitionEnd',
-    getUID: function getUID(prefix) {
-      do {
-        // eslint-disable-next-line no-bitwise
-        prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
-      } while (document.getElementById(prefix));
-
-      return prefix;
-    },
-    getSelectorFromElement: function getSelectorFromElement(element) {
-      var selector = element.getAttribute('data-target');
-
-      if (!selector || selector === '#') {
-        selector = element.getAttribute('href') || '';
-      }
-
-      try {
-        var $selector = $(document).find(selector);
-        return $selector.length > 0 ? selector : null;
-      } catch (error) {
-        return null;
-      }
-    },
-    reflow: function reflow(element) {
-      return element.offsetHeight;
-    },
-    triggerTransitionEnd: function triggerTransitionEnd(element) {
-      $(element).trigger(transition.end);
-    },
-    supportsTransitionEnd: function supportsTransitionEnd() {
-      return Boolean(transition);
-    },
-    isElement: function isElement(obj) {
-      return (obj[0] || obj).nodeType;
-    },
-    typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
-      for (var property in configTypes) {
-        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
-          var expectedTypes = configTypes[property];
-          var value = config[property];
-          var valueType = value && Util.isElement(value) ? 'element' : toType(value);
-
-          if (!new RegExp(expectedTypes).test(valueType)) {
-            throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
-          }
-        }
-      }
-    }
-  };
-  setTransitionEndSupport();
-  return Util;
-}($);
-
-function _defineProperties(target, props) {
-  for (var i = 0; i < props.length; i++) {
-    var descriptor = props[i];
-    descriptor.enumerable = descriptor.enumerable || false;
-    descriptor.configurable = true;
-    if ("value" in descriptor) descriptor.writable = true;
-    Object.defineProperty(target, descriptor.key, descriptor);
-  }
-}
-
-function _createClass(Constructor, protoProps, staticProps) {
-  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
-  if (staticProps) _defineProperties(Constructor, staticProps);
-  return Constructor;
-}
-
-var createClass = _createClass;
-
-function _inheritsLoose(subClass, superClass) {
-  subClass.prototype = Object.create(superClass.prototype);
-  subClass.prototype.constructor = subClass;
-  subClass.__proto__ = superClass;
-}
-
-var inheritsLoose = _inheritsLoose;
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): alert.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-var Alert = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-  var NAME = 'alert';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.alert';
-  var EVENT_KEY = "." + DATA_KEY;
-  var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var TRANSITION_DURATION = 150;
-  var Selector = {
-    DISMISS: '[data-dismiss="alert"]'
-  };
-  var Event = {
-    CLOSE: "close" + EVENT_KEY,
-    CLOSED: "closed" + EVENT_KEY,
-    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
-  };
-  var ClassName = {
-    ALERT: 'alert',
-    FADE: 'fade',
-    SHOW: 'show'
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Alert =
-  /*#__PURE__*/
-  function () {
-    function Alert(element) {
-      this._element = element;
-    } // getters
-
-
-    var _proto = Alert.prototype;
-
-    // public
-    _proto.close = function close(element) {
-      element = element || this._element;
-
-      var rootElement = this._getRootElement(element);
-
-      var customEvent = this._triggerCloseEvent(rootElement);
-
-      if (customEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      this._removeElement(rootElement);
-    };
-
-    _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
-      this._element = null;
-    }; // private
-
-
-    _proto._getRootElement = function _getRootElement(element) {
-      var selector = Util.getSelectorFromElement(element);
-      var parent = false;
-
-      if (selector) {
-        parent = $(selector)[0];
-      }
-
-      if (!parent) {
-        parent = $(element).closest("." + ClassName.ALERT)[0];
-      }
-
-      return parent;
-    };
-
-    _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
-      var closeEvent = $.Event(Event.CLOSE);
-      $(element).trigger(closeEvent);
-      return closeEvent;
-    };
-
-    _proto._removeElement = function _removeElement(element) {
-      var _this = this;
-
-      $(element).removeClass(ClassName.SHOW);
-
-      if (!Util.supportsTransitionEnd() || !$(element).hasClass(ClassName.FADE)) {
-        this._destroyElement(element);
-
-        return;
-      }
-
-      $(element).one(Util.TRANSITION_END, function (event) {
-        return _this._destroyElement(element, event);
-      }).emulateTransitionEnd(TRANSITION_DURATION);
-    };
-
-    _proto._destroyElement = function _destroyElement(element) {
-      $(element).detach().trigger(Event.CLOSED).remove();
-    }; // static
-
-
-    Alert._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var $element = $(this);
-        var data = $element.data(DATA_KEY);
-
-        if (!data) {
-          data = new Alert(this);
-          $element.data(DATA_KEY, data);
-        }
-
-        if (config === 'close') {
-          data[config](this);
-        }
-      });
-    };
-
-    Alert._handleDismiss = function _handleDismiss(alertInstance) {
-      return function (event) {
-        if (event) {
-          event.preventDefault();
-        }
-
-        alertInstance.close(this);
-      };
-    };
-
-    createClass(Alert, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }]);
-    return Alert;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-
-  $(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME] = Alert._jQueryInterface;
-  $.fn[NAME].Constructor = Alert;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Alert._jQueryInterface;
-  };
-
-  return Alert;
-}($);
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): button.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-var Button = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-  var NAME = 'button';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.button';
-  var EVENT_KEY = "." + DATA_KEY;
-  var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var ClassName = {
-    ACTIVE: 'active',
-    BUTTON: 'btn',
-    FOCUS: 'focus'
-  };
-  var Selector = {
-    DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
-    DATA_TOGGLE: '[data-toggle="buttons"]',
-    INPUT: 'input',
-    ACTIVE: '.active',
-    BUTTON: '.btn'
-  };
-  var Event = {
-    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
-    FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY)
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Button =
-  /*#__PURE__*/
-  function () {
-    function Button(element) {
-      this._element = element;
-    } // getters
-
-
-    var _proto = Button.prototype;
-
-    // public
-    _proto.toggle = function toggle() {
-      var triggerChangeEvent = true;
-      var addAriaPressed = true;
-      var rootElement = $(this._element).closest(Selector.DATA_TOGGLE)[0];
-
-      if (rootElement) {
-        var input = $(this._element).find(Selector.INPUT)[0];
-
-        if (input) {
-          if (input.type === 'radio') {
-            if (input.checked && $(this._element).hasClass(ClassName.ACTIVE)) {
-              triggerChangeEvent = false;
-            } else {
-              var activeElement = $(rootElement).find(Selector.ACTIVE)[0];
-
-              if (activeElement) {
-                $(activeElement).removeClass(ClassName.ACTIVE);
-              }
-            }
-          }
-
-          if (triggerChangeEvent) {
-            if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
-              return;
-            }
-
-            input.checked = !$(this._element).hasClass(ClassName.ACTIVE);
-            $(input).trigger('change');
-          }
-
-          input.focus();
-          addAriaPressed = false;
-        }
-      }
-
-      if (addAriaPressed) {
-        this._element.setAttribute('aria-pressed', !$(this._element).hasClass(ClassName.ACTIVE));
-      }
-
-      if (triggerChangeEvent) {
-        $(this._element).toggleClass(ClassName.ACTIVE);
-      }
-    };
-
-    _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
-      this._element = null;
-    }; // static
-
-
-    Button._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var data = $(this).data(DATA_KEY);
-
-        if (!data) {
-          data = new Button(this);
-          $(this).data(DATA_KEY, data);
-        }
-
-        if (config === 'toggle') {
-          data[config]();
-        }
-      });
-    };
-
-    createClass(Button, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }]);
-    return Button;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-
-  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
-    event.preventDefault();
-    var button = event.target;
-
-    if (!$(button).hasClass(ClassName.BUTTON)) {
-      button = $(button).closest(Selector.BUTTON);
-    }
-
-    Button._jQueryInterface.call($(button), 'toggle');
-  }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
-    var button = $(event.target).closest(Selector.BUTTON)[0];
-    $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
-  });
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME] = Button._jQueryInterface;
-  $.fn[NAME].Constructor = Button;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Button._jQueryInterface;
-  };
-
-  return Button;
-}($);
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): carousel.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-var Carousel = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-  var NAME = 'carousel';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.carousel';
-  var EVENT_KEY = "." + DATA_KEY;
-  var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var TRANSITION_DURATION = 600;
-  var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
-
-  var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
-
-  var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
-
-  var Default = {
-    interval: 5000,
-    keyboard: true,
-    slide: false,
-    pause: 'hover',
-    wrap: true
-  };
-  var DefaultType = {
-    interval: '(number|boolean)',
-    keyboard: 'boolean',
-    slide: '(boolean|string)',
-    pause: '(string|boolean)',
-    wrap: 'boolean'
-  };
-  var Direction = {
-    NEXT: 'next',
-    PREV: 'prev',
-    LEFT: 'left',
-    RIGHT: 'right'
-  };
-  var Event = {
-    SLIDE: "slide" + EVENT_KEY,
-    SLID: "slid" + EVENT_KEY,
-    KEYDOWN: "keydown" + EVENT_KEY,
-    MOUSEENTER: "mouseenter" + EVENT_KEY,
-    MOUSELEAVE: "mouseleave" + EVENT_KEY,
-    TOUCHEND: "touchend" + EVENT_KEY,
-    LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY,
-    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
-  };
-  var ClassName = {
-    CAROUSEL: 'carousel',
-    ACTIVE: 'active',
-    SLIDE: 'slide',
-    RIGHT: 'carousel-item-right',
-    LEFT: 'carousel-item-left',
-    NEXT: 'carousel-item-next',
-    PREV: 'carousel-item-prev',
-    ITEM: 'carousel-item'
-  };
-  var Selector = {
-    ACTIVE: '.active',
-    ACTIVE_ITEM: '.active.carousel-item',
-    ITEM: '.carousel-item',
-    NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
-    INDICATORS: '.carousel-indicators',
-    DATA_SLIDE: '[data-slide], [data-slide-to]',
-    DATA_RIDE: '[data-ride="carousel"]'
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Carousel =
-  /*#__PURE__*/
-  function () {
-    function Carousel(element, config) {
-      this._items = null;
-      this._interval = null;
-      this._activeElement = null;
-      this._isPaused = false;
-      this._isSliding = false;
-      this.touchTimeout = null;
-      this._config = this._getConfig(config);
-      this._element = $(element)[0];
-      this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0];
-
-      this._addEventListeners();
-    } // getters
-
-
-    var _proto = Carousel.prototype;
-
-    // public
-    _proto.next = function next() {
-      if (!this._isSliding) {
-        this._slide(Direction.NEXT);
-      }
-    };
-
-    _proto.nextWhenVisible = function nextWhenVisible() {
-      // Don't call next when the page isn't visible
-      // or the carousel or its parent isn't visible
-      if (!document.hidden && $(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden') {
-        this.next();
-      }
-    };
-
-    _proto.prev = function prev() {
-      if (!this._isSliding) {
-        this._slide(Direction.PREV);
-      }
-    };
-
-    _proto.pause = function pause(event) {
-      if (!event) {
-        this._isPaused = true;
-      }
-
-      if ($(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) {
-        Util.triggerTransitionEnd(this._element);
-        this.cycle(true);
-      }
-
-      clearInterval(this._interval);
-      this._interval = null;
-    };
-
-    _proto.cycle = function cycle(event) {
-      if (!event) {
-        this._isPaused = false;
-      }
-
-      if (this._interval) {
-        clearInterval(this._interval);
-        this._interval = null;
-      }
-
-      if (this._config.interval && !this._isPaused) {
-        this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
-      }
-    };
-
-    _proto.to = function to(index) {
-      var _this = this;
-
-      this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];
-
-      var activeIndex = this._getItemIndex(this._activeElement);
-
-      if (index > this._items.length - 1 || index < 0) {
-        return;
-      }
-
-      if (this._isSliding) {
-        $(this._element).one(Event.SLID, function () {
-          return _this.to(index);
-        });
-        return;
-      }
-
-      if (activeIndex === index) {
-        this.pause();
-        this.cycle();
-        return;
-      }
-
-      var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;
-
-      this._slide(direction, this._items[index]);
-    };
-
-    _proto.dispose = function dispose() {
-      $(this._element).off(EVENT_KEY);
-      $.removeData(this._element, DATA_KEY);
-      this._items = null;
-      this._config = null;
-      this._element = null;
-      this._interval = null;
-      this._isPaused = null;
-      this._isSliding = null;
-      this._activeElement = null;
-      this._indicatorsElement = null;
-    }; // private
-
-
-    _proto._getConfig = function _getConfig(config) {
-      config = $.extend({}, Default, config);
-      Util.typeCheckConfig(NAME, config, DefaultType);
-      return config;
-    };
-
-    _proto._addEventListeners = function _addEventListeners() {
-      var _this2 = this;
-
-      if (this._config.keyboard) {
-        $(this._element).on(Event.KEYDOWN, function (event) {
-          return _this2._keydown(event);
-        });
-      }
-
-      if (this._config.pause === 'hover') {
-        $(this._element).on(Event.MOUSEENTER, function (event) {
-          return _this2.pause(event);
-        }).on(Event.MOUSELEAVE, function (event) {
-          return _this2.cycle(event);
-        });
-
-        if ('ontouchstart' in document.documentElement) {
-          // if it's a touch-enabled device, mouseenter/leave are fired as
-          // part of the mouse compatibility events on first tap - the carousel
-          // would stop cycling until user tapped out of it;
-          // here, we listen for touchend, explicitly pause the carousel
-          // (as if it's the second time we tap on it, mouseenter compat event
-          // is NOT fired) and after a timeout (to allow for mouse compatibility
-          // events to fire) we explicitly restart cycling
-          $(this._element).on(Event.TOUCHEND, function () {
-            _this2.pause();
-
-            if (_this2.touchTimeout) {
-              clearTimeout(_this2.touchTimeout);
-            }
-
-            _this2.touchTimeout = setTimeout(function (event) {
-              return _this2.cycle(event);
-            }, TOUCHEVENT_COMPAT_WAIT + _this2._config.interval);
-          });
-        }
-      }
-    };
-
-    _proto._keydown = function _keydown(event) {
-      if (/input|textarea/i.test(event.target.tagName)) {
-        return;
-      }
-
-      switch (event.which) {
-        case ARROW_LEFT_KEYCODE:
-          event.preventDefault();
-          this.prev();
-          break;
-
-        case ARROW_RIGHT_KEYCODE:
-          event.preventDefault();
-          this.next();
-          break;
-
-        default:
-          return;
-      }
-    };
-
-    _proto._getItemIndex = function _getItemIndex(element) {
-      this._items = $.makeArray($(element).parent().find(Selector.ITEM));
-      return this._items.indexOf(element);
-    };
-
-    _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
-      var isNextDirection = direction === Direction.NEXT;
-      var isPrevDirection = direction === Direction.PREV;
-
-      var activeIndex = this._getItemIndex(activeElement);
-
-      var lastItemIndex = this._items.length - 1;
-      var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
-
-      if (isGoingToWrap && !this._config.wrap) {
-        return activeElement;
-      }
-
-      var delta = direction === Direction.PREV ? -1 : 1;
-      var itemIndex = (activeIndex + delta) % this._items.length;
-      return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
-    };
-
-    _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
-      var targetIndex = this._getItemIndex(relatedTarget);
-
-      var fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0]);
-
-      var slideEvent = $.Event(Event.SLIDE, {
-        relatedTarget: relatedTarget,
-        direction: eventDirectionName,
-        from: fromIndex,
-        to: targetIndex
-      });
-      $(this._element).trigger(slideEvent);
-      return slideEvent;
-    };
-
-    _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
-      if (this._indicatorsElement) {
-        $(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
-
-        var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
-
-        if (nextIndicator) {
-          $(nextIndicator).addClass(ClassName.ACTIVE);
-        }
-      }
-    };
-
-    _proto._slide = function _slide(direction, element) {
-      var _this3 = this;
-
-      var activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];
-
-      var activeElementIndex = this._getItemIndex(activeElement);
-
-      var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
-
-      var nextElementIndex = this._getItemIndex(nextElement);
-
-      var isCycling = Boolean(this._interval);
-      var directionalClassName;
-      var orderClassName;
-      var eventDirectionName;
-
-      if (direction === Direction.NEXT) {
-        directionalClassName = ClassName.LEFT;
-        orderClassName = ClassName.NEXT;
-        eventDirectionName = Direction.LEFT;
-      } else {
-        directionalClassName = ClassName.RIGHT;
-        orderClassName = ClassName.PREV;
-        eventDirectionName = Direction.RIGHT;
-      }
-
-      if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {
-        this._isSliding = false;
-        return;
-      }
-
-      var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
-
-      if (slideEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      if (!activeElement || !nextElement) {
-        // some weirdness is happening, so we bail
-        return;
-      }
-
-      this._isSliding = true;
-
-      if (isCycling) {
-        this.pause();
-      }
-
-      this._setActiveIndicatorElement(nextElement);
-
-      var slidEvent = $.Event(Event.SLID, {
-        relatedTarget: nextElement,
-        direction: eventDirectionName,
-        from: activeElementIndex,
-        to: nextElementIndex
-      });
-
-      if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.SLIDE)) {
-        $(nextElement).addClass(orderClassName);
-        Util.reflow(nextElement);
-        $(activeElement).addClass(directionalClassName);
-        $(nextElement).addClass(directionalClassName);
-        $(activeElement).one(Util.TRANSITION_END, function () {
-          $(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName.ACTIVE);
-          $(activeElement).removeClass(ClassName.ACTIVE + " " + orderClassName + " " + directionalClassName);
-          _this3._isSliding = false;
-          setTimeout(function () {
-            return $(_this3._element).trigger(slidEvent);
-          }, 0);
-        }).emulateTransitionEnd(TRANSITION_DURATION);
-      } else {
-        $(activeElement).removeClass(ClassName.ACTIVE);
-        $(nextElement).addClass(ClassName.ACTIVE);
-        this._isSliding = false;
-        $(this._element).trigger(slidEvent);
-      }
-
-      if (isCycling) {
-        this.cycle();
-      }
-    }; // static
-
-
-    Carousel._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var data = $(this).data(DATA_KEY);
-
-        var _config = $.extend({}, Default, $(this).data());
-
-        if (typeof config === 'object') {
-          $.extend(_config, config);
-        }
-
-        var action = typeof config === 'string' ? config : _config.slide;
-
-        if (!data) {
-          data = new Carousel(this, _config);
-          $(this).data(DATA_KEY, data);
-        }
-
-        if (typeof config === 'number') {
-          data.to(config);
-        } else if (typeof action === 'string') {
-          if (typeof data[action] === 'undefined') {
-            throw new Error("No method named \"" + action + "\"");
-          }
-
-          data[action]();
-        } else if (_config.interval) {
-          data.pause();
-          data.cycle();
-        }
-      });
-    };
-
-    Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
-      var selector = Util.getSelectorFromElement(this);
-
-      if (!selector) {
-        return;
-      }
-
-      var target = $(selector)[0];
-
-      if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {
-        return;
-      }
-
-      var config = $.extend({}, $(target).data(), $(this).data());
-      var slideIndex = this.getAttribute('data-slide-to');
-
-      if (slideIndex) {
-        config.interval = false;
-      }
-
-      Carousel._jQueryInterface.call($(target), config);
-
-      if (slideIndex) {
-        $(target).data(DATA_KEY).to(slideIndex);
-      }
-
-      event.preventDefault();
-    };
-
-    createClass(Carousel, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }, {
-      key: "Default",
-      get: function get() {
-        return Default;
-      }
-    }]);
-    return Carousel;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-
-  $(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
-  $(window).on(Event.LOAD_DATA_API, function () {
-    $(Selector.DATA_RIDE).each(function () {
-      var $carousel = $(this);
-
-      Carousel._jQueryInterface.call($carousel, $carousel.data());
-    });
-  });
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME] = Carousel._jQueryInterface;
-  $.fn[NAME].Constructor = Carousel;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Carousel._jQueryInterface;
-  };
-
-  return Carousel;
-}($);
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): collapse.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-var Collapse = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-  var NAME = 'collapse';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.collapse';
-  var EVENT_KEY = "." + DATA_KEY;
-  var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var TRANSITION_DURATION = 600;
-  var Default = {
-    toggle: true,
-    parent: ''
-  };
-  var DefaultType = {
-    toggle: 'boolean',
-    parent: '(string|element)'
-  };
-  var Event = {
-    SHOW: "show" + EVENT_KEY,
-    SHOWN: "shown" + EVENT_KEY,
-    HIDE: "hide" + EVENT_KEY,
-    HIDDEN: "hidden" + EVENT_KEY,
-    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
-  };
-  var ClassName = {
-    SHOW: 'show',
-    COLLAPSE: 'collapse',
-    COLLAPSING: 'collapsing',
-    COLLAPSED: 'collapsed'
-  };
-  var Dimension = {
-    WIDTH: 'width',
-    HEIGHT: 'height'
-  };
-  var Selector = {
-    ACTIVES: '.show, .collapsing',
-    DATA_TOGGLE: '[data-toggle="collapse"]'
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Collapse =
-  /*#__PURE__*/
-  function () {
-    function Collapse(element, config) {
-      this._isTransitioning = false;
-      this._element = element;
-      this._config = this._getConfig(config);
-      this._triggerArray = $.makeArray($("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
-      var tabToggles = $(Selector.DATA_TOGGLE);
-
-      for (var i = 0; i < tabToggles.length; i++) {
-        var elem = tabToggles[i];
-        var selector = Util.getSelectorFromElement(elem);
-
-        if (selector !== null && $(selector).filter(element).length > 0) {
-          this._triggerArray.push(elem);
-        }
-      }
-
-      this._parent = this._config.parent ? this._getParent() : null;
-
-      if (!this._config.parent) {
-        this._addAriaAndCollapsedClass(this._element, this._triggerArray);
-      }
-
-      if (this._config.toggle) {
-        this.toggle();
-      }
-    } // getters
-
-
-    var _proto = Collapse.prototype;
-
-    // public
-    _proto.toggle = function toggle() {
-      if ($(this._element).hasClass(ClassName.SHOW)) {
-        this.hide();
-      } else {
-        this.show();
-      }
-    };
-
-    _proto.show = function show() {
-      var _this = this;
-
-      if (this._isTransitioning || $(this._element).hasClass(ClassName.SHOW)) {
-        return;
-      }
-
-      var actives;
-      var activesData;
-
-      if (this._parent) {
-        actives = $.makeArray($(this._parent).children().children(Selector.ACTIVES));
-
-        if (!actives.length) {
-          actives = null;
-        }
-      }
-
-      if (actives) {
-        activesData = $(actives).data(DATA_KEY);
-
-        if (activesData && activesData._isTransitioning) {
-          return;
-        }
-      }
-
-      var startEvent = $.Event(Event.SHOW);
-      $(this._element).trigger(startEvent);
-
-      if (startEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      if (actives) {
-        Collapse._jQueryInterface.call($(actives), 'hide');
-
-        if (!activesData) {
-          $(actives).data(DATA_KEY, null);
-        }
-      }
-
-      var dimension = this._getDimension();
-
-      $(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
-      this._element.style[dimension] = 0;
-
-      if (this._triggerArray.length) {
-        $(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
-      }
-
-      this.setTransitioning(true);
-
-      var complete = function complete() {
-        $(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
-        _this._element.style[dimension] = '';
-
-        _this.setTransitioning(false);
-
-        $(_this._element).trigger(Event.SHOWN);
-      };
-
-      if (!Util.supportsTransitionEnd()) {
-        complete();
-        return;
-      }
-
-      var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
-      var scrollSize = "scroll" + capitalizedDimension;
-      $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
-      this._element.style[dimension] = this._element[scrollSize] + "px";
-    };
-
-    _proto.hide = function hide() {
-      var _this2 = this;
-
-      if (this._isTransitioning || !$(this._element).hasClass(ClassName.SHOW)) {
-        return;
-      }
-
-      var startEvent = $.Event(Event.HIDE);
-      $(this._element).trigger(startEvent);
-
-      if (startEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      var dimension = this._getDimension();
-
-      this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
-      Util.reflow(this._element);
-      $(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
-
-      if (this._triggerArray.length) {
-        for (var i = 0; i < this._triggerArray.length; i++) {
-          var trigger = this._triggerArray[i];
-          var selector = Util.getSelectorFromElement(trigger);
-
-          if (selector !== null) {
-            var $elem = $(selector);
-
-            if (!$elem.hasClass(ClassName.SHOW)) {
-              $(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
-            }
-          }
-        }
-      }
-
-      this.setTransitioning(true);
-
-      var complete = function complete() {
-        _this2.setTransitioning(false);
-
-        $(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
-      };
-
-      this._element.style[dimension] = '';
-
-      if (!Util.supportsTransitionEnd()) {
-        complete();
-        return;
-      }
-
-      $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
-    };
-
-    _proto.setTransitioning = function setTransitioning(isTransitioning) {
-      this._isTransitioning = isTransitioning;
-    };
-
-    _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
-      this._config = null;
-      this._parent = null;
-      this._element = null;
-      this._triggerArray = null;
-      this._isTransitioning = null;
-    }; // private
-
-
-    _proto._getConfig = function _getConfig(config) {
-      config = $.extend({}, Default, config);
-      config.toggle = Boolean(config.toggle); // coerce string values
-
-      Util.typeCheckConfig(NAME, config, DefaultType);
-      return config;
-    };
-
-    _proto._getDimension = function _getDimension() {
-      var hasWidth = $(this._element).hasClass(Dimension.WIDTH);
-      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
-    };
-
-    _proto._getParent = function _getParent() {
-      var _this3 = this;
-
-      var parent = null;
-
-      if (Util.isElement(this._config.parent)) {
-        parent = this._config.parent; // it's a jQuery object
-
-        if (typeof this._config.parent.jquery !== 'undefined') {
-          parent = this._config.parent[0];
-        }
-      } else {
-        parent = $(this._config.parent)[0];
-      }
-
-      var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
-      $(parent).find(selector).each(function (i, element) {
-        _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
-      });
-      return parent;
-    };
-
-    _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
-      if (element) {
-        var isOpen = $(element).hasClass(ClassName.SHOW);
-
-        if (triggerArray.length) {
-          $(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
-        }
-      }
-    }; // static
-
-
-    Collapse._getTargetFromElement = function _getTargetFromElement(element) {
-      var selector = Util.getSelectorFromElement(element);
-      return selector ? $(selector)[0] : null;
-    };
-
-    Collapse._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var $this = $(this);
-        var data = $this.data(DATA_KEY);
-
-        var _config = $.extend({}, Default, $this.data(), typeof config === 'object' && config);
-
-        if (!data && _config.toggle && /show|hide/.test(config)) {
-          _config.toggle = false;
-        }
-
-        if (!data) {
-          data = new Collapse(this, _config);
-          $this.data(DATA_KEY, data);
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error("No method named \"" + config + "\"");
-          }
-
-          data[config]();
-        }
-      });
-    };
-
-    createClass(Collapse, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }, {
-      key: "Default",
-      get: function get() {
-        return Default;
-      }
-    }]);
-    return Collapse;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-
-  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
-    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
-    if (event.currentTarget.tagName === 'A') {
-      event.preventDefault();
-    }
-
-    var $trigger = $(this);
-    var selector = Util.getSelectorFromElement(this);
-    $(selector).each(function () {
-      var $target = $(this);
-      var data = $target.data(DATA_KEY);
-      var config = data ? 'toggle' : $trigger.data();
-
-      Collapse._jQueryInterface.call($target, config);
-    });
-  });
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME] = Collapse._jQueryInterface;
-  $.fn[NAME].Constructor = Collapse;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Collapse._jQueryInterface;
-  };
-
-  return Collapse;
-}($);
-
-/**!
- * @fileOverview Kickass library to create and place poppers near their reference elements.
- * @version 1.12.5
- * @license
- * Copyright (c) 2016 Federico Zivolo and contributors
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-var nativeHints = ['native code', '[object MutationObserverConstructor]'];
-
-/**
- * Determine if a function is implemented natively (as opposed to a polyfill).
- * @method
- * @memberof Popper.Utils
- * @argument {Function | undefined} fn the function to check
- * @returns {Boolean}
- */
-var isNative = (function (fn) {
-  return nativeHints.some(function (hint) {
-    return (fn || '').toString().indexOf(hint) > -1;
-  });
-});
-
-var isBrowser = typeof window !== 'undefined';
-var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
-var timeoutDuration = 0;
-for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {
-  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
-    timeoutDuration = 1;
-    break;
-  }
-}
-
-function microtaskDebounce(fn) {
-  var scheduled = false;
-  var i = 0;
-  var elem = document.createElement('span');
-
-  // MutationObserver provides a mechanism for scheduling microtasks, which
-  // are scheduled *before* the next task. This gives us a way to debounce
-  // a function but ensure it's called *before* the next paint.
-  var observer = new MutationObserver(function () {
-    fn();
-    scheduled = false;
-  });
-
-  observer.observe(elem, { attributes: true });
-
-  return function () {
-    if (!scheduled) {
-      scheduled = true;
-      elem.setAttribute('x-index', i);
-      i = i + 1; // don't use compund (+=) because it doesn't get optimized in V8
-    }
-  };
-}
-
-function taskDebounce(fn) {
-  var scheduled = false;
-  return function () {
-    if (!scheduled) {
-      scheduled = true;
-      setTimeout(function () {
-        scheduled = false;
-        fn();
-      }, timeoutDuration);
-    }
-  };
-}
-
-// It's common for MutationObserver polyfills to be seen in the wild, however
-// these rely on Mutation Events which only occur when an element is connected
-// to the DOM. The algorithm used in this module does not use a connected element,
-// and so we must ensure that a *native* MutationObserver is available.
-var supportsNativeMutationObserver = isBrowser && isNative(window.MutationObserver);
-
-/**
-* Create a debounced version of a method, that's asynchronously deferred
-* but called in the minimum time possible.
-*
-* @method
-* @memberof Popper.Utils
-* @argument {Function} fn
-* @returns {Function}
-*/
-var debounce = supportsNativeMutationObserver ? microtaskDebounce : taskDebounce;
-
-/**
- * Check if the given variable is a function
- * @method
- * @memberof Popper.Utils
- * @argument {Any} functionToCheck - variable to check
- * @returns {Boolean} answer to: is a function?
- */
-function isFunction(functionToCheck) {
-  var getType = {};
-  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
-}
-
-/**
- * Get CSS computed property of the given element
- * @method
- * @memberof Popper.Utils
- * @argument {Eement} element
- * @argument {String} property
- */
-function getStyleComputedProperty(element, property) {
-  if (element.nodeType !== 1) {
-    return [];
-  }
-  // NOTE: 1 DOM access here
-  var css = window.getComputedStyle(element, null);
-  return property ? css[property] : css;
-}
-
-/**
- * Returns the parentNode or the host of the element
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element
- * @returns {Element} parent
- */
-function getParentNode(element) {
-  if (element.nodeName === 'HTML') {
-    return element;
-  }
-  return element.parentNode || element.host;
-}
-
-/**
- * Returns the scrolling parent of the given element
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element
- * @returns {Element} scroll parent
- */
-function getScrollParent(element) {
-  // Return body, `getScroll` will take care to get the correct `scrollTop` from it
-  if (!element || ['HTML', 'BODY', '#document'].indexOf(element.nodeName) !== -1) {
-    return window.document.body;
-  }
-
-  // Firefox want us to check `-x` and `-y` variations as well
-
-  var _getStyleComputedProp = getStyleComputedProperty(element),
-      overflow = _getStyleComputedProp.overflow,
-      overflowX = _getStyleComputedProp.overflowX,
-      overflowY = _getStyleComputedProp.overflowY;
-
-  if (/(auto|scroll)/.test(overflow + overflowY + overflowX)) {
-    return element;
-  }
-
-  return getScrollParent(getParentNode(element));
-}
-
-/**
- * Returns the offset parent of the given element
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element
- * @returns {Element} offset parent
- */
-function getOffsetParent(element) {
-  // NOTE: 1 DOM access here
-  var offsetParent = element && element.offsetParent;
-  var nodeName = offsetParent && offsetParent.nodeName;
-
-  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
-    return window.document.documentElement;
-  }
-
-  // .offsetParent will return the closest TD or TABLE in case
-  // no offsetParent is present, I hate this job...
-  if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
-    return getOffsetParent(offsetParent);
-  }
-
-  return offsetParent;
-}
-
-function isOffsetContainer(element) {
-  var nodeName = element.nodeName;
-
-  if (nodeName === 'BODY') {
-    return false;
-  }
-  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;
-}
-
-/**
- * Finds the root node (document, shadowDOM root) of the given element
- * @method
- * @memberof Popper.Utils
- * @argument {Element} node
- * @returns {Element} root node
- */
-function getRoot(node) {
-  if (node.parentNode !== null) {
-    return getRoot(node.parentNode);
-  }
-
-  return node;
-}
-
-/**
- * Finds the offset parent common to the two provided nodes
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element1
- * @argument {Element} element2
- * @returns {Element} common offset parent
- */
-function findCommonOffsetParent(element1, element2) {
-  // This check is needed to avoid errors in case one of the elements isn't defined for any reason
-  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
-    return window.document.documentElement;
-  }
-
-  // Here we make sure to give as "start" the element that comes first in the DOM
-  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
-  var start = order ? element1 : element2;
-  var end = order ? element2 : element1;
-
-  // Get common ancestor container
-  var range = document.createRange();
-  range.setStart(start, 0);
-  range.setEnd(end, 0);
-  var commonAncestorContainer = range.commonAncestorContainer;
-
-  // Both nodes are inside #document
-
-  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {
-    if (isOffsetContainer(commonAncestorContainer)) {
-      return commonAncestorContainer;
-    }
-
-    return getOffsetParent(commonAncestorContainer);
-  }
-
-  // one of the nodes is inside shadowDOM, find which one
-  var element1root = getRoot(element1);
-  if (element1root.host) {
-    return findCommonOffsetParent(element1root.host, element2);
-  } else {
-    return findCommonOffsetParent(element1, getRoot(element2).host);
-  }
-}
-
-/**
- * Gets the scroll value of the given element in the given side (top and left)
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element
- * @argument {String} side `top` or `left`
- * @returns {number} amount of scrolled pixels
- */
-function getScroll(element) {
-  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';
-
-  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
-  var nodeName = element.nodeName;
-
-  if (nodeName === 'BODY' || nodeName === 'HTML') {
-    var html = window.document.documentElement;
-    var scrollingElement = window.document.scrollingElement || html;
-    return scrollingElement[upperSide];
-  }
-
-  return element[upperSide];
-}
-
-/*
- * Sum or subtract the element scroll values (left and top) from a given rect object
- * @method
- * @memberof Popper.Utils
- * @param {Object} rect - Rect object you want to change
- * @param {HTMLElement} element - The element from the function reads the scroll values
- * @param {Boolean} subtract - set to true if you want to subtract the scroll values
- * @return {Object} rect - The modifier rect object
- */
-function includeScroll(rect, element) {
-  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
-
-  var scrollTop = getScroll(element, 'top');
-  var scrollLeft = getScroll(element, 'left');
-  var modifier = subtract ? -1 : 1;
-  rect.top += scrollTop * modifier;
-  rect.bottom += scrollTop * modifier;
-  rect.left += scrollLeft * modifier;
-  rect.right += scrollLeft * modifier;
-  return rect;
-}
-
-/*
- * Helper to detect borders of a given element
- * @method
- * @memberof Popper.Utils
- * @param {CSSStyleDeclaration} styles
- * Result of `getStyleComputedProperty` on the given element
- * @param {String} axis - `x` or `y`
- * @return {number} borders - The borders size of the given axis
- */
-
-function getBordersSize(styles, axis) {
-  var sideA = axis === 'x' ? 'Left' : 'Top';
-  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';
-
-  return +styles['border' + sideA + 'Width'].split('px')[0] + +styles['border' + sideB + 'Width'].split('px')[0];
-}
-
-/**
- * Tells if you are running Internet Explorer 10
- * @method
- * @memberof Popper.Utils
- * @returns {Boolean} isIE10
- */
-var isIE10 = undefined;
-
-var isIE10$1 = function () {
-  if (isIE10 === undefined) {
-    isIE10 = navigator.appVersion.indexOf('MSIE 10') !== -1;
-  }
-  return isIE10;
-};
-
-function getSize(axis, body, html, computedStyle) {
-  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE10$1() ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);
-}
-
-function getWindowSizes() {
-  var body = window.document.body;
-  var html = window.document.documentElement;
-  var computedStyle = isIE10$1() && window.getComputedStyle(html);
-
-  return {
-    height: getSize('Height', body, html, computedStyle),
-    width: getSize('Width', body, html, computedStyle)
-  };
-}
-
-var classCallCheck = function (instance, Constructor) {
-  if (!(instance instanceof Constructor)) {
-    throw new TypeError("Cannot call a class as a function");
-  }
-};
-
-var createClass$1 = function () {
-  function defineProperties(target, props) {
-    for (var i = 0; i < props.length; i++) {
-      var descriptor = props[i];
-      descriptor.enumerable = descriptor.enumerable || false;
-      descriptor.configurable = true;
-      if ("value" in descriptor) descriptor.writable = true;
-      Object.defineProperty(target, descriptor.key, descriptor);
-    }
-  }
-
-  return function (Constructor, protoProps, staticProps) {
-    if (protoProps) defineProperties(Constructor.prototype, protoProps);
-    if (staticProps) defineProperties(Constructor, staticProps);
-    return Constructor;
-  };
-}();
-
-
-
-
-
-var defineProperty = function (obj, key, value) {
-  if (key in obj) {
-    Object.defineProperty(obj, key, {
-      value: value,
-      enumerable: true,
-      configurable: true,
-      writable: true
-    });
-  } else {
-    obj[key] = value;
-  }
-
-  return obj;
-};
-
-var _extends$1 = Object.assign || function (target) {
-  for (var i = 1; i < arguments.length; i++) {
-    var source = arguments[i];
-
-    for (var key in source) {
-      if (Object.prototype.hasOwnProperty.call(source, key)) {
-        target[key] = source[key];
-      }
-    }
-  }
-
-  return target;
-};
-
-/**
- * Given element offsets, generate an output similar to getBoundingClientRect
- * @method
- * @memberof Popper.Utils
- * @argument {Object} offsets
- * @returns {Object} ClientRect like output
- */
-function getClientRect(offsets) {
-  return _extends$1({}, offsets, {
-    right: offsets.left + offsets.width,
-    bottom: offsets.top + offsets.height
-  });
-}
-
-/**
- * Get bounding client rect of given element
- * @method
- * @memberof Popper.Utils
- * @param {HTMLElement} element
- * @return {Object} client rect
- */
-function getBoundingClientRect(element) {
-  var rect = {};
-
-  // IE10 10 FIX: Please, don't ask, the element isn't
-  // considered in DOM in some circumstances...
-  // This isn't reproducible in IE10 compatibility mode of IE11
-  if (isIE10$1()) {
-    try {
-      rect = element.getBoundingClientRect();
-      var scrollTop = getScroll(element, 'top');
-      var scrollLeft = getScroll(element, 'left');
-      rect.top += scrollTop;
-      rect.left += scrollLeft;
-      rect.bottom += scrollTop;
-      rect.right += scrollLeft;
-    } catch (err) {}
-  } else {
-    rect = element.getBoundingClientRect();
-  }
-
-  var result = {
-    left: rect.left,
-    top: rect.top,
-    width: rect.right - rect.left,
-    height: rect.bottom - rect.top
-  };
-
-  // subtract scrollbar size from sizes
-  var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};
-  var width = sizes.width || element.clientWidth || result.right - result.left;
-  var height = sizes.height || element.clientHeight || result.bottom - result.top;
-
-  var horizScrollbar = element.offsetWidth - width;
-  var vertScrollbar = element.offsetHeight - height;
-
-  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`
-  // we make this check conditional for performance reasons
-  if (horizScrollbar || vertScrollbar) {
-    var styles = getStyleComputedProperty(element);
-    horizScrollbar -= getBordersSize(styles, 'x');
-    vertScrollbar -= getBordersSize(styles, 'y');
-
-    result.width -= horizScrollbar;
-    result.height -= vertScrollbar;
-  }
-
-  return getClientRect(result);
-}
-
-function getOffsetRectRelativeToArbitraryNode(children, parent) {
-  var isIE10 = isIE10$1();
-  var isHTML = parent.nodeName === 'HTML';
-  var childrenRect = getBoundingClientRect(children);
-  var parentRect = getBoundingClientRect(parent);
-  var scrollParent = getScrollParent(children);
-
-  var styles = getStyleComputedProperty(parent);
-  var borderTopWidth = +styles.borderTopWidth.split('px')[0];
-  var borderLeftWidth = +styles.borderLeftWidth.split('px')[0];
-
-  var offsets = getClientRect({
-    top: childrenRect.top - parentRect.top - borderTopWidth,
-    left: childrenRect.left - parentRect.left - borderLeftWidth,
-    width: childrenRect.width,
-    height: childrenRect.height
-  });
-  offsets.marginTop = 0;
-  offsets.marginLeft = 0;
-
-  // Subtract margins of documentElement in case it's being used as parent
-  // we do this only on HTML because it's the only element that behaves
-  // differently when margins are applied to it. The margins are included in
-  // the box of the documentElement, in the other cases not.
-  if (!isIE10 && isHTML) {
-    var marginTop = +styles.marginTop.split('px')[0];
-    var marginLeft = +styles.marginLeft.split('px')[0];
-
-    offsets.top -= borderTopWidth - marginTop;
-    offsets.bottom -= borderTopWidth - marginTop;
-    offsets.left -= borderLeftWidth - marginLeft;
-    offsets.right -= borderLeftWidth - marginLeft;
-
-    // Attach marginTop and marginLeft because in some circumstances we may need them
-    offsets.marginTop = marginTop;
-    offsets.marginLeft = marginLeft;
-  }
-
-  if (isIE10 ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
-    offsets = includeScroll(offsets, parent);
-  }
-
-  return offsets;
-}
-
-function getViewportOffsetRectRelativeToArtbitraryNode(element) {
-  var html = window.document.documentElement;
-  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
-  var width = Math.max(html.clientWidth, window.innerWidth || 0);
-  var height = Math.max(html.clientHeight, window.innerHeight || 0);
-
-  var scrollTop = getScroll(html);
-  var scrollLeft = getScroll(html, 'left');
-
-  var offset = {
-    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,
-    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,
-    width: width,
-    height: height
-  };
-
-  return getClientRect(offset);
-}
-
-/**
- * Check if the given element is fixed or is inside a fixed parent
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element
- * @argument {Element} customContainer
- * @returns {Boolean} answer to "isFixed?"
- */
-function isFixed(element) {
-  var nodeName = element.nodeName;
-  if (nodeName === 'BODY' || nodeName === 'HTML') {
-    return false;
-  }
-  if (getStyleComputedProperty(element, 'position') === 'fixed') {
-    return true;
-  }
-  return isFixed(getParentNode(element));
-}
-
-/**
- * Computed the boundaries limits and return them
- * @method
- * @memberof Popper.Utils
- * @param {HTMLElement} popper
- * @param {HTMLElement} reference
- * @param {number} padding
- * @param {HTMLElement} boundariesElement - Element used to define the boundaries
- * @returns {Object} Coordinates of the boundaries
- */
-function getBoundaries(popper, reference, padding, boundariesElement) {
-  // NOTE: 1 DOM access here
-  var boundaries = { top: 0, left: 0 };
-  var offsetParent = findCommonOffsetParent(popper, reference);
-
-  // Handle viewport case
-  if (boundariesElement === 'viewport') {
-    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent);
-  } else {
-    // Handle other cases based on DOM element used as boundaries
-    var boundariesNode = void 0;
-    if (boundariesElement === 'scrollParent') {
-      boundariesNode = getScrollParent(getParentNode(popper));
-      if (boundariesNode.nodeName === 'BODY') {
-        boundariesNode = window.document.documentElement;
-      }
-    } else if (boundariesElement === 'window') {
-      boundariesNode = window.document.documentElement;
-    } else {
-      boundariesNode = boundariesElement;
-    }
-
-    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent);
-
-    // In case of HTML, we need a different computation
-    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
-      var _getWindowSizes = getWindowSizes(),
-          height = _getWindowSizes.height,
-          width = _getWindowSizes.width;
-
-      boundaries.top += offsets.top - offsets.marginTop;
-      boundaries.bottom = height + offsets.top;
-      boundaries.left += offsets.left - offsets.marginLeft;
-      boundaries.right = width + offsets.left;
-    } else {
-      // for all the other DOM elements, this one is good
-      boundaries = offsets;
-    }
-  }
-
-  // Add paddings
-  boundaries.left += padding;
-  boundaries.top += padding;
-  boundaries.right -= padding;
-  boundaries.bottom -= padding;
-
-  return boundaries;
-}
-
-function getArea(_ref) {
-  var width = _ref.width,
-      height = _ref.height;
-
-  return width * height;
-}
-
-/**
- * Utility used to transform the `auto` placement to the placement with more
- * available space.
- * @method
- * @memberof Popper.Utils
- * @argument {Object} data - The data object generated by update method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
-function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {
-  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
-
-  if (placement.indexOf('auto') === -1) {
-    return placement;
-  }
-
-  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);
-
-  var rects = {
-    top: {
-      width: boundaries.width,
-      height: refRect.top - boundaries.top
-    },
-    right: {
-      width: boundaries.right - refRect.right,
-      height: boundaries.height
-    },
-    bottom: {
-      width: boundaries.width,
-      height: boundaries.bottom - refRect.bottom
-    },
-    left: {
-      width: refRect.left - boundaries.left,
-      height: boundaries.height
-    }
-  };
-
-  var sortedAreas = Object.keys(rects).map(function (key) {
-    return _extends$1({
-      key: key
-    }, rects[key], {
-      area: getArea(rects[key])
-    });
-  }).sort(function (a, b) {
-    return b.area - a.area;
-  });
-
-  var filteredAreas = sortedAreas.filter(function (_ref2) {
-    var width = _ref2.width,
-        height = _ref2.height;
-    return width >= popper.clientWidth && height >= popper.clientHeight;
-  });
-
-  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;
-
-  var variation = placement.split('-')[1];
-
-  return computedPlacement + (variation ? '-' + variation : '');
-}
-
-/**
- * Get offsets to the reference element
- * @method
- * @memberof Popper.Utils
- * @param {Object} state
- * @param {Element} popper - the popper element
- * @param {Element} reference - the reference element (the popper will be relative to this)
- * @returns {Object} An object containing the offsets which will be applied to the popper
- */
-function getReferenceOffsets(state, popper, reference) {
-  var commonOffsetParent = findCommonOffsetParent(popper, reference);
-  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent);
-}
-
-/**
- * Get the outer sizes of the given element (offset size + margins)
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element
- * @returns {Object} object containing width and height properties
- */
-function getOuterSizes(element) {
-  var styles = window.getComputedStyle(element);
-  var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);
-  var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);
-  var result = {
-    width: element.offsetWidth + y,
-    height: element.offsetHeight + x
-  };
-  return result;
-}
-
-/**
- * Get the opposite placement of the given one
- * @method
- * @memberof Popper.Utils
- * @argument {String} placement
- * @returns {String} flipped placement
- */
-function getOppositePlacement(placement) {
-  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
-  return placement.replace(/left|right|bottom|top/g, function (matched) {
-    return hash[matched];
-  });
-}
-
-/**
- * Get offsets to the popper
- * @method
- * @memberof Popper.Utils
- * @param {Object} position - CSS position the Popper will get applied
- * @param {HTMLElement} popper - the popper element
- * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)
- * @param {String} placement - one of the valid placement options
- * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper
- */
-function getPopperOffsets(popper, referenceOffsets, placement) {
-  placement = placement.split('-')[0];
-
-  // Get popper node sizes
-  var popperRect = getOuterSizes(popper);
-
-  // Add position, width and height to our offsets object
-  var popperOffsets = {
-    width: popperRect.width,
-    height: popperRect.height
-  };
-
-  // depending by the popper placement we have to compute its offsets slightly differently
-  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;
-  var mainSide = isHoriz ? 'top' : 'left';
-  var secondarySide = isHoriz ? 'left' : 'top';
-  var measurement = isHoriz ? 'height' : 'width';
-  var secondaryMeasurement = !isHoriz ? 'height' : 'width';
-
-  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;
-  if (placement === secondarySide) {
-    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
-  } else {
-    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];
-  }
-
-  return popperOffsets;
-}
-
-/**
- * Mimics the `find` method of Array
- * @method
- * @memberof Popper.Utils
- * @argument {Array} arr
- * @argument prop
- * @argument value
- * @returns index or -1
- */
-function find(arr, check) {
-  // use native find if supported
-  if (Array.prototype.find) {
-    return arr.find(check);
-  }
-
-  // use `filter` to obtain the same behavior of `find`
-  return arr.filter(check)[0];
-}
-
-/**
- * Return the index of the matching object
- * @method
- * @memberof Popper.Utils
- * @argument {Array} arr
- * @argument prop
- * @argument value
- * @returns index or -1
- */
-function findIndex(arr, prop, value) {
-  // use native findIndex if supported
-  if (Array.prototype.findIndex) {
-    return arr.findIndex(function (cur) {
-      return cur[prop] === value;
-    });
-  }
-
-  // use `find` + `indexOf` if `findIndex` isn't supported
-  var match = find(arr, function (obj) {
-    return obj[prop] === value;
-  });
-  return arr.indexOf(match);
-}
-
-/**
- * Loop trough the list of modifiers and run them in order,
- * each of them will then edit the data object.
- * @method
- * @memberof Popper.Utils
- * @param {dataObject} data
- * @param {Array} modifiers
- * @param {String} ends - Optional modifier name used as stopper
- * @returns {dataObject}
- */
-function runModifiers(modifiers, data, ends) {
-  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));
-
-  modifiersToRun.forEach(function (modifier) {
-    if (modifier.function) {
-      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
-    }
-    var fn = modifier.function || modifier.fn;
-    if (modifier.enabled && isFunction(fn)) {
-      // Add properties to offsets to make them a complete clientRect object
-      // we do this before each modifier to make sure the previous one doesn't
-      // mess with these values
-      data.offsets.popper = getClientRect(data.offsets.popper);
-      data.offsets.reference = getClientRect(data.offsets.reference);
-
-      data = fn(data, modifier);
-    }
-  });
-
-  return data;
-}
-
-/**
- * Updates the position of the popper, computing the new offsets and applying
- * the new style.<br />
- * Prefer `scheduleUpdate` over `update` because of performance reasons.
- * @method
- * @memberof Popper
- */
-function update() {
-  // if popper is destroyed, don't perform any further update
-  if (this.state.isDestroyed) {
-    return;
-  }
-
-  var data = {
-    instance: this,
-    styles: {},
-    arrowStyles: {},
-    attributes: {},
-    flipped: false,
-    offsets: {}
-  };
-
-  // compute reference element offsets
-  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference);
-
-  // compute auto placement, store placement inside the data object,
-  // modifiers will be able to edit `placement` if needed
-  // and refer to originalPlacement to know the original value
-  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);
-
-  // store the computed placement inside `originalPlacement`
-  data.originalPlacement = data.placement;
-
-  // compute the popper offsets
-  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);
-  data.offsets.popper.position = 'absolute';
-
-  // run the modifiers
-  data = runModifiers(this.modifiers, data);
-
-  // the first `update` will call `onCreate` callback
-  // the other ones will call `onUpdate` callback
-  if (!this.state.isCreated) {
-    this.state.isCreated = true;
-    this.options.onCreate(data);
-  } else {
-    this.options.onUpdate(data);
-  }
-}
-
-/**
- * Helper used to know if the given modifier is enabled.
- * @method
- * @memberof Popper.Utils
- * @returns {Boolean}
- */
-function isModifierEnabled(modifiers, modifierName) {
-  return modifiers.some(function (_ref) {
-    var name = _ref.name,
-        enabled = _ref.enabled;
-    return enabled && name === modifierName;
-  });
-}
-
-/**
- * Get the prefixed supported property name
- * @method
- * @memberof Popper.Utils
- * @argument {String} property (camelCase)
- * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)
- */
-function getSupportedPropertyName(property) {
-  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];
-  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);
-
-  for (var i = 0; i < prefixes.length - 1; i++) {
-    var prefix = prefixes[i];
-    var toCheck = prefix ? '' + prefix + upperProp : property;
-    if (typeof window.document.body.style[toCheck] !== 'undefined') {
-      return toCheck;
-    }
-  }
-  return null;
-}
-
-/**
- * Destroy the popper
- * @method
- * @memberof Popper
- */
-function destroy() {
-  this.state.isDestroyed = true;
-
-  // touch DOM only if `applyStyle` modifier is enabled
-  if (isModifierEnabled(this.modifiers, 'applyStyle')) {
-    this.popper.removeAttribute('x-placement');
-    this.popper.style.left = '';
-    this.popper.style.position = '';
-    this.popper.style.top = '';
-    this.popper.style[getSupportedPropertyName('transform')] = '';
-  }
-
-  this.disableEventListeners();
-
-  // remove the popper if user explicity asked for the deletion on destroy
-  // do not use `remove` because IE11 doesn't support it
-  if (this.options.removeOnDestroy) {
-    this.popper.parentNode.removeChild(this.popper);
-  }
-  return this;
-}
-
-function attachToScrollParents(scrollParent, event, callback, scrollParents) {
-  var isBody = scrollParent.nodeName === 'BODY';
-  var target = isBody ? window : scrollParent;
-  target.addEventListener(event, callback, { passive: true });
-
-  if (!isBody) {
-    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);
-  }
-  scrollParents.push(target);
-}
-
-/**
- * Setup needed event listeners used to update the popper position
- * @method
- * @memberof Popper.Utils
- * @private
- */
-function setupEventListeners(reference, options, state, updateBound) {
-  // Resize event listener on window
-  state.updateBound = updateBound;
-  window.addEventListener('resize', state.updateBound, { passive: true });
-
-  // Scroll event listener on scroll parents
-  var scrollElement = getScrollParent(reference);
-  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);
-  state.scrollElement = scrollElement;
-  state.eventsEnabled = true;
-
-  return state;
-}
-
-/**
- * It will add resize/scroll events and start recalculating
- * position of the popper element when they are triggered.
- * @method
- * @memberof Popper
- */
-function enableEventListeners() {
-  if (!this.state.eventsEnabled) {
-    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);
-  }
-}
-
-/**
- * Remove event listeners used to update the popper position
- * @method
- * @memberof Popper.Utils
- * @private
- */
-function removeEventListeners(reference, state) {
-  // Remove resize event listener on window
-  window.removeEventListener('resize', state.updateBound);
-
-  // Remove scroll event listener on scroll parents
-  state.scrollParents.forEach(function (target) {
-    target.removeEventListener('scroll', state.updateBound);
-  });
-
-  // Reset state
-  state.updateBound = null;
-  state.scrollParents = [];
-  state.scrollElement = null;
-  state.eventsEnabled = false;
-  return state;
-}
-
-/**
- * It will remove resize/scroll events and won't recalculate popper position
- * when they are triggered. It also won't trigger onUpdate callback anymore,
- * unless you call `update` method manually.
- * @method
- * @memberof Popper
- */
-function disableEventListeners() {
-  if (this.state.eventsEnabled) {
-    window.cancelAnimationFrame(this.scheduleUpdate);
-    this.state = removeEventListeners(this.reference, this.state);
-  }
-}
-
-/**
- * Tells if a given input is a number
- * @method
- * @memberof Popper.Utils
- * @param {*} input to check
- * @return {Boolean}
- */
-function isNumeric(n) {
-  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
-}
-
-/**
- * Set the style to the given popper
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element - Element to apply the style to
- * @argument {Object} styles
- * Object with a list of properties and values which will be applied to the element
- */
-function setStyles(element, styles) {
-  Object.keys(styles).forEach(function (prop) {
-    var unit = '';
-    // add unit if the value is numeric and is one of the following
-    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {
-      unit = 'px';
-    }
-    element.style[prop] = styles[prop] + unit;
-  });
-}
-
-/**
- * Set the attributes to the given popper
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element - Element to apply the attributes to
- * @argument {Object} styles
- * Object with a list of properties and values which will be applied to the element
- */
-function setAttributes(element, attributes) {
-  Object.keys(attributes).forEach(function (prop) {
-    var value = attributes[prop];
-    if (value !== false) {
-      element.setAttribute(prop, attributes[prop]);
-    } else {
-      element.removeAttribute(prop);
-    }
-  });
-}
-
-/**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by `update` method
- * @argument {Object} data.styles - List of style properties - values to apply to popper element
- * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The same data object
- */
-function applyStyle(data) {
-  // any property present in `data.styles` will be applied to the popper,
-  // in this way we can make the 3rd party modifiers add custom styles to it
-  // Be aware, modifiers could override the properties defined in the previous
-  // lines of this modifier!
-  setStyles(data.instance.popper, data.styles);
-
-  // any property present in `data.attributes` will be applied to the popper,
-  // they will be set as HTML attributes of the element
-  setAttributes(data.instance.popper, data.attributes);
-
-  // if arrowElement is defined and arrowStyles has some properties
-  if (data.arrowElement && Object.keys(data.arrowStyles).length) {
-    setStyles(data.arrowElement, data.arrowStyles);
-  }
-
-  return data;
-}
-
-/**
- * Set the x-placement attribute before everything else because it could be used
- * to add margins to the popper margins needs to be calculated to get the
- * correct popper offsets.
- * @method
- * @memberof Popper.modifiers
- * @param {HTMLElement} reference - The reference element used to position the popper
- * @param {HTMLElement} popper - The HTML element used as popper.
- * @param {Object} options - Popper.js options
- */
-function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {
-  // compute reference element offsets
-  var referenceOffsets = getReferenceOffsets(state, popper, reference);
-
-  // compute auto placement, store placement inside the data object,
-  // modifiers will be able to edit `placement` if needed
-  // and refer to originalPlacement to know the original value
-  var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);
-
-  popper.setAttribute('x-placement', placement);
-
-  // Apply `position` to popper before anything else because
-  // without the position applied we can't guarantee correct computations
-  setStyles(popper, { position: 'absolute' });
-
-  return options;
-}
-
-/**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by `update` method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
-function computeStyle(data, options) {
-  var x = options.x,
-      y = options.y;
-  var popper = data.offsets.popper;
-
-  // Remove this legacy support in Popper.js v2
-
-  var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {
-    return modifier.name === 'applyStyle';
-  }).gpuAcceleration;
-  if (legacyGpuAccelerationOption !== undefined) {
-    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');
-  }
-  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;
-
-  var offsetParent = getOffsetParent(data.instance.popper);
-  var offsetParentRect = getBoundingClientRect(offsetParent);
-
-  // Styles
-  var styles = {
-    position: popper.position
-  };
-
-  // floor sides to avoid blurry text
-  var offsets = {
-    left: Math.floor(popper.left),
-    top: Math.floor(popper.top),
-    bottom: Math.floor(popper.bottom),
-    right: Math.floor(popper.right)
-  };
-
-  var sideA = x === 'bottom' ? 'top' : 'bottom';
-  var sideB = y === 'right' ? 'left' : 'right';
-
-  // if gpuAcceleration is set to `true` and transform is supported,
-  //  we use `translate3d` to apply the position to the popper we
-  // automatically use the supported prefixed version if needed
-  var prefixedProperty = getSupportedPropertyName('transform');
-
-  // now, let's make a step back and look at this code closely (wtf?)
-  // If the content of the popper grows once it's been positioned, it
-  // may happen that the popper gets misplaced because of the new content
-  // overflowing its reference element
-  // To avoid this problem, we provide two options (x and y), which allow
-  // the consumer to define the offset origin.
-  // If we position a popper on top of a reference element, we can set
-  // `x` to `top` to make the popper grow towards its top instead of
-  // its bottom.
-  var left = void 0,
-      top = void 0;
-  if (sideA === 'bottom') {
-    top = -offsetParentRect.height + offsets.bottom;
-  } else {
-    top = offsets.top;
-  }
-  if (sideB === 'right') {
-    left = -offsetParentRect.width + offsets.right;
-  } else {
-    left = offsets.left;
-  }
-  if (gpuAcceleration && prefixedProperty) {
-    styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';
-    styles[sideA] = 0;
-    styles[sideB] = 0;
-    styles.willChange = 'transform';
-  } else {
-    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties
-    var invertTop = sideA === 'bottom' ? -1 : 1;
-    var invertLeft = sideB === 'right' ? -1 : 1;
-    styles[sideA] = top * invertTop;
-    styles[sideB] = left * invertLeft;
-    styles.willChange = sideA + ', ' + sideB;
-  }
-
-  // Attributes
-  var attributes = {
-    'x-placement': data.placement
-  };
-
-  // Update `data` attributes, styles and arrowStyles
-  data.attributes = _extends$1({}, attributes, data.attributes);
-  data.styles = _extends$1({}, styles, data.styles);
-  data.arrowStyles = _extends$1({}, data.offsets.arrow, data.arrowStyles);
-
-  return data;
-}
-
-/**
- * Helper used to know if the given modifier depends from another one.<br />
- * It checks if the needed modifier is listed and enabled.
- * @method
- * @memberof Popper.Utils
- * @param {Array} modifiers - list of modifiers
- * @param {String} requestingName - name of requesting modifier
- * @param {String} requestedName - name of requested modifier
- * @returns {Boolean}
- */
-function isModifierRequired(modifiers, requestingName, requestedName) {
-  var requesting = find(modifiers, function (_ref) {
-    var name = _ref.name;
-    return name === requestingName;
-  });
-
-  var isRequired = !!requesting && modifiers.some(function (modifier) {
-    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;
-  });
-
-  if (!isRequired) {
-    var _requesting = '`' + requestingName + '`';
-    var requested = '`' + requestedName + '`';
-    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');
-  }
-  return isRequired;
-}
-
-/**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by update method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
-function arrow(data, options) {
-  // arrow depends on keepTogether in order to work
-  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {
-    return data;
-  }
-
-  var arrowElement = options.element;
-
-  // if arrowElement is a string, suppose it's a CSS selector
-  if (typeof arrowElement === 'string') {
-    arrowElement = data.instance.popper.querySelector(arrowElement);
-
-    // if arrowElement is not found, don't run the modifier
-    if (!arrowElement) {
-      return data;
-    }
-  } else {
-    // if the arrowElement isn't a query selector we must check that the
-    // provided DOM node is child of its popper node
-    if (!data.instance.popper.contains(arrowElement)) {
-      console.warn('WARNING: `arrow.element` must be child of its popper element!');
-      return data;
-    }
-  }
-
-  var placement = data.placement.split('-')[0];
-  var _data$offsets = data.offsets,
-      popper = _data$offsets.popper,
-      reference = _data$offsets.reference;
-
-  var isVertical = ['left', 'right'].indexOf(placement) !== -1;
-
-  var len = isVertical ? 'height' : 'width';
-  var sideCapitalized = isVertical ? 'Top' : 'Left';
-  var side = sideCapitalized.toLowerCase();
-  var altSide = isVertical ? 'left' : 'top';
-  var opSide = isVertical ? 'bottom' : 'right';
-  var arrowElementSize = getOuterSizes(arrowElement)[len];
-
-  //
-  // extends keepTogether behavior making sure the popper and its
-  // reference have enough pixels in conjuction
-  //
-
-  // top/left side
-  if (reference[opSide] - arrowElementSize < popper[side]) {
-    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);
-  }
-  // bottom/right side
-  if (reference[side] + arrowElementSize > popper[opSide]) {
-    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];
-  }
-
-  // compute center of the popper
-  var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;
-
-  // Compute the sideValue using the updated popper offsets
-  // take popper margin in account because we don't have this info available
-  var popperMarginSide = getStyleComputedProperty(data.instance.popper, 'margin' + sideCapitalized).replace('px', '');
-  var sideValue = center - getClientRect(data.offsets.popper)[side] - popperMarginSide;
-
-  // prevent arrowElement from being placed not contiguously to its popper
-  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);
-
-  data.arrowElement = arrowElement;
-  data.offsets.arrow = {};
-  data.offsets.arrow[side] = Math.round(sideValue);
-  data.offsets.arrow[altSide] = ''; // make sure to unset any eventual altSide value from the DOM node
-
-  return data;
-}
-
-/**
- * Get the opposite placement variation of the given one
- * @method
- * @memberof Popper.Utils
- * @argument {String} placement variation
- * @returns {String} flipped placement variation
- */
-function getOppositeVariation(variation) {
-  if (variation === 'end') {
-    return 'start';
-  } else if (variation === 'start') {
-    return 'end';
-  }
-  return variation;
-}
-
-/**
- * List of accepted placements to use as values of the `placement` option.<br />
- * Valid placements are:
- * - `auto`
- * - `top`
- * - `right`
- * - `bottom`
- * - `left`
- *
- * Each placement can have a variation from this list:
- * - `-start`
- * - `-end`
- *
- * Variations are interpreted easily if you think of them as the left to right
- * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`
- * is right.<br />
- * Vertically (`left` and `right`), `start` is top and `end` is bottom.
- *
- * Some valid examples are:
- * - `top-end` (on top of reference, right aligned)
- * - `right-start` (on right of reference, top aligned)
- * - `bottom` (on bottom, centered)
- * - `auto-right` (on the side with more space available, alignment depends by placement)
- *
- * @static
- * @type {Array}
- * @enum {String}
- * @readonly
- * @method placements
- * @memberof Popper
- */
-var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];
-
-// Get rid of `auto` `auto-start` and `auto-end`
-var validPlacements = placements.slice(3);
-
-/**
- * Given an initial placement, returns all the subsequent placements
- * clockwise (or counter-clockwise).
- *
- * @method
- * @memberof Popper.Utils
- * @argument {String} placement - A valid placement (it accepts variations)
- * @argument {Boolean} counter - Set to true to walk the placements counterclockwise
- * @returns {Array} placements including their variations
- */
-function clockwise(placement) {
-  var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
-
-  var index = validPlacements.indexOf(placement);
-  var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));
-  return counter ? arr.reverse() : arr;
-}
-
-var BEHAVIORS = {
-  FLIP: 'flip',
-  CLOCKWISE: 'clockwise',
-  COUNTERCLOCKWISE: 'counterclockwise'
-};
-
-/**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by update method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
-function flip(data, options) {
-  // if `inner` modifier is enabled, we can't use the `flip` modifier
-  if (isModifierEnabled(data.instance.modifiers, 'inner')) {
-    return data;
-  }
-
-  if (data.flipped && data.placement === data.originalPlacement) {
-    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides
-    return data;
-  }
-
-  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement);
-
-  var placement = data.placement.split('-')[0];
-  var placementOpposite = getOppositePlacement(placement);
-  var variation = data.placement.split('-')[1] || '';
-
-  var flipOrder = [];
-
-  switch (options.behavior) {
-    case BEHAVIORS.FLIP:
-      flipOrder = [placement, placementOpposite];
-      break;
-    case BEHAVIORS.CLOCKWISE:
-      flipOrder = clockwise(placement);
-      break;
-    case BEHAVIORS.COUNTERCLOCKWISE:
-      flipOrder = clockwise(placement, true);
-      break;
-    default:
-      flipOrder = options.behavior;
-  }
-
-  flipOrder.forEach(function (step, index) {
-    if (placement !== step || flipOrder.length === index + 1) {
-      return data;
-    }
-
-    placement = data.placement.split('-')[0];
-    placementOpposite = getOppositePlacement(placement);
-
-    var popperOffsets = data.offsets.popper;
-    var refOffsets = data.offsets.reference;
-
-    // using floor because the reference offsets may contain decimals we are not going to consider here
-    var floor = Math.floor;
-    var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);
-
-    var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);
-    var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);
-    var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);
-    var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);
-
-    var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;
-
-    // flip the variation if required
-    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
-    var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);
-
-    if (overlapsRef || overflowsBoundaries || flippedVariation) {
-      // this boolean to detect any flip loop
-      data.flipped = true;
-
-      if (overlapsRef || overflowsBoundaries) {
-        placement = flipOrder[index + 1];
-      }
-
-      if (flippedVariation) {
-        variation = getOppositeVariation(variation);
-      }
-
-      data.placement = placement + (variation ? '-' + variation : '');
-
-      // this object contains `position`, we want to preserve it along with
-      // any additional property we may add in the future
-      data.offsets.popper = _extends$1({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));
-
-      data = runModifiers(data.instance.modifiers, data, 'flip');
-    }
-  });
-  return data;
-}
-
-/**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by update method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
-function keepTogether(data) {
-  var _data$offsets = data.offsets,
-      popper = _data$offsets.popper,
-      reference = _data$offsets.reference;
-
-  var placement = data.placement.split('-')[0];
-  var floor = Math.floor;
-  var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
-  var side = isVertical ? 'right' : 'bottom';
-  var opSide = isVertical ? 'left' : 'top';
-  var measurement = isVertical ? 'width' : 'height';
-
-  if (popper[side] < floor(reference[opSide])) {
-    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];
-  }
-  if (popper[opSide] > floor(reference[side])) {
-    data.offsets.popper[opSide] = floor(reference[side]);
-  }
-
-  return data;
-}
-
-/**
- * Converts a string containing value + unit into a px value number
- * @function
- * @memberof {modifiers~offset}
- * @private
- * @argument {String} str - Value + unit string
- * @argument {String} measurement - `height` or `width`
- * @argument {Object} popperOffsets
- * @argument {Object} referenceOffsets
- * @returns {Number|String}
- * Value in pixels, or original string if no values were extracted
- */
-function toValue(str, measurement, popperOffsets, referenceOffsets) {
-  // separate value from unit
-  var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/);
-  var value = +split[1];
-  var unit = split[2];
-
-  // If it's not a number it's an operator, I guess
-  if (!value) {
-    return str;
-  }
-
-  if (unit.indexOf('%') === 0) {
-    var element = void 0;
-    switch (unit) {
-      case '%p':
-        element = popperOffsets;
-        break;
-      case '%':
-      case '%r':
-      default:
-        element = referenceOffsets;
-    }
-
-    var rect = getClientRect(element);
-    return rect[measurement] / 100 * value;
-  } else if (unit === 'vh' || unit === 'vw') {
-    // if is a vh or vw, we calculate the size based on the viewport
-    var size = void 0;
-    if (unit === 'vh') {
-      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
-    } else {
-      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
-    }
-    return size / 100 * value;
-  } else {
-    // if is an explicit pixel unit, we get rid of the unit and keep the value
-    // if is an implicit unit, it's px, and we return just the value
-    return value;
-  }
-}
-
-/**
- * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.
- * @function
- * @memberof {modifiers~offset}
- * @private
- * @argument {String} offset
- * @argument {Object} popperOffsets
- * @argument {Object} referenceOffsets
- * @argument {String} basePlacement
- * @returns {Array} a two cells array with x and y offsets in numbers
- */
-function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {
-  var offsets = [0, 0];
-
-  // Use height if placement is left or right and index is 0 otherwise use width
-  // in this way the first offset will use an axis and the second one
-  // will use the other one
-  var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;
-
-  // Split the offset string to obtain a list of values and operands
-  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)
-  var fragments = offset.split(/(\+|\-)/).map(function (frag) {
-    return frag.trim();
-  });
-
-  // Detect if the offset string contains a pair of values or a single one
-  // they could be separated by comma or space
-  var divider = fragments.indexOf(find(fragments, function (frag) {
-    return frag.search(/,|\s/) !== -1;
-  }));
-
-  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {
-    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');
-  }
-
-  // If divider is found, we divide the list of values and operands to divide
-  // them by ofset X and Y.
-  var splitRegex = /\s*,\s*|\s+/;
-  var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];
-
-  // Convert the values with units to absolute pixels to allow our computations
-  ops = ops.map(function (op, index) {
-    // Most of the units rely on the orientation of the popper
-    var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';
-    var mergeWithPrevious = false;
-    return op
-    // This aggregates any `+` or `-` sign that aren't considered operators
-    // e.g.: 10 + +5 => [10, +, +5]
-    .reduce(function (a, b) {
-      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {
-        a[a.length - 1] = b;
-        mergeWithPrevious = true;
-        return a;
-      } else if (mergeWithPrevious) {
-        a[a.length - 1] += b;
-        mergeWithPrevious = false;
-        return a;
-      } else {
-        return a.concat(b);
-      }
-    }, [])
-    // Here we convert the string values into number values (in px)
-    .map(function (str) {
-      return toValue(str, measurement, popperOffsets, referenceOffsets);
-    });
-  });
-
-  // Loop trough the offsets arrays and execute the operations
-  ops.forEach(function (op, index) {
-    op.forEach(function (frag, index2) {
-      if (isNumeric(frag)) {
-        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);
-      }
-    });
-  });
-  return offsets;
-}
-
-/**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by update method
- * @argument {Object} options - Modifiers configuration and options
- * @argument {Number|String} options.offset=0
- * The offset value as described in the modifier description
- * @returns {Object} The data object, properly modified
- */
-function offset(data, _ref) {
-  var offset = _ref.offset;
-  var placement = data.placement,
-      _data$offsets = data.offsets,
-      popper = _data$offsets.popper,
-      reference = _data$offsets.reference;
-
-  var basePlacement = placement.split('-')[0];
-
-  var offsets = void 0;
-  if (isNumeric(+offset)) {
-    offsets = [+offset, 0];
-  } else {
-    offsets = parseOffset(offset, popper, reference, basePlacement);
-  }
-
-  if (basePlacement === 'left') {
-    popper.top += offsets[0];
-    popper.left -= offsets[1];
-  } else if (basePlacement === 'right') {
-    popper.top += offsets[0];
-    popper.left += offsets[1];
-  } else if (basePlacement === 'top') {
-    popper.left += offsets[0];
-    popper.top -= offsets[1];
-  } else if (basePlacement === 'bottom') {
-    popper.left += offsets[0];
-    popper.top += offsets[1];
-  }
-
-  data.popper = popper;
-  return data;
-}
-
-/**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by `update` method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
-function preventOverflow(data, options) {
-  var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);
-
-  // If offsetParent is the reference element, we really want to
-  // go one step up and use the next offsetParent as reference to
-  // avoid to make this modifier completely useless and look like broken
-  if (data.instance.reference === boundariesElement) {
-    boundariesElement = getOffsetParent(boundariesElement);
-  }
-
-  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement);
-  options.boundaries = boundaries;
-
-  var order = options.priority;
-  var popper = data.offsets.popper;
-
-  var check = {
-    primary: function primary(placement) {
-      var value = popper[placement];
-      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {
-        value = Math.max(popper[placement], boundaries[placement]);
-      }
-      return defineProperty({}, placement, value);
-    },
-    secondary: function secondary(placement) {
-      var mainSide = placement === 'right' ? 'left' : 'top';
-      var value = popper[mainSide];
-      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {
-        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));
-      }
-      return defineProperty({}, mainSide, value);
-    }
-  };
-
-  order.forEach(function (placement) {
-    var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';
-    popper = _extends$1({}, popper, check[side](placement));
-  });
-
-  data.offsets.popper = popper;
-
-  return data;
-}
-
-/**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by `update` method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
-function shift(data) {
-  var placement = data.placement;
-  var basePlacement = placement.split('-')[0];
-  var shiftvariation = placement.split('-')[1];
-
-  // if shift shiftvariation is specified, run the modifier
-  if (shiftvariation) {
-    var _data$offsets = data.offsets,
-        reference = _data$offsets.reference,
-        popper = _data$offsets.popper;
-
-    var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;
-    var side = isVertical ? 'left' : 'top';
-    var measurement = isVertical ? 'width' : 'height';
-
-    var shiftOffsets = {
-      start: defineProperty({}, side, reference[side]),
-      end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])
-    };
-
-    data.offsets.popper = _extends$1({}, popper, shiftOffsets[shiftvariation]);
-  }
-
-  return data;
-}
-
-/**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by update method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
-function hide(data) {
-  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {
-    return data;
-  }
-
-  var refRect = data.offsets.reference;
-  var bound = find(data.instance.modifiers, function (modifier) {
-    return modifier.name === 'preventOverflow';
-  }).boundaries;
-
-  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {
-    // Avoid unnecessary DOM access if visibility hasn't changed
-    if (data.hide === true) {
-      return data;
-    }
-
-    data.hide = true;
-    data.attributes['x-out-of-boundaries'] = '';
-  } else {
-    // Avoid unnecessary DOM access if visibility hasn't changed
-    if (data.hide === false) {
-      return data;
-    }
-
-    data.hide = false;
-    data.attributes['x-out-of-boundaries'] = false;
-  }
-
-  return data;
-}
-
-/**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by `update` method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
-function inner(data) {
-  var placement = data.placement;
-  var basePlacement = placement.split('-')[0];
-  var _data$offsets = data.offsets,
-      popper = _data$offsets.popper,
-      reference = _data$offsets.reference;
-
-  var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;
-
-  var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;
-
-  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);
-
-  data.placement = getOppositePlacement(placement);
-  data.offsets.popper = getClientRect(popper);
-
-  return data;
-}
-
-/**
- * Modifier function, each modifier can have a function of this type assigned
- * to its `fn` property.<br />
- * These functions will be called on each update, this means that you must
- * make sure they are performant enough to avoid performance bottlenecks.
- *
- * @function ModifierFn
- * @argument {dataObject} data - The data object generated by `update` method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {dataObject} The data object, properly modified
- */
-
-/**
- * Modifiers are plugins used to alter the behavior of your poppers.<br />
- * Popper.js uses a set of 9 modifiers to provide all the basic functionalities
- * needed by the library.
- *
- * Usually you don't want to override the `order`, `fn` and `onLoad` props.
- * All the other properties are configurations that could be tweaked.
- * @namespace modifiers
- */
-var modifiers = {
-  /**
-   * Modifier used to shift the popper on the start or end of its reference
-   * element.<br />
-   * It will read the variation of the `placement` property.<br />
-   * It can be one either `-end` or `-start`.
-   * @memberof modifiers
-   * @inner
-   */
-  shift: {
-    /** @prop {number} order=100 - Index used to define the order of execution */
-    order: 100,
-    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
-    enabled: true,
-    /** @prop {ModifierFn} */
-    fn: shift
-  },
-
-  /**
-   * The `offset` modifier can shift your popper on both its axis.
-   *
-   * It accepts the following units:
-   * - `px` or unitless, interpreted as pixels
-   * - `%` or `%r`, percentage relative to the length of the reference element
-   * - `%p`, percentage relative to the length of the popper element
-   * - `vw`, CSS viewport width unit
-   * - `vh`, CSS viewport height unit
-   *
-   * For length is intended the main axis relative to the placement of the popper.<br />
-   * This means that if the placement is `top` or `bottom`, the length will be the
-   * `width`. In case of `left` or `right`, it will be the height.
-   *
-   * You can provide a single value (as `Number` or `String`), or a pair of values
-   * as `String` divided by a comma or one (or more) white spaces.<br />
-   * The latter is a deprecated method because it leads to confusion and will be
-   * removed in v2.<br />
-   * Additionally, it accepts additions and subtractions between different units.
-   * Note that multiplications and divisions aren't supported.
-   *
-   * Valid examples are:
-   * ```
-   * 10
-   * '10%'
-   * '10, 10'
-   * '10%, 10'
-   * '10 + 10%'
-   * '10 - 5vh + 3%'
-   * '-10px + 5vh, 5px - 6%'
-   * ```
-   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap
-   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.
-   * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)
-   *
-   * @memberof modifiers
-   * @inner
-   */
-  offset: {
-    /** @prop {number} order=200 - Index used to define the order of execution */
-    order: 200,
-    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
-    enabled: true,
-    /** @prop {ModifierFn} */
-    fn: offset,
-    /** @prop {Number|String} offset=0
-     * The offset value as described in the modifier description
-     */
-    offset: 0
-  },
-
-  /**
-   * Modifier used to prevent the popper from being positioned outside the boundary.
-   *
-   * An scenario exists where the reference itself is not within the boundaries.<br />
-   * We can say it has "escaped the boundaries" — or just "escaped".<br />
-   * In this case we need to decide whether the popper should either:
-   *
-   * - detach from the reference and remain "trapped" in the boundaries, or
-   * - if it should ignore the boundary and "escape with its reference"
-   *
-   * When `escapeWithReference` is set to`true` and reference is completely
-   * outside its boundaries, the popper will overflow (or completely leave)
-   * the boundaries in order to remain attached to the edge of the reference.
-   *
-   * @memberof modifiers
-   * @inner
-   */
-  preventOverflow: {
-    /** @prop {number} order=300 - Index used to define the order of execution */
-    order: 300,
-    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
-    enabled: true,
-    /** @prop {ModifierFn} */
-    fn: preventOverflow,
-    /**
-     * @prop {Array} [priority=['left','right','top','bottom']]
-     * Popper will try to prevent overflow following these priorities by default,
-     * then, it could overflow on the left and on top of the `boundariesElement`
-     */
-    priority: ['left', 'right', 'top', 'bottom'],
-    /**
-     * @prop {number} padding=5
-     * Amount of pixel used to define a minimum distance between the boundaries
-     * and the popper this makes sure the popper has always a little padding
-     * between the edges of its container
-     */
-    padding: 5,
-    /**
-     * @prop {String|HTMLElement} boundariesElement='scrollParent'
-     * Boundaries used by the modifier, can be `scrollParent`, `window`,
-     * `viewport` or any DOM element.
-     */
-    boundariesElement: 'scrollParent'
-  },
-
-  /**
-   * Modifier used to make sure the reference and its popper stay near eachothers
-   * without leaving any gap between the two. Expecially useful when the arrow is
-   * enabled and you want to assure it to point to its reference element.
-   * It cares only about the first axis, you can still have poppers with margin
-   * between the popper and its reference element.
-   * @memberof modifiers
-   * @inner
-   */
-  keepTogether: {
-    /** @prop {number} order=400 - Index used to define the order of execution */
-    order: 400,
-    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
-    enabled: true,
-    /** @prop {ModifierFn} */
-    fn: keepTogether
-  },
-
-  /**
-   * This modifier is used to move the `arrowElement` of the popper to make
-   * sure it is positioned between the reference element and its popper element.
-   * It will read the outer size of the `arrowElement` node to detect how many
-   * pixels of conjuction are needed.
-   *
-   * It has no effect if no `arrowElement` is provided.
-   * @memberof modifiers
-   * @inner
-   */
-  arrow: {
-    /** @prop {number} order=500 - Index used to define the order of execution */
-    order: 500,
-    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
-    enabled: true,
-    /** @prop {ModifierFn} */
-    fn: arrow,
-    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */
-    element: '[x-arrow]'
-  },
-
-  /**
-   * Modifier used to flip the popper's placement when it starts to overlap its
-   * reference element.
-   *
-   * Requires the `preventOverflow` modifier before it in order to work.
-   *
-   * **NOTE:** this modifier will interrupt the current update cycle and will
-   * restart it if it detects the need to flip the placement.
-   * @memberof modifiers
-   * @inner
-   */
-  flip: {
-    /** @prop {number} order=600 - Index used to define the order of execution */
-    order: 600,
-    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
-    enabled: true,
-    /** @prop {ModifierFn} */
-    fn: flip,
-    /**
-     * @prop {String|Array} behavior='flip'
-     * The behavior used to change the popper's placement. It can be one of
-     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid
-     * placements (with optional variations).
-     */
-    behavior: 'flip',
-    /**
-     * @prop {number} padding=5
-     * The popper will flip if it hits the edges of the `boundariesElement`
-     */
-    padding: 5,
-    /**
-     * @prop {String|HTMLElement} boundariesElement='viewport'
-     * The element which will define the boundaries of the popper position,
-     * the popper will never be placed outside of the defined boundaries
-     * (except if keepTogether is enabled)
-     */
-    boundariesElement: 'viewport'
-  },
-
-  /**
-   * Modifier used to make the popper flow toward the inner of the reference element.
-   * By default, when this modifier is disabled, the popper will be placed outside
-   * the reference element.
-   * @memberof modifiers
-   * @inner
-   */
-  inner: {
-    /** @prop {number} order=700 - Index used to define the order of execution */
-    order: 700,
-    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */
-    enabled: false,
-    /** @prop {ModifierFn} */
-    fn: inner
-  },
-
-  /**
-   * Modifier used to hide the popper when its reference element is outside of the
-   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can
-   * be used to hide with a CSS selector the popper when its reference is
-   * out of boundaries.
-   *
-   * Requires the `preventOverflow` modifier before it in order to work.
-   * @memberof modifiers
-   * @inner
-   */
-  hide: {
-    /** @prop {number} order=800 - Index used to define the order of execution */
-    order: 800,
-    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
-    enabled: true,
-    /** @prop {ModifierFn} */
-    fn: hide
-  },
-
-  /**
-   * Computes the style that will be applied to the popper element to gets
-   * properly positioned.
-   *
-   * Note that this modifier will not touch the DOM, it just prepares the styles
-   * so that `applyStyle` modifier can apply it. This separation is useful
-   * in case you need to replace `applyStyle` with a custom implementation.
-   *
-   * This modifier has `850` as `order` value to maintain backward compatibility
-   * with previous versions of Popper.js. Expect the modifiers ordering method
-   * to change in future major versions of the library.
-   *
-   * @memberof modifiers
-   * @inner
-   */
-  computeStyle: {
-    /** @prop {number} order=850 - Index used to define the order of execution */
-    order: 850,
-    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
-    enabled: true,
-    /** @prop {ModifierFn} */
-    fn: computeStyle,
-    /**
-     * @prop {Boolean} gpuAcceleration=true
-     * If true, it uses the CSS 3d transformation to position the popper.
-     * Otherwise, it will use the `top` and `left` properties.
-     */
-    gpuAcceleration: true,
-    /**
-     * @prop {string} [x='bottom']
-     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.
-     * Change this if your popper should grow in a direction different from `bottom`
-     */
-    x: 'bottom',
-    /**
-     * @prop {string} [x='left']
-     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.
-     * Change this if your popper should grow in a direction different from `right`
-     */
-    y: 'right'
-  },
-
-  /**
-   * Applies the computed styles to the popper element.
-   *
-   * All the DOM manipulations are limited to this modifier. This is useful in case
-   * you want to integrate Popper.js inside a framework or view library and you
-   * want to delegate all the DOM manipulations to it.
-   *
-   * Note that if you disable this modifier, you must make sure the popper element
-   * has its position set to `absolute` before Popper.js can do its work!
-   *
-   * Just disable this modifier and define you own to achieve the desired effect.
-   *
-   * @memberof modifiers
-   * @inner
-   */
-  applyStyle: {
-    /** @prop {number} order=900 - Index used to define the order of execution */
-    order: 900,
-    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
-    enabled: true,
-    /** @prop {ModifierFn} */
-    fn: applyStyle,
-    /** @prop {Function} */
-    onLoad: applyStyleOnLoad,
-    /**
-     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier
-     * @prop {Boolean} gpuAcceleration=true
-     * If true, it uses the CSS 3d transformation to position the popper.
-     * Otherwise, it will use the `top` and `left` properties.
-     */
-    gpuAcceleration: undefined
-  }
-};
-
-/**
- * The `dataObject` is an object containing all the informations used by Popper.js
- * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.
- * @name dataObject
- * @property {Object} data.instance The Popper.js instance
- * @property {String} data.placement Placement applied to popper
- * @property {String} data.originalPlacement Placement originally defined on init
- * @property {Boolean} data.flipped True if popper has been flipped by flip modifier
- * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.
- * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier
- * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)
- * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)
- * @property {Object} data.boundaries Offsets of the popper boundaries
- * @property {Object} data.offsets The measurements of popper, reference and arrow elements.
- * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values
- * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values
- * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0
- */
-
-/**
- * Default options provided to Popper.js constructor.<br />
- * These can be overriden using the `options` argument of Popper.js.<br />
- * To override an option, simply pass as 3rd argument an object with the same
- * structure of this object, example:
- * ```
- * new Popper(ref, pop, {
- *   modifiers: {
- *     preventOverflow: { enabled: false }
- *   }
- * })
- * ```
- * @type {Object}
- * @static
- * @memberof Popper
- */
-var Defaults = {
-  /**
-   * Popper's placement
-   * @prop {Popper.placements} placement='bottom'
-   */
-  placement: 'bottom',
-
-  /**
-   * Whether events (resize, scroll) are initially enabled
-   * @prop {Boolean} eventsEnabled=true
-   */
-  eventsEnabled: true,
-
-  /**
-   * Set to true if you want to automatically remove the popper when
-   * you call the `destroy` method.
-   * @prop {Boolean} removeOnDestroy=false
-   */
-  removeOnDestroy: false,
-
-  /**
-   * Callback called when the popper is created.<br />
-   * By default, is set to no-op.<br />
-   * Access Popper.js instance with `data.instance`.
-   * @prop {onCreate}
-   */
-  onCreate: function onCreate() {},
-
-  /**
-   * Callback called when the popper is updated, this callback is not called
-   * on the initialization/creation of the popper, but only on subsequent
-   * updates.<br />
-   * By default, is set to no-op.<br />
-   * Access Popper.js instance with `data.instance`.
-   * @prop {onUpdate}
-   */
-  onUpdate: function onUpdate() {},
-
-  /**
-   * List of modifiers used to modify the offsets before they are applied to the popper.
-   * They provide most of the functionalities of Popper.js
-   * @prop {modifiers}
-   */
-  modifiers: modifiers
-};
-
-/**
- * @callback onCreate
- * @param {dataObject} data
- */
-
-/**
- * @callback onUpdate
- * @param {dataObject} data
- */
-
-// Utils
-// Methods
-var Popper = function () {
-  /**
-   * Create a new Popper.js instance
-   * @class Popper
-   * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper
-   * @param {HTMLElement} popper - The HTML element used as popper.
-   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)
-   * @return {Object} instance - The generated Popper.js instance
-   */
-  function Popper(reference, popper) {
-    var _this = this;
-
-    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
-    classCallCheck(this, Popper);
-
-    this.scheduleUpdate = function () {
-      return requestAnimationFrame(_this.update);
-    };
-
-    // make update() debounced, so that it only runs at most once-per-tick
-    this.update = debounce(this.update.bind(this));
-
-    // with {} we create a new object with the options inside it
-    this.options = _extends$1({}, Popper.Defaults, options);
-
-    // init state
-    this.state = {
-      isDestroyed: false,
-      isCreated: false,
-      scrollParents: []
-    };
-
-    // get reference and popper elements (allow jQuery wrappers)
-    this.reference = reference.jquery ? reference[0] : reference;
-    this.popper = popper.jquery ? popper[0] : popper;
-
-    // Deep merge modifiers options
-    this.options.modifiers = {};
-    Object.keys(_extends$1({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {
-      _this.options.modifiers[name] = _extends$1({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});
-    });
-
-    // Refactoring modifiers' list (Object => Array)
-    this.modifiers = Object.keys(this.options.modifiers).map(function (name) {
-      return _extends$1({
-        name: name
-      }, _this.options.modifiers[name]);
-    })
-    // sort the modifiers by order
-    .sort(function (a, b) {
-      return a.order - b.order;
-    });
-
-    // modifiers have the ability to execute arbitrary code when Popper.js get inited
-    // such code is executed in the same order of its modifier
-    // they could add new properties to their options configuration
-    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!
-    this.modifiers.forEach(function (modifierOptions) {
-      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {
-        modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);
-      }
-    });
-
-    // fire the first update to position the popper in the right place
-    this.update();
-
-    var eventsEnabled = this.options.eventsEnabled;
-    if (eventsEnabled) {
-      // setup event listeners, they will take care of update the position in specific situations
-      this.enableEventListeners();
-    }
-
-    this.state.eventsEnabled = eventsEnabled;
-  }
-
-  // We can't use class properties because they don't get listed in the
-  // class prototype and break stuff like Sinon stubs
-
-
-  createClass$1(Popper, [{
-    key: 'update',
-    value: function update$$1() {
-      return update.call(this);
-    }
-  }, {
-    key: 'destroy',
-    value: function destroy$$1() {
-      return destroy.call(this);
-    }
-  }, {
-    key: 'enableEventListeners',
-    value: function enableEventListeners$$1() {
-      return enableEventListeners.call(this);
-    }
-  }, {
-    key: 'disableEventListeners',
-    value: function disableEventListeners$$1() {
-      return disableEventListeners.call(this);
-    }
-
-    /**
-     * Schedule an update, it will run on the next UI update available
-     * @method scheduleUpdate
-     * @memberof Popper
-     */
-
-
-    /**
-     * Collection of utilities useful when writing custom modifiers.
-     * Starting from version 1.7, this method is available only if you
-     * include `popper-utils.js` before `popper.js`.
-     *
-     * **DEPRECATION**: This way to access PopperUtils is deprecated
-     * and will be removed in v2! Use the PopperUtils module directly instead.
-     * Due to the high instability of the methods contained in Utils, we can't
-     * guarantee them to follow semver. Use them at your own risk!
-     * @static
-     * @private
-     * @type {Object}
-     * @deprecated since version 1.8
-     * @member Utils
-     * @memberof Popper
-     */
-
-  }]);
-  return Popper;
-}();
-
-/**
- * The `referenceObject` is an object that provides an interface compatible with Popper.js
- * and lets you use it as replacement of a real DOM node.<br />
- * You can use this method to position a popper relatively to a set of coordinates
- * in case you don't have a DOM node to use as reference.
- *
- * ```
- * new Popper(referenceObject, popperNode);
- * ```
- *
- * NB: This feature isn't supported in Internet Explorer 10
- * @name referenceObject
- * @property {Function} data.getBoundingClientRect
- * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.
- * @property {number} data.clientWidth
- * An ES6 getter that will return the width of the virtual reference element.
- * @property {number} data.clientHeight
- * An ES6 getter that will return the height of the virtual reference element.
- */
-
-
-Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;
-Popper.placements = placements;
-Popper.Defaults = Defaults;
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): dropdown.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-var Dropdown = function () {
-  /**
-   * Check for Popper dependency
-   * Popper - https://popper.js.org
-   */
-  if (typeof Popper === 'undefined') {
-    throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)');
-  }
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-
-
-  var NAME = 'dropdown';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.dropdown';
-  var EVENT_KEY = "." + DATA_KEY;
-  var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
-
-  var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
-
-  var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
-
-  var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
-
-  var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
-
-  var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
-
-  var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
-  var Event = {
-    HIDE: "hide" + EVENT_KEY,
-    HIDDEN: "hidden" + EVENT_KEY,
-    SHOW: "show" + EVENT_KEY,
-    SHOWN: "shown" + EVENT_KEY,
-    CLICK: "click" + EVENT_KEY,
-    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
-    KEYDOWN_DATA_API: "keydown" + EVENT_KEY + DATA_API_KEY,
-    KEYUP_DATA_API: "keyup" + EVENT_KEY + DATA_API_KEY
-  };
-  var ClassName = {
-    DISABLED: 'disabled',
-    SHOW: 'show',
-    DROPUP: 'dropup',
-    MENURIGHT: 'dropdown-menu-right',
-    MENULEFT: 'dropdown-menu-left'
-  };
-  var Selector = {
-    DATA_TOGGLE: '[data-toggle="dropdown"]',
-    FORM_CHILD: '.dropdown form',
-    MENU: '.dropdown-menu',
-    NAVBAR_NAV: '.navbar-nav',
-    VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'
-  };
-  var AttachmentMap = {
-    TOP: 'top-start',
-    TOPEND: 'top-end',
-    BOTTOM: 'bottom-start',
-    BOTTOMEND: 'bottom-end'
-  };
-  var Default = {
-    offset: 0,
-    flip: true
-  };
-  var DefaultType = {
-    offset: '(number|string|function)',
-    flip: 'boolean'
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Dropdown =
-  /*#__PURE__*/
-  function () {
-    function Dropdown(element, config) {
-      this._element = element;
-      this._popper = null;
-      this._config = this._getConfig(config);
-      this._menu = this._getMenuElement();
-      this._inNavbar = this._detectNavbar();
-
-      this._addEventListeners();
-    } // getters
-
-
-    var _proto = Dropdown.prototype;
-
-    // public
-    _proto.toggle = function toggle() {
-      if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {
-        return;
-      }
-
-      var parent = Dropdown._getParentFromElement(this._element);
-
-      var isActive = $(this._menu).hasClass(ClassName.SHOW);
-
-      Dropdown._clearMenus();
-
-      if (isActive) {
-        return;
-      }
-
-      var relatedTarget = {
-        relatedTarget: this._element
-      };
-      var showEvent = $.Event(Event.SHOW, relatedTarget);
-      $(parent).trigger(showEvent);
-
-      if (showEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      var element = this._element; // for dropup with alignment we use the parent as popper container
-
-      if ($(parent).hasClass(ClassName.DROPUP)) {
-        if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {
-          element = parent;
-        }
-      }
-
-      this._popper = new Popper(element, this._menu, this._getPopperConfig()); // if this is a touch-enabled device we add extra
-      // empty mouseover listeners to the body's immediate children;
-      // only needed because of broken event delegation on iOS
-      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
-
-      if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) {
-        $('body').children().on('mouseover', null, $.noop);
-      }
-
-      this._element.focus();
-
-      this._element.setAttribute('aria-expanded', true);
-
-      $(this._menu).toggleClass(ClassName.SHOW);
-      $(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.SHOWN, relatedTarget));
-    };
-
-    _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
-      $(this._element).off(EVENT_KEY);
-      this._element = null;
-      this._menu = null;
-
-      if (this._popper !== null) {
-        this._popper.destroy();
-      }
-
-      this._popper = null;
-    };
-
-    _proto.update = function update() {
-      this._inNavbar = this._detectNavbar();
-
-      if (this._popper !== null) {
-        this._popper.scheduleUpdate();
-      }
-    }; // private
-
-
-    _proto._addEventListeners = function _addEventListeners() {
-      var _this = this;
-
-      $(this._element).on(Event.CLICK, function (event) {
-        event.preventDefault();
-        event.stopPropagation();
-
-        _this.toggle();
-      });
-    };
-
-    _proto._getConfig = function _getConfig(config) {
-      config = $.extend({}, this.constructor.Default, $(this._element).data(), config);
-      Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
-      return config;
-    };
-
-    _proto._getMenuElement = function _getMenuElement() {
-      if (!this._menu) {
-        var parent = Dropdown._getParentFromElement(this._element);
-
-        this._menu = $(parent).find(Selector.MENU)[0];
-      }
-
-      return this._menu;
-    };
-
-    _proto._getPlacement = function _getPlacement() {
-      var $parentDropdown = $(this._element).parent();
-      var placement = AttachmentMap.BOTTOM; // Handle dropup
-
-      if ($parentDropdown.hasClass(ClassName.DROPUP)) {
-        placement = AttachmentMap.TOP;
-
-        if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
-          placement = AttachmentMap.TOPEND;
-        }
-      } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
-        placement = AttachmentMap.BOTTOMEND;
-      }
-
-      return placement;
-    };
-
-    _proto._detectNavbar = function _detectNavbar() {
-      return $(this._element).closest('.navbar').length > 0;
-    };
-
-    _proto._getPopperConfig = function _getPopperConfig() {
-      var _this2 = this;
-
-      var offsetConf = {};
-
-      if (typeof this._config.offset === 'function') {
-        offsetConf.fn = function (data) {
-          data.offsets = $.extend({}, data.offsets, _this2._config.offset(data.offsets) || {});
-          return data;
-        };
-      } else {
-        offsetConf.offset = this._config.offset;
-      }
-
-      var popperConfig = {
-        placement: this._getPlacement(),
-        modifiers: {
-          offset: offsetConf,
-          flip: {
-            enabled: this._config.flip
-          }
-        } // Disable Popper.js for Dropdown in Navbar
-
-      };
-
-      if (this._inNavbar) {
-        popperConfig.modifiers.applyStyle = {
-          enabled: !this._inNavbar
-        };
-      }
-
-      return popperConfig;
-    }; // static
-
-
-    Dropdown._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var data = $(this).data(DATA_KEY);
-
-        var _config = typeof config === 'object' ? config : null;
-
-        if (!data) {
-          data = new Dropdown(this, _config);
-          $(this).data(DATA_KEY, data);
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error("No method named \"" + config + "\"");
-          }
-
-          data[config]();
-        }
-      });
-    };
-
-    Dropdown._clearMenus = function _clearMenus(event) {
-      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
-        return;
-      }
-
-      var toggles = $.makeArray($(Selector.DATA_TOGGLE));
-
-      for (var i = 0; i < toggles.length; i++) {
-        var parent = Dropdown._getParentFromElement(toggles[i]);
-
-        var context = $(toggles[i]).data(DATA_KEY);
-        var relatedTarget = {
-          relatedTarget: toggles[i]
-        };
-
-        if (!context) {
-          continue;
-        }
-
-        var dropdownMenu = context._menu;
-
-        if (!$(parent).hasClass(ClassName.SHOW)) {
-          continue;
-        }
-
-        if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $.contains(parent, event.target)) {
-          continue;
-        }
-
-        var hideEvent = $.Event(Event.HIDE, relatedTarget);
-        $(parent).trigger(hideEvent);
-
-        if (hideEvent.isDefaultPrevented()) {
-          continue;
-        } // if this is a touch-enabled device we remove the extra
-        // empty mouseover listeners we added for iOS support
-
-
-        if ('ontouchstart' in document.documentElement) {
-          $('body').children().off('mouseover', null, $.noop);
-        }
-
-        toggles[i].setAttribute('aria-expanded', 'false');
-        $(dropdownMenu).removeClass(ClassName.SHOW);
-        $(parent).removeClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget));
-      }
-    };
-
-    Dropdown._getParentFromElement = function _getParentFromElement(element) {
-      var parent;
-      var selector = Util.getSelectorFromElement(element);
-
-      if (selector) {
-        parent = $(selector)[0];
-      }
-
-      return parent || element.parentNode;
-    };
-
-    Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
-      if (!REGEXP_KEYDOWN.test(event.which) || /button/i.test(event.target.tagName) && event.which === SPACE_KEYCODE || /input|textarea/i.test(event.target.tagName)) {
-        return;
-      }
-
-      event.preventDefault();
-      event.stopPropagation();
-
-      if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
-        return;
-      }
-
-      var parent = Dropdown._getParentFromElement(this);
-
-      var isActive = $(parent).hasClass(ClassName.SHOW);
-
-      if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
-        if (event.which === ESCAPE_KEYCODE) {
-          var toggle = $(parent).find(Selector.DATA_TOGGLE)[0];
-          $(toggle).trigger('focus');
-        }
-
-        $(this).trigger('click');
-        return;
-      }
-
-      var items = $(parent).find(Selector.VISIBLE_ITEMS).get();
-
-      if (!items.length) {
-        return;
-      }
-
-      var index = items.indexOf(event.target);
-
-      if (event.which === ARROW_UP_KEYCODE && index > 0) {
-        // up
-        index--;
-      }
-
-      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
-        // down
-        index++;
-      }
-
-      if (index < 0) {
-        index = 0;
-      }
-
-      items[index].focus();
-    };
-
-    createClass(Dropdown, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }, {
-      key: "Default",
-      get: function get() {
-        return Default;
-      }
-    }, {
-      key: "DefaultType",
-      get: function get() {
-        return DefaultType;
-      }
-    }]);
-    return Dropdown;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-
-  $(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + " " + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
-    event.preventDefault();
-    event.stopPropagation();
-
-    Dropdown._jQueryInterface.call($(this), 'toggle');
-  }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
-    e.stopPropagation();
-  });
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME] = Dropdown._jQueryInterface;
-  $.fn[NAME].Constructor = Dropdown;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Dropdown._jQueryInterface;
-  };
-
-  return Dropdown;
-}($, Popper);
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): modal.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-var Modal = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-  var NAME = 'modal';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.modal';
-  var EVENT_KEY = "." + DATA_KEY;
-  var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var TRANSITION_DURATION = 300;
-  var BACKDROP_TRANSITION_DURATION = 150;
-  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
-
-  var Default = {
-    backdrop: true,
-    keyboard: true,
-    focus: true,
-    show: true
-  };
-  var DefaultType = {
-    backdrop: '(boolean|string)',
-    keyboard: 'boolean',
-    focus: 'boolean',
-    show: 'boolean'
-  };
-  var Event = {
-    HIDE: "hide" + EVENT_KEY,
-    HIDDEN: "hidden" + EVENT_KEY,
-    SHOW: "show" + EVENT_KEY,
-    SHOWN: "shown" + EVENT_KEY,
-    FOCUSIN: "focusin" + EVENT_KEY,
-    RESIZE: "resize" + EVENT_KEY,
-    CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
-    KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY,
-    MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY,
-    MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY,
-    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
-  };
-  var ClassName = {
-    SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
-    BACKDROP: 'modal-backdrop',
-    OPEN: 'modal-open',
-    FADE: 'fade',
-    SHOW: 'show'
-  };
-  var Selector = {
-    DIALOG: '.modal-dialog',
-    DATA_TOGGLE: '[data-toggle="modal"]',
-    DATA_DISMISS: '[data-dismiss="modal"]',
-    FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
-    STICKY_CONTENT: '.sticky-top',
-    NAVBAR_TOGGLER: '.navbar-toggler'
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Modal =
-  /*#__PURE__*/
-  function () {
-    function Modal(element, config) {
-      this._config = this._getConfig(config);
-      this._element = element;
-      this._dialog = $(element).find(Selector.DIALOG)[0];
-      this._backdrop = null;
-      this._isShown = false;
-      this._isBodyOverflowing = false;
-      this._ignoreBackdropClick = false;
-      this._originalBodyPadding = 0;
-      this._scrollbarWidth = 0;
-    } // getters
-
-
-    var _proto = Modal.prototype;
-
-    // public
-    _proto.toggle = function toggle(relatedTarget) {
-      return this._isShown ? this.hide() : this.show(relatedTarget);
-    };
-
-    _proto.show = function show(relatedTarget) {
-      var _this = this;
-
-      if (this._isTransitioning || this._isShown) {
-        return;
-      }
-
-      if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {
-        this._isTransitioning = true;
-      }
-
-      var showEvent = $.Event(Event.SHOW, {
-        relatedTarget: relatedTarget
-      });
-      $(this._element).trigger(showEvent);
-
-      if (this._isShown || showEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      this._isShown = true;
-
-      this._checkScrollbar();
-
-      this._setScrollbar();
-
-      this._adjustDialog();
-
-      $(document.body).addClass(ClassName.OPEN);
-
-      this._setEscapeEvent();
-
-      this._setResizeEvent();
-
-      $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
-        return _this.hide(event);
-      });
-      $(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
-        $(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
-          if ($(event.target).is(_this._element)) {
-            _this._ignoreBackdropClick = true;
-          }
-        });
-      });
-
-      this._showBackdrop(function () {
-        return _this._showElement(relatedTarget);
-      });
-    };
-
-    _proto.hide = function hide(event) {
-      var _this2 = this;
-
-      if (event) {
-        event.preventDefault();
-      }
-
-      if (this._isTransitioning || !this._isShown) {
-        return;
-      }
-
-      var hideEvent = $.Event(Event.HIDE);
-      $(this._element).trigger(hideEvent);
-
-      if (!this._isShown || hideEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      this._isShown = false;
-      var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);
-
-      if (transition) {
-        this._isTransitioning = true;
-      }
-
-      this._setEscapeEvent();
-
-      this._setResizeEvent();
-
-      $(document).off(Event.FOCUSIN);
-      $(this._element).removeClass(ClassName.SHOW);
-      $(this._element).off(Event.CLICK_DISMISS);
-      $(this._dialog).off(Event.MOUSEDOWN_DISMISS);
-
-      if (transition) {
-        $(this._element).one(Util.TRANSITION_END, function (event) {
-          return _this2._hideModal(event);
-        }).emulateTransitionEnd(TRANSITION_DURATION);
-      } else {
-        this._hideModal();
-      }
-    };
-
-    _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
-      $(window, document, this._element, this._backdrop).off(EVENT_KEY);
-      this._config = null;
-      this._element = null;
-      this._dialog = null;
-      this._backdrop = null;
-      this._isShown = null;
-      this._isBodyOverflowing = null;
-      this._ignoreBackdropClick = null;
-      this._scrollbarWidth = null;
-    };
-
-    _proto.handleUpdate = function handleUpdate() {
-      this._adjustDialog();
-    }; // private
-
-
-    _proto._getConfig = function _getConfig(config) {
-      config = $.extend({}, Default, config);
-      Util.typeCheckConfig(NAME, config, DefaultType);
-      return config;
-    };
-
-    _proto._showElement = function _showElement(relatedTarget) {
-      var _this3 = this;
-
-      var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);
-
-      if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
-        // don't move modals dom position
-        document.body.appendChild(this._element);
-      }
-
-      this._element.style.display = 'block';
-
-      this._element.removeAttribute('aria-hidden');
-
-      this._element.scrollTop = 0;
-
-      if (transition) {
-        Util.reflow(this._element);
-      }
-
-      $(this._element).addClass(ClassName.SHOW);
-
-      if (this._config.focus) {
-        this._enforceFocus();
-      }
-
-      var shownEvent = $.Event(Event.SHOWN, {
-        relatedTarget: relatedTarget
-      });
-
-      var transitionComplete = function transitionComplete() {
-        if (_this3._config.focus) {
-          _this3._element.focus();
-        }
-
-        _this3._isTransitioning = false;
-        $(_this3._element).trigger(shownEvent);
-      };
-
-      if (transition) {
-        $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION);
-      } else {
-        transitionComplete();
-      }
-    };
-
-    _proto._enforceFocus = function _enforceFocus() {
-      var _this4 = this;
-
-      $(document).off(Event.FOCUSIN) // guard against infinite focus loop
-      .on(Event.FOCUSIN, function (event) {
-        if (document !== event.target && _this4._element !== event.target && !$(_this4._element).has(event.target).length) {
-          _this4._element.focus();
-        }
-      });
-    };
-
-    _proto._setEscapeEvent = function _setEscapeEvent() {
-      var _this5 = this;
-
-      if (this._isShown && this._config.keyboard) {
-        $(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
-          if (event.which === ESCAPE_KEYCODE) {
-            event.preventDefault();
-
-            _this5.hide();
-          }
-        });
-      } else if (!this._isShown) {
-        $(this._element).off(Event.KEYDOWN_DISMISS);
-      }
-    };
-
-    _proto._setResizeEvent = function _setResizeEvent() {
-      var _this6 = this;
-
-      if (this._isShown) {
-        $(window).on(Event.RESIZE, function (event) {
-          return _this6.handleUpdate(event);
-        });
-      } else {
-        $(window).off(Event.RESIZE);
-      }
-    };
-
-    _proto._hideModal = function _hideModal() {
-      var _this7 = this;
-
-      this._element.style.display = 'none';
-
-      this._element.setAttribute('aria-hidden', true);
-
-      this._isTransitioning = false;
-
-      this._showBackdrop(function () {
-        $(document.body).removeClass(ClassName.OPEN);
-
-        _this7._resetAdjustments();
-
-        _this7._resetScrollbar();
-
-        $(_this7._element).trigger(Event.HIDDEN);
-      });
-    };
-
-    _proto._removeBackdrop = function _removeBackdrop() {
-      if (this._backdrop) {
-        $(this._backdrop).remove();
-        this._backdrop = null;
-      }
-    };
-
-    _proto._showBackdrop = function _showBackdrop(callback) {
-      var _this8 = this;
-
-      var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
-
-      if (this._isShown && this._config.backdrop) {
-        var doAnimate = Util.supportsTransitionEnd() && animate;
-        this._backdrop = document.createElement('div');
-        this._backdrop.className = ClassName.BACKDROP;
-
-        if (animate) {
-          $(this._backdrop).addClass(animate);
-        }
-
-        $(this._backdrop).appendTo(document.body);
-        $(this._element).on(Event.CLICK_DISMISS, function (event) {
-          if (_this8._ignoreBackdropClick) {
-            _this8._ignoreBackdropClick = false;
-            return;
-          }
-
-          if (event.target !== event.currentTarget) {
-            return;
-          }
-
-          if (_this8._config.backdrop === 'static') {
-            _this8._element.focus();
-          } else {
-            _this8.hide();
-          }
-        });
-
-        if (doAnimate) {
-          Util.reflow(this._backdrop);
-        }
-
-        $(this._backdrop).addClass(ClassName.SHOW);
-
-        if (!callback) {
-          return;
-        }
-
-        if (!doAnimate) {
-          callback();
-          return;
-        }
-
-        $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
-      } else if (!this._isShown && this._backdrop) {
-        $(this._backdrop).removeClass(ClassName.SHOW);
-
-        var callbackRemove = function callbackRemove() {
-          _this8._removeBackdrop();
-
-          if (callback) {
-            callback();
-          }
-        };
-
-        if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {
-          $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
-        } else {
-          callbackRemove();
-        }
-      } else if (callback) {
-        callback();
-      }
-    }; // ----------------------------------------------------------------------
-    // the following methods are used to handle overflowing modals
-    // todo (fat): these should probably be refactored out of modal.js
-    // ----------------------------------------------------------------------
-
-
-    _proto._adjustDialog = function _adjustDialog() {
-      var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
-
-      if (!this._isBodyOverflowing && isModalOverflowing) {
-        this._element.style.paddingLeft = this._scrollbarWidth + "px";
-      }
-
-      if (this._isBodyOverflowing && !isModalOverflowing) {
-        this._element.style.paddingRight = this._scrollbarWidth + "px";
-      }
-    };
-
-    _proto._resetAdjustments = function _resetAdjustments() {
-      this._element.style.paddingLeft = '';
-      this._element.style.paddingRight = '';
-    };
-
-    _proto._checkScrollbar = function _checkScrollbar() {
-      var rect = document.body.getBoundingClientRect();
-      this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
-      this._scrollbarWidth = this._getScrollbarWidth();
-    };
-
-    _proto._setScrollbar = function _setScrollbar() {
-      var _this9 = this;
-
-      if (this._isBodyOverflowing) {
-        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
-        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
-        // Adjust fixed content padding
-        $(Selector.FIXED_CONTENT).each(function (index, element) {
-          var actualPadding = $(element)[0].style.paddingRight;
-          var calculatedPadding = $(element).css('padding-right');
-          $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
-        }); // Adjust sticky content margin
-
-        $(Selector.STICKY_CONTENT).each(function (index, element) {
-          var actualMargin = $(element)[0].style.marginRight;
-          var calculatedMargin = $(element).css('margin-right');
-          $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
-        }); // Adjust navbar-toggler margin
-
-        $(Selector.NAVBAR_TOGGLER).each(function (index, element) {
-          var actualMargin = $(element)[0].style.marginRight;
-          var calculatedMargin = $(element).css('margin-right');
-          $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + "px");
-        }); // Adjust body padding
-
-        var actualPadding = document.body.style.paddingRight;
-        var calculatedPadding = $('body').css('padding-right');
-        $('body').data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
-      }
-    };
-
-    _proto._resetScrollbar = function _resetScrollbar() {
-      // Restore fixed content padding
-      $(Selector.FIXED_CONTENT).each(function (index, element) {
-        var padding = $(element).data('padding-right');
-
-        if (typeof padding !== 'undefined') {
-          $(element).css('padding-right', padding).removeData('padding-right');
-        }
-      }); // Restore sticky content and navbar-toggler margin
-
-      $(Selector.STICKY_CONTENT + ", " + Selector.NAVBAR_TOGGLER).each(function (index, element) {
-        var margin = $(element).data('margin-right');
-
-        if (typeof margin !== 'undefined') {
-          $(element).css('margin-right', margin).removeData('margin-right');
-        }
-      }); // Restore body padding
-
-      var padding = $('body').data('padding-right');
-
-      if (typeof padding !== 'undefined') {
-        $('body').css('padding-right', padding).removeData('padding-right');
-      }
-    };
-
-    _proto._getScrollbarWidth = function _getScrollbarWidth() {
-      // thx d.walsh
-      var scrollDiv = document.createElement('div');
-      scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
-      document.body.appendChild(scrollDiv);
-      var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
-      document.body.removeChild(scrollDiv);
-      return scrollbarWidth;
-    }; // static
-
-
-    Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
-      return this.each(function () {
-        var data = $(this).data(DATA_KEY);
-
-        var _config = $.extend({}, Modal.Default, $(this).data(), typeof config === 'object' && config);
-
-        if (!data) {
-          data = new Modal(this, _config);
-          $(this).data(DATA_KEY, data);
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error("No method named \"" + config + "\"");
-          }
-
-          data[config](relatedTarget);
-        } else if (_config.show) {
-          data.show(relatedTarget);
-        }
-      });
-    };
-
-    createClass(Modal, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }, {
-      key: "Default",
-      get: function get() {
-        return Default;
-      }
-    }]);
-    return Modal;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-
-  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
-    var _this10 = this;
-
-    var target;
-    var selector = Util.getSelectorFromElement(this);
-
-    if (selector) {
-      target = $(selector)[0];
-    }
-
-    var config = $(target).data(DATA_KEY) ? 'toggle' : $.extend({}, $(target).data(), $(this).data());
-
-    if (this.tagName === 'A' || this.tagName === 'AREA') {
-      event.preventDefault();
-    }
-
-    var $target = $(target).one(Event.SHOW, function (showEvent) {
-      if (showEvent.isDefaultPrevented()) {
-        // only register focus restorer if modal will actually get shown
-        return;
-      }
-
-      $target.one(Event.HIDDEN, function () {
-        if ($(_this10).is(':visible')) {
-          _this10.focus();
-        }
-      });
-    });
-
-    Modal._jQueryInterface.call($(target), config, this);
-  });
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME] = Modal._jQueryInterface;
-  $.fn[NAME].Constructor = Modal;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Modal._jQueryInterface;
-  };
-
-  return Modal;
-}($);
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): tooltip.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-var Tooltip = function () {
-  /**
-   * Check for Popper dependency
-   * Popper - https://popper.js.org
-   */
-  if (typeof Popper === 'undefined') {
-    throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)');
-  }
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-
-
-  var NAME = 'tooltip';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.tooltip';
-  var EVENT_KEY = "." + DATA_KEY;
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var TRANSITION_DURATION = 150;
-  var CLASS_PREFIX = 'bs-tooltip';
-  var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
-  var DefaultType = {
-    animation: 'boolean',
-    template: 'string',
-    title: '(string|element|function)',
-    trigger: 'string',
-    delay: '(number|object)',
-    html: 'boolean',
-    selector: '(string|boolean)',
-    placement: '(string|function)',
-    offset: '(number|string)',
-    container: '(string|element|boolean)',
-    fallbackPlacement: '(string|array)'
-  };
-  var AttachmentMap = {
-    AUTO: 'auto',
-    TOP: 'top',
-    RIGHT: 'right',
-    BOTTOM: 'bottom',
-    LEFT: 'left'
-  };
-  var Default = {
-    animation: true,
-    template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',
-    trigger: 'hover focus',
-    title: '',
-    delay: 0,
-    html: false,
-    selector: false,
-    placement: 'top',
-    offset: 0,
-    container: false,
-    fallbackPlacement: 'flip'
-  };
-  var HoverState = {
-    SHOW: 'show',
-    OUT: 'out'
-  };
-  var Event = {
-    HIDE: "hide" + EVENT_KEY,
-    HIDDEN: "hidden" + EVENT_KEY,
-    SHOW: "show" + EVENT_KEY,
-    SHOWN: "shown" + EVENT_KEY,
-    INSERTED: "inserted" + EVENT_KEY,
-    CLICK: "click" + EVENT_KEY,
-    FOCUSIN: "focusin" + EVENT_KEY,
-    FOCUSOUT: "focusout" + EVENT_KEY,
-    MOUSEENTER: "mouseenter" + EVENT_KEY,
-    MOUSELEAVE: "mouseleave" + EVENT_KEY
-  };
-  var ClassName = {
-    FADE: 'fade',
-    SHOW: 'show'
-  };
-  var Selector = {
-    TOOLTIP: '.tooltip',
-    TOOLTIP_INNER: '.tooltip-inner',
-    ARROW: '.arrow'
-  };
-  var Trigger = {
-    HOVER: 'hover',
-    FOCUS: 'focus',
-    CLICK: 'click',
-    MANUAL: 'manual'
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Tooltip =
-  /*#__PURE__*/
-  function () {
-    function Tooltip(element, config) {
-      // private
-      this._isEnabled = true;
-      this._timeout = 0;
-      this._hoverState = '';
-      this._activeTrigger = {};
-      this._popper = null; // protected
-
-      this.element = element;
-      this.config = this._getConfig(config);
-      this.tip = null;
-
-      this._setListeners();
-    } // getters
-
-
-    var _proto = Tooltip.prototype;
-
-    // public
-    _proto.enable = function enable() {
-      this._isEnabled = true;
-    };
-
-    _proto.disable = function disable() {
-      this._isEnabled = false;
-    };
-
-    _proto.toggleEnabled = function toggleEnabled() {
-      this._isEnabled = !this._isEnabled;
-    };
-
-    _proto.toggle = function toggle(event) {
-      if (!this._isEnabled) {
-        return;
-      }
-
-      if (event) {
-        var dataKey = this.constructor.DATA_KEY;
-        var context = $(event.currentTarget).data(dataKey);
-
-        if (!context) {
-          context = new this.constructor(event.currentTarget, this._getDelegateConfig());
-          $(event.currentTarget).data(dataKey, context);
-        }
-
-        context._activeTrigger.click = !context._activeTrigger.click;
-
-        if (context._isWithActiveTrigger()) {
-          context._enter(null, context);
-        } else {
-          context._leave(null, context);
-        }
-      } else {
-        if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {
-          this._leave(null, this);
-
-          return;
-        }
-
-        this._enter(null, this);
-      }
-    };
-
-    _proto.dispose = function dispose() {
-      clearTimeout(this._timeout);
-      $.removeData(this.element, this.constructor.DATA_KEY);
-      $(this.element).off(this.constructor.EVENT_KEY);
-      $(this.element).closest('.modal').off('hide.bs.modal');
-
-      if (this.tip) {
-        $(this.tip).remove();
-      }
-
-      this._isEnabled = null;
-      this._timeout = null;
-      this._hoverState = null;
-      this._activeTrigger = null;
-
-      if (this._popper !== null) {
-        this._popper.destroy();
-      }
-
-      this._popper = null;
-      this.element = null;
-      this.config = null;
-      this.tip = null;
-    };
-
-    _proto.show = function show() {
-      var _this = this;
-
-      if ($(this.element).css('display') === 'none') {
-        throw new Error('Please use show on visible elements');
-      }
-
-      var showEvent = $.Event(this.constructor.Event.SHOW);
-
-      if (this.isWithContent() && this._isEnabled) {
-        $(this.element).trigger(showEvent);
-        var isInTheDom = $.contains(this.element.ownerDocument.documentElement, this.element);
-
-        if (showEvent.isDefaultPrevented() || !isInTheDom) {
-          return;
-        }
-
-        var tip = this.getTipElement();
-        var tipId = Util.getUID(this.constructor.NAME);
-        tip.setAttribute('id', tipId);
-        this.element.setAttribute('aria-describedby', tipId);
-        this.setContent();
-
-        if (this.config.animation) {
-          $(tip).addClass(ClassName.FADE);
-        }
-
-        var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
-
-        var attachment = this._getAttachment(placement);
-
-        this.addAttachmentClass(attachment);
-        var container = this.config.container === false ? document.body : $(this.config.container);
-        $(tip).data(this.constructor.DATA_KEY, this);
-
-        if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {
-          $(tip).appendTo(container);
-        }
-
-        $(this.element).trigger(this.constructor.Event.INSERTED);
-        this._popper = new Popper(this.element, tip, {
-          placement: attachment,
-          modifiers: {
-            offset: {
-              offset: this.config.offset
-            },
-            flip: {
-              behavior: this.config.fallbackPlacement
-            },
-            arrow: {
-              element: Selector.ARROW
-            }
-          },
-          onCreate: function onCreate(data) {
-            if (data.originalPlacement !== data.placement) {
-              _this._handlePopperPlacementChange(data);
-            }
-          },
-          onUpdate: function onUpdate(data) {
-            _this._handlePopperPlacementChange(data);
-          }
-        });
-        $(tip).addClass(ClassName.SHOW); // if this is a touch-enabled device we add extra
-        // empty mouseover listeners to the body's immediate children;
-        // only needed because of broken event delegation on iOS
-        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
-
-        if ('ontouchstart' in document.documentElement) {
-          $('body').children().on('mouseover', null, $.noop);
-        }
-
-        var complete = function complete() {
-          if (_this.config.animation) {
-            _this._fixTransition();
-          }
-
-          var prevHoverState = _this._hoverState;
-          _this._hoverState = null;
-          $(_this.element).trigger(_this.constructor.Event.SHOWN);
-
-          if (prevHoverState === HoverState.OUT) {
-            _this._leave(null, _this);
-          }
-        };
-
-        if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {
-          $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION);
-        } else {
-          complete();
-        }
-      }
-    };
-
-    _proto.hide = function hide(callback) {
-      var _this2 = this;
-
-      var tip = this.getTipElement();
-      var hideEvent = $.Event(this.constructor.Event.HIDE);
-
-      var complete = function complete() {
-        if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
-          tip.parentNode.removeChild(tip);
-        }
-
-        _this2._cleanTipClass();
-
-        _this2.element.removeAttribute('aria-describedby');
-
-        $(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
-
-        if (_this2._popper !== null) {
-          _this2._popper.destroy();
-        }
-
-        if (callback) {
-          callback();
-        }
-      };
-
-      $(this.element).trigger(hideEvent);
-
-      if (hideEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      $(tip).removeClass(ClassName.SHOW); // if this is a touch-enabled device we remove the extra
-      // empty mouseover listeners we added for iOS support
-
-      if ('ontouchstart' in document.documentElement) {
-        $('body').children().off('mouseover', null, $.noop);
-      }
-
-      this._activeTrigger[Trigger.CLICK] = false;
-      this._activeTrigger[Trigger.FOCUS] = false;
-      this._activeTrigger[Trigger.HOVER] = false;
-
-      if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {
-        $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
-      } else {
-        complete();
-      }
-
-      this._hoverState = '';
-    };
-
-    _proto.update = function update() {
-      if (this._popper !== null) {
-        this._popper.scheduleUpdate();
-      }
-    }; // protected
-
-
-    _proto.isWithContent = function isWithContent() {
-      return Boolean(this.getTitle());
-    };
-
-    _proto.addAttachmentClass = function addAttachmentClass(attachment) {
-      $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
-    };
-
-    _proto.getTipElement = function getTipElement() {
-      this.tip = this.tip || $(this.config.template)[0];
-      return this.tip;
-    };
-
-    _proto.setContent = function setContent() {
-      var $tip = $(this.getTipElement());
-      this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
-      $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
-    };
-
-    _proto.setElementContent = function setElementContent($element, content) {
-      var html = this.config.html;
-
-      if (typeof content === 'object' && (content.nodeType || content.jquery)) {
-        // content is a DOM node or a jQuery
-        if (html) {
-          if (!$(content).parent().is($element)) {
-            $element.empty().append(content);
-          }
-        } else {
-          $element.text($(content).text());
-        }
-      } else {
-        $element[html ? 'html' : 'text'](content);
-      }
-    };
-
-    _proto.getTitle = function getTitle() {
-      var title = this.element.getAttribute('data-original-title');
-
-      if (!title) {
-        title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
-      }
-
-      return title;
-    }; // private
-
-
-    _proto._getAttachment = function _getAttachment(placement) {
-      return AttachmentMap[placement.toUpperCase()];
-    };
-
-    _proto._setListeners = function _setListeners() {
-      var _this3 = this;
-
-      var triggers = this.config.trigger.split(' ');
-      triggers.forEach(function (trigger) {
-        if (trigger === 'click') {
-          $(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {
-            return _this3.toggle(event);
-          });
-        } else if (trigger !== Trigger.MANUAL) {
-          var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;
-          var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;
-          $(_this3.element).on(eventIn, _this3.config.selector, function (event) {
-            return _this3._enter(event);
-          }).on(eventOut, _this3.config.selector, function (event) {
-            return _this3._leave(event);
-          });
-        }
-
-        $(_this3.element).closest('.modal').on('hide.bs.modal', function () {
-          return _this3.hide();
-        });
-      });
-
-      if (this.config.selector) {
-        this.config = $.extend({}, this.config, {
-          trigger: 'manual',
-          selector: ''
-        });
-      } else {
-        this._fixTitle();
-      }
-    };
-
-    _proto._fixTitle = function _fixTitle() {
-      var titleType = typeof this.element.getAttribute('data-original-title');
-
-      if (this.element.getAttribute('title') || titleType !== 'string') {
-        this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
-        this.element.setAttribute('title', '');
-      }
-    };
-
-    _proto._enter = function _enter(event, context) {
-      var dataKey = this.constructor.DATA_KEY;
-      context = context || $(event.currentTarget).data(dataKey);
-
-      if (!context) {
-        context = new this.constructor(event.currentTarget, this._getDelegateConfig());
-        $(event.currentTarget).data(dataKey, context);
-      }
-
-      if (event) {
-        context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
-      }
-
-      if ($(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {
-        context._hoverState = HoverState.SHOW;
-        return;
-      }
-
-      clearTimeout(context._timeout);
-      context._hoverState = HoverState.SHOW;
-
-      if (!context.config.delay || !context.config.delay.show) {
-        context.show();
-        return;
-      }
-
-      context._timeout = setTimeout(function () {
-        if (context._hoverState === HoverState.SHOW) {
-          context.show();
-        }
-      }, context.config.delay.show);
-    };
-
-    _proto._leave = function _leave(event, context) {
-      var dataKey = this.constructor.DATA_KEY;
-      context = context || $(event.currentTarget).data(dataKey);
-
-      if (!context) {
-        context = new this.constructor(event.currentTarget, this._getDelegateConfig());
-        $(event.currentTarget).data(dataKey, context);
-      }
-
-      if (event) {
-        context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
-      }
-
-      if (context._isWithActiveTrigger()) {
-        return;
-      }
-
-      clearTimeout(context._timeout);
-      context._hoverState = HoverState.OUT;
-
-      if (!context.config.delay || !context.config.delay.hide) {
-        context.hide();
-        return;
-      }
-
-      context._timeout = setTimeout(function () {
-        if (context._hoverState === HoverState.OUT) {
-          context.hide();
-        }
-      }, context.config.delay.hide);
-    };
-
-    _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
-      for (var trigger in this._activeTrigger) {
-        if (this._activeTrigger[trigger]) {
-          return true;
-        }
-      }
-
-      return false;
-    };
-
-    _proto._getConfig = function _getConfig(config) {
-      config = $.extend({}, this.constructor.Default, $(this.element).data(), config);
-
-      if (typeof config.delay === 'number') {
-        config.delay = {
-          show: config.delay,
-          hide: config.delay
-        };
-      }
-
-      if (typeof config.title === 'number') {
-        config.title = config.title.toString();
-      }
-
-      if (typeof config.content === 'number') {
-        config.content = config.content.toString();
-      }
-
-      Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
-      return config;
-    };
-
-    _proto._getDelegateConfig = function _getDelegateConfig() {
-      var config = {};
-
-      if (this.config) {
-        for (var key in this.config) {
-          if (this.constructor.Default[key] !== this.config[key]) {
-            config[key] = this.config[key];
-          }
-        }
-      }
-
-      return config;
-    };
-
-    _proto._cleanTipClass = function _cleanTipClass() {
-      var $tip = $(this.getTipElement());
-      var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
-
-      if (tabClass !== null && tabClass.length > 0) {
-        $tip.removeClass(tabClass.join(''));
-      }
-    };
-
-    _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {
-      this._cleanTipClass();
-
-      this.addAttachmentClass(this._getAttachment(data.placement));
-    };
-
-    _proto._fixTransition = function _fixTransition() {
-      var tip = this.getTipElement();
-      var initConfigAnimation = this.config.animation;
-
-      if (tip.getAttribute('x-placement') !== null) {
-        return;
-      }
-
-      $(tip).removeClass(ClassName.FADE);
-      this.config.animation = false;
-      this.hide();
-      this.show();
-      this.config.animation = initConfigAnimation;
-    }; // static
-
-
-    Tooltip._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var data = $(this).data(DATA_KEY);
-
-        var _config = typeof config === 'object' && config;
-
-        if (!data && /dispose|hide/.test(config)) {
-          return;
-        }
-
-        if (!data) {
-          data = new Tooltip(this, _config);
-          $(this).data(DATA_KEY, data);
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error("No method named \"" + config + "\"");
-          }
-
-          data[config]();
-        }
-      });
-    };
-
-    createClass(Tooltip, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }, {
-      key: "Default",
-      get: function get() {
-        return Default;
-      }
-    }, {
-      key: "NAME",
-      get: function get() {
-        return NAME;
-      }
-    }, {
-      key: "DATA_KEY",
-      get: function get() {
-        return DATA_KEY;
-      }
-    }, {
-      key: "Event",
-      get: function get() {
-        return Event;
-      }
-    }, {
-      key: "EVENT_KEY",
-      get: function get() {
-        return EVENT_KEY;
-      }
-    }, {
-      key: "DefaultType",
-      get: function get() {
-        return DefaultType;
-      }
-    }]);
-    return Tooltip;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-
-  $.fn[NAME] = Tooltip._jQueryInterface;
-  $.fn[NAME].Constructor = Tooltip;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Tooltip._jQueryInterface;
-  };
-
-  return Tooltip;
-}($, Popper);
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): popover.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-var Popover = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-  var NAME = 'popover';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.popover';
-  var EVENT_KEY = "." + DATA_KEY;
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var CLASS_PREFIX = 'bs-popover';
-  var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
-  var Default = $.extend({}, Tooltip.Default, {
-    placement: 'right',
-    trigger: 'click',
-    content: '',
-    template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
-  });
-  var DefaultType = $.extend({}, Tooltip.DefaultType, {
-    content: '(string|element|function)'
-  });
-  var ClassName = {
-    FADE: 'fade',
-    SHOW: 'show'
-  };
-  var Selector = {
-    TITLE: '.popover-header',
-    CONTENT: '.popover-body'
-  };
-  var Event = {
-    HIDE: "hide" + EVENT_KEY,
-    HIDDEN: "hidden" + EVENT_KEY,
-    SHOW: "show" + EVENT_KEY,
-    SHOWN: "shown" + EVENT_KEY,
-    INSERTED: "inserted" + EVENT_KEY,
-    CLICK: "click" + EVENT_KEY,
-    FOCUSIN: "focusin" + EVENT_KEY,
-    FOCUSOUT: "focusout" + EVENT_KEY,
-    MOUSEENTER: "mouseenter" + EVENT_KEY,
-    MOUSELEAVE: "mouseleave" + EVENT_KEY
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Popover =
-  /*#__PURE__*/
-  function (_Tooltip) {
-    inheritsLoose(Popover, _Tooltip);
-
-    function Popover() {
-      return _Tooltip.apply(this, arguments) || this;
-    }
-
-    var _proto = Popover.prototype;
-
-    // overrides
-    _proto.isWithContent = function isWithContent() {
-      return this.getTitle() || this._getContent();
-    };
-
-    _proto.addAttachmentClass = function addAttachmentClass(attachment) {
-      $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
-    };
-
-    _proto.getTipElement = function getTipElement() {
-      this.tip = this.tip || $(this.config.template)[0];
-      return this.tip;
-    };
-
-    _proto.setContent = function setContent() {
-      var $tip = $(this.getTipElement()); // we use append for html objects to maintain js events
-
-      this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
-      this.setElementContent($tip.find(Selector.CONTENT), this._getContent());
-      $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
-    }; // private
-
-
-    _proto._getContent = function _getContent() {
-      return this.element.getAttribute('data-content') || (typeof this.config.content === 'function' ? this.config.content.call(this.element) : this.config.content);
-    };
-
-    _proto._cleanTipClass = function _cleanTipClass() {
-      var $tip = $(this.getTipElement());
-      var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
-
-      if (tabClass !== null && tabClass.length > 0) {
-        $tip.removeClass(tabClass.join(''));
-      }
-    }; // static
-
-
-    Popover._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var data = $(this).data(DATA_KEY);
-
-        var _config = typeof config === 'object' ? config : null;
-
-        if (!data && /destroy|hide/.test(config)) {
-          return;
-        }
-
-        if (!data) {
-          data = new Popover(this, _config);
-          $(this).data(DATA_KEY, data);
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error("No method named \"" + config + "\"");
-          }
-
-          data[config]();
-        }
-      });
-    };
-
-    createClass(Popover, null, [{
-      key: "VERSION",
-      // getters
-      get: function get() {
-        return VERSION;
-      }
-    }, {
-      key: "Default",
-      get: function get() {
-        return Default;
-      }
-    }, {
-      key: "NAME",
-      get: function get() {
-        return NAME;
-      }
-    }, {
-      key: "DATA_KEY",
-      get: function get() {
-        return DATA_KEY;
-      }
-    }, {
-      key: "Event",
-      get: function get() {
-        return Event;
-      }
-    }, {
-      key: "EVENT_KEY",
-      get: function get() {
-        return EVENT_KEY;
-      }
-    }, {
-      key: "DefaultType",
-      get: function get() {
-        return DefaultType;
-      }
-    }]);
-    return Popover;
-  }(Tooltip);
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-
-  $.fn[NAME] = Popover._jQueryInterface;
-  $.fn[NAME].Constructor = Popover;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Popover._jQueryInterface;
-  };
-
-  return Popover;
-}($);
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): scrollspy.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-var ScrollSpy = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-  var NAME = 'scrollspy';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.scrollspy';
-  var EVENT_KEY = "." + DATA_KEY;
-  var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var Default = {
-    offset: 10,
-    method: 'auto',
-    target: ''
-  };
-  var DefaultType = {
-    offset: 'number',
-    method: 'string',
-    target: '(string|element)'
-  };
-  var Event = {
-    ACTIVATE: "activate" + EVENT_KEY,
-    SCROLL: "scroll" + EVENT_KEY,
-    LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY
-  };
-  var ClassName = {
-    DROPDOWN_ITEM: 'dropdown-item',
-    DROPDOWN_MENU: 'dropdown-menu',
-    ACTIVE: 'active'
-  };
-  var Selector = {
-    DATA_SPY: '[data-spy="scroll"]',
-    ACTIVE: '.active',
-    NAV_LIST_GROUP: '.nav, .list-group',
-    NAV_LINKS: '.nav-link',
-    NAV_ITEMS: '.nav-item',
-    LIST_ITEMS: '.list-group-item',
-    DROPDOWN: '.dropdown',
-    DROPDOWN_ITEMS: '.dropdown-item',
-    DROPDOWN_TOGGLE: '.dropdown-toggle'
-  };
-  var OffsetMethod = {
-    OFFSET: 'offset',
-    POSITION: 'position'
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var ScrollSpy =
-  /*#__PURE__*/
-  function () {
-    function ScrollSpy(element, config) {
-      var _this = this;
-
-      this._element = element;
-      this._scrollElement = element.tagName === 'BODY' ? window : element;
-      this._config = this._getConfig(config);
-      this._selector = this._config.target + " " + Selector.NAV_LINKS + "," + (this._config.target + " " + Selector.LIST_ITEMS + ",") + (this._config.target + " " + Selector.DROPDOWN_ITEMS);
-      this._offsets = [];
-      this._targets = [];
-      this._activeTarget = null;
-      this._scrollHeight = 0;
-      $(this._scrollElement).on(Event.SCROLL, function (event) {
-        return _this._process(event);
-      });
-      this.refresh();
-
-      this._process();
-    } // getters
-
-
-    var _proto = ScrollSpy.prototype;
-
-    // public
-    _proto.refresh = function refresh() {
-      var _this2 = this;
-
-      var autoMethod = this._scrollElement !== this._scrollElement.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET;
-      var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
-      var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
-      this._offsets = [];
-      this._targets = [];
-      this._scrollHeight = this._getScrollHeight();
-      var targets = $.makeArray($(this._selector));
-      targets.map(function (element) {
-        var target;
-        var targetSelector = Util.getSelectorFromElement(element);
-
-        if (targetSelector) {
-          target = $(targetSelector)[0];
-        }
-
-        if (target) {
-          var targetBCR = target.getBoundingClientRect();
-
-          if (targetBCR.width || targetBCR.height) {
-            // todo (fat): remove sketch reliance on jQuery position/offset
-            return [$(target)[offsetMethod]().top + offsetBase, targetSelector];
-          }
-        }
-
-        return null;
-      }).filter(function (item) {
-        return item;
-      }).sort(function (a, b) {
-        return a[0] - b[0];
-      }).forEach(function (item) {
-        _this2._offsets.push(item[0]);
-
-        _this2._targets.push(item[1]);
-      });
-    };
-
-    _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
-      $(this._scrollElement).off(EVENT_KEY);
-      this._element = null;
-      this._scrollElement = null;
-      this._config = null;
-      this._selector = null;
-      this._offsets = null;
-      this._targets = null;
-      this._activeTarget = null;
-      this._scrollHeight = null;
-    }; // private
-
-
-    _proto._getConfig = function _getConfig(config) {
-      config = $.extend({}, Default, config);
-
-      if (typeof config.target !== 'string') {
-        var id = $(config.target).attr('id');
-
-        if (!id) {
-          id = Util.getUID(NAME);
-          $(config.target).attr('id', id);
-        }
-
-        config.target = "#" + id;
-      }
-
-      Util.typeCheckConfig(NAME, config, DefaultType);
-      return config;
-    };
-
-    _proto._getScrollTop = function _getScrollTop() {
-      return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
-    };
-
-    _proto._getScrollHeight = function _getScrollHeight() {
-      return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
-    };
-
-    _proto._getOffsetHeight = function _getOffsetHeight() {
-      return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
-    };
-
-    _proto._process = function _process() {
-      var scrollTop = this._getScrollTop() + this._config.offset;
-
-      var scrollHeight = this._getScrollHeight();
-
-      var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
-
-      if (this._scrollHeight !== scrollHeight) {
-        this.refresh();
-      }
-
-      if (scrollTop >= maxScroll) {
-        var target = this._targets[this._targets.length - 1];
-
-        if (this._activeTarget !== target) {
-          this._activate(target);
-        }
-
-        return;
-      }
-
-      if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
-        this._activeTarget = null;
-
-        this._clear();
-
-        return;
-      }
-
-      for (var i = this._offsets.length; i--;) {
-        var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
-
-        if (isActiveTarget) {
-          this._activate(this._targets[i]);
-        }
-      }
-    };
-
-    _proto._activate = function _activate(target) {
-      this._activeTarget = target;
-
-      this._clear();
-
-      var queries = this._selector.split(','); // eslint-disable-next-line arrow-body-style
-
-
-      queries = queries.map(function (selector) {
-        return selector + "[data-target=\"" + target + "\"]," + (selector + "[href=\"" + target + "\"]");
-      });
-      var $link = $(queries.join(','));
-
-      if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
-        $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
-        $link.addClass(ClassName.ACTIVE);
-      } else {
-        // Set triggered link as active
-        $link.addClass(ClassName.ACTIVE); // Set triggered links parents as active
-        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
-
-        $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS + ", " + Selector.LIST_ITEMS).addClass(ClassName.ACTIVE); // Handle special case when .nav-link is inside .nav-item
-
-        $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE);
-      }
-
-      $(this._scrollElement).trigger(Event.ACTIVATE, {
-        relatedTarget: target
-      });
-    };
-
-    _proto._clear = function _clear() {
-      $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
-    }; // static
-
-
-    ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var data = $(this).data(DATA_KEY);
-
-        var _config = typeof config === 'object' && config;
-
-        if (!data) {
-          data = new ScrollSpy(this, _config);
-          $(this).data(DATA_KEY, data);
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error("No method named \"" + config + "\"");
-          }
-
-          data[config]();
-        }
-      });
-    };
-
-    createClass(ScrollSpy, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }, {
-      key: "Default",
-      get: function get() {
-        return Default;
-      }
-    }]);
-    return ScrollSpy;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-
-  $(window).on(Event.LOAD_DATA_API, function () {
-    var scrollSpys = $.makeArray($(Selector.DATA_SPY));
-
-    for (var i = scrollSpys.length; i--;) {
-      var $spy = $(scrollSpys[i]);
-
-      ScrollSpy._jQueryInterface.call($spy, $spy.data());
-    }
-  });
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME] = ScrollSpy._jQueryInterface;
-  $.fn[NAME].Constructor = ScrollSpy;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return ScrollSpy._jQueryInterface;
-  };
-
-  return ScrollSpy;
-}($);
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): tab.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-var Tab = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-  var NAME = 'tab';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.tab';
-  var EVENT_KEY = "." + DATA_KEY;
-  var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var TRANSITION_DURATION = 150;
-  var Event = {
-    HIDE: "hide" + EVENT_KEY,
-    HIDDEN: "hidden" + EVENT_KEY,
-    SHOW: "show" + EVENT_KEY,
-    SHOWN: "shown" + EVENT_KEY,
-    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
-  };
-  var ClassName = {
-    DROPDOWN_MENU: 'dropdown-menu',
-    ACTIVE: 'active',
-    DISABLED: 'disabled',
-    FADE: 'fade',
-    SHOW: 'show'
-  };
-  var Selector = {
-    DROPDOWN: '.dropdown',
-    NAV_LIST_GROUP: '.nav, .list-group',
-    ACTIVE: '.active',
-    ACTIVE_UL: '> li > .active',
-    DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
-    DROPDOWN_TOGGLE: '.dropdown-toggle',
-    DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Tab =
-  /*#__PURE__*/
-  function () {
-    function Tab(element) {
-      this._element = element;
-    } // getters
-
-
-    var _proto = Tab.prototype;
-
-    // public
-    _proto.show = function show() {
-      var _this = this;
-
-      if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName.ACTIVE) || $(this._element).hasClass(ClassName.DISABLED)) {
-        return;
-      }
-
-      var target;
-      var previous;
-      var listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0];
-      var selector = Util.getSelectorFromElement(this._element);
-
-      if (listElement) {
-        var itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE;
-        previous = $.makeArray($(listElement).find(itemSelector));
-        previous = previous[previous.length - 1];
-      }
-
-      var hideEvent = $.Event(Event.HIDE, {
-        relatedTarget: this._element
-      });
-      var showEvent = $.Event(Event.SHOW, {
-        relatedTarget: previous
-      });
-
-      if (previous) {
-        $(previous).trigger(hideEvent);
-      }
-
-      $(this._element).trigger(showEvent);
-
-      if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      if (selector) {
-        target = $(selector)[0];
-      }
-
-      this._activate(this._element, listElement);
-
-      var complete = function complete() {
-        var hiddenEvent = $.Event(Event.HIDDEN, {
-          relatedTarget: _this._element
-        });
-        var shownEvent = $.Event(Event.SHOWN, {
-          relatedTarget: previous
-        });
-        $(previous).trigger(hiddenEvent);
-        $(_this._element).trigger(shownEvent);
-      };
-
-      if (target) {
-        this._activate(target, target.parentNode, complete);
-      } else {
-        complete();
-      }
-    };
-
-    _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
-      this._element = null;
-    }; // private
-
-
-    _proto._activate = function _activate(element, container, callback) {
-      var _this2 = this;
-
-      var activeElements;
-
-      if (container.nodeName === 'UL') {
-        activeElements = $(container).find(Selector.ACTIVE_UL);
-      } else {
-        activeElements = $(container).children(Selector.ACTIVE);
-      }
-
-      var active = activeElements[0];
-      var isTransitioning = callback && Util.supportsTransitionEnd() && active && $(active).hasClass(ClassName.FADE);
-
-      var complete = function complete() {
-        return _this2._transitionComplete(element, active, isTransitioning, callback);
-      };
-
-      if (active && isTransitioning) {
-        $(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
-      } else {
-        complete();
-      }
-
-      if (active) {
-        $(active).removeClass(ClassName.SHOW);
-      }
-    };
-
-    _proto._transitionComplete = function _transitionComplete(element, active, isTransitioning, callback) {
-      if (active) {
-        $(active).removeClass(ClassName.ACTIVE);
-        var dropdownChild = $(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
-
-        if (dropdownChild) {
-          $(dropdownChild).removeClass(ClassName.ACTIVE);
-        }
-
-        if (active.getAttribute('role') === 'tab') {
-          active.setAttribute('aria-selected', false);
-        }
-      }
-
-      $(element).addClass(ClassName.ACTIVE);
-
-      if (element.getAttribute('role') === 'tab') {
-        element.setAttribute('aria-selected', true);
-      }
-
-      if (isTransitioning) {
-        Util.reflow(element);
-        $(element).addClass(ClassName.SHOW);
-      } else {
-        $(element).removeClass(ClassName.FADE);
-      }
-
-      if (element.parentNode && $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
-        var dropdownElement = $(element).closest(Selector.DROPDOWN)[0];
-
-        if (dropdownElement) {
-          $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
-        }
-
-        element.setAttribute('aria-expanded', true);
-      }
-
-      if (callback) {
-        callback();
-      }
-    }; // static
-
-
-    Tab._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var $this = $(this);
-        var data = $this.data(DATA_KEY);
-
-        if (!data) {
-          data = new Tab(this);
-          $this.data(DATA_KEY, data);
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error("No method named \"" + config + "\"");
-          }
-
-          data[config]();
-        }
-      });
-    };
-
-    createClass(Tab, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }]);
-    return Tab;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-
-  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
-    event.preventDefault();
-
-    Tab._jQueryInterface.call($(this), 'show');
-  });
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME] = Tab._jQueryInterface;
-  $.fn[NAME].Constructor = Tab;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Tab._jQueryInterface;
-  };
-
-  return Tab;
-}($);
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-alpha.6): index.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-(function () {
-  if (typeof $ === 'undefined') {
-    throw new Error('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
-  }
-
-  var version = $.fn.jquery.split(' ')[0].split('.');
-  var minMajor = 1;
-  var ltMajor = 2;
-  var minMinor = 9;
-  var minPatch = 1;
-  var maxMajor = 4;
-
-  if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
-    throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
-  }
-})($);
-
-exports.Util = Util;
-exports.Alert = Alert;
-exports.Button = Button;
-exports.Carousel = Carousel;
-exports.Collapse = Collapse;
-exports.Dropdown = Dropdown;
-exports.Modal = Modal;
-exports.Popover = Popover;
-exports.Scrollspy = ScrollSpy;
-exports.Tab = Tab;
-exports.Tooltip = Tooltip;
-
-return exports;
-
-}({},$));
-//# sourceMappingURL=bootstrap.bundle.js.map
diff --git a/assets/static/js/bootstrap.bundle.js.map b/assets/static/js/bootstrap.bundle.js.map
deleted file mode 100755
index 53c66d2..0000000
--- a/assets/static/js/bootstrap.bundle.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bootstrap.bundle.js","sources":["../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/index.js"],"sourcesContent":["import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Private TransitionEnd Helpers\n   * ------------------------------------------------------------------------\n   */\n\n  let transition = f
 alse\n\n  const MAX_UID = 1000000\n\n  const TransitionEndEvent = {\n    WebkitTransition : 'webkitTransitionEnd',\n    MozTransition    : 'transitionend',\n    OTransition      : 'oTransitionEnd otransitionend',\n    transition       : 'transitionend'\n  }\n\n  // shoutout AngusCroll (https://goo.gl/pxwQGp)\n  function toType(obj) {\n    return {}.toString.call(obj).match(/\\s([a-zA-Z]+)/)[1].toLowerCase()\n  }\n\n  function getSpecialTransitionEndEvent() {\n    return {\n      bindType: transition.end,\n      delegateType: transition.end,\n      handle(event) {\n        if ($(event.target).is(this)) {\n          return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n        }\n        return undefined // eslint-disable-line no-undefined\n      }\n    }\n  }\n\n  function transitionEndTest() {\n    if (window.QUnit) {\n      return false\n    }\n\n    const el = document.createElement('bootstrap')\n\n    for (const name in TransitionEndEven
 t) {\n      if (typeof el.style[name] !== 'undefined') {\n        return {\n          end: TransitionEndEvent[name]\n        }\n      }\n    }\n\n    return false\n  }\n\n  function transitionEndEmulator(duration) {\n    let called = false\n\n    $(this).one(Util.TRANSITION_END, () => {\n      called = true\n    })\n\n    setTimeout(() => {\n      if (!called) {\n        Util.triggerTransitionEnd(this)\n      }\n    }, duration)\n\n    return this\n  }\n\n  function setTransitionEndSupport() {\n    transition = transitionEndTest()\n\n    $.fn.emulateTransitionEnd = transitionEndEmulator\n\n    if (Util.supportsTransitionEnd()) {\n      $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n    }\n  }\n\n\n  /**\n   * --------------------------------------------------------------------------\n   * Public Util Api\n   * --------------------------------------------------------------------------\n   */\n\n  const Util = {\n\n    TRANSITION_END: 'bsTransitionEnd',\n\n    
 getUID(prefix) {\n      do {\n        // eslint-disable-next-line no-bitwise\n        prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n      } while (document.getElementById(prefix))\n      return prefix\n    },\n\n    getSelectorFromElement(element) {\n      let selector = element.getAttribute('data-target')\n      if (!selector || selector === '#') {\n        selector = element.getAttribute('href') || ''\n      }\n\n      try {\n        const $selector = $(document).find(selector)\n        return $selector.length > 0 ? selector : null\n      } catch (error) {\n        return null\n      }\n    },\n\n    reflow(element) {\n      return element.offsetHeight\n    },\n\n    triggerTransitionEnd(element) {\n      $(element).trigger(transition.end)\n    },\n\n    supportsTransitionEnd() {\n      return Boolean(transition)\n    },\n\n    isElement(obj) {\n      return (obj[0] || obj).nodeType\n    },\n\n    typeCheckConfig(componentName, config, confi
 gTypes) {\n      for (const property in configTypes) {\n        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n          const expectedTypes = configTypes[property]\n          const value         = config[property]\n          const valueType     = value && Util.isElement(value) ?\n                                'element' : toType(value)\n\n          if (!new RegExp(expectedTypes).test(valueType)) {\n            throw new Error(\n              `${componentName.toUpperCase()}: ` +\n              `Option \"${property}\" provided type \"${valueType}\" ` +\n              `but expected type \"${expectedTypes}\".`)\n          }\n        }\n      }\n    }\n  }\n\n  setTransitionEndSupport()\n\n  return Util\n\n})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): alert.js\n * Licensed under MIT (https://github.com/twbs/boot
 strap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'alert'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.alert'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n\n  const Selector = {\n    DISMISS : '[data-dismiss=\"alert\"]'\n  }\n\n  const Event = {\n    CLOSE          : `close${EVENT_KEY}`,\n    CLOSED         : `closed${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    ALERT : 'alert',\n    FADE  : 'fade',\n    SHOW  : 'show'\n  }\n\n\n  /**\n   * ----------------------
 --------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Alert {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    close(element) {\n      element = element || this._element\n\n      const rootElement = this._getRootElement(element)\n      const customEvent = this._triggerCloseEvent(rootElement)\n\n      if (customEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._removeElement(rootElement)\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n\n    // private\n\n    _getRootElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      let parent     = false\n\n      if (selector) {\n        parent = $(selector)[0]\n      }\n\n      if (!parent) {\n    
     parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n      }\n\n      return parent\n    }\n\n    _triggerCloseEvent(element) {\n      const closeEvent = $.Event(Event.CLOSE)\n\n      $(element).trigger(closeEvent)\n      return closeEvent\n    }\n\n    _removeElement(element) {\n      $(element).removeClass(ClassName.SHOW)\n\n      if (!Util.supportsTransitionEnd() ||\n          !$(element).hasClass(ClassName.FADE)) {\n        this._destroyElement(element)\n        return\n      }\n\n      $(element)\n        .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n        .emulateTransitionEnd(TRANSITION_DURATION)\n    }\n\n    _destroyElement(element) {\n      $(element)\n        .detach()\n        .trigger(Event.CLOSED)\n        .remove()\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $element = $(this)\n        let data       = $element.data(DATA_KEY)\n\n        if (!data) {\n     
      data = new Alert(this)\n          $element.data(DATA_KEY, data)\n        }\n\n        if (config === 'close') {\n          data[config](this)\n        }\n      })\n    }\n\n    static _handleDismiss(alertInstance) {\n      return function (event) {\n        if (event) {\n          event.preventDefault()\n        }\n\n        alertInstance.close(this)\n      }\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(\n    Event.CLICK_DATA_API,\n    Selector.DISMISS,\n    Alert._handleDismiss(new Alert())\n  )\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Alert._jQueryInterface\n  $.fn[NAME].Constructor = Alert\n  $.fn[NAME].noCon
 flict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Alert._jQueryInterface\n  }\n\n  return Alert\n\n})($)\n\nexport default Alert\n","import $ from 'jquery'\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'button'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.button'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n\n  const ClassName = {\n    ACTIVE : 'active',\n
     BUTTON : 'btn',\n    FOCUS  : 'focus'\n  }\n\n  const Selector = {\n    DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n    DATA_TOGGLE        : '[data-toggle=\"buttons\"]',\n    INPUT              : 'input',\n    ACTIVE             : '.active',\n    BUTTON             : '.btn'\n  }\n\n  const Event = {\n    CLICK_DATA_API      : `click${EVENT_KEY}${DATA_API_KEY}`,\n    FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} `\n                        + `blur${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Button {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    toggle() {\n      let triggerChangeEvent = true\n      let addAriaPressed = true\n      const rootEle
 ment      = $(this._element).closest(\n        Selector.DATA_TOGGLE\n      )[0]\n\n      if (rootElement) {\n        const input = $(this._element).find(Selector.INPUT)[0]\n\n        if (input) {\n          if (input.type === 'radio') {\n            if (input.checked &&\n              $(this._element).hasClass(ClassName.ACTIVE)) {\n              triggerChangeEvent = false\n\n            } else {\n              const activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n              if (activeElement) {\n                $(activeElement).removeClass(ClassName.ACTIVE)\n              }\n            }\n          }\n\n          if (triggerChangeEvent) {\n            if (input.hasAttribute('disabled') ||\n              rootElement.hasAttribute('disabled') ||\n              input.classList.contains('disabled') ||\n              rootElement.classList.contains('disabled')) {\n              return\n            }\n            input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n 
            $(input).trigger('change')\n          }\n\n          input.focus()\n          addAriaPressed = false\n        }\n\n      }\n\n      if (addAriaPressed) {\n        this._element.setAttribute('aria-pressed',\n          !$(this._element).hasClass(ClassName.ACTIVE))\n      }\n\n      if (triggerChangeEvent) {\n        $(this._element).toggleClass(ClassName.ACTIVE)\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n\n        if (!data) {\n          data = new Button(this)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (config === 'toggle') {\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * --------------------------------
 ----------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      event.preventDefault()\n\n      let button = event.target\n\n      if (!$(button).hasClass(ClassName.BUTTON)) {\n        button = $(button).closest(Selector.BUTTON)\n      }\n\n      Button._jQueryInterface.call($(button), 'toggle')\n    })\n    .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      const button = $(event.target).closest(Selector.BUTTON)[0]\n      $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Button._jQueryInterface\n  $.fn[NAME].Constructor = Button\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Button._jQu
 eryInterface\n  }\n\n  return Button\n\n})($)\n\nexport default Button\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                   = 'carousel'\n  const VERSION                = '4.0.0-beta.2'\n  const DATA_KEY               = 'bs.carousel'\n  const EVENT_KEY              = `.${DATA_KEY}`\n  const DATA_API_KEY           = '.data-api'\n  const JQUERY_NO_CONFLICT     = $.fn[NAME]\n  const TRANSITION_DURATION    = 600\n  const ARROW_LEFT_KEYCODE     = 3
 7 // KeyboardEvent.which value for left arrow key\n  const ARROW_RIGHT_KEYCODE    = 39 // KeyboardEvent.which value for right arrow key\n  const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n  const Default = {\n    interval : 5000,\n    keyboard : true,\n    slide    : false,\n    pause    : 'hover',\n    wrap     : true\n  }\n\n  const DefaultType = {\n    interval : '(number|boolean)',\n    keyboard : 'boolean',\n    slide    : '(boolean|string)',\n    pause    : '(string|boolean)',\n    wrap     : 'boolean'\n  }\n\n  const Direction = {\n    NEXT     : 'next',\n    PREV     : 'prev',\n    LEFT     : 'left',\n    RIGHT    : 'right'\n  }\n\n  const Event = {\n    SLIDE          : `slide${EVENT_KEY}`,\n    SLID           : `slid${EVENT_KEY}`,\n    KEYDOWN        : `keydown${EVENT_KEY}`,\n    MOUSEENTER     : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE     : `mouseleave${EVENT_KEY}`,\n    TOUCHEND       : `touchend${EVENT_KEY}`,\n    LOAD_DATA_API
   : `load${EVENT_KEY}${DATA_API_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    CAROUSEL : 'carousel',\n    ACTIVE   : 'active',\n    SLIDE    : 'slide',\n    RIGHT    : 'carousel-item-right',\n    LEFT     : 'carousel-item-left',\n    NEXT     : 'carousel-item-next',\n    PREV     : 'carousel-item-prev',\n    ITEM     : 'carousel-item'\n  }\n\n  const Selector = {\n    ACTIVE      : '.active',\n    ACTIVE_ITEM : '.active.carousel-item',\n    ITEM        : '.carousel-item',\n    NEXT_PREV   : '.carousel-item-next, .carousel-item-prev',\n    INDICATORS  : '.carousel-indicators',\n    DATA_SLIDE  : '[data-slide], [data-slide-to]',\n    DATA_RIDE   : '[data-ride=\"carousel\"]'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Carousel {\n\n    constructor(element, config) {
 \n      this._items             = null\n      this._interval          = null\n      this._activeElement     = null\n\n      this._isPaused          = false\n      this._isSliding         = false\n\n      this.touchTimeout       = null\n\n      this._config            = this._getConfig(config)\n      this._element           = $(element)[0]\n      this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n      this._addEventListeners()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    next() {\n      if (!this._isSliding) {\n        this._slide(Direction.NEXT)\n      }\n    }\n\n    nextWhenVisible() {\n      // Don't call next when the page isn't visible\n      // or the carousel or its parent isn't visible\n      if (!document.hidden &&\n        ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n        this.n
 ext()\n      }\n    }\n\n    prev() {\n      if (!this._isSliding) {\n        this._slide(Direction.PREV)\n      }\n    }\n\n    pause(event) {\n      if (!event) {\n        this._isPaused = true\n      }\n\n      if ($(this._element).find(Selector.NEXT_PREV)[0] &&\n        Util.supportsTransitionEnd()) {\n        Util.triggerTransitionEnd(this._element)\n        this.cycle(true)\n      }\n\n      clearInterval(this._interval)\n      this._interval = null\n    }\n\n    cycle(event) {\n      if (!event) {\n        this._isPaused = false\n      }\n\n      if (this._interval) {\n        clearInterval(this._interval)\n        this._interval = null\n      }\n\n      if (this._config.interval && !this._isPaused) {\n        this._interval = setInterval(\n          (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n          this._config.interval\n        )\n      }\n    }\n\n    to(index) {\n      this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\
 n\n      const activeIndex = this._getItemIndex(this._activeElement)\n\n      if (index > this._items.length - 1 || index < 0) {\n        return\n      }\n\n      if (this._isSliding) {\n        $(this._element).one(Event.SLID, () => this.to(index))\n        return\n      }\n\n      if (activeIndex === index) {\n        this.pause()\n        this.cycle()\n        return\n      }\n\n      const direction = index > activeIndex ?\n        Direction.NEXT :\n        Direction.PREV\n\n      this._slide(direction, this._items[index])\n    }\n\n    dispose() {\n      $(this._element).off(EVENT_KEY)\n      $.removeData(this._element, DATA_KEY)\n\n      this._items             = null\n      this._config            = null\n      this._element           = null\n      this._interval          = null\n      this._isPaused          = null\n      this._isSliding         = null\n      this._activeElement     = null\n      this._indicatorsElement = null\n    }\n\n\n    // private\n\n    _getConfig(con
 fig) {\n      config = $.extend({}, Default, config)\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _addEventListeners() {\n      if (this._config.keyboard) {\n        $(this._element)\n          .on(Event.KEYDOWN, (event) => this._keydown(event))\n      }\n\n      if (this._config.pause === 'hover') {\n        $(this._element)\n          .on(Event.MOUSEENTER, (event) => this.pause(event))\n          .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n        if ('ontouchstart' in document.documentElement) {\n          // if it's a touch-enabled device, mouseenter/leave are fired as\n          // part of the mouse compatibility events on first tap - the carousel\n          // would stop cycling until user tapped out of it;\n          // here, we listen for touchend, explicitly pause the carousel\n          // (as if it's the second time we tap on it, mouseenter compat event\n          // is NOT fired) and after a timeout (to allow for mous
 e compatibility\n          // events to fire) we explicitly restart cycling\n          $(this._element).on(Event.TOUCHEND, () => {\n            this.pause()\n            if (this.touchTimeout) {\n              clearTimeout(this.touchTimeout)\n            }\n            this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n          })\n        }\n      }\n    }\n\n    _keydown(event) {\n      if (/input|textarea/i.test(event.target.tagName)) {\n        return\n      }\n\n      switch (event.which) {\n        case ARROW_LEFT_KEYCODE:\n          event.preventDefault()\n          this.prev()\n          break\n        case ARROW_RIGHT_KEYCODE:\n          event.preventDefault()\n          this.next()\n          break\n        default:\n          return\n      }\n    }\n\n    _getItemIndex(element) {\n      this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n      return this._items.indexOf(element)\n    }\n\n    _get
 ItemByDirection(direction, activeElement) {\n      const isNextDirection = direction === Direction.NEXT\n      const isPrevDirection = direction === Direction.PREV\n      const activeIndex     = this._getItemIndex(activeElement)\n      const lastItemIndex   = this._items.length - 1\n      const isGoingToWrap   = isPrevDirection && activeIndex === 0 ||\n                              isNextDirection && activeIndex === lastItemIndex\n\n      if (isGoingToWrap && !this._config.wrap) {\n        return activeElement\n      }\n\n      const delta     = direction === Direction.PREV ? -1 : 1\n      const itemIndex = (activeIndex + delta) % this._items.length\n\n      return itemIndex === -1 ?\n        this._items[this._items.length - 1] : this._items[itemIndex]\n    }\n\n\n    _triggerSlideEvent(relatedTarget, eventDirectionName) {\n      const targetIndex = this._getItemIndex(relatedTarget)\n      const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n      co
 nst slideEvent = $.Event(Event.SLIDE, {\n        relatedTarget,\n        direction: eventDirectionName,\n        from: fromIndex,\n        to: targetIndex\n      })\n\n      $(this._element).trigger(slideEvent)\n\n      return slideEvent\n    }\n\n    _setActiveIndicatorElement(element) {\n      if (this._indicatorsElement) {\n        $(this._indicatorsElement)\n          .find(Selector.ACTIVE)\n          .removeClass(ClassName.ACTIVE)\n\n        const nextIndicator = this._indicatorsElement.children[\n          this._getItemIndex(element)\n        ]\n\n        if (nextIndicator) {\n          $(nextIndicator).addClass(ClassName.ACTIVE)\n        }\n      }\n    }\n\n    _slide(direction, element) {\n      const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n      const activeElementIndex = this._getItemIndex(activeElement)\n      const nextElement   = element || activeElement &&\n        this._getItemByDirection(direction, activeElement)\n      const nextElementIndex
  = this._getItemIndex(nextElement)\n      const isCycling = Boolean(this._interval)\n\n      let directionalClassName\n      let orderClassName\n      let eventDirectionName\n\n      if (direction === Direction.NEXT) {\n        directionalClassName = ClassName.LEFT\n        orderClassName = ClassName.NEXT\n        eventDirectionName = Direction.LEFT\n      } else {\n        directionalClassName = ClassName.RIGHT\n        orderClassName = ClassName.PREV\n        eventDirectionName = Direction.RIGHT\n      }\n\n      if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n        this._isSliding = false\n        return\n      }\n\n      const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n      if (slideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (!activeElement || !nextElement) {\n        // some weirdness is happening, so we bail\n        return\n      }\n\n      this._isSliding = true\n\n      if (isCycling) {\n        this.pa
 use()\n      }\n\n      this._setActiveIndicatorElement(nextElement)\n\n      const slidEvent = $.Event(Event.SLID, {\n        relatedTarget: nextElement,\n        direction: eventDirectionName,\n        from: activeElementIndex,\n        to: nextElementIndex\n      })\n\n      if (Util.supportsTransitionEnd() &&\n        $(this._element).hasClass(ClassName.SLIDE)) {\n\n        $(nextElement).addClass(orderClassName)\n\n        Util.reflow(nextElement)\n\n        $(activeElement).addClass(directionalClassName)\n        $(nextElement).addClass(directionalClassName)\n\n        $(activeElement)\n          .one(Util.TRANSITION_END, () => {\n            $(nextElement)\n              .removeClass(`${directionalClassName} ${orderClassName}`)\n              .addClass(ClassName.ACTIVE)\n\n            $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n            this._isSliding = false\n\n            setTimeout(() => $(this._element).trigger(slid
 Event), 0)\n\n          })\n          .emulateTransitionEnd(TRANSITION_DURATION)\n\n      } else {\n        $(activeElement).removeClass(ClassName.ACTIVE)\n        $(nextElement).addClass(ClassName.ACTIVE)\n\n        this._isSliding = false\n        $(this._element).trigger(slidEvent)\n      }\n\n      if (isCycling) {\n        this.cycle()\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = $.extend({}, Default, $(this).data())\n\n        if (typeof config === 'object') {\n          $.extend(_config, config)\n        }\n\n        const action = typeof config === 'string' ? config : _config.slide\n\n        if (!data) {\n          data = new Carousel(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'number') {\n          data.to(config)\n        } else if (typeof action === 'string') {\n          if (
 typeof data[action] === 'undefined') {\n            throw new Error(`No method named \"${action}\"`)\n          }\n          data[action]()\n        } else if (_config.interval) {\n          data.pause()\n          data.cycle()\n        }\n      })\n    }\n\n    static _dataApiClickHandler(event) {\n      const selector = Util.getSelectorFromElement(this)\n\n      if (!selector) {\n        return\n      }\n\n      const target = $(selector)[0]\n\n      if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n        return\n      }\n\n      const config     = $.extend({}, $(target).data(), $(this).data())\n      const slideIndex = this.getAttribute('data-slide-to')\n\n      if (slideIndex) {\n        config.interval = false\n      }\n\n      Carousel._jQueryInterface.call($(target), config)\n\n      if (slideIndex) {\n        $(target).data(DATA_KEY).to(slideIndex)\n      }\n\n      event.preventDefault()\n    }\n\n  }\n\n\n  /**\n   * ---------------------------------------------
 ---------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    $(Selector.DATA_RIDE).each(function () {\n      const $carousel = $(this)\n      Carousel._jQueryInterface.call($carousel, $carousel.data())\n    })\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Carousel._jQueryInterface\n  $.fn[NAME].Constructor = Carousel\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Carousel._jQueryInterface\n  }\n\n  return Carousel\n\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * ------------------
 --------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'collapse'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.collapse'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 600\n\n  const Default = {\n    toggle : true,\n    parent : ''\n  }\n\n  const DefaultType = {\n    toggle : 'boolean',\n    parent : '(string|element)'\n  }\n\n  const Event = {\n    SHOW           : `show${EVENT_K
 EY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SHOW       : 'show',\n    COLLAPSE   : 'collapse',\n    COLLAPSING : 'collapsing',\n    COLLAPSED  : 'collapsed'\n  }\n\n  const Dimension = {\n    WIDTH  : 'width',\n    HEIGHT : 'height'\n  }\n\n  const Selector = {\n    ACTIVES     : '.show, .collapsing',\n    DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Collapse {\n\n    constructor(element, config) {\n      this._isTransitioning = false\n      this._element         = element\n      this._config          = this._getConfig(config)\n      this._triggerArray    = $.makeArray($(\n        `[data-toggle
 =\"collapse\"][href=\"#${element.id}\"],` +\n        `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n      ))\n      const tabToggles = $(Selector.DATA_TOGGLE)\n      for (let i = 0; i < tabToggles.length; i++) {\n        const elem = tabToggles[i]\n        const selector = Util.getSelectorFromElement(elem)\n        if (selector !== null && $(selector).filter(element).length > 0) {\n          this._triggerArray.push(elem)\n        }\n      }\n\n      this._parent = this._config.parent ? this._getParent() : null\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n      }\n\n      if (this._config.toggle) {\n        this.toggle()\n      }\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    toggle() {\n      if ($(this._element).hasClass(ClassName.SHOW)) {\n        this.hide()\n      } else {\n 
        this.show()\n      }\n    }\n\n    show() {\n      if (this._isTransitioning ||\n        $(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      let actives\n      let activesData\n\n      if (this._parent) {\n        actives = $.makeArray($(this._parent).children().children(Selector.ACTIVES))\n        if (!actives.length) {\n          actives = null\n        }\n      }\n\n      if (actives) {\n        activesData = $(actives).data(DATA_KEY)\n        if (activesData && activesData._isTransitioning) {\n          return\n        }\n      }\n\n      const startEvent = $.Event(Event.SHOW)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($(actives), 'hide')\n        if (!activesData) {\n          $(actives).data(DATA_KEY, null)\n        }\n      }\n\n      const dimension = this._getDimension()\n\n      $(this._element)\n        .
 removeClass(ClassName.COLLAPSE)\n        .addClass(ClassName.COLLAPSING)\n\n      this._element.style[dimension] = 0\n\n      if (this._triggerArray.length) {\n        $(this._triggerArray)\n          .removeClass(ClassName.COLLAPSED)\n          .attr('aria-expanded', true)\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .addClass(ClassName.SHOW)\n\n        this._element.style[dimension] = ''\n\n        this.setTransitioning(false)\n\n        $(this._element).trigger(Event.SHOWN)\n      }\n\n      if (!Util.supportsTransitionEnd()) {\n        complete()\n        return\n      }\n\n      const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n      const scrollSize           = `scroll${capitalizedDimension}`\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(
 TRANSITION_DURATION)\n\n      this._element.style[dimension] = `${this._element[scrollSize]}px`\n    }\n\n    hide() {\n      if (this._isTransitioning ||\n        !$(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      const startEvent = $.Event(Event.HIDE)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      const dimension       = this._getDimension()\n\n      this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n      Util.reflow(this._element)\n\n      $(this._element)\n        .addClass(ClassName.COLLAPSING)\n        .removeClass(ClassName.COLLAPSE)\n        .removeClass(ClassName.SHOW)\n\n      if (this._triggerArray.length) {\n        for (let i = 0; i < this._triggerArray.length; i++) {\n          const trigger = this._triggerArray[i]\n          const selector = Util.getSelectorFromElement(trigger)\n          if (selector !== null) {\n        
     const $elem = $(selector)\n            if (!$elem.hasClass(ClassName.SHOW)) {\n              $(trigger).addClass(ClassName.COLLAPSED)\n                   .attr('aria-expanded', false)\n            }\n          }\n        }\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        this.setTransitioning(false)\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .trigger(Event.HIDDEN)\n      }\n\n      this._element.style[dimension] = ''\n\n      if (!Util.supportsTransitionEnd()) {\n        complete()\n        return\n      }\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(TRANSITION_DURATION)\n    }\n\n    setTransitioning(isTransitioning) {\n      this._isTransitioning = isTransitioning\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      this._config          = null\n      this._parent          = 
 null\n      this._element         = null\n      this._triggerArray    = null\n      this._isTransitioning = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = $.extend({}, Default, config)\n      config.toggle = Boolean(config.toggle) // coerce string values\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _getDimension() {\n      const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n    }\n\n    _getParent() {\n      let parent = null\n      if (Util.isElement(this._config.parent)) {\n        parent = this._config.parent\n\n        // it's a jQuery object\n        if (typeof this._config.parent.jquery !== 'undefined') {\n          parent = this._config.parent[0]\n        }\n      } else {\n        parent = $(this._config.parent)[0]\n      }\n\n      const selector =\n        `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n     
  $(parent).find(selector).each((i, element) => {\n        this._addAriaAndCollapsedClass(\n          Collapse._getTargetFromElement(element),\n          [element]\n        )\n      })\n\n      return parent\n    }\n\n    _addAriaAndCollapsedClass(element, triggerArray) {\n      if (element) {\n        const isOpen = $(element).hasClass(ClassName.SHOW)\n\n        if (triggerArray.length) {\n          $(triggerArray)\n            .toggleClass(ClassName.COLLAPSED, !isOpen)\n            .attr('aria-expanded', isOpen)\n        }\n      }\n    }\n\n\n    // static\n\n    static _getTargetFromElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      return selector ? $(selector)[0] : null\n    }\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this   = $(this)\n        let data      = $this.data(DATA_KEY)\n        const _config = $.extend(\n          {},\n          Default,\n          $this.data(),\n          typeof
  config === 'object' && config\n        )\n\n        if (!data && _config.toggle && /show|hide/.test(config)) {\n          _config.toggle = false\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n    if (event.currentTarget.tagName === 'A') {\n      event.preventDefault()\n    }\n\n    co
 nst $trigger = $(this)\n    const selector = Util.getSelectorFromElement(this)\n    $(selector).each(function () {\n      const $target = $(this)\n      const data    = $target.data(DATA_KEY)\n      const config  = data ? 'toggle' : $trigger.data()\n      Collapse._jQueryInterface.call($target, config)\n    })\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Collapse._jQueryInterface\n  $.fn[NAME].Constructor = Collapse\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Collapse._jQueryInterface\n  }\n\n  return Collapse\n\n})($)\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.12.5\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereb
 y granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNEC
 TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar nativeHints = ['native code', '[object MutationObserverConstructor]'];\n\n/**\n * Determine if a function is implemented natively (as opposed to a polyfill).\n * @method\n * @memberof Popper.Utils\n * @argument {Function | undefined} fn the function to check\n * @returns {Boolean}\n */\nvar isNative = (function (fn) {\n  return nativeHints.some(function (hint) {\n    return (fn || '').toString().indexOf(hint) > -1;\n  });\n});\n\nvar isBrowser = typeof window !== 'undefined';\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n    timeoutDuration = 1;\n    break;\n  }\n}\n\nfunction microtaskDebounce(fn) {\n  var scheduled = false;\n  var i = 0;\n  var elem = document.createElement('span');\n\n  // MutationObserver provides a
  mechanism for scheduling microtasks, which\n  // are scheduled *before* the next task. This gives us a way to debounce\n  // a function but ensure it's called *before* the next paint.\n  var observer = new MutationObserver(function () {\n    fn();\n    scheduled = false;\n  });\n\n  observer.observe(elem, { attributes: true });\n\n  return function () {\n    if (!scheduled) {\n      scheduled = true;\n      elem.setAttribute('x-index', i);\n      i = i + 1; // don't use compund (+=) because it doesn't get optimized in V8\n    }\n  };\n}\n\nfunction taskDebounce(fn) {\n  var scheduled = false;\n  return function () {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(function () {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\n// It's common for MutationObserver polyfills to be seen in the wild, however\n// these rely on Mutation Events which only occur when an element is connected\n// to the DOM. The algorithm used in this m
 odule does not use a connected element,\n// and so we must ensure that a *native* MutationObserver is available.\nvar supportsNativeMutationObserver = isBrowser && isNative(window.MutationObserver);\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsNativeMutationObserver ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n  var getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argu
 ment {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  var css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;\n  }\n  return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element || ['HTML', 'BODY', '#document'].indexOf(element.nodeName) !== -1) {\n    return window.document.body;\n
   }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n\n  var _getStyleComputedProp = getStyleComputedProperty(element),\n      overflow = _getStyleComputedProp.overflow,\n      overflowX = _getStyleComputedProp.overflowX,\n      overflowY = _getStyleComputedProp.overflowY;\n\n  if (/(auto|scroll)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n  // NOTE: 1 DOM access here\n  var offsetParent = element && element.offsetParent;\n  var nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return window.document.documentElement;\n  }\n\n  // .offsetParent will return the closest TD or TABLE in case\n  // no offsetParent 
 is present, I hate this job...\n  if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\n
 function findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return window.document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n  var start = order ? element1 : element2;\n  var end = order ? element2 : element1;\n\n  // Get common ancestor container\n  var range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  var commonAncestorContainer = range.commonAncestorContainer;\n\n  // Both nodes are inside #document\n\n  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n
 \n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  var element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    var html = window.document.documentElement;\n    var scrollingElement = window.document.scrollingElement || html;\n
     return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var scrollTop = getScroll(element, 'top');\n  var scrollLeft = getScroll(element, 'left');\n  var modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n\n/*\n * Helper to detect borders of a given element
 \n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n  var sideA = axis === 'x' ? 'Left' : 'Top';\n  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return +styles['border' + sideA + 'Width'].split('px')[0] + +styles['border' + sideB + 'Width'].split('px')[0];\n}\n\n/**\n * Tells if you are running Internet Explorer 10\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean} isIE10\n */\nvar isIE10 = undefined;\n\nvar isIE10$1 = function () {\n  if (isIE10 === undefined) {\n    isIE10 = navigator.appVersion.indexOf('MSIE 10') !== -1;\n  }\n  return isIE10;\n};\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scr
 oll' + axis], isIE10$1() ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);\n}\n\nfunction getWindowSizes() {\n  var body = window.document.body;\n  var html = window.document.documentElement;\n  var computedStyle = isIE10$1() && window.getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle)\n  };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\nvar createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descript
 or.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n/**\n * Given element offsets, generate an output similar 
 to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n  return _extends({}, offsets, {\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height\n  });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n  var rect = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  if (isIE10$1()) {\n    try {\n      rect = element.getBoundingClientRect();\n      var scrollTop = getScroll(element, 'top');\n      var scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right
  += scrollLeft;\n    } catch (err) {}\n  } else {\n    rect = element.getBoundingClientRect();\n  }\n\n  var result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n\n  // subtract scrollbar size from sizes\n  var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};\n  var width = sizes.width || element.clientWidth || result.right - result.left;\n  var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n  var horizScrollbar = element.offsetWidth - width;\n  var vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    var styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= hori
 zScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n  var isIE10 = isIE10$1();\n  var isHTML = parent.nodeName === 'HTML';\n  var childrenRect = getBoundingClientRect(children);\n  var parentRect = getBoundingClientRect(parent);\n  var scrollParent = getScrollParent(children);\n\n  var styles = getStyleComputedProperty(parent);\n  var borderTopWidth = +styles.borderTopWidth.split('px')[0];\n  var borderLeftWidth = +styles.borderLeftWidth.split('px')[0];\n\n  var offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element tha
 t behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    var marginTop = +styles.marginTop.split('px')[0];\n    var marginLeft = +styles.marginLeft.split('px')[0];\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and marginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (isIE10 ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n  var html = window.document.documentElement;\n  var relativeOffset = getOff
 setRectRelativeToArbitraryNode(element, html);\n  var width = Math.max(html.clientWidth, window.innerWidth || 0);\n  var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  var scrollTop = getScroll(html);\n  var scrollLeft = getScroll(html, 'left');\n\n  var offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width: width,\n    height: height\n  };\n\n  return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n  var nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  return isFix
 ed(getParentNode(element));\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n  // NOTE: 1 DOM access here\n  var boundaries = { top: 0, left: 0 };\n  var offsetParent = findCommonOffsetParent(popper, reference);\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport') {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent);\n  } else {\n    // Handle other cases based on DOM element used as boundaries\n    var boundariesNode = void 0;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(popper));\n      if (boundariesNode.nodeName === 'BODY') {
 \n        boundariesNode = window.document.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = window.document.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent);\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      var _getWindowSizes = getWindowSizes(),\n          height = _getWindowSizes.height,\n          width = _getWindowSizes.width;\n\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  boundaries.left += padding;\n  boundaries.top +
 = padding;\n  boundaries.right -= padding;\n  boundaries.bottom -= padding;\n\n  return boundaries;\n}\n\nfunction getArea(_ref) {\n  var width = _ref.width,\n      height = _ref.height;\n\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n  var rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - bo
 undaries.top\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height\n    }\n  };\n\n  var sortedAreas = Object.keys(rects).map(function (key) {\n    return _extends({\n      key: key\n    }, rects[key], {\n      area: getArea(rects[key])\n    });\n  }).sort(function (a, b) {\n    return b.area - a.area;\n  });\n\n  var filteredAreas = sortedAreas.filter(function (_ref2) {\n    var width = _ref2.width,\n        height = _ref2.height;\n    return width >= popper.clientWidth && height >= popper.clientHeight;\n  });\n\n  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n  var variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n *
  Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n  var commonOffsetParent = findCommonOffsetParent(popper, reference);\n  return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n  var styles = window.getComputedStyle(element);\n  var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n  var y = parseFloat(styles.marginLeft) + parseFloat(styles.marg
 inRight);\n  var result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x\n  };\n  return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\n  });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied t
 o the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  var popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  var popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  var mainSide = isHoriz ? 'top' : 'left';\n  var secondarySide = isHoriz ? 'left' : 'top';\n  var measurement = isHoriz ? 'height' : 'width';\n  var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    po
 pperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(function (cur) {\n      return cur[prop] === value;\n    });\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  var match = find(a
 rr, function (obj) {\n    return obj[prop] === value;\n  });\n  return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(function (modifier) {\n    if (modifier.function) {\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    var fn = modifier.function || modifier.fn;\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mes
 s with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n  // if popper is destroyed, don't perform any further update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  var data = {\n    instance: this,\n    styles: {},\n    arrowStyles: {},\n    attributes: {},\n    flipped: false,\n    offsets: {}\n  };\n\n  // compute reference element offsets\n  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // 
 and refer to originalPlacement to know the original value\n  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n  // store the computed placement inside `originalPlacement`\n  data.originalPlacement = data.placement;\n\n  // compute the popper offsets\n  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n  data.offsets.popper.position = 'absolute';\n\n  // run the modifiers\n  data = runModifiers(this.modifiers, data);\n\n  // the first `update` will call `onCreate` callback\n  // the other ones will call `onUpdate` callback\n  if (!this.state.isCreated) {\n    this.state.isCreated = true;\n    this.options.onCreate(data);\n  } else {\n    this.options.onUpdate(data);\n  }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns 
 {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(function (_ref) {\n    var name = _ref.name,\n        enabled = _ref.enabled;\n    return enabled && name === modifierName;\n  });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n  var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (var i = 0; i < prefixes.length - 1; i++) {\n    var prefix = prefixes[i];\n    var toCheck = prefix ? '' + prefix + upperProp : property;\n    if (typeof window.document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n\n/**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\nfunction dest
 roy() {\n  this.state.isDestroyed = true;\n\n  // touch DOM only if `applyStyle` modifier is enabled\n  if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n    this.popper.removeAttribute('x-placement');\n    this.popper.style.left = '';\n    this.popper.style.position = '';\n    this.popper.style.top = '';\n    this.popper.style[getSupportedPropertyName('transform')] = '';\n  }\n\n  this.disableEventListeners();\n\n  // remove the popper if user explicity asked for the deletion on destroy\n  // do not use `remove` because IE11 doesn't support it\n  if (this.options.removeOnDestroy) {\n    this.popper.parentNode.removeChild(this.popper);\n  }\n  return this;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  var isBody = scrollParent.nodeName === 'BODY';\n  var target = isBody ? window : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(getScrollParent(target.parentNod
 e), event, callback, scrollParents);\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  window.addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  var scrollElement = getScrollParent(reference);\n  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(this.refe
 rence, this.options, this.state, this.scheduleUpdate);\n  }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  window.removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(function (target) {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  // Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger onUpdate callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n  if (this.state.eventsEnabled) 
 {\n    window.cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\n  }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n  Object.keys(styles).forEach(function (prop) {\n    var unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\
 n  });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function (prop) {\n    var value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      element.removeAttribute(prop);\n    }\n  });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same 
 data object\n */\nfunction applyStyle(data) {\n  // any property present in `data.styles` will be applied to the popper,\n  // in this way we can make the 3rd party modifiers add custom styles to it\n  // Be aware, modifiers could override the properties defined in the previous\n  // lines of this modifier!\n  setStyles(data.instance.popper, data.styles);\n\n  // any property present in `data.attributes` will be applied to the popper,\n  // they will be set as HTML attributes of the element\n  setAttributes(data.instance.popper, data.attributes);\n\n  // if arrowElement is defined and arrowStyles has some properties\n  if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n    setStyles(data.arrowElement, data.arrowStyles);\n  }\n\n  return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.m
 odifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper.\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n  // compute reference element offsets\n  var referenceOffsets = getReferenceOffsets(state, popper, reference);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n  popper.setAttribute('x-placement', placement);\n\n  // Apply `position` to popper before anything else because\n  // without the position applied we can't guarantee correct computations\n  setStyles(popper, { positio
 n: 'absolute' });\n\n  return options;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n  var x = options.x,\n      y = options.y;\n  var popper = data.offsets.popper;\n\n  // Remove this legacy support in Popper.js v2\n\n  var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'applyStyle';\n  }).gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n  }\n  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n  var offsetParent = getOffsetParent(data.
 instance.popper);\n  var offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  var styles = {\n    position: popper.position\n  };\n\n  // floor sides to avoid blurry text\n  var offsets = {\n    left: Math.floor(popper.left),\n    top: Math.floor(popper.top),\n    bottom: Math.floor(popper.bottom),\n    right: Math.floor(popper.right)\n  };\n\n  var sideA = x === 'bottom' ? 'top' : 'bottom';\n  var sideB = y === 'right' ? 'left' : 'right';\n\n  // if gpuAcceleration is set to `true` and transform is supported,\n  //  we use `translate3d` to apply the position to the popper we\n  // automatically use the supported prefixed version if needed\n  var prefixedProperty = getSupportedPropertyName('transform');\n\n  // now, let's make a step back and look at this code closely (wtf?)\n  // If the content of the popper grows once it's been positioned, it\n  // may happen that the popper gets misplaced because of the new content\n  // overflowing its reference element\n  /
 / To avoid this problem, we provide two options (x and y), which allow\n  // the consumer to define the offset origin.\n  // If we position a popper on top of a reference element, we can set\n  // `x` to `top` to make the popper grow towards its top instead of\n  // its bottom.\n  var left = void 0,\n      top = void 0;\n  if (sideA === 'bottom') {\n    top = -offsetParentRect.height + offsets.bottom;\n  } else {\n    top = offsets.top;\n  }\n  if (sideB === 'right') {\n    left = -offsetParentRect.width + offsets.right;\n  } else {\n    left = offsets.left;\n  }\n  if (gpuAcceleration && prefixedProperty) {\n    styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n    styles[sideA] = 0;\n    styles[sideB] = 0;\n    styles.willChange = 'transform';\n  } else {\n    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n    var invertTop = sideA === 'bottom' ? -1 : 1;\n    var invertLeft = sideB === 'right' ? -1 : 1;\n    styles[side
 A] = top * invertTop;\n    styles[sideB] = left * invertLeft;\n    styles.willChange = sideA + ', ' + sideB;\n  }\n\n  // Attributes\n  var attributes = {\n    'x-placement': data.placement\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = _extends({}, attributes, data.attributes);\n  data.styles = _extends({}, styles, data.styles);\n  data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n  return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n  var requesting = find(modifiers, function (_ref) {\n    var name = _
 ref.name;\n    return name === requestingName;\n  });\n\n  var isRequired = !!requesting && modifiers.some(function (modifier) {\n    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n  });\n\n  if (!isRequired) {\n    var _requesting = '`' + requestingName + '`';\n    var requested = '`' + requestedName + '`';\n    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n  }\n  return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  var arr
 owElement = options.element;\n\n  // if arrowElement is a string, suppose it's a CSS selector\n  if (typeof arrowElement === 'string') {\n    arrowElement = data.instance.popper.querySelector(arrowElement);\n\n    // if arrowElement is not found, don't run the modifier\n    if (!arrowElement) {\n      return data;\n    }\n  } else {\n    // if the arrowElement isn't a query selector we must check that the\n    // provided DOM node is child of its popper node\n    if (!data.instance.popper.contains(arrowElement)) {\n      console.warn('WARNING: `arrow.element` must be child of its popper element!');\n      return data;\n    }\n  }\n\n  var placement = data.placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  var len = isVertical ? 'height' : 'width';\n  var sideCapitalized = isVertical ? 'Top' : 'Left';\n  var side = sideCa
 pitalized.toLowerCase();\n  var altSide = isVertical ? 'left' : 'top';\n  var opSide = isVertical ? 'bottom' : 'right';\n  var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n  //\n  // extends keepTogether behavior making sure the popper and its\n  // reference have enough pixels in conjuction\n  //\n\n  // top/left side\n  if (reference[opSide] - arrowElementSize < popper[side]) {\n    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (reference[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n  }\n\n  // compute center of the popper\n  var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n  // Compute the sideValue using the updated popper offsets\n  // take popper margin in account because we don't have this info available\n  var popperMarginSide = getStyleComputedProperty(data.instance.popper, 'ma
 rgin' + sideCapitalized).replace('px', '');\n  var sideValue = center - getClientRect(data.offsets.popper)[side] - popperMarginSide;\n\n  // prevent arrowElement from being placed not contiguously to its popper\n  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n  data.arrowElement = arrowElement;\n  data.offsets.arrow = {};\n  data.offsets.arrow[side] = Math.round(sideValue);\n  data.offsets.arrow[altSide] = ''; // make sure to unset any eventual altSide value from the DOM node\n\n  return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` o
 ption.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-right` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-st
 art', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n  var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var index = validPlacements.indexOf(placement);\n  var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n  FLIP: 'flip',\n  CLOCKWISE: 'clockwise',\n  COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argumen
 t {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n  // if `inner` modifier is enabled, we can't use the `flip` modifier\n  if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n    return data;\n  }\n\n  if (data.flipped && data.placement === data.originalPlacement) {\n    // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n    return data;\n  }\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement);\n\n  var placement = data.placement.split('-')[0];\n  var placementOpposite = getOppositePlacement(placement);\n  var variation = data.placement.split('-')[1] || '';\n\n  var flipOrder = [];\n\n  switch (options.behavior) {\n    case BEHAVIORS.FLIP:\n      flipOrder = [placement, placemen
 tOpposite];\n      break;\n    case BEHAVIORS.CLOCKWISE:\n      flipOrder = clockwise(placement);\n      break;\n    case BEHAVIORS.COUNTERCLOCKWISE:\n      flipOrder = clockwise(placement, true);\n      break;\n    default:\n      flipOrder = options.behavior;\n  }\n\n  flipOrder.forEach(function (step, index) {\n    if (placement !== step || flipOrder.length === index + 1) {\n      return data;\n    }\n\n    placement = data.placement.split('-')[0];\n    placementOpposite = getOppositePlacement(placement);\n\n    var popperOffsets = data.offsets.popper;\n    var refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    var floor = Math.floor;\n    var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.t
 op) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n    var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n    // flip the variation if required\n    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n    var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n    i
 f (overlapsRef || overflowsBoundaries || flippedVariation) {\n      // this boolean to detect any flip loop\n      data.flipped = true;\n\n      if (overlapsRef || overflowsBoundaries) {\n        placement = flipOrder[index + 1];\n      }\n\n      if (flippedVariation) {\n        variation = getOppositeVariation(variation);\n      }\n\n      data.placement = placement + (variation ? '-' + variation : '');\n\n      // this object contains `position`, we want to preserve it along with\n      // any additional property we may add in the future\n      data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Obj
 ect} The data object, properly modified\n */\nfunction keepTogether(data) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var placement = data.placement.split('-')[0];\n  var floor = Math.floor;\n  var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  var side = isVertical ? 'right' : 'bottom';\n  var opSide = isVertical ? 'left' : 'top';\n  var measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[opSide])) {\n    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n  }\n  if (popper[opSide] > floor(reference[side])) {\n    data.offsets.popper[opSide] = floor(reference[side]);\n  }\n\n  return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `wid
 th`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  var value = +split[1];\n  var unit = split[2];\n\n  // If it's not a number it's an operator, I guess\n  if (!value) {\n    return str;\n  }\n\n  if (unit.indexOf('%') === 0) {\n    var element = void 0;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    var rect = getClientRect(element);\n    return rect[measurement] / 100 * value;\n  } else if (unit === 'vh' || unit === 'vw') {\n    // if is a vh or vw, we calculate the size based on the viewport\n    var size = void 0;\n    if (unit === 'vh') {\n     
  size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n    } else {\n      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n    }\n    return size / 100 * value;\n  } else {\n    // if is an explicit pixel unit, we get rid of the unit and keep the value\n    // if is an implicit unit, it's px, and we return just the value\n    return value;\n  }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n  var offsets = [0, 0];\n\n  // Use height if placement is left or right and index is 0 otherwise use width\n  // in this way the first offset wil
 l use an axis and the second one\n  // will use the other one\n  var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n  // Split the offset string to obtain a list of values and operands\n  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n  var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n    return frag.trim();\n  });\n\n  // Detect if the offset string contains a pair of values or a single one\n  // they could be separated by comma or space\n  var divider = fragments.indexOf(find(fragments, function (frag) {\n    return frag.search(/,|\\s/) !== -1;\n  }));\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n  }\n\n  // If divider is found, we divide the list of values and operands to divide\n  // them by ofset X and Y.\n  var splitRegex = /\\s*,\\s*|\\s+/;\n  var ops = divider !== -1 ? [fragments.
 slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map(function (op, index) {\n    // Most of the units rely on the orientation of the popper\n    var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n    var mergeWithPrevious = false;\n    return op\n    // This aggregates any `+` or `-` sign that aren't considered operators\n    // e.g.: 10 + +5 => [10, +, +5]\n    .reduce(function (a, b) {\n      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n        a[a.length - 1] = b;\n        mergeWithPrevious = true;\n        return a;\n      } else if (mergeWithPrevious) {\n        a[a.length - 1] += b;\n        mergeWithPrevious = false;\n        return a;\n      } else {\n        return a.concat(b);\n      }\n    }, [])\n    // Here we conver
 t the string values into number values (in px)\n    .map(function (str) {\n      return toValue(str, measurement, popperOffsets, referenceOffsets);\n    });\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach(function (op, index) {\n    op.forEach(function (frag, index2) {\n      if (isNumeric(frag)) {\n        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n      }\n    });\n  });\n  return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n  var offset = _ref.offset;\n  var placement = data.placement,\n      _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      refere
 nce = _data$offsets.reference;\n\n  var basePlacement = placement.split('-')[0];\n\n  var offsets = void 0;\n  if (isNumeric(+offset)) {\n    offsets = [+offset, 0];\n  } else {\n    offsets = parseOffset(offset, popper, reference, basePlacement);\n  }\n\n  if (basePlacement === 'left') {\n    popper.top += offsets[0];\n    popper.left -= offsets[1];\n  } else if (basePlacement === 'right') {\n    popper.top += offsets[0];\n    popper.left += offsets[1];\n  } else if (basePlacement === 'top') {\n    popper.left += offsets[0];\n    popper.top -= offsets[1];\n  } else if (basePlacement === 'bottom') {\n    popper.left += offsets[0];\n    popper.top += offsets[1];\n  }\n\n  data.popper = popper;\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow
 (data, options) {\n  var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n  // If offsetParent is the reference element, we really want to\n  // go one step up and use the next offsetParent as reference to\n  // avoid to make this modifier completely useless and look like broken\n  if (data.instance.reference === boundariesElement) {\n    boundariesElement = getOffsetParent(boundariesElement);\n  }\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement);\n  options.boundaries = boundaries;\n\n  var order = options.priority;\n  var popper = data.offsets.popper;\n\n  var check = {\n    primary: function primary(placement) {\n      var value = popper[placement];\n      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return defineProperty({}, placement, value);\n    }
 ,\n    secondary: function secondary(placement) {\n      var mainSide = placement === 'right' ? 'left' : 'top';\n      var value = popper[mainSide];\n      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n      }\n      return defineProperty({}, mainSide, value);\n    }\n  };\n\n  order.forEach(function (placement) {\n    var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n    popper = _extends({}, popper, check[side](placement));\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n  var placement = data.placement;\n 
  var basePlacement = placement.split('-')[0];\n  var shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    var _data$offsets = data.offsets,\n        reference = _data$offsets.reference,\n        popper = _data$offsets.popper;\n\n    var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    var side = isVertical ? 'left' : 'top';\n    var measurement = isVertical ? 'width' : 'height';\n\n    var shiftOffsets = {\n      start: defineProperty({}, side, reference[side]),\n      end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n    };\n\n    data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The d
 ata object, properly modified\n */\nfunction hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  var refRect = data.offsets.reference;\n  var bound = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'preventOverflow';\n  }).boundaries;\n\n  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === true) {\n      return data;\n    }\n\n    data.hide = true;\n    data.attributes['x-out-of-boundaries'] = '';\n  } else {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === false) {\n      return data;\n    }\n\n    data.hide = false;\n    data.attributes['x-out-of-boundaries'] = false;\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data obj
 ect generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they a
 re performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n  /**\n   * Modifier used to shift the popper on the start or end of its reference\n   * element.<br />\n   * It will read the variation of the `placement` property.<br />\n   * It can be one either `-end` or `-start`.\n   * @memberof modifiers\n   * @inner\n   */\n  shift: {\n    /** @prop {number} order
 =100 - Index used to define the order of execution */\n    order: 100,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: shift\n  },\n\n  /**\n   * The `offset` modifier can shift your popper on both its axis.\n   *\n   * It accepts the following units:\n   * - `px` or unitless, interpreted as pixels\n   * - `%` or `%r`, percentage relative to the length of the reference element\n   * - `%p`, percentage relative to the length of the popper element\n   * - `vw`, CSS viewport width unit\n   * - `vh`, CSS viewport height unit\n   *\n   * For length is intended the main axis relative to the placement of the popper.<br />\n   * This means that if the placement is `top` or `bottom`, the length will be the\n   * `width`. In case of `left` or `right`, it will be the height.\n   *\n   * You can provide a single value (as `Number` or `String`), or a pair of values\n   * as `String` divided by a comma o
 r one (or more) white spaces.<br />\n   * The latter is a deprecated method because it leads to confusion and will be\n   * removed in v2.<br />\n   * Additionally, it accepts additions and subtractions between different units.\n   * Note that multiplications and divisions aren't supported.\n   *\n   * Valid examples are:\n   * ```\n   * 10\n   * '10%'\n   * '10, 10'\n   * '10%, 10'\n   * '10 + 10%'\n   * '10 - 5vh + 3%'\n   * '-10px + 5vh, 5px - 6%'\n   * ```\n   * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n   * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  offset: {\n    /** @prop {number} order=200 - Index used to define the order of execution */\n    order: 200,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or n
 ot */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: offset,\n    /** @prop {Number|String} offset=0\n     * The offset value as described in the modifier description\n     */\n    offset: 0\n  },\n\n  /**\n   * Modifier used to prevent the popper from being positioned outside the boundary.\n   *\n   * An scenario exists where the reference itself is not within the boundaries.<br />\n   * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n   * In this case we need to decide whether the popper should either:\n   *\n   * - detach from the reference and remain \"trapped\" in the boundaries, or\n   * - if it should ignore the boundary and \"escape with its reference\"\n   *\n   * When `escapeWithReference` is set to`true` and reference is completely\n   * outside its boundaries, the popper will overflow (or completely leave)\n   * the boundaries in order to remain attached to the edge of the reference.\n   *\n   * @memberof modifiers\n   * @inner\n
    */\n  preventOverflow: {\n    /** @prop {number} order=300 - Index used to define the order of execution */\n    order: 300,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: preventOverflow,\n    /**\n     * @prop {Array} [priority=['left','right','top','bottom']]\n     * Popper will try to prevent overflow following these priorities by default,\n     * then, it could overflow on the left and on top of the `boundariesElement`\n     */\n    priority: ['left', 'right', 'top', 'bottom'],\n    /**\n     * @prop {number} padding=5\n     * Amount of pixel used to define a minimum distance between the boundaries\n     * and the popper this makes sure the popper has always a little padding\n     * between the edges of its container\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='scrollParent'\n     * Boundaries used by the modifier, can be `scrollParent`, 
 `window`,\n     * `viewport` or any DOM element.\n     */\n    boundariesElement: 'scrollParent'\n  },\n\n  /**\n   * Modifier used to make sure the reference and its popper stay near eachothers\n   * without leaving any gap between the two. Expecially useful when the arrow is\n   * enabled and you want to assure it to point to its reference element.\n   * It cares only about the first axis, you can still have poppers with margin\n   * between the popper and its reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  keepTogether: {\n    /** @prop {number} order=400 - Index used to define the order of execution */\n    order: 400,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: keepTogether\n  },\n\n  /**\n   * This modifier is used to move the `arrowElement` of the popper to make\n   * sure it is positioned between the reference element and its popper element.\n   * It will rea
 d the outer size of the `arrowElement` node to detect how many\n   * pixels of conjuction are needed.\n   *\n   * It has no effect if no `arrowElement` is provided.\n   * @memberof modifiers\n   * @inner\n   */\n  arrow: {\n    /** @prop {number} order=500 - Index used to define the order of execution */\n    order: 500,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: arrow,\n    /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n    element: '[x-arrow]'\n  },\n\n  /**\n   * Modifier used to flip the popper's placement when it starts to overlap its\n   * reference element.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   *\n   * **NOTE:** this modifier will interrupt the current update cycle and will\n   * restart it if it detects the need to flip the placement.\n   * @memberof modifiers\n   * @inner\n   */\n  flip: {\n
     /** @prop {number} order=600 - Index used to define the order of execution */\n    order: 600,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: flip,\n    /**\n     * @prop {String|Array} behavior='flip'\n     * The behavior used to change the popper's placement. It can be one of\n     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n     * placements (with optional variations).\n     */\n    behavior: 'flip',\n    /**\n     * @prop {number} padding=5\n     * The popper will flip if it hits the edges of the `boundariesElement`\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='viewport'\n     * The element which will define the boundaries of the popper position,\n     * the popper will never be placed outside of the defined boundaries\n     * (except if keepTogether is enabled)\n     */\n    boundariesElement: 'viewport'\n 
  },\n\n  /**\n   * Modifier used to make the popper flow toward the inner of the reference element.\n   * By default, when this modifier is disabled, the popper will be placed outside\n   * the reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  inner: {\n    /** @prop {number} order=700 - Index used to define the order of execution */\n    order: 700,\n    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n    enabled: false,\n    /** @prop {ModifierFn} */\n    fn: inner\n  },\n\n  /**\n   * Modifier used to hide the popper when its reference element is outside of the\n   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n   * be used to hide with a CSS selector the popper when its reference is\n   * out of boundaries.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   * @memberof modifiers\n   * @inner\n   */\n  hide: {\n    /** @prop {number} order=800 - Index used to define th
 e order of execution */\n    order: 800,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: hide\n  },\n\n  /**\n   * Computes the style that will be applied to the popper element to gets\n   * properly positioned.\n   *\n   * Note that this modifier will not touch the DOM, it just prepares the styles\n   * so that `applyStyle` modifier can apply it. This separation is useful\n   * in case you need to replace `applyStyle` with a custom implementation.\n   *\n   * This modifier has `850` as `order` value to maintain backward compatibility\n   * with previous versions of Popper.js. Expect the modifiers ordering method\n   * to change in future major versions of the library.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  computeStyle: {\n    /** @prop {number} order=850 - Index used to define the order of execution */\n    order: 850,\n    /** @prop {Boolean} enabled=true - Whether the mo
 difier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: computeStyle,\n    /**\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3d transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties.\n     */\n    gpuAcceleration: true,\n    /**\n     * @prop {string} [x='bottom']\n     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n     * Change this if your popper should grow in a direction different from `bottom`\n     */\n    x: 'bottom',\n    /**\n     * @prop {string} [x='left']\n     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n     * Change this if your popper should grow in a direction different from `right`\n     */\n    y: 'right'\n  },\n\n  /**\n   * Applies the computed styles to the popper element.\n   *\n   * All the DOM manipulations are limited to this modifier. This is useful in case\n   * you want to integrate Popper.js
  inside a framework or view library and you\n   * want to delegate all the DOM manipulations to it.\n   *\n   * Note that if you disable this modifier, you must make sure the popper element\n   * has its position set to `absolute` before Popper.js can do its work!\n   *\n   * Just disable this modifier and define you own to achieve the desired effect.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  applyStyle: {\n    /** @prop {number} order=900 - Index used to define the order of execution */\n    order: 900,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: applyStyle,\n    /** @prop {Function} */\n    onLoad: applyStyleOnLoad,\n    /**\n     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3d transformation to position the popper.\n     * Otherwise, it will use the `top` an
 d `left` properties.\n     */\n    gpuAcceleration: undefined\n  }\n};\n\n/**\n * The `dataObject` is an object containing all the informations used by Popper.js\n * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined h
 ere will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements.\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overriden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass as 3rd argument an object with the same\n * structure of this object, example:\n * ```\n * new Popper(ref, pop, {\n *   modifiers: {\n *     preventOverflow: { enabled: false }\n *   }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar 
 Defaults = {\n  /**\n   * Popper's placement\n   * @prop {Popper.placements} placement='bottom'\n   */\n  placement: 'bottom',\n\n  /**\n   * Whether events (resize, scroll) are initially enabled\n   * @prop {Boolean} eventsEnabled=true\n   */\n  eventsEnabled: true,\n\n  /**\n   * Set to true if you want to automatically remove the popper when\n   * you call the `destroy` method.\n   * @prop {Boolean} removeOnDestroy=false\n   */\n  removeOnDestroy: false,\n\n  /**\n   * Callback called when the popper is created.<br />\n   * By default, is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onCreate}\n   */\n  onCreate: function onCreate() {},\n\n  /**\n   * Callback called when the popper is updated, this callback is not called\n   * on the initialization/creation of the popper, but only on subsequent\n   * updates.<br />\n   * By default, is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onUpdate}\n   */\
 n  onUpdate: function onUpdate() {},\n\n  /**\n   * List of modifiers used to modify the offsets before they are applied to the popper.\n   * They provide most of the functionalities of Popper.js\n   * @prop {modifiers}\n   */\n  modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n  /**\n   * Create a new Popper.js instance\n   * @class Popper\n   * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n   * @param {HTMLElement} popper - The HTML element used as popper.\n   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n   * @return {Object} instance - The generated Popper.js instance\n   */\n  function Popper(reference, popper) {\n    var _this = this;\n\n    var options = arguments.length > 2 && arguments[2] !== undefined ? argume
 nts[2] : {};\n    classCallCheck(this, Popper);\n\n    this.scheduleUpdate = function () {\n      return requestAnimationFrame(_this.update);\n    };\n\n    // make update() debounced, so that it only runs at most once-per-tick\n    this.update = debounce(this.update.bind(this));\n\n    // with {} we create a new object with the options inside it\n    this.options = _extends({}, Popper.Defaults, options);\n\n    // init state\n    this.state = {\n      isDestroyed: false,\n      isCreated: false,\n      scrollParents: []\n    };\n\n    // get reference and popper elements (allow jQuery wrappers)\n    this.reference = reference.jquery ? reference[0] : reference;\n    this.popper = popper.jquery ? popper[0] : popper;\n\n    // Deep merge modifiers options\n    this.options.modifiers = {};\n    Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n      _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, optio
 ns.modifiers ? options.modifiers[name] : {});\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n      return _extends({\n        name: name\n      }, _this.options.modifiers[name]);\n    })\n    // sort the modifiers by order\n    .sort(function (a, b) {\n      return a.order - b.order;\n    });\n\n    // modifiers have the ability to execute arbitrary code when Popper.js get inited\n    // such code is executed in the same order of its modifier\n    // they could add new properties to their options configuration\n    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n    this.modifiers.forEach(function (modifierOptions) {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n      }\n    });\n\n    // fire the first update 
 to position the popper in the right place\n    this.update();\n\n    var eventsEnabled = this.options.eventsEnabled;\n    if (eventsEnabled) {\n      // setup event listeners, they will take care of update the position in specific situations\n      this.enableEventListeners();\n    }\n\n    this.state.eventsEnabled = eventsEnabled;\n  }\n\n  // We can't use class properties because they don't get listed in the\n  // class prototype and break stuff like Sinon stubs\n\n\n  createClass(Popper, [{\n    key: 'update',\n    value: function update$$1() {\n      return update.call(this);\n    }\n  }, {\n    key: 'destroy',\n    value: function destroy$$1() {\n      return destroy.call(this);\n    }\n  }, {\n    key: 'enableEventListeners',\n    value: function enableEventListeners$$1() {\n      return enableEventListeners.call(this);\n    }\n  }, {\n    key: 'disableEventListeners',\n    value: function disableEventListeners$$1() {\n      return disableEventListeners.call(this);\n    }\n\n 
    /**\n     * Schedule an update, it will run on the next UI update available\n     * @method scheduleUpdate\n     * @memberof Popper\n     */\n\n\n    /**\n     * Collection of utilities useful when writing custom modifiers.\n     * Starting from version 1.7, this method is available only if you\n     * include `popper-utils.js` before `popper.js`.\n     *\n     * **DEPRECATION**: This way to access PopperUtils is deprecated\n     * and will be removed in v2! Use the PopperUtils module directly instead.\n     * Due to the high instability of the methods contained in Utils, we can't\n     * guarantee them to follow semver. Use them at your own risk!\n     * @static\n     * @private\n     * @type {Object}\n     * @deprecated since version 1.8\n     * @member Utils\n     * @memberof Popper\n     */\n\n  }]);\n  return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM no
 de.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from
  './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (() => {\n\n  /**\n   * Check for Popper dependency\n   * Popper - https://popper.js.org\n   */\n  if (typeof Popper === 'undefined') {\n    throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                     = 'dropdown'\n  const VERSION                  = '4.0.0-beta.2'\n  const DATA_KEY                 = 'bs.dropdown'\n  const EVENT_KEY                = `.${DATA_KEY}`\n  const DATA_API_KEY             = '.data-api'\n  const
  JQUERY_NO_CONFLICT       = $.fn[NAME]\n  const ESCAPE_KEYCODE           = 27 // KeyboardEvent.which value for Escape (Esc) key\n  const SPACE_KEYCODE            = 32 // KeyboardEvent.which value for space key\n  const TAB_KEYCODE              = 9 // KeyboardEvent.which value for tab key\n  const ARROW_UP_KEYCODE         = 38 // KeyboardEvent.which value for up arrow key\n  const ARROW_DOWN_KEYCODE       = 40 // KeyboardEvent.which value for down arrow key\n  const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n  const REGEXP_KEYDOWN           = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n  const Event = {\n    HIDE             : `hide${EVENT_KEY}`,\n    HIDDEN           : `hidden${EVENT_KEY}`,\n    SHOW             : `show${EVENT_KEY}`,\n    SHOWN            : `shown${EVENT_KEY}`,\n    CLICK            : `click${EVENT_KEY}`,\n    CLICK_DATA_API   : `click${EVENT_KEY}${DATA_API_KEY}`,\n   
  KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n    KEYUP_DATA_API   : `keyup${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DISABLED  : 'disabled',\n    SHOW      : 'show',\n    DROPUP    : 'dropup',\n    MENURIGHT : 'dropdown-menu-right',\n    MENULEFT  : 'dropdown-menu-left'\n  }\n\n  const Selector = {\n    DATA_TOGGLE   : '[data-toggle=\"dropdown\"]',\n    FORM_CHILD    : '.dropdown form',\n    MENU          : '.dropdown-menu',\n    NAVBAR_NAV    : '.navbar-nav',\n    VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled)'\n  }\n\n  const AttachmentMap = {\n    TOP       : 'top-start',\n    TOPEND    : 'top-end',\n    BOTTOM    : 'bottom-start',\n    BOTTOMEND : 'bottom-end'\n  }\n\n  const Default = {\n    offset      : 0,\n    flip        : true\n  }\n\n  const DefaultType = {\n    offset      : '(number|string|function)',\n    flip        : 'boolean'\n  }\n\n\n  /**\n   * ----------------------------------------------------------------------
 --\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Dropdown {\n\n    constructor(element, config) {\n      this._element  = element\n      this._popper   = null\n      this._config   = this._getConfig(config)\n      this._menu     = this._getMenuElement()\n      this._inNavbar = this._detectNavbar()\n\n      this._addEventListeners()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n    // public\n\n    toggle() {\n      if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      const parent   = Dropdown._getParentFromElement(this._element)\n      const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n      Dropdown._clearMenus()\n\n      if (isActive) {\n        return\n      }\n\n      const
  relatedTarget = {\n        relatedTarget : this._element\n      }\n      const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n      $(parent).trigger(showEvent)\n\n      if (showEvent.isDefaultPrevented()) {\n        return\n      }\n\n      let element = this._element\n      // for dropup with alignment we use the parent as popper container\n      if ($(parent).hasClass(ClassName.DROPUP)) {\n        if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {\n          element = parent\n        }\n      }\n      this._popper = new Popper(element, this._menu, this._getPopperConfig())\n\n      // if this is a touch-enabled device we add extra\n      // empty mouseover listeners to the body's immediate children;\n      // only needed because of broken event delegation on iOS\n      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n      if ('ontouchstart' in document.documentElement &&\n         !$(parent).closest(Select
 or.NAVBAR_NAV).length) {\n        $('body').children().on('mouseover', null, $.noop)\n      }\n\n      this._element.focus()\n      this._element.setAttribute('aria-expanded', true)\n\n      $(this._menu).toggleClass(ClassName.SHOW)\n      $(parent)\n        .toggleClass(ClassName.SHOW)\n        .trigger($.Event(Event.SHOWN, relatedTarget))\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      $(this._element).off(EVENT_KEY)\n      this._element = null\n      this._menu = null\n      if (this._popper !== null) {\n        this._popper.destroy()\n      }\n      this._popper = null\n    }\n\n    update() {\n      this._inNavbar = this._detectNavbar()\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate()\n      }\n    }\n\n    // private\n\n    _addEventListeners() {\n      $(this._element).on(Event.CLICK, (event) => {\n        event.preventDefault()\n        event.stopPropagation()\n        this.toggle()\n      })\n    }\n\n    _getConfig(co
 nfig) {\n      config = $.extend(\n        {},\n        this.constructor.Default,\n        $(this._element).data(),\n        config\n      )\n\n      Util.typeCheckConfig(\n        NAME,\n        config,\n        this.constructor.DefaultType\n      )\n\n      return config\n    }\n\n    _getMenuElement() {\n      if (!this._menu) {\n        const parent = Dropdown._getParentFromElement(this._element)\n        this._menu = $(parent).find(Selector.MENU)[0]\n      }\n      return this._menu\n    }\n\n    _getPlacement() {\n      const $parentDropdown = $(this._element).parent()\n      let placement = AttachmentMap.BOTTOM\n\n      // Handle dropup\n      if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n        placement = AttachmentMap.TOP\n        if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n          placement = AttachmentMap.TOPEND\n        }\n      } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n        placement = AttachmentMap.BOTTOMEND\n      }\n      return p
 lacement\n    }\n\n    _detectNavbar() {\n      return $(this._element).closest('.navbar').length > 0\n    }\n\n    _getPopperConfig() {\n      const offsetConf = {}\n      if (typeof this._config.offset === 'function') {\n        offsetConf.fn = (data) => {\n          data.offsets = $.extend({}, data.offsets, this._config.offset(data.offsets) || {})\n          return data\n        }\n      } else {\n        offsetConf.offset = this._config.offset\n      }\n      const popperConfig = {\n        placement : this._getPlacement(),\n        modifiers : {\n          offset : offsetConf,\n          flip : {\n            enabled : this._config.flip\n          }\n        }\n      }\n\n      // Disable Popper.js for Dropdown in Navbar\n      if (this._inNavbar) {\n        popperConfig.modifiers.applyStyle = {\n          enabled: !this._inNavbar\n        }\n      }\n      return popperConfig\n    }\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {
 \n        let data = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' ? config : null\n\n        if (!data) {\n          data = new Dropdown(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n    static _clearMenus(event) {\n      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n        event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n        return\n      }\n\n      const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n      for (let i = 0; i < toggles.length; i++) {\n        const parent        = Dropdown._getParentFromElement(toggles[i])\n        const context       = $(toggles[i]).data(DATA_KEY)\n        const relatedTarget = {\n          relatedTarget : toggles[i]\n        }\n\n        if (!
 context) {\n          continue\n        }\n\n        const dropdownMenu = context._menu\n        if (!$(parent).hasClass(ClassName.SHOW)) {\n          continue\n        }\n\n        if (event && (event.type === 'click' &&\n            /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE)\n            && $.contains(parent, event.target)) {\n          continue\n        }\n\n        const hideEvent = $.Event(Event.HIDE, relatedTarget)\n        $(parent).trigger(hideEvent)\n        if (hideEvent.isDefaultPrevented()) {\n          continue\n        }\n\n        // if this is a touch-enabled device we remove the extra\n        // empty mouseover listeners we added for iOS support\n        if ('ontouchstart' in document.documentElement) {\n          $('body').children().off('mouseover', null, $.noop)\n        }\n\n        toggles[i].setAttribute('aria-expanded', 'false')\n\n        $(dropdownMenu).removeClass(ClassName.SHOW)\n        $(paren
 t)\n          .removeClass(ClassName.SHOW)\n          .trigger($.Event(Event.HIDDEN, relatedTarget))\n      }\n    }\n\n    static _getParentFromElement(element) {\n      let parent\n      const selector = Util.getSelectorFromElement(element)\n\n      if (selector) {\n        parent = $(selector)[0]\n      }\n\n      return parent || element.parentNode\n    }\n\n    static _dataApiKeydownHandler(event) {\n      if (!REGEXP_KEYDOWN.test(event.which) || /button/i.test(event.target.tagName) && event.which === SPACE_KEYCODE ||\n         /input|textarea/i.test(event.target.tagName)) {\n        return\n      }\n\n      event.preventDefault()\n      event.stopPropagation()\n\n      if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      const parent   = Dropdown._getParentFromElement(this)\n      const isActive = $(parent).hasClass(ClassName.SHOW)\n\n      if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n         
   isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n\n        if (event.which === ESCAPE_KEYCODE) {\n          const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n          $(toggle).trigger('focus')\n        }\n\n        $(this).trigger('click')\n        return\n      }\n\n      const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n      if (!items.length) {\n        return\n      }\n\n      let index = items.indexOf(event.target)\n\n      if (event.which === ARROW_UP_KEYCODE && index > 0) { // up\n        index--\n      }\n\n      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // down\n        index++\n      }\n\n      if (index < 0) {\n        index = 0\n      }\n\n      items[index].focus()\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $
 (document)\n    .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE,  Dropdown._dataApiKeydownHandler)\n    .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n    .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault()\n      event.stopPropagation()\n      Dropdown._jQueryInterface.call($(this), 'toggle')\n    })\n    .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n      e.stopPropagation()\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Dropdown._jQueryInterface\n  $.fn[NAME].Constructor = Dropdown\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Dropdown._jQueryInterface\n  }\n\n  return Dropdown\n\n})($, Popper
 )\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                         = 'modal'\n  const VERSION                      = '4.0.0-beta.2'\n  const DATA_KEY                     = 'bs.modal'\n  const EVENT_KEY                    = `.${DATA_KEY}`\n  const DATA_API_KEY                 = '.data-api'\n  const JQUERY_NO_CONFLICT           = $.fn[NAME]\n  const TRANSITION_DURATION          = 300\n  const BACKDROP_TRANSITION_DURATION = 150\n  
 const ESCAPE_KEYCODE               = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n  const Default = {\n    backdrop : true,\n    keyboard : true,\n    focus    : true,\n    show     : true\n  }\n\n  const DefaultType = {\n    backdrop : '(boolean|string)',\n    keyboard : 'boolean',\n    focus    : 'boolean',\n    show     : 'boolean'\n  }\n\n  const Event = {\n    HIDE              : `hide${EVENT_KEY}`,\n    HIDDEN            : `hidden${EVENT_KEY}`,\n    SHOW              : `show${EVENT_KEY}`,\n    SHOWN             : `shown${EVENT_KEY}`,\n    FOCUSIN           : `focusin${EVENT_KEY}`,\n    RESIZE            : `resize${EVENT_KEY}`,\n    CLICK_DISMISS     : `click.dismiss${EVENT_KEY}`,\n    KEYDOWN_DISMISS   : `keydown.dismiss${EVENT_KEY}`,\n    MOUSEUP_DISMISS   : `mouseup.dismiss${EVENT_KEY}`,\n    MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n    CLICK_DATA_API    : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SCROLLBAR_MEASURER : 'moda
 l-scrollbar-measure',\n    BACKDROP           : 'modal-backdrop',\n    OPEN               : 'modal-open',\n    FADE               : 'fade',\n    SHOW               : 'show'\n  }\n\n  const Selector = {\n    DIALOG             : '.modal-dialog',\n    DATA_TOGGLE        : '[data-toggle=\"modal\"]',\n    DATA_DISMISS       : '[data-dismiss=\"modal\"]',\n    FIXED_CONTENT      : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n    STICKY_CONTENT     : '.sticky-top',\n    NAVBAR_TOGGLER     : '.navbar-toggler'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Modal {\n\n    constructor(element, config) {\n      this._config              = this._getConfig(config)\n      this._element             = element\n      this._dialog              = $(element).find(Selector.DIALOG)[0]\n      this._backdrop            = null\n      
 this._isShown             = false\n      this._isBodyOverflowing   = false\n      this._ignoreBackdropClick = false\n      this._originalBodyPadding = 0\n      this._scrollbarWidth      = 0\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    toggle(relatedTarget) {\n      return this._isShown ? this.hide() : this.show(relatedTarget)\n    }\n\n    show(relatedTarget) {\n      if (this._isTransitioning || this._isShown) {\n        return\n      }\n\n      if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {\n        this._isTransitioning = true\n      }\n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget\n      })\n\n      $(this._element).trigger(showEvent)\n\n      if (this._isShown || showEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown = true\n\n      this._checkScrollbar()\n      this._s
 etScrollbar()\n\n      this._adjustDialog()\n\n      $(document.body).addClass(ClassName.OPEN)\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(this._element).on(\n        Event.CLICK_DISMISS,\n        Selector.DATA_DISMISS,\n        (event) => this.hide(event)\n      )\n\n      $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n        $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n          if ($(event.target).is(this._element)) {\n            this._ignoreBackdropClick = true\n          }\n        })\n      })\n\n      this._showBackdrop(() => this._showElement(relatedTarget))\n    }\n\n    hide(event) {\n      if (event) {\n        event.preventDefault()\n      }\n\n      if (this._isTransitioning || !this._isShown) {\n        return\n      }\n\n      const hideEvent = $.Event(Event.HIDE)\n\n      $(this._element).trigger(hideEvent)\n\n      if (!this._isShown || hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown
  = false\n\n      const transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)\n\n      if (transition) {\n        this._isTransitioning = true\n      }\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(document).off(Event.FOCUSIN)\n\n      $(this._element).removeClass(ClassName.SHOW)\n\n      $(this._element).off(Event.CLICK_DISMISS)\n      $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n      if (transition) {\n\n        $(this._element)\n          .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n          .emulateTransitionEnd(TRANSITION_DURATION)\n      } else {\n        this._hideModal()\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n      this._config              = null\n      this._element             = null\n      this._dialog              = null\n      this._backdrop            = null\n      this.
 _isShown             = null\n      this._isBodyOverflowing   = null\n      this._ignoreBackdropClick = null\n      this._scrollbarWidth      = null\n    }\n\n    handleUpdate() {\n      this._adjustDialog()\n    }\n\n    // private\n\n    _getConfig(config) {\n      config = $.extend({}, Default, config)\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _showElement(relatedTarget) {\n      const transition = Util.supportsTransitionEnd() &&\n        $(this._element).hasClass(ClassName.FADE)\n\n      if (!this._element.parentNode ||\n         this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n        // don't move modals dom position\n        document.body.appendChild(this._element)\n      }\n\n      this._element.style.display = 'block'\n      this._element.removeAttribute('aria-hidden')\n      this._element.scrollTop = 0\n\n      if (transition) {\n        Util.reflow(this._element)\n      }\n\n      $(this._element).addClass(ClassNam
 e.SHOW)\n\n      if (this._config.focus) {\n        this._enforceFocus()\n      }\n\n      const shownEvent = $.Event(Event.SHOWN, {\n        relatedTarget\n      })\n\n      const transitionComplete = () => {\n        if (this._config.focus) {\n          this._element.focus()\n        }\n        this._isTransitioning = false\n        $(this._element).trigger(shownEvent)\n      }\n\n      if (transition) {\n        $(this._dialog)\n          .one(Util.TRANSITION_END, transitionComplete)\n          .emulateTransitionEnd(TRANSITION_DURATION)\n      } else {\n        transitionComplete()\n      }\n    }\n\n    _enforceFocus() {\n      $(document)\n        .off(Event.FOCUSIN) // guard against infinite focus loop\n        .on(Event.FOCUSIN, (event) => {\n          if (document !== event.target &&\n              this._element !== event.target &&\n              !$(this._element).has(event.target).length) {\n            this._element.focus()\n          }\n        })\n    }\n\n    _setEscape
 Event() {\n      if (this._isShown && this._config.keyboard) {\n        $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n          if (event.which === ESCAPE_KEYCODE) {\n            event.preventDefault()\n            this.hide()\n          }\n        })\n\n      } else if (!this._isShown) {\n        $(this._element).off(Event.KEYDOWN_DISMISS)\n      }\n    }\n\n    _setResizeEvent() {\n      if (this._isShown) {\n        $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n      } else {\n        $(window).off(Event.RESIZE)\n      }\n    }\n\n    _hideModal() {\n      this._element.style.display = 'none'\n      this._element.setAttribute('aria-hidden', true)\n      this._isTransitioning = false\n      this._showBackdrop(() => {\n        $(document.body).removeClass(ClassName.OPEN)\n        this._resetAdjustments()\n        this._resetScrollbar()\n        $(this._element).trigger(Event.HIDDEN)\n      })\n    }\n\n    _removeBackdrop() {\n      if (this._backdrop)
  {\n        $(this._backdrop).remove()\n        this._backdrop = null\n      }\n    }\n\n    _showBackdrop(callback) {\n      const animate = $(this._element).hasClass(ClassName.FADE) ?\n        ClassName.FADE : ''\n\n      if (this._isShown && this._config.backdrop) {\n        const doAnimate = Util.supportsTransitionEnd() && animate\n\n        this._backdrop = document.createElement('div')\n        this._backdrop.className = ClassName.BACKDROP\n\n        if (animate) {\n          $(this._backdrop).addClass(animate)\n        }\n\n        $(this._backdrop).appendTo(document.body)\n\n        $(this._element).on(Event.CLICK_DISMISS, (event) => {\n          if (this._ignoreBackdropClick) {\n            this._ignoreBackdropClick = false\n            return\n          }\n          if (event.target !== event.currentTarget) {\n            return\n          }\n          if (this._config.backdrop === 'static') {\n            this._element.focus()\n          } else {\n            this.hide()\
 n          }\n        })\n\n        if (doAnimate) {\n          Util.reflow(this._backdrop)\n        }\n\n        $(this._backdrop).addClass(ClassName.SHOW)\n\n        if (!callback) {\n          return\n        }\n\n        if (!doAnimate) {\n          callback()\n          return\n        }\n\n        $(this._backdrop)\n          .one(Util.TRANSITION_END, callback)\n          .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n\n      } else if (!this._isShown && this._backdrop) {\n        $(this._backdrop).removeClass(ClassName.SHOW)\n\n        const callbackRemove = () => {\n          this._removeBackdrop()\n          if (callback) {\n            callback()\n          }\n        }\n\n        if (Util.supportsTransitionEnd() &&\n           $(this._element).hasClass(ClassName.FADE)) {\n          $(this._backdrop)\n            .one(Util.TRANSITION_END, callbackRemove)\n            .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n        } else {\n          callbackRemove()\n  
       }\n\n      } else if (callback) {\n        callback()\n      }\n    }\n\n\n    // ----------------------------------------------------------------------\n    // the following methods are used to handle overflowing modals\n    // todo (fat): these should probably be refactored out of modal.js\n    // ----------------------------------------------------------------------\n\n    _adjustDialog() {\n      const isModalOverflowing =\n        this._element.scrollHeight > document.documentElement.clientHeight\n\n      if (!this._isBodyOverflowing && isModalOverflowing) {\n        this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n      }\n\n      if (this._isBodyOverflowing && !isModalOverflowing) {\n        this._element.style.paddingRight = `${this._scrollbarWidth}px`\n      }\n    }\n\n    _resetAdjustments() {\n      this._element.style.paddingLeft = ''\n      this._element.style.paddingRight = ''\n    }\n\n    _checkScrollbar() {\n      const rect = document.body.getB
 oundingClientRect()\n      this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n      this._scrollbarWidth = this._getScrollbarWidth()\n    }\n\n    _setScrollbar() {\n      if (this._isBodyOverflowing) {\n        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n        // Adjust fixed content padding\n        $(Selector.FIXED_CONTENT).each((index, element) => {\n          const actualPadding = $(element)[0].style.paddingRight\n          const calculatedPadding = $(element).css('padding-right')\n          $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust sticky content margin\n        $(Selector.STICKY_CONTENT).each((index, element) => {\n          const actualMargin = $(element)[0].style.marginRight\n          const calculatedM
 argin = $(element).css('margin-right')\n          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n        })\n\n        // Adjust navbar-toggler margin\n        $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n          const actualMargin = $(element)[0].style.marginRight\n          const calculatedMargin = $(element).css('margin-right')\n          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust body padding\n        const actualPadding = document.body.style.paddingRight\n        const calculatedPadding = $('body').css('padding-right')\n        $('body').data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n      }\n    }\n\n    _resetScrollbar() {\n      // Restore fixed content padding\n      $(Selector.FIXED_CONTENT).each(
 (index, element) => {\n        const padding = $(element).data('padding-right')\n        if (typeof padding !== 'undefined') {\n          $(element).css('padding-right', padding).removeData('padding-right')\n        }\n      })\n\n      // Restore sticky content and navbar-toggler margin\n      $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {\n        const margin = $(element).data('margin-right')\n        if (typeof margin !== 'undefined') {\n          $(element).css('margin-right', margin).removeData('margin-right')\n        }\n      })\n\n      // Restore body padding\n      const padding = $('body').data('padding-right')\n      if (typeof padding !== 'undefined') {\n        $('body').css('padding-right', padding).removeData('padding-right')\n      }\n    }\n\n    _getScrollbarWidth() { // thx d.walsh\n      const scrollDiv = document.createElement('div')\n      scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n      document.body.appendChi
 ld(scrollDiv)\n      const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n      document.body.removeChild(scrollDiv)\n      return scrollbarWidth\n    }\n\n\n    // static\n\n    static _jQueryInterface(config, relatedTarget) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = $.extend(\n          {},\n          Modal.Default,\n          $(this).data(),\n          typeof config === 'object' && config\n        )\n\n        if (!data) {\n          data = new Modal(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config](relatedTarget)\n        } else if (_config.show) {\n          data.show(relatedTarget)\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * -------------------------------
 -----------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    let target\n    const selector = Util.getSelectorFromElement(this)\n\n    if (selector) {\n      target = $(selector)[0]\n    }\n\n    const config = $(target).data(DATA_KEY) ?\n      'toggle' : $.extend({}, $(target).data(), $(this).data())\n\n    if (this.tagName === 'A' || this.tagName === 'AREA') {\n      event.preventDefault()\n    }\n\n    const $target = $(target).one(Event.SHOW, (showEvent) => {\n      if (showEvent.isDefaultPrevented()) {\n        // only register focus restorer if modal will actually get shown\n        return\n      }\n\n      $target.one(Event.HIDDEN, () => {\n        if ($(this).is(':visible')) {\n          this.focus()\n        }\n      })\n    })\n\n    Modal._jQueryInterface.call($(target), config, this)\n  })
 \n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Modal._jQueryInterface\n  $.fn[NAME].Constructor = Modal\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Modal._jQueryInterface\n  }\n\n  return Modal\n\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (() => {\n\n  /**\n   * Check for Popper dependency\n   * Popper - https://popper.js.org\n   */\n  if (typeof Popper === 'undefined') {\n    throw new E
 rror('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'tooltip'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.tooltip'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n  const CLASS_PREFIX        = 'bs-tooltip'\n  const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n  const DefaultType = {\n    animation           : 'boolean',\n    template            : 'string',\n    title               : '(string|element|function)',\n    trigger             : 'string',\n    delay               : '(number|object)',\n    html                : 'boolean',\n    selector            : '(string|boolean)',\n    placement           
 : '(string|function)',\n    offset              : '(number|string)',\n    container           : '(string|element|boolean)',\n    fallbackPlacement   : '(string|array)'\n  }\n\n  const AttachmentMap = {\n    AUTO   : 'auto',\n    TOP    : 'top',\n    RIGHT  : 'right',\n    BOTTOM : 'bottom',\n    LEFT   : 'left'\n  }\n\n  const Default = {\n    animation           : true,\n    template            : '<div class=\"tooltip\" role=\"tooltip\">'\n                        + '<div class=\"arrow\"></div>'\n                        + '<div class=\"tooltip-inner\"></div></div>',\n    trigger             : 'hover focus',\n    title               : '',\n    delay               : 0,\n    html                : false,\n    selector            : false,\n    placement           : 'top',\n    offset              : 0,\n    container           : false,\n    fallbackPlacement   : 'flip'\n  }\n\n  const HoverState = {\n    SHOW : 'show',\n    OUT  : 'out'\n  }\n\n  const Event = {\n    HIDE       : `hide${E
 VENT_KEY}`,\n    HIDDEN     : `hidden${EVENT_KEY}`,\n    SHOW       : `show${EVENT_KEY}`,\n    SHOWN      : `shown${EVENT_KEY}`,\n    INSERTED   : `inserted${EVENT_KEY}`,\n    CLICK      : `click${EVENT_KEY}`,\n    FOCUSIN    : `focusin${EVENT_KEY}`,\n    FOCUSOUT   : `focusout${EVENT_KEY}`,\n    MOUSEENTER : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE : `mouseleave${EVENT_KEY}`\n  }\n\n  const ClassName = {\n    FADE : 'fade',\n    SHOW : 'show'\n  }\n\n  const Selector = {\n    TOOLTIP       : '.tooltip',\n    TOOLTIP_INNER : '.tooltip-inner',\n    ARROW         : '.arrow'\n  }\n\n  const Trigger = {\n    HOVER  : 'hover',\n    FOCUS  : 'focus',\n    CLICK  : 'click',\n    MANUAL : 'manual'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Tooltip {\n\n    constructor(element, config) {\n\n      // private\n      this._i
 sEnabled     = true\n      this._timeout       = 0\n      this._hoverState    = ''\n      this._activeTrigger = {}\n      this._popper        = null\n\n      // protected\n      this.element = element\n      this.config  = this._getConfig(config)\n      this.tip     = null\n\n      this._setListeners()\n\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get NAME() {\n      return NAME\n    }\n\n    static get DATA_KEY() {\n      return DATA_KEY\n    }\n\n    static get Event() {\n      return Event\n    }\n\n    static get EVENT_KEY() {\n      return EVENT_KEY\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n\n    // public\n\n    enable() {\n      this._isEnabled = true\n    }\n\n    disable() {\n      this._isEnabled = false\n    }\n\n    toggleEnabled() {\n      this._isEnabled = !this._isEnabled\n    }\n\n    toggle(event) {\n      if (!this._i
 sEnabled) {\n        return\n      }\n\n      if (event) {\n        const dataKey = this.constructor.DATA_KEY\n        let context = $(event.currentTarget).data(dataKey)\n\n        if (!context) {\n          context = new this.constructor(\n            event.currentTarget,\n            this._getDelegateConfig()\n          )\n          $(event.currentTarget).data(dataKey, context)\n        }\n\n        context._activeTrigger.click = !context._activeTrigger.click\n\n        if (context._isWithActiveTrigger()) {\n          context._enter(null, context)\n        } else {\n          context._leave(null, context)\n        }\n\n      } else {\n\n        if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n          this._leave(null, this)\n          return\n        }\n\n        this._enter(null, this)\n      }\n    }\n\n    dispose() {\n      clearTimeout(this._timeout)\n\n      $.removeData(this.element, this.constructor.DATA_KEY)\n\n      $(this.element).off(this.constructor.EVENT_KE
 Y)\n      $(this.element).closest('.modal').off('hide.bs.modal')\n\n      if (this.tip) {\n        $(this.tip).remove()\n      }\n\n      this._isEnabled     = null\n      this._timeout       = null\n      this._hoverState    = null\n      this._activeTrigger = null\n      if (this._popper !== null) {\n        this._popper.destroy()\n      }\n\n      this._popper = null\n      this.element = null\n      this.config  = null\n      this.tip     = null\n    }\n\n    show() {\n      if ($(this.element).css('display') === 'none') {\n        throw new Error('Please use show on visible elements')\n      }\n\n      const showEvent = $.Event(this.constructor.Event.SHOW)\n      if (this.isWithContent() && this._isEnabled) {\n        $(this.element).trigger(showEvent)\n\n        const isInTheDom = $.contains(\n          this.element.ownerDocument.documentElement,\n          this.element\n        )\n\n        if (showEvent.isDefaultPrevented() || !isInTheDom) {\n          return\n        }\n\n 
        const tip   = this.getTipElement()\n        const tipId = Util.getUID(this.constructor.NAME)\n\n        tip.setAttribute('id', tipId)\n        this.element.setAttribute('aria-describedby', tipId)\n\n        this.setContent()\n\n        if (this.config.animation) {\n          $(tip).addClass(ClassName.FADE)\n        }\n\n        const placement  = typeof this.config.placement === 'function' ?\n          this.config.placement.call(this, tip, this.element) :\n          this.config.placement\n\n        const attachment = this._getAttachment(placement)\n        this.addAttachmentClass(attachment)\n\n        const container = this.config.container === false ? document.body : $(this.config.container)\n\n        $(tip).data(this.constructor.DATA_KEY, this)\n\n        if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n          $(tip).appendTo(container)\n        }\n\n        $(this.element).trigger(this.constructor.Event.INSERTED)\n\n        this._popper = new 
 Popper(this.element, tip, {\n          placement: attachment,\n          modifiers: {\n            offset: {\n              offset: this.config.offset\n            },\n            flip: {\n              behavior: this.config.fallbackPlacement\n            },\n            arrow: {\n              element: Selector.ARROW\n            }\n          },\n          onCreate: (data) => {\n            if (data.originalPlacement !== data.placement) {\n              this._handlePopperPlacementChange(data)\n            }\n          },\n          onUpdate : (data) => {\n            this._handlePopperPlacementChange(data)\n          }\n        })\n\n        $(tip).addClass(ClassName.SHOW)\n\n        // if this is a touch-enabled device we add extra\n        // empty mouseover listeners to the body's immediate children;\n        // only needed because of broken event delegation on iOS\n        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n        if ('ontouchstart' in do
 cument.documentElement) {\n          $('body').children().on('mouseover', null, $.noop)\n        }\n\n        const complete = () => {\n          if (this.config.animation) {\n            this._fixTransition()\n          }\n          const prevHoverState = this._hoverState\n          this._hoverState     = null\n\n          $(this.element).trigger(this.constructor.Event.SHOWN)\n\n          if (prevHoverState === HoverState.OUT) {\n            this._leave(null, this)\n          }\n        }\n\n        if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {\n          $(this.tip)\n            .one(Util.TRANSITION_END, complete)\n            .emulateTransitionEnd(Tooltip._TRANSITION_DURATION)\n        } else {\n          complete()\n        }\n      }\n    }\n\n    hide(callback) {\n      const tip       = this.getTipElement()\n      const hideEvent = $.Event(this.constructor.Event.HIDE)\n      const complete  = () => {\n        if (this._hoverState !== HoverState.S
 HOW && tip.parentNode) {\n          tip.parentNode.removeChild(tip)\n        }\n\n        this._cleanTipClass()\n        this.element.removeAttribute('aria-describedby')\n        $(this.element).trigger(this.constructor.Event.HIDDEN)\n        if (this._popper !== null) {\n          this._popper.destroy()\n        }\n\n        if (callback) {\n          callback()\n        }\n      }\n\n      $(this.element).trigger(hideEvent)\n\n      if (hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      $(tip).removeClass(ClassName.SHOW)\n\n      // if this is a touch-enabled device we remove the extra\n      // empty mouseover listeners we added for iOS support\n      if ('ontouchstart' in document.documentElement) {\n        $('body').children().off('mouseover', null, $.noop)\n      }\n\n      this._activeTrigger[Trigger.CLICK] = false\n      this._activeTrigger[Trigger.FOCUS] = false\n      this._activeTrigger[Trigger.HOVER] = false\n\n      if (Util.supportsTransitionEnd() &&\
 n          $(this.tip).hasClass(ClassName.FADE)) {\n\n        $(tip)\n          .one(Util.TRANSITION_END, complete)\n          .emulateTransitionEnd(TRANSITION_DURATION)\n\n      } else {\n        complete()\n      }\n\n      this._hoverState = ''\n\n    }\n\n    update() {\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate()\n      }\n    }\n\n    // protected\n\n    isWithContent() {\n      return Boolean(this.getTitle())\n    }\n\n    addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n    }\n\n    getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0]\n      return this.tip\n    }\n\n    setContent() {\n      const $tip = $(this.getTipElement())\n      this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n    }\n\n    setElementContent($element, content) {\n      const html = this.config.html\n      
 if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n        // content is a DOM node or a jQuery\n        if (html) {\n          if (!$(content).parent().is($element)) {\n            $element.empty().append(content)\n          }\n        } else {\n          $element.text($(content).text())\n        }\n      } else {\n        $element[html ? 'html' : 'text'](content)\n      }\n    }\n\n    getTitle() {\n      let title = this.element.getAttribute('data-original-title')\n\n      if (!title) {\n        title = typeof this.config.title === 'function' ?\n          this.config.title.call(this.element) :\n          this.config.title\n      }\n\n      return title\n    }\n\n\n    // private\n\n    _getAttachment(placement) {\n      return AttachmentMap[placement.toUpperCase()]\n    }\n\n    _setListeners() {\n      const triggers = this.config.trigger.split(' ')\n\n      triggers.forEach((trigger) => {\n        if (trigger === 'click') {\n          $(this.element).on
 (\n            this.constructor.Event.CLICK,\n            this.config.selector,\n            (event) => this.toggle(event)\n          )\n\n        } else if (trigger !== Trigger.MANUAL) {\n          const eventIn  = trigger === Trigger.HOVER ?\n            this.constructor.Event.MOUSEENTER :\n            this.constructor.Event.FOCUSIN\n          const eventOut = trigger === Trigger.HOVER ?\n            this.constructor.Event.MOUSELEAVE :\n            this.constructor.Event.FOCUSOUT\n\n          $(this.element)\n            .on(\n              eventIn,\n              this.config.selector,\n              (event) => this._enter(event)\n            )\n            .on(\n              eventOut,\n              this.config.selector,\n              (event) => this._leave(event)\n            )\n        }\n\n        $(this.element).closest('.modal').on(\n          'hide.bs.modal',\n          () => this.hide()\n        )\n      })\n\n      if (this.config.selector) {\n        this.config = $.ex
 tend({}, this.config, {\n          trigger  : 'manual',\n          selector : ''\n        })\n      } else {\n        this._fixTitle()\n      }\n    }\n\n    _fixTitle() {\n      const titleType = typeof this.element.getAttribute('data-original-title')\n      if (this.element.getAttribute('title') ||\n         titleType !== 'string') {\n        this.element.setAttribute(\n          'data-original-title',\n          this.element.getAttribute('title') || ''\n        )\n        this.element.setAttribute('title', '')\n      }\n    }\n\n    _enter(event, context) {\n      const dataKey = this.constructor.DATA_KEY\n\n      context = context || $(event.currentTarget).data(dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      if (event) {\n        context._activeTrigger[\n          event.type === 'focusin' ? Trigger.FOC
 US : Trigger.HOVER\n        ] = true\n      }\n\n      if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||\n         context._hoverState === HoverState.SHOW) {\n        context._hoverState = HoverState.SHOW\n        return\n      }\n\n      clearTimeout(context._timeout)\n\n      context._hoverState = HoverState.SHOW\n\n      if (!context.config.delay || !context.config.delay.show) {\n        context.show()\n        return\n      }\n\n      context._timeout = setTimeout(() => {\n        if (context._hoverState === HoverState.SHOW) {\n          context.show()\n        }\n      }, context.config.delay.show)\n    }\n\n    _leave(event, context) {\n      const dataKey = this.constructor.DATA_KEY\n\n      context = context || $(event.currentTarget).data(dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      if 
 (event) {\n        context._activeTrigger[\n          event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n        ] = false\n      }\n\n      if (context._isWithActiveTrigger()) {\n        return\n      }\n\n      clearTimeout(context._timeout)\n\n      context._hoverState = HoverState.OUT\n\n      if (!context.config.delay || !context.config.delay.hide) {\n        context.hide()\n        return\n      }\n\n      context._timeout = setTimeout(() => {\n        if (context._hoverState === HoverState.OUT) {\n          context.hide()\n        }\n      }, context.config.delay.hide)\n    }\n\n    _isWithActiveTrigger() {\n      for (const trigger in this._activeTrigger) {\n        if (this._activeTrigger[trigger]) {\n          return true\n        }\n      }\n\n      return false\n    }\n\n    _getConfig(config) {\n      config = $.extend(\n        {},\n        this.constructor.Default,\n        $(this.element).data(),\n        config\n      )\n\n      if (typeof config.delay === '
 number') {\n        config.delay = {\n          show : config.delay,\n          hide : config.delay\n        }\n      }\n\n      if (typeof config.title === 'number') {\n        config.title = config.title.toString()\n      }\n\n      if (typeof config.content === 'number') {\n        config.content = config.content.toString()\n      }\n\n      Util.typeCheckConfig(\n        NAME,\n        config,\n        this.constructor.DefaultType\n      )\n\n      return config\n    }\n\n    _getDelegateConfig() {\n      const config = {}\n\n      if (this.config) {\n        for (const key in this.config) {\n          if (this.constructor.Default[key] !== this.config[key]) {\n            config[key] = this.config[key]\n          }\n        }\n      }\n\n      return config\n    }\n\n    _cleanTipClass() {\n      const $tip = $(this.getTipElement())\n      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClas
 s(tabClass.join(''))\n      }\n    }\n\n    _handlePopperPlacementChange(data) {\n      this._cleanTipClass()\n      this.addAttachmentClass(this._getAttachment(data.placement))\n    }\n\n    _fixTransition() {\n      const tip                 = this.getTipElement()\n      const initConfigAnimation = this.config.animation\n      if (tip.getAttribute('x-placement') !== null) {\n        return\n      }\n      $(tip).removeClass(ClassName.FADE)\n      this.config.animation = false\n      this.hide()\n      this.show()\n      this.config.animation = initConfigAnimation\n    }\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' && config\n\n        if (!data && /dispose|hide/.test(config)) {\n          return\n        }\n\n        if (!data) {\n          data = new Tooltip(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n     
    if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Tooltip._jQueryInterface\n  $.fn[NAME].Constructor = Tooltip\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Tooltip._jQueryInterface\n  }\n\n  return Tooltip\n\n})($, Popper)\n\nexport default Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * -----------------------------------
 ---------------------------------------\n */\n\nconst Popover = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'popover'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.popover'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const CLASS_PREFIX        = 'bs-popover'\n  const BSCLS_PREFIX_REGEX  = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n  const Default = $.extend({}, Tooltip.Default, {\n    placement : 'right',\n    trigger   : 'click',\n    content   : '',\n    template  : '<div class=\"popover\" role=\"tooltip\">'\n              + '<div class=\"arrow\"></div>'\n              + '<h3 class=\"popover-header\"></h3>'\n              + '<div class=\"popover-body\"></div></div>'\n  })\n\n  const DefaultType = $.extend
 ({}, Tooltip.DefaultType, {\n    content : '(string|element|function)'\n  })\n\n  const ClassName = {\n    FADE : 'fade',\n    SHOW : 'show'\n  }\n\n  const Selector = {\n    TITLE   : '.popover-header',\n    CONTENT : '.popover-body'\n  }\n\n  const Event = {\n    HIDE       : `hide${EVENT_KEY}`,\n    HIDDEN     : `hidden${EVENT_KEY}`,\n    SHOW       : `show${EVENT_KEY}`,\n    SHOWN      : `shown${EVENT_KEY}`,\n    INSERTED   : `inserted${EVENT_KEY}`,\n    CLICK      : `click${EVENT_KEY}`,\n    FOCUSIN    : `focusin${EVENT_KEY}`,\n    FOCUSOUT   : `focusout${EVENT_KEY}`,\n    MOUSEENTER : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE : `mouseleave${EVENT_KEY}`\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Popover extends Tooltip {\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    sta
 tic get Default() {\n      return Default\n    }\n\n    static get NAME() {\n      return NAME\n    }\n\n    static get DATA_KEY() {\n      return DATA_KEY\n    }\n\n    static get Event() {\n      return Event\n    }\n\n    static get EVENT_KEY() {\n      return EVENT_KEY\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n\n    // overrides\n\n    isWithContent() {\n      return this.getTitle() || this._getContent()\n    }\n\n    addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n    }\n\n    getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0]\n      return this.tip\n    }\n\n    setContent() {\n      const $tip = $(this.getTipElement())\n\n      // we use append for html objects to maintain js events\n      this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n      this.setElementContent($tip.find(Selector.CONTENT), this._getContent())\n\n      $tip.removeClass(`
 ${ClassName.FADE} ${ClassName.SHOW}`)\n    }\n\n    // private\n\n    _getContent() {\n      return this.element.getAttribute('data-content')\n        || (typeof this.config.content === 'function' ?\n              this.config.content.call(this.element) :\n              this.config.content)\n    }\n\n    _cleanTipClass() {\n      const $tip = $(this.getTipElement())\n      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''))\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' ? config : null\n\n        if (!data && /destroy|hide/.test(config)) {\n          return\n        }\n\n        if (!data) {\n          data = new Popover(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof conf
 ig === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Popover._jQueryInterface\n  $.fn[NAME].Constructor = Popover\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Popover._jQueryInterface\n  }\n\n  return Popover\n\n})($)\n\nexport default Popover\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * -----------------------------------------------------------------
 ---------\n */\n\nconst ScrollSpy = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME               = 'scrollspy'\n  const VERSION            = '4.0.0-beta.2'\n  const DATA_KEY           = 'bs.scrollspy'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const DATA_API_KEY       = '.data-api'\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Default = {\n    offset : 10,\n    method : 'auto',\n    target : ''\n  }\n\n  const DefaultType = {\n    offset : 'number',\n    method : 'string',\n    target : '(string|element)'\n  }\n\n  const Event = {\n    ACTIVATE      : `activate${EVENT_KEY}`,\n    SCROLL        : `scroll${EVENT_KEY}`,\n    LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DROPDOWN_ITEM : 'dropdown-item',\n    DROPDOWN_MENU : 'dropdown-menu',\n    ACTIVE        : 'active'\
 n  }\n\n  const Selector = {\n    DATA_SPY        : '[data-spy=\"scroll\"]',\n    ACTIVE          : '.active',\n    NAV_LIST_GROUP  : '.nav, .list-group',\n    NAV_LINKS       : '.nav-link',\n    NAV_ITEMS       : '.nav-item',\n    LIST_ITEMS      : '.list-group-item',\n    DROPDOWN        : '.dropdown',\n    DROPDOWN_ITEMS  : '.dropdown-item',\n    DROPDOWN_TOGGLE : '.dropdown-toggle'\n  }\n\n  const OffsetMethod = {\n    OFFSET   : 'offset',\n    POSITION : 'position'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class ScrollSpy {\n\n    constructor(element, config) {\n      this._element       = element\n      this._scrollElement = element.tagName === 'BODY' ? window : element\n      this._config        = this._getConfig(config)\n      this._selector      = `${this._config.target} ${Selector.NAV_LINKS},`\n              
             + `${this._config.target} ${Selector.LIST_ITEMS},`\n                          + `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n      this._offsets       = []\n      this._targets       = []\n      this._activeTarget  = null\n      this._scrollHeight  = 0\n\n      $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n      this.refresh()\n      this._process()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    refresh() {\n      const autoMethod = this._scrollElement !== this._scrollElement.window ?\n        OffsetMethod.POSITION : OffsetMethod.OFFSET\n\n      const offsetMethod = this._config.method === 'auto' ?\n        autoMethod : this._config.method\n\n      const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n        this._getScrollTop() : 0\n\n      this._offsets = []\n      this._targets = []\n\n      this._scr
 ollHeight = this._getScrollHeight()\n\n      const targets = $.makeArray($(this._selector))\n\n      targets\n        .map((element) => {\n          let target\n          const targetSelector = Util.getSelectorFromElement(element)\n\n          if (targetSelector) {\n            target = $(targetSelector)[0]\n          }\n\n          if (target) {\n            const targetBCR = target.getBoundingClientRect()\n            if (targetBCR.width || targetBCR.height) {\n              // todo (fat): remove sketch reliance on jQuery position/offset\n              return [\n                $(target)[offsetMethod]().top + offsetBase,\n                targetSelector\n              ]\n            }\n          }\n          return null\n        })\n        .filter((item)  => item)\n        .sort((a, b)    => a[0] - b[0])\n        .forEach((item) => {\n          this._offsets.push(item[0])\n          this._targets.push(item[1])\n        })\n    }\n\n    dispose() {\n      $.removeData(this._element
 , DATA_KEY)\n      $(this._scrollElement).off(EVENT_KEY)\n\n      this._element       = null\n      this._scrollElement = null\n      this._config        = null\n      this._selector      = null\n      this._offsets       = null\n      this._targets       = null\n      this._activeTarget  = null\n      this._scrollHeight  = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = $.extend({}, Default, config)\n\n      if (typeof config.target !== 'string') {\n        let id = $(config.target).attr('id')\n        if (!id) {\n          id = Util.getUID(NAME)\n          $(config.target).attr('id', id)\n        }\n        config.target = `#${id}`\n      }\n\n      Util.typeCheckConfig(NAME, config, DefaultType)\n\n      return config\n    }\n\n    _getScrollTop() {\n      return this._scrollElement === window ?\n          this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n    }\n\n    _getScrollHeight() {\n      return this._scrollElement.scrollHeight ||
  Math.max(\n        document.body.scrollHeight,\n        document.documentElement.scrollHeight\n      )\n    }\n\n    _getOffsetHeight() {\n      return this._scrollElement === window ?\n          window.innerHeight : this._scrollElement.getBoundingClientRect().height\n    }\n\n    _process() {\n      const scrollTop    = this._getScrollTop() + this._config.offset\n      const scrollHeight = this._getScrollHeight()\n      const maxScroll    = this._config.offset\n        + scrollHeight\n        - this._getOffsetHeight()\n\n      if (this._scrollHeight !== scrollHeight) {\n        this.refresh()\n      }\n\n      if (scrollTop >= maxScroll) {\n        const target = this._targets[this._targets.length - 1]\n\n        if (this._activeTarget !== target) {\n          this._activate(target)\n        }\n        return\n      }\n\n      if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n        this._activeTarget = null\n        this._clear()\n        return\
 n      }\n\n      for (let i = this._offsets.length; i--;) {\n        const isActiveTarget = this._activeTarget !== this._targets[i]\n            && scrollTop >= this._offsets[i]\n            && (typeof this._offsets[i + 1] === 'undefined' ||\n                scrollTop < this._offsets[i + 1])\n\n        if (isActiveTarget) {\n          this._activate(this._targets[i])\n        }\n      }\n    }\n\n    _activate(target) {\n      this._activeTarget = target\n\n      this._clear()\n\n      let queries = this._selector.split(',')\n      // eslint-disable-next-line arrow-body-style\n      queries     = queries.map((selector) => {\n        return `${selector}[data-target=\"${target}\"],` +\n               `${selector}[href=\"${target}\"]`\n      })\n\n      const $link = $(queries.join(','))\n\n      if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n        $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n        $link.addClass(ClassName.ACTIVE)\n 
      } else {\n        // Set triggered link as active\n        $link.addClass(ClassName.ACTIVE)\n        // Set triggered links parents as active\n        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n        $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n        // Handle special case when .nav-link is inside .nav-item\n        $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n      }\n\n      $(this._scrollElement).trigger(Event.ACTIVATE, {\n        relatedTarget: target\n      })\n    }\n\n    _clear() {\n      $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' && config\n
 \n        if (!data) {\n          data = new ScrollSpy(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n    for (let i = scrollSpys.length; i--;) {\n      const $spy = $(scrollSpys[i])\n      ScrollSpy._jQueryInterface.call($spy, $spy.data())\n    }\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ----------------------------------------------------------------
 --------\n   */\n\n  $.fn[NAME]             = ScrollSpy._jQueryInterface\n  $.fn[NAME].Constructor = ScrollSpy\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return ScrollSpy._jQueryInterface\n  }\n\n  return ScrollSpy\n\n})($)\n\nexport default ScrollSpy\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'tab'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.tab'\n  const EVENT_KEY  
          = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n\n  const Event = {\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DROPDOWN_MENU : 'dropdown-menu',\n    ACTIVE        : 'active',\n    DISABLED      : 'disabled',\n    FADE          : 'fade',\n    SHOW          : 'show'\n  }\n\n  const Selector = {\n    DROPDOWN              : '.dropdown',\n    NAV_LIST_GROUP        : '.nav, .list-group',\n    ACTIVE                : '.active',\n    ACTIVE_UL             : '> li > .active',\n    DATA_TOGGLE           : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n    DROPDOWN_TOGGLE       : '.dropdown-toggle',\n    DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active
 '\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Tab {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    show() {\n      if (this._element.parentNode &&\n          this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n          $(this._element).hasClass(ClassName.ACTIVE) ||\n          $(this._element).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      let target\n      let previous\n      const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n      const selector    = Util.getSelectorFromElement(this._element)\n\n      if (listElement) {\n        const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n        previous = $.m
 akeArray($(listElement).find(itemSelector))\n        previous = previous[previous.length - 1]\n      }\n\n      const hideEvent = $.Event(Event.HIDE, {\n        relatedTarget: this._element\n      })\n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget: previous\n      })\n\n      if (previous) {\n        $(previous).trigger(hideEvent)\n      }\n\n      $(this._element).trigger(showEvent)\n\n      if (showEvent.isDefaultPrevented() ||\n         hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (selector) {\n        target = $(selector)[0]\n      }\n\n      this._activate(\n        this._element,\n        listElement\n      )\n\n      const complete = () => {\n        const hiddenEvent = $.Event(Event.HIDDEN, {\n          relatedTarget: this._element\n        })\n\n        const shownEvent = $.Event(Event.SHOWN, {\n          relatedTarget: previous\n        })\n\n        $(previous).trigger(hiddenEvent)\n        $(this._element).trigger(shownEv
 ent)\n      }\n\n      if (target) {\n        this._activate(target, target.parentNode, complete)\n      } else {\n        complete()\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n\n    // private\n\n    _activate(element, container, callback) {\n      let activeElements\n      if (container.nodeName === 'UL') {\n        activeElements = $(container).find(Selector.ACTIVE_UL)\n      } else {\n        activeElements = $(container).children(Selector.ACTIVE)\n      }\n\n      const active          = activeElements[0]\n      const isTransitioning = callback\n        && Util.supportsTransitionEnd()\n        && (active && $(active).hasClass(ClassName.FADE))\n\n      const complete = () => this._transitionComplete(\n        element,\n        active,\n        isTransitioning,\n        callback\n      )\n\n      if (active && isTransitioning) {\n        $(active)\n          .one(Util.TRANSITION_END, complete)\n          .
 emulateTransitionEnd(TRANSITION_DURATION)\n\n      } else {\n        complete()\n      }\n\n      if (active) {\n        $(active).removeClass(ClassName.SHOW)\n      }\n    }\n\n    _transitionComplete(element, active, isTransitioning, callback) {\n      if (active) {\n        $(active).removeClass(ClassName.ACTIVE)\n\n        const dropdownChild = $(active.parentNode).find(\n          Selector.DROPDOWN_ACTIVE_CHILD\n        )[0]\n\n        if (dropdownChild) {\n          $(dropdownChild).removeClass(ClassName.ACTIVE)\n        }\n\n        if (active.getAttribute('role') === 'tab') {\n          active.setAttribute('aria-selected', false)\n        }\n      }\n\n      $(element).addClass(ClassName.ACTIVE)\n      if (element.getAttribute('role') === 'tab') {\n        element.setAttribute('aria-selected', true)\n      }\n\n      if (isTransitioning) {\n        Util.reflow(element)\n        $(element).addClass(ClassName.SHOW)\n      } else {\n        $(element).removeClass(ClassName.FADE
 )\n      }\n\n      if (element.parentNode &&\n          $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n\n        const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n        if (dropdownElement) {\n          $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n        }\n\n        element.setAttribute('aria-expanded', true)\n      }\n\n      if (callback) {\n        callback()\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this = $(this)\n        let data    = $this.data(DATA_KEY)\n\n        if (!data) {\n          data = new Tab(this)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * -------------------
 -----------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault()\n      Tab._jQueryInterface.call($(this), 'show')\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Tab._jQueryInterface\n  $.fn[NAME].Constructor = Tab\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Tab._jQueryInterface\n  }\n\n  return Tab\n\n})($)\n\nexport default Tab\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './
 modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(() => {\n  if (typeof $ === 'undefined') {\n    throw new Error('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n  }\n\n  const version = $.fn.jquery.split(' ')[0].split('.')\n  const minMajor = 1\n  const ltMajor  = 2\n  const minMinor = 9\n  const minPatch = 1\n  const maxMajor = 4\n\n  if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n    throw new Error('Bootstrap\\'s Jav
 aScript requires at least jQuery v1.9.1 but less than v4.0.0')\n  }\n})($)\n\nexport {\n  Util,\n  Alert,\n  Button,\n  Carousel,\n  Collapse,\n  Dropdown,\n  Modal,\n  Popover,\n  Scrollspy,\n  Tab,\n  Tooltip\n}\n"],"names":["Util","transition","MAX_UID","TransitionEndEvent","toType","obj","toString","call","match","toLowerCase","getSpecialTransitionEndEvent","end","event","$","target","is","handleObj","handler","apply","arguments","undefined","transitionEndTest","window","QUnit","el","document","createElement","name","style","transitionEndEmulator","duration","called","one","TRANSITION_END","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","supportsTransitionEnd","special","prefix","Math","random","getElementById","element","selector","getAttribute","$selector","find","length","error","offsetHeight","trigger","Boolean","nodeType","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","
 isElement","RegExp","test","Error","toUpperCase","Alert","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","TRANSITION_DURATION","Selector","Event","ClassName","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","getSelectorFromElement","parent","closest","ALERT","closeEvent","CLOSE","removeClass","SHOW","hasClass","FADE","_destroyElement","detach","CLOSED","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","CLICK_DATA_API","DISMISS","Constructor","noConflict","Button","toggle","triggerChangeEvent","addAriaPressed","DATA_TOGGLE","input","INPUT","type","checked","ACTIVE","activeElement","hasAttribute","classList","contains","focus","setAttribute","toggleClass","DATA_TOGGLE_CARROT","button","BUTTON","FOCUS_BLUR_DATA_API","FOCUS","Carousel","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","De
 fault","DefaultType","Direction","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","INDICATORS","_addEventListeners","next","_slide","NEXT","nextWhenVisible","hidden","css","prev","PREV","pause","NEXT_PREV","cycle","interval","setInterval","visibilityState","bind","to","index","ACTIVE_ITEM","activeIndex","_getItemIndex","SLID","direction","off","extend","typeCheckConfig","keyboard","KEYDOWN","_keydown","MOUSEENTER","MOUSELEAVE","documentElement","TOUCHEND","setTimeout","tagName","which","makeArray","ITEM","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","wrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","SLIDE","_setActiveIndicatorElement","nextIndicator","children","addClass","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","LEFT","R
 IGHT","slidEvent","reflow","action","slide","_dataApiClickHandler","CAROUSEL","slideIndex","DATA_SLIDE","LOAD_DATA_API","DATA_RIDE","$carousel","Collapse","Dimension","_isTransitioning","_triggerArray","id","tabToggles","i","elem","filter","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","ACTIVES","startEvent","dimension","_getDimension","COLLAPSE","COLLAPSING","COLLAPSED","attr","setTransitioning","complete","SHOWN","capitalizedDimension","slice","scrollSize","HIDE","getBoundingClientRect","$elem","HIDDEN","isTransitioning","hasWidth","WIDTH","HEIGHT","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","$target","createClass","_extends","Dropdown","Popper","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","AttachmentMap","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","DISABLED","_getParent
 FromElement","isActive","_clearMenus","showEvent","DROPUP","MENULEFT","MENURIGHT","_getPopperConfig","NAVBAR_NAV","noop","destroy","update","scheduleUpdate","CLICK","stopPropagation","constructor","MENU","_getPlacement","$parentDropdown","placement","BOTTOM","TOP","TOPEND","BOTTOMEND","offsetConf","offset","offsets","popperConfig","flip","modifiers","applyStyle","toggles","context","dropdownMenu","hideEvent","parentNode","_dataApiKeydownHandler","items","VISIBLE_ITEMS","get","KEYDOWN_DATA_API","KEYUP_DATA_API","FORM_CHILD","e","Modal","BACKDROP_TRANSITION_DURATION","_dialog","DIALOG","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_originalBodyPadding","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","body","OPEN","_setEscapeEvent","_setResizeEvent","CLICK_DISMISS","DATA_DISMISS","MOUSEDOWN_DISMISS","MOUSEUP_DISMISS","_showBackdrop","_showElement","FOCUSIN","_hideModal","handleUpdate","Node","ELEMENT_NODE","appendChild","display","removeAttribu
 te","scrollTop","_enforceFocus","shownEvent","transitionComplete","has","KEYDOWN_DISMISS","RESIZE","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","backdrop","doAnimate","className","BACKDROP","appendTo","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","rect","left","right","innerWidth","_getScrollbarWidth","FIXED_CONTENT","actualPadding","calculatedPadding","parseFloat","STICKY_CONTENT","actualMargin","marginRight","calculatedMargin","NAVBAR_TOGGLER","padding","margin","scrollDiv","SCROLLBAR_MEASURER","scrollbarWidth","width","clientWidth","removeChild","Tooltip","CLASS_PREFIX","BSCLS_PREFIX_REGEX","HoverState","Trigger","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","ownerDocument","tipId","getUID","setContent","animat
 ion","attachment","_getAttachment","addAttachmentClass","container","INSERTED","fallbackPlacement","ARROW","originalPlacement","_handlePopperPlacementChange","_fixTransition","prevHoverState","OUT","_TRANSITION_DURATION","_cleanTipClass","HOVER","getTitle","template","$tip","setElementContent","TOOLTIP_INNER","content","html","empty","append","text","title","triggers","split","forEach","MANUAL","eventIn","eventOut","FOCUSOUT","_fixTitle","titleType","delay","key","tabClass","join","initConfigAnimation","Popover","_getContent","TITLE","CONTENT","ScrollSpy","OffsetMethod","_scrollElement","_selector","NAV_LINKS","LIST_ITEMS","DROPDOWN_ITEMS","_offsets","_targets","_activeTarget","_scrollHeight","SCROLL","_process","refresh","autoMethod","POSITION","OFFSET","offsetMethod","method","offsetBase","_getScrollTop","_getScrollHeight","targets","map","targetSelector","targetBCR","height","top","item","sort","a","b","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","
 _clear","isActiveTarget","queries","$link","DROPDOWN_ITEM","DROPDOWN","DROPDOWN_TOGGLE","parents","NAV_LIST_GROUP","NAV_ITEMS","ACTIVATE","scrollSpys","DATA_SPY","$spy","Tab","previous","listElement","itemSelector","nodeName","ACTIVE_UL","hiddenEvent","activeElements","active","_transitionComplete","dropdownChild","DROPDOWN_ACTIVE_CHILD","DROPDOWN_MENU","dropdownElement","version","minMajor","ltMajor","minMinor","minPatch","maxMajor"],"mappings":"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"}
\ No newline at end of file
diff --git a/assets/static/js/bootstrap.bundle.min.js b/assets/static/js/bootstrap.bundle.min.js
deleted file mode 100755
index 6342466..0000000
--- a/assets/static/js/bootstrap.bundle.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*!
-  * Bootstrap v4.0.0-beta.2 (https://getbootstrap.com)
-  * Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
-  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
-  */
-var bootstrap=function(t,e){"use strict";function n(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function i(t){return t&&"[object Function]"==={}.toString.call(t)}function r(t,e){if(1!==t.nodeType)return[];var n=window.getComputedStyle(t,null);return e?n[e]:n}function o(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function s(t){if(!t||-1!==["HTML","BODY","#document"].indexOf(t.nodeName))return window.document.body;var e=r(t),n=e.overflow,i=e.overflowX;return/(auto|scroll)/.test(n+e.overflowY+i)?t:s(o(t))}function a(t){var e=t&&t.offsetParent,n=e&&e.nodeName;return n&&"BODY"!==n&&"HTML"!==n?-1!==["TD","TABLE"].indexOf(e.nodeName)&&"static"===r(e,"position")?a(e):e:window.document.documentElement}function l(t){var e=t.nodeName;return"BODY"!==e&&("HTML"===e||a(t.firstElementChild)===t)}function c(t){return null!==t.parentNode?c(t.parentNode):t}function f(t,e){if(!(t&&t.n
 odeType&&e&&e.nodeType))return window.document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,r=n?e:t,o=document.createRange();o.setStart(i,0),o.setEnd(r,0);var s=o.commonAncestorContainer;if(t!==s&&e!==s||i.contains(r))return l(s)?s:a(s);var h=c(t);return h.host?f(h.host,e):f(t,c(e).host)}function h(t){var e="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=t.nodeName;if("BODY"===n||"HTML"===n){var i=window.document.documentElement;return(window.document.scrollingElement||i)[e]}return t[e]}function u(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=h(e,"top"),r=h(e,"left"),o=n?-1:1;return t.top+=i*o,t.bottom+=i*o,t.left+=r*o,t.right+=r*o,t}function d(t,e){var n="x"===e?"Left":"Top",i="Left"===n?"Right":"Bottom";return+t["border"+n+"Width"].split("px")[0]+ +t["border"+i+"Width"].split("px")[0]}function p(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n
 ["offset"+t],n["scroll"+t],lt()?n["offset"+t]+i["margin"+("Height"===t?"Top":"Left")]+i["margin"+("Height"===t?"Bottom":"Right")]:0)}function g(){var t=window.document.body,e=window.document.documentElement,n=lt()&&window.getComputedStyle(e);return{height:p("Height",t,e,n),width:p("Width",t,e,n)}}function m(t){return ut({},t,{right:t.left+t.width,bottom:t.top+t.height})}function _(t){var e={};if(lt())try{e=t.getBoundingClientRect();var n=h(t,"top"),i=h(t,"left");e.top+=n,e.left+=i,e.bottom+=n,e.right+=i}catch(t){}else e=t.getBoundingClientRect();var o={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},s="HTML"===t.nodeName?g():{},a=s.width||t.clientWidth||o.right-o.left,l=s.height||t.clientHeight||o.bottom-o.top,c=t.offsetWidth-a,f=t.offsetHeight-l;if(c||f){var u=r(t);c-=d(u,"x"),f-=d(u,"y"),o.width-=c,o.height-=f}return m(o)}function v(t,e){var n=lt(),i="HTML"===e.nodeName,o=_(t),a=_(e),l=s(t),c=r(e),f=+c.borderTopWidth.split("px")[0],h=+c.borderLeftWidth.split("px"
 )[0],d=m({top:o.top-a.top-f,left:o.left-a.left-h,width:o.width,height:o.height});if(d.marginTop=0,d.marginLeft=0,!n&&i){var p=+c.marginTop.split("px")[0],g=+c.marginLeft.split("px")[0];d.top-=f-p,d.bottom-=f-p,d.left-=h-g,d.right-=h-g,d.marginTop=p,d.marginLeft=g}return(n?e.contains(l):e===l&&"BODY"!==l.nodeName)&&(d=u(d,e)),d}function E(t){var e=window.document.documentElement,n=v(t,e),i=Math.max(e.clientWidth,window.innerWidth||0),r=Math.max(e.clientHeight,window.innerHeight||0),o=h(e),s=h(e,"left");return m({top:o-n.top+n.marginTop,left:s-n.left+n.marginLeft,width:i,height:r})}function T(t){var e=t.nodeName;return"BODY"!==e&&"HTML"!==e&&("fixed"===r(t,"position")||T(o(t)))}function b(t,e,n,i){var r={top:0,left:0},a=f(t,e);if("viewport"===i)r=E(a);else{var l=void 0;"scrollParent"===i?"BODY"===(l=s(o(t))).nodeName&&(l=window.document.documentElement):l="window"===i?window.document.documentElement:i;var c=v(l,a);if("HTML"!==l.nodeName||T(a))r=c;else{var h=g(),u=h.height,d=h.width;r.
 top+=c.top-c.marginTop,r.bottom=u+c.top,r.left+=c.left-c.marginLeft,r.right=d+c.left}}return r.left+=n,r.top+=n,r.right-=n,r.bottom-=n,r}function C(t){return t.width*t.height}function A(t,e,n,i,r){var o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var s=b(n,i,o,r),a={top:{width:s.width,height:e.top-s.top},right:{width:s.right-e.right,height:s.height},bottom:{width:s.width,height:s.bottom-e.bottom},left:{width:e.left-s.left,height:s.height}},l=Object.keys(a).map(function(t){return ut({key:t},a[t],{area:C(a[t])})}).sort(function(t,e){return e.area-t.area}),c=l.filter(function(t){var e=t.width,i=t.height;return e>=n.clientWidth&&i>=n.clientHeight}),f=c.length>0?c[0].key:l[0].key,h=t.split("-")[1];return f+(h?"-"+h:"")}function I(t,e,n){return v(n,f(e,n))}function O(t){var e=window.getComputedStyle(t),n=parseFloat(e.marginTop)+parseFloat(e.marginBottom),i=parseFloat(e.marginLeft)+parseFloat(e.marginRight);return{width:t.offsetWidth+i,height
 :t.offsetHeight+n}}function y(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,function(t){return e[t]})}function D(t,e,n){n=n.split("-")[0];var i=O(t),r={width:i.width,height:i.height},o=-1!==["right","left"].indexOf(n),s=o?"top":"left",a=o?"left":"top",l=o?"height":"width",c=o?"width":"height";return r[s]=e[s]+e[l]/2-i[l]/2,r[a]=n===a?e[a]-i[c]:e[y(a)],r}function S(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function w(t,e,n){if(Array.prototype.findIndex)return t.findIndex(function(t){return t[e]===n});var i=S(t,function(t){return t[e]===n});return t.indexOf(i)}function N(t,e,n){return(void 0===n?t:t.slice(0,w(t,"name",n))).forEach(function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=t.function||t.fn;t.enabled&&i(n)&&(e.offsets.popper=m(e.offsets.popper),e.offsets.reference=m(e.offsets.reference),e=n(e,t))}),e}function L(){if(!this.state.isDestroyed){var t={instance
 :this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=I(this.state,this.popper,this.reference),t.placement=A(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.offsets.popper=D(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position="absolute",t=N(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}function P(t,e){return t.some(function(t){var n=t.name;return t.enabled&&n===e})}function R(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),i=0;i<e.length-1;i++){var r=e[i],o=r?""+r+n:t;if("undefined"!=typeof window.document.body.style[o])return o}return null}function H(){return this.state.isDestroyed=!0,P(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.left="",this.po
 pper.style.position="",this.popper.style.top="",this.popper.style[R("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function k(t,e,n,i){var r="BODY"===t.nodeName,o=r?window:t;o.addEventListener(e,n,{passive:!0}),r||k(s(o.parentNode),e,n,i),i.push(o)}function W(t,e,n,i){n.updateBound=i,window.addEventListener("resize",n.updateBound,{passive:!0});var r=s(t);return k(r,"scroll",n.updateBound,n.scrollParents),n.scrollElement=r,n.eventsEnabled=!0,n}function x(){this.state.eventsEnabled||(this.state=W(this.reference,this.options,this.state,this.scheduleUpdate))}function M(t,e){return window.removeEventListener("resize",e.updateBound),e.scrollParents.forEach(function(t){t.removeEventListener("scroll",e.updateBound)}),e.updateBound=null,e.scrollParents=[],e.scrollElement=null,e.eventsEnabled=!1,e}function U(){this.state.eventsEnabled&&(window.cancelAnimationFrame(this.scheduleUpdate),this.state=M(this.referenc
 e,this.state))}function V(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function F(t,e){Object.keys(e).forEach(function(n){var i="";-1!==["width","height","top","right","bottom","left"].indexOf(n)&&V(e[n])&&(i="px"),t.style[n]=e[n]+i})}function j(t,e){Object.keys(e).forEach(function(n){!1!==e[n]?t.setAttribute(n,e[n]):t.removeAttribute(n)})}function B(t,e,n){var i=S(t,function(t){return t.name===e}),r=!!i&&t.some(function(t){return t.name===n&&t.enabled&&t.order<i.order});if(!r){var o="`"+e+"`",s="`"+n+"`";console.warn(s+" modifier is required by "+o+" modifier in order to work, be sure to include it before "+o+"!")}return r}function G(t){return"end"===t?"start":"start"===t?"end":t}function K(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=pt.indexOf(t),i=pt.slice(n+1).concat(pt.slice(0,n));return e?i.reverse():i}function Q(t,e,n,i){var r=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),o=+r[1],s=r[2];if(!o)return t;if(0===s.indexOf("%")){var a=void 0;switch(s){case"%p"
 :a=n;break;case"%":case"%r":default:a=i}return m(a)[e]/100*o}if("vh"===s||"vw"===s){return("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*o}return o}function Y(t,e,n,i){var r=[0,0],o=-1!==["right","left"].indexOf(i),s=t.split(/(\+|\-)/).map(function(t){return t.trim()}),a=s.indexOf(S(s,function(t){return-1!==t.search(/,|\s/)}));s[a]&&-1===s[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,c=-1!==a?[s.slice(0,a).concat([s[a].split(l)[0]]),[s[a].split(l)[1]].concat(s.slice(a+1))]:[s];return(c=c.map(function(t,i){var r=(1===i?!o:o)?"height":"width",s=!1;return t.reduce(function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,s=!0,t):s?(t[t.length-1]+=e,s=!1,t):t.concat(e)},[]).map(function(t){return Q(t,r,e,n)})})).forEach(function(t,e){t.forEach(function(n,i){V(n)&&(r[e]+=n*("
 -"===t[i-1]?-1:1))})}),r}e=e&&e.hasOwnProperty("default")?e.default:e;for(var X=function(){function t(t){return{}.toString.call(t).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}function n(){return{bindType:o.end,delegateType:o.end,handle:function(t){if(e(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}}}function i(){if(window.QUnit)return!1;var t=document.createElement("bootstrap");for(var e in s)if("undefined"!=typeof t.style[e])return{end:s[e]};return!1}function r(t){var n=this,i=!1;return e(this).one(a.TRANSITION_END,function(){i=!0}),setTimeout(function(){i||a.triggerTransitionEnd(n)},t),this}var o=!1,s={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},a={TRANSITION_END:"bsTransitionEnd",getUID:function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},getSelectorFromElement:function(t){var n=t.getAttribute("data-target");n&&"#"!==n||(n=t.getAttribut
 e("href")||"");try{return e(document).find(n).length>0?n:null}catch(t){return null}},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){e(t).trigger(o.end)},supportsTransitionEnd:function(){return Boolean(o)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(e,n,i){for(var r in i)if(Object.prototype.hasOwnProperty.call(i,r)){var o=i[r],s=n[r],l=s&&a.isElement(s)?"element":t(s);if(!new RegExp(o).test(l))throw new Error(e.toUpperCase()+': Option "'+r+'" provided type "'+l+'" but expected type "'+o+'".')}}};return o=i(),e.fn.emulateTransitionEnd=r,a.supportsTransitionEnd()&&(e.event.special[a.TRANSITION_END]=n()),a}(),q=function(t,e,i){return e&&n(t.prototype,e),i&&n(t,i),t},z=function(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e},Z=function(){var t="alert",n=e.fn[t],i={CLOSE:"close.bs.alert",CLOSED:"closed.bs.alert",CLICK_DATA_API:"click.bs.alert.data-api"},r={ALERT:"alert",FADE:"fade",SHOW:"show"},o
 =function(){function t(t){this._element=t}var n=t.prototype;return n.close=function(t){t=t||this._element;var e=this._getRootElement(t);this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},n.dispose=function(){e.removeData(this._element,"bs.alert"),this._element=null},n._getRootElement=function(t){var n=X.getSelectorFromElement(t),i=!1;return n&&(i=e(n)[0]),i||(i=e(t).closest("."+r.ALERT)[0]),i},n._triggerCloseEvent=function(t){var n=e.Event(i.CLOSE);return e(t).trigger(n),n},n._removeElement=function(t){var n=this;e(t).removeClass(r.SHOW),X.supportsTransitionEnd()&&e(t).hasClass(r.FADE)?e(t).one(X.TRANSITION_END,function(e){return n._destroyElement(t,e)}).emulateTransitionEnd(150):this._destroyElement(t)},n._destroyElement=function(t){e(t).detach().trigger(i.CLOSED).remove()},t._jQueryInterface=function(n){return this.each(function(){var i=e(this),r=i.data("bs.alert");r||(r=new t(this),i.data("bs.alert",r)),"close"===n&&r[n](this)})},t._handleDismiss=function(t)
 {return function(e){e&&e.preventDefault(),t.close(this)}},q(t,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}}]),t}();return e(document).on(i.CLICK_DATA_API,{DISMISS:'[data-dismiss="alert"]'}.DISMISS,o._handleDismiss(new o)),e.fn[t]=o._jQueryInterface,e.fn[t].Constructor=o,e.fn[t].noConflict=function(){return e.fn[t]=n,o._jQueryInterface},o}(),J=function(){var t="button",n=e.fn[t],i={ACTIVE:"active",BUTTON:"btn",FOCUS:"focus"},r={DATA_TOGGLE_CARROT:'[data-toggle^="button"]',DATA_TOGGLE:'[data-toggle="buttons"]',INPUT:"input",ACTIVE:".active",BUTTON:".btn"},o={CLICK_DATA_API:"click.bs.button.data-api",FOCUS_BLUR_DATA_API:"focus.bs.button.data-api blur.bs.button.data-api"},s=function(){function t(t){this._element=t}var n=t.prototype;return n.toggle=function(){var t=!0,n=!0,o=e(this._element).closest(r.DATA_TOGGLE)[0];if(o){var s=e(this._element).find(r.INPUT)[0];if(s){if("radio"===s.type)if(s.checked&&e(this._element).hasClass(i.ACTIVE))t=!1;else{var a=e(o).find(r.ACTIVE)[0]
 ;a&&e(a).removeClass(i.ACTIVE)}if(t){if(s.hasAttribute("disabled")||o.hasAttribute("disabled")||s.classList.contains("disabled")||o.classList.contains("disabled"))return;s.checked=!e(this._element).hasClass(i.ACTIVE),e(s).trigger("change")}s.focus(),n=!1}}n&&this._element.setAttribute("aria-pressed",!e(this._element).hasClass(i.ACTIVE)),t&&e(this._element).toggleClass(i.ACTIVE)},n.dispose=function(){e.removeData(this._element,"bs.button"),this._element=null},t._jQueryInterface=function(n){return this.each(function(){var i=e(this).data("bs.button");i||(i=new t(this),e(this).data("bs.button",i)),"toggle"===n&&i[n]()})},q(t,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}}]),t}();return e(document).on(o.CLICK_DATA_API,r.DATA_TOGGLE_CARROT,function(t){t.preventDefault();var n=t.target;e(n).hasClass(i.BUTTON)||(n=e(n).closest(r.BUTTON)),s._jQueryInterface.call(e(n),"toggle")}).on(o.FOCUS_BLUR_DATA_API,r.DATA_TOGGLE_CARROT,function(t){var n=e(t.target).closest(r.BUTTON)[0];e(n).t
 oggleClass(i.FOCUS,/^focus(in)?$/.test(t.type))}),e.fn[t]=s._jQueryInterface,e.fn[t].Constructor=s,e.fn[t].noConflict=function(){return e.fn[t]=n,s._jQueryInterface},s}(),$=function(){var t="carousel",n="bs.carousel",i="."+n,r=e.fn[t],o={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},s={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},a={NEXT:"next",PREV:"prev",LEFT:"left",RIGHT:"right"},l={SLIDE:"slide"+i,SLID:"slid"+i,KEYDOWN:"keydown"+i,MOUSEENTER:"mouseenter"+i,MOUSELEAVE:"mouseleave"+i,TOUCHEND:"touchend"+i,LOAD_DATA_API:"load.bs.carousel.data-api",CLICK_DATA_API:"click.bs.carousel.data-api"},c={CAROUSEL:"carousel",ACTIVE:"active",SLIDE:"slide",RIGHT:"carousel-item-right",LEFT:"carousel-item-left",NEXT:"carousel-item-next",PREV:"carousel-item-prev",ITEM:"carousel-item"},f={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICA
 TORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},h=function(){function r(t,n){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this._config=this._getConfig(n),this._element=e(t)[0],this._indicatorsElement=e(this._element).find(f.INDICATORS)[0],this._addEventListeners()}var h=r.prototype;return h.next=function(){this._isSliding||this._slide(a.NEXT)},h.nextWhenVisible=function(){!document.hidden&&e(this._element).is(":visible")&&"hidden"!==e(this._element).css("visibility")&&this.next()},h.prev=function(){this._isSliding||this._slide(a.PREV)},h.pause=function(t){t||(this._isPaused=!0),e(this._element).find(f.NEXT_PREV)[0]&&X.supportsTransitionEnd()&&(X.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},h.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval
 =null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},h.to=function(t){var n=this;this._activeElement=e(this._element).find(f.ACTIVE_ITEM)[0];var i=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)e(this._element).one(l.SLID,function(){return n.to(t)});else{if(i===t)return this.pause(),void this.cycle();var r=t>i?a.NEXT:a.PREV;this._slide(r,this._items[t])}},h.dispose=function(){e(this._element).off(i),e.removeData(this._element,n),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},h._getConfig=function(n){return n=e.extend({},o,n),X.typeCheckConfig(t,n,s),n},h._addEventListeners=function(){var t=this;this._config.keyboard&&e(this._element).on(l.KEYDOWN,function(e){return t._keydown(e)}),"hover"===this._config
 .pause&&(e(this._element).on(l.MOUSEENTER,function(e){return t.pause(e)}).on(l.MOUSELEAVE,function(e){return t.cycle(e)}),"ontouchstart"in document.documentElement&&e(this._element).on(l.TOUCHEND,function(){t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout(function(e){return t.cycle(e)},500+t._config.interval)}))},h._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next();break;default:return}},h._getItemIndex=function(t){return this._items=e.makeArray(e(t).parent().find(f.ITEM)),this._items.indexOf(t)},h._getItemByDirection=function(t,e){var n=t===a.NEXT,i=t===a.PREV,r=this._getItemIndex(e),o=this._items.length-1;if((i&&0===r||n&&r===o)&&!this._config.wrap)return e;var s=(r+(t===a.PREV?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},h._triggerSlideEvent=function(t,n){var i=this._getItemIndex(t),r=this._g
 etItemIndex(e(this._element).find(f.ACTIVE_ITEM)[0]),o=e.Event(l.SLIDE,{relatedTarget:t,direction:n,from:r,to:i});return e(this._element).trigger(o),o},h._setActiveIndicatorElement=function(t){if(this._indicatorsElement){e(this._indicatorsElement).find(f.ACTIVE).removeClass(c.ACTIVE);var n=this._indicatorsElement.children[this._getItemIndex(t)];n&&e(n).addClass(c.ACTIVE)}},h._slide=function(t,n){var i,r,o,s=this,h=e(this._element).find(f.ACTIVE_ITEM)[0],u=this._getItemIndex(h),d=n||h&&this._getItemByDirection(t,h),p=this._getItemIndex(d),g=Boolean(this._interval);if(t===a.NEXT?(i=c.LEFT,r=c.NEXT,o=a.LEFT):(i=c.RIGHT,r=c.PREV,o=a.RIGHT),d&&e(d).hasClass(c.ACTIVE))this._isSliding=!1;else if(!this._triggerSlideEvent(d,o).isDefaultPrevented()&&h&&d){this._isSliding=!0,g&&this.pause(),this._setActiveIndicatorElement(d);var m=e.Event(l.SLID,{relatedTarget:d,direction:o,from:u,to:p});X.supportsTransitionEnd()&&e(this._element).hasClass(c.SLIDE)?(e(d).addClass(r),X.reflow(d),e(h).addClass(i
 ),e(d).addClass(i),e(h).one(X.TRANSITION_END,function(){e(d).removeClass(i+" "+r).addClass(c.ACTIVE),e(h).removeClass(c.ACTIVE+" "+r+" "+i),s._isSliding=!1,setTimeout(function(){return e(s._element).trigger(m)},0)}).emulateTransitionEnd(600)):(e(h).removeClass(c.ACTIVE),e(d).addClass(c.ACTIVE),this._isSliding=!1,e(this._element).trigger(m)),g&&this.cycle()}},r._jQueryInterface=function(t){return this.each(function(){var i=e(this).data(n),s=e.extend({},o,e(this).data());"object"==typeof t&&e.extend(s,t);var a="string"==typeof t?t:s.slide;if(i||(i=new r(this,s),e(this).data(n,i)),"number"==typeof t)i.to(t);else if("string"==typeof a){if("undefined"==typeof i[a])throw new Error('No method named "'+a+'"');i[a]()}else s.interval&&(i.pause(),i.cycle())})},r._dataApiClickHandler=function(t){var i=X.getSelectorFromElement(this);if(i){var o=e(i)[0];if(o&&e(o).hasClass(c.CAROUSEL)){var s=e.extend({},e(o).data(),e(this).data()),a=this.getAttribute("data-slide-to");a&&(s.interval=!1),r._jQueryI
 nterface.call(e(o),s),a&&e(o).data(n).to(a),t.preventDefault()}}},q(r,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return o}}]),r}();return e(document).on(l.CLICK_DATA_API,f.DATA_SLIDE,h._dataApiClickHandler),e(window).on(l.LOAD_DATA_API,function(){e(f.DATA_RIDE).each(function(){var t=e(this);h._jQueryInterface.call(t,t.data())})}),e.fn[t]=h._jQueryInterface,e.fn[t].Constructor=h,e.fn[t].noConflict=function(){return e.fn[t]=r,h._jQueryInterface},h}(),tt=function(){var t="collapse",n="bs.collapse",i=e.fn[t],r={toggle:!0,parent:""},o={toggle:"boolean",parent:"(string|element)"},s={SHOW:"show.bs.collapse",SHOWN:"shown.bs.collapse",HIDE:"hide.bs.collapse",HIDDEN:"hidden.bs.collapse",CLICK_DATA_API:"click.bs.collapse.data-api"},a={SHOW:"show",COLLAPSE:"collapse",COLLAPSING:"collapsing",COLLAPSED:"collapsed"},l={WIDTH:"width",HEIGHT:"height"},c={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},f=function(){function i(t,n){thi
 s._isTransitioning=!1,this._element=t,this._config=this._getConfig(n),this._triggerArray=e.makeArray(e('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var i=e(c.DATA_TOGGLE),r=0;r<i.length;r++){var o=i[r],s=X.getSelectorFromElement(o);null!==s&&e(s).filter(t).length>0&&this._triggerArray.push(o)}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var f=i.prototype;return f.toggle=function(){e(this._element).hasClass(a.SHOW)?this.hide():this.show()},f.show=function(){var t=this;if(!this._isTransitioning&&!e(this._element).hasClass(a.SHOW)){var r,o;if(this._parent&&((r=e.makeArray(e(this._parent).children().children(c.ACTIVES))).length||(r=null)),!(r&&(o=e(r).data(n))&&o._isTransitioning)){var l=e.Event(s.SHOW);if(e(this._element).trigger(l),!l.isDefaultPrevented()){r&&(i._jQueryInterface.call(e(r),"hide"),o||
 e(r).data(n,null));var f=this._getDimension();e(this._element).removeClass(a.COLLAPSE).addClass(a.COLLAPSING),this._element.style[f]=0,this._triggerArray.length&&e(this._triggerArray).removeClass(a.COLLAPSED).attr("aria-expanded",!0),this.setTransitioning(!0);var h=function(){e(t._element).removeClass(a.COLLAPSING).addClass(a.COLLAPSE).addClass(a.SHOW),t._element.style[f]="",t.setTransitioning(!1),e(t._element).trigger(s.SHOWN)};if(X.supportsTransitionEnd()){var u="scroll"+(f[0].toUpperCase()+f.slice(1));e(this._element).one(X.TRANSITION_END,h).emulateTransitionEnd(600),this._element.style[f]=this._element[u]+"px"}else h()}}}},f.hide=function(){var t=this;if(!this._isTransitioning&&e(this._element).hasClass(a.SHOW)){var n=e.Event(s.HIDE);if(e(this._element).trigger(n),!n.isDefaultPrevented()){var i=this._getDimension();if(this._element.style[i]=this._element.getBoundingClientRect()[i]+"px",X.reflow(this._element),e(this._element).addClass(a.COLLAPSING).removeClass(a.COLLAPSE).remove
 Class(a.SHOW),this._triggerArray.length)for(var r=0;r<this._triggerArray.length;r++){var o=this._triggerArray[r],l=X.getSelectorFromElement(o);null!==l&&(e(l).hasClass(a.SHOW)||e(o).addClass(a.COLLAPSED).attr("aria-expanded",!1))}this.setTransitioning(!0);var c=function(){t.setTransitioning(!1),e(t._element).removeClass(a.COLLAPSING).addClass(a.COLLAPSE).trigger(s.HIDDEN)};this._element.style[i]="",X.supportsTransitionEnd()?e(this._element).one(X.TRANSITION_END,c).emulateTransitionEnd(600):c()}}},f.setTransitioning=function(t){this._isTransitioning=t},f.dispose=function(){e.removeData(this._element,n),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},f._getConfig=function(n){return n=e.extend({},r,n),n.toggle=Boolean(n.toggle),X.typeCheckConfig(t,n,o),n},f._getDimension=function(){return e(this._element).hasClass(l.WIDTH)?l.WIDTH:l.HEIGHT},f._getParent=function(){var t=this,n=null;X.isElement(this._config.parent)?(n=this._conf
 ig.parent,"undefined"!=typeof this._config.parent.jquery&&(n=this._config.parent[0])):n=e(this._config.parent)[0];var r='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]';return e(n).find(r).each(function(e,n){t._addAriaAndCollapsedClass(i._getTargetFromElement(n),[n])}),n},f._addAriaAndCollapsedClass=function(t,n){if(t){var i=e(t).hasClass(a.SHOW);n.length&&e(n).toggleClass(a.COLLAPSED,!i).attr("aria-expanded",i)}},i._getTargetFromElement=function(t){var n=X.getSelectorFromElement(t);return n?e(n)[0]:null},i._jQueryInterface=function(t){return this.each(function(){var o=e(this),s=o.data(n),a=e.extend({},r,o.data(),"object"==typeof t&&t);if(!s&&a.toggle&&/show|hide/.test(t)&&(a.toggle=!1),s||(s=new i(this,a),o.data(n,s)),"string"==typeof t){if("undefined"==typeof s[t])throw new Error('No method named "'+t+'"');s[t]()}})},q(i,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return r}}]),i}();return e(document).on(s.CLICK_DATA_API
 ,c.DATA_TOGGLE,function(t){"A"===t.currentTarget.tagName&&t.preventDefault();var i=e(this),r=X.getSelectorFromElement(this);e(r).each(function(){var t=e(this),r=t.data(n)?"toggle":i.data();f._jQueryInterface.call(t,r)})}),e.fn[t]=f._jQueryInterface,e.fn[t].Constructor=f,e.fn[t].noConflict=function(){return e.fn[t]=i,f._jQueryInterface},f}(),et=["native code","[object MutationObserverConstructor]"],nt="undefined"!=typeof window,it=["Edge","Trident","Firefox"],rt=0,ot=0;ot<it.length;ot+=1)if(nt&&navigator.userAgent.indexOf(it[ot])>=0){rt=1;break}var st=nt&&function(t){return et.some(function(e){return(t||"").toString().indexOf(e)>-1})}(window.MutationObserver)?function(t){var e=!1,n=0,i=document.createElement("span");return new MutationObserver(function(){t(),e=!1}).observe(i,{attributes:!0}),function(){e||(e=!0,i.setAttribute("x-index",n),n+=1)}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout(function(){e=!1,t()},rt))}},at=void 0,lt=function(){return void 0===at&&(at=-1!=
 =navigator.appVersion.indexOf("MSIE 10")),at},ct=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},ft=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),ht=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},ut=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},dt=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],pt=dt.slice(3),gt={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"},mt={placement:"bottom",eventsEnabled:!0,removeOnDestroy:!1,onCreat
 e:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,n=e.split("-")[0],i=e.split("-")[1];if(i){var r=t.offsets,o=r.reference,s=r.popper,a=-1!==["bottom","top"].indexOf(n),l=a?"left":"top",c=a?"width":"height",f={start:ht({},l,o[l]),end:ht({},l,o[l]+o[c]-s[c])};t.offsets.popper=ut({},s,f[i])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var n=e.offset,i=t.placement,r=t.offsets,o=r.popper,s=r.reference,a=i.split("-")[0],l=void 0;return l=V(+n)?[+n,0]:Y(n,o,s,a),"left"===a?(o.top+=l[0],o.left-=l[1]):"right"===a?(o.top+=l[0],o.left+=l[1]):"top"===a?(o.left+=l[0],o.top-=l[1]):"bottom"===a&&(o.left+=l[0],o.top+=l[1]),t.popper=o,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,e){var n=e.boundariesElement||a(t.instance.popper);t.instance.reference===n&&(n=a(n));var i=b(t.instance.popper,t.instance.reference,e.padding,n);e.boundaries=i;var r=e.priority,o=t.offsets.popper,s={primary:function(t){var n=o[t];retu
 rn o[t]<i[t]&&!e.escapeWithReference&&(n=Math.max(o[t],i[t])),ht({},t,n)},secondary:function(t){var n="right"===t?"left":"top",r=o[n];return o[t]>i[t]&&!e.escapeWithReference&&(r=Math.min(o[n],i[t]-("right"===t?o.width:o.height))),ht({},n,r)}};return r.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";o=ut({},o,s[e](t))}),t.offsets.popper=o,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,i=e.reference,r=t.placement.split("-")[0],o=Math.floor,s=-1!==["top","bottom"].indexOf(r),a=s?"right":"bottom",l=s?"left":"top",c=s?"width":"height";return n[a]<o(i[l])&&(t.offsets.popper[l]=o(i[l])-n[c]),n[l]>o(i[a])&&(t.offsets.popper[l]=o(i[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){if(!B(t.instance.modifiers,"arrow","keepTogether"))return t;var n=e.element;if("string"==typeof n){if(!(n=t.instance.popper.querySelector(n)))return t}else if(!t.
 instance.popper.contains(n))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var i=t.placement.split("-")[0],o=t.offsets,s=o.popper,a=o.reference,l=-1!==["left","right"].indexOf(i),c=l?"height":"width",f=l?"Top":"Left",h=f.toLowerCase(),u=l?"left":"top",d=l?"bottom":"right",p=O(n)[c];a[d]-p<s[h]&&(t.offsets.popper[h]-=s[h]-(a[d]-p)),a[h]+p>s[d]&&(t.offsets.popper[h]+=a[h]+p-s[d]);var g=a[h]+a[c]/2-p/2,_=r(t.instance.popper,"margin"+f).replace("px",""),v=g-m(t.offsets.popper)[h]-_;return v=Math.max(Math.min(s[c]-p,v),0),t.arrowElement=n,t.offsets.arrow={},t.offsets.arrow[h]=Math.round(v),t.offsets.arrow[u]="",t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(P(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=b(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement),i=t.placement.split("-")[0],r=y(i),o=t.placement.split("-")[1]||"",s=[];switch(e.behavior){case 
 gt.FLIP:s=[i,r];break;case gt.CLOCKWISE:s=K(i);break;case gt.COUNTERCLOCKWISE:s=K(i,!0);break;default:s=e.behavior}return s.forEach(function(a,l){if(i!==a||s.length===l+1)return t;i=t.placement.split("-")[0],r=y(i);var c=t.offsets.popper,f=t.offsets.reference,h=Math.floor,u="left"===i&&h(c.right)>h(f.left)||"right"===i&&h(c.left)<h(f.right)||"top"===i&&h(c.bottom)>h(f.top)||"bottom"===i&&h(c.top)<h(f.bottom),d=h(c.left)<h(n.left),p=h(c.right)>h(n.right),g=h(c.top)<h(n.top),m=h(c.bottom)>h(n.bottom),_="left"===i&&d||"right"===i&&p||"top"===i&&g||"bottom"===i&&m,v=-1!==["top","bottom"].indexOf(i),E=!!e.flipVariations&&(v&&"start"===o&&d||v&&"end"===o&&p||!v&&"start"===o&&g||!v&&"end"===o&&m);(u||_||E)&&(t.flipped=!0,(u||_)&&(i=s[l+1]),E&&(o=G(o)),t.placement=i+(o?"-"+o:""),t.offsets.popper=ut({},t.offsets.popper,D(t.instance.popper,t.offsets.reference,t.placement)),t=N(t.instance.modifiers,t,"flip"))}),t},behavior:"flip",padding:5,boundariesElement:"viewport"},inner:{order:700,enabled
 :!1,fn:function(t){var e=t.placement,n=e.split("-")[0],i=t.offsets,r=i.popper,o=i.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return r[s?"left":"top"]=o[n]-(a?r[s?"width":"height"]:0),t.placement=y(e),t.offsets.popper=m(r),t}},hide:{order:800,enabled:!0,fn:function(t){if(!B(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=S(t.instance.modifiers,function(t){return"preventOverflow"===t.name}).boundaries;if(e.bottom<n.top||e.left>n.right||e.top>n.bottom||e.right<n.left){if(!0===t.hide)return t;t.hide=!0,t.attributes["x-out-of-boundaries"]=""}else{if(!1===t.hide)return t;t.hide=!1,t.attributes["x-out-of-boundaries"]=!1}return t}},computeStyle:{order:850,enabled:!0,fn:function(t,e){var n=e.x,i=e.y,r=t.offsets.popper,o=S(t.instance.modifiers,function(t){return"applyStyle"===t.name}).gpuAcceleration;void 0!==o&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in fu
 ture versions of Popper.js!");var s=void 0!==o?o:e.gpuAcceleration,l=_(a(t.instance.popper)),c={position:r.position},f={left:Math.floor(r.left),top:Math.floor(r.top),bottom:Math.floor(r.bottom),right:Math.floor(r.right)},h="bottom"===n?"top":"bottom",u="right"===i?"left":"right",d=R("transform"),p=void 0,g=void 0;if(g="bottom"===h?-l.height+f.bottom:f.top,p="right"===u?-l.width+f.right:f.left,s&&d)c[d]="translate3d("+p+"px, "+g+"px, 0)",c[h]=0,c[u]=0,c.willChange="transform";else{var m="bottom"===h?-1:1,v="right"===u?-1:1;c[h]=g*m,c[u]=p*v,c.willChange=h+", "+u}var E={"x-placement":t.placement};return t.attributes=ut({},E,t.attributes),t.styles=ut({},c,t.styles),t.arrowStyles=ut({},t.offsets.arrow,t.arrowStyles),t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){return F(t.instance.popper,t.styles),j(t.instance.popper,t.attributes),t.arrowElement&&Object.keys(t.arrowStyles).length&&F(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,n,i,r)
 {var o=I(r,e,t),s=A(n.placement,o,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return e.setAttribute("x-placement",s),F(e,{position:"absolute"}),n},gpuAcceleration:void 0}}},_t=function(){function t(e,n){var r=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};ct(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(r.update)},this.update=st(this.update.bind(this)),this.options=ut({},t.Defaults,o),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e.jquery?e[0]:e,this.popper=n.jquery?n[0]:n,this.options.modifiers={},Object.keys(ut({},t.Defaults.modifiers,o.modifiers)).forEach(function(e){r.options.modifiers[e]=ut({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(t){return ut({name:t},r.options.modifiers[t])}).sort(function(t,e){return t.order-e.order}),this.modifiers.forEach(function(t){t.enabled&&i(t.onLoad)&&t.onLoad(r.reference,r.popp
 er,r.options,t,r.state)}),this.update();var s=this.options.eventsEnabled;s&&this.enableEventListeners(),this.state.eventsEnabled=s}return ft(t,[{key:"update",value:function(){return L.call(this)}},{key:"destroy",value:function(){return H.call(this)}},{key:"enableEventListeners",value:function(){return x.call(this)}},{key:"disableEventListeners",value:function(){return U.call(this)}}]),t}();_t.Utils=("undefined"!=typeof window?window:global).PopperUtils,_t.placements=dt,_t.Defaults=mt;var vt=function(){if("undefined"==typeof _t)throw new Error("Bootstrap dropdown require Popper.js (https://popper.js.org)");var t="dropdown",n="bs.dropdown",i="."+n,r=e.fn[t],o=new RegExp("38|40|27"),s={HIDE:"hide"+i,HIDDEN:"hidden"+i,SHOW:"show"+i,SHOWN:"shown"+i,CLICK:"click"+i,CLICK_DATA_API:"click.bs.dropdown.data-api",KEYDOWN_DATA_API:"keydown.bs.dropdown.data-api",KEYUP_DATA_API:"keyup.bs.dropdown.data-api"},a={DISABLED:"disabled",SHOW:"show",DROPUP:"dropup",MENURIGHT:"dropdown-menu-right",MENULEF
 T:"dropdown-menu-left"},l={DATA_TOGGLE:'[data-toggle="dropdown"]',FORM_CHILD:".dropdown form",MENU:".dropdown-menu",NAVBAR_NAV:".navbar-nav",VISIBLE_ITEMS:".dropdown-menu .dropdown-item:not(.disabled)"},c={TOP:"top-start",TOPEND:"top-end",BOTTOM:"bottom-start",BOTTOMEND:"bottom-end"},f={offset:0,flip:!0},h={offset:"(number|string|function)",flip:"boolean"},u=function(){function r(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var u=r.prototype;return u.toggle=function(){if(!this._element.disabled&&!e(this._element).hasClass(a.DISABLED)){var t=r._getParentFromElement(this._element),n=e(this._menu).hasClass(a.SHOW);if(r._clearMenus(),!n){var i={relatedTarget:this._element},o=e.Event(s.SHOW,i);if(e(t).trigger(o),!o.isDefaultPrevented()){var c=this._element;e(t).hasClass(a.DROPUP)&&(e(this._menu).hasClass(a.MENULEFT)||e(this._menu).hasClass(a.MENURIGHT))&&(c=t),this._p
 opper=new _t(c,this._menu,this._getPopperConfig()),"ontouchstart"in document.documentElement&&!e(t).closest(l.NAVBAR_NAV).length&&e("body").children().on("mouseover",null,e.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),e(this._menu).toggleClass(a.SHOW),e(t).toggleClass(a.SHOW).trigger(e.Event(s.SHOWN,i))}}}},u.dispose=function(){e.removeData(this._element,n),e(this._element).off(i),this._element=null,this._menu=null,null!==this._popper&&this._popper.destroy(),this._popper=null},u.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},u._addEventListeners=function(){var t=this;e(this._element).on(s.CLICK,function(e){e.preventDefault(),e.stopPropagation(),t.toggle()})},u._getConfig=function(n){return n=e.extend({},this.constructor.Default,e(this._element).data(),n),X.typeCheckConfig(t,n,this.constructor.DefaultType),n},u._getMenuElement=function(){if(!this._menu){var t=r._getParentFromElement(this._element
 );this._menu=e(t).find(l.MENU)[0]}return this._menu},u._getPlacement=function(){var t=e(this._element).parent(),n=c.BOTTOM;return t.hasClass(a.DROPUP)?(n=c.TOP,e(this._menu).hasClass(a.MENURIGHT)&&(n=c.TOPEND)):e(this._menu).hasClass(a.MENURIGHT)&&(n=c.BOTTOMEND),n},u._detectNavbar=function(){return e(this._element).closest(".navbar").length>0},u._getPopperConfig=function(){var t=this,n={};"function"==typeof this._config.offset?n.fn=function(n){return n.offsets=e.extend({},n.offsets,t._config.offset(n.offsets)||{}),n}:n.offset=this._config.offset;var i={placement:this._getPlacement(),modifiers:{offset:n,flip:{enabled:this._config.flip}}};return this._inNavbar&&(i.modifiers.applyStyle={enabled:!this._inNavbar}),i},r._jQueryInterface=function(t){return this.each(function(){var i=e(this).data(n),o="object"==typeof t?t:null;if(i||(i=new r(this,o),e(this).data(n,i)),"string"==typeof t){if("undefined"==typeof i[t])throw new Error('No method named "'+t+'"');i[t]()}})},r._clearMenus=functio
 n(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var i=e.makeArray(e(l.DATA_TOGGLE)),o=0;o<i.length;o++){var c=r._getParentFromElement(i[o]),f=e(i[o]).data(n),h={relatedTarget:i[o]};if(f){var u=f._menu;if(e(c).hasClass(a.SHOW)&&!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&9===t.which)&&e.contains(c,t.target))){var d=e.Event(s.HIDE,h);e(c).trigger(d),d.isDefaultPrevented()||("ontouchstart"in document.documentElement&&e("body").children().off("mouseover",null,e.noop),i[o].setAttribute("aria-expanded","false"),e(u).removeClass(a.SHOW),e(c).removeClass(a.SHOW).trigger(e.Event(s.HIDDEN,h)))}}}},r._getParentFromElement=function(t){var n,i=X.getSelectorFromElement(t);return i&&(n=e(i)[0]),n||t.parentNode},r._dataApiKeydownHandler=function(t){if(!(!o.test(t.which)||/button/i.test(t.target.tagName)&&32===t.which||/input|textarea/i.test(t.target.tagName)||(t.preventDefault(),t.stopPropagation(),this.disabled||e(this).hasClass(a.DISABLED)))){v
 ar n=r._getParentFromElement(this),i=e(n).hasClass(a.SHOW);if((i||27===t.which&&32===t.which)&&(!i||27!==t.which&&32!==t.which)){var s=e(n).find(l.VISIBLE_ITEMS).get();if(s.length){var c=s.indexOf(t.target);38===t.which&&c>0&&c--,40===t.which&&c<s.length-1&&c++,c<0&&(c=0),s[c].focus()}}else{if(27===t.which){var f=e(n).find(l.DATA_TOGGLE)[0];e(f).trigger("focus")}e(this).trigger("click")}}},q(r,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return f}},{key:"DefaultType",get:function(){return h}}]),r}();return e(document).on(s.KEYDOWN_DATA_API,l.DATA_TOGGLE,u._dataApiKeydownHandler).on(s.KEYDOWN_DATA_API,l.MENU,u._dataApiKeydownHandler).on(s.CLICK_DATA_API+" "+s.KEYUP_DATA_API,u._clearMenus).on(s.CLICK_DATA_API,l.DATA_TOGGLE,function(t){t.preventDefault(),t.stopPropagation(),u._jQueryInterface.call(e(this),"toggle")}).on(s.CLICK_DATA_API,l.FORM_CHILD,function(t){t.stopPropagation()}),e.fn[t]=u._jQueryInterface,e.fn[t].Constructor=u,e.fn[t].noC
 onflict=function(){return e.fn[t]=r,u._jQueryInterface},u}(),Et=function(){var t="modal",n=".bs.modal",i=e.fn[t],r={backdrop:!0,keyboard:!0,focus:!0,show:!0},o={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},s={HIDE:"hide.bs.modal",HIDDEN:"hidden.bs.modal",SHOW:"show.bs.modal",SHOWN:"shown.bs.modal",FOCUSIN:"focusin.bs.modal",RESIZE:"resize.bs.modal",CLICK_DISMISS:"click.dismiss.bs.modal",KEYDOWN_DISMISS:"keydown.dismiss.bs.modal",MOUSEUP_DISMISS:"mouseup.dismiss.bs.modal",MOUSEDOWN_DISMISS:"mousedown.dismiss.bs.modal",CLICK_DATA_API:"click.bs.modal.data-api"},a={SCROLLBAR_MEASURER:"modal-scrollbar-measure",BACKDROP:"modal-backdrop",OPEN:"modal-open",FADE:"fade",SHOW:"show"},l={DIALOG:".modal-dialog",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top",NAVBAR_TOGGLER:".navbar-toggler"},c=function(){function i(t,n){this._config=this._getC
 onfig(n),this._element=t,this._dialog=e(t).find(l.DIALOG)[0],this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._originalBodyPadding=0,this._scrollbarWidth=0}var c=i.prototype;return c.toggle=function(t){return this._isShown?this.hide():this.show(t)},c.show=function(t){var n=this;if(!this._isTransitioning&&!this._isShown){X.supportsTransitionEnd()&&e(this._element).hasClass(a.FADE)&&(this._isTransitioning=!0);var i=e.Event(s.SHOW,{relatedTarget:t});e(this._element).trigger(i),this._isShown||i.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),e(document.body).addClass(a.OPEN),this._setEscapeEvent(),this._setResizeEvent(),e(this._element).on(s.CLICK_DISMISS,l.DATA_DISMISS,function(t){return n.hide(t)}),e(this._dialog).on(s.MOUSEDOWN_DISMISS,function(){e(n._element).one(s.MOUSEUP_DISMISS,function(t){e(t.target).is(n._element)&&(n._ignoreBackdropClick=!0)})}),this._showBackdrop(function
 (){return n._showElement(t)}))}},c.hide=function(t){var n=this;if(t&&t.preventDefault(),!this._isTransitioning&&this._isShown){var i=e.Event(s.HIDE);if(e(this._element).trigger(i),this._isShown&&!i.isDefaultPrevented()){this._isShown=!1;var r=X.supportsTransitionEnd()&&e(this._element).hasClass(a.FADE);r&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),e(document).off(s.FOCUSIN),e(this._element).removeClass(a.SHOW),e(this._element).off(s.CLICK_DISMISS),e(this._dialog).off(s.MOUSEDOWN_DISMISS),r?e(this._element).one(X.TRANSITION_END,function(t){return n._hideModal(t)}).emulateTransitionEnd(300):this._hideModal()}}},c.dispose=function(){e.removeData(this._element,"bs.modal"),e(window,document,this._element,this._backdrop).off(n),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._scrollbarWidth=null},c.handleUpdate=function(){this._adjustDialog()},c._get
 Config=function(n){return n=e.extend({},r,n),X.typeCheckConfig(t,n,o),n},c._showElement=function(t){var n=this,i=X.supportsTransitionEnd()&&e(this._element).hasClass(a.FADE);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.scrollTop=0,i&&X.reflow(this._element),e(this._element).addClass(a.SHOW),this._config.focus&&this._enforceFocus();var r=e.Event(s.SHOWN,{relatedTarget:t}),o=function(){n._config.focus&&n._element.focus(),n._isTransitioning=!1,e(n._element).trigger(r)};i?e(this._dialog).one(X.TRANSITION_END,o).emulateTransitionEnd(300):o()},c._enforceFocus=function(){var t=this;e(document).off(s.FOCUSIN).on(s.FOCUSIN,function(n){document===n.target||t._element===n.target||e(t._element).has(n.target).length||t._element.focus()})},c._setEscapeEvent=function(){var t=this;this._isShown&&this._config.keyboard?e(this._elem
 ent).on(s.KEYDOWN_DISMISS,function(e){27===e.which&&(e.preventDefault(),t.hide())}):this._isShown||e(this._element).off(s.KEYDOWN_DISMISS)},c._setResizeEvent=function(){var t=this;this._isShown?e(window).on(s.RESIZE,function(e){return t.handleUpdate(e)}):e(window).off(s.RESIZE)},c._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._isTransitioning=!1,this._showBackdrop(function(){e(document.body).removeClass(a.OPEN),t._resetAdjustments(),t._resetScrollbar(),e(t._element).trigger(s.HIDDEN)})},c._removeBackdrop=function(){this._backdrop&&(e(this._backdrop).remove(),this._backdrop=null)},c._showBackdrop=function(t){var n=this,i=e(this._element).hasClass(a.FADE)?a.FADE:"";if(this._isShown&&this._config.backdrop){var r=X.supportsTransitionEnd()&&i;if(this._backdrop=document.createElement("div"),this._backdrop.className=a.BACKDROP,i&&e(this._backdrop).addClass(i),e(this._backdrop).appendTo(document.body),e(this._element).o
 n(s.CLICK_DISMISS,function(t){n._ignoreBackdropClick?n._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===n._config.backdrop?n._element.focus():n.hide())}),r&&X.reflow(this._backdrop),e(this._backdrop).addClass(a.SHOW),!t)return;if(!r)return void t();e(this._backdrop).one(X.TRANSITION_END,t).emulateTransitionEnd(150)}else if(!this._isShown&&this._backdrop){e(this._backdrop).removeClass(a.SHOW);var o=function(){n._removeBackdrop(),t&&t()};X.supportsTransitionEnd()&&e(this._element).hasClass(a.FADE)?e(this._backdrop).one(X.TRANSITION_END,o).emulateTransitionEnd(150):o()}else t&&t()},c._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},c._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},c._checkScrollb
 ar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},c._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){e(l.FIXED_CONTENT).each(function(n,i){var r=e(i)[0].style.paddingRight,o=e(i).css("padding-right");e(i).data("padding-right",r).css("padding-right",parseFloat(o)+t._scrollbarWidth+"px")}),e(l.STICKY_CONTENT).each(function(n,i){var r=e(i)[0].style.marginRight,o=e(i).css("margin-right");e(i).data("margin-right",r).css("margin-right",parseFloat(o)-t._scrollbarWidth+"px")}),e(l.NAVBAR_TOGGLER).each(function(n,i){var r=e(i)[0].style.marginRight,o=e(i).css("margin-right");e(i).data("margin-right",r).css("margin-right",parseFloat(o)+t._scrollbarWidth+"px")});var n=document.body.style.paddingRight,i=e("body").css("padding-right");e("body").data("padding-right",n).css("padding-right",parseFloat(i)+this._scrollbarWidth+"px")}},c._resetScrollbar=function(){e(l.FIXED_CO
 NTENT).each(function(t,n){var i=e(n).data("padding-right");"undefined"!=typeof i&&e(n).css("padding-right",i).removeData("padding-right")}),e(l.STICKY_CONTENT+", "+l.NAVBAR_TOGGLER).each(function(t,n){var i=e(n).data("margin-right");"undefined"!=typeof i&&e(n).css("margin-right",i).removeData("margin-right")});var t=e("body").data("padding-right");"undefined"!=typeof t&&e("body").css("padding-right",t).removeData("padding-right")},c._getScrollbarWidth=function(){var t=document.createElement("div");t.className=a.SCROLLBAR_MEASURER,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},i._jQueryInterface=function(t,n){return this.each(function(){var r=e(this).data("bs.modal"),o=e.extend({},i.Default,e(this).data(),"object"==typeof t&&t);if(r||(r=new i(this,o),e(this).data("bs.modal",r)),"string"==typeof t){if("undefined"==typeof r[t])throw new Error('No method named "'+t+'"');r[t](n)}else o.show&&r.show(n)})},q(i,null,[{
 key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return r}}]),i}();return e(document).on(s.CLICK_DATA_API,l.DATA_TOGGLE,function(t){var n,i=this,r=X.getSelectorFromElement(this);r&&(n=e(r)[0]);var o=e(n).data("bs.modal")?"toggle":e.extend({},e(n).data(),e(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();var a=e(n).one(s.SHOW,function(t){t.isDefaultPrevented()||a.one(s.HIDDEN,function(){e(i).is(":visible")&&i.focus()})});c._jQueryInterface.call(e(n),o,this)}),e.fn[t]=c._jQueryInterface,e.fn[t].Constructor=c,e.fn[t].noConflict=function(){return e.fn[t]=i,c._jQueryInterface},c}(),Tt=function(){if("undefined"==typeof _t)throw new Error("Bootstrap tooltips require Popper.js (https://popper.js.org)");var t="tooltip",n=".bs.tooltip",i=e.fn[t],r=new RegExp("(^|\\s)bs-tooltip\\S+","g"),o={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|
 boolean)",placement:"(string|function)",offset:"(number|string)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)"},s={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},a={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip"},l={SHOW:"show",OUT:"out"},c={HIDE:"hide"+n,HIDDEN:"hidden"+n,SHOW:"show"+n,SHOWN:"shown"+n,INSERTED:"inserted"+n,CLICK:"click"+n,FOCUSIN:"focusin"+n,FOCUSOUT:"focusout"+n,MOUSEENTER:"mouseenter"+n,MOUSELEAVE:"mouseleave"+n},f={FADE:"fade",SHOW:"show"},h={TOOLTIP:".tooltip",TOOLTIP_INNER:".tooltip-inner",ARROW:".arrow"},u={HOVER:"hover",FOCUS:"focus",CLICK:"click",MANUAL:"manual"},d=function(){function i(t,e){this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this.
 _getConfig(e),this.tip=null,this._setListeners()}var d=i.prototype;return d.enable=function(){this._isEnabled=!0},d.disable=function(){this._isEnabled=!1},d.toggleEnabled=function(){this._isEnabled=!this._isEnabled},d.toggle=function(t){if(this._isEnabled)if(t){var n=this.constructor.DATA_KEY,i=e(t.currentTarget).data(n);i||(i=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(n,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)}else{if(e(this.getTipElement()).hasClass(f.SHOW))return void this._leave(null,this);this._enter(null,this)}},d.dispose=function(){clearTimeout(this._timeout),e.removeData(this.element,this.constructor.DATA_KEY),e(this.element).off(this.constructor.EVENT_KEY),e(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&e(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.de
 stroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},d.show=function(){var t=this;if("none"===e(this.element).css("display"))throw new Error("Please use show on visible elements");var n=e.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){e(this.element).trigger(n);var r=e.contains(this.element.ownerDocument.documentElement,this.element);if(n.isDefaultPrevented()||!r)return;var o=this.getTipElement(),s=X.getUID(this.constructor.NAME);o.setAttribute("id",s),this.element.setAttribute("aria-describedby",s),this.setContent(),this.config.animation&&e(o).addClass(f.FADE);var a="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,c=this._getAttachment(a);this.addAttachmentClass(c);var u=!1===this.config.container?document.body:e(this.config.container);e(o).data(this.constructor.DATA_KEY,this),e.contains(this.element.ownerDocument.documentElement,this.tip)||e(o).appendTo(u),e(this.elem
 ent).trigger(this.constructor.Event.INSERTED),this._popper=new _t(this.element,o,{placement:c,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:h.ARROW}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){t._handlePopperPlacementChange(e)}}),e(o).addClass(f.SHOW),"ontouchstart"in document.documentElement&&e("body").children().on("mouseover",null,e.noop);var d=function(){t.config.animation&&t._fixTransition();var n=t._hoverState;t._hoverState=null,e(t.element).trigger(t.constructor.Event.SHOWN),n===l.OUT&&t._leave(null,t)};X.supportsTransitionEnd()&&e(this.tip).hasClass(f.FADE)?e(this.tip).one(X.TRANSITION_END,d).emulateTransitionEnd(i._TRANSITION_DURATION):d()}},d.hide=function(t){var n=this,i=this.getTipElement(),r=e.Event(this.constructor.Event.HIDE),o=function(){n._hoverState!==l.SHOW&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAt
 tribute("aria-describedby"),e(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),t&&t()};e(this.element).trigger(r),r.isDefaultPrevented()||(e(i).removeClass(f.SHOW),"ontouchstart"in document.documentElement&&e("body").children().off("mouseover",null,e.noop),this._activeTrigger[u.CLICK]=!1,this._activeTrigger[u.FOCUS]=!1,this._activeTrigger[u.HOVER]=!1,X.supportsTransitionEnd()&&e(this.tip).hasClass(f.FADE)?e(i).one(X.TRANSITION_END,o).emulateTransitionEnd(150):o(),this._hoverState="")},d.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},d.isWithContent=function(){return Boolean(this.getTitle())},d.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-tooltip-"+t)},d.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},d.setContent=function(){var t=e(this.getTipElement());this.setElementContent(t.find(h.TOOLTIP_INNER),this.getTitle()),t.removeClass(f.FADE+" "+f.SHOW)},d.setElementC
 ontent=function(t,n){var i=this.config.html;"object"==typeof n&&(n.nodeType||n.jquery)?i?e(n).parent().is(t)||t.empty().append(n):t.text(e(n).text()):t[i?"html":"text"](n)},d.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},d._getAttachment=function(t){return s[t.toUpperCase()]},d._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach(function(n){if("click"===n)e(t.element).on(t.constructor.Event.CLICK,t.config.selector,function(e){return t.toggle(e)});else if(n!==u.MANUAL){var i=n===u.HOVER?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,r=n===u.HOVER?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;e(t.element).on(i,t.config.selector,function(e){return t._enter(e)}).on(r,t.config.selector,function(e){return t._leave(e)})}e(t.element).closest(".modal").on("hide.bs.modal",function(){return t.hide()})}),this.c
 onfig.selector?this.config=e.extend({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},d._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},d._enter=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusin"===t.type?u.FOCUS:u.HOVER]=!0),e(n.getTipElement()).hasClass(f.SHOW)||n._hoverState===l.SHOW?n._hoverState=l.SHOW:(clearTimeout(n._timeout),n._hoverState=l.SHOW,n.config.delay&&n.config.delay.show?n._timeout=setTimeout(function(){n._hoverState===l.SHOW&&n.show()},n.config.delay.show):n.show())},d._leave=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.c
 urrentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusout"===t.type?u.FOCUS:u.HOVER]=!1),n._isWithActiveTrigger()||(clearTimeout(n._timeout),n._hoverState=l.OUT,n.config.delay&&n.config.delay.hide?n._timeout=setTimeout(function(){n._hoverState===l.OUT&&n.hide()},n.config.delay.hide):n.hide())},d._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},d._getConfig=function(n){return"number"==typeof(n=e.extend({},this.constructor.Default,e(this.element).data(),n)).delay&&(n.delay={show:n.delay,hide:n.delay}),"number"==typeof n.title&&(n.title=n.title.toString()),"number"==typeof n.content&&(n.content=n.content.toString()),X.typeCheckConfig(t,n,this.constructor.DefaultType),n},d._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},d._cleanTipClass=function(){var t=e(this.getTipElement()),
 n=t.attr("class").match(r);null!==n&&n.length>0&&t.removeClass(n.join(""))},d._handlePopperPlacementChange=function(t){this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},d._fixTransition=function(){var t=this.getTipElement(),n=this.config.animation;null===t.getAttribute("x-placement")&&(e(t).removeClass(f.FADE),this.config.animation=!1,this.hide(),this.show(),this.config.animation=n)},i._jQueryInterface=function(t){return this.each(function(){var n=e(this).data("bs.tooltip"),r="object"==typeof t&&t;if((n||!/dispose|hide/.test(t))&&(n||(n=new i(this,r),e(this).data("bs.tooltip",n)),"string"==typeof t)){if("undefined"==typeof n[t])throw new Error('No method named "'+t+'"');n[t]()}})},q(i,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return a}},{key:"NAME",get:function(){return t}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return c}},{key:"EVENT_KEY",get:function(){return n}},
 {key:"DefaultType",get:function(){return o}}]),i}();return e.fn[t]=d._jQueryInterface,e.fn[t].Constructor=d,e.fn[t].noConflict=function(){return e.fn[t]=i,d._jQueryInterface},d}(),bt=function(){var t="popover",n=".bs.popover",i=e.fn[t],r=new RegExp("(^|\\s)bs-popover\\S+","g"),o=e.extend({},Tt.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),s=e.extend({},Tt.DefaultType,{content:"(string|element|function)"}),a={FADE:"fade",SHOW:"show"},l={TITLE:".popover-header",CONTENT:".popover-body"},c={HIDE:"hide"+n,HIDDEN:"hidden"+n,SHOW:"show"+n,SHOWN:"shown"+n,INSERTED:"inserted"+n,CLICK:"click"+n,FOCUSIN:"focusin"+n,FOCUSOUT:"focusout"+n,MOUSEENTER:"mouseenter"+n,MOUSELEAVE:"mouseleave"+n},f=function(i){function f(){return i.apply(this,arguments)||this}z(f,i);var h=f.prototype;return h.isWithContent=function(){return this.getTitle()||this._getC
 ontent()},h.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-popover-"+t)},h.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},h.setContent=function(){var t=e(this.getTipElement());this.setElementContent(t.find(l.TITLE),this.getTitle()),this.setElementContent(t.find(l.CONTENT),this._getContent()),t.removeClass(a.FADE+" "+a.SHOW)},h._getContent=function(){return this.element.getAttribute("data-content")||("function"==typeof this.config.content?this.config.content.call(this.element):this.config.content)},h._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(r);null!==n&&n.length>0&&t.removeClass(n.join(""))},f._jQueryInterface=function(t){return this.each(function(){var n=e(this).data("bs.popover"),i="object"==typeof t?t:null;if((n||!/destroy|hide/.test(t))&&(n||(n=new f(this,i),e(this).data("bs.popover",n)),"string"==typeof t)){if("undefined"==typeof n[t])throw new Error('No method named "'+t+'"');n[
 t]()}})},q(f,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return o}},{key:"NAME",get:function(){return t}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return c}},{key:"EVENT_KEY",get:function(){return n}},{key:"DefaultType",get:function(){return s}}]),f}(Tt);return e.fn[t]=f._jQueryInterface,e.fn[t].Constructor=f,e.fn[t].noConflict=function(){return e.fn[t]=i,f._jQueryInterface},f}(),Ct=function(){var t="scrollspy",n=e.fn[t],i={offset:10,method:"auto",target:""},r={offset:"number",method:"string",target:"(string|element)"},o={ACTIVATE:"activate.bs.scrollspy",SCROLL:"scroll.bs.scrollspy",LOAD_DATA_API:"load.bs.scrollspy.data-api"},s={DROPDOWN_ITEM:"dropdown-item",DROPDOWN_MENU:"dropdown-menu",ACTIVE:"active"},a={DATA_SPY:'[data-spy="scroll"]',ACTIVE:".active",NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_ITEMS:".d
 ropdown-item",DROPDOWN_TOGGLE:".dropdown-toggle"},l={OFFSET:"offset",POSITION:"position"},c=function(){function n(t,n){var i=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(n),this._selector=this._config.target+" "+a.NAV_LINKS+","+this._config.target+" "+a.LIST_ITEMS+","+this._config.target+" "+a.DROPDOWN_ITEMS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,e(this._scrollElement).on(o.SCROLL,function(t){return i._process(t)}),this.refresh(),this._process()}var c=n.prototype;return c.refresh=function(){var t=this,n=this._scrollElement!==this._scrollElement.window?l.POSITION:l.OFFSET,i="auto"===this._config.method?n:this._config.method,r=i===l.POSITION?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),e.makeArray(e(this._selector)).map(function(t){var n,o=X.getSelectorFromElement(t);if(o&&(n=e(o)[0]),n){var s=n.getBoundingClientRect();if(s.width||s.height
 )return[e(n)[i]().top+r,o]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(e){t._offsets.push(e[0]),t._targets.push(e[1])})},c.dispose=function(){e.removeData(this._element,"bs.scrollspy"),e(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},c._getConfig=function(n){if("string"!=typeof(n=e.extend({},i,n)).target){var o=e(n.target).attr("id");o||(o=X.getUID(t),e(n.target).attr("id",o)),n.target="#"+o}return X.typeCheckConfig(t,n,r),n},c._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},c._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},c._getOffsetHeight=function(){return this._scrollElement===window?window.in
 nerHeight:this._scrollElement.getBoundingClientRect().height},c._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var r=this._offsets.length;r--;)this._activeTarget!==this._targets[r]&&t>=this._offsets[r]&&("undefined"==typeof this._offsets[r+1]||t<this._offsets[r+1])&&this._activate(this._targets[r])}},c._activate=function(t){this._activeTarget=t,this._clear();var n=this._selector.split(",");n=n.map(function(e){return e+'[data-target="'+t+'"],'+e+'[href="'+t+'"]'});var i=e(n.join(","));i.hasClass(s.DROPDOWN_ITEM)?(i.closest(a.DROPDOWN).find(a.DROPDOWN_TOGGLE).addClass(s.ACTIVE),i.addClass(s.ACTIVE)):(i.addClass(s.ACTIVE),i.parents(a.NAV_LIST_
 GROUP).prev(a.NAV_LINKS+", "+a.LIST_ITEMS).addClass(s.ACTIVE),i.parents(a.NAV_LIST_GROUP).prev(a.NAV_ITEMS).children(a.NAV_LINKS).addClass(s.ACTIVE)),e(this._scrollElement).trigger(o.ACTIVATE,{relatedTarget:t})},c._clear=function(){e(this._selector).filter(a.ACTIVE).removeClass(s.ACTIVE)},n._jQueryInterface=function(t){return this.each(function(){var i=e(this).data("bs.scrollspy"),r="object"==typeof t&&t;if(i||(i=new n(this,r),e(this).data("bs.scrollspy",i)),"string"==typeof t){if("undefined"==typeof i[t])throw new Error('No method named "'+t+'"');i[t]()}})},q(n,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return i}}]),n}();return e(window).on(o.LOAD_DATA_API,function(){for(var t=e.makeArray(e(a.DATA_SPY)),n=t.length;n--;){var i=e(t[n]);c._jQueryInterface.call(i,i.data())}}),e.fn[t]=c._jQueryInterface,e.fn[t].Constructor=c,e.fn[t].noConflict=function(){return e.fn[t]=n,c._jQueryInterface},c}(),At=function(){var t=e.fn.tab,n={HIDE:"hide.bs.
 tab",HIDDEN:"hidden.bs.tab",SHOW:"show.bs.tab",SHOWN:"shown.bs.tab",CLICK_DATA_API:"click.bs.tab.data-api"},i={DROPDOWN_MENU:"dropdown-menu",ACTIVE:"active",DISABLED:"disabled",FADE:"fade",SHOW:"show"},r={DROPDOWN:".dropdown",NAV_LIST_GROUP:".nav, .list-group",ACTIVE:".active",ACTIVE_UL:"> li > .active",DATA_TOGGLE:'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',DROPDOWN_TOGGLE:".dropdown-toggle",DROPDOWN_ACTIVE_CHILD:"> .dropdown-menu .active"},o=function(){function t(t){this._element=t}var o=t.prototype;return o.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&e(this._element).hasClass(i.ACTIVE)||e(this._element).hasClass(i.DISABLED))){var o,s,a=e(this._element).closest(r.NAV_LIST_GROUP)[0],l=X.getSelectorFromElement(this._element);if(a){var c="UL"===a.nodeName?r.ACTIVE_UL:r.ACTIVE;s=e.makeArray(e(a).find(c)),s=s[s.length-1]}var f=e.Event(n.HIDE,{relatedTarget:this._element}),h=e.Event(n.SHOW,{relate
 dTarget:s});if(s&&e(s).trigger(f),e(this._element).trigger(h),!h.isDefaultPrevented()&&!f.isDefaultPrevented()){l&&(o=e(l)[0]),this._activate(this._element,a);var u=function(){var i=e.Event(n.HIDDEN,{relatedTarget:t._element}),r=e.Event(n.SHOWN,{relatedTarget:s});e(s).trigger(i),e(t._element).trigger(r)};o?this._activate(o,o.parentNode,u):u()}}},o.dispose=function(){e.removeData(this._element,"bs.tab"),this._element=null},o._activate=function(t,n,o){var s,a=this,l=(s="UL"===n.nodeName?e(n).find(r.ACTIVE_UL):e(n).children(r.ACTIVE))[0],c=o&&X.supportsTransitionEnd()&&l&&e(l).hasClass(i.FADE),f=function(){return a._transitionComplete(t,l,c,o)};l&&c?e(l).one(X.TRANSITION_END,f).emulateTransitionEnd(150):f(),l&&e(l).removeClass(i.SHOW)},o._transitionComplete=function(t,n,o,s){if(n){e(n).removeClass(i.ACTIVE);var a=e(n.parentNode).find(r.DROPDOWN_ACTIVE_CHILD)[0];a&&e(a).removeClass(i.ACTIVE),"tab"===n.getAttribute("role")&&n.setAttribute("aria-selected",!1)}if(e(t).addClass(i.ACTIVE),"t
 ab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),o?(X.reflow(t),e(t).addClass(i.SHOW)):e(t).removeClass(i.FADE),t.parentNode&&e(t.parentNode).hasClass(i.DROPDOWN_MENU)){var l=e(t).closest(r.DROPDOWN)[0];l&&e(l).find(r.DROPDOWN_TOGGLE).addClass(i.ACTIVE),t.setAttribute("aria-expanded",!0)}s&&s()},t._jQueryInterface=function(n){return this.each(function(){var i=e(this),r=i.data("bs.tab");if(r||(r=new t(this),i.data("bs.tab",r)),"string"==typeof n){if("undefined"==typeof r[n])throw new Error('No method named "'+n+'"');r[n]()}})},q(t,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}}]),t}();return e(document).on(n.CLICK_DATA_API,r.DATA_TOGGLE,function(t){t.preventDefault(),o._jQueryInterface.call(e(this),"show")}),e.fn.tab=o._jQueryInterface,e.fn.tab.Constructor=o,e.fn.tab.noConflict=function(){return e.fn.tab=t,o._jQueryInterface},o}();return function(){if("undefined"==typeof e)throw new Error("Bootstrap's JavaScript requires jQuery. jQuery must be included befo
 re Bootstrap's JavaScript.");var t=e.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||t[0]>=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(),t.Util=X,t.Alert=Z,t.Button=J,t.Carousel=$,t.Collapse=tt,t.Dropdown=vt,t.Modal=Et,t.Popover=bt,t.Scrollspy=Ct,t.Tab=At,t.Tooltip=Tt,t}({},$);
-//# sourceMappingURL=bootstrap.bundle.min.js.map
\ No newline at end of file
diff --git a/assets/static/js/bootstrap.bundle.min.js.map b/assets/static/js/bootstrap.bundle.min.js.map
deleted file mode 100755
index 0b513b6..0000000
--- a/assets/static/js/bootstrap.bundle.min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../node_modules/popper.js/dist/esm/popper.js","../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/index.js"],"names":["isFunction","functionToCheck","toString","call","getStyleComputedProperty","element","property","nodeType","css","window","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","indexOf","document","body","_getStyleComputedProp","overflow","overflowX","test","overflowY","getOffsetParent","offsetParent","documentElement","isOffsetContainer","firstElementChild","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","
 contains","element1root","getScroll","upperSide","arguments","length","undefined","html","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","top","bottom","left","right","getBordersSize","styles","axis","sideA","sideB","split","getSize","computedStyle","Math","max","isIE10$1","getWindowSizes","height","width","getClientRect","offsets","_extends","getBoundingClientRect","err","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","isIE10","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","relativeOffset","innerWidth","innerHeight","isFixed","getBoundaries","popper","reference","padding","boundariesElement","boundaries","boundariesNode","_getWindowSizes","getArea","_ref","computeAutoPlacement","placement","refRect","rects","sorte
 dAreas","Object","keys","map","key","area","sort","a","b","filteredAreas","filter","_ref2","computedPlacement","variation","getReferenceOffsets","state","getOuterSizes","x","parseFloat","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","prototype","findIndex","prop","value","cur","match","obj","runModifiers","modifiers","data","ends","slice","forEach","function","console","warn","fn","enabled","update","this","isDestroyed","instance","arrowStyles","attributes","flipped","options","flip","originalPlacement","position","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","i","prefix","toCheck","style","destroy","removeAttribute","disableEventListeners","removeOnDestroy","removeChild",
 "attachToScrollParents","event","callback","scrollParents","isBody","target","addEventListener","passive","push","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","removeEventListeners","removeEventListener","cancelAnimationFrame","isNumeric","n","isNaN","isFinite","setStyles","unit","setAttributes","setAttribute","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","getOppositeVariation","clockwise","counter","index","validPlacements","concat","reverse","toValue","str","parseOffset","offset","basePlacement","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","index2","Util","toType","toLowerCase","getSpecialTransitionEndEvent","transition","$","is","handleObj","handler","apply","transitionEndTest","QUnit","el","createElement","TransitionEndEvent","transitionEndEmulator","duration","called","one","TRANSITION_END","tr
 iggerTransitionEnd","_this","random","getElementById","selector","getAttribute","error","trigger","Boolean","componentName","config","configTypes","hasOwnProperty","expectedTypes","valueType","isElement","RegExp","Error","emulateTransitionEnd","supportsTransitionEnd","special","Alert","NAME","JQUERY_NO_CONFLICT","Event","ClassName","_element","close","rootElement","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","getSelectorFromElement","closest","ALERT","closeEvent","CLOSE","removeClass","SHOW","hasClass","FADE","_destroyElement","detach","CLOSED","remove","_jQueryInterface","each","$element","_handleDismiss","alertInstance","preventDefault","on","CLICK_DATA_API","DISMISS","Constructor","noConflict","Button","Selector","toggle","triggerChangeEvent","addAriaPressed","DATA_TOGGLE","input","INPUT","type","checked","ACTIVE","activeElement","hasAttribute","classList","focus","toggleClass","DATA_TOGGLE_CARROT","button","BUTTON","FOCUS_BL
 UR_DATA_API","FOCUS","Carousel","DATA_KEY","EVENT_KEY","Default","DefaultType","Direction","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","INDICATORS","_addEventListeners","next","_slide","NEXT","nextWhenVisible","hidden","prev","PREV","pause","NEXT_PREV","cycle","interval","setInterval","visibilityState","bind","to","ACTIVE_ITEM","activeIndex","_getItemIndex","SLID","direction","off","extend","typeCheckConfig","keyboard","KEYDOWN","_this2","_keydown","MOUSEENTER","MOUSELEAVE","TOUCHEND","setTimeout","tagName","which","makeArray","ITEM","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","wrap","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","SLIDE","_setActiveIndicatorElement","nextIndicator","addClass","directionalClassName","orderClassName","activeElementIndex","nextElement","nextElementIndex","isCycling","LEFT","RIGHT","sli
 dEvent","reflow","_this3","action","slide","_dataApiClickHandler","CAROUSEL","slideIndex","DATA_SLIDE","LOAD_DATA_API","DATA_RIDE","$carousel","Collapse","Dimension","_isTransitioning","_triggerArray","id","tabToggles","elem","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","ACTIVES","startEvent","dimension","_getDimension","COLLAPSE","COLLAPSING","COLLAPSED","attr","setTransitioning","complete","SHOWN","scrollSize","HIDE","HIDDEN","isTransitioning","WIDTH","HEIGHT","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","$target","nativeHints","isBrowser","longerTimeoutBrowsers","timeoutDuration","navigator","userAgent","debounce","hint","isNative","MutationObserver","scheduled","observe","appVersion","classCallCheck","TypeError","createClass","defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","protoProps","staticProps","assign","source","placements","BEHAVIORS",
 "FLIP","CLOCKWISE","COUNTERCLOCKWISE","Defaults","shift","shiftvariation","_data$offsets","isVertical","side","shiftOffsets","preventOverflow","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","arrowElement","querySelector","len","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","sideValue","round","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","flipVariations","inner","subtractLength","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","prefixedProperty","willChange","invertTop","invertLeft","x-placement","applyStyle","onLoad","modifierOptions","Popper","requestAnimationFrame","Utils","global","PopperUtils","Dropdown","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","AttachmentMap","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","di
 sabled","DISABLED","_getParentFromElement","isActive","_clearMenus","showEvent","DROPUP","MENULEFT","MENURIGHT","_getPopperConfig","NAVBAR_NAV","noop","CLICK","stopPropagation","constructor","MENU","_getPlacement","$parentDropdown","BOTTOM","TOP","TOPEND","BOTTOMEND","offsetConf","popperConfig","toggles","context","dropdownMenu","hideEvent","_dataApiKeydownHandler","items","VISIBLE_ITEMS","get","KEYDOWN_DATA_API","KEYUP_DATA_API","FORM_CHILD","e","Modal","_dialog","DIALOG","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_originalBodyPadding","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","OPEN","_setEscapeEvent","_setResizeEvent","CLICK_DISMISS","DATA_DISMISS","MOUSEDOWN_DISMISS","MOUSEUP_DISMISS","_showBackdrop","_showElement","FOCUSIN","_hideModal","handleUpdate","ELEMENT_NODE","appendChild","display","_enforceFocus","shownEvent","transitionComplete","_this4","has","KEYDOWN_DISMISS","RESIZE","_this6","_resetAdjustments","_resetScrollbar","_
 this7","_removeBackdrop","animate","backdrop","doAnimate","className","BACKDROP","appendTo","_this8","callbackRemove","isModalOverflowing","scrollHeight","paddingLeft","paddingRight","_getScrollbarWidth","FIXED_CONTENT","actualPadding","calculatedPadding","_this9","STICKY_CONTENT","actualMargin","calculatedMargin","NAVBAR_TOGGLER","margin","scrollDiv","SCROLLBAR_MEASURER","scrollbarWidth","Tooltip","BSCLS_PREFIX_REGEX","HoverState","Trigger","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","ownerDocument","tipId","getUID","setContent","animation","attachment","_getAttachment","addAttachmentClass","container","INSERTED","fallbackPlacement","ARROW","_handlePopperPlacementChange","_fixTransition","prevHoverState","OUT","_TRANSITION_DURATION","_cleanTipClass","HOVER","getTitle","CLASS_PREFIX","template
 ","$tip","setElementContent","TOOLTIP_INNER","content","empty","append","text","title","MANUAL","eventIn","eventOut","FOCUSOUT","_fixTitle","titleType","delay","tabClass","join","initConfigAnimation","Popover","_getContent","TITLE","CONTENT","ScrollSpy","OffsetMethod","_scrollElement","_selector","NAV_LINKS","LIST_ITEMS","DROPDOWN_ITEMS","_offsets","_targets","_activeTarget","_scrollHeight","SCROLL","_process","refresh","autoMethod","POSITION","OFFSET","offsetMethod","method","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","item","pageYOffset","_getOffsetHeight","maxScroll","_activate","_clear","queries","$link","DROPDOWN_ITEM","DROPDOWN","DROPDOWN_TOGGLE","parents","NAV_LIST_GROUP","NAV_ITEMS","ACTIVATE","scrollSpys","DATA_SPY","$spy","Tab","previous","listElement","itemSelector","ACTIVE_UL","hiddenEvent","activeElements","active","_transitionComplete","dropdownChild","DROPDOWN_ACTIVE_CHILD","DROPDOWN_MENU","dropdownElement","version"],"mappings":";;;;;
 +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","sourcesContent":["/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.12.5\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n *
  copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar nativeHints = ['native code', '[object MutationObserverConstructor]'];\n\n/**\n * Determine if a function is implemented natively (as opposed to a polyfill).\n * @method\n * @memberof Popper.Utils\n * @argument {Function | undefined} fn the function to check\n * @returns {Boolean}\n */\nvar isNative = (function (fn) {\n  return nativeHints.some(function (hint) {\n    return (fn || '').toString().indexOf(hint) > -1;\n  });\n});\n\nvar isBro
 wser = typeof window !== 'undefined';\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n  if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n    timeoutDuration = 1;\n    break;\n  }\n}\n\nfunction microtaskDebounce(fn) {\n  var scheduled = false;\n  var i = 0;\n  var elem = document.createElement('span');\n\n  // MutationObserver provides a mechanism for scheduling microtasks, which\n  // are scheduled *before* the next task. This gives us a way to debounce\n  // a function but ensure it's called *before* the next paint.\n  var observer = new MutationObserver(function () {\n    fn();\n    scheduled = false;\n  });\n\n  observer.observe(elem, { attributes: true });\n\n  return function () {\n    if (!scheduled) {\n      scheduled = true;\n      elem.setAttribute('x-index', i);\n      i = i + 1; // don't use compund (+=) because it doesn't get optimized in V
 8\n    }\n  };\n}\n\nfunction taskDebounce(fn) {\n  var scheduled = false;\n  return function () {\n    if (!scheduled) {\n      scheduled = true;\n      setTimeout(function () {\n        scheduled = false;\n        fn();\n      }, timeoutDuration);\n    }\n  };\n}\n\n// It's common for MutationObserver polyfills to be seen in the wild, however\n// these rely on Mutation Events which only occur when an element is connected\n// to the DOM. The algorithm used in this module does not use a connected element,\n// and so we must ensure that a *native* MutationObserver is available.\nvar supportsNativeMutationObserver = isBrowser && isNative(window.MutationObserver);\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsNativeMutationObserver ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the g
 iven variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n  var getType = {};\n  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n  if (element.nodeType !== 1) {\n    return [];\n  }\n  // NOTE: 1 DOM access here\n  var css = window.getComputedStyle(element, null);\n  return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n  if (element.nodeName === 'HTML') {\n    return element;
 \n  }\n  return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n  // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n  if (!element || ['HTML', 'BODY', '#document'].indexOf(element.nodeName) !== -1) {\n    return window.document.body;\n  }\n\n  // Firefox want us to check `-x` and `-y` variations as well\n\n  var _getStyleComputedProp = getStyleComputedProperty(element),\n      overflow = _getStyleComputedProp.overflow,\n      overflowX = _getStyleComputedProp.overflowX,\n      overflowY = _getStyleComputedProp.overflowY;\n\n  if (/(auto|scroll)/.test(overflow + overflowY + overflowX)) {\n    return element;\n  }\n\n  return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof P
 opper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n  // NOTE: 1 DOM access here\n  var offsetParent = element && element.offsetParent;\n  var nodeName = offsetParent && offsetParent.nodeName;\n\n  if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n    return window.document.documentElement;\n  }\n\n  // .offsetParent will return the closest TD or TABLE in case\n  // no offsetParent is present, I hate this job...\n  if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n    return getOffsetParent(offsetParent);\n  }\n\n  return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY') {\n    return false;\n  }\n  return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of t
 he given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n  if (node.parentNode !== null) {\n    return getRoot(node.parentNode);\n  }\n\n  return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n  // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n  if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n    return window.document.documentElement;\n  }\n\n  // Here we make sure to give as \"start\" the element that comes first in the DOM\n  var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n  var start = order ? element1 : element2;\n  var end = order ?
  element2 : element1;\n\n  // Get common ancestor container\n  var range = document.createRange();\n  range.setStart(start, 0);\n  range.setEnd(end, 0);\n  var commonAncestorContainer = range.commonAncestorContainer;\n\n  // Both nodes are inside #document\n\n  if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n    if (isOffsetContainer(commonAncestorContainer)) {\n      return commonAncestorContainer;\n    }\n\n    return getOffsetParent(commonAncestorContainer);\n  }\n\n  // one of the nodes is inside shadowDOM, find which one\n  var element1root = getRoot(element1);\n  if (element1root.host) {\n    return findCommonOffsetParent(element1root.host, element2);\n  } else {\n    return findCommonOffsetParent(element1, getRoot(element2).host);\n  }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} 
 side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n  var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n  var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n  var nodeName = element.nodeName;\n\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    var html = window.document.documentElement;\n    var scrollingElement = window.document.scrollingElement || html;\n    return scrollingElement[upperSide];\n  }\n\n  return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(
 rect, element) {\n  var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n  var scrollTop = getScroll(element, 'top');\n  var scrollLeft = getScroll(element, 'left');\n  var modifier = subtract ? -1 : 1;\n  rect.top += scrollTop * modifier;\n  rect.bottom += scrollTop * modifier;\n  rect.left += scrollLeft * modifier;\n  rect.right += scrollLeft * modifier;\n  return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n  var sideA = axis === 'x' ? 'Left' : 'Top';\n  var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n  return +styles['border' + sideA + 'Width'].split('px')[0] + +styles['border' + sideB + 'Width'].split('px')[0];\n}\n\n/**\n * T
 ells if you are running Internet Explorer 10\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean} isIE10\n */\nvar isIE10 = undefined;\n\nvar isIE10$1 = function () {\n  if (isIE10 === undefined) {\n    isIE10 = navigator.appVersion.indexOf('MSIE 10') !== -1;\n  }\n  return isIE10;\n};\n\nfunction getSize(axis, body, html, computedStyle) {\n  return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE10$1() ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);\n}\n\nfunction getWindowSizes() {\n  var body = window.document.body;\n  var html = window.document.documentElement;\n  var computedStyle = isIE10$1() && window.getComputedStyle(html);\n\n  return {\n    height: getSize('Height', body, html, computedStyle),\n    width: getSize('Width', body, html, computedStyle)\n  };\n}\n\nvar classCa
 llCheck = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\nvar createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: t
 rue,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n  return _extends({}, offsets, {\n    right: offsets.left + offsets.width,\n    bottom: offsets.top + offsets.height\n  });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n  var rect 
 = {};\n\n  // IE10 10 FIX: Please, don't ask, the element isn't\n  // considered in DOM in some circumstances...\n  // This isn't reproducible in IE10 compatibility mode of IE11\n  if (isIE10$1()) {\n    try {\n      rect = element.getBoundingClientRect();\n      var scrollTop = getScroll(element, 'top');\n      var scrollLeft = getScroll(element, 'left');\n      rect.top += scrollTop;\n      rect.left += scrollLeft;\n      rect.bottom += scrollTop;\n      rect.right += scrollLeft;\n    } catch (err) {}\n  } else {\n    rect = element.getBoundingClientRect();\n  }\n\n  var result = {\n    left: rect.left,\n    top: rect.top,\n    width: rect.right - rect.left,\n    height: rect.bottom - rect.top\n  };\n\n  // subtract scrollbar size from sizes\n  var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};\n  var width = sizes.width || element.clientWidth || result.right - result.left;\n  var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n  var h
 orizScrollbar = element.offsetWidth - width;\n  var vertScrollbar = element.offsetHeight - height;\n\n  // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n  // we make this check conditional for performance reasons\n  if (horizScrollbar || vertScrollbar) {\n    var styles = getStyleComputedProperty(element);\n    horizScrollbar -= getBordersSize(styles, 'x');\n    vertScrollbar -= getBordersSize(styles, 'y');\n\n    result.width -= horizScrollbar;\n    result.height -= vertScrollbar;\n  }\n\n  return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n  var isIE10 = isIE10$1();\n  var isHTML = parent.nodeName === 'HTML';\n  var childrenRect = getBoundingClientRect(children);\n  var parentRect = getBoundingClientRect(parent);\n  var scrollParent = getScrollParent(children);\n\n  var styles = getStyleComputedProperty(parent);\n  var borderTopWidth = +styles.borderTopWidth.split('px')[0];\n  var borderLeftWidth 
 = +styles.borderLeftWidth.split('px')[0];\n\n  var offsets = getClientRect({\n    top: childrenRect.top - parentRect.top - borderTopWidth,\n    left: childrenRect.left - parentRect.left - borderLeftWidth,\n    width: childrenRect.width,\n    height: childrenRect.height\n  });\n  offsets.marginTop = 0;\n  offsets.marginLeft = 0;\n\n  // Subtract margins of documentElement in case it's being used as parent\n  // we do this only on HTML because it's the only element that behaves\n  // differently when margins are applied to it. The margins are included in\n  // the box of the documentElement, in the other cases not.\n  if (!isIE10 && isHTML) {\n    var marginTop = +styles.marginTop.split('px')[0];\n    var marginLeft = +styles.marginLeft.split('px')[0];\n\n    offsets.top -= borderTopWidth - marginTop;\n    offsets.bottom -= borderTopWidth - marginTop;\n    offsets.left -= borderLeftWidth - marginLeft;\n    offsets.right -= borderLeftWidth - marginLeft;\n\n    // Attach marginTop and m
 arginLeft because in some circumstances we may need them\n    offsets.marginTop = marginTop;\n    offsets.marginLeft = marginLeft;\n  }\n\n  if (isIE10 ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n    offsets = includeScroll(offsets, parent);\n  }\n\n  return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n  var html = window.document.documentElement;\n  var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n  var width = Math.max(html.clientWidth, window.innerWidth || 0);\n  var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n  var scrollTop = getScroll(html);\n  var scrollLeft = getScroll(html, 'left');\n\n  var offset = {\n    top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n    left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n    width: width,\n    height: height\n  };\n\n  return getClientRect(offset);\n}\n\n/**\n * Che
 ck if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n  var nodeName = element.nodeName;\n  if (nodeName === 'BODY' || nodeName === 'HTML') {\n    return false;\n  }\n  if (getStyleComputedProperty(element, 'position') === 'fixed') {\n    return true;\n  }\n  return isFixed(getParentNode(element));\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n  // NOTE: 1 DOM access here\n  var boundaries = { top: 0, left: 0 };\n  var offsetParent
  = findCommonOffsetParent(popper, reference);\n\n  // Handle viewport case\n  if (boundariesElement === 'viewport') {\n    boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent);\n  } else {\n    // Handle other cases based on DOM element used as boundaries\n    var boundariesNode = void 0;\n    if (boundariesElement === 'scrollParent') {\n      boundariesNode = getScrollParent(getParentNode(popper));\n      if (boundariesNode.nodeName === 'BODY') {\n        boundariesNode = window.document.documentElement;\n      }\n    } else if (boundariesElement === 'window') {\n      boundariesNode = window.document.documentElement;\n    } else {\n      boundariesNode = boundariesElement;\n    }\n\n    var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent);\n\n    // In case of HTML, we need a different computation\n    if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n      var _getWindowSizes = getWindowSizes(),\n          height 
 = _getWindowSizes.height,\n          width = _getWindowSizes.width;\n\n      boundaries.top += offsets.top - offsets.marginTop;\n      boundaries.bottom = height + offsets.top;\n      boundaries.left += offsets.left - offsets.marginLeft;\n      boundaries.right = width + offsets.left;\n    } else {\n      // for all the other DOM elements, this one is good\n      boundaries = offsets;\n    }\n  }\n\n  // Add paddings\n  boundaries.left += padding;\n  boundaries.top += padding;\n  boundaries.right -= padding;\n  boundaries.bottom -= padding;\n\n  return boundaries;\n}\n\nfunction getArea(_ref) {\n  var width = _ref.width,\n      height = _ref.height;\n\n  return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object}
  The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n  var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n  if (placement.indexOf('auto') === -1) {\n    return placement;\n  }\n\n  var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n  var rects = {\n    top: {\n      width: boundaries.width,\n      height: refRect.top - boundaries.top\n    },\n    right: {\n      width: boundaries.right - refRect.right,\n      height: boundaries.height\n    },\n    bottom: {\n      width: boundaries.width,\n      height: boundaries.bottom - refRect.bottom\n    },\n    left: {\n      width: refRect.left - boundaries.left,\n      height: boundaries.height\n    }\n  };\n\n  var sortedAreas = Object.keys(rects).map(function (key) {\n    return _extends({\n      key: key\n    }, rects[key], {\n      area: getArea(rects[key])\n    });\n  }).sort(function (a, b)
  {\n    return b.area - a.area;\n  });\n\n  var filteredAreas = sortedAreas.filter(function (_ref2) {\n    var width = _ref2.width,\n        height = _ref2.height;\n    return width >= popper.clientWidth && height >= popper.clientHeight;\n  });\n\n  var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n  var variation = placement.split('-')[1];\n\n  return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n  var commonOffsetParent = findCommonOffsetParent(popper, reference);\n  return getOffsetRectRelativeToArbitraryNode(reference
 , commonOffsetParent);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n  var styles = window.getComputedStyle(element);\n  var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n  var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n  var result = {\n    width: element.offsetWidth + y,\n    height: element.offsetHeight + x\n  };\n  return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n  var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n  return placement.replace(/left|right|bottom|top/g, function (matched) {\n    return hash[matched];\
 n  });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n  placement = placement.split('-')[0];\n\n  // Get popper node sizes\n  var popperRect = getOuterSizes(popper);\n\n  // Add position, width and height to our offsets object\n  var popperOffsets = {\n    width: popperRect.width,\n    height: popperRect.height\n  };\n\n  // depending by the popper placement we have to compute its offsets slightly differently\n  var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n  var mainSide = is
 Horiz ? 'top' : 'left';\n  var secondarySide = isHoriz ? 'left' : 'top';\n  var measurement = isHoriz ? 'height' : 'width';\n  var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n  popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n  if (placement === secondarySide) {\n    popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n  } else {\n    popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n  }\n\n  return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n  // use native find if supported\n  if (Array.prototype.find) {\n    return arr.find(check);\n  }\n\n  // use `filter` to obtain the same behavior of `find`\n  return arr.filter(check)[0];\n}\n\n/*
 *\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n  // use native findIndex if supported\n  if (Array.prototype.findIndex) {\n    return arr.findIndex(function (cur) {\n      return cur[prop] === value;\n    });\n  }\n\n  // use `find` + `indexOf` if `findIndex` isn't supported\n  var match = find(arr, function (obj) {\n    return obj[prop] === value;\n  });\n  return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n  var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(
 0, findIndex(modifiers, 'name', ends));\n\n  modifiersToRun.forEach(function (modifier) {\n    if (modifier.function) {\n      console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n    }\n    var fn = modifier.function || modifier.fn;\n    if (modifier.enabled && isFunction(fn)) {\n      // Add properties to offsets to make them a complete clientRect object\n      // we do this before each modifier to make sure the previous one doesn't\n      // mess with these values\n      data.offsets.popper = getClientRect(data.offsets.popper);\n      data.offsets.reference = getClientRect(data.offsets.reference);\n\n      data = fn(data, modifier);\n    }\n  });\n\n  return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n  // if popper is destroyed, don't perform any further
  update\n  if (this.state.isDestroyed) {\n    return;\n  }\n\n  var data = {\n    instance: this,\n    styles: {},\n    arrowStyles: {},\n    attributes: {},\n    flipped: false,\n    offsets: {}\n  };\n\n  // compute reference element offsets\n  data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placement` if needed\n  // and refer to originalPlacement to know the original value\n  data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n  // store the computed placement inside `originalPlacement`\n  data.originalPlacement = data.placement;\n\n  // compute the popper offsets\n  data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n  data.offsets.popper.pos
 ition = 'absolute';\n\n  // run the modifiers\n  data = runModifiers(this.modifiers, data);\n\n  // the first `update` will call `onCreate` callback\n  // the other ones will call `onUpdate` callback\n  if (!this.state.isCreated) {\n    this.state.isCreated = true;\n    this.options.onCreate(data);\n  } else {\n    this.options.onUpdate(data);\n  }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n  return modifiers.some(function (_ref) {\n    var name = _ref.name,\n        enabled = _ref.enabled;\n    return enabled && name === modifierName;\n  });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n  var prefi
 xes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n  var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n  for (var i = 0; i < prefixes.length - 1; i++) {\n    var prefix = prefixes[i];\n    var toCheck = prefix ? '' + prefix + upperProp : property;\n    if (typeof window.document.body.style[toCheck] !== 'undefined') {\n      return toCheck;\n    }\n  }\n  return null;\n}\n\n/**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n  this.state.isDestroyed = true;\n\n  // touch DOM only if `applyStyle` modifier is enabled\n  if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n    this.popper.removeAttribute('x-placement');\n    this.popper.style.left = '';\n    this.popper.style.position = '';\n    this.popper.style.top = '';\n    this.popper.style[getSupportedPropertyName('transform')] = '';\n  }\n\n  this.disableEventListeners();\n\n  // remove the popper if user explicity asked for the deletion on destroy\n  // do not use `remove` b
 ecause IE11 doesn't support it\n  if (this.options.removeOnDestroy) {\n    this.popper.parentNode.removeChild(this.popper);\n  }\n  return this;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n  var isBody = scrollParent.nodeName === 'BODY';\n  var target = isBody ? window : scrollParent;\n  target.addEventListener(event, callback, { passive: true });\n\n  if (!isBody) {\n    attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n  }\n  scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n  // Resize event listener on window\n  state.updateBound = updateBound;\n  window.addEventListener('resize', state.updateBound, { passive: true });\n\n  // Scroll event listener on scroll parents\n  var scrollElement = getScrollParent(reference
 );\n  attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n  state.scrollElement = scrollElement;\n  state.eventsEnabled = true;\n\n  return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n  if (!this.state.eventsEnabled) {\n    this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n  }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n  // Remove resize event listener on window\n  window.removeEventListener('resize', state.updateBound);\n\n  // Remove scroll event listener on scroll parents\n  state.scrollParents.forEach(function (target) {\n    target.removeEventListener('scroll', state.updateBound);\n  });\n\n  /
 / Reset state\n  state.updateBound = null;\n  state.scrollParents = [];\n  state.scrollElement = null;\n  state.eventsEnabled = false;\n  return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger onUpdate callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n  if (this.state.eventsEnabled) {\n    window.cancelAnimationFrame(this.scheduleUpdate);\n    this.state = removeEventListeners(this.reference, this.state);\n  }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n  return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {
 Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n  Object.keys(styles).forEach(function (prop) {\n    var unit = '';\n    // add unit if the value is numeric and is one of the following\n    if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n      unit = 'px';\n    }\n    element.style[prop] = styles[prop] + unit;\n  });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n  Object.keys(attributes).forEach(function (prop) {\n    var value = attributes[prop];\n    if (value !== false) {\n      element.setAttribute(prop, attributes[prop]);\n    } else {\n      e
 lement.removeAttribute(prop);\n    }\n  });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n  // any property present in `data.styles` will be applied to the popper,\n  // in this way we can make the 3rd party modifiers add custom styles to it\n  // Be aware, modifiers could override the properties defined in the previous\n  // lines of this modifier!\n  setStyles(data.instance.popper, data.styles);\n\n  // any property present in `data.attributes` will be applied to the popper,\n  // they will be set as HTML attributes of the element\n  setAttributes(data.instance
 .popper, data.attributes);\n\n  // if arrowElement is defined and arrowStyles has some properties\n  if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n    setStyles(data.arrowElement, data.arrowStyles);\n  }\n\n  return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper.\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n  // compute reference element offsets\n  var referenceOffsets = getReferenceOffsets(state, popper, reference);\n\n  // compute auto placement, store placement inside the data object,\n  // modifiers will be able to edit `placem
 ent` if needed\n  // and refer to originalPlacement to know the original value\n  var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n  popper.setAttribute('x-placement', placement);\n\n  // Apply `position` to popper before anything else because\n  // without the position applied we can't guarantee correct computations\n  setStyles(popper, { position: 'absolute' });\n\n  return options;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n  var x = options.x,\n      y = options.y;\n  var popper = data.offsets.popper;\n\n  // Remove this legacy support in Popper.js v2\n\n  var legacyGpuAccelerationOption = find(data.instance.mod
 ifiers, function (modifier) {\n    return modifier.name === 'applyStyle';\n  }).gpuAcceleration;\n  if (legacyGpuAccelerationOption !== undefined) {\n    console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n  }\n  var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n  var offsetParent = getOffsetParent(data.instance.popper);\n  var offsetParentRect = getBoundingClientRect(offsetParent);\n\n  // Styles\n  var styles = {\n    position: popper.position\n  };\n\n  // floor sides to avoid blurry text\n  var offsets = {\n    left: Math.floor(popper.left),\n    top: Math.floor(popper.top),\n    bottom: Math.floor(popper.bottom),\n    right: Math.floor(popper.right)\n  };\n\n  var sideA = x === 'bottom' ? 'top' : 'bottom';\n  var sideB = y === 'right' ? 'left' : 'right';\n\n  // if gpuAcceleration is set to `true` and transform is 
 supported,\n  //  we use `translate3d` to apply the position to the popper we\n  // automatically use the supported prefixed version if needed\n  var prefixedProperty = getSupportedPropertyName('transform');\n\n  // now, let's make a step back and look at this code closely (wtf?)\n  // If the content of the popper grows once it's been positioned, it\n  // may happen that the popper gets misplaced because of the new content\n  // overflowing its reference element\n  // To avoid this problem, we provide two options (x and y), which allow\n  // the consumer to define the offset origin.\n  // If we position a popper on top of a reference element, we can set\n  // `x` to `top` to make the popper grow towards its top instead of\n  // its bottom.\n  var left = void 0,\n      top = void 0;\n  if (sideA === 'bottom') {\n    top = -offsetParentRect.height + offsets.bottom;\n  } else {\n    top = offsets.top;\n  }\n  if (sideB === 'right') {\n    left = -offsetParentRect.width + offsets.right;
 \n  } else {\n    left = offsets.left;\n  }\n  if (gpuAcceleration && prefixedProperty) {\n    styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n    styles[sideA] = 0;\n    styles[sideB] = 0;\n    styles.willChange = 'transform';\n  } else {\n    // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n    var invertTop = sideA === 'bottom' ? -1 : 1;\n    var invertLeft = sideB === 'right' ? -1 : 1;\n    styles[sideA] = top * invertTop;\n    styles[sideB] = left * invertLeft;\n    styles.willChange = sideA + ', ' + sideB;\n  }\n\n  // Attributes\n  var attributes = {\n    'x-placement': data.placement\n  };\n\n  // Update `data` attributes, styles and arrowStyles\n  data.attributes = _extends({}, attributes, data.attributes);\n  data.styles = _extends({}, styles, data.styles);\n  data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n  return data;\n}\n\n/**\n * Helper used to know if the given modifier depends f
 rom another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n  var requesting = find(modifiers, function (_ref) {\n    var name = _ref.name;\n    return name === requestingName;\n  });\n\n  var isRequired = !!requesting && modifiers.some(function (modifier) {\n    return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n  });\n\n  if (!isRequired) {\n    var _requesting = '`' + requestingName + '`';\n    var requested = '`' + requestedName + '`';\n    console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n  }\n  r
 eturn isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n  // arrow depends on keepTogether in order to work\n  if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n    return data;\n  }\n\n  var arrowElement = options.element;\n\n  // if arrowElement is a string, suppose it's a CSS selector\n  if (typeof arrowElement === 'string') {\n    arrowElement = data.instance.popper.querySelector(arrowElement);\n\n    // if arrowElement is not found, don't run the modifier\n    if (!arrowElement) {\n      return data;\n    }\n  } else {\n    // if the arrowElement isn't a query selector we must check that the\n    // provided DOM node is child of its popper node\n    if (!data.instance.popper.contains(arrowElement)) {\n     
  console.warn('WARNING: `arrow.element` must be child of its popper element!');\n      return data;\n    }\n  }\n\n  var placement = data.placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n  var len = isVertical ? 'height' : 'width';\n  var sideCapitalized = isVertical ? 'Top' : 'Left';\n  var side = sideCapitalized.toLowerCase();\n  var altSide = isVertical ? 'left' : 'top';\n  var opSide = isVertical ? 'bottom' : 'right';\n  var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n  //\n  // extends keepTogether behavior making sure the popper and its\n  // reference have enough pixels in conjuction\n  //\n\n  // top/left side\n  if (reference[opSide] - arrowElementSize < popper[side]) {\n    data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n  }\n  // bottom/right side\n  if (referen
 ce[side] + arrowElementSize > popper[opSide]) {\n    data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n  }\n\n  // compute center of the popper\n  var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n  // Compute the sideValue using the updated popper offsets\n  // take popper margin in account because we don't have this info available\n  var popperMarginSide = getStyleComputedProperty(data.instance.popper, 'margin' + sideCapitalized).replace('px', '');\n  var sideValue = center - getClientRect(data.offsets.popper)[side] - popperMarginSide;\n\n  // prevent arrowElement from being placed not contiguously to its popper\n  sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n  data.arrowElement = arrowElement;\n  data.offsets.arrow = {};\n  data.offsets.arrow[side] = Math.round(sideValue);\n  data.offsets.arrow[altSide] = ''; // make sure to unset any eventual altSide value from the DOM node\n\n  retur
 n data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n  if (variation === 'end') {\n    return 'start';\n  } else if (variation === 'start') {\n    return 'end';\n  }\n  return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, 
 right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-right` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfun
 ction clockwise(placement) {\n  var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n  var index = validPlacements.indexOf(placement);\n  var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n  return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n  FLIP: 'flip',\n  CLOCKWISE: 'clockwise',\n  COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n  // if `inner` modifier is enabled, we can't use the `flip` modifier\n  if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n    return data;\n  }\n\n  if (data.flipped && data.placement === data.originalPlacement) {\n    // seems like flip is trying to loop, probably there's not enough space
  on any of the flippable sides\n    return data;\n  }\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement);\n\n  var placement = data.placement.split('-')[0];\n  var placementOpposite = getOppositePlacement(placement);\n  var variation = data.placement.split('-')[1] || '';\n\n  var flipOrder = [];\n\n  switch (options.behavior) {\n    case BEHAVIORS.FLIP:\n      flipOrder = [placement, placementOpposite];\n      break;\n    case BEHAVIORS.CLOCKWISE:\n      flipOrder = clockwise(placement);\n      break;\n    case BEHAVIORS.COUNTERCLOCKWISE:\n      flipOrder = clockwise(placement, true);\n      break;\n    default:\n      flipOrder = options.behavior;\n  }\n\n  flipOrder.forEach(function (step, index) {\n    if (placement !== step || flipOrder.length === index + 1) {\n      return data;\n    }\n\n    placement = data.placement.split('-')[0];\n    placementOpposite = getOppositePlacement(placement);\n\n    var p
 opperOffsets = data.offsets.popper;\n    var refOffsets = data.offsets.reference;\n\n    // using floor because the reference offsets may contain decimals we are not going to consider here\n    var floor = Math.floor;\n    var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n    var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n    var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n    var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n    var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n    var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placeme
 nt === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n    // flip the variation if required\n    var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n    var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n    if (overlapsRef || overflowsBoundaries || flippedVariation) {\n      // this boolean to detect any flip loop\n      data.flipped = true;\n\n      if (overlapsRef || overflowsBoundaries) {\n        placement = flipOrder[index + 1];\n      }\n\n      if (flippedVariation) {\n        variation = getOppositeVariation(variation);\n      }\n\n      data.placement = placement + (variation ? '-' + variation : '');\n\n      // this object contains `position`, we want to preserve it along with\n      // any additional property we m
 ay add in the future\n      data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n      data = runModifiers(data.instance.modifiers, data, 'flip');\n    }\n  });\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var placement = data.placement.split('-')[0];\n  var floor = Math.floor;\n  var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n  var side = isVertical ? 'right' : 'bottom';\n  var opSide = isVertical ? 'left' : 'top';\n  var measurement = isVertical ? 'width' : 'height';\n\n  if (popper[side] < floor(reference[op
 Side])) {\n    data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n  }\n  if (popper[opSide] > floor(reference[side])) {\n    data.offsets.popper[opSide] = floor(reference[side]);\n  }\n\n  return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n  // separate value from unit\n  var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n  var value = +split[1];\n  var unit = split[2];\n\n  // If it's not a number it's an operator, I guess\n  if (!value) {\n    return str;\n  }\n\n  if (unit.indexOf('%') === 0) {\n
     var element = void 0;\n    switch (unit) {\n      case '%p':\n        element = popperOffsets;\n        break;\n      case '%':\n      case '%r':\n      default:\n        element = referenceOffsets;\n    }\n\n    var rect = getClientRect(element);\n    return rect[measurement] / 100 * value;\n  } else if (unit === 'vh' || unit === 'vw') {\n    // if is a vh or vw, we calculate the size based on the viewport\n    var size = void 0;\n    if (unit === 'vh') {\n      size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n    } else {\n      size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n    }\n    return size / 100 * value;\n  } else {\n    // if is an explicit pixel unit, we get rid of the unit and keep the value\n    // if is an implicit unit, it's px, and we return just the value\n    return value;\n  }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifie
 rs~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n  var offsets = [0, 0];\n\n  // Use height if placement is left or right and index is 0 otherwise use width\n  // in this way the first offset will use an axis and the second one\n  // will use the other one\n  var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n  // Split the offset string to obtain a list of values and operands\n  // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n  var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n    return frag.trim();\n  });\n\n  // Detect if the offset string contains a pair of values or a single one\n  // they could be separated by comma or space\n  var divide
 r = fragments.indexOf(find(fragments, function (frag) {\n    return frag.search(/,|\\s/) !== -1;\n  }));\n\n  if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n    console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n  }\n\n  // If divider is found, we divide the list of values and operands to divide\n  // them by ofset X and Y.\n  var splitRegex = /\\s*,\\s*|\\s+/;\n  var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n  // Convert the values with units to absolute pixels to allow our computations\n  ops = ops.map(function (op, index) {\n    // Most of the units rely on the orientation of the popper\n    var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n    var mergeWithPrevious = false;\n    return op\n    // This aggregates any `+` or `-` s
 ign that aren't considered operators\n    // e.g.: 10 + +5 => [10, +, +5]\n    .reduce(function (a, b) {\n      if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n        a[a.length - 1] = b;\n        mergeWithPrevious = true;\n        return a;\n      } else if (mergeWithPrevious) {\n        a[a.length - 1] += b;\n        mergeWithPrevious = false;\n        return a;\n      } else {\n        return a.concat(b);\n      }\n    }, [])\n    // Here we convert the string values into number values (in px)\n    .map(function (str) {\n      return toValue(str, measurement, popperOffsets, referenceOffsets);\n    });\n  });\n\n  // Loop trough the offsets arrays and execute the operations\n  ops.forEach(function (op, index) {\n    op.forEach(function (frag, index2) {\n      if (isNumeric(frag)) {\n        offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n      }\n    });\n  });\n  return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} da
 ta - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n  var offset = _ref.offset;\n  var placement = data.placement,\n      _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var basePlacement = placement.split('-')[0];\n\n  var offsets = void 0;\n  if (isNumeric(+offset)) {\n    offsets = [+offset, 0];\n  } else {\n    offsets = parseOffset(offset, popper, reference, basePlacement);\n  }\n\n  if (basePlacement === 'left') {\n    popper.top += offsets[0];\n    popper.left -= offsets[1];\n  } else if (basePlacement === 'right') {\n    popper.top += offsets[0];\n    popper.left += offsets[1];\n  } else if (basePlacement === 'top') {\n    popper.left += offset
 s[0];\n    popper.top -= offsets[1];\n  } else if (basePlacement === 'bottom') {\n    popper.left += offsets[0];\n    popper.top += offsets[1];\n  }\n\n  data.popper = popper;\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n  var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n  // If offsetParent is the reference element, we really want to\n  // go one step up and use the next offsetParent as reference to\n  // avoid to make this modifier completely useless and look like broken\n  if (data.instance.reference === boundariesElement) {\n    boundariesElement = getOffsetParent(boundariesElement);\n  }\n\n  var boundaries = getBoundaries(data.instance.popper, data.instance.reference,
  options.padding, boundariesElement);\n  options.boundaries = boundaries;\n\n  var order = options.priority;\n  var popper = data.offsets.popper;\n\n  var check = {\n    primary: function primary(placement) {\n      var value = popper[placement];\n      if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n        value = Math.max(popper[placement], boundaries[placement]);\n      }\n      return defineProperty({}, placement, value);\n    },\n    secondary: function secondary(placement) {\n      var mainSide = placement === 'right' ? 'left' : 'top';\n      var value = popper[mainSide];\n      if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n        value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n      }\n      return defineProperty({}, mainSide, value);\n    }\n  };\n\n  order.forEach(function (placement) {\n    var side = ['left', 'top'].indexOf(placement
 ) !== -1 ? 'primary' : 'secondary';\n    popper = _extends({}, popper, check[side](placement));\n  });\n\n  data.offsets.popper = popper;\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var shiftvariation = placement.split('-')[1];\n\n  // if shift shiftvariation is specified, run the modifier\n  if (shiftvariation) {\n    var _data$offsets = data.offsets,\n        reference = _data$offsets.reference,\n        popper = _data$offsets.popper;\n\n    var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n    var side = isVertical ? 'left' : 'top';\n    var measurement = isVertical ? 'width' : 'height';\n\n    var shiftOffsets = {\n      start: de
 fineProperty({}, side, reference[side]),\n      end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n    };\n\n    data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n  if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n    return data;\n  }\n\n  var refRect = data.offsets.reference;\n  var bound = find(data.instance.modifiers, function (modifier) {\n    return modifier.name === 'preventOverflow';\n  }).boundaries;\n\n  if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n    // Avoid unnecessary DOM access if visibility hasn't
  changed\n    if (data.hide === true) {\n      return data;\n    }\n\n    data.hide = true;\n    data.attributes['x-out-of-boundaries'] = '';\n  } else {\n    // Avoid unnecessary DOM access if visibility hasn't changed\n    if (data.hide === false) {\n      return data;\n    }\n\n    data.hide = false;\n    data.attributes['x-out-of-boundaries'] = false;\n  }\n\n  return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n  var placement = data.placement;\n  var basePlacement = placement.split('-')[0];\n  var _data$offsets = data.offsets,\n      popper = _data$offsets.popper,\n      reference = _data$offsets.reference;\n\n  var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n  var subtractLength = ['top', 'left'].indexOf(basePlacement) ===
  -1;\n\n  popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n  data.placement = getOppositePlacement(placement);\n  data.offsets.popper = getClientRect(popper);\n\n  return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to ove
 rride the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n  /**\n   * Modifier used to shift the popper on the start or end of its reference\n   * element.<br />\n   * It will read the variation of the `placement` property.<br />\n   * It can be one either `-end` or `-start`.\n   * @memberof modifiers\n   * @inner\n   */\n  shift: {\n    /** @prop {number} order=100 - Index used to define the order of execution */\n    order: 100,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: shift\n  },\n\n  /**\n   * The `offset` modifier can shift your popper on both its axis.\n   *\n   * It accepts the following units:\n   * - `px` or unitless, interpreted as pixels\n   * - `%` or `%r`, percentage relative to the length of the reference element\n   * - `%p`, percentage relative to the length of t
 he popper element\n   * - `vw`, CSS viewport width unit\n   * - `vh`, CSS viewport height unit\n   *\n   * For length is intended the main axis relative to the placement of the popper.<br />\n   * This means that if the placement is `top` or `bottom`, the length will be the\n   * `width`. In case of `left` or `right`, it will be the height.\n   *\n   * You can provide a single value (as `Number` or `String`), or a pair of values\n   * as `String` divided by a comma or one (or more) white spaces.<br />\n   * The latter is a deprecated method because it leads to confusion and will be\n   * removed in v2.<br />\n   * Additionally, it accepts additions and subtractions between different units.\n   * Note that multiplications and divisions aren't supported.\n   *\n   * Valid examples are:\n   * ```\n   * 10\n   * '10%'\n   * '10, 10'\n   * '10%, 10'\n   * '10 + 10%'\n   * '10 - 5vh + 3%'\n   * '-10px + 5vh, 5px - 6%'\n   * ```\n   * > **NB**: If you desire to apply offsets to your popper
 s in a way that may make them overlap\n   * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n   * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  offset: {\n    /** @prop {number} order=200 - Index used to define the order of execution */\n    order: 200,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: offset,\n    /** @prop {Number|String} offset=0\n     * The offset value as described in the modifier description\n     */\n    offset: 0\n  },\n\n  /**\n   * Modifier used to prevent the popper from being positioned outside the boundary.\n   *\n   * An scenario exists where the reference itself is not within the boundaries.<br />\n   * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n   * In this case we need to decide whether 
 the popper should either:\n   *\n   * - detach from the reference and remain \"trapped\" in the boundaries, or\n   * - if it should ignore the boundary and \"escape with its reference\"\n   *\n   * When `escapeWithReference` is set to`true` and reference is completely\n   * outside its boundaries, the popper will overflow (or completely leave)\n   * the boundaries in order to remain attached to the edge of the reference.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  preventOverflow: {\n    /** @prop {number} order=300 - Index used to define the order of execution */\n    order: 300,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: preventOverflow,\n    /**\n     * @prop {Array} [priority=['left','right','top','bottom']]\n     * Popper will try to prevent overflow following these priorities by default,\n     * then, it could overflow on the left and on top of the `boundariesElement`\
 n     */\n    priority: ['left', 'right', 'top', 'bottom'],\n    /**\n     * @prop {number} padding=5\n     * Amount of pixel used to define a minimum distance between the boundaries\n     * and the popper this makes sure the popper has always a little padding\n     * between the edges of its container\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='scrollParent'\n     * Boundaries used by the modifier, can be `scrollParent`, `window`,\n     * `viewport` or any DOM element.\n     */\n    boundariesElement: 'scrollParent'\n  },\n\n  /**\n   * Modifier used to make sure the reference and its popper stay near eachothers\n   * without leaving any gap between the two. Expecially useful when the arrow is\n   * enabled and you want to assure it to point to its reference element.\n   * It cares only about the first axis, you can still have poppers with margin\n   * between the popper and its reference element.\n   * @memberof modifiers\n   * @inner\n
    */\n  keepTogether: {\n    /** @prop {number} order=400 - Index used to define the order of execution */\n    order: 400,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: keepTogether\n  },\n\n  /**\n   * This modifier is used to move the `arrowElement` of the popper to make\n   * sure it is positioned between the reference element and its popper element.\n   * It will read the outer size of the `arrowElement` node to detect how many\n   * pixels of conjuction are needed.\n   *\n   * It has no effect if no `arrowElement` is provided.\n   * @memberof modifiers\n   * @inner\n   */\n  arrow: {\n    /** @prop {number} order=500 - Index used to define the order of execution */\n    order: 500,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: arrow,\n    /** @prop {String|HTMLElement} element='[x-arrow]
 ' - Selector or node used as arrow */\n    element: '[x-arrow]'\n  },\n\n  /**\n   * Modifier used to flip the popper's placement when it starts to overlap its\n   * reference element.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   *\n   * **NOTE:** this modifier will interrupt the current update cycle and will\n   * restart it if it detects the need to flip the placement.\n   * @memberof modifiers\n   * @inner\n   */\n  flip: {\n    /** @prop {number} order=600 - Index used to define the order of execution */\n    order: 600,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: flip,\n    /**\n     * @prop {String|Array} behavior='flip'\n     * The behavior used to change the popper's placement. It can be one of\n     * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n     * placements (with optional variations).\n     */\n    behavi
 or: 'flip',\n    /**\n     * @prop {number} padding=5\n     * The popper will flip if it hits the edges of the `boundariesElement`\n     */\n    padding: 5,\n    /**\n     * @prop {String|HTMLElement} boundariesElement='viewport'\n     * The element which will define the boundaries of the popper position,\n     * the popper will never be placed outside of the defined boundaries\n     * (except if keepTogether is enabled)\n     */\n    boundariesElement: 'viewport'\n  },\n\n  /**\n   * Modifier used to make the popper flow toward the inner of the reference element.\n   * By default, when this modifier is disabled, the popper will be placed outside\n   * the reference element.\n   * @memberof modifiers\n   * @inner\n   */\n  inner: {\n    /** @prop {number} order=700 - Index used to define the order of execution */\n    order: 700,\n    /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n    enabled: false,\n    /** @prop {ModifierFn} */\n    fn: inner\n  },
 \n\n  /**\n   * Modifier used to hide the popper when its reference element is outside of the\n   * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n   * be used to hide with a CSS selector the popper when its reference is\n   * out of boundaries.\n   *\n   * Requires the `preventOverflow` modifier before it in order to work.\n   * @memberof modifiers\n   * @inner\n   */\n  hide: {\n    /** @prop {number} order=800 - Index used to define the order of execution */\n    order: 800,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: hide\n  },\n\n  /**\n   * Computes the style that will be applied to the popper element to gets\n   * properly positioned.\n   *\n   * Note that this modifier will not touch the DOM, it just prepares the styles\n   * so that `applyStyle` modifier can apply it. This separation is useful\n   * in case you need to replace `applyStyle` with a cu
 stom implementation.\n   *\n   * This modifier has `850` as `order` value to maintain backward compatibility\n   * with previous versions of Popper.js. Expect the modifiers ordering method\n   * to change in future major versions of the library.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  computeStyle: {\n    /** @prop {number} order=850 - Index used to define the order of execution */\n    order: 850,\n    /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: computeStyle,\n    /**\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3d transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties.\n     */\n    gpuAcceleration: true,\n    /**\n     * @prop {string} [x='bottom']\n     * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n     * Change this if your popper should grow in a direction different 
 from `bottom`\n     */\n    x: 'bottom',\n    /**\n     * @prop {string} [x='left']\n     * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n     * Change this if your popper should grow in a direction different from `right`\n     */\n    y: 'right'\n  },\n\n  /**\n   * Applies the computed styles to the popper element.\n   *\n   * All the DOM manipulations are limited to this modifier. This is useful in case\n   * you want to integrate Popper.js inside a framework or view library and you\n   * want to delegate all the DOM manipulations to it.\n   *\n   * Note that if you disable this modifier, you must make sure the popper element\n   * has its position set to `absolute` before Popper.js can do its work!\n   *\n   * Just disable this modifier and define you own to achieve the desired effect.\n   *\n   * @memberof modifiers\n   * @inner\n   */\n  applyStyle: {\n    /** @prop {number} order=900 - Index used to define the order of execution */\n    order: 900,\n  
   /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n    enabled: true,\n    /** @prop {ModifierFn} */\n    fn: applyStyle,\n    /** @prop {Function} */\n    onLoad: applyStyleOnLoad,\n    /**\n     * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n     * @prop {Boolean} gpuAcceleration=true\n     * If true, it uses the CSS 3d transformation to position the popper.\n     * Otherwise, it will use the `top` and `left` properties.\n     */\n    gpuAcceleration: undefined\n  }\n};\n\n/**\n * The `dataObject` is an object containing all the informations used by Popper.js\n * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if p
 opper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements.\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will
  be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overriden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass as 3rd argument an object with the same\n * structure of this object, example:\n * ```\n * new Popper(ref, pop, {\n *   modifiers: {\n *     preventOverflow: { enabled: false }\n *   }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n  /**\n   * Popper's placement\n   * @prop {Popper.placements} placement='bottom'\n   */\n  placement: 'bottom',\n\n  /**\n   * Whether events (resize, scroll) are initially enabled\n   * @prop {Boolean} eventsEnabled=true\n   */\n  eventsEnabled: true,\n\n  /**\n   * Set to true if you want to automatically remove the popper when\n   * you call the `destroy` method.\n   * @prop {Boolean} removeOnDestroy=false\n   */\n  removeOnDestroy: false,\n\n  /**\n   * Callback called when the popper is created.<br />
 \n   * By default, is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onCreate}\n   */\n  onCreate: function onCreate() {},\n\n  /**\n   * Callback called when the popper is updated, this callback is not called\n   * on the initialization/creation of the popper, but only on subsequent\n   * updates.<br />\n   * By default, is set to no-op.<br />\n   * Access Popper.js instance with `data.instance`.\n   * @prop {onUpdate}\n   */\n  onUpdate: function onUpdate() {},\n\n  /**\n   * List of modifiers used to modify the offsets before they are applied to the popper.\n   * They provide most of the functionalities of Popper.js\n   * @prop {modifiers}\n   */\n  modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n  /**\n   * Create a new Popper.js instance\n   * @class Popper\n   * @param {HTMLElement|
 referenceObject} reference - The reference element used to position the popper\n   * @param {HTMLElement} popper - The HTML element used as popper.\n   * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n   * @return {Object} instance - The generated Popper.js instance\n   */\n  function Popper(reference, popper) {\n    var _this = this;\n\n    var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    classCallCheck(this, Popper);\n\n    this.scheduleUpdate = function () {\n      return requestAnimationFrame(_this.update);\n    };\n\n    // make update() debounced, so that it only runs at most once-per-tick\n    this.update = debounce(this.update.bind(this));\n\n    // with {} we create a new object with the options inside it\n    this.options = _extends({}, Popper.Defaults, options);\n\n    // init state\n    this.state = {\n      isDestroyed: false,\n      isCreated: false,\n      scrollParents: []
 \n    };\n\n    // get reference and popper elements (allow jQuery wrappers)\n    this.reference = reference.jquery ? reference[0] : reference;\n    this.popper = popper.jquery ? popper[0] : popper;\n\n    // Deep merge modifiers options\n    this.options.modifiers = {};\n    Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n      _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n    });\n\n    // Refactoring modifiers' list (Object => Array)\n    this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n      return _extends({\n        name: name\n      }, _this.options.modifiers[name]);\n    })\n    // sort the modifiers by order\n    .sort(function (a, b) {\n      return a.order - b.order;\n    });\n\n    // modifiers have the ability to execute arbitrary code when Popper.js get inited\n    // such code is executed in the same or
 der of its modifier\n    // they could add new properties to their options configuration\n    // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n    this.modifiers.forEach(function (modifierOptions) {\n      if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n        modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n      }\n    });\n\n    // fire the first update to position the popper in the right place\n    this.update();\n\n    var eventsEnabled = this.options.eventsEnabled;\n    if (eventsEnabled) {\n      // setup event listeners, they will take care of update the position in specific situations\n      this.enableEventListeners();\n    }\n\n    this.state.eventsEnabled = eventsEnabled;\n  }\n\n  // We can't use class properties because they don't get listed in the\n  // class prototype and break stuff like Sinon stubs\n\n\n  createClass(Popper, [{\n    key: 'update',\n    va
 lue: function update$$1() {\n      return update.call(this);\n    }\n  }, {\n    key: 'destroy',\n    value: function destroy$$1() {\n      return destroy.call(this);\n    }\n  }, {\n    key: 'enableEventListeners',\n    value: function enableEventListeners$$1() {\n      return enableEventListeners.call(this);\n    }\n  }, {\n    key: 'disableEventListeners',\n    value: function disableEventListeners$$1() {\n      return disableEventListeners.call(this);\n    }\n\n    /**\n     * Schedule an update, it will run on the next UI update available\n     * @method scheduleUpdate\n     * @memberof Popper\n     */\n\n\n    /**\n     * Collection of utilities useful when writing custom modifiers.\n     * Starting from version 1.7, this method is available only if you\n     * include `popper-utils.js` before `popper.js`.\n     *\n     * **DEPRECATION**: This way to access PopperUtils is deprecated\n     * and will be removed in v2! Use the PopperUtils module directly instead.\n     * Due to 
 the high instability of the methods contained in Utils, we can't\n     * guarantee them to follow semver. Use them at your own risk!\n     * @static\n     * @private\n     * @type {Object}\n     * @deprecated since version 1.8\n     * @member Utils\n     * @memberof Popper\n     */\n\n  }]);\n  return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter
  that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Private TransitionEnd Helpers\n   * ------------------------------------------------------------------------\n   */\n\n  let transition = false\n\n  const MAX_UID = 1
 000000\n\n  const TransitionEndEvent = {\n    WebkitTransition : 'webkitTransitionEnd',\n    MozTransition    : 'transitionend',\n    OTransition      : 'oTransitionEnd otransitionend',\n    transition       : 'transitionend'\n  }\n\n  // shoutout AngusCroll (https://goo.gl/pxwQGp)\n  function toType(obj) {\n    return {}.toString.call(obj).match(/\\s([a-zA-Z]+)/)[1].toLowerCase()\n  }\n\n  function getSpecialTransitionEndEvent() {\n    return {\n      bindType: transition.end,\n      delegateType: transition.end,\n      handle(event) {\n        if ($(event.target).is(this)) {\n          return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n        }\n        return undefined // eslint-disable-line no-undefined\n      }\n    }\n  }\n\n  function transitionEndTest() {\n    if (window.QUnit) {\n      return false\n    }\n\n    const el = document.createElement('bootstrap')\n\n    for (const name in TransitionEndEvent) {\n      if (typeof el.s
 tyle[name] !== 'undefined') {\n        return {\n          end: TransitionEndEvent[name]\n        }\n      }\n    }\n\n    return false\n  }\n\n  function transitionEndEmulator(duration) {\n    let called = false\n\n    $(this).one(Util.TRANSITION_END, () => {\n      called = true\n    })\n\n    setTimeout(() => {\n      if (!called) {\n        Util.triggerTransitionEnd(this)\n      }\n    }, duration)\n\n    return this\n  }\n\n  function setTransitionEndSupport() {\n    transition = transitionEndTest()\n\n    $.fn.emulateTransitionEnd = transitionEndEmulator\n\n    if (Util.supportsTransitionEnd()) {\n      $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n    }\n  }\n\n\n  /**\n   * --------------------------------------------------------------------------\n   * Public Util Api\n   * --------------------------------------------------------------------------\n   */\n\n  const Util = {\n\n    TRANSITION_END: 'bsTransitionEnd',\n\n    getUID(prefix) {\n      do 
 {\n        // eslint-disable-next-line no-bitwise\n        prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n      } while (document.getElementById(prefix))\n      return prefix\n    },\n\n    getSelectorFromElement(element) {\n      let selector = element.getAttribute('data-target')\n      if (!selector || selector === '#') {\n        selector = element.getAttribute('href') || ''\n      }\n\n      try {\n        const $selector = $(document).find(selector)\n        return $selector.length > 0 ? selector : null\n      } catch (error) {\n        return null\n      }\n    },\n\n    reflow(element) {\n      return element.offsetHeight\n    },\n\n    triggerTransitionEnd(element) {\n      $(element).trigger(transition.end)\n    },\n\n    supportsTransitionEnd() {\n      return Boolean(transition)\n    },\n\n    isElement(obj) {\n      return (obj[0] || obj).nodeType\n    },\n\n    typeCheckConfig(componentName, config, configTypes) {\n      for (const
  property in configTypes) {\n        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n          const expectedTypes = configTypes[property]\n          const value         = config[property]\n          const valueType     = value && Util.isElement(value) ?\n                                'element' : toType(value)\n\n          if (!new RegExp(expectedTypes).test(valueType)) {\n            throw new Error(\n              `${componentName.toUpperCase()}: ` +\n              `Option \"${property}\" provided type \"${valueType}\" ` +\n              `but expected type \"${expectedTypes}\".`)\n          }\n        }\n      }\n    }\n  }\n\n  setTransitionEndSupport()\n\n  return Util\n\n})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\
 n * --------------------------------------------------------------------------\n */\n\nconst Alert = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'alert'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.alert'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n\n  const Selector = {\n    DISMISS : '[data-dismiss=\"alert\"]'\n  }\n\n  const Event = {\n    CLOSE          : `close${EVENT_KEY}`,\n    CLOSED         : `closed${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    ALERT : 'alert',\n    FADE  : 'fade',\n    SHOW  : 'show'\n  }\n\n\n  /**\n   * -------------------------------------------------
 -----------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Alert {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    close(element) {\n      element = element || this._element\n\n      const rootElement = this._getRootElement(element)\n      const customEvent = this._triggerCloseEvent(rootElement)\n\n      if (customEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._removeElement(rootElement)\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n\n    // private\n\n    _getRootElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      let parent     = false\n\n      if (selector) {\n        parent = $(selector)[0]\n      }\n\n      if (!parent) {\n        parent = $(element).clo
 sest(`.${ClassName.ALERT}`)[0]\n      }\n\n      return parent\n    }\n\n    _triggerCloseEvent(element) {\n      const closeEvent = $.Event(Event.CLOSE)\n\n      $(element).trigger(closeEvent)\n      return closeEvent\n    }\n\n    _removeElement(element) {\n      $(element).removeClass(ClassName.SHOW)\n\n      if (!Util.supportsTransitionEnd() ||\n          !$(element).hasClass(ClassName.FADE)) {\n        this._destroyElement(element)\n        return\n      }\n\n      $(element)\n        .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n        .emulateTransitionEnd(TRANSITION_DURATION)\n    }\n\n    _destroyElement(element) {\n      $(element)\n        .detach()\n        .trigger(Event.CLOSED)\n        .remove()\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $element = $(this)\n        let data       = $element.data(DATA_KEY)\n\n        if (!data) {\n          data = new Alert(this)
 \n          $element.data(DATA_KEY, data)\n        }\n\n        if (config === 'close') {\n          data[config](this)\n        }\n      })\n    }\n\n    static _handleDismiss(alertInstance) {\n      return function (event) {\n        if (event) {\n          event.preventDefault()\n        }\n\n        alertInstance.close(this)\n      }\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(\n    Event.CLICK_DATA_API,\n    Selector.DISMISS,\n    Alert._handleDismiss(new Alert())\n  )\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Alert._jQueryInterface\n  $.fn[NAME].Constructor = Alert\n  $.fn[NAME].noConflict  = function () {\n   
  $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Alert._jQueryInterface\n  }\n\n  return Alert\n\n})($)\n\nexport default Alert\n","import $ from 'jquery'\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'button'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.button'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n\n  const ClassName = {\n    ACTIVE : 'active',\n    BUTTON : 'btn',\n    FO
 CUS  : 'focus'\n  }\n\n  const Selector = {\n    DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n    DATA_TOGGLE        : '[data-toggle=\"buttons\"]',\n    INPUT              : 'input',\n    ACTIVE             : '.active',\n    BUTTON             : '.btn'\n  }\n\n  const Event = {\n    CLICK_DATA_API      : `click${EVENT_KEY}${DATA_API_KEY}`,\n    FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} `\n                        + `blur${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Button {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    toggle() {\n      let triggerChangeEvent = true\n      let addAriaPressed = true\n      const rootElement      = $(this._element
 ).closest(\n        Selector.DATA_TOGGLE\n      )[0]\n\n      if (rootElement) {\n        const input = $(this._element).find(Selector.INPUT)[0]\n\n        if (input) {\n          if (input.type === 'radio') {\n            if (input.checked &&\n              $(this._element).hasClass(ClassName.ACTIVE)) {\n              triggerChangeEvent = false\n\n            } else {\n              const activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n              if (activeElement) {\n                $(activeElement).removeClass(ClassName.ACTIVE)\n              }\n            }\n          }\n\n          if (triggerChangeEvent) {\n            if (input.hasAttribute('disabled') ||\n              rootElement.hasAttribute('disabled') ||\n              input.classList.contains('disabled') ||\n              rootElement.classList.contains('disabled')) {\n              return\n            }\n            input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n            $(input).trigger
 ('change')\n          }\n\n          input.focus()\n          addAriaPressed = false\n        }\n\n      }\n\n      if (addAriaPressed) {\n        this._element.setAttribute('aria-pressed',\n          !$(this._element).hasClass(ClassName.ACTIVE))\n      }\n\n      if (triggerChangeEvent) {\n        $(this._element).toggleClass(ClassName.ACTIVE)\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n\n        if (!data) {\n          data = new Button(this)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (config === 'toggle') {\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * -----------------------------------------------------------
 -------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      event.preventDefault()\n\n      let button = event.target\n\n      if (!$(button).hasClass(ClassName.BUTTON)) {\n        button = $(button).closest(Selector.BUTTON)\n      }\n\n      Button._jQueryInterface.call($(button), 'toggle')\n    })\n    .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      const button = $(event.target).closest(Selector.BUTTON)[0]\n      $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Button._jQueryInterface\n  $.fn[NAME].Constructor = Button\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Button._jQueryInterface\n  }\n\n  retu
 rn Button\n\n})($)\n\nexport default Button\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                   = 'carousel'\n  const VERSION                = '4.0.0-beta.2'\n  const DATA_KEY               = 'bs.carousel'\n  const EVENT_KEY              = `.${DATA_KEY}`\n  const DATA_API_KEY           = '.data-api'\n  const JQUERY_NO_CONFLICT     = $.fn[NAME]\n  const TRANSITION_DURATION    = 600\n  const ARROW_LEFT_KEYCODE     = 37 // KeyboardEvent.which va
 lue for left arrow key\n  const ARROW_RIGHT_KEYCODE    = 39 // KeyboardEvent.which value for right arrow key\n  const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n  const Default = {\n    interval : 5000,\n    keyboard : true,\n    slide    : false,\n    pause    : 'hover',\n    wrap     : true\n  }\n\n  const DefaultType = {\n    interval : '(number|boolean)',\n    keyboard : 'boolean',\n    slide    : '(boolean|string)',\n    pause    : '(string|boolean)',\n    wrap     : 'boolean'\n  }\n\n  const Direction = {\n    NEXT     : 'next',\n    PREV     : 'prev',\n    LEFT     : 'left',\n    RIGHT    : 'right'\n  }\n\n  const Event = {\n    SLIDE          : `slide${EVENT_KEY}`,\n    SLID           : `slid${EVENT_KEY}`,\n    KEYDOWN        : `keydown${EVENT_KEY}`,\n    MOUSEENTER     : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE     : `mouseleave${EVENT_KEY}`,\n    TOUCHEND       : `touchend${EVENT_KEY}`,\n    LOAD_DATA_API  : `load${EVENT_KEY}${DATA
 _API_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    CAROUSEL : 'carousel',\n    ACTIVE   : 'active',\n    SLIDE    : 'slide',\n    RIGHT    : 'carousel-item-right',\n    LEFT     : 'carousel-item-left',\n    NEXT     : 'carousel-item-next',\n    PREV     : 'carousel-item-prev',\n    ITEM     : 'carousel-item'\n  }\n\n  const Selector = {\n    ACTIVE      : '.active',\n    ACTIVE_ITEM : '.active.carousel-item',\n    ITEM        : '.carousel-item',\n    NEXT_PREV   : '.carousel-item-next, .carousel-item-prev',\n    INDICATORS  : '.carousel-indicators',\n    DATA_SLIDE  : '[data-slide], [data-slide-to]',\n    DATA_RIDE   : '[data-ride=\"carousel\"]'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Carousel {\n\n    constructor(element, config) {\n      this._items        
      = null\n      this._interval          = null\n      this._activeElement     = null\n\n      this._isPaused          = false\n      this._isSliding         = false\n\n      this.touchTimeout       = null\n\n      this._config            = this._getConfig(config)\n      this._element           = $(element)[0]\n      this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n      this._addEventListeners()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    next() {\n      if (!this._isSliding) {\n        this._slide(Direction.NEXT)\n      }\n    }\n\n    nextWhenVisible() {\n      // Don't call next when the page isn't visible\n      // or the carousel or its parent isn't visible\n      if (!document.hidden &&\n        ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n        this.next()\n      }\n    }\n\n  
   prev() {\n      if (!this._isSliding) {\n        this._slide(Direction.PREV)\n      }\n    }\n\n    pause(event) {\n      if (!event) {\n        this._isPaused = true\n      }\n\n      if ($(this._element).find(Selector.NEXT_PREV)[0] &&\n        Util.supportsTransitionEnd()) {\n        Util.triggerTransitionEnd(this._element)\n        this.cycle(true)\n      }\n\n      clearInterval(this._interval)\n      this._interval = null\n    }\n\n    cycle(event) {\n      if (!event) {\n        this._isPaused = false\n      }\n\n      if (this._interval) {\n        clearInterval(this._interval)\n        this._interval = null\n      }\n\n      if (this._config.interval && !this._isPaused) {\n        this._interval = setInterval(\n          (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n          this._config.interval\n        )\n      }\n    }\n\n    to(index) {\n      this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n      const activeIndex 
 = this._getItemIndex(this._activeElement)\n\n      if (index > this._items.length - 1 || index < 0) {\n        return\n      }\n\n      if (this._isSliding) {\n        $(this._element).one(Event.SLID, () => this.to(index))\n        return\n      }\n\n      if (activeIndex === index) {\n        this.pause()\n        this.cycle()\n        return\n      }\n\n      const direction = index > activeIndex ?\n        Direction.NEXT :\n        Direction.PREV\n\n      this._slide(direction, this._items[index])\n    }\n\n    dispose() {\n      $(this._element).off(EVENT_KEY)\n      $.removeData(this._element, DATA_KEY)\n\n      this._items             = null\n      this._config            = null\n      this._element           = null\n      this._interval          = null\n      this._isPaused          = null\n      this._isSliding         = null\n      this._activeElement     = null\n      this._indicatorsElement = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = $.ex
 tend({}, Default, config)\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _addEventListeners() {\n      if (this._config.keyboard) {\n        $(this._element)\n          .on(Event.KEYDOWN, (event) => this._keydown(event))\n      }\n\n      if (this._config.pause === 'hover') {\n        $(this._element)\n          .on(Event.MOUSEENTER, (event) => this.pause(event))\n          .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n        if ('ontouchstart' in document.documentElement) {\n          // if it's a touch-enabled device, mouseenter/leave are fired as\n          // part of the mouse compatibility events on first tap - the carousel\n          // would stop cycling until user tapped out of it;\n          // here, we listen for touchend, explicitly pause the carousel\n          // (as if it's the second time we tap on it, mouseenter compat event\n          // is NOT fired) and after a timeout (to allow for mouse compatibility\n          
 // events to fire) we explicitly restart cycling\n          $(this._element).on(Event.TOUCHEND, () => {\n            this.pause()\n            if (this.touchTimeout) {\n              clearTimeout(this.touchTimeout)\n            }\n            this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n          })\n        }\n      }\n    }\n\n    _keydown(event) {\n      if (/input|textarea/i.test(event.target.tagName)) {\n        return\n      }\n\n      switch (event.which) {\n        case ARROW_LEFT_KEYCODE:\n          event.preventDefault()\n          this.prev()\n          break\n        case ARROW_RIGHT_KEYCODE:\n          event.preventDefault()\n          this.next()\n          break\n        default:\n          return\n      }\n    }\n\n    _getItemIndex(element) {\n      this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n      return this._items.indexOf(element)\n    }\n\n    _getItemByDirection(direction, 
 activeElement) {\n      const isNextDirection = direction === Direction.NEXT\n      const isPrevDirection = direction === Direction.PREV\n      const activeIndex     = this._getItemIndex(activeElement)\n      const lastItemIndex   = this._items.length - 1\n      const isGoingToWrap   = isPrevDirection && activeIndex === 0 ||\n                              isNextDirection && activeIndex === lastItemIndex\n\n      if (isGoingToWrap && !this._config.wrap) {\n        return activeElement\n      }\n\n      const delta     = direction === Direction.PREV ? -1 : 1\n      const itemIndex = (activeIndex + delta) % this._items.length\n\n      return itemIndex === -1 ?\n        this._items[this._items.length - 1] : this._items[itemIndex]\n    }\n\n\n    _triggerSlideEvent(relatedTarget, eventDirectionName) {\n      const targetIndex = this._getItemIndex(relatedTarget)\n      const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n      const slideEvent = $.Event(Ev
 ent.SLIDE, {\n        relatedTarget,\n        direction: eventDirectionName,\n        from: fromIndex,\n        to: targetIndex\n      })\n\n      $(this._element).trigger(slideEvent)\n\n      return slideEvent\n    }\n\n    _setActiveIndicatorElement(element) {\n      if (this._indicatorsElement) {\n        $(this._indicatorsElement)\n          .find(Selector.ACTIVE)\n          .removeClass(ClassName.ACTIVE)\n\n        const nextIndicator = this._indicatorsElement.children[\n          this._getItemIndex(element)\n        ]\n\n        if (nextIndicator) {\n          $(nextIndicator).addClass(ClassName.ACTIVE)\n        }\n      }\n    }\n\n    _slide(direction, element) {\n      const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n      const activeElementIndex = this._getItemIndex(activeElement)\n      const nextElement   = element || activeElement &&\n        this._getItemByDirection(direction, activeElement)\n      const nextElementIndex = this._getItemIndex(nextE
 lement)\n      const isCycling = Boolean(this._interval)\n\n      let directionalClassName\n      let orderClassName\n      let eventDirectionName\n\n      if (direction === Direction.NEXT) {\n        directionalClassName = ClassName.LEFT\n        orderClassName = ClassName.NEXT\n        eventDirectionName = Direction.LEFT\n      } else {\n        directionalClassName = ClassName.RIGHT\n        orderClassName = ClassName.PREV\n        eventDirectionName = Direction.RIGHT\n      }\n\n      if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n        this._isSliding = false\n        return\n      }\n\n      const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n      if (slideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (!activeElement || !nextElement) {\n        // some weirdness is happening, so we bail\n        return\n      }\n\n      this._isSliding = true\n\n      if (isCycling) {\n        this.pause()\n      }\n\n      thi
 s._setActiveIndicatorElement(nextElement)\n\n      const slidEvent = $.Event(Event.SLID, {\n        relatedTarget: nextElement,\n        direction: eventDirectionName,\n        from: activeElementIndex,\n        to: nextElementIndex\n      })\n\n      if (Util.supportsTransitionEnd() &&\n        $(this._element).hasClass(ClassName.SLIDE)) {\n\n        $(nextElement).addClass(orderClassName)\n\n        Util.reflow(nextElement)\n\n        $(activeElement).addClass(directionalClassName)\n        $(nextElement).addClass(directionalClassName)\n\n        $(activeElement)\n          .one(Util.TRANSITION_END, () => {\n            $(nextElement)\n              .removeClass(`${directionalClassName} ${orderClassName}`)\n              .addClass(ClassName.ACTIVE)\n\n            $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n            this._isSliding = false\n\n            setTimeout(() => $(this._element).trigger(slidEvent), 0)\n\n          })\
 n          .emulateTransitionEnd(TRANSITION_DURATION)\n\n      } else {\n        $(activeElement).removeClass(ClassName.ACTIVE)\n        $(nextElement).addClass(ClassName.ACTIVE)\n\n        this._isSliding = false\n        $(this._element).trigger(slidEvent)\n      }\n\n      if (isCycling) {\n        this.cycle()\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = $.extend({}, Default, $(this).data())\n\n        if (typeof config === 'object') {\n          $.extend(_config, config)\n        }\n\n        const action = typeof config === 'string' ? config : _config.slide\n\n        if (!data) {\n          data = new Carousel(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'number') {\n          data.to(config)\n        } else if (typeof action === 'string') {\n          if (typeof data[action] === 'un
 defined') {\n            throw new Error(`No method named \"${action}\"`)\n          }\n          data[action]()\n        } else if (_config.interval) {\n          data.pause()\n          data.cycle()\n        }\n      })\n    }\n\n    static _dataApiClickHandler(event) {\n      const selector = Util.getSelectorFromElement(this)\n\n      if (!selector) {\n        return\n      }\n\n      const target = $(selector)[0]\n\n      if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n        return\n      }\n\n      const config     = $.extend({}, $(target).data(), $(this).data())\n      const slideIndex = this.getAttribute('data-slide-to')\n\n      if (slideIndex) {\n        config.interval = false\n      }\n\n      Carousel._jQueryInterface.call($(target), config)\n\n      if (slideIndex) {\n        $(target).data(DATA_KEY).to(slideIndex)\n      }\n\n      event.preventDefault()\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------
 \n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    $(Selector.DATA_RIDE).each(function () {\n      const $carousel = $(this)\n      Carousel._jQueryInterface.call($carousel, $carousel.data())\n    })\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Carousel._jQueryInterface\n  $.fn[NAME].Constructor = Carousel\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Carousel._jQueryInterface\n  }\n\n  return Carousel\n\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * ---------------------------------------------
 -----------------------------\n * Bootstrap (v4.0.0-beta.2): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'collapse'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.collapse'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 600\n\n  const Default = {\n    toggle : true,\n    parent : ''\n  }\n\n  const DefaultType = {\n    toggle : 'boolean',\n    parent : '(string|element)'\n  }\n\n  const Event = {\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          :
  `shown${EVENT_KEY}`,\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SHOW       : 'show',\n    COLLAPSE   : 'collapse',\n    COLLAPSING : 'collapsing',\n    COLLAPSED  : 'collapsed'\n  }\n\n  const Dimension = {\n    WIDTH  : 'width',\n    HEIGHT : 'height'\n  }\n\n  const Selector = {\n    ACTIVES     : '.show, .collapsing',\n    DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Collapse {\n\n    constructor(element, config) {\n      this._isTransitioning = false\n      this._element         = element\n      this._config          = this._getConfig(config)\n      this._triggerArray    = $.makeArray($(\n        `[data-toggle=\"collapse\"][href=\"#${el
 ement.id}\"],` +\n        `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n      ))\n      const tabToggles = $(Selector.DATA_TOGGLE)\n      for (let i = 0; i < tabToggles.length; i++) {\n        const elem = tabToggles[i]\n        const selector = Util.getSelectorFromElement(elem)\n        if (selector !== null && $(selector).filter(element).length > 0) {\n          this._triggerArray.push(elem)\n        }\n      }\n\n      this._parent = this._config.parent ? this._getParent() : null\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n      }\n\n      if (this._config.toggle) {\n        this.toggle()\n      }\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    toggle() {\n      if ($(this._element).hasClass(ClassName.SHOW)) {\n        this.hide()\n      } else {\n        this.show()\n      }
 \n    }\n\n    show() {\n      if (this._isTransitioning ||\n        $(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      let actives\n      let activesData\n\n      if (this._parent) {\n        actives = $.makeArray($(this._parent).children().children(Selector.ACTIVES))\n        if (!actives.length) {\n          actives = null\n        }\n      }\n\n      if (actives) {\n        activesData = $(actives).data(DATA_KEY)\n        if (activesData && activesData._isTransitioning) {\n          return\n        }\n      }\n\n      const startEvent = $.Event(Event.SHOW)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($(actives), 'hide')\n        if (!activesData) {\n          $(actives).data(DATA_KEY, null)\n        }\n      }\n\n      const dimension = this._getDimension()\n\n      $(this._element)\n        .removeClass(ClassName.COLLA
 PSE)\n        .addClass(ClassName.COLLAPSING)\n\n      this._element.style[dimension] = 0\n\n      if (this._triggerArray.length) {\n        $(this._triggerArray)\n          .removeClass(ClassName.COLLAPSED)\n          .attr('aria-expanded', true)\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .addClass(ClassName.SHOW)\n\n        this._element.style[dimension] = ''\n\n        this.setTransitioning(false)\n\n        $(this._element).trigger(Event.SHOWN)\n      }\n\n      if (!Util.supportsTransitionEnd()) {\n        complete()\n        return\n      }\n\n      const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n      const scrollSize           = `scroll${capitalizedDimension}`\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(TRANSITION_DURATION)\n\n   
    this._element.style[dimension] = `${this._element[scrollSize]}px`\n    }\n\n    hide() {\n      if (this._isTransitioning ||\n        !$(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      const startEvent = $.Event(Event.HIDE)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      const dimension       = this._getDimension()\n\n      this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n      Util.reflow(this._element)\n\n      $(this._element)\n        .addClass(ClassName.COLLAPSING)\n        .removeClass(ClassName.COLLAPSE)\n        .removeClass(ClassName.SHOW)\n\n      if (this._triggerArray.length) {\n        for (let i = 0; i < this._triggerArray.length; i++) {\n          const trigger = this._triggerArray[i]\n          const selector = Util.getSelectorFromElement(trigger)\n          if (selector !== null) {\n            const $elem = $(selecto
 r)\n            if (!$elem.hasClass(ClassName.SHOW)) {\n              $(trigger).addClass(ClassName.COLLAPSED)\n                   .attr('aria-expanded', false)\n            }\n          }\n        }\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        this.setTransitioning(false)\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .trigger(Event.HIDDEN)\n      }\n\n      this._element.style[dimension] = ''\n\n      if (!Util.supportsTransitionEnd()) {\n        complete()\n        return\n      }\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(TRANSITION_DURATION)\n    }\n\n    setTransitioning(isTransitioning) {\n      this._isTransitioning = isTransitioning\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      this._config          = null\n      this._parent          = null\n      this._element  
        = null\n      this._triggerArray    = null\n      this._isTransitioning = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = $.extend({}, Default, config)\n      config.toggle = Boolean(config.toggle) // coerce string values\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _getDimension() {\n      const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n    }\n\n    _getParent() {\n      let parent = null\n      if (Util.isElement(this._config.parent)) {\n        parent = this._config.parent\n\n        // it's a jQuery object\n        if (typeof this._config.parent.jquery !== 'undefined') {\n          parent = this._config.parent[0]\n        }\n      } else {\n        parent = $(this._config.parent)[0]\n      }\n\n      const selector =\n        `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n      $(parent).find(selector).e
 ach((i, element) => {\n        this._addAriaAndCollapsedClass(\n          Collapse._getTargetFromElement(element),\n          [element]\n        )\n      })\n\n      return parent\n    }\n\n    _addAriaAndCollapsedClass(element, triggerArray) {\n      if (element) {\n        const isOpen = $(element).hasClass(ClassName.SHOW)\n\n        if (triggerArray.length) {\n          $(triggerArray)\n            .toggleClass(ClassName.COLLAPSED, !isOpen)\n            .attr('aria-expanded', isOpen)\n        }\n      }\n    }\n\n\n    // static\n\n    static _getTargetFromElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      return selector ? $(selector)[0] : null\n    }\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this   = $(this)\n        let data      = $this.data(DATA_KEY)\n        const _config = $.extend(\n          {},\n          Default,\n          $this.data(),\n          typeof config === 'object' && con
 fig\n        )\n\n        if (!data && _config.toggle && /show|hide/.test(config)) {\n          _config.toggle = false\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n    if (event.currentTarget.tagName === 'A') {\n      event.preventDefault()\n    }\n\n    const $trigger = $(this)\n   
  const selector = Util.getSelectorFromElement(this)\n    $(selector).each(function () {\n      const $target = $(this)\n      const data    = $target.data(DATA_KEY)\n      const config  = data ? 'toggle' : $trigger.data()\n      Collapse._jQueryInterface.call($target, config)\n    })\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Collapse._jQueryInterface\n  $.fn[NAME].Constructor = Collapse\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Collapse._jQueryInterface\n  }\n\n  return Collapse\n\n})($)\n\nexport default Collapse\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): dropdown.js\n * Licensed under MIT (http
 s://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (() => {\n\n  /**\n   * Check for Popper dependency\n   * Popper - https://popper.js.org\n   */\n  if (typeof Popper === 'undefined') {\n    throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                     = 'dropdown'\n  const VERSION                  = '4.0.0-beta.2'\n  const DATA_KEY                 = 'bs.dropdown'\n  const EVENT_KEY                = `.${DATA_KEY}`\n  const DATA_API_KEY             = '.data-api'\n  const JQUERY_NO_CONFLICT       = $.fn[NAME]\n  const ESCAPE_KEYCODE           = 27 // KeyboardEvent.which value for Escape (Esc) key\n  const SPACE_KEYCODE            = 32 //
  KeyboardEvent.which value for space key\n  const TAB_KEYCODE              = 9 // KeyboardEvent.which value for tab key\n  const ARROW_UP_KEYCODE         = 38 // KeyboardEvent.which value for up arrow key\n  const ARROW_DOWN_KEYCODE       = 40 // KeyboardEvent.which value for down arrow key\n  const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n  const REGEXP_KEYDOWN           = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n  const Event = {\n    HIDE             : `hide${EVENT_KEY}`,\n    HIDDEN           : `hidden${EVENT_KEY}`,\n    SHOW             : `show${EVENT_KEY}`,\n    SHOWN            : `shown${EVENT_KEY}`,\n    CLICK            : `click${EVENT_KEY}`,\n    CLICK_DATA_API   : `click${EVENT_KEY}${DATA_API_KEY}`,\n    KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n    KEYUP_DATA_API   : `keyup${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DISABLED  : 'disa
 bled',\n    SHOW      : 'show',\n    DROPUP    : 'dropup',\n    MENURIGHT : 'dropdown-menu-right',\n    MENULEFT  : 'dropdown-menu-left'\n  }\n\n  const Selector = {\n    DATA_TOGGLE   : '[data-toggle=\"dropdown\"]',\n    FORM_CHILD    : '.dropdown form',\n    MENU          : '.dropdown-menu',\n    NAVBAR_NAV    : '.navbar-nav',\n    VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled)'\n  }\n\n  const AttachmentMap = {\n    TOP       : 'top-start',\n    TOPEND    : 'top-end',\n    BOTTOM    : 'bottom-start',\n    BOTTOMEND : 'bottom-end'\n  }\n\n  const Default = {\n    offset      : 0,\n    flip        : true\n  }\n\n  const DefaultType = {\n    offset      : '(number|string|function)',\n    flip        : 'boolean'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Dropdown {\n\n    constructor(element, config)
  {\n      this._element  = element\n      this._popper   = null\n      this._config   = this._getConfig(config)\n      this._menu     = this._getMenuElement()\n      this._inNavbar = this._detectNavbar()\n\n      this._addEventListeners()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n    // public\n\n    toggle() {\n      if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      const parent   = Dropdown._getParentFromElement(this._element)\n      const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n      Dropdown._clearMenus()\n\n      if (isActive) {\n        return\n      }\n\n      const relatedTarget = {\n        relatedTarget : this._element\n      }\n      const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n      $(parent).trigger(showEvent)\n\n 
      if (showEvent.isDefaultPrevented()) {\n        return\n      }\n\n      let element = this._element\n      // for dropup with alignment we use the parent as popper container\n      if ($(parent).hasClass(ClassName.DROPUP)) {\n        if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {\n          element = parent\n        }\n      }\n      this._popper = new Popper(element, this._menu, this._getPopperConfig())\n\n      // if this is a touch-enabled device we add extra\n      // empty mouseover listeners to the body's immediate children;\n      // only needed because of broken event delegation on iOS\n      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n      if ('ontouchstart' in document.documentElement &&\n         !$(parent).closest(Selector.NAVBAR_NAV).length) {\n        $('body').children().on('mouseover', null, $.noop)\n      }\n\n      this._element.focus()\n      this._element.setAttribute('aria-expa
 nded', true)\n\n      $(this._menu).toggleClass(ClassName.SHOW)\n      $(parent)\n        .toggleClass(ClassName.SHOW)\n        .trigger($.Event(Event.SHOWN, relatedTarget))\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      $(this._element).off(EVENT_KEY)\n      this._element = null\n      this._menu = null\n      if (this._popper !== null) {\n        this._popper.destroy()\n      }\n      this._popper = null\n    }\n\n    update() {\n      this._inNavbar = this._detectNavbar()\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate()\n      }\n    }\n\n    // private\n\n    _addEventListeners() {\n      $(this._element).on(Event.CLICK, (event) => {\n        event.preventDefault()\n        event.stopPropagation()\n        this.toggle()\n      })\n    }\n\n    _getConfig(config) {\n      config = $.extend(\n        {},\n        this.constructor.Default,\n        $(this._element).data(),\n        config\n      )\n\n      Util.typeCheckConfi
 g(\n        NAME,\n        config,\n        this.constructor.DefaultType\n      )\n\n      return config\n    }\n\n    _getMenuElement() {\n      if (!this._menu) {\n        const parent = Dropdown._getParentFromElement(this._element)\n        this._menu = $(parent).find(Selector.MENU)[0]\n      }\n      return this._menu\n    }\n\n    _getPlacement() {\n      const $parentDropdown = $(this._element).parent()\n      let placement = AttachmentMap.BOTTOM\n\n      // Handle dropup\n      if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n        placement = AttachmentMap.TOP\n        if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n          placement = AttachmentMap.TOPEND\n        }\n      } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n        placement = AttachmentMap.BOTTOMEND\n      }\n      return placement\n    }\n\n    _detectNavbar() {\n      return $(this._element).closest('.navbar').length > 0\n    }\n\n    _getPopperConfig() {\n      const offsetConf = {}\n  
     if (typeof this._config.offset === 'function') {\n        offsetConf.fn = (data) => {\n          data.offsets = $.extend({}, data.offsets, this._config.offset(data.offsets) || {})\n          return data\n        }\n      } else {\n        offsetConf.offset = this._config.offset\n      }\n      const popperConfig = {\n        placement : this._getPlacement(),\n        modifiers : {\n          offset : offsetConf,\n          flip : {\n            enabled : this._config.flip\n          }\n        }\n      }\n\n      // Disable Popper.js for Dropdown in Navbar\n      if (this._inNavbar) {\n        popperConfig.modifiers.applyStyle = {\n          enabled: !this._inNavbar\n        }\n      }\n      return popperConfig\n    }\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' ? config : null\n\n        if (!data) {\n          data = new Dropdown(th
 is, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n    static _clearMenus(event) {\n      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n        event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n        return\n      }\n\n      const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n      for (let i = 0; i < toggles.length; i++) {\n        const parent        = Dropdown._getParentFromElement(toggles[i])\n        const context       = $(toggles[i]).data(DATA_KEY)\n        const relatedTarget = {\n          relatedTarget : toggles[i]\n        }\n\n        if (!context) {\n          continue\n        }\n\n        const dropdownMenu = context._menu\n        if (!$(parent).hasClass(ClassName.SHOW)) {\n          continue\n        
 }\n\n        if (event && (event.type === 'click' &&\n            /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE)\n            && $.contains(parent, event.target)) {\n          continue\n        }\n\n        const hideEvent = $.Event(Event.HIDE, relatedTarget)\n        $(parent).trigger(hideEvent)\n        if (hideEvent.isDefaultPrevented()) {\n          continue\n        }\n\n        // if this is a touch-enabled device we remove the extra\n        // empty mouseover listeners we added for iOS support\n        if ('ontouchstart' in document.documentElement) {\n          $('body').children().off('mouseover', null, $.noop)\n        }\n\n        toggles[i].setAttribute('aria-expanded', 'false')\n\n        $(dropdownMenu).removeClass(ClassName.SHOW)\n        $(parent)\n          .removeClass(ClassName.SHOW)\n          .trigger($.Event(Event.HIDDEN, relatedTarget))\n      }\n    }\n\n    static _getParentFromElement(element) {\n    
   let parent\n      const selector = Util.getSelectorFromElement(element)\n\n      if (selector) {\n        parent = $(selector)[0]\n      }\n\n      return parent || element.parentNode\n    }\n\n    static _dataApiKeydownHandler(event) {\n      if (!REGEXP_KEYDOWN.test(event.which) || /button/i.test(event.target.tagName) && event.which === SPACE_KEYCODE ||\n         /input|textarea/i.test(event.target.tagName)) {\n        return\n      }\n\n      event.preventDefault()\n      event.stopPropagation()\n\n      if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      const parent   = Dropdown._getParentFromElement(this)\n      const isActive = $(parent).hasClass(ClassName.SHOW)\n\n      if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n           isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n\n        if (event.which === ESCAPE_KEYCODE) {\n          const toggle = $(parent).f
 ind(Selector.DATA_TOGGLE)[0]\n          $(toggle).trigger('focus')\n        }\n\n        $(this).trigger('click')\n        return\n      }\n\n      const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n      if (!items.length) {\n        return\n      }\n\n      let index = items.indexOf(event.target)\n\n      if (event.which === ARROW_UP_KEYCODE && index > 0) { // up\n        index--\n      }\n\n      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // down\n        index++\n      }\n\n      if (index < 0) {\n        index = 0\n      }\n\n      items[index].focus()\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE,  Dropdown._dataApiKeydownHandler)\n    .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeyd
 ownHandler)\n    .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault()\n      event.stopPropagation()\n      Dropdown._jQueryInterface.call($(this), 'toggle')\n    })\n    .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n      e.stopPropagation()\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Dropdown._jQueryInterface\n  $.fn[NAME].Constructor = Dropdown\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Dropdown._jQueryInterface\n  }\n\n  return Dropdown\n\n})($, Popper)\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * -------------------------------------------------------------------------
 -\n * Bootstrap (v4.0.0-beta.2): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                         = 'modal'\n  const VERSION                      = '4.0.0-beta.2'\n  const DATA_KEY                     = 'bs.modal'\n  const EVENT_KEY                    = `.${DATA_KEY}`\n  const DATA_API_KEY                 = '.data-api'\n  const JQUERY_NO_CONFLICT           = $.fn[NAME]\n  const TRANSITION_DURATION          = 300\n  const BACKDROP_TRANSITION_DURATION = 150\n  const ESCAPE_KEYCODE               = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n  const Default = {\n    backdrop : true,\n    keyboard : true,\n    focus  
   : true,\n    show     : true\n  }\n\n  const DefaultType = {\n    backdrop : '(boolean|string)',\n    keyboard : 'boolean',\n    focus    : 'boolean',\n    show     : 'boolean'\n  }\n\n  const Event = {\n    HIDE              : `hide${EVENT_KEY}`,\n    HIDDEN            : `hidden${EVENT_KEY}`,\n    SHOW              : `show${EVENT_KEY}`,\n    SHOWN             : `shown${EVENT_KEY}`,\n    FOCUSIN           : `focusin${EVENT_KEY}`,\n    RESIZE            : `resize${EVENT_KEY}`,\n    CLICK_DISMISS     : `click.dismiss${EVENT_KEY}`,\n    KEYDOWN_DISMISS   : `keydown.dismiss${EVENT_KEY}`,\n    MOUSEUP_DISMISS   : `mouseup.dismiss${EVENT_KEY}`,\n    MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n    CLICK_DATA_API    : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n    BACKDROP           : 'modal-backdrop',\n    OPEN               : 'modal-open',\n    FADE               : 'fade',\n    SHOW               : 'sh
 ow'\n  }\n\n  const Selector = {\n    DIALOG             : '.modal-dialog',\n    DATA_TOGGLE        : '[data-toggle=\"modal\"]',\n    DATA_DISMISS       : '[data-dismiss=\"modal\"]',\n    FIXED_CONTENT      : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n    STICKY_CONTENT     : '.sticky-top',\n    NAVBAR_TOGGLER     : '.navbar-toggler'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Modal {\n\n    constructor(element, config) {\n      this._config              = this._getConfig(config)\n      this._element             = element\n      this._dialog              = $(element).find(Selector.DIALOG)[0]\n      this._backdrop            = null\n      this._isShown             = false\n      this._isBodyOverflowing   = false\n      this._ignoreBackdropClick = false\n      this._originalBodyPadding = 0\n      this._scr
 ollbarWidth      = 0\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    toggle(relatedTarget) {\n      return this._isShown ? this.hide() : this.show(relatedTarget)\n    }\n\n    show(relatedTarget) {\n      if (this._isTransitioning || this._isShown) {\n        return\n      }\n\n      if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {\n        this._isTransitioning = true\n      }\n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget\n      })\n\n      $(this._element).trigger(showEvent)\n\n      if (this._isShown || showEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown = true\n\n      this._checkScrollbar()\n      this._setScrollbar()\n\n      this._adjustDialog()\n\n      $(document.body).addClass(ClassName.OPEN)\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(t
 his._element).on(\n        Event.CLICK_DISMISS,\n        Selector.DATA_DISMISS,\n        (event) => this.hide(event)\n      )\n\n      $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n        $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n          if ($(event.target).is(this._element)) {\n            this._ignoreBackdropClick = true\n          }\n        })\n      })\n\n      this._showBackdrop(() => this._showElement(relatedTarget))\n    }\n\n    hide(event) {\n      if (event) {\n        event.preventDefault()\n      }\n\n      if (this._isTransitioning || !this._isShown) {\n        return\n      }\n\n      const hideEvent = $.Event(Event.HIDE)\n\n      $(this._element).trigger(hideEvent)\n\n      if (!this._isShown || hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown = false\n\n      const transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)\n\n      if (transition) {\n        this._isTransitioning 
 = true\n      }\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(document).off(Event.FOCUSIN)\n\n      $(this._element).removeClass(ClassName.SHOW)\n\n      $(this._element).off(Event.CLICK_DISMISS)\n      $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n      if (transition) {\n\n        $(this._element)\n          .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n          .emulateTransitionEnd(TRANSITION_DURATION)\n      } else {\n        this._hideModal()\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n      this._config              = null\n      this._element             = null\n      this._dialog              = null\n      this._backdrop            = null\n      this._isShown             = null\n      this._isBodyOverflowing   = null\n      this._ignoreBackdropClick = null\n      this._scrollbarWidth      = null\n    }\n\n    handleU
 pdate() {\n      this._adjustDialog()\n    }\n\n    // private\n\n    _getConfig(config) {\n      config = $.extend({}, Default, config)\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _showElement(relatedTarget) {\n      const transition = Util.supportsTransitionEnd() &&\n        $(this._element).hasClass(ClassName.FADE)\n\n      if (!this._element.parentNode ||\n         this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n        // don't move modals dom position\n        document.body.appendChild(this._element)\n      }\n\n      this._element.style.display = 'block'\n      this._element.removeAttribute('aria-hidden')\n      this._element.scrollTop = 0\n\n      if (transition) {\n        Util.reflow(this._element)\n      }\n\n      $(this._element).addClass(ClassName.SHOW)\n\n      if (this._config.focus) {\n        this._enforceFocus()\n      }\n\n      const shownEvent = $.Event(Event.SHOWN, {\n        relatedTarget\n      })\n\n
       const transitionComplete = () => {\n        if (this._config.focus) {\n          this._element.focus()\n        }\n        this._isTransitioning = false\n        $(this._element).trigger(shownEvent)\n      }\n\n      if (transition) {\n        $(this._dialog)\n          .one(Util.TRANSITION_END, transitionComplete)\n          .emulateTransitionEnd(TRANSITION_DURATION)\n      } else {\n        transitionComplete()\n      }\n    }\n\n    _enforceFocus() {\n      $(document)\n        .off(Event.FOCUSIN) // guard against infinite focus loop\n        .on(Event.FOCUSIN, (event) => {\n          if (document !== event.target &&\n              this._element !== event.target &&\n              !$(this._element).has(event.target).length) {\n            this._element.focus()\n          }\n        })\n    }\n\n    _setEscapeEvent() {\n      if (this._isShown && this._config.keyboard) {\n        $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n          if (event.which === ESCAPE_KEY
 CODE) {\n            event.preventDefault()\n            this.hide()\n          }\n        })\n\n      } else if (!this._isShown) {\n        $(this._element).off(Event.KEYDOWN_DISMISS)\n      }\n    }\n\n    _setResizeEvent() {\n      if (this._isShown) {\n        $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n      } else {\n        $(window).off(Event.RESIZE)\n      }\n    }\n\n    _hideModal() {\n      this._element.style.display = 'none'\n      this._element.setAttribute('aria-hidden', true)\n      this._isTransitioning = false\n      this._showBackdrop(() => {\n        $(document.body).removeClass(ClassName.OPEN)\n        this._resetAdjustments()\n        this._resetScrollbar()\n        $(this._element).trigger(Event.HIDDEN)\n      })\n    }\n\n    _removeBackdrop() {\n      if (this._backdrop) {\n        $(this._backdrop).remove()\n        this._backdrop = null\n      }\n    }\n\n    _showBackdrop(callback) {\n      const animate = $(this._element).hasClass(C
 lassName.FADE) ?\n        ClassName.FADE : ''\n\n      if (this._isShown && this._config.backdrop) {\n        const doAnimate = Util.supportsTransitionEnd() && animate\n\n        this._backdrop = document.createElement('div')\n        this._backdrop.className = ClassName.BACKDROP\n\n        if (animate) {\n          $(this._backdrop).addClass(animate)\n        }\n\n        $(this._backdrop).appendTo(document.body)\n\n        $(this._element).on(Event.CLICK_DISMISS, (event) => {\n          if (this._ignoreBackdropClick) {\n            this._ignoreBackdropClick = false\n            return\n          }\n          if (event.target !== event.currentTarget) {\n            return\n          }\n          if (this._config.backdrop === 'static') {\n            this._element.focus()\n          } else {\n            this.hide()\n          }\n        })\n\n        if (doAnimate) {\n          Util.reflow(this._backdrop)\n        }\n\n        $(this._backdrop).addClass(ClassName.SHOW)\n\n        i
 f (!callback) {\n          return\n        }\n\n        if (!doAnimate) {\n          callback()\n          return\n        }\n\n        $(this._backdrop)\n          .one(Util.TRANSITION_END, callback)\n          .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n\n      } else if (!this._isShown && this._backdrop) {\n        $(this._backdrop).removeClass(ClassName.SHOW)\n\n        const callbackRemove = () => {\n          this._removeBackdrop()\n          if (callback) {\n            callback()\n          }\n        }\n\n        if (Util.supportsTransitionEnd() &&\n           $(this._element).hasClass(ClassName.FADE)) {\n          $(this._backdrop)\n            .one(Util.TRANSITION_END, callbackRemove)\n            .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n        } else {\n          callbackRemove()\n        }\n\n      } else if (callback) {\n        callback()\n      }\n    }\n\n\n    // ----------------------------------------------------------------------\n    // th
 e following methods are used to handle overflowing modals\n    // todo (fat): these should probably be refactored out of modal.js\n    // ----------------------------------------------------------------------\n\n    _adjustDialog() {\n      const isModalOverflowing =\n        this._element.scrollHeight > document.documentElement.clientHeight\n\n      if (!this._isBodyOverflowing && isModalOverflowing) {\n        this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n      }\n\n      if (this._isBodyOverflowing && !isModalOverflowing) {\n        this._element.style.paddingRight = `${this._scrollbarWidth}px`\n      }\n    }\n\n    _resetAdjustments() {\n      this._element.style.paddingLeft = ''\n      this._element.style.paddingRight = ''\n    }\n\n    _checkScrollbar() {\n      const rect = document.body.getBoundingClientRect()\n      this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n      this._scrollbarWidth = this._getScrollbarWidth()\n    }\n\n    _se
 tScrollbar() {\n      if (this._isBodyOverflowing) {\n        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n        // Adjust fixed content padding\n        $(Selector.FIXED_CONTENT).each((index, element) => {\n          const actualPadding = $(element)[0].style.paddingRight\n          const calculatedPadding = $(element).css('padding-right')\n          $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust sticky content margin\n        $(Selector.STICKY_CONTENT).each((index, element) => {\n          const actualMargin = $(element)[0].style.marginRight\n          const calculatedMargin = $(element).css('margin-right')\n          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidt
 h}px`)\n        })\n\n        // Adjust navbar-toggler margin\n        $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n          const actualMargin = $(element)[0].style.marginRight\n          const calculatedMargin = $(element).css('margin-right')\n          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust body padding\n        const actualPadding = document.body.style.paddingRight\n        const calculatedPadding = $('body').css('padding-right')\n        $('body').data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n      }\n    }\n\n    _resetScrollbar() {\n      // Restore fixed content padding\n      $(Selector.FIXED_CONTENT).each((index, element) => {\n        const padding = $(element).data('padding-right')\n        if (typeof padding !== 'undefined') {\n          $(element).css('padding-right',
  padding).removeData('padding-right')\n        }\n      })\n\n      // Restore sticky content and navbar-toggler margin\n      $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {\n        const margin = $(element).data('margin-right')\n        if (typeof margin !== 'undefined') {\n          $(element).css('margin-right', margin).removeData('margin-right')\n        }\n      })\n\n      // Restore body padding\n      const padding = $('body').data('padding-right')\n      if (typeof padding !== 'undefined') {\n        $('body').css('padding-right', padding).removeData('padding-right')\n      }\n    }\n\n    _getScrollbarWidth() { // thx d.walsh\n      const scrollDiv = document.createElement('div')\n      scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n      document.body.appendChild(scrollDiv)\n      const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n      document.body.removeChild(scrollDiv)\n      return scr
 ollbarWidth\n    }\n\n\n    // static\n\n    static _jQueryInterface(config, relatedTarget) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = $.extend(\n          {},\n          Modal.Default,\n          $(this).data(),\n          typeof config === 'object' && config\n        )\n\n        if (!data) {\n          data = new Modal(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config](relatedTarget)\n        } else if (_config.show) {\n          data.show(relatedTarget)\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(docu
 ment).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    let target\n    const selector = Util.getSelectorFromElement(this)\n\n    if (selector) {\n      target = $(selector)[0]\n    }\n\n    const config = $(target).data(DATA_KEY) ?\n      'toggle' : $.extend({}, $(target).data(), $(this).data())\n\n    if (this.tagName === 'A' || this.tagName === 'AREA') {\n      event.preventDefault()\n    }\n\n    const $target = $(target).one(Event.SHOW, (showEvent) => {\n      if (showEvent.isDefaultPrevented()) {\n        // only register focus restorer if modal will actually get shown\n        return\n      }\n\n      $target.one(Event.HIDDEN, () => {\n        if ($(this).is(':visible')) {\n          this.focus()\n        }\n      })\n    })\n\n    Modal._jQueryInterface.call($(target), config, this)\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * -----------------------------------------------------------
 -------------\n   */\n\n  $.fn[NAME]             = Modal._jQueryInterface\n  $.fn[NAME].Constructor = Modal\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Modal._jQueryInterface\n  }\n\n  return Modal\n\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (() => {\n\n  /**\n   * Check for Popper dependency\n   * Popper - https://popper.js.org\n   */\n  if (typeof Popper === 'undefined') {\n    throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   *
  Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'tooltip'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.tooltip'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n  const CLASS_PREFIX        = 'bs-tooltip'\n  const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n  const DefaultType = {\n    animation           : 'boolean',\n    template            : 'string',\n    title               : '(string|element|function)',\n    trigger             : 'string',\n    delay               : '(number|object)',\n    html                : 'boolean',\n    selector            : '(string|boolean)',\n    placement           : '(string|function)',\n    offset              : '(number|string)',\n    container           : '(string|element|boolean)',\n    fallbackPlacement   : '(string|array)'\n
   }\n\n  const AttachmentMap = {\n    AUTO   : 'auto',\n    TOP    : 'top',\n    RIGHT  : 'right',\n    BOTTOM : 'bottom',\n    LEFT   : 'left'\n  }\n\n  const Default = {\n    animation           : true,\n    template            : '<div class=\"tooltip\" role=\"tooltip\">'\n                        + '<div class=\"arrow\"></div>'\n                        + '<div class=\"tooltip-inner\"></div></div>',\n    trigger             : 'hover focus',\n    title               : '',\n    delay               : 0,\n    html                : false,\n    selector            : false,\n    placement           : 'top',\n    offset              : 0,\n    container           : false,\n    fallbackPlacement   : 'flip'\n  }\n\n  const HoverState = {\n    SHOW : 'show',\n    OUT  : 'out'\n  }\n\n  const Event = {\n    HIDE       : `hide${EVENT_KEY}`,\n    HIDDEN     : `hidden${EVENT_KEY}`,\n    SHOW       : `show${EVENT_KEY}`,\n    SHOWN      : `shown${EVENT_KEY}`,\n    INSERTED   : `inserted${EVENT_KEY}`
 ,\n    CLICK      : `click${EVENT_KEY}`,\n    FOCUSIN    : `focusin${EVENT_KEY}`,\n    FOCUSOUT   : `focusout${EVENT_KEY}`,\n    MOUSEENTER : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE : `mouseleave${EVENT_KEY}`\n  }\n\n  const ClassName = {\n    FADE : 'fade',\n    SHOW : 'show'\n  }\n\n  const Selector = {\n    TOOLTIP       : '.tooltip',\n    TOOLTIP_INNER : '.tooltip-inner',\n    ARROW         : '.arrow'\n  }\n\n  const Trigger = {\n    HOVER  : 'hover',\n    FOCUS  : 'focus',\n    CLICK  : 'click',\n    MANUAL : 'manual'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Tooltip {\n\n    constructor(element, config) {\n\n      // private\n      this._isEnabled     = true\n      this._timeout       = 0\n      this._hoverState    = ''\n      this._activeTrigger = {}\n      this._popper        = null\n\n      // protecte
 d\n      this.element = element\n      this.config  = this._getConfig(config)\n      this.tip     = null\n\n      this._setListeners()\n\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get NAME() {\n      return NAME\n    }\n\n    static get DATA_KEY() {\n      return DATA_KEY\n    }\n\n    static get Event() {\n      return Event\n    }\n\n    static get EVENT_KEY() {\n      return EVENT_KEY\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n\n    // public\n\n    enable() {\n      this._isEnabled = true\n    }\n\n    disable() {\n      this._isEnabled = false\n    }\n\n    toggleEnabled() {\n      this._isEnabled = !this._isEnabled\n    }\n\n    toggle(event) {\n      if (!this._isEnabled) {\n        return\n      }\n\n      if (event) {\n        const dataKey = this.constructor.DATA_KEY\n        let context = $(event.currentTarget).data(dataKey)
 \n\n        if (!context) {\n          context = new this.constructor(\n            event.currentTarget,\n            this._getDelegateConfig()\n          )\n          $(event.currentTarget).data(dataKey, context)\n        }\n\n        context._activeTrigger.click = !context._activeTrigger.click\n\n        if (context._isWithActiveTrigger()) {\n          context._enter(null, context)\n        } else {\n          context._leave(null, context)\n        }\n\n      } else {\n\n        if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n          this._leave(null, this)\n          return\n        }\n\n        this._enter(null, this)\n      }\n    }\n\n    dispose() {\n      clearTimeout(this._timeout)\n\n      $.removeData(this.element, this.constructor.DATA_KEY)\n\n      $(this.element).off(this.constructor.EVENT_KEY)\n      $(this.element).closest('.modal').off('hide.bs.modal')\n\n      if (this.tip) {\n        $(this.tip).remove()\n      }\n\n      this._isEnabled     = null\n   
    this._timeout       = null\n      this._hoverState    = null\n      this._activeTrigger = null\n      if (this._popper !== null) {\n        this._popper.destroy()\n      }\n\n      this._popper = null\n      this.element = null\n      this.config  = null\n      this.tip     = null\n    }\n\n    show() {\n      if ($(this.element).css('display') === 'none') {\n        throw new Error('Please use show on visible elements')\n      }\n\n      const showEvent = $.Event(this.constructor.Event.SHOW)\n      if (this.isWithContent() && this._isEnabled) {\n        $(this.element).trigger(showEvent)\n\n        const isInTheDom = $.contains(\n          this.element.ownerDocument.documentElement,\n          this.element\n        )\n\n        if (showEvent.isDefaultPrevented() || !isInTheDom) {\n          return\n        }\n\n        const tip   = this.getTipElement()\n        const tipId = Util.getUID(this.constructor.NAME)\n\n        tip.setAttribute('id', tipId)\n        this.element.setAtt
 ribute('aria-describedby', tipId)\n\n        this.setContent()\n\n        if (this.config.animation) {\n          $(tip).addClass(ClassName.FADE)\n        }\n\n        const placement  = typeof this.config.placement === 'function' ?\n          this.config.placement.call(this, tip, this.element) :\n          this.config.placement\n\n        const attachment = this._getAttachment(placement)\n        this.addAttachmentClass(attachment)\n\n        const container = this.config.container === false ? document.body : $(this.config.container)\n\n        $(tip).data(this.constructor.DATA_KEY, this)\n\n        if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n          $(tip).appendTo(container)\n        }\n\n        $(this.element).trigger(this.constructor.Event.INSERTED)\n\n        this._popper = new Popper(this.element, tip, {\n          placement: attachment,\n          modifiers: {\n            offset: {\n              offset: this.config.offset\n            },\n 
            flip: {\n              behavior: this.config.fallbackPlacement\n            },\n            arrow: {\n              element: Selector.ARROW\n            }\n          },\n          onCreate: (data) => {\n            if (data.originalPlacement !== data.placement) {\n              this._handlePopperPlacementChange(data)\n            }\n          },\n          onUpdate : (data) => {\n            this._handlePopperPlacementChange(data)\n          }\n        })\n\n        $(tip).addClass(ClassName.SHOW)\n\n        // if this is a touch-enabled device we add extra\n        // empty mouseover listeners to the body's immediate children;\n        // only needed because of broken event delegation on iOS\n        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n        if ('ontouchstart' in document.documentElement) {\n          $('body').children().on('mouseover', null, $.noop)\n        }\n\n        const complete = () => {\n          if (this.config.animati
 on) {\n            this._fixTransition()\n          }\n          const prevHoverState = this._hoverState\n          this._hoverState     = null\n\n          $(this.element).trigger(this.constructor.Event.SHOWN)\n\n          if (prevHoverState === HoverState.OUT) {\n            this._leave(null, this)\n          }\n        }\n\n        if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {\n          $(this.tip)\n            .one(Util.TRANSITION_END, complete)\n            .emulateTransitionEnd(Tooltip._TRANSITION_DURATION)\n        } else {\n          complete()\n        }\n      }\n    }\n\n    hide(callback) {\n      const tip       = this.getTipElement()\n      const hideEvent = $.Event(this.constructor.Event.HIDE)\n      const complete  = () => {\n        if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n          tip.parentNode.removeChild(tip)\n        }\n\n        this._cleanTipClass()\n        this.element.removeAttribute('aria-describedby')
 \n        $(this.element).trigger(this.constructor.Event.HIDDEN)\n        if (this._popper !== null) {\n          this._popper.destroy()\n        }\n\n        if (callback) {\n          callback()\n        }\n      }\n\n      $(this.element).trigger(hideEvent)\n\n      if (hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      $(tip).removeClass(ClassName.SHOW)\n\n      // if this is a touch-enabled device we remove the extra\n      // empty mouseover listeners we added for iOS support\n      if ('ontouchstart' in document.documentElement) {\n        $('body').children().off('mouseover', null, $.noop)\n      }\n\n      this._activeTrigger[Trigger.CLICK] = false\n      this._activeTrigger[Trigger.FOCUS] = false\n      this._activeTrigger[Trigger.HOVER] = false\n\n      if (Util.supportsTransitionEnd() &&\n          $(this.tip).hasClass(ClassName.FADE)) {\n\n        $(tip)\n          .one(Util.TRANSITION_END, complete)\n          .emulateTransitionEnd(TRANSITION_DURATION)
 \n\n      } else {\n        complete()\n      }\n\n      this._hoverState = ''\n\n    }\n\n    update() {\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate()\n      }\n    }\n\n    // protected\n\n    isWithContent() {\n      return Boolean(this.getTitle())\n    }\n\n    addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n    }\n\n    getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0]\n      return this.tip\n    }\n\n    setContent() {\n      const $tip = $(this.getTipElement())\n      this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n    }\n\n    setElementContent($element, content) {\n      const html = this.config.html\n      if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n        // content is a DOM node or a jQuery\n        if (html) {\n          if (!$(content).
 parent().is($element)) {\n            $element.empty().append(content)\n          }\n        } else {\n          $element.text($(content).text())\n        }\n      } else {\n        $element[html ? 'html' : 'text'](content)\n      }\n    }\n\n    getTitle() {\n      let title = this.element.getAttribute('data-original-title')\n\n      if (!title) {\n        title = typeof this.config.title === 'function' ?\n          this.config.title.call(this.element) :\n          this.config.title\n      }\n\n      return title\n    }\n\n\n    // private\n\n    _getAttachment(placement) {\n      return AttachmentMap[placement.toUpperCase()]\n    }\n\n    _setListeners() {\n      const triggers = this.config.trigger.split(' ')\n\n      triggers.forEach((trigger) => {\n        if (trigger === 'click') {\n          $(this.element).on(\n            this.constructor.Event.CLICK,\n            this.config.selector,\n            (event) => this.toggle(event)\n          )\n\n        } else if (trigger !==
  Trigger.MANUAL) {\n          const eventIn  = trigger === Trigger.HOVER ?\n            this.constructor.Event.MOUSEENTER :\n            this.constructor.Event.FOCUSIN\n          const eventOut = trigger === Trigger.HOVER ?\n            this.constructor.Event.MOUSELEAVE :\n            this.constructor.Event.FOCUSOUT\n\n          $(this.element)\n            .on(\n              eventIn,\n              this.config.selector,\n              (event) => this._enter(event)\n            )\n            .on(\n              eventOut,\n              this.config.selector,\n              (event) => this._leave(event)\n            )\n        }\n\n        $(this.element).closest('.modal').on(\n          'hide.bs.modal',\n          () => this.hide()\n        )\n      })\n\n      if (this.config.selector) {\n        this.config = $.extend({}, this.config, {\n          trigger  : 'manual',\n          selector : ''\n        })\n      } else {\n        this._fixTitle()\n      }\n    }\n\n    _fixTitle()
  {\n      const titleType = typeof this.element.getAttribute('data-original-title')\n      if (this.element.getAttribute('title') ||\n         titleType !== 'string') {\n        this.element.setAttribute(\n          'data-original-title',\n          this.element.getAttribute('title') || ''\n        )\n        this.element.setAttribute('title', '')\n      }\n    }\n\n    _enter(event, context) {\n      const dataKey = this.constructor.DATA_KEY\n\n      context = context || $(event.currentTarget).data(dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      if (event) {\n        context._activeTrigger[\n          event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n        ] = true\n      }\n\n      if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||\n         context._hoverState === HoverState.SHOW) {\n 
        context._hoverState = HoverState.SHOW\n        return\n      }\n\n      clearTimeout(context._timeout)\n\n      context._hoverState = HoverState.SHOW\n\n      if (!context.config.delay || !context.config.delay.show) {\n        context.show()\n        return\n      }\n\n      context._timeout = setTimeout(() => {\n        if (context._hoverState === HoverState.SHOW) {\n          context.show()\n        }\n      }, context.config.delay.show)\n    }\n\n    _leave(event, context) {\n      const dataKey = this.constructor.DATA_KEY\n\n      context = context || $(event.currentTarget).data(dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      if (event) {\n        context._activeTrigger[\n          event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n        ] = false\n      }\n\n      if (context._isWithA
 ctiveTrigger()) {\n        return\n      }\n\n      clearTimeout(context._timeout)\n\n      context._hoverState = HoverState.OUT\n\n      if (!context.config.delay || !context.config.delay.hide) {\n        context.hide()\n        return\n      }\n\n      context._timeout = setTimeout(() => {\n        if (context._hoverState === HoverState.OUT) {\n          context.hide()\n        }\n      }, context.config.delay.hide)\n    }\n\n    _isWithActiveTrigger() {\n      for (const trigger in this._activeTrigger) {\n        if (this._activeTrigger[trigger]) {\n          return true\n        }\n      }\n\n      return false\n    }\n\n    _getConfig(config) {\n      config = $.extend(\n        {},\n        this.constructor.Default,\n        $(this.element).data(),\n        config\n      )\n\n      if (typeof config.delay === 'number') {\n        config.delay = {\n          show : config.delay,\n          hide : config.delay\n        }\n      }\n\n      if (typeof config.title === 'number') {\
 n        config.title = config.title.toString()\n      }\n\n      if (typeof config.content === 'number') {\n        config.content = config.content.toString()\n      }\n\n      Util.typeCheckConfig(\n        NAME,\n        config,\n        this.constructor.DefaultType\n      )\n\n      return config\n    }\n\n    _getDelegateConfig() {\n      const config = {}\n\n      if (this.config) {\n        for (const key in this.config) {\n          if (this.constructor.Default[key] !== this.config[key]) {\n            config[key] = this.config[key]\n          }\n        }\n      }\n\n      return config\n    }\n\n    _cleanTipClass() {\n      const $tip = $(this.getTipElement())\n      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''))\n      }\n    }\n\n    _handlePopperPlacementChange(data) {\n      this._cleanTipClass()\n      this.addAttachmentClass(this._getAttachment(data.pla
 cement))\n    }\n\n    _fixTransition() {\n      const tip                 = this.getTipElement()\n      const initConfigAnimation = this.config.animation\n      if (tip.getAttribute('x-placement') !== null) {\n        return\n      }\n      $(tip).removeClass(ClassName.FADE)\n      this.config.animation = false\n      this.hide()\n      this.show()\n      this.config.animation = initConfigAnimation\n    }\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' && config\n\n        if (!data && /dispose|hide/.test(config)) {\n          return\n        }\n\n        if (!data) {\n          data = new Tooltip(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n  
         data[config]()\n        }\n      })\n    }\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Tooltip._jQueryInterface\n  $.fn[NAME].Constructor = Tooltip\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Tooltip._jQueryInterface\n  }\n\n  return Tooltip\n\n})($, Popper)\n\nexport default Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * 
 Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'popover'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.popover'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const CLASS_PREFIX        = 'bs-popover'\n  const BSCLS_PREFIX_REGEX  = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n  const Default = $.extend({}, Tooltip.Default, {\n    placement : 'right',\n    trigger   : 'click',\n    content   : '',\n    template  : '<div class=\"popover\" role=\"tooltip\">'\n              + '<div class=\"arrow\"></div>'\n              + '<h3 class=\"popover-header\"></h3>'\n              + '<div class=\"popover-body\"></div></div>'\n  })\n\n  const DefaultType = $.extend({}, Tooltip.DefaultType, {\n    content : '(string|element|function)'\n  })\n\n  const ClassName = {\n    FADE : 'fade',\n    SHOW : 'show'\n  }\n\n  const Selector = {
 \n    TITLE   : '.popover-header',\n    CONTENT : '.popover-body'\n  }\n\n  const Event = {\n    HIDE       : `hide${EVENT_KEY}`,\n    HIDDEN     : `hidden${EVENT_KEY}`,\n    SHOW       : `show${EVENT_KEY}`,\n    SHOWN      : `shown${EVENT_KEY}`,\n    INSERTED   : `inserted${EVENT_KEY}`,\n    CLICK      : `click${EVENT_KEY}`,\n    FOCUSIN    : `focusin${EVENT_KEY}`,\n    FOCUSOUT   : `focusout${EVENT_KEY}`,\n    MOUSEENTER : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE : `mouseleave${EVENT_KEY}`\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Popover extends Tooltip {\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get NAME() {\n      return NAME\n    }\n\n    static get DATA_KEY() {\n      return DATA_KEY\n    }\n\n   
  static get Event() {\n      return Event\n    }\n\n    static get EVENT_KEY() {\n      return EVENT_KEY\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n\n    // overrides\n\n    isWithContent() {\n      return this.getTitle() || this._getContent()\n    }\n\n    addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n    }\n\n    getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0]\n      return this.tip\n    }\n\n    setContent() {\n      const $tip = $(this.getTipElement())\n\n      // we use append for html objects to maintain js events\n      this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n      this.setElementContent($tip.find(Selector.CONTENT), this._getContent())\n\n      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n    }\n\n    // private\n\n    _getContent() {\n      return this.element.getAttribute('data-content')\n        || (typeof this.co
 nfig.content === 'function' ?\n              this.config.content.call(this.element) :\n              this.config.content)\n    }\n\n    _cleanTipClass() {\n      const $tip = $(this.getTipElement())\n      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''))\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' ? config : null\n\n        if (!data && /destroy|hide/.test(config)) {\n          return\n        }\n\n        if (!data) {\n          data = new Popover(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[confi
 g]()\n        }\n      })\n    }\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Popover._jQueryInterface\n  $.fn[NAME].Constructor = Popover\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Popover._jQueryInterface\n  }\n\n  return Popover\n\n})($)\n\nexport default Popover\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------
 ------------------------------------------------------------\n   */\n\n  const NAME               = 'scrollspy'\n  const VERSION            = '4.0.0-beta.2'\n  const DATA_KEY           = 'bs.scrollspy'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const DATA_API_KEY       = '.data-api'\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Default = {\n    offset : 10,\n    method : 'auto',\n    target : ''\n  }\n\n  const DefaultType = {\n    offset : 'number',\n    method : 'string',\n    target : '(string|element)'\n  }\n\n  const Event = {\n    ACTIVATE      : `activate${EVENT_KEY}`,\n    SCROLL        : `scroll${EVENT_KEY}`,\n    LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DROPDOWN_ITEM : 'dropdown-item',\n    DROPDOWN_MENU : 'dropdown-menu',\n    ACTIVE        : 'active'\n  }\n\n  const Selector = {\n    DATA_SPY        : '[data-spy=\"scroll\"]',\n    ACTIVE          : '.active',\n    NAV_LIST_GROUP  : '.nav, .list-group',\n    NAV_LINKS
        : '.nav-link',\n    NAV_ITEMS       : '.nav-item',\n    LIST_ITEMS      : '.list-group-item',\n    DROPDOWN        : '.dropdown',\n    DROPDOWN_ITEMS  : '.dropdown-item',\n    DROPDOWN_TOGGLE : '.dropdown-toggle'\n  }\n\n  const OffsetMethod = {\n    OFFSET   : 'offset',\n    POSITION : 'position'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class ScrollSpy {\n\n    constructor(element, config) {\n      this._element       = element\n      this._scrollElement = element.tagName === 'BODY' ? window : element\n      this._config        = this._getConfig(config)\n      this._selector      = `${this._config.target} ${Selector.NAV_LINKS},`\n                          + `${this._config.target} ${Selector.LIST_ITEMS},`\n                          + `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n      this._offsets     
   = []\n      this._targets       = []\n      this._activeTarget  = null\n      this._scrollHeight  = 0\n\n      $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n      this.refresh()\n      this._process()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    refresh() {\n      const autoMethod = this._scrollElement !== this._scrollElement.window ?\n        OffsetMethod.POSITION : OffsetMethod.OFFSET\n\n      const offsetMethod = this._config.method === 'auto' ?\n        autoMethod : this._config.method\n\n      const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n        this._getScrollTop() : 0\n\n      this._offsets = []\n      this._targets = []\n\n      this._scrollHeight = this._getScrollHeight()\n\n      const targets = $.makeArray($(this._selector))\n\n      targets\n        .map((element) => {\n          let target\n        
   const targetSelector = Util.getSelectorFromElement(element)\n\n          if (targetSelector) {\n            target = $(targetSelector)[0]\n          }\n\n          if (target) {\n            const targetBCR = target.getBoundingClientRect()\n            if (targetBCR.width || targetBCR.height) {\n              // todo (fat): remove sketch reliance on jQuery position/offset\n              return [\n                $(target)[offsetMethod]().top + offsetBase,\n                targetSelector\n              ]\n            }\n          }\n          return null\n        })\n        .filter((item)  => item)\n        .sort((a, b)    => a[0] - b[0])\n        .forEach((item) => {\n          this._offsets.push(item[0])\n          this._targets.push(item[1])\n        })\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      $(this._scrollElement).off(EVENT_KEY)\n\n      this._element       = null\n      this._scrollElement = null\n      this._config        = null\n      t
 his._selector      = null\n      this._offsets       = null\n      this._targets       = null\n      this._activeTarget  = null\n      this._scrollHeight  = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = $.extend({}, Default, config)\n\n      if (typeof config.target !== 'string') {\n        let id = $(config.target).attr('id')\n        if (!id) {\n          id = Util.getUID(NAME)\n          $(config.target).attr('id', id)\n        }\n        config.target = `#${id}`\n      }\n\n      Util.typeCheckConfig(NAME, config, DefaultType)\n\n      return config\n    }\n\n    _getScrollTop() {\n      return this._scrollElement === window ?\n          this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n    }\n\n    _getScrollHeight() {\n      return this._scrollElement.scrollHeight || Math.max(\n        document.body.scrollHeight,\n        document.documentElement.scrollHeight\n      )\n    }\n\n    _getOffsetHeight() {\n      return this._scrollElem
 ent === window ?\n          window.innerHeight : this._scrollElement.getBoundingClientRect().height\n    }\n\n    _process() {\n      const scrollTop    = this._getScrollTop() + this._config.offset\n      const scrollHeight = this._getScrollHeight()\n      const maxScroll    = this._config.offset\n        + scrollHeight\n        - this._getOffsetHeight()\n\n      if (this._scrollHeight !== scrollHeight) {\n        this.refresh()\n      }\n\n      if (scrollTop >= maxScroll) {\n        const target = this._targets[this._targets.length - 1]\n\n        if (this._activeTarget !== target) {\n          this._activate(target)\n        }\n        return\n      }\n\n      if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n        this._activeTarget = null\n        this._clear()\n        return\n      }\n\n      for (let i = this._offsets.length; i--;) {\n        const isActiveTarget = this._activeTarget !== this._targets[i]\n            && scrollTop >= this._o
 ffsets[i]\n            && (typeof this._offsets[i + 1] === 'undefined' ||\n                scrollTop < this._offsets[i + 1])\n\n        if (isActiveTarget) {\n          this._activate(this._targets[i])\n        }\n      }\n    }\n\n    _activate(target) {\n      this._activeTarget = target\n\n      this._clear()\n\n      let queries = this._selector.split(',')\n      // eslint-disable-next-line arrow-body-style\n      queries     = queries.map((selector) => {\n        return `${selector}[data-target=\"${target}\"],` +\n               `${selector}[href=\"${target}\"]`\n      })\n\n      const $link = $(queries.join(','))\n\n      if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n        $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n        $link.addClass(ClassName.ACTIVE)\n      } else {\n        // Set triggered link as active\n        $link.addClass(ClassName.ACTIVE)\n        // Set triggered links parents as active\n        // With both 
 <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n        $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n        // Handle special case when .nav-link is inside .nav-item\n        $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n      }\n\n      $(this._scrollElement).trigger(Event.ACTIVATE, {\n        relatedTarget: target\n      })\n    }\n\n    _clear() {\n      $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' && config\n\n        if (!data) {\n          data = new ScrollSpy(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n  
         if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n    for (let i = scrollSpys.length; i--;) {\n      const $spy = $(scrollSpys[i])\n      ScrollSpy._jQueryInterface.call($spy, $spy.data())\n    }\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = ScrollSpy._jQueryInterface\n  $.fn[NAME].Constructor = ScrollSpy\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] 
 = JQUERY_NO_CONFLICT\n    return ScrollSpy._jQueryInterface\n  }\n\n  return ScrollSpy\n\n})($)\n\nexport default ScrollSpy\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'tab'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.tab'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n\n  const Event = {\n 
    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DROPDOWN_MENU : 'dropdown-menu',\n    ACTIVE        : 'active',\n    DISABLED      : 'disabled',\n    FADE          : 'fade',\n    SHOW          : 'show'\n  }\n\n  const Selector = {\n    DROPDOWN              : '.dropdown',\n    NAV_LIST_GROUP        : '.nav, .list-group',\n    ACTIVE                : '.active',\n    ACTIVE_UL             : '> li > .active',\n    DATA_TOGGLE           : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n    DROPDOWN_TOGGLE       : '.dropdown-toggle',\n    DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * -------------------------------------------
 -----------------------------\n   */\n\n  class Tab {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    show() {\n      if (this._element.parentNode &&\n          this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n          $(this._element).hasClass(ClassName.ACTIVE) ||\n          $(this._element).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      let target\n      let previous\n      const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n      const selector    = Util.getSelectorFromElement(this._element)\n\n      if (listElement) {\n        const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n        previous = $.makeArray($(listElement).find(itemSelector))\n        previous = previous[previous.length - 1]\n      }\n\n      const hideEvent = $.Event(Event.HIDE, {\n        relatedT
 arget: this._element\n      })\n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget: previous\n      })\n\n      if (previous) {\n        $(previous).trigger(hideEvent)\n      }\n\n      $(this._element).trigger(showEvent)\n\n      if (showEvent.isDefaultPrevented() ||\n         hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (selector) {\n        target = $(selector)[0]\n      }\n\n      this._activate(\n        this._element,\n        listElement\n      )\n\n      const complete = () => {\n        const hiddenEvent = $.Event(Event.HIDDEN, {\n          relatedTarget: this._element\n        })\n\n        const shownEvent = $.Event(Event.SHOWN, {\n          relatedTarget: previous\n        })\n\n        $(previous).trigger(hiddenEvent)\n        $(this._element).trigger(shownEvent)\n      }\n\n      if (target) {\n        this._activate(target, target.parentNode, complete)\n      } else {\n        complete()\n      }\n    }\n\n    dispose() {\
 n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n\n    // private\n\n    _activate(element, container, callback) {\n      let activeElements\n      if (container.nodeName === 'UL') {\n        activeElements = $(container).find(Selector.ACTIVE_UL)\n      } else {\n        activeElements = $(container).children(Selector.ACTIVE)\n      }\n\n      const active          = activeElements[0]\n      const isTransitioning = callback\n        && Util.supportsTransitionEnd()\n        && (active && $(active).hasClass(ClassName.FADE))\n\n      const complete = () => this._transitionComplete(\n        element,\n        active,\n        isTransitioning,\n        callback\n      )\n\n      if (active && isTransitioning) {\n        $(active)\n          .one(Util.TRANSITION_END, complete)\n          .emulateTransitionEnd(TRANSITION_DURATION)\n\n      } else {\n        complete()\n      }\n\n      if (active) {\n        $(active).removeClass(ClassName.SHOW)\n      }\n
     }\n\n    _transitionComplete(element, active, isTransitioning, callback) {\n      if (active) {\n        $(active).removeClass(ClassName.ACTIVE)\n\n        const dropdownChild = $(active.parentNode).find(\n          Selector.DROPDOWN_ACTIVE_CHILD\n        )[0]\n\n        if (dropdownChild) {\n          $(dropdownChild).removeClass(ClassName.ACTIVE)\n        }\n\n        if (active.getAttribute('role') === 'tab') {\n          active.setAttribute('aria-selected', false)\n        }\n      }\n\n      $(element).addClass(ClassName.ACTIVE)\n      if (element.getAttribute('role') === 'tab') {\n        element.setAttribute('aria-selected', true)\n      }\n\n      if (isTransitioning) {\n        Util.reflow(element)\n        $(element).addClass(ClassName.SHOW)\n      } else {\n        $(element).removeClass(ClassName.FADE)\n      }\n\n      if (element.parentNode &&\n          $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n\n        const dropdownElement = $(element).closest
 (Selector.DROPDOWN)[0]\n        if (dropdownElement) {\n          $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n        }\n\n        element.setAttribute('aria-expanded', true)\n      }\n\n      if (callback) {\n        callback()\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this = $(this)\n        let data    = $this.data(DATA_KEY)\n\n        if (!data) {\n          data = new Tab(this)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */
 \n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault()\n      Tab._jQueryInterface.call($(this), 'show')\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Tab._jQueryInterface\n  $.fn[NAME].Constructor = Tab\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Tab._jQueryInterface\n  }\n\n  return Tab\n\n})($)\n\nexport default Tab\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\
 n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(() => {\n  if (typeof $ === 'undefined') {\n    throw new Error('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n  }\n\n  const version = $.fn.jquery.split(' ')[0].split('.')\n  const minMajor = 1\n  const ltMajor  = 2\n  const minMinor = 9\n  const minPatch = 1\n  const maxMajor = 4\n\n  if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n    throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n  }\n})($)\n\nexport {\n  Util,\n  Alert,\n  Button,\n  Carousel,\n  Collapse,\n  Dropdown,\n  Modal,\n  
 Popover,\n  Scrollspy,\n  Tab,\n  Tooltip\n}\n"]}
\ No newline at end of file
diff --git a/assets/static/js/bootstrap.js b/assets/static/js/bootstrap.js
deleted file mode 100755
index 630a9e0..0000000
--- a/assets/static/js/bootstrap.js
+++ /dev/null
@@ -1,3850 +0,0 @@
-/*!
-  * Bootstrap v4.0.0-beta.2 (https://getbootstrap.com)
-  * Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
-  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
-  */
-var bootstrap = (function (exports,$,Popper) {
-'use strict';
-
-$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
-Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): util.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-var Util = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Private TransitionEnd Helpers
-   * ------------------------------------------------------------------------
-   */
-  var transition = false;
-  var MAX_UID = 1000000;
-  var TransitionEndEvent = {
-    WebkitTransition: 'webkitTransitionEnd',
-    MozTransition: 'transitionend',
-    OTransition: 'oTransitionEnd otransitionend',
-    transition: 'transitionend' // shoutout AngusCroll (https://goo.gl/pxwQGp)
-
-  };
-
-  function toType(obj) {
-    return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
-  }
-
-  function getSpecialTransitionEndEvent() {
-    return {
-      bindType: transition.end,
-      delegateType: transition.end,
-      handle: function handle(event) {
-        if ($(event.target).is(this)) {
-          return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
-        }
-
-        return undefined; // eslint-disable-line no-undefined
-      }
-    };
-  }
-
-  function transitionEndTest() {
-    if (window.QUnit) {
-      return false;
-    }
-
-    var el = document.createElement('bootstrap');
-
-    for (var name in TransitionEndEvent) {
-      if (typeof el.style[name] !== 'undefined') {
-        return {
-          end: TransitionEndEvent[name]
-        };
-      }
-    }
-
-    return false;
-  }
-
-  function transitionEndEmulator(duration) {
-    var _this = this;
-
-    var called = false;
-    $(this).one(Util.TRANSITION_END, function () {
-      called = true;
-    });
-    setTimeout(function () {
-      if (!called) {
-        Util.triggerTransitionEnd(_this);
-      }
-    }, duration);
-    return this;
-  }
-
-  function setTransitionEndSupport() {
-    transition = transitionEndTest();
-    $.fn.emulateTransitionEnd = transitionEndEmulator;
-
-    if (Util.supportsTransitionEnd()) {
-      $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
-    }
-  }
-  /**
-   * --------------------------------------------------------------------------
-   * Public Util Api
-   * --------------------------------------------------------------------------
-   */
-
-
-  var Util = {
-    TRANSITION_END: 'bsTransitionEnd',
-    getUID: function getUID(prefix) {
-      do {
-        // eslint-disable-next-line no-bitwise
-        prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
-      } while (document.getElementById(prefix));
-
-      return prefix;
-    },
-    getSelectorFromElement: function getSelectorFromElement(element) {
-      var selector = element.getAttribute('data-target');
-
-      if (!selector || selector === '#') {
-        selector = element.getAttribute('href') || '';
-      }
-
-      try {
-        var $selector = $(document).find(selector);
-        return $selector.length > 0 ? selector : null;
-      } catch (error) {
-        return null;
-      }
-    },
-    reflow: function reflow(element) {
-      return element.offsetHeight;
-    },
-    triggerTransitionEnd: function triggerTransitionEnd(element) {
-      $(element).trigger(transition.end);
-    },
-    supportsTransitionEnd: function supportsTransitionEnd() {
-      return Boolean(transition);
-    },
-    isElement: function isElement(obj) {
-      return (obj[0] || obj).nodeType;
-    },
-    typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
-      for (var property in configTypes) {
-        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
-          var expectedTypes = configTypes[property];
-          var value = config[property];
-          var valueType = value && Util.isElement(value) ? 'element' : toType(value);
-
-          if (!new RegExp(expectedTypes).test(valueType)) {
-            throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
-          }
-        }
-      }
-    }
-  };
-  setTransitionEndSupport();
-  return Util;
-}($);
-
-function _defineProperties(target, props) {
-  for (var i = 0; i < props.length; i++) {
-    var descriptor = props[i];
-    descriptor.enumerable = descriptor.enumerable || false;
-    descriptor.configurable = true;
-    if ("value" in descriptor) descriptor.writable = true;
-    Object.defineProperty(target, descriptor.key, descriptor);
-  }
-}
-
-function _createClass(Constructor, protoProps, staticProps) {
-  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
-  if (staticProps) _defineProperties(Constructor, staticProps);
-  return Constructor;
-}
-
-var createClass = _createClass;
-
-function _inheritsLoose(subClass, superClass) {
-  subClass.prototype = Object.create(superClass.prototype);
-  subClass.prototype.constructor = subClass;
-  subClass.__proto__ = superClass;
-}
-
-var inheritsLoose = _inheritsLoose;
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): alert.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-var Alert = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-  var NAME = 'alert';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.alert';
-  var EVENT_KEY = "." + DATA_KEY;
-  var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var TRANSITION_DURATION = 150;
-  var Selector = {
-    DISMISS: '[data-dismiss="alert"]'
-  };
-  var Event = {
-    CLOSE: "close" + EVENT_KEY,
-    CLOSED: "closed" + EVENT_KEY,
-    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
-  };
-  var ClassName = {
-    ALERT: 'alert',
-    FADE: 'fade',
-    SHOW: 'show'
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Alert =
-  /*#__PURE__*/
-  function () {
-    function Alert(element) {
-      this._element = element;
-    } // getters
-
-
-    var _proto = Alert.prototype;
-
-    // public
-    _proto.close = function close(element) {
-      element = element || this._element;
-
-      var rootElement = this._getRootElement(element);
-
-      var customEvent = this._triggerCloseEvent(rootElement);
-
-      if (customEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      this._removeElement(rootElement);
-    };
-
-    _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
-      this._element = null;
-    }; // private
-
-
-    _proto._getRootElement = function _getRootElement(element) {
-      var selector = Util.getSelectorFromElement(element);
-      var parent = false;
-
-      if (selector) {
-        parent = $(selector)[0];
-      }
-
-      if (!parent) {
-        parent = $(element).closest("." + ClassName.ALERT)[0];
-      }
-
-      return parent;
-    };
-
-    _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
-      var closeEvent = $.Event(Event.CLOSE);
-      $(element).trigger(closeEvent);
-      return closeEvent;
-    };
-
-    _proto._removeElement = function _removeElement(element) {
-      var _this = this;
-
-      $(element).removeClass(ClassName.SHOW);
-
-      if (!Util.supportsTransitionEnd() || !$(element).hasClass(ClassName.FADE)) {
-        this._destroyElement(element);
-
-        return;
-      }
-
-      $(element).one(Util.TRANSITION_END, function (event) {
-        return _this._destroyElement(element, event);
-      }).emulateTransitionEnd(TRANSITION_DURATION);
-    };
-
-    _proto._destroyElement = function _destroyElement(element) {
-      $(element).detach().trigger(Event.CLOSED).remove();
-    }; // static
-
-
-    Alert._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var $element = $(this);
-        var data = $element.data(DATA_KEY);
-
-        if (!data) {
-          data = new Alert(this);
-          $element.data(DATA_KEY, data);
-        }
-
-        if (config === 'close') {
-          data[config](this);
-        }
-      });
-    };
-
-    Alert._handleDismiss = function _handleDismiss(alertInstance) {
-      return function (event) {
-        if (event) {
-          event.preventDefault();
-        }
-
-        alertInstance.close(this);
-      };
-    };
-
-    createClass(Alert, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }]);
-    return Alert;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-
-  $(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME] = Alert._jQueryInterface;
-  $.fn[NAME].Constructor = Alert;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Alert._jQueryInterface;
-  };
-
-  return Alert;
-}($);
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): button.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-var Button = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-  var NAME = 'button';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.button';
-  var EVENT_KEY = "." + DATA_KEY;
-  var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var ClassName = {
-    ACTIVE: 'active',
-    BUTTON: 'btn',
-    FOCUS: 'focus'
-  };
-  var Selector = {
-    DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
-    DATA_TOGGLE: '[data-toggle="buttons"]',
-    INPUT: 'input',
-    ACTIVE: '.active',
-    BUTTON: '.btn'
-  };
-  var Event = {
-    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
-    FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY)
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Button =
-  /*#__PURE__*/
-  function () {
-    function Button(element) {
-      this._element = element;
-    } // getters
-
-
-    var _proto = Button.prototype;
-
-    // public
-    _proto.toggle = function toggle() {
-      var triggerChangeEvent = true;
-      var addAriaPressed = true;
-      var rootElement = $(this._element).closest(Selector.DATA_TOGGLE)[0];
-
-      if (rootElement) {
-        var input = $(this._element).find(Selector.INPUT)[0];
-
-        if (input) {
-          if (input.type === 'radio') {
-            if (input.checked && $(this._element).hasClass(ClassName.ACTIVE)) {
-              triggerChangeEvent = false;
-            } else {
-              var activeElement = $(rootElement).find(Selector.ACTIVE)[0];
-
-              if (activeElement) {
-                $(activeElement).removeClass(ClassName.ACTIVE);
-              }
-            }
-          }
-
-          if (triggerChangeEvent) {
-            if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
-              return;
-            }
-
-            input.checked = !$(this._element).hasClass(ClassName.ACTIVE);
-            $(input).trigger('change');
-          }
-
-          input.focus();
-          addAriaPressed = false;
-        }
-      }
-
-      if (addAriaPressed) {
-        this._element.setAttribute('aria-pressed', !$(this._element).hasClass(ClassName.ACTIVE));
-      }
-
-      if (triggerChangeEvent) {
-        $(this._element).toggleClass(ClassName.ACTIVE);
-      }
-    };
-
-    _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
-      this._element = null;
-    }; // static
-
-
-    Button._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var data = $(this).data(DATA_KEY);
-
-        if (!data) {
-          data = new Button(this);
-          $(this).data(DATA_KEY, data);
-        }
-
-        if (config === 'toggle') {
-          data[config]();
-        }
-      });
-    };
-
-    createClass(Button, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }]);
-    return Button;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-
-  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
-    event.preventDefault();
-    var button = event.target;
-
-    if (!$(button).hasClass(ClassName.BUTTON)) {
-      button = $(button).closest(Selector.BUTTON);
-    }
-
-    Button._jQueryInterface.call($(button), 'toggle');
-  }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
-    var button = $(event.target).closest(Selector.BUTTON)[0];
-    $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
-  });
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME] = Button._jQueryInterface;
-  $.fn[NAME].Constructor = Button;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Button._jQueryInterface;
-  };
-
-  return Button;
-}($);
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): carousel.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-var Carousel = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-  var NAME = 'carousel';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.carousel';
-  var EVENT_KEY = "." + DATA_KEY;
-  var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var TRANSITION_DURATION = 600;
-  var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
-
-  var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
-
-  var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
-
-  var Default = {
-    interval: 5000,
-    keyboard: true,
-    slide: false,
-    pause: 'hover',
-    wrap: true
-  };
-  var DefaultType = {
-    interval: '(number|boolean)',
-    keyboard: 'boolean',
-    slide: '(boolean|string)',
-    pause: '(string|boolean)',
-    wrap: 'boolean'
-  };
-  var Direction = {
-    NEXT: 'next',
-    PREV: 'prev',
-    LEFT: 'left',
-    RIGHT: 'right'
-  };
-  var Event = {
-    SLIDE: "slide" + EVENT_KEY,
-    SLID: "slid" + EVENT_KEY,
-    KEYDOWN: "keydown" + EVENT_KEY,
-    MOUSEENTER: "mouseenter" + EVENT_KEY,
-    MOUSELEAVE: "mouseleave" + EVENT_KEY,
-    TOUCHEND: "touchend" + EVENT_KEY,
-    LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY,
-    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
-  };
-  var ClassName = {
-    CAROUSEL: 'carousel',
-    ACTIVE: 'active',
-    SLIDE: 'slide',
-    RIGHT: 'carousel-item-right',
-    LEFT: 'carousel-item-left',
-    NEXT: 'carousel-item-next',
-    PREV: 'carousel-item-prev',
-    ITEM: 'carousel-item'
-  };
-  var Selector = {
-    ACTIVE: '.active',
-    ACTIVE_ITEM: '.active.carousel-item',
-    ITEM: '.carousel-item',
-    NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
-    INDICATORS: '.carousel-indicators',
-    DATA_SLIDE: '[data-slide], [data-slide-to]',
-    DATA_RIDE: '[data-ride="carousel"]'
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Carousel =
-  /*#__PURE__*/
-  function () {
-    function Carousel(element, config) {
-      this._items = null;
-      this._interval = null;
-      this._activeElement = null;
-      this._isPaused = false;
-      this._isSliding = false;
-      this.touchTimeout = null;
-      this._config = this._getConfig(config);
-      this._element = $(element)[0];
-      this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0];
-
-      this._addEventListeners();
-    } // getters
-
-
-    var _proto = Carousel.prototype;
-
-    // public
-    _proto.next = function next() {
-      if (!this._isSliding) {
-        this._slide(Direction.NEXT);
-      }
-    };
-
-    _proto.nextWhenVisible = function nextWhenVisible() {
-      // Don't call next when the page isn't visible
-      // or the carousel or its parent isn't visible
-      if (!document.hidden && $(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden') {
-        this.next();
-      }
-    };
-
-    _proto.prev = function prev() {
-      if (!this._isSliding) {
-        this._slide(Direction.PREV);
-      }
-    };
-
-    _proto.pause = function pause(event) {
-      if (!event) {
-        this._isPaused = true;
-      }
-
-      if ($(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) {
-        Util.triggerTransitionEnd(this._element);
-        this.cycle(true);
-      }
-
-      clearInterval(this._interval);
-      this._interval = null;
-    };
-
-    _proto.cycle = function cycle(event) {
-      if (!event) {
-        this._isPaused = false;
-      }
-
-      if (this._interval) {
-        clearInterval(this._interval);
-        this._interval = null;
-      }
-
-      if (this._config.interval && !this._isPaused) {
-        this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
-      }
-    };
-
-    _proto.to = function to(index) {
-      var _this = this;
-
-      this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];
-
-      var activeIndex = this._getItemIndex(this._activeElement);
-
-      if (index > this._items.length - 1 || index < 0) {
-        return;
-      }
-
-      if (this._isSliding) {
-        $(this._element).one(Event.SLID, function () {
-          return _this.to(index);
-        });
-        return;
-      }
-
-      if (activeIndex === index) {
-        this.pause();
-        this.cycle();
-        return;
-      }
-
-      var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;
-
-      this._slide(direction, this._items[index]);
-    };
-
-    _proto.dispose = function dispose() {
-      $(this._element).off(EVENT_KEY);
-      $.removeData(this._element, DATA_KEY);
-      this._items = null;
-      this._config = null;
-      this._element = null;
-      this._interval = null;
-      this._isPaused = null;
-      this._isSliding = null;
-      this._activeElement = null;
-      this._indicatorsElement = null;
-    }; // private
-
-
-    _proto._getConfig = function _getConfig(config) {
-      config = $.extend({}, Default, config);
-      Util.typeCheckConfig(NAME, config, DefaultType);
-      return config;
-    };
-
-    _proto._addEventListeners = function _addEventListeners() {
-      var _this2 = this;
-
-      if (this._config.keyboard) {
-        $(this._element).on(Event.KEYDOWN, function (event) {
-          return _this2._keydown(event);
-        });
-      }
-
-      if (this._config.pause === 'hover') {
-        $(this._element).on(Event.MOUSEENTER, function (event) {
-          return _this2.pause(event);
-        }).on(Event.MOUSELEAVE, function (event) {
-          return _this2.cycle(event);
-        });
-
-        if ('ontouchstart' in document.documentElement) {
-          // if it's a touch-enabled device, mouseenter/leave are fired as
-          // part of the mouse compatibility events on first tap - the carousel
-          // would stop cycling until user tapped out of it;
-          // here, we listen for touchend, explicitly pause the carousel
-          // (as if it's the second time we tap on it, mouseenter compat event
-          // is NOT fired) and after a timeout (to allow for mouse compatibility
-          // events to fire) we explicitly restart cycling
-          $(this._element).on(Event.TOUCHEND, function () {
-            _this2.pause();
-
-            if (_this2.touchTimeout) {
-              clearTimeout(_this2.touchTimeout);
-            }
-
-            _this2.touchTimeout = setTimeout(function (event) {
-              return _this2.cycle(event);
-            }, TOUCHEVENT_COMPAT_WAIT + _this2._config.interval);
-          });
-        }
-      }
-    };
-
-    _proto._keydown = function _keydown(event) {
-      if (/input|textarea/i.test(event.target.tagName)) {
-        return;
-      }
-
-      switch (event.which) {
-        case ARROW_LEFT_KEYCODE:
-          event.preventDefault();
-          this.prev();
-          break;
-
-        case ARROW_RIGHT_KEYCODE:
-          event.preventDefault();
-          this.next();
-          break;
-
-        default:
-          return;
-      }
-    };
-
-    _proto._getItemIndex = function _getItemIndex(element) {
-      this._items = $.makeArray($(element).parent().find(Selector.ITEM));
-      return this._items.indexOf(element);
-    };
-
-    _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
-      var isNextDirection = direction === Direction.NEXT;
-      var isPrevDirection = direction === Direction.PREV;
-
-      var activeIndex = this._getItemIndex(activeElement);
-
-      var lastItemIndex = this._items.length - 1;
-      var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
-
-      if (isGoingToWrap && !this._config.wrap) {
-        return activeElement;
-      }
-
-      var delta = direction === Direction.PREV ? -1 : 1;
-      var itemIndex = (activeIndex + delta) % this._items.length;
-      return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
-    };
-
-    _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
-      var targetIndex = this._getItemIndex(relatedTarget);
-
-      var fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0]);
-
-      var slideEvent = $.Event(Event.SLIDE, {
-        relatedTarget: relatedTarget,
-        direction: eventDirectionName,
-        from: fromIndex,
-        to: targetIndex
-      });
-      $(this._element).trigger(slideEvent);
-      return slideEvent;
-    };
-
-    _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
-      if (this._indicatorsElement) {
-        $(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
-
-        var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
-
-        if (nextIndicator) {
-          $(nextIndicator).addClass(ClassName.ACTIVE);
-        }
-      }
-    };
-
-    _proto._slide = function _slide(direction, element) {
-      var _this3 = this;
-
-      var activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];
-
-      var activeElementIndex = this._getItemIndex(activeElement);
-
-      var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
-
-      var nextElementIndex = this._getItemIndex(nextElement);
-
-      var isCycling = Boolean(this._interval);
-      var directionalClassName;
-      var orderClassName;
-      var eventDirectionName;
-
-      if (direction === Direction.NEXT) {
-        directionalClassName = ClassName.LEFT;
-        orderClassName = ClassName.NEXT;
-        eventDirectionName = Direction.LEFT;
-      } else {
-        directionalClassName = ClassName.RIGHT;
-        orderClassName = ClassName.PREV;
-        eventDirectionName = Direction.RIGHT;
-      }
-
-      if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {
-        this._isSliding = false;
-        return;
-      }
-
-      var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
-
-      if (slideEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      if (!activeElement || !nextElement) {
-        // some weirdness is happening, so we bail
-        return;
-      }
-
-      this._isSliding = true;
-
-      if (isCycling) {
-        this.pause();
-      }
-
-      this._setActiveIndicatorElement(nextElement);
-
-      var slidEvent = $.Event(Event.SLID, {
-        relatedTarget: nextElement,
-        direction: eventDirectionName,
-        from: activeElementIndex,
-        to: nextElementIndex
-      });
-
-      if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.SLIDE)) {
-        $(nextElement).addClass(orderClassName);
-        Util.reflow(nextElement);
-        $(activeElement).addClass(directionalClassName);
-        $(nextElement).addClass(directionalClassName);
-        $(activeElement).one(Util.TRANSITION_END, function () {
-          $(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName.ACTIVE);
-          $(activeElement).removeClass(ClassName.ACTIVE + " " + orderClassName + " " + directionalClassName);
-          _this3._isSliding = false;
-          setTimeout(function () {
-            return $(_this3._element).trigger(slidEvent);
-          }, 0);
-        }).emulateTransitionEnd(TRANSITION_DURATION);
-      } else {
-        $(activeElement).removeClass(ClassName.ACTIVE);
-        $(nextElement).addClass(ClassName.ACTIVE);
-        this._isSliding = false;
-        $(this._element).trigger(slidEvent);
-      }
-
-      if (isCycling) {
-        this.cycle();
-      }
-    }; // static
-
-
-    Carousel._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var data = $(this).data(DATA_KEY);
-
-        var _config = $.extend({}, Default, $(this).data());
-
-        if (typeof config === 'object') {
-          $.extend(_config, config);
-        }
-
-        var action = typeof config === 'string' ? config : _config.slide;
-
-        if (!data) {
-          data = new Carousel(this, _config);
-          $(this).data(DATA_KEY, data);
-        }
-
-        if (typeof config === 'number') {
-          data.to(config);
-        } else if (typeof action === 'string') {
-          if (typeof data[action] === 'undefined') {
-            throw new Error("No method named \"" + action + "\"");
-          }
-
-          data[action]();
-        } else if (_config.interval) {
-          data.pause();
-          data.cycle();
-        }
-      });
-    };
-
-    Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
-      var selector = Util.getSelectorFromElement(this);
-
-      if (!selector) {
-        return;
-      }
-
-      var target = $(selector)[0];
-
-      if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {
-        return;
-      }
-
-      var config = $.extend({}, $(target).data(), $(this).data());
-      var slideIndex = this.getAttribute('data-slide-to');
-
-      if (slideIndex) {
-        config.interval = false;
-      }
-
-      Carousel._jQueryInterface.call($(target), config);
-
-      if (slideIndex) {
-        $(target).data(DATA_KEY).to(slideIndex);
-      }
-
-      event.preventDefault();
-    };
-
-    createClass(Carousel, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }, {
-      key: "Default",
-      get: function get() {
-        return Default;
-      }
-    }]);
-    return Carousel;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-
-  $(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
-  $(window).on(Event.LOAD_DATA_API, function () {
-    $(Selector.DATA_RIDE).each(function () {
-      var $carousel = $(this);
-
-      Carousel._jQueryInterface.call($carousel, $carousel.data());
-    });
-  });
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME] = Carousel._jQueryInterface;
-  $.fn[NAME].Constructor = Carousel;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Carousel._jQueryInterface;
-  };
-
-  return Carousel;
-}($);
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): collapse.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-var Collapse = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-  var NAME = 'collapse';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.collapse';
-  var EVENT_KEY = "." + DATA_KEY;
-  var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var TRANSITION_DURATION = 600;
-  var Default = {
-    toggle: true,
-    parent: ''
-  };
-  var DefaultType = {
-    toggle: 'boolean',
-    parent: '(string|element)'
-  };
-  var Event = {
-    SHOW: "show" + EVENT_KEY,
-    SHOWN: "shown" + EVENT_KEY,
-    HIDE: "hide" + EVENT_KEY,
-    HIDDEN: "hidden" + EVENT_KEY,
-    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
-  };
-  var ClassName = {
-    SHOW: 'show',
-    COLLAPSE: 'collapse',
-    COLLAPSING: 'collapsing',
-    COLLAPSED: 'collapsed'
-  };
-  var Dimension = {
-    WIDTH: 'width',
-    HEIGHT: 'height'
-  };
-  var Selector = {
-    ACTIVES: '.show, .collapsing',
-    DATA_TOGGLE: '[data-toggle="collapse"]'
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Collapse =
-  /*#__PURE__*/
-  function () {
-    function Collapse(element, config) {
-      this._isTransitioning = false;
-      this._element = element;
-      this._config = this._getConfig(config);
-      this._triggerArray = $.makeArray($("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
-      var tabToggles = $(Selector.DATA_TOGGLE);
-
-      for (var i = 0; i < tabToggles.length; i++) {
-        var elem = tabToggles[i];
-        var selector = Util.getSelectorFromElement(elem);
-
-        if (selector !== null && $(selector).filter(element).length > 0) {
-          this._triggerArray.push(elem);
-        }
-      }
-
-      this._parent = this._config.parent ? this._getParent() : null;
-
-      if (!this._config.parent) {
-        this._addAriaAndCollapsedClass(this._element, this._triggerArray);
-      }
-
-      if (this._config.toggle) {
-        this.toggle();
-      }
-    } // getters
-
-
-    var _proto = Collapse.prototype;
-
-    // public
-    _proto.toggle = function toggle() {
-      if ($(this._element).hasClass(ClassName.SHOW)) {
-        this.hide();
-      } else {
-        this.show();
-      }
-    };
-
-    _proto.show = function show() {
-      var _this = this;
-
-      if (this._isTransitioning || $(this._element).hasClass(ClassName.SHOW)) {
-        return;
-      }
-
-      var actives;
-      var activesData;
-
-      if (this._parent) {
-        actives = $.makeArray($(this._parent).children().children(Selector.ACTIVES));
-
-        if (!actives.length) {
-          actives = null;
-        }
-      }
-
-      if (actives) {
-        activesData = $(actives).data(DATA_KEY);
-
-        if (activesData && activesData._isTransitioning) {
-          return;
-        }
-      }
-
-      var startEvent = $.Event(Event.SHOW);
-      $(this._element).trigger(startEvent);
-
-      if (startEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      if (actives) {
-        Collapse._jQueryInterface.call($(actives), 'hide');
-
-        if (!activesData) {
-          $(actives).data(DATA_KEY, null);
-        }
-      }
-
-      var dimension = this._getDimension();
-
-      $(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
-      this._element.style[dimension] = 0;
-
-      if (this._triggerArray.length) {
-        $(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
-      }
-
-      this.setTransitioning(true);
-
-      var complete = function complete() {
-        $(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
-        _this._element.style[dimension] = '';
-
-        _this.setTransitioning(false);
-
-        $(_this._element).trigger(Event.SHOWN);
-      };
-
-      if (!Util.supportsTransitionEnd()) {
-        complete();
-        return;
-      }
-
-      var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
-      var scrollSize = "scroll" + capitalizedDimension;
-      $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
-      this._element.style[dimension] = this._element[scrollSize] + "px";
-    };
-
-    _proto.hide = function hide() {
-      var _this2 = this;
-
-      if (this._isTransitioning || !$(this._element).hasClass(ClassName.SHOW)) {
-        return;
-      }
-
-      var startEvent = $.Event(Event.HIDE);
-      $(this._element).trigger(startEvent);
-
-      if (startEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      var dimension = this._getDimension();
-
-      this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
-      Util.reflow(this._element);
-      $(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
-
-      if (this._triggerArray.length) {
-        for (var i = 0; i < this._triggerArray.length; i++) {
-          var trigger = this._triggerArray[i];
-          var selector = Util.getSelectorFromElement(trigger);
-
-          if (selector !== null) {
-            var $elem = $(selector);
-
-            if (!$elem.hasClass(ClassName.SHOW)) {
-              $(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
-            }
-          }
-        }
-      }
-
-      this.setTransitioning(true);
-
-      var complete = function complete() {
-        _this2.setTransitioning(false);
-
-        $(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
-      };
-
-      this._element.style[dimension] = '';
-
-      if (!Util.supportsTransitionEnd()) {
-        complete();
-        return;
-      }
-
-      $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
-    };
-
-    _proto.setTransitioning = function setTransitioning(isTransitioning) {
-      this._isTransitioning = isTransitioning;
-    };
-
-    _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
-      this._config = null;
-      this._parent = null;
-      this._element = null;
-      this._triggerArray = null;
-      this._isTransitioning = null;
-    }; // private
-
-
-    _proto._getConfig = function _getConfig(config) {
-      config = $.extend({}, Default, config);
-      config.toggle = Boolean(config.toggle); // coerce string values
-
-      Util.typeCheckConfig(NAME, config, DefaultType);
-      return config;
-    };
-
-    _proto._getDimension = function _getDimension() {
-      var hasWidth = $(this._element).hasClass(Dimension.WIDTH);
-      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
-    };
-
-    _proto._getParent = function _getParent() {
-      var _this3 = this;
-
-      var parent = null;
-
-      if (Util.isElement(this._config.parent)) {
-        parent = this._config.parent; // it's a jQuery object
-
-        if (typeof this._config.parent.jquery !== 'undefined') {
-          parent = this._config.parent[0];
-        }
-      } else {
-        parent = $(this._config.parent)[0];
-      }
-
-      var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
-      $(parent).find(selector).each(function (i, element) {
-        _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
-      });
-      return parent;
-    };
-
-    _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
-      if (element) {
-        var isOpen = $(element).hasClass(ClassName.SHOW);
-
-        if (triggerArray.length) {
-          $(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
-        }
-      }
-    }; // static
-
-
-    Collapse._getTargetFromElement = function _getTargetFromElement(element) {
-      var selector = Util.getSelectorFromElement(element);
-      return selector ? $(selector)[0] : null;
-    };
-
-    Collapse._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var $this = $(this);
-        var data = $this.data(DATA_KEY);
-
-        var _config = $.extend({}, Default, $this.data(), typeof config === 'object' && config);
-
-        if (!data && _config.toggle && /show|hide/.test(config)) {
-          _config.toggle = false;
-        }
-
-        if (!data) {
-          data = new Collapse(this, _config);
-          $this.data(DATA_KEY, data);
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error("No method named \"" + config + "\"");
-          }
-
-          data[config]();
-        }
-      });
-    };
-
-    createClass(Collapse, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }, {
-      key: "Default",
-      get: function get() {
-        return Default;
-      }
-    }]);
-    return Collapse;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-
-  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
-    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
-    if (event.currentTarget.tagName === 'A') {
-      event.preventDefault();
-    }
-
-    var $trigger = $(this);
-    var selector = Util.getSelectorFromElement(this);
-    $(selector).each(function () {
-      var $target = $(this);
-      var data = $target.data(DATA_KEY);
-      var config = data ? 'toggle' : $trigger.data();
-
-      Collapse._jQueryInterface.call($target, config);
-    });
-  });
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME] = Collapse._jQueryInterface;
-  $.fn[NAME].Constructor = Collapse;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Collapse._jQueryInterface;
-  };
-
-  return Collapse;
-}($);
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): dropdown.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-var Dropdown = function () {
-  /**
-   * Check for Popper dependency
-   * Popper - https://popper.js.org
-   */
-  if (typeof Popper === 'undefined') {
-    throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)');
-  }
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-
-
-  var NAME = 'dropdown';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.dropdown';
-  var EVENT_KEY = "." + DATA_KEY;
-  var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
-
-  var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
-
-  var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
-
-  var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
-
-  var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
-
-  var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
-
-  var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
-  var Event = {
-    HIDE: "hide" + EVENT_KEY,
-    HIDDEN: "hidden" + EVENT_KEY,
-    SHOW: "show" + EVENT_KEY,
-    SHOWN: "shown" + EVENT_KEY,
-    CLICK: "click" + EVENT_KEY,
-    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
-    KEYDOWN_DATA_API: "keydown" + EVENT_KEY + DATA_API_KEY,
-    KEYUP_DATA_API: "keyup" + EVENT_KEY + DATA_API_KEY
-  };
-  var ClassName = {
-    DISABLED: 'disabled',
-    SHOW: 'show',
-    DROPUP: 'dropup',
-    MENURIGHT: 'dropdown-menu-right',
-    MENULEFT: 'dropdown-menu-left'
-  };
-  var Selector = {
-    DATA_TOGGLE: '[data-toggle="dropdown"]',
-    FORM_CHILD: '.dropdown form',
-    MENU: '.dropdown-menu',
-    NAVBAR_NAV: '.navbar-nav',
-    VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'
-  };
-  var AttachmentMap = {
-    TOP: 'top-start',
-    TOPEND: 'top-end',
-    BOTTOM: 'bottom-start',
-    BOTTOMEND: 'bottom-end'
-  };
-  var Default = {
-    offset: 0,
-    flip: true
-  };
-  var DefaultType = {
-    offset: '(number|string|function)',
-    flip: 'boolean'
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Dropdown =
-  /*#__PURE__*/
-  function () {
-    function Dropdown(element, config) {
-      this._element = element;
-      this._popper = null;
-      this._config = this._getConfig(config);
-      this._menu = this._getMenuElement();
-      this._inNavbar = this._detectNavbar();
-
-      this._addEventListeners();
-    } // getters
-
-
-    var _proto = Dropdown.prototype;
-
-    // public
-    _proto.toggle = function toggle() {
-      if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {
-        return;
-      }
-
-      var parent = Dropdown._getParentFromElement(this._element);
-
-      var isActive = $(this._menu).hasClass(ClassName.SHOW);
-
-      Dropdown._clearMenus();
-
-      if (isActive) {
-        return;
-      }
-
-      var relatedTarget = {
-        relatedTarget: this._element
-      };
-      var showEvent = $.Event(Event.SHOW, relatedTarget);
-      $(parent).trigger(showEvent);
-
-      if (showEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      var element = this._element; // for dropup with alignment we use the parent as popper container
-
-      if ($(parent).hasClass(ClassName.DROPUP)) {
-        if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {
-          element = parent;
-        }
-      }
-
-      this._popper = new Popper(element, this._menu, this._getPopperConfig()); // if this is a touch-enabled device we add extra
-      // empty mouseover listeners to the body's immediate children;
-      // only needed because of broken event delegation on iOS
-      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
-
-      if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) {
-        $('body').children().on('mouseover', null, $.noop);
-      }
-
-      this._element.focus();
-
-      this._element.setAttribute('aria-expanded', true);
-
-      $(this._menu).toggleClass(ClassName.SHOW);
-      $(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.SHOWN, relatedTarget));
-    };
-
-    _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
-      $(this._element).off(EVENT_KEY);
-      this._element = null;
-      this._menu = null;
-
-      if (this._popper !== null) {
-        this._popper.destroy();
-      }
-
-      this._popper = null;
-    };
-
-    _proto.update = function update() {
-      this._inNavbar = this._detectNavbar();
-
-      if (this._popper !== null) {
-        this._popper.scheduleUpdate();
-      }
-    }; // private
-
-
-    _proto._addEventListeners = function _addEventListeners() {
-      var _this = this;
-
-      $(this._element).on(Event.CLICK, function (event) {
-        event.preventDefault();
-        event.stopPropagation();
-
-        _this.toggle();
-      });
-    };
-
-    _proto._getConfig = function _getConfig(config) {
-      config = $.extend({}, this.constructor.Default, $(this._element).data(), config);
-      Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
-      return config;
-    };
-
-    _proto._getMenuElement = function _getMenuElement() {
-      if (!this._menu) {
-        var parent = Dropdown._getParentFromElement(this._element);
-
-        this._menu = $(parent).find(Selector.MENU)[0];
-      }
-
-      return this._menu;
-    };
-
-    _proto._getPlacement = function _getPlacement() {
-      var $parentDropdown = $(this._element).parent();
-      var placement = AttachmentMap.BOTTOM; // Handle dropup
-
-      if ($parentDropdown.hasClass(ClassName.DROPUP)) {
-        placement = AttachmentMap.TOP;
-
-        if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
-          placement = AttachmentMap.TOPEND;
-        }
-      } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
-        placement = AttachmentMap.BOTTOMEND;
-      }
-
-      return placement;
-    };
-
-    _proto._detectNavbar = function _detectNavbar() {
-      return $(this._element).closest('.navbar').length > 0;
-    };
-
-    _proto._getPopperConfig = function _getPopperConfig() {
-      var _this2 = this;
-
-      var offsetConf = {};
-
-      if (typeof this._config.offset === 'function') {
-        offsetConf.fn = function (data) {
-          data.offsets = $.extend({}, data.offsets, _this2._config.offset(data.offsets) || {});
-          return data;
-        };
-      } else {
-        offsetConf.offset = this._config.offset;
-      }
-
-      var popperConfig = {
-        placement: this._getPlacement(),
-        modifiers: {
-          offset: offsetConf,
-          flip: {
-            enabled: this._config.flip
-          }
-        } // Disable Popper.js for Dropdown in Navbar
-
-      };
-
-      if (this._inNavbar) {
-        popperConfig.modifiers.applyStyle = {
-          enabled: !this._inNavbar
-        };
-      }
-
-      return popperConfig;
-    }; // static
-
-
-    Dropdown._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var data = $(this).data(DATA_KEY);
-
-        var _config = typeof config === 'object' ? config : null;
-
-        if (!data) {
-          data = new Dropdown(this, _config);
-          $(this).data(DATA_KEY, data);
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error("No method named \"" + config + "\"");
-          }
-
-          data[config]();
-        }
-      });
-    };
-
-    Dropdown._clearMenus = function _clearMenus(event) {
-      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
-        return;
-      }
-
-      var toggles = $.makeArray($(Selector.DATA_TOGGLE));
-
-      for (var i = 0; i < toggles.length; i++) {
-        var parent = Dropdown._getParentFromElement(toggles[i]);
-
-        var context = $(toggles[i]).data(DATA_KEY);
-        var relatedTarget = {
-          relatedTarget: toggles[i]
-        };
-
-        if (!context) {
-          continue;
-        }
-
-        var dropdownMenu = context._menu;
-
-        if (!$(parent).hasClass(ClassName.SHOW)) {
-          continue;
-        }
-
-        if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $.contains(parent, event.target)) {
-          continue;
-        }
-
-        var hideEvent = $.Event(Event.HIDE, relatedTarget);
-        $(parent).trigger(hideEvent);
-
-        if (hideEvent.isDefaultPrevented()) {
-          continue;
-        } // if this is a touch-enabled device we remove the extra
-        // empty mouseover listeners we added for iOS support
-
-
-        if ('ontouchstart' in document.documentElement) {
-          $('body').children().off('mouseover', null, $.noop);
-        }
-
-        toggles[i].setAttribute('aria-expanded', 'false');
-        $(dropdownMenu).removeClass(ClassName.SHOW);
-        $(parent).removeClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget));
-      }
-    };
-
-    Dropdown._getParentFromElement = function _getParentFromElement(element) {
-      var parent;
-      var selector = Util.getSelectorFromElement(element);
-
-      if (selector) {
-        parent = $(selector)[0];
-      }
-
-      return parent || element.parentNode;
-    };
-
-    Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
-      if (!REGEXP_KEYDOWN.test(event.which) || /button/i.test(event.target.tagName) && event.which === SPACE_KEYCODE || /input|textarea/i.test(event.target.tagName)) {
-        return;
-      }
-
-      event.preventDefault();
-      event.stopPropagation();
-
-      if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
-        return;
-      }
-
-      var parent = Dropdown._getParentFromElement(this);
-
-      var isActive = $(parent).hasClass(ClassName.SHOW);
-
-      if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
-        if (event.which === ESCAPE_KEYCODE) {
-          var toggle = $(parent).find(Selector.DATA_TOGGLE)[0];
-          $(toggle).trigger('focus');
-        }
-
-        $(this).trigger('click');
-        return;
-      }
-
-      var items = $(parent).find(Selector.VISIBLE_ITEMS).get();
-
-      if (!items.length) {
-        return;
-      }
-
-      var index = items.indexOf(event.target);
-
-      if (event.which === ARROW_UP_KEYCODE && index > 0) {
-        // up
-        index--;
-      }
-
-      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
-        // down
-        index++;
-      }
-
-      if (index < 0) {
-        index = 0;
-      }
-
-      items[index].focus();
-    };
-
-    createClass(Dropdown, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }, {
-      key: "Default",
-      get: function get() {
-        return Default;
-      }
-    }, {
-      key: "DefaultType",
-      get: function get() {
-        return DefaultType;
-      }
-    }]);
-    return Dropdown;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-
-  $(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + " " + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
-    event.preventDefault();
-    event.stopPropagation();
-
-    Dropdown._jQueryInterface.call($(this), 'toggle');
-  }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
-    e.stopPropagation();
-  });
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME] = Dropdown._jQueryInterface;
-  $.fn[NAME].Constructor = Dropdown;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Dropdown._jQueryInterface;
-  };
-
-  return Dropdown;
-}($, Popper);
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): modal.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-var Modal = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-  var NAME = 'modal';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.modal';
-  var EVENT_KEY = "." + DATA_KEY;
-  var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var TRANSITION_DURATION = 300;
-  var BACKDROP_TRANSITION_DURATION = 150;
-  var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
-
-  var Default = {
-    backdrop: true,
-    keyboard: true,
-    focus: true,
-    show: true
-  };
-  var DefaultType = {
-    backdrop: '(boolean|string)',
-    keyboard: 'boolean',
-    focus: 'boolean',
-    show: 'boolean'
-  };
-  var Event = {
-    HIDE: "hide" + EVENT_KEY,
-    HIDDEN: "hidden" + EVENT_KEY,
-    SHOW: "show" + EVENT_KEY,
-    SHOWN: "shown" + EVENT_KEY,
-    FOCUSIN: "focusin" + EVENT_KEY,
-    RESIZE: "resize" + EVENT_KEY,
-    CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
-    KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY,
-    MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY,
-    MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY,
-    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
-  };
-  var ClassName = {
-    SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
-    BACKDROP: 'modal-backdrop',
-    OPEN: 'modal-open',
-    FADE: 'fade',
-    SHOW: 'show'
-  };
-  var Selector = {
-    DIALOG: '.modal-dialog',
-    DATA_TOGGLE: '[data-toggle="modal"]',
-    DATA_DISMISS: '[data-dismiss="modal"]',
-    FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
-    STICKY_CONTENT: '.sticky-top',
-    NAVBAR_TOGGLER: '.navbar-toggler'
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Modal =
-  /*#__PURE__*/
-  function () {
-    function Modal(element, config) {
-      this._config = this._getConfig(config);
-      this._element = element;
-      this._dialog = $(element).find(Selector.DIALOG)[0];
-      this._backdrop = null;
-      this._isShown = false;
-      this._isBodyOverflowing = false;
-      this._ignoreBackdropClick = false;
-      this._originalBodyPadding = 0;
-      this._scrollbarWidth = 0;
-    } // getters
-
-
-    var _proto = Modal.prototype;
-
-    // public
-    _proto.toggle = function toggle(relatedTarget) {
-      return this._isShown ? this.hide() : this.show(relatedTarget);
-    };
-
-    _proto.show = function show(relatedTarget) {
-      var _this = this;
-
-      if (this._isTransitioning || this._isShown) {
-        return;
-      }
-
-      if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {
-        this._isTransitioning = true;
-      }
-
-      var showEvent = $.Event(Event.SHOW, {
-        relatedTarget: relatedTarget
-      });
-      $(this._element).trigger(showEvent);
-
-      if (this._isShown || showEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      this._isShown = true;
-
-      this._checkScrollbar();
-
-      this._setScrollbar();
-
-      this._adjustDialog();
-
-      $(document.body).addClass(ClassName.OPEN);
-
-      this._setEscapeEvent();
-
-      this._setResizeEvent();
-
-      $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
-        return _this.hide(event);
-      });
-      $(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
-        $(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
-          if ($(event.target).is(_this._element)) {
-            _this._ignoreBackdropClick = true;
-          }
-        });
-      });
-
-      this._showBackdrop(function () {
-        return _this._showElement(relatedTarget);
-      });
-    };
-
-    _proto.hide = function hide(event) {
-      var _this2 = this;
-
-      if (event) {
-        event.preventDefault();
-      }
-
-      if (this._isTransitioning || !this._isShown) {
-        return;
-      }
-
-      var hideEvent = $.Event(Event.HIDE);
-      $(this._element).trigger(hideEvent);
-
-      if (!this._isShown || hideEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      this._isShown = false;
-      var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);
-
-      if (transition) {
-        this._isTransitioning = true;
-      }
-
-      this._setEscapeEvent();
-
-      this._setResizeEvent();
-
-      $(document).off(Event.FOCUSIN);
-      $(this._element).removeClass(ClassName.SHOW);
-      $(this._element).off(Event.CLICK_DISMISS);
-      $(this._dialog).off(Event.MOUSEDOWN_DISMISS);
-
-      if (transition) {
-        $(this._element).one(Util.TRANSITION_END, function (event) {
-          return _this2._hideModal(event);
-        }).emulateTransitionEnd(TRANSITION_DURATION);
-      } else {
-        this._hideModal();
-      }
-    };
-
-    _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
-      $(window, document, this._element, this._backdrop).off(EVENT_KEY);
-      this._config = null;
-      this._element = null;
-      this._dialog = null;
-      this._backdrop = null;
-      this._isShown = null;
-      this._isBodyOverflowing = null;
-      this._ignoreBackdropClick = null;
-      this._scrollbarWidth = null;
-    };
-
-    _proto.handleUpdate = function handleUpdate() {
-      this._adjustDialog();
-    }; // private
-
-
-    _proto._getConfig = function _getConfig(config) {
-      config = $.extend({}, Default, config);
-      Util.typeCheckConfig(NAME, config, DefaultType);
-      return config;
-    };
-
-    _proto._showElement = function _showElement(relatedTarget) {
-      var _this3 = this;
-
-      var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);
-
-      if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
-        // don't move modals dom position
-        document.body.appendChild(this._element);
-      }
-
-      this._element.style.display = 'block';
-
-      this._element.removeAttribute('aria-hidden');
-
-      this._element.scrollTop = 0;
-
-      if (transition) {
-        Util.reflow(this._element);
-      }
-
-      $(this._element).addClass(ClassName.SHOW);
-
-      if (this._config.focus) {
-        this._enforceFocus();
-      }
-
-      var shownEvent = $.Event(Event.SHOWN, {
-        relatedTarget: relatedTarget
-      });
-
-      var transitionComplete = function transitionComplete() {
-        if (_this3._config.focus) {
-          _this3._element.focus();
-        }
-
-        _this3._isTransitioning = false;
-        $(_this3._element).trigger(shownEvent);
-      };
-
-      if (transition) {
-        $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION);
-      } else {
-        transitionComplete();
-      }
-    };
-
-    _proto._enforceFocus = function _enforceFocus() {
-      var _this4 = this;
-
-      $(document).off(Event.FOCUSIN) // guard against infinite focus loop
-      .on(Event.FOCUSIN, function (event) {
-        if (document !== event.target && _this4._element !== event.target && !$(_this4._element).has(event.target).length) {
-          _this4._element.focus();
-        }
-      });
-    };
-
-    _proto._setEscapeEvent = function _setEscapeEvent() {
-      var _this5 = this;
-
-      if (this._isShown && this._config.keyboard) {
-        $(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
-          if (event.which === ESCAPE_KEYCODE) {
-            event.preventDefault();
-
-            _this5.hide();
-          }
-        });
-      } else if (!this._isShown) {
-        $(this._element).off(Event.KEYDOWN_DISMISS);
-      }
-    };
-
-    _proto._setResizeEvent = function _setResizeEvent() {
-      var _this6 = this;
-
-      if (this._isShown) {
-        $(window).on(Event.RESIZE, function (event) {
-          return _this6.handleUpdate(event);
-        });
-      } else {
-        $(window).off(Event.RESIZE);
-      }
-    };
-
-    _proto._hideModal = function _hideModal() {
-      var _this7 = this;
-
-      this._element.style.display = 'none';
-
-      this._element.setAttribute('aria-hidden', true);
-
-      this._isTransitioning = false;
-
-      this._showBackdrop(function () {
-        $(document.body).removeClass(ClassName.OPEN);
-
-        _this7._resetAdjustments();
-
-        _this7._resetScrollbar();
-
-        $(_this7._element).trigger(Event.HIDDEN);
-      });
-    };
-
-    _proto._removeBackdrop = function _removeBackdrop() {
-      if (this._backdrop) {
-        $(this._backdrop).remove();
-        this._backdrop = null;
-      }
-    };
-
-    _proto._showBackdrop = function _showBackdrop(callback) {
-      var _this8 = this;
-
-      var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
-
-      if (this._isShown && this._config.backdrop) {
-        var doAnimate = Util.supportsTransitionEnd() && animate;
-        this._backdrop = document.createElement('div');
-        this._backdrop.className = ClassName.BACKDROP;
-
-        if (animate) {
-          $(this._backdrop).addClass(animate);
-        }
-
-        $(this._backdrop).appendTo(document.body);
-        $(this._element).on(Event.CLICK_DISMISS, function (event) {
-          if (_this8._ignoreBackdropClick) {
-            _this8._ignoreBackdropClick = false;
-            return;
-          }
-
-          if (event.target !== event.currentTarget) {
-            return;
-          }
-
-          if (_this8._config.backdrop === 'static') {
-            _this8._element.focus();
-          } else {
-            _this8.hide();
-          }
-        });
-
-        if (doAnimate) {
-          Util.reflow(this._backdrop);
-        }
-
-        $(this._backdrop).addClass(ClassName.SHOW);
-
-        if (!callback) {
-          return;
-        }
-
-        if (!doAnimate) {
-          callback();
-          return;
-        }
-
-        $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
-      } else if (!this._isShown && this._backdrop) {
-        $(this._backdrop).removeClass(ClassName.SHOW);
-
-        var callbackRemove = function callbackRemove() {
-          _this8._removeBackdrop();
-
-          if (callback) {
-            callback();
-          }
-        };
-
-        if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {
-          $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
-        } else {
-          callbackRemove();
-        }
-      } else if (callback) {
-        callback();
-      }
-    }; // ----------------------------------------------------------------------
-    // the following methods are used to handle overflowing modals
-    // todo (fat): these should probably be refactored out of modal.js
-    // ----------------------------------------------------------------------
-
-
-    _proto._adjustDialog = function _adjustDialog() {
-      var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
-
-      if (!this._isBodyOverflowing && isModalOverflowing) {
-        this._element.style.paddingLeft = this._scrollbarWidth + "px";
-      }
-
-      if (this._isBodyOverflowing && !isModalOverflowing) {
-        this._element.style.paddingRight = this._scrollbarWidth + "px";
-      }
-    };
-
-    _proto._resetAdjustments = function _resetAdjustments() {
-      this._element.style.paddingLeft = '';
-      this._element.style.paddingRight = '';
-    };
-
-    _proto._checkScrollbar = function _checkScrollbar() {
-      var rect = document.body.getBoundingClientRect();
-      this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
-      this._scrollbarWidth = this._getScrollbarWidth();
-    };
-
-    _proto._setScrollbar = function _setScrollbar() {
-      var _this9 = this;
-
-      if (this._isBodyOverflowing) {
-        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
-        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
-        // Adjust fixed content padding
-        $(Selector.FIXED_CONTENT).each(function (index, element) {
-          var actualPadding = $(element)[0].style.paddingRight;
-          var calculatedPadding = $(element).css('padding-right');
-          $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
-        }); // Adjust sticky content margin
-
-        $(Selector.STICKY_CONTENT).each(function (index, element) {
-          var actualMargin = $(element)[0].style.marginRight;
-          var calculatedMargin = $(element).css('margin-right');
-          $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
-        }); // Adjust navbar-toggler margin
-
-        $(Selector.NAVBAR_TOGGLER).each(function (index, element) {
-          var actualMargin = $(element)[0].style.marginRight;
-          var calculatedMargin = $(element).css('margin-right');
-          $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + "px");
-        }); // Adjust body padding
-
-        var actualPadding = document.body.style.paddingRight;
-        var calculatedPadding = $('body').css('padding-right');
-        $('body').data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
-      }
-    };
-
-    _proto._resetScrollbar = function _resetScrollbar() {
-      // Restore fixed content padding
-      $(Selector.FIXED_CONTENT).each(function (index, element) {
-        var padding = $(element).data('padding-right');
-
-        if (typeof padding !== 'undefined') {
-          $(element).css('padding-right', padding).removeData('padding-right');
-        }
-      }); // Restore sticky content and navbar-toggler margin
-
-      $(Selector.STICKY_CONTENT + ", " + Selector.NAVBAR_TOGGLER).each(function (index, element) {
-        var margin = $(element).data('margin-right');
-
-        if (typeof margin !== 'undefined') {
-          $(element).css('margin-right', margin).removeData('margin-right');
-        }
-      }); // Restore body padding
-
-      var padding = $('body').data('padding-right');
-
-      if (typeof padding !== 'undefined') {
-        $('body').css('padding-right', padding).removeData('padding-right');
-      }
-    };
-
-    _proto._getScrollbarWidth = function _getScrollbarWidth() {
-      // thx d.walsh
-      var scrollDiv = document.createElement('div');
-      scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
-      document.body.appendChild(scrollDiv);
-      var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
-      document.body.removeChild(scrollDiv);
-      return scrollbarWidth;
-    }; // static
-
-
-    Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
-      return this.each(function () {
-        var data = $(this).data(DATA_KEY);
-
-        var _config = $.extend({}, Modal.Default, $(this).data(), typeof config === 'object' && config);
-
-        if (!data) {
-          data = new Modal(this, _config);
-          $(this).data(DATA_KEY, data);
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error("No method named \"" + config + "\"");
-          }
-
-          data[config](relatedTarget);
-        } else if (_config.show) {
-          data.show(relatedTarget);
-        }
-      });
-    };
-
-    createClass(Modal, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }, {
-      key: "Default",
-      get: function get() {
-        return Default;
-      }
-    }]);
-    return Modal;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-
-  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
-    var _this10 = this;
-
-    var target;
-    var selector = Util.getSelectorFromElement(this);
-
-    if (selector) {
-      target = $(selector)[0];
-    }
-
-    var config = $(target).data(DATA_KEY) ? 'toggle' : $.extend({}, $(target).data(), $(this).data());
-
-    if (this.tagName === 'A' || this.tagName === 'AREA') {
-      event.preventDefault();
-    }
-
-    var $target = $(target).one(Event.SHOW, function (showEvent) {
-      if (showEvent.isDefaultPrevented()) {
-        // only register focus restorer if modal will actually get shown
-        return;
-      }
-
-      $target.one(Event.HIDDEN, function () {
-        if ($(_this10).is(':visible')) {
-          _this10.focus();
-        }
-      });
-    });
-
-    Modal._jQueryInterface.call($(target), config, this);
-  });
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME] = Modal._jQueryInterface;
-  $.fn[NAME].Constructor = Modal;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Modal._jQueryInterface;
-  };
-
-  return Modal;
-}($);
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): tooltip.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-var Tooltip = function () {
-  /**
-   * Check for Popper dependency
-   * Popper - https://popper.js.org
-   */
-  if (typeof Popper === 'undefined') {
-    throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)');
-  }
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-
-
-  var NAME = 'tooltip';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.tooltip';
-  var EVENT_KEY = "." + DATA_KEY;
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var TRANSITION_DURATION = 150;
-  var CLASS_PREFIX = 'bs-tooltip';
-  var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
-  var DefaultType = {
-    animation: 'boolean',
-    template: 'string',
-    title: '(string|element|function)',
-    trigger: 'string',
-    delay: '(number|object)',
-    html: 'boolean',
-    selector: '(string|boolean)',
-    placement: '(string|function)',
-    offset: '(number|string)',
-    container: '(string|element|boolean)',
-    fallbackPlacement: '(string|array)'
-  };
-  var AttachmentMap = {
-    AUTO: 'auto',
-    TOP: 'top',
-    RIGHT: 'right',
-    BOTTOM: 'bottom',
-    LEFT: 'left'
-  };
-  var Default = {
-    animation: true,
-    template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',
-    trigger: 'hover focus',
-    title: '',
-    delay: 0,
-    html: false,
-    selector: false,
-    placement: 'top',
-    offset: 0,
-    container: false,
-    fallbackPlacement: 'flip'
-  };
-  var HoverState = {
-    SHOW: 'show',
-    OUT: 'out'
-  };
-  var Event = {
-    HIDE: "hide" + EVENT_KEY,
-    HIDDEN: "hidden" + EVENT_KEY,
-    SHOW: "show" + EVENT_KEY,
-    SHOWN: "shown" + EVENT_KEY,
-    INSERTED: "inserted" + EVENT_KEY,
-    CLICK: "click" + EVENT_KEY,
-    FOCUSIN: "focusin" + EVENT_KEY,
-    FOCUSOUT: "focusout" + EVENT_KEY,
-    MOUSEENTER: "mouseenter" + EVENT_KEY,
-    MOUSELEAVE: "mouseleave" + EVENT_KEY
-  };
-  var ClassName = {
-    FADE: 'fade',
-    SHOW: 'show'
-  };
-  var Selector = {
-    TOOLTIP: '.tooltip',
-    TOOLTIP_INNER: '.tooltip-inner',
-    ARROW: '.arrow'
-  };
-  var Trigger = {
-    HOVER: 'hover',
-    FOCUS: 'focus',
-    CLICK: 'click',
-    MANUAL: 'manual'
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Tooltip =
-  /*#__PURE__*/
-  function () {
-    function Tooltip(element, config) {
-      // private
-      this._isEnabled = true;
-      this._timeout = 0;
-      this._hoverState = '';
-      this._activeTrigger = {};
-      this._popper = null; // protected
-
-      this.element = element;
-      this.config = this._getConfig(config);
-      this.tip = null;
-
-      this._setListeners();
-    } // getters
-
-
-    var _proto = Tooltip.prototype;
-
-    // public
-    _proto.enable = function enable() {
-      this._isEnabled = true;
-    };
-
-    _proto.disable = function disable() {
-      this._isEnabled = false;
-    };
-
-    _proto.toggleEnabled = function toggleEnabled() {
-      this._isEnabled = !this._isEnabled;
-    };
-
-    _proto.toggle = function toggle(event) {
-      if (!this._isEnabled) {
-        return;
-      }
-
-      if (event) {
-        var dataKey = this.constructor.DATA_KEY;
-        var context = $(event.currentTarget).data(dataKey);
-
-        if (!context) {
-          context = new this.constructor(event.currentTarget, this._getDelegateConfig());
-          $(event.currentTarget).data(dataKey, context);
-        }
-
-        context._activeTrigger.click = !context._activeTrigger.click;
-
-        if (context._isWithActiveTrigger()) {
-          context._enter(null, context);
-        } else {
-          context._leave(null, context);
-        }
-      } else {
-        if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {
-          this._leave(null, this);
-
-          return;
-        }
-
-        this._enter(null, this);
-      }
-    };
-
-    _proto.dispose = function dispose() {
-      clearTimeout(this._timeout);
-      $.removeData(this.element, this.constructor.DATA_KEY);
-      $(this.element).off(this.constructor.EVENT_KEY);
-      $(this.element).closest('.modal').off('hide.bs.modal');
-
-      if (this.tip) {
-        $(this.tip).remove();
-      }
-
-      this._isEnabled = null;
-      this._timeout = null;
-      this._hoverState = null;
-      this._activeTrigger = null;
-
-      if (this._popper !== null) {
-        this._popper.destroy();
-      }
-
-      this._popper = null;
-      this.element = null;
-      this.config = null;
-      this.tip = null;
-    };
-
-    _proto.show = function show() {
-      var _this = this;
-
-      if ($(this.element).css('display') === 'none') {
-        throw new Error('Please use show on visible elements');
-      }
-
-      var showEvent = $.Event(this.constructor.Event.SHOW);
-
-      if (this.isWithContent() && this._isEnabled) {
-        $(this.element).trigger(showEvent);
-        var isInTheDom = $.contains(this.element.ownerDocument.documentElement, this.element);
-
-        if (showEvent.isDefaultPrevented() || !isInTheDom) {
-          return;
-        }
-
-        var tip = this.getTipElement();
-        var tipId = Util.getUID(this.constructor.NAME);
-        tip.setAttribute('id', tipId);
-        this.element.setAttribute('aria-describedby', tipId);
-        this.setContent();
-
-        if (this.config.animation) {
-          $(tip).addClass(ClassName.FADE);
-        }
-
-        var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
-
-        var attachment = this._getAttachment(placement);
-
-        this.addAttachmentClass(attachment);
-        var container = this.config.container === false ? document.body : $(this.config.container);
-        $(tip).data(this.constructor.DATA_KEY, this);
-
-        if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {
-          $(tip).appendTo(container);
-        }
-
-        $(this.element).trigger(this.constructor.Event.INSERTED);
-        this._popper = new Popper(this.element, tip, {
-          placement: attachment,
-          modifiers: {
-            offset: {
-              offset: this.config.offset
-            },
-            flip: {
-              behavior: this.config.fallbackPlacement
-            },
-            arrow: {
-              element: Selector.ARROW
-            }
-          },
-          onCreate: function onCreate(data) {
-            if (data.originalPlacement !== data.placement) {
-              _this._handlePopperPlacementChange(data);
-            }
-          },
-          onUpdate: function onUpdate(data) {
-            _this._handlePopperPlacementChange(data);
-          }
-        });
-        $(tip).addClass(ClassName.SHOW); // if this is a touch-enabled device we add extra
-        // empty mouseover listeners to the body's immediate children;
-        // only needed because of broken event delegation on iOS
-        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
-
-        if ('ontouchstart' in document.documentElement) {
-          $('body').children().on('mouseover', null, $.noop);
-        }
-
-        var complete = function complete() {
-          if (_this.config.animation) {
-            _this._fixTransition();
-          }
-
-          var prevHoverState = _this._hoverState;
-          _this._hoverState = null;
-          $(_this.element).trigger(_this.constructor.Event.SHOWN);
-
-          if (prevHoverState === HoverState.OUT) {
-            _this._leave(null, _this);
-          }
-        };
-
-        if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {
-          $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION);
-        } else {
-          complete();
-        }
-      }
-    };
-
-    _proto.hide = function hide(callback) {
-      var _this2 = this;
-
-      var tip = this.getTipElement();
-      var hideEvent = $.Event(this.constructor.Event.HIDE);
-
-      var complete = function complete() {
-        if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
-          tip.parentNode.removeChild(tip);
-        }
-
-        _this2._cleanTipClass();
-
-        _this2.element.removeAttribute('aria-describedby');
-
-        $(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
-
-        if (_this2._popper !== null) {
-          _this2._popper.destroy();
-        }
-
-        if (callback) {
-          callback();
-        }
-      };
-
-      $(this.element).trigger(hideEvent);
-
-      if (hideEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      $(tip).removeClass(ClassName.SHOW); // if this is a touch-enabled device we remove the extra
-      // empty mouseover listeners we added for iOS support
-
-      if ('ontouchstart' in document.documentElement) {
-        $('body').children().off('mouseover', null, $.noop);
-      }
-
-      this._activeTrigger[Trigger.CLICK] = false;
-      this._activeTrigger[Trigger.FOCUS] = false;
-      this._activeTrigger[Trigger.HOVER] = false;
-
-      if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {
-        $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
-      } else {
-        complete();
-      }
-
-      this._hoverState = '';
-    };
-
-    _proto.update = function update() {
-      if (this._popper !== null) {
-        this._popper.scheduleUpdate();
-      }
-    }; // protected
-
-
-    _proto.isWithContent = function isWithContent() {
-      return Boolean(this.getTitle());
-    };
-
-    _proto.addAttachmentClass = function addAttachmentClass(attachment) {
-      $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
-    };
-
-    _proto.getTipElement = function getTipElement() {
-      this.tip = this.tip || $(this.config.template)[0];
-      return this.tip;
-    };
-
-    _proto.setContent = function setContent() {
-      var $tip = $(this.getTipElement());
-      this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
-      $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
-    };
-
-    _proto.setElementContent = function setElementContent($element, content) {
-      var html = this.config.html;
-
-      if (typeof content === 'object' && (content.nodeType || content.jquery)) {
-        // content is a DOM node or a jQuery
-        if (html) {
-          if (!$(content).parent().is($element)) {
-            $element.empty().append(content);
-          }
-        } else {
-          $element.text($(content).text());
-        }
-      } else {
-        $element[html ? 'html' : 'text'](content);
-      }
-    };
-
-    _proto.getTitle = function getTitle() {
-      var title = this.element.getAttribute('data-original-title');
-
-      if (!title) {
-        title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
-      }
-
-      return title;
-    }; // private
-
-
-    _proto._getAttachment = function _getAttachment(placement) {
-      return AttachmentMap[placement.toUpperCase()];
-    };
-
-    _proto._setListeners = function _setListeners() {
-      var _this3 = this;
-
-      var triggers = this.config.trigger.split(' ');
-      triggers.forEach(function (trigger) {
-        if (trigger === 'click') {
-          $(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {
-            return _this3.toggle(event);
-          });
-        } else if (trigger !== Trigger.MANUAL) {
-          var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;
-          var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;
-          $(_this3.element).on(eventIn, _this3.config.selector, function (event) {
-            return _this3._enter(event);
-          }).on(eventOut, _this3.config.selector, function (event) {
-            return _this3._leave(event);
-          });
-        }
-
-        $(_this3.element).closest('.modal').on('hide.bs.modal', function () {
-          return _this3.hide();
-        });
-      });
-
-      if (this.config.selector) {
-        this.config = $.extend({}, this.config, {
-          trigger: 'manual',
-          selector: ''
-        });
-      } else {
-        this._fixTitle();
-      }
-    };
-
-    _proto._fixTitle = function _fixTitle() {
-      var titleType = typeof this.element.getAttribute('data-original-title');
-
-      if (this.element.getAttribute('title') || titleType !== 'string') {
-        this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
-        this.element.setAttribute('title', '');
-      }
-    };
-
-    _proto._enter = function _enter(event, context) {
-      var dataKey = this.constructor.DATA_KEY;
-      context = context || $(event.currentTarget).data(dataKey);
-
-      if (!context) {
-        context = new this.constructor(event.currentTarget, this._getDelegateConfig());
-        $(event.currentTarget).data(dataKey, context);
-      }
-
-      if (event) {
-        context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
-      }
-
-      if ($(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {
-        context._hoverState = HoverState.SHOW;
-        return;
-      }
-
-      clearTimeout(context._timeout);
-      context._hoverState = HoverState.SHOW;
-
-      if (!context.config.delay || !context.config.delay.show) {
-        context.show();
-        return;
-      }
-
-      context._timeout = setTimeout(function () {
-        if (context._hoverState === HoverState.SHOW) {
-          context.show();
-        }
-      }, context.config.delay.show);
-    };
-
-    _proto._leave = function _leave(event, context) {
-      var dataKey = this.constructor.DATA_KEY;
-      context = context || $(event.currentTarget).data(dataKey);
-
-      if (!context) {
-        context = new this.constructor(event.currentTarget, this._getDelegateConfig());
-        $(event.currentTarget).data(dataKey, context);
-      }
-
-      if (event) {
-        context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
-      }
-
-      if (context._isWithActiveTrigger()) {
-        return;
-      }
-
-      clearTimeout(context._timeout);
-      context._hoverState = HoverState.OUT;
-
-      if (!context.config.delay || !context.config.delay.hide) {
-        context.hide();
-        return;
-      }
-
-      context._timeout = setTimeout(function () {
-        if (context._hoverState === HoverState.OUT) {
-          context.hide();
-        }
-      }, context.config.delay.hide);
-    };
-
-    _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
-      for (var trigger in this._activeTrigger) {
-        if (this._activeTrigger[trigger]) {
-          return true;
-        }
-      }
-
-      return false;
-    };
-
-    _proto._getConfig = function _getConfig(config) {
-      config = $.extend({}, this.constructor.Default, $(this.element).data(), config);
-
-      if (typeof config.delay === 'number') {
-        config.delay = {
-          show: config.delay,
-          hide: config.delay
-        };
-      }
-
-      if (typeof config.title === 'number') {
-        config.title = config.title.toString();
-      }
-
-      if (typeof config.content === 'number') {
-        config.content = config.content.toString();
-      }
-
-      Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
-      return config;
-    };
-
-    _proto._getDelegateConfig = function _getDelegateConfig() {
-      var config = {};
-
-      if (this.config) {
-        for (var key in this.config) {
-          if (this.constructor.Default[key] !== this.config[key]) {
-            config[key] = this.config[key];
-          }
-        }
-      }
-
-      return config;
-    };
-
-    _proto._cleanTipClass = function _cleanTipClass() {
-      var $tip = $(this.getTipElement());
-      var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
-
-      if (tabClass !== null && tabClass.length > 0) {
-        $tip.removeClass(tabClass.join(''));
-      }
-    };
-
-    _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {
-      this._cleanTipClass();
-
-      this.addAttachmentClass(this._getAttachment(data.placement));
-    };
-
-    _proto._fixTransition = function _fixTransition() {
-      var tip = this.getTipElement();
-      var initConfigAnimation = this.config.animation;
-
-      if (tip.getAttribute('x-placement') !== null) {
-        return;
-      }
-
-      $(tip).removeClass(ClassName.FADE);
-      this.config.animation = false;
-      this.hide();
-      this.show();
-      this.config.animation = initConfigAnimation;
-    }; // static
-
-
-    Tooltip._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var data = $(this).data(DATA_KEY);
-
-        var _config = typeof config === 'object' && config;
-
-        if (!data && /dispose|hide/.test(config)) {
-          return;
-        }
-
-        if (!data) {
-          data = new Tooltip(this, _config);
-          $(this).data(DATA_KEY, data);
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error("No method named \"" + config + "\"");
-          }
-
-          data[config]();
-        }
-      });
-    };
-
-    createClass(Tooltip, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }, {
-      key: "Default",
-      get: function get() {
-        return Default;
-      }
-    }, {
-      key: "NAME",
-      get: function get() {
-        return NAME;
-      }
-    }, {
-      key: "DATA_KEY",
-      get: function get() {
-        return DATA_KEY;
-      }
-    }, {
-      key: "Event",
-      get: function get() {
-        return Event;
-      }
-    }, {
-      key: "EVENT_KEY",
-      get: function get() {
-        return EVENT_KEY;
-      }
-    }, {
-      key: "DefaultType",
-      get: function get() {
-        return DefaultType;
-      }
-    }]);
-    return Tooltip;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-
-  $.fn[NAME] = Tooltip._jQueryInterface;
-  $.fn[NAME].Constructor = Tooltip;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Tooltip._jQueryInterface;
-  };
-
-  return Tooltip;
-}($, Popper);
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): popover.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-var Popover = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-  var NAME = 'popover';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.popover';
-  var EVENT_KEY = "." + DATA_KEY;
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var CLASS_PREFIX = 'bs-popover';
-  var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
-  var Default = $.extend({}, Tooltip.Default, {
-    placement: 'right',
-    trigger: 'click',
-    content: '',
-    template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
-  });
-  var DefaultType = $.extend({}, Tooltip.DefaultType, {
-    content: '(string|element|function)'
-  });
-  var ClassName = {
-    FADE: 'fade',
-    SHOW: 'show'
-  };
-  var Selector = {
-    TITLE: '.popover-header',
-    CONTENT: '.popover-body'
-  };
-  var Event = {
-    HIDE: "hide" + EVENT_KEY,
-    HIDDEN: "hidden" + EVENT_KEY,
-    SHOW: "show" + EVENT_KEY,
-    SHOWN: "shown" + EVENT_KEY,
-    INSERTED: "inserted" + EVENT_KEY,
-    CLICK: "click" + EVENT_KEY,
-    FOCUSIN: "focusin" + EVENT_KEY,
-    FOCUSOUT: "focusout" + EVENT_KEY,
-    MOUSEENTER: "mouseenter" + EVENT_KEY,
-    MOUSELEAVE: "mouseleave" + EVENT_KEY
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Popover =
-  /*#__PURE__*/
-  function (_Tooltip) {
-    inheritsLoose(Popover, _Tooltip);
-
-    function Popover() {
-      return _Tooltip.apply(this, arguments) || this;
-    }
-
-    var _proto = Popover.prototype;
-
-    // overrides
-    _proto.isWithContent = function isWithContent() {
-      return this.getTitle() || this._getContent();
-    };
-
-    _proto.addAttachmentClass = function addAttachmentClass(attachment) {
-      $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
-    };
-
-    _proto.getTipElement = function getTipElement() {
-      this.tip = this.tip || $(this.config.template)[0];
-      return this.tip;
-    };
-
-    _proto.setContent = function setContent() {
-      var $tip = $(this.getTipElement()); // we use append for html objects to maintain js events
-
-      this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
-      this.setElementContent($tip.find(Selector.CONTENT), this._getContent());
-      $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
-    }; // private
-
-
-    _proto._getContent = function _getContent() {
-      return this.element.getAttribute('data-content') || (typeof this.config.content === 'function' ? this.config.content.call(this.element) : this.config.content);
-    };
-
-    _proto._cleanTipClass = function _cleanTipClass() {
-      var $tip = $(this.getTipElement());
-      var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
-
-      if (tabClass !== null && tabClass.length > 0) {
-        $tip.removeClass(tabClass.join(''));
-      }
-    }; // static
-
-
-    Popover._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var data = $(this).data(DATA_KEY);
-
-        var _config = typeof config === 'object' ? config : null;
-
-        if (!data && /destroy|hide/.test(config)) {
-          return;
-        }
-
-        if (!data) {
-          data = new Popover(this, _config);
-          $(this).data(DATA_KEY, data);
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error("No method named \"" + config + "\"");
-          }
-
-          data[config]();
-        }
-      });
-    };
-
-    createClass(Popover, null, [{
-      key: "VERSION",
-      // getters
-      get: function get() {
-        return VERSION;
-      }
-    }, {
-      key: "Default",
-      get: function get() {
-        return Default;
-      }
-    }, {
-      key: "NAME",
-      get: function get() {
-        return NAME;
-      }
-    }, {
-      key: "DATA_KEY",
-      get: function get() {
-        return DATA_KEY;
-      }
-    }, {
-      key: "Event",
-      get: function get() {
-        return Event;
-      }
-    }, {
-      key: "EVENT_KEY",
-      get: function get() {
-        return EVENT_KEY;
-      }
-    }, {
-      key: "DefaultType",
-      get: function get() {
-        return DefaultType;
-      }
-    }]);
-    return Popover;
-  }(Tooltip);
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-
-  $.fn[NAME] = Popover._jQueryInterface;
-  $.fn[NAME].Constructor = Popover;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Popover._jQueryInterface;
-  };
-
-  return Popover;
-}($);
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): scrollspy.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-var ScrollSpy = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-  var NAME = 'scrollspy';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.scrollspy';
-  var EVENT_KEY = "." + DATA_KEY;
-  var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var Default = {
-    offset: 10,
-    method: 'auto',
-    target: ''
-  };
-  var DefaultType = {
-    offset: 'number',
-    method: 'string',
-    target: '(string|element)'
-  };
-  var Event = {
-    ACTIVATE: "activate" + EVENT_KEY,
-    SCROLL: "scroll" + EVENT_KEY,
-    LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY
-  };
-  var ClassName = {
-    DROPDOWN_ITEM: 'dropdown-item',
-    DROPDOWN_MENU: 'dropdown-menu',
-    ACTIVE: 'active'
-  };
-  var Selector = {
-    DATA_SPY: '[data-spy="scroll"]',
-    ACTIVE: '.active',
-    NAV_LIST_GROUP: '.nav, .list-group',
-    NAV_LINKS: '.nav-link',
-    NAV_ITEMS: '.nav-item',
-    LIST_ITEMS: '.list-group-item',
-    DROPDOWN: '.dropdown',
-    DROPDOWN_ITEMS: '.dropdown-item',
-    DROPDOWN_TOGGLE: '.dropdown-toggle'
-  };
-  var OffsetMethod = {
-    OFFSET: 'offset',
-    POSITION: 'position'
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var ScrollSpy =
-  /*#__PURE__*/
-  function () {
-    function ScrollSpy(element, config) {
-      var _this = this;
-
-      this._element = element;
-      this._scrollElement = element.tagName === 'BODY' ? window : element;
-      this._config = this._getConfig(config);
-      this._selector = this._config.target + " " + Selector.NAV_LINKS + "," + (this._config.target + " " + Selector.LIST_ITEMS + ",") + (this._config.target + " " + Selector.DROPDOWN_ITEMS);
-      this._offsets = [];
-      this._targets = [];
-      this._activeTarget = null;
-      this._scrollHeight = 0;
-      $(this._scrollElement).on(Event.SCROLL, function (event) {
-        return _this._process(event);
-      });
-      this.refresh();
-
-      this._process();
-    } // getters
-
-
-    var _proto = ScrollSpy.prototype;
-
-    // public
-    _proto.refresh = function refresh() {
-      var _this2 = this;
-
-      var autoMethod = this._scrollElement !== this._scrollElement.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET;
-      var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
-      var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
-      this._offsets = [];
-      this._targets = [];
-      this._scrollHeight = this._getScrollHeight();
-      var targets = $.makeArray($(this._selector));
-      targets.map(function (element) {
-        var target;
-        var targetSelector = Util.getSelectorFromElement(element);
-
-        if (targetSelector) {
-          target = $(targetSelector)[0];
-        }
-
-        if (target) {
-          var targetBCR = target.getBoundingClientRect();
-
-          if (targetBCR.width || targetBCR.height) {
-            // todo (fat): remove sketch reliance on jQuery position/offset
-            return [$(target)[offsetMethod]().top + offsetBase, targetSelector];
-          }
-        }
-
-        return null;
-      }).filter(function (item) {
-        return item;
-      }).sort(function (a, b) {
-        return a[0] - b[0];
-      }).forEach(function (item) {
-        _this2._offsets.push(item[0]);
-
-        _this2._targets.push(item[1]);
-      });
-    };
-
-    _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
-      $(this._scrollElement).off(EVENT_KEY);
-      this._element = null;
-      this._scrollElement = null;
-      this._config = null;
-      this._selector = null;
-      this._offsets = null;
-      this._targets = null;
-      this._activeTarget = null;
-      this._scrollHeight = null;
-    }; // private
-
-
-    _proto._getConfig = function _getConfig(config) {
-      config = $.extend({}, Default, config);
-
-      if (typeof config.target !== 'string') {
-        var id = $(config.target).attr('id');
-
-        if (!id) {
-          id = Util.getUID(NAME);
-          $(config.target).attr('id', id);
-        }
-
-        config.target = "#" + id;
-      }
-
-      Util.typeCheckConfig(NAME, config, DefaultType);
-      return config;
-    };
-
-    _proto._getScrollTop = function _getScrollTop() {
-      return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
-    };
-
-    _proto._getScrollHeight = function _getScrollHeight() {
-      return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
-    };
-
-    _proto._getOffsetHeight = function _getOffsetHeight() {
-      return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
-    };
-
-    _proto._process = function _process() {
-      var scrollTop = this._getScrollTop() + this._config.offset;
-
-      var scrollHeight = this._getScrollHeight();
-
-      var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
-
-      if (this._scrollHeight !== scrollHeight) {
-        this.refresh();
-      }
-
-      if (scrollTop >= maxScroll) {
-        var target = this._targets[this._targets.length - 1];
-
-        if (this._activeTarget !== target) {
-          this._activate(target);
-        }
-
-        return;
-      }
-
-      if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
-        this._activeTarget = null;
-
-        this._clear();
-
-        return;
-      }
-
-      for (var i = this._offsets.length; i--;) {
-        var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
-
-        if (isActiveTarget) {
-          this._activate(this._targets[i]);
-        }
-      }
-    };
-
-    _proto._activate = function _activate(target) {
-      this._activeTarget = target;
-
-      this._clear();
-
-      var queries = this._selector.split(','); // eslint-disable-next-line arrow-body-style
-
-
-      queries = queries.map(function (selector) {
-        return selector + "[data-target=\"" + target + "\"]," + (selector + "[href=\"" + target + "\"]");
-      });
-      var $link = $(queries.join(','));
-
-      if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
-        $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
-        $link.addClass(ClassName.ACTIVE);
-      } else {
-        // Set triggered link as active
-        $link.addClass(ClassName.ACTIVE); // Set triggered links parents as active
-        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
-
-        $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS + ", " + Selector.LIST_ITEMS).addClass(ClassName.ACTIVE); // Handle special case when .nav-link is inside .nav-item
-
-        $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE);
-      }
-
-      $(this._scrollElement).trigger(Event.ACTIVATE, {
-        relatedTarget: target
-      });
-    };
-
-    _proto._clear = function _clear() {
-      $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
-    }; // static
-
-
-    ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var data = $(this).data(DATA_KEY);
-
-        var _config = typeof config === 'object' && config;
-
-        if (!data) {
-          data = new ScrollSpy(this, _config);
-          $(this).data(DATA_KEY, data);
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error("No method named \"" + config + "\"");
-          }
-
-          data[config]();
-        }
-      });
-    };
-
-    createClass(ScrollSpy, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }, {
-      key: "Default",
-      get: function get() {
-        return Default;
-      }
-    }]);
-    return ScrollSpy;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-
-  $(window).on(Event.LOAD_DATA_API, function () {
-    var scrollSpys = $.makeArray($(Selector.DATA_SPY));
-
-    for (var i = scrollSpys.length; i--;) {
-      var $spy = $(scrollSpys[i]);
-
-      ScrollSpy._jQueryInterface.call($spy, $spy.data());
-    }
-  });
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME] = ScrollSpy._jQueryInterface;
-  $.fn[NAME].Constructor = ScrollSpy;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return ScrollSpy._jQueryInterface;
-  };
-
-  return ScrollSpy;
-}($);
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-beta.2): tab.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-var Tab = function () {
-  /**
-   * ------------------------------------------------------------------------
-   * Constants
-   * ------------------------------------------------------------------------
-   */
-  var NAME = 'tab';
-  var VERSION = '4.0.0-beta.2';
-  var DATA_KEY = 'bs.tab';
-  var EVENT_KEY = "." + DATA_KEY;
-  var DATA_API_KEY = '.data-api';
-  var JQUERY_NO_CONFLICT = $.fn[NAME];
-  var TRANSITION_DURATION = 150;
-  var Event = {
-    HIDE: "hide" + EVENT_KEY,
-    HIDDEN: "hidden" + EVENT_KEY,
-    SHOW: "show" + EVENT_KEY,
-    SHOWN: "shown" + EVENT_KEY,
-    CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
-  };
-  var ClassName = {
-    DROPDOWN_MENU: 'dropdown-menu',
-    ACTIVE: 'active',
-    DISABLED: 'disabled',
-    FADE: 'fade',
-    SHOW: 'show'
-  };
-  var Selector = {
-    DROPDOWN: '.dropdown',
-    NAV_LIST_GROUP: '.nav, .list-group',
-    ACTIVE: '.active',
-    ACTIVE_UL: '> li > .active',
-    DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
-    DROPDOWN_TOGGLE: '.dropdown-toggle',
-    DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
-    /**
-     * ------------------------------------------------------------------------
-     * Class Definition
-     * ------------------------------------------------------------------------
-     */
-
-  };
-
-  var Tab =
-  /*#__PURE__*/
-  function () {
-    function Tab(element) {
-      this._element = element;
-    } // getters
-
-
-    var _proto = Tab.prototype;
-
-    // public
-    _proto.show = function show() {
-      var _this = this;
-
-      if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName.ACTIVE) || $(this._element).hasClass(ClassName.DISABLED)) {
-        return;
-      }
-
-      var target;
-      var previous;
-      var listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0];
-      var selector = Util.getSelectorFromElement(this._element);
-
-      if (listElement) {
-        var itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE;
-        previous = $.makeArray($(listElement).find(itemSelector));
-        previous = previous[previous.length - 1];
-      }
-
-      var hideEvent = $.Event(Event.HIDE, {
-        relatedTarget: this._element
-      });
-      var showEvent = $.Event(Event.SHOW, {
-        relatedTarget: previous
-      });
-
-      if (previous) {
-        $(previous).trigger(hideEvent);
-      }
-
-      $(this._element).trigger(showEvent);
-
-      if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
-        return;
-      }
-
-      if (selector) {
-        target = $(selector)[0];
-      }
-
-      this._activate(this._element, listElement);
-
-      var complete = function complete() {
-        var hiddenEvent = $.Event(Event.HIDDEN, {
-          relatedTarget: _this._element
-        });
-        var shownEvent = $.Event(Event.SHOWN, {
-          relatedTarget: previous
-        });
-        $(previous).trigger(hiddenEvent);
-        $(_this._element).trigger(shownEvent);
-      };
-
-      if (target) {
-        this._activate(target, target.parentNode, complete);
-      } else {
-        complete();
-      }
-    };
-
-    _proto.dispose = function dispose() {
-      $.removeData(this._element, DATA_KEY);
-      this._element = null;
-    }; // private
-
-
-    _proto._activate = function _activate(element, container, callback) {
-      var _this2 = this;
-
-      var activeElements;
-
-      if (container.nodeName === 'UL') {
-        activeElements = $(container).find(Selector.ACTIVE_UL);
-      } else {
-        activeElements = $(container).children(Selector.ACTIVE);
-      }
-
-      var active = activeElements[0];
-      var isTransitioning = callback && Util.supportsTransitionEnd() && active && $(active).hasClass(ClassName.FADE);
-
-      var complete = function complete() {
-        return _this2._transitionComplete(element, active, isTransitioning, callback);
-      };
-
-      if (active && isTransitioning) {
-        $(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
-      } else {
-        complete();
-      }
-
-      if (active) {
-        $(active).removeClass(ClassName.SHOW);
-      }
-    };
-
-    _proto._transitionComplete = function _transitionComplete(element, active, isTransitioning, callback) {
-      if (active) {
-        $(active).removeClass(ClassName.ACTIVE);
-        var dropdownChild = $(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
-
-        if (dropdownChild) {
-          $(dropdownChild).removeClass(ClassName.ACTIVE);
-        }
-
-        if (active.getAttribute('role') === 'tab') {
-          active.setAttribute('aria-selected', false);
-        }
-      }
-
-      $(element).addClass(ClassName.ACTIVE);
-
-      if (element.getAttribute('role') === 'tab') {
-        element.setAttribute('aria-selected', true);
-      }
-
-      if (isTransitioning) {
-        Util.reflow(element);
-        $(element).addClass(ClassName.SHOW);
-      } else {
-        $(element).removeClass(ClassName.FADE);
-      }
-
-      if (element.parentNode && $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
-        var dropdownElement = $(element).closest(Selector.DROPDOWN)[0];
-
-        if (dropdownElement) {
-          $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
-        }
-
-        element.setAttribute('aria-expanded', true);
-      }
-
-      if (callback) {
-        callback();
-      }
-    }; // static
-
-
-    Tab._jQueryInterface = function _jQueryInterface(config) {
-      return this.each(function () {
-        var $this = $(this);
-        var data = $this.data(DATA_KEY);
-
-        if (!data) {
-          data = new Tab(this);
-          $this.data(DATA_KEY, data);
-        }
-
-        if (typeof config === 'string') {
-          if (typeof data[config] === 'undefined') {
-            throw new Error("No method named \"" + config + "\"");
-          }
-
-          data[config]();
-        }
-      });
-    };
-
-    createClass(Tab, null, [{
-      key: "VERSION",
-      get: function get() {
-        return VERSION;
-      }
-    }]);
-    return Tab;
-  }();
-  /**
-   * ------------------------------------------------------------------------
-   * Data Api implementation
-   * ------------------------------------------------------------------------
-   */
-
-
-  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
-    event.preventDefault();
-
-    Tab._jQueryInterface.call($(this), 'show');
-  });
-  /**
-   * ------------------------------------------------------------------------
-   * jQuery
-   * ------------------------------------------------------------------------
-   */
-
-  $.fn[NAME] = Tab._jQueryInterface;
-  $.fn[NAME].Constructor = Tab;
-
-  $.fn[NAME].noConflict = function () {
-    $.fn[NAME] = JQUERY_NO_CONFLICT;
-    return Tab._jQueryInterface;
-  };
-
-  return Tab;
-}($);
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-alpha.6): index.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-(function () {
-  if (typeof $ === 'undefined') {
-    throw new Error('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
-  }
-
-  var version = $.fn.jquery.split(' ')[0].split('.');
-  var minMajor = 1;
-  var ltMajor = 2;
-  var minMinor = 9;
-  var minPatch = 1;
-  var maxMajor = 4;
-
-  if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
-    throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
-  }
-})($);
-
-exports.Util = Util;
-exports.Alert = Alert;
-exports.Button = Button;
-exports.Carousel = Carousel;
-exports.Collapse = Collapse;
-exports.Dropdown = Dropdown;
-exports.Modal = Modal;
-exports.Popover = Popover;
-exports.Scrollspy = ScrollSpy;
-exports.Tab = Tab;
-exports.Tooltip = Tooltip;
-
-return exports;
-
-}({},$,Popper));
-//# sourceMappingURL=bootstrap.js.map
diff --git a/assets/static/js/bootstrap.js.map b/assets/static/js/bootstrap.js.map
deleted file mode 100755
index ee14a1d..0000000
--- a/assets/static/js/bootstrap.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bootstrap.js","sources":["../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/index.js"],"sourcesContent":["import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Private TransitionEnd Helpers\n   * ------------------------------------------------------------------------\n   */\n\n  let transition = false\n\n  const MAX_UID = 1000000\n\n  const TransitionEn
 dEvent = {\n    WebkitTransition : 'webkitTransitionEnd',\n    MozTransition    : 'transitionend',\n    OTransition      : 'oTransitionEnd otransitionend',\n    transition       : 'transitionend'\n  }\n\n  // shoutout AngusCroll (https://goo.gl/pxwQGp)\n  function toType(obj) {\n    return {}.toString.call(obj).match(/\\s([a-zA-Z]+)/)[1].toLowerCase()\n  }\n\n  function getSpecialTransitionEndEvent() {\n    return {\n      bindType: transition.end,\n      delegateType: transition.end,\n      handle(event) {\n        if ($(event.target).is(this)) {\n          return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n        }\n        return undefined // eslint-disable-line no-undefined\n      }\n    }\n  }\n\n  function transitionEndTest() {\n    if (window.QUnit) {\n      return false\n    }\n\n    const el = document.createElement('bootstrap')\n\n    for (const name in TransitionEndEvent) {\n      if (typeof el.style[name] !== 'undefined') {\
 n        return {\n          end: TransitionEndEvent[name]\n        }\n      }\n    }\n\n    return false\n  }\n\n  function transitionEndEmulator(duration) {\n    let called = false\n\n    $(this).one(Util.TRANSITION_END, () => {\n      called = true\n    })\n\n    setTimeout(() => {\n      if (!called) {\n        Util.triggerTransitionEnd(this)\n      }\n    }, duration)\n\n    return this\n  }\n\n  function setTransitionEndSupport() {\n    transition = transitionEndTest()\n\n    $.fn.emulateTransitionEnd = transitionEndEmulator\n\n    if (Util.supportsTransitionEnd()) {\n      $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n    }\n  }\n\n\n  /**\n   * --------------------------------------------------------------------------\n   * Public Util Api\n   * --------------------------------------------------------------------------\n   */\n\n  const Util = {\n\n    TRANSITION_END: 'bsTransitionEnd',\n\n    getUID(prefix) {\n      do {\n        // eslint-disable-n
 ext-line no-bitwise\n        prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n      } while (document.getElementById(prefix))\n      return prefix\n    },\n\n    getSelectorFromElement(element) {\n      let selector = element.getAttribute('data-target')\n      if (!selector || selector === '#') {\n        selector = element.getAttribute('href') || ''\n      }\n\n      try {\n        const $selector = $(document).find(selector)\n        return $selector.length > 0 ? selector : null\n      } catch (error) {\n        return null\n      }\n    },\n\n    reflow(element) {\n      return element.offsetHeight\n    },\n\n    triggerTransitionEnd(element) {\n      $(element).trigger(transition.end)\n    },\n\n    supportsTransitionEnd() {\n      return Boolean(transition)\n    },\n\n    isElement(obj) {\n      return (obj[0] || obj).nodeType\n    },\n\n    typeCheckConfig(componentName, config, configTypes) {\n      for (const property in configTypes) {\n 
        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n          const expectedTypes = configTypes[property]\n          const value         = config[property]\n          const valueType     = value && Util.isElement(value) ?\n                                'element' : toType(value)\n\n          if (!new RegExp(expectedTypes).test(valueType)) {\n            throw new Error(\n              `${componentName.toUpperCase()}: ` +\n              `Option \"${property}\" provided type \"${valueType}\" ` +\n              `but expected type \"${expectedTypes}\".`)\n          }\n        }\n      }\n    }\n  }\n\n  setTransitionEndSupport()\n\n  return Util\n\n})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------
 ------------------------------------------------\n */\n\nconst Alert = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'alert'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.alert'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n\n  const Selector = {\n    DISMISS : '[data-dismiss=\"alert\"]'\n  }\n\n  const Event = {\n    CLOSE          : `close${EVENT_KEY}`,\n    CLOSED         : `closed${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    ALERT : 'alert',\n    FADE  : 'fade',\n    SHOW  : 'show'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * 
 Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Alert {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    close(element) {\n      element = element || this._element\n\n      const rootElement = this._getRootElement(element)\n      const customEvent = this._triggerCloseEvent(rootElement)\n\n      if (customEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._removeElement(rootElement)\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n\n    // private\n\n    _getRootElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      let parent     = false\n\n      if (selector) {\n        parent = $(selector)[0]\n      }\n\n      if (!parent) {\n        parent = $(element).closest(`.${ClassName.ALERT}`)[0]
 \n      }\n\n      return parent\n    }\n\n    _triggerCloseEvent(element) {\n      const closeEvent = $.Event(Event.CLOSE)\n\n      $(element).trigger(closeEvent)\n      return closeEvent\n    }\n\n    _removeElement(element) {\n      $(element).removeClass(ClassName.SHOW)\n\n      if (!Util.supportsTransitionEnd() ||\n          !$(element).hasClass(ClassName.FADE)) {\n        this._destroyElement(element)\n        return\n      }\n\n      $(element)\n        .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n        .emulateTransitionEnd(TRANSITION_DURATION)\n    }\n\n    _destroyElement(element) {\n      $(element)\n        .detach()\n        .trigger(Event.CLOSED)\n        .remove()\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $element = $(this)\n        let data       = $element.data(DATA_KEY)\n\n        if (!data) {\n          data = new Alert(this)\n          $element.data(DATA
 _KEY, data)\n        }\n\n        if (config === 'close') {\n          data[config](this)\n        }\n      })\n    }\n\n    static _handleDismiss(alertInstance) {\n      return function (event) {\n        if (event) {\n          event.preventDefault()\n        }\n\n        alertInstance.close(this)\n      }\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(\n    Event.CLICK_DATA_API,\n    Selector.DISMISS,\n    Alert._handleDismiss(new Alert())\n  )\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Alert._jQueryInterface\n  $.fn[NAME].Constructor = Alert\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLI
 CT\n    return Alert._jQueryInterface\n  }\n\n  return Alert\n\n})($)\n\nexport default Alert\n","import $ from 'jquery'\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'button'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.button'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n\n  const ClassName = {\n    ACTIVE : 'active',\n    BUTTON : 'btn',\n    FOCUS  : 'focus'\n  }\n\n  const
  Selector = {\n    DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n    DATA_TOGGLE        : '[data-toggle=\"buttons\"]',\n    INPUT              : 'input',\n    ACTIVE             : '.active',\n    BUTTON             : '.btn'\n  }\n\n  const Event = {\n    CLICK_DATA_API      : `click${EVENT_KEY}${DATA_API_KEY}`,\n    FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} `\n                        + `blur${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Button {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    toggle() {\n      let triggerChangeEvent = true\n      let addAriaPressed = true\n      const rootElement      = $(this._element).closest(\n        Selector.D
 ATA_TOGGLE\n      )[0]\n\n      if (rootElement) {\n        const input = $(this._element).find(Selector.INPUT)[0]\n\n        if (input) {\n          if (input.type === 'radio') {\n            if (input.checked &&\n              $(this._element).hasClass(ClassName.ACTIVE)) {\n              triggerChangeEvent = false\n\n            } else {\n              const activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n              if (activeElement) {\n                $(activeElement).removeClass(ClassName.ACTIVE)\n              }\n            }\n          }\n\n          if (triggerChangeEvent) {\n            if (input.hasAttribute('disabled') ||\n              rootElement.hasAttribute('disabled') ||\n              input.classList.contains('disabled') ||\n              rootElement.classList.contains('disabled')) {\n              return\n            }\n            input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n            $(input).trigger('change')\n          }\n\n   
        input.focus()\n          addAriaPressed = false\n        }\n\n      }\n\n      if (addAriaPressed) {\n        this._element.setAttribute('aria-pressed',\n          !$(this._element).hasClass(ClassName.ACTIVE))\n      }\n\n      if (triggerChangeEvent) {\n        $(this._element).toggleClass(ClassName.ACTIVE)\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n\n        if (!data) {\n          data = new Button(this)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (config === 'toggle') {\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(do
 cument)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      event.preventDefault()\n\n      let button = event.target\n\n      if (!$(button).hasClass(ClassName.BUTTON)) {\n        button = $(button).closest(Selector.BUTTON)\n      }\n\n      Button._jQueryInterface.call($(button), 'toggle')\n    })\n    .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      const button = $(event.target).closest(Selector.BUTTON)[0]\n      $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Button._jQueryInterface\n  $.fn[NAME].Constructor = Button\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Button._jQueryInterface\n  }\n\n  return Button\n\n})($)\n\nexport d
 efault Button\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                   = 'carousel'\n  const VERSION                = '4.0.0-beta.2'\n  const DATA_KEY               = 'bs.carousel'\n  const EVENT_KEY              = `.${DATA_KEY}`\n  const DATA_API_KEY           = '.data-api'\n  const JQUERY_NO_CONFLICT     = $.fn[NAME]\n  const TRANSITION_DURATION    = 600\n  const ARROW_LEFT_KEYCODE     = 37 // KeyboardEvent.which value for left arrow key\n  cons
 t ARROW_RIGHT_KEYCODE    = 39 // KeyboardEvent.which value for right arrow key\n  const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n  const Default = {\n    interval : 5000,\n    keyboard : true,\n    slide    : false,\n    pause    : 'hover',\n    wrap     : true\n  }\n\n  const DefaultType = {\n    interval : '(number|boolean)',\n    keyboard : 'boolean',\n    slide    : '(boolean|string)',\n    pause    : '(string|boolean)',\n    wrap     : 'boolean'\n  }\n\n  const Direction = {\n    NEXT     : 'next',\n    PREV     : 'prev',\n    LEFT     : 'left',\n    RIGHT    : 'right'\n  }\n\n  const Event = {\n    SLIDE          : `slide${EVENT_KEY}`,\n    SLID           : `slid${EVENT_KEY}`,\n    KEYDOWN        : `keydown${EVENT_KEY}`,\n    MOUSEENTER     : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE     : `mouseleave${EVENT_KEY}`,\n    TOUCHEND       : `touchend${EVENT_KEY}`,\n    LOAD_DATA_API  : `load${EVENT_KEY}${DATA_API_KEY}`,\n    CLICK_DATA_AP
 I : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    CAROUSEL : 'carousel',\n    ACTIVE   : 'active',\n    SLIDE    : 'slide',\n    RIGHT    : 'carousel-item-right',\n    LEFT     : 'carousel-item-left',\n    NEXT     : 'carousel-item-next',\n    PREV     : 'carousel-item-prev',\n    ITEM     : 'carousel-item'\n  }\n\n  const Selector = {\n    ACTIVE      : '.active',\n    ACTIVE_ITEM : '.active.carousel-item',\n    ITEM        : '.carousel-item',\n    NEXT_PREV   : '.carousel-item-next, .carousel-item-prev',\n    INDICATORS  : '.carousel-indicators',\n    DATA_SLIDE  : '[data-slide], [data-slide-to]',\n    DATA_RIDE   : '[data-ride=\"carousel\"]'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Carousel {\n\n    constructor(element, config) {\n      this._items             = null\n      this._inter
 val          = null\n      this._activeElement     = null\n\n      this._isPaused          = false\n      this._isSliding         = false\n\n      this.touchTimeout       = null\n\n      this._config            = this._getConfig(config)\n      this._element           = $(element)[0]\n      this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n      this._addEventListeners()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    next() {\n      if (!this._isSliding) {\n        this._slide(Direction.NEXT)\n      }\n    }\n\n    nextWhenVisible() {\n      // Don't call next when the page isn't visible\n      // or the carousel or its parent isn't visible\n      if (!document.hidden &&\n        ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n        this.next()\n      }\n    }\n\n    prev() {\n      if (!this._i
 sSliding) {\n        this._slide(Direction.PREV)\n      }\n    }\n\n    pause(event) {\n      if (!event) {\n        this._isPaused = true\n      }\n\n      if ($(this._element).find(Selector.NEXT_PREV)[0] &&\n        Util.supportsTransitionEnd()) {\n        Util.triggerTransitionEnd(this._element)\n        this.cycle(true)\n      }\n\n      clearInterval(this._interval)\n      this._interval = null\n    }\n\n    cycle(event) {\n      if (!event) {\n        this._isPaused = false\n      }\n\n      if (this._interval) {\n        clearInterval(this._interval)\n        this._interval = null\n      }\n\n      if (this._config.interval && !this._isPaused) {\n        this._interval = setInterval(\n          (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n          this._config.interval\n        )\n      }\n    }\n\n    to(index) {\n      this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n      const activeIndex = this._getItemIndex(this._act
 iveElement)\n\n      if (index > this._items.length - 1 || index < 0) {\n        return\n      }\n\n      if (this._isSliding) {\n        $(this._element).one(Event.SLID, () => this.to(index))\n        return\n      }\n\n      if (activeIndex === index) {\n        this.pause()\n        this.cycle()\n        return\n      }\n\n      const direction = index > activeIndex ?\n        Direction.NEXT :\n        Direction.PREV\n\n      this._slide(direction, this._items[index])\n    }\n\n    dispose() {\n      $(this._element).off(EVENT_KEY)\n      $.removeData(this._element, DATA_KEY)\n\n      this._items             = null\n      this._config            = null\n      this._element           = null\n      this._interval          = null\n      this._isPaused          = null\n      this._isSliding         = null\n      this._activeElement     = null\n      this._indicatorsElement = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = $.extend({}, Default, config)\n   
    Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _addEventListeners() {\n      if (this._config.keyboard) {\n        $(this._element)\n          .on(Event.KEYDOWN, (event) => this._keydown(event))\n      }\n\n      if (this._config.pause === 'hover') {\n        $(this._element)\n          .on(Event.MOUSEENTER, (event) => this.pause(event))\n          .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n        if ('ontouchstart' in document.documentElement) {\n          // if it's a touch-enabled device, mouseenter/leave are fired as\n          // part of the mouse compatibility events on first tap - the carousel\n          // would stop cycling until user tapped out of it;\n          // here, we listen for touchend, explicitly pause the carousel\n          // (as if it's the second time we tap on it, mouseenter compat event\n          // is NOT fired) and after a timeout (to allow for mouse compatibility\n          // events to fire) we explicit
 ly restart cycling\n          $(this._element).on(Event.TOUCHEND, () => {\n            this.pause()\n            if (this.touchTimeout) {\n              clearTimeout(this.touchTimeout)\n            }\n            this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n          })\n        }\n      }\n    }\n\n    _keydown(event) {\n      if (/input|textarea/i.test(event.target.tagName)) {\n        return\n      }\n\n      switch (event.which) {\n        case ARROW_LEFT_KEYCODE:\n          event.preventDefault()\n          this.prev()\n          break\n        case ARROW_RIGHT_KEYCODE:\n          event.preventDefault()\n          this.next()\n          break\n        default:\n          return\n      }\n    }\n\n    _getItemIndex(element) {\n      this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n      return this._items.indexOf(element)\n    }\n\n    _getItemByDirection(direction, activeElement) {\n      const 
 isNextDirection = direction === Direction.NEXT\n      const isPrevDirection = direction === Direction.PREV\n      const activeIndex     = this._getItemIndex(activeElement)\n      const lastItemIndex   = this._items.length - 1\n      const isGoingToWrap   = isPrevDirection && activeIndex === 0 ||\n                              isNextDirection && activeIndex === lastItemIndex\n\n      if (isGoingToWrap && !this._config.wrap) {\n        return activeElement\n      }\n\n      const delta     = direction === Direction.PREV ? -1 : 1\n      const itemIndex = (activeIndex + delta) % this._items.length\n\n      return itemIndex === -1 ?\n        this._items[this._items.length - 1] : this._items[itemIndex]\n    }\n\n\n    _triggerSlideEvent(relatedTarget, eventDirectionName) {\n      const targetIndex = this._getItemIndex(relatedTarget)\n      const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n      const slideEvent = $.Event(Event.SLIDE, {\n        relatedT
 arget,\n        direction: eventDirectionName,\n        from: fromIndex,\n        to: targetIndex\n      })\n\n      $(this._element).trigger(slideEvent)\n\n      return slideEvent\n    }\n\n    _setActiveIndicatorElement(element) {\n      if (this._indicatorsElement) {\n        $(this._indicatorsElement)\n          .find(Selector.ACTIVE)\n          .removeClass(ClassName.ACTIVE)\n\n        const nextIndicator = this._indicatorsElement.children[\n          this._getItemIndex(element)\n        ]\n\n        if (nextIndicator) {\n          $(nextIndicator).addClass(ClassName.ACTIVE)\n        }\n      }\n    }\n\n    _slide(direction, element) {\n      const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n      const activeElementIndex = this._getItemIndex(activeElement)\n      const nextElement   = element || activeElement &&\n        this._getItemByDirection(direction, activeElement)\n      const nextElementIndex = this._getItemIndex(nextElement)\n      const isCycling
  = Boolean(this._interval)\n\n      let directionalClassName\n      let orderClassName\n      let eventDirectionName\n\n      if (direction === Direction.NEXT) {\n        directionalClassName = ClassName.LEFT\n        orderClassName = ClassName.NEXT\n        eventDirectionName = Direction.LEFT\n      } else {\n        directionalClassName = ClassName.RIGHT\n        orderClassName = ClassName.PREV\n        eventDirectionName = Direction.RIGHT\n      }\n\n      if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n        this._isSliding = false\n        return\n      }\n\n      const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n      if (slideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (!activeElement || !nextElement) {\n        // some weirdness is happening, so we bail\n        return\n      }\n\n      this._isSliding = true\n\n      if (isCycling) {\n        this.pause()\n      }\n\n      this._setActiveIndicatorElement(n
 extElement)\n\n      const slidEvent = $.Event(Event.SLID, {\n        relatedTarget: nextElement,\n        direction: eventDirectionName,\n        from: activeElementIndex,\n        to: nextElementIndex\n      })\n\n      if (Util.supportsTransitionEnd() &&\n        $(this._element).hasClass(ClassName.SLIDE)) {\n\n        $(nextElement).addClass(orderClassName)\n\n        Util.reflow(nextElement)\n\n        $(activeElement).addClass(directionalClassName)\n        $(nextElement).addClass(directionalClassName)\n\n        $(activeElement)\n          .one(Util.TRANSITION_END, () => {\n            $(nextElement)\n              .removeClass(`${directionalClassName} ${orderClassName}`)\n              .addClass(ClassName.ACTIVE)\n\n            $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n            this._isSliding = false\n\n            setTimeout(() => $(this._element).trigger(slidEvent), 0)\n\n          })\n          .emulateTransitionE
 nd(TRANSITION_DURATION)\n\n      } else {\n        $(activeElement).removeClass(ClassName.ACTIVE)\n        $(nextElement).addClass(ClassName.ACTIVE)\n\n        this._isSliding = false\n        $(this._element).trigger(slidEvent)\n      }\n\n      if (isCycling) {\n        this.cycle()\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = $.extend({}, Default, $(this).data())\n\n        if (typeof config === 'object') {\n          $.extend(_config, config)\n        }\n\n        const action = typeof config === 'string' ? config : _config.slide\n\n        if (!data) {\n          data = new Carousel(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'number') {\n          data.to(config)\n        } else if (typeof action === 'string') {\n          if (typeof data[action] === 'undefined') {\n            throw
  new Error(`No method named \"${action}\"`)\n          }\n          data[action]()\n        } else if (_config.interval) {\n          data.pause()\n          data.cycle()\n        }\n      })\n    }\n\n    static _dataApiClickHandler(event) {\n      const selector = Util.getSelectorFromElement(this)\n\n      if (!selector) {\n        return\n      }\n\n      const target = $(selector)[0]\n\n      if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n        return\n      }\n\n      const config     = $.extend({}, $(target).data(), $(this).data())\n      const slideIndex = this.getAttribute('data-slide-to')\n\n      if (slideIndex) {\n        config.interval = false\n      }\n\n      Carousel._jQueryInterface.call($(target), config)\n\n      if (slideIndex) {\n        $(target).data(DATA_KEY).to(slideIndex)\n      }\n\n      event.preventDefault()\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation
 \n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    $(Selector.DATA_RIDE).each(function () {\n      const $carousel = $(this)\n      Carousel._jQueryInterface.call($carousel, $carousel.data())\n    })\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Carousel._jQueryInterface\n  $.fn[NAME].Constructor = Carousel\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Carousel._jQueryInterface\n  }\n\n  return Carousel\n\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\
 n * Bootstrap (v4.0.0-beta.2): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'collapse'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.collapse'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 600\n\n  const Default = {\n    toggle : true,\n    parent : ''\n  }\n\n  const DefaultType = {\n    toggle : 'boolean',\n    parent : '(string|element)'\n  }\n\n  const Event = {\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    HID
 E           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SHOW       : 'show',\n    COLLAPSE   : 'collapse',\n    COLLAPSING : 'collapsing',\n    COLLAPSED  : 'collapsed'\n  }\n\n  const Dimension = {\n    WIDTH  : 'width',\n    HEIGHT : 'height'\n  }\n\n  const Selector = {\n    ACTIVES     : '.show, .collapsing',\n    DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Collapse {\n\n    constructor(element, config) {\n      this._isTransitioning = false\n      this._element         = element\n      this._config          = this._getConfig(config)\n      this._triggerArray    = $.makeArray($(\n        `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n        `[da
 ta-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n      ))\n      const tabToggles = $(Selector.DATA_TOGGLE)\n      for (let i = 0; i < tabToggles.length; i++) {\n        const elem = tabToggles[i]\n        const selector = Util.getSelectorFromElement(elem)\n        if (selector !== null && $(selector).filter(element).length > 0) {\n          this._triggerArray.push(elem)\n        }\n      }\n\n      this._parent = this._config.parent ? this._getParent() : null\n\n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n      }\n\n      if (this._config.toggle) {\n        this.toggle()\n      }\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    toggle() {\n      if ($(this._element).hasClass(ClassName.SHOW)) {\n        this.hide()\n      } else {\n        this.show()\n      }\n    }\n\n    show() {\n     
  if (this._isTransitioning ||\n        $(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      let actives\n      let activesData\n\n      if (this._parent) {\n        actives = $.makeArray($(this._parent).children().children(Selector.ACTIVES))\n        if (!actives.length) {\n          actives = null\n        }\n      }\n\n      if (actives) {\n        activesData = $(actives).data(DATA_KEY)\n        if (activesData && activesData._isTransitioning) {\n          return\n        }\n      }\n\n      const startEvent = $.Event(Event.SHOW)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($(actives), 'hide')\n        if (!activesData) {\n          $(actives).data(DATA_KEY, null)\n        }\n      }\n\n      const dimension = this._getDimension()\n\n      $(this._element)\n        .removeClass(ClassName.COLLAPSE)\n        .addClass(ClassN
 ame.COLLAPSING)\n\n      this._element.style[dimension] = 0\n\n      if (this._triggerArray.length) {\n        $(this._triggerArray)\n          .removeClass(ClassName.COLLAPSED)\n          .attr('aria-expanded', true)\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .addClass(ClassName.SHOW)\n\n        this._element.style[dimension] = ''\n\n        this.setTransitioning(false)\n\n        $(this._element).trigger(Event.SHOWN)\n      }\n\n      if (!Util.supportsTransitionEnd()) {\n        complete()\n        return\n      }\n\n      const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n      const scrollSize           = `scroll${capitalizedDimension}`\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(TRANSITION_DURATION)\n\n      this._element.style[dimensi
 on] = `${this._element[scrollSize]}px`\n    }\n\n    hide() {\n      if (this._isTransitioning ||\n        !$(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      const startEvent = $.Event(Event.HIDE)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      const dimension       = this._getDimension()\n\n      this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n      Util.reflow(this._element)\n\n      $(this._element)\n        .addClass(ClassName.COLLAPSING)\n        .removeClass(ClassName.COLLAPSE)\n        .removeClass(ClassName.SHOW)\n\n      if (this._triggerArray.length) {\n        for (let i = 0; i < this._triggerArray.length; i++) {\n          const trigger = this._triggerArray[i]\n          const selector = Util.getSelectorFromElement(trigger)\n          if (selector !== null) {\n            const $elem = $(selector)\n            if (!$elem.has
 Class(ClassName.SHOW)) {\n              $(trigger).addClass(ClassName.COLLAPSED)\n                   .attr('aria-expanded', false)\n            }\n          }\n        }\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        this.setTransitioning(false)\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .trigger(Event.HIDDEN)\n      }\n\n      this._element.style[dimension] = ''\n\n      if (!Util.supportsTransitionEnd()) {\n        complete()\n        return\n      }\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(TRANSITION_DURATION)\n    }\n\n    setTransitioning(isTransitioning) {\n      this._isTransitioning = isTransitioning\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      this._config          = null\n      this._parent          = null\n      this._element         = null\n      this._tri
 ggerArray    = null\n      this._isTransitioning = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = $.extend({}, Default, config)\n      config.toggle = Boolean(config.toggle) // coerce string values\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _getDimension() {\n      const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n    }\n\n    _getParent() {\n      let parent = null\n      if (Util.isElement(this._config.parent)) {\n        parent = this._config.parent\n\n        // it's a jQuery object\n        if (typeof this._config.parent.jquery !== 'undefined') {\n          parent = this._config.parent[0]\n        }\n      } else {\n        parent = $(this._config.parent)[0]\n      }\n\n      const selector =\n        `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n      $(parent).find(selector).each((i, element) => {\n       
  this._addAriaAndCollapsedClass(\n          Collapse._getTargetFromElement(element),\n          [element]\n        )\n      })\n\n      return parent\n    }\n\n    _addAriaAndCollapsedClass(element, triggerArray) {\n      if (element) {\n        const isOpen = $(element).hasClass(ClassName.SHOW)\n\n        if (triggerArray.length) {\n          $(triggerArray)\n            .toggleClass(ClassName.COLLAPSED, !isOpen)\n            .attr('aria-expanded', isOpen)\n        }\n      }\n    }\n\n\n    // static\n\n    static _getTargetFromElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      return selector ? $(selector)[0] : null\n    }\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this   = $(this)\n        let data      = $this.data(DATA_KEY)\n        const _config = $.extend(\n          {},\n          Default,\n          $this.data(),\n          typeof config === 'object' && config\n        )\n\n        if (
 !data && _config.toggle && /show|hide/.test(config)) {\n          _config.toggle = false\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n    if (event.currentTarget.tagName === 'A') {\n      event.preventDefault()\n    }\n\n    const $trigger = $(this)\n    const selector = Util.getSele
 ctorFromElement(this)\n    $(selector).each(function () {\n      const $target = $(this)\n      const data    = $target.data(DATA_KEY)\n      const config  = data ? 'toggle' : $trigger.data()\n      Collapse._jQueryInterface.call($target, config)\n    })\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Collapse._jQueryInterface\n  $.fn[NAME].Constructor = Collapse\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Collapse._jQueryInterface\n  }\n\n  return Collapse\n\n})($)\n\nexport default Collapse\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/
 blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (() => {\n\n  /**\n   * Check for Popper dependency\n   * Popper - https://popper.js.org\n   */\n  if (typeof Popper === 'undefined') {\n    throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                     = 'dropdown'\n  const VERSION                  = '4.0.0-beta.2'\n  const DATA_KEY                 = 'bs.dropdown'\n  const EVENT_KEY                = `.${DATA_KEY}`\n  const DATA_API_KEY             = '.data-api'\n  const JQUERY_NO_CONFLICT       = $.fn[NAME]\n  const ESCAPE_KEYCODE           = 27 // KeyboardEvent.which value for Escape (Esc) key\n  const SPACE_KEYCODE            = 32 // KeyboardEvent.which value for
  space key\n  const TAB_KEYCODE              = 9 // KeyboardEvent.which value for tab key\n  const ARROW_UP_KEYCODE         = 38 // KeyboardEvent.which value for up arrow key\n  const ARROW_DOWN_KEYCODE       = 40 // KeyboardEvent.which value for down arrow key\n  const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n  const REGEXP_KEYDOWN           = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n  const Event = {\n    HIDE             : `hide${EVENT_KEY}`,\n    HIDDEN           : `hidden${EVENT_KEY}`,\n    SHOW             : `show${EVENT_KEY}`,\n    SHOWN            : `shown${EVENT_KEY}`,\n    CLICK            : `click${EVENT_KEY}`,\n    CLICK_DATA_API   : `click${EVENT_KEY}${DATA_API_KEY}`,\n    KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n    KEYUP_DATA_API   : `keyup${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DISABLED  : 'disabled',\n    SHOW      : 'show'
 ,\n    DROPUP    : 'dropup',\n    MENURIGHT : 'dropdown-menu-right',\n    MENULEFT  : 'dropdown-menu-left'\n  }\n\n  const Selector = {\n    DATA_TOGGLE   : '[data-toggle=\"dropdown\"]',\n    FORM_CHILD    : '.dropdown form',\n    MENU          : '.dropdown-menu',\n    NAVBAR_NAV    : '.navbar-nav',\n    VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled)'\n  }\n\n  const AttachmentMap = {\n    TOP       : 'top-start',\n    TOPEND    : 'top-end',\n    BOTTOM    : 'bottom-start',\n    BOTTOMEND : 'bottom-end'\n  }\n\n  const Default = {\n    offset      : 0,\n    flip        : true\n  }\n\n  const DefaultType = {\n    offset      : '(number|string|function)',\n    flip        : 'boolean'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Dropdown {\n\n    constructor(element, config) {\n      this._element  = ele
 ment\n      this._popper   = null\n      this._config   = this._getConfig(config)\n      this._menu     = this._getMenuElement()\n      this._inNavbar = this._detectNavbar()\n\n      this._addEventListeners()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n    // public\n\n    toggle() {\n      if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      const parent   = Dropdown._getParentFromElement(this._element)\n      const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n      Dropdown._clearMenus()\n\n      if (isActive) {\n        return\n      }\n\n      const relatedTarget = {\n        relatedTarget : this._element\n      }\n      const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n      $(parent).trigger(showEvent)\n\n      if (showEvent.isDefaultPr
 evented()) {\n        return\n      }\n\n      let element = this._element\n      // for dropup with alignment we use the parent as popper container\n      if ($(parent).hasClass(ClassName.DROPUP)) {\n        if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {\n          element = parent\n        }\n      }\n      this._popper = new Popper(element, this._menu, this._getPopperConfig())\n\n      // if this is a touch-enabled device we add extra\n      // empty mouseover listeners to the body's immediate children;\n      // only needed because of broken event delegation on iOS\n      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n      if ('ontouchstart' in document.documentElement &&\n         !$(parent).closest(Selector.NAVBAR_NAV).length) {\n        $('body').children().on('mouseover', null, $.noop)\n      }\n\n      this._element.focus()\n      this._element.setAttribute('aria-expanded', true)\n\n      $(this._
 menu).toggleClass(ClassName.SHOW)\n      $(parent)\n        .toggleClass(ClassName.SHOW)\n        .trigger($.Event(Event.SHOWN, relatedTarget))\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      $(this._element).off(EVENT_KEY)\n      this._element = null\n      this._menu = null\n      if (this._popper !== null) {\n        this._popper.destroy()\n      }\n      this._popper = null\n    }\n\n    update() {\n      this._inNavbar = this._detectNavbar()\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate()\n      }\n    }\n\n    // private\n\n    _addEventListeners() {\n      $(this._element).on(Event.CLICK, (event) => {\n        event.preventDefault()\n        event.stopPropagation()\n        this.toggle()\n      })\n    }\n\n    _getConfig(config) {\n      config = $.extend(\n        {},\n        this.constructor.Default,\n        $(this._element).data(),\n        config\n      )\n\n      Util.typeCheckConfig(\n        NAME,\n        con
 fig,\n        this.constructor.DefaultType\n      )\n\n      return config\n    }\n\n    _getMenuElement() {\n      if (!this._menu) {\n        const parent = Dropdown._getParentFromElement(this._element)\n        this._menu = $(parent).find(Selector.MENU)[0]\n      }\n      return this._menu\n    }\n\n    _getPlacement() {\n      const $parentDropdown = $(this._element).parent()\n      let placement = AttachmentMap.BOTTOM\n\n      // Handle dropup\n      if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n        placement = AttachmentMap.TOP\n        if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n          placement = AttachmentMap.TOPEND\n        }\n      } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n        placement = AttachmentMap.BOTTOMEND\n      }\n      return placement\n    }\n\n    _detectNavbar() {\n      return $(this._element).closest('.navbar').length > 0\n    }\n\n    _getPopperConfig() {\n      const offsetConf = {}\n      if (typeof this._config.of
 fset === 'function') {\n        offsetConf.fn = (data) => {\n          data.offsets = $.extend({}, data.offsets, this._config.offset(data.offsets) || {})\n          return data\n        }\n      } else {\n        offsetConf.offset = this._config.offset\n      }\n      const popperConfig = {\n        placement : this._getPlacement(),\n        modifiers : {\n          offset : offsetConf,\n          flip : {\n            enabled : this._config.flip\n          }\n        }\n      }\n\n      // Disable Popper.js for Dropdown in Navbar\n      if (this._inNavbar) {\n        popperConfig.modifiers.applyStyle = {\n          enabled: !this._inNavbar\n        }\n      }\n      return popperConfig\n    }\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' ? config : null\n\n        if (!data) {\n          data = new Dropdown(this, _config)\n          $(this
 ).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n    static _clearMenus(event) {\n      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n        event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n        return\n      }\n\n      const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n      for (let i = 0; i < toggles.length; i++) {\n        const parent        = Dropdown._getParentFromElement(toggles[i])\n        const context       = $(toggles[i]).data(DATA_KEY)\n        const relatedTarget = {\n          relatedTarget : toggles[i]\n        }\n\n        if (!context) {\n          continue\n        }\n\n        const dropdownMenu = context._menu\n        if (!$(parent).hasClass(ClassName.SHOW)) {\n          continue\n        }\n\n        if (event && (eve
 nt.type === 'click' &&\n            /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE)\n            && $.contains(parent, event.target)) {\n          continue\n        }\n\n        const hideEvent = $.Event(Event.HIDE, relatedTarget)\n        $(parent).trigger(hideEvent)\n        if (hideEvent.isDefaultPrevented()) {\n          continue\n        }\n\n        // if this is a touch-enabled device we remove the extra\n        // empty mouseover listeners we added for iOS support\n        if ('ontouchstart' in document.documentElement) {\n          $('body').children().off('mouseover', null, $.noop)\n        }\n\n        toggles[i].setAttribute('aria-expanded', 'false')\n\n        $(dropdownMenu).removeClass(ClassName.SHOW)\n        $(parent)\n          .removeClass(ClassName.SHOW)\n          .trigger($.Event(Event.HIDDEN, relatedTarget))\n      }\n    }\n\n    static _getParentFromElement(element) {\n      let parent\n      const sele
 ctor = Util.getSelectorFromElement(element)\n\n      if (selector) {\n        parent = $(selector)[0]\n      }\n\n      return parent || element.parentNode\n    }\n\n    static _dataApiKeydownHandler(event) {\n      if (!REGEXP_KEYDOWN.test(event.which) || /button/i.test(event.target.tagName) && event.which === SPACE_KEYCODE ||\n         /input|textarea/i.test(event.target.tagName)) {\n        return\n      }\n\n      event.preventDefault()\n      event.stopPropagation()\n\n      if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      const parent   = Dropdown._getParentFromElement(this)\n      const isActive = $(parent).hasClass(ClassName.SHOW)\n\n      if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n           isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n\n        if (event.which === ESCAPE_KEYCODE) {\n          const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n
           $(toggle).trigger('focus')\n        }\n\n        $(this).trigger('click')\n        return\n      }\n\n      const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n      if (!items.length) {\n        return\n      }\n\n      let index = items.indexOf(event.target)\n\n      if (event.which === ARROW_UP_KEYCODE && index > 0) { // up\n        index--\n      }\n\n      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // down\n        index++\n      }\n\n      if (index < 0) {\n        index = 0\n      }\n\n      items[index].focus()\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE,  Dropdown._dataApiKeydownHandler)\n    .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n    .on(`${Event.
 CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault()\n      event.stopPropagation()\n      Dropdown._jQueryInterface.call($(this), 'toggle')\n    })\n    .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n      e.stopPropagation()\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Dropdown._jQueryInterface\n  $.fn[NAME].Constructor = Dropdown\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Dropdown._jQueryInterface\n  }\n\n  return Dropdown\n\n})($, Popper)\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2
 ): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                         = 'modal'\n  const VERSION                      = '4.0.0-beta.2'\n  const DATA_KEY                     = 'bs.modal'\n  const EVENT_KEY                    = `.${DATA_KEY}`\n  const DATA_API_KEY                 = '.data-api'\n  const JQUERY_NO_CONFLICT           = $.fn[NAME]\n  const TRANSITION_DURATION          = 300\n  const BACKDROP_TRANSITION_DURATION = 150\n  const ESCAPE_KEYCODE               = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n  const Default = {\n    backdrop : true,\n    keyboard : true,\n    focus    : true,\n    show     : true
 \n  }\n\n  const DefaultType = {\n    backdrop : '(boolean|string)',\n    keyboard : 'boolean',\n    focus    : 'boolean',\n    show     : 'boolean'\n  }\n\n  const Event = {\n    HIDE              : `hide${EVENT_KEY}`,\n    HIDDEN            : `hidden${EVENT_KEY}`,\n    SHOW              : `show${EVENT_KEY}`,\n    SHOWN             : `shown${EVENT_KEY}`,\n    FOCUSIN           : `focusin${EVENT_KEY}`,\n    RESIZE            : `resize${EVENT_KEY}`,\n    CLICK_DISMISS     : `click.dismiss${EVENT_KEY}`,\n    KEYDOWN_DISMISS   : `keydown.dismiss${EVENT_KEY}`,\n    MOUSEUP_DISMISS   : `mouseup.dismiss${EVENT_KEY}`,\n    MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n    CLICK_DATA_API    : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n    BACKDROP           : 'modal-backdrop',\n    OPEN               : 'modal-open',\n    FADE               : 'fade',\n    SHOW               : 'show'\n  }\n\n  const Selector =
  {\n    DIALOG             : '.modal-dialog',\n    DATA_TOGGLE        : '[data-toggle=\"modal\"]',\n    DATA_DISMISS       : '[data-dismiss=\"modal\"]',\n    FIXED_CONTENT      : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n    STICKY_CONTENT     : '.sticky-top',\n    NAVBAR_TOGGLER     : '.navbar-toggler'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Modal {\n\n    constructor(element, config) {\n      this._config              = this._getConfig(config)\n      this._element             = element\n      this._dialog              = $(element).find(Selector.DIALOG)[0]\n      this._backdrop            = null\n      this._isShown             = false\n      this._isBodyOverflowing   = false\n      this._ignoreBackdropClick = false\n      this._originalBodyPadding = 0\n      this._scrollbarWidth      = 0\n    }\n\
 n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    toggle(relatedTarget) {\n      return this._isShown ? this.hide() : this.show(relatedTarget)\n    }\n\n    show(relatedTarget) {\n      if (this._isTransitioning || this._isShown) {\n        return\n      }\n\n      if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {\n        this._isTransitioning = true\n      }\n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget\n      })\n\n      $(this._element).trigger(showEvent)\n\n      if (this._isShown || showEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown = true\n\n      this._checkScrollbar()\n      this._setScrollbar()\n\n      this._adjustDialog()\n\n      $(document.body).addClass(ClassName.OPEN)\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(this._element).on(\n        Eve
 nt.CLICK_DISMISS,\n        Selector.DATA_DISMISS,\n        (event) => this.hide(event)\n      )\n\n      $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n        $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n          if ($(event.target).is(this._element)) {\n            this._ignoreBackdropClick = true\n          }\n        })\n      })\n\n      this._showBackdrop(() => this._showElement(relatedTarget))\n    }\n\n    hide(event) {\n      if (event) {\n        event.preventDefault()\n      }\n\n      if (this._isTransitioning || !this._isShown) {\n        return\n      }\n\n      const hideEvent = $.Event(Event.HIDE)\n\n      $(this._element).trigger(hideEvent)\n\n      if (!this._isShown || hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown = false\n\n      const transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)\n\n      if (transition) {\n        this._isTransitioning = true\n      }\n\n      this.
 _setEscapeEvent()\n      this._setResizeEvent()\n\n      $(document).off(Event.FOCUSIN)\n\n      $(this._element).removeClass(ClassName.SHOW)\n\n      $(this._element).off(Event.CLICK_DISMISS)\n      $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n      if (transition) {\n\n        $(this._element)\n          .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n          .emulateTransitionEnd(TRANSITION_DURATION)\n      } else {\n        this._hideModal()\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n      this._config              = null\n      this._element             = null\n      this._dialog              = null\n      this._backdrop            = null\n      this._isShown             = null\n      this._isBodyOverflowing   = null\n      this._ignoreBackdropClick = null\n      this._scrollbarWidth      = null\n    }\n\n    handleUpdate() {\n      this._adjustD
 ialog()\n    }\n\n    // private\n\n    _getConfig(config) {\n      config = $.extend({}, Default, config)\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _showElement(relatedTarget) {\n      const transition = Util.supportsTransitionEnd() &&\n        $(this._element).hasClass(ClassName.FADE)\n\n      if (!this._element.parentNode ||\n         this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n        // don't move modals dom position\n        document.body.appendChild(this._element)\n      }\n\n      this._element.style.display = 'block'\n      this._element.removeAttribute('aria-hidden')\n      this._element.scrollTop = 0\n\n      if (transition) {\n        Util.reflow(this._element)\n      }\n\n      $(this._element).addClass(ClassName.SHOW)\n\n      if (this._config.focus) {\n        this._enforceFocus()\n      }\n\n      const shownEvent = $.Event(Event.SHOWN, {\n        relatedTarget\n      })\n\n      const transitionComplete
  = () => {\n        if (this._config.focus) {\n          this._element.focus()\n        }\n        this._isTransitioning = false\n        $(this._element).trigger(shownEvent)\n      }\n\n      if (transition) {\n        $(this._dialog)\n          .one(Util.TRANSITION_END, transitionComplete)\n          .emulateTransitionEnd(TRANSITION_DURATION)\n      } else {\n        transitionComplete()\n      }\n    }\n\n    _enforceFocus() {\n      $(document)\n        .off(Event.FOCUSIN) // guard against infinite focus loop\n        .on(Event.FOCUSIN, (event) => {\n          if (document !== event.target &&\n              this._element !== event.target &&\n              !$(this._element).has(event.target).length) {\n            this._element.focus()\n          }\n        })\n    }\n\n    _setEscapeEvent() {\n      if (this._isShown && this._config.keyboard) {\n        $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n          if (event.which === ESCAPE_KEYCODE) {\n            event.pre
 ventDefault()\n            this.hide()\n          }\n        })\n\n      } else if (!this._isShown) {\n        $(this._element).off(Event.KEYDOWN_DISMISS)\n      }\n    }\n\n    _setResizeEvent() {\n      if (this._isShown) {\n        $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n      } else {\n        $(window).off(Event.RESIZE)\n      }\n    }\n\n    _hideModal() {\n      this._element.style.display = 'none'\n      this._element.setAttribute('aria-hidden', true)\n      this._isTransitioning = false\n      this._showBackdrop(() => {\n        $(document.body).removeClass(ClassName.OPEN)\n        this._resetAdjustments()\n        this._resetScrollbar()\n        $(this._element).trigger(Event.HIDDEN)\n      })\n    }\n\n    _removeBackdrop() {\n      if (this._backdrop) {\n        $(this._backdrop).remove()\n        this._backdrop = null\n      }\n    }\n\n    _showBackdrop(callback) {\n      const animate = $(this._element).hasClass(ClassName.FADE) ?\n        Clas
 sName.FADE : ''\n\n      if (this._isShown && this._config.backdrop) {\n        const doAnimate = Util.supportsTransitionEnd() && animate\n\n        this._backdrop = document.createElement('div')\n        this._backdrop.className = ClassName.BACKDROP\n\n        if (animate) {\n          $(this._backdrop).addClass(animate)\n        }\n\n        $(this._backdrop).appendTo(document.body)\n\n        $(this._element).on(Event.CLICK_DISMISS, (event) => {\n          if (this._ignoreBackdropClick) {\n            this._ignoreBackdropClick = false\n            return\n          }\n          if (event.target !== event.currentTarget) {\n            return\n          }\n          if (this._config.backdrop === 'static') {\n            this._element.focus()\n          } else {\n            this.hide()\n          }\n        })\n\n        if (doAnimate) {\n          Util.reflow(this._backdrop)\n        }\n\n        $(this._backdrop).addClass(ClassName.SHOW)\n\n        if (!callback) {\n          ret
 urn\n        }\n\n        if (!doAnimate) {\n          callback()\n          return\n        }\n\n        $(this._backdrop)\n          .one(Util.TRANSITION_END, callback)\n          .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n\n      } else if (!this._isShown && this._backdrop) {\n        $(this._backdrop).removeClass(ClassName.SHOW)\n\n        const callbackRemove = () => {\n          this._removeBackdrop()\n          if (callback) {\n            callback()\n          }\n        }\n\n        if (Util.supportsTransitionEnd() &&\n           $(this._element).hasClass(ClassName.FADE)) {\n          $(this._backdrop)\n            .one(Util.TRANSITION_END, callbackRemove)\n            .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n        } else {\n          callbackRemove()\n        }\n\n      } else if (callback) {\n        callback()\n      }\n    }\n\n\n    // ----------------------------------------------------------------------\n    // the following methods are used t
 o handle overflowing modals\n    // todo (fat): these should probably be refactored out of modal.js\n    // ----------------------------------------------------------------------\n\n    _adjustDialog() {\n      const isModalOverflowing =\n        this._element.scrollHeight > document.documentElement.clientHeight\n\n      if (!this._isBodyOverflowing && isModalOverflowing) {\n        this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n      }\n\n      if (this._isBodyOverflowing && !isModalOverflowing) {\n        this._element.style.paddingRight = `${this._scrollbarWidth}px`\n      }\n    }\n\n    _resetAdjustments() {\n      this._element.style.paddingLeft = ''\n      this._element.style.paddingRight = ''\n    }\n\n    _checkScrollbar() {\n      const rect = document.body.getBoundingClientRect()\n      this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n      this._scrollbarWidth = this._getScrollbarWidth()\n    }\n\n    _setScrollbar() {\n      if (this
 ._isBodyOverflowing) {\n        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n        // Adjust fixed content padding\n        $(Selector.FIXED_CONTENT).each((index, element) => {\n          const actualPadding = $(element)[0].style.paddingRight\n          const calculatedPadding = $(element).css('padding-right')\n          $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust sticky content margin\n        $(Selector.STICKY_CONTENT).each((index, element) => {\n          const actualMargin = $(element)[0].style.marginRight\n          const calculatedMargin = $(element).css('margin-right')\n          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n        })\n\n        
 // Adjust navbar-toggler margin\n        $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n          const actualMargin = $(element)[0].style.marginRight\n          const calculatedMargin = $(element).css('margin-right')\n          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust body padding\n        const actualPadding = document.body.style.paddingRight\n        const calculatedPadding = $('body').css('padding-right')\n        $('body').data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n      }\n    }\n\n    _resetScrollbar() {\n      // Restore fixed content padding\n      $(Selector.FIXED_CONTENT).each((index, element) => {\n        const padding = $(element).data('padding-right')\n        if (typeof padding !== 'undefined') {\n          $(element).css('padding-right', padding).removeData('padding-
 right')\n        }\n      })\n\n      // Restore sticky content and navbar-toggler margin\n      $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {\n        const margin = $(element).data('margin-right')\n        if (typeof margin !== 'undefined') {\n          $(element).css('margin-right', margin).removeData('margin-right')\n        }\n      })\n\n      // Restore body padding\n      const padding = $('body').data('padding-right')\n      if (typeof padding !== 'undefined') {\n        $('body').css('padding-right', padding).removeData('padding-right')\n      }\n    }\n\n    _getScrollbarWidth() { // thx d.walsh\n      const scrollDiv = document.createElement('div')\n      scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n      document.body.appendChild(scrollDiv)\n      const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n      document.body.removeChild(scrollDiv)\n      return scrollbarWidth\n    }\n\n\n    //
  static\n\n    static _jQueryInterface(config, relatedTarget) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = $.extend(\n          {},\n          Modal.Default,\n          $(this).data(),\n          typeof config === 'object' && config\n        )\n\n        if (!data) {\n          data = new Modal(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config](relatedTarget)\n        } else if (_config.show) {\n          data.show(relatedTarget)\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API,
  Selector.DATA_TOGGLE, function (event) {\n    let target\n    const selector = Util.getSelectorFromElement(this)\n\n    if (selector) {\n      target = $(selector)[0]\n    }\n\n    const config = $(target).data(DATA_KEY) ?\n      'toggle' : $.extend({}, $(target).data(), $(this).data())\n\n    if (this.tagName === 'A' || this.tagName === 'AREA') {\n      event.preventDefault()\n    }\n\n    const $target = $(target).one(Event.SHOW, (showEvent) => {\n      if (showEvent.isDefaultPrevented()) {\n        // only register focus restorer if modal will actually get shown\n        return\n      }\n\n      $target.one(Event.HIDDEN, () => {\n        if ($(this).is(':visible')) {\n          this.focus()\n        }\n      })\n    })\n\n    Modal._jQueryInterface.call($(target), config, this)\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn
 [NAME]             = Modal._jQueryInterface\n  $.fn[NAME].Constructor = Modal\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Modal._jQueryInterface\n  }\n\n  return Modal\n\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (() => {\n\n  /**\n   * Check for Popper dependency\n   * Popper - https://popper.js.org\n   */\n  if (typeof Popper === 'undefined') {\n    throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * -------------
 -----------------------------------------------------------\n   */\n\n  const NAME                = 'tooltip'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.tooltip'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n  const CLASS_PREFIX        = 'bs-tooltip'\n  const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n  const DefaultType = {\n    animation           : 'boolean',\n    template            : 'string',\n    title               : '(string|element|function)',\n    trigger             : 'string',\n    delay               : '(number|object)',\n    html                : 'boolean',\n    selector            : '(string|boolean)',\n    placement           : '(string|function)',\n    offset              : '(number|string)',\n    container           : '(string|element|boolean)',\n    fallbackPlacement   : '(string|array)'\n  }\n\n  const AttachmentMap =
  {\n    AUTO   : 'auto',\n    TOP    : 'top',\n    RIGHT  : 'right',\n    BOTTOM : 'bottom',\n    LEFT   : 'left'\n  }\n\n  const Default = {\n    animation           : true,\n    template            : '<div class=\"tooltip\" role=\"tooltip\">'\n                        + '<div class=\"arrow\"></div>'\n                        + '<div class=\"tooltip-inner\"></div></div>',\n    trigger             : 'hover focus',\n    title               : '',\n    delay               : 0,\n    html                : false,\n    selector            : false,\n    placement           : 'top',\n    offset              : 0,\n    container           : false,\n    fallbackPlacement   : 'flip'\n  }\n\n  const HoverState = {\n    SHOW : 'show',\n    OUT  : 'out'\n  }\n\n  const Event = {\n    HIDE       : `hide${EVENT_KEY}`,\n    HIDDEN     : `hidden${EVENT_KEY}`,\n    SHOW       : `show${EVENT_KEY}`,\n    SHOWN      : `shown${EVENT_KEY}`,\n    INSERTED   : `inserted${EVENT_KEY}`,\n    CLICK      : `click${EV
 ENT_KEY}`,\n    FOCUSIN    : `focusin${EVENT_KEY}`,\n    FOCUSOUT   : `focusout${EVENT_KEY}`,\n    MOUSEENTER : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE : `mouseleave${EVENT_KEY}`\n  }\n\n  const ClassName = {\n    FADE : 'fade',\n    SHOW : 'show'\n  }\n\n  const Selector = {\n    TOOLTIP       : '.tooltip',\n    TOOLTIP_INNER : '.tooltip-inner',\n    ARROW         : '.arrow'\n  }\n\n  const Trigger = {\n    HOVER  : 'hover',\n    FOCUS  : 'focus',\n    CLICK  : 'click',\n    MANUAL : 'manual'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Tooltip {\n\n    constructor(element, config) {\n\n      // private\n      this._isEnabled     = true\n      this._timeout       = 0\n      this._hoverState    = ''\n      this._activeTrigger = {}\n      this._popper        = null\n\n      // protected\n      this.element = elemen
 t\n      this.config  = this._getConfig(config)\n      this.tip     = null\n\n      this._setListeners()\n\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get NAME() {\n      return NAME\n    }\n\n    static get DATA_KEY() {\n      return DATA_KEY\n    }\n\n    static get Event() {\n      return Event\n    }\n\n    static get EVENT_KEY() {\n      return EVENT_KEY\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n\n    // public\n\n    enable() {\n      this._isEnabled = true\n    }\n\n    disable() {\n      this._isEnabled = false\n    }\n\n    toggleEnabled() {\n      this._isEnabled = !this._isEnabled\n    }\n\n    toggle(event) {\n      if (!this._isEnabled) {\n        return\n      }\n\n      if (event) {\n        const dataKey = this.constructor.DATA_KEY\n        let context = $(event.currentTarget).data(dataKey)\n\n        if (!context) {\n 
          context = new this.constructor(\n            event.currentTarget,\n            this._getDelegateConfig()\n          )\n          $(event.currentTarget).data(dataKey, context)\n        }\n\n        context._activeTrigger.click = !context._activeTrigger.click\n\n        if (context._isWithActiveTrigger()) {\n          context._enter(null, context)\n        } else {\n          context._leave(null, context)\n        }\n\n      } else {\n\n        if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n          this._leave(null, this)\n          return\n        }\n\n        this._enter(null, this)\n      }\n    }\n\n    dispose() {\n      clearTimeout(this._timeout)\n\n      $.removeData(this.element, this.constructor.DATA_KEY)\n\n      $(this.element).off(this.constructor.EVENT_KEY)\n      $(this.element).closest('.modal').off('hide.bs.modal')\n\n      if (this.tip) {\n        $(this.tip).remove()\n      }\n\n      this._isEnabled     = null\n      this._timeout       = null\
 n      this._hoverState    = null\n      this._activeTrigger = null\n      if (this._popper !== null) {\n        this._popper.destroy()\n      }\n\n      this._popper = null\n      this.element = null\n      this.config  = null\n      this.tip     = null\n    }\n\n    show() {\n      if ($(this.element).css('display') === 'none') {\n        throw new Error('Please use show on visible elements')\n      }\n\n      const showEvent = $.Event(this.constructor.Event.SHOW)\n      if (this.isWithContent() && this._isEnabled) {\n        $(this.element).trigger(showEvent)\n\n        const isInTheDom = $.contains(\n          this.element.ownerDocument.documentElement,\n          this.element\n        )\n\n        if (showEvent.isDefaultPrevented() || !isInTheDom) {\n          return\n        }\n\n        const tip   = this.getTipElement()\n        const tipId = Util.getUID(this.constructor.NAME)\n\n        tip.setAttribute('id', tipId)\n        this.element.setAttribute('aria-describedby', tip
 Id)\n\n        this.setContent()\n\n        if (this.config.animation) {\n          $(tip).addClass(ClassName.FADE)\n        }\n\n        const placement  = typeof this.config.placement === 'function' ?\n          this.config.placement.call(this, tip, this.element) :\n          this.config.placement\n\n        const attachment = this._getAttachment(placement)\n        this.addAttachmentClass(attachment)\n\n        const container = this.config.container === false ? document.body : $(this.config.container)\n\n        $(tip).data(this.constructor.DATA_KEY, this)\n\n        if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n          $(tip).appendTo(container)\n        }\n\n        $(this.element).trigger(this.constructor.Event.INSERTED)\n\n        this._popper = new Popper(this.element, tip, {\n          placement: attachment,\n          modifiers: {\n            offset: {\n              offset: this.config.offset\n            },\n            flip: {\n          
     behavior: this.config.fallbackPlacement\n            },\n            arrow: {\n              element: Selector.ARROW\n            }\n          },\n          onCreate: (data) => {\n            if (data.originalPlacement !== data.placement) {\n              this._handlePopperPlacementChange(data)\n            }\n          },\n          onUpdate : (data) => {\n            this._handlePopperPlacementChange(data)\n          }\n        })\n\n        $(tip).addClass(ClassName.SHOW)\n\n        // if this is a touch-enabled device we add extra\n        // empty mouseover listeners to the body's immediate children;\n        // only needed because of broken event delegation on iOS\n        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n        if ('ontouchstart' in document.documentElement) {\n          $('body').children().on('mouseover', null, $.noop)\n        }\n\n        const complete = () => {\n          if (this.config.animation) {\n            this._fixTr
 ansition()\n          }\n          const prevHoverState = this._hoverState\n          this._hoverState     = null\n\n          $(this.element).trigger(this.constructor.Event.SHOWN)\n\n          if (prevHoverState === HoverState.OUT) {\n            this._leave(null, this)\n          }\n        }\n\n        if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {\n          $(this.tip)\n            .one(Util.TRANSITION_END, complete)\n            .emulateTransitionEnd(Tooltip._TRANSITION_DURATION)\n        } else {\n          complete()\n        }\n      }\n    }\n\n    hide(callback) {\n      const tip       = this.getTipElement()\n      const hideEvent = $.Event(this.constructor.Event.HIDE)\n      const complete  = () => {\n        if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n          tip.parentNode.removeChild(tip)\n        }\n\n        this._cleanTipClass()\n        this.element.removeAttribute('aria-describedby')\n        $(this.element).trig
 ger(this.constructor.Event.HIDDEN)\n        if (this._popper !== null) {\n          this._popper.destroy()\n        }\n\n        if (callback) {\n          callback()\n        }\n      }\n\n      $(this.element).trigger(hideEvent)\n\n      if (hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      $(tip).removeClass(ClassName.SHOW)\n\n      // if this is a touch-enabled device we remove the extra\n      // empty mouseover listeners we added for iOS support\n      if ('ontouchstart' in document.documentElement) {\n        $('body').children().off('mouseover', null, $.noop)\n      }\n\n      this._activeTrigger[Trigger.CLICK] = false\n      this._activeTrigger[Trigger.FOCUS] = false\n      this._activeTrigger[Trigger.HOVER] = false\n\n      if (Util.supportsTransitionEnd() &&\n          $(this.tip).hasClass(ClassName.FADE)) {\n\n        $(tip)\n          .one(Util.TRANSITION_END, complete)\n          .emulateTransitionEnd(TRANSITION_DURATION)\n\n      } else {\n        co
 mplete()\n      }\n\n      this._hoverState = ''\n\n    }\n\n    update() {\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate()\n      }\n    }\n\n    // protected\n\n    isWithContent() {\n      return Boolean(this.getTitle())\n    }\n\n    addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n    }\n\n    getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0]\n      return this.tip\n    }\n\n    setContent() {\n      const $tip = $(this.getTipElement())\n      this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n    }\n\n    setElementContent($element, content) {\n      const html = this.config.html\n      if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n        // content is a DOM node or a jQuery\n        if (html) {\n          if (!$(content).parent().is($element)) {\n    
         $element.empty().append(content)\n          }\n        } else {\n          $element.text($(content).text())\n        }\n      } else {\n        $element[html ? 'html' : 'text'](content)\n      }\n    }\n\n    getTitle() {\n      let title = this.element.getAttribute('data-original-title')\n\n      if (!title) {\n        title = typeof this.config.title === 'function' ?\n          this.config.title.call(this.element) :\n          this.config.title\n      }\n\n      return title\n    }\n\n\n    // private\n\n    _getAttachment(placement) {\n      return AttachmentMap[placement.toUpperCase()]\n    }\n\n    _setListeners() {\n      const triggers = this.config.trigger.split(' ')\n\n      triggers.forEach((trigger) => {\n        if (trigger === 'click') {\n          $(this.element).on(\n            this.constructor.Event.CLICK,\n            this.config.selector,\n            (event) => this.toggle(event)\n          )\n\n        } else if (trigger !== Trigger.MANUAL) {\n          
 const eventIn  = trigger === Trigger.HOVER ?\n            this.constructor.Event.MOUSEENTER :\n            this.constructor.Event.FOCUSIN\n          const eventOut = trigger === Trigger.HOVER ?\n            this.constructor.Event.MOUSELEAVE :\n            this.constructor.Event.FOCUSOUT\n\n          $(this.element)\n            .on(\n              eventIn,\n              this.config.selector,\n              (event) => this._enter(event)\n            )\n            .on(\n              eventOut,\n              this.config.selector,\n              (event) => this._leave(event)\n            )\n        }\n\n        $(this.element).closest('.modal').on(\n          'hide.bs.modal',\n          () => this.hide()\n        )\n      })\n\n      if (this.config.selector) {\n        this.config = $.extend({}, this.config, {\n          trigger  : 'manual',\n          selector : ''\n        })\n      } else {\n        this._fixTitle()\n      }\n    }\n\n    _fixTitle() {\n      const titleType = ty
 peof this.element.getAttribute('data-original-title')\n      if (this.element.getAttribute('title') ||\n         titleType !== 'string') {\n        this.element.setAttribute(\n          'data-original-title',\n          this.element.getAttribute('title') || ''\n        )\n        this.element.setAttribute('title', '')\n      }\n    }\n\n    _enter(event, context) {\n      const dataKey = this.constructor.DATA_KEY\n\n      context = context || $(event.currentTarget).data(dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      if (event) {\n        context._activeTrigger[\n          event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n        ] = true\n      }\n\n      if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||\n         context._hoverState === HoverState.SHOW) {\n        context._hoverState = H
 overState.SHOW\n        return\n      }\n\n      clearTimeout(context._timeout)\n\n      context._hoverState = HoverState.SHOW\n\n      if (!context.config.delay || !context.config.delay.show) {\n        context.show()\n        return\n      }\n\n      context._timeout = setTimeout(() => {\n        if (context._hoverState === HoverState.SHOW) {\n          context.show()\n        }\n      }, context.config.delay.show)\n    }\n\n    _leave(event, context) {\n      const dataKey = this.constructor.DATA_KEY\n\n      context = context || $(event.currentTarget).data(dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      if (event) {\n        context._activeTrigger[\n          event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n        ] = false\n      }\n\n      if (context._isWithActiveTrigger()) {\n        ret
 urn\n      }\n\n      clearTimeout(context._timeout)\n\n      context._hoverState = HoverState.OUT\n\n      if (!context.config.delay || !context.config.delay.hide) {\n        context.hide()\n        return\n      }\n\n      context._timeout = setTimeout(() => {\n        if (context._hoverState === HoverState.OUT) {\n          context.hide()\n        }\n      }, context.config.delay.hide)\n    }\n\n    _isWithActiveTrigger() {\n      for (const trigger in this._activeTrigger) {\n        if (this._activeTrigger[trigger]) {\n          return true\n        }\n      }\n\n      return false\n    }\n\n    _getConfig(config) {\n      config = $.extend(\n        {},\n        this.constructor.Default,\n        $(this.element).data(),\n        config\n      )\n\n      if (typeof config.delay === 'number') {\n        config.delay = {\n          show : config.delay,\n          hide : config.delay\n        }\n      }\n\n      if (typeof config.title === 'number') {\n        config.title = config
 .title.toString()\n      }\n\n      if (typeof config.content === 'number') {\n        config.content = config.content.toString()\n      }\n\n      Util.typeCheckConfig(\n        NAME,\n        config,\n        this.constructor.DefaultType\n      )\n\n      return config\n    }\n\n    _getDelegateConfig() {\n      const config = {}\n\n      if (this.config) {\n        for (const key in this.config) {\n          if (this.constructor.Default[key] !== this.config[key]) {\n            config[key] = this.config[key]\n          }\n        }\n      }\n\n      return config\n    }\n\n    _cleanTipClass() {\n      const $tip = $(this.getTipElement())\n      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''))\n      }\n    }\n\n    _handlePopperPlacementChange(data) {\n      this._cleanTipClass()\n      this.addAttachmentClass(this._getAttachment(data.placement))\n    }\n\n    _fixTra
 nsition() {\n      const tip                 = this.getTipElement()\n      const initConfigAnimation = this.config.animation\n      if (tip.getAttribute('x-placement') !== null) {\n        return\n      }\n      $(tip).removeClass(ClassName.FADE)\n      this.config.animation = false\n      this.hide()\n      this.show()\n      this.config.animation = initConfigAnimation\n    }\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' && config\n\n        if (!data && /dispose|hide/.test(config)) {\n          return\n        }\n\n        if (!data) {\n          data = new Tooltip(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n      
   }\n      })\n    }\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Tooltip._jQueryInterface\n  $.fn[NAME].Constructor = Tooltip\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Tooltip._jQueryInterface\n  }\n\n  return Tooltip\n\n})($, Popper)\n\nexport default Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * --------------
 ----------------------------------------------------------\n   */\n\n  const NAME                = 'popover'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.popover'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const CLASS_PREFIX        = 'bs-popover'\n  const BSCLS_PREFIX_REGEX  = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n  const Default = $.extend({}, Tooltip.Default, {\n    placement : 'right',\n    trigger   : 'click',\n    content   : '',\n    template  : '<div class=\"popover\" role=\"tooltip\">'\n              + '<div class=\"arrow\"></div>'\n              + '<h3 class=\"popover-header\"></h3>'\n              + '<div class=\"popover-body\"></div></div>'\n  })\n\n  const DefaultType = $.extend({}, Tooltip.DefaultType, {\n    content : '(string|element|function)'\n  })\n\n  const ClassName = {\n    FADE : 'fade',\n    SHOW : 'show'\n  }\n\n  const Selector = {\n    TITLE   : '.popover-head
 er',\n    CONTENT : '.popover-body'\n  }\n\n  const Event = {\n    HIDE       : `hide${EVENT_KEY}`,\n    HIDDEN     : `hidden${EVENT_KEY}`,\n    SHOW       : `show${EVENT_KEY}`,\n    SHOWN      : `shown${EVENT_KEY}`,\n    INSERTED   : `inserted${EVENT_KEY}`,\n    CLICK      : `click${EVENT_KEY}`,\n    FOCUSIN    : `focusin${EVENT_KEY}`,\n    FOCUSOUT   : `focusout${EVENT_KEY}`,\n    MOUSEENTER : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE : `mouseleave${EVENT_KEY}`\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Popover extends Tooltip {\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get NAME() {\n      return NAME\n    }\n\n    static get DATA_KEY() {\n      return DATA_KEY\n    }\n\n    static get Event() {\n      r
 eturn Event\n    }\n\n    static get EVENT_KEY() {\n      return EVENT_KEY\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n\n    // overrides\n\n    isWithContent() {\n      return this.getTitle() || this._getContent()\n    }\n\n    addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n    }\n\n    getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0]\n      return this.tip\n    }\n\n    setContent() {\n      const $tip = $(this.getTipElement())\n\n      // we use append for html objects to maintain js events\n      this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n      this.setElementContent($tip.find(Selector.CONTENT), this._getContent())\n\n      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n    }\n\n    // private\n\n    _getContent() {\n      return this.element.getAttribute('data-content')\n        || (typeof this.config.content === 'function' ?\
 n              this.config.content.call(this.element) :\n              this.config.content)\n    }\n\n    _cleanTipClass() {\n      const $tip = $(this.getTipElement())\n      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''))\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' ? config : null\n\n        if (!data && /destroy|hide/.test(config)) {\n          return\n        }\n\n        if (!data) {\n          data = new Popover(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n   
  }\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Popover._jQueryInterface\n  $.fn[NAME].Constructor = Popover\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Popover._jQueryInterface\n  }\n\n  return Popover\n\n})($)\n\nexport default Popover\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------
 ------------------------------\n   */\n\n  const NAME               = 'scrollspy'\n  const VERSION            = '4.0.0-beta.2'\n  const DATA_KEY           = 'bs.scrollspy'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const DATA_API_KEY       = '.data-api'\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Default = {\n    offset : 10,\n    method : 'auto',\n    target : ''\n  }\n\n  const DefaultType = {\n    offset : 'number',\n    method : 'string',\n    target : '(string|element)'\n  }\n\n  const Event = {\n    ACTIVATE      : `activate${EVENT_KEY}`,\n    SCROLL        : `scroll${EVENT_KEY}`,\n    LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DROPDOWN_ITEM : 'dropdown-item',\n    DROPDOWN_MENU : 'dropdown-menu',\n    ACTIVE        : 'active'\n  }\n\n  const Selector = {\n    DATA_SPY        : '[data-spy=\"scroll\"]',\n    ACTIVE          : '.active',\n    NAV_LIST_GROUP  : '.nav, .list-group',\n    NAV_LINKS       : '.nav-link',\n    NAV
 _ITEMS       : '.nav-item',\n    LIST_ITEMS      : '.list-group-item',\n    DROPDOWN        : '.dropdown',\n    DROPDOWN_ITEMS  : '.dropdown-item',\n    DROPDOWN_TOGGLE : '.dropdown-toggle'\n  }\n\n  const OffsetMethod = {\n    OFFSET   : 'offset',\n    POSITION : 'position'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class ScrollSpy {\n\n    constructor(element, config) {\n      this._element       = element\n      this._scrollElement = element.tagName === 'BODY' ? window : element\n      this._config        = this._getConfig(config)\n      this._selector      = `${this._config.target} ${Selector.NAV_LINKS},`\n                          + `${this._config.target} ${Selector.LIST_ITEMS},`\n                          + `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n      this._offsets       = []\n      this._targets   
     = []\n      this._activeTarget  = null\n      this._scrollHeight  = 0\n\n      $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n      this.refresh()\n      this._process()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    refresh() {\n      const autoMethod = this._scrollElement !== this._scrollElement.window ?\n        OffsetMethod.POSITION : OffsetMethod.OFFSET\n\n      const offsetMethod = this._config.method === 'auto' ?\n        autoMethod : this._config.method\n\n      const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n        this._getScrollTop() : 0\n\n      this._offsets = []\n      this._targets = []\n\n      this._scrollHeight = this._getScrollHeight()\n\n      const targets = $.makeArray($(this._selector))\n\n      targets\n        .map((element) => {\n          let target\n          const targetSelector = Util.
 getSelectorFromElement(element)\n\n          if (targetSelector) {\n            target = $(targetSelector)[0]\n          }\n\n          if (target) {\n            const targetBCR = target.getBoundingClientRect()\n            if (targetBCR.width || targetBCR.height) {\n              // todo (fat): remove sketch reliance on jQuery position/offset\n              return [\n                $(target)[offsetMethod]().top + offsetBase,\n                targetSelector\n              ]\n            }\n          }\n          return null\n        })\n        .filter((item)  => item)\n        .sort((a, b)    => a[0] - b[0])\n        .forEach((item) => {\n          this._offsets.push(item[0])\n          this._targets.push(item[1])\n        })\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      $(this._scrollElement).off(EVENT_KEY)\n\n      this._element       = null\n      this._scrollElement = null\n      this._config        = null\n      this._selector      = null\n   
    this._offsets       = null\n      this._targets       = null\n      this._activeTarget  = null\n      this._scrollHeight  = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = $.extend({}, Default, config)\n\n      if (typeof config.target !== 'string') {\n        let id = $(config.target).attr('id')\n        if (!id) {\n          id = Util.getUID(NAME)\n          $(config.target).attr('id', id)\n        }\n        config.target = `#${id}`\n      }\n\n      Util.typeCheckConfig(NAME, config, DefaultType)\n\n      return config\n    }\n\n    _getScrollTop() {\n      return this._scrollElement === window ?\n          this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n    }\n\n    _getScrollHeight() {\n      return this._scrollElement.scrollHeight || Math.max(\n        document.body.scrollHeight,\n        document.documentElement.scrollHeight\n      )\n    }\n\n    _getOffsetHeight() {\n      return this._scrollElement === window ?\n          wi
 ndow.innerHeight : this._scrollElement.getBoundingClientRect().height\n    }\n\n    _process() {\n      const scrollTop    = this._getScrollTop() + this._config.offset\n      const scrollHeight = this._getScrollHeight()\n      const maxScroll    = this._config.offset\n        + scrollHeight\n        - this._getOffsetHeight()\n\n      if (this._scrollHeight !== scrollHeight) {\n        this.refresh()\n      }\n\n      if (scrollTop >= maxScroll) {\n        const target = this._targets[this._targets.length - 1]\n\n        if (this._activeTarget !== target) {\n          this._activate(target)\n        }\n        return\n      }\n\n      if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n        this._activeTarget = null\n        this._clear()\n        return\n      }\n\n      for (let i = this._offsets.length; i--;) {\n        const isActiveTarget = this._activeTarget !== this._targets[i]\n            && scrollTop >= this._offsets[i]\n            && (typ
 eof this._offsets[i + 1] === 'undefined' ||\n                scrollTop < this._offsets[i + 1])\n\n        if (isActiveTarget) {\n          this._activate(this._targets[i])\n        }\n      }\n    }\n\n    _activate(target) {\n      this._activeTarget = target\n\n      this._clear()\n\n      let queries = this._selector.split(',')\n      // eslint-disable-next-line arrow-body-style\n      queries     = queries.map((selector) => {\n        return `${selector}[data-target=\"${target}\"],` +\n               `${selector}[href=\"${target}\"]`\n      })\n\n      const $link = $(queries.join(','))\n\n      if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n        $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n        $link.addClass(ClassName.ACTIVE)\n      } else {\n        // Set triggered link as active\n        $link.addClass(ClassName.ACTIVE)\n        // Set triggered links parents as active\n        // With both <ul> and <nav> markup a parent
  is the previous sibling of any nav ancestor\n        $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n        // Handle special case when .nav-link is inside .nav-item\n        $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n      }\n\n      $(this._scrollElement).trigger(Event.ACTIVATE, {\n        relatedTarget: target\n      })\n    }\n\n    _clear() {\n      $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' && config\n\n        if (!data) {\n          data = new ScrollSpy(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config
 ] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n    for (let i = scrollSpys.length; i--;) {\n      const $spy = $(scrollSpys[i])\n      ScrollSpy._jQueryInterface.call($spy, $spy.data())\n    }\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = ScrollSpy._jQueryInterface\n  $.fn[NAME].Constructor = ScrollSpy\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    retu
 rn ScrollSpy._jQueryInterface\n  }\n\n  return ScrollSpy\n\n})($)\n\nexport default ScrollSpy\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'tab'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.tab'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n\n  const Event = {\n    HIDE           : `hide${EVE
 NT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DROPDOWN_MENU : 'dropdown-menu',\n    ACTIVE        : 'active',\n    DISABLED      : 'disabled',\n    FADE          : 'fade',\n    SHOW          : 'show'\n  }\n\n  const Selector = {\n    DROPDOWN              : '.dropdown',\n    NAV_LIST_GROUP        : '.nav, .list-group',\n    ACTIVE                : '.active',\n    ACTIVE_UL             : '> li > .active',\n    DATA_TOGGLE           : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n    DROPDOWN_TOGGLE       : '.dropdown-toggle',\n    DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\
 n   */\n\n  class Tab {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    show() {\n      if (this._element.parentNode &&\n          this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n          $(this._element).hasClass(ClassName.ACTIVE) ||\n          $(this._element).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      let target\n      let previous\n      const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n      const selector    = Util.getSelectorFromElement(this._element)\n\n      if (listElement) {\n        const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n        previous = $.makeArray($(listElement).find(itemSelector))\n        previous = previous[previous.length - 1]\n      }\n\n      const hideEvent = $.Event(Event.HIDE, {\n        relatedTarget: this._element\n      })
 \n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget: previous\n      })\n\n      if (previous) {\n        $(previous).trigger(hideEvent)\n      }\n\n      $(this._element).trigger(showEvent)\n\n      if (showEvent.isDefaultPrevented() ||\n         hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (selector) {\n        target = $(selector)[0]\n      }\n\n      this._activate(\n        this._element,\n        listElement\n      )\n\n      const complete = () => {\n        const hiddenEvent = $.Event(Event.HIDDEN, {\n          relatedTarget: this._element\n        })\n\n        const shownEvent = $.Event(Event.SHOWN, {\n          relatedTarget: previous\n        })\n\n        $(previous).trigger(hiddenEvent)\n        $(this._element).trigger(shownEvent)\n      }\n\n      if (target) {\n        this._activate(target, target.parentNode, complete)\n      } else {\n        complete()\n      }\n    }\n\n    dispose() {\n      $.removeData(this._elem
 ent, DATA_KEY)\n      this._element = null\n    }\n\n\n    // private\n\n    _activate(element, container, callback) {\n      let activeElements\n      if (container.nodeName === 'UL') {\n        activeElements = $(container).find(Selector.ACTIVE_UL)\n      } else {\n        activeElements = $(container).children(Selector.ACTIVE)\n      }\n\n      const active          = activeElements[0]\n      const isTransitioning = callback\n        && Util.supportsTransitionEnd()\n        && (active && $(active).hasClass(ClassName.FADE))\n\n      const complete = () => this._transitionComplete(\n        element,\n        active,\n        isTransitioning,\n        callback\n      )\n\n      if (active && isTransitioning) {\n        $(active)\n          .one(Util.TRANSITION_END, complete)\n          .emulateTransitionEnd(TRANSITION_DURATION)\n\n      } else {\n        complete()\n      }\n\n      if (active) {\n        $(active).removeClass(ClassName.SHOW)\n      }\n    }\n\n    _transitionComple
 te(element, active, isTransitioning, callback) {\n      if (active) {\n        $(active).removeClass(ClassName.ACTIVE)\n\n        const dropdownChild = $(active.parentNode).find(\n          Selector.DROPDOWN_ACTIVE_CHILD\n        )[0]\n\n        if (dropdownChild) {\n          $(dropdownChild).removeClass(ClassName.ACTIVE)\n        }\n\n        if (active.getAttribute('role') === 'tab') {\n          active.setAttribute('aria-selected', false)\n        }\n      }\n\n      $(element).addClass(ClassName.ACTIVE)\n      if (element.getAttribute('role') === 'tab') {\n        element.setAttribute('aria-selected', true)\n      }\n\n      if (isTransitioning) {\n        Util.reflow(element)\n        $(element).addClass(ClassName.SHOW)\n      } else {\n        $(element).removeClass(ClassName.FADE)\n      }\n\n      if (element.parentNode &&\n          $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n\n        const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n      
   if (dropdownElement) {\n          $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n        }\n\n        element.setAttribute('aria-expanded', true)\n      }\n\n      if (callback) {\n        callback()\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this = $(this)\n        let data    = $this.data(DATA_KEY)\n\n        if (!data) {\n          data = new Tab(this)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Eve
 nt.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault()\n      Tab._jQueryInterface.call($(this), 'show')\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Tab._jQueryInterface\n  $.fn[NAME].Constructor = Tab\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Tab._jQueryInterface\n  }\n\n  return Tab\n\n})($)\n\nexport default Tab\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------
 ------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(() => {\n  if (typeof $ === 'undefined') {\n    throw new Error('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n  }\n\n  const version = $.fn.jquery.split(' ')[0].split('.')\n  const minMajor = 1\n  const ltMajor  = 2\n  const minMinor = 9\n  const minPatch = 1\n  const maxMajor = 4\n\n  if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n    throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n  }\n})($)\n\nexport {\n  Util,\n  Alert,\n  Button,\n  Carousel,\n  Collapse,\n  Dropdown,\n  Modal,\n  Popover,\n  Scrollspy,\n  Tab,
 \n  Tooltip\n}\n"],"names":["Util","transition","MAX_UID","TransitionEndEvent","toType","obj","toString","call","match","toLowerCase","getSpecialTransitionEndEvent","end","event","$","target","is","handleObj","handler","apply","arguments","undefined","transitionEndTest","window","QUnit","el","document","createElement","name","style","transitionEndEmulator","duration","called","one","TRANSITION_END","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","supportsTransitionEnd","special","prefix","Math","random","getElementById","element","selector","getAttribute","$selector","find","length","error","offsetHeight","trigger","Boolean","nodeType","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","isElement","RegExp","test","Error","toUpperCase","Alert","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","TRANSITION_DURATION","Selector","Event","ClassName","_element","c
 lose","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","getSelectorFromElement","parent","closest","ALERT","closeEvent","CLOSE","removeClass","SHOW","hasClass","FADE","_destroyElement","detach","CLOSED","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","CLICK_DATA_API","DISMISS","Constructor","noConflict","Button","toggle","triggerChangeEvent","addAriaPressed","DATA_TOGGLE","input","INPUT","type","checked","ACTIVE","activeElement","hasAttribute","classList","contains","focus","setAttribute","toggleClass","DATA_TOGGLE_CARROT","button","BUTTON","FOCUS_BLUR_DATA_API","FOCUS","Carousel","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","Default","DefaultType","Direction","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","INDICATORS","_addEventListeners","next","_s
 lide","NEXT","nextWhenVisible","hidden","css","prev","PREV","pause","NEXT_PREV","cycle","interval","setInterval","visibilityState","bind","to","index","ACTIVE_ITEM","activeIndex","_getItemIndex","SLID","direction","off","extend","typeCheckConfig","keyboard","KEYDOWN","_keydown","MOUSEENTER","MOUSELEAVE","documentElement","TOUCHEND","setTimeout","tagName","which","makeArray","ITEM","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","wrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","SLIDE","_setActiveIndicatorElement","nextIndicator","children","addClass","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","LEFT","RIGHT","slidEvent","reflow","action","slide","_dataApiClickHandler","CAROUSEL","slideIndex","DATA_SLIDE","LOAD_DATA_API","DATA_RIDE","$carousel","Collapse","Dimension","_isTransitioning","_triggerArra
 y","id","tabToggles","i","elem","filter","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","ACTIVES","startEvent","dimension","_getDimension","COLLAPSE","COLLAPSING","COLLAPSED","attr","setTransitioning","complete","SHOWN","capitalizedDimension","slice","scrollSize","HIDE","getBoundingClientRect","$elem","HIDDEN","isTransitioning","hasWidth","WIDTH","HEIGHT","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","$target","Dropdown","Popper","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","AttachmentMap","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","DISABLED","_getParentFromElement","isActive","_clearMenus","showEvent","DROPUP","MENULEFT","MENURIGHT","_getPopperConfig","NAVBAR_NAV","noop","destroy","update","scheduleUpdate","CLICK","stopPropagation","constructor","MENU","_getPlacement","$pa
 rentDropdown","placement","BOTTOM","TOP","TOPEND","BOTTOMEND","offsetConf","offset","offsets","popperConfig","flip","modifiers","applyStyle","toggles","context","dropdownMenu","hideEvent","parentNode","_dataApiKeydownHandler","items","VISIBLE_ITEMS","get","KEYDOWN_DATA_API","KEYUP_DATA_API","FORM_CHILD","e","Modal","BACKDROP_TRANSITION_DURATION","_dialog","DIALOG","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_originalBodyPadding","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","body","OPEN","_setEscapeEvent","_setResizeEvent","CLICK_DISMISS","DATA_DISMISS","MOUSEDOWN_DISMISS","MOUSEUP_DISMISS","_showBackdrop","_showElement","FOCUSIN","_hideModal","handleUpdate","Node","ELEMENT_NODE","appendChild","display","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","has","KEYDOWN_DISMISS","RESIZE","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","backdrop","doAnimate","className","BACKDROP","a
 ppendTo","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","rect","left","right","innerWidth","_getScrollbarWidth","FIXED_CONTENT","actualPadding","calculatedPadding","parseFloat","STICKY_CONTENT","actualMargin","marginRight","calculatedMargin","NAVBAR_TOGGLER","padding","margin","scrollDiv","SCROLLBAR_MEASURER","scrollbarWidth","width","clientWidth","removeChild","Tooltip","CLASS_PREFIX","BSCLS_PREFIX_REGEX","HoverState","Trigger","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","ownerDocument","tipId","getUID","setContent","animation","attachment","_getAttachment","addAttachmentClass","container","INSERTED","fallbackPlacement","ARROW","originalPlacement","_handlePopperPlacementChange","_fixTransition","prevHoverState","OUT","_TRANSITION_DURATION","_c
 leanTipClass","HOVER","getTitle","template","$tip","setElementContent","TOOLTIP_INNER","content","html","empty","append","text","title","triggers","split","forEach","MANUAL","eventIn","eventOut","FOCUSOUT","_fixTitle","titleType","delay","key","tabClass","join","initConfigAnimation","Popover","_getContent","TITLE","CONTENT","ScrollSpy","OffsetMethod","_scrollElement","_selector","NAV_LINKS","LIST_ITEMS","DROPDOWN_ITEMS","_offsets","_targets","_activeTarget","_scrollHeight","SCROLL","_process","refresh","autoMethod","POSITION","OFFSET","offsetMethod","method","offsetBase","_getScrollTop","_getScrollHeight","targets","map","targetSelector","targetBCR","height","top","item","sort","a","b","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","isActiveTarget","queries","$link","DROPDOWN_ITEM","DROPDOWN","DROPDOWN_TOGGLE","parents","NAV_LIST_GROUP","NAV_ITEMS","ACTIVATE","scrollSpys","DATA_SPY","$spy","Tab","previous","listElement","itemSelector","nodeName
 ","ACTIVE_UL","hiddenEvent","activeElements","active","_transitionComplete","dropdownChild","DROPDOWN_ACTIVE_CHILD","DROPDOWN_MENU","dropdownElement","version","minMajor","ltMajor","minMinor","minPatch","maxMajor"],"mappings":"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"}
\ No newline at end of file
diff --git a/assets/static/js/bootstrap.min.js b/assets/static/js/bootstrap.min.js
deleted file mode 100755
index 27aace3..0000000
--- a/assets/static/js/bootstrap.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*!
-  * Bootstrap v4.0.0-beta.2 (https://getbootstrap.com)
-  * Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
-  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
-  */
-var bootstrap=function(t,e,n){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}e=e&&e.hasOwnProperty("default")?e.default:e,n=n&&n.hasOwnProperty("default")?n.default:n;var s=function(){function t(t){return{}.toString.call(t).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}function n(){return{bindType:r.end,delegateType:r.end,handle:function(t){if(e(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}}}function i(){if(window.QUnit)return!1;var t=document.createElement("bootstrap");for(var e in o)if("undefined"!=typeof t.style[e])return{end:o[e]};return!1}function s(t){var n=this,i=!1;return e(this).one(a.TRANSITION_END,function(){i=!0}),setTimeout(function(){i||a.triggerTransitionEnd(n)},t),this}var r=!1,o={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},a
 ={TRANSITION_END:"bsTransitionEnd",getUID:function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},getSelectorFromElement:function(t){var n=t.getAttribute("data-target");n&&"#"!==n||(n=t.getAttribute("href")||"");try{return e(document).find(n).length>0?n:null}catch(t){return null}},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){e(t).trigger(r.end)},supportsTransitionEnd:function(){return Boolean(r)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(e,n,i){for(var s in i)if(Object.prototype.hasOwnProperty.call(i,s)){var r=i[s],o=n[s],l=o&&a.isElement(o)?"element":t(o);if(!new RegExp(r).test(l))throw new Error(e.toUpperCase()+': Option "'+s+'" provided type "'+l+'" but expected type "'+r+'".')}}};return r=i(),e.fn.emulateTransitionEnd=s,a.supportsTransitionEnd()&&(e.event.special[a.TRANSITION_END]=n()),a}(),r=function(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t},o=function(t,e){t.prototype=Object.create(e.
 prototype),t.prototype.constructor=t,t.__proto__=e},a=function(){var t="alert",n=e.fn[t],i={CLOSE:"close.bs.alert",CLOSED:"closed.bs.alert",CLICK_DATA_API:"click.bs.alert.data-api"},o={ALERT:"alert",FADE:"fade",SHOW:"show"},a=function(){function t(t){this._element=t}var n=t.prototype;return n.close=function(t){t=t||this._element;var e=this._getRootElement(t);this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},n.dispose=function(){e.removeData(this._element,"bs.alert"),this._element=null},n._getRootElement=function(t){var n=s.getSelectorFromElement(t),i=!1;return n&&(i=e(n)[0]),i||(i=e(t).closest("."+o.ALERT)[0]),i},n._triggerCloseEvent=function(t){var n=e.Event(i.CLOSE);return e(t).trigger(n),n},n._removeElement=function(t){var n=this;e(t).removeClass(o.SHOW),s.supportsTransitionEnd()&&e(t).hasClass(o.FADE)?e(t).one(s.TRANSITION_END,function(e){return n._destroyElement(t,e)}).emulateTransitionEnd(150):this._destroyElement(t)},n._destroyElement=function(t){e(t).d
 etach().trigger(i.CLOSED).remove()},t._jQueryInterface=function(n){return this.each(function(){var i=e(this),s=i.data("bs.alert");s||(s=new t(this),i.data("bs.alert",s)),"close"===n&&s[n](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},r(t,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}}]),t}();return e(document).on(i.CLICK_DATA_API,{DISMISS:'[data-dismiss="alert"]'}.DISMISS,a._handleDismiss(new a)),e.fn[t]=a._jQueryInterface,e.fn[t].Constructor=a,e.fn[t].noConflict=function(){return e.fn[t]=n,a._jQueryInterface},a}(),l=function(){var t="button",n=e.fn[t],i={ACTIVE:"active",BUTTON:"btn",FOCUS:"focus"},s={DATA_TOGGLE_CARROT:'[data-toggle^="button"]',DATA_TOGGLE:'[data-toggle="buttons"]',INPUT:"input",ACTIVE:".active",BUTTON:".btn"},o={CLICK_DATA_API:"click.bs.button.data-api",FOCUS_BLUR_DATA_API:"focus.bs.button.data-api blur.bs.button.data-api"},a=function(){function t(t){this._element=t}var n=t.prototype;return n.toggle=funct
 ion(){var t=!0,n=!0,r=e(this._element).closest(s.DATA_TOGGLE)[0];if(r){var o=e(this._element).find(s.INPUT)[0];if(o){if("radio"===o.type)if(o.checked&&e(this._element).hasClass(i.ACTIVE))t=!1;else{var a=e(r).find(s.ACTIVE)[0];a&&e(a).removeClass(i.ACTIVE)}if(t){if(o.hasAttribute("disabled")||r.hasAttribute("disabled")||o.classList.contains("disabled")||r.classList.contains("disabled"))return;o.checked=!e(this._element).hasClass(i.ACTIVE),e(o).trigger("change")}o.focus(),n=!1}}n&&this._element.setAttribute("aria-pressed",!e(this._element).hasClass(i.ACTIVE)),t&&e(this._element).toggleClass(i.ACTIVE)},n.dispose=function(){e.removeData(this._element,"bs.button"),this._element=null},t._jQueryInterface=function(n){return this.each(function(){var i=e(this).data("bs.button");i||(i=new t(this),e(this).data("bs.button",i)),"toggle"===n&&i[n]()})},r(t,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}}]),t}();return e(document).on(o.CLICK_DATA_API,s.DATA_TOGGLE_CARROT,function(t){t.pre
 ventDefault();var n=t.target;e(n).hasClass(i.BUTTON)||(n=e(n).closest(s.BUTTON)),a._jQueryInterface.call(e(n),"toggle")}).on(o.FOCUS_BLUR_DATA_API,s.DATA_TOGGLE_CARROT,function(t){var n=e(t.target).closest(s.BUTTON)[0];e(n).toggleClass(i.FOCUS,/^focus(in)?$/.test(t.type))}),e.fn[t]=a._jQueryInterface,e.fn[t].Constructor=a,e.fn[t].noConflict=function(){return e.fn[t]=n,a._jQueryInterface},a}(),h=function(){var t="carousel",n="bs.carousel",i="."+n,o=e.fn[t],a={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},l={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},h={NEXT:"next",PREV:"prev",LEFT:"left",RIGHT:"right"},c={SLIDE:"slide"+i,SLID:"slid"+i,KEYDOWN:"keydown"+i,MOUSEENTER:"mouseenter"+i,MOUSELEAVE:"mouseleave"+i,TOUCHEND:"touchend"+i,LOAD_DATA_API:"load.bs.carousel.data-api",CLICK_DATA_API:"click.bs.carousel.data-api"},u={CAROUSEL:"carousel",ACTIVE:"active",SLIDE:"slide",RIGHT:"carousel-item-right",LEFT:"carous
 el-item-left",NEXT:"carousel-item-next",PREV:"carousel-item-prev",ITEM:"carousel-item"},d={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},f=function(){function o(t,n){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this._config=this._getConfig(n),this._element=e(t)[0],this._indicatorsElement=e(this._element).find(d.INDICATORS)[0],this._addEventListeners()}var f=o.prototype;return f.next=function(){this._isSliding||this._slide(h.NEXT)},f.nextWhenVisible=function(){!document.hidden&&e(this._element).is(":visible")&&"hidden"!==e(this._element).css("visibility")&&this.next()},f.prev=function(){this._isSliding||this._slide(h.PREV)},f.pause=function(t){t||(this._isPaused=!0),e(this._element).find(d.NEXT_PREV)[0]&&s.supportsTr
 ansitionEnd()&&(s.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},f.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},f.to=function(t){var n=this;this._activeElement=e(this._element).find(d.ACTIVE_ITEM)[0];var i=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)e(this._element).one(c.SLID,function(){return n.to(t)});else{if(i===t)return this.pause(),void this.cycle();var s=t>i?h.NEXT:h.PREV;this._slide(s,this._items[t])}},f.dispose=function(){e(this._element).off(i),e.removeData(this._element,n),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},f._getC
 onfig=function(n){return n=e.extend({},a,n),s.typeCheckConfig(t,n,l),n},f._addEventListeners=function(){var t=this;this._config.keyboard&&e(this._element).on(c.KEYDOWN,function(e){return t._keydown(e)}),"hover"===this._config.pause&&(e(this._element).on(c.MOUSEENTER,function(e){return t.pause(e)}).on(c.MOUSELEAVE,function(e){return t.cycle(e)}),"ontouchstart"in document.documentElement&&e(this._element).on(c.TOUCHEND,function(){t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout(function(e){return t.cycle(e)},500+t._config.interval)}))},f._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next();break;default:return}},f._getItemIndex=function(t){return this._items=e.makeArray(e(t).parent().find(d.ITEM)),this._items.indexOf(t)},f._getItemByDirection=function(t,e){var n=t===h.NEXT,i=t===h.PREV,s=this._getItemIndex(e),r=this._items.length-1;if((i&&0==
 =s||n&&s===r)&&!this._config.wrap)return e;var o=(s+(t===h.PREV?-1:1))%this._items.length;return-1===o?this._items[this._items.length-1]:this._items[o]},f._triggerSlideEvent=function(t,n){var i=this._getItemIndex(t),s=this._getItemIndex(e(this._element).find(d.ACTIVE_ITEM)[0]),r=e.Event(c.SLIDE,{relatedTarget:t,direction:n,from:s,to:i});return e(this._element).trigger(r),r},f._setActiveIndicatorElement=function(t){if(this._indicatorsElement){e(this._indicatorsElement).find(d.ACTIVE).removeClass(u.ACTIVE);var n=this._indicatorsElement.children[this._getItemIndex(t)];n&&e(n).addClass(u.ACTIVE)}},f._slide=function(t,n){var i,r,o,a=this,l=e(this._element).find(d.ACTIVE_ITEM)[0],f=this._getItemIndex(l),_=n||l&&this._getItemByDirection(t,l),g=this._getItemIndex(_),m=Boolean(this._interval);if(t===h.NEXT?(i=u.LEFT,r=u.NEXT,o=h.LEFT):(i=u.RIGHT,r=u.PREV,o=h.RIGHT),_&&e(_).hasClass(u.ACTIVE))this._isSliding=!1;else if(!this._triggerSlideEvent(_,o).isDefaultPrevented()&&l&&_){this._isSliding=
 !0,m&&this.pause(),this._setActiveIndicatorElement(_);var p=e.Event(c.SLID,{relatedTarget:_,direction:o,from:f,to:g});s.supportsTransitionEnd()&&e(this._element).hasClass(u.SLIDE)?(e(_).addClass(r),s.reflow(_),e(l).addClass(i),e(_).addClass(i),e(l).one(s.TRANSITION_END,function(){e(_).removeClass(i+" "+r).addClass(u.ACTIVE),e(l).removeClass(u.ACTIVE+" "+r+" "+i),a._isSliding=!1,setTimeout(function(){return e(a._element).trigger(p)},0)}).emulateTransitionEnd(600)):(e(l).removeClass(u.ACTIVE),e(_).addClass(u.ACTIVE),this._isSliding=!1,e(this._element).trigger(p)),m&&this.cycle()}},o._jQueryInterface=function(t){return this.each(function(){var i=e(this).data(n),s=e.extend({},a,e(this).data());"object"==typeof t&&e.extend(s,t);var r="string"==typeof t?t:s.slide;if(i||(i=new o(this,s),e(this).data(n,i)),"number"==typeof t)i.to(t);else if("string"==typeof r){if("undefined"==typeof i[r])throw new Error('No method named "'+r+'"');i[r]()}else s.interval&&(i.pause(),i.cycle())})},o._dataApiCl
 ickHandler=function(t){var i=s.getSelectorFromElement(this);if(i){var r=e(i)[0];if(r&&e(r).hasClass(u.CAROUSEL)){var a=e.extend({},e(r).data(),e(this).data()),l=this.getAttribute("data-slide-to");l&&(a.interval=!1),o._jQueryInterface.call(e(r),a),l&&e(r).data(n).to(l),t.preventDefault()}}},r(o,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return a}}]),o}();return e(document).on(c.CLICK_DATA_API,d.DATA_SLIDE,f._dataApiClickHandler),e(window).on(c.LOAD_DATA_API,function(){e(d.DATA_RIDE).each(function(){var t=e(this);f._jQueryInterface.call(t,t.data())})}),e.fn[t]=f._jQueryInterface,e.fn[t].Constructor=f,e.fn[t].noConflict=function(){return e.fn[t]=o,f._jQueryInterface},f}(),c=function(){var t="collapse",n="bs.collapse",i=e.fn[t],o={toggle:!0,parent:""},a={toggle:"boolean",parent:"(string|element)"},l={SHOW:"show.bs.collapse",SHOWN:"shown.bs.collapse",HIDE:"hide.bs.collapse",HIDDEN:"hidden.bs.collapse",CLICK_DATA_API:"click.bs.collapse.data-ap
 i"},h={SHOW:"show",COLLAPSE:"collapse",COLLAPSING:"collapsing",COLLAPSED:"collapsed"},c={WIDTH:"width",HEIGHT:"height"},u={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},d=function(){function i(t,n){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(n),this._triggerArray=e.makeArray(e('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var i=e(u.DATA_TOGGLE),r=0;r<i.length;r++){var o=i[r],a=s.getSelectorFromElement(o);null!==a&&e(a).filter(t).length>0&&this._triggerArray.push(o)}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var d=i.prototype;return d.toggle=function(){e(this._element).hasClass(h.SHOW)?this.hide():this.show()},d.show=function(){var t=this;if(!this._isTransitioning&&!e(this._element).hasClass(h.SHOW)){var r,o;if(this._parent&&((r=e.makeArray(e(this._p
 arent).children().children(u.ACTIVES))).length||(r=null)),!(r&&(o=e(r).data(n))&&o._isTransitioning)){var a=e.Event(l.SHOW);if(e(this._element).trigger(a),!a.isDefaultPrevented()){r&&(i._jQueryInterface.call(e(r),"hide"),o||e(r).data(n,null));var c=this._getDimension();e(this._element).removeClass(h.COLLAPSE).addClass(h.COLLAPSING),this._element.style[c]=0,this._triggerArray.length&&e(this._triggerArray).removeClass(h.COLLAPSED).attr("aria-expanded",!0),this.setTransitioning(!0);var d=function(){e(t._element).removeClass(h.COLLAPSING).addClass(h.COLLAPSE).addClass(h.SHOW),t._element.style[c]="",t.setTransitioning(!1),e(t._element).trigger(l.SHOWN)};if(s.supportsTransitionEnd()){var f="scroll"+(c[0].toUpperCase()+c.slice(1));e(this._element).one(s.TRANSITION_END,d).emulateTransitionEnd(600),this._element.style[c]=this._element[f]+"px"}else d()}}}},d.hide=function(){var t=this;if(!this._isTransitioning&&e(this._element).hasClass(h.SHOW)){var n=e.Event(l.HIDE);if(e(this._element).trigg
 er(n),!n.isDefaultPrevented()){var i=this._getDimension();if(this._element.style[i]=this._element.getBoundingClientRect()[i]+"px",s.reflow(this._element),e(this._element).addClass(h.COLLAPSING).removeClass(h.COLLAPSE).removeClass(h.SHOW),this._triggerArray.length)for(var r=0;r<this._triggerArray.length;r++){var o=this._triggerArray[r],a=s.getSelectorFromElement(o);null!==a&&(e(a).hasClass(h.SHOW)||e(o).addClass(h.COLLAPSED).attr("aria-expanded",!1))}this.setTransitioning(!0);var c=function(){t.setTransitioning(!1),e(t._element).removeClass(h.COLLAPSING).addClass(h.COLLAPSE).trigger(l.HIDDEN)};this._element.style[i]="",s.supportsTransitionEnd()?e(this._element).one(s.TRANSITION_END,c).emulateTransitionEnd(600):c()}}},d.setTransitioning=function(t){this._isTransitioning=t},d.dispose=function(){e.removeData(this._element,n),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},d._getConfig=function(n){return n=e.extend({},o,n),n.togg
 le=Boolean(n.toggle),s.typeCheckConfig(t,n,a),n},d._getDimension=function(){return e(this._element).hasClass(c.WIDTH)?c.WIDTH:c.HEIGHT},d._getParent=function(){var t=this,n=null;s.isElement(this._config.parent)?(n=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(n=this._config.parent[0])):n=e(this._config.parent)[0];var r='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]';return e(n).find(r).each(function(e,n){t._addAriaAndCollapsedClass(i._getTargetFromElement(n),[n])}),n},d._addAriaAndCollapsedClass=function(t,n){if(t){var i=e(t).hasClass(h.SHOW);n.length&&e(n).toggleClass(h.COLLAPSED,!i).attr("aria-expanded",i)}},i._getTargetFromElement=function(t){var n=s.getSelectorFromElement(t);return n?e(n)[0]:null},i._jQueryInterface=function(t){return this.each(function(){var s=e(this),r=s.data(n),a=e.extend({},o,s.data(),"object"==typeof t&&t);if(!r&&a.toggle&&/show|hide/.test(t)&&(a.toggle=!1),r||(r=new i(this,a),s.data(n,r)),"string"==typeof t){if("und
 efined"==typeof r[t])throw new Error('No method named "'+t+'"');r[t]()}})},r(i,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return o}}]),i}();return e(document).on(l.CLICK_DATA_API,u.DATA_TOGGLE,function(t){"A"===t.currentTarget.tagName&&t.preventDefault();var i=e(this),r=s.getSelectorFromElement(this);e(r).each(function(){var t=e(this),s=t.data(n)?"toggle":i.data();d._jQueryInterface.call(t,s)})}),e.fn[t]=d._jQueryInterface,e.fn[t].Constructor=d,e.fn[t].noConflict=function(){return e.fn[t]=i,d._jQueryInterface},d}(),u=function(){if("undefined"==typeof n)throw new Error("Bootstrap dropdown require Popper.js (https://popper.js.org)");var t="dropdown",i="bs.dropdown",o="."+i,a=e.fn[t],l=new RegExp("38|40|27"),h={HIDE:"hide"+o,HIDDEN:"hidden"+o,SHOW:"show"+o,SHOWN:"shown"+o,CLICK:"click"+o,CLICK_DATA_API:"click.bs.dropdown.data-api",KEYDOWN_DATA_API:"keydown.bs.dropdown.data-api",KEYUP_DATA_API:"keyup.bs.dropdown.data-api"},c={DISABLED:"disab
 led",SHOW:"show",DROPUP:"dropup",MENURIGHT:"dropdown-menu-right",MENULEFT:"dropdown-menu-left"},u={DATA_TOGGLE:'[data-toggle="dropdown"]',FORM_CHILD:".dropdown form",MENU:".dropdown-menu",NAVBAR_NAV:".navbar-nav",VISIBLE_ITEMS:".dropdown-menu .dropdown-item:not(.disabled)"},d={TOP:"top-start",TOPEND:"top-end",BOTTOM:"bottom-start",BOTTOMEND:"bottom-end"},f={offset:0,flip:!0},_={offset:"(number|string|function)",flip:"boolean"},g=function(){function a(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var g=a.prototype;return g.toggle=function(){if(!this._element.disabled&&!e(this._element).hasClass(c.DISABLED)){var t=a._getParentFromElement(this._element),i=e(this._menu).hasClass(c.SHOW);if(a._clearMenus(),!i){var s={relatedTarget:this._element},r=e.Event(h.SHOW,s);if(e(t).trigger(r),!r.isDefaultPrevented()){var o=this._element;e(t).hasClass(c.DROPUP)&&(e(this._menu).h
 asClass(c.MENULEFT)||e(this._menu).hasClass(c.MENURIGHT))&&(o=t),this._popper=new n(o,this._menu,this._getPopperConfig()),"ontouchstart"in document.documentElement&&!e(t).closest(u.NAVBAR_NAV).length&&e("body").children().on("mouseover",null,e.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),e(this._menu).toggleClass(c.SHOW),e(t).toggleClass(c.SHOW).trigger(e.Event(h.SHOWN,s))}}}},g.dispose=function(){e.removeData(this._element,i),e(this._element).off(o),this._element=null,this._menu=null,null!==this._popper&&this._popper.destroy(),this._popper=null},g.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},g._addEventListeners=function(){var t=this;e(this._element).on(h.CLICK,function(e){e.preventDefault(),e.stopPropagation(),t.toggle()})},g._getConfig=function(n){return n=e.extend({},this.constructor.Default,e(this._element).data(),n),s.typeCheckConfig(t,n,this.constructor.DefaultType),n},g._getMenuElement
 =function(){if(!this._menu){var t=a._getParentFromElement(this._element);this._menu=e(t).find(u.MENU)[0]}return this._menu},g._getPlacement=function(){var t=e(this._element).parent(),n=d.BOTTOM;return t.hasClass(c.DROPUP)?(n=d.TOP,e(this._menu).hasClass(c.MENURIGHT)&&(n=d.TOPEND)):e(this._menu).hasClass(c.MENURIGHT)&&(n=d.BOTTOMEND),n},g._detectNavbar=function(){return e(this._element).closest(".navbar").length>0},g._getPopperConfig=function(){var t=this,n={};"function"==typeof this._config.offset?n.fn=function(n){return n.offsets=e.extend({},n.offsets,t._config.offset(n.offsets)||{}),n}:n.offset=this._config.offset;var i={placement:this._getPlacement(),modifiers:{offset:n,flip:{enabled:this._config.flip}}};return this._inNavbar&&(i.modifiers.applyStyle={enabled:!this._inNavbar}),i},a._jQueryInterface=function(t){return this.each(function(){var n=e(this).data(i),s="object"==typeof t?t:null;if(n||(n=new a(this,s),e(this).data(i,n)),"string"==typeof t){if("undefined"==typeof n[t])thro
 w new Error('No method named "'+t+'"');n[t]()}})},a._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var n=e.makeArray(e(u.DATA_TOGGLE)),s=0;s<n.length;s++){var r=a._getParentFromElement(n[s]),o=e(n[s]).data(i),l={relatedTarget:n[s]};if(o){var d=o._menu;if(e(r).hasClass(c.SHOW)&&!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&9===t.which)&&e.contains(r,t.target))){var f=e.Event(h.HIDE,l);e(r).trigger(f),f.isDefaultPrevented()||("ontouchstart"in document.documentElement&&e("body").children().off("mouseover",null,e.noop),n[s].setAttribute("aria-expanded","false"),e(d).removeClass(c.SHOW),e(r).removeClass(c.SHOW).trigger(e.Event(h.HIDDEN,l)))}}}},a._getParentFromElement=function(t){var n,i=s.getSelectorFromElement(t);return i&&(n=e(i)[0]),n||t.parentNode},a._dataApiKeydownHandler=function(t){if(!(!l.test(t.which)||/button/i.test(t.target.tagName)&&32===t.which||/input|textarea/i.test(t.target.tagName)||(t.preventDefault
 (),t.stopPropagation(),this.disabled||e(this).hasClass(c.DISABLED)))){var n=a._getParentFromElement(this),i=e(n).hasClass(c.SHOW);if((i||27===t.which&&32===t.which)&&(!i||27!==t.which&&32!==t.which)){var s=e(n).find(u.VISIBLE_ITEMS).get();if(s.length){var r=s.indexOf(t.target);38===t.which&&r>0&&r--,40===t.which&&r<s.length-1&&r++,r<0&&(r=0),s[r].focus()}}else{if(27===t.which){var o=e(n).find(u.DATA_TOGGLE)[0];e(o).trigger("focus")}e(this).trigger("click")}}},r(a,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return f}},{key:"DefaultType",get:function(){return _}}]),a}();return e(document).on(h.KEYDOWN_DATA_API,u.DATA_TOGGLE,g._dataApiKeydownHandler).on(h.KEYDOWN_DATA_API,u.MENU,g._dataApiKeydownHandler).on(h.CLICK_DATA_API+" "+h.KEYUP_DATA_API,g._clearMenus).on(h.CLICK_DATA_API,u.DATA_TOGGLE,function(t){t.preventDefault(),t.stopPropagation(),g._jQueryInterface.call(e(this),"toggle")}).on(h.CLICK_DATA_API,u.FORM_CHILD,function(t){t.stopPropa
 gation()}),e.fn[t]=g._jQueryInterface,e.fn[t].Constructor=g,e.fn[t].noConflict=function(){return e.fn[t]=a,g._jQueryInterface},g}(),d=function(){var t="modal",n=".bs.modal",i=e.fn[t],o={backdrop:!0,keyboard:!0,focus:!0,show:!0},a={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},l={HIDE:"hide.bs.modal",HIDDEN:"hidden.bs.modal",SHOW:"show.bs.modal",SHOWN:"shown.bs.modal",FOCUSIN:"focusin.bs.modal",RESIZE:"resize.bs.modal",CLICK_DISMISS:"click.dismiss.bs.modal",KEYDOWN_DISMISS:"keydown.dismiss.bs.modal",MOUSEUP_DISMISS:"mouseup.dismiss.bs.modal",MOUSEDOWN_DISMISS:"mousedown.dismiss.bs.modal",CLICK_DATA_API:"click.bs.modal.data-api"},h={SCROLLBAR_MEASURER:"modal-scrollbar-measure",BACKDROP:"modal-backdrop",OPEN:"modal-open",FADE:"fade",SHOW:"show"},c={DIALOG:".modal-dialog",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top",NAVBAR_TOGGLER:"
 .navbar-toggler"},u=function(){function i(t,n){this._config=this._getConfig(n),this._element=t,this._dialog=e(t).find(c.DIALOG)[0],this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._originalBodyPadding=0,this._scrollbarWidth=0}var u=i.prototype;return u.toggle=function(t){return this._isShown?this.hide():this.show(t)},u.show=function(t){var n=this;if(!this._isTransitioning&&!this._isShown){s.supportsTransitionEnd()&&e(this._element).hasClass(h.FADE)&&(this._isTransitioning=!0);var i=e.Event(l.SHOW,{relatedTarget:t});e(this._element).trigger(i),this._isShown||i.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),e(document.body).addClass(h.OPEN),this._setEscapeEvent(),this._setResizeEvent(),e(this._element).on(l.CLICK_DISMISS,c.DATA_DISMISS,function(t){return n.hide(t)}),e(this._dialog).on(l.MOUSEDOWN_DISMISS,function(){e(n._element).one(l.MOUSEUP_DISMISS,function(t){e(t.target).is(n.
 _element)&&(n._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return n._showElement(t)}))}},u.hide=function(t){var n=this;if(t&&t.preventDefault(),!this._isTransitioning&&this._isShown){var i=e.Event(l.HIDE);if(e(this._element).trigger(i),this._isShown&&!i.isDefaultPrevented()){this._isShown=!1;var r=s.supportsTransitionEnd()&&e(this._element).hasClass(h.FADE);r&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),e(document).off(l.FOCUSIN),e(this._element).removeClass(h.SHOW),e(this._element).off(l.CLICK_DISMISS),e(this._dialog).off(l.MOUSEDOWN_DISMISS),r?e(this._element).one(s.TRANSITION_END,function(t){return n._hideModal(t)}).emulateTransitionEnd(300):this._hideModal()}}},u.dispose=function(){e.removeData(this._element,"bs.modal"),e(window,document,this._element,this._backdrop).off(n),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._scrol
 lbarWidth=null},u.handleUpdate=function(){this._adjustDialog()},u._getConfig=function(n){return n=e.extend({},o,n),s.typeCheckConfig(t,n,a),n},u._showElement=function(t){var n=this,i=s.supportsTransitionEnd()&&e(this._element).hasClass(h.FADE);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.scrollTop=0,i&&s.reflow(this._element),e(this._element).addClass(h.SHOW),this._config.focus&&this._enforceFocus();var r=e.Event(l.SHOWN,{relatedTarget:t}),o=function(){n._config.focus&&n._element.focus(),n._isTransitioning=!1,e(n._element).trigger(r)};i?e(this._dialog).one(s.TRANSITION_END,o).emulateTransitionEnd(300):o()},u._enforceFocus=function(){var t=this;e(document).off(l.FOCUSIN).on(l.FOCUSIN,function(n){document===n.target||t._element===n.target||e(t._element).has(n.target).length||t._element.focus()})},u._setEscapeEvent=f
 unction(){var t=this;this._isShown&&this._config.keyboard?e(this._element).on(l.KEYDOWN_DISMISS,function(e){27===e.which&&(e.preventDefault(),t.hide())}):this._isShown||e(this._element).off(l.KEYDOWN_DISMISS)},u._setResizeEvent=function(){var t=this;this._isShown?e(window).on(l.RESIZE,function(e){return t.handleUpdate(e)}):e(window).off(l.RESIZE)},u._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._isTransitioning=!1,this._showBackdrop(function(){e(document.body).removeClass(h.OPEN),t._resetAdjustments(),t._resetScrollbar(),e(t._element).trigger(l.HIDDEN)})},u._removeBackdrop=function(){this._backdrop&&(e(this._backdrop).remove(),this._backdrop=null)},u._showBackdrop=function(t){var n=this,i=e(this._element).hasClass(h.FADE)?h.FADE:"";if(this._isShown&&this._config.backdrop){var r=s.supportsTransitionEnd()&&i;if(this._backdrop=document.createElement("div"),this._backdrop.className=h.BACKDROP,i&&e(this._backdrop).ad
 dClass(i),e(this._backdrop).appendTo(document.body),e(this._element).on(l.CLICK_DISMISS,function(t){n._ignoreBackdropClick?n._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===n._config.backdrop?n._element.focus():n.hide())}),r&&s.reflow(this._backdrop),e(this._backdrop).addClass(h.SHOW),!t)return;if(!r)return void t();e(this._backdrop).one(s.TRANSITION_END,t).emulateTransitionEnd(150)}else if(!this._isShown&&this._backdrop){e(this._backdrop).removeClass(h.SHOW);var o=function(){n._removeBackdrop(),t&&t()};s.supportsTransitionEnd()&&e(this._element).hasClass(h.FADE)?e(this._backdrop).one(s.TRANSITION_END,o).emulateTransitionEnd(150):o()}else t&&t()},u._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},u._resetAdjustments=function(){this._element.sty
 le.paddingLeft="",this._element.style.paddingRight=""},u._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},u._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){e(c.FIXED_CONTENT).each(function(n,i){var s=e(i)[0].style.paddingRight,r=e(i).css("padding-right");e(i).data("padding-right",s).css("padding-right",parseFloat(r)+t._scrollbarWidth+"px")}),e(c.STICKY_CONTENT).each(function(n,i){var s=e(i)[0].style.marginRight,r=e(i).css("margin-right");e(i).data("margin-right",s).css("margin-right",parseFloat(r)-t._scrollbarWidth+"px")}),e(c.NAVBAR_TOGGLER).each(function(n,i){var s=e(i)[0].style.marginRight,r=e(i).css("margin-right");e(i).data("margin-right",s).css("margin-right",parseFloat(r)+t._scrollbarWidth+"px")});var n=document.body.style.paddingRight,i=e("body").css("padding-right");e("body").data("padding-right",n).css("padding-right",parseFloat(i)+
 this._scrollbarWidth+"px")}},u._resetScrollbar=function(){e(c.FIXED_CONTENT).each(function(t,n){var i=e(n).data("padding-right");"undefined"!=typeof i&&e(n).css("padding-right",i).removeData("padding-right")}),e(c.STICKY_CONTENT+", "+c.NAVBAR_TOGGLER).each(function(t,n){var i=e(n).data("margin-right");"undefined"!=typeof i&&e(n).css("margin-right",i).removeData("margin-right")});var t=e("body").data("padding-right");"undefined"!=typeof t&&e("body").css("padding-right",t).removeData("padding-right")},u._getScrollbarWidth=function(){var t=document.createElement("div");t.className=h.SCROLLBAR_MEASURER,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},i._jQueryInterface=function(t,n){return this.each(function(){var s=e(this).data("bs.modal"),r=e.extend({},i.Default,e(this).data(),"object"==typeof t&&t);if(s||(s=new i(this,r),e(this).data("bs.modal",s)),"string"==typeof t){if("undefined"==typeof s[t])throw new Error('N
 o method named "'+t+'"');s[t](n)}else r.show&&s.show(n)})},r(i,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return o}}]),i}();return e(document).on(l.CLICK_DATA_API,c.DATA_TOGGLE,function(t){var n,i=this,r=s.getSelectorFromElement(this);r&&(n=e(r)[0]);var o=e(n).data("bs.modal")?"toggle":e.extend({},e(n).data(),e(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();var a=e(n).one(l.SHOW,function(t){t.isDefaultPrevented()||a.one(l.HIDDEN,function(){e(i).is(":visible")&&i.focus()})});u._jQueryInterface.call(e(n),o,this)}),e.fn[t]=u._jQueryInterface,e.fn[t].Constructor=u,e.fn[t].noConflict=function(){return e.fn[t]=i,u._jQueryInterface},u}(),f=function(){if("undefined"==typeof n)throw new Error("Bootstrap tooltips require Popper.js (https://popper.js.org)");var t="tooltip",i=".bs.tooltip",o=e.fn[t],a=new RegExp("(^|\\s)bs-tooltip\\S+","g"),l={animation:"boolean",template:"string",title:"(string|element|function)",trigge
 r:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)"},h={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},c={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip"},u={SHOW:"show",OUT:"out"},d={HIDE:"hide"+i,HIDDEN:"hidden"+i,SHOW:"show"+i,SHOWN:"shown"+i,INSERTED:"inserted"+i,CLICK:"click"+i,FOCUSIN:"focusin"+i,FOCUSOUT:"focusout"+i,MOUSEENTER:"mouseenter"+i,MOUSELEAVE:"mouseleave"+i},f={FADE:"fade",SHOW:"show"},_={TOOLTIP:".tooltip",TOOLTIP_INNER:".tooltip-inner",ARROW:".arrow"},g={HOVER:"hover",FOCUS:"focus",CLICK:"click",MANUAL:"manual"},m=function(){function o(t,e){this._isEnabled=!0,this._timeout=0,this._hoverState="",this.
 _activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var m=o.prototype;return m.enable=function(){this._isEnabled=!0},m.disable=function(){this._isEnabled=!1},m.toggleEnabled=function(){this._isEnabled=!this._isEnabled},m.toggle=function(t){if(this._isEnabled)if(t){var n=this.constructor.DATA_KEY,i=e(t.currentTarget).data(n);i||(i=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(n,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)}else{if(e(this.getTipElement()).hasClass(f.SHOW))return void this._leave(null,this);this._enter(null,this)}},m.dispose=function(){clearTimeout(this._timeout),e.removeData(this.element,this.constructor.DATA_KEY),e(this.element).off(this.constructor.EVENT_KEY),e(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&e(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverStat
 e=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},m.show=function(){var t=this;if("none"===e(this.element).css("display"))throw new Error("Please use show on visible elements");var i=e.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){e(this.element).trigger(i);var r=e.contains(this.element.ownerDocument.documentElement,this.element);if(i.isDefaultPrevented()||!r)return;var a=this.getTipElement(),l=s.getUID(this.constructor.NAME);a.setAttribute("id",l),this.element.setAttribute("aria-describedby",l),this.setContent(),this.config.animation&&e(a).addClass(f.FADE);var h="function"==typeof this.config.placement?this.config.placement.call(this,a,this.element):this.config.placement,c=this._getAttachment(h);this.addAttachmentClass(c);var d=!1===this.config.container?document.body:e(this.config.container);e(a).data(this.constructor.DATA_KEY,this),e.contains(this.element.o
 wnerDocument.documentElement,this.tip)||e(a).appendTo(d),e(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new n(this.element,a,{placement:c,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:_.ARROW}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){t._handlePopperPlacementChange(e)}}),e(a).addClass(f.SHOW),"ontouchstart"in document.documentElement&&e("body").children().on("mouseover",null,e.noop);var g=function(){t.config.animation&&t._fixTransition();var n=t._hoverState;t._hoverState=null,e(t.element).trigger(t.constructor.Event.SHOWN),n===u.OUT&&t._leave(null,t)};s.supportsTransitionEnd()&&e(this.tip).hasClass(f.FADE)?e(this.tip).one(s.TRANSITION_END,g).emulateTransitionEnd(o._TRANSITION_DURATION):g()}},m.hide=function(t){var n=this,i=this.getTipElement(),r=e.Event(this.constructor.Event.HIDE),o=function(){n._hoverState!==u.SHOW&&i.parentNode
 &&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),e(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),t&&t()};e(this.element).trigger(r),r.isDefaultPrevented()||(e(i).removeClass(f.SHOW),"ontouchstart"in document.documentElement&&e("body").children().off("mouseover",null,e.noop),this._activeTrigger[g.CLICK]=!1,this._activeTrigger[g.FOCUS]=!1,this._activeTrigger[g.HOVER]=!1,s.supportsTransitionEnd()&&e(this.tip).hasClass(f.FADE)?e(i).one(s.TRANSITION_END,o).emulateTransitionEnd(150):o(),this._hoverState="")},m.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},m.isWithContent=function(){return Boolean(this.getTitle())},m.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-tooltip-"+t)},m.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},m.setContent=function(){var t=e(this.getTipElement());this.setElementContent(t.find(_.TOOLTIP_INNE
 R),this.getTitle()),t.removeClass(f.FADE+" "+f.SHOW)},m.setElementContent=function(t,n){var i=this.config.html;"object"==typeof n&&(n.nodeType||n.jquery)?i?e(n).parent().is(t)||t.empty().append(n):t.text(e(n).text()):t[i?"html":"text"](n)},m.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},m._getAttachment=function(t){return h[t.toUpperCase()]},m._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach(function(n){if("click"===n)e(t.element).on(t.constructor.Event.CLICK,t.config.selector,function(e){return t.toggle(e)});else if(n!==g.MANUAL){var i=n===g.HOVER?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,s=n===g.HOVER?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;e(t.element).on(i,t.config.selector,function(e){return t._enter(e)}).on(s,t.config.selector,function(e){return t._leave(e)})}e(t.element).closest
 (".modal").on("hide.bs.modal",function(){return t.hide()})}),this.config.selector?this.config=e.extend({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},m._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},m._enter=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusin"===t.type?g.FOCUS:g.HOVER]=!0),e(n.getTipElement()).hasClass(f.SHOW)||n._hoverState===u.SHOW?n._hoverState=u.SHOW:(clearTimeout(n._timeout),n._hoverState=u.SHOW,n.config.delay&&n.config.delay.show?n._timeout=setTimeout(function(){n._hoverState===u.SHOW&&n.show()},n.config.delay.show):n.show())},m._leave=function(t,n){var i=this.constructor.DATA
 _KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusout"===t.type?g.FOCUS:g.HOVER]=!1),n._isWithActiveTrigger()||(clearTimeout(n._timeout),n._hoverState=u.OUT,n.config.delay&&n.config.delay.hide?n._timeout=setTimeout(function(){n._hoverState===u.OUT&&n.hide()},n.config.delay.hide):n.hide())},m._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},m._getConfig=function(n){return"number"==typeof(n=e.extend({},this.constructor.Default,e(this.element).data(),n)).delay&&(n.delay={show:n.delay,hide:n.delay}),"number"==typeof n.title&&(n.title=n.title.toString()),"number"==typeof n.content&&(n.content=n.content.toString()),s.typeCheckConfig(t,n,this.constructor.DefaultType),n},m._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);r
 eturn t},m._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(a);null!==n&&n.length>0&&t.removeClass(n.join(""))},m._handlePopperPlacementChange=function(t){this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},m._fixTransition=function(){var t=this.getTipElement(),n=this.config.animation;null===t.getAttribute("x-placement")&&(e(t).removeClass(f.FADE),this.config.animation=!1,this.hide(),this.show(),this.config.animation=n)},o._jQueryInterface=function(t){return this.each(function(){var n=e(this).data("bs.tooltip"),i="object"==typeof t&&t;if((n||!/dispose|hide/.test(t))&&(n||(n=new o(this,i),e(this).data("bs.tooltip",n)),"string"==typeof t)){if("undefined"==typeof n[t])throw new Error('No method named "'+t+'"');n[t]()}})},r(o,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return c}},{key:"NAME",get:function(){return t}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",ge
 t:function(){return d}},{key:"EVENT_KEY",get:function(){return i}},{key:"DefaultType",get:function(){return l}}]),o}();return e.fn[t]=m._jQueryInterface,e.fn[t].Constructor=m,e.fn[t].noConflict=function(){return e.fn[t]=o,m._jQueryInterface},m}(),_=function(){var t="popover",n=".bs.popover",i=e.fn[t],s=new RegExp("(^|\\s)bs-popover\\S+","g"),a=e.extend({},f.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),l=e.extend({},f.DefaultType,{content:"(string|element|function)"}),h={FADE:"fade",SHOW:"show"},c={TITLE:".popover-header",CONTENT:".popover-body"},u={HIDE:"hide"+n,HIDDEN:"hidden"+n,SHOW:"show"+n,SHOWN:"shown"+n,INSERTED:"inserted"+n,CLICK:"click"+n,FOCUSIN:"focusin"+n,FOCUSOUT:"focusout"+n,MOUSEENTER:"mouseenter"+n,MOUSELEAVE:"mouseleave"+n},d=function(i){function d(){return i.apply(this,arguments)||this}o(d,i);var f=d.prototype;retu
 rn f.isWithContent=function(){return this.getTitle()||this._getContent()},f.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-popover-"+t)},f.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},f.setContent=function(){var t=e(this.getTipElement());this.setElementContent(t.find(c.TITLE),this.getTitle()),this.setElementContent(t.find(c.CONTENT),this._getContent()),t.removeClass(h.FADE+" "+h.SHOW)},f._getContent=function(){return this.element.getAttribute("data-content")||("function"==typeof this.config.content?this.config.content.call(this.element):this.config.content)},f._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(s);null!==n&&n.length>0&&t.removeClass(n.join(""))},d._jQueryInterface=function(t){return this.each(function(){var n=e(this).data("bs.popover"),i="object"==typeof t?t:null;if((n||!/destroy|hide/.test(t))&&(n||(n=new d(this,i),e(this).data("bs.popover",n)),"string"==typeof t)){if("undef
 ined"==typeof n[t])throw new Error('No method named "'+t+'"');n[t]()}})},r(d,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return a}},{key:"NAME",get:function(){return t}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return u}},{key:"EVENT_KEY",get:function(){return n}},{key:"DefaultType",get:function(){return l}}]),d}(f);return e.fn[t]=d._jQueryInterface,e.fn[t].Constructor=d,e.fn[t].noConflict=function(){return e.fn[t]=i,d._jQueryInterface},d}(),g=function(){var t="scrollspy",n=e.fn[t],i={offset:10,method:"auto",target:""},o={offset:"number",method:"string",target:"(string|element)"},a={ACTIVATE:"activate.bs.scrollspy",SCROLL:"scroll.bs.scrollspy",LOAD_DATA_API:"load.bs.scrollspy.data-api"},l={DROPDOWN_ITEM:"dropdown-item",DROPDOWN_MENU:"dropdown-menu",ACTIVE:"active"},h={DATA_SPY:'[data-spy="scroll"]',ACTIVE:".active",NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_IT
 EMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_ITEMS:".dropdown-item",DROPDOWN_TOGGLE:".dropdown-toggle"},c={OFFSET:"offset",POSITION:"position"},u=function(){function n(t,n){var i=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(n),this._selector=this._config.target+" "+h.NAV_LINKS+","+this._config.target+" "+h.LIST_ITEMS+","+this._config.target+" "+h.DROPDOWN_ITEMS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,e(this._scrollElement).on(a.SCROLL,function(t){return i._process(t)}),this.refresh(),this._process()}var u=n.prototype;return u.refresh=function(){var t=this,n=this._scrollElement!==this._scrollElement.window?c.POSITION:c.OFFSET,i="auto"===this._config.method?n:this._config.method,r=i===c.POSITION?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),e.makeArray(e(this._selector)).map(function(t){var n,o=s.getSelectorFromElement(t);if(o&&(n=e(
 o)[0]),n){var a=n.getBoundingClientRect();if(a.width||a.height)return[e(n)[i]().top+r,o]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(e){t._offsets.push(e[0]),t._targets.push(e[1])})},u.dispose=function(){e.removeData(this._element,"bs.scrollspy"),e(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},u._getConfig=function(n){if("string"!=typeof(n=e.extend({},i,n)).target){var r=e(n.target).attr("id");r||(r=s.getUID(t),e(n.target).attr("id",r)),n.target="#"+r}return s.typeCheckConfig(t,n,o),n},u._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},u._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},u._getOffsetH
 eight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},u._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var s=this._offsets.length;s--;)this._activeTarget!==this._targets[s]&&t>=this._offsets[s]&&("undefined"==typeof this._offsets[s+1]||t<this._offsets[s+1])&&this._activate(this._targets[s])}},u._activate=function(t){this._activeTarget=t,this._clear();var n=this._selector.split(",");n=n.map(function(e){return e+'[data-target="'+t+'"],'+e+'[href="'+t+'"]'});var i=e(n.join(","));i.hasClass(l.DROPDOWN_ITEM)?(i.closest(h.DROPDOWN).find(h.DROPDOWN_TOGGLE).addClass(l.ACTIVE),i.a
 ddClass(l.ACTIVE)):(i.addClass(l.ACTIVE),i.parents(h.NAV_LIST_GROUP).prev(h.NAV_LINKS+", "+h.LIST_ITEMS).addClass(l.ACTIVE),i.parents(h.NAV_LIST_GROUP).prev(h.NAV_ITEMS).children(h.NAV_LINKS).addClass(l.ACTIVE)),e(this._scrollElement).trigger(a.ACTIVATE,{relatedTarget:t})},u._clear=function(){e(this._selector).filter(h.ACTIVE).removeClass(l.ACTIVE)},n._jQueryInterface=function(t){return this.each(function(){var i=e(this).data("bs.scrollspy"),s="object"==typeof t&&t;if(i||(i=new n(this,s),e(this).data("bs.scrollspy",i)),"string"==typeof t){if("undefined"==typeof i[t])throw new Error('No method named "'+t+'"');i[t]()}})},r(n,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}},{key:"Default",get:function(){return i}}]),n}();return e(window).on(a.LOAD_DATA_API,function(){for(var t=e.makeArray(e(h.DATA_SPY)),n=t.length;n--;){var i=e(t[n]);u._jQueryInterface.call(i,i.data())}}),e.fn[t]=u._jQueryInterface,e.fn[t].Constructor=u,e.fn[t].noConflict=function(){return e.fn[t]=n,u._jQuery
 Interface},u}(),m=function(){var t=e.fn.tab,n={HIDE:"hide.bs.tab",HIDDEN:"hidden.bs.tab",SHOW:"show.bs.tab",SHOWN:"shown.bs.tab",CLICK_DATA_API:"click.bs.tab.data-api"},i={DROPDOWN_MENU:"dropdown-menu",ACTIVE:"active",DISABLED:"disabled",FADE:"fade",SHOW:"show"},o={DROPDOWN:".dropdown",NAV_LIST_GROUP:".nav, .list-group",ACTIVE:".active",ACTIVE_UL:"> li > .active",DATA_TOGGLE:'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',DROPDOWN_TOGGLE:".dropdown-toggle",DROPDOWN_ACTIVE_CHILD:"> .dropdown-menu .active"},a=function(){function t(t){this._element=t}var a=t.prototype;return a.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&e(this._element).hasClass(i.ACTIVE)||e(this._element).hasClass(i.DISABLED))){var r,a,l=e(this._element).closest(o.NAV_LIST_GROUP)[0],h=s.getSelectorFromElement(this._element);if(l){var c="UL"===l.nodeName?o.ACTIVE_UL:o.ACTIVE;a=e.makeArray(e(l).find(c)),a=a[a.length-1]}var u=e.Event(n
 .HIDE,{relatedTarget:this._element}),d=e.Event(n.SHOW,{relatedTarget:a});if(a&&e(a).trigger(u),e(this._element).trigger(d),!d.isDefaultPrevented()&&!u.isDefaultPrevented()){h&&(r=e(h)[0]),this._activate(this._element,l);var f=function(){var i=e.Event(n.HIDDEN,{relatedTarget:t._element}),s=e.Event(n.SHOWN,{relatedTarget:a});e(a).trigger(i),e(t._element).trigger(s)};r?this._activate(r,r.parentNode,f):f()}}},a.dispose=function(){e.removeData(this._element,"bs.tab"),this._element=null},a._activate=function(t,n,r){var a,l=this,h=(a="UL"===n.nodeName?e(n).find(o.ACTIVE_UL):e(n).children(o.ACTIVE))[0],c=r&&s.supportsTransitionEnd()&&h&&e(h).hasClass(i.FADE),u=function(){return l._transitionComplete(t,h,c,r)};h&&c?e(h).one(s.TRANSITION_END,u).emulateTransitionEnd(150):u(),h&&e(h).removeClass(i.SHOW)},a._transitionComplete=function(t,n,r,a){if(n){e(n).removeClass(i.ACTIVE);var l=e(n.parentNode).find(o.DROPDOWN_ACTIVE_CHILD)[0];l&&e(l).removeClass(i.ACTIVE),"tab"===n.getAttribute("role")&&n.s
 etAttribute("aria-selected",!1)}if(e(t).addClass(i.ACTIVE),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),r?(s.reflow(t),e(t).addClass(i.SHOW)):e(t).removeClass(i.FADE),t.parentNode&&e(t.parentNode).hasClass(i.DROPDOWN_MENU)){var h=e(t).closest(o.DROPDOWN)[0];h&&e(h).find(o.DROPDOWN_TOGGLE).addClass(i.ACTIVE),t.setAttribute("aria-expanded",!0)}a&&a()},t._jQueryInterface=function(n){return this.each(function(){var i=e(this),s=i.data("bs.tab");if(s||(s=new t(this),i.data("bs.tab",s)),"string"==typeof n){if("undefined"==typeof s[n])throw new Error('No method named "'+n+'"');s[n]()}})},r(t,null,[{key:"VERSION",get:function(){return"4.0.0-beta.2"}}]),t}();return e(document).on(n.CLICK_DATA_API,o.DATA_TOGGLE,function(t){t.preventDefault(),a._jQueryInterface.call(e(this),"show")}),e.fn.tab=a._jQueryInterface,e.fn.tab.Constructor=a,e.fn.tab.noConflict=function(){return e.fn.tab=t,a._jQueryInterface},a}();return function(){if("undefined"==typeof e)throw new Error("Bootstr
 ap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var t=e.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||t[0]>=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(),t.Util=s,t.Alert=a,t.Button=l,t.Carousel=h,t.Collapse=c,t.Dropdown=u,t.Modal=d,t.Popover=_,t.Scrollspy=g,t.Tab=m,t.Tooltip=f,t}({},$,Popper);
-//# sourceMappingURL=bootstrap.min.js.map
\ No newline at end of file
diff --git a/assets/static/js/bootstrap.min.js.map b/assets/static/js/bootstrap.min.js.map
deleted file mode 100755
index 613897d..0000000
--- a/assets/static/js/bootstrap.min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/index.js"],"names":["Util","toType","obj","toString","call","match","toLowerCase","getSpecialTransitionEndEvent","transition","end","event","$","target","is","this","handleObj","handler","apply","arguments","transitionEndTest","window","QUnit","el","document","createElement","name","TransitionEndEvent","style","transitionEndEmulator","duration","called","one","TRANSITION_END","triggerTransitionEnd","_this","prefix","Math","random","getElementById","element","selector","getAttribute","find","length","error","offsetHeight","trigger","Boolean","nodeType","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType
 ","isElement","RegExp","test","Error","toUpperCase","fn","emulateTransitionEnd","supportsTransitionEnd","special","Alert","NAME","JQUERY_NO_CONFLICT","Event","ClassName","_element","close","rootElement","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","getSelectorFromElement","parent","closest","ALERT","closeEvent","CLOSE","removeClass","SHOW","hasClass","FADE","_destroyElement","detach","CLOSED","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","CLICK_DATA_API","DISMISS","Constructor","noConflict","Button","Selector","toggle","triggerChangeEvent","addAriaPressed","DATA_TOGGLE","input","INPUT","type","checked","ACTIVE","activeElement","hasAttribute","classList","contains","focus","setAttribute","toggleClass","DATA_TOGGLE_CARROT","button","BUTTON","FOCUS_BLUR_DATA_API","FOCUS","Carousel","DATA_KEY","EVENT_KEY","Default","DefaultType","Direction","_items","_interval","_activeEl
 ement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","INDICATORS","_addEventListeners","next","_slide","NEXT","nextWhenVisible","hidden","css","prev","PREV","pause","NEXT_PREV","cycle","interval","setInterval","visibilityState","bind","to","index","ACTIVE_ITEM","activeIndex","_getItemIndex","SLID","direction","off","extend","typeCheckConfig","keyboard","KEYDOWN","_this2","_keydown","MOUSEENTER","MOUSELEAVE","documentElement","TOUCHEND","setTimeout","tagName","which","makeArray","ITEM","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","wrap","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","SLIDE","_setActiveIndicatorElement","nextIndicator","children","addClass","directionalClassName","orderClassName","activeElementIndex","nextElement","nextElementIndex","isCycling","LEFT","RIGHT","slidEvent","reflow","_this3","action","slide","_dataApiClickHandler","CA
 ROUSEL","slideIndex","DATA_SLIDE","LOAD_DATA_API","DATA_RIDE","$carousel","Collapse","Dimension","_isTransitioning","_triggerArray","id","tabToggles","i","elem","filter","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","ACTIVES","startEvent","dimension","_getDimension","COLLAPSE","COLLAPSING","COLLAPSED","attr","setTransitioning","complete","SHOWN","scrollSize","slice","HIDE","getBoundingClientRect","HIDDEN","isTransitioning","WIDTH","HEIGHT","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","$target","Dropdown","Popper","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","AttachmentMap","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","DISABLED","_getParentFromElement","isActive","_clearMenus","showEvent","DROPUP","MENULEFT","MENURIGHT","_getPopperConfig","NAVBAR_NAV","noop","destroy","update","scheduleUpdate","CLICK","stopPropagation","constructor","MENU","_getPlacement","$parentDrop
 down","placement","BOTTOM","TOP","TOPEND","BOTTOMEND","offsetConf","offset","offsets","popperConfig","flip","modifiers","applyStyle","toggles","context","dropdownMenu","hideEvent","parentNode","_dataApiKeydownHandler","items","VISIBLE_ITEMS","get","KEYDOWN_DATA_API","KEYUP_DATA_API","FORM_CHILD","e","Modal","_dialog","DIALOG","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_originalBodyPadding","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","body","OPEN","_setEscapeEvent","_setResizeEvent","CLICK_DISMISS","DATA_DISMISS","MOUSEDOWN_DISMISS","MOUSEUP_DISMISS","_showBackdrop","_showElement","FOCUSIN","_hideModal","handleUpdate","Node","ELEMENT_NODE","appendChild","display","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","_this4","has","KEYDOWN_DISMISS","RESIZE","_this6","_resetAdjustments","_resetScrollbar","_this7","_removeBackdrop","callback","animate","backdrop","doAnimate","className","BACKDROP","appendTo","_t
 his8","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","rect","left","right","innerWidth","_getScrollbarWidth","FIXED_CONTENT","actualPadding","calculatedPadding","parseFloat","_this9","STICKY_CONTENT","actualMargin","marginRight","calculatedMargin","NAVBAR_TOGGLER","padding","margin","scrollDiv","SCROLLBAR_MEASURER","scrollbarWidth","width","clientWidth","removeChild","Tooltip","BSCLS_PREFIX_REGEX","HoverState","Trigger","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","ownerDocument","tipId","getUID","setContent","animation","attachment","_getAttachment","addAttachmentClass","container","INSERTED","fallbackPlacement","ARROW","originalPlacement","_handlePopperPlacementChange","_fixTransition","prevHoverState","OUT","_TRANSITION_DURATION","_cleanTipCl
 ass","HOVER","getTitle","CLASS_PREFIX","template","$tip","setElementContent","TOOLTIP_INNER","content","html","empty","append","text","title","split","forEach","MANUAL","eventIn","eventOut","FOCUSOUT","_fixTitle","titleType","delay","key","tabClass","join","initConfigAnimation","Popover","_getContent","TITLE","CONTENT","ScrollSpy","OffsetMethod","_scrollElement","_selector","NAV_LINKS","LIST_ITEMS","DROPDOWN_ITEMS","_offsets","_targets","_activeTarget","_scrollHeight","SCROLL","_process","refresh","autoMethod","POSITION","OFFSET","offsetMethod","method","offsetBase","_getScrollTop","_getScrollHeight","map","targetSelector","targetBCR","height","top","item","sort","a","b","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","$link","DROPDOWN_ITEM","DROPDOWN","DROPDOWN_TOGGLE","parents","NAV_LIST_GROUP","NAV_ITEMS","ACTIVATE","scrollSpys","DATA_SPY","$spy","Tab","previous","listElement","itemSelector","nodeName","ACTIVE_UL","hiddenEvent","act
 iveElements","active","_transitionComplete","dropdownChild","DROPDOWN_ACTIVE_CHILD","DROPDOWN_MENU","dropdownElement","version"],"mappings":"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","sourcesContent":["import $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------
 --\n * Bootstrap (v4.0.0-beta.2): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Private TransitionEnd Helpers\n   * ------------------------------------------------------------------------\n   */\n\n  let transition = false\n\n  const MAX_UID = 1000000\n\n  const TransitionEndEvent = {\n    WebkitTransition : 'webkitTransitionEnd',\n    MozTransition    : 'transitionend',\n    OTransition      : 'oTransitionEnd otransitionend',\n    transition       : 'transitionend'\n  }\n\n  // shoutout AngusCroll (https://goo.gl/pxwQGp)\n  function toType(obj) {\n    return {}.toString.call(obj).match(/\\s([a-zA-Z]+)/)[1].toLowerCase()\n  }\n\n  function getSpecialTransitionEndEvent() {\n    return {\n      bindType: transition.end,\n      delegateType: t
 ransition.end,\n      handle(event) {\n        if ($(event.target).is(this)) {\n          return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n        }\n        return undefined // eslint-disable-line no-undefined\n      }\n    }\n  }\n\n  function transitionEndTest() {\n    if (window.QUnit) {\n      return false\n    }\n\n    const el = document.createElement('bootstrap')\n\n    for (const name in TransitionEndEvent) {\n      if (typeof el.style[name] !== 'undefined') {\n        return {\n          end: TransitionEndEvent[name]\n        }\n      }\n    }\n\n    return false\n  }\n\n  function transitionEndEmulator(duration) {\n    let called = false\n\n    $(this).one(Util.TRANSITION_END, () => {\n      called = true\n    })\n\n    setTimeout(() => {\n      if (!called) {\n        Util.triggerTransitionEnd(this)\n      }\n    }, duration)\n\n    return this\n  }\n\n  function setTransitionEndSupport() {\n    transition = transitionEndTe
 st()\n\n    $.fn.emulateTransitionEnd = transitionEndEmulator\n\n    if (Util.supportsTransitionEnd()) {\n      $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n    }\n  }\n\n\n  /**\n   * --------------------------------------------------------------------------\n   * Public Util Api\n   * --------------------------------------------------------------------------\n   */\n\n  const Util = {\n\n    TRANSITION_END: 'bsTransitionEnd',\n\n    getUID(prefix) {\n      do {\n        // eslint-disable-next-line no-bitwise\n        prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n      } while (document.getElementById(prefix))\n      return prefix\n    },\n\n    getSelectorFromElement(element) {\n      let selector = element.getAttribute('data-target')\n      if (!selector || selector === '#') {\n        selector = element.getAttribute('href') || ''\n      }\n\n      try {\n        const $selector = $(document).find(selector)\n      
   return $selector.length > 0 ? selector : null\n      } catch (error) {\n        return null\n      }\n    },\n\n    reflow(element) {\n      return element.offsetHeight\n    },\n\n    triggerTransitionEnd(element) {\n      $(element).trigger(transition.end)\n    },\n\n    supportsTransitionEnd() {\n      return Boolean(transition)\n    },\n\n    isElement(obj) {\n      return (obj[0] || obj).nodeType\n    },\n\n    typeCheckConfig(componentName, config, configTypes) {\n      for (const property in configTypes) {\n        if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n          const expectedTypes = configTypes[property]\n          const value         = config[property]\n          const valueType     = value && Util.isElement(value) ?\n                                'element' : toType(value)\n\n          if (!new RegExp(expectedTypes).test(valueType)) {\n            throw new Error(\n              `${componentName.toUpperCase()}: ` +\n              `Option \"$
 {property}\" provided type \"${valueType}\" ` +\n              `but expected type \"${expectedTypes}\".`)\n          }\n        }\n      }\n    }\n  }\n\n  setTransitionEndSupport()\n\n  return Util\n\n})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'alert'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.alert'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY       
  = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n\n  const Selector = {\n    DISMISS : '[data-dismiss=\"alert\"]'\n  }\n\n  const Event = {\n    CLOSE          : `close${EVENT_KEY}`,\n    CLOSED         : `closed${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    ALERT : 'alert',\n    FADE  : 'fade',\n    SHOW  : 'show'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Alert {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    close(element) {\n      element = element || this._element\n\n      const rootElement = this._getRootElement(element)\n      const customEvent = this._triggerCloseEvent(rootElement
 )\n\n      if (customEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._removeElement(rootElement)\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n\n    // private\n\n    _getRootElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      let parent     = false\n\n      if (selector) {\n        parent = $(selector)[0]\n      }\n\n      if (!parent) {\n        parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n      }\n\n      return parent\n    }\n\n    _triggerCloseEvent(element) {\n      const closeEvent = $.Event(Event.CLOSE)\n\n      $(element).trigger(closeEvent)\n      return closeEvent\n    }\n\n    _removeElement(element) {\n      $(element).removeClass(ClassName.SHOW)\n\n      if (!Util.supportsTransitionEnd() ||\n          !$(element).hasClass(ClassName.FADE)) {\n        this._destroyElement(element)\n        return\n      }\n\n      $(element)\n        .one(Util.
 TRANSITION_END, (event) => this._destroyElement(element, event))\n        .emulateTransitionEnd(TRANSITION_DURATION)\n    }\n\n    _destroyElement(element) {\n      $(element)\n        .detach()\n        .trigger(Event.CLOSED)\n        .remove()\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $element = $(this)\n        let data       = $element.data(DATA_KEY)\n\n        if (!data) {\n          data = new Alert(this)\n          $element.data(DATA_KEY, data)\n        }\n\n        if (config === 'close') {\n          data[config](this)\n        }\n      })\n    }\n\n    static _handleDismiss(alertInstance) {\n      return function (event) {\n        if (event) {\n          event.preventDefault()\n        }\n\n        alertInstance.close(this)\n      }\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * -------------------------
 -----------------------------------------------\n   */\n\n  $(document).on(\n    Event.CLICK_DATA_API,\n    Selector.DISMISS,\n    Alert._handleDismiss(new Alert())\n  )\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Alert._jQueryInterface\n  $.fn[NAME].Constructor = Alert\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Alert._jQueryInterface\n  }\n\n  return Alert\n\n})($)\n\nexport default Alert\n","import $ from 'jquery'\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (() => {\n\n\n  /**\n   * ----------------------
 --------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'button'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.button'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n\n  const ClassName = {\n    ACTIVE : 'active',\n    BUTTON : 'btn',\n    FOCUS  : 'focus'\n  }\n\n  const Selector = {\n    DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n    DATA_TOGGLE        : '[data-toggle=\"buttons\"]',\n    INPUT              : 'input',\n    ACTIVE             : '.active',\n    BUTTON             : '.btn'\n  }\n\n  const Event = {\n    CLICK_DATA_API      : `click${EVENT_KEY}${DATA_API_KEY}`,\n    FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} `\n                        + `blur${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n\n  /**\n   * -----------
 -------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Button {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    toggle() {\n      let triggerChangeEvent = true\n      let addAriaPressed = true\n      const rootElement      = $(this._element).closest(\n        Selector.DATA_TOGGLE\n      )[0]\n\n      if (rootElement) {\n        const input = $(this._element).find(Selector.INPUT)[0]\n\n        if (input) {\n          if (input.type === 'radio') {\n            if (input.checked &&\n              $(this._element).hasClass(ClassName.ACTIVE)) {\n              triggerChangeEvent = false\n\n            } else {\n              const activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n              if (activeElement) {\n                $
 (activeElement).removeClass(ClassName.ACTIVE)\n              }\n            }\n          }\n\n          if (triggerChangeEvent) {\n            if (input.hasAttribute('disabled') ||\n              rootElement.hasAttribute('disabled') ||\n              input.classList.contains('disabled') ||\n              rootElement.classList.contains('disabled')) {\n              return\n            }\n            input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n            $(input).trigger('change')\n          }\n\n          input.focus()\n          addAriaPressed = false\n        }\n\n      }\n\n      if (addAriaPressed) {\n        this._element.setAttribute('aria-pressed',\n          !$(this._element).hasClass(ClassName.ACTIVE))\n      }\n\n      if (triggerChangeEvent) {\n        $(this._element).toggleClass(ClassName.ACTIVE)\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n\n    // static\n\n    static _jQueryInt
 erface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n\n        if (!data) {\n          data = new Button(this)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (config === 'toggle') {\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      event.preventDefault()\n\n      let button = event.target\n\n      if (!$(button).hasClass(ClassName.BUTTON)) {\n        button = $(button).closest(Selector.BUTTON)\n      }\n\n      Button._jQueryInterface.call($(button), 'toggle')\n    })\n    .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      const button = $(event.target).closest(Selector.BUTTON)[0]\n 
      $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Button._jQueryInterface\n  $.fn[NAME].Constructor = Button\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Button._jQueryInterface\n  }\n\n  return Button\n\n})($)\n\nexport default Button\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (() => {\n\n\n  /**\n   * -------------------------------------------------------------------
 -----\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                   = 'carousel'\n  const VERSION                = '4.0.0-beta.2'\n  const DATA_KEY               = 'bs.carousel'\n  const EVENT_KEY              = `.${DATA_KEY}`\n  const DATA_API_KEY           = '.data-api'\n  const JQUERY_NO_CONFLICT     = $.fn[NAME]\n  const TRANSITION_DURATION    = 600\n  const ARROW_LEFT_KEYCODE     = 37 // KeyboardEvent.which value for left arrow key\n  const ARROW_RIGHT_KEYCODE    = 39 // KeyboardEvent.which value for right arrow key\n  const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n  const Default = {\n    interval : 5000,\n    keyboard : true,\n    slide    : false,\n    pause    : 'hover',\n    wrap     : true\n  }\n\n  const DefaultType = {\n    interval : '(number|boolean)',\n    keyboard : 'boolean',\n    slide    : '(boolean|string)',\n    pause    : '(string|boolean)',\n  
   wrap     : 'boolean'\n  }\n\n  const Direction = {\n    NEXT     : 'next',\n    PREV     : 'prev',\n    LEFT     : 'left',\n    RIGHT    : 'right'\n  }\n\n  const Event = {\n    SLIDE          : `slide${EVENT_KEY}`,\n    SLID           : `slid${EVENT_KEY}`,\n    KEYDOWN        : `keydown${EVENT_KEY}`,\n    MOUSEENTER     : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE     : `mouseleave${EVENT_KEY}`,\n    TOUCHEND       : `touchend${EVENT_KEY}`,\n    LOAD_DATA_API  : `load${EVENT_KEY}${DATA_API_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    CAROUSEL : 'carousel',\n    ACTIVE   : 'active',\n    SLIDE    : 'slide',\n    RIGHT    : 'carousel-item-right',\n    LEFT     : 'carousel-item-left',\n    NEXT     : 'carousel-item-next',\n    PREV     : 'carousel-item-prev',\n    ITEM     : 'carousel-item'\n  }\n\n  const Selector = {\n    ACTIVE      : '.active',\n    ACTIVE_ITEM : '.active.carousel-item',\n    ITEM        : '.carousel-item',\n 
    NEXT_PREV   : '.carousel-item-next, .carousel-item-prev',\n    INDICATORS  : '.carousel-indicators',\n    DATA_SLIDE  : '[data-slide], [data-slide-to]',\n    DATA_RIDE   : '[data-ride=\"carousel\"]'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Carousel {\n\n    constructor(element, config) {\n      this._items             = null\n      this._interval          = null\n      this._activeElement     = null\n\n      this._isPaused          = false\n      this._isSliding         = false\n\n      this.touchTimeout       = null\n\n      this._config            = this._getConfig(config)\n      this._element           = $(element)[0]\n      this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n      this._addEventListeners()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSIO
 N\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    next() {\n      if (!this._isSliding) {\n        this._slide(Direction.NEXT)\n      }\n    }\n\n    nextWhenVisible() {\n      // Don't call next when the page isn't visible\n      // or the carousel or its parent isn't visible\n      if (!document.hidden &&\n        ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n        this.next()\n      }\n    }\n\n    prev() {\n      if (!this._isSliding) {\n        this._slide(Direction.PREV)\n      }\n    }\n\n    pause(event) {\n      if (!event) {\n        this._isPaused = true\n      }\n\n      if ($(this._element).find(Selector.NEXT_PREV)[0] &&\n        Util.supportsTransitionEnd()) {\n        Util.triggerTransitionEnd(this._element)\n        this.cycle(true)\n      }\n\n      clearInterval(this._interval)\n      this._interval = null\n    }\n\n    cycle(event) {\n      if (!event) {\n        this._isPause
 d = false\n      }\n\n      if (this._interval) {\n        clearInterval(this._interval)\n        this._interval = null\n      }\n\n      if (this._config.interval && !this._isPaused) {\n        this._interval = setInterval(\n          (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n          this._config.interval\n        )\n      }\n    }\n\n    to(index) {\n      this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n      const activeIndex = this._getItemIndex(this._activeElement)\n\n      if (index > this._items.length - 1 || index < 0) {\n        return\n      }\n\n      if (this._isSliding) {\n        $(this._element).one(Event.SLID, () => this.to(index))\n        return\n      }\n\n      if (activeIndex === index) {\n        this.pause()\n        this.cycle()\n        return\n      }\n\n      const direction = index > activeIndex ?\n        Direction.NEXT :\n        Direction.PREV\n\n      this._slide(direction, this._items[index])
 \n    }\n\n    dispose() {\n      $(this._element).off(EVENT_KEY)\n      $.removeData(this._element, DATA_KEY)\n\n      this._items             = null\n      this._config            = null\n      this._element           = null\n      this._interval          = null\n      this._isPaused          = null\n      this._isSliding         = null\n      this._activeElement     = null\n      this._indicatorsElement = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = $.extend({}, Default, config)\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _addEventListeners() {\n      if (this._config.keyboard) {\n        $(this._element)\n          .on(Event.KEYDOWN, (event) => this._keydown(event))\n      }\n\n      if (this._config.pause === 'hover') {\n        $(this._element)\n          .on(Event.MOUSEENTER, (event) => this.pause(event))\n          .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n        if ('ontouchstart' in do
 cument.documentElement) {\n          // if it's a touch-enabled device, mouseenter/leave are fired as\n          // part of the mouse compatibility events on first tap - the carousel\n          // would stop cycling until user tapped out of it;\n          // here, we listen for touchend, explicitly pause the carousel\n          // (as if it's the second time we tap on it, mouseenter compat event\n          // is NOT fired) and after a timeout (to allow for mouse compatibility\n          // events to fire) we explicitly restart cycling\n          $(this._element).on(Event.TOUCHEND, () => {\n            this.pause()\n            if (this.touchTimeout) {\n              clearTimeout(this.touchTimeout)\n            }\n            this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n          })\n        }\n      }\n    }\n\n    _keydown(event) {\n      if (/input|textarea/i.test(event.target.tagName)) {\n        return\n      }\n\n
       switch (event.which) {\n        case ARROW_LEFT_KEYCODE:\n          event.preventDefault()\n          this.prev()\n          break\n        case ARROW_RIGHT_KEYCODE:\n          event.preventDefault()\n          this.next()\n          break\n        default:\n          return\n      }\n    }\n\n    _getItemIndex(element) {\n      this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n      return this._items.indexOf(element)\n    }\n\n    _getItemByDirection(direction, activeElement) {\n      const isNextDirection = direction === Direction.NEXT\n      const isPrevDirection = direction === Direction.PREV\n      const activeIndex     = this._getItemIndex(activeElement)\n      const lastItemIndex   = this._items.length - 1\n      const isGoingToWrap   = isPrevDirection && activeIndex === 0 ||\n                              isNextDirection && activeIndex === lastItemIndex\n\n      if (isGoingToWrap && !this._config.wrap) {\n        return activeElement\n      }\n\n    
   const delta     = direction === Direction.PREV ? -1 : 1\n      const itemIndex = (activeIndex + delta) % this._items.length\n\n      return itemIndex === -1 ?\n        this._items[this._items.length - 1] : this._items[itemIndex]\n    }\n\n\n    _triggerSlideEvent(relatedTarget, eventDirectionName) {\n      const targetIndex = this._getItemIndex(relatedTarget)\n      const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n      const slideEvent = $.Event(Event.SLIDE, {\n        relatedTarget,\n        direction: eventDirectionName,\n        from: fromIndex,\n        to: targetIndex\n      })\n\n      $(this._element).trigger(slideEvent)\n\n      return slideEvent\n    }\n\n    _setActiveIndicatorElement(element) {\n      if (this._indicatorsElement) {\n        $(this._indicatorsElement)\n          .find(Selector.ACTIVE)\n          .removeClass(ClassName.ACTIVE)\n\n        const nextIndicator = this._indicatorsElement.children[\n          this._getItemI
 ndex(element)\n        ]\n\n        if (nextIndicator) {\n          $(nextIndicator).addClass(ClassName.ACTIVE)\n        }\n      }\n    }\n\n    _slide(direction, element) {\n      const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n      const activeElementIndex = this._getItemIndex(activeElement)\n      const nextElement   = element || activeElement &&\n        this._getItemByDirection(direction, activeElement)\n      const nextElementIndex = this._getItemIndex(nextElement)\n      const isCycling = Boolean(this._interval)\n\n      let directionalClassName\n      let orderClassName\n      let eventDirectionName\n\n      if (direction === Direction.NEXT) {\n        directionalClassName = ClassName.LEFT\n        orderClassName = ClassName.NEXT\n        eventDirectionName = Direction.LEFT\n      } else {\n        directionalClassName = ClassName.RIGHT\n        orderClassName = ClassName.PREV\n        eventDirectionName = Direction.RIGHT\n      }\n\n      if (nextEle
 ment && $(nextElement).hasClass(ClassName.ACTIVE)) {\n        this._isSliding = false\n        return\n      }\n\n      const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n      if (slideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (!activeElement || !nextElement) {\n        // some weirdness is happening, so we bail\n        return\n      }\n\n      this._isSliding = true\n\n      if (isCycling) {\n        this.pause()\n      }\n\n      this._setActiveIndicatorElement(nextElement)\n\n      const slidEvent = $.Event(Event.SLID, {\n        relatedTarget: nextElement,\n        direction: eventDirectionName,\n        from: activeElementIndex,\n        to: nextElementIndex\n      })\n\n      if (Util.supportsTransitionEnd() &&\n        $(this._element).hasClass(ClassName.SLIDE)) {\n\n        $(nextElement).addClass(orderClassName)\n\n        Util.reflow(nextElement)\n\n        $(activeElement).addClass(directionalClassName)\n        $(nextE
 lement).addClass(directionalClassName)\n\n        $(activeElement)\n          .one(Util.TRANSITION_END, () => {\n            $(nextElement)\n              .removeClass(`${directionalClassName} ${orderClassName}`)\n              .addClass(ClassName.ACTIVE)\n\n            $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n            this._isSliding = false\n\n            setTimeout(() => $(this._element).trigger(slidEvent), 0)\n\n          })\n          .emulateTransitionEnd(TRANSITION_DURATION)\n\n      } else {\n        $(activeElement).removeClass(ClassName.ACTIVE)\n        $(nextElement).addClass(ClassName.ACTIVE)\n\n        this._isSliding = false\n        $(this._element).trigger(slidEvent)\n      }\n\n      if (isCycling) {\n        this.cycle()\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = $.
 extend({}, Default, $(this).data())\n\n        if (typeof config === 'object') {\n          $.extend(_config, config)\n        }\n\n        const action = typeof config === 'string' ? config : _config.slide\n\n        if (!data) {\n          data = new Carousel(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'number') {\n          data.to(config)\n        } else if (typeof action === 'string') {\n          if (typeof data[action] === 'undefined') {\n            throw new Error(`No method named \"${action}\"`)\n          }\n          data[action]()\n        } else if (_config.interval) {\n          data.pause()\n          data.cycle()\n        }\n      })\n    }\n\n    static _dataApiClickHandler(event) {\n      const selector = Util.getSelectorFromElement(this)\n\n      if (!selector) {\n        return\n      }\n\n      const target = $(selector)[0]\n\n      if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n        return\n
       }\n\n      const config     = $.extend({}, $(target).data(), $(this).data())\n      const slideIndex = this.getAttribute('data-slide-to')\n\n      if (slideIndex) {\n        config.interval = false\n      }\n\n      Carousel._jQueryInterface.call($(target), config)\n\n      if (slideIndex) {\n        $(target).data(DATA_KEY).to(slideIndex)\n      }\n\n      event.preventDefault()\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    $(Selector.DATA_RIDE).each(function () {\n      const $carousel = $(this)\n      Carousel._jQueryInterface.call($carousel, $carousel.data())\n    })\n  })\n\n\n  /**\n   * ----------------------------------------------------------------
 --------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Carousel._jQueryInterface\n  $.fn[NAME].Constructor = Carousel\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Carousel._jQueryInterface\n  }\n\n  return Carousel\n\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'collapse'\n  c
 onst VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.collapse'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 600\n\n  const Default = {\n    toggle : true,\n    parent : ''\n  }\n\n  const DefaultType = {\n    toggle : 'boolean',\n    parent : '(string|element)'\n  }\n\n  const Event = {\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SHOW       : 'show',\n    COLLAPSE   : 'collapse',\n    COLLAPSING : 'collapsing',\n    COLLAPSED  : 'collapsed'\n  }\n\n  const Dimension = {\n    WIDTH  : 'width',\n    HEIGHT : 'height'\n  }\n\n  const Selector = {\n    ACTIVES     : '.show, .collapsing',\n    DATA_TOGGLE : '[data-toggle=\"collapse\"]
 '\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Collapse {\n\n    constructor(element, config) {\n      this._isTransitioning = false\n      this._element         = element\n      this._config          = this._getConfig(config)\n      this._triggerArray    = $.makeArray($(\n        `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n        `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n      ))\n      const tabToggles = $(Selector.DATA_TOGGLE)\n      for (let i = 0; i < tabToggles.length; i++) {\n        const elem = tabToggles[i]\n        const selector = Util.getSelectorFromElement(elem)\n        if (selector !== null && $(selector).filter(element).length > 0) {\n          this._triggerArray.push(elem)\n        }\n      }\n\n      this._parent = this._config.parent ? this._getParent() : null\n
 \n      if (!this._config.parent) {\n        this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n      }\n\n      if (this._config.toggle) {\n        this.toggle()\n      }\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    toggle() {\n      if ($(this._element).hasClass(ClassName.SHOW)) {\n        this.hide()\n      } else {\n        this.show()\n      }\n    }\n\n    show() {\n      if (this._isTransitioning ||\n        $(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      let actives\n      let activesData\n\n      if (this._parent) {\n        actives = $.makeArray($(this._parent).children().children(Selector.ACTIVES))\n        if (!actives.length) {\n          actives = null\n        }\n      }\n\n      if (actives) {\n        activesData = $(actives).data(DATA_KEY)\n        if (activesData && activesData._isTransitioning
 ) {\n          return\n        }\n      }\n\n      const startEvent = $.Event(Event.SHOW)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (actives) {\n        Collapse._jQueryInterface.call($(actives), 'hide')\n        if (!activesData) {\n          $(actives).data(DATA_KEY, null)\n        }\n      }\n\n      const dimension = this._getDimension()\n\n      $(this._element)\n        .removeClass(ClassName.COLLAPSE)\n        .addClass(ClassName.COLLAPSING)\n\n      this._element.style[dimension] = 0\n\n      if (this._triggerArray.length) {\n        $(this._triggerArray)\n          .removeClass(ClassName.COLLAPSED)\n          .attr('aria-expanded', true)\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .addClass(ClassName.SHOW)\n\n        this._element.st
 yle[dimension] = ''\n\n        this.setTransitioning(false)\n\n        $(this._element).trigger(Event.SHOWN)\n      }\n\n      if (!Util.supportsTransitionEnd()) {\n        complete()\n        return\n      }\n\n      const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n      const scrollSize           = `scroll${capitalizedDimension}`\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(TRANSITION_DURATION)\n\n      this._element.style[dimension] = `${this._element[scrollSize]}px`\n    }\n\n    hide() {\n      if (this._isTransitioning ||\n        !$(this._element).hasClass(ClassName.SHOW)) {\n        return\n      }\n\n      const startEvent = $.Event(Event.HIDE)\n      $(this._element).trigger(startEvent)\n      if (startEvent.isDefaultPrevented()) {\n        return\n      }\n\n      const dimension       = this._getDimension()\n\n      this._element.style[dimension] = `${this._element.getBoundingClientRect
 ()[dimension]}px`\n\n      Util.reflow(this._element)\n\n      $(this._element)\n        .addClass(ClassName.COLLAPSING)\n        .removeClass(ClassName.COLLAPSE)\n        .removeClass(ClassName.SHOW)\n\n      if (this._triggerArray.length) {\n        for (let i = 0; i < this._triggerArray.length; i++) {\n          const trigger = this._triggerArray[i]\n          const selector = Util.getSelectorFromElement(trigger)\n          if (selector !== null) {\n            const $elem = $(selector)\n            if (!$elem.hasClass(ClassName.SHOW)) {\n              $(trigger).addClass(ClassName.COLLAPSED)\n                   .attr('aria-expanded', false)\n            }\n          }\n        }\n      }\n\n      this.setTransitioning(true)\n\n      const complete = () => {\n        this.setTransitioning(false)\n        $(this._element)\n          .removeClass(ClassName.COLLAPSING)\n          .addClass(ClassName.COLLAPSE)\n          .trigger(Event.HIDDEN)\n      }\n\n      this._element.style[di
 mension] = ''\n\n      if (!Util.supportsTransitionEnd()) {\n        complete()\n        return\n      }\n\n      $(this._element)\n        .one(Util.TRANSITION_END, complete)\n        .emulateTransitionEnd(TRANSITION_DURATION)\n    }\n\n    setTransitioning(isTransitioning) {\n      this._isTransitioning = isTransitioning\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      this._config          = null\n      this._parent          = null\n      this._element         = null\n      this._triggerArray    = null\n      this._isTransitioning = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = $.extend({}, Default, config)\n      config.toggle = Boolean(config.toggle) // coerce string values\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _getDimension() {\n      const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n      return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n    }\n\n   
  _getParent() {\n      let parent = null\n      if (Util.isElement(this._config.parent)) {\n        parent = this._config.parent\n\n        // it's a jQuery object\n        if (typeof this._config.parent.jquery !== 'undefined') {\n          parent = this._config.parent[0]\n        }\n      } else {\n        parent = $(this._config.parent)[0]\n      }\n\n      const selector =\n        `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n      $(parent).find(selector).each((i, element) => {\n        this._addAriaAndCollapsedClass(\n          Collapse._getTargetFromElement(element),\n          [element]\n        )\n      })\n\n      return parent\n    }\n\n    _addAriaAndCollapsedClass(element, triggerArray) {\n      if (element) {\n        const isOpen = $(element).hasClass(ClassName.SHOW)\n\n        if (triggerArray.length) {\n          $(triggerArray)\n            .toggleClass(ClassName.COLLAPSED, !isOpen)\n            .attr('aria-expanded', isOpen)\n        }\n 
      }\n    }\n\n\n    // static\n\n    static _getTargetFromElement(element) {\n      const selector = Util.getSelectorFromElement(element)\n      return selector ? $(selector)[0] : null\n    }\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this   = $(this)\n        let data      = $this.data(DATA_KEY)\n        const _config = $.extend(\n          {},\n          Default,\n          $this.data(),\n          typeof config === 'object' && config\n        )\n\n        if (!data && _config.toggle && /show|hide/.test(config)) {\n          _config.toggle = false\n        }\n\n        if (!data) {\n          data = new Collapse(this, _config)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ----
 --------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n    if (event.currentTarget.tagName === 'A') {\n      event.preventDefault()\n    }\n\n    const $trigger = $(this)\n    const selector = Util.getSelectorFromElement(this)\n    $(selector).each(function () {\n      const $target = $(this)\n      const data    = $target.data(DATA_KEY)\n      const config  = data ? 'toggle' : $trigger.data()\n      Collapse._jQueryInterface.call($target, config)\n    })\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]          
    = Collapse._jQueryInterface\n  $.fn[NAME].Constructor = Collapse\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Collapse._jQueryInterface\n  }\n\n  return Collapse\n\n})($)\n\nexport default Collapse\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (() => {\n\n  /**\n   * Check for Popper dependency\n   * Popper - https://popper.js.org\n   */\n  if (typeof Popper === 'undefined') {\n    throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * --------------
 ----------------------------------------------------------\n   */\n\n  const NAME                     = 'dropdown'\n  const VERSION                  = '4.0.0-beta.2'\n  const DATA_KEY                 = 'bs.dropdown'\n  const EVENT_KEY                = `.${DATA_KEY}`\n  const DATA_API_KEY             = '.data-api'\n  const JQUERY_NO_CONFLICT       = $.fn[NAME]\n  const ESCAPE_KEYCODE           = 27 // KeyboardEvent.which value for Escape (Esc) key\n  const SPACE_KEYCODE            = 32 // KeyboardEvent.which value for space key\n  const TAB_KEYCODE              = 9 // KeyboardEvent.which value for tab key\n  const ARROW_UP_KEYCODE         = 38 // KeyboardEvent.which value for up arrow key\n  const ARROW_DOWN_KEYCODE       = 40 // KeyboardEvent.which value for down arrow key\n  const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n  const REGEXP_KEYDOWN           = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCA
 PE_KEYCODE}`)\n\n  const Event = {\n    HIDE             : `hide${EVENT_KEY}`,\n    HIDDEN           : `hidden${EVENT_KEY}`,\n    SHOW             : `show${EVENT_KEY}`,\n    SHOWN            : `shown${EVENT_KEY}`,\n    CLICK            : `click${EVENT_KEY}`,\n    CLICK_DATA_API   : `click${EVENT_KEY}${DATA_API_KEY}`,\n    KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n    KEYUP_DATA_API   : `keyup${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DISABLED  : 'disabled',\n    SHOW      : 'show',\n    DROPUP    : 'dropup',\n    MENURIGHT : 'dropdown-menu-right',\n    MENULEFT  : 'dropdown-menu-left'\n  }\n\n  const Selector = {\n    DATA_TOGGLE   : '[data-toggle=\"dropdown\"]',\n    FORM_CHILD    : '.dropdown form',\n    MENU          : '.dropdown-menu',\n    NAVBAR_NAV    : '.navbar-nav',\n    VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled)'\n  }\n\n  const AttachmentMap = {\n    TOP       : 'top-start',\n    TOPEND    : 'top-end',\n    BOTTOM   
  : 'bottom-start',\n    BOTTOMEND : 'bottom-end'\n  }\n\n  const Default = {\n    offset      : 0,\n    flip        : true\n  }\n\n  const DefaultType = {\n    offset      : '(number|string|function)',\n    flip        : 'boolean'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Dropdown {\n\n    constructor(element, config) {\n      this._element  = element\n      this._popper   = null\n      this._config   = this._getConfig(config)\n      this._menu     = this._getMenuElement()\n      this._inNavbar = this._detectNavbar()\n\n      this._addEventListeners()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n    // public\n\n    toggle() {\n      if (this._el
 ement.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      const parent   = Dropdown._getParentFromElement(this._element)\n      const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n      Dropdown._clearMenus()\n\n      if (isActive) {\n        return\n      }\n\n      const relatedTarget = {\n        relatedTarget : this._element\n      }\n      const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n      $(parent).trigger(showEvent)\n\n      if (showEvent.isDefaultPrevented()) {\n        return\n      }\n\n      let element = this._element\n      // for dropup with alignment we use the parent as popper container\n      if ($(parent).hasClass(ClassName.DROPUP)) {\n        if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {\n          element = parent\n        }\n      }\n      this._popper = new Popper(element, this._menu, this._getPopperConfig())\n\n      // if this is a touch-enabled dev
 ice we add extra\n      // empty mouseover listeners to the body's immediate children;\n      // only needed because of broken event delegation on iOS\n      // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n      if ('ontouchstart' in document.documentElement &&\n         !$(parent).closest(Selector.NAVBAR_NAV).length) {\n        $('body').children().on('mouseover', null, $.noop)\n      }\n\n      this._element.focus()\n      this._element.setAttribute('aria-expanded', true)\n\n      $(this._menu).toggleClass(ClassName.SHOW)\n      $(parent)\n        .toggleClass(ClassName.SHOW)\n        .trigger($.Event(Event.SHOWN, relatedTarget))\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      $(this._element).off(EVENT_KEY)\n      this._element = null\n      this._menu = null\n      if (this._popper !== null) {\n        this._popper.destroy()\n      }\n      this._popper = null\n    }\n\n    update() {\n      this._inNavbar = this._detectNav
 bar()\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate()\n      }\n    }\n\n    // private\n\n    _addEventListeners() {\n      $(this._element).on(Event.CLICK, (event) => {\n        event.preventDefault()\n        event.stopPropagation()\n        this.toggle()\n      })\n    }\n\n    _getConfig(config) {\n      config = $.extend(\n        {},\n        this.constructor.Default,\n        $(this._element).data(),\n        config\n      )\n\n      Util.typeCheckConfig(\n        NAME,\n        config,\n        this.constructor.DefaultType\n      )\n\n      return config\n    }\n\n    _getMenuElement() {\n      if (!this._menu) {\n        const parent = Dropdown._getParentFromElement(this._element)\n        this._menu = $(parent).find(Selector.MENU)[0]\n      }\n      return this._menu\n    }\n\n    _getPlacement() {\n      const $parentDropdown = $(this._element).parent()\n      let placement = AttachmentMap.BOTTOM\n\n      // Handle dropup\n      if ($parentDrop
 down.hasClass(ClassName.DROPUP)) {\n        placement = AttachmentMap.TOP\n        if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n          placement = AttachmentMap.TOPEND\n        }\n      } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n        placement = AttachmentMap.BOTTOMEND\n      }\n      return placement\n    }\n\n    _detectNavbar() {\n      return $(this._element).closest('.navbar').length > 0\n    }\n\n    _getPopperConfig() {\n      const offsetConf = {}\n      if (typeof this._config.offset === 'function') {\n        offsetConf.fn = (data) => {\n          data.offsets = $.extend({}, data.offsets, this._config.offset(data.offsets) || {})\n          return data\n        }\n      } else {\n        offsetConf.offset = this._config.offset\n      }\n      const popperConfig = {\n        placement : this._getPlacement(),\n        modifiers : {\n          offset : offsetConf,\n          flip : {\n            enabled : this._config.flip\n          }\n        }\
 n      }\n\n      // Disable Popper.js for Dropdown in Navbar\n      if (this._inNavbar) {\n        popperConfig.modifiers.applyStyle = {\n          enabled: !this._inNavbar\n        }\n      }\n      return popperConfig\n    }\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' ? config : null\n\n        if (!data) {\n          data = new Dropdown(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n    static _clearMenus(event) {\n      if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n        event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n        return\n      }\n\n      const toggle
 s = $.makeArray($(Selector.DATA_TOGGLE))\n      for (let i = 0; i < toggles.length; i++) {\n        const parent        = Dropdown._getParentFromElement(toggles[i])\n        const context       = $(toggles[i]).data(DATA_KEY)\n        const relatedTarget = {\n          relatedTarget : toggles[i]\n        }\n\n        if (!context) {\n          continue\n        }\n\n        const dropdownMenu = context._menu\n        if (!$(parent).hasClass(ClassName.SHOW)) {\n          continue\n        }\n\n        if (event && (event.type === 'click' &&\n            /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE)\n            && $.contains(parent, event.target)) {\n          continue\n        }\n\n        const hideEvent = $.Event(Event.HIDE, relatedTarget)\n        $(parent).trigger(hideEvent)\n        if (hideEvent.isDefaultPrevented()) {\n          continue\n        }\n\n        // if this is a touch-enabled device we remove the extra\n    
     // empty mouseover listeners we added for iOS support\n        if ('ontouchstart' in document.documentElement) {\n          $('body').children().off('mouseover', null, $.noop)\n        }\n\n        toggles[i].setAttribute('aria-expanded', 'false')\n\n        $(dropdownMenu).removeClass(ClassName.SHOW)\n        $(parent)\n          .removeClass(ClassName.SHOW)\n          .trigger($.Event(Event.HIDDEN, relatedTarget))\n      }\n    }\n\n    static _getParentFromElement(element) {\n      let parent\n      const selector = Util.getSelectorFromElement(element)\n\n      if (selector) {\n        parent = $(selector)[0]\n      }\n\n      return parent || element.parentNode\n    }\n\n    static _dataApiKeydownHandler(event) {\n      if (!REGEXP_KEYDOWN.test(event.which) || /button/i.test(event.target.tagName) && event.which === SPACE_KEYCODE ||\n         /input|textarea/i.test(event.target.tagName)) {\n        return\n      }\n\n      event.preventDefault()\n      event.stopPropagation()
 \n\n      if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      const parent   = Dropdown._getParentFromElement(this)\n      const isActive = $(parent).hasClass(ClassName.SHOW)\n\n      if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n           isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n\n        if (event.which === ESCAPE_KEYCODE) {\n          const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n          $(toggle).trigger('focus')\n        }\n\n        $(this).trigger('click')\n        return\n      }\n\n      const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n      if (!items.length) {\n        return\n      }\n\n      let index = items.indexOf(event.target)\n\n      if (event.which === ARROW_UP_KEYCODE && index > 0) { // up\n        index--\n      }\n\n      if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // down\n        inde
 x++\n      }\n\n      if (index < 0) {\n        index = 0\n      }\n\n      items[index].focus()\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE,  Dropdown._dataApiKeydownHandler)\n    .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n    .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault()\n      event.stopPropagation()\n      Dropdown._jQueryInterface.call($(this), 'toggle')\n    })\n    .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n      e.stopPropagation()\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * --------
 ----------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Dropdown._jQueryInterface\n  $.fn[NAME].Constructor = Dropdown\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Dropdown._jQueryInterface\n  }\n\n  return Dropdown\n\n})($, Popper)\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                         = 'modal'\n  const VERSION                
       = '4.0.0-beta.2'\n  const DATA_KEY                     = 'bs.modal'\n  const EVENT_KEY                    = `.${DATA_KEY}`\n  const DATA_API_KEY                 = '.data-api'\n  const JQUERY_NO_CONFLICT           = $.fn[NAME]\n  const TRANSITION_DURATION          = 300\n  const BACKDROP_TRANSITION_DURATION = 150\n  const ESCAPE_KEYCODE               = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n  const Default = {\n    backdrop : true,\n    keyboard : true,\n    focus    : true,\n    show     : true\n  }\n\n  const DefaultType = {\n    backdrop : '(boolean|string)',\n    keyboard : 'boolean',\n    focus    : 'boolean',\n    show     : 'boolean'\n  }\n\n  const Event = {\n    HIDE              : `hide${EVENT_KEY}`,\n    HIDDEN            : `hidden${EVENT_KEY}`,\n    SHOW              : `show${EVENT_KEY}`,\n    SHOWN             : `shown${EVENT_KEY}`,\n    FOCUSIN           : `focusin${EVENT_KEY}`,\n    RESIZE            : `resize${EVENT_KEY}`,\n    CLICK_DISMISS    
  : `click.dismiss${EVENT_KEY}`,\n    KEYDOWN_DISMISS   : `keydown.dismiss${EVENT_KEY}`,\n    MOUSEUP_DISMISS   : `mouseup.dismiss${EVENT_KEY}`,\n    MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n    CLICK_DATA_API    : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n    BACKDROP           : 'modal-backdrop',\n    OPEN               : 'modal-open',\n    FADE               : 'fade',\n    SHOW               : 'show'\n  }\n\n  const Selector = {\n    DIALOG             : '.modal-dialog',\n    DATA_TOGGLE        : '[data-toggle=\"modal\"]',\n    DATA_DISMISS       : '[data-dismiss=\"modal\"]',\n    FIXED_CONTENT      : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n    STICKY_CONTENT     : '.sticky-top',\n    NAVBAR_TOGGLER     : '.navbar-toggler'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ----------------------------------
 --------------------------------------\n   */\n\n  class Modal {\n\n    constructor(element, config) {\n      this._config              = this._getConfig(config)\n      this._element             = element\n      this._dialog              = $(element).find(Selector.DIALOG)[0]\n      this._backdrop            = null\n      this._isShown             = false\n      this._isBodyOverflowing   = false\n      this._ignoreBackdropClick = false\n      this._originalBodyPadding = 0\n      this._scrollbarWidth      = 0\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    toggle(relatedTarget) {\n      return this._isShown ? this.hide() : this.show(relatedTarget)\n    }\n\n    show(relatedTarget) {\n      if (this._isTransitioning || this._isShown) {\n        return\n      }\n\n      if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {\n        this._i
 sTransitioning = true\n      }\n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget\n      })\n\n      $(this._element).trigger(showEvent)\n\n      if (this._isShown || showEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown = true\n\n      this._checkScrollbar()\n      this._setScrollbar()\n\n      this._adjustDialog()\n\n      $(document.body).addClass(ClassName.OPEN)\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(this._element).on(\n        Event.CLICK_DISMISS,\n        Selector.DATA_DISMISS,\n        (event) => this.hide(event)\n      )\n\n      $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n        $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n          if ($(event.target).is(this._element)) {\n            this._ignoreBackdropClick = true\n          }\n        })\n      })\n\n      this._showBackdrop(() => this._showElement(relatedTarget))\n    }\n\n    hide(event) {\n      if (event) {\n  
       event.preventDefault()\n      }\n\n      if (this._isTransitioning || !this._isShown) {\n        return\n      }\n\n      const hideEvent = $.Event(Event.HIDE)\n\n      $(this._element).trigger(hideEvent)\n\n      if (!this._isShown || hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      this._isShown = false\n\n      const transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)\n\n      if (transition) {\n        this._isTransitioning = true\n      }\n\n      this._setEscapeEvent()\n      this._setResizeEvent()\n\n      $(document).off(Event.FOCUSIN)\n\n      $(this._element).removeClass(ClassName.SHOW)\n\n      $(this._element).off(Event.CLICK_DISMISS)\n      $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n      if (transition) {\n\n        $(this._element)\n          .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n          .emulateTransitionEnd(TRANSITION_DURATION)\n      } else {\n        this._hideModal()\n     
  }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n\n      $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n      this._config              = null\n      this._element             = null\n      this._dialog              = null\n      this._backdrop            = null\n      this._isShown             = null\n      this._isBodyOverflowing   = null\n      this._ignoreBackdropClick = null\n      this._scrollbarWidth      = null\n    }\n\n    handleUpdate() {\n      this._adjustDialog()\n    }\n\n    // private\n\n    _getConfig(config) {\n      config = $.extend({}, Default, config)\n      Util.typeCheckConfig(NAME, config, DefaultType)\n      return config\n    }\n\n    _showElement(relatedTarget) {\n      const transition = Util.supportsTransitionEnd() &&\n        $(this._element).hasClass(ClassName.FADE)\n\n      if (!this._element.parentNode ||\n         this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n        // don't move modal
 s dom position\n        document.body.appendChild(this._element)\n      }\n\n      this._element.style.display = 'block'\n      this._element.removeAttribute('aria-hidden')\n      this._element.scrollTop = 0\n\n      if (transition) {\n        Util.reflow(this._element)\n      }\n\n      $(this._element).addClass(ClassName.SHOW)\n\n      if (this._config.focus) {\n        this._enforceFocus()\n      }\n\n      const shownEvent = $.Event(Event.SHOWN, {\n        relatedTarget\n      })\n\n      const transitionComplete = () => {\n        if (this._config.focus) {\n          this._element.focus()\n        }\n        this._isTransitioning = false\n        $(this._element).trigger(shownEvent)\n      }\n\n      if (transition) {\n        $(this._dialog)\n          .one(Util.TRANSITION_END, transitionComplete)\n          .emulateTransitionEnd(TRANSITION_DURATION)\n      } else {\n        transitionComplete()\n      }\n    }\n\n    _enforceFocus() {\n      $(document)\n        .off(Event.FO
 CUSIN) // guard against infinite focus loop\n        .on(Event.FOCUSIN, (event) => {\n          if (document !== event.target &&\n              this._element !== event.target &&\n              !$(this._element).has(event.target).length) {\n            this._element.focus()\n          }\n        })\n    }\n\n    _setEscapeEvent() {\n      if (this._isShown && this._config.keyboard) {\n        $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n          if (event.which === ESCAPE_KEYCODE) {\n            event.preventDefault()\n            this.hide()\n          }\n        })\n\n      } else if (!this._isShown) {\n        $(this._element).off(Event.KEYDOWN_DISMISS)\n      }\n    }\n\n    _setResizeEvent() {\n      if (this._isShown) {\n        $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n      } else {\n        $(window).off(Event.RESIZE)\n      }\n    }\n\n    _hideModal() {\n      this._element.style.display = 'none'\n      this._element.setAttribute('aria-h
 idden', true)\n      this._isTransitioning = false\n      this._showBackdrop(() => {\n        $(document.body).removeClass(ClassName.OPEN)\n        this._resetAdjustments()\n        this._resetScrollbar()\n        $(this._element).trigger(Event.HIDDEN)\n      })\n    }\n\n    _removeBackdrop() {\n      if (this._backdrop) {\n        $(this._backdrop).remove()\n        this._backdrop = null\n      }\n    }\n\n    _showBackdrop(callback) {\n      const animate = $(this._element).hasClass(ClassName.FADE) ?\n        ClassName.FADE : ''\n\n      if (this._isShown && this._config.backdrop) {\n        const doAnimate = Util.supportsTransitionEnd() && animate\n\n        this._backdrop = document.createElement('div')\n        this._backdrop.className = ClassName.BACKDROP\n\n        if (animate) {\n          $(this._backdrop).addClass(animate)\n        }\n\n        $(this._backdrop).appendTo(document.body)\n\n        $(this._element).on(Event.CLICK_DISMISS, (event) => {\n          if (this._i
 gnoreBackdropClick) {\n            this._ignoreBackdropClick = false\n            return\n          }\n          if (event.target !== event.currentTarget) {\n            return\n          }\n          if (this._config.backdrop === 'static') {\n            this._element.focus()\n          } else {\n            this.hide()\n          }\n        })\n\n        if (doAnimate) {\n          Util.reflow(this._backdrop)\n        }\n\n        $(this._backdrop).addClass(ClassName.SHOW)\n\n        if (!callback) {\n          return\n        }\n\n        if (!doAnimate) {\n          callback()\n          return\n        }\n\n        $(this._backdrop)\n          .one(Util.TRANSITION_END, callback)\n          .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n\n      } else if (!this._isShown && this._backdrop) {\n        $(this._backdrop).removeClass(ClassName.SHOW)\n\n        const callbackRemove = () => {\n          this._removeBackdrop()\n          if (callback) {\n            callback()\n  
         }\n        }\n\n        if (Util.supportsTransitionEnd() &&\n           $(this._element).hasClass(ClassName.FADE)) {\n          $(this._backdrop)\n            .one(Util.TRANSITION_END, callbackRemove)\n            .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n        } else {\n          callbackRemove()\n        }\n\n      } else if (callback) {\n        callback()\n      }\n    }\n\n\n    // ----------------------------------------------------------------------\n    // the following methods are used to handle overflowing modals\n    // todo (fat): these should probably be refactored out of modal.js\n    // ----------------------------------------------------------------------\n\n    _adjustDialog() {\n      const isModalOverflowing =\n        this._element.scrollHeight > document.documentElement.clientHeight\n\n      if (!this._isBodyOverflowing && isModalOverflowing) {\n        this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n      }\n\n      if (this.
 _isBodyOverflowing && !isModalOverflowing) {\n        this._element.style.paddingRight = `${this._scrollbarWidth}px`\n      }\n    }\n\n    _resetAdjustments() {\n      this._element.style.paddingLeft = ''\n      this._element.style.paddingRight = ''\n    }\n\n    _checkScrollbar() {\n      const rect = document.body.getBoundingClientRect()\n      this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n      this._scrollbarWidth = this._getScrollbarWidth()\n    }\n\n    _setScrollbar() {\n      if (this._isBodyOverflowing) {\n        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n        // Adjust fixed content padding\n        $(Selector.FIXED_CONTENT).each((index, element) => {\n          const actualPadding = $(element)[0].style.paddingRight\n          const calculatedPadding = $(element).css('padding-right')\n          $(element).data('
 padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust sticky content margin\n        $(Selector.STICKY_CONTENT).each((index, element) => {\n          const actualMargin = $(element)[0].style.marginRight\n          const calculatedMargin = $(element).css('margin-right')\n          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n        })\n\n        // Adjust navbar-toggler margin\n        $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n          const actualMargin = $(element)[0].style.marginRight\n          const calculatedMargin = $(element).css('margin-right')\n          $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n        })\n\n        // Adjust body padding\n        const actualPadding = document.body.style.paddingRight\n 
        const calculatedPadding = $('body').css('padding-right')\n        $('body').data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n      }\n    }\n\n    _resetScrollbar() {\n      // Restore fixed content padding\n      $(Selector.FIXED_CONTENT).each((index, element) => {\n        const padding = $(element).data('padding-right')\n        if (typeof padding !== 'undefined') {\n          $(element).css('padding-right', padding).removeData('padding-right')\n        }\n      })\n\n      // Restore sticky content and navbar-toggler margin\n      $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {\n        const margin = $(element).data('margin-right')\n        if (typeof margin !== 'undefined') {\n          $(element).css('margin-right', margin).removeData('margin-right')\n        }\n      })\n\n      // Restore body padding\n      const padding = $('body').data('padding-right')\n  
     if (typeof padding !== 'undefined') {\n        $('body').css('padding-right', padding).removeData('padding-right')\n      }\n    }\n\n    _getScrollbarWidth() { // thx d.walsh\n      const scrollDiv = document.createElement('div')\n      scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n      document.body.appendChild(scrollDiv)\n      const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n      document.body.removeChild(scrollDiv)\n      return scrollbarWidth\n    }\n\n\n    // static\n\n    static _jQueryInterface(config, relatedTarget) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = $.extend(\n          {},\n          Modal.Default,\n          $(this).data(),\n          typeof config === 'object' && config\n        )\n\n        if (!data) {\n          data = new Modal(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\
 n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config](relatedTarget)\n        } else if (_config.show) {\n          data.show(relatedTarget)\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n    let target\n    const selector = Util.getSelectorFromElement(this)\n\n    if (selector) {\n      target = $(selector)[0]\n    }\n\n    const config = $(target).data(DATA_KEY) ?\n      'toggle' : $.extend({}, $(target).data(), $(this).data())\n\n    if (this.tagName === 'A' || this.tagName === 'AREA') {\n      event.preventDefault()\n    }\n\n    const $target = $(target).one(Event.SHOW, (showEvent) => {\n      if (showEvent.
 isDefaultPrevented()) {\n        // only register focus restorer if modal will actually get shown\n        return\n      }\n\n      $target.one(Event.HIDDEN, () => {\n        if ($(this).is(':visible')) {\n          this.focus()\n        }\n      })\n    })\n\n    Modal._jQueryInterface.call($(target), config, this)\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Modal._jQueryInterface\n  $.fn[NAME].Constructor = Modal\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Modal._jQueryInterface\n  }\n\n  return Modal\n\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): tooltip.js\n * License
 d under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (() => {\n\n  /**\n   * Check for Popper dependency\n   * Popper - https://popper.js.org\n   */\n  if (typeof Popper === 'undefined') {\n    throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'tooltip'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.tooltip'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n  const CLASS_PREFIX        = 'bs-tooltip'\n  const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n  const DefaultType = {\n
     animation           : 'boolean',\n    template            : 'string',\n    title               : '(string|element|function)',\n    trigger             : 'string',\n    delay               : '(number|object)',\n    html                : 'boolean',\n    selector            : '(string|boolean)',\n    placement           : '(string|function)',\n    offset              : '(number|string)',\n    container           : '(string|element|boolean)',\n    fallbackPlacement   : '(string|array)'\n  }\n\n  const AttachmentMap = {\n    AUTO   : 'auto',\n    TOP    : 'top',\n    RIGHT  : 'right',\n    BOTTOM : 'bottom',\n    LEFT   : 'left'\n  }\n\n  const Default = {\n    animation           : true,\n    template            : '<div class=\"tooltip\" role=\"tooltip\">'\n                        + '<div class=\"arrow\"></div>'\n                        + '<div class=\"tooltip-inner\"></div></div>',\n    trigger             : 'hover focus',\n    title               : '',\n    delay               : 0
 ,\n    html                : false,\n    selector            : false,\n    placement           : 'top',\n    offset              : 0,\n    container           : false,\n    fallbackPlacement   : 'flip'\n  }\n\n  const HoverState = {\n    SHOW : 'show',\n    OUT  : 'out'\n  }\n\n  const Event = {\n    HIDE       : `hide${EVENT_KEY}`,\n    HIDDEN     : `hidden${EVENT_KEY}`,\n    SHOW       : `show${EVENT_KEY}`,\n    SHOWN      : `shown${EVENT_KEY}`,\n    INSERTED   : `inserted${EVENT_KEY}`,\n    CLICK      : `click${EVENT_KEY}`,\n    FOCUSIN    : `focusin${EVENT_KEY}`,\n    FOCUSOUT   : `focusout${EVENT_KEY}`,\n    MOUSEENTER : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE : `mouseleave${EVENT_KEY}`\n  }\n\n  const ClassName = {\n    FADE : 'fade',\n    SHOW : 'show'\n  }\n\n  const Selector = {\n    TOOLTIP       : '.tooltip',\n    TOOLTIP_INNER : '.tooltip-inner',\n    ARROW         : '.arrow'\n  }\n\n  const Trigger = {\n    HOVER  : 'hover',\n    FOCUS  : 'focus',\n    CLICK  : 'click
 ',\n    MANUAL : 'manual'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Tooltip {\n\n    constructor(element, config) {\n\n      // private\n      this._isEnabled     = true\n      this._timeout       = 0\n      this._hoverState    = ''\n      this._activeTrigger = {}\n      this._popper        = null\n\n      // protected\n      this.element = element\n      this.config  = this._getConfig(config)\n      this.tip     = null\n\n      this._setListeners()\n\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get NAME() {\n      return NAME\n    }\n\n    static get DATA_KEY() {\n      return DATA_KEY\n    }\n\n    static get Event() {\n      return Event\n    }\n\n    static get EVENT_KEY() {\n      return EVENT_KE
 Y\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n\n    // public\n\n    enable() {\n      this._isEnabled = true\n    }\n\n    disable() {\n      this._isEnabled = false\n    }\n\n    toggleEnabled() {\n      this._isEnabled = !this._isEnabled\n    }\n\n    toggle(event) {\n      if (!this._isEnabled) {\n        return\n      }\n\n      if (event) {\n        const dataKey = this.constructor.DATA_KEY\n        let context = $(event.currentTarget).data(dataKey)\n\n        if (!context) {\n          context = new this.constructor(\n            event.currentTarget,\n            this._getDelegateConfig()\n          )\n          $(event.currentTarget).data(dataKey, context)\n        }\n\n        context._activeTrigger.click = !context._activeTrigger.click\n\n        if (context._isWithActiveTrigger()) {\n          context._enter(null, context)\n        } else {\n          context._leave(null, context)\n        }\n\n      } else {\n\n        if ($(this.getTipEl
 ement()).hasClass(ClassName.SHOW)) {\n          this._leave(null, this)\n          return\n        }\n\n        this._enter(null, this)\n      }\n    }\n\n    dispose() {\n      clearTimeout(this._timeout)\n\n      $.removeData(this.element, this.constructor.DATA_KEY)\n\n      $(this.element).off(this.constructor.EVENT_KEY)\n      $(this.element).closest('.modal').off('hide.bs.modal')\n\n      if (this.tip) {\n        $(this.tip).remove()\n      }\n\n      this._isEnabled     = null\n      this._timeout       = null\n      this._hoverState    = null\n      this._activeTrigger = null\n      if (this._popper !== null) {\n        this._popper.destroy()\n      }\n\n      this._popper = null\n      this.element = null\n      this.config  = null\n      this.tip     = null\n    }\n\n    show() {\n      if ($(this.element).css('display') === 'none') {\n        throw new Error('Please use show on visible elements')\n      }\n\n      const showEvent = $.Event(this.constructor.Event.SHOW)\n   
    if (this.isWithContent() && this._isEnabled) {\n        $(this.element).trigger(showEvent)\n\n        const isInTheDom = $.contains(\n          this.element.ownerDocument.documentElement,\n          this.element\n        )\n\n        if (showEvent.isDefaultPrevented() || !isInTheDom) {\n          return\n        }\n\n        const tip   = this.getTipElement()\n        const tipId = Util.getUID(this.constructor.NAME)\n\n        tip.setAttribute('id', tipId)\n        this.element.setAttribute('aria-describedby', tipId)\n\n        this.setContent()\n\n        if (this.config.animation) {\n          $(tip).addClass(ClassName.FADE)\n        }\n\n        const placement  = typeof this.config.placement === 'function' ?\n          this.config.placement.call(this, tip, this.element) :\n          this.config.placement\n\n        const attachment = this._getAttachment(placement)\n        this.addAttachmentClass(attachment)\n\n        const container = this.config.container === false ? docum
 ent.body : $(this.config.container)\n\n        $(tip).data(this.constructor.DATA_KEY, this)\n\n        if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n          $(tip).appendTo(container)\n        }\n\n        $(this.element).trigger(this.constructor.Event.INSERTED)\n\n        this._popper = new Popper(this.element, tip, {\n          placement: attachment,\n          modifiers: {\n            offset: {\n              offset: this.config.offset\n            },\n            flip: {\n              behavior: this.config.fallbackPlacement\n            },\n            arrow: {\n              element: Selector.ARROW\n            }\n          },\n          onCreate: (data) => {\n            if (data.originalPlacement !== data.placement) {\n              this._handlePopperPlacementChange(data)\n            }\n          },\n          onUpdate : (data) => {\n            this._handlePopperPlacementChange(data)\n          }\n        })\n\n        $(tip).addClass(ClassNa
 me.SHOW)\n\n        // if this is a touch-enabled device we add extra\n        // empty mouseover listeners to the body's immediate children;\n        // only needed because of broken event delegation on iOS\n        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n        if ('ontouchstart' in document.documentElement) {\n          $('body').children().on('mouseover', null, $.noop)\n        }\n\n        const complete = () => {\n          if (this.config.animation) {\n            this._fixTransition()\n          }\n          const prevHoverState = this._hoverState\n          this._hoverState     = null\n\n          $(this.element).trigger(this.constructor.Event.SHOWN)\n\n          if (prevHoverState === HoverState.OUT) {\n            this._leave(null, this)\n          }\n        }\n\n        if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {\n          $(this.tip)\n            .one(Util.TRANSITION_END, complete)\n            .emulat
 eTransitionEnd(Tooltip._TRANSITION_DURATION)\n        } else {\n          complete()\n        }\n      }\n    }\n\n    hide(callback) {\n      const tip       = this.getTipElement()\n      const hideEvent = $.Event(this.constructor.Event.HIDE)\n      const complete  = () => {\n        if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n          tip.parentNode.removeChild(tip)\n        }\n\n        this._cleanTipClass()\n        this.element.removeAttribute('aria-describedby')\n        $(this.element).trigger(this.constructor.Event.HIDDEN)\n        if (this._popper !== null) {\n          this._popper.destroy()\n        }\n\n        if (callback) {\n          callback()\n        }\n      }\n\n      $(this.element).trigger(hideEvent)\n\n      if (hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      $(tip).removeClass(ClassName.SHOW)\n\n      // if this is a touch-enabled device we remove the extra\n      // empty mouseover listeners we added for iOS support\n
       if ('ontouchstart' in document.documentElement) {\n        $('body').children().off('mouseover', null, $.noop)\n      }\n\n      this._activeTrigger[Trigger.CLICK] = false\n      this._activeTrigger[Trigger.FOCUS] = false\n      this._activeTrigger[Trigger.HOVER] = false\n\n      if (Util.supportsTransitionEnd() &&\n          $(this.tip).hasClass(ClassName.FADE)) {\n\n        $(tip)\n          .one(Util.TRANSITION_END, complete)\n          .emulateTransitionEnd(TRANSITION_DURATION)\n\n      } else {\n        complete()\n      }\n\n      this._hoverState = ''\n\n    }\n\n    update() {\n      if (this._popper !== null) {\n        this._popper.scheduleUpdate()\n      }\n    }\n\n    // protected\n\n    isWithContent() {\n      return Boolean(this.getTitle())\n    }\n\n    addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n    }\n\n    getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0]\n      return t
 his.tip\n    }\n\n    setContent() {\n      const $tip = $(this.getTipElement())\n      this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n    }\n\n    setElementContent($element, content) {\n      const html = this.config.html\n      if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n        // content is a DOM node or a jQuery\n        if (html) {\n          if (!$(content).parent().is($element)) {\n            $element.empty().append(content)\n          }\n        } else {\n          $element.text($(content).text())\n        }\n      } else {\n        $element[html ? 'html' : 'text'](content)\n      }\n    }\n\n    getTitle() {\n      let title = this.element.getAttribute('data-original-title')\n\n      if (!title) {\n        title = typeof this.config.title === 'function' ?\n          this.config.title.call(this.element) :\n          this.config.title\n      }\n\n    
   return title\n    }\n\n\n    // private\n\n    _getAttachment(placement) {\n      return AttachmentMap[placement.toUpperCase()]\n    }\n\n    _setListeners() {\n      const triggers = this.config.trigger.split(' ')\n\n      triggers.forEach((trigger) => {\n        if (trigger === 'click') {\n          $(this.element).on(\n            this.constructor.Event.CLICK,\n            this.config.selector,\n            (event) => this.toggle(event)\n          )\n\n        } else if (trigger !== Trigger.MANUAL) {\n          const eventIn  = trigger === Trigger.HOVER ?\n            this.constructor.Event.MOUSEENTER :\n            this.constructor.Event.FOCUSIN\n          const eventOut = trigger === Trigger.HOVER ?\n            this.constructor.Event.MOUSELEAVE :\n            this.constructor.Event.FOCUSOUT\n\n          $(this.element)\n            .on(\n              eventIn,\n              this.config.selector,\n              (event) => this._enter(event)\n            )\n            .on(\n
               eventOut,\n              this.config.selector,\n              (event) => this._leave(event)\n            )\n        }\n\n        $(this.element).closest('.modal').on(\n          'hide.bs.modal',\n          () => this.hide()\n        )\n      })\n\n      if (this.config.selector) {\n        this.config = $.extend({}, this.config, {\n          trigger  : 'manual',\n          selector : ''\n        })\n      } else {\n        this._fixTitle()\n      }\n    }\n\n    _fixTitle() {\n      const titleType = typeof this.element.getAttribute('data-original-title')\n      if (this.element.getAttribute('title') ||\n         titleType !== 'string') {\n        this.element.setAttribute(\n          'data-original-title',\n          this.element.getAttribute('title') || ''\n        )\n        this.element.setAttribute('title', '')\n      }\n    }\n\n    _enter(event, context) {\n      const dataKey = this.constructor.DATA_KEY\n\n      context = context || $(event.currentTarget).data(
 dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      if (event) {\n        context._activeTrigger[\n          event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n        ] = true\n      }\n\n      if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||\n         context._hoverState === HoverState.SHOW) {\n        context._hoverState = HoverState.SHOW\n        return\n      }\n\n      clearTimeout(context._timeout)\n\n      context._hoverState = HoverState.SHOW\n\n      if (!context.config.delay || !context.config.delay.show) {\n        context.show()\n        return\n      }\n\n      context._timeout = setTimeout(() => {\n        if (context._hoverState === HoverState.SHOW) {\n          context.show()\n        }\n      }, context.config.delay.show)\n    }\n\n    _leave(event, context) {\n      const da
 taKey = this.constructor.DATA_KEY\n\n      context = context || $(event.currentTarget).data(dataKey)\n\n      if (!context) {\n        context = new this.constructor(\n          event.currentTarget,\n          this._getDelegateConfig()\n        )\n        $(event.currentTarget).data(dataKey, context)\n      }\n\n      if (event) {\n        context._activeTrigger[\n          event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n        ] = false\n      }\n\n      if (context._isWithActiveTrigger()) {\n        return\n      }\n\n      clearTimeout(context._timeout)\n\n      context._hoverState = HoverState.OUT\n\n      if (!context.config.delay || !context.config.delay.hide) {\n        context.hide()\n        return\n      }\n\n      context._timeout = setTimeout(() => {\n        if (context._hoverState === HoverState.OUT) {\n          context.hide()\n        }\n      }, context.config.delay.hide)\n    }\n\n    _isWithActiveTrigger() {\n      for (const trigger in this._activeTri
 gger) {\n        if (this._activeTrigger[trigger]) {\n          return true\n        }\n      }\n\n      return false\n    }\n\n    _getConfig(config) {\n      config = $.extend(\n        {},\n        this.constructor.Default,\n        $(this.element).data(),\n        config\n      )\n\n      if (typeof config.delay === 'number') {\n        config.delay = {\n          show : config.delay,\n          hide : config.delay\n        }\n      }\n\n      if (typeof config.title === 'number') {\n        config.title = config.title.toString()\n      }\n\n      if (typeof config.content === 'number') {\n        config.content = config.content.toString()\n      }\n\n      Util.typeCheckConfig(\n        NAME,\n        config,\n        this.constructor.DefaultType\n      )\n\n      return config\n    }\n\n    _getDelegateConfig() {\n      const config = {}\n\n      if (this.config) {\n        for (const key in this.config) {\n          if (this.constructor.Default[key] !== this.config[key]) {\n 
            config[key] = this.config[key]\n          }\n        }\n      }\n\n      return config\n    }\n\n    _cleanTipClass() {\n      const $tip = $(this.getTipElement())\n      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''))\n      }\n    }\n\n    _handlePopperPlacementChange(data) {\n      this._cleanTipClass()\n      this.addAttachmentClass(this._getAttachment(data.placement))\n    }\n\n    _fixTransition() {\n      const tip                 = this.getTipElement()\n      const initConfigAnimation = this.config.animation\n      if (tip.getAttribute('x-placement') !== null) {\n        return\n      }\n      $(tip).removeClass(ClassName.FADE)\n      this.config.animation = false\n      this.hide()\n      this.show()\n      this.config.animation = initConfigAnimation\n    }\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {
 \n        let data      = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' && config\n\n        if (!data && /dispose|hide/.test(config)) {\n          return\n        }\n\n        if (!data) {\n          data = new Tooltip(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Tooltip._jQueryInterface\n  $.fn[NAME].Constructor = Tooltip\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Tooltip._jQueryInterface\n  }\n\n  return Tooltip\n\n})($, Popper)\n\nexport d
 efault Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'popover'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.popover'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const CLASS_PREFIX        = 'bs-popover'\n  const BSCLS_PREFIX_REGEX  = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n  const Default = $.extend({}, Tooltip.Default, {\n    place
 ment : 'right',\n    trigger   : 'click',\n    content   : '',\n    template  : '<div class=\"popover\" role=\"tooltip\">'\n              + '<div class=\"arrow\"></div>'\n              + '<h3 class=\"popover-header\"></h3>'\n              + '<div class=\"popover-body\"></div></div>'\n  })\n\n  const DefaultType = $.extend({}, Tooltip.DefaultType, {\n    content : '(string|element|function)'\n  })\n\n  const ClassName = {\n    FADE : 'fade',\n    SHOW : 'show'\n  }\n\n  const Selector = {\n    TITLE   : '.popover-header',\n    CONTENT : '.popover-body'\n  }\n\n  const Event = {\n    HIDE       : `hide${EVENT_KEY}`,\n    HIDDEN     : `hidden${EVENT_KEY}`,\n    SHOW       : `show${EVENT_KEY}`,\n    SHOWN      : `shown${EVENT_KEY}`,\n    INSERTED   : `inserted${EVENT_KEY}`,\n    CLICK      : `click${EVENT_KEY}`,\n    FOCUSIN    : `focusin${EVENT_KEY}`,\n    FOCUSOUT   : `focusout${EVENT_KEY}`,\n    MOUSEENTER : `mouseenter${EVENT_KEY}`,\n    MOUSELEAVE : `mouseleave${EVENT_KEY}`\n  }\n\
 n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Popover extends Tooltip {\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n    static get NAME() {\n      return NAME\n    }\n\n    static get DATA_KEY() {\n      return DATA_KEY\n    }\n\n    static get Event() {\n      return Event\n    }\n\n    static get EVENT_KEY() {\n      return EVENT_KEY\n    }\n\n    static get DefaultType() {\n      return DefaultType\n    }\n\n\n    // overrides\n\n    isWithContent() {\n      return this.getTitle() || this._getContent()\n    }\n\n    addAttachmentClass(attachment) {\n      $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n    }\n\n    getTipElement() {\n      this.tip = this.tip || $(this.config.template)[0]\n      return this
 .tip\n    }\n\n    setContent() {\n      const $tip = $(this.getTipElement())\n\n      // we use append for html objects to maintain js events\n      this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n      this.setElementContent($tip.find(Selector.CONTENT), this._getContent())\n\n      $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n    }\n\n    // private\n\n    _getContent() {\n      return this.element.getAttribute('data-content')\n        || (typeof this.config.content === 'function' ?\n              this.config.content.call(this.element) :\n              this.config.content)\n    }\n\n    _cleanTipClass() {\n      const $tip = $(this.getTipElement())\n      const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n      if (tabClass !== null && tabClass.length > 0) {\n        $tip.removeClass(tabClass.join(''))\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      
 = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' ? config : null\n\n        if (!data && /destroy|hide/.test(config)) {\n          return\n        }\n\n        if (!data) {\n          data = new Popover(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Popover._jQueryInterface\n  $.fn[NAME].Constructor = Popover\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Popover._jQueryInterface\n  }\n\n  return Popover\n\n})($)\n\nexport default Popover\n","import 
 $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (() => {\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME               = 'scrollspy'\n  const VERSION            = '4.0.0-beta.2'\n  const DATA_KEY           = 'bs.scrollspy'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const DATA_API_KEY       = '.data-api'\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Default = {\n    offset : 10,\n    method : 'auto',\n    target : ''\n  }\n\n  const DefaultType = {\n    offset : 'number',\n    method : 'string',\n    target : '
 (string|element)'\n  }\n\n  const Event = {\n    ACTIVATE      : `activate${EVENT_KEY}`,\n    SCROLL        : `scroll${EVENT_KEY}`,\n    LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DROPDOWN_ITEM : 'dropdown-item',\n    DROPDOWN_MENU : 'dropdown-menu',\n    ACTIVE        : 'active'\n  }\n\n  const Selector = {\n    DATA_SPY        : '[data-spy=\"scroll\"]',\n    ACTIVE          : '.active',\n    NAV_LIST_GROUP  : '.nav, .list-group',\n    NAV_LINKS       : '.nav-link',\n    NAV_ITEMS       : '.nav-item',\n    LIST_ITEMS      : '.list-group-item',\n    DROPDOWN        : '.dropdown',\n    DROPDOWN_ITEMS  : '.dropdown-item',\n    DROPDOWN_TOGGLE : '.dropdown-toggle'\n  }\n\n  const OffsetMethod = {\n    OFFSET   : 'offset',\n    POSITION : 'position'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n 
   */\n\n  class ScrollSpy {\n\n    constructor(element, config) {\n      this._element       = element\n      this._scrollElement = element.tagName === 'BODY' ? window : element\n      this._config        = this._getConfig(config)\n      this._selector      = `${this._config.target} ${Selector.NAV_LINKS},`\n                          + `${this._config.target} ${Selector.LIST_ITEMS},`\n                          + `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n      this._offsets       = []\n      this._targets       = []\n      this._activeTarget  = null\n      this._scrollHeight  = 0\n\n      $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n      this.refresh()\n      this._process()\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    static get Default() {\n      return Default\n    }\n\n\n    // public\n\n    refresh() {\n      const autoMethod = this._scrollElement !== this._scrollElement.window ?\n        O
 ffsetMethod.POSITION : OffsetMethod.OFFSET\n\n      const offsetMethod = this._config.method === 'auto' ?\n        autoMethod : this._config.method\n\n      const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n        this._getScrollTop() : 0\n\n      this._offsets = []\n      this._targets = []\n\n      this._scrollHeight = this._getScrollHeight()\n\n      const targets = $.makeArray($(this._selector))\n\n      targets\n        .map((element) => {\n          let target\n          const targetSelector = Util.getSelectorFromElement(element)\n\n          if (targetSelector) {\n            target = $(targetSelector)[0]\n          }\n\n          if (target) {\n            const targetBCR = target.getBoundingClientRect()\n            if (targetBCR.width || targetBCR.height) {\n              // todo (fat): remove sketch reliance on jQuery position/offset\n              return [\n                $(target)[offsetMethod]().top + offsetBase,\n                targetSelector\n          
     ]\n            }\n          }\n          return null\n        })\n        .filter((item)  => item)\n        .sort((a, b)    => a[0] - b[0])\n        .forEach((item) => {\n          this._offsets.push(item[0])\n          this._targets.push(item[1])\n        })\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      $(this._scrollElement).off(EVENT_KEY)\n\n      this._element       = null\n      this._scrollElement = null\n      this._config        = null\n      this._selector      = null\n      this._offsets       = null\n      this._targets       = null\n      this._activeTarget  = null\n      this._scrollHeight  = null\n    }\n\n\n    // private\n\n    _getConfig(config) {\n      config = $.extend({}, Default, config)\n\n      if (typeof config.target !== 'string') {\n        let id = $(config.target).attr('id')\n        if (!id) {\n          id = Util.getUID(NAME)\n          $(config.target).attr('id', id)\n        }\n        config.target = `#${id}`\n   
    }\n\n      Util.typeCheckConfig(NAME, config, DefaultType)\n\n      return config\n    }\n\n    _getScrollTop() {\n      return this._scrollElement === window ?\n          this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n    }\n\n    _getScrollHeight() {\n      return this._scrollElement.scrollHeight || Math.max(\n        document.body.scrollHeight,\n        document.documentElement.scrollHeight\n      )\n    }\n\n    _getOffsetHeight() {\n      return this._scrollElement === window ?\n          window.innerHeight : this._scrollElement.getBoundingClientRect().height\n    }\n\n    _process() {\n      const scrollTop    = this._getScrollTop() + this._config.offset\n      const scrollHeight = this._getScrollHeight()\n      const maxScroll    = this._config.offset\n        + scrollHeight\n        - this._getOffsetHeight()\n\n      if (this._scrollHeight !== scrollHeight) {\n        this.refresh()\n      }\n\n      if (scrollTop >= maxScroll) {\n        const target = 
 this._targets[this._targets.length - 1]\n\n        if (this._activeTarget !== target) {\n          this._activate(target)\n        }\n        return\n      }\n\n      if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n        this._activeTarget = null\n        this._clear()\n        return\n      }\n\n      for (let i = this._offsets.length; i--;) {\n        const isActiveTarget = this._activeTarget !== this._targets[i]\n            && scrollTop >= this._offsets[i]\n            && (typeof this._offsets[i + 1] === 'undefined' ||\n                scrollTop < this._offsets[i + 1])\n\n        if (isActiveTarget) {\n          this._activate(this._targets[i])\n        }\n      }\n    }\n\n    _activate(target) {\n      this._activeTarget = target\n\n      this._clear()\n\n      let queries = this._selector.split(',')\n      // eslint-disable-next-line arrow-body-style\n      queries     = queries.map((selector) => {\n        return `${selector}[data-target=
 \"${target}\"],` +\n               `${selector}[href=\"${target}\"]`\n      })\n\n      const $link = $(queries.join(','))\n\n      if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n        $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n        $link.addClass(ClassName.ACTIVE)\n      } else {\n        // Set triggered link as active\n        $link.addClass(ClassName.ACTIVE)\n        // Set triggered links parents as active\n        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n        $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n        // Handle special case when .nav-link is inside .nav-item\n        $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n      }\n\n      $(this._scrollElement).trigger(Event.ACTIVATE, {\n        relatedTarget: target\n      
 })\n    }\n\n    _clear() {\n      $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data      = $(this).data(DATA_KEY)\n        const _config = typeof config === 'object' && config\n\n        if (!data) {\n          data = new ScrollSpy(this, _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n  
   for (let i = scrollSpys.length; i--;) {\n      const $spy = $(scrollSpys[i])\n      ScrollSpy._jQueryInterface.call($spy, $spy.data())\n    }\n  })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = ScrollSpy._jQueryInterface\n  $.fn[NAME].Constructor = ScrollSpy\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return ScrollSpy._jQueryInterface\n  }\n\n  return ScrollSpy\n\n})($)\n\nexport default ScrollSpy\n","import $ from 'jquery'\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-beta.2): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (() => {\n\n\n  /**\n  
  * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'tab'\n  const VERSION             = '4.0.0-beta.2'\n  const DATA_KEY            = 'bs.tab'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n  const TRANSITION_DURATION = 150\n\n  const Event = {\n    HIDE           : `hide${EVENT_KEY}`,\n    HIDDEN         : `hidden${EVENT_KEY}`,\n    SHOW           : `show${EVENT_KEY}`,\n    SHOWN          : `shown${EVENT_KEY}`,\n    CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const ClassName = {\n    DROPDOWN_MENU : 'dropdown-menu',\n    ACTIVE        : 'active',\n    DISABLED      : 'disabled',\n    FADE          : 'fade',\n    SHOW          : 'show'\n  }\n\n  const Selector = {\n    DROPDOWN              : '.dropdown',\n    NAV_LIST_GROUP
         : '.nav, .list-group',\n    ACTIVE                : '.active',\n    ACTIVE_UL             : '> li > .active',\n    DATA_TOGGLE           : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n    DROPDOWN_TOGGLE       : '.dropdown-toggle',\n    DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Tab {\n\n    constructor(element) {\n      this._element = element\n    }\n\n\n    // getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n\n    // public\n\n    show() {\n      if (this._element.parentNode &&\n          this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n          $(this._element).hasClass(ClassName.ACTIVE) ||\n          $(this._element).hasClass(ClassName.DISABLED)) {\n        return\n      }\n\n      let targ
 et\n      let previous\n      const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n      const selector    = Util.getSelectorFromElement(this._element)\n\n      if (listElement) {\n        const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n        previous = $.makeArray($(listElement).find(itemSelector))\n        previous = previous[previous.length - 1]\n      }\n\n      const hideEvent = $.Event(Event.HIDE, {\n        relatedTarget: this._element\n      })\n\n      const showEvent = $.Event(Event.SHOW, {\n        relatedTarget: previous\n      })\n\n      if (previous) {\n        $(previous).trigger(hideEvent)\n      }\n\n      $(this._element).trigger(showEvent)\n\n      if (showEvent.isDefaultPrevented() ||\n         hideEvent.isDefaultPrevented()) {\n        return\n      }\n\n      if (selector) {\n        target = $(selector)[0]\n      }\n\n      this._activate(\n        this._element,\n        listElement\n      )\n
 \n      const complete = () => {\n        const hiddenEvent = $.Event(Event.HIDDEN, {\n          relatedTarget: this._element\n        })\n\n        const shownEvent = $.Event(Event.SHOWN, {\n          relatedTarget: previous\n        })\n\n        $(previous).trigger(hiddenEvent)\n        $(this._element).trigger(shownEvent)\n      }\n\n      if (target) {\n        this._activate(target, target.parentNode, complete)\n      } else {\n        complete()\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n\n    // private\n\n    _activate(element, container, callback) {\n      let activeElements\n      if (container.nodeName === 'UL') {\n        activeElements = $(container).find(Selector.ACTIVE_UL)\n      } else {\n        activeElements = $(container).children(Selector.ACTIVE)\n      }\n\n      const active          = activeElements[0]\n      const isTransitioning = callback\n        && Util.supportsTransitionEnd()\n 
        && (active && $(active).hasClass(ClassName.FADE))\n\n      const complete = () => this._transitionComplete(\n        element,\n        active,\n        isTransitioning,\n        callback\n      )\n\n      if (active && isTransitioning) {\n        $(active)\n          .one(Util.TRANSITION_END, complete)\n          .emulateTransitionEnd(TRANSITION_DURATION)\n\n      } else {\n        complete()\n      }\n\n      if (active) {\n        $(active).removeClass(ClassName.SHOW)\n      }\n    }\n\n    _transitionComplete(element, active, isTransitioning, callback) {\n      if (active) {\n        $(active).removeClass(ClassName.ACTIVE)\n\n        const dropdownChild = $(active.parentNode).find(\n          Selector.DROPDOWN_ACTIVE_CHILD\n        )[0]\n\n        if (dropdownChild) {\n          $(dropdownChild).removeClass(ClassName.ACTIVE)\n        }\n\n        if (active.getAttribute('role') === 'tab') {\n          active.setAttribute('aria-selected', false)\n        }\n      }\n\n     
  $(element).addClass(ClassName.ACTIVE)\n      if (element.getAttribute('role') === 'tab') {\n        element.setAttribute('aria-selected', true)\n      }\n\n      if (isTransitioning) {\n        Util.reflow(element)\n        $(element).addClass(ClassName.SHOW)\n      } else {\n        $(element).removeClass(ClassName.FADE)\n      }\n\n      if (element.parentNode &&\n          $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n\n        const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n        if (dropdownElement) {\n          $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n        }\n\n        element.setAttribute('aria-expanded', true)\n      }\n\n      if (callback) {\n        callback()\n      }\n    }\n\n\n    // static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        const $this = $(this)\n        let data    = $this.data(DATA_KEY)\n\n        if (!data) {\n          data = new Tab(thi
 s)\n          $this.data(DATA_KEY, data)\n        }\n\n        if (typeof config === 'string') {\n          if (typeof data[config] === 'undefined') {\n            throw new Error(`No method named \"${config}\"`)\n          }\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n      event.preventDefault()\n      Tab._jQueryInterface.call($(this), 'show')\n    })\n\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME]             = Tab._jQueryInterface\n  $.fn[NAME].Constructor = Tab\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAM
 E] = JQUERY_NO_CONFLICT\n    return Tab._jQueryInterface\n  }\n\n  return Tab\n\n})($)\n\nexport default Tab\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(() => {\n  if (typeof $ === 'undefined') {\n    throw new Error('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n  }\n\n  const version = $.fn.jquery.split(' ')[0].
 split('.')\n  const minMajor = 1\n  const ltMajor  = 2\n  const minMinor = 9\n  const minPatch = 1\n  const maxMajor = 4\n\n  if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n    throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n  }\n})($)\n\nexport {\n  Util,\n  Alert,\n  Button,\n  Carousel,\n  Collapse,\n  Dropdown,\n  Modal,\n  Popover,\n  Scrollspy,\n  Tab,\n  Tooltip\n}\n"]}
\ No newline at end of file
diff --git a/assets/static/js/clipboard.min.js b/assets/static/js/clipboard.min.js
deleted file mode 100755
index 90fd15b..0000000
--- a/assets/static/js/clipboard.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*!
- * clipboard.js v1.7.1
- * https://zenorocha.github.io/clipboard.js
- *
- * Licensed MIT © Zeno Rocha
- */
-!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Clipboard=t()}}(function(){var t,e,n;return function t(e,n,o){function i(a,c){if(!n[a]){if(!e[a]){var l="function"==typeof require&&require;if(!c&&l)return l(a,!0);if(r)return r(a,!0);var s=new Error("Cannot find module '"+a+"'");throw s.code="MODULE_NOT_FOUND",s}var u=n[a]={exports:{}};e[a][0].call(u.exports,function(t){var n=e[a][1][t];return i(n||t)},u,u.exports,t,e,n,o)}return n[a].exports}for(var r="function"==typeof require&&require,a=0;a<o.length;a++)i(o[a]);return i}({1:[function(t,e,n){function o(t,e){for(;t&&t.nodeType!==i;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}var i=9;if("undefined"!=typeof Element&&!Element.prototype.matches){var r=Element.prototype;r.matches=r.matchesSelector|
 |r.mozMatchesSelector||r.msMatchesSelector||r.oMatchesSelector||r.webkitMatchesSelector}e.exports=o},{}],2:[function(t,e,n){function o(t,e,n,o,r){var a=i.apply(this,arguments);return t.addEventListener(n,a,r),{destroy:function(){t.removeEventListener(n,a,r)}}}function i(t,e,n,o){return function(n){n.delegateTarget=r(n.target,e),n.delegateTarget&&o.call(t,n)}}var r=t("./closest");e.exports=o},{"./closest":1}],3:[function(t,e,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},{}],4:[function(t,e,n){function o(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!c.string(e))throw new TypeError("Second argument
  must be a String");if(!c.fn(n))throw new TypeError("Third argument must be a Function");if(c.node(t))return i(t,e,n);if(c.nodeList(t))return r(t,e,n);if(c.string(t))return a(t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function i(t,e,n){return t.addEventListener(e,n),{destroy:function(){t.removeEventListener(e,n)}}}function r(t,e,n){return Array.prototype.forEach.call(t,function(t){t.addEventListener(e,n)}),{destroy:function(){Array.prototype.forEach.call(t,function(t){t.removeEventListener(e,n)})}}}function a(t,e,n){return l(document.body,t,e,n)}var c=t("./is"),l=t("delegate");e.exports=o},{"./is":3,delegate:2}],5:[function(t,e,n){function o(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute
 ("contenteditable")&&t.focus();var o=window.getSelection(),i=document.createRange();i.selectNodeContents(t),o.removeAllRanges(),o.addRange(i),e=o.toString()}return e}e.exports=o},{}],6:[function(t,e,n){function o(){}o.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){function o(){i.off(t,o),e.apply(n,arguments)}var i=this;return o._=e,this.on(t,o,n)},emit:function(t){var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,i=n.length;for(o;o<i;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],i=[];if(o&&e)for(var r=0,a=o.length;r<a;r++)o[r].fn!==e&&o[r].fn._!==e&&i.push(o[r]);return i.length?n[t]=i:delete n[t],this}},e.exports=o},{}],7:[function(e,n,o){!function(i,r){if("function"==typeof t&&t.amd)t(["module","select"],r);else if(void 0!==o)r(n,e("select"));else{var a={exports:{}};r(a,i.select),i.clipboardAction=a.exports}}(this,function(t,e){"
 use strict";function n(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var i=n(e),r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}(),c=function(){function t(e){o(this,t),this.resolveOptions(e),this.initSelection()}return a(t,[{key:"resolveOptions",value:function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action=e.action,this.container=e.container,this.emitter=e.emitter,this.target=e.target,this.text=e.text,this.trigger=e.trigger,this.selectedText=""}},{key:"initSelection",value:
 function t(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function t(){var e=this,n="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return e.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[n?"right":"left"]="-9999px";var o=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=o+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,i.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function t(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCa
 llback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function t(){this.selectedText=(0,i.default)(this.target),this.copyText()}},{key:"copyText",value:function t(){var e=void 0;try{e=document.execCommand(this.action)}catch(t){e=!1}this.handleResult(e)}},{key:"handleResult",value:function t(e){this.emitter.emit(e?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function t(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function t(){this.removeFake()}},{key:"action",set:function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=e,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function t(){return this._act
 ion}},{key:"target",set:function t(e){if(void 0!==e){if(!e||"object"!==(void 0===e?"undefined":r(e))||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&e.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(e.hasAttribute("readonly")||e.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=e}},get:function t(){return this._target}}]),t}();t.exports=c})},{select:5}],8:[function(e,n,o){!function(i,r){if("function"==typeof t&&t.amd)t(["module","./clipboard-action","tiny-emitter","good-listener"],r);else if(void 0!==o)r(n,e("./clipboard-action"),e("tiny-emitter"),e("good-listener"));else{var a={exports:{}};r(a,i.clipboardAction,i.tinyEmitter,i.goodListener),i.clipboard=a.exports}}(this,function(t,e,n,o){"use strict";function i(t){ret
 urn t&&t.__esModule?t:{default:t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function c(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function l(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}var s=i(e),u=i(n),f=i(o),d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},h=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enum
 erable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}(),p=function(t){function e(t,n){r(this,e);var o=a(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return o.resolveOptions(n),o.listenClick(t),o}return c(e,t),h(e,[{key:"resolveOptions",value:function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText,this.container="object"===d(e.container)?e.container:document.body}},{key:"listenClick",value:function t(e){var n=this;this.listener=(0,f.default)(e,"click",function(t){return n.onClick(t)})}},{key:"onClick",value:function t(e){var n=e.delegateTarget||e.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new s.default({a
 ction:this.action(n),target:this.target(n),text:this.text(n),container:this.container,trigger:n,emitter:this})}},{key:"defaultAction",value:function t(e){return l("action",e)}},{key:"defaultTarget",value:function t(e){var n=l("target",e);if(n)return document.querySelector(n)}},{key:"defaultText",value:function t(e){return l("text",e)}},{key:"destroy",value:function t(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],n="string"==typeof e?[e]:e,o=!!document.queryCommandSupported;return n.forEach(function(t){o=o&&!!document.queryCommandSupported(t)}),o}}]),e}(u.default);t.exports=p})},{"./clipboard-action":7,"good-listener":4,"tiny-emitter":6}]},{},[8])(8)});
\ No newline at end of file
diff --git a/assets/static/js/holder.min.js b/assets/static/js/holder.min.js
deleted file mode 100755
index 62255af..0000000
--- a/assets/static/js/holder.min.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*!
-
-Holder - client side image placeholders
-Version 2.9.4+cabil
-© 2016 Ivan Malopinsky - http://imsky.co
-
-Site:     http://holderjs.com
-Issues:   https://github.com/imsky/holder/issues
-License:  MIT
-
-*/
-!function(e){if(e.document){var t=e.document;t.querySelectorAll||(t.querySelectorAll=function(n){var r,i=t.createElement("style"),o=[];for(t.documentElement.firstChild.appendChild(i),t._qsa=[],i.styleSheet.cssText=n+"{x-qsa:expression(document._qsa && document._qsa.push(this))}",e.scrollBy(0,0),i.parentNode.removeChild(i);t._qsa.length;)r=t._qsa.shift(),r.style.removeAttribute("x-qsa"),o.push(r);return t._qsa=null,o}),t.querySelector||(t.querySelector=function(e){var n=t.querySelectorAll(e);return n.length?n[0]:null}),t.getElementsByClassName||(t.getElementsByClassName=function(e){return e=String(e).replace(/^|\s+/g,"."),t.querySelectorAll(e)}),Object.keys||(Object.keys=function(e){if(e!==Object(e))throw TypeError("Object.keys called on non-object");var t,n=[];for(t in e)Object.prototype.hasOwnProperty.call(e,t)&&n.push(t);return n}),Array.prototype.forEach||(Array.prototype.forEach=function(e){if(void 0===this||null===this)throw TypeError();var t=Object(this),n=t.length>>>0;if("fun
 ction"!=typeof e)throw TypeError();var r,i=arguments[1];for(r=0;r<n;r++)r in t&&e.call(i,t[r],r,t)}),function(e){var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";e.atob=e.atob||function(e){e=String(e);var n,r=0,i=[],o=0,a=0;if(e=e.replace(/\s/g,""),e.length%4===0&&(e=e.replace(/=+$/,"")),e.length%4===1)throw Error("InvalidCharacterError");if(/[^+\/0-9A-Za-z]/.test(e))throw Error("InvalidCharacterError");for(;r<e.length;)n=t.indexOf(e.charAt(r)),o=o<<6|n,a+=6,24===a&&(i.push(String.fromCharCode(o>>16&255)),i.push(String.fromCharCode(o>>8&255)),i.push(String.fromCharCode(255&o)),a=0,o=0),r+=1;return 12===a?(o>>=4,i.push(String.fromCharCode(255&o))):18===a&&(o>>=2,i.push(String.fromCharCode(o>>8&255)),i.push(String.fromCharCode(255&o))),i.join("")},e.btoa=e.btoa||function(e){e=String(e);var n,r,i,o,a,s,l,h=0,u=[];if(/[^\x00-\xFF]/.test(e))throw Error("InvalidCharacterError");for(;h<e.length;)n=e.charCodeAt(h++),r=e.charCodeAt(h++),i=e.charCodeAt(h++),o=n>>2,a=(
 3&n)<<4|r>>4,s=(15&r)<<2|i>>6,l=63&i,h===e.length+2?(s=64,l=64):h===e.length+1&&(l=64),u.push(t.charAt(o),t.charAt(a),t.charAt(s),t.charAt(l));return u.join("")}}(e),Object.prototype.hasOwnProperty||(Object.prototype.hasOwnProperty=function(e){var t=this.__proto__||this.constructor.prototype;return e in this&&(!(e in t)||t[e]!==this[e])}),function(){if("performance"in e==!1&&(e.performance={}),Date.now=Date.now||function(){return(new Date).getTime()},"now"in e.performance==!1){var t=Date.now();performance.timing&&performance.timing.navigationStart&&(t=performance.timing.navigationStart),e.performance.now=function(){return Date.now()-t}}}(),e.requestAnimationFrame||(e.webkitRequestAnimationFrame&&e.webkitCancelAnimationFrame?!function(e){e.requestAnimationFrame=function(t){return webkitRequestAnimationFrame(function(){t(e.performance.now())})},e.cancelAnimationFrame=e.webkitCancelAnimationFrame}(e):e.mozRequestAnimationFrame&&e.mozCancelAnimationFrame?!function(e){e.requestAnimationF
 rame=function(t){return mozRequestAnimationFrame(function(){t(e.performance.now())})},e.cancelAnimationFrame=e.mozCancelAnimationFrame}(e):!function(e){e.requestAnimationFrame=function(t){return e.setTimeout(t,1e3/60)},e.cancelAnimationFrame=e.clearTimeout}(e))}}(this),function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Holder=t():e.Holder=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){e.exports=n(1)},function(e,t,n){(function(t){function r(e,t,n,r){var a=i(n.substr(n.lastIndexOf(e.domain)),e);a&&o({mode:null,el:r,flags:a,engineSettings:t})}function i(e,t){var n={theme:k(O.settings.themes.gray,null),stylesheets:t.stylesheets,instanceOptions:t},r=e.indexOf("?"),i=[e];r!==-1&&(i=
 [e.slice(0,r),e.slice(r+1)]);var o=i[0].split("/");n.holderURL=e;var a=o[1],s=a.match(/([\d]+p?)x([\d]+p?)/);if(!s)return!1;if(n.fluid=a.indexOf("p")!==-1,n.dimensions={width:s[1].replace("p","%"),height:s[2].replace("p","%")},2===i.length){var l=v.parse(i[1]);if(w.truthy(l.ratio)){n.fluid=!0;var h=parseFloat(n.dimensions.width.replace("%","")),u=parseFloat(n.dimensions.height.replace("%",""));u=Math.floor(100*(u/h)),h=100,n.dimensions.width=h+"%",n.dimensions.height=u+"%"}if(n.auto=w.truthy(l.auto),l.bg&&(n.theme.bg=w.parseColor(l.bg)),l.fg&&(n.theme.fg=w.parseColor(l.fg)),l.bg&&!l.fg&&(n.autoFg=!0),l.theme&&n.instanceOptions.themes.hasOwnProperty(l.theme)&&(n.theme=k(n.instanceOptions.themes[l.theme],null)),l.text&&(n.text=l.text),l.textmode&&(n.textmode=l.textmode),l.size&&(n.size=l.size),l.font&&(n.font=l.font),l.align&&(n.align=l.align),l.lineWrap&&(n.lineWrap=l.lineWrap),n.nowrap=w.truthy(l.nowrap),n.outline=w.truthy(l.outline),w.truthy(l.random)){O.vars.cache.themeKeys=O.vars
 .cache.themeKeys||Object.keys(n.instanceOptions.themes);var c=O.vars.cache.themeKeys[0|Math.random()*O.vars.cache.themeKeys.length];n.theme=k(n.instanceOptions.themes[c],null)}}return n}function o(e){var t=e.mode,n=e.el,r=e.flags,i=e.engineSettings,o=r.dimensions,s=r.theme,l=o.width+"x"+o.height;t=null==t?r.fluid?"fluid":"image":t;var c=/holder_([a-z]+)/g,d=!1;if(null!=r.text&&(s.text=r.text,"object"===n.nodeName.toLowerCase())){for(var f=s.text.split("\\n"),p=0;p<f.length;p++)f[p]=w.encodeHtmlEntity(f[p]);s.text=f.join("\\n")}if(s.text){var g=s.text.match(c);null!==g&&g.forEach(function(e){"holder_dimensions"===e&&(s.text=s.text.replace(e,l))})}var m=r.holderURL,v=k(i,null);if(r.font&&(s.font=r.font,!v.noFontFallback&&"img"===n.nodeName.toLowerCase()&&O.setup.supportsCanvas&&"svg"===v.renderer&&(v=k(v,{renderer:"canvas"}))),r.font&&"canvas"==v.renderer&&(v.reRender=!0),"background"==t)null==n.getAttribute("data-background-src")&&x.setAttr(n,{"data-background-src":m});else{var y={};
 y[O.vars.dataAttr]=m,x.setAttr(n,y)}r.theme=s,n.holderData={flags:r,engineSettings:v},"image"!=t&&"fluid"!=t||x.setAttr(n,{alt:s.text?d?s.text:s.text+" ["+l+"]":l});var b={mode:t,el:n,holderSettings:{dimensions:o,theme:s,flags:r},engineSettings:v};"image"==t?(r.auto||(n.style.width=o.width+"px",n.style.height=o.height+"px"),"html"==v.renderer?n.style.backgroundColor=s.bg:(a(b),"exact"==r.textmode&&(n.holderData.resizeUpdate=!0,O.vars.resizableImages.push(n),h(n)))):"background"==t&&"html"!=v.renderer?a(b):"fluid"==t&&(n.holderData.resizeUpdate=!0,"%"==o.height.slice(-1)?n.style.height=o.height:null!=r.auto&&r.auto||(n.style.height=o.height+"px"),"%"==o.width.slice(-1)?n.style.width=o.width:null!=r.auto&&r.auto||(n.style.width=o.width+"px"),"inline"!=n.style.display&&""!==n.style.display&&"none"!=n.style.display||(n.style.display="block"),u(n),"html"==v.renderer?n.style.backgroundColor=s.bg:(O.vars.resizableImages.push(n),h(n)))}function a(e){function n(){var t=null;switch(l.renderer
 ){case"canvas":t=E(u,e);break;case"svg":t=C(u,e);break;default:throw"Holder: invalid renderer: "+l.renderer}return t}var r=null,i=e.mode,o=e.el,a=e.holderSettings,l=e.engineSettings;switch(l.renderer){case"svg":if(!O.setup.supportsSVG)return;break;case"canvas":if(!O.setup.supportsCanvas)return;break;default:return}var h={width:a.dimensions.width,height:a.dimensions.height,theme:a.theme,flags:a.flags},u=s(h);if(r=n(),null==r)throw"Holder: couldn't render placeholder";"background"==i?(o.style.backgroundImage="url("+r+")",l.noBackgroundSize||(o.style.backgroundSize=h.width+"px "+h.height+"px")):("img"===o.nodeName.toLowerCase()?x.setAttr(o,{src:r}):"object"===o.nodeName.toLowerCase()&&x.setAttr(o,{data:r,type:"image/svg+xml"}),l.reRender&&t.setTimeout(function(){var e=n();if(null==e)throw"Holder: couldn't render placeholder";"img"===o.nodeName.toLowerCase()?x.setAttr(o,{src:e}):"object"===o.nodeName.toLowerCase()&&x.setAttr(o,{data:e,type:"image/svg+xml"})},150)),x.setAttr(o,{"data-hol
 der-rendered":!0})}function s(e){function t(e,t,n,r){t.width=n,t.height=r,e.width=Math.max(e.width,t.width),e.height+=t.height}var n=O.defaults.size;switch(parseFloat(e.theme.size)?n=e.theme.size:parseFloat(e.flags.size)&&(n=e.flags.size),e.font={family:e.theme.font?e.theme.font:"Arial, Helvetica, Open Sans, sans-serif",size:l(e.width,e.height,n,O.defaults.scale),units:e.theme.units?e.theme.units:O.defaults.units,weight:e.theme.fontweight?e.theme.fontweight:"bold"},e.text=e.theme.text||Math.floor(e.width)+"x"+Math.floor(e.height),e.noWrap=e.theme.nowrap||e.flags.nowrap,e.align=e.theme.align||e.flags.align||"center",e.flags.textmode){case"literal":e.text=e.flags.dimensions.width+"x"+e.flags.dimensions.height;break;case"exact":if(!e.flags.exactDimensions)break;e.text=Math.floor(e.flags.exactDimensions.width)+"x"+Math.floor(e.flags.exactDimensions.height)}var r=e.flags.lineWrap||O.setup.lineWrapRatio,i=e.width*r,o=i,a=new y({width:e.width,height:e.height}),s=a.Shape,h=new s.Rect("holde
 rBg",{fill:e.theme.bg});if(h.resize(e.width,e.height),a.root.add(h),e.flags.outline){var u=new S(h.properties.fill);u=u.lighten(u.lighterThan("7f7f7f")?-.1:.1),h.properties.outline={fill:u.toHex(!0),width:2}}var c=e.theme.fg;if(e.flags.autoFg){var d=new S(h.properties.fill),f=new S("fff"),p=new S("000",{alpha:.285714});c=d.blendAlpha(d.lighterThan("7f7f7f")?p:f).toHex(!0)}var g=new s.Group("holderTextGroup",{text:e.text,align:e.align,font:e.font,fill:c});g.moveTo(null,null,1),a.root.add(g);var m=g.textPositionData=z(a);if(!m)throw"Holder: staging fallback not supported yet.";g.properties.leading=m.boundingBox.height;var v=null,w=null;if(m.lineCount>1){var b,x=0,A=0,C=0;w=new s.Group("line"+C),"left"!==e.align&&"right"!==e.align||(o=e.width*(1-2*(1-r)));for(var E=0;E<m.words.length;E++){var k=m.words[E];v=new s.Text(k.text);var T="\\n"==k.text;!e.noWrap&&(x+k.width>=o||T===!0)&&(t(g,w,x,g.properties.leading),g.add(w),x=0,A+=g.properties.leading,C+=1,w=new s.Group("line"+C),w.y=A),T!=
 =!0&&(v.moveTo(x,0),x+=m.spaceWidth+k.width,w.add(v))}if(t(g,w,x,g.properties.leading),g.add(w),"left"===e.align)g.moveTo(e.width-i,null,null);else if("right"===e.align){for(b in g.children)w=g.children[b],w.moveTo(e.width-w.width,null,null);g.moveTo(0-(e.width-i),null,null)}else{for(b in g.children)w=g.children[b],w.moveTo((g.width-w.width)/2,null,null);g.moveTo((e.width-g.width)/2,null,null)}g.moveTo(null,(e.height-g.height)/2,null),(e.height-g.height)/2<0&&g.moveTo(null,0,null)}else v=new s.Text(e.text),w=new s.Group("line0"),w.add(v),g.add(w),"left"===e.align?g.moveTo(e.width-i,null,null):"right"===e.align?g.moveTo(0-(e.width-i),null,null):g.moveTo((e.width-m.boundingBox.width)/2,null,null),g.moveTo(null,(e.height-m.boundingBox.height)/2,null);return a}function l(e,t,n,r){var i=parseInt(e,10),o=parseInt(t,10),a=Math.max(i,o),s=Math.min(i,o),l=.8*Math.min(s,a*r);return Math.round(Math.max(n,l))}function h(e){var t;t=null==e||null==e.nodeType?O.vars.resizableImages:[e];for(var n=0
 ,r=t.length;n<r;n++){var i=t[n];if(i.holderData){var o=i.holderData.flags,s=T(i);if(s){if(!i.holderData.resizeUpdate)continue;if(o.fluid&&o.auto){var l=i.holderData.fluidConfig;switch(l.mode){case"width":s.height=s.width/l.ratio;break;case"height":s.width=s.height*l.ratio}}var h={mode:"image",holderSettings:{dimensions:s,theme:o.theme,flags:o},el:i,engineSettings:i.holderData.engineSettings};"exact"==o.textmode&&(o.exactDimensions=s,h.holderSettings.dimensions=o.dimensions),a(h)}else f(i)}}}function u(e){if(e.holderData){var t=T(e);if(t){var n=e.holderData.flags,r={fluidHeight:"%"==n.dimensions.height.slice(-1),fluidWidth:"%"==n.dimensions.width.slice(-1),mode:null,initialDimensions:t};r.fluidWidth&&!r.fluidHeight?(r.mode="width",r.ratio=r.initialDimensions.width/parseFloat(n.dimensions.height)):!r.fluidWidth&&r.fluidHeight&&(r.mode="height",r.ratio=parseFloat(n.dimensions.width)/r.initialDimensions.height),e.holderData.fluidConfig=r}else f(e)}}function c(){var e,n=[],r=Object.keys(
 O.vars.invisibleImages);r.forEach(function(t){e=O.vars.invisibleImages[t],T(e)&&"img"==e.nodeName.toLowerCase()&&(n.push(e),delete O.vars.invisibleImages[t])}),n.length&&F.run({images:n}),setTimeout(function(){t.requestAnimationFrame(c)},10)}function d(){O.vars.visibilityCheckStarted||(t.requestAnimationFrame(c),O.vars.visibilityCheckStarted=!0)}function f(e){e.holderData.invisibleId||(O.vars.invisibleId+=1,O.vars.invisibleImages["i"+O.vars.invisibleId]=e,e.holderData.invisibleId=O.vars.invisibleId)}function p(e){O.vars.debounceTimer||e.call(this),O.vars.debounceTimer&&t.clearTimeout(O.vars.debounceTimer),O.vars.debounceTimer=t.setTimeout(function(){O.vars.debounceTimer=null,e.call(this)},O.setup.debounce)}function g(){p(function(){h(null)})}var m=n(2),v=n(3),y=n(6),w=n(7),b=n(8),x=n(9),S=n(10),A=n(11),C=n(12),E=n(15),k=w.extend,T=w.dimensionCheck,j=A.svg_ns,F={version:A.version,addTheme:function(e,t){return null!=e&&null!=t&&(O.settings.themes[e]=t),delete O.vars.cache.themeKeys,th
 is},addImage:function(e,t){var n=x.getNodeArray(t);return n.forEach(function(t){var n=x.newEl("img"),r={};r[O.setup.dataAttr]=e,x.setAttr(n,r),t.appendChild(n)}),this},setResizeUpdate:function(e,t){e.holderData&&(e.holderData.resizeUpdate=!!t,e.holderData.resizeUpdate&&h(e))},run:function(e){e=e||{};var n={},a=k(O.settings,e);O.vars.preempted=!0,O.vars.dataAttr=a.dataAttr||O.setup.dataAttr,n.renderer=a.renderer?a.renderer:O.setup.renderer,O.setup.renderers.join(",").indexOf(n.renderer)===-1&&(n.renderer=O.setup.supportsSVG?"svg":O.setup.supportsCanvas?"canvas":"html");var s=x.getNodeArray(a.images),l=x.getNodeArray(a.bgnodes),h=x.getNodeArray(a.stylenodes),u=x.getNodeArray(a.objects);return n.stylesheets=[],n.svgXMLStylesheet=!0,n.noFontFallback=!!a.noFontFallback,n.noBackgroundSize=!!a.noBackgroundSize,h.forEach(function(e){if(e.attributes.rel&&e.attributes.href&&"stylesheet"==e.attributes.rel.value){var t=e.attributes.href.value,r=x.newEl("a");r.href=t;var i=r.protocol+"//"+r.host
 +r.pathname+r.search;n.stylesheets.push(i)}}),l.forEach(function(e){if(t.getComputedStyle){var r=t.getComputedStyle(e,null).getPropertyValue("background-image"),s=e.getAttribute("data-background-src"),l=s||r,h=null,u=a.domain+"/",c=l.indexOf(u);if(0===c)h=l;else if(1===c&&"?"===l[0])h=l.slice(1);else{var d=l.substr(c).match(/([^\"]*)"?\)/);if(null!==d)h=d[1];else if(0===l.indexOf("url("))throw"Holder: unable to parse background URL: "+l}if(h){var f=i(h,a);f&&o({mode:"background",el:e,flags:f,engineSettings:n})}}}),u.forEach(function(e){var t={};try{t.data=e.getAttribute("data"),t.dataSrc=e.getAttribute(O.vars.dataAttr)}catch(i){}var o=null!=t.data&&0===t.data.indexOf(a.domain),s=null!=t.dataSrc&&0===t.dataSrc.indexOf(a.domain);o?r(a,n,t.data,e):s&&r(a,n,t.dataSrc,e)}),s.forEach(function(e){var t={};try{t.src=e.getAttribute("src"),t.dataSrc=e.getAttribute(O.vars.dataAttr),t.rendered=e.getAttribute("data-holder-rendered")}catch(i){}var o=null!=t.src,s=null!=t.dataSrc&&0===t.dataSrc.in
 dexOf(a.domain),l=null!=t.rendered&&"true"==t.rendered;o?0===t.src.indexOf(a.domain)?r(a,n,t.src,e):s&&(l?r(a,n,t.dataSrc,e):!function(e,t,n,i,o){w.imageExists(e,function(e){e||r(t,n,i,o)})}(t.src,a,n,t.dataSrc,e)):s&&r(a,n,t.dataSrc,e)}),this}},O={settings:{domain:"holder.js",images:"img",objects:"object",bgnodes:"body .holderjs",stylenodes:"head link.holderjs",themes:{gray:{bg:"#EEEEEE",fg:"#AAAAAA"},social:{bg:"#3a5a97",fg:"#FFFFFF"},industrial:{bg:"#434A52",fg:"#C2F200"},sky:{bg:"#0D8FDB",fg:"#FFFFFF"},vine:{bg:"#39DBAC",fg:"#1E292C"},lava:{bg:"#F8591A",fg:"#1C2846"}}},defaults:{size:10,units:"pt",scale:1/16}},z=function(){var e=null,t=null,n=null;return function(r){var i=r.root;if(O.setup.supportsSVG){var o=!1,a=function(e){return document.createTextNode(e)};null!=e&&e.parentNode===document.body||(o=!0),e=b.initSVG(e,i.properties.width,i.properties.height),e.style.display="block",o&&(t=x.newEl("text",j),n=a(null),x.setAttr(t,{x:0}),t.appendChild(n),e.appendChild(t),document.bod
 y.appendChild(e),e.style.visibility="hidden",e.style.position="absolute",e.style.top="-100%",e.style.left="-100%");var s=i.children.holderTextGroup,l=s.properties;x.setAttr(t,{y:l.font.size,style:w.cssProps({"font-weight":l.font.weight,"font-size":l.font.size+l.font.units,"font-family":l.font.family})}),n.nodeValue=l.text;var h=t.getBBox(),u=Math.ceil(h.width/i.properties.width),c=l.text.split(" "),d=l.text.match(/\\n/g);u+=null==d?0:d.length,n.nodeValue=l.text.replace(/[ ]+/g,"");var f=t.getComputedTextLength(),p=h.width-f,g=Math.round(p/Math.max(1,c.length-1)),m=[];if(u>1){n.nodeValue="";for(var v=0;v<c.length;v++)if(0!==c[v].length){n.nodeValue=w.decodeHtmlEntity(c[v]);var y=t.getBBox();m.push({text:c[v],width:y.width})}}return e.style.display="none",{spaceWidth:g,lineCount:u,boundingBox:h,words:m}}return!1}}();for(var D in O.flags)O.flags.hasOwnProperty(D)&&(O.flags[D].match=function(e){return e.match(this.regex)});O.setup={renderer:"html",debounce:100,ratio:1,supportsCanvas:!1,
 supportsSVG:!1,lineWrapRatio:.9,dataAttr:"data-src",renderers:["html","canvas","svg"]},O.vars={preempted:!1,resizableImages:[],invisibleImages:{},invisibleId:0,visibilityCheckStarted:!1,debounceTimer:null,cache:{}},function(){var e=x.newEl("canvas");e.getContext&&e.toDataURL("image/png").indexOf("data:image/png")!=-1&&(O.setup.renderer="canvas",O.setup.supportsCanvas=!0),document.createElementNS&&document.createElementNS(j,"svg").createSVGRect&&(O.setup.renderer="svg",O.setup.supportsSVG=!0)}(),d(),m&&m(function(){O.vars.preempted||F.run(),t.addEventListener?(t.addEventListener("resize",g,!1),t.addEventListener("orientationchange",g,!1)):t.attachEvent("onresize",g),"object"==typeof t.Turbolinks&&t.document.addEventListener("page:change",function(){F.run()})}),e.exports=F}).call(t,function(){return this}())},function(e,t){function n(e){function t(e){if(!x){if(!a.body)return i(t);for(x=!0;e=S.shift();)i(e)}}function n(e){(w||e.type===l||a[d]===c)&&(r(),t())}function r(){w?(a[y](m,n,h)
 ,e[y](l,n,h)):(a[p](v,n),e[p](u,n))}function i(e,t){setTimeout(e,+t>=0?t:1)}function o(e){x?i(e):S.push(e)}null==document.readyState&&document.addEventListener&&(document.addEventListener("DOMContentLoaded",function C(){document.removeEventListener("DOMContentLoaded",C,!1),document.readyState="complete"},!1),document.readyState="loading");var a=e.document,s=a.documentElement,l="load",h=!1,u="on"+l,c="complete",d="readyState",f="attachEvent",p="detachEvent",g="addEventListener",m="DOMContentLoaded",v="onreadystatechange",y="removeEventListener",w=g in a,b=h,x=h,S=[];if(a[d]===c)i(t);else if(w)a[g](m,n,h),e[g](l,n,h);else{a[f](v,n),e[f](u,n);try{b=null==e.frameElement&&s}catch(A){}b&&b.doScroll&&!function E(){if(!x){try{b.doScroll("left")}catch(e){return i(E,50)}r(),t()}}()}return o.version="1.4.0",o.isReady=function(){return x},o}e.exports="undefined"!=typeof window&&n(window)},function(e,t,n){var r=encodeURIComponent,i=decodeURIComponent,o=n(4),a=n(5),s=/(\w+)\[(\d+)\]/,l=/\w+\.\w+/
 ;t.parse=function(e){if("string"!=typeof e)return{};if(e=o(e),""===e)return{};"?"===e.charAt(0)&&(e=e.slice(1));for(var t={},n=e.split("&"),r=0;r<n.length;r++){var a,h,u,c=n[r].split("="),d=i(c[0]);if(a=s.exec(d))t[a[1]]=t[a[1]]||[],t[a[1]][a[2]]=i(c[1]);else if(a=l.test(d)){for(a=d.split("."),h=t;a.length;)if(u=a.shift(),u.length){if(h[u]){if(h[u]&&"object"!=typeof h[u])break}else h[u]={};a.length||(h[u]=i(c[1])),h=h[u]}}else t[c[0]]=null==c[1]?"":i(c[1])}return t},t.stringify=function(e){if(!e)return"";var t=[];for(var n in e){var i=e[n];if("array"!=a(i))t.push(r(n)+"="+r(e[n]));else for(var o=0;o<i.length;++o)t.push(r(n+"["+o+"]")+"="+r(i[o]))}return t.join("&")}},function(e,t){function n(e){return e.replace(/^\s*|\s*$/g,"")}t=e.exports=n,t.left=function(e){return e.replace(/^\s*/,"")},t.right=function(e){return e.replace(/\s*$/,"")}},function(e,t){function n(e){return!(null==e||!(e._isBuffer||e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)))}v
 ar r=Object.prototype.toString;e.exports=function(e){switch(r.call(e)){case"[object Date]":return"date";case"[object RegExp]":return"regexp";case"[object Arguments]":return"arguments";case"[object Array]":return"array";case"[object Error]":return"error"}return null===e?"null":void 0===e?"undefined":e!==e?"nan":e&&1===e.nodeType?"element":n(e)?"buffer":(e=e.valueOf?e.valueOf():Object.prototype.valueOf.apply(e),typeof e)}},function(e,t){var n=function(e){function t(e,t){for(var n in t)e[n]=t[n];return e}var n=1,r=function(e){n++,this.parent=null,this.children={},this.id=n,this.name="n"+n,"undefined"!=typeof e&&(this.name=e),this.x=this.y=this.z=0,this.width=this.height=0};r.prototype.resize=function(e,t){null!=e&&(this.width=e),null!=t&&(this.height=t)},r.prototype.moveTo=function(e,t,n){this.x=null!=e?e:this.x,this.y=null!=t?t:this.y,this.z=null!=n?n:this.z},r.prototype.add=function(e){var t=e.name;if("undefined"!=typeof this.children[t])throw"SceneGraph: child already exists: "+t;th
 is.children[t]=e,e.parent=this};var i=function(){r.call(this,"root"),this.properties=e};i.prototype=new r;var o=function(e,n){if(r.call(this,e),this.properties={fill:"#000000"},"undefined"!=typeof n)t(this.properties,n);else if("undefined"!=typeof e&&"string"!=typeof e)throw"SceneGraph: invalid node name"};o.prototype=new r;var a=function(){o.apply(this,arguments),this.type="group"};a.prototype=new o;var s=function(){o.apply(this,arguments),this.type="rect"};s.prototype=new o;var l=function(e){o.call(this),this.type="text",this.properties.text=e};l.prototype=new o;var h=new i;return this.Shape={Rect:s,Text:l,Group:a},this.root=h,this};e.exports=n},function(e,t){(function(e){t.extend=function(e,t){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]=e[r]);if(null!=t)for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i]);return n},t.cssProps=function(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(n+":"+e[n]);return t.join(";")},t.encodeHtmlEntity=function(e){for(var t=[],n=0,r=e.length
 -1;r>=0;r--)n=e.charCodeAt(r),n>128?t.unshift(["&#",n,";"].join("")):t.unshift(e[r]);return t.join("")},t.imageExists=function(e,t){var n=new Image;n.onerror=function(){t.call(this,!1)},n.onload=function(){t.call(this,!0)},n.src=e},t.decodeHtmlEntity=function(e){return e.replace(/&#(\d+);/g,function(e,t){return String.fromCharCode(t)})},t.dimensionCheck=function(e){var t={height:e.clientHeight,width:e.clientWidth};return!(!t.height||!t.width)&&t},t.truthy=function(e){return"string"==typeof e?"true"===e||"yes"===e||"1"===e||"on"===e||"✓"===e:!!e},t.parseColor=function(e){var t,n=/(^(?:#?)[0-9a-f]{6}$)|(^(?:#?)[0-9a-f]{3}$)/i,r=/^rgb\((\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/,i=/^rgba\((\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(0\.\d{1,}|1)\)$/,o=e.match(n);return null!==o?(t=o[1]||o[2],"#"!==t[0]?"#"+t:t):(o=e.match(r),null!==o?t="rgb("+o.slice(1).join(",")+")":(o=e.match(i),null!==o?t="rgba("+o.slice(1).join(",")+")":null))},t.canvasRatio=function(){var t=1,n=1;if(e.d
 ocument){var r=e.document.createElement("canvas");if(r.getContext){var i=r.getContext("2d");t=e.devicePixelRatio||1,n=i.webkitBackingStorePixelRatio||i.mozBackingStorePixelRatio||i.msBackingStorePixelRatio||i.oBackingStorePixelRatio||i.backingStorePixelRatio||1}}return t/n}}).call(t,function(){return this}())},function(e,t,n){(function(e){var r=n(9),i="http://www.w3.org/2000/svg",o=8;t.initSVG=function(e,t,n){var a,s,l=!1;e&&e.querySelector?(s=e.querySelector("style"),null===s&&(l=!0)):(e=r.newEl("svg",i),l=!0),l&&(a=r.newEl("defs",i),s=r.newEl("style",i),r.setAttr(s,{type:"text/css"}),a.appendChild(s),e.appendChild(a)),e.webkitMatchesSelector&&e.setAttribute("xmlns",i);for(var h=0;h<e.childNodes.length;h++)e.childNodes[h].nodeType===o&&e.removeChild(e.childNodes[h]);for(;s.childNodes.length;)s.removeChild(s.childNodes[0]);return r.setAttr(e,{width:t,height:n,viewBox:"0 0 "+t+" "+n,preserveAspectRatio:"none"}),e},t.svgStringToDataURI=function(){var t="data:image/svg+xml;charset=UTF-
 8,",n="data:image/svg+xml;charset=UTF-8;base64,";return function(r,i){return i?n+btoa(e.unescape(encodeURIComponent(r))):t+encodeURIComponent(r)}}(),t.serializeSVG=function(t,n){if(e.XMLSerializer){var i=new XMLSerializer,o="",a=n.stylesheets;if(n.svgXMLStylesheet){for(var s=r.createXML(),l=a.length-1;l>=0;l--){var h=s.createProcessingInstruction("xml-stylesheet",'href="'+a[l]+'" rel="stylesheet"');s.insertBefore(h,s.firstChild)}s.removeChild(s.documentElement),o=i.serializeToString(s)}var u=i.serializeToString(t);return u=u.replace(/\&(\#[0-9]{2,}\;)/g,"&$1"),o+u}}}).call(t,function(){return this}())},function(e,t){(function(e){t.newEl=function(t,n){if(e.document)return null==n?e.document.createElement(t):e.document.createElementNS(n,t)},t.setAttr=function(e,t){for(var n in t)e.setAttribute(n,t[n])},t.createXML=function(){if(e.DOMParser)return(new DOMParser).parseFromString("<xml />","application/xml")},t.getNodeArray=function(t){var n=null;return"string"==typeof t?n=document.q
 uerySelectorAll(t):e.NodeList&&t instanceof e.NodeList?n=t:e.Node&&t instanceof e.Node?n=[t]:e.HTMLCollection&&t instanceof e.HTMLCollection?n=t:t instanceof Array?n=t:null===t&&(n=[]),n=Array.prototype.slice.call(n)}}).call(t,function(){return this}())},function(e,t){var n=function(e,t){"string"==typeof e&&(this.original=e,"#"===e.charAt(0)&&(e=e.slice(1)),/[^a-f0-9]+/i.test(e)||(3===e.length&&(e=e.replace(/./g,"$&$&")),6===e.length&&(this.alpha=1,t&&t.alpha&&(this.alpha=t.alpha),this.set(parseInt(e,16)))))};n.rgb2hex=function(e,t,n){function r(e){var t=(0|e).toString(16);return e<16&&(t="0"+t),t}return[e,t,n].map(r).join("")},n.hsl2rgb=function(e,t,n){var r=e/60,i=(1-Math.abs(2*n-1))*t,o=i*(1-Math.abs(parseInt(r)%2-1)),a=n-i/2,s=0,l=0,h=0;return r>=0&&r<1?(s=i,l=o):r>=1&&r<2?(s=o,l=i):r>=2&&r<3?(l=i,h=o):r>=3&&r<4?(l=o,h=i):r>=4&&r<5?(s=o,h=i):r>=5&&r<6&&(s=i,h=o),s+=a,l+=a,h+=a,s=parseInt(255*s),l=parseInt(255*l),h=parseInt(255*h),[s,l,h]},n.prototype.set=function(e){this.raw=e;v
 ar t=(16711680&this.raw)>>16,n=(65280&this.raw)>>8,r=255&this.raw,i=.2126*t+.7152*n+.0722*r,o=-.09991*t-.33609*n+.436*r,a=.615*t-.55861*n-.05639*r;return this.rgb={r:t,g:n,b:r},this.yuv={y:i,u:o,v:a},this},n.prototype.lighten=function(e){var t=Math.min(1,Math.max(0,Math.abs(e)))*(e<0?-1:1),r=255*t|0,i=Math.min(255,Math.max(0,this.rgb.r+r)),o=Math.min(255,Math.max(0,this.rgb.g+r)),a=Math.min(255,Math.max(0,this.rgb.b+r)),s=n.rgb2hex(i,o,a);return new n(s)},n.prototype.toHex=function(e){return(e?"#":"")+this.raw.toString(16)},n.prototype.lighterThan=function(e){return e instanceof n||(e=new n(e)),this.yuv.y>e.yuv.y},n.prototype.blendAlpha=function(e){e instanceof n||(e=new n(e));var t=e,r=this,i=t.alpha*t.rgb.r+(1-t.alpha)*r.rgb.r,o=t.alpha*t.rgb.g+(1-t.alpha)*r.rgb.g,a=t.alpha*t.rgb.b+(1-t.alpha)*r.rgb.b;return new n(n.rgb2hex(i,o,a))},e.exports=n},function(e,t){e.exports={version:"2.9.4",svg_ns:"http://www.w3.org/2000/svg"}},function(e,t,n){function r(e,t){return c.element({tag:t,wi
 dth:e.width,height:e.height,fill:e.properties.fill})}function i(e){return h.cssProps({fill:e.fill,"font-weight":e.font.weight,"font-family":e.font.family+", monospace","font-size":e.font.size+e.font.units})}function o(e,t,n){var r=n/2;return["M",r,r,"H",e-r,"V",t-r,"H",r,"V",0,"M",0,r,"L",e,t-r,"M",0,t-r,"L",e,r].join(" ")}var a=n(13),s=n(8),l=n(11),h=n(7),u=l.svg_ns,c={element:function(e){var t=e.tag,n=e.content||"";return delete e.tag,delete e.content,[t,n,e]}};e.exports=function(e,t){var n=t.engineSettings,l=n.stylesheets,h=l.map(function(e){return'<?xml-stylesheet rel="stylesheet" href="'+e+'"?>'}).join("\n"),d="holder_"+Number(new Date).toString(16),f=e.root,p=f.children.holderTextGroup,g="#"+d+" text { "+i(p.properties)+" } ";p.y+=.8*p.textPositionData.boundingBox.height;var m=[];Object.keys(p.children).forEach(function(e){var t=p.children[e];Object.keys(t.children).forEach(function(e){var n=t.children[e],r=p.x+t.x+n.x,i=p.y+t.y+n.y,o=c.element({tag:"text",content:n.properties
 .text,x:r,y:i});m.push(o)})});var v=c.element({tag:"g",content:m}),y=null;if(f.children.holderBg.properties.outline){var w=f.children.holderBg.properties.outline;y=c.element({tag:"path",d:o(f.children.holderBg.width,f.children.holderBg.height,w.width),"stroke-width":w.width,stroke:w.fill,fill:"none"})}var b=r(f.children.holderBg,"rect"),x=[];x.push(b),w&&x.push(y),x.push(v);var S=c.element({tag:"g",id:d,content:x}),A=c.element({tag:"style",content:g,type:"text/css"}),C=c.element({tag:"defs",content:A}),E=c.element({tag:"svg",content:[C,S],width:f.properties.width,height:f.properties.height,xmlns:u,viewBox:[0,0,f.properties.width,f.properties.height].join(" "),preserveAspectRatio:"none"}),k=a(E);k=h+k[0];var T=s.svgStringToDataURI(k,"background"===t.mode);return T}},function(e,t,n){n(14);e.exports=function r(e,t,n){"use strict";function i(e){var t=e.match(/^[\w-]+/),r={tag:t?t[0]:"div",attr:{},children:[]},i=e.match(/#([\w-]+)/),o=e.match(/\$([\w-]+)/),a=e.match(/\.[\w-]+/g);return i
 &&(r.attr.id=i[1],n[i[1]]=r),o&&(n[o[1]]=r),a&&(r.attr["class"]=a.join(" ").replace(/\./g,"")),e.match(/&$/g)&&(f=!1),r}function o(e,t){if(null!==t&&t!==!1&&void 0!==t)return"string"!=typeof t&&"object"!=typeof t?String(t):t}function a(e){return e||0===e?String(e).replace(/&/g,"&").replace(/"/g,"""):""}function s(e){return String(e).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">")}var l,h,u,c,d=1,f=!0;if(n=n||{},"string"==typeof e[0])e[0]=i(e[0]);else{if(!Array.isArray(e[0]))throw new Error("First element of array must be a string, or an array and not "+JSON.stringify(e[0]));d=0}for(;d<e.length;d++){if(e[d]===!1||null===e[d]){e[0]=!1;break}if(void 0!==e[d]&&e[d]!==!0)if("string"==typeof e[d])f&&(e[d]=s(e[d])),e[0].children.push(e[d]);else if("number"==typeof e[d])e[0].children.push(e[d]);else if(Array.isArray(e[d])){if(Array.isArray(e[d][0])){if(e[d].reverse().forEach(function(t){e.splice(d+1,0,t)}),0!==d)continue
 ;d++}r(e[d],t,n),e[d][0]&&e[0].children.push(e[d][0])}else if("function"==typeof e[d])u=e[d];else{if("object"!=typeof e[d])throw new TypeError('"'+e[d]+'" is not allowed as a value.');for(h in e[d])e[d].hasOwnProperty(h)&&null!==e[d][h]&&e[d][h]!==!1&&("style"===h&&"object"==typeof e[d][h]?e[0].attr[h]=JSON.stringify(e[d][h],o).slice(2,-2).replace(/","/g,";").replace(/":"/g,":").replace(/\\"/g,"'"):e[0].attr[h]=e[d][h])}}if(e[0]!==!1){l="<"+e[0].tag;for(c in e[0].attr)e[0].attr.hasOwnProperty(c)&&(l+=" "+c+'="'+a(e[0].attr[c])+'"');l+=">",e[0].children.forEach(function(e){l+=e}),l+="</"+e[0].tag+">",e[0]=l}return n[0]=e[0],u&&u(e[0]),n}},function(e,t){"use strict";function n(e){var t=""+e,n=r.exec(t);if(!n)return t;var i,o="",a=0,s=0;for(a=n.index;a<t.length;a++){switch(t.charCodeAt(a)){case 34:i=""";break;case 38:i="&";break;case 39:i="'";break;case 60:i="<";break;case 62:i=">";break;default:continue}s!==a&&(o+=t.substring(s,a)),s=a+1,o+=i}return s!==a?o+t.substr
 ing(s,a):o}var r=/["'&<>]/;e.exports=n},function(e,t,n){var r=n(9),i=n(7);e.exports=function(){var e=r.newEl("canvas"),t=null;return function(n){null==t&&(t=e.getContext("2d"));var r=i.canvasRatio(),o=n.root;e.width=r*o.properties.width,e.height=r*o.properties.height,t.textBaseline="middle";var a=o.children.holderBg,s=r*a.width,l=r*a.height,h=2,u=h/2;t.fillStyle=a.properties.fill,t.fillRect(0,0,s,l),a.properties.outline&&(t.strokeStyle=a.properties.outline.fill,t.lineWidth=a.properties.outline.width,t.moveTo(u,u),t.lineTo(s-u,u),t.lineTo(s-u,l-u),t.lineTo(u,l-u),t.lineTo(u,u),t.moveTo(0,u),t.lineTo(s,l-u),t.moveTo(0,l-u),t.lineTo(s,u),t.stroke());var c=o.children.holderTextGroup;t.font=c.properties.font.weight+" "+r*c.properties.font.size+c.properties.font.units+" "+c.properties.font.family+", monospace",t.fillStyle=c.properties.fill;for(var d in c.children){var f=c.children[d];for(var p in f.children){var g=f.children[p],m=r*(c.x+f.x+g.x),v=r*(c.y+f.y+g.y+c.properties.leading/2);t.
 fillText(g.properties.text,m,v)}}return e.toDataURL("image/png")}}()}])}),function(e,t){t&&(Holder=e.Holder);
-}(this,"undefined"!=typeof Meteor&&"undefined"!=typeof Package);
\ No newline at end of file
diff --git a/assets/static/js/jquery-3.2.1.min.js b/assets/static/js/jquery-3.2.1.min.js
deleted file mode 100644
index 644d35e..0000000
--- a/assets/static/js/jquery-3.2.1.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */
-!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){retu
 rn r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=Array.isArray(d)))?(e?(e=!1,f=c&&Array.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},no
 op:function(){},isFunction:function(a){return"function"===r.type(a)},isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:funct
 ion(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"
 number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^
 "+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){retur
 n a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.set
 Attribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}f
 unction oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.append
 Child(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElement
 sByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttri
 bute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===
 b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>
 0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},
 relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typ
 eof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=+
 +n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b
 ){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:funct
 ion(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a
 ,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e);return!1}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))retur
 n!0}return!1}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},
 h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.leng
 th>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return
  1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=func
 tion(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),
 b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|
 All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode
 ")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=
 [],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}fu
 nction O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b
 ,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,N,e),g(f,c,O,e)):(f++,j.call(a,g(f,c,N,e),g(f,c,O,e),g(f,c,N,c.notifyWith))):(d!==N&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),
 f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!
 0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S),
-a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},U=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function V(){this.expando=r.expando+V.uid++}V.uid=1,V.prototype={cache:function(a){var b=a[this.expando];return b||(b={},U(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,
 b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){Array.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(L)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var W=new V,X=new V,Y=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function $(a){return"true"===a||"false"!==a&&("null"===a?null:a===+a+""?+a:Y.test(a)?JSON.parse(a):a)}function _(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Z,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c=$(c)}catch(e){}X.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return X.hasData(a)|
 |W.hasData(a)},data:function(a,b,c){return X.access(a,b,c)},removeData:function(a,b){X.remove(a,b)},_data:function(a,b,c){return W.access(a,b,c)},_removeData:function(a,b){W.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=X.get(f),1===f.nodeType&&!W.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),_(f,d,e[d])));W.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){X.set(this,a)}):T(this,function(b){var c;if(f&&void 0===b){if(c=X.get(f,a),void 0!==c)return c;if(c=_(f,a),void 0!==c)return c}else this.each(function(){X.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||
 "fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=W.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h
 (),e.promise(b)}});var aa=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ba=new RegExp("^(?:([+-])=|)("+aa+")([a-z%]*)$","i"),ca=["Top","Right","Bottom","Left"],da=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},ea=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function fa(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&ba.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var ga={};function ha(a){var b,c=a.ownerDocument,d=a.nodeName,e=ga[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"
 none"===e&&(e="block"),ga[d]=e,e)}function ia(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=W.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&da(d)&&(e[f]=ha(d))):"none"!==c&&(e[f]="none",W.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ia(this,!0)},hide:function(){return ia(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){da(this)?r(this).show():r(this).hide()})}});var ja=/^(?:checkbox|radio)$/i,ka=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,m
 a.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c<d;c++)W.set(a[c],"globalEval",!b||W.get(b[c],"globalEval"))}var pa=/<|&#?\w+;/;function qa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(pa.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ka.exec(f)||["",""])[1].toLowerCase(),i=ma[h]||ma._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||""
 )&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(
 function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:f
 unction(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDi
 spatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g,h=[],i=b.delegateCount,j=a.target;if(i&&j.nodeType&&!("click"===a.type&&a.button>=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c<i;c++)d=b[c],e=d.selector+" ",void 0===g[e]&&(g[e]=d.needsContext?r(e,this).index(j)>-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i<b.length&&h.push({elem:j,handlers:b.slice(i)}),h},addProp:function(a,b){Object
 .defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==xa()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===xa()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&B(this,"input"))return this.click(),!1},_default:function(a){return B(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Eve
 nt?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?va:wa,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:wa,isPropagationStopped:wa,isImmediatePropagationStopped:wa,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=va,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=va,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=va,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancel
 able:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&sa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&ta.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return ya(this,a,b,c,d)},one:function(a,b,c,d){return ya(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a
 .handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=wa),this.each(function(){r.event.remove(this,a,c,b)})}});var za=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/<script|<style|<link/i,Ba=/checked\s*(?:[^=]|=\s*.checked.)/i,Ca=/^true\/(.*)/,Da=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event
 .add(b,e,j[e][c])}X.hasData(a)&&(h=X.access(a),i=r.extend({},h),X.set(b,i))}}function Ia(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ja.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ja(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,na(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Ga),l=0;l<i;l++)j=h[l],la.test(j.type||"")&&!W.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Da,""),k))}return a}function Ka(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d
 .nodeType||r.cleanData(na(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&oa(na(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(za,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d<e;d++)Ia(f[d],g[d]);if(b)if(c)for(f=f||na(a),g=g||na(h),d=0,e=f.length;d<e;d++)Ha(f[d],g[d]);else Ha(a,h);return g=na(h,"script"),g.length>0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty()
 .each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0=
 ==a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(na(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ja(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(na(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var La=/^margin/,Ma=new RegExp("^("+aa+")(?!px)[a-z%]+$","i"),Na=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;d
 isplay:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",ra.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,ra.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Oa(a,b,c){var d,e,f,g,h=a.style;return c=c||Na(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&Ma.test(g)&&La.test(b)&&(d=h.width,e=h.minWidth,f
 =h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Pa(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Qa=/^(none|table(?!-c[ea]).+)/,Ra=/^--/,Sa={position:"absolute",visibility:"hidden",display:"block"},Ta={letterSpacing:"0",fontWeight:"400"},Ua=["Webkit","Moz","ms"],Va=d.createElement("div").style;function Wa(a){if(a in Va)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ua.length;while(c--)if(a=Ua[c]+b,a in Va)return a}function Xa(a){var b=r.cssProps[a];return b||(b=r.cssProps[a]=Wa(a)||a),b}function Ya(a,b,c){var d=ba.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Za(a,b,c,d,e){var f,g=0;for(f=c===(d?"border":"content")?4:"width"===b?1:0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+ca[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+ca[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+ca[f]+"Width",!0,e))):(g+=r.css(a,"padding"+ca[f],!0,e),"padding"!==c&&(g+
 =r.css(a,"border"+ca[f]+"Width",!0,e)));return g}function $a(a,b,c){var d,e=Na(a),f=Oa(a,b,e),g="border-box"===r.css(a,"boxSizing",!1,e);return Ma.test(f)?f:(d=g&&(o.boxSizingReliable()||f===a.style[b]),"auto"===f&&(f=a["offset"+b[0].toUpperCase()+b.slice(1)]),f=parseFloat(f)||0,f+Za(a,b,c||(g?"border":"content"),d,e)+"px")}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Oa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=Ra.test(b),j=a.style;return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:j[b]:(f=typeof c,"string"===f&&(e=ba.exec(c))&&e[1]&&(c=fa(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[
 h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(j[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i?j.setProperty(b,c):j[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b),i=Ra.test(b);return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Oa(a,b,d)),"normal"===e&&b in Ta&&(e=Ta[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Qa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?$a(a,b,d):ea(a,Sa,function(){return $a(a,b,d)})},set:function(a,c,d){var e,f=d&&Na(a),g=d&&Za(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=ba.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Ya(a,c,g)}}}),r.cssHooks.marginLeft=Pa(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Oa(a,"marginLeft"))||a.getBoundingClientRect().left-ea(a,{marginLeft:0},fu
 nction(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+ca[d]+b]=f[d]||f[d-2]||f[0];return e}},La.test(a)||(r.cssHooks[a+b].set=Ya)}),r.fn.extend({css:function(a,b){return T(this,function(a,b,c){var d,e,f={},g=0;if(Array.isArray(b)){for(d=Na(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.durat
 ion?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hid
 e)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f<g;f++)if(d=e[f].call(c,b,a))return d}function ib(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,p=a.nodeType&&da(a),q=W.get(a,"fxshow");c.queue||(g=r._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,r.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],cb.test(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}n[d]=q&&q[d]
 ||r.style(a,d)}if(i=!r.isEmptyObject(b),i||!r.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=q&&q.display,null==j&&(j=W.get(a,"display")),k=r.css(a,"display"),"none"===k&&(j?k=j:(ia([a],!0),j=a.style.display||j,k=r.css(a,"display"),ia([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===r.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(q?"hidden"in q&&(p=q.hidden):q=W.access(a,"fxshow",{display:j}),f&&(q.hidden=!p),p&&ia([a],!0),m.done(function(){p||ia([a]),W.remove(a,"fxshow");for(d in n)r.style(a,d,n[d])})),i=hb(p?q[d]:0,d,m),d in q||(q[d]=i.start,p&&(i.end=i.start,i.start=0))}}function jb(a,b){var c,d,e,f,g;for(c in a)if(d=r.camelCase(c),e=b[d],f=a[c],Array.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,dele
 te a[c]),g=r.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kb(a,b,c){var d,e,f=0,g=kb.prefilters.length,h=r.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=ab||fb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;g<i;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),f<1&&i?c:(i||h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:r.extend({},b),opts:r.extend(!0,{specialEasing:{},easing:r.easing._default},c),originalProperties:b,originalOptions:c,startTime:ab||fb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=r.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;c<d;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jb(k,j.op
 ts.specialEasing);f<g;f++)if(d=kb.prefilters[f].call(j,a,k,j.opts))return r.isFunction(d.stop)&&(r._queueHooks(j.elem,j.opts.queue).stop=r.proxy(d.stop,d)),d;return r.map(k,hb,j),r.isFunction(j.opts.start)&&j.opts.start.call(a,j),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always),r.fx.timer(r.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j}r.Animation=r.extend(kb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return fa(c.elem,a,ba.exec(b),c),c}]},tweener:function(a,b){r.isFunction(a)?(b=a,a=["*"]):a=a.match(L);for(var c,d=0,e=a.length;d<e;d++)c=a[d],kb.tweeners[c]=kb.tweeners[c]||[],kb.tweeners[c].unshift(b)},prefilters:[ib],prefilter:function(a,b){b?kb.prefilters.unshift(a):kb.prefilters.push(a)}}),r.speed=function(a,b,c){var d=a&&"object"==typeof a?r.extend({},a):{complete:c||!c&&b||r.isFunction(a)&&a,duration:a,easing:c&&b||b&&!r.isFunction(b)&&b};return r.fx.off?d.duration=0:"number"!=typeof d.duration&&(d.duration in
  r.fx.speeds?d.duration=r.fx.speeds[d.duration]:d.duration=r.fx.speeds._default),null!=d.queue&&d.queue!==!0||(d.queue="fx"),d.old=d.complete,d.complete=function(){r.isFunction(d.old)&&d.old.call(this),d.queue&&r.dequeue(this,d.queue)},d},r.fn.extend({fadeTo:function(a,b,c,d){return this.filter(da).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=r.isEmptyObject(a),f=r.speed(b,c,d),g=function(){var b=kb(this,r.extend({},a),f);(e||W.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=r.timers,g=W.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&db.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));
 !b&&c||r.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=W.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=r.timers,g=d?d.length:0;for(c.finish=!0,r.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;b<g;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),r.each(["toggle","show","hide"],function(a,b){var c=r.fn[b];r.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gb(b,!0),a,d,e)}}),r.each({slideDown:gb("show"),slideUp:gb("hide"),slideToggle:gb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){r.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),r.timers=[],r.fx.tick=function(){var a,b=0,c=r.timers;for(ab=r.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||r.fx.stop(),ab=void 0},r.fx.timer=function(a){r.timers.push
 (a),r.fx.start()},r.fx.interval=13,r.fx.start=function(){bb||(bb=!0,eb())},r.fx.stop=function(){bb=null},r.fx.speeds={slow:600,fast:200,_default:400},r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var lb,mb=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return T(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null=
 ==c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),
-null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&
 &null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&
 &" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&
 &this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="sel
 ect-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d<i;d++)if(c=e[d],(c.selected||d===f)&&!c.disabled&&(!c.parentNode.disabled||!B(c.parentNode,"optgroup"))){if(b=r(c).val(),g)return b;h.push(b)}return h},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=
 b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c)
 {var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(
 d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:f
 unction(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nb(a,b,c,d){var e
 ={},f=a===Jb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if
 ("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSetting
 s,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType
 ||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Co
 ntent-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)
 ):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}
 ).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.m
 imeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},conte
 nts:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Tb=[],Ub=/(=)\?(?=&|$)|\?\?/;r.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Tb.pop()||r.expando+"_"+ub++;return this[a]=!0,a}}),r.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Ub.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ub.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Ub
 ,"$1"+e):b.jsonp!==!1&&(b.url+=(vb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||r.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Tb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=C.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=qa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=pb(a.slice(h)),a=a.sl
 ice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&r.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?r("<div>").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length},r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using
 "in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),b=f.ownerDocument,c=b.documentElement,e=b.defaultView,{top:d.top+e.pageYOffset-c.clientTop,left:d.left+e.pageXOffset-c.clientLeft}):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),B(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||ra})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function
 (a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return T(this,function(a,d,e){var f;return r.isWindow(a)?f=a:9===a.nodeType&&(f=a.defaultView),void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Pa(o.pixelPosition,function(a,c){if(c)return c=Oa(a,b),Ma.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return T(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return thi
 s.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.holdReady=function(a){a?r.readyWait++:r.ready(!0)},r.isArray=Array.isArray,r.parseJSON=JSON.parse,r.nodeName=B,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var Vb=a.jQuery,Wb=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Wb),b&&a.jQuery===r&&(a.jQuery=Vb),r},b||(a.jQuery=a.$=r),r});
diff --git a/assets/static/js/jquery-slim.min.js b/assets/static/js/jquery-slim.min.js
deleted file mode 100755
index 105d00e..0000000
--- a/assets/static/js/jquery-slim.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! jQuery v3.2.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector | (c) JS Foundation and other contributors | jquery.org/license */
-!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){r
 eturn f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=Array.isArray(d)))?(e?(e=!1,f=c&&Array.isArray(c)
 ?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)
 break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp 
 Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp
 ("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0
 -\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClas
 sName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}funct
 ion ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventL
 istener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsB
 yName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySe
 lectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||
 !(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),
 c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textCont
 ent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function
 (){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="
 only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));retu
 rn d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b
 &&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:
 !0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e);return!1}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d]
 )if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}return!1}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g
 [j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.
 push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)r
 eturn G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXM
 LDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},
 r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(t
 his[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.
 prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),
 this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith
 :function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(thi
 s,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,N,e),g(f,c,O,e)):(f++,j.call(a,g(f,c,N,e),g(f,c,O,e),g(f,c,N,c.notifyWith))):(d!==N&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).p
 romise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};v
 ar R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a);
-}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S),a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},U=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function V(){this.expando=r.expando+V.uid++}V.uid=1,V.prototype={cache:function(a){var b=a[this.expando];return b||(b={},U(a)&&(a.nodeType?
 a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){Array.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(L)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var W=new V,X=new V,Y=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function $(a){return"true"===a||"false"!==a&&("null"===a?null:a===+a+""?+a:Y.test(a)?JSON.parse(a):a)}function _(a
 ,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Z,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c=$(c)}catch(e){}X.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return X.hasData(a)||W.hasData(a)},data:function(a,b,c){return X.access(a,b,c)},removeData:function(a,b){X.remove(a,b)},_data:function(a,b,c){return W.access(a,b,c)},_removeData:function(a,b){W.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=X.get(f),1===f.nodeType&&!W.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),_(f,d,e[d])));W.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){X.set(this,a)}):T(this,function(b){var c;if(f&&void 0===b){if(c=X.get(f,a),void 0!==c)return c;if(c=_(f,a),void 0!==c)return c}else this.each(function(){X.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a)
 {return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])
 },promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=W.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var aa=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ba=new RegExp("^(?:([+-])=|)("+aa+")([a-z%]*)$","i"),ca=["Top","Right","Bottom","Left"],da=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},ea=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function fa(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&ba.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=
 c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var ga={};function ha(a){var b,c=a.ownerDocument,d=a.nodeName,e=ga[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),ga[d]=e,e)}function ia(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=W.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&da(d)&&(e[f]=ha(d))):"none"!==c&&(e[f]="none",W.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ia(this,!0)},hide:function(){return ia(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){da(this)?r(this).show():r(this).hide()})}});var ja=/^(?:checkbox|radio)$/i,ka=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col
 :[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c<d;c++)W.set(a[c],"globalEval",!b||W.get(b[c],"globalEval"))}var pa=/<|&#?\w+;/;function qa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(pa.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ka.exec(f)||["",""])[1].toLowerCase(),i=ma[h]||ma._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textCon
 tent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&nul
 l==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.dele
 gateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:
 function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g,h=[],i=b.delegateCount,j=a.target;if(i&&j.nodeType&&!("click"===a.type&&a.button>=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c<i;c++)d=b[c],e=d.selector+" ",voi
 d 0===g[e]&&(g[e]=d.needsContext?r(e,this).index(j)>-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i<b.length&&h.push({elem:j,handlers:b.slice(i)}),h},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==xa()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===xa()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&B(this,"input"))return this.click(),!1},_default:function(a){return B(a.target,"a")}},beforeunload:{
 postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?va:wa,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:wa,isPropagationStopped:wa,isImmediatePropagationStopped:wa,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=va,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=va,a&&!this.isSimulat
 ed&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=va,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&sa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&ta.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,
 e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return ya(this,a,b,c,d)},one:function(a,b,c,d){return ya(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=wa),this.each(function(){r.event.remove(this,a,c,b)})}});var za=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/<script|<style|<link/i,Ba=/checked\s*(?:[^=]|=\s*.checked.)/i,Ca=/^true\/(.*)/,Da=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);retu
 rn b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}X.hasData(a)&&(h=X.access(a),i=r.extend({},h),X.set(b,i))}}function Ia(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ja.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ja(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,na(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Ga),l=0;l<i;l+
 +)j=h[l],la.test(j.type||"")&&!W.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Da,""),k))}return a}function Ka(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(na(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&oa(na(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(za,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d<e;d++)Ia(f[d],g[d]);if(b)if(c)for(f=f||na(a),g=g||na(h),d=0,e=f.length;d<e;d++)Ha(f[d],g[d]);else Ha(a,h);return g=na(h,"script"),g.length>0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W
 .expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanDa
 ta(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(na(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ja(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(na(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var La=/^margi
 n/,Ma=new RegExp("^("+aa+")(?!px)[a-z%]+$","i"),Na=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",ra.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,ra.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return
  b(),g}}))}();function Oa(a,b,c){var d,e,f,g,h=a.style;return c=c||Na(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&Ma.test(g)&&La.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Pa(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Qa=/^(none|table(?!-c[ea]).+)/,Ra=/^--/,Sa={position:"absolute",visibility:"hidden",display:"block"},Ta={letterSpacing:"0",fontWeight:"400"},Ua=["Webkit","Moz","ms"],Va=d.createElement("div").style;function Wa(a){if(a in Va)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ua.length;while(c--)if(a=Ua[c]+b,a in Va)return a}function Xa(a){var b=r.cssProps[a];return b||(b=r.cssProps[a]=Wa(a)||a),b}function Ya(a,b,c){var d=ba.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Za(a,b,c,d,e){var f,g=0;for(f=c===(d?"border":"conte
 nt")?4:"width"===b?1:0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+ca[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+ca[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+ca[f]+"Width",!0,e))):(g+=r.css(a,"padding"+ca[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+ca[f]+"Width",!0,e)));return g}function $a(a,b,c){var d,e=Na(a),f=Oa(a,b,e),g="border-box"===r.css(a,"boxSizing",!1,e);return Ma.test(f)?f:(d=g&&(o.boxSizingReliable()||f===a.style[b]),"auto"===f&&(f=a["offset"+b[0].toUpperCase()+b.slice(1)]),f=parseFloat(f)||0,f+Za(a,b,c||(g?"border":"content"),d,e)+"px")}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Oa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=Ra.test(b),j=a.style;retur
 n i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:j[b]:(f=typeof c,"string"===f&&(e=ba.exec(c))&&e[1]&&(c=fa(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(j[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i?j.setProperty(b,c):j[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b),i=Ra.test(b);return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Oa(a,b,d)),"normal"===e&&b in Ta&&(e=Ta[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Qa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?$a(a,b,d):ea(a,Sa,function(){return $a(a,b,d)})},set:function(a,c,d){var e,f=d&&Na(a),g=d&&Za(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(
 e=ba.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Ya(a,c,g)}}}),r.cssHooks.marginLeft=Pa(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Oa(a,"marginLeft"))||a.getBoundingClientRect().left-ea(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+ca[d]+b]=f[d]||f[d-2]||f[0];return e}},La.test(a)||(r.cssHooks[a+b].set=Ya)}),r.fn.extend({css:function(a,b){return T(this,function(a,b,c){var d,e,f={},g=0;if(Array.isArray(b)){for(d=Na(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}}),r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select
 "),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var _a,ab=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return T(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?_a:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&
 &1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),_a={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=ab[b]||r.find.attr;ab[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=ab[g],ab[g]=e,e=null!=c(a,b,d)?g:null,ab[g]=f),e}});var bb=/^(?:input|select|textarea|button)$/i,cb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"classNam
 e"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function db(a){var b=a.match(L)||[];return b.join(" ")}function eb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,eb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=eb(c),d=1===c.nodeType&&" "+db(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=db(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(th
 is).removeClass(a.call(this,b,eb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=eb(c),d=1===c.nodeType&&" "+db(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=db(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,eb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=eb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+db(eb(c))+" ").indexOf(b)>-1)return!0;return!1}});var fb=/\
 r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(fb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:db(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d<i;d++)if(c=e[d],(c.selected||d===f)&&!c.disabled&&(!c.parentNode.disabled||!B(c.parentNode,"optgroup"))){if(b=r(c).val(),g)return b;h.push(b)}return h},set:
 function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var gb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!gb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=nu
 ll==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,gb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c
 )return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var hb=/\[\]$/,ib=/\r?\n/g,jb=/^(?:submit|button|image|reset|file)$/i,kb=/^(?:input|select|textarea|keygen)/i;function lb(a,b,c,d){var e;if(Array.is
 Array(b))r.each(b,function(b,e){c||hb.test(a)?d(a,e):lb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d);
-});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)lb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)lb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&kb.test(this.nodeName)&&!jb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ib,"\r\n")}}):{name:b.name,value:c.replace(ib,"\r\n")}}).get()}}),r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0
 ])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)retur
 n[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=C.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=qa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingCl
 ientRect(),b=f.ownerDocument,c=b.documentElement,e=b.defaultView,{top:d.top+e.pageYOffset-c.clientTop,left:d.left+e.pageXOffset-c.clientLeft}):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),B(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||ra})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return T(this,function(a,d,e){var f;return r.isWindow(a)?f=a:9===a.nodeType&&(f=a.defaultView),void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,argum
 ents.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Pa(o.pixelPosition,function(a,c){if(c)return c=Oa(a,b),Ma.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return T(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.holdReady=function(a){a?
 r.readyWait++:r.ready(!0)},r.isArray=Array.isArray,r.parseJSON=JSON.parse,r.nodeName=B,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var mb=a.jQuery,nb=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=nb),b&&a.jQuery===r&&(a.jQuery=mb),r},b||(a.jQuery=a.$=r),r});
diff --git a/assets/static/js/popper.min.js b/assets/static/js/popper.min.js
deleted file mode 100755
index c1d69d9..0000000
--- a/assets/static/js/popper.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*
- Copyright (C) Federico Zivolo 2017
- Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT).
- */(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=window.getComputedStyle(e,null);return t?o[t]:o}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e||-1!==['HTML','BODY','#document'].indexOf(e.nodeName))return window.document.body;var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll)/.test(r+s+p)?e:n(o(e))}function r(e){var o=e&&e.offsetParent,i=o&&o.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TD','TABLE'].indexOf(o.nodeName)&&'static'===t(o,'position')?r(o):o:window.document.documentElement}function p(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||r(e.firstElementChild)===e)}function s(e){return null===e.parentNode?e:s(e.parentNode)}function d(e,t){if(!e||!e.nodeType||!t||!t.node
 Type)return window.document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,i=o?e:t,n=o?t:e,a=document.createRange();a.setStart(i,0),a.setEnd(n,0);var l=a.commonAncestorContainer;if(e!==l&&t!==l||i.contains(n))return p(l)?l:r(l);var f=s(e);return f.host?d(f.host,t):d(e,s(t).host)}function a(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:'top',o='top'===t?'scrollTop':'scrollLeft',i=e.nodeName;if('BODY'===i||'HTML'===i){var n=window.document.documentElement,r=window.document.scrollingElement||n;return r[o]}return e[o]}function l(e,t){var o=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=a(t,'top'),n=a(t,'left'),r=o?-1:1;return e.top+=i*r,e.bottom+=i*r,e.left+=n*r,e.right+=n*r,e}function f(e,t){var o='x'===t?'Left':'Top',i='Left'==o?'Right':'Bottom';return+e['border'+o+'Width'].split('px')[0]+ +e['border'+i+'Width'].split('px')[0]}function m(e,t,o,i){return X(t['offset'+e],t['scroll'+e],o['client'+e],o['offset'+e],o['scroll
 '+e],ne()?o['offset'+e]+i['margin'+('Height'===e?'Top':'Left')]+i['margin'+('Height'===e?'Bottom':'Right')]:0)}function c(){var e=window.document.body,t=window.document.documentElement,o=ne()&&window.getComputedStyle(t);return{height:m('Height',e,t,o),width:m('Width',e,t,o)}}function h(e){return de({},e,{right:e.left+e.width,bottom:e.top+e.height})}function g(e){var o={};if(ne())try{o=e.getBoundingClientRect();var i=a(e,'top'),n=a(e,'left');o.top+=i,o.left+=n,o.bottom+=i,o.right+=n}catch(e){}else o=e.getBoundingClientRect();var r={left:o.left,top:o.top,width:o.right-o.left,height:o.bottom-o.top},p='HTML'===e.nodeName?c():{},s=p.width||e.clientWidth||r.right-r.left,d=p.height||e.clientHeight||r.bottom-r.top,l=e.offsetWidth-s,m=e.offsetHeight-d;if(l||m){var g=t(e);l-=f(g,'x'),m-=f(g,'y'),r.width-=l,r.height-=m}return h(r)}function u(e,o){var i=ne(),r='HTML'===o.nodeName,p=g(e),s=g(o),d=n(e),a=t(o),f=+a.borderTopWidth.split('px')[0],m=+a.borderLeftWidth.split('px')[0],c=h({top:p.top-s.
 top-f,left:p.left-s.left-m,width:p.width,height:p.height});if(c.marginTop=0,c.marginLeft=0,!i&&r){var u=+a.marginTop.split('px')[0],b=+a.marginLeft.split('px')[0];c.top-=f-u,c.bottom-=f-u,c.left-=m-b,c.right-=m-b,c.marginTop=u,c.marginLeft=b}return(i?o.contains(d):o===d&&'BODY'!==d.nodeName)&&(c=l(c,o)),c}function b(e){var t=window.document.documentElement,o=u(e,t),i=X(t.clientWidth,window.innerWidth||0),n=X(t.clientHeight,window.innerHeight||0),r=a(t),p=a(t,'left'),s={top:r-o.top+o.marginTop,left:p-o.left+o.marginLeft,width:i,height:n};return h(s)}function y(e){var i=e.nodeName;return'BODY'===i||'HTML'===i?!1:'fixed'===t(e,'position')||y(o(e))}function w(e,t,i,r){var p={top:0,left:0},s=d(e,t);if('viewport'===r)p=b(s);else{var a;'scrollParent'===r?(a=n(o(e)),'BODY'===a.nodeName&&(a=window.document.documentElement)):'window'===r?a=window.document.documentElement:a=r;var l=u(a,s);if('HTML'===a.nodeName&&!y(s)){var f=c(),m=f.height,h=f.width;p.top+=l.top-l.marginTop,p.bottom=m+l.top,p.
 left+=l.left-l.marginLeft,p.right=h+l.left}else p=l}return p.left+=i,p.top+=i,p.right-=i,p.bottom-=i,p}function E(e){var t=e.width,o=e.height;return t*o}function v(e,t,o,i,n){var r=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf('auto'))return e;var p=w(o,i,r,n),s={top:{width:p.width,height:t.top-p.top},right:{width:p.right-t.right,height:p.height},bottom:{width:p.width,height:p.bottom-t.bottom},left:{width:t.left-p.left,height:p.height}},d=Object.keys(s).map(function(e){return de({key:e},s[e],{area:E(s[e])})}).sort(function(e,t){return t.area-e.area}),a=d.filter(function(e){var t=e.width,i=e.height;return t>=o.clientWidth&&i>=o.clientHeight}),l=0<a.length?a[0].key:d[0].key,f=e.split('-')[1];return l+(f?'-'+f:'')}function x(e,t,o){var i=d(t,o);return u(o,i)}function O(e){var t=window.getComputedStyle(e),o=parseFloat(t.marginTop)+parseFloat(t.marginBottom),i=parseFloat(t.marginLeft)+parseFloat(t.marginRight),n={width:e.offsetWidth+i,height:e.offsetHeight+o}
 ;return n}function L(e){var t={left:'right',right:'left',bottom:'top',top:'bottom'};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function S(e,t,o){o=o.split('-')[0];var i=O(e),n={width:i.width,height:i.height},r=-1!==['right','left'].indexOf(o),p=r?'top':'left',s=r?'left':'top',d=r?'height':'width',a=r?'width':'height';return n[p]=t[p]+t[d]/2-i[d]/2,n[s]=o===s?t[s]-i[a]:t[L(s)],n}function T(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function C(e,t,o){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===o});var i=T(e,function(e){return e[t]===o});return e.indexOf(i)}function N(t,o,i){var n=void 0===i?t:t.slice(0,C(t,'name',i));return n.forEach(function(t){t.function&&console.warn('`modifier.function` is deprecated, use `modifier.fn`!');var i=t.function||t.fn;t.enabled&&e(i)&&(o.offsets.popper=h(o.offsets.popper),o.offsets.reference=h(o.offsets.reference),o=i(o,t))}),o}function k(){if(!this.state.isDestroyed){var e={instance:t
 his,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=x(this.state,this.popper,this.reference),e.placement=v(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.offsets.popper=S(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position='absolute',e=N(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function W(e,t){return e.some(function(e){var o=e.name,i=e.enabled;return i&&o===t})}function B(e){for(var t=[!1,'ms','Webkit','Moz','O'],o=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<t.length-1;n++){var i=t[n],r=i?''+i+o:e;if('undefined'!=typeof window.document.body.style[r])return r}return null}function P(){return this.state.isDestroyed=!0,W(this.modifiers,'applyStyle')&&(this.popper.removeAttribute('x-placement'),this.popper.style.left='',this.
 popper.style.position='',this.popper.style.top='',this.popper.style[B('transform')]=''),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function D(e,t,o,i){var r='BODY'===e.nodeName,p=r?window:e;p.addEventListener(t,o,{passive:!0}),r||D(n(p.parentNode),t,o,i),i.push(p)}function H(e,t,o,i){o.updateBound=i,window.addEventListener('resize',o.updateBound,{passive:!0});var r=n(e);return D(r,'scroll',o.updateBound,o.scrollParents),o.scrollElement=r,o.eventsEnabled=!0,o}function A(){this.state.eventsEnabled||(this.state=H(this.reference,this.options,this.state,this.scheduleUpdate))}function M(e,t){return window.removeEventListener('resize',t.updateBound),t.scrollParents.forEach(function(e){e.removeEventListener('scroll',t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t}function I(){this.state.eventsEnabled&&(window.cancelAnimationFrame(this.scheduleUpdate),this.state=M(this.refere
 nce,this.state))}function R(e){return''!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function U(e,t){Object.keys(t).forEach(function(o){var i='';-1!==['width','height','top','right','bottom','left'].indexOf(o)&&R(t[o])&&(i='px'),e.style[o]=t[o]+i})}function Y(e,t){Object.keys(t).forEach(function(o){var i=t[o];!1===i?e.removeAttribute(o):e.setAttribute(o,t[o])})}function F(e,t,o){var i=T(e,function(e){var o=e.name;return o===t}),n=!!i&&e.some(function(e){return e.name===o&&e.enabled&&e.order<i.order});if(!n){var r='`'+t+'`';console.warn('`'+o+'`'+' modifier is required by '+r+' modifier in order to work, be sure to include it before '+r+'!')}return n}function j(e){return'end'===e?'start':'start'===e?'end':e}function K(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],o=le.indexOf(e),i=le.slice(o+1).concat(le.slice(0,o));return t?i.reverse():i}function q(e,t,o,i){var n=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+n[1],p=n[2];if(!r)return e;if(0===p.indexOf('%')){var s;switch(p){c
 ase'%p':s=o;break;case'%':case'%r':default:s=i;}var d=h(s);return d[t]/100*r}if('vh'===p||'vw'===p){var a;return a='vh'===p?X(document.documentElement.clientHeight,window.innerHeight||0):X(document.documentElement.clientWidth,window.innerWidth||0),a/100*r}return r}function G(e,t,o,i){var n=[0,0],r=-1!==['right','left'].indexOf(i),p=e.split(/(\+|\-)/).map(function(e){return e.trim()}),s=p.indexOf(T(p,function(e){return-1!==e.search(/,|\s/)}));p[s]&&-1===p[s].indexOf(',')&&console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');var d=/\s*,\s*|\s+/,a=-1===s?[p]:[p.slice(0,s).concat([p[s].split(d)[0]]),[p[s].split(d)[1]].concat(p.slice(s+1))];return a=a.map(function(e,i){var n=(1===i?!r:r)?'height':'width',p=!1;return e.reduce(function(e,t){return''===e[e.length-1]&&-1!==['+','-'].indexOf(t)?(e[e.length-1]=t,p=!0,e):p?(e[e.length-1]+=t,p=!1,e):e.concat(t)},[]).map(function(e){return q(e,n,t,o)})}),a.forEach(function(e,t){e.forEach(function(o,i){R(o)&
 &(n[t]+=o*('-'===e[i-1]?-1:1))})}),n}function z(e,t){var o,i=t.offset,n=e.placement,r=e.offsets,p=r.popper,s=r.reference,d=n.split('-')[0];return o=R(+i)?[+i,0]:G(i,p,s,d),'left'===d?(p.top+=o[0],p.left-=o[1]):'right'===d?(p.top+=o[0],p.left+=o[1]):'top'===d?(p.left+=o[0],p.top-=o[1]):'bottom'===d&&(p.left+=o[0],p.top+=o[1]),e.popper=p,e}for(var V=Math.min,_=Math.floor,X=Math.max,Q=['native code','[object MutationObserverConstructor]'],J=function(e){return Q.some(function(t){return-1<(e||'').toString().indexOf(t)})},Z='undefined'!=typeof window,$=['Edge','Trident','Firefox'],ee=0,te=0;te<$.length;te+=1)if(Z&&0<=navigator.userAgent.indexOf($[te])){ee=1;break}var i,oe=Z&&J(window.MutationObserver),ie=oe?function(e){var t=!1,o=0,i=document.createElement('span'),n=new MutationObserver(function(){e(),t=!1});return n.observe(i,{attributes:!0}),function(){t||(t=!0,i.setAttribute('x-index',o),++o)}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},ee))}},ne=fu
 nction(){return void 0==i&&(i=-1!==navigator.appVersion.indexOf('MSIE 10')),i},re=function(e,t){if(!(e instanceof t))throw new TypeError('Cannot call a class as a function')},pe=function(){function e(e,t){for(var o,n=0;n<t.length;n++)o=t[n],o.enumerable=o.enumerable||!1,o.configurable=!0,'value'in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}return function(t,o,i){return o&&e(t.prototype,o),i&&e(t,i),t}}(),se=function(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e},de=Object.assign||function(e){for(var t,o=1;o<arguments.length;o++)for(var i in t=arguments[o],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},ae=['auto-start','auto','auto-end','top-start','top','top-end','right-start','right','right-end','bottom-end','bottom','bottom-start','left-end','left','left-start'],le=ae.slice(3),fe={FLIP:'flip',CLOCKWISE:'clockwise',COUNTERCLOCKWISE:'counterclockwise'},me=function(){function t(o,i){var n=this
 ,r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};re(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=ie(this.update.bind(this)),this.options=de({},t.Defaults,r),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=o.jquery?o[0]:o,this.popper=i.jquery?i[0]:i,this.options.modifiers={},Object.keys(de({},t.Defaults.modifiers,r.modifiers)).forEach(function(e){n.options.modifiers[e]=de({},t.Defaults.modifiers[e]||{},r.modifiers?r.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return de({name:e},n.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(t){t.enabled&&e(t.onLoad)&&t.onLoad(n.reference,n.popper,n.options,t,n.state)}),this.update();var p=this.options.eventsEnabled;p&&this.enableEventListeners(),this.state.eventsEnabled=p}return pe(t,[{key:'update',value:function(){return k.call(this)}},{key:'destroy',value:function(){retur
 n P.call(this)}},{key:'enableEventListeners',value:function(){return A.call(this)}},{key:'disableEventListeners',value:function(){return I.call(this)}}]),t}();return me.Utils=('undefined'==typeof window?global:window).PopperUtils,me.placements=ae,me.Defaults={placement:'bottom',eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,o=t.split('-')[0],i=t.split('-')[1];if(i){var n=e.offsets,r=n.reference,p=n.popper,s=-1!==['bottom','top'].indexOf(o),d=s?'left':'top',a=s?'width':'height',l={start:se({},d,r[d]),end:se({},d,r[d]+r[a]-p[a])};e.offsets.popper=de({},p,l[i])}return e}},offset:{order:200,enabled:!0,fn:z,offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var o=t.boundariesElement||r(e.instance.popper);e.instance.reference===o&&(o=r(o));var i=w(e.instance.popper,e.instance.reference,t.padding,o);t.boundaries=i;var n=t.priority,p=e.offsets.popper,s={primary:function(e){
 var o=p[e];return p[e]<i[e]&&!t.escapeWithReference&&(o=X(p[e],i[e])),se({},e,o)},secondary:function(e){var o='right'===e?'left':'top',n=p[o];return p[e]>i[e]&&!t.escapeWithReference&&(n=V(p[o],i[e]-('right'===e?p.width:p.height))),se({},o,n)}};return n.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';p=de({},p,s[t](e))}),e.offsets.popper=p,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,i=t.reference,n=e.placement.split('-')[0],r=_,p=-1!==['top','bottom'].indexOf(n),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]<r(i[d])&&(e.offsets.popper[d]=r(i[d])-o[a]),o[d]>r(i[s])&&(e.offsets.popper[d]=r(i[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){if(!F(e.instance.modifiers,'arrow','keepTogether'))return e;var i=o.element;if('string'==typeof i){if(i=e.instance.popper.querySelector(i),!i)return e;}else if(!e.instanc
 e.popper.contains(i))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var n=e.placement.split('-')[0],r=e.offsets,p=r.popper,s=r.reference,d=-1!==['left','right'].indexOf(n),a=d?'height':'width',l=d?'Top':'Left',f=l.toLowerCase(),m=d?'left':'top',c=d?'bottom':'right',g=O(i)[a];s[c]-g<p[f]&&(e.offsets.popper[f]-=p[f]-(s[c]-g)),s[f]+g>p[c]&&(e.offsets.popper[f]+=s[f]+g-p[c]);var u=s[f]+s[a]/2-g/2,b=t(e.instance.popper,'margin'+l).replace('px',''),y=u-h(e.offsets.popper)[f]-b;return y=X(V(p[a]-g,y),0),e.arrowElement=i,e.offsets.arrow={},e.offsets.arrow[f]=Math.round(y),e.offsets.arrow[m]='',e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=w(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement),i=e.placement.split('-')[0],n=L(i),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case fe.FLIP:p=[i,n];break
 ;case fe.CLOCKWISE:p=K(i);break;case fe.COUNTERCLOCKWISE:p=K(i,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(i!==s||p.length===d+1)return e;i=e.placement.split('-')[0],n=L(i);var a=e.offsets.popper,l=e.offsets.reference,f=_,m='left'===i&&f(a.right)>f(l.left)||'right'===i&&f(a.left)<f(l.right)||'top'===i&&f(a.bottom)>f(l.top)||'bottom'===i&&f(a.top)<f(l.bottom),c=f(a.left)<f(o.left),h=f(a.right)>f(o.right),g=f(a.top)<f(o.top),u=f(a.bottom)>f(o.bottom),b='left'===i&&c||'right'===i&&h||'top'===i&&g||'bottom'===i&&u,y=-1!==['top','bottom'].indexOf(i),w=!!t.flipVariations&&(y&&'start'===r&&c||y&&'end'===r&&h||!y&&'start'===r&&g||!y&&'end'===r&&u);(m||b||w)&&(e.flipped=!0,(m||b)&&(i=p[d+1]),w&&(r=j(r)),e.placement=i+(r?'-'+r:''),e.offsets.popper=de({},e.offsets.popper,S(e.instance.popper,e.offsets.reference,e.placement)),e=N(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:function(e){var t=e.pl
 acement,o=t.split('-')[0],i=e.offsets,n=i.popper,r=i.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return n[p?'left':'top']=r[o]-(s?n[p?'width':'height']:0),e.placement=L(t),e.offsets.popper=h(n),e}},hide:{order:800,enabled:!0,fn:function(e){if(!F(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=T(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottom<o.top||t.left>o.right||t.top>o.bottom||t.right<o.left){if(!0===e.hide)return e;e.hide=!0,e.attributes['x-out-of-boundaries']=''}else{if(!1===e.hide)return e;e.hide=!1,e.attributes['x-out-of-boundaries']=!1}return e}},computeStyle:{order:850,enabled:!0,fn:function(e,t){var o=t.x,i=t.y,n=e.offsets.popper,p=T(e.instance.modifiers,function(e){return'applyStyle'===e.name}).gpuAcceleration;void 0!==p&&console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!')
 ;var s,d,a=void 0===p?t.gpuAcceleration:p,l=r(e.instance.popper),f=g(l),m={position:n.position},c={left:_(n.left),top:_(n.top),bottom:_(n.bottom),right:_(n.right)},h='bottom'===o?'top':'bottom',u='right'===i?'left':'right',b=B('transform');if(d='bottom'==h?-f.height+c.bottom:c.top,s='right'==u?-f.width+c.right:c.left,a&&b)m[b]='translate3d('+s+'px, '+d+'px, 0)',m[h]=0,m[u]=0,m.willChange='transform';else{var y='bottom'==h?-1:1,w='right'==u?-1:1;m[h]=d*y,m[u]=s*w,m.willChange=h+', '+u}var E={"x-placement":e.placement};return e.attributes=de({},E,e.attributes),e.styles=de({},m,e.styles),e.arrowStyles=de({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return U(e.instance.popper,e.styles),Y(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&U(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,o,i,n){var r=x(n,t,e),p=v(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modi
 fiers.flip.padding);return t.setAttribute('x-placement',p),U(t,{position:'absolute'}),o},gpuAcceleration:void 0}}},me});
diff --git a/assets/static/js/scrollspy.min.js b/assets/static/js/scrollspy.min.js
deleted file mode 100644
index dbc4fca..0000000
--- a/assets/static/js/scrollspy.min.js
+++ /dev/null
@@ -1 +0,0 @@
-function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor}var ScrollSpy=function(){var NAME="scrollspy";var VERSION="4.0.0-beta.2";var DATA_KEY="bs.scrollspy";var EVENT_KEY="."+DATA_KEY;var DATA_API_KEY=".data-api";var JQUERY_NO_CONFLICT=$.fn[NAME];var Default={offset:10,method:"auto",target:""};var DefaultType={offset:"number",method:"string",target:"(string|element)"};var Event={ACTIVATE:"activate"+EVENT_KEY,SCROLL:"scroll"+EVENT_KEY,LOAD_DATA_API:"load"+EVENT_KEY+DATA_API_KEY};var ClassName={DROPDOWN_ITEM:"dropdown-item",DROPDOWN_MENU:"dropdown-menu",ACTIVE:"act
 ive"};var Selector={DATA_SPY:'[data-spy="scroll"]',ACTIVE:".active",NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_ITEMS:".dropdown-item",DROPDOWN_TOGGLE:".dropdown-toggle"};var OffsetMethod={OFFSET:"offset",POSITION:"position"};var ScrollSpy=function(){function ScrollSpy(element,config){var _this=this;this._element=element;this._scrollElement=element.tagName==="BODY"?window:element;this._config=this._getConfig(config);this._selector=this._config.target+" "+Selector.NAV_LINKS+","+(this._config.target+" "+Selector.LIST_ITEMS+",")+(this._config.target+" "+Selector.DROPDOWN_ITEMS);this._offsets=[];this._targets=[];this._activeTarget=null;this._scrollHeight=0;$(this._scrollElement).on(Event.SCROLL,function(event){return _this._process(event)});this.refresh();this._process()}var _proto=ScrollSpy.prototype;_proto.refresh=function refresh(){var _this2=this;var autoMethod=this._scrollElement!==this._
 scrollElement.window?OffsetMethod.POSITION:OffsetMethod.OFFSET;var offsetMethod=this._config.method==="auto"?autoMethod:this._config.method;var offsetBase=offsetMethod===OffsetMethod.POSITION?this._getScrollTop():0;this._offsets=[];this._targets=[];this._scrollHeight=this._getScrollHeight();var targets=$.makeArray($(this._selector));targets.map(function(element){var target;var targetSelector=Util.getSelectorFromElement(element);if(targetSelector){target=$(targetSelector)[0]}if(target){var targetBCR=target.getBoundingClientRect();if(targetBCR.width||targetBCR.height){return[$(target)[offsetMethod]().top+offsetBase,targetSelector]}}return null}).filter(function(item){return item}).sort(function(a,b){return a[0]-b[0]}).forEach(function(item){_this2._offsets.push(item[0]);_this2._targets.push(item[1])})};_proto.dispose=function dispose(){$.removeData(this._element,DATA_KEY);$(this._scrollElement).off(EVENT_KEY);this._element=null;this._scrollElement=null;this._config=null;this._selector
 =null;this._offsets=null;this._targets=null;this._activeTarget=null;this._scrollHeight=null};_proto._getConfig=function _getConfig(config){config=$.extend({},Default,config);if(typeof config.target!=="string"){var id=$(config.target).attr("id");if(!id){id=Util.getUID(NAME);$(config.target).attr("id",id)}config.target="#"+id}Util.typeCheckConfig(NAME,config,DefaultType);return config};_proto._getScrollTop=function _getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop};_proto._getScrollHeight=function _getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)};_proto._getOffsetHeight=function _getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height};_proto._process=function _process(){var scrollTop=this._getScrollTop()+this._config.offset;var scrollHeight=this._getScrollHeight();var m
 axScroll=this._config.offset+scrollHeight-this._getOffsetHeight();if(this._scrollHeight!==scrollHeight){this.refresh()}if(scrollTop>=maxScroll){var target=this._targets[this._targets.length-1];if(this._activeTarget!==target){this._activate(target)}return}if(this._activeTarget&&scrollTop<this._offsets[0]&&this._offsets[0]>0){this._activeTarget=null;this._clear();return}for(var i=this._offsets.length;i--;){var isActiveTarget=this._activeTarget!==this._targets[i]&&scrollTop>=this._offsets[i]&&(typeof this._offsets[i+1]==="undefined"||scrollTop<this._offsets[i+1]);if(isActiveTarget){this._activate(this._targets[i])}}};_proto._activate=function _activate(target){this._activeTarget=target;this._clear();var queries=this._selector.split(",");queries=queries.map(function(selector){return selector+'[data-target="'+target+'"],'+(selector+'[href="'+target+'"]')});var $link=$(queries.join(","));if($link.hasClass(ClassName.DROPDOWN_ITEM)){$link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TO
 GGLE).addClass(ClassName.ACTIVE);$link.addClass(ClassName.ACTIVE)}else{$link.addClass(ClassName.ACTIVE);$link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS+", "+Selector.LIST_ITEMS).addClass(ClassName.ACTIVE);$link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)}$(this._scrollElement).trigger(Event.ACTIVATE,{relatedTarget:target})};_proto._clear=function _clear(){$(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)};ScrollSpy._jQueryInterface=function _jQueryInterface(config){return this.each(function(){var data=$(this).data(DATA_KEY);var _config=typeof config==="object"&&config;if(!data){data=new ScrollSpy(this,_config);$(this).data(DATA_KEY,data)}if(typeof config==="string"){if(typeof data[config]==="undefined"){throw new Error('No method named "'+config+'"')}data[config]()}})};_createClass(ScrollSpy,null,[{key:"VERSION",get:function get(){return VERSION}},{key:"Default",get:function ge
 t(){return Default}}]);return ScrollSpy}();$(window).on(Event.LOAD_DATA_API,function(){var scrollSpys=$.makeArray($(Selector.DATA_SPY));for(var i=scrollSpys.length;i--;){var $spy=$(scrollSpys[i]);ScrollSpy._jQueryInterface.call($spy,$spy.data())}});$.fn[NAME]=ScrollSpy._jQueryInterface;$.fn[NAME].Constructor=ScrollSpy;$.fn[NAME].noConflict=function(){$.fn[NAME]=JQUERY_NO_CONFLICT;return ScrollSpy._jQueryInterface};return ScrollSpy}($);
diff --git a/assets/static/js/util.min.js b/assets/static/js/util.min.js
deleted file mode 100644
index 96034eb..0000000
--- a/assets/static/js/util.min.js
+++ /dev/null
@@ -1 +0,0 @@
-var Util=function(){var transition=false;var MAX_UID=1e6;var TransitionEndEvent={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};function toType(obj){return{}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}function getSpecialTransitionEndEvent(){return{bindType:transition.end,delegateType:transition.end,handle:function handle(event){if($(event.target).is(this)){return event.handleObj.handler.apply(this,arguments)}return undefined}}}function transitionEndTest(){if(window.QUnit){return false}var el=document.createElement("bootstrap");for(var name in TransitionEndEvent){if(typeof el.style[name]!=="undefined"){return{end:TransitionEndEvent[name]}}}return false}function transitionEndEmulator(duration){var _this=this;var called=false;$(this).one(Util.TRANSITION_END,function(){called=true});setTimeout(function(){if(!called){Util.triggerTransitionEnd(_this)}},duration);return this}functi
 on setTransitionEndSupport(){transition=transitionEndTest();$.fn.emulateTransitionEnd=transitionEndEmulator;if(Util.supportsTransitionEnd()){$.event.special[Util.TRANSITION_END]=getSpecialTransitionEndEvent()}}var Util={TRANSITION_END:"bsTransitionEnd",getUID:function getUID(prefix){do{prefix+=~~(Math.random()*MAX_UID)}while(document.getElementById(prefix));return prefix},getSelectorFromElement:function getSelectorFromElement(element){var selector=element.getAttribute("data-target");if(!selector||selector==="#"){selector=element.getAttribute("href")||""}try{var $selector=$(document).find(selector);return $selector.length>0?selector:null}catch(error){return null}},reflow:function reflow(element){return element.offsetHeight},triggerTransitionEnd:function triggerTransitionEnd(element){$(element).trigger(transition.end)},supportsTransitionEnd:function supportsTransitionEnd(){return Boolean(transition)},isElement:function isElement(obj){return(obj[0]||obj).nodeType},typeCheckConfig:funct
 ion typeCheckConfig(componentName,config,configTypes){for(var property in configTypes){if(Object.prototype.hasOwnProperty.call(configTypes,property)){var expectedTypes=configTypes[property];var value=config[property];var valueType=value&&Util.isElement(value)?"element":toType(value);if(!new RegExp(expectedTypes).test(valueType)){throw new Error(componentName.toUpperCase()+": "+('Option "'+property+'" provided type "'+valueType+'" ')+('but expected type "'+expectedTypes+'".'))}}}}};setTransitionEndSupport();return Util}($);
diff --git a/assets/static/style.css b/assets/static/style.css
deleted file mode 100644
index 7ff6e0b..0000000
--- a/assets/static/style.css
+++ /dev/null
@@ -1,42 +0,0 @@
-body {
-    font-family: 'Verdana', sans-serif;
-    margin: 50px 25px;
-}
-
-a {
-    color: #2a99b6;
-}
-
-a:hover {
-    color: #33bbdf;
-}
-
-header, footer, div.page {
-    width: 760px;
-    margin: 0 auto;
-    background: #daeef3;
-    padding: 20px 30px;
-}
-
-header h1 {
-    color: #169bbd;
-    margin: 0;
-    font-weight: normal;
-    font-size: 42px;
-}
-
-header nav ul {
-    list-style: none;
-    margin: 0;
-    padding: 0;
-}
-
-header nav ul li {
-    display: inline;
-    margin: 0 8px 0 0;
-    padding: 0;
-}
-
-div.page {
-    background: #f1fbfe;
-}
diff --git a/configs/i18n.ini b/configs/i18n.ini
index 2b298ae..bb4af2a 100644
--- a/configs/i18n.ini
+++ b/configs/i18n.ini
@@ -2,3 +2,4 @@ content = en
 translations = en
 i18npath = i18n
 translate_paragraphwise = True
+url_prefix = https://www.torproject.org/
diff --git a/databags/alternatives.ini b/databags/alternatives.ini
new file mode 100644
index 0000000..5ac0263
--- /dev/null
+++ b/databags/alternatives.ini
@@ -0,0 +1,5 @@
+[en]
+direction = text-left
+order = order-last
+url =  /
+language = English (en)
diff --git a/i18n/_compiled/en/LC_MESSAGES/contents.mo b/i18n/_compiled/en/LC_MESSAGES/contents.mo
index f5521a5..f0ab793 100644
Binary files a/i18n/_compiled/en/LC_MESSAGES/contents.mo and b/i18n/_compiled/en/LC_MESSAGES/contents.mo differ
diff --git a/i18n/contents+en.po b/i18n/contents+en.po
index 47a3ee3..add6059 100644
--- a/i18n/contents+en.po
+++ b/i18n/contents+en.po
@@ -2,7 +2,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-11-02 14:17+CET\n"
+"POT-Creation-Date: 2019-07-09 14:31+CET\n"
 "PO-Revision-Date: 2018-11-02 14:16+CET\n"
 "Last-Translator: Automatically generated\n"
 "Language-Team: none\n"
@@ -12,8 +12,66 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#~ msgid "Our mission:"
-#~ msgstr "Our mission:"
+#: lego/templates/footer.html:9 lego/templates/footer.html:18
+#: lego/templates/navbar.html:66 templates/footer.html:9
+#: templates/footer.html:18 templates/navbar.html:66
+msgid "Download Tor Browser"
+msgstr "Download Tor Browser"
+
+#: lego/templates/footer.html:10 templates/footer.html:10
+msgid ""
+"Download Tor Browser to experience real private browsing without tracking, "
+"surveillance, or censorship."
+msgstr ""
+
+#: lego/templates/footer.html:27 templates/footer.html:27
+msgid "Our mission:"
+msgstr "Our mission:"
+
+#: lego/templates/footer.html:28 templates/footer.html:28
+msgid ""
+"To advance human rights and freedoms by creating and deploying free and open "
+"source anonymity and privacy technologies, supporting their unrestricted "
+"availability and use, and furthering their scientific and popular "
+"understanding."
+msgstr ""
+
+#: lego/templates/footer.html:49 lego/templates/navbar.html:12
+#: templates/footer.html:49 templates/navbar.html:12
+msgid "Donate"
+msgstr ""
+
+#: lego/templates/footer.html:49 lego/templates/navbar.html:12
+#: templates/footer.html:49 templates/navbar.html:12
+msgid "Donate Now"
+msgstr ""
+
+#: lego/templates/footer.html:54 templates/footer.html:54
+msgid "Subscribe to our Newsletter"
+msgstr "Subscribe to our Newsletter"
+
+#: lego/templates/footer.html:55 templates/footer.html:55
+msgid "Get monthly updates and opportunities from the Tor Project:"
+msgstr ""
+
+#: lego/templates/footer.html:56 templates/footer.html:56
+msgid "Sign up"
+msgstr ""
+
+#: lego/templates/footer.html:75 templates/footer.html:75
+#, python-format
+msgid ""
+"Trademark, copyright notices, and rules for use by third parties can be "
+"found in our %(link_to_faq)s"
+msgstr ""
+
+#: lego/templates/navbar.html:15 templates/navbar.html:15
+msgid "Menu"
+msgstr ""
+
+#: lego/templates/search.html:5
+msgid "Search"
+msgstr "Search"
 
 #~ msgid ""
 #~ "to advance human rights and freedoms by creating and deploying free and "
@@ -26,9 +84,6 @@ msgstr ""
 #~ "unrestricted availability and use, and furthering their scientific and "
 #~ "popular understanding."
 
-#~ msgid "Subscribe to our Newsletter"
-#~ msgstr "Subscribe to our Newsletter"
-
 #~ msgid "Get monthly updates and opportunities from the Tor Project"
 #~ msgstr "Get monthly updates and opportunities from the Tor Project"
 
@@ -45,11 +100,5 @@ msgstr ""
 #~ msgid "Tor Logo"
 #~ msgstr "Tor Logo"
 
-#~ msgid "Download Tor Browser"
-#~ msgstr "Download Tor Browser"
-
-#~ msgid "Search"
-#~ msgstr "Search"
-
 #~ msgid "Permalink"
 #~ msgstr "Permalink"
diff --git a/i18n/contents.pot b/i18n/contents.pot
index 8e47538..cd53efb 100644
--- a/i18n/contents.pot
+++ b/i18n/contents.pot
@@ -2,7 +2,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-11-20 14:00+CET\n"
+"POT-Creation-Date: 2019-07-09 14:41+CET\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: en <LL at li.org>\n"
@@ -11,3 +11,63 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#: lego/templates/footer.html:9 lego/templates/footer.html:18
+#: lego/templates/navbar.html:66 templates/footer.html:9
+#: templates/footer.html:18 templates/navbar.html:66
+msgid "Download Tor Browser"
+msgstr ""
+
+#: lego/templates/footer.html:10 templates/footer.html:10
+msgid ""
+"Download Tor Browser to experience real private browsing without tracking, "
+"surveillance, or censorship."
+msgstr ""
+
+#: lego/templates/footer.html:27 templates/footer.html:27
+msgid "Our mission:"
+msgstr ""
+
+#: lego/templates/footer.html:28 templates/footer.html:28
+msgid ""
+"To advance human rights and freedoms by creating and deploying free and open "
+"source anonymity and privacy technologies, supporting their unrestricted "
+"availability and use, and furthering their scientific and popular "
+"understanding."
+msgstr ""
+
+#: lego/templates/footer.html:49 lego/templates/navbar.html:12
+#: templates/footer.html:49 templates/navbar.html:12
+msgid "Donate"
+msgstr ""
+
+#: lego/templates/footer.html:49 lego/templates/navbar.html:12
+#: templates/footer.html:49 templates/navbar.html:12
+msgid "Donate Now"
+msgstr ""
+
+#: lego/templates/footer.html:54 templates/footer.html:54
+msgid "Subscribe to our Newsletter"
+msgstr ""
+
+#: lego/templates/footer.html:55 templates/footer.html:55
+msgid "Get monthly updates and opportunities from the Tor Project:"
+msgstr ""
+
+#: lego/templates/footer.html:56 templates/footer.html:56
+msgid "Sign up"
+msgstr ""
+
+#: lego/templates/footer.html:75 templates/footer.html:75
+#, python-format
+msgid ""
+"Trademark, copyright notices, and rules for use by third parties can be "
+"found in our %(link_to_faq)s"
+msgstr ""
+
+#: lego/templates/navbar.html:15 templates/navbar.html:15
+msgid "Menu"
+msgstr ""
+
+#: lego/templates/search.html:5
+msgid "Search"
+msgstr ""
diff --git a/lego b/lego
new file mode 160000
index 0000000..4436f9b
--- /dev/null
+++ b/lego
@@ -0,0 +1 @@
+Subproject commit 4436f9bd93387785ad92f49bfeecda2d3d57df15
diff --git a/packages b/packages
new file mode 120000
index 0000000..85b6720
--- /dev/null
+++ b/packages
@@ -0,0 +1 @@
+lego/packages
\ No newline at end of file
diff --git a/styleguide.lektorproject b/styleguide.lektorproject
index d93427c..d1b30cd 100644
--- a/styleguide.lektorproject
+++ b/styleguide.lektorproject
@@ -2,3 +2,4 @@
 name = styleguide
 url = https://styleguide.torproject.org/
 url_style = relative
+locale = en
diff --git a/templates/footer.html b/templates/footer.html
deleted file mode 100644
index 7914c0a..0000000
--- a/templates/footer.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<div class="row">
-  <div class="col-12">
-    <p class="mt-5 mb-5">
-       <span class="text-muted small"> Styleguide code licensed under <a href="https://opensource.org/licenses/MIT" title="MIT" target="_blank">MIT</a>, documents licensed under a <a href="https://creativecommons.org/licenses/by/3.0/us/" title="CC 3.0" target="_blank">Creative Commons Attribution 3.0 United States License</a>. Please see our <a href="https://www.torproject.org/docs/trademark-faq.html" title="Trademark FAQ" target="_blank">Trademark Policy</a> for guidelines on the appropriate use of Tor Project trademarks. The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.</span>
-    </p>
-  </div>
-</div>
diff --git a/templates/footer.html b/templates/footer.html
new file mode 120000
index 0000000..e78ee3c
--- /dev/null
+++ b/templates/footer.html
@@ -0,0 +1 @@
+../lego/templates/footer.html
\ No newline at end of file
diff --git a/templates/header.html b/templates/header.html
new file mode 120000
index 0000000..46dac03
--- /dev/null
+++ b/templates/header.html
@@ -0,0 +1 @@
+../lego/templates/header.html
\ No newline at end of file
diff --git a/templates/layout.html b/templates/layout.html
index 52a41e2..ec09553 100644
--- a/templates/layout.html
+++ b/templates/layout.html
@@ -30,12 +30,6 @@
 
 
     </div>
-    <footer>
-      <script src="{{ '/static/js/jquery-3.2.1.min.js'|asseturl }}" ></script>
-      <script src="{{ '/static/js/popper.min.js'|asseturl }}" ></script>
-      <script src="{{ '/static/js/bootstrap.bundle.min.js'|asseturl }}" ></script>
-      <script src="{{ '/static/js/scrollspy.min.js'|asseturl }}" ></script>
-
-    </footer>
+    {% include 'footer.html' %}
   </body>
 </html>
diff --git a/templates/navbar.html b/templates/navbar.html
deleted file mode 100644
index 540c39b..0000000
--- a/templates/navbar.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<nav class="navbar no-background navbar-expand-lg navbar-dark fixed-top bg-primary">
-  <a class="navbar-brand" href="/">
-    <img src="{{ '/static/images/tor-logo.svg'|asseturl }}" >
-    <span class="sr-only"></span>
-  </a>
-  <label for="nav-toggle">
-    <a class="btn btn-lg btn-primary navbar-toggler" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
-      <span class="navbar-toggler-icon"></span>
-    </a>
-  </label>
-  <input type="checkbox" id="nav-toggle"/>
-  <div class="collapse navbar-collapse hamburger-menu" id="navbarSupportedContent">
-    <div class="mx-auto pt-2 pl-4">
-      <ul class="navbar-nav">
-        {% for id, item in bag('menu').items() %}
-        <li{% if this.is_child_of(item.path) %} class="nav-item active" {% else %} class="nav-item"{% endif %}>
-          <a class="nav-link" href="{{ item.path }}">{{ item.label }}
-            {% if this.is_child_of(item.path) %}
-            <span class="sr-only">(current)</span>
-            {% endif %}
-          </a>
-        </li>
-  {% endfor %}
-      </ul>
-    </div>
-
-    <a class="btn text-primary bg-white btn-light pull-right mt-2" href="https://www.torproject.org/download/download-easy.html.en">
-      <i class="glyphicon-glyphicon-arrow-down"></i> Download Tor Browser
-    </a>
-  </div>
-</nav>
diff --git a/templates/navbar.html b/templates/navbar.html
new file mode 120000
index 0000000..ea44d39
--- /dev/null
+++ b/templates/navbar.html
@@ -0,0 +1 @@
+../lego/templates/navbar.html
\ No newline at end of file





More information about the tor-commits mailing list