summaryrefslogtreecommitdiff
path: root/pyssg.xyz/live/static/fork-awesome/src/doc/assets
diff options
context:
space:
mode:
Diffstat (limited to 'pyssg.xyz/live/static/fork-awesome/src/doc/assets')
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/css/prettify.css30
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/css/pygments.css71
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/css/share.min.css1
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/animated.less36
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/bordered-pulled.less28
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/core.less9
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/fixed-width.less9
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/fork-awesome.less17
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/icons.less7
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/larger.less16
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/list.less22
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/mixins.less56
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/path.less15
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/rotated-flipped.less23
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/screen-reader.less5
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/stacked.less23
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/v5-compat.less160
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/variables.less17
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/animated.scss.txt36
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/bordered-pulled.scss.txt28
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/core.scss.txt9
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/fixed-width.scss.txt9
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/fork-awesome.scss.txt18
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/functions.scss.txt13
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/icons.scss.txt7
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/larger.scss.txt16
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/list.scss.txt22
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/mixins.scss.txt56
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/path.scss.txt15
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/rotated-flipped.scss.txt23
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/screen-reader.scss.txt5
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/stacked.scss.txt23
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/variables.scss.txt17
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/ico/favicon.icobin0 -> 107730 bytes
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/images/banner.jpgbin0 -> 69877 bytes
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/ZeroClipboard-1.1.7.min.js8
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/ZeroClipboard-1.1.7.swfbin0 -> 1635 bytes
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/html5shiv.js8
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/monetization.js1
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/prettify.min.js28
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/respond.min.js6
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/search.js92
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/share.min.js1
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/site.js60
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/.csscomb.json304
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/.csslintrc19
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/alerts.less73
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/badges.less66
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/bootstrap.less56
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/breadcrumbs.less26
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/button-groups.less244
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/buttons.less166
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/carousel.less269
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/close.less34
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/code.less69
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/component-animations.less33
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/dropdowns.less216
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/forms.less613
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/glyphicons.less305
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/grid.less84
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/input-groups.less167
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/jumbotron.less52
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/labels.less64
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/list-group.less130
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/media.less66
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins.less40
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/alerts.less14
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/background-variant.less9
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/border-radius.less18
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/buttons.less68
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/center-block.less7
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/clearfix.less22
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/forms.less85
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/gradients.less59
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/grid-framework.less91
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/grid.less122
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/hide-text.less21
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/image.less33
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/labels.less12
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/list-group.less30
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/nav-divider.less10
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/nav-vertical-align.less9
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/opacity.less8
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/pagination.less24
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/panels.less24
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/progress-bar.less10
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/reset-filter.less8
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/reset-text.less18
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/resize.less6
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/responsive-visibility.less15
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/size.less10
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/tab-focus.less9
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/table-row.less28
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/text-emphasis.less9
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/text-overflow.less8
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/vendor-prefixes.less227
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/modals.less150
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/navbar.less660
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/navs.less242
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/normalize.less424
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/pager.less54
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/pagination.less89
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/panels.less271
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/popovers.less131
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/print.less101
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/progress-bars.less87
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/responsive-embed.less35
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/responsive-utilities.less194
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/scaffolding.less161
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/tables.less234
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/theme.less291
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/thumbnails.less36
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/tooltip.less101
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/type.less302
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/utilities.less55
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/variables.less869
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/wells.less29
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/gandy-grid/grid.less43
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/gandy-grid/mixins.less18
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site.less37
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/alerts.less5
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/buttons.less3
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/jumbotron.less87
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/labels.less21
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/modals.less6
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/navbar.less179
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/panels.less15
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/tooltip.less8
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/type.less26
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/variables.less171
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/wells.less10
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/example-rating.less25
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/feature-list.less19
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/fontawesome-icon-list.less33
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/footer.less55
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/jumbotron-carousel.less75
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/layout.less1
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/lazy.less113
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/print.less5
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/responsive/screen-lg.less58
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/responsive/screen-md.less3
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/responsive/screen-sm-up.less17
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/responsive/screen-sm.less48
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/responsive/screen-xs.less94
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/social-buttons.less48
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/stripe-ad.less4
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/textured-bg.less20
-rw-r--r--pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/views.less50
148 files changed, 10969 insertions, 0 deletions
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/css/prettify.css b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/css/prettify.css
new file mode 100644
index 0000000..aedd8d1
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/css/prettify.css
@@ -0,0 +1,30 @@
+.com { color: #93a1a1; }
+.lit { color: #195f91; }
+.pun, .opn, .clo { color: #93a1a1; }
+.fun { color: #dc322f; }
+.str, .atv { color: #D14; }
+.kwd, .linenums .tag { color: #1e347b; }
+.typ, .atn, .dec, .var { color: teal; }
+.pln { color: #48484c; }
+
+.prettyprint {
+ padding: 8px;
+ background-color: #f7f7f9;
+ border: 1px solid #e1e1e8;
+}
+.prettyprint.linenums {
+ -webkit-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
+ -moz-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
+ box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
+}
+
+/* Specify class=linenums on a pre to get line numbering */
+ol.linenums {
+ margin: 0 0 0 33px; /* IE indents via margin-left */
+}
+ol.linenums li {
+ padding-left: 12px;
+ color: #bebec5;
+ line-height: 18px;
+ text-shadow: 0 1px 0 #fff;
+} \ No newline at end of file
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/css/pygments.css b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/css/pygments.css
new file mode 100644
index 0000000..5af20ee
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/css/pygments.css
@@ -0,0 +1,71 @@
+.hll { background-color: #ffffcc }
+/*{ background: #f0f3f3; }*/
+.c { color: #999; } /* Comment */
+.err { color: #AA0000; background-color: #FFAAAA } /* Error */
+.k { color: #006699; } /* Keyword */
+.o { color: #555555 } /* Operator */
+.cm { color: #0099FF; font-style: italic } /* Comment.Multiline */
+.cp { color: #009999 } /* Comment.Preproc */
+.c1 { color: #999; } /* Comment.Single */
+.cs { color: #999; } /* Comment.Special */
+.gd { background-color: #FFCCCC; border: 1px solid #CC0000 } /* Generic.Deleted */
+.ge { font-style: italic } /* Generic.Emph */
+.gr { color: #FF0000 } /* Generic.Error */
+.gh { color: #003300; } /* Generic.Heading */
+.gi { background-color: #CCFFCC; border: 1px solid #00CC00 } /* Generic.Inserted */
+.go { color: #AAAAAA } /* Generic.Output */
+.gp { color: #000099; } /* Generic.Prompt */
+.gs { } /* Generic.Strong */
+.gu { color: #003300; } /* Generic.Subheading */
+.gt { color: #99CC66 } /* Generic.Traceback */
+.kc { color: #006699; } /* Keyword.Constant */
+.kd { color: #006699; } /* Keyword.Declaration */
+.kn { color: #006699; } /* Keyword.Namespace */
+.kp { color: #006699 } /* Keyword.Pseudo */
+.kr { color: #006699; } /* Keyword.Reserved */
+.kt { color: #007788; } /* Keyword.Type */
+.m { color: #FF6600 } /* Literal.Number */
+.s { color: #d44950 } /* Literal.String */
+.na { color: #4f9fcf } /* Name.Attribute */
+.nb { color: #336666 } /* Name.Builtin */
+.nc { color: #00AA88; } /* Name.Class */
+.no { color: #336600 } /* Name.Constant */
+.nd { color: #9999FF } /* Name.Decorator */
+.ni { color: #999999; } /* Name.Entity */
+.ne { color: #CC0000; } /* Name.Exception */
+.nf { color: #CC00FF } /* Name.Function */
+.nl { color: #9999FF } /* Name.Label */
+.nn { color: #00CCFF; } /* Name.Namespace */
+.nt { color: #2f6f9f; } /* Name.Tag */
+.nv { color: #003333 } /* Name.Variable */
+.ow { color: #000000; } /* Operator.Word */
+.w { color: #bbbbbb } /* Text.Whitespace */
+.mf { color: #FF6600 } /* Literal.Number.Float */
+.mh { color: #FF6600 } /* Literal.Number.Hex */
+.mi { color: #FF6600 } /* Literal.Number.Integer */
+.mo { color: #FF6600 } /* Literal.Number.Oct */
+.sb { color: #CC3300 } /* Literal.String.Backtick */
+.sc { color: #CC3300 } /* Literal.String.Char */
+.sd { color: #CC3300; font-style: italic } /* Literal.String.Doc */
+.s2 { color: #CC3300 } /* Literal.String.Double */
+.se { color: #CC3300; } /* Literal.String.Escape */
+.sh { color: #CC3300 } /* Literal.String.Heredoc */
+.si { color: #AA0000 } /* Literal.String.Interpol */
+.sx { color: #CC3300 } /* Literal.String.Other */
+.sr { color: #33AAAA } /* Literal.String.Regex */
+.s1 { color: #CC3300 } /* Literal.String.Single */
+.ss { color: #FFCC33 } /* Literal.String.Symbol */
+.bp { color: #336666 } /* Name.Builtin.Pseudo */
+.vc { color: #003333 } /* Name.Variable.Class */
+.vg { color: #003333 } /* Name.Variable.Global */
+.vi { color: #003333 } /* Name.Variable.Instance */
+.il { color: #FF6600 } /* Literal.Number.Integer.Long */
+
+.css .o,
+.css .o + .nt,
+.css .nt + .nt { color: #999; }
+
+pre {
+ background-color: #fafafa;
+ padding: 8px 15px;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/css/share.min.css b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/css/share.min.css
new file mode 100644
index 0000000..0e38b21
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/css/share.min.css
@@ -0,0 +1 @@
+.rounded{border-radius:6px}.oval{border-radius:15px}.circle{border-radius:50%}.wo-text{width:34px}.dex-btn,.popup button{cursor:pointer}.dex-btn{font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Helvetica Neue,Open Sans,Cantarell,sans-serif;display:inline-block;height:34px;line-height:1.6;color:#fff;text-align:center;text-decoration:none;font-size:.85rem;margin:0 .2em;border:none;padding-top:4px;box-sizing:border-box}.dex-btn span,.dex-icon{vertical-align:middle}.dex-btn,.dex-btn span{font-weight:700}.share{display:inline-block;max-height:40px}.share .dex-btn:not(.wo-text),.support:not(.wo-text){padding:4px 12px 4px 10px}.share .dex-btn:not(.wo-text) .dex-icon,.support:not(.wo-text) .dex-icon{margin-right:8px}.dex-icon{fill:#fff}.hidden,.hidden+.popup,.overlay{display:none}.hidden:checked+.popup{position:absolute;min-width:255px;margin-top:.8em;padding:.5em;z-index:3;background-color:#333;border-radius:.5em;display:inline-block}.hidden:checked+.popup:before{content:"";position:absolute;top:-.7em;height:0;width:0;border-bottom:.8em solid #141414;border-left:.8em solid transparent;border-right:.8em solid transparent;z-index:3}.popup input{min-width:190px;height:25px}.popup button{margin:2.5px 0 2.5px 5px;height:28px;width:44px}.popup label{position:fixed;top:0;left:0;right:0;bottom:0;z-index:-1;background-color:rgba(0,0,0,.5)}.diaspora{background-color:#222}.diaspora:hover{background-color:#000}.mastodon{background-color:#3088d4}.mastodon:hover{background-color:#1074cb}.hubzilla{background-color:#43488a}.hubzilla:hover{background-color:#363b7d}.gnusocial{background-color:#a22430}.gnusocial:hover{background-color:#900d19}.friendica{background-color:#ffb900}.friendica:hover{background-color:#ebaa00}.socialhome{background-color:#4c4c4c}.socialhome:hover{background-color:#423c3c}.postactiv{background-color:#ad68d5}.postactiv:hover{background-color:#a44fd5}.pumpio{background-color:#000}.pumpio:hover{background-color:#333}.diaspora-bright{background-color:#141414}.diaspora-bright:hover{background-color:#000}.mastodon-bright{background-color:#054dff}.mastodon-bright:hover{background-color:#003cd1}.hubzilla-bright{background-color:#311b92}.hubzilla-bright:hover{background-color:#231367}.gnusocial-bright{background-color:#b90d1e}.gnusocial-bright:hover{background-color:#890a16}.friendica-bright{background-color:#ff8f00}.friendica-bright:hover{background-color:#ff7a00}.socialhome-bright{background-color:#303636}.socialhome-bright:hover{background-color:#212727}.postactiv-bright{background-color:#b030f9}.postactiv-bright:hover{background-color:#a20af7}.support-liberapay{background-color:#f6c915;color:#0e0e0e}.support-liberapay:hover{background-color:#ffb900}.support-snowdrift{background-color:#13628e}.support-snowdrift:hover{background-color:#024d76}.support-ocollective{background-color:#7fadf2}.support-ocollective:hover{background-color:#4992ff}.support-gratipay{background-color:#630}.support-gratipay:hover{background-color:#4d2600}.support-liberapay .dex-icon{fill:#0e0e0e}@media screen and (max-width:64em){.dex-btn{margin:.5em .2em}}@media screen and (max-width:47.938em){.share{display:inline-block}} \ No newline at end of file
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/animated.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/animated.less
new file mode 100644
index 0000000..63e8e3c
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/animated.less
@@ -0,0 +1,36 @@
+---
+---
+// Animated Icons
+// --------------------------
+
+.@{fa-css-prefix}-spin {
+ -webkit-animation: ~'@{fa-css-prefix}-spin' 2s infinite linear;
+ animation: ~'@{fa-css-prefix}-spin' 2s infinite linear;
+}
+
+.@{fa-css-prefix}-pulse {
+ -webkit-animation: ~'@{fa-css-prefix}-spin' 1s infinite steps(8);
+ animation: ~'@{fa-css-prefix}-spin' 1s infinite steps(8);
+}
+
+@-webkit-keyframes ~'@{fa-css-prefix}-spin' {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
+
+@keyframes ~'@{fa-css-prefix}-spin' {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/bordered-pulled.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/bordered-pulled.less
new file mode 100644
index 0000000..cd14a68
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/bordered-pulled.less
@@ -0,0 +1,28 @@
+---
+---
+
+// Bordered & Pulled
+// -------------------------
+
+.@{fa-css-prefix}-border {
+ padding: .2em .25em .15em;
+ border: solid .08em @fa-border-color;
+ border-radius: .1em;
+}
+
+.@{fa-css-prefix}-pull-left { float: left; }
+.@{fa-css-prefix}-pull-right { float: right; }
+
+.@{fa-css-prefix} {
+ &.@{fa-css-prefix}-pull-left { margin-right: .3em; }
+ &.@{fa-css-prefix}-pull-right { margin-left: .3em; }
+}
+
+/* Deprecated as of 4.4.0 */
+.pull-right { float: right; }
+.pull-left { float: left; }
+
+.@{fa-css-prefix} {
+ &.pull-left { margin-right: .3em; }
+ &.pull-right { margin-left: .3em; }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/core.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/core.less
new file mode 100644
index 0000000..d299d0d
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/core.less
@@ -0,0 +1,9 @@
+---
+---
+
+// Base Class Definition
+// -------------------------
+
+.@{fa-css-prefix} {
+{% include code/core.less %}
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/fixed-width.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/fixed-width.less
new file mode 100644
index 0000000..f3b657b
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/fixed-width.less
@@ -0,0 +1,9 @@
+---
+---
+
+// Fixed Width Icons
+// -------------------------
+.@{fa-css-prefix}-fw {
+ width: (18em / 14);
+ text-align: center;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/fork-awesome.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/fork-awesome.less
new file mode 100644
index 0000000..3fb656e
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/fork-awesome.less
@@ -0,0 +1,17 @@
+---
+---
+{% include code/license.css %}
+
+@import "variables.less";
+@import "mixins.less";
+@import "path.less";
+@import "core.less";
+@import "larger.less";
+@import "fixed-width.less";
+@import "list.less";
+@import "bordered-pulled.less";
+@import "animated.less";
+@import "rotated-flipped.less";
+@import "stacked.less";
+@import "icons.less";
+@import "screen-reader.less";
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/icons.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/icons.less
new file mode 100644
index 0000000..38cdb7b
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/icons.less
@@ -0,0 +1,7 @@
+---
+---
+/* {{ site.forkawesome.name }} uses the Unicode Private Use Area (PUA) to ensure screen
+ readers do not read off random characters that represent icons */
+{% for icon in icons %}{% for alias in icon.aliases %}
+.@{fa-css-prefix}-{{ alias }}:before,{% endfor %}
+.@{fa-css-prefix}-{{ icon.id }}:before { content: @fa-var-{{ icon.id }}; }{% endfor %}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/larger.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/larger.less
new file mode 100644
index 0000000..472643e
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/larger.less
@@ -0,0 +1,16 @@
+---
+---
+
+// Icon Sizes
+// -------------------------
+
+/* makes the font 33% larger relative to the icon container */
+.@{fa-css-prefix}-lg {
+ font-size: (4em / 3);
+ line-height: (3em / 4);
+ vertical-align: -15%;
+}
+.@{fa-css-prefix}-2x { font-size: 2em; }
+.@{fa-css-prefix}-3x { font-size: 3em; }
+.@{fa-css-prefix}-4x { font-size: 4em; }
+.@{fa-css-prefix}-5x { font-size: 5em; }
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/list.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/list.less
new file mode 100644
index 0000000..e32bc0d
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/list.less
@@ -0,0 +1,22 @@
+---
+---
+
+// List Icons
+// -------------------------
+
+.@{fa-css-prefix}-ul {
+ padding-left: 0;
+ margin-left: @fa-li-width;
+ list-style-type: none;
+ > li { position: relative; }
+}
+.@{fa-css-prefix}-li {
+ position: absolute;
+ left: -@fa-li-width;
+ width: @fa-li-width;
+ top: (2em / 14);
+ text-align: center;
+ &.@{fa-css-prefix}-lg {
+ left: (-@fa-li-width + (4em / 14));
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/mixins.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/mixins.less
new file mode 100644
index 0000000..5889739
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/mixins.less
@@ -0,0 +1,56 @@
+---
+---
+// Mixins
+// --------------------------
+
+.fa-icon() {
+{% include code/core.less %}
+}
+
+.fa-icon-rotate(@degrees, @rotation) {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})";
+ -webkit-transform: rotate(@degrees);
+ -ms-transform: rotate(@degrees);
+ transform: rotate(@degrees);
+}
+
+.fa-icon-flip(@horiz, @vert, @rotation) {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)";
+ -webkit-transform: scale(@horiz, @vert);
+ -ms-transform: scale(@horiz, @vert);
+ transform: scale(@horiz, @vert);
+}
+
+
+// Only display content to screen readers. A la Bootstrap 4.
+//
+// See: http://a11yproject.com/posts/how-to-hide-content/
+
+.sr-only() {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0,0,0,0);
+ border: 0;
+}
+
+// Use in conjunction with .sr-only to only display content when it's focused.
+//
+// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
+//
+// Credit: HTML5 Boilerplate
+
+.sr-only-focusable() {
+ &:active,
+ &:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/path.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/path.less
new file mode 100644
index 0000000..cd1544f
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/path.less
@@ -0,0 +1,15 @@
+/* FONT PATH
+ * -------------------------- */
+
+@font-face {
+ font-family: '@{fa-font-family}';
+ src: url('@{fa-font-path}/forkawesome-webfont.eot?v=@{fa-version}');
+ src: url('@{fa-font-path}/forkawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'),
+ url('@{fa-font-path}/forkawesome-webfont.woff2?v=@{fa-version}') format('woff2'),
+ url('@{fa-font-path}/forkawesome-webfont.woff?v=@{fa-version}') format('woff'),
+ url('@{fa-font-path}/forkawesome-webfont.ttf?v=@{fa-version}') format('truetype'),
+ url('@{fa-font-path}/forkawesome-webfont.svg?v=@{fa-version}#forkawesomeregular') format('svg');
+ // src: url('@{fa-font-path}/ForkAwesome.otf') format('opentype'); // used when developing fonts
+ font-weight: normal;
+ font-style: normal;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/rotated-flipped.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/rotated-flipped.less
new file mode 100644
index 0000000..bf7a0b4
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/rotated-flipped.less
@@ -0,0 +1,23 @@
+---
+---
+
+// Rotated & Flipped Icons
+// -------------------------
+
+.@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); }
+.@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }
+.@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }
+
+.@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }
+.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); }
+
+// Hook for IE8-9
+// -------------------------
+
+:root .@{fa-css-prefix}-rotate-90,
+:root .@{fa-css-prefix}-rotate-180,
+:root .@{fa-css-prefix}-rotate-270,
+:root .@{fa-css-prefix}-flip-horizontal,
+:root .@{fa-css-prefix}-flip-vertical {
+ filter: none;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/screen-reader.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/screen-reader.less
new file mode 100644
index 0000000..11c1881
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/screen-reader.less
@@ -0,0 +1,5 @@
+// Screen Readers
+// -------------------------
+
+.sr-only { .sr-only(); }
+.sr-only-focusable { .sr-only-focusable(); }
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/stacked.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/stacked.less
new file mode 100644
index 0000000..2a1e418
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/stacked.less
@@ -0,0 +1,23 @@
+---
+---
+
+// Stacked Icons
+// -------------------------
+
+.@{fa-css-prefix}-stack {
+ position: relative;
+ display: inline-block;
+ width: 2em;
+ height: 2em;
+ line-height: 2em;
+ vertical-align: middle;
+}
+.@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {
+ position: absolute;
+ left: 0;
+ width: 100%;
+ text-align: center;
+}
+.@{fa-css-prefix}-stack-1x { line-height: inherit; }
+.@{fa-css-prefix}-stack-2x { font-size: 2em; }
+.@{fa-css-prefix}-inverse { color: @fa-inverse; }
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/v5-compat.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/v5-compat.less
new file mode 100644
index 0000000..ddedea9
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/v5-compat.less
@@ -0,0 +1,160 @@
+---
+---
+{% include code/license.css %}
+
+@import "variables.less";
+
+.fas, .fab, .far {
+{% include code/core.less %}
+}
+
+.fas {
+ &.fa-chart-area:before { content: "\f1fe"; } // area-chart
+ &.fa-arrows-alt:before { content: "\f047"; } // arrows
+ &.fa-expand-arrows-alt:before { content: "\f0b2"; } // arrows-alt
+ &.fa-arrows-alt-h:before { content: "\f07e"; } // arrows-h
+ &.fa-arrows-alt-v:before { content: "\f07d"; } // arrows-v
+ &.fa-calendar-alt:before { content: "\f073"; } // calendar
+ &.fa-circle-notch:before { content: "\f1ce"; } // circle-o-notch
+ &.fa-cloud-download-alt:before { content: "\f0ed"; } // cloud-download
+ &.fa-cloud-upload-alt:before { content: "\f0ee"; } // cloud-upload
+ &.fa-credit-card:before { content: "\f283"; } // credit-card-alt
+ &.fa-dollar-sign:before { content: "\f155"; } // dollar
+ &.fa-euro-sign:before { content: "\f153"; } // eur, euro
+ &.fa-exchange-alt:before { content: "\f0ec"; } // exchange
+ &.fa-external-link-alt:before { content: "\f08e"; } // external-link
+ &.fa-external-link-square-alt:before { content: "\f14c"; } // external-link-square
+ &.fa-eye-dropper:before { content: "\f1fb"; } // eyedropper
+ &.fa-pound-sign:before { content: "\f154"; } // gbp
+ &.fa-glass-martini:before { content: "\f000"; } // glass
+ &.fa-shekel-sign:before { content: "\f20b"; } // shekel
+ &.fa-rupee-sign:before { content: "\f156"; } // rupee
+ &.fa-won-sign:before { content: "\f159"; } // krw
+ &.fa-level-down-alt:before { content: "\f149"; } // level-down
+ &.fa-level-up-alt:before { content: "\f148"; } // level-up
+ &.fa-chart-line:before { content: "\f201"; } // line-chart
+ &.fa-long-arrow-alt-down:before { content: "\f175"; } // long-arrow-down
+ &.fa-long-arrow-alt-left:before { content: "\f177"; } // long-arrow-left
+ &.fa-long-arrow-alt-right:before { content: "\f178"; } // long-arrow-right
+ &.fa-long-arrow-alt-up:before { content: "\f176"; } // long-arrow-up
+ &.fa-map-marker-alt:before { content: "\f041"; } // map-marker
+ &.fa-mobile-alt:before { content: "\f10b"; } // mobile
+ &.fa-pencil-alt:before { content: "\f040"; } // pencil
+ &.fa-pen-square:before { content: "\f14b"; } // pencil-square
+ &.fa-chart-pie:before { content: "\f200"; } // pie-chart
+ &.fa-yen-sign:before { content: "\f157"; } // yen
+ &.fa-ruble-sign:before { content: "\f158"; } // ruble
+ &.fa-shield-alt:before { content: "\f132"; } // shield
+ &.fa-sign-in-alt:before { content: "\f090"; } // sign-in
+ &.fa-sign-out-alt:before { content: "\f08b"; } // sign-out
+ &.fa-sliders-h:before { content: "\f1de"; } // sliders
+ &.fa-tablet-alt:before { content: "\f10a"; } // tablet
+ &.fa-tachometer-alt:before { content: "\f0e4"; } // tachometer
+ &.fa-thumbtack:before { content: "\f08d"; } // thumb-tack
+ &.fa-ticket-alt:before { content: "\f145"; } // ticket
+ &.fa-trash-alt:before { content: "\f1f8"; } // trash
+ &.fa-lira-sign:before { content: "\f195"; } // turkish-lira
+}
+
+.fab {
+ &.fa-linkedin-in:before { content: "\fe01"; } // linkedin
+ &.fa-linkedin:before { content: "\f08c"; } // linkedin-square
+}
+
+.far {
+ &.fa-address-book:before { content: "\f2ba"; } // address-book-o
+ &.fa-address-card:before { content: "\f2bc"; } // address-card-o
+ &.fa-arrow-alt-circle-down:before { content: "\f01a"; } // arrow-circle-o-down
+ &.fa-arrow-alt-circle-left:before { content: "\f190"; } // arrow-circle-o-left
+ &.fa-arrow-alt-circle-right:before { content: "\f18e"; } // arrow-circle-o-right
+ &.fa-arrow-alt-circle-up:before { content: "\f01b"; } // arrow-circle-o-up
+ &.fa-bell:before { content: "\f0f3"; } // bell-o
+ &.fa-bell-slash:before { content: "\f1f7"; } // bell-slash-o
+ &.fa-bookmark:before { content: "\f097"; } // bookmark-o
+ &.fa-building:before { content: "\f0f7"; } // building-o
+ &.fa-calendar-check:before { content: "\f274"; } // calendar-check-o
+ &.fa-calendar-minus:before { content: "\f272"; } // calendar-minus-o
+ &.fa-calendar:before { content: "\f133"; } // calendar-o
+ &.fa-calendar-plus:before { content: "\f271"; } // calendar-plus-o
+ &.fa-calendar-times:before { content: "\f273"; } // calendar-times-o
+ &.fa-caret-square-down:before { content: "\f150"; } // caret-square-o-down
+ &.fa-caret-square-left:before { content: "\f191"; } // caret-square-o-left
+ &.fa-caret-square-right:before { content: "\f152"; } // caret-square-o-right
+ &.fa-caret-square-up:before { content: "\f151"; } // caret-square-o-up
+ &.fa-check-circle:before { content: "\f05d"; } // check-circle-o
+ &.fa-check-square:before { content: "\f046"; } // check-square-o
+ &.fa-circle:before { content: "\f10c"; } // circle-o
+ &.fa-clock:before { content: "\f017"; } // clock-o
+ &.fa-comment:before { content: "\f0e5"; } // comment-o
+ &.fa-comment-dots:before { content: "\f27b"; } // commenting-o
+ &.fa-comments:before { content: "\f0e6"; } // comments-o
+ &.fa-dot-circle:before { content: "\f192"; } // dot-circle-o
+ &.fa-id-card:before { content: "\f2c3"; } // drivers-license-o
+ &.fa-envelope:before { content: "\f003"; } // envelope-o
+ &.fa-envelope-open:before { content: "\f2b7"; } // envelope-open-o
+ &.fa-file-archive:before { content: "\f1c6"; } // file-archive-o
+ &.fa-file-audio:before { content: "\f1c7"; } // file-audio-o
+ &.fa-file-code:before { content: "\f1c9"; } // file-code-o
+ &.fa-file-excel:before { content: "\f1c3"; } // file-excel-o
+ &.fa-file-image:before { content: "\f1c5"; } // file-image-o
+ &.fa-file-video:before { content: "\f1c8"; } // file-video-o
+ &.fa-copy:before,
+ &.fa-file:before { content: "\f016"; } // file-o
+ &.fa-file-pdf:before { content: "\f1c1"; } // file-pdf-o
+ &.fa-file-powerpoint:before { content: "\f1c4"; } // file-powerpoint-o
+ &.fa-file-alt:before { content: "\f0f6"; } // file-text-o
+ &.fa-file-word:before { content: "\f1c2"; } // file-word-o
+ &.fa-flag:before { content: "\f11d"; } // flag-o
+ &.fa-save:before { content: "\f0c7"; } // foppy-o
+ &.fa-folder:before { content: "\f114"; } // folder-o
+ &.fa-folder-open:before { content: "\f115"; } // folder-open-o
+ &.fa-frown:before { content: "\f119"; } // frown-o
+ &.fa-futbol:before { content: "\f1e3"; } // futbol-o
+ &.fa-hand-rock:before { content: "\f255"; } // hand-grab-o
+ &.fa-hand-lizard:before { content: "\f258"; } // hand-lizard-o
+ &.fa-hand-point-down:before { content: "\f0a7"; } // hand-o-down
+ &.fa-hand-point-left:before { content: "\f0a5"; } // hand-o-left
+ &.fa-hand-point-right:before { content: "\f0a4"; } // hand-o-right
+ &.fa-hand-point-up:before { content: "\f0a6"; } // hand-o-up
+ &.fa-hand-paper:before { content: "\256"; } // hand-paper-o
+ &.fa-hand-pointer:before { content: "\f25a"; } // hand-pointer-o
+ &.fa-hand-scissors:before { content: "\f257"; } // hand-scissors-o
+ &.fa-hand-spock:before { content: "\f259"; } // hand-spock-o
+ &.fa-handshake:before { content: "\f2b5"; } // handshake-o
+ &.fa-hdd:before { content: "\f0a0"; } // hdd-o
+ &.fa-heart:before { content: "\f08a"; } // heart-o
+ &.fa-hospital:before { content: "\f0f8"; } // hospital-o
+ &.fa-hourglass:before { content: "\f250"; } // hourglass-o
+ &.fa-id-card:before { content: "\f2c3"; } // id-card-o
+ &.fa-keyboard:before { content: "\f11c"; } // keyboard-o
+ &.fa-lemon:before { content: "\f094"; } // lemon-o
+ &.fa-lightbulb:before { content: "\f0eb"; } // lightbulb-o
+ &.fa-meh:before { content: "\f11a"; } // meh-o
+ &.fa-minus-square:before { content: "\f147"; } // minus-square-o
+ &.fa-money-bill-alt:before { content: "\f0d6"; } // money
+ &.fa-moon:before { content: "\f186"; } // moon-o
+ &.fa-newspaper:before { content: "\f1ea"; } // newspaper-o
+ &.fa-paper-plane:before { content: "\f1d9"; } // paper-plane-o
+ &.fa-pause-circle:before { content: "\f28c"; } // pause-circle-o
+ &.fa-edit:before { content: "\f044"; } // pencil-square-o
+ &.fa-image:before { content: "\f03e"; } // picture-o
+ &.fa-play-circle:before { content: "\f01d"; } // play-circle-o
+ &.fa-plus-square:before { content: "\f196"; } // plus-square-o
+ &.fa-question-circle:before { content: "\f92c"; } // question-circle-o
+ &.fa-share-square:before { content: "\f045"; } // share-square-o
+ &.fa-smile:before { content: "\f118"; } // smile-o
+ &.fa-snowflake:before { content: "\f2dc"; } // snowflake-o
+ &.fa-futbol:before { content: "\f1e3"; } // soccer-ball-o
+ &.fa-star-half:before { content: "\f089"; } // star-half-o
+ &.fa-star:before { content: "\f006"; } // star-o
+ &.fa-sticky-note:before { content: "\f24a"; } // sticky-note-o
+ &.fa-stop-circle:before { content: "\f28e"; } // stop-circle-o
+ &.fa-sun:before { content: "\f185"; } // sun-o
+ &.fa-thumbs-down:before { content: "\f088"; } // thumbs-o-down
+ &.fa-thumbs-up:before { content: "\f087"; } // thumbs-o-up
+ &.fa-times-circle:before { content: "\f05c"; } // times-circle-o
+ &.fa-window-close:before { content: "\f2d4"; } // times-rectangle-o
+ &.fa-trash-alt:before { content: "\f014"; } // trash-o
+ &.fa-user-circle:before { content: "\f2be"; } // user-circle-o
+ &.fa-user:before { content: "\f2c0"; } // user-o
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/variables.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/variables.less
new file mode 100644
index 0000000..9b3ed2f
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/less/variables.less
@@ -0,0 +1,17 @@
+---
+---
+// Variables
+// --------------------------
+
+@fa-font-path: "../fonts";
+@fa-font-size-base: 14px;
+@fa-line-height-base: 1;
+@fa-css-prefix: {{ site.forkawesome.css_prefix }};
+@fa-font-family: {{ site.forkawesome.font_family }};
+@fa-version: "{{ site.forkawesome.version }}";
+@fa-border-color: #eee;
+@fa-inverse: #fff;
+@fa-li-width: (30em / 14);
+
+{% assign sorted_icons = icons | expand_aliases | sort_by:'class' %}{% for icon in sorted_icons %}@fa-var-{{ icon.class }}: "\{{ icon.unicode }}";
+{% endfor %}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/animated.scss.txt b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/animated.scss.txt
new file mode 100644
index 0000000..b37f0f3
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/animated.scss.txt
@@ -0,0 +1,36 @@
+---
+---
+// Spinning Icons
+// --------------------------
+
+.#{$fa-css-prefix}-spin {
+ -webkit-animation: #{$fa-css-prefix}-spin 2s infinite linear;
+ animation: #{$fa-css-prefix}-spin 2s infinite linear;
+}
+
+.#{$fa-css-prefix}-pulse {
+ -webkit-animation: #{$fa-css-prefix}-spin 1s infinite steps(8);
+ animation: #{$fa-css-prefix}-spin 1s infinite steps(8);
+}
+
+@-webkit-keyframes #{$fa-css-prefix}-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
+
+@keyframes #{$fa-css-prefix}-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/bordered-pulled.scss.txt b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/bordered-pulled.scss.txt
new file mode 100644
index 0000000..40bafcb
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/bordered-pulled.scss.txt
@@ -0,0 +1,28 @@
+---
+---
+
+// Bordered & Pulled
+// -------------------------
+
+.#{$fa-css-prefix}-border {
+ padding: .2em .25em .15em;
+ border: solid .08em $fa-border-color;
+ border-radius: .1em;
+}
+
+.#{$fa-css-prefix}-pull-left { float: left; }
+.#{$fa-css-prefix}-pull-right { float: right; }
+
+.#{$fa-css-prefix} {
+ &.#{$fa-css-prefix}-pull-left { margin-right: .3em; }
+ &.#{$fa-css-prefix}-pull-right { margin-left: .3em; }
+}
+
+/* Deprecated as of 4.4.0 */
+.pull-right { float: right; }
+.pull-left { float: left; }
+
+.#{$fa-css-prefix} {
+ &.pull-left { margin-right: .3em; }
+ &.pull-right { margin-left: .3em; }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/core.scss.txt b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/core.scss.txt
new file mode 100644
index 0000000..45e548b
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/core.scss.txt
@@ -0,0 +1,9 @@
+---
+---
+
+// Base Class Definition
+// -------------------------
+
+.#{$fa-css-prefix} {
+{% include code/core.scss %}
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/fixed-width.scss.txt b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/fixed-width.scss.txt
new file mode 100644
index 0000000..cfb1454
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/fixed-width.scss.txt
@@ -0,0 +1,9 @@
+---
+---
+
+// Fixed Width Icons
+// -------------------------
+.#{$fa-css-prefix}-fw {
+ width: (18em / 14);
+ text-align: center;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/fork-awesome.scss.txt b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/fork-awesome.scss.txt
new file mode 100644
index 0000000..effcf2f
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/fork-awesome.scss.txt
@@ -0,0 +1,18 @@
+---
+---
+{% include code/license.css %}
+
+@import "variables";
+@import "mixins";
+@import "functions";
+@import "path";
+@import "core";
+@import "larger";
+@import "fixed-width";
+@import "list";
+@import "bordered-pulled";
+@import "animated";
+@import "rotated-flipped";
+@import "stacked";
+@import "icons";
+@import "screen-reader";
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/functions.scss.txt b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/functions.scss.txt
new file mode 100644
index 0000000..3215091
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/functions.scss.txt
@@ -0,0 +1,13 @@
+---
+---
+// Functions
+// --------------------------
+
+// Helper function which adds quotes to preserve unicode values in CSS output.
+//
+// See: https://github.com/sass/sass/issues/1395
+// See: https://stackoverflow.com/questions/30421570/sass-unicode-escape-is-not-preserved-in-css-file
+
+@function fa-content($fa-var) {
+ @return unquote("\"#{$fa-var}\"");
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/icons.scss.txt b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/icons.scss.txt
new file mode 100644
index 0000000..23128aa
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/icons.scss.txt
@@ -0,0 +1,7 @@
+---
+---
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+ readers do not read off random characters that represent icons */
+{% for icon in icons %}{% for alias in icon.aliases %}
+.#{$fa-css-prefix}-{{ alias }}:before,{% endfor %}
+.#{$fa-css-prefix}-{{ icon.id }}:before { content: $fa-var-{{ icon.id }}; }{% endfor %}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/larger.scss.txt b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/larger.scss.txt
new file mode 100644
index 0000000..4035723
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/larger.scss.txt
@@ -0,0 +1,16 @@
+---
+---
+
+// Icon Sizes
+// -------------------------
+
+/* makes the font 33% larger relative to the icon container */
+.#{$fa-css-prefix}-lg {
+ font-size: (4em / 3);
+ line-height: (3em / 4);
+ vertical-align: -15%;
+}
+.#{$fa-css-prefix}-2x { font-size: 2em; }
+.#{$fa-css-prefix}-3x { font-size: 3em; }
+.#{$fa-css-prefix}-4x { font-size: 4em; }
+.#{$fa-css-prefix}-5x { font-size: 5em; }
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/list.scss.txt b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/list.scss.txt
new file mode 100644
index 0000000..1c64982
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/list.scss.txt
@@ -0,0 +1,22 @@
+---
+---
+
+// List Icons
+// -------------------------
+
+.#{$fa-css-prefix}-ul {
+ padding-left: 0;
+ margin-left: $fa-li-width;
+ list-style-type: none;
+ > li { position: relative; }
+}
+.#{$fa-css-prefix}-li {
+ position: absolute;
+ left: -$fa-li-width;
+ width: $fa-li-width;
+ top: (2em / 14);
+ text-align: center;
+ &.#{$fa-css-prefix}-lg {
+ left: -$fa-li-width + (4em / 14);
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/mixins.scss.txt b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/mixins.scss.txt
new file mode 100644
index 0000000..2411661
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/mixins.scss.txt
@@ -0,0 +1,56 @@
+---
+---
+// Mixins
+// --------------------------
+
+@mixin fa-icon() {
+{% include code/core.scss %}
+}
+
+@mixin fa-icon-rotate($degrees, $rotation) {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})";
+ -webkit-transform: rotate($degrees);
+ -ms-transform: rotate($degrees);
+ transform: rotate($degrees);
+}
+
+@mixin fa-icon-flip($horiz, $vert, $rotation) {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)";
+ -webkit-transform: scale($horiz, $vert);
+ -ms-transform: scale($horiz, $vert);
+ transform: scale($horiz, $vert);
+}
+
+
+// Only display content to screen readers. A la Bootstrap 4.
+//
+// See: http://a11yproject.com/posts/how-to-hide-content/
+
+@mixin sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0,0,0,0);
+ border: 0;
+}
+
+// Use in conjunction with .sr-only to only display content when it's focused.
+//
+// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
+//
+// Credit: HTML5 Boilerplate
+
+@mixin sr-only-focusable {
+ &:active,
+ &:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/path.scss.txt b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/path.scss.txt
new file mode 100644
index 0000000..5480425
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/path.scss.txt
@@ -0,0 +1,15 @@
+/* FONT PATH
+ * -------------------------- */
+
+@font-face {
+ font-family: '#{$fa-font-family}';
+ src: url('#{$fa-font-path}/forkawesome-webfont.eot?v=#{$fa-version}');
+ src: url('#{$fa-font-path}/forkawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'),
+ url('#{$fa-font-path}/forkawesome-webfont.woff2?v=#{$fa-version}') format('woff2'),
+ url('#{$fa-font-path}/forkawesome-webfont.woff?v=#{$fa-version}') format('woff'),
+ url('#{$fa-font-path}/forkawesome-webfont.ttf?v=#{$fa-version}') format('truetype'),
+ url('#{$fa-font-path}/forkawesome-webfont.svg?v=#{$fa-version}#forkawesomeregular') format('svg');
+// src: url('#{$fa-font-path}/ForkAwesome.otf') format('opentype'); // used when developing fonts
+ font-weight: normal;
+ font-style: normal;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/rotated-flipped.scss.txt b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/rotated-flipped.scss.txt
new file mode 100644
index 0000000..6e95eb4
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/rotated-flipped.scss.txt
@@ -0,0 +1,23 @@
+---
+---
+
+// Rotated & Flipped Icons
+// -------------------------
+
+.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); }
+.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }
+.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }
+
+.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }
+.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); }
+
+// Hook for IE8-9
+// -------------------------
+
+:root .#{$fa-css-prefix}-rotate-90,
+:root .#{$fa-css-prefix}-rotate-180,
+:root .#{$fa-css-prefix}-rotate-270,
+:root .#{$fa-css-prefix}-flip-horizontal,
+:root .#{$fa-css-prefix}-flip-vertical {
+ filter: none;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/screen-reader.scss.txt b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/screen-reader.scss.txt
new file mode 100644
index 0000000..637426f
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/screen-reader.scss.txt
@@ -0,0 +1,5 @@
+// Screen Readers
+// -------------------------
+
+.sr-only { @include sr-only(); }
+.sr-only-focusable { @include sr-only-focusable(); }
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/stacked.scss.txt b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/stacked.scss.txt
new file mode 100644
index 0000000..01c9443
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/stacked.scss.txt
@@ -0,0 +1,23 @@
+---
+---
+
+// Stacked Icons
+// -------------------------
+
+.#{$fa-css-prefix}-stack {
+ position: relative;
+ display: inline-block;
+ width: 2em;
+ height: 2em;
+ line-height: 2em;
+ vertical-align: middle;
+}
+.#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x {
+ position: absolute;
+ left: 0;
+ width: 100%;
+ text-align: center;
+}
+.#{$fa-css-prefix}-stack-1x { line-height: inherit; }
+.#{$fa-css-prefix}-stack-2x { font-size: 2em; }
+.#{$fa-css-prefix}-inverse { color: $fa-inverse; }
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/variables.scss.txt b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/variables.scss.txt
new file mode 100644
index 0000000..0ecf359
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/fork-awesome/scss/variables.scss.txt
@@ -0,0 +1,17 @@
+---
+---
+// Variables
+// --------------------------
+
+$fa-font-path: "../fonts" !default;
+$fa-font-size-base: 14px !default;
+$fa-line-height-base: 1 !default;
+$fa-css-prefix: "{{ site.forkawesome.css_prefix }}" !default;
+$fa-font-family: "{{ site.forkawesome.font_family }}" !default;
+$fa-version: "{{ site.forkawesome.version }}" !default;
+$fa-border-color: #eee !default;
+$fa-inverse: #fff !default;
+$fa-li-width: (30em / 14) !default;
+
+{% assign sorted_icons = icons | expand_aliases | sort_by:'class' %}{% for icon in sorted_icons %}$fa-var-{{ icon.class }}: "\{{ icon.unicode }}";
+{% endfor %}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/ico/favicon.ico b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/ico/favicon.ico
new file mode 100644
index 0000000..cec00e6
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/ico/favicon.ico
Binary files differ
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/images/banner.jpg b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/images/banner.jpg
new file mode 100644
index 0000000..8b2fd3a
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/images/banner.jpg
Binary files differ
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/ZeroClipboard-1.1.7.min.js b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/ZeroClipboard-1.1.7.min.js
new file mode 100644
index 0000000..32535fd
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/ZeroClipboard-1.1.7.min.js
@@ -0,0 +1,8 @@
+/*!
+ * zeroclipboard
+ * The Zero Clipboard library provides an easy way to copy text to the clipboard using an invisible Adobe Flash movie, and a JavaScript interface.
+ * Copyright 2012 Jon Rohan, James M. Greene, .
+ * Released under the MIT license
+ * http://jonrohan.github.com/ZeroClipboard/
+ * v1.1.7
+ */(function(){"use strict";var a=function(a,b){var c=a.style[b];a.currentStyle?c=a.currentStyle[b]:window.getComputedStyle&&(c=document.defaultView.getComputedStyle(a,null).getPropertyValue(b));if(c=="auto"&&b=="cursor"){var d=["a"];for(var e=0;e<d.length;e++)if(a.tagName.toLowerCase()==d[e])return"pointer"}return c},b=function(a){if(!l.prototype._singleton)return;a||(a=window.event);var b;this!==window?b=this:a.target?b=a.target:a.srcElement&&(b=a.srcElement),l.prototype._singleton.setCurrent(b)},c=function(a,b,c){a.addEventListener?a.addEventListener(b,c,!1):a.attachEvent&&a.attachEvent("on"+b,c)},d=function(a,b,c){a.removeEventListener?a.removeEventListener(b,c,!1):a.detachEvent&&a.detachEvent("on"+b,c)},e=function(a,b){if(a.addClass)return a.addClass(b),a;if(b&&typeof b=="string"){var c=(b||"").split(/\s+/);if(a.nodeType===1)if(!a.className)a.className=b;else{var d=" "+a.className+" ",e=a.className;for(var f=0,g=c.length;f<g;f++)d.indexOf(" "+c[f]+" ")<0&&(e+=" "+c[f]);a.className=e.replace(/^\s+|\s+$/g,"")}}return a},f=function(a,b){if(a.removeClass)return a.removeClass(b),a;if(b&&typeof b=="string"||b===undefined){var c=(b||"").split(/\s+/);if(a.nodeType===1&&a.className)if(b){var d=(" "+a.className+" ").replace(/[\n\t]/g," ");for(var e=0,f=c.length;e<f;e++)d=d.replace(" "+c[e]+" "," ");a.className=d.replace(/^\s+|\s+$/g,"")}else a.className=""}return a},g=function(b){var c={left:0,top:0,width:b.width||b.offsetWidth||0,height:b.height||b.offsetHeight||0,zIndex:9999},d=a(b,"zIndex");d&&d!="auto"&&(c.zIndex=parseInt(d,10));while(b){var e=parseInt(a(b,"borderLeftWidth"),10),f=parseInt(a(b,"borderTopWidth"),10);c.left+=isNaN(b.offsetLeft)?0:b.offsetLeft,c.left+=isNaN(e)?0:e,c.top+=isNaN(b.offsetTop)?0:b.offsetTop,c.top+=isNaN(f)?0:f,b=b.offsetParent}return c},h=function(a){return(a.indexOf("?")>=0?"&":"?")+"nocache="+(new Date).getTime()},i=function(a){var b=[];return a.trustedDomains&&(typeof a.trustedDomains=="string"?b.push("trustedDomain="+a.trustedDomains):b.push("trustedDomain="+a.trustedDomains.join(","))),b.join("&")},j=function(a,b){if(b.indexOf)return b.indexOf(a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},k=function(a){if(typeof a=="string")throw new TypeError("ZeroClipboard doesn't accept query strings.");return a.length?a:[a]},l=function(a,b){a&&(l.prototype._singleton||this).glue(a);if(l.prototype._singleton)return l.prototype._singleton;l.prototype._singleton=this,this.options={};for(var c in o)this.options[c]=o[c];for(var d in b)this.options[d]=b[d];this.handlers={},l.detectFlashSupport()&&p()},m,n=[];l.prototype.setCurrent=function(b){m=b,this.reposition(),b.getAttribute("title")&&this.setTitle(b.getAttribute("title")),this.setHandCursor(a(b,"cursor")=="pointer")},l.prototype.setText=function(a){a&&a!==""&&(this.options.text=a,this.ready()&&this.flashBridge.setText(a))},l.prototype.setTitle=function(a){a&&a!==""&&this.htmlBridge.setAttribute("title",a)},l.prototype.setSize=function(a,b){this.ready()&&this.flashBridge.setSize(a,b)},l.prototype.setHandCursor=function(a){this.ready()&&this.flashBridge.setHandCursor(a)},l.version="1.1.7";var o={moviePath:"ZeroClipboard.swf",trustedDomains:null,text:null,hoverClass:"zeroclipboard-is-hover",activeClass:"zeroclipboard-is-active",allowScriptAccess:"sameDomain"};l.setDefaults=function(a){for(var b in a)o[b]=a[b]},l.destroy=function(){l.prototype._singleton.unglue(n);var a=l.prototype._singleton.htmlBridge;a.parentNode.removeChild(a),delete l.prototype._singleton},l.detectFlashSupport=function(){var a=!1;try{new ActiveXObject("ShockwaveFlash.ShockwaveFlash")&&(a=!0)}catch(b){navigator.mimeTypes["application/x-shockwave-flash"]&&(a=!0)}return a};var p=function(){var a=l.prototype._singleton,b=document.getElementById("global-zeroclipboard-html-bridge");if(!b){var c=' <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" id="global-zeroclipboard-flash-bridge" width="100%" height="100%"> <param name="movie" value="'+a.options.moviePath+h(a.options.moviePath)+'"/> <param name="allowScriptAccess" value="'+a.options.allowScriptAccess+'"/> <param name="scale" value="exactfit"/> <param name="loop" value="false"/> <param name="menu" value="false"/> <param name="quality" value="best" /> <param name="bgcolor" value="#ffffff"/> <param name="wmode" value="transparent"/> <param name="flashvars" value="'+i(a.options)+'"/> <embed src="'+a.options.moviePath+h(a.options.moviePath)+'" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="100%" height="100%" name="global-zeroclipboard-flash-bridge" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" wmode="transparent" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="'+i(a.options)+'" scale="exactfit"> </embed> </object>';b=document.createElement("div"),b.id="global-zeroclipboard-html-bridge",b.setAttribute("class","global-zeroclipboard-container"),b.setAttribute("data-clipboard-ready",!1),b.style.position="absolute",b.style.left="-9999px",b.style.top="-9999px",b.style.width="15px",b.style.height="15px",b.style.zIndex="9999",b.innerHTML=c,document.body.appendChild(b)}a.htmlBridge=b,a.flashBridge=document["global-zeroclipboard-flash-bridge"]||b.children[0].lastElementChild};l.prototype.resetBridge=function(){this.htmlBridge.style.left="-9999px",this.htmlBridge.style.top="-9999px",this.htmlBridge.removeAttribute("title"),this.htmlBridge.removeAttribute("data-clipboard-text"),f(m,this.options.activeClass),m=null,this.options.text=null},l.prototype.ready=function(){var a=this.htmlBridge.getAttribute("data-clipboard-ready");return a==="true"||a===!0},l.prototype.reposition=function(){if(!m)return!1;var a=g(m);this.htmlBridge.style.top=a.top+"px",this.htmlBridge.style.left=a.left+"px",this.htmlBridge.style.width=a.width+"px",this.htmlBridge.style.height=a.height+"px",this.htmlBridge.style.zIndex=a.zIndex+1,this.setSize(a.width,a.height)},l.dispatch=function(a,b){l.prototype._singleton.receiveEvent(a,b)},l.prototype.on=function(a,b){var c=a.toString().split(/\s/g);for(var d=0;d<c.length;d++)a=c[d].toLowerCase().replace(/^on/,""),this.handlers[a]||(this.handlers[a]=b);this.handlers.noflash&&!l.detectFlashSupport()&&this.receiveEvent("onNoFlash",null)},l.prototype.addEventListener=l.prototype.on,l.prototype.off=function(a,b){var c=a.toString().split(/\s/g);for(var d=0;d<c.length;d++){a=c[d].toLowerCase().replace(/^on/,"");for(var e in this.handlers)e===a&&this.handlers[e]===b&&delete this.handlers[e]}},l.prototype.removeEventListener=l.prototype.off,l.prototype.receiveEvent=function(a,b){a=a.toString().toLowerCase().replace(/^on/,"");var c=m;switch(a){case"load":if(b&&parseFloat(b.flashVersion.replace(",",".").replace(/[^0-9\.]/gi,""))<10){this.receiveEvent("onWrongFlash",{flashVersion:b.flashVersion});return}this.htmlBridge.setAttribute("data-clipboard-ready",!0);break;case"mouseover":e(c,this.options.hoverClass);break;case"mouseout":f(c,this.options.hoverClass),this.resetBridge();break;case"mousedown":e(c,this.options.activeClass);break;case"mouseup":f(c,this.options.activeClass);break;case"datarequested":var d=c.getAttribute("data-clipboard-target"),g=d?document.getElementById(d):null;if(g){var h=g.value||g.textContent||g.innerText;h&&this.setText(h)}else{var i=c.getAttribute("data-clipboard-text");i&&this.setText(i)}break;case"complete":this.options.text=null}if(this.handlers[a]){var j=this.handlers[a];typeof j=="function"?j.call(c,this,b):typeof j=="string"&&window[j].call(c,this,b)}},l.prototype.glue=function(a){a=k(a);for(var d=0;d<a.length;d++)j(a[d],n)==-1&&(n.push(a[d]),c(a[d],"mouseover",b))},l.prototype.unglue=function(a){a=k(a);for(var c=0;c<a.length;c++){d(a[c],"mouseover",b);var e=j(a[c],n);e!=-1&&n.splice(e,1)}},typeof module!="undefined"?module.exports=l:typeof define=="function"&&define.amd?define(function(){return l}):window.ZeroClipboard=l})(); \ No newline at end of file
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/ZeroClipboard-1.1.7.swf b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/ZeroClipboard-1.1.7.swf
new file mode 100644
index 0000000..880e64e
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/ZeroClipboard-1.1.7.swf
Binary files differ
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/html5shiv.js b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/html5shiv.js
new file mode 100644
index 0000000..784f221
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/html5shiv.js
@@ -0,0 +1,8 @@
+/*
+ HTML5 Shiv v3.6.2pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
+*/
+(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
+a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x<style>article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}</style>";
+c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="<xyz></xyz>";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode||
+"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",version:"3.6.2pre",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment();
+for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d<h;d++)c.createElement(e[d]);return c}};l.html5=e;q(f)})(this,document);
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/monetization.js b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/monetization.js
new file mode 100644
index 0000000..0e3c2a7
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/monetization.js
@@ -0,0 +1 @@
+var _bsa={init:function(format,zoneKey,segment,options){var options=typeof options!=='undefined'?options:false;var srv=document.createElement('script');srv.id='_bsa_srv-'+zoneKey;srv.type='text/javascript';srv.src=(options&&options.path)?options.path:'//srv.buysellads.com/ads/'+zoneKey+'.json';srv.src=this.appendQueryString(srv.src,'callback','_bsa_go');if(segment)srv.src=this.appendQueryString(srv.src,'segment',segment);if(options&&this.isset(options.ip))srv.src=this.appendQueryString(srv.src,'forwardedip',options.ip);if(!this.isset(window['_bsa_queue']))window['_bsa_queue']=[];if(options&&!this.isset(options.platforms)||!this.isset(options))options.platforms=['desktop','mobile'];if(_bsa[format].readyToInit!=false||(options&&options.testMode)||!_bsa.objExists(zoneKey))window['_bsa_queue'].push([format,zoneKey,segment,options]);if(_bsa[format].readyToInit!=false&&!options.testMode){srv.src+=this.frequencyCap();if(_bsa.objExists(zoneKey))document.getElementsByTagName('head')[0].appendChild(srv)}else if((options&&options.testMode)||!_bsa.objExists(zoneKey))_bsa_go(_bsa[format].testData);else _bsa[format](zoneKey,segment,options)},frequencyCap:function(){var day=_bsa.getCookie('_bsap_daycap'),life=_bsa.getCookie('_bsap_lifecap'),day=this.isset(day)?day.split(';')[0].split(','):[],life=this.isset(life)?life.split(';')[0].split(','):[];if(day.length||life.length){var freqcap=[];for(var i=0;i<day.length;i++){var adspot=day[i];for(var found=-1,find=0;find<freqcap.length&&found==-1;find++)if(freqcap[find][0]==adspot)found=find;if(found==-1)freqcap.push([adspot,1,0]);else freqcap[found][1]++}for(var i=0;i<life.length;i++){var adspot=day[i];for(var found=-1,find=0;find<freqcap.length&&found==-1;find++)if(freqcap[find][0]==adspot)found=find;if(found==-1)freqcap.push([adspot,0,1]);else freqcap[found][2]++}for(var i=0;i<freqcap.length;i++)freqcap[i]=freqcap[i][0]+':'+freqcap[i][1]+','+freqcap[i][2]}if(freqcap&&freqcap.length)return'&freqcap='+encodeURIComponent(freqcap.join(';'));else return''},appendQueryString:function(url,name,value){var re=new RegExp('([?&]'+name+'=)[^&]+','');function add(sep){url+=sep+name+'='+encodeURIComponent(value)}function change(){url=url.replace(re,'$1'+encodeURIComponent(value))}if(url.indexOf('?')===-1){add('?')}else{if(re.test(url)){change()}else{add('&')}}return url},clearQueue:function(){window['_bsa_queue'].shift()},link:function(link){var l=link.split('?encredirect='),time=Date.now()/1000|0,fulllink;if(typeof l[1]!='undefined')fulllink=l[0]+'?segment='+window['_bsa_queue'][2]+';&encredirect='+encodeURIComponent(l[1]);else if(l[0].search('srv.buysellads.com')>0)fulllink=l[0]+'?segment='+window['_bsa_queue'][2]+';';else fulllink=l[0];fulllink=fulllink.replace('[publisher]',window['_bsa_queue'][2]);fulllink=fulllink.replace('[timestamp]',time);return fulllink},drop:function(output,target,elType,idName){var div=document.createElement(elType);div.id=idName;div.innerHTML=output;if(!this.isset(target))where='body';for(i=0;i<document.querySelectorAll(target).length;i++)document.querySelectorAll(target)[i].appendChild(div)},hide:function(e){if(document.getElementById(e)){this.removeClass(document.getElementById(e),'_bsa_show');this.addClass(document.getElementById(e),'_bsa_hide')}},show:function(e){if(document.getElementById(e)){this.removeClass(document.getElementById(e),'_bsa_hide');this.addClass(document.getElementById(e),'_bsa_show')}},close:function(e){this.hide(e);if(this.isset(_bsa.setCookie))_bsa.setCookie(e,'hide',1)},hasClass:function(el,name){return new RegExp('(\\s|^)'+name+'(\\s|$)').test(el.className)},addClass:function(el,name){if(!this.hasClass(el,name))el.className+=(el.className?' ':'')+name},removeClass:function(el,name){if(this.hasClass(el,name))el.className=el.className.replace(new RegExp('(\\s|^)'+name+'(\\s|$)'),' ').replace(/^\s+|\s+$/g,'')},removeEl:function(el){if(typeof el!=='undefined'&&el!=null)el.parentNode.removeChild(el)},isHex:function(c){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(c)},isMobile:function(){var check=false;(function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))check=true})(navigator.userAgent||navigator.vendor||window.opera);return check},extend:function(target){for(var i=1;i<arguments.length;++i){var from=arguments[i];if(typeof from!=='object')continue;for(var j in from){if(from.hasOwnProperty(j)){target[j]=typeof from[j]==='object'?this.extend({},target[j],from[j]):from[j]}}}return target},isset:function(v){return typeof v!=='undefined'&&v!=null},exists:function(el){if(el===null)return false;return true},objExists:function(obj){var hasOwnProperty=Object.prototype.hasOwnProperty;if(obj==null)return false;if(obj.length>0)return true;if(obj.length===0)return false;for(var key in obj)if(hasOwnProperty.call(obj,key))return true;return false},getAttr:function(v,id){return document.getElementById(id).getAttribute('data-'+v)},getUrlVar:function(el,name){name=name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");var regexS="[\\?&]"+name+"=([^&#]*)",regex=new RegExp(regexS),results=regex.exec(el.src);if(results==null)return'';else return results[1]}};var _bsa_go=function(json){if(window['_bsa_queue'][0])if((window['_bsa_queue'][0][3]&&window['_bsa_queue'][0][3].platforms.indexOf('mobile')>-1&&_bsa.isMobile())||(window['_bsa_queue'][0][3]&&window['_bsa_queue'][0][3].platforms.indexOf('desktop')>-1&&!_bsa.isMobile()))for(i=json['ads'].length-1;i>=0;i--)if(json['ads'][i].statlink==null)json['ads'].splice(i,1);if(_bsa.isset(json['ads'][0].statlink)){for(var i=0;i<json['ads'].length;i++)_bsa_serving_callback(json['ads'][i].bannerid,json['ads'][i].zonekey,json['ads'][i].freqcap);_bsa[window['_bsa_queue'][0][0]](window['_bsa_queue'][0][1],window['_bsa_queue'][0][2],window['_bsa_queue'][0][3],json['ads'])}};_bsa.getCookie=function(name){var nameEQ=name+'=',ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' ')c=c.substring(1,c.length);if(c.indexOf(nameEQ)==0)return c.substring(nameEQ.length,c.length)}return null};_bsa.setCookie=function(name,value,days){if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires='; expires='+date.toGMTString()}else var expires='';document.cookie=name+'='+value+expires+'; path=/'};_bsa.removeCookie=function(name){this.setCookie(name,'',-1)};window['_bsa_serving_callback']=function(banner,zone,freqcap){var append=function(w,data,days){var c=document.cookie,i=c.indexOf(w+'='),existing=i>=0?c.substring(i+w.length+1).split(';')[0]+',':'',d=new Date();d.setTime(days*3600000+d);data=existing+data;data=data.substring(0,2048);document.cookie=w+'='+data+'; expires='+d.toGMTString()+'; path=\/'};if(freqcap){append('_bsap_daycap',banner,1);append('_bsap_lifecap',banner,365)}};_bsa.default=function(zoneKey,segment,options,ads){var disable_css=_bsa.isset(options)&&_bsa.isset(options.disable_css)?options.disable_css:false;_bsa.default.elID=function(options){return(options&&options.id)?options.id:'_default_'};_bsa.default.align=function(options){return(options&&options.align)?options.align:'vertical'};function css(colors){var c='<style type="text/css">',id=_bsa.default.elID(options);if(_bsa.default.align(options)=='vertical')c+='#'+id+'{flex-direction:column}#'+id+' ._default_{margin-bottom:10px;}';else c+='#'+id+'{flex-direction:row}#'+id+' a._default_{width:49%;}';c+='#'+id+'{position:relative;display:flex;}#'+id+' a._default_{display:block;position:relative;margin:5px;text-decoration:none;}#'+id+' a._default_:hover .default-title{text-decoration:underline;}#'+id+' .default-ad{position:absolute;right:0;top:0;background:#e1e1e1;color:#9a9a9a;padding:2px 3px;font-size:12.5px;border-radius:2px;font-weight:600;}#'+id+' a._default_ .default-image img{float:left;margin:0 10px 0 0;}#'+id+' a._default_ .default-title{display:block;margin:4px 0 0 0;font-size:16px;font-weight:600;padding:0 0 4px;}#'+id+' a._default_ .default-description{display:block;font-size:14px;color:#414141;margin-right:5%;}#'+id+' a._default_:hover .default-description{color:#111;}';c+='</style>';return c}function template(ads){var c='<span class="default-ad">ad</span>';for(var i=0;i<ads.length;i++)c+='<a href="'+ads[i].statlink+'" target="_blank" rel="nofollow" class="_default_"><span class="default-image"><img src="'+(_bsa.isset(ads[i].base64)?ads[i].base64:ads[i].image)+'" /></span><span class="default-title">'+ads[i].title+'</span><span class="default-description">'+ads[i].description+'</span></a>'+(_bsa.isset(ads[i].pixel)?'<img src="'+ads[i].pixel.replace('[timestamp]',ads[i].time)+'" style="display:none;" height="0" width="0" />':'')+'';return c}if(ads){_bsa.drop((disable_css?'':css(ads))+template(ads),options.target,'div',_bsa.default.elID(options));_bsa.clearQueue()}};_bsa.default.readyToInit=true;_bsa.default.testData={ads:[{barcolor:'#1a1b1c',barcolorHover:'rgba(0,0,0,.8)',callToActionTextColor:'#ffffff',callToActionColor:'#06c',callToActionColorHover:'#06c',callToActionTextColorHover:'#ffffff',textcolor:'#ffffff',textcolorHover:'#ffffff',barcolorHover:'#1a1b1c',statlink:'//demo.com/',image:'//dummyimage.com/80x80/000/1a1b1c',title:'This is a title',description:'Hi, please try my fancy new product over here!',calltoaction:'Learn More',base64:'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAFVBMVEUAAAAaGxwJCgoDAwMNDQ4GBgcQEBGUR2suAAAAb0lEQVR4Ae3RMYoGMQxDYeEnz/2PvIGw05gpXP6grwoPVATrJ0VERERERBWSur/7jsHogee7b1BSH/cldDD7grut0mFJWDKjb1SV5XeIzegbhYSLd2jPvnEn1P89DR59xVXmfvBoJJh9ioiIiIiIPyBgActqvt8OAAAAAElFTkSuQmCC'}]};_bsa.imageonly=function(zoneKey,segment,options,ads){var disable_css=_bsa.isset(options)&&_bsa.isset(options.disable_css)?options.disable_css:false;_bsa.default.elID=function(options){return(options&&options.id)?options.id:zoneKey};_bsa.default.align=function(options){return(options&&options.align)?options.align:'vertical'};function css(colors){var c='<style type="text/css">',id=_bsa.default.elID(options);if(_bsa.default.align(options)=='vertical')c+='#'+id+'{flex-direction:column}#'+id+' ._default_{margin-bottom:10px;}';else c+='#'+id+'{flex-direction:row}#'+id+' a._default_{width:49%;}';c+='#'+id+'{position:relative;display:flex;flex-wrap:wrap;}#'+id+' a._default_{display:block;position:relative;margin:5px;text-decoration:none;}#'+id+' a._default_:hover .default-title{text-decoration:underline;}#'+id+' .default-ad{position:absolute;right:0;top:0;background:#e1e1e1;color:#9a9a9a;padding:2px 3px;font-size:12.5px;border-radius:2px;font-weight:600;}#'+id+' a._default_ .default-image img{float:left;margin:0 10px 0 0;}#'+id+' a._default_ .default-title{display:block;margin:4px 0 0 0;font-size:16px;font-weight:600;padding:0 0 4px;}#'+id+' a._default_ .default-description{display:block;font-size:14px;color:#414141;margin-right:5%;}#'+id+' a._default_:hover .default-description{color:#111;}';c+='</style>';return c}function template(ads){var c='';for(var i=0;i<ads.length;i++)c+='<a href="'+ads[i].statlink+'" target="_blank" rel="nofollow" class="ad'+i+'"><img src="'+(_bsa.isset(ads[i].base64)?ads[i].base64:ads[i].image)+'" alt="'+ads[i].alt+'" width="'+ads[i].width+'" height="'+ads[i].height+'" /></a>'+(_bsa.isset(ads[i].pixel)?'<img src="'+ads[i].pixel.replace('[timestamp]',ads[i].time)+'" style="display:none;" height="0" width="0" />':'')+'';return c}if(ads){_bsa.drop((disable_css?'':css(ads))+template(ads),options.target,'div',_bsa.default.elID(options));_bsa.clearQueue()}};_bsa.imageonly.readyToInit=true;_bsa.imageonly.testData={ads:[{barcolor:'#1a1b1c',barcolorHover:'rgba(0,0,0,.8)',callToActionTextColor:'#ffffff',callToActionColor:'#06c',callToActionColorHover:'#06c',callToActionTextColorHover:'#ffffff',textcolor:'#ffffff',textcolorHover:'#ffffff',barcolorHover:'#1a1b1c',statlink:'//demo.com/',image:'//dummyimage.com/80x80/000/1a1b1c',title:'This is a title',description:'Hi, please try my fancy new product over here!',calltoaction:'Learn More',base64:'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAAFVBMVEUAAAAaGxwJCgoDAwMNDQ4GBgcQEBGUR2suAAAAb0lEQVR4Ae3RMYoGMQxDYeEnz/2PvIGw05gpXP6grwoPVATrJ0VERERERBWSur/7jsHogee7b1BSH/cldDD7grut0mFJWDKjb1SV5XeIzegbhYSLd2jPvnEn1P89DR59xVXmfvBoJJh9ioiIiIiIPyBgActqvt8OAAAAAElFTkSuQmCC'}]};_bsa.fancybar=function(zoneKey,segment,options,ads){var disable_css=_bsa.isset(options)&&_bsa.isset(options.disable_css)?options.disable_css:false;_bsa.fancybar.elID=function(options){return(options&&options.id)?options.id:'_fbn_'};function css(colors){var c=colors[0],barcolor=_bsa.isset(c)&&_bsa.isHex(c.barcolor)?c.barcolor:_bsa.fancybar.testData.ads[0].barcolor,barcolorHover=_bsa.isset(c)&&_bsa.isHex(c.barcolorHover)?c.barcolorHover:_bsa.fancybar.testData.ads[0].barcolorHover,callToActionTextColor=_bsa.isset(c)&&_bsa.isHex(c.callToActionTextColor)?c.callToActionTextColor:_bsa.fancybar.testData.ads[0].callToActionTextColor,callToActionColor=_bsa.isset(c)&&_bsa.isHex(c.callToActionColor)?c.callToActionColor:_bsa.fancybar.testData.ads[0].callToActionColor,callToActionColorHover=_bsa.isset(c)&&_bsa.isHex(c.callToActionColorHover)?c.callToActionColorHover:_bsa.fancybar.testData.ads[0].callToActionColorHover,callToActionTextColorHover=_bsa.isset(c)&&_bsa.isHex(c.callToActionTextColorHover)?c.callToActionTextColorHover:_bsa.fancybar.testData.ads[0].callToActionTextColorHover,textcolor=_bsa.isset(c)&&_bsa.isHex(c.textcolor)?c.textcolor:_bsa.fancybar.testData.ads[0].textcolor,textcolorHover=_bsa.isset(c)&&_bsa.isHex(c.textcolorHover)?c.textcolorHover:_bsa.fancybar.testData.ads[0].textcolorHover,barcolorHover=_bsa.isset(c)&&_bsa.isHex(c.barcolorHover)?c.barcolorHover:_bsa.fancybar.testData.ads[0].barcolorHover;return'<style type="text/css">._bsa_hide ._bsa_fancybar{top:-100%;}._bsa_show ._bsa_fancybar {top:0;}._bsa_fancybar{display:block;width:100%;float:left;position:fixed;top:-80px;left:0;right:0;z-index:100001;background-color:'+barcolor+';-webkit-transition:top 700ms;-moz-transition:top 700ms;-o-transition:top 700ms;transition:top 700ms;text-align:center;box-sizing:border-box;font-family:helvetica,arial,sans-serif;margin:0 auto;box-shadow: 0 1px 5px rgba(0,0,0,.6);backface-visibility:hidden;}._bsa_fancybar a {display:block;position:relative;text-align:left;text-decoration:none;margin:0 auto;float:left;width:100%;padding:10px 5%;box-sizing:border-box;}._bsa_fancybar a:hover {background:'+barcolorHover+';display: block;}._bsa_fancybar a .fancybar-cta {display:block;float:right;color:'+callToActionTextColor+';background-color:'+callToActionColor+';border-radius:2px;line-height:28px;font-size:15px;box-sizing:border-box;margin:0;padding:0 12px;}._bsa_fancybar a:hover .fancybar-cta {background:'+callToActionColorHover+';color:'+callToActionTextColorHover+';}._bsa_fancybar a .fancybar-logo {display:block;float:left;padding:0;margin:-10px 0;}._bsa_fancybar a .fancybar-logo img {display:block;max-width:110px;}._bsa_fancybar a .fancybar-text {float:left;font-size:16px;line-height:16px;padding:8px 0 0 15px;color:'+textcolor+';}._bsa_fancybar a:hover .fancybar-text {color:'+textcolorHover+';}@media all and (max-width:680px){._bsa_fancybar a .fancybar-logo{margin:0 auto;display:block;min-width:100%;}._bsa_fancybar a .fancybar-logo img {max-width:110px;display:block;margin:0 auto;}._bsa_fancybar a .fancybar-text{font-size:13px;line-height:13px;padding:10px 0;text-align:center;width:100%;display:block;}._bsa_fancybar a .fancybar-cta{display:block;float:left;width:100%;margin:0;box-sizing:border-box;text-align:center;}}._bsa_fancybar .fancybar-close{display:block;position:absolute;top:11px;right:15px;padding:5px 10px 7px;border-radius: 2px;color:'+textcolor+';z-index:2;font-size:14px;line-height:12px;}._bsa_fancybar .fancybar-close:hover{cursor:pointer;background:'+barcolorHover+';}</style>'}function template(ads){var a=ads[0],link=_bsa.isset(a)&&_bsa.isset(a.statlink)?_bsa.link(a.statlink):_bsa.fancybar.testData.ads[0].statlink,image=_bsa.isset(a)&&_bsa.isset(a.image)?a.image:_bsa.fancybar.testData.ads[0].image,base64=_bsa.isset(a)&&_bsa.isset(a.base64)?a.base64:_bsa.fancybar.testData.ads[0].base64,text=_bsa.isset(a)&&_bsa.isset(a.text)?a.text:_bsa.fancybar.testData.ads[0].text,calltoaction=_bsa.isset(a)&&_bsa.isset(a.calltoaction)?a.calltoaction:_bsa.fancybar.testData.ads[0].calltoaction,pixel=_bsa.isset(a)&&_bsa.isset(a.pixel)?a.pixel:null,time=Date.now()/1000|0;return'<div class="_bsa_fancybar"><span class="fancybar-close" onclick="_bsa.close(\''+_bsa.fancybar.elID(options)+'\')">x</span><a href="'+link+'" target="_blank" rel="nofollow"><span class="fancybar-logo"><img src="'+(_bsa.isset(base64)?base64:image)+'" /></span><span class="fancybar-cta">'+calltoaction+'</span><span class="fancybar-text">'+text+'</span></a>'+(_bsa.isset(pixel)?'<img src="'+pixel.replace('[timestamp]',time)+'" style="display:none;" height="0" width="0" />':'')+'</div>'}if(!_bsa.getCookie(_bsa.fancybar.elID(options))){var _fancybar_didScroll;var _fancybar_didDrop=false;window.onscroll=function(){_fancybar_didScroll=true};var _fancybar_scrollInterval=setInterval(function(){if(_fancybar_didScroll&&!_bsa.getCookie(_bsa.fancybar.elID(options))){_fancybar_didScroll=false;var scrollTop=(window.pageYOffset!==undefined)?window.pageYOffset:(document.documentElement||document.body.parentNode||document.body).scrollTop;if(scrollTop>=100&&!document.getElementById(_bsa.fancybar.elID(options))){_bsa.fancybar.readyToInit=true;_bsa.init('fancybar',zoneKey,segment,options)}else if(scrollTop>=100){_bsa.show(_bsa.fancybar.elID(options))}if(scrollTop<100){_bsa.hide(_bsa.fancybar.elID(options))}}},500)}if(ads){_bsa.drop((disable_css?'':css(ads))+template(ads),'body','div',_bsa.fancybar.elID(options));_bsa.clearQueue()}};_bsa.fancybar.readyToInit=false;_bsa.fancybar.testData={ads:[{barcolor:'#1a1b1c',barcolorHover:'rgba(0,0,0,.8)',callToActionTextColor:'#ffffff',callToActionColor:'#06c',callToActionColorHover:'#06c',callToActionTextColorHover:'#ffffff',textcolor:'#ffffff',textcolorHover:'#ffffff',barcolorHover:'#1a1b1c',statlink:'//demo.com/',image:'//dummyimage.com/125x50/000/1a1b1c',text:'Hi, please try my fancy new product over here!',calltoaction:'Learn More',base64:'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAH0AAAAyBAMAAACDoMmvAAAAG1BMVEUAAAAaGxwGBgcNDQ4QEBEWFxgJCgoDAwMTFBUu0R9eAAABlElEQVRIie2TsVLCQBCGjyQkluIIUh6jqKWoKGVmEGqQMVIeM2AsAQdtkQjDY7ubDclxSbSwsLl/JrfH7X67e5vAmJaWltZfdYqLM9520d6ArpQAEw8xpvUl0rhZwrURvDSfwR5n8IU28aPu+Xqa4jsjXH14tlDiJKPBGUHGEWNWT3Uu3JoU5xxm8WSK2NdA8TkDFvNFwYwsviaZieKzxT4f92cKzO7itk4nLekuGelhTpzZy90PowLLIhzlK520wxo8n4fe7FVneB8dC7xcyJ89BVB2g/sDkc970HXVf+/wXQNUnjU2H+PH0A28+nIT3oS7O5xseO5Hw57D0/ydr+1G45ExSlIszHbzM4+fB+mBjNMXSZDlsiDKk8PXY88tmcV1JQkyXUpb4Dm84cUHVB+/rKQY1J9IxdK8FEuZYPhG0gD0PeNx7jRvx7dndi8qLyeF4tZSHpLCN3m4N33mNMKtiYM2lri9m7I35IZTNkmPn/gSCjr+HPZXasBleV3FnFa576m+lObpPwhzLvatlpbW/+obifk8WyshfY8AAAAASUVORK5CYII='}]}; \ No newline at end of file
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/prettify.min.js b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/prettify.min.js
new file mode 100644
index 0000000..eef5ad7
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/prettify.min.js
@@ -0,0 +1,28 @@
+var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;
+(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a=
+[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c<i;++c){var j=f[c];if(/\\[bdsw]/i.test(j))a.push(j);else{var j=m(j),d;c+2<i&&"-"===f[c+1]?(d=m(f[c+2]),c+=2):d=j;b.push([j,d]);d<65||j>122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;c<b.length;++c)i=b[c],i[0]<=j[1]+1?j[1]=Math.max(j[1],i[1]):f.push(j=i);b=["["];o&&b.push("^");b.push.apply(b,a);for(c=0;c<
+f.length;++c)i=f[c],b.push(e(i[0])),i[1]>i[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c<b;++c){var j=f[c];j==="("?++i:"\\"===j.charAt(0)&&(j=+j.substring(1))&&j<=i&&(d[j]=-1)}for(c=1;c<d.length;++c)-1===d[c]&&(d[c]=++t);for(i=c=0;c<b;++c)j=f[c],j==="("?(++i,d[i]===void 0&&(f[c]="(?:")):"\\"===j.charAt(0)&&
+(j=+j.substring(1))&&j<=i&&(f[c]="\\"+d[i]);for(i=c=0;c<b;++c)"^"===f[c]&&"^"!==f[c+1]&&(f[c]="");if(a.ignoreCase&&s)for(c=0;c<b;++c)j=f[c],a=j.charAt(0),j.length>=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p<d;++p){var g=a[p];if(g.ignoreCase)l=!0;else if(/[a-z]/i.test(g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){s=!0;l=!1;break}}for(var r=
+{b:8,t:9,n:10,v:11,f:12,r:13},n=[],p=0,d=a.length;p<d;++p){g=a[p];if(g.global||g.multiline)throw Error(""+g);n.push("(?:"+y(g)+")")}return RegExp(n.join("|"),l?"gi":"g")}function M(a){function m(a){switch(a.nodeType){case 1:if(e.test(a.className))break;for(var g=a.firstChild;g;g=g.nextSibling)m(g);g=a.nodeName;if("BR"===g||"LI"===g)h[s]="\n",t[s<<1]=y++,t[s++<<1|1]=a;break;case 3:case 4:g=a.nodeValue,g.length&&(g=p?g.replace(/\r\n?/g,"\n"):g.replace(/[\t\n\r ]+/g," "),h[s]=g,t[s<<1]=y,y+=g.length,
+t[s++<<1|1]=a)}}var e=/(?:^|\s)nocode(?:\s|$)/,h=[],y=0,t=[],s=0,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=document.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);m(a);return{a:h.join("").replace(/\n$/,""),c:t}}function B(a,m,e,h){m&&(a={a:m,d:a},e(a),h.push.apply(h,a.e))}function x(a,m){function e(a){for(var l=a.d,p=[l,"pln"],d=0,g=a.a.match(y)||[],r={},n=0,z=g.length;n<z;++n){var f=g[n],b=r[f],o=void 0,c;if(typeof b===
+"string")c=!1;else{var i=h[f.charAt(0)];if(i)o=f.match(i[1]),b=i[0];else{for(c=0;c<t;++c)if(i=m[c],o=f.match(i[1])){b=i[0];break}o||(b="pln")}if((c=b.length>=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m),
+l=[],p={},d=0,g=e.length;d<g;++d){var r=e[d],n=r[3];if(n)for(var k=n.length;--k>=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,
+q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/,
+q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g,
+"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a),
+a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e}
+for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g<d.length;++g)e(d[g]);m===(m|0)&&d[0].setAttribute("value",
+m);var r=s.createElement("OL");r.className="linenums";for(var n=Math.max(0,m-1|0)||0,g=0,z=d.length;g<z;++g)l=d[g],l.className="L"+(g+n)%10,l.firstChild||l.appendChild(s.createTextNode("\xa0")),r.appendChild(l);a.appendChild(r)}function k(a,m){for(var e=m.length;--e>=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(m)?"default-markup":"default-code";return A[a]}function E(a){var m=
+a.g;try{var e=M(a.h),h=e.a;a.a=h;a.c=e.c;a.d=0;C(m,h)(a);var k=/\bMSIE\b/.test(navigator.userAgent),m=/\n/g,t=a.a,s=t.length,e=0,l=a.c,p=l.length,h=0,d=a.e,g=d.length,a=0;d[g]=s;var r,n;for(n=r=0;n<g;)d[n]!==d[n+2]?(d[r++]=d[n++],d[r++]=d[n++]):n+=2;g=r;for(n=r=0;n<g;){for(var z=d[n],f=d[n+1],b=n+2;b+2<=g&&d[b+1]===f;)b+=2;d[r++]=z;d[r++]=f;n=b}for(d.length=r;h<p;){var o=l[h+2]||s,c=d[a+2]||s,b=Math.min(o,c),i=l[h+1],j;if(i.nodeType!==1&&(j=t.substring(e,b))){k&&(j=j.replace(m,"\r"));i.nodeValue=
+j;var u=i.ownerDocument,v=u.createElement("SPAN");v.className=d[a+1];var x=i.parentNode;x.replaceChild(v,i);v.appendChild(i);e<o&&(l[h+1]=i=u.createTextNode(t.substring(b,o)),x.insertBefore(i,v.nextSibling))}e=b;e>=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
+"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],
+H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
+J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+
+I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),
+["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",
+/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),
+["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes",
+hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p<h.length&&l.now()<e;p++){var n=h[p],k=n.className;if(k.indexOf("prettyprint")>=0){var k=k.match(g),f,b;if(b=
+!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p<h.length?setTimeout(m,
+250):a&&a()}for(var e=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],h=[],k=0;k<e.length;++k)for(var t=0,s=e[k].length;t<s;++t)h.push(e[k][t]);var e=q,l=Date;l.now||(l={now:function(){return+new Date}});var p=0,d,g=/\blang(?:uage)?-([\w.]+)(?!\S)/;m()};window.PR={createSimpleLexer:x,registerLangHandler:k,sourceDecorator:u,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",
+PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})();
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/respond.min.js b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/respond.min.js
new file mode 100644
index 0000000..56418a2
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/respond.min.js
@@ -0,0 +1,6 @@
+/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas. Dual MIT/BSD license */
+/*! NOTE: If you're already including a window.matchMedia polyfill via Modernizr or otherwise, you don't need this part */
+window.matchMedia=window.matchMedia||function(a){"use strict";var c,d=a.documentElement,e=d.firstElementChild||d.firstChild,f=a.createElement("body"),g=a.createElement("div");return g.id="mq-test-1",g.style.cssText="position:absolute;top:-100em",f.style.background="none",f.appendChild(g),function(a){return g.innerHTML='&shy;<style media="'+a+'"> #mq-test-1 { width: 42px; }</style>',d.insertBefore(f,e),c=42===g.offsetWidth,d.removeChild(f),{matches:c,media:a}}}(document);
+
+/*! Respond.js v1.1.0: min/max-width media query polyfill. (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs */
+(function(a){"use strict";function x(){u(!0)}var b={};a.respond=b,b.update=function(){},b.mediaQueriesSupported=a.matchMedia&&a.matchMedia("only all").matches,b.mediaQueriesSupported;var q,r,t,c=a.document,d=c.documentElement,e=[],f=[],g=[],h={},i=30,j=c.getElementsByTagName("head")[0]||d,k=c.getElementsByTagName("base")[0],l=j.getElementsByTagName("link"),m=[],n=function(){for(var b=0;l.length>b;b++){var c=l[b],d=c.href,e=c.media,f=c.rel&&"stylesheet"===c.rel.toLowerCase();d&&f&&!h[d]&&(c.styleSheet&&c.styleSheet.rawCssText?(p(c.styleSheet.rawCssText,d,e),h[d]=!0):(!/^([a-zA-Z:]*\/\/)/.test(d)&&!k||d.replace(RegExp.$1,"").split("/")[0]===a.location.host)&&m.push({href:d,media:e}))}o()},o=function(){if(m.length){var a=m.shift();v(a.href,function(b){p(b,a.href,a.media),h[a.href]=!0,setTimeout(function(){o()},0)})}},p=function(a,b,c){var d=a.match(/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi),g=d&&d.length||0;b=b.substring(0,b.lastIndexOf("/"));var h=function(a){return a.replace(/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,"$1"+b+"$2$3")},i=!g&&c;b.length&&(b+="/"),i&&(g=1);for(var j=0;g>j;j++){var k,l,m,n;i?(k=c,f.push(h(a))):(k=d[j].match(/@media *([^\{]+)\{([\S\s]+?)$/)&&RegExp.$1,f.push(RegExp.$2&&h(RegExp.$2))),m=k.split(","),n=m.length;for(var o=0;n>o;o++)l=m[o],e.push({media:l.split("(")[0].match(/(only\s+)?([a-zA-Z]+)\s?/)&&RegExp.$2||"all",rules:f.length-1,hasquery:l.indexOf("(")>-1,minw:l.match(/\(min\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:l.match(/\(max\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}u()},s=function(){var a,b=c.createElement("div"),e=c.body,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",e||(e=f=c.createElement("body"),e.style.background="none"),e.appendChild(b),d.insertBefore(e,d.firstChild),a=b.offsetWidth,f?d.removeChild(e):e.removeChild(b),a=t=parseFloat(a)},u=function(a){var b="clientWidth",h=d[b],k="CSS1Compat"===c.compatMode&&h||c.body[b]||h,m={},n=l[l.length-1],o=(new Date).getTime();if(a&&q&&i>o-q)return clearTimeout(r),r=setTimeout(u,i),void 0;q=o;for(var p in e)if(e.hasOwnProperty(p)){var v=e[p],w=v.minw,x=v.maxw,y=null===w,z=null===x,A="em";w&&(w=parseFloat(w)*(w.indexOf(A)>-1?t||s():1)),x&&(x=parseFloat(x)*(x.indexOf(A)>-1?t||s():1)),v.hasquery&&(y&&z||!(y||k>=w)||!(z||x>=k))||(m[v.media]||(m[v.media]=[]),m[v.media].push(f[v.rules]))}for(var B in g)g.hasOwnProperty(B)&&g[B]&&g[B].parentNode===j&&j.removeChild(g[B]);for(var C in m)if(m.hasOwnProperty(C)){var D=c.createElement("style"),E=m[C].join("\n");D.type="text/css",D.media=C,j.insertBefore(D,n.nextSibling),D.styleSheet?D.styleSheet.cssText=E:D.appendChild(c.createTextNode(E)),g.push(D)}},v=function(a,b){var c=w();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))},w=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}();n(),b.update=n,a.addEventListener?a.addEventListener("resize",x,!1):a.attachEvent&&a.attachEvent("onresize",x)})(this);
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/search.js b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/search.js
new file mode 100644
index 0000000..1c4d447
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/search.js
@@ -0,0 +1,92 @@
+$(function() {
+ var SearchView = Backbone.View.extend({
+ events: {
+ "click #search-clear": "clear"
+ },
+
+ initialize: function() {
+ this.algolia = algoliasearch("M19DXW5X0Q", "c79b2e61519372a99fa5890db070064c");
+ this.algoliaHelper = algoliasearchHelper(this.algolia, "font_awesome");
+ this.template = _.template($("#results-template").html());
+
+ this.$searchInput = this.$("#search-input");
+ this.$searchResultsSection = this.$("#search-results");
+ this.$searchInputClear = this.$("#search-clear");
+ this.$iconsSection = this.$("#icons");
+
+ this.$searchInput.on("keyup", _.debounce(_.bind(this.search, this), 200));
+ this.algoliaHelper.on("result", _.bind(this.showResults, this));
+ },
+
+ search: function(event) {
+ var query = this.$searchInput.val();
+
+ if (query !== "") {
+ this. algoliaHelper.setQuery(query).search();
+ } else {
+ this.clearResults();
+ }
+ },
+
+ clear: function(event) {
+ event.preventDefault();
+
+ this.clearResults();
+ },
+
+ showResults: function(content, state) {
+ this.$searchResultsSection.html("");
+ this.$searchResultsSection.removeClass("hide");
+ this.$searchInputClear.removeClass("hide");
+ this.$iconsSection.addClass("hide");
+
+ var results = [];
+
+ _.each(content.hits, function(result) {
+ results.push(new SearchResultView({ result: result }).render())
+ });
+
+ this.$searchResultsSection.html(this.template({ content: content, results: results.join("") }));
+ },
+
+ clearResults: function() {
+ this.$searchInput.val("").focus();
+ this.$searchResultsSection.addClass("hide");
+ this.$searchResultsSection.html("");
+ this.$searchInputClear.addClass("hide");
+ this.$iconsSection.removeClass("hide");
+ }
+ });
+
+ var SearchResultView = Backbone.View.extend({
+ initialize: function(options) {
+ this.template = _.template($("#result-template").html());
+ this.result = options.result
+ },
+
+ render: function() {
+ var matches = [];
+
+ this.pullMatches(matches, this.result._highlightResult.aliases);
+ this.pullMatches(matches, this.result._highlightResult.synonyms);
+
+ return this.template({ result: this.result, matches: matches });
+ },
+
+ pullMatches: function(matches, list) {
+ if (list !== undefined) {
+ _.each(list, function(highlight) {
+ if (highlight.matchLevel !== "none") {
+ matches.push(highlight.value)
+ }
+ })
+ }
+ }
+ });
+
+ var $searchViewElement = $("[data-view=search]");
+
+ if ($searchViewElement.length > 0) {
+ new SearchView({ el: $searchViewElement });
+ }
+});
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/share.min.js b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/share.min.js
new file mode 100644
index 0000000..d3588e9
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/share.min.js
@@ -0,0 +1 @@
+"use strict";document.addEventListener("DOMContentLoaded",function(){function e(e){if(e.match(/^https:\/\//i))return e;var t=e.split("/").filter(function(e){return e.indexOf(".")>-1});return"https://"+encodeURIComponent(t)}for(var t=document.querySelector("h1"),n=document.querySelector("head").querySelector("title"),o=document.querySelector('meta[property="og:title"]'),r=null===n?"":n.textContent,i=null===o?"":o.content,l=null===t?"":t.textContent,u=r||i||l,a=encodeURIComponent(window.location.href),c=document.querySelectorAll(".share-btn"),d=[],s=0;s<c.length;s++)d.push(c[s]);for(var p=document.querySelectorAll(".popup input"),f=[],h=0;h<p.length;h++)f.push(p[h]);var m=function(t){var n="podurl"!==t.target.name,o=n?t.target.value:t.target.nextSibling.value,r=n?t.target.previousSibling.value:t.target.value,i=encodeURI(u).replace(/%20/g,"+"),l=e(r);if("diaspora"===o||"friendica"===o||"socialhome"===o)window.open(l+"/bookmarklet?url="+a+"&title="+i);else if("gnusocial"===o)window.open(l+"/notice/new?status_textarea="+i+"&"+a);else if("mastodon"===o)window.open(l+"/share?text="+i+" "+a);else{if("hubzilla"!==o)return;window.open(l+"/rpost?f=&url="+a+"&title="+i)}};d.forEach(function(e){return e.addEventListener("click",m,!1)}),f.forEach(function(e){return e.addEventListener("keypress",function(e){13===e.keyCode&&m(e)})})}); \ No newline at end of file
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/site.js b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/site.js
new file mode 100644
index 0000000..c6592a6
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/js/site.js
@@ -0,0 +1,60 @@
+$(function () {
+ $("#newsletter").validate();
+
+ var ads = [
+ {
+ quote: "Get 2,000+ icons with Font Awesome Pro and <strong>ALL</strong> KS rewards for just $60!",
+ class: "fa5",
+ url: "https://fontawesome.com/?utm_source=font_awesome_homepage&utm_medium=display&utm_campaign=fa5_released&utm_content=banner",
+ btn_text: "Check out FA Pro &nbsp;<i class='fas fas-external-link'></i>",
+ },
+ ];
+
+ // selectAd();
+
+ // start the icon carousel
+ $('#icon-carousel').carousel({
+ interval: 5000
+ });
+
+ $('[data-toggle="tooltip"]').tooltip();
+ $('[data-toggle="popover"]').popover();
+
+ if (storageAvailable('localStorage') && !localStorage.seenFA5ReleasedModal) {
+ $('#modal-fa5')
+ .modal('toggle')
+ .on('hidden.bs.modal', function (e) {
+ $('#fa5-iframe').remove();
+ });
+ ;
+ }
+
+ if (storageAvailable('localStorage')) {
+ localStorage.seenFA5ReleasedModal = true;
+ // Yippee! We can use localStorage awesomeness
+ }
+
+ function storageAvailable(type) {
+ try {
+ var storage = window[type],
+ x = '__storage_test__';
+ storage.setItem(x, x);
+ storage.removeItem(x);
+ return true;
+ }
+ catch(e) {
+ return false;
+ }
+ }
+
+ function selectAd() {
+ random_number = Math.floor(Math.random() * ads.length);
+ random_ad = ads[random_number];
+
+ $('#banner').addClass(random_ad.class);
+ $('#rotating-message').html(random_ad.quote);
+ $('#rotating-url').attr("href", random_ad.url);
+ $('#rotating-url').html(random_ad.btn_text);
+ $('#banner').collapse('show');
+ }
+});
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/.csscomb.json b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/.csscomb.json
new file mode 100644
index 0000000..40695a4
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/.csscomb.json
@@ -0,0 +1,304 @@
+{
+ "always-semicolon": true,
+ "block-indent": 2,
+ "color-case": "lower",
+ "color-shorthand": true,
+ "element-case": "lower",
+ "eof-newline": true,
+ "leading-zero": false,
+ "remove-empty-rulesets": true,
+ "space-after-colon": 1,
+ "space-after-combinator": 1,
+ "space-before-selector-delimiter": 0,
+ "space-between-declarations": "\n",
+ "space-after-opening-brace": "\n",
+ "space-before-closing-brace": "\n",
+ "space-before-colon": 0,
+ "space-before-combinator": 1,
+ "space-before-opening-brace": 1,
+ "strip-spaces": true,
+ "unitless-zero": true,
+ "vendor-prefix-align": true,
+ "sort-order": [
+ [
+ "position",
+ "top",
+ "right",
+ "bottom",
+ "left",
+ "z-index",
+ "display",
+ "float",
+ "width",
+ "min-width",
+ "max-width",
+ "height",
+ "min-height",
+ "max-height",
+ "-webkit-box-sizing",
+ "-moz-box-sizing",
+ "box-sizing",
+ "-webkit-appearance",
+ "padding",
+ "padding-top",
+ "padding-right",
+ "padding-bottom",
+ "padding-left",
+ "margin",
+ "margin-top",
+ "margin-right",
+ "margin-bottom",
+ "margin-left",
+ "overflow",
+ "overflow-x",
+ "overflow-y",
+ "-webkit-overflow-scrolling",
+ "-ms-overflow-x",
+ "-ms-overflow-y",
+ "-ms-overflow-style",
+ "clip",
+ "clear",
+ "font",
+ "font-family",
+ "font-size",
+ "font-style",
+ "font-weight",
+ "font-variant",
+ "font-size-adjust",
+ "font-stretch",
+ "font-effect",
+ "font-emphasize",
+ "font-emphasize-position",
+ "font-emphasize-style",
+ "font-smooth",
+ "-webkit-hyphens",
+ "-moz-hyphens",
+ "hyphens",
+ "line-height",
+ "color",
+ "text-align",
+ "-webkit-text-align-last",
+ "-moz-text-align-last",
+ "-ms-text-align-last",
+ "text-align-last",
+ "text-emphasis",
+ "text-emphasis-color",
+ "text-emphasis-style",
+ "text-emphasis-position",
+ "text-decoration",
+ "text-indent",
+ "text-justify",
+ "text-outline",
+ "-ms-text-overflow",
+ "text-overflow",
+ "text-overflow-ellipsis",
+ "text-overflow-mode",
+ "text-shadow",
+ "text-transform",
+ "text-wrap",
+ "-webkit-text-size-adjust",
+ "-ms-text-size-adjust",
+ "letter-spacing",
+ "-ms-word-break",
+ "word-break",
+ "word-spacing",
+ "-ms-word-wrap",
+ "word-wrap",
+ "-moz-tab-size",
+ "-o-tab-size",
+ "tab-size",
+ "white-space",
+ "vertical-align",
+ "list-style",
+ "list-style-position",
+ "list-style-type",
+ "list-style-image",
+ "pointer-events",
+ "-ms-touch-action",
+ "touch-action",
+ "cursor",
+ "visibility",
+ "zoom",
+ "flex-direction",
+ "flex-order",
+ "flex-pack",
+ "flex-align",
+ "table-layout",
+ "empty-cells",
+ "caption-side",
+ "border-spacing",
+ "border-collapse",
+ "content",
+ "quotes",
+ "counter-reset",
+ "counter-increment",
+ "resize",
+ "-webkit-user-select",
+ "-moz-user-select",
+ "-ms-user-select",
+ "-o-user-select",
+ "user-select",
+ "nav-index",
+ "nav-up",
+ "nav-right",
+ "nav-down",
+ "nav-left",
+ "background",
+ "background-color",
+ "background-image",
+ "-ms-filter:\\'progid:DXImageTransform.Microsoft.gradient",
+ "filter:progid:DXImageTransform.Microsoft.gradient",
+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader",
+ "filter",
+ "background-repeat",
+ "background-attachment",
+ "background-position",
+ "background-position-x",
+ "background-position-y",
+ "-webkit-background-clip",
+ "-moz-background-clip",
+ "background-clip",
+ "background-origin",
+ "-webkit-background-size",
+ "-moz-background-size",
+ "-o-background-size",
+ "background-size",
+ "border",
+ "border-color",
+ "border-style",
+ "border-width",
+ "border-top",
+ "border-top-color",
+ "border-top-style",
+ "border-top-width",
+ "border-right",
+ "border-right-color",
+ "border-right-style",
+ "border-right-width",
+ "border-bottom",
+ "border-bottom-color",
+ "border-bottom-style",
+ "border-bottom-width",
+ "border-left",
+ "border-left-color",
+ "border-left-style",
+ "border-left-width",
+ "border-radius",
+ "border-top-left-radius",
+ "border-top-right-radius",
+ "border-bottom-right-radius",
+ "border-bottom-left-radius",
+ "-webkit-border-image",
+ "-moz-border-image",
+ "-o-border-image",
+ "border-image",
+ "-webkit-border-image-source",
+ "-moz-border-image-source",
+ "-o-border-image-source",
+ "border-image-source",
+ "-webkit-border-image-slice",
+ "-moz-border-image-slice",
+ "-o-border-image-slice",
+ "border-image-slice",
+ "-webkit-border-image-width",
+ "-moz-border-image-width",
+ "-o-border-image-width",
+ "border-image-width",
+ "-webkit-border-image-outset",
+ "-moz-border-image-outset",
+ "-o-border-image-outset",
+ "border-image-outset",
+ "-webkit-border-image-repeat",
+ "-moz-border-image-repeat",
+ "-o-border-image-repeat",
+ "border-image-repeat",
+ "outline",
+ "outline-width",
+ "outline-style",
+ "outline-color",
+ "outline-offset",
+ "-webkit-box-shadow",
+ "-moz-box-shadow",
+ "box-shadow",
+ "filter:progid:DXImageTransform.Microsoft.Alpha(Opacity",
+ "-ms-filter:\\'progid:DXImageTransform.Microsoft.Alpha",
+ "opacity",
+ "-ms-interpolation-mode",
+ "-webkit-transition",
+ "-moz-transition",
+ "-ms-transition",
+ "-o-transition",
+ "transition",
+ "-webkit-transition-delay",
+ "-moz-transition-delay",
+ "-ms-transition-delay",
+ "-o-transition-delay",
+ "transition-delay",
+ "-webkit-transition-timing-function",
+ "-moz-transition-timing-function",
+ "-ms-transition-timing-function",
+ "-o-transition-timing-function",
+ "transition-timing-function",
+ "-webkit-transition-duration",
+ "-moz-transition-duration",
+ "-ms-transition-duration",
+ "-o-transition-duration",
+ "transition-duration",
+ "-webkit-transition-property",
+ "-moz-transition-property",
+ "-ms-transition-property",
+ "-o-transition-property",
+ "transition-property",
+ "-webkit-transform",
+ "-moz-transform",
+ "-ms-transform",
+ "-o-transform",
+ "transform",
+ "-webkit-transform-origin",
+ "-moz-transform-origin",
+ "-ms-transform-origin",
+ "-o-transform-origin",
+ "transform-origin",
+ "-webkit-animation",
+ "-moz-animation",
+ "-ms-animation",
+ "-o-animation",
+ "animation",
+ "-webkit-animation-name",
+ "-moz-animation-name",
+ "-ms-animation-name",
+ "-o-animation-name",
+ "animation-name",
+ "-webkit-animation-duration",
+ "-moz-animation-duration",
+ "-ms-animation-duration",
+ "-o-animation-duration",
+ "animation-duration",
+ "-webkit-animation-play-state",
+ "-moz-animation-play-state",
+ "-ms-animation-play-state",
+ "-o-animation-play-state",
+ "animation-play-state",
+ "-webkit-animation-timing-function",
+ "-moz-animation-timing-function",
+ "-ms-animation-timing-function",
+ "-o-animation-timing-function",
+ "animation-timing-function",
+ "-webkit-animation-delay",
+ "-moz-animation-delay",
+ "-ms-animation-delay",
+ "-o-animation-delay",
+ "animation-delay",
+ "-webkit-animation-iteration-count",
+ "-moz-animation-iteration-count",
+ "-ms-animation-iteration-count",
+ "-o-animation-iteration-count",
+ "animation-iteration-count",
+ "-webkit-animation-direction",
+ "-moz-animation-direction",
+ "-ms-animation-direction",
+ "-o-animation-direction",
+ "animation-direction"
+ ]
+ ]
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/.csslintrc b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/.csslintrc
new file mode 100644
index 0000000..005b862
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/.csslintrc
@@ -0,0 +1,19 @@
+{
+ "adjoining-classes": false,
+ "box-sizing": false,
+ "box-model": false,
+ "compatible-vendor-prefixes": false,
+ "floats": false,
+ "font-sizes": false,
+ "gradients": false,
+ "important": false,
+ "known-properties": false,
+ "outline-none": false,
+ "qualified-headings": false,
+ "regex-selectors": false,
+ "shorthand": false,
+ "text-indent": false,
+ "unique-headings": false,
+ "universal-selector": false,
+ "unqualified-attributes": false
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/alerts.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/alerts.less
new file mode 100644
index 0000000..c4199db
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/alerts.less
@@ -0,0 +1,73 @@
+//
+// Alerts
+// --------------------------------------------------
+
+
+// Base styles
+// -------------------------
+
+.alert {
+ padding: @alert-padding;
+ margin-bottom: @line-height-computed;
+ border: 1px solid transparent;
+ border-radius: @alert-border-radius;
+
+ // Headings for larger alerts
+ h4 {
+ margin-top: 0;
+ // Specified for the h4 to prevent conflicts of changing @headings-color
+ color: inherit;
+ }
+
+ // Provide class for links that match alerts
+ .alert-link {
+ font-weight: @alert-link-font-weight;
+ }
+
+ // Improve alignment and spacing of inner content
+ > p,
+ > ul {
+ margin-bottom: 0;
+ }
+
+ > p + p {
+ margin-top: 5px;
+ }
+}
+
+// Dismissible alerts
+//
+// Expand the right padding and account for the close button's positioning.
+
+.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.
+.alert-dismissible {
+ padding-right: (@alert-padding + 20);
+
+ // Adjust close link position
+ .close {
+ position: relative;
+ top: -2px;
+ right: -21px;
+ color: inherit;
+ }
+}
+
+// Alternate styles
+//
+// Generate contextual modifier classes for colorizing the alert.
+
+.alert-success {
+ .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);
+}
+
+.alert-info {
+ .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);
+}
+
+.alert-warning {
+ .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);
+}
+
+.alert-danger {
+ .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/badges.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/badges.less
new file mode 100644
index 0000000..6ee16dc
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/badges.less
@@ -0,0 +1,66 @@
+//
+// Badges
+// --------------------------------------------------
+
+
+// Base class
+.badge {
+ display: inline-block;
+ min-width: 10px;
+ padding: 3px 7px;
+ font-size: @font-size-small;
+ font-weight: @badge-font-weight;
+ color: @badge-color;
+ line-height: @badge-line-height;
+ vertical-align: middle;
+ white-space: nowrap;
+ text-align: center;
+ background-color: @badge-bg;
+ border-radius: @badge-border-radius;
+
+ // Empty badges collapse automatically (not available in IE8)
+ &:empty {
+ display: none;
+ }
+
+ // Quick fix for badges in buttons
+ .btn & {
+ position: relative;
+ top: -1px;
+ }
+
+ .btn-xs &,
+ .btn-group-xs > .btn & {
+ top: 0;
+ padding: 1px 5px;
+ }
+
+ // Hover state, but only for links
+ a& {
+ &:hover,
+ &:focus {
+ color: @badge-link-hover-color;
+ text-decoration: none;
+ cursor: pointer;
+ }
+ }
+
+ // Account for badges in navs
+ .list-group-item.active > &,
+ .nav-pills > .active > a > & {
+ color: @badge-active-color;
+ background-color: @badge-active-bg;
+ }
+
+ .list-group-item > & {
+ float: right;
+ }
+
+ .list-group-item > & + & {
+ margin-right: 5px;
+ }
+
+ .nav-pills > li > a > & {
+ margin-left: 3px;
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/bootstrap.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/bootstrap.less
new file mode 100644
index 0000000..4b9916e
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/bootstrap.less
@@ -0,0 +1,56 @@
+/*!
+ * Bootstrap v3.3.5 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+
+// Core variables and mixins
+@import "variables.less";
+@import "mixins.less";
+
+// Reset and dependencies
+@import "normalize.less";
+@import "print.less";
+@import "glyphicons.less";
+
+// Core CSS
+@import "scaffolding.less";
+@import "type.less";
+@import "code.less";
+@import "grid.less";
+@import "tables.less";
+@import "forms.less";
+@import "buttons.less";
+
+// Components
+@import "component-animations.less";
+@import "dropdowns.less";
+@import "button-groups.less";
+@import "input-groups.less";
+@import "navs.less";
+@import "navbar.less";
+@import "breadcrumbs.less";
+@import "pagination.less";
+@import "pager.less";
+@import "labels.less";
+@import "badges.less";
+@import "jumbotron.less";
+@import "thumbnails.less";
+@import "alerts.less";
+@import "progress-bars.less";
+@import "media.less";
+@import "list-group.less";
+@import "panels.less";
+@import "responsive-embed.less";
+@import "wells.less";
+@import "close.less";
+
+// Components w/ JavaScript
+@import "modals.less";
+@import "tooltip.less";
+@import "popovers.less";
+@import "carousel.less";
+
+// Utility classes
+@import "utilities.less";
+@import "responsive-utilities.less";
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/breadcrumbs.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/breadcrumbs.less
new file mode 100644
index 0000000..cb01d50
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/breadcrumbs.less
@@ -0,0 +1,26 @@
+//
+// Breadcrumbs
+// --------------------------------------------------
+
+
+.breadcrumb {
+ padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;
+ margin-bottom: @line-height-computed;
+ list-style: none;
+ background-color: @breadcrumb-bg;
+ border-radius: @border-radius-base;
+
+ > li {
+ display: inline-block;
+
+ + li:before {
+ content: "@{breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space
+ padding: 0 5px;
+ color: @breadcrumb-color;
+ }
+ }
+
+ > .active {
+ color: @breadcrumb-active-color;
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/button-groups.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/button-groups.less
new file mode 100644
index 0000000..6a0c5a8
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/button-groups.less
@@ -0,0 +1,244 @@
+//
+// Button groups
+// --------------------------------------------------
+
+// Make the div behave like a button
+.btn-group,
+.btn-group-vertical {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle; // match .btn alignment given font-size hack above
+ > .btn {
+ position: relative;
+ float: left;
+ // Bring the "active" button to the front
+ &:hover,
+ &:focus,
+ &:active,
+ &.active {
+ z-index: 2;
+ }
+ }
+}
+
+// Prevent double borders when buttons are next to each other
+.btn-group {
+ .btn + .btn,
+ .btn + .btn-group,
+ .btn-group + .btn,
+ .btn-group + .btn-group {
+ margin-left: -1px;
+ }
+}
+
+// Optional: Group multiple button groups together for a toolbar
+.btn-toolbar {
+ margin-left: -5px; // Offset the first child's margin
+ &:extend(.clearfix all);
+
+ .btn,
+ .btn-group,
+ .input-group {
+ float: left;
+ }
+ > .btn,
+ > .btn-group,
+ > .input-group {
+ margin-left: 5px;
+ }
+}
+
+.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
+ border-radius: 0;
+}
+
+// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match
+.btn-group > .btn:first-child {
+ margin-left: 0;
+ &:not(:last-child):not(.dropdown-toggle) {
+ .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) {
+ .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 {
+ .border-right-radius(0);
+ }
+}
+.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
+ .border-left-radius(0);
+}
+
+// On active and open, don't show outline
+.btn-group .dropdown-toggle:active,
+.btn-group.open .dropdown-toggle {
+ outline: 0;
+}
+
+
+// Sizing
+//
+// Remix the default button sizing classes into new ones for easier manipulation.
+
+.btn-group-xs > .btn { &:extend(.btn-xs); }
+.btn-group-sm > .btn { &:extend(.btn-sm); }
+.btn-group-lg > .btn { &:extend(.btn-lg); }
+
+
+// Split button dropdowns
+// ----------------------
+
+// Give the line between buttons some depth
+.btn-group > .btn + .dropdown-toggle {
+ padding-left: 8px;
+ padding-right: 8px;
+}
+.btn-group > .btn-lg + .dropdown-toggle {
+ padding-left: 12px;
+ padding-right: 12px;
+}
+
+// The clickable button for toggling the menu
+// Remove the gradient and set the same inset shadow as the :active state
+.btn-group.open .dropdown-toggle {
+ .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
+
+ // Show no shadow for `.btn-link` since it has no other button styles.
+ &.btn-link {
+ .box-shadow(none);
+ }
+}
+
+
+// Reposition the caret
+.btn .caret {
+ margin-left: 0;
+}
+// Carets in other button sizes
+.btn-lg .caret {
+ border-width: @caret-width-large @caret-width-large 0;
+ border-bottom-width: 0;
+}
+// Upside down carets for .dropup
+.dropup .btn-lg .caret {
+ border-width: 0 @caret-width-large @caret-width-large;
+}
+
+
+// Vertical button groups
+// ----------------------
+
+.btn-group-vertical {
+ > .btn,
+ > .btn-group,
+ > .btn-group > .btn {
+ display: block;
+ float: none;
+ width: 100%;
+ max-width: 100%;
+ }
+
+ // Clear floats so dropdown menus can be properly placed
+ > .btn-group {
+ &:extend(.clearfix all);
+ > .btn {
+ float: none;
+ }
+ }
+
+ > .btn + .btn,
+ > .btn + .btn-group,
+ > .btn-group + .btn,
+ > .btn-group + .btn-group {
+ margin-top: -1px;
+ margin-left: 0;
+ }
+}
+
+.btn-group-vertical > .btn {
+ &:not(:first-child):not(:last-child) {
+ border-radius: 0;
+ }
+ &:first-child:not(:last-child) {
+ border-top-right-radius: @btn-border-radius-base;
+ .border-bottom-radius(0);
+ }
+ &:last-child:not(:first-child) {
+ border-bottom-left-radius: @btn-border-radius-base;
+ .border-top-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,
+ > .dropdown-toggle {
+ .border-bottom-radius(0);
+ }
+}
+.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
+ .border-top-radius(0);
+}
+
+
+// Justified button groups
+// ----------------------
+
+.btn-group-justified {
+ display: table;
+ width: 100%;
+ table-layout: fixed;
+ border-collapse: separate;
+ > .btn,
+ > .btn-group {
+ float: none;
+ display: table-cell;
+ width: 1%;
+ }
+ > .btn-group .btn {
+ width: 100%;
+ }
+
+ > .btn-group .dropdown-menu {
+ left: auto;
+ }
+}
+
+
+// Checkbox and radio options
+//
+// In order to support the browser's form validation feedback, powered by the
+// `required` attribute, we have to "hide" the inputs via `clip`. We cannot use
+// `display: none;` or `visibility: hidden;` as that also hides the popover.
+// Simply visually hiding the inputs via `opacity` would leave them clickable in
+// certain cases which is prevented by using `clip` and `pointer-events`.
+// This way, we ensure a DOM element is visible to position the popover from.
+//
+// See https://github.com/twbs/bootstrap/pull/12794 and
+// https://github.com/twbs/bootstrap/pull/14559 for more information.
+
+[data-toggle="buttons"] {
+ > .btn,
+ > .btn-group > .btn {
+ input[type="radio"],
+ input[type="checkbox"] {
+ position: absolute;
+ clip: rect(0,0,0,0);
+ pointer-events: none;
+ }
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/buttons.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/buttons.less
new file mode 100644
index 0000000..9cbb8f4
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/buttons.less
@@ -0,0 +1,166 @@
+//
+// Buttons
+// --------------------------------------------------
+
+
+// Base styles
+// --------------------------------------------------
+
+.btn {
+ display: inline-block;
+ margin-bottom: 0; // For input.btn
+ font-weight: @btn-font-weight;
+ text-align: center;
+ vertical-align: middle;
+ touch-action: manipulation;
+ cursor: pointer;
+ background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
+ border: 1px solid transparent;
+ white-space: nowrap;
+ .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @btn-border-radius-base);
+ .user-select(none);
+
+ &,
+ &:active,
+ &.active {
+ &:focus,
+ &.focus {
+ .tab-focus();
+ }
+ }
+
+ &:hover,
+ &:focus,
+ &.focus {
+ color: @btn-default-color;
+ text-decoration: none;
+ }
+
+ &:active,
+ &.active {
+ outline: 0;
+ background-image: none;
+ .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
+ }
+
+ &.disabled,
+ &[disabled],
+ fieldset[disabled] & {
+ cursor: @cursor-disabled;
+ .opacity(.65);
+ .box-shadow(none);
+ }
+
+ a& {
+ &.disabled,
+ fieldset[disabled] & {
+ pointer-events: none; // Future-proof disabling of clicks on `<a>` elements
+ }
+ }
+}
+
+
+// Alternate buttons
+// --------------------------------------------------
+
+.btn-default {
+ .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border);
+}
+.btn-primary {
+ .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border);
+}
+// Success appears as green
+.btn-success {
+ .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border);
+}
+// Info appears as blue-green
+.btn-info {
+ .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border);
+}
+// Warning appears as orange
+.btn-warning {
+ .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border);
+}
+// Danger and error appear as red
+.btn-danger {
+ .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);
+}
+
+
+// Link buttons
+// -------------------------
+
+// Make a button look and behave like a link
+.btn-link {
+ color: @link-color;
+ font-weight: normal;
+ border-radius: 0;
+
+ &,
+ &:active,
+ &.active,
+ &[disabled],
+ fieldset[disabled] & {
+ background-color: transparent;
+ .box-shadow(none);
+ }
+ &,
+ &:hover,
+ &:focus,
+ &:active {
+ border-color: transparent;
+ }
+ &:hover,
+ &:focus {
+ color: @link-hover-color;
+ text-decoration: @link-hover-decoration;
+ background-color: transparent;
+ }
+ &[disabled],
+ fieldset[disabled] & {
+ &:hover,
+ &:focus {
+ color: @btn-link-disabled-color;
+ text-decoration: none;
+ }
+ }
+}
+
+
+// Button Sizes
+// --------------------------------------------------
+
+.btn-lg {
+ // line-height: ensure even-numbered height of button next to large input
+ .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @btn-border-radius-large);
+}
+.btn-sm {
+ // line-height: ensure proper height of button next to small input
+ .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);
+}
+.btn-xs {
+ .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);
+}
+
+
+// Block button
+// --------------------------------------------------
+
+.btn-block {
+ display: block;
+ width: 100%;
+}
+
+// Vertically space out multiple block buttons
+.btn-block + .btn-block {
+ margin-top: 5px;
+}
+
+// Specificity overrides
+input[type="submit"],
+input[type="reset"],
+input[type="button"] {
+ &.btn-block {
+ width: 100%;
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/carousel.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/carousel.less
new file mode 100644
index 0000000..87ed696
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/carousel.less
@@ -0,0 +1,269 @@
+//
+// Carousel
+// --------------------------------------------------
+
+
+// Wrapper for the slide container and indicators
+.carousel {
+ position: relative;
+}
+
+.carousel-inner {
+ position: relative;
+ overflow: hidden;
+ width: 100%;
+
+ > .item {
+ display: none;
+ position: relative;
+ .transition(.6s ease-in-out left);
+
+ // Account for jankitude on images
+ > img,
+ > a > img {
+ &:extend(.img-responsive);
+ line-height: 1;
+ }
+
+ // WebKit CSS3 transforms for supported devices
+ @media all and (transform-3d), (-webkit-transform-3d) {
+ .transition-transform(~'0.6s ease-in-out');
+ .backface-visibility(~'hidden');
+ .perspective(1000px);
+
+ &.next,
+ &.active.right {
+ .translate3d(100%, 0, 0);
+ left: 0;
+ }
+ &.prev,
+ &.active.left {
+ .translate3d(-100%, 0, 0);
+ left: 0;
+ }
+ &.next.left,
+ &.prev.right,
+ &.active {
+ .translate3d(0, 0, 0);
+ left: 0;
+ }
+ }
+ }
+
+ > .active,
+ > .next,
+ > .prev {
+ display: block;
+ }
+
+ > .active {
+ left: 0;
+ }
+
+ > .next,
+ > .prev {
+ position: absolute;
+ top: 0;
+ width: 100%;
+ }
+
+ > .next {
+ left: 100%;
+ }
+ > .prev {
+ left: -100%;
+ }
+ > .next.left,
+ > .prev.right {
+ left: 0;
+ }
+
+ > .active.left {
+ left: -100%;
+ }
+ > .active.right {
+ left: 100%;
+ }
+
+}
+
+// Left/right controls for nav
+// ---------------------------
+
+.carousel-control {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ width: @carousel-control-width;
+ .opacity(@carousel-control-opacity);
+ font-size: @carousel-control-font-size;
+ color: @carousel-control-color;
+ text-align: center;
+ text-shadow: @carousel-text-shadow;
+ // We can't have this transition here because WebKit cancels the carousel
+ // animation if you trip this while in the middle of another animation.
+
+ // Set gradients for backgrounds
+ &.left {
+ #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));
+ }
+ &.right {
+ left: auto;
+ right: 0;
+ #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));
+ }
+
+ // Hover/focus state
+ &:hover,
+ &:focus {
+ outline: 0;
+ color: @carousel-control-color;
+ text-decoration: none;
+ .opacity(.9);
+ }
+
+ // Toggles
+ .icon-prev,
+ .icon-next,
+ .glyphicon-chevron-left,
+ .glyphicon-chevron-right {
+ position: absolute;
+ top: 50%;
+ margin-top: -10px;
+ z-index: 5;
+ display: inline-block;
+ }
+ .icon-prev,
+ .glyphicon-chevron-left {
+ left: 50%;
+ margin-left: -10px;
+ }
+ .icon-next,
+ .glyphicon-chevron-right {
+ right: 50%;
+ margin-right: -10px;
+ }
+ .icon-prev,
+ .icon-next {
+ width: 20px;
+ height: 20px;
+ line-height: 1;
+ font-family: serif;
+ }
+
+
+ .icon-prev {
+ &:before {
+ content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)
+ }
+ }
+ .icon-next {
+ &:before {
+ content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)
+ }
+ }
+}
+
+// Optional indicator pips
+//
+// Add an unordered list with the following class and add a list item for each
+// slide your carousel holds.
+
+.carousel-indicators {
+ position: absolute;
+ bottom: 10px;
+ left: 50%;
+ z-index: 15;
+ width: 60%;
+ margin-left: -30%;
+ padding-left: 0;
+ list-style: none;
+ text-align: center;
+
+ li {
+ display: inline-block;
+ width: 10px;
+ height: 10px;
+ margin: 1px;
+ text-indent: -999px;
+ border: 1px solid @carousel-indicator-border-color;
+ border-radius: 10px;
+ cursor: pointer;
+
+ // IE8-9 hack for event handling
+ //
+ // Internet Explorer 8-9 does not support clicks on elements without a set
+ // `background-color`. We cannot use `filter` since that's not viewed as a
+ // background color by the browser. Thus, a hack is needed.
+ // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer
+ //
+ // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we
+ // set alpha transparency for the best results possible.
+ background-color: #000 \9; // IE8
+ background-color: rgba(0,0,0,0); // IE9
+ }
+ .active {
+ margin: 0;
+ width: 12px;
+ height: 12px;
+ background-color: @carousel-indicator-active-bg;
+ }
+}
+
+// Optional captions
+// -----------------------------
+// Hidden by default for smaller viewports
+.carousel-caption {
+ position: absolute;
+ left: 15%;
+ right: 15%;
+ bottom: 20px;
+ z-index: 10;
+ padding-top: 20px;
+ padding-bottom: 20px;
+ color: @carousel-caption-color;
+ text-align: center;
+ text-shadow: @carousel-text-shadow;
+ & .btn {
+ text-shadow: none; // No shadow for button elements in carousel-caption
+ }
+}
+
+
+// Scale up controls for tablets and up
+@media screen and (min-width: @screen-sm-min) {
+
+ // Scale up the controls a smidge
+ .carousel-control {
+ .glyphicon-chevron-left,
+ .glyphicon-chevron-right,
+ .icon-prev,
+ .icon-next {
+ width: 30px;
+ height: 30px;
+ margin-top: -15px;
+ font-size: 30px;
+ }
+ .glyphicon-chevron-left,
+ .icon-prev {
+ margin-left: -15px;
+ }
+ .glyphicon-chevron-right,
+ .icon-next {
+ margin-right: -15px;
+ }
+ }
+
+ // Show and left align the captions
+ .carousel-caption {
+ left: 20%;
+ right: 20%;
+ padding-bottom: 30px;
+ }
+
+ // Move up the indicators
+ .carousel-indicators {
+ bottom: 20px;
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/close.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/close.less
new file mode 100644
index 0000000..6d5bfe0
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/close.less
@@ -0,0 +1,34 @@
+//
+// Close icons
+// --------------------------------------------------
+
+
+.close {
+ float: right;
+ font-size: (@font-size-base * 1.5);
+ font-weight: @close-font-weight;
+ line-height: 1;
+ color: @close-color;
+ text-shadow: @close-text-shadow;
+ .opacity(.2);
+
+ &:hover,
+ &:focus {
+ color: @close-color;
+ text-decoration: none;
+ cursor: pointer;
+ .opacity(.5);
+ }
+
+ // Additional properties for button version
+ // iOS requires the button element instead of an anchor tag.
+ // If you want the anchor version, it requires `href="#"`.
+ // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
+ button& {
+ padding: 0;
+ cursor: pointer;
+ background: transparent;
+ border: 0;
+ -webkit-appearance: none;
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/code.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/code.less
new file mode 100644
index 0000000..a08b4d4
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/code.less
@@ -0,0 +1,69 @@
+//
+// Code (inline and block)
+// --------------------------------------------------
+
+
+// Inline and block code styles
+code,
+kbd,
+pre,
+samp {
+ font-family: @font-family-monospace;
+}
+
+// Inline code
+code {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: @code-color;
+ background-color: @code-bg;
+ border-radius: @border-radius-base;
+}
+
+// User input typically entered via keyboard
+kbd {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: @kbd-color;
+ background-color: @kbd-bg;
+ border-radius: @border-radius-small;
+ box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
+
+ kbd {
+ padding: 0;
+ font-size: 100%;
+ font-weight: bold;
+ box-shadow: none;
+ }
+}
+
+// Blocks of code
+pre {
+ display: block;
+ padding: ((@line-height-computed - 1) / 2);
+ margin: 0 0 (@line-height-computed / 2);
+ font-size: (@font-size-base - 1); // 14px to 13px
+ line-height: @line-height-base;
+ word-break: break-all;
+ word-wrap: break-word;
+ color: @pre-color;
+ background-color: @pre-bg;
+ border: 1px solid @pre-border-color;
+ border-radius: @border-radius-base;
+
+ // Account for some code outputs that place code tags in pre tags
+ code {
+ padding: 0;
+ font-size: inherit;
+ color: inherit;
+ white-space: pre-wrap;
+ background-color: transparent;
+ border-radius: 0;
+ }
+}
+
+// Enable scrollable blocks of code
+.pre-scrollable {
+ max-height: @pre-scrollable-max-height;
+ overflow-y: scroll;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/component-animations.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/component-animations.less
new file mode 100644
index 0000000..0bcee91
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/component-animations.less
@@ -0,0 +1,33 @@
+//
+// Component animations
+// --------------------------------------------------
+
+// Heads up!
+//
+// We don't use the `.opacity()` mixin here since it causes a bug with text
+// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.
+
+.fade {
+ opacity: 0;
+ .transition(opacity .15s linear);
+ &.in {
+ opacity: 1;
+ }
+}
+
+.collapse {
+ display: none;
+
+ &.in { display: block; }
+ tr&.in { display: table-row; }
+ tbody&.in { display: table-row-group; }
+}
+
+.collapsing {
+ position: relative;
+ height: 0;
+ overflow: hidden;
+ .transition-property(~"height, visibility");
+ .transition-duration(.35s);
+ .transition-timing-function(ease);
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/dropdowns.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/dropdowns.less
new file mode 100644
index 0000000..f6876c1
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/dropdowns.less
@@ -0,0 +1,216 @@
+//
+// Dropdown menus
+// --------------------------------------------------
+
+
+// Dropdown arrow/caret
+.caret {
+ display: inline-block;
+ width: 0;
+ height: 0;
+ margin-left: 2px;
+ vertical-align: middle;
+ border-top: @caret-width-base dashed;
+ border-top: @caret-width-base solid ~"\9"; // IE8
+ border-right: @caret-width-base solid transparent;
+ border-left: @caret-width-base solid transparent;
+}
+
+// The dropdown wrapper (div)
+.dropup,
+.dropdown {
+ position: relative;
+}
+
+// Prevent the focus on the dropdown toggle when closing dropdowns
+.dropdown-toggle:focus {
+ outline: 0;
+}
+
+// The dropdown menu (ul)
+.dropdown-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: @zindex-dropdown;
+ display: none; // none by default, but block on "open" of the menu
+ float: left;
+ min-width: 160px;
+ padding: 5px 0;
+ margin: 2px 0 0; // override default ul
+ list-style: none;
+ font-size: @font-size-base;
+ text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
+ background-color: @dropdown-bg;
+ border: 1px solid @dropdown-fallback-border; // IE8 fallback
+ border: 1px solid @dropdown-border;
+ border-radius: @border-radius-base;
+ .box-shadow(0 6px 12px rgba(0,0,0,.175));
+ background-clip: padding-box;
+
+ // Aligns the dropdown menu to right
+ //
+ // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`
+ &.pull-right {
+ right: 0;
+ left: auto;
+ }
+
+ // Dividers (basically an hr) within the dropdown
+ .divider {
+ .nav-divider(@dropdown-divider-bg);
+ }
+
+ // Links within the dropdown menu
+ > li > a {
+ display: block;
+ padding: 3px 20px;
+ clear: both;
+ font-weight: normal;
+ line-height: @line-height-base;
+ color: @dropdown-link-color;
+ white-space: nowrap; // prevent links from randomly breaking onto new lines
+ }
+}
+
+// Hover/Focus state
+.dropdown-menu > li > a {
+ &:hover,
+ &:focus {
+ text-decoration: none;
+ color: @dropdown-link-hover-color;
+ background-color: @dropdown-link-hover-bg;
+ }
+}
+
+// Active state
+.dropdown-menu > .active > a {
+ &,
+ &:hover,
+ &:focus {
+ color: @dropdown-link-active-color;
+ text-decoration: none;
+ outline: 0;
+ background-color: @dropdown-link-active-bg;
+ }
+}
+
+// Disabled state
+//
+// Gray out text and ensure the hover/focus state remains gray
+
+.dropdown-menu > .disabled > a {
+ &,
+ &:hover,
+ &:focus {
+ color: @dropdown-link-disabled-color;
+ }
+
+ // Nuke hover/focus effects
+ &:hover,
+ &:focus {
+ text-decoration: none;
+ background-color: transparent;
+ background-image: none; // Remove CSS gradient
+ .reset-filter();
+ cursor: @cursor-disabled;
+ }
+}
+
+// Open state for the dropdown
+.open {
+ // Show the menu
+ > .dropdown-menu {
+ display: block;
+ }
+
+ // Remove the outline when :focus is triggered
+ > a {
+ outline: 0;
+ }
+}
+
+// Menu positioning
+//
+// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown
+// menu with the parent.
+.dropdown-menu-right {
+ left: auto; // Reset the default from `.dropdown-menu`
+ right: 0;
+}
+// With v3, we enabled auto-flipping if you have a dropdown within a right
+// aligned nav component. To enable the undoing of that, we provide an override
+// to restore the default dropdown menu alignment.
+//
+// This is only for left-aligning a dropdown menu within a `.navbar-right` or
+// `.pull-right` nav component.
+.dropdown-menu-left {
+ left: 0;
+ right: auto;
+}
+
+// Dropdown section headers
+.dropdown-header {
+ display: block;
+ padding: 3px 20px;
+ font-size: @font-size-small;
+ line-height: @line-height-base;
+ color: @dropdown-header-color;
+ white-space: nowrap; // as with > li > a
+}
+
+// Backdrop to catch body clicks on mobile, etc.
+.dropdown-backdrop {
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ top: 0;
+ z-index: (@zindex-dropdown - 10);
+}
+
+// Right aligned dropdowns
+.pull-right > .dropdown-menu {
+ right: 0;
+ left: auto;
+}
+
+// Allow for dropdowns to go bottom up (aka, dropup-menu)
+//
+// Just add .dropup after the standard .dropdown class and you're set, bro.
+// TODO: abstract this so that the navbar fixed styles are not placed here?
+
+.dropup,
+.navbar-fixed-bottom .dropdown {
+ // Reverse the caret
+ .caret {
+ border-top: 0;
+ border-bottom: @caret-width-base dashed;
+ border-bottom: @caret-width-base solid ~"\9"; // IE8
+ content: "";
+ }
+ // Different positioning for bottom up menu
+ .dropdown-menu {
+ top: auto;
+ bottom: 100%;
+ margin-bottom: 2px;
+ }
+}
+
+
+// Component alignment
+//
+// Reiterate per navbar.less and the modified component alignment there.
+
+@media (min-width: @grid-float-breakpoint) {
+ .navbar-right {
+ .dropdown-menu {
+ .dropdown-menu-right();
+ }
+ // Necessary for overrides of the default right aligned menu.
+ // Will remove come v4 in all likelihood.
+ .dropdown-menu-left {
+ .dropdown-menu-left();
+ }
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/forms.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/forms.less
new file mode 100644
index 0000000..910c1e1
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/forms.less
@@ -0,0 +1,613 @@
+//
+// Forms
+// --------------------------------------------------
+
+
+// Normalize non-controls
+//
+// Restyle and baseline non-control form elements.
+
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ // Chrome and Firefox set a `min-width: min-content;` on fieldsets,
+ // so we reset that to ensure it behaves more like a standard block element.
+ // See https://github.com/twbs/bootstrap/issues/12359.
+ min-width: 0;
+}
+
+legend {
+ display: block;
+ width: 100%;
+ padding: 0;
+ margin-bottom: @line-height-computed;
+ font-size: (@font-size-base * 1.5);
+ line-height: inherit;
+ color: @legend-color;
+ border: 0;
+ border-bottom: 1px solid @legend-border-color;
+}
+
+label {
+ display: inline-block;
+ max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)
+ margin-bottom: 5px;
+ font-weight: bold;
+}
+
+
+// Normalize form controls
+//
+// While most of our form styles require extra classes, some basic normalization
+// is required to ensure optimum display with or without those classes to better
+// address browser inconsistencies.
+
+// Override content-box in Normalize (* isn't specific enough)
+input[type="search"] {
+ .box-sizing(border-box);
+}
+
+// Position radios and checkboxes better
+input[type="radio"],
+input[type="checkbox"] {
+ margin: 4px 0 0;
+ margin-top: 1px \9; // IE8-9
+ line-height: normal;
+}
+
+input[type="file"] {
+ display: block;
+}
+
+// Make range inputs behave like textual form controls
+input[type="range"] {
+ display: block;
+ width: 100%;
+}
+
+// Make multiple select elements height not fixed
+select[multiple],
+select[size] {
+ height: auto;
+}
+
+// Focus for file, radio, and checkbox
+input[type="file"]:focus,
+input[type="radio"]:focus,
+input[type="checkbox"]:focus {
+ .tab-focus();
+}
+
+// Adjust output element
+output {
+ display: block;
+ padding-top: (@padding-base-vertical + 1);
+ font-size: @font-size-base;
+ line-height: @line-height-base;
+ color: @input-color;
+}
+
+
+// Common form controls
+//
+// Shared size and type resets for form controls. Apply `.form-control` to any
+// of the following form controls:
+//
+// select
+// textarea
+// input[type="text"]
+// input[type="password"]
+// input[type="datetime"]
+// input[type="datetime-local"]
+// input[type="date"]
+// input[type="month"]
+// input[type="time"]
+// input[type="week"]
+// input[type="number"]
+// input[type="email"]
+// input[type="url"]
+// input[type="search"]
+// input[type="tel"]
+// input[type="color"]
+
+.form-control {
+ display: block;
+ width: 100%;
+ height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
+ padding: @padding-base-vertical @padding-base-horizontal;
+ font-size: @font-size-base;
+ line-height: @line-height-base;
+ color: @input-color;
+ background-color: @input-bg;
+ background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
+ border: 1px solid @input-border;
+ border-radius: @input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS.
+ .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
+ .transition(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s");
+
+ // Customize the `:focus` state to imitate native WebKit styles.
+ .form-control-focus();
+
+ // Placeholder
+ .placeholder();
+
+ // Unstyle the caret on `<select>`s in IE10+.
+ &::-ms-expand {
+ border: 0;
+ background-color: transparent;
+ }
+
+ // Disabled and read-only inputs
+ //
+ // HTML5 says that controls under a fieldset > legend:first-child won't be
+ // disabled if the fieldset is disabled. Due to implementation difficulty, we
+ // don't honor that edge case; we style them as disabled anyway.
+ &[disabled],
+ &[readonly],
+ fieldset[disabled] & {
+ background-color: @input-bg-disabled;
+ opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655
+ }
+
+ &[disabled],
+ fieldset[disabled] & {
+ cursor: @cursor-disabled;
+ }
+
+ // Reset height for `textarea`s
+ textarea& {
+ height: auto;
+ }
+}
+
+
+// Search inputs in iOS
+//
+// This overrides the extra rounded corners on search inputs in iOS so that our
+// `.form-control` class can properly style them. Note that this cannot simply
+// be added to `.form-control` as it's not specific enough. For details, see
+// https://github.com/twbs/bootstrap/issues/11586.
+
+input[type="search"] {
+ -webkit-appearance: none;
+}
+
+
+// Special styles for iOS temporal inputs
+//
+// In Mobile Safari, setting `display: block` on temporal inputs causes the
+// text within the input to become vertically misaligned. As a workaround, we
+// set a pixel line-height that matches the given height of the input, but only
+// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848
+//
+// Note that as of 8.3, iOS doesn't support `datetime` or `week`.
+
+@media screen and (-webkit-min-device-pixel-ratio: 0) {
+ input[type="date"],
+ input[type="time"],
+ input[type="datetime-local"],
+ input[type="month"] {
+ &.form-control {
+ line-height: @input-height-base;
+ }
+
+ &.input-sm,
+ .input-group-sm & {
+ line-height: @input-height-small;
+ }
+
+ &.input-lg,
+ .input-group-lg & {
+ line-height: @input-height-large;
+ }
+ }
+}
+
+
+// Form groups
+//
+// Designed to help with the organization and spacing of vertical forms. For
+// horizontal forms, use the predefined grid classes.
+
+.form-group {
+ margin-bottom: @form-group-margin-bottom;
+}
+
+
+// Checkboxes and radios
+//
+// Indent the labels to position radios/checkboxes as hanging controls.
+
+.radio,
+.checkbox {
+ position: relative;
+ display: block;
+ margin-top: 10px;
+ margin-bottom: 10px;
+
+ label {
+ min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text
+ padding-left: 20px;
+ margin-bottom: 0;
+ font-weight: normal;
+ cursor: pointer;
+ }
+}
+.radio input[type="radio"],
+.radio-inline input[type="radio"],
+.checkbox input[type="checkbox"],
+.checkbox-inline input[type="checkbox"] {
+ position: absolute;
+ margin-left: -20px;
+ margin-top: 4px \9;
+}
+
+.radio + .radio,
+.checkbox + .checkbox {
+ margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing
+}
+
+// Radios and checkboxes on same line
+.radio-inline,
+.checkbox-inline {
+ position: relative;
+ display: inline-block;
+ padding-left: 20px;
+ margin-bottom: 0;
+ vertical-align: middle;
+ font-weight: normal;
+ cursor: pointer;
+}
+.radio-inline + .radio-inline,
+.checkbox-inline + .checkbox-inline {
+ margin-top: 0;
+ margin-left: 10px; // space out consecutive inline controls
+}
+
+// Apply same disabled cursor tweak as for inputs
+// Some special care is needed because <label>s don't inherit their parent's `cursor`.
+//
+// Note: Neither radios nor checkboxes can be readonly.
+input[type="radio"],
+input[type="checkbox"] {
+ &[disabled],
+ &.disabled,
+ fieldset[disabled] & {
+ cursor: @cursor-disabled;
+ }
+}
+// These classes are used directly on <label>s
+.radio-inline,
+.checkbox-inline {
+ &.disabled,
+ fieldset[disabled] & {
+ cursor: @cursor-disabled;
+ }
+}
+// These classes are used on elements with <label> descendants
+.radio,
+.checkbox {
+ &.disabled,
+ fieldset[disabled] & {
+ label {
+ cursor: @cursor-disabled;
+ }
+ }
+}
+
+
+// Static form control text
+//
+// Apply class to a `p` element to make any string of text align with labels in
+// a horizontal form layout.
+
+.form-control-static {
+ // Size it appropriately next to real form controls
+ padding-top: (@padding-base-vertical + 1);
+ padding-bottom: (@padding-base-vertical + 1);
+ // Remove default margin from `p`
+ margin-bottom: 0;
+ min-height: (@line-height-computed + @font-size-base);
+
+ &.input-lg,
+ &.input-sm {
+ padding-left: 0;
+ padding-right: 0;
+ }
+}
+
+
+// Form control sizing
+//
+// Build on `.form-control` with modifier classes to decrease or increase the
+// height and font-size of form controls.
+//
+// The `.form-group-* form-control` variations are sadly duplicated to avoid the
+// issue documented in https://github.com/twbs/bootstrap/issues/15074.
+
+.input-sm {
+ .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @input-border-radius-small);
+}
+.form-group-sm {
+ .form-control {
+ height: @input-height-small;
+ padding: @padding-small-vertical @padding-small-horizontal;
+ font-size: @font-size-small;
+ line-height: @line-height-small;
+ border-radius: @input-border-radius-small;
+ }
+ select.form-control {
+ height: @input-height-small;
+ line-height: @input-height-small;
+ }
+ textarea.form-control,
+ select[multiple].form-control {
+ height: auto;
+ }
+ .form-control-static {
+ height: @input-height-small;
+ min-height: (@line-height-computed + @font-size-small);
+ padding: (@padding-small-vertical + 1) @padding-small-horizontal;
+ font-size: @font-size-small;
+ line-height: @line-height-small;
+ }
+}
+
+.input-lg {
+ .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @input-border-radius-large);
+}
+.form-group-lg {
+ .form-control {
+ height: @input-height-large;
+ padding: @padding-large-vertical @padding-large-horizontal;
+ font-size: @font-size-large;
+ line-height: @line-height-large;
+ border-radius: @input-border-radius-large;
+ }
+ select.form-control {
+ height: @input-height-large;
+ line-height: @input-height-large;
+ }
+ textarea.form-control,
+ select[multiple].form-control {
+ height: auto;
+ }
+ .form-control-static {
+ height: @input-height-large;
+ min-height: (@line-height-computed + @font-size-large);
+ padding: (@padding-large-vertical + 1) @padding-large-horizontal;
+ font-size: @font-size-large;
+ line-height: @line-height-large;
+ }
+}
+
+
+// Form control feedback states
+//
+// Apply contextual and semantic states to individual form controls.
+
+.has-feedback {
+ // Enable absolute positioning
+ position: relative;
+
+ // Ensure icons don't overlap text
+ .form-control {
+ padding-right: (@input-height-base * 1.25);
+ }
+}
+// Feedback icon (requires .glyphicon classes)
+.form-control-feedback {
+ position: absolute;
+ top: 0;
+ right: 0;
+ z-index: 2; // Ensure icon is above input groups
+ display: block;
+ width: @input-height-base;
+ height: @input-height-base;
+ line-height: @input-height-base;
+ text-align: center;
+ pointer-events: none;
+}
+.input-lg + .form-control-feedback,
+.input-group-lg + .form-control-feedback,
+.form-group-lg .form-control + .form-control-feedback {
+ width: @input-height-large;
+ height: @input-height-large;
+ line-height: @input-height-large;
+}
+.input-sm + .form-control-feedback,
+.input-group-sm + .form-control-feedback,
+.form-group-sm .form-control + .form-control-feedback {
+ width: @input-height-small;
+ height: @input-height-small;
+ line-height: @input-height-small;
+}
+
+// Feedback states
+.has-success {
+ .form-control-validation(@state-success-text; @state-success-text; @state-success-bg);
+}
+.has-warning {
+ .form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg);
+}
+.has-error {
+ .form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg);
+}
+
+// Reposition feedback icon if input has visible label above
+.has-feedback label {
+
+ & ~ .form-control-feedback {
+ top: (@line-height-computed + 5); // Height of the `label` and its margin
+ }
+ &.sr-only ~ .form-control-feedback {
+ top: 0;
+ }
+}
+
+
+// Help text
+//
+// Apply to any element you wish to create light text for placement immediately
+// below a form control. Use for general help, formatting, or instructional text.
+
+.help-block {
+ display: block; // account for any element using help-block
+ margin-top: 5px;
+ margin-bottom: 10px;
+ color: lighten(@text-color, 25%); // lighten the text some for contrast
+}
+
+
+// Inline forms
+//
+// Make forms appear inline(-block) by adding the `.form-inline` class. Inline
+// forms begin stacked on extra small (mobile) devices and then go inline when
+// viewports reach <768px.
+//
+// Requires wrapping inputs and labels with `.form-group` for proper display of
+// default HTML form controls and our custom form controls (e.g., input groups).
+//
+// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.
+
+.form-inline {
+
+ // Kick in the inline
+ @media (min-width: @screen-sm-min) {
+ // Inline-block all the things for "inline"
+ .form-group {
+ display: inline-block;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+
+ // In navbar-form, allow folks to *not* use `.form-group`
+ .form-control {
+ display: inline-block;
+ width: auto; // Prevent labels from stacking above inputs in `.form-group`
+ vertical-align: middle;
+ }
+
+ // Make static controls behave like regular ones
+ .form-control-static {
+ display: inline-block;
+ }
+
+ .input-group {
+ display: inline-table;
+ vertical-align: middle;
+
+ .input-group-addon,
+ .input-group-btn,
+ .form-control {
+ width: auto;
+ }
+ }
+
+ // Input groups need that 100% width though
+ .input-group > .form-control {
+ width: 100%;
+ }
+
+ .control-label {
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+
+ // Remove default margin on radios/checkboxes that were used for stacking, and
+ // then undo the floating of radios and checkboxes to match.
+ .radio,
+ .checkbox {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 0;
+ vertical-align: middle;
+
+ label {
+ padding-left: 0;
+ }
+ }
+ .radio input[type="radio"],
+ .checkbox input[type="checkbox"] {
+ position: relative;
+ margin-left: 0;
+ }
+
+ // Re-override the feedback icon.
+ .has-feedback .form-control-feedback {
+ top: 0;
+ }
+ }
+}
+
+
+// Horizontal forms
+//
+// Horizontal forms are built on grid classes and allow you to create forms with
+// labels on the left and inputs on the right.
+
+.form-horizontal {
+
+ // Consistent vertical alignment of radios and checkboxes
+ //
+ // Labels also get some reset styles, but that is scoped to a media query below.
+ .radio,
+ .checkbox,
+ .radio-inline,
+ .checkbox-inline {
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-top: (@padding-base-vertical + 1); // Default padding plus a border
+ }
+ // Account for padding we're adding to ensure the alignment and of help text
+ // and other content below items
+ .radio,
+ .checkbox {
+ min-height: (@line-height-computed + (@padding-base-vertical + 1));
+ }
+
+ // Make form groups behave like rows
+ .form-group {
+ .make-row();
+ }
+
+ // Reset spacing and right align labels, but scope to media queries so that
+ // labels on narrow viewports stack the same as a default form example.
+ @media (min-width: @screen-sm-min) {
+ .control-label {
+ text-align: right;
+ margin-bottom: 0;
+ padding-top: (@padding-base-vertical + 1); // Default padding plus a border
+ }
+ }
+
+ // Validation states
+ //
+ // Reposition the icon because it's now within a grid column and columns have
+ // `position: relative;` on them. Also accounts for the grid gutter padding.
+ .has-feedback .form-control-feedback {
+ right: floor((@grid-gutter-width / 2));
+ }
+
+ // Form group sizes
+ //
+ // Quick utility class for applying `.input-lg` and `.input-sm` styles to the
+ // inputs and labels within a `.form-group`.
+ .form-group-lg {
+ @media (min-width: @screen-sm-min) {
+ .control-label {
+ padding-top: ((@padding-large-vertical * @line-height-large) + 1);
+ font-size: @font-size-large;
+ }
+ }
+ }
+ .form-group-sm {
+ @media (min-width: @screen-sm-min) {
+ .control-label {
+ padding-top: (@padding-small-vertical + 1);
+ font-size: @font-size-small;
+ }
+ }
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/glyphicons.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/glyphicons.less
new file mode 100644
index 0000000..335d80a
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/glyphicons.less
@@ -0,0 +1,305 @@
+//
+// Glyphicons for Bootstrap
+//
+// Since icons are fonts, they can be placed anywhere text is placed and are
+// thus automatically sized to match the surrounding child. To use, create an
+// inline element with the appropriate classes, like so:
+//
+// <a href="#"><span class="glyphicon glyphicon-star"></span> Star</a>
+
+// Import the fonts
+@font-face {
+ font-family: 'Glyphicons Halflings';
+ src: url('@{icon-font-path}@{icon-font-name}.eot');
+ src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'),
+ url('@{icon-font-path}@{icon-font-name}.woff2') format('woff2'),
+ url('@{icon-font-path}@{icon-font-name}.woff') format('woff'),
+ url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'),
+ url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg');
+}
+
+// Catchall baseclass
+.glyphicon {
+ position: relative;
+ top: 1px;
+ display: inline-block;
+ font-family: 'Glyphicons Halflings';
+ font-style: normal;
+ font-weight: normal;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+// Individual icons
+.glyphicon-asterisk { &:before { content: "\2a"; } }
+.glyphicon-plus { &:before { content: "\2b"; } }
+.glyphicon-euro,
+.glyphicon-eur { &:before { content: "\20ac"; } }
+.glyphicon-minus { &:before { content: "\2212"; } }
+.glyphicon-cloud { &:before { content: "\2601"; } }
+.glyphicon-envelope { &:before { content: "\2709"; } }
+.glyphicon-pencil { &:before { content: "\270f"; } }
+.glyphicon-glass { &:before { content: "\e001"; } }
+.glyphicon-music { &:before { content: "\e002"; } }
+.glyphicon-search { &:before { content: "\e003"; } }
+.glyphicon-heart { &:before { content: "\e005"; } }
+.glyphicon-star { &:before { content: "\e006"; } }
+.glyphicon-star-empty { &:before { content: "\e007"; } }
+.glyphicon-user { &:before { content: "\e008"; } }
+.glyphicon-film { &:before { content: "\e009"; } }
+.glyphicon-th-large { &:before { content: "\e010"; } }
+.glyphicon-th { &:before { content: "\e011"; } }
+.glyphicon-th-list { &:before { content: "\e012"; } }
+.glyphicon-ok { &:before { content: "\e013"; } }
+.glyphicon-remove { &:before { content: "\e014"; } }
+.glyphicon-zoom-in { &:before { content: "\e015"; } }
+.glyphicon-zoom-out { &:before { content: "\e016"; } }
+.glyphicon-off { &:before { content: "\e017"; } }
+.glyphicon-signal { &:before { content: "\e018"; } }
+.glyphicon-cog { &:before { content: "\e019"; } }
+.glyphicon-trash { &:before { content: "\e020"; } }
+.glyphicon-home { &:before { content: "\e021"; } }
+.glyphicon-file { &:before { content: "\e022"; } }
+.glyphicon-time { &:before { content: "\e023"; } }
+.glyphicon-road { &:before { content: "\e024"; } }
+.glyphicon-download-alt { &:before { content: "\e025"; } }
+.glyphicon-download { &:before { content: "\e026"; } }
+.glyphicon-upload { &:before { content: "\e027"; } }
+.glyphicon-inbox { &:before { content: "\e028"; } }
+.glyphicon-play-circle { &:before { content: "\e029"; } }
+.glyphicon-repeat { &:before { content: "\e030"; } }
+.glyphicon-refresh { &:before { content: "\e031"; } }
+.glyphicon-list-alt { &:before { content: "\e032"; } }
+.glyphicon-lock { &:before { content: "\e033"; } }
+.glyphicon-flag { &:before { content: "\e034"; } }
+.glyphicon-headphones { &:before { content: "\e035"; } }
+.glyphicon-volume-off { &:before { content: "\e036"; } }
+.glyphicon-volume-down { &:before { content: "\e037"; } }
+.glyphicon-volume-up { &:before { content: "\e038"; } }
+.glyphicon-qrcode { &:before { content: "\e039"; } }
+.glyphicon-barcode { &:before { content: "\e040"; } }
+.glyphicon-tag { &:before { content: "\e041"; } }
+.glyphicon-tags { &:before { content: "\e042"; } }
+.glyphicon-book { &:before { content: "\e043"; } }
+.glyphicon-bookmark { &:before { content: "\e044"; } }
+.glyphicon-print { &:before { content: "\e045"; } }
+.glyphicon-camera { &:before { content: "\e046"; } }
+.glyphicon-font { &:before { content: "\e047"; } }
+.glyphicon-bold { &:before { content: "\e048"; } }
+.glyphicon-italic { &:before { content: "\e049"; } }
+.glyphicon-text-height { &:before { content: "\e050"; } }
+.glyphicon-text-width { &:before { content: "\e051"; } }
+.glyphicon-align-left { &:before { content: "\e052"; } }
+.glyphicon-align-center { &:before { content: "\e053"; } }
+.glyphicon-align-right { &:before { content: "\e054"; } }
+.glyphicon-align-justify { &:before { content: "\e055"; } }
+.glyphicon-list { &:before { content: "\e056"; } }
+.glyphicon-indent-left { &:before { content: "\e057"; } }
+.glyphicon-indent-right { &:before { content: "\e058"; } }
+.glyphicon-facetime-video { &:before { content: "\e059"; } }
+.glyphicon-picture { &:before { content: "\e060"; } }
+.glyphicon-map-marker { &:before { content: "\e062"; } }
+.glyphicon-adjust { &:before { content: "\e063"; } }
+.glyphicon-tint { &:before { content: "\e064"; } }
+.glyphicon-edit { &:before { content: "\e065"; } }
+.glyphicon-share { &:before { content: "\e066"; } }
+.glyphicon-check { &:before { content: "\e067"; } }
+.glyphicon-move { &:before { content: "\e068"; } }
+.glyphicon-step-backward { &:before { content: "\e069"; } }
+.glyphicon-fast-backward { &:before { content: "\e070"; } }
+.glyphicon-backward { &:before { content: "\e071"; } }
+.glyphicon-play { &:before { content: "\e072"; } }
+.glyphicon-pause { &:before { content: "\e073"; } }
+.glyphicon-stop { &:before { content: "\e074"; } }
+.glyphicon-forward { &:before { content: "\e075"; } }
+.glyphicon-fast-forward { &:before { content: "\e076"; } }
+.glyphicon-step-forward { &:before { content: "\e077"; } }
+.glyphicon-eject { &:before { content: "\e078"; } }
+.glyphicon-chevron-left { &:before { content: "\e079"; } }
+.glyphicon-chevron-right { &:before { content: "\e080"; } }
+.glyphicon-plus-sign { &:before { content: "\e081"; } }
+.glyphicon-minus-sign { &:before { content: "\e082"; } }
+.glyphicon-remove-sign { &:before { content: "\e083"; } }
+.glyphicon-ok-sign { &:before { content: "\e084"; } }
+.glyphicon-question-sign { &:before { content: "\e085"; } }
+.glyphicon-info-sign { &:before { content: "\e086"; } }
+.glyphicon-screenshot { &:before { content: "\e087"; } }
+.glyphicon-remove-circle { &:before { content: "\e088"; } }
+.glyphicon-ok-circle { &:before { content: "\e089"; } }
+.glyphicon-ban-circle { &:before { content: "\e090"; } }
+.glyphicon-arrow-left { &:before { content: "\e091"; } }
+.glyphicon-arrow-right { &:before { content: "\e092"; } }
+.glyphicon-arrow-up { &:before { content: "\e093"; } }
+.glyphicon-arrow-down { &:before { content: "\e094"; } }
+.glyphicon-share-alt { &:before { content: "\e095"; } }
+.glyphicon-resize-full { &:before { content: "\e096"; } }
+.glyphicon-resize-small { &:before { content: "\e097"; } }
+.glyphicon-exclamation-sign { &:before { content: "\e101"; } }
+.glyphicon-gift { &:before { content: "\e102"; } }
+.glyphicon-leaf { &:before { content: "\e103"; } }
+.glyphicon-fire { &:before { content: "\e104"; } }
+.glyphicon-eye-open { &:before { content: "\e105"; } }
+.glyphicon-eye-close { &:before { content: "\e106"; } }
+.glyphicon-warning-sign { &:before { content: "\e107"; } }
+.glyphicon-plane { &:before { content: "\e108"; } }
+.glyphicon-calendar { &:before { content: "\e109"; } }
+.glyphicon-random { &:before { content: "\e110"; } }
+.glyphicon-comment { &:before { content: "\e111"; } }
+.glyphicon-magnet { &:before { content: "\e112"; } }
+.glyphicon-chevron-up { &:before { content: "\e113"; } }
+.glyphicon-chevron-down { &:before { content: "\e114"; } }
+.glyphicon-retweet { &:before { content: "\e115"; } }
+.glyphicon-shopping-cart { &:before { content: "\e116"; } }
+.glyphicon-folder-close { &:before { content: "\e117"; } }
+.glyphicon-folder-open { &:before { content: "\e118"; } }
+.glyphicon-resize-vertical { &:before { content: "\e119"; } }
+.glyphicon-resize-horizontal { &:before { content: "\e120"; } }
+.glyphicon-hdd { &:before { content: "\e121"; } }
+.glyphicon-bullhorn { &:before { content: "\e122"; } }
+.glyphicon-bell { &:before { content: "\e123"; } }
+.glyphicon-certificate { &:before { content: "\e124"; } }
+.glyphicon-thumbs-up { &:before { content: "\e125"; } }
+.glyphicon-thumbs-down { &:before { content: "\e126"; } }
+.glyphicon-hand-right { &:before { content: "\e127"; } }
+.glyphicon-hand-left { &:before { content: "\e128"; } }
+.glyphicon-hand-up { &:before { content: "\e129"; } }
+.glyphicon-hand-down { &:before { content: "\e130"; } }
+.glyphicon-circle-arrow-right { &:before { content: "\e131"; } }
+.glyphicon-circle-arrow-left { &:before { content: "\e132"; } }
+.glyphicon-circle-arrow-up { &:before { content: "\e133"; } }
+.glyphicon-circle-arrow-down { &:before { content: "\e134"; } }
+.glyphicon-globe { &:before { content: "\e135"; } }
+.glyphicon-wrench { &:before { content: "\e136"; } }
+.glyphicon-tasks { &:before { content: "\e137"; } }
+.glyphicon-filter { &:before { content: "\e138"; } }
+.glyphicon-briefcase { &:before { content: "\e139"; } }
+.glyphicon-fullscreen { &:before { content: "\e140"; } }
+.glyphicon-dashboard { &:before { content: "\e141"; } }
+.glyphicon-paperclip { &:before { content: "\e142"; } }
+.glyphicon-heart-empty { &:before { content: "\e143"; } }
+.glyphicon-link { &:before { content: "\e144"; } }
+.glyphicon-phone { &:before { content: "\e145"; } }
+.glyphicon-pushpin { &:before { content: "\e146"; } }
+.glyphicon-usd { &:before { content: "\e148"; } }
+.glyphicon-gbp { &:before { content: "\e149"; } }
+.glyphicon-sort { &:before { content: "\e150"; } }
+.glyphicon-sort-by-alphabet { &:before { content: "\e151"; } }
+.glyphicon-sort-by-alphabet-alt { &:before { content: "\e152"; } }
+.glyphicon-sort-by-order { &:before { content: "\e153"; } }
+.glyphicon-sort-by-order-alt { &:before { content: "\e154"; } }
+.glyphicon-sort-by-attributes { &:before { content: "\e155"; } }
+.glyphicon-sort-by-attributes-alt { &:before { content: "\e156"; } }
+.glyphicon-unchecked { &:before { content: "\e157"; } }
+.glyphicon-expand { &:before { content: "\e158"; } }
+.glyphicon-collapse-down { &:before { content: "\e159"; } }
+.glyphicon-collapse-up { &:before { content: "\e160"; } }
+.glyphicon-log-in { &:before { content: "\e161"; } }
+.glyphicon-flash { &:before { content: "\e162"; } }
+.glyphicon-log-out { &:before { content: "\e163"; } }
+.glyphicon-new-window { &:before { content: "\e164"; } }
+.glyphicon-record { &:before { content: "\e165"; } }
+.glyphicon-save { &:before { content: "\e166"; } }
+.glyphicon-open { &:before { content: "\e167"; } }
+.glyphicon-saved { &:before { content: "\e168"; } }
+.glyphicon-import { &:before { content: "\e169"; } }
+.glyphicon-export { &:before { content: "\e170"; } }
+.glyphicon-send { &:before { content: "\e171"; } }
+.glyphicon-floppy-disk { &:before { content: "\e172"; } }
+.glyphicon-floppy-saved { &:before { content: "\e173"; } }
+.glyphicon-floppy-remove { &:before { content: "\e174"; } }
+.glyphicon-floppy-save { &:before { content: "\e175"; } }
+.glyphicon-floppy-open { &:before { content: "\e176"; } }
+.glyphicon-credit-card { &:before { content: "\e177"; } }
+.glyphicon-transfer { &:before { content: "\e178"; } }
+.glyphicon-cutlery { &:before { content: "\e179"; } }
+.glyphicon-header { &:before { content: "\e180"; } }
+.glyphicon-compressed { &:before { content: "\e181"; } }
+.glyphicon-earphone { &:before { content: "\e182"; } }
+.glyphicon-phone-alt { &:before { content: "\e183"; } }
+.glyphicon-tower { &:before { content: "\e184"; } }
+.glyphicon-stats { &:before { content: "\e185"; } }
+.glyphicon-sd-video { &:before { content: "\e186"; } }
+.glyphicon-hd-video { &:before { content: "\e187"; } }
+.glyphicon-subtitles { &:before { content: "\e188"; } }
+.glyphicon-sound-stereo { &:before { content: "\e189"; } }
+.glyphicon-sound-dolby { &:before { content: "\e190"; } }
+.glyphicon-sound-5-1 { &:before { content: "\e191"; } }
+.glyphicon-sound-6-1 { &:before { content: "\e192"; } }
+.glyphicon-sound-7-1 { &:before { content: "\e193"; } }
+.glyphicon-copyright-mark { &:before { content: "\e194"; } }
+.glyphicon-registration-mark { &:before { content: "\e195"; } }
+.glyphicon-cloud-download { &:before { content: "\e197"; } }
+.glyphicon-cloud-upload { &:before { content: "\e198"; } }
+.glyphicon-tree-conifer { &:before { content: "\e199"; } }
+.glyphicon-tree-deciduous { &:before { content: "\e200"; } }
+.glyphicon-cd { &:before { content: "\e201"; } }
+.glyphicon-save-file { &:before { content: "\e202"; } }
+.glyphicon-open-file { &:before { content: "\e203"; } }
+.glyphicon-level-up { &:before { content: "\e204"; } }
+.glyphicon-copy { &:before { content: "\e205"; } }
+.glyphicon-paste { &:before { content: "\e206"; } }
+// The following 2 Glyphicons are omitted for the time being because
+// they currently use Unicode codepoints that are outside the
+// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle
+// non-BMP codepoints in CSS string escapes, and thus can't display these two icons.
+// Notably, the bug affects some older versions of the Android Browser.
+// More info: https://github.com/twbs/bootstrap/issues/10106
+// .glyphicon-door { &:before { content: "\1f6aa"; } }
+// .glyphicon-key { &:before { content: "\1f511"; } }
+.glyphicon-alert { &:before { content: "\e209"; } }
+.glyphicon-equalizer { &:before { content: "\e210"; } }
+.glyphicon-king { &:before { content: "\e211"; } }
+.glyphicon-queen { &:before { content: "\e212"; } }
+.glyphicon-pawn { &:before { content: "\e213"; } }
+.glyphicon-bishop { &:before { content: "\e214"; } }
+.glyphicon-knight { &:before { content: "\e215"; } }
+.glyphicon-baby-formula { &:before { content: "\e216"; } }
+.glyphicon-tent { &:before { content: "\26fa"; } }
+.glyphicon-blackboard { &:before { content: "\e218"; } }
+.glyphicon-bed { &:before { content: "\e219"; } }
+.glyphicon-apple { &:before { content: "\f8ff"; } }
+.glyphicon-erase { &:before { content: "\e221"; } }
+.glyphicon-hourglass { &:before { content: "\231b"; } }
+.glyphicon-lamp { &:before { content: "\e223"; } }
+.glyphicon-duplicate { &:before { content: "\e224"; } }
+.glyphicon-piggy-bank { &:before { content: "\e225"; } }
+.glyphicon-scissors { &:before { content: "\e226"; } }
+.glyphicon-bitcoin { &:before { content: "\e227"; } }
+.glyphicon-btc { &:before { content: "\e227"; } }
+.glyphicon-xbt { &:before { content: "\e227"; } }
+.glyphicon-yen { &:before { content: "\00a5"; } }
+.glyphicon-jpy { &:before { content: "\00a5"; } }
+.glyphicon-ruble { &:before { content: "\20bd"; } }
+.glyphicon-rub { &:before { content: "\20bd"; } }
+.glyphicon-scale { &:before { content: "\e230"; } }
+.glyphicon-ice-lolly { &:before { content: "\e231"; } }
+.glyphicon-ice-lolly-tasted { &:before { content: "\e232"; } }
+.glyphicon-education { &:before { content: "\e233"; } }
+.glyphicon-option-horizontal { &:before { content: "\e234"; } }
+.glyphicon-option-vertical { &:before { content: "\e235"; } }
+.glyphicon-menu-hamburger { &:before { content: "\e236"; } }
+.glyphicon-modal-window { &:before { content: "\e237"; } }
+.glyphicon-oil { &:before { content: "\e238"; } }
+.glyphicon-grain { &:before { content: "\e239"; } }
+.glyphicon-sunglasses { &:before { content: "\e240"; } }
+.glyphicon-text-size { &:before { content: "\e241"; } }
+.glyphicon-text-color { &:before { content: "\e242"; } }
+.glyphicon-text-background { &:before { content: "\e243"; } }
+.glyphicon-object-align-top { &:before { content: "\e244"; } }
+.glyphicon-object-align-bottom { &:before { content: "\e245"; } }
+.glyphicon-object-align-horizontal{ &:before { content: "\e246"; } }
+.glyphicon-object-align-left { &:before { content: "\e247"; } }
+.glyphicon-object-align-vertical { &:before { content: "\e248"; } }
+.glyphicon-object-align-right { &:before { content: "\e249"; } }
+.glyphicon-triangle-right { &:before { content: "\e250"; } }
+.glyphicon-triangle-left { &:before { content: "\e251"; } }
+.glyphicon-triangle-bottom { &:before { content: "\e252"; } }
+.glyphicon-triangle-top { &:before { content: "\e253"; } }
+.glyphicon-console { &:before { content: "\e254"; } }
+.glyphicon-superscript { &:before { content: "\e255"; } }
+.glyphicon-subscript { &:before { content: "\e256"; } }
+.glyphicon-menu-left { &:before { content: "\e257"; } }
+.glyphicon-menu-right { &:before { content: "\e258"; } }
+.glyphicon-menu-down { &:before { content: "\e259"; } }
+.glyphicon-menu-up { &:before { content: "\e260"; } }
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/grid.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/grid.less
new file mode 100644
index 0000000..e100655
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/grid.less
@@ -0,0 +1,84 @@
+//
+// Grid system
+// --------------------------------------------------
+
+
+// Container widths
+//
+// Set the container width, and override it for fixed navbars in media queries.
+
+.container {
+ .container-fixed();
+
+ @media (min-width: @screen-sm-min) {
+ width: @container-sm;
+ }
+ @media (min-width: @screen-md-min) {
+ width: @container-md;
+ }
+ @media (min-width: @screen-lg-min) {
+ width: @container-lg;
+ }
+}
+
+
+// Fluid container
+//
+// Utilizes the mixin meant for fixed width containers, but without any defined
+// width for fluid, full width layouts.
+
+.container-fluid {
+ .container-fixed();
+}
+
+
+// Row
+//
+// Rows contain and clear the floats of your columns.
+
+.row {
+ .make-row();
+}
+
+
+// Columns
+//
+// Common styles for small and large grid columns
+
+.make-grid-columns();
+
+
+// Extra small grid
+//
+// Columns, offsets, pushes, and pulls for extra small devices like
+// smartphones.
+
+.make-grid(xs);
+
+
+// Small grid
+//
+// Columns, offsets, pushes, and pulls for the small device range, from phones
+// to tablets.
+
+@media (min-width: @screen-sm-min) {
+ .make-grid(sm);
+}
+
+
+// Medium grid
+//
+// Columns, offsets, pushes, and pulls for the desktop device range.
+
+@media (min-width: @screen-md-min) {
+ .make-grid(md);
+}
+
+
+// Large grid
+//
+// Columns, offsets, pushes, and pulls for the large desktop device range.
+
+@media (min-width: @screen-lg-min) {
+ .make-grid(lg);
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/input-groups.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/input-groups.less
new file mode 100644
index 0000000..4a711ff
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/input-groups.less
@@ -0,0 +1,167 @@
+//
+// Input groups
+// --------------------------------------------------
+
+// Base styles
+// -------------------------
+.input-group {
+ position: relative; // For dropdowns
+ display: table;
+ border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table
+
+ // Undo padding and float of grid classes
+ &[class*="col-"] {
+ float: none;
+ padding-left: 0;
+ padding-right: 0;
+ }
+
+ .form-control {
+ // Ensure that the input is always above the *appended* addon button for
+ // proper border colors.
+ position: relative;
+ z-index: 2;
+
+ // IE9 fubars the placeholder attribute in text inputs and the arrows on
+ // select elements in input groups. To fix it, we float the input. Details:
+ // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855
+ float: left;
+
+ width: 100%;
+ margin-bottom: 0;
+ }
+}
+
+// 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 {
+ .input-lg();
+}
+.input-group-sm > .form-control,
+.input-group-sm > .input-group-addon,
+.input-group-sm > .input-group-btn > .btn {
+ .input-sm();
+}
+
+
+// Display as table-cell
+// -------------------------
+.input-group-addon,
+.input-group-btn,
+.input-group .form-control {
+ display: table-cell;
+
+ &:not(:first-child):not(:last-child) {
+ border-radius: 0;
+ }
+}
+// Addon and addon wrapper for buttons
+.input-group-addon,
+.input-group-btn {
+ width: 1%;
+ white-space: nowrap;
+ vertical-align: middle; // Match the inputs
+}
+
+// Text input groups
+// -------------------------
+.input-group-addon {
+ padding: @padding-base-vertical @padding-base-horizontal;
+ font-size: @font-size-base;
+ font-weight: normal;
+ line-height: 1;
+ color: @input-color;
+ text-align: center;
+ background-color: @input-group-addon-bg;
+ border: 1px solid @input-group-addon-border-color;
+ border-radius: @input-border-radius;
+
+ // Sizing
+ &.input-sm {
+ padding: @padding-small-vertical @padding-small-horizontal;
+ font-size: @font-size-small;
+ border-radius: @input-border-radius-small;
+ }
+ &.input-lg {
+ padding: @padding-large-vertical @padding-large-horizontal;
+ font-size: @font-size-large;
+ border-radius: @input-border-radius-large;
+ }
+
+ // Nuke default margins from checkboxes and radios to vertically center within.
+ input[type="radio"],
+ input[type="checkbox"] {
+ margin-top: 0;
+ }
+}
+
+// Reset rounded corners
+.input-group .form-control:first-child,
+.input-group-addon:first-child,
+.input-group-btn:first-child > .btn,
+.input-group-btn:first-child > .btn-group > .btn,
+.input-group-btn:first-child > .dropdown-toggle,
+.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
+.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
+ .border-right-radius(0);
+}
+.input-group-addon:first-child {
+ border-right: 0;
+}
+.input-group .form-control:last-child,
+.input-group-addon:last-child,
+.input-group-btn:last-child > .btn,
+.input-group-btn:last-child > .btn-group > .btn,
+.input-group-btn:last-child > .dropdown-toggle,
+.input-group-btn:first-child > .btn:not(:first-child),
+.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
+ .border-left-radius(0);
+}
+.input-group-addon:last-child {
+ border-left: 0;
+}
+
+// Button input groups
+// -------------------------
+.input-group-btn {
+ position: relative;
+ // Jankily prevent input button groups from wrapping with `white-space` and
+ // `font-size` in combination with `inline-block` on buttons.
+ font-size: 0;
+ white-space: nowrap;
+
+ // Negative margin for spacing, position for bringing hovered/focused/actived
+ // element above the siblings.
+ > .btn {
+ position: relative;
+ + .btn {
+ margin-left: -1px;
+ }
+ // Bring the "active" button to the front
+ &:hover,
+ &:focus,
+ &:active {
+ z-index: 2;
+ }
+ }
+
+ // Negative margin to only have a 1px border between the two
+ &:first-child {
+ > .btn,
+ > .btn-group {
+ margin-right: -1px;
+ }
+ }
+ &:last-child {
+ > .btn,
+ > .btn-group {
+ z-index: 2;
+ margin-left: -1px;
+ }
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/jumbotron.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/jumbotron.less
new file mode 100644
index 0000000..fa80a38
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/jumbotron.less
@@ -0,0 +1,52 @@
+//
+// Jumbotron
+// --------------------------------------------------
+
+
+.jumbotron {
+ padding-top: @jumbotron-padding;
+ padding-bottom: @jumbotron-padding;
+ margin-bottom: @jumbotron-padding;
+ color: @jumbotron-color;
+ background-color: @jumbotron-bg;
+
+ h1,
+ .h1 {
+ color: @jumbotron-heading-color;
+ }
+
+ p {
+ margin-bottom: (@jumbotron-padding / 2);
+ font-size: @jumbotron-font-size;
+ font-weight: 200;
+ }
+
+ > hr {
+ border-top-color: darken(@jumbotron-bg, 10%);
+ }
+
+ .container &,
+ .container-fluid & {
+ border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container
+ }
+
+ .container {
+ max-width: 100%;
+ }
+
+ @media screen and (min-width: @screen-sm-min) {
+ padding-top: (@jumbotron-padding * 1.6);
+ padding-bottom: (@jumbotron-padding * 1.6);
+
+ .container &,
+ .container-fluid & {
+ padding-left: (@jumbotron-padding * 2);
+ padding-right: (@jumbotron-padding * 2);
+ }
+
+ h1,
+ .h1 {
+ font-size: @jumbotron-heading-font-size;
+ }
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/labels.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/labels.less
new file mode 100644
index 0000000..9a5a270
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/labels.less
@@ -0,0 +1,64 @@
+//
+// Labels
+// --------------------------------------------------
+
+.label {
+ display: inline;
+ padding: .2em .6em .3em;
+ font-size: 75%;
+ font-weight: bold;
+ line-height: 1;
+ color: @label-color;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ border-radius: .25em;
+
+ // Add hover effects, but only for links
+ a& {
+ &:hover,
+ &:focus {
+ color: @label-link-hover-color;
+ text-decoration: none;
+ cursor: pointer;
+ }
+ }
+
+ // Empty labels collapse automatically (not available in IE8)
+ &:empty {
+ display: none;
+ }
+
+ // Quick fix for labels in buttons
+ .btn & {
+ position: relative;
+ top: -1px;
+ }
+}
+
+// Colors
+// Contextual variations (linked labels get darker on :hover)
+
+.label-default {
+ .label-variant(@label-default-bg);
+}
+
+.label-primary {
+ .label-variant(@label-primary-bg);
+}
+
+.label-success {
+ .label-variant(@label-success-bg);
+}
+
+.label-info {
+ .label-variant(@label-info-bg);
+}
+
+.label-warning {
+ .label-variant(@label-warning-bg);
+}
+
+.label-danger {
+ .label-variant(@label-danger-bg);
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/list-group.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/list-group.less
new file mode 100644
index 0000000..216b912
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/list-group.less
@@ -0,0 +1,130 @@
+//
+// List groups
+// --------------------------------------------------
+
+
+// Base class
+//
+// Easily usable on <ul>, <ol>, or <div>.
+
+.list-group {
+ // No need to set list-style: none; since .list-group-item is block level
+ margin-bottom: 20px;
+ padding-left: 0; // reset padding because ul and ol
+}
+
+
+// Individual list items
+//
+// Use on `li`s or `div`s within the `.list-group` parent.
+
+.list-group-item {
+ position: relative;
+ display: block;
+ padding: 10px 15px;
+ // Place the border on the list items and negative margin up for better styling
+ margin-bottom: -1px;
+ background-color: @list-group-bg;
+ border: 1px solid @list-group-border;
+
+ // Round the first and last items
+ &:first-child {
+ .border-top-radius(@list-group-border-radius);
+ }
+ &:last-child {
+ margin-bottom: 0;
+ .border-bottom-radius(@list-group-border-radius);
+ }
+}
+
+
+// Interactive list items
+//
+// Use anchor or button elements instead of `li`s or `div`s to create interactive items.
+// Includes an extra `.active` modifier class for showing selected items.
+
+a.list-group-item,
+button.list-group-item {
+ color: @list-group-link-color;
+
+ .list-group-item-heading {
+ color: @list-group-link-heading-color;
+ }
+
+ // Hover state
+ &:hover,
+ &:focus {
+ text-decoration: none;
+ color: @list-group-link-hover-color;
+ background-color: @list-group-hover-bg;
+ }
+}
+
+button.list-group-item {
+ width: 100%;
+ text-align: left;
+}
+
+.list-group-item {
+ // Disabled state
+ &.disabled,
+ &.disabled:hover,
+ &.disabled:focus {
+ background-color: @list-group-disabled-bg;
+ color: @list-group-disabled-color;
+ cursor: @cursor-disabled;
+
+ // Force color to inherit for custom content
+ .list-group-item-heading {
+ color: inherit;
+ }
+ .list-group-item-text {
+ color: @list-group-disabled-text-color;
+ }
+ }
+
+ // Active class on item itself, not parent
+ &.active,
+ &.active:hover,
+ &.active:focus {
+ z-index: 2; // Place active items above their siblings for proper border styling
+ color: @list-group-active-color;
+ background-color: @list-group-active-bg;
+ border-color: @list-group-active-border;
+
+ // Force color to inherit for custom content
+ .list-group-item-heading,
+ .list-group-item-heading > small,
+ .list-group-item-heading > .small {
+ color: inherit;
+ }
+ .list-group-item-text {
+ color: @list-group-active-text-color;
+ }
+ }
+}
+
+
+// Contextual variants
+//
+// Add modifier classes to change text and background color on individual items.
+// Organizationally, this must come after the `:hover` states.
+
+.list-group-item-variant(success; @state-success-bg; @state-success-text);
+.list-group-item-variant(info; @state-info-bg; @state-info-text);
+.list-group-item-variant(warning; @state-warning-bg; @state-warning-text);
+.list-group-item-variant(danger; @state-danger-bg; @state-danger-text);
+
+
+// Custom content options
+//
+// Extra classes for creating well-formatted content within `.list-group-item`s.
+
+.list-group-item-heading {
+ margin-top: 0;
+ margin-bottom: 5px;
+}
+.list-group-item-text {
+ margin-bottom: 0;
+ line-height: 1.3;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/media.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/media.less
new file mode 100644
index 0000000..8c835e8
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/media.less
@@ -0,0 +1,66 @@
+.media {
+ // Proper spacing between instances of .media
+ margin-top: 15px;
+
+ &:first-child {
+ margin-top: 0;
+ }
+}
+
+.media,
+.media-body {
+ zoom: 1;
+ overflow: hidden;
+}
+
+.media-body {
+ width: 10000px;
+}
+
+.media-object {
+ display: block;
+
+ // Fix collapse in webkit from max-width: 100% and display: table-cell.
+ &.img-thumbnail {
+ max-width: none;
+ }
+}
+
+.media-right,
+.media > .pull-right {
+ padding-left: 10px;
+}
+
+.media-left,
+.media > .pull-left {
+ padding-right: 10px;
+}
+
+.media-left,
+.media-right,
+.media-body {
+ display: table-cell;
+ vertical-align: top;
+}
+
+.media-middle {
+ vertical-align: middle;
+}
+
+.media-bottom {
+ vertical-align: bottom;
+}
+
+// Reset margins on headings for tighter default spacing
+.media-heading {
+ margin-top: 0;
+ margin-bottom: 5px;
+}
+
+// Media list variation
+//
+// Undo default ul/ol styles
+.media-list {
+ padding-left: 0;
+ list-style: none;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins.less
new file mode 100644
index 0000000..e6f9fe6
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins.less
@@ -0,0 +1,40 @@
+// Mixins
+// --------------------------------------------------
+
+// Utilities
+@import "mixins/hide-text.less";
+@import "mixins/opacity.less";
+@import "mixins/image.less";
+@import "mixins/labels.less";
+@import "mixins/reset-filter.less";
+@import "mixins/resize.less";
+@import "mixins/responsive-visibility.less";
+@import "mixins/size.less";
+@import "mixins/tab-focus.less";
+@import "mixins/reset-text.less";
+@import "mixins/text-emphasis.less";
+@import "mixins/text-overflow.less";
+@import "mixins/vendor-prefixes.less";
+
+// Components
+@import "mixins/alerts.less";
+@import "mixins/buttons.less";
+@import "mixins/panels.less";
+@import "mixins/pagination.less";
+@import "mixins/list-group.less";
+@import "mixins/nav-divider.less";
+@import "mixins/forms.less";
+@import "mixins/progress-bar.less";
+@import "mixins/table-row.less";
+
+// Skins
+@import "mixins/background-variant.less";
+@import "mixins/border-radius.less";
+@import "mixins/gradients.less";
+
+// Layout
+@import "mixins/clearfix.less";
+@import "mixins/center-block.less";
+@import "mixins/nav-vertical-align.less";
+@import "mixins/grid-framework.less";
+@import "mixins/grid.less";
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/alerts.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/alerts.less
new file mode 100644
index 0000000..396196f
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/alerts.less
@@ -0,0 +1,14 @@
+// Alerts
+
+.alert-variant(@background; @border; @text-color) {
+ background-color: @background;
+ border-color: @border;
+ color: @text-color;
+
+ hr {
+ border-top-color: darken(@border, 5%);
+ }
+ .alert-link {
+ color: darken(@text-color, 10%);
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/background-variant.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/background-variant.less
new file mode 100644
index 0000000..a85c22b
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/background-variant.less
@@ -0,0 +1,9 @@
+// Contextual backgrounds
+
+.bg-variant(@color) {
+ background-color: @color;
+ a&:hover,
+ a&:focus {
+ background-color: darken(@color, 10%);
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/border-radius.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/border-radius.less
new file mode 100644
index 0000000..ca05dbf
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/border-radius.less
@@ -0,0 +1,18 @@
+// Single side border-radius
+
+.border-top-radius(@radius) {
+ border-top-right-radius: @radius;
+ border-top-left-radius: @radius;
+}
+.border-right-radius(@radius) {
+ border-bottom-right-radius: @radius;
+ border-top-right-radius: @radius;
+}
+.border-bottom-radius(@radius) {
+ border-bottom-right-radius: @radius;
+ border-bottom-left-radius: @radius;
+}
+.border-left-radius(@radius) {
+ border-bottom-left-radius: @radius;
+ border-top-left-radius: @radius;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/buttons.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/buttons.less
new file mode 100644
index 0000000..6875a97
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/buttons.less
@@ -0,0 +1,68 @@
+// Button variants
+//
+// Easily pump out default styles, as well as :hover, :focus, :active,
+// and disabled options for all buttons
+
+.button-variant(@color; @background; @border) {
+ color: @color;
+ background-color: @background;
+ border-color: @border;
+
+ &:focus,
+ &.focus {
+ color: @color;
+ background-color: darken(@background, 10%);
+ border-color: darken(@border, 25%);
+ }
+ &:hover {
+ color: @color;
+ background-color: darken(@background, 10%);
+ border-color: darken(@border, 12%);
+ }
+ &:active,
+ &.active,
+ .open > .dropdown-toggle& {
+ color: @color;
+ background-color: darken(@background, 10%);
+ border-color: darken(@border, 12%);
+
+ &:hover,
+ &:focus,
+ &.focus {
+ color: @color;
+ background-color: darken(@background, 17%);
+ border-color: darken(@border, 25%);
+ }
+ }
+ &:active,
+ &.active,
+ .open > .dropdown-toggle& {
+ background-image: none;
+ }
+ &.disabled,
+ &[disabled],
+ fieldset[disabled] & {
+ &,
+ &:hover,
+ &:focus,
+ &.focus,
+ &:active,
+ &.active {
+ background-color: @background;
+ border-color: @border;
+ }
+ }
+
+ .badge {
+ color: @background;
+ background-color: @color;
+ }
+}
+
+// Button sizes
+.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
+ padding: @padding-vertical @padding-horizontal;
+ font-size: @font-size;
+ line-height: @line-height;
+ border-radius: @border-radius;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/center-block.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/center-block.less
new file mode 100644
index 0000000..d18d6de
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/center-block.less
@@ -0,0 +1,7 @@
+// Center-align a block level element
+
+.center-block() {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/clearfix.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/clearfix.less
new file mode 100644
index 0000000..3f7a382
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/clearfix.less
@@ -0,0 +1,22 @@
+// Clearfix
+//
+// For modern browsers
+// 1. The space content is one way to avoid an Opera bug when the
+// contenteditable attribute is included anywhere else in the document.
+// Otherwise it causes space to appear at the top and bottom of elements
+// that are clearfixed.
+// 2. The use of `table` rather than `block` is only necessary if using
+// `:before` to contain the top-margins of child elements.
+//
+// Source: http://nicolasgallagher.com/micro-clearfix-hack/
+
+.clearfix() {
+ &:before,
+ &:after {
+ content: " "; // 1
+ display: table; // 2
+ }
+ &:after {
+ clear: both;
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/forms.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/forms.less
new file mode 100644
index 0000000..6f55ed9
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/forms.less
@@ -0,0 +1,85 @@
+// Form validation states
+//
+// Used in forms.less to generate the form validation CSS for warnings, errors,
+// and successes.
+
+.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {
+ // Color the label and help text
+ .help-block,
+ .control-label,
+ .radio,
+ .checkbox,
+ .radio-inline,
+ .checkbox-inline,
+ &.radio label,
+ &.checkbox label,
+ &.radio-inline label,
+ &.checkbox-inline label {
+ color: @text-color;
+ }
+ // Set the border and box shadow on specific inputs to match
+ .form-control {
+ border-color: @border-color;
+ .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
+ &:focus {
+ border-color: darken(@border-color, 10%);
+ @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);
+ .box-shadow(@shadow);
+ }
+ }
+ // Set validation states also for addons
+ .input-group-addon {
+ color: @text-color;
+ border-color: @border-color;
+ background-color: @background-color;
+ }
+ // Optional feedback icon
+ .form-control-feedback {
+ color: @text-color;
+ }
+}
+
+
+// Form control focus state
+//
+// Generate a customized focus state and for any input with the specified color,
+// which defaults to the `@input-border-focus` variable.
+//
+// We highly encourage you to not customize the default value, but instead use
+// this to tweak colors on an as-needed basis. This aesthetic change is based on
+// WebKit's default styles, but applicable to a wider range of browsers. Its
+// usability and accessibility should be taken into account with any change.
+//
+// Example usage: change the default blue border and shadow to white for better
+// contrast against a dark gray background.
+.form-control-focus(@color: @input-border-focus) {
+ @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);
+ &:focus {
+ border-color: @color;
+ outline: 0;
+ .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}");
+ }
+}
+
+// Form control sizing
+//
+// Relative text size, padding, and border-radii changes for form controls. For
+// horizontal sizing, wrap controls in the predefined grid classes. `<select>`
+// element gets special love because it's special, and that's a fact!
+.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
+ height: @input-height;
+ padding: @padding-vertical @padding-horizontal;
+ font-size: @font-size;
+ line-height: @line-height;
+ border-radius: @border-radius;
+
+ select& {
+ height: @input-height;
+ line-height: @input-height;
+ }
+
+ textarea&,
+ select[multiple]& {
+ height: auto;
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/gradients.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/gradients.less
new file mode 100644
index 0000000..0b88a89
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/gradients.less
@@ -0,0 +1,59 @@
+// Gradients
+
+#gradient {
+
+ // Horizontal gradient, from left to right
+ //
+ // Creates two color stops, start and end, by specifying a color and position for each color stop.
+ // Color stops are not available in IE9 and below.
+ .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
+ background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
+ background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12
+ background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
+ background-repeat: repeat-x;
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down
+ }
+
+ // Vertical gradient, from top to bottom
+ //
+ // Creates two color stops, start and end, by specifying a color and position for each color stop.
+ // Color stops are not available in IE9 and below.
+ .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
+ background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
+ background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12
+ background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
+ background-repeat: repeat-x;
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down
+ }
+
+ .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {
+ background-repeat: repeat-x;
+ background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+
+ background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12
+ background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
+ }
+ .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
+ background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
+ background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
+ background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);
+ background-repeat: no-repeat;
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
+ }
+ .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
+ background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
+ background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
+ background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);
+ background-repeat: no-repeat;
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
+ }
+ .radial(@inner-color: #555; @outer-color: #333) {
+ background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);
+ background-image: radial-gradient(circle, @inner-color, @outer-color);
+ background-repeat: no-repeat;
+ }
+ .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {
+ background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
+ background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/grid-framework.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/grid-framework.less
new file mode 100644
index 0000000..8c23eed
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/grid-framework.less
@@ -0,0 +1,91 @@
+// Framework grid generation
+//
+// Used only by Bootstrap to generate the correct number of grid classes given
+// any value of `@grid-columns`.
+
+.make-grid-columns() {
+ // Common styles for all sizes of grid columns, widths 1-12
+ .col(@index) { // initial
+ @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
+ .col((@index + 1), @item);
+ }
+ .col(@index, @list) when (@index =< @grid-columns) { // general; "=<" isn't a typo
+ @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
+ .col((@index + 1), ~"@{list}, @{item}");
+ }
+ .col(@index, @list) when (@index > @grid-columns) { // terminal
+ @{list} {
+ position: relative;
+ // Prevent columns from collapsing when empty
+ min-height: 1px;
+ // Inner gutter via padding
+ padding-left: ceil((@grid-gutter-width / 2));
+ padding-right: floor((@grid-gutter-width / 2));
+ }
+ }
+ .col(1); // kickstart it
+}
+
+.float-grid-columns(@class) {
+ .col(@index) { // initial
+ @item: ~".col-@{class}-@{index}";
+ .col((@index + 1), @item);
+ }
+ .col(@index, @list) when (@index =< @grid-columns) { // general
+ @item: ~".col-@{class}-@{index}";
+ .col((@index + 1), ~"@{list}, @{item}");
+ }
+ .col(@index, @list) when (@index > @grid-columns) { // terminal
+ @{list} {
+ float: left;
+ }
+ }
+ .col(1); // kickstart it
+}
+
+.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {
+ .col-@{class}-@{index} {
+ width: percentage((@index / @grid-columns));
+ }
+}
+.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {
+ .col-@{class}-push-@{index} {
+ left: percentage((@index / @grid-columns));
+ }
+}
+.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {
+ .col-@{class}-push-0 {
+ left: auto;
+ }
+}
+.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {
+ .col-@{class}-pull-@{index} {
+ right: percentage((@index / @grid-columns));
+ }
+}
+.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {
+ .col-@{class}-pull-0 {
+ right: auto;
+ }
+}
+.calc-grid-column(@index, @class, @type) when (@type = offset) {
+ .col-@{class}-offset-@{index} {
+ margin-left: percentage((@index / @grid-columns));
+ }
+}
+
+// Basic looping in LESS
+.loop-grid-columns(@index, @class, @type) when (@index >= 0) {
+ .calc-grid-column(@index, @class, @type);
+ // next iteration
+ .loop-grid-columns((@index - 1), @class, @type);
+}
+
+// Create grid for specific class
+.make-grid(@class) {
+ .float-grid-columns(@class);
+ .loop-grid-columns(@grid-columns, @class, width);
+ .loop-grid-columns(@grid-columns, @class, pull);
+ .loop-grid-columns(@grid-columns, @class, push);
+ .loop-grid-columns(@grid-columns, @class, offset);
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/grid.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/grid.less
new file mode 100644
index 0000000..f144c15
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/grid.less
@@ -0,0 +1,122 @@
+// Grid system
+//
+// Generate semantic grid columns with these mixins.
+
+// Centered container element
+.container-fixed(@gutter: @grid-gutter-width) {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: (@gutter / 2);
+ padding-right: (@gutter / 2);
+ &:extend(.clearfix all);
+}
+
+// Creates a wrapper for a series of columns
+.make-row(@gutter: @grid-gutter-width) {
+ margin-left: ceil((@gutter / -2));
+ margin-right: floor((@gutter / -2));
+ &:extend(.clearfix all);
+}
+
+// Generate the extra small columns
+.make-xs-column(@columns; @gutter: @grid-gutter-width) {
+ position: relative;
+ float: left;
+ width: percentage((@columns / @grid-columns));
+ min-height: 1px;
+ padding-left: (@gutter / 2);
+ padding-right: (@gutter / 2);
+}
+.make-xs-column-offset(@columns) {
+ margin-left: percentage((@columns / @grid-columns));
+}
+.make-xs-column-push(@columns) {
+ left: percentage((@columns / @grid-columns));
+}
+.make-xs-column-pull(@columns) {
+ right: percentage((@columns / @grid-columns));
+}
+
+// Generate the small columns
+.make-sm-column(@columns; @gutter: @grid-gutter-width) {
+ position: relative;
+ min-height: 1px;
+ padding-left: (@gutter / 2);
+ padding-right: (@gutter / 2);
+
+ @media (min-width: @screen-sm-min) {
+ float: left;
+ width: percentage((@columns / @grid-columns));
+ }
+}
+.make-sm-column-offset(@columns) {
+ @media (min-width: @screen-sm-min) {
+ margin-left: percentage((@columns / @grid-columns));
+ }
+}
+.make-sm-column-push(@columns) {
+ @media (min-width: @screen-sm-min) {
+ left: percentage((@columns / @grid-columns));
+ }
+}
+.make-sm-column-pull(@columns) {
+ @media (min-width: @screen-sm-min) {
+ right: percentage((@columns / @grid-columns));
+ }
+}
+
+// Generate the medium columns
+.make-md-column(@columns; @gutter: @grid-gutter-width) {
+ position: relative;
+ min-height: 1px;
+ padding-left: (@gutter / 2);
+ padding-right: (@gutter / 2);
+
+ @media (min-width: @screen-md-min) {
+ float: left;
+ width: percentage((@columns / @grid-columns));
+ }
+}
+.make-md-column-offset(@columns) {
+ @media (min-width: @screen-md-min) {
+ margin-left: percentage((@columns / @grid-columns));
+ }
+}
+.make-md-column-push(@columns) {
+ @media (min-width: @screen-md-min) {
+ left: percentage((@columns / @grid-columns));
+ }
+}
+.make-md-column-pull(@columns) {
+ @media (min-width: @screen-md-min) {
+ right: percentage((@columns / @grid-columns));
+ }
+}
+
+// Generate the large columns
+.make-lg-column(@columns; @gutter: @grid-gutter-width) {
+ position: relative;
+ min-height: 1px;
+ padding-left: (@gutter / 2);
+ padding-right: (@gutter / 2);
+
+ @media (min-width: @screen-lg-min) {
+ float: left;
+ width: percentage((@columns / @grid-columns));
+ }
+}
+.make-lg-column-offset(@columns) {
+ @media (min-width: @screen-lg-min) {
+ margin-left: percentage((@columns / @grid-columns));
+ }
+}
+.make-lg-column-push(@columns) {
+ @media (min-width: @screen-lg-min) {
+ left: percentage((@columns / @grid-columns));
+ }
+}
+.make-lg-column-pull(@columns) {
+ @media (min-width: @screen-lg-min) {
+ right: percentage((@columns / @grid-columns));
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/hide-text.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/hide-text.less
new file mode 100644
index 0000000..bc70118
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/hide-text.less
@@ -0,0 +1,21 @@
+// CSS image replacement
+//
+// Heads up! v3 launched with only `.hide-text()`, but per our pattern for
+// mixins being reused as classes with the same name, this doesn't hold up. As
+// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.
+//
+// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
+
+// Deprecated as of v3.0.1 (will be removed in v4)
+.hide-text() {
+ font: ~"0/0" a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+}
+
+// New mixin to use as of v3.0.1
+.text-hide() {
+ .hide-text();
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/image.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/image.less
new file mode 100644
index 0000000..f233cb3
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/image.less
@@ -0,0 +1,33 @@
+// Image Mixins
+// - Responsive image
+// - Retina image
+
+
+// Responsive image
+//
+// Keep images from scaling beyond the width of their parents.
+.img-responsive(@display: block) {
+ display: @display;
+ max-width: 100%; // Part 1: Set a maximum relative to the parent
+ height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
+}
+
+
+// Retina image
+//
+// Short retina mixin for setting background-image and -size. Note that the
+// spelling of `min--moz-device-pixel-ratio` is intentional.
+.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {
+ background-image: url("@{file-1x}");
+
+ @media
+ only screen and (-webkit-min-device-pixel-ratio: 2),
+ only screen and ( min--moz-device-pixel-ratio: 2),
+ only screen and ( -o-min-device-pixel-ratio: 2/1),
+ only screen and ( min-device-pixel-ratio: 2),
+ only screen and ( min-resolution: 192dpi),
+ only screen and ( min-resolution: 2dppx) {
+ background-image: url("@{file-2x}");
+ background-size: @width-1x @height-1x;
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/labels.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/labels.less
new file mode 100644
index 0000000..9f7a67e
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/labels.less
@@ -0,0 +1,12 @@
+// Labels
+
+.label-variant(@color) {
+ background-color: @color;
+
+ &[href] {
+ &:hover,
+ &:focus {
+ background-color: darken(@color, 10%);
+ }
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/list-group.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/list-group.less
new file mode 100644
index 0000000..03aa190
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/list-group.less
@@ -0,0 +1,30 @@
+// List Groups
+
+.list-group-item-variant(@state; @background; @color) {
+ .list-group-item-@{state} {
+ color: @color;
+ background-color: @background;
+
+ a&,
+ button& {
+ color: @color;
+
+ .list-group-item-heading {
+ color: inherit;
+ }
+
+ &:hover,
+ &:focus {
+ color: @color;
+ background-color: darken(@background, 5%);
+ }
+ &.active,
+ &.active:hover,
+ &.active:focus {
+ color: #fff;
+ background-color: @color;
+ border-color: @color;
+ }
+ }
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/nav-divider.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/nav-divider.less
new file mode 100644
index 0000000..feb1e9e
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/nav-divider.less
@@ -0,0 +1,10 @@
+// Horizontal dividers
+//
+// Dividers (basically an hr) within dropdowns and nav lists
+
+.nav-divider(@color: #e5e5e5) {
+ height: 1px;
+ margin: ((@line-height-computed / 2) - 1) 0;
+ overflow: hidden;
+ background-color: @color;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/nav-vertical-align.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/nav-vertical-align.less
new file mode 100644
index 0000000..d458c78
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/nav-vertical-align.less
@@ -0,0 +1,9 @@
+// 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.
+
+.navbar-vertical-align(@element-height) {
+ margin-top: ((@navbar-height - @element-height) / 2);
+ margin-bottom: ((@navbar-height - @element-height) / 2);
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/opacity.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/opacity.less
new file mode 100644
index 0000000..33ed25c
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/opacity.less
@@ -0,0 +1,8 @@
+// Opacity
+
+.opacity(@opacity) {
+ opacity: @opacity;
+ // IE8 filter
+ @opacity-ie: (@opacity * 100);
+ filter: ~"alpha(opacity=@{opacity-ie})";
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/pagination.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/pagination.less
new file mode 100644
index 0000000..618804f
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/pagination.less
@@ -0,0 +1,24 @@
+// Pagination
+
+.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
+ > li {
+ > a,
+ > span {
+ padding: @padding-vertical @padding-horizontal;
+ font-size: @font-size;
+ line-height: @line-height;
+ }
+ &:first-child {
+ > a,
+ > span {
+ .border-left-radius(@border-radius);
+ }
+ }
+ &:last-child {
+ > a,
+ > span {
+ .border-right-radius(@border-radius);
+ }
+ }
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/panels.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/panels.less
new file mode 100644
index 0000000..49ee10d
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/panels.less
@@ -0,0 +1,24 @@
+// Panels
+
+.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {
+ border-color: @border;
+
+ & > .panel-heading {
+ color: @heading-text-color;
+ background-color: @heading-bg-color;
+ border-color: @heading-border;
+
+ + .panel-collapse > .panel-body {
+ border-top-color: @border;
+ }
+ .badge {
+ color: @heading-bg-color;
+ background-color: @heading-text-color;
+ }
+ }
+ & > .panel-footer {
+ + .panel-collapse > .panel-body {
+ border-bottom-color: @border;
+ }
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/progress-bar.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/progress-bar.less
new file mode 100644
index 0000000..f07996a
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/progress-bar.less
@@ -0,0 +1,10 @@
+// Progress bars
+
+.progress-bar-variant(@color) {
+ background-color: @color;
+
+ // Deprecated parent class requirement as of v3.2.0
+ .progress-striped & {
+ #gradient > .striped();
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/reset-filter.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/reset-filter.less
new file mode 100644
index 0000000..68cdb5e
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/reset-filter.less
@@ -0,0 +1,8 @@
+// Reset filters for IE
+//
+// When you need to remove a gradient background, do not forget to use this to reset
+// the IE filter for IE9 and below.
+
+.reset-filter() {
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/reset-text.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/reset-text.less
new file mode 100644
index 0000000..58dd4d1
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/reset-text.less
@@ -0,0 +1,18 @@
+.reset-text() {
+ font-family: @font-family-base;
+ // We deliberately do NOT reset font-size.
+ font-style: normal;
+ font-weight: normal;
+ letter-spacing: normal;
+ line-break: auto;
+ line-height: @line-height-base;
+ text-align: left; // Fallback for where `start` is not supported
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ white-space: normal;
+ word-break: normal;
+ word-spacing: normal;
+ word-wrap: normal;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/resize.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/resize.less
new file mode 100644
index 0000000..3acd3af
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/resize.less
@@ -0,0 +1,6 @@
+// Resize anything
+
+.resizable(@direction) {
+ resize: @direction; // Options: horizontal, vertical, both
+ overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/responsive-visibility.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/responsive-visibility.less
new file mode 100644
index 0000000..ecf1e97
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/responsive-visibility.less
@@ -0,0 +1,15 @@
+// Responsive utilities
+
+//
+// More easily include all the states for responsive-utilities.less.
+.responsive-visibility() {
+ display: block !important;
+ table& { display: table !important; }
+ tr& { display: table-row !important; }
+ th&,
+ td& { display: table-cell !important; }
+}
+
+.responsive-invisibility() {
+ display: none !important;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/size.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/size.less
new file mode 100644
index 0000000..a8be650
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/size.less
@@ -0,0 +1,10 @@
+// Sizing shortcuts
+
+.size(@width; @height) {
+ width: @width;
+ height: @height;
+}
+
+.square(@size) {
+ .size(@size; @size);
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/tab-focus.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/tab-focus.less
new file mode 100644
index 0000000..1f1f05a
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/tab-focus.less
@@ -0,0 +1,9 @@
+// WebKit-style focus
+
+.tab-focus() {
+ // Default
+ outline: thin dotted;
+ // WebKit
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/table-row.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/table-row.less
new file mode 100644
index 0000000..0f287f1
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/table-row.less
@@ -0,0 +1,28 @@
+// Tables
+
+.table-row-variant(@state; @background) {
+ // Exact selectors below required to override `.table-striped` and prevent
+ // inheritance to nested tables.
+ .table > thead > tr,
+ .table > tbody > tr,
+ .table > tfoot > tr {
+ > td.@{state},
+ > th.@{state},
+ &.@{state} > td,
+ &.@{state} > th {
+ background-color: @background;
+ }
+ }
+
+ // Hover states for `.table-hover`
+ // Note: this is not available for cells or rows within `thead` or `tfoot`.
+ .table-hover > tbody > tr {
+ > td.@{state}:hover,
+ > th.@{state}:hover,
+ &.@{state}:hover > td,
+ &:hover > .@{state},
+ &.@{state}:hover > th {
+ background-color: darken(@background, 5%);
+ }
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/text-emphasis.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/text-emphasis.less
new file mode 100644
index 0000000..9e8a77a
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/text-emphasis.less
@@ -0,0 +1,9 @@
+// Typography
+
+.text-emphasis-variant(@color) {
+ color: @color;
+ a&:hover,
+ a&:focus {
+ color: darken(@color, 10%);
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/text-overflow.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/text-overflow.less
new file mode 100644
index 0000000..c11ad2f
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/text-overflow.less
@@ -0,0 +1,8 @@
+// Text overflow
+// Requires inline-block or block for proper styling
+
+.text-overflow() {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/vendor-prefixes.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/vendor-prefixes.less
new file mode 100644
index 0000000..afd3331
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/mixins/vendor-prefixes.less
@@ -0,0 +1,227 @@
+// Vendor Prefixes
+//
+// All vendor mixins are deprecated as of v3.2.0 due to the introduction of
+// Autoprefixer in our Gruntfile. They will be removed in v4.
+
+// - Animations
+// - Backface visibility
+// - Box shadow
+// - Box sizing
+// - Content columns
+// - Hyphens
+// - Placeholder text
+// - Transformations
+// - Transitions
+// - User Select
+
+
+// Animations
+.animation(@animation) {
+ -webkit-animation: @animation;
+ -o-animation: @animation;
+ animation: @animation;
+}
+.animation-name(@name) {
+ -webkit-animation-name: @name;
+ animation-name: @name;
+}
+.animation-duration(@duration) {
+ -webkit-animation-duration: @duration;
+ animation-duration: @duration;
+}
+.animation-timing-function(@timing-function) {
+ -webkit-animation-timing-function: @timing-function;
+ animation-timing-function: @timing-function;
+}
+.animation-delay(@delay) {
+ -webkit-animation-delay: @delay;
+ animation-delay: @delay;
+}
+.animation-iteration-count(@iteration-count) {
+ -webkit-animation-iteration-count: @iteration-count;
+ animation-iteration-count: @iteration-count;
+}
+.animation-direction(@direction) {
+ -webkit-animation-direction: @direction;
+ animation-direction: @direction;
+}
+.animation-fill-mode(@fill-mode) {
+ -webkit-animation-fill-mode: @fill-mode;
+ animation-fill-mode: @fill-mode;
+}
+
+// Backface visibility
+// Prevent browsers from flickering when using CSS 3D transforms.
+// Default value is `visible`, but can be changed to `hidden`
+
+.backface-visibility(@visibility){
+ -webkit-backface-visibility: @visibility;
+ -moz-backface-visibility: @visibility;
+ backface-visibility: @visibility;
+}
+
+// Drop shadows
+//
+// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's
+// supported browsers that have box shadow capabilities now support it.
+
+.box-shadow(@shadow) {
+ -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1
+ box-shadow: @shadow;
+}
+
+// Box sizing
+.box-sizing(@boxmodel) {
+ -webkit-box-sizing: @boxmodel;
+ -moz-box-sizing: @boxmodel;
+ box-sizing: @boxmodel;
+}
+
+// CSS3 Content Columns
+.content-columns(@column-count; @column-gap: @grid-gutter-width) {
+ -webkit-column-count: @column-count;
+ -moz-column-count: @column-count;
+ column-count: @column-count;
+ -webkit-column-gap: @column-gap;
+ -moz-column-gap: @column-gap;
+ column-gap: @column-gap;
+}
+
+// Optional hyphenation
+.hyphens(@mode: auto) {
+ word-wrap: break-word;
+ -webkit-hyphens: @mode;
+ -moz-hyphens: @mode;
+ -ms-hyphens: @mode; // IE10+
+ -o-hyphens: @mode;
+ hyphens: @mode;
+}
+
+// Placeholder text
+.placeholder(@color: @input-color-placeholder) {
+ // Firefox
+ &::-moz-placeholder {
+ color: @color;
+ opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526
+ }
+ &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+
+ &::-webkit-input-placeholder { color: @color; } // Safari and Chrome
+}
+
+// Transformations
+.scale(@ratio) {
+ -webkit-transform: scale(@ratio);
+ -ms-transform: scale(@ratio); // IE9 only
+ -o-transform: scale(@ratio);
+ transform: scale(@ratio);
+}
+.scale(@ratioX; @ratioY) {
+ -webkit-transform: scale(@ratioX, @ratioY);
+ -ms-transform: scale(@ratioX, @ratioY); // IE9 only
+ -o-transform: scale(@ratioX, @ratioY);
+ transform: scale(@ratioX, @ratioY);
+}
+.scaleX(@ratio) {
+ -webkit-transform: scaleX(@ratio);
+ -ms-transform: scaleX(@ratio); // IE9 only
+ -o-transform: scaleX(@ratio);
+ transform: scaleX(@ratio);
+}
+.scaleY(@ratio) {
+ -webkit-transform: scaleY(@ratio);
+ -ms-transform: scaleY(@ratio); // IE9 only
+ -o-transform: scaleY(@ratio);
+ transform: scaleY(@ratio);
+}
+.skew(@x; @y) {
+ -webkit-transform: skewX(@x) skewY(@y);
+ -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
+ -o-transform: skewX(@x) skewY(@y);
+ transform: skewX(@x) skewY(@y);
+}
+.translate(@x; @y) {
+ -webkit-transform: translate(@x, @y);
+ -ms-transform: translate(@x, @y); // IE9 only
+ -o-transform: translate(@x, @y);
+ transform: translate(@x, @y);
+}
+.translate3d(@x; @y; @z) {
+ -webkit-transform: translate3d(@x, @y, @z);
+ transform: translate3d(@x, @y, @z);
+}
+.rotate(@degrees) {
+ -webkit-transform: rotate(@degrees);
+ -ms-transform: rotate(@degrees); // IE9 only
+ -o-transform: rotate(@degrees);
+ transform: rotate(@degrees);
+}
+.rotateX(@degrees) {
+ -webkit-transform: rotateX(@degrees);
+ -ms-transform: rotateX(@degrees); // IE9 only
+ -o-transform: rotateX(@degrees);
+ transform: rotateX(@degrees);
+}
+.rotateY(@degrees) {
+ -webkit-transform: rotateY(@degrees);
+ -ms-transform: rotateY(@degrees); // IE9 only
+ -o-transform: rotateY(@degrees);
+ transform: rotateY(@degrees);
+}
+.perspective(@perspective) {
+ -webkit-perspective: @perspective;
+ -moz-perspective: @perspective;
+ perspective: @perspective;
+}
+.perspective-origin(@perspective) {
+ -webkit-perspective-origin: @perspective;
+ -moz-perspective-origin: @perspective;
+ perspective-origin: @perspective;
+}
+.transform-origin(@origin) {
+ -webkit-transform-origin: @origin;
+ -moz-transform-origin: @origin;
+ -ms-transform-origin: @origin; // IE9 only
+ transform-origin: @origin;
+}
+
+
+// Transitions
+
+.transition(@transition) {
+ -webkit-transition: @transition;
+ -o-transition: @transition;
+ transition: @transition;
+}
+.transition-property(@transition-property) {
+ -webkit-transition-property: @transition-property;
+ transition-property: @transition-property;
+}
+.transition-delay(@transition-delay) {
+ -webkit-transition-delay: @transition-delay;
+ transition-delay: @transition-delay;
+}
+.transition-duration(@transition-duration) {
+ -webkit-transition-duration: @transition-duration;
+ transition-duration: @transition-duration;
+}
+.transition-timing-function(@timing-function) {
+ -webkit-transition-timing-function: @timing-function;
+ transition-timing-function: @timing-function;
+}
+.transition-transform(@transition) {
+ -webkit-transition: -webkit-transform @transition;
+ -moz-transition: -moz-transform @transition;
+ -o-transition: -o-transform @transition;
+ transition: transform @transition;
+}
+
+
+// User select
+// For selecting text on the page
+
+.user-select(@select) {
+ -webkit-user-select: @select;
+ -moz-user-select: @select;
+ -ms-user-select: @select; // IE10+
+ user-select: @select;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/modals.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/modals.less
new file mode 100644
index 0000000..1de6220
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/modals.less
@@ -0,0 +1,150 @@
+//
+// Modals
+// --------------------------------------------------
+
+// .modal-open - body class for killing the scroll
+// .modal - container to scroll within
+// .modal-dialog - positioning shell for the actual modal
+// .modal-content - actual modal w/ bg and corners and shit
+
+// Kill the scroll on the body
+.modal-open {
+ overflow: hidden;
+}
+
+// Container that the modal scrolls within
+.modal {
+ display: none;
+ overflow: hidden;
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: @zindex-modal;
+ -webkit-overflow-scrolling: touch;
+
+ // Prevent Chrome on Windows from adding a focus outline. For details, see
+ // https://github.com/twbs/bootstrap/pull/10951.
+ outline: 0;
+
+ // When fading in the modal, animate it to slide down
+ &.fade .modal-dialog {
+ .translate(0, -25%);
+ .transition-transform(~"0.3s ease-out");
+ }
+ &.in .modal-dialog { .translate(0, 0) }
+}
+.modal-open .modal {
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+
+// Shell div to position the modal with bottom padding
+.modal-dialog {
+ position: relative;
+ width: auto;
+ margin: 10px;
+}
+
+// Actual modal
+.modal-content {
+ position: relative;
+ background-color: @modal-content-bg;
+ border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)
+ border: 1px solid @modal-content-border-color;
+ border-radius: @border-radius-large;
+ .box-shadow(0 3px 9px rgba(0,0,0,.5));
+ background-clip: padding-box;
+ // Remove focus outline from opened modal
+ outline: 0;
+}
+
+// Modal background
+.modal-backdrop {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: @zindex-modal-background;
+ background-color: @modal-backdrop-bg;
+ // Fade for backdrop
+ &.fade { .opacity(0); }
+ &.in { .opacity(@modal-backdrop-opacity); }
+}
+
+// Modal header
+// Top section of the modal w/ title and dismiss
+.modal-header {
+ padding: @modal-title-padding;
+ border-bottom: 1px solid @modal-header-border-color;
+ min-height: (@modal-title-padding + @modal-title-line-height);
+}
+// Close icon
+.modal-header .close {
+ margin-top: -2px;
+}
+
+// Title text within header
+.modal-title {
+ margin: 0;
+ line-height: @modal-title-line-height;
+}
+
+// Modal body
+// Where all modal content resides (sibling of .modal-header and .modal-footer)
+.modal-body {
+ position: relative;
+ padding: @modal-inner-padding;
+}
+
+// Footer (for actions)
+.modal-footer {
+ padding: @modal-inner-padding;
+ text-align: right; // right align buttons
+ border-top: 1px solid @modal-footer-border-color;
+ &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons
+
+ // Properly space out buttons
+ .btn + .btn {
+ margin-left: 5px;
+ margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs
+ }
+ // but override that for button groups
+ .btn-group .btn + .btn {
+ margin-left: -1px;
+ }
+ // and override it for block buttons as well
+ .btn-block + .btn-block {
+ margin-left: 0;
+ }
+}
+
+// Measure scrollbar width for padding body during modal show/hide
+.modal-scrollbar-measure {
+ position: absolute;
+ top: -9999px;
+ width: 50px;
+ height: 50px;
+ overflow: scroll;
+}
+
+// Scale up the modal
+@media (min-width: @screen-sm-min) {
+ // Automatically set modal's width for larger viewports
+ .modal-dialog {
+ width: @modal-md;
+ margin: 30px auto;
+ }
+ .modal-content {
+ .box-shadow(0 5px 15px rgba(0,0,0,.5));
+ }
+
+ // Modal sizes
+ .modal-sm { width: @modal-sm; }
+}
+
+@media (min-width: @screen-md-min) {
+ .modal-lg { width: @modal-lg; }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/navbar.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/navbar.less
new file mode 100644
index 0000000..6d751bb
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/navbar.less
@@ -0,0 +1,660 @@
+//
+// Navbars
+// --------------------------------------------------
+
+
+// Wrapper and base class
+//
+// Provide a static navbar from which we expand to create full-width, fixed, and
+// other navbar variations.
+
+.navbar {
+ position: relative;
+ min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)
+ margin-bottom: @navbar-margin-bottom;
+ border: 1px solid transparent;
+
+ // Prevent floats from breaking the navbar
+ &:extend(.clearfix all);
+
+ @media (min-width: @grid-float-breakpoint) {
+ border-radius: @navbar-border-radius;
+ }
+}
+
+
+// Navbar heading
+//
+// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy
+// styling of responsive aspects.
+
+.navbar-header {
+ &:extend(.clearfix all);
+
+ @media (min-width: @grid-float-breakpoint) {
+ float: left;
+ }
+}
+
+
+// Navbar collapse (body)
+//
+// Group your navbar content into this for easy collapsing and expanding across
+// various device sizes. By default, this content is collapsed when <768px, but
+// will expand past that for a horizontal display.
+//
+// To start (on mobile devices) the navbar links, forms, and buttons are stacked
+// vertically and include a `max-height` to overflow in case you have too much
+// content for the user's viewport.
+
+.navbar-collapse {
+ overflow-x: visible;
+ padding-right: @navbar-padding-horizontal;
+ padding-left: @navbar-padding-horizontal;
+ border-top: 1px solid transparent;
+ box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
+ &:extend(.clearfix all);
+ -webkit-overflow-scrolling: touch;
+
+ &.in {
+ overflow-y: auto;
+ }
+
+ @media (min-width: @grid-float-breakpoint) {
+ width: auto;
+ border-top: 0;
+ box-shadow: none;
+
+ &.collapse {
+ display: block !important;
+ height: auto !important;
+ padding-bottom: 0; // Override default setting
+ overflow: visible !important;
+ }
+
+ &.in {
+ overflow-y: visible;
+ }
+
+ // Undo the collapse side padding for navbars with containers to ensure
+ // alignment of right-aligned contents.
+ .navbar-fixed-top &,
+ .navbar-static-top &,
+ .navbar-fixed-bottom & {
+ padding-left: 0;
+ padding-right: 0;
+ }
+ }
+}
+
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+ .navbar-collapse {
+ max-height: @navbar-collapse-max-height;
+
+ @media (max-device-width: @screen-xs-min) and (orientation: landscape) {
+ max-height: 200px;
+ }
+ }
+}
+
+
+// Both navbar header and collapse
+//
+// When a container is present, change the behavior of the header and collapse.
+
+.container,
+.container-fluid {
+ > .navbar-header,
+ > .navbar-collapse {
+ margin-right: -@navbar-padding-horizontal;
+ margin-left: -@navbar-padding-horizontal;
+
+ @media (min-width: @grid-float-breakpoint) {
+ margin-right: 0;
+ margin-left: 0;
+ }
+ }
+}
+
+
+//
+// Navbar alignment options
+//
+// Display the navbar across the entirety of the page or fixed it to the top or
+// bottom of the page.
+
+// Static top (unfixed, but 100% wide) navbar
+.navbar-static-top {
+ z-index: @zindex-navbar;
+ border-width: 0 0 1px;
+
+ @media (min-width: @grid-float-breakpoint) {
+ border-radius: 0;
+ }
+}
+
+// Fix the top/bottom navbars when screen real estate supports it
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+ position: fixed;
+ right: 0;
+ left: 0;
+ z-index: @zindex-navbar-fixed;
+
+ // Undo the rounded corners
+ @media (min-width: @grid-float-breakpoint) {
+ border-radius: 0;
+ }
+}
+.navbar-fixed-top {
+ top: 0;
+ border-width: 0 0 1px;
+}
+.navbar-fixed-bottom {
+ bottom: 0;
+ margin-bottom: 0; // override .navbar defaults
+ border-width: 1px 0 0;
+}
+
+
+// Brand/project name
+
+.navbar-brand {
+ float: left;
+ padding: @navbar-padding-vertical @navbar-padding-horizontal;
+ font-size: @font-size-large;
+ line-height: @line-height-computed;
+ height: @navbar-height;
+
+ &:hover,
+ &:focus {
+ text-decoration: none;
+ }
+
+ > img {
+ display: block;
+ }
+
+ @media (min-width: @grid-float-breakpoint) {
+ .navbar > .container &,
+ .navbar > .container-fluid & {
+ margin-left: -@navbar-padding-horizontal;
+ }
+ }
+}
+
+
+// Navbar toggle
+//
+// Custom button for toggling the `.navbar-collapse`, powered by the collapse
+// JavaScript plugin.
+
+.navbar-toggle {
+ position: relative;
+ float: right;
+ margin-right: @navbar-padding-horizontal;
+ padding: 9px 10px;
+ .navbar-vertical-align(34px);
+ background-color: transparent;
+ background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
+ border: 1px solid transparent;
+ border-radius: @border-radius-base;
+
+ // We remove the `outline` here, but later compensate by attaching `:hover`
+ // styles to `:focus`.
+ &:focus {
+ outline: 0;
+ }
+
+ // Bars
+ .icon-bar {
+ display: block;
+ width: 22px;
+ height: 2px;
+ border-radius: 1px;
+ }
+ .icon-bar + .icon-bar {
+ margin-top: 4px;
+ }
+
+ @media (min-width: @grid-float-breakpoint) {
+ display: none;
+ }
+}
+
+
+// Navbar nav links
+//
+// Builds on top of the `.nav` components with its own modifier class to make
+// the nav the full height of the horizontal nav (above 768px).
+
+.navbar-nav {
+ margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;
+
+ > li > a {
+ padding-top: 10px;
+ padding-bottom: 10px;
+ line-height: @line-height-computed;
+ }
+
+ @media (max-width: @grid-float-breakpoint-max) {
+ // Dropdowns get custom display when collapsed
+ .open .dropdown-menu {
+ position: static;
+ float: none;
+ width: auto;
+ margin-top: 0;
+ background-color: transparent;
+ border: 0;
+ box-shadow: none;
+ > li > a,
+ .dropdown-header {
+ padding: 5px 15px 5px 25px;
+ }
+ > li > a {
+ line-height: @line-height-computed;
+ &:hover,
+ &:focus {
+ background-image: none;
+ }
+ }
+ }
+ }
+
+ // Uncollapse the nav
+ @media (min-width: @grid-float-breakpoint) {
+ float: left;
+ margin: 0;
+
+ > li {
+ float: left;
+ > a {
+ padding-top: @navbar-padding-vertical;
+ padding-bottom: @navbar-padding-vertical;
+ }
+ }
+ }
+}
+
+
+// Navbar form
+//
+// Extension of the `.form-inline` with some extra flavor for optimum display in
+// our navbars.
+
+.navbar-form {
+ margin-left: -@navbar-padding-horizontal;
+ margin-right: -@navbar-padding-horizontal;
+ padding: 10px @navbar-padding-horizontal;
+ border-top: 1px solid transparent;
+ border-bottom: 1px solid transparent;
+ @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
+ .box-shadow(@shadow);
+
+ // Mixin behavior for optimum display
+ .form-inline();
+
+ .form-group {
+ @media (max-width: @grid-float-breakpoint-max) {
+ margin-bottom: 5px;
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
+ }
+
+ // Vertically center in expanded, horizontal navbar
+ .navbar-vertical-align(@input-height-base);
+
+ // Undo 100% width for pull classes
+ @media (min-width: @grid-float-breakpoint) {
+ width: auto;
+ border: 0;
+ margin-left: 0;
+ margin-right: 0;
+ padding-top: 0;
+ padding-bottom: 0;
+ .box-shadow(none);
+ }
+}
+
+
+// Dropdown menus
+
+// Menu position and menu carets
+.navbar-nav > li > .dropdown-menu {
+ margin-top: 0;
+ .border-top-radius(0);
+}
+// Menu position and menu caret support for dropups via extra dropup class
+.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
+ margin-bottom: 0;
+ .border-top-radius(@navbar-border-radius);
+ .border-bottom-radius(0);
+}
+
+
+// Buttons in navbars
+//
+// Vertically center a button within a navbar (when *not* in a form).
+
+.navbar-btn {
+ .navbar-vertical-align(@input-height-base);
+
+ &.btn-sm {
+ .navbar-vertical-align(@input-height-small);
+ }
+ &.btn-xs {
+ .navbar-vertical-align(22);
+ }
+}
+
+
+// Text in navbars
+//
+// Add a class to make any element properly align itself vertically within the navbars.
+
+.navbar-text {
+ .navbar-vertical-align(@line-height-computed);
+
+ @media (min-width: @grid-float-breakpoint) {
+ float: left;
+ margin-left: @navbar-padding-horizontal;
+ margin-right: @navbar-padding-horizontal;
+ }
+}
+
+
+// Component alignment
+//
+// Repurpose the pull utilities as their own navbar utilities to avoid specificity
+// issues with parents and chaining. Only do this when the navbar is uncollapsed
+// though so that navbar contents properly stack and align in mobile.
+//
+// Declared after the navbar components to ensure more specificity on the margins.
+
+@media (min-width: @grid-float-breakpoint) {
+ .navbar-left { .pull-left(); }
+ .navbar-right {
+ .pull-right();
+ margin-right: -@navbar-padding-horizontal;
+
+ ~ .navbar-right {
+ margin-right: 0;
+ }
+ }
+}
+
+
+// Alternate navbars
+// --------------------------------------------------
+
+// Default navbar
+.navbar-default {
+ background-color: @navbar-default-bg;
+ border-color: @navbar-default-border;
+
+ .navbar-brand {
+ color: @navbar-default-brand-color;
+ &:hover,
+ &:focus {
+ color: @navbar-default-brand-hover-color;
+ background-color: @navbar-default-brand-hover-bg;
+ }
+ }
+
+ .navbar-text {
+ color: @navbar-default-color;
+ }
+
+ .navbar-nav {
+ > li > a {
+ color: @navbar-default-link-color;
+
+ &:hover,
+ &:focus {
+ color: @navbar-default-link-hover-color;
+ background-color: @navbar-default-link-hover-bg;
+ }
+ }
+ > .active > a {
+ &,
+ &:hover,
+ &:focus {
+ color: @navbar-default-link-active-color;
+ background-color: @navbar-default-link-active-bg;
+ }
+ }
+ > .disabled > a {
+ &,
+ &:hover,
+ &:focus {
+ color: @navbar-default-link-disabled-color;
+ background-color: @navbar-default-link-disabled-bg;
+ }
+ }
+ }
+
+ .navbar-toggle {
+ border-color: @navbar-default-toggle-border-color;
+ &:hover,
+ &:focus {
+ background-color: @navbar-default-toggle-hover-bg;
+ }
+ .icon-bar {
+ background-color: @navbar-default-toggle-icon-bar-bg;
+ }
+ }
+
+ .navbar-collapse,
+ .navbar-form {
+ border-color: @navbar-default-border;
+ }
+
+ // Dropdown menu items
+ .navbar-nav {
+ // Remove background color from open dropdown
+ > .open > a {
+ &,
+ &:hover,
+ &:focus {
+ background-color: @navbar-default-link-active-bg;
+ color: @navbar-default-link-active-color;
+ }
+ }
+
+ @media (max-width: @grid-float-breakpoint-max) {
+ // Dropdowns get custom display when collapsed
+ .open .dropdown-menu {
+ > li > a {
+ color: @navbar-default-link-color;
+ &:hover,
+ &:focus {
+ color: @navbar-default-link-hover-color;
+ background-color: @navbar-default-link-hover-bg;
+ }
+ }
+ > .active > a {
+ &,
+ &:hover,
+ &:focus {
+ color: @navbar-default-link-active-color;
+ background-color: @navbar-default-link-active-bg;
+ }
+ }
+ > .disabled > a {
+ &,
+ &:hover,
+ &:focus {
+ color: @navbar-default-link-disabled-color;
+ background-color: @navbar-default-link-disabled-bg;
+ }
+ }
+ }
+ }
+ }
+
+
+ // Links in navbars
+ //
+ // Add a class to ensure links outside the navbar nav are colored correctly.
+
+ .navbar-link {
+ color: @navbar-default-link-color;
+ &:hover {
+ color: @navbar-default-link-hover-color;
+ }
+ }
+
+ .btn-link {
+ color: @navbar-default-link-color;
+ &:hover,
+ &:focus {
+ color: @navbar-default-link-hover-color;
+ }
+ &[disabled],
+ fieldset[disabled] & {
+ &:hover,
+ &:focus {
+ color: @navbar-default-link-disabled-color;
+ }
+ }
+ }
+}
+
+// Inverse navbar
+
+.navbar-inverse {
+ background-color: @navbar-inverse-bg;
+ border-color: @navbar-inverse-border;
+
+ .navbar-brand {
+ color: @navbar-inverse-brand-color;
+ &:hover,
+ &:focus {
+ color: @navbar-inverse-brand-hover-color;
+ background-color: @navbar-inverse-brand-hover-bg;
+ }
+ }
+
+ .navbar-text {
+ color: @navbar-inverse-color;
+ }
+
+ .navbar-nav {
+ > li > a {
+ color: @navbar-inverse-link-color;
+
+ &:hover,
+ &:focus {
+ color: @navbar-inverse-link-hover-color;
+ background-color: @navbar-inverse-link-hover-bg;
+ }
+ }
+ > .active > a {
+ &,
+ &:hover,
+ &:focus {
+ color: @navbar-inverse-link-active-color;
+ background-color: @navbar-inverse-link-active-bg;
+ }
+ }
+ > .disabled > a {
+ &,
+ &:hover,
+ &:focus {
+ color: @navbar-inverse-link-disabled-color;
+ background-color: @navbar-inverse-link-disabled-bg;
+ }
+ }
+ }
+
+ // Darken the responsive nav toggle
+ .navbar-toggle {
+ border-color: @navbar-inverse-toggle-border-color;
+ &:hover,
+ &:focus {
+ background-color: @navbar-inverse-toggle-hover-bg;
+ }
+ .icon-bar {
+ background-color: @navbar-inverse-toggle-icon-bar-bg;
+ }
+ }
+
+ .navbar-collapse,
+ .navbar-form {
+ border-color: darken(@navbar-inverse-bg, 7%);
+ }
+
+ // Dropdowns
+ .navbar-nav {
+ > .open > a {
+ &,
+ &:hover,
+ &:focus {
+ background-color: @navbar-inverse-link-active-bg;
+ color: @navbar-inverse-link-active-color;
+ }
+ }
+
+ @media (max-width: @grid-float-breakpoint-max) {
+ // Dropdowns get custom display
+ .open .dropdown-menu {
+ > .dropdown-header {
+ border-color: @navbar-inverse-border;
+ }
+ .divider {
+ background-color: @navbar-inverse-border;
+ }
+ > li > a {
+ color: @navbar-inverse-link-color;
+ &:hover,
+ &:focus {
+ color: @navbar-inverse-link-hover-color;
+ background-color: @navbar-inverse-link-hover-bg;
+ }
+ }
+ > .active > a {
+ &,
+ &:hover,
+ &:focus {
+ color: @navbar-inverse-link-active-color;
+ background-color: @navbar-inverse-link-active-bg;
+ }
+ }
+ > .disabled > a {
+ &,
+ &:hover,
+ &:focus {
+ color: @navbar-inverse-link-disabled-color;
+ background-color: @navbar-inverse-link-disabled-bg;
+ }
+ }
+ }
+ }
+ }
+
+ .navbar-link {
+ color: @navbar-inverse-link-color;
+ &:hover {
+ color: @navbar-inverse-link-hover-color;
+ }
+ }
+
+ .btn-link {
+ color: @navbar-inverse-link-color;
+ &:hover,
+ &:focus {
+ color: @navbar-inverse-link-hover-color;
+ }
+ &[disabled],
+ fieldset[disabled] & {
+ &:hover,
+ &:focus {
+ color: @navbar-inverse-link-disabled-color;
+ }
+ }
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/navs.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/navs.less
new file mode 100644
index 0000000..a3d11b1
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/navs.less
@@ -0,0 +1,242 @@
+//
+// Navs
+// --------------------------------------------------
+
+
+// Base class
+// --------------------------------------------------
+
+.nav {
+ margin-bottom: 0;
+ padding-left: 0; // Override default ul/ol
+ list-style: none;
+ &:extend(.clearfix all);
+
+ > li {
+ position: relative;
+ display: block;
+
+ > a {
+ position: relative;
+ display: block;
+ padding: @nav-link-padding;
+ &:hover,
+ &:focus {
+ text-decoration: none;
+ background-color: @nav-link-hover-bg;
+ }
+ }
+
+ // Disabled state sets text to gray and nukes hover/tab effects
+ &.disabled > a {
+ color: @nav-disabled-link-color;
+
+ &:hover,
+ &:focus {
+ color: @nav-disabled-link-hover-color;
+ text-decoration: none;
+ background-color: transparent;
+ cursor: @cursor-disabled;
+ }
+ }
+ }
+
+ // Open dropdowns
+ .open > a {
+ &,
+ &:hover,
+ &:focus {
+ background-color: @nav-link-hover-bg;
+ border-color: @link-color;
+ }
+ }
+
+ // Nav dividers (deprecated with v3.0.1)
+ //
+ // This should have been removed in v3 with the dropping of `.nav-list`, but
+ // we missed it. We don't currently support this anywhere, but in the interest
+ // of maintaining backward compatibility in case you use it, it's deprecated.
+ .nav-divider {
+ .nav-divider();
+ }
+
+ // Prevent IE8 from misplacing imgs
+ //
+ // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989
+ > li > a > img {
+ max-width: none;
+ }
+}
+
+
+// Tabs
+// -------------------------
+
+// Give the tabs something to sit on
+.nav-tabs {
+ border-bottom: 1px solid @nav-tabs-border-color;
+ > li {
+ float: left;
+ // Make the list-items overlay the bottom border
+ margin-bottom: -1px;
+
+ // Actual tabs (as links)
+ > a {
+ margin-right: 2px;
+ line-height: @line-height-base;
+ border: 1px solid transparent;
+ border-radius: @border-radius-base @border-radius-base 0 0;
+ &:hover {
+ border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color @nav-tabs-border-color;
+ }
+ }
+
+ // Active state, and its :hover to override normal :hover
+ &.active > a {
+ &,
+ &:hover,
+ &:focus {
+ color: @nav-tabs-active-link-hover-color;
+ background-color: @nav-tabs-active-link-hover-bg;
+ border: 1px solid @nav-tabs-active-link-hover-border-color;
+ border-bottom-color: transparent;
+ cursor: default;
+ }
+ }
+ }
+ // pulling this in mainly for less shorthand
+ &.nav-justified {
+ .nav-justified();
+ .nav-tabs-justified();
+ }
+}
+
+
+// Pills
+// -------------------------
+.nav-pills {
+ > li {
+ float: left;
+
+ // Links rendered as pills
+ > a {
+ border-radius: @nav-pills-border-radius;
+ }
+ + li {
+ margin-left: 2px;
+ }
+
+ // Active state
+ &.active > a {
+ &,
+ &:hover,
+ &:focus {
+ color: @nav-pills-active-link-hover-color;
+ background-color: @nav-pills-active-link-hover-bg;
+ }
+ }
+ }
+}
+
+
+// Stacked pills
+.nav-stacked {
+ > li {
+ float: none;
+ + li {
+ margin-top: 2px;
+ margin-left: 0; // no need for this gap between nav items
+ }
+ }
+}
+
+
+// Nav variations
+// --------------------------------------------------
+
+// Justified nav links
+// -------------------------
+
+.nav-justified {
+ width: 100%;
+
+ > li {
+ float: none;
+ > a {
+ text-align: center;
+ margin-bottom: 5px;
+ }
+ }
+
+ > .dropdown .dropdown-menu {
+ top: auto;
+ left: auto;
+ }
+
+ @media (min-width: @screen-sm-min) {
+ > li {
+ display: table-cell;
+ width: 1%;
+ > a {
+ margin-bottom: 0;
+ }
+ }
+ }
+}
+
+// Move borders to anchors instead of bottom of list
+//
+// Mixin for adding on top the shared `.nav-justified` styles for our tabs
+.nav-tabs-justified {
+ border-bottom: 0;
+
+ > li > a {
+ // Override margin from .nav-tabs
+ margin-right: 0;
+ border-radius: @border-radius-base;
+ }
+
+ > .active > a,
+ > .active > a:hover,
+ > .active > a:focus {
+ border: 1px solid @nav-tabs-justified-link-border-color;
+ }
+
+ @media (min-width: @screen-sm-min) {
+ > li > a {
+ border-bottom: 1px solid @nav-tabs-justified-link-border-color;
+ border-radius: @border-radius-base @border-radius-base 0 0;
+ }
+ > .active > a,
+ > .active > a:hover,
+ > .active > a:focus {
+ border-bottom-color: @nav-tabs-justified-active-link-border-color;
+ }
+ }
+}
+
+
+// Tabbable tabs
+// -------------------------
+
+// Hide tabbable panes to start, show them when `.active`
+.tab-content {
+ > .tab-pane {
+ display: none;
+ }
+ > .active {
+ display: block;
+ }
+}
+
+
+// Dropdowns
+// -------------------------
+
+// Specific dropdowns
+.nav-tabs .dropdown-menu {
+ // make dropdown border overlap tab border
+ margin-top: -1px;
+ // Remove the top rounded corners here since there is a hard edge above the menu
+ .border-top-radius(0);
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/normalize.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/normalize.less
new file mode 100644
index 0000000..9dddf73
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/normalize.less
@@ -0,0 +1,424 @@
+/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
+
+//
+// 1. Set default font family to sans-serif.
+// 2. Prevent iOS and IE text size adjust after device orientation change,
+// without disabling user zoom.
+//
+
+html {
+ font-family: sans-serif; // 1
+ -ms-text-size-adjust: 100%; // 2
+ -webkit-text-size-adjust: 100%; // 2
+}
+
+//
+// Remove default margin.
+//
+
+body {
+ margin: 0;
+}
+
+// HTML5 display definitions
+// ==========================================================================
+
+//
+// Correct `block` display not defined for any HTML5 element in IE 8/9.
+// Correct `block` display not defined for `details` or `summary` in IE 10/11
+// and Firefox.
+// Correct `block` display not defined for `main` in IE 11.
+//
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+menu,
+nav,
+section,
+summary {
+ display: block;
+}
+
+//
+// 1. Correct `inline-block` display not defined in IE 8/9.
+// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
+//
+
+audio,
+canvas,
+progress,
+video {
+ display: inline-block; // 1
+ vertical-align: baseline; // 2
+}
+
+//
+// Prevent modern browsers from displaying `audio` without controls.
+// Remove excess height in iOS 5 devices.
+//
+
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+
+//
+// Address `[hidden]` styling not present in IE 8/9/10.
+// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
+//
+
+[hidden],
+template {
+ display: none;
+}
+
+// Links
+// ==========================================================================
+
+//
+// Remove the gray background color from active links in IE 10.
+//
+
+a {
+ background-color: transparent;
+}
+
+//
+// Improve readability of focused elements when they are also in an
+// active/hover state.
+//
+
+a:active,
+a:hover {
+ outline: 0;
+}
+
+// Text-level semantics
+// ==========================================================================
+
+//
+// Address styling not present in IE 8/9/10/11, Safari, and Chrome.
+//
+
+abbr[title] {
+ border-bottom: 1px dotted;
+}
+
+//
+// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
+//
+
+b,
+strong {
+ font-weight: bold;
+}
+
+//
+// Address styling not present in Safari and Chrome.
+//
+
+dfn {
+ font-style: italic;
+}
+
+//
+// Address variable `h1` font-size and margin within `section` and `article`
+// contexts in Firefox 4+, Safari, and Chrome.
+//
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+
+//
+// Address styling not present in IE 8/9.
+//
+
+mark {
+ background: #ff0;
+ color: #000;
+}
+
+//
+// Address inconsistent and variable font size in all browsers.
+//
+
+small {
+ font-size: 80%;
+}
+
+//
+// Prevent `sub` and `sup` affecting `line-height` in all browsers.
+//
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sup {
+ top: -0.5em;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+// Embedded content
+// ==========================================================================
+
+//
+// Remove border when inside `a` element in IE 8/9/10.
+//
+
+img {
+ border: 0;
+}
+
+//
+// Correct overflow not hidden in IE 9/10/11.
+//
+
+svg:not(:root) {
+ overflow: hidden;
+}
+
+// Grouping content
+// ==========================================================================
+
+//
+// Address margin not present in IE 8/9 and Safari.
+//
+
+figure {
+ margin: 1em 40px;
+}
+
+//
+// Address differences between Firefox and other browsers.
+//
+
+hr {
+ box-sizing: content-box;
+ height: 0;
+}
+
+//
+// Contain overflow in all browsers.
+//
+
+pre {
+ overflow: auto;
+}
+
+//
+// Address odd `em`-unit font size rendering in all browsers.
+//
+
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em;
+}
+
+// Forms
+// ==========================================================================
+
+//
+// Known limitation: by default, Chrome and Safari on OS X allow very limited
+// styling of `select`, unless a `border` property is set.
+//
+
+//
+// 1. Correct color not being inherited.
+// Known issue: affects color of disabled elements.
+// 2. Correct font properties not being inherited.
+// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
+//
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ color: inherit; // 1
+ font: inherit; // 2
+ margin: 0; // 3
+}
+
+//
+// Address `overflow` set to `hidden` in IE 8/9/10/11.
+//
+
+button {
+ overflow: visible;
+}
+
+//
+// Address inconsistent `text-transform` inheritance for `button` and `select`.
+// All other form control elements do not inherit `text-transform` values.
+// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
+// Correct `select` style inheritance in Firefox.
+//
+
+button,
+select {
+ text-transform: none;
+}
+
+//
+// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
+// and `video` controls.
+// 2. Correct inability to style clickable `input` types in iOS.
+// 3. Improve usability and consistency of cursor style between image-type
+// `input` and others.
+//
+
+button,
+html input[type="button"], // 1
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button; // 2
+ cursor: pointer; // 3
+}
+
+//
+// Re-set default cursor for disabled elements.
+//
+
+button[disabled],
+html input[disabled] {
+ cursor: default;
+}
+
+//
+// Remove inner padding and border in Firefox 4+.
+//
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+
+//
+// Address Firefox 4+ setting `line-height` on `input` using `!important` in
+// the UA stylesheet.
+//
+
+input {
+ line-height: normal;
+}
+
+//
+// It's recommended that you don't attempt to style these elements.
+// Firefox's implementation doesn't respect box-sizing, padding, or width.
+//
+// 1. Address box sizing set to `content-box` in IE 8/9/10.
+// 2. Remove excess padding in IE 8/9/10.
+//
+
+input[type="checkbox"],
+input[type="radio"] {
+ box-sizing: border-box; // 1
+ padding: 0; // 2
+}
+
+//
+// Fix the cursor style for Chrome's increment/decrement buttons. For certain
+// `font-size` values of the `input`, it causes the cursor style of the
+// decrement button to change from `default` to `text`.
+//
+
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+ height: auto;
+}
+
+//
+// 1. Address `appearance` set to `searchfield` in Safari and Chrome.
+// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
+//
+
+input[type="search"] {
+ -webkit-appearance: textfield; // 1
+ box-sizing: content-box; //2
+}
+
+//
+// Remove inner padding and search cancel button in Safari and Chrome on OS X.
+// Safari (but not Chrome) clips the cancel button when the search input has
+// padding (and `textfield` appearance).
+//
+
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+//
+// Define consistent border, margin, and padding.
+//
+
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em;
+}
+
+//
+// 1. Correct `color` not being inherited in IE 8/9/10/11.
+// 2. Remove padding so people aren't caught out if they zero out fieldsets.
+//
+
+legend {
+ border: 0; // 1
+ padding: 0; // 2
+}
+
+//
+// Remove default vertical scrollbar in IE 8/9/10/11.
+//
+
+textarea {
+ overflow: auto;
+}
+
+//
+// Don't inherit the `font-weight` (applied by a rule above).
+// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
+//
+
+optgroup {
+ font-weight: bold;
+}
+
+// Tables
+// ==========================================================================
+
+//
+// Remove most spacing between table cells.
+//
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+td,
+th {
+ padding: 0;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/pager.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/pager.less
new file mode 100644
index 0000000..41abaaa
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/pager.less
@@ -0,0 +1,54 @@
+//
+// Pager pagination
+// --------------------------------------------------
+
+
+.pager {
+ padding-left: 0;
+ margin: @line-height-computed 0;
+ list-style: none;
+ text-align: center;
+ &:extend(.clearfix all);
+ li {
+ display: inline;
+ > a,
+ > span {
+ display: inline-block;
+ padding: 5px 14px;
+ background-color: @pager-bg;
+ border: 1px solid @pager-border;
+ border-radius: @pager-border-radius;
+ }
+
+ > a:hover,
+ > a:focus {
+ text-decoration: none;
+ background-color: @pager-hover-bg;
+ }
+ }
+
+ .next {
+ > a,
+ > span {
+ float: right;
+ }
+ }
+
+ .previous {
+ > a,
+ > span {
+ float: left;
+ }
+ }
+
+ .disabled {
+ > a,
+ > a:hover,
+ > a:focus,
+ > span {
+ color: @pager-disabled-color;
+ background-color: @pager-bg;
+ cursor: @cursor-disabled;
+ }
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/pagination.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/pagination.less
new file mode 100644
index 0000000..31f77aa
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/pagination.less
@@ -0,0 +1,89 @@
+//
+// Pagination (multiple pages)
+// --------------------------------------------------
+.pagination {
+ display: inline-block;
+ padding-left: 0;
+ margin: @line-height-computed 0;
+ border-radius: @border-radius-base;
+
+ > li {
+ display: inline; // Remove list-style and block-level defaults
+ > a,
+ > span {
+ position: relative;
+ float: left; // Collapse white-space
+ padding: @padding-base-vertical @padding-base-horizontal;
+ line-height: @line-height-base;
+ text-decoration: none;
+ color: @pagination-color;
+ background-color: @pagination-bg;
+ border: 1px solid @pagination-border;
+ margin-left: -1px;
+ }
+ &:first-child {
+ > a,
+ > span {
+ margin-left: 0;
+ .border-left-radius(@border-radius-base);
+ }
+ }
+ &:last-child {
+ > a,
+ > span {
+ .border-right-radius(@border-radius-base);
+ }
+ }
+ }
+
+ > li > a,
+ > li > span {
+ &:hover,
+ &:focus {
+ z-index: 2;
+ color: @pagination-hover-color;
+ background-color: @pagination-hover-bg;
+ border-color: @pagination-hover-border;
+ }
+ }
+
+ > .active > a,
+ > .active > span {
+ &,
+ &:hover,
+ &:focus {
+ z-index: 3;
+ color: @pagination-active-color;
+ background-color: @pagination-active-bg;
+ border-color: @pagination-active-border;
+ cursor: default;
+ }
+ }
+
+ > .disabled {
+ > span,
+ > span:hover,
+ > span:focus,
+ > a,
+ > a:hover,
+ > a:focus {
+ color: @pagination-disabled-color;
+ background-color: @pagination-disabled-bg;
+ border-color: @pagination-disabled-border;
+ cursor: @cursor-disabled;
+ }
+ }
+}
+
+// Sizing
+// --------------------------------------------------
+
+// Large
+.pagination-lg {
+ .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);
+}
+
+// Small
+.pagination-sm {
+ .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/panels.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/panels.less
new file mode 100644
index 0000000..425eb5e
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/panels.less
@@ -0,0 +1,271 @@
+//
+// Panels
+// --------------------------------------------------
+
+
+// Base class
+.panel {
+ margin-bottom: @line-height-computed;
+ background-color: @panel-bg;
+ border: 1px solid transparent;
+ border-radius: @panel-border-radius;
+ .box-shadow(0 1px 1px rgba(0,0,0,.05));
+}
+
+// Panel contents
+.panel-body {
+ padding: @panel-body-padding;
+ &:extend(.clearfix all);
+}
+
+// Optional heading
+.panel-heading {
+ padding: @panel-heading-padding;
+ border-bottom: 1px solid transparent;
+ .border-top-radius((@panel-border-radius - 1));
+
+ > .dropdown .dropdown-toggle {
+ color: inherit;
+ }
+}
+
+// Within heading, strip any `h*` tag of its default margins for spacing.
+.panel-title {
+ margin-top: 0;
+ margin-bottom: 0;
+ font-size: ceil((@font-size-base * 1.125));
+ color: inherit;
+
+ > a,
+ > small,
+ > .small,
+ > small > a,
+ > .small > a {
+ color: inherit;
+ }
+}
+
+// Optional footer (stays gray in every modifier class)
+.panel-footer {
+ padding: @panel-footer-padding;
+ background-color: @panel-footer-bg;
+ border-top: 1px solid @panel-inner-border;
+ .border-bottom-radius((@panel-border-radius - 1));
+}
+
+
+// List groups in panels
+//
+// By default, space out list group content from panel headings to account for
+// any kind of custom content between the two.
+
+.panel {
+ > .list-group,
+ > .panel-collapse > .list-group {
+ margin-bottom: 0;
+
+ .list-group-item {
+ border-width: 1px 0;
+ border-radius: 0;
+ }
+
+ // Add border top radius for first one
+ &:first-child {
+ .list-group-item:first-child {
+ border-top: 0;
+ .border-top-radius((@panel-border-radius - 1));
+ }
+ }
+
+ // Add border bottom radius for last one
+ &:last-child {
+ .list-group-item:last-child {
+ border-bottom: 0;
+ .border-bottom-radius((@panel-border-radius - 1));
+ }
+ }
+ }
+ > .panel-heading + .panel-collapse > .list-group {
+ .list-group-item:first-child {
+ .border-top-radius(0);
+ }
+ }
+}
+// Collapse space between when there's no additional content.
+.panel-heading + .list-group {
+ .list-group-item:first-child {
+ border-top-width: 0;
+ }
+}
+.list-group + .panel-footer {
+ border-top-width: 0;
+}
+
+// Tables in panels
+//
+// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and
+// watch it go full width.
+
+.panel {
+ > .table,
+ > .table-responsive > .table,
+ > .panel-collapse > .table {
+ margin-bottom: 0;
+
+ caption {
+ padding-left: @panel-body-padding;
+ padding-right: @panel-body-padding;
+ }
+ }
+ // Add border top radius for first one
+ > .table:first-child,
+ > .table-responsive:first-child > .table:first-child {
+ .border-top-radius((@panel-border-radius - 1));
+
+ > thead:first-child,
+ > tbody:first-child {
+ > tr:first-child {
+ border-top-left-radius: (@panel-border-radius - 1);
+ border-top-right-radius: (@panel-border-radius - 1);
+
+ td:first-child,
+ th:first-child {
+ border-top-left-radius: (@panel-border-radius - 1);
+ }
+ td:last-child,
+ th:last-child {
+ border-top-right-radius: (@panel-border-radius - 1);
+ }
+ }
+ }
+ }
+ // Add border bottom radius for last one
+ > .table:last-child,
+ > .table-responsive:last-child > .table:last-child {
+ .border-bottom-radius((@panel-border-radius - 1));
+
+ > tbody:last-child,
+ > tfoot:last-child {
+ > tr:last-child {
+ border-bottom-left-radius: (@panel-border-radius - 1);
+ border-bottom-right-radius: (@panel-border-radius - 1);
+
+ td:first-child,
+ th:first-child {
+ border-bottom-left-radius: (@panel-border-radius - 1);
+ }
+ td:last-child,
+ th:last-child {
+ border-bottom-right-radius: (@panel-border-radius - 1);
+ }
+ }
+ }
+ }
+ > .panel-body + .table,
+ > .panel-body + .table-responsive,
+ > .table + .panel-body,
+ > .table-responsive + .panel-body {
+ border-top: 1px solid @table-border-color;
+ }
+ > .table > tbody:first-child > tr:first-child th,
+ > .table > tbody:first-child > tr:first-child td {
+ border-top: 0;
+ }
+ > .table-bordered,
+ > .table-responsive > .table-bordered {
+ border: 0;
+ > thead,
+ > tbody,
+ > tfoot {
+ > tr {
+ > th:first-child,
+ > td:first-child {
+ border-left: 0;
+ }
+ > th:last-child,
+ > td:last-child {
+ border-right: 0;
+ }
+ }
+ }
+ > thead,
+ > tbody {
+ > tr:first-child {
+ > td,
+ > th {
+ border-bottom: 0;
+ }
+ }
+ }
+ > tbody,
+ > tfoot {
+ > tr:last-child {
+ > td,
+ > th {
+ border-bottom: 0;
+ }
+ }
+ }
+ }
+ > .table-responsive {
+ border: 0;
+ margin-bottom: 0;
+ }
+}
+
+
+// Collapsable panels (aka, accordion)
+//
+// Wrap a series of panels in `.panel-group` to turn them into an accordion with
+// the help of our collapse JavaScript plugin.
+
+.panel-group {
+ margin-bottom: @line-height-computed;
+
+ // Tighten up margin so it's only between panels
+ .panel {
+ margin-bottom: 0;
+ border-radius: @panel-border-radius;
+
+ + .panel {
+ margin-top: 5px;
+ }
+ }
+
+ .panel-heading {
+ border-bottom: 0;
+
+ + .panel-collapse > .panel-body,
+ + .panel-collapse > .list-group {
+ border-top: 1px solid @panel-inner-border;
+ }
+ }
+
+ .panel-footer {
+ border-top: 0;
+ + .panel-collapse .panel-body {
+ border-bottom: 1px solid @panel-inner-border;
+ }
+ }
+}
+
+
+// Contextual variations
+.panel-default {
+ .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border);
+}
+.panel-primary {
+ .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border);
+}
+.panel-success {
+ .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border);
+}
+.panel-info {
+ .panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border);
+}
+.panel-warning {
+ .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border);
+}
+.panel-danger {
+ .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border);
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/popovers.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/popovers.less
new file mode 100644
index 0000000..3a62a64
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/popovers.less
@@ -0,0 +1,131 @@
+//
+// Popovers
+// --------------------------------------------------
+
+
+.popover {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: @zindex-popover;
+ display: none;
+ max-width: @popover-max-width;
+ padding: 1px;
+ // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element.
+ // So reset our font and text properties to avoid inheriting weird values.
+ .reset-text();
+ font-size: @font-size-base;
+
+ background-color: @popover-bg;
+ background-clip: padding-box;
+ border: 1px solid @popover-fallback-border-color;
+ border: 1px solid @popover-border-color;
+ border-radius: @border-radius-large;
+ .box-shadow(0 5px 10px rgba(0,0,0,.2));
+
+ // Offset the popover to account for the popover arrow
+ &.top { margin-top: -@popover-arrow-width; }
+ &.right { margin-left: @popover-arrow-width; }
+ &.bottom { margin-top: @popover-arrow-width; }
+ &.left { margin-left: -@popover-arrow-width; }
+}
+
+.popover-title {
+ margin: 0; // reset heading margin
+ padding: 8px 14px;
+ font-size: @font-size-base;
+ background-color: @popover-title-bg;
+ border-bottom: 1px solid darken(@popover-title-bg, 5%);
+ border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0;
+}
+
+.popover-content {
+ padding: 9px 14px;
+}
+
+// Arrows
+//
+// .arrow is outer, .arrow:after is inner
+
+.popover > .arrow {
+ &,
+ &:after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+ }
+}
+.popover > .arrow {
+ border-width: @popover-arrow-outer-width;
+}
+.popover > .arrow:after {
+ border-width: @popover-arrow-width;
+ content: "";
+}
+
+.popover {
+ &.top > .arrow {
+ left: 50%;
+ margin-left: -@popover-arrow-outer-width;
+ border-bottom-width: 0;
+ border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback
+ border-top-color: @popover-arrow-outer-color;
+ bottom: -@popover-arrow-outer-width;
+ &:after {
+ content: " ";
+ bottom: 1px;
+ margin-left: -@popover-arrow-width;
+ border-bottom-width: 0;
+ border-top-color: @popover-arrow-color;
+ }
+ }
+ &.right > .arrow {
+ top: 50%;
+ left: -@popover-arrow-outer-width;
+ margin-top: -@popover-arrow-outer-width;
+ border-left-width: 0;
+ border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback
+ border-right-color: @popover-arrow-outer-color;
+ &:after {
+ content: " ";
+ left: 1px;
+ bottom: -@popover-arrow-width;
+ border-left-width: 0;
+ border-right-color: @popover-arrow-color;
+ }
+ }
+ &.bottom > .arrow {
+ left: 50%;
+ margin-left: -@popover-arrow-outer-width;
+ border-top-width: 0;
+ border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback
+ border-bottom-color: @popover-arrow-outer-color;
+ top: -@popover-arrow-outer-width;
+ &:after {
+ content: " ";
+ top: 1px;
+ margin-left: -@popover-arrow-width;
+ border-top-width: 0;
+ border-bottom-color: @popover-arrow-color;
+ }
+ }
+
+ &.left > .arrow {
+ top: 50%;
+ right: -@popover-arrow-outer-width;
+ margin-top: -@popover-arrow-outer-width;
+ border-right-width: 0;
+ border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback
+ border-left-color: @popover-arrow-outer-color;
+ &:after {
+ content: " ";
+ right: 1px;
+ border-right-width: 0;
+ border-left-color: @popover-arrow-color;
+ bottom: -@popover-arrow-width;
+ }
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/print.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/print.less
new file mode 100644
index 0000000..66e54ab
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/print.less
@@ -0,0 +1,101 @@
+/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
+
+// ==========================================================================
+// Print styles.
+// Inlined to avoid the additional HTTP request: h5bp.com/r
+// ==========================================================================
+
+@media print {
+ *,
+ *:before,
+ *:after {
+ background: transparent !important;
+ color: #000 !important; // Black prints faster: h5bp.com/s
+ box-shadow: none !important;
+ text-shadow: none !important;
+ }
+
+ a,
+ a:visited {
+ text-decoration: underline;
+ }
+
+ a[href]:after {
+ content: " (" attr(href) ")";
+ }
+
+ abbr[title]:after {
+ content: " (" attr(title) ")";
+ }
+
+ // Don't show links that are fragment identifiers,
+ // or use the `javascript:` pseudo protocol
+ a[href^="#"]:after,
+ a[href^="javascript:"]:after {
+ content: "";
+ }
+
+ pre,
+ blockquote {
+ border: 1px solid #999;
+ page-break-inside: avoid;
+ }
+
+ thead {
+ display: table-header-group; // h5bp.com/t
+ }
+
+ tr,
+ img {
+ page-break-inside: avoid;
+ }
+
+ img {
+ max-width: 100% !important;
+ }
+
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3;
+ }
+
+ h2,
+ h3 {
+ page-break-after: avoid;
+ }
+
+ // Bootstrap specific changes start
+
+ // Bootstrap components
+ .navbar {
+ display: none;
+ }
+ .btn,
+ .dropup > .btn {
+ > .caret {
+ border-top-color: #000 !important;
+ }
+ }
+ .label {
+ border: 1px solid #000;
+ }
+
+ .table {
+ border-collapse: collapse !important;
+
+ td,
+ th {
+ background-color: #fff !important;
+ }
+ }
+ .table-bordered {
+ th,
+ td {
+ border: 1px solid #ddd !important;
+ }
+ }
+
+ // Bootstrap specific changes end
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/progress-bars.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/progress-bars.less
new file mode 100644
index 0000000..8868a1f
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/progress-bars.less
@@ -0,0 +1,87 @@
+//
+// Progress bars
+// --------------------------------------------------
+
+
+// Bar animations
+// -------------------------
+
+// WebKit
+@-webkit-keyframes progress-bar-stripes {
+ from { background-position: 40px 0; }
+ to { background-position: 0 0; }
+}
+
+// Spec and IE10+
+@keyframes progress-bar-stripes {
+ from { background-position: 40px 0; }
+ to { background-position: 0 0; }
+}
+
+
+// Bar itself
+// -------------------------
+
+// Outer container
+.progress {
+ overflow: hidden;
+ height: @line-height-computed;
+ margin-bottom: @line-height-computed;
+ background-color: @progress-bg;
+ border-radius: @progress-border-radius;
+ .box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
+}
+
+// Bar of progress
+.progress-bar {
+ float: left;
+ width: 0%;
+ height: 100%;
+ font-size: @font-size-small;
+ line-height: @line-height-computed;
+ color: @progress-bar-color;
+ text-align: center;
+ background-color: @progress-bar-bg;
+ .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
+ .transition(width .6s ease);
+}
+
+// Striped bars
+//
+// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the
+// `.progress-bar-striped` class, which you just add to an existing
+// `.progress-bar`.
+.progress-striped .progress-bar,
+.progress-bar-striped {
+ #gradient > .striped();
+ background-size: 40px 40px;
+}
+
+// Call animation for the active one
+//
+// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the
+// `.progress-bar.active` approach.
+.progress.active .progress-bar,
+.progress-bar.active {
+ .animation(progress-bar-stripes 2s linear infinite);
+}
+
+
+// Variations
+// -------------------------
+
+.progress-bar-success {
+ .progress-bar-variant(@progress-bar-success-bg);
+}
+
+.progress-bar-info {
+ .progress-bar-variant(@progress-bar-info-bg);
+}
+
+.progress-bar-warning {
+ .progress-bar-variant(@progress-bar-warning-bg);
+}
+
+.progress-bar-danger {
+ .progress-bar-variant(@progress-bar-danger-bg);
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/responsive-embed.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/responsive-embed.less
new file mode 100644
index 0000000..080a511
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/responsive-embed.less
@@ -0,0 +1,35 @@
+// Embeds responsive
+//
+// Credit: Nicolas Gallagher and SUIT CSS.
+
+.embed-responsive {
+ position: relative;
+ display: block;
+ height: 0;
+ padding: 0;
+ overflow: hidden;
+
+ .embed-responsive-item,
+ iframe,
+ embed,
+ object,
+ video {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ height: 100%;
+ width: 100%;
+ border: 0;
+ }
+}
+
+// Modifier class for 16:9 aspect ratio
+.embed-responsive-16by9 {
+ padding-bottom: 56.25%;
+}
+
+// Modifier class for 4:3 aspect ratio
+.embed-responsive-4by3 {
+ padding-bottom: 75%;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/responsive-utilities.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/responsive-utilities.less
new file mode 100644
index 0000000..b1db31d
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/responsive-utilities.less
@@ -0,0 +1,194 @@
+//
+// Responsive: Utility classes
+// --------------------------------------------------
+
+
+// IE10 in Windows (Phone) 8
+//
+// Support for responsive views via media queries is kind of borked in IE10, for
+// Surface/desktop in split view and for Windows Phone 8. This particular fix
+// must be accompanied by a snippet of JavaScript to sniff the user agent and
+// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at
+// our Getting Started page for more information on this bug.
+//
+// For more information, see the following:
+//
+// Issue: https://github.com/twbs/bootstrap/issues/10497
+// Docs: http://getbootstrap.com/getting-started/#support-ie10-width
+// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/
+// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/
+
+@-ms-viewport {
+ width: device-width;
+}
+
+
+// Visibility utilities
+// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0
+.visible-xs,
+.visible-sm,
+.visible-md,
+.visible-lg {
+ .responsive-invisibility();
+}
+
+.visible-xs-block,
+.visible-xs-inline,
+.visible-xs-inline-block,
+.visible-sm-block,
+.visible-sm-inline,
+.visible-sm-inline-block,
+.visible-md-block,
+.visible-md-inline,
+.visible-md-inline-block,
+.visible-lg-block,
+.visible-lg-inline,
+.visible-lg-inline-block {
+ display: none !important;
+}
+
+.visible-xs {
+ @media (max-width: @screen-xs-max) {
+ .responsive-visibility();
+ }
+}
+.visible-xs-block {
+ @media (max-width: @screen-xs-max) {
+ display: block !important;
+ }
+}
+.visible-xs-inline {
+ @media (max-width: @screen-xs-max) {
+ display: inline !important;
+ }
+}
+.visible-xs-inline-block {
+ @media (max-width: @screen-xs-max) {
+ display: inline-block !important;
+ }
+}
+
+.visible-sm {
+ @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
+ .responsive-visibility();
+ }
+}
+.visible-sm-block {
+ @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
+ display: block !important;
+ }
+}
+.visible-sm-inline {
+ @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
+ display: inline !important;
+ }
+}
+.visible-sm-inline-block {
+ @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
+ display: inline-block !important;
+ }
+}
+
+.visible-md {
+ @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
+ .responsive-visibility();
+ }
+}
+.visible-md-block {
+ @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
+ display: block !important;
+ }
+}
+.visible-md-inline {
+ @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
+ display: inline !important;
+ }
+}
+.visible-md-inline-block {
+ @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
+ display: inline-block !important;
+ }
+}
+
+.visible-lg {
+ @media (min-width: @screen-lg-min) {
+ .responsive-visibility();
+ }
+}
+.visible-lg-block {
+ @media (min-width: @screen-lg-min) {
+ display: block !important;
+ }
+}
+.visible-lg-inline {
+ @media (min-width: @screen-lg-min) {
+ display: inline !important;
+ }
+}
+.visible-lg-inline-block {
+ @media (min-width: @screen-lg-min) {
+ display: inline-block !important;
+ }
+}
+
+.hidden-xs {
+ @media (max-width: @screen-xs-max) {
+ .responsive-invisibility();
+ }
+}
+.hidden-sm {
+ @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {
+ .responsive-invisibility();
+ }
+}
+.hidden-md {
+ @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {
+ .responsive-invisibility();
+ }
+}
+.hidden-lg {
+ @media (min-width: @screen-lg-min) {
+ .responsive-invisibility();
+ }
+}
+
+
+// Print utilities
+//
+// Media queries are placed on the inside to be mixin-friendly.
+
+// Note: Deprecated .visible-print as of v3.2.0
+.visible-print {
+ .responsive-invisibility();
+
+ @media print {
+ .responsive-visibility();
+ }
+}
+.visible-print-block {
+ display: none !important;
+
+ @media print {
+ display: block !important;
+ }
+}
+.visible-print-inline {
+ display: none !important;
+
+ @media print {
+ display: inline !important;
+ }
+}
+.visible-print-inline-block {
+ display: none !important;
+
+ @media print {
+ display: inline-block !important;
+ }
+}
+
+.hidden-print {
+ @media print {
+ .responsive-invisibility();
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/scaffolding.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/scaffolding.less
new file mode 100644
index 0000000..1929bfc
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/scaffolding.less
@@ -0,0 +1,161 @@
+//
+// Scaffolding
+// --------------------------------------------------
+
+
+// Reset the box-sizing
+//
+// Heads up! This reset may cause conflicts with some third-party widgets.
+// For recommendations on resolving such conflicts, see
+// http://getbootstrap.com/getting-started/#third-box-sizing
+* {
+ .box-sizing(border-box);
+}
+*:before,
+*:after {
+ .box-sizing(border-box);
+}
+
+
+// Body reset
+
+html {
+ font-size: 10px;
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
+}
+
+body {
+ font-family: @font-family-base;
+ font-size: @font-size-base;
+ line-height: @line-height-base;
+ color: @text-color;
+ background-color: @body-bg;
+}
+
+// Reset fonts for relevant elements
+input,
+button,
+select,
+textarea {
+ font-family: inherit;
+ font-size: inherit;
+ line-height: inherit;
+}
+
+
+// Links
+
+a {
+ color: @link-color;
+ text-decoration: none;
+
+ &:hover,
+ &:focus {
+ color: @link-hover-color;
+ text-decoration: @link-hover-decoration;
+ }
+
+ &:focus {
+ .tab-focus();
+ }
+}
+
+
+// Figures
+//
+// We reset this here because previously Normalize had no `figure` margins. This
+// ensures we don't break anyone's use of the element.
+
+figure {
+ margin: 0;
+}
+
+
+// Images
+
+img {
+ vertical-align: middle;
+}
+
+// Responsive images (ensure images don't scale beyond their parents)
+.img-responsive {
+ .img-responsive();
+}
+
+// Rounded corners
+.img-rounded {
+ border-radius: @border-radius-large;
+}
+
+// Image thumbnails
+//
+// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.
+.img-thumbnail {
+ padding: @thumbnail-padding;
+ line-height: @line-height-base;
+ background-color: @thumbnail-bg;
+ border: 1px solid @thumbnail-border;
+ border-radius: @thumbnail-border-radius;
+ .transition(all .2s ease-in-out);
+
+ // Keep them at most 100% wide
+ .img-responsive(inline-block);
+}
+
+// Perfect circle
+.img-circle {
+ border-radius: 50%; // set radius in percents
+}
+
+
+// Horizontal rules
+
+hr {
+ margin-top: @line-height-computed;
+ margin-bottom: @line-height-computed;
+ border: 0;
+ border-top: 1px solid @hr-border;
+}
+
+
+// Only display content to screen readers
+//
+// See: http://a11yproject.com/posts/how-to-hide-content/
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ margin: -1px;
+ padding: 0;
+ overflow: hidden;
+ clip: rect(0,0,0,0);
+ border: 0;
+}
+
+// Use in conjunction with .sr-only to only display content when it's focused.
+// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
+// Credit: HTML5 Boilerplate
+
+.sr-only-focusable {
+ &:active,
+ &:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
+ }
+}
+
+
+// iOS "clickable elements" fix for role="button"
+//
+// Fixes "clickability" issue (and more generally, the firing of events such as focus as well)
+// for traditionally non-focusable elements with role="button"
+// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
+
+[role="button"] {
+ cursor: pointer;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/tables.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/tables.less
new file mode 100644
index 0000000..2242c03
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/tables.less
@@ -0,0 +1,234 @@
+//
+// Tables
+// --------------------------------------------------
+
+
+table {
+ background-color: @table-bg;
+}
+caption {
+ padding-top: @table-cell-padding;
+ padding-bottom: @table-cell-padding;
+ color: @text-muted;
+ text-align: left;
+}
+th {
+ text-align: left;
+}
+
+
+// Baseline styles
+
+.table {
+ width: 100%;
+ max-width: 100%;
+ margin-bottom: @line-height-computed;
+ // Cells
+ > thead,
+ > tbody,
+ > tfoot {
+ > tr {
+ > th,
+ > td {
+ padding: @table-cell-padding;
+ line-height: @line-height-base;
+ vertical-align: top;
+ border-top: 1px solid @table-border-color;
+ }
+ }
+ }
+ // Bottom align for column headings
+ > thead > tr > th {
+ vertical-align: bottom;
+ border-bottom: 2px solid @table-border-color;
+ }
+ // Remove top border from thead by default
+ > caption + thead,
+ > colgroup + thead,
+ > thead:first-child {
+ > tr:first-child {
+ > th,
+ > td {
+ border-top: 0;
+ }
+ }
+ }
+ // Account for multiple tbody instances
+ > tbody + tbody {
+ border-top: 2px solid @table-border-color;
+ }
+
+ // Nesting
+ .table {
+ background-color: @body-bg;
+ }
+}
+
+
+// Condensed table w/ half padding
+
+.table-condensed {
+ > thead,
+ > tbody,
+ > tfoot {
+ > tr {
+ > th,
+ > td {
+ padding: @table-condensed-cell-padding;
+ }
+ }
+ }
+}
+
+
+// Bordered version
+//
+// Add borders all around the table and between all the columns.
+
+.table-bordered {
+ border: 1px solid @table-border-color;
+ > thead,
+ > tbody,
+ > tfoot {
+ > tr {
+ > th,
+ > td {
+ border: 1px solid @table-border-color;
+ }
+ }
+ }
+ > thead > tr {
+ > th,
+ > td {
+ border-bottom-width: 2px;
+ }
+ }
+}
+
+
+// Zebra-striping
+//
+// Default zebra-stripe styles (alternating gray and transparent backgrounds)
+
+.table-striped {
+ > tbody > tr:nth-of-type(odd) {
+ background-color: @table-bg-accent;
+ }
+}
+
+
+// Hover effect
+//
+// Placed here since it has to come after the potential zebra striping
+
+.table-hover {
+ > tbody > tr:hover {
+ background-color: @table-bg-hover;
+ }
+}
+
+
+// Table cell sizing
+//
+// Reset default table behavior
+
+table col[class*="col-"] {
+ position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)
+ float: none;
+ display: table-column;
+}
+table {
+ td,
+ th {
+ &[class*="col-"] {
+ position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)
+ float: none;
+ display: table-cell;
+ }
+ }
+}
+
+
+// Table backgrounds
+//
+// Exact selectors below required to override `.table-striped` and prevent
+// inheritance to nested tables.
+
+// Generate the contextual variants
+.table-row-variant(active; @table-bg-active);
+.table-row-variant(success; @state-success-bg);
+.table-row-variant(info; @state-info-bg);
+.table-row-variant(warning; @state-warning-bg);
+.table-row-variant(danger; @state-danger-bg);
+
+
+// Responsive tables
+//
+// Wrap your tables in `.table-responsive` and we'll make them mobile friendly
+// by enabling horizontal scrolling. Only applies <768px. Everything above that
+// will display normally.
+
+.table-responsive {
+ overflow-x: auto;
+ min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)
+
+ @media screen and (max-width: @screen-xs-max) {
+ width: 100%;
+ margin-bottom: (@line-height-computed * 0.75);
+ overflow-y: hidden;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ border: 1px solid @table-border-color;
+
+ // Tighten up spacing
+ > .table {
+ margin-bottom: 0;
+
+ // Ensure the content doesn't wrap
+ > thead,
+ > tbody,
+ > tfoot {
+ > tr {
+ > th,
+ > td {
+ white-space: nowrap;
+ }
+ }
+ }
+ }
+
+ // Special overrides for the bordered tables
+ > .table-bordered {
+ border: 0;
+
+ // Nuke the appropriate borders so that the parent can handle them
+ > thead,
+ > tbody,
+ > tfoot {
+ > tr {
+ > th:first-child,
+ > td:first-child {
+ border-left: 0;
+ }
+ > th:last-child,
+ > td:last-child {
+ border-right: 0;
+ }
+ }
+ }
+
+ // Only nuke the last row's bottom-border in `tbody` and `tfoot` since
+ // chances are there will be only one `tr` in a `thead` and that would
+ // remove the border altogether.
+ > tbody,
+ > tfoot {
+ > tr:last-child {
+ > th,
+ > td {
+ border-bottom: 0;
+ }
+ }
+ }
+
+ }
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/theme.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/theme.less
new file mode 100644
index 0000000..8371872
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/theme.less
@@ -0,0 +1,291 @@
+/*!
+ * Bootstrap v3.3.5 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+
+//
+// Load core variables and mixins
+// --------------------------------------------------
+
+@import "variables.less";
+@import "mixins.less";
+
+
+//
+// Buttons
+// --------------------------------------------------
+
+// Common styles
+.btn-default,
+.btn-primary,
+.btn-success,
+.btn-info,
+.btn-warning,
+.btn-danger {
+ text-shadow: 0 -1px 0 rgba(0,0,0,.2);
+ @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);
+ .box-shadow(@shadow);
+
+ // Reset the shadow
+ &:active,
+ &.active {
+ .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
+ }
+
+ &.disabled,
+ &[disabled],
+ fieldset[disabled] & {
+ .box-shadow(none);
+ }
+
+ .badge {
+ text-shadow: none;
+ }
+}
+
+// Mixin for generating new styles
+.btn-styles(@btn-color: #555) {
+ #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));
+ .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620
+ background-repeat: repeat-x;
+ border-color: darken(@btn-color, 14%);
+
+ &:hover,
+ &:focus {
+ background-color: darken(@btn-color, 12%);
+ background-position: 0 -15px;
+ }
+
+ &:active,
+ &.active {
+ background-color: darken(@btn-color, 12%);
+ border-color: darken(@btn-color, 14%);
+ }
+
+ &.disabled,
+ &[disabled],
+ fieldset[disabled] & {
+ &,
+ &:hover,
+ &:focus,
+ &.focus,
+ &:active,
+ &.active {
+ background-color: darken(@btn-color, 12%);
+ background-image: none;
+ }
+ }
+}
+
+// Common styles
+.btn {
+ // Remove the gradient for the pressed/active state
+ &:active,
+ &.active {
+ background-image: none;
+ }
+}
+
+// Apply the mixin to the buttons
+.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }
+.btn-primary { .btn-styles(@btn-primary-bg); }
+.btn-success { .btn-styles(@btn-success-bg); }
+.btn-info { .btn-styles(@btn-info-bg); }
+.btn-warning { .btn-styles(@btn-warning-bg); }
+.btn-danger { .btn-styles(@btn-danger-bg); }
+
+
+//
+// Images
+// --------------------------------------------------
+
+.thumbnail,
+.img-thumbnail {
+ .box-shadow(0 1px 2px rgba(0,0,0,.075));
+}
+
+
+//
+// Dropdowns
+// --------------------------------------------------
+
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus {
+ #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));
+ background-color: darken(@dropdown-link-hover-bg, 5%);
+}
+.dropdown-menu > .active > a,
+.dropdown-menu > .active > a:hover,
+.dropdown-menu > .active > a:focus {
+ #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));
+ background-color: darken(@dropdown-link-active-bg, 5%);
+}
+
+
+//
+// Navbar
+// --------------------------------------------------
+
+// Default navbar
+.navbar-default {
+ #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);
+ .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered
+ border-radius: @navbar-border-radius;
+ @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);
+ .box-shadow(@shadow);
+
+ .navbar-nav > .open > a,
+ .navbar-nav > .active > a {
+ #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));
+ .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));
+ }
+}
+.navbar-brand,
+.navbar-nav > li > a {
+ text-shadow: 0 1px 0 rgba(255,255,255,.25);
+}
+
+// Inverted navbar
+.navbar-inverse {
+ #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);
+ .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257
+ border-radius: @navbar-border-radius;
+ .navbar-nav > .open > a,
+ .navbar-nav > .active > a {
+ #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));
+ .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));
+ }
+
+ .navbar-brand,
+ .navbar-nav > li > a {
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
+ }
+}
+
+// Undo rounded corners in static and fixed navbars
+.navbar-static-top,
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+ border-radius: 0;
+}
+
+// Fix active state of dropdown items in collapsed mode
+@media (max-width: @grid-float-breakpoint-max) {
+ .navbar .navbar-nav .open .dropdown-menu > .active > a {
+ &,
+ &:hover,
+ &:focus {
+ color: #fff;
+ #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));
+ }
+ }
+}
+
+
+//
+// Alerts
+// --------------------------------------------------
+
+// Common styles
+.alert {
+ text-shadow: 0 1px 0 rgba(255,255,255,.2);
+ @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);
+ .box-shadow(@shadow);
+}
+
+// Mixin for generating new styles
+.alert-styles(@color) {
+ #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));
+ border-color: darken(@color, 15%);
+}
+
+// Apply the mixin to the alerts
+.alert-success { .alert-styles(@alert-success-bg); }
+.alert-info { .alert-styles(@alert-info-bg); }
+.alert-warning { .alert-styles(@alert-warning-bg); }
+.alert-danger { .alert-styles(@alert-danger-bg); }
+
+
+//
+// Progress bars
+// --------------------------------------------------
+
+// Give the progress background some depth
+.progress {
+ #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)
+}
+
+// Mixin for generating new styles
+.progress-bar-styles(@color) {
+ #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));
+}
+
+// Apply the mixin to the progress bars
+.progress-bar { .progress-bar-styles(@progress-bar-bg); }
+.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }
+.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }
+.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }
+.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }
+
+// Reset the striped class because our mixins don't do multiple gradients and
+// the above custom styles override the new `.progress-bar-striped` in v3.2.0.
+.progress-bar-striped {
+ #gradient > .striped();
+}
+
+
+//
+// List groups
+// --------------------------------------------------
+
+.list-group {
+ border-radius: @border-radius-base;
+ .box-shadow(0 1px 2px rgba(0,0,0,.075));
+}
+.list-group-item.active,
+.list-group-item.active:hover,
+.list-group-item.active:focus {
+ text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);
+ #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));
+ border-color: darken(@list-group-active-border, 7.5%);
+
+ .badge {
+ text-shadow: none;
+ }
+}
+
+
+//
+// Panels
+// --------------------------------------------------
+
+// Common styles
+.panel {
+ .box-shadow(0 1px 2px rgba(0,0,0,.05));
+}
+
+// Mixin for generating new styles
+.panel-heading-styles(@color) {
+ #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));
+}
+
+// Apply the mixin to the panel headings only
+.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }
+.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }
+.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }
+.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }
+.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }
+.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }
+
+
+//
+// Wells
+// --------------------------------------------------
+
+.well {
+ #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);
+ border-color: darken(@well-bg, 10%);
+ @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);
+ .box-shadow(@shadow);
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/thumbnails.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/thumbnails.less
new file mode 100644
index 0000000..0713e67
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/thumbnails.less
@@ -0,0 +1,36 @@
+//
+// Thumbnails
+// --------------------------------------------------
+
+
+// Mixin and adjust the regular image class
+.thumbnail {
+ display: block;
+ padding: @thumbnail-padding;
+ margin-bottom: @line-height-computed;
+ line-height: @line-height-base;
+ background-color: @thumbnail-bg;
+ border: 1px solid @thumbnail-border;
+ border-radius: @thumbnail-border-radius;
+ .transition(border .2s ease-in-out);
+
+ > img,
+ a > img {
+ &:extend(.img-responsive);
+ margin-left: auto;
+ margin-right: auto;
+ }
+
+ // Add a hover state for linked versions only
+ a&:hover,
+ a&:focus,
+ a&.active {
+ border-color: @link-color;
+ }
+
+ // Image captions
+ .caption {
+ padding: @thumbnail-caption-padding;
+ color: @thumbnail-caption-color;
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/tooltip.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/tooltip.less
new file mode 100644
index 0000000..b48d63e
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/tooltip.less
@@ -0,0 +1,101 @@
+//
+// Tooltips
+// --------------------------------------------------
+
+
+// Base class
+.tooltip {
+ position: absolute;
+ z-index: @zindex-tooltip;
+ display: block;
+ // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
+ // So reset our font and text properties to avoid inheriting weird values.
+ .reset-text();
+ font-size: @font-size-small;
+
+ .opacity(0);
+
+ &.in { .opacity(@tooltip-opacity); }
+ &.top { margin-top: -3px; padding: @tooltip-arrow-width 0; }
+ &.right { margin-left: 3px; padding: 0 @tooltip-arrow-width; }
+ &.bottom { margin-top: 3px; padding: @tooltip-arrow-width 0; }
+ &.left { margin-left: -3px; padding: 0 @tooltip-arrow-width; }
+}
+
+// Wrapper for the tooltip content
+.tooltip-inner {
+ max-width: @tooltip-max-width;
+ padding: 3px 8px;
+ color: @tooltip-color;
+ text-align: center;
+ background-color: @tooltip-bg;
+ border-radius: @border-radius-base;
+}
+
+// Arrows
+.tooltip-arrow {
+ position: absolute;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1
+.tooltip {
+ &.top .tooltip-arrow {
+ bottom: 0;
+ left: 50%;
+ margin-left: -@tooltip-arrow-width;
+ border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
+ border-top-color: @tooltip-arrow-color;
+ }
+ &.top-left .tooltip-arrow {
+ bottom: 0;
+ right: @tooltip-arrow-width;
+ margin-bottom: -@tooltip-arrow-width;
+ border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
+ border-top-color: @tooltip-arrow-color;
+ }
+ &.top-right .tooltip-arrow {
+ bottom: 0;
+ left: @tooltip-arrow-width;
+ margin-bottom: -@tooltip-arrow-width;
+ border-width: @tooltip-arrow-width @tooltip-arrow-width 0;
+ border-top-color: @tooltip-arrow-color;
+ }
+ &.right .tooltip-arrow {
+ top: 50%;
+ left: 0;
+ margin-top: -@tooltip-arrow-width;
+ border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;
+ border-right-color: @tooltip-arrow-color;
+ }
+ &.left .tooltip-arrow {
+ top: 50%;
+ right: 0;
+ margin-top: -@tooltip-arrow-width;
+ border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;
+ border-left-color: @tooltip-arrow-color;
+ }
+ &.bottom .tooltip-arrow {
+ top: 0;
+ left: 50%;
+ margin-left: -@tooltip-arrow-width;
+ border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
+ border-bottom-color: @tooltip-arrow-color;
+ }
+ &.bottom-left .tooltip-arrow {
+ top: 0;
+ right: @tooltip-arrow-width;
+ margin-top: -@tooltip-arrow-width;
+ border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
+ border-bottom-color: @tooltip-arrow-color;
+ }
+ &.bottom-right .tooltip-arrow {
+ top: 0;
+ left: @tooltip-arrow-width;
+ margin-top: -@tooltip-arrow-width;
+ border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;
+ border-bottom-color: @tooltip-arrow-color;
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/type.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/type.less
new file mode 100644
index 0000000..0d4fee4
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/type.less
@@ -0,0 +1,302 @@
+//
+// Typography
+// --------------------------------------------------
+
+
+// Headings
+// -------------------------
+
+h1, h2, h3, h4, h5, h6,
+.h1, .h2, .h3, .h4, .h5, .h6 {
+ font-family: @headings-font-family;
+ font-weight: @headings-font-weight;
+ line-height: @headings-line-height;
+ color: @headings-color;
+
+ small,
+ .small {
+ font-weight: normal;
+ line-height: 1;
+ color: @headings-small-color;
+ }
+}
+
+h1, .h1,
+h2, .h2,
+h3, .h3 {
+ margin-top: @line-height-computed;
+ margin-bottom: (@line-height-computed / 2);
+
+ small,
+ .small {
+ font-size: 65%;
+ }
+}
+h4, .h4,
+h5, .h5,
+h6, .h6 {
+ margin-top: (@line-height-computed / 2);
+ margin-bottom: (@line-height-computed / 2);
+
+ small,
+ .small {
+ font-size: 75%;
+ }
+}
+
+h1, .h1 { font-size: @font-size-h1; }
+h2, .h2 { font-size: @font-size-h2; }
+h3, .h3 { font-size: @font-size-h3; }
+h4, .h4 { font-size: @font-size-h4; }
+h5, .h5 { font-size: @font-size-h5; }
+h6, .h6 { font-size: @font-size-h6; }
+
+
+// Body text
+// -------------------------
+
+p {
+ margin: 0 0 (@line-height-computed / 2);
+}
+
+.lead {
+ margin-bottom: @line-height-computed;
+ font-size: floor((@font-size-base * 1.15));
+ font-weight: 300;
+ line-height: 1.4;
+
+ @media (min-width: @screen-sm-min) {
+ font-size: (@font-size-base * 1.5);
+ }
+}
+
+
+// Emphasis & misc
+// -------------------------
+
+// Ex: (12px small font / 14px base font) * 100% = about 85%
+small,
+.small {
+ font-size: floor((100% * @font-size-small / @font-size-base));
+}
+
+mark,
+.mark {
+ background-color: @state-warning-bg;
+ padding: .2em;
+}
+
+// Alignment
+.text-left { text-align: left; }
+.text-right { text-align: right; }
+.text-center { text-align: center; }
+.text-justify { text-align: justify; }
+.text-nowrap { white-space: nowrap; }
+
+// Transformation
+.text-lowercase { text-transform: lowercase; }
+.text-uppercase { text-transform: uppercase; }
+.text-capitalize { text-transform: capitalize; }
+
+// Contextual colors
+.text-muted {
+ color: @text-muted;
+}
+.text-primary {
+ .text-emphasis-variant(@brand-primary);
+}
+.text-success {
+ .text-emphasis-variant(@state-success-text);
+}
+.text-info {
+ .text-emphasis-variant(@state-info-text);
+}
+.text-warning {
+ .text-emphasis-variant(@state-warning-text);
+}
+.text-danger {
+ .text-emphasis-variant(@state-danger-text);
+}
+
+// Contextual backgrounds
+// For now we'll leave these alongside the text classes until v4 when we can
+// safely shift things around (per SemVer rules).
+.bg-primary {
+ // Given the contrast here, this is the only class to have its color inverted
+ // automatically.
+ color: #fff;
+ .bg-variant(@brand-primary);
+}
+.bg-success {
+ .bg-variant(@state-success-bg);
+}
+.bg-info {
+ .bg-variant(@state-info-bg);
+}
+.bg-warning {
+ .bg-variant(@state-warning-bg);
+}
+.bg-danger {
+ .bg-variant(@state-danger-bg);
+}
+
+
+// Page header
+// -------------------------
+
+.page-header {
+ padding-bottom: ((@line-height-computed / 2) - 1);
+ margin: (@line-height-computed * 2) 0 @line-height-computed;
+ border-bottom: 1px solid @page-header-border-color;
+}
+
+
+// Lists
+// -------------------------
+
+// Unordered and Ordered lists
+ul,
+ol {
+ margin-top: 0;
+ margin-bottom: (@line-height-computed / 2);
+ ul,
+ ol {
+ margin-bottom: 0;
+ }
+}
+
+// List options
+
+// Unstyled keeps list items block level, just removes default browser padding and list-style
+.list-unstyled {
+ padding-left: 0;
+ list-style: none;
+}
+
+// Inline turns list items into inline-block
+.list-inline {
+ .list-unstyled();
+ margin-left: -5px;
+
+ > li {
+ display: inline-block;
+ padding-left: 5px;
+ padding-right: 5px;
+ }
+}
+
+// Description Lists
+dl {
+ margin-top: 0; // Remove browser default
+ margin-bottom: @line-height-computed;
+}
+dt,
+dd {
+ line-height: @line-height-base;
+}
+dt {
+ font-weight: bold;
+}
+dd {
+ margin-left: 0; // Undo browser default
+}
+
+// Horizontal description lists
+//
+// Defaults to being stacked without any of the below styles applied, until the
+// grid breakpoint is reached (default of ~768px).
+
+.dl-horizontal {
+ dd {
+ &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present
+ }
+
+ @media (min-width: @dl-horizontal-breakpoint) {
+ dt {
+ float: left;
+ width: (@dl-horizontal-offset - 20);
+ clear: left;
+ text-align: right;
+ .text-overflow();
+ }
+ dd {
+ margin-left: @dl-horizontal-offset;
+ }
+ }
+}
+
+
+// Misc
+// -------------------------
+
+// Abbreviations and acronyms
+abbr[title],
+// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257
+abbr[data-original-title] {
+ cursor: help;
+ border-bottom: 1px dotted @abbr-border-color;
+}
+.initialism {
+ font-size: 90%;
+ .text-uppercase();
+}
+
+// Blockquotes
+blockquote {
+ padding: (@line-height-computed / 2) @line-height-computed;
+ margin: 0 0 @line-height-computed;
+ font-size: @blockquote-font-size;
+ border-left: 5px solid @blockquote-border-color;
+
+ p,
+ ul,
+ ol {
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
+
+ // Note: Deprecated small and .small as of v3.1.0
+ // Context: https://github.com/twbs/bootstrap/issues/11660
+ footer,
+ small,
+ .small {
+ display: block;
+ font-size: 80%; // back to default font-size
+ line-height: @line-height-base;
+ color: @blockquote-small-color;
+
+ &:before {
+ content: '\2014 \00A0'; // em dash, nbsp
+ }
+ }
+}
+
+// Opposite alignment of blockquote
+//
+// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.
+.blockquote-reverse,
+blockquote.pull-right {
+ padding-right: 15px;
+ padding-left: 0;
+ border-right: 5px solid @blockquote-border-color;
+ border-left: 0;
+ text-align: right;
+
+ // Account for citation
+ footer,
+ small,
+ .small {
+ &:before { content: ''; }
+ &:after {
+ content: '\00A0 \2014'; // nbsp, em dash
+ }
+ }
+}
+
+// Addresses
+address {
+ margin-bottom: @line-height-computed;
+ font-style: normal;
+ line-height: @line-height-base;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/utilities.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/utilities.less
new file mode 100644
index 0000000..7a8ca27
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/utilities.less
@@ -0,0 +1,55 @@
+//
+// Utility classes
+// --------------------------------------------------
+
+
+// Floats
+// -------------------------
+
+.clearfix {
+ .clearfix();
+}
+.center-block {
+ .center-block();
+}
+.pull-right {
+ float: right !important;
+}
+.pull-left {
+ float: left !important;
+}
+
+
+// Toggling content
+// -------------------------
+
+// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1
+.hide {
+ display: none !important;
+}
+.show {
+ display: block !important;
+}
+.invisible {
+ visibility: hidden;
+}
+.text-hide {
+ .text-hide();
+}
+
+
+// Hide from screenreaders and browsers
+//
+// Credit: HTML5 Boilerplate
+
+.hidden {
+ display: none !important;
+}
+
+
+// For Affix plugin
+// -------------------------
+
+.affix {
+ position: fixed;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/variables.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/variables.less
new file mode 100644
index 0000000..b057ef5
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/variables.less
@@ -0,0 +1,869 @@
+//
+// Variables
+// --------------------------------------------------
+
+
+//== Colors
+//
+//## Gray and brand colors for use across Bootstrap.
+
+@gray-base: #000;
+@gray-darker: lighten(@gray-base, 13.5%); // #222
+@gray-dark: lighten(@gray-base, 20%); // #333
+@gray: lighten(@gray-base, 33.5%); // #555
+@gray-light: lighten(@gray-base, 46.7%); // #777
+@gray-lighter: lighten(@gray-base, 93.5%); // #eee
+
+@brand-primary: darken(#428bca, 6.5%); // #337ab7
+@brand-success: #5cb85c;
+@brand-info: #5bc0de;
+@brand-warning: #f0ad4e;
+@brand-danger: #d9534f;
+
+
+//== Scaffolding
+//
+//## Settings for some of the most global styles.
+
+//** Background color for `<body>`.
+@body-bg: #fff;
+//** Global text color on `<body>`.
+@text-color: @gray-dark;
+
+//** Global textual link color.
+@link-color: @brand-primary;
+//** Link hover color set via `darken()` function.
+@link-hover-color: darken(@link-color, 15%);
+//** Link hover decoration.
+@link-hover-decoration: underline;
+
+
+//== Typography
+//
+//## Font, line-height, and color for body text, headings, and more.
+
+@font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif;
+@font-family-serif: Georgia, "Times New Roman", Times, serif;
+//** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.
+@font-family-monospace: Menlo, Monaco, Consolas, "Courier New", monospace;
+@font-family-base: @font-family-sans-serif;
+
+@font-size-base: 14px;
+@font-size-large: ceil((@font-size-base * 1.25)); // ~18px
+@font-size-small: ceil((@font-size-base * 0.85)); // ~12px
+
+@font-size-h1: floor((@font-size-base * 2.6)); // ~36px
+@font-size-h2: floor((@font-size-base * 2.15)); // ~30px
+@font-size-h3: ceil((@font-size-base * 1.7)); // ~24px
+@font-size-h4: ceil((@font-size-base * 1.25)); // ~18px
+@font-size-h5: @font-size-base;
+@font-size-h6: ceil((@font-size-base * 0.85)); // ~12px
+
+//** Unit-less `line-height` for use in components like buttons.
+@line-height-base: 1.428571429; // 20/14
+//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
+@line-height-computed: floor((@font-size-base * @line-height-base)); // ~20px
+
+//** By default, this inherits from the `<body>`.
+@headings-font-family: inherit;
+@headings-font-weight: 500;
+@headings-line-height: 1.1;
+@headings-color: inherit;
+
+
+//== Iconography
+//
+//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
+
+//** Load fonts from this directory.
+@icon-font-path: "../fonts/";
+//** File name for all font files.
+@icon-font-name: "glyphicons-halflings-regular";
+//** Element ID within SVG icon file.
+@icon-font-svg-id: "glyphicons_halflingsregular";
+
+
+//== Components
+//
+//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
+
+@padding-base-vertical: 6px;
+@padding-base-horizontal: 12px;
+
+@padding-large-vertical: 10px;
+@padding-large-horizontal: 16px;
+
+@padding-small-vertical: 5px;
+@padding-small-horizontal: 10px;
+
+@padding-xs-vertical: 1px;
+@padding-xs-horizontal: 5px;
+
+@line-height-large: 1.3333333; // extra decimals for Win 8.1 Chrome
+@line-height-small: 1.5;
+
+@border-radius-base: 4px;
+@border-radius-large: 6px;
+@border-radius-small: 3px;
+
+//** Global color for active items (e.g., navs or dropdowns).
+@component-active-color: #fff;
+//** Global background color for active items (e.g., navs or dropdowns).
+@component-active-bg: @brand-primary;
+
+//** Width of the `border` for generating carets that indicator dropdowns.
+@caret-width-base: 4px;
+//** Carets increase slightly in size for larger components.
+@caret-width-large: 5px;
+
+
+//== Tables
+//
+//## Customizes the `.table` component with basic values, each used across all table variations.
+
+//** Padding for `<th>`s and `<td>`s.
+@table-cell-padding: 8px;
+//** Padding for cells in `.table-condensed`.
+@table-condensed-cell-padding: 5px;
+
+//** Default background color used for all tables.
+@table-bg: transparent;
+//** Background color used for `.table-striped`.
+@table-bg-accent: #f9f9f9;
+//** Background color used for `.table-hover`.
+@table-bg-hover: #f5f5f5;
+@table-bg-active: @table-bg-hover;
+
+//** Border color for table and cell borders.
+@table-border-color: #ddd;
+
+
+//== Buttons
+//
+//## For each of Bootstrap's buttons, define text, background and border color.
+
+@btn-font-weight: normal;
+
+@btn-default-color: #333;
+@btn-default-bg: #fff;
+@btn-default-border: #ccc;
+
+@btn-primary-color: #fff;
+@btn-primary-bg: @brand-primary;
+@btn-primary-border: darken(@btn-primary-bg, 5%);
+
+@btn-success-color: #fff;
+@btn-success-bg: @brand-success;
+@btn-success-border: darken(@btn-success-bg, 5%);
+
+@btn-info-color: #fff;
+@btn-info-bg: @brand-info;
+@btn-info-border: darken(@btn-info-bg, 5%);
+
+@btn-warning-color: #fff;
+@btn-warning-bg: @brand-warning;
+@btn-warning-border: darken(@btn-warning-bg, 5%);
+
+@btn-danger-color: #fff;
+@btn-danger-bg: @brand-danger;
+@btn-danger-border: darken(@btn-danger-bg, 5%);
+
+@btn-link-disabled-color: @gray-light;
+
+// Allows for customizing button radius independently from global border radius
+@btn-border-radius-base: @border-radius-base;
+@btn-border-radius-large: @border-radius-large;
+@btn-border-radius-small: @border-radius-small;
+
+
+//== Forms
+//
+//##
+
+//** `<input>` background color
+@input-bg: #fff;
+//** `<input disabled>` background color
+@input-bg-disabled: @gray-lighter;
+
+//** Text color for `<input>`s
+@input-color: @gray;
+//** `<input>` border color
+@input-border: #ccc;
+
+// TODO: Rename `@input-border-radius` to `@input-border-radius-base` in v4
+//** Default `.form-control` border radius
+// This has no effect on `<select>`s in some browsers, due to the limited stylability of `<select>`s in CSS.
+@input-border-radius: @border-radius-base;
+//** Large `.form-control` border radius
+@input-border-radius-large: @border-radius-large;
+//** Small `.form-control` border radius
+@input-border-radius-small: @border-radius-small;
+
+//** Border color for inputs on focus
+@input-border-focus: #66afe9;
+
+//** Placeholder text color
+@input-color-placeholder: #999;
+
+//** Default `.form-control` height
+@input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2);
+//** Large `.form-control` height
+@input-height-large: (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2);
+//** Small `.form-control` height
+@input-height-small: (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2);
+
+//** `.form-group` margin
+@form-group-margin-bottom: 15px;
+
+@legend-color: @gray-dark;
+@legend-border-color: #e5e5e5;
+
+//** Background color for textual input addons
+@input-group-addon-bg: @gray-lighter;
+//** Border color for textual input addons
+@input-group-addon-border-color: @input-border;
+
+//** Disabled cursor for form controls and buttons.
+@cursor-disabled: not-allowed;
+
+
+//== Dropdowns
+//
+//## Dropdown menu container and contents.
+
+//** Background for the dropdown menu.
+@dropdown-bg: #fff;
+//** Dropdown menu `border-color`.
+@dropdown-border: rgba(0,0,0,.15);
+//** Dropdown menu `border-color` **for IE8**.
+@dropdown-fallback-border: #ccc;
+//** Divider color for between dropdown items.
+@dropdown-divider-bg: #e5e5e5;
+
+//** Dropdown link text color.
+@dropdown-link-color: @gray-dark;
+//** Hover color for dropdown links.
+@dropdown-link-hover-color: darken(@gray-dark, 5%);
+//** Hover background for dropdown links.
+@dropdown-link-hover-bg: #f5f5f5;
+
+//** Active dropdown menu item text color.
+@dropdown-link-active-color: @component-active-color;
+//** Active dropdown menu item background color.
+@dropdown-link-active-bg: @component-active-bg;
+
+//** Disabled dropdown menu item background color.
+@dropdown-link-disabled-color: @gray-light;
+
+//** Text color for headers within dropdown menus.
+@dropdown-header-color: @gray-light;
+
+//** Deprecated `@dropdown-caret-color` as of v3.1.0
+@dropdown-caret-color: #000;
+
+
+//-- Z-index master list
+//
+// Warning: Avoid customizing these values. They're used for a bird's eye view
+// of components dependent on the z-axis and are designed to all work together.
+//
+// Note: These variables are not generated into the Customizer.
+
+@zindex-navbar: 1000;
+@zindex-dropdown: 1000;
+@zindex-popover: 1060;
+@zindex-tooltip: 1070;
+@zindex-navbar-fixed: 1030;
+@zindex-modal-background: 1040;
+@zindex-modal: 1050;
+
+
+//== Media queries breakpoints
+//
+//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
+
+// Extra small screen / phone
+//** Deprecated `@screen-xs` as of v3.0.1
+@screen-xs: 480px;
+//** Deprecated `@screen-xs-min` as of v3.2.0
+@screen-xs-min: @screen-xs;
+//** Deprecated `@screen-phone` as of v3.0.1
+@screen-phone: @screen-xs-min;
+
+// Small screen / tablet
+//** Deprecated `@screen-sm` as of v3.0.1
+@screen-sm: 768px;
+@screen-sm-min: @screen-sm;
+//** Deprecated `@screen-tablet` as of v3.0.1
+@screen-tablet: @screen-sm-min;
+
+// Medium screen / desktop
+//** Deprecated `@screen-md` as of v3.0.1
+@screen-md: 992px;
+@screen-md-min: @screen-md;
+//** Deprecated `@screen-desktop` as of v3.0.1
+@screen-desktop: @screen-md-min;
+
+// Large screen / wide desktop
+//** Deprecated `@screen-lg` as of v3.0.1
+@screen-lg: 1200px;
+@screen-lg-min: @screen-lg;
+//** Deprecated `@screen-lg-desktop` as of v3.0.1
+@screen-lg-desktop: @screen-lg-min;
+
+// So media queries don't overlap when required, provide a maximum
+@screen-xs-max: (@screen-sm-min - 1);
+@screen-sm-max: (@screen-md-min - 1);
+@screen-md-max: (@screen-lg-min - 1);
+
+
+//== Grid system
+//
+//## Define your custom responsive grid.
+
+//** Number of columns in the grid.
+@grid-columns: 12;
+//** Padding between columns. Gets divided in half for the left and right.
+@grid-gutter-width: 30px;
+// Navbar collapse
+//** Point at which the navbar becomes uncollapsed.
+@grid-float-breakpoint: @screen-sm-min;
+//** Point at which the navbar begins collapsing.
+@grid-float-breakpoint-max: (@grid-float-breakpoint - 1);
+
+
+//== Container sizes
+//
+//## Define the maximum width of `.container` for different screen sizes.
+
+// Small screen / tablet
+@container-tablet: (720px + @grid-gutter-width);
+//** For `@screen-sm-min` and up.
+@container-sm: @container-tablet;
+
+// Medium screen / desktop
+@container-desktop: (940px + @grid-gutter-width);
+//** For `@screen-md-min` and up.
+@container-md: @container-desktop;
+
+// Large screen / wide desktop
+@container-large-desktop: (1140px + @grid-gutter-width);
+//** For `@screen-lg-min` and up.
+@container-lg: @container-large-desktop;
+
+
+//== Navbar
+//
+//##
+
+// Basics of a navbar
+@navbar-height: 50px;
+@navbar-margin-bottom: @line-height-computed;
+@navbar-border-radius: @border-radius-base;
+@navbar-padding-horizontal: floor((@grid-gutter-width / 2));
+@navbar-padding-vertical: ((@navbar-height - @line-height-computed) / 2);
+@navbar-collapse-max-height: 340px;
+
+@navbar-default-color: #777;
+@navbar-default-bg: #f8f8f8;
+@navbar-default-border: darken(@navbar-default-bg, 6.5%);
+
+// Navbar links
+@navbar-default-link-color: #777;
+@navbar-default-link-hover-color: #333;
+@navbar-default-link-hover-bg: transparent;
+@navbar-default-link-active-color: #555;
+@navbar-default-link-active-bg: darken(@navbar-default-bg, 6.5%);
+@navbar-default-link-disabled-color: #ccc;
+@navbar-default-link-disabled-bg: transparent;
+
+// Navbar brand label
+@navbar-default-brand-color: @navbar-default-link-color;
+@navbar-default-brand-hover-color: darken(@navbar-default-brand-color, 10%);
+@navbar-default-brand-hover-bg: transparent;
+
+// Navbar toggle
+@navbar-default-toggle-hover-bg: #ddd;
+@navbar-default-toggle-icon-bar-bg: #888;
+@navbar-default-toggle-border-color: #ddd;
+
+
+//=== Inverted navbar
+// Reset inverted navbar basics
+@navbar-inverse-color: lighten(@gray-light, 15%);
+@navbar-inverse-bg: #222;
+@navbar-inverse-border: darken(@navbar-inverse-bg, 10%);
+
+// Inverted navbar links
+@navbar-inverse-link-color: lighten(@gray-light, 15%);
+@navbar-inverse-link-hover-color: #fff;
+@navbar-inverse-link-hover-bg: transparent;
+@navbar-inverse-link-active-color: @navbar-inverse-link-hover-color;
+@navbar-inverse-link-active-bg: darken(@navbar-inverse-bg, 10%);
+@navbar-inverse-link-disabled-color: #444;
+@navbar-inverse-link-disabled-bg: transparent;
+
+// Inverted navbar brand label
+@navbar-inverse-brand-color: @navbar-inverse-link-color;
+@navbar-inverse-brand-hover-color: #fff;
+@navbar-inverse-brand-hover-bg: transparent;
+
+// Inverted navbar toggle
+@navbar-inverse-toggle-hover-bg: #333;
+@navbar-inverse-toggle-icon-bar-bg: #fff;
+@navbar-inverse-toggle-border-color: #333;
+
+
+//== Navs
+//
+//##
+
+//=== Shared nav styles
+@nav-link-padding: 10px 15px;
+@nav-link-hover-bg: @gray-lighter;
+
+@nav-disabled-link-color: @gray-light;
+@nav-disabled-link-hover-color: @gray-light;
+
+//== Tabs
+@nav-tabs-border-color: #ddd;
+
+@nav-tabs-link-hover-border-color: @gray-lighter;
+
+@nav-tabs-active-link-hover-bg: @body-bg;
+@nav-tabs-active-link-hover-color: @gray;
+@nav-tabs-active-link-hover-border-color: #ddd;
+
+@nav-tabs-justified-link-border-color: #ddd;
+@nav-tabs-justified-active-link-border-color: @body-bg;
+
+//== Pills
+@nav-pills-border-radius: @border-radius-base;
+@nav-pills-active-link-hover-bg: @component-active-bg;
+@nav-pills-active-link-hover-color: @component-active-color;
+
+
+//== Pagination
+//
+//##
+
+@pagination-color: @link-color;
+@pagination-bg: #fff;
+@pagination-border: #ddd;
+
+@pagination-hover-color: @link-hover-color;
+@pagination-hover-bg: @gray-lighter;
+@pagination-hover-border: #ddd;
+
+@pagination-active-color: #fff;
+@pagination-active-bg: @brand-primary;
+@pagination-active-border: @brand-primary;
+
+@pagination-disabled-color: @gray-light;
+@pagination-disabled-bg: #fff;
+@pagination-disabled-border: #ddd;
+
+
+//== Pager
+//
+//##
+
+@pager-bg: @pagination-bg;
+@pager-border: @pagination-border;
+@pager-border-radius: 15px;
+
+@pager-hover-bg: @pagination-hover-bg;
+
+@pager-active-bg: @pagination-active-bg;
+@pager-active-color: @pagination-active-color;
+
+@pager-disabled-color: @pagination-disabled-color;
+
+
+//== Jumbotron
+//
+//##
+
+@jumbotron-padding: 30px;
+@jumbotron-color: inherit;
+@jumbotron-bg: @gray-lighter;
+@jumbotron-heading-color: inherit;
+@jumbotron-font-size: ceil((@font-size-base * 1.5));
+@jumbotron-heading-font-size: ceil((@font-size-base * 4.5));
+
+
+//== Form states and alerts
+//
+//## Define colors for form feedback states and, by default, alerts.
+
+@state-success-text: #3c763d;
+@state-success-bg: #dff0d8;
+@state-success-border: darken(spin(@state-success-bg, -10), 5%);
+
+@state-info-text: #31708f;
+@state-info-bg: #d9edf7;
+@state-info-border: darken(spin(@state-info-bg, -10), 7%);
+
+@state-warning-text: #8a6d3b;
+@state-warning-bg: #fcf8e3;
+@state-warning-border: darken(spin(@state-warning-bg, -10), 5%);
+
+@state-danger-text: #a94442;
+@state-danger-bg: #f2dede;
+@state-danger-border: darken(spin(@state-danger-bg, -10), 5%);
+
+
+//== Tooltips
+//
+//##
+
+//** Tooltip max width
+@tooltip-max-width: 200px;
+//** Tooltip text color
+@tooltip-color: #fff;
+//** Tooltip background color
+@tooltip-bg: #000;
+@tooltip-opacity: .9;
+
+//** Tooltip arrow width
+@tooltip-arrow-width: 5px;
+//** Tooltip arrow color
+@tooltip-arrow-color: @tooltip-bg;
+
+
+//== Popovers
+//
+//##
+
+//** Popover body background color
+@popover-bg: #fff;
+//** Popover maximum width
+@popover-max-width: 276px;
+//** Popover border color
+@popover-border-color: rgba(0,0,0,.2);
+//** Popover fallback border color
+@popover-fallback-border-color: #ccc;
+
+//** Popover title background color
+@popover-title-bg: darken(@popover-bg, 3%);
+
+//** Popover arrow width
+@popover-arrow-width: 10px;
+//** Popover arrow color
+@popover-arrow-color: @popover-bg;
+
+//** Popover outer arrow width
+@popover-arrow-outer-width: (@popover-arrow-width + 1);
+//** Popover outer arrow color
+@popover-arrow-outer-color: fadein(@popover-border-color, 5%);
+//** Popover outer arrow fallback color
+@popover-arrow-outer-fallback-color: darken(@popover-fallback-border-color, 20%);
+
+
+//== Labels
+//
+//##
+
+//** Default label background color
+@label-default-bg: @gray-light;
+//** Primary label background color
+@label-primary-bg: @brand-primary;
+//** Success label background color
+@label-success-bg: @brand-success;
+//** Info label background color
+@label-info-bg: @brand-info;
+//** Warning label background color
+@label-warning-bg: @brand-warning;
+//** Danger label background color
+@label-danger-bg: @brand-danger;
+
+//** Default label text color
+@label-color: #fff;
+//** Default text color of a linked label
+@label-link-hover-color: #fff;
+
+
+//== Modals
+//
+//##
+
+//** Padding applied to the modal body
+@modal-inner-padding: 15px;
+
+//** Padding applied to the modal title
+@modal-title-padding: 15px;
+//** Modal title line-height
+@modal-title-line-height: @line-height-base;
+
+//** Background color of modal content area
+@modal-content-bg: #fff;
+//** Modal content border color
+@modal-content-border-color: rgba(0,0,0,.2);
+//** Modal content border color **for IE8**
+@modal-content-fallback-border-color: #999;
+
+//** Modal backdrop background color
+@modal-backdrop-bg: #000;
+//** Modal backdrop opacity
+@modal-backdrop-opacity: .5;
+//** Modal header border color
+@modal-header-border-color: #e5e5e5;
+//** Modal footer border color
+@modal-footer-border-color: @modal-header-border-color;
+
+@modal-lg: 900px;
+@modal-md: 600px;
+@modal-sm: 300px;
+
+
+//== Alerts
+//
+//## Define alert colors, border radius, and padding.
+
+@alert-padding: 15px;
+@alert-border-radius: @border-radius-base;
+@alert-link-font-weight: bold;
+
+@alert-success-bg: @state-success-bg;
+@alert-success-text: @state-success-text;
+@alert-success-border: @state-success-border;
+
+@alert-info-bg: @state-info-bg;
+@alert-info-text: @state-info-text;
+@alert-info-border: @state-info-border;
+
+@alert-warning-bg: @state-warning-bg;
+@alert-warning-text: @state-warning-text;
+@alert-warning-border: @state-warning-border;
+
+@alert-danger-bg: @state-danger-bg;
+@alert-danger-text: @state-danger-text;
+@alert-danger-border: @state-danger-border;
+
+
+//== Progress bars
+//
+//##
+
+//** Background color of the whole progress component
+@progress-bg: #f5f5f5;
+//** Progress bar text color
+@progress-bar-color: #fff;
+//** Variable for setting rounded corners on progress bar.
+@progress-border-radius: @border-radius-base;
+
+//** Default progress bar color
+@progress-bar-bg: @brand-primary;
+//** Success progress bar color
+@progress-bar-success-bg: @brand-success;
+//** Warning progress bar color
+@progress-bar-warning-bg: @brand-warning;
+//** Danger progress bar color
+@progress-bar-danger-bg: @brand-danger;
+//** Info progress bar color
+@progress-bar-info-bg: @brand-info;
+
+
+//== List group
+//
+//##
+
+//** Background color on `.list-group-item`
+@list-group-bg: #fff;
+//** `.list-group-item` border color
+@list-group-border: #ddd;
+//** List group border radius
+@list-group-border-radius: @border-radius-base;
+
+//** Background color of single list items on hover
+@list-group-hover-bg: #f5f5f5;
+//** Text color of active list items
+@list-group-active-color: @component-active-color;
+//** Background color of active list items
+@list-group-active-bg: @component-active-bg;
+//** Border color of active list elements
+@list-group-active-border: @list-group-active-bg;
+//** Text color for content within active list items
+@list-group-active-text-color: lighten(@list-group-active-bg, 40%);
+
+//** Text color of disabled list items
+@list-group-disabled-color: @gray-light;
+//** Background color of disabled list items
+@list-group-disabled-bg: @gray-lighter;
+//** Text color for content within disabled list items
+@list-group-disabled-text-color: @list-group-disabled-color;
+
+@list-group-link-color: #555;
+@list-group-link-hover-color: @list-group-link-color;
+@list-group-link-heading-color: #333;
+
+
+//== Panels
+//
+//##
+
+@panel-bg: #fff;
+@panel-body-padding: 15px;
+@panel-heading-padding: 10px 15px;
+@panel-footer-padding: @panel-heading-padding;
+@panel-border-radius: @border-radius-base;
+
+//** Border color for elements within panels
+@panel-inner-border: #ddd;
+@panel-footer-bg: #f5f5f5;
+
+@panel-default-text: @gray-dark;
+@panel-default-border: #ddd;
+@panel-default-heading-bg: #f5f5f5;
+
+@panel-primary-text: #fff;
+@panel-primary-border: @brand-primary;
+@panel-primary-heading-bg: @brand-primary;
+
+@panel-success-text: @state-success-text;
+@panel-success-border: @state-success-border;
+@panel-success-heading-bg: @state-success-bg;
+
+@panel-info-text: @state-info-text;
+@panel-info-border: @state-info-border;
+@panel-info-heading-bg: @state-info-bg;
+
+@panel-warning-text: @state-warning-text;
+@panel-warning-border: @state-warning-border;
+@panel-warning-heading-bg: @state-warning-bg;
+
+@panel-danger-text: @state-danger-text;
+@panel-danger-border: @state-danger-border;
+@panel-danger-heading-bg: @state-danger-bg;
+
+
+//== Thumbnails
+//
+//##
+
+//** Padding around the thumbnail image
+@thumbnail-padding: 4px;
+//** Thumbnail background color
+@thumbnail-bg: @body-bg;
+//** Thumbnail border color
+@thumbnail-border: #ddd;
+//** Thumbnail border radius
+@thumbnail-border-radius: @border-radius-base;
+
+//** Custom text color for thumbnail captions
+@thumbnail-caption-color: @text-color;
+//** Padding around the thumbnail caption
+@thumbnail-caption-padding: 9px;
+
+
+//== Wells
+//
+//##
+
+@well-bg: #f5f5f5;
+@well-border: darken(@well-bg, 7%);
+
+
+//== Badges
+//
+//##
+
+@badge-color: #fff;
+//** Linked badge text color on hover
+@badge-link-hover-color: #fff;
+@badge-bg: @gray-light;
+
+//** Badge text color in active nav link
+@badge-active-color: @link-color;
+//** Badge background color in active nav link
+@badge-active-bg: #fff;
+
+@badge-font-weight: bold;
+@badge-line-height: 1;
+@badge-border-radius: 10px;
+
+
+//== Breadcrumbs
+//
+//##
+
+@breadcrumb-padding-vertical: 8px;
+@breadcrumb-padding-horizontal: 15px;
+//** Breadcrumb background color
+@breadcrumb-bg: #f5f5f5;
+//** Breadcrumb text color
+@breadcrumb-color: #ccc;
+//** Text color of current page in the breadcrumb
+@breadcrumb-active-color: @gray-light;
+//** Textual separator for between breadcrumb elements
+@breadcrumb-separator: "/";
+
+
+//== Carousel
+//
+//##
+
+@carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6);
+
+@carousel-control-color: #fff;
+@carousel-control-width: 15%;
+@carousel-control-opacity: .5;
+@carousel-control-font-size: 20px;
+
+@carousel-indicator-active-bg: #fff;
+@carousel-indicator-border-color: #fff;
+
+@carousel-caption-color: #fff;
+
+
+//== Close
+//
+//##
+
+@close-font-weight: bold;
+@close-color: #000;
+@close-text-shadow: 0 1px 0 #fff;
+
+
+//== Code
+//
+//##
+
+@code-color: #c7254e;
+@code-bg: #f9f2f4;
+
+@kbd-color: #fff;
+@kbd-bg: #333;
+
+@pre-bg: #f5f5f5;
+@pre-color: @gray-dark;
+@pre-border-color: #ccc;
+@pre-scrollable-max-height: 340px;
+
+
+//== Type
+//
+//##
+
+//** Horizontal offset for forms and lists.
+@component-offset-horizontal: 180px;
+//** Text muted color
+@text-muted: @gray-light;
+//** Abbreviations and acronyms border color
+@abbr-border-color: @gray-light;
+//** Headings small color
+@headings-small-color: @gray-light;
+//** Blockquote small color
+@blockquote-small-color: @gray-light;
+//** Blockquote font size
+@blockquote-font-size: (@font-size-base * 1.25);
+//** Blockquote border color
+@blockquote-border-color: @gray-lighter;
+//** Page header border color
+@page-header-border-color: @gray-lighter;
+//** Width of horizontal description list titles
+@dl-horizontal-offset: @component-offset-horizontal;
+//** Point at which .dl-horizontal becomes horizontal
+@dl-horizontal-breakpoint: @grid-float-breakpoint;
+//** Horizontal line color.
+@hr-border: @gray-lighter;
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/wells.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/wells.less
new file mode 100644
index 0000000..15d072b
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/bootstrap-3.3.5/wells.less
@@ -0,0 +1,29 @@
+//
+// Wells
+// --------------------------------------------------
+
+
+// Base class
+.well {
+ min-height: 20px;
+ padding: 19px;
+ margin-bottom: 20px;
+ background-color: @well-bg;
+ border: 1px solid @well-border;
+ border-radius: @border-radius-base;
+ .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
+ blockquote {
+ border-color: #ddd;
+ border-color: rgba(0,0,0,.15);
+ }
+}
+
+// Sizes
+.well-lg {
+ padding: 24px;
+ border-radius: @border-radius-large;
+}
+.well-sm {
+ padding: 9px;
+ border-radius: @border-radius-small;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/gandy-grid/grid.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/gandy-grid/grid.less
new file mode 100644
index 0000000..7aca7db
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/gandy-grid/grid.less
@@ -0,0 +1,43 @@
+.gg { .gg(); }
+.gg-fixed { table-layout: fixed; }
+.gg-col { .gg-col(); }
+.gg-row { display: table-row; }
+.gg-min-width { width: 1%; }
+
+.gg-top { vertical-align: top; }
+.gg-middle { vertical-align: middle; }
+.gg-bottom { vertical-align: bottom; }
+
+.gg-padded {
+ margin-left: -1rem;
+ margin-right: -1rem;
+ .gg { border-spacing: 1rem 0; }
+}
+
+.gg-col-1,
+.gg-col-2,
+.gg-col-3,
+.gg-col-4,
+.gg-col-5,
+.gg-col-6,
+.gg-col-7,
+.gg-col-8,
+.gg-col-9,
+.gg-col-10,
+.gg-col-11,
+.gg-col-12 {
+ .gg-col();
+}
+
+.gg-col-1 { .gg-make-col(1,12); }
+.gg-col-2 { .gg-make-col(2,12); }
+.gg-col-3 { .gg-make-col(3,12); }
+.gg-col-4 { .gg-make-col(4,12); }
+.gg-col-5 { .gg-make-col(5,12); }
+.gg-col-6 { .gg-make-col(6,12); }
+.gg-col-7 { .gg-make-col(7,12); }
+.gg-col-8 { .gg-make-col(8,12); }
+.gg-col-9 { .gg-make-col(9,12); }
+.gg-col-10 { .gg-make-col(10,12); }
+.gg-col-11 { .gg-make-col(11,12); }
+.gg-col-12 { .gg-make-col(12,12); }
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/gandy-grid/mixins.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/gandy-grid/mixins.less
new file mode 100644
index 0000000..49c7749
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/gandy-grid/mixins.less
@@ -0,0 +1,18 @@
+.gg {
+ display: table;
+ width: 100%;
+ vertical-align: middle;
+}
+
+.gg-col {
+ display: table-cell;
+ vertical-align: inherit;
+}
+
+.gg-vertical-align(@align) {
+ vertical-align: @align;
+}
+
+.gg-make-col(@column-width, @total-columns) {
+ width: (100% / @total-columns * @column-width);
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site.less
new file mode 100644
index 0000000..c3cbb13
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site.less
@@ -0,0 +1,37 @@
+---
+---
+@import "bootstrap-{{ site.bootstrap.version }}/bootstrap";
+
+@import "gandy-grid/mixins";
+@import "gandy-grid/grid";
+
+@import "site/bootstrap/variables";
+@import "site/bootstrap/navbar";
+@import "site/bootstrap/buttons";
+@import "site/bootstrap/jumbotron";
+@import "site/bootstrap/wells";
+@import "site/bootstrap/labels";
+@import "site/bootstrap/type";
+@import "site/bootstrap/alerts";
+@import "site/bootstrap/tooltip";
+@import "site/bootstrap/panels";
+@import "site/bootstrap/modals";
+
+@import "site/layout";
+@import "site/print";
+@import "site/social-buttons";
+@import "site/jumbotron-carousel";
+@import "site/fontawesome-icon-list";
+@import "site/feature-list";
+@import "site/example-rating";
+@import "site/footer";
+@import "site/lazy";
+@import "site/textured-bg";
+
+@import "site/views";
+
+@import "site/responsive/screen-lg";
+@import "site/responsive/screen-md";
+@import "site/responsive/screen-sm";
+@import "site/responsive/screen-sm-up";
+@import "site/responsive/screen-xs";
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/alerts.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/alerts.less
new file mode 100644
index 0000000..db79469
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/alerts.less
@@ -0,0 +1,5 @@
+.alert-link { text-decoration: underline; }
+
+.alert-default { .alert-variant(@alert-default-bg, @alert-default-border, @alert-default-text); }
+.alert-well { .alert-variant(@alert-well-bg, @alert-well-border, @alert-well-text); }
+.alert-well-alt { .alert-variant(@well-bg, @table-border-color, mix(@text-muted,@text-color,50%)); }
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/buttons.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/buttons.less
new file mode 100644
index 0000000..b61fea7
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/buttons.less
@@ -0,0 +1,3 @@
+.btn { box-shadow: inset 0 1px 0 rgba(255,255,255,0.2); }
+.btn-default { text-shadow: 0 1px 0 #fff; }
+.btn-primary, .btn-success, .btn-warning, .btn-danger, .btn-info { text-shadow: 0 1px 0 rgba(0,0,0,0.2); } \ No newline at end of file
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/jumbotron.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/jumbotron.less
new file mode 100644
index 0000000..a04420b
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/jumbotron.less
@@ -0,0 +1,87 @@
+.jumbotron {
+ background-color: lighten(@jumbotron-bg, 2%);
+ border-top: 1px solid mix(@jumbotron-bg, @jumbotron-color, 90%);
+ border-bottom: 1px solid @jumbotron-border;
+ margin-bottom: 0;
+ &, h1 { color: @jumbotron-color; }
+ padding: 50px 0 40px;
+
+ h1 {
+ font-size: 80px;
+ letter-spacing: -2px;
+ line-height: 1;
+ margin: 0 0 15px;
+ }
+ p {
+ font-family: @font-family-alt;
+ margin-top: 15px;
+ margin-bottom: 15px;
+ font-size: 24px;
+ line-height: 1.3;
+ font-weight: lighter;
+ }
+
+ .list-group-item {
+ border-color: mix(@jumbotron-color, @fa-green, 15%);
+ background: transparent;
+ }
+
+ .text-muted {
+ color: mix(@jumbotron-color, @fa-green, 45%);
+ }
+}
+
+.jumbotron-ad, .jumbotron-carousel {
+ h1 {
+ text-shadow: 4px 3px 0px @jumbotron-bg, 9px 8px 0px rgba(0,0,0,0.15); // double text shadow
+ }
+ p {
+ color: mix(@jumbotron-color, @jumbotron-bg, 75%);
+ text-shadow: 0 1px 0 rgba(0,0,0,0.15);
+ }
+}
+
+.jumbotron-icon {
+ padding: 30px 0 25px;
+ background-color: @gray-lighter;
+ color: @gray-darker;
+ &, h1 { text-shadow: 0 1px 0 #fff; }
+ border-bottom-color: mix(@gray-light, @gray-lighter, 25%);
+ border-top-color: mix(#fff, @gray-lighter, 50%);
+ h1 {
+ color: @gray-darker;
+ margin-top: @buffer-lg;
+ small {
+ letter-spacing: normal;
+ font-family: @font-family-sans-serif;
+ font-size: @font-size-base;
+ margin-left: 20px;
+ }
+ }
+
+ .info-icons {
+ font-size: @font-size-base;
+ }
+ .info-details {
+ float: left;
+ p {
+ margin: 25px 0;
+ font-weight: bold;
+ }
+ .dl-horizontal {
+ dt { width: @component-offset-horizontal - 100; }
+ dd { margin-left: @component-offset-horizontal - 85; }
+ }
+ }
+ .fa-2 { font-size: 2em; }
+ .fa-3 { font-size: 4em; }
+ .fa-4 { font-size: 7em; }
+ .fa-5 { font-size: 12em; }
+ .fa-6 { font-size: 20em; }
+
+ .fa-1, .fa-2, .fa-3, .fa-4, .fa-5, .fa-6 { margin-right: 1/14em; }
+}
+
+h1.info-class {
+ font-size: 30px;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/labels.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/labels.less
new file mode 100644
index 0000000..d0d12dc
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/labels.less
@@ -0,0 +1,21 @@
+// reset
+.label {
+ padding: .3em .6em;
+}
+
+// new types of labels
+.label-brand {
+ .label-variant(@label-brand-bg);
+}
+
+.label-dark {
+ .label-variant(@label-dark-bg);
+}
+
+// labels inside of headings
+h1, h2, h3, h4, h5, h6 {
+
+ .label {
+ font-family: @font-family-sans-serif;
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/modals.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/modals.less
new file mode 100644
index 0000000..275e40c
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/modals.less
@@ -0,0 +1,6 @@
+
+// Scale up the modal
+@media (min-width: @screen-sm-min) {
+ // Modal sizes
+ .modal-md { width: ((@modal-md + @modal-sm) / 2); }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/navbar.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/navbar.less
new file mode 100644
index 0000000..3216727
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/navbar.less
@@ -0,0 +1,179 @@
+// SITE SPECIFIC NAVBAR STYLES
+
+.navbar { margin-bottom: 0; }
+.navbar-inverse { background-color: lighten(@fa-green, 2%); }
+.navbar-brand {
+ font-family: @font-family-serif;
+ font-weight: 300;
+ font-size: 20px;
+ i {
+ font-size: 23px;
+ padding-right: 3px;
+ line-height: .75;
+ }
+}
+.navbar-nav > li > a { padding: 11px 10px 9px; }
+
+// makes dropdowns closer for split dropdown
+.navbar-nav > li {
+ &.dropdown-split-right > a { padding-left: 7px; }
+ &.dropdown-split-left > a { padding-right: 0; }
+}
+
+.navbar-inverse .navbar-collapse, .navbar-inverse .navbar-form { border-color: @jumbotron-border; }
+
+.navbar-inverse .navbar-toggle {
+ color: @jumbotron-color;
+ text-shadow: 0 1px 0 rgba(0,0,0,0.15);
+ padding: 4px 10px;
+ margin-top: 5px;
+ margin-bottom: 5px;
+ &:hover {
+ background-color: mix(@jumbotron-color, @jumbotron-bg, 95%);
+ border-color: mix(@jumbotron-color, @jumbotron-bg, 95%);
+ color: @jumbotron-bg;
+ text-shadow: 0 -1px 0 @jumbotron-color;
+ }
+}
+
+.navbar-nav.navbar-right:last-child { margin-right: -10px; }
+
+
+//
+// FORT AWESOME ORG NAVBAR
+// --------------------
+//
+.navbar-org {
+ background-color: @navbar-inverse-link-active-bg;
+ border-color: mix(#000, @fa-green, 20%);
+ padding: 0;
+
+ .ficon-logo-flag, .ficon-log-fort { vertical-align: baseline; }
+
+ .navbar-text {
+ color: mix(#fff, @fa-green, 60%);
+ margin-top: 12px;
+ margin-right: 30px;
+ }
+
+ .navbar-nav {
+ margin-right: -10px;
+
+ > li + li { margin-left: 15px; }
+ > li > a {
+ color: mix(#fff, @navbar-inverse-bg, 75%);
+
+ &:hover,
+ &:focus {
+ color: mix(#fff, @fa-green, 100%);
+ background-color: transparent;
+ border-bottom: solid 2px mix(#fff, @fa-green, 90%);
+ }
+ }
+ > .active > a {
+ &,
+ &:hover,
+ &:focus {
+ color: mix(#fff, @navbar-inverse-bg, 75%);
+ background-color: transparent;
+ border-radius: 0;
+ border-bottom: solid 2px mix(#fff, @navbar-inverse-bg, 65%);
+ }
+ }
+ > .disabled > a {
+ &,
+ &:hover,
+ &:focus {
+ color: @navbar-inverse-link-disabled-color;
+ background-color: @navbar-inverse-link-disabled-bg;
+ }
+ }
+ }
+
+ // Darken the responsive nav toggle
+ .navbar-toggle {
+ border-color: @navbar-inverse-toggle-border-color;
+ &:hover,
+ &:focus {
+ background-color: @navbar-inverse-toggle-hover-bg;
+ }
+ .icon-bar {
+ background-color: @navbar-inverse-toggle-icon-bar-bg;
+ }
+ }
+
+ .navbar-collapse,
+ .navbar-form {
+ border-color: darken(@navbar-inverse-bg, 7%);
+ }
+
+ // Dropdowns
+ .navbar-nav {
+ > .open > a {
+ &,
+ &:hover,
+ &:focus {
+ background-color: @navbar-inverse-link-active-bg;
+ color: @navbar-inverse-link-active-color;
+ }
+ }
+
+ @media (max-width: @grid-float-breakpoint-max) {
+ // Dropdowns get custom display
+ .open .dropdown-menu {
+ > .dropdown-header {
+ border-color: @navbar-inverse-border;
+ }
+ .divider {
+ background-color: @navbar-inverse-border;
+ }
+ > li > a {
+ color: @navbar-inverse-link-color;
+ &:hover,
+ &:focus {
+ color: @navbar-inverse-link-hover-color;
+ background-color: @navbar-inverse-link-hover-bg;
+ }
+ }
+ > .active > a {
+ &,
+ &:hover,
+ &:focus {
+ color: @navbar-inverse-link-active-color;
+ background-color: @navbar-inverse-link-active-bg;
+ }
+ }
+ > .disabled > a {
+ &,
+ &:hover,
+ &:focus {
+ color: @navbar-inverse-link-disabled-color;
+ background-color: @navbar-inverse-link-disabled-bg;
+ }
+ }
+ }
+ }
+ }
+
+ .navbar-link {
+ color: @navbar-inverse-link-color;
+ &:hover {
+ color: @navbar-inverse-link-hover-color;
+ }
+ }
+
+ .btn-link {
+ color: @navbar-inverse-link-color;
+ &:hover,
+ &:focus {
+ color: @navbar-inverse-link-hover-color;
+ }
+ &[disabled],
+ fieldset[disabled] & {
+ &:hover,
+ &:focus {
+ color: @navbar-inverse-link-disabled-color;
+ }
+ }
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/panels.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/panels.less
new file mode 100644
index 0000000..f2dc210
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/panels.less
@@ -0,0 +1,15 @@
+.panel {
+ .box-shadow(none);
+}
+
+.panel-heading {
+ margin: -1px;
+ border-bottom-width: 0;
+ padding: 11px 15px;
+}
+
+.panel-default .panel-heading {
+ margin: 0;
+ border-bottom-width: 1px;
+ padding: 10px 15px;
+} \ No newline at end of file
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/tooltip.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/tooltip.less
new file mode 100644
index 0000000..5a70871
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/tooltip.less
@@ -0,0 +1,8 @@
+.tooltip {
+ font-size: @font-size-base;
+}
+
+// Wrapper for the tooltip content
+.tooltip-inner {
+ padding: 5px 10px;
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/type.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/type.less
new file mode 100644
index 0000000..b7d5f9b
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/type.less
@@ -0,0 +1,26 @@
+.small-caps {
+ font-family: @font-family-alt;
+}
+
+.hr {
+ position: relative;
+ text-align: center;
+ font-size: @font-size-base;
+ z-index: 1;
+ min-height: 20px;
+
+ &:after {
+ content: " ";
+ position: absolute;
+ top: 50%;
+ left: 0;
+ right: 0;
+ border-top: 2px solid @hr-border;
+ z-index: -1;
+ }
+ .hr-text {
+ display: inline-block;
+ background-color: #fff;
+ padding: 0 .5em;
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/variables.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/variables.less
new file mode 100644
index 0000000..98b7f1b
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/variables.less
@@ -0,0 +1,171 @@
+---
+---
+// SITE VARIABLES
+// --------------
+
+// Blues
+@blue-darker: #003366;
+@blue-dark: #005f9b; // Pantone 3015 C
+@blue: #009add; // Pantone 2925 C
+@blue-light: #b8dcf2;
+@blue-lighter: #f0f9ff;
+
+// Greens
+@green-darker: #41683b;
+@green-dark: #678943;
+@green: #95bf52;
+@green-light: #ddefbd;
+@green-lighter: #f3f9e8;
+
+// Reds
+@red-darker: #702222;
+@red-dark: #ba4a4a;
+@red: #dd7373;
+@red-light: #f2adb1;
+@red-lighter: #fff0f0;
+
+// Yellows
+@yellow-darker: #6f4215;
+@yellow-dark: #db8400;
+@yellow: #f9e27d;
+@yellow-light: #fff5bd;
+@yellow-lighter: #fffcee;
+
+// Oranges
+@orange-darker: #8c3900;
+@orange-dark: #cc5d11;
+@orange: #f4914e;
+@orange-light: #ffd0a6;
+@orange-lighter: #fff4e6;
+
+// Purples
+@purple-darker: #4a226d;
+@purple-dark: #7457ad;
+@purple: #9780d6;
+@purple-light: #c3b8f4;
+@purple-lighter: #fbf5ff;
+
+@fa-green: #1616e5;
+@fa-green-dark: darken(@fa-green, 10%);
+
+@jumbotron-border: mix(@fa-green, @fa-green-dark, 75%);
+@font-family-alt: proxima-nova-sc, "Helvetica Neue", Helvetica, Arial, sans-serif;
+
+
+// BOOTSTRAP OVERRIDES
+// -------------------
+
+// Brand colors
+@brand-success: @fa-green;
+
+
+// Links
+@link-color: lighten(@fa-green, 5%);
+@link-hover-color: darken(@fa-green, 5%);
+
+
+// Typography
+@font-family-sans-serif: proxima-nova, "Helvetica Neue", Helvetica, Arial, sans-serif;
+@font-family-serif: museo-slab, Georgia, "Times New Roman", Times, serif;
+@headings-font-family: @font-family-serif;
+
+
+// Components
+@component-active-bg: @fa-green;
+
+
+// Labels
+@label-brand-bg: @fa-green;
+@label-dark-bg: @gray-dark;
+
+// Navbar
+@navbar-height: 40px;
+@navbar-inverse-brand-color: #fff;
+
+// Reset inverted navbar basics
+@navbar-inverse-color: mix(@fa-green, #fff, 50%);
+@navbar-inverse-bg: @fa-green;
+@navbar-inverse-border: @jumbotron-border;
+
+// Inverted navbar links
+@navbar-inverse-link-color: mix(@fa-green, #fff, 35%);
+@navbar-inverse-link-hover-color: #fff;
+@navbar-inverse-link-active-bg: @navbar-inverse-border;
+
+// Inverted navbar toggle
+@navbar-inverse-toggle-hover-bg: @jumbotron-color;
+@navbar-inverse-toggle-border-color: mix(@jumbotron-color, @fa-green, 75%);
+
+
+// Jumbotron
+@jumbotron-color: #fff;
+@jumbotron-bg: @fa-green;
+
+
+// Form states and alerts
+@state-success-text: @fa-green;
+@state-success-bg: mix(@fa-green, #fff, 6%);
+@state-success-border: darken(spin(@state-success-bg, -10), 5%);
+
+@state-info-text: mix(@blue-dark, @blue, 50%);
+@state-info-bg: @blue-lighter;
+@state-info-border: darken(spin(@state-info-bg, -10), 7%);
+
+ @state-danger-text: @brand-danger;
+@state-danger-bg: mix(@state-danger-text,#fff,10%);
+@state-danger-border: darken(spin(@state-danger-bg, -10), 5%);
+
+
+// Carousel
+@carousel-text-shadow: 0 1px 0 rgba(255,255,255,0.25);
+
+@carousel-control-color: @fa-green-dark;
+@carousel-control-font-size: 30px;
+
+
+// Code
+@pre-border-color: #eee;
+
+
+// Sections
+@section-emphasized-bg: #fff;
+
+//== Type
+//** Text muted color
+@text-muted: mix(@gray-light,@gray-lighter,50%);
+
+
+@alert-well-bg: @panel-default-heading-bg;
+@alert-well-text: @text-color;
+@alert-well-border: @panel-default-border;
+
+@alert-default-bg: transparent;
+@alert-default-text: @text-color;
+@alert-default-border: mix(#fff,@panel-default-border,40%);
+
+
+
+
+//@panel-default-text: @gray-dark;
+//@panel-default-border: @panel-default-heading-bg;
+//@panel-default-heading-bg: #f5f5f5;
+
+@panel-primary-text: #fff;
+@panel-primary-border: mix(#fff,@brand-primary,50%);
+@panel-primary-heading-bg: @brand-primary;
+
+@panel-success-text: #fff;
+@panel-success-border: mix(#fff,@brand-success,50%);
+@panel-success-heading-bg: @brand-success;
+
+@panel-info-text: #fff;
+@panel-info-border: mix(#fff,@brand-info,50%);
+@panel-info-heading-bg: @brand-info;
+
+@panel-warning-text: #fff;
+@panel-warning-border: mix(#fff,@brand-warning,50%);
+@panel-warning-heading-bg: @brand-warning;
+
+@panel-danger-text: #fff;
+@panel-danger-border: mix(#fff,@brand-danger,50%);
+@panel-danger-heading-bg: @brand-danger;
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/wells.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/wells.less
new file mode 100644
index 0000000..cd2b24e
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/bootstrap/wells.less
@@ -0,0 +1,10 @@
+.well-transparent { background-color: transparent; }
+
+.well-lg {
+ padding: @buffer-xl;
+ font-size: @font-size-large + 3;
+ h1 { font-size: 3em; }
+ h2 { font-size: 2em; }
+ h1, h2 { margin-top: 0; }
+ p { margin-bottom: 30px; }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/example-rating.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/example-rating.less
new file mode 100644
index 0000000..188b7da
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/example-rating.less
@@ -0,0 +1,25 @@
+.rating {
+ unicode-bidi: bidi-override;
+ direction: rtl;
+
+ font-size: 30px;
+ span.star {
+ font-family: ForkAwesome;
+ font-weight: normal;
+ font-style: normal;
+ display: inline-block;
+ &:hover {
+ cursor: pointer;
+ }
+ }
+ span.star:before {
+ content: "\f006"; // empty star
+ padding-right: 5px;
+ color: @gray-light;
+ }
+
+ span.star:hover:before, span.star:hover ~ span.star:before {
+ content: "\f005"; // solid star
+ color: #e3cf7a;
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/feature-list.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/feature-list.less
new file mode 100644
index 0000000..e8d4fef
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/feature-list.less
@@ -0,0 +1,19 @@
+.feature-list {
+ .col-md-4 { margin-bottom: 22px; }
+ h4 {
+ .fa:before {
+ vertical-align: -10%;
+ font-size: 28px;
+ display: inline-block;
+ width: 30/28em;
+ text-align: center;
+ margin-right: 5px;
+ // color: mix(@grayLight, @grayLighter, 70%);
+
+ // Gradient on the icons
+ // background: -webkit-linear-gradient(mix(@grayLight, @grayLighter, 50%), mix(@gray, @grayLight, 50%));
+ // -webkit-background-clip: text;
+ // -webkit-text-fill-color: transparent;
+ }
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/fontawesome-icon-list.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/fontawesome-icon-list.less
new file mode 100644
index 0000000..49dc1b0
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/fontawesome-icon-list.less
@@ -0,0 +1,33 @@
+.fontawesome-icon-list {
+ margin-top: 22px;
+ .fa-hover {
+ a {
+ .text-ellipsis;
+ display: block;
+ color: @gray-darker;
+ line-height: 32px;
+ height: 32px;
+ padding-left: 10px;
+ border-radius: @border-radius-base;
+
+ .fa {
+ width: 32px;
+ font-size: 14px;
+ display: inline-block;
+ text-align: right;
+ margin-right: 10px;
+ }
+
+ &:hover {
+ background-color: @fa-green;
+ color: @jumbotron-color;
+ text-decoration: none;
+ .fa {
+ font-size: 28px;
+ vertical-align: -6px;
+ }
+ .text-muted { color: mix(@jumbotron-color, @fa-green, 70%); }
+ }
+ }
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/footer.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/footer.less
new file mode 100644
index 0000000..bf895b3
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/footer.less
@@ -0,0 +1,55 @@
+#footer {
+ background-color: lighten(@fa-green, 2%);
+ border-top: 1px solid @jumbotron-border;
+ color: mix(@jumbotron-color, @fa-green, 60%);
+ text-shadow: 0 1px 0 rgba(0,0,0,0.15);
+ margin-top: 60px;
+ a {
+ color: mix(@jumbotron-color, @fa-green, 80%);
+ border-bottom: dotted 1px mix(@jumbotron-color, @fa-green, 60%);
+ &:hover {
+ color: @jumbotron-color;
+ text-decoration: none;
+ border-bottom: solid 1px @jumbotron-color;
+ }
+ }
+ .container {
+ padding-top: 50px;
+ padding-bottom: 55px;
+ }
+ .project { margin-top: 10px; }
+
+ #inventory {
+ a {
+ width: 220px;
+ overflow: hidden;
+ display: inline-block;
+ border-bottom: inherit;
+ margin: 0 15px 20px;
+
+ }
+ #CVADP2Y { display: inline; }
+ }
+}
+
+
+// Sticky Footer Styles
+// --------------------
+
+//html, body { height: 100%; }
+//
+//#wrap {
+// min-height: 100%;
+// height: auto !important;
+// height: 100%;
+//}
+//
+//.sticky-footer();
+//
+//.sticky-footer(@footer-height: 356px, @footer-margin: 60px) {
+// #wrap {
+// margin: 0 auto -(@footer-height);
+// padding: 0 0 (@footer-height + @footer-margin);
+// }
+// #footer { height: @footer-height; }
+//}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/jumbotron-carousel.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/jumbotron-carousel.less
new file mode 100644
index 0000000..9bd2808
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/jumbotron-carousel.less
@@ -0,0 +1,75 @@
+@size: 220px;
+#icon-carousel {
+ margin-top: @buffer-sm;
+ font-size: @size;
+ text-align: center;
+ line-height: @size + 30;
+ text-shadow: 0 2px 0 rgba(0,0,0,0.15);
+}
+
+.carousel-control {
+ top: @size + 10px;
+ .square(30px);
+ border-width: 0;
+ font-size: 30px;
+ line-height: 25px;
+ left: 300/2 - 36px;
+ &.right {
+ left: auto;
+ right: 300/2 - 36px;
+ }
+ &.right, &.left {
+ background-image: none;
+ filter: none;
+ }
+}
+
+.jumbotron-carousel {
+ padding-top: 40px;
+ .btn {
+ margin-top: @buffer-lg;
+ font-family: @font-family-serif;
+ font-size: 24px;
+ padding: 17px 30px;
+ color: @jumbotron-color;
+ border-color: mix(@jumbotron-color, @jumbotron-bg, 75%);
+ background-color: transparent;
+ text-shadow: 0 1px 0 rgba(0,0,0,0.15);
+ &:hover {
+ background-color: mix(@jumbotron-color, @jumbotron-bg, 95%);
+ border-color: mix(@jumbotron-color, @jumbotron-bg, 95%);
+ color: @jumbotron-bg;
+ text-shadow: 0 -1px 0 @jumbotron-color;
+ }
+ }
+ .shameless-self-promotion {
+ margin-top: @buffer-lg;
+ font-size: @font-size-base;
+ line-height: @line-height-base;
+ color: mix(@jumbotron-color, @jumbotron-bg, 60%);
+ text-shadow: 0 1px 0 rgba(0,0,0,0.15);
+ a {
+ color: mix(@jumbotron-color, @jumbotron-bg, 80%);
+ border-bottom: dotted 1px mix(@jumbotron-color, @jumbotron-bg, 50%);
+ &:hover {
+ color: @jumbotron-color;
+ text-decoration: none;
+ border-bottom: solid 1px @jumbotron-color;
+ }
+ }
+ }
+ a {
+ color: mix(@jumbotron-color, @fa-green, 70%);
+
+ // STATE: hover, focus, active
+ &:hover, &:focus, &:active {
+ border-color: @fa-green-dark;
+ background: @fa-green-dark;
+ color: @jumbotron-color;
+ }
+
+ &.carousel-control:hover {
+ background: none;
+ }
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/layout.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/layout.less
new file mode 100644
index 0000000..69cc0b4
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/layout.less
@@ -0,0 +1 @@
+section { margin-top: 40px; }
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/lazy.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/lazy.less
new file mode 100644
index 0000000..5f6461d
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/lazy.less
@@ -0,0 +1,113 @@
+@buffer-none: 0px;
+@buffer-sm: 5px;
+@buffer-md: 10px;
+@buffer-lg: 22px;
+@buffer-xl: 40px;
+
+.padding-none { padding: @buffer-none !important; }
+.padding { padding: @buffer-md !important; }
+.padding-sm { padding: @buffer-sm !important; }
+.padding-lg { padding: @buffer-lg !important; }
+.padding-xl { padding: @buffer-xl !important; }
+
+.padding-top-none { padding-top: @buffer-none !important; }
+.padding-top { padding-top: @buffer-md !important; }
+.padding-top-sm { padding-top: @buffer-sm !important; }
+.padding-top-lg { padding-top: @buffer-lg !important; }
+.padding-top-xl { padding-top: @buffer-xl !important; }
+
+.padding-right-none { padding-right: @buffer-none !important; }
+.padding-right { padding-right: @buffer-md !important; }
+.padding-right-sm { padding-right: @buffer-sm !important; }
+.padding-right-lg { padding-right: @buffer-lg !important; }
+.padding-right-xl { padding-right: @buffer-xl !important; }
+
+.padding-bottom-none { padding-bottom: @buffer-none !important; }
+.padding-bottom { padding-bottom: @buffer-md !important; }
+.padding-bottom-sm { padding-bottom: @buffer-sm !important; }
+.padding-bottom-lg { padding-bottom: @buffer-lg !important; }
+.padding-bottom-xl { padding-bottom: @buffer-xl !important; }
+
+.padding-left-none { padding-left: @buffer-none !important; }
+.padding-left { padding-left: @buffer-md !important; }
+.padding-left-sm { padding-left: @buffer-sm !important; }
+.padding-left-lg { padding-left: @buffer-lg !important; }
+.padding-left-xl { padding-left: @buffer-xl !important; }
+
+.margin-none { margin: @buffer-none !important; }
+.margin { margin: @buffer-md !important; }
+.margin-sm { margin: @buffer-sm !important; }
+.margin-lg { margin: @buffer-lg !important; }
+.margin-xl { margin: @buffer-xl !important; }
+
+.margin-top-none { margin-top: @buffer-none !important; }
+.margin-top { margin-top: @buffer-md !important; }
+.margin-top-sm { margin-top: @buffer-sm !important; }
+.margin-top-lg { margin-top: @buffer-lg !important; }
+.margin-top-xl { margin-top: @buffer-xl !important; }
+
+.margin-right-none { margin-right: @buffer-none !important; }
+.margin-right { margin-right: @buffer-md !important; }
+.margin-right-sm { margin-right: @buffer-sm !important; }
+.margin-right-lg { margin-right: @buffer-lg !important; }
+.margin-right-xl { margin-right: @buffer-xl !important; }
+
+.margin-bottom-none { margin-bottom: @buffer-none !important; }
+.margin-bottom { margin-bottom: @buffer-md !important; }
+.margin-bottom-sm { margin-bottom: @buffer-sm !important; }
+.margin-bottom-lg { margin-bottom: @buffer-lg !important; }
+.margin-bottom-xl { margin-bottom: @buffer-xl !important; }
+
+.margin-left-none { margin-left: @buffer-none !important; }
+.margin-left { margin-left: @buffer-md !important; }
+.margin-left-sm { margin-left: @buffer-sm !important; }
+.margin-left-lg { margin-left: @buffer-lg !important; }
+.margin-left-xl { margin-left: @buffer-xl !important; }
+
+.border-left-none { border-left: none !important; }
+.border-right-none { border-right: none !important; }
+.border-bottom-none { border-bottom: none !important; }
+.border-top-none { border-top: none !important; }
+
+.text-sm { font-size: @font-size-small !important; }
+.text-base { font-size: @font-size-base !important; }
+.text-md { font-size: @font-size-base + 2 !important; }
+.text-lg { font-size: @font-size-large !important; }
+
+
+.display-block { display: block; } // use to swap an anchor tag to span a whole row to make click target larger
+.no-underline { text-decoration: none !important; }
+.clickable { cursor: pointer; }
+.strong { font-weight: bold; }
+.em { font-style: italic; }
+.small { font-size: 85%; } // Ex: 14px base font * 85% = about 12px
+.no-link { color: @gray-dark; }
+
+.text-sans-serif { font-family: @font-family-sans-serif; }
+.text-ellipsis { .text-overflow(); } // truncates text to a single line with an ellipsis at the end
+.text-default {
+ font-family: @font-family-base;
+ font-size: @font-size-base;
+ line-height: @line-height-base;
+ font-weight: normal;
+}
+.text-color-default {
+ color: @text-color;
+}
+.text-hilite {
+ color: @link-color;
+ &:hover {
+ color: @link-hover-color;
+ text-decoration: underline;
+ }
+}
+.text-strike { text-decoration: line-through; }
+.text-upper { text-transform: uppercase; }
+.text-lower { text-transform: lowercase; }
+
+#no-search-results {
+ display: none;
+}
+
+.valign-baseline { vertical-align: baseline !important; }
+.valign-middle { vertical-align: middle !important; }
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/print.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/print.less
new file mode 100644
index 0000000..5ebe6a8
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/print.less
@@ -0,0 +1,5 @@
+@media print {
+ .col-print-4 {
+ .make-xs-column(4);
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/responsive/screen-lg.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/responsive/screen-lg.less
new file mode 100644
index 0000000..ae404bb
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/responsive/screen-lg.less
@@ -0,0 +1,58 @@
+@media (min-width: @screen-lg) {
+ #icon-carousel {
+ @size: 240px;
+ font-size: @size;
+ line-height: @size + 35;
+ margin-top: @buffer-lg;
+ }
+
+ .carousel-control {
+ top: @size + 35px;
+ .square(40px);
+ font-size: 40px;
+ line-height: 40px;
+ left: 370/2 - 52px;
+ &.right {
+ right: 370/2 - 52px;
+ }
+ }
+
+ .jumbotron-ad {
+ padding: 50px 0;
+ h1 {
+ margin-top: 25px;
+ font-size: 90px;
+ }
+ p {
+ font-size: 28px;
+ margin: 35px 0 20px;
+ }
+ }
+
+ .jumbotron-carousel {
+ padding: 50px 0;
+ h1 { font-size: 100px; }
+ p {
+ font-size: 32px;
+ margin: 20px 0;
+ }
+ .btn-large {
+ font-size: 30px;
+ padding: 21px 35px;
+ }
+ }
+
+ .stripe-ad .lead { padding-top: 0; }
+
+ .lead {
+ font-size: 26px;
+ line-height: 36px;
+ }
+
+ .fort-awesome {
+ .tagline { }
+ .action { width: 18%; }
+ }
+
+ .hide-lg { display: none; }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/responsive/screen-md.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/responsive/screen-md.less
new file mode 100644
index 0000000..bc46917
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/responsive/screen-md.less
@@ -0,0 +1,3 @@
+@media (min-width: @screen-md) and (max-width: @screen-md-max) {
+ .hide-md { display: none; }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/responsive/screen-sm-up.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/responsive/screen-sm-up.less
new file mode 100644
index 0000000..5bc078f
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/responsive/screen-sm-up.less
@@ -0,0 +1,17 @@
+@media (min-width: @screen-sm) {
+ .signup-input {
+ padding-right: 0;
+ input {
+ border-top-right-radius: 0;
+ border-bottom-right-radius: 0;
+ border-right-width: 0;
+ }
+ }
+ .signup-button {
+ padding-left: 0;
+ .btn {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/responsive/screen-sm.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/responsive/screen-sm.less
new file mode 100644
index 0000000..676b2d6
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/responsive/screen-sm.less
@@ -0,0 +1,48 @@
+@media (min-width: @screen-sm) and (max-width: @screen-sm-max) {
+ #icon-carousel {
+ @size: 200px;
+ font-size: @size;
+ line-height: @size + 30;
+ }
+ .carousel-control {
+ top: @size - 10px;
+ .square(30px);
+ left: 228/2 - 36px;
+ &.right {
+ right: 228/2 - 36px;
+ }
+ }
+
+ .jumbotron-carousel {
+ padding: 50px 0;
+ h1 { font-size: 65px; }
+ p { font-size: 23px; }
+ .shameless-self-promotion { font-size: 12px; }
+ }
+
+ .jumbotron-ad {
+ p { font-size: 24px; }
+ }
+
+ .jumbotron-icon {
+ h1 small {
+ display: block;
+ margin-top: 15px;
+ margin-left: 0;
+ line-height: 20px;
+ }
+ }
+
+ .stripe-ad .lead {
+ margin: 0;
+ padding-top: 0;
+ font-size: 19px;
+ }
+
+ .fort-awesome {
+ .action { width: 33%; }
+ }
+
+ .hide-sm { display: none; }
+ .v-get-started .get-started-cdn { padding: 5px 22px 22px 22px; }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/responsive/screen-xs.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/responsive/screen-xs.less
new file mode 100644
index 0000000..da5030d
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/responsive/screen-xs.less
@@ -0,0 +1,94 @@
+@media (max-width: @screen-xs-max) {
+ #icon-carousel {
+ @size: 180px;
+ font-size: @size;
+ line-height: @size + 30;
+ width: 280px;
+ margin: 30px auto 0;
+ }
+ .carousel-control {
+ top: 40%;
+ .square(44px);
+ font-size: 44px;
+ line-height: 44px;
+ left: -7px;
+ &.right { right: -7px; }
+ }
+
+ .jumbotron-carousel {
+ h1 { font-size: 58px; }
+ p { font-size: 24px; }
+ .btn-large {
+ font-size: 20px;
+ padding: 14px 26px;
+ }
+ .shameless-self-promotion { font-size: 12px; }
+ }
+
+ .jumbotron-ad {
+ h1 { font-size: 39px; }
+ p {
+ font-size: 20px;
+ margin-bottom: 20px;
+ }
+ }
+
+ .jumbotron-icon {
+ .fa-1, .fa-2, .fa-3, .fa-4, .fa-5, .fa-6 { margin-right: 0; }
+ .fa-6 { font-size: 16em; }
+ h1 small {
+ display: block;
+ margin-top: 15px;
+ margin-left: 0;
+ line-height: 20px;
+ }
+ }
+
+ .stripe-ad .lead {
+ margin-top: @buffer-lg;
+ padding: 0;
+ }
+
+ #fusionads {
+ float: none;
+ display: block;
+ margin-left: 0;
+ .clearfix();
+ }
+
+ .vertical-ad #fusionads {
+ width: 300px;
+ .fusion-img {
+ float: left;
+ padding-right: 10px;
+ }
+ }
+
+
+ .fonticons {
+ padding: 15px 0;
+ .tagline, .action { display: block; }
+ .tagline { margin-bottom: 10px; }
+ }
+
+ .hide-xs { display: none; }
+
+ .block-xs { display: block; }
+
+ .modal-footer .block-xs + .block-xs {
+ margin-left: 0;
+ margin-top: 10px;
+ }
+
+
+ .navbar-org { display: none; }
+ #banner {
+ text-align: center;
+ .message-container, .tagline, .action { display: block; }
+ .tagline { padding-right: 0; }
+ .btn-primary { margin-top: 10px; }
+ }
+
+ .signup-button .btn { white-space: normal; }
+ .v-get-started .get-started-cdn { padding: 5px 22px 22px 22px; }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/social-buttons.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/social-buttons.less
new file mode 100644
index 0000000..aaf2426
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/social-buttons.less
@@ -0,0 +1,48 @@
+#social-buttons {
+ ul.list-inline { margin-bottom: 0; }
+
+ padding: 22px 0 17px;
+ text-align: center;
+ background-color: #f5f5f5;
+ border-top: 1px solid #fff;
+ border-bottom: 1px solid #eee;
+}
+
+#subscribe {
+ padding: 22px 0 17px;
+ text-align: center;
+}
+
+label.error {
+ color: @state-danger-text;
+ margin-top: 5px;
+}
+
+/* Get those Github and Twitter Buttons to behave */
+.list-inline li iframe {
+ position: relative !important;
+ display: inline;
+ top: 6px;
+}
+
+/* Federation Share buttons */
+
+.share {
+ .btn-xs {
+ line-height: 1.3;
+ padding-left: 6px;
+ padding-right: 6px;
+ }
+ label,
+ label:hover {
+ color: #fff;
+ }
+ .twitter {
+ color: #fff;
+ background-color: #1b95e0;
+ }
+ .twitter:hover {
+ color: #fff;
+ background-color: #0c7abf;
+ }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/stripe-ad.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/stripe-ad.less
new file mode 100644
index 0000000..cef0aa0
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/stripe-ad.less
@@ -0,0 +1,4 @@
+.stripe-ad {
+ margin-bottom: 22px;
+ .lead { padding-top: 5px; }
+}
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/textured-bg.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/textured-bg.less
new file mode 100644
index 0000000..046b2db
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/textured-bg.less
@@ -0,0 +1,20 @@
+.jumbotron, .navbar-inverse, .navbar-inverse .navbar-nav > li.active > a, .navbar-org, #footer, .content-underlay {
+ position: relative;
+ &:after {
+ content: '';
+ display: block;
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ opacity: .15;
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAMAAABHPGVmAAAABGdBTUEAALGPC/xhBQAAAaRQTFRFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMalYaAAAAIx0Uk5TlhaTG6WwoBqyCx6sopscnacgq5cfmR2UkZwhlY4li5IjIiYpjYmQJ4iPJIyHhooog4WBfoSCKyx9gCotf3wuMjEwezN6L3l4NnI1dXd0djc4NHNwOXFvO2o8bjptPWw+aD9mQGtEZWlnQUJDRmNiZEVfYWBLXVxIV0lHTk9KXlJWWFlVVFtNTFpTUVCkyaWwAAAfsklEQVQYGQXBg6JsWYIg0Bh7WlVdVjrz5bN17Ygbto5t2977p3utXhseb5cOkcQlMSvlwcK1KN+kXuZFtaw8UKWGHiFOjR+F43DFHF/nyis8PMwvzc7QdS2qjnykhpWRQjtpLDpQTFUQhrP972J3uIwc3/WaHJF73IT3EHONyQqnTVQIxOGvt7JaF3K5XOM7dyDI1VQv1c0xv3T0lzAQ86iJX3cdkg41x1QCweVIKUGI1bm1XhO1cR+L/oaFys6joNLUSBbURm9bwK9yySmu+6MqCJ24VqSu5NofdmOlOGCp1ci5Ob8EObh89le18MLgAWbH/9ZUCR47kyJmcIUArlxGN2Ugzj/bN6fR9qJeC61niRtk516BTEF7QdOmB60uSSfTQ0TwrYLTiq/CFPBE+2AKf2eiGYkrWyQy44z/1CRs35oHxM4U8tBPNVTAGu4X0dq/5tcZs2TlDO7VVRolsSLyzO9t/aNh2FVvlJJQfLpVr0/qY6o37q0Yo3PxdGKWsibL6V8HxMcYGUev9C5qlrp/cDR1Llr8F8r4oToXReV3Rt8KA32bZwZ/4+38bTq5nqTPOmBjNJ8QK8KWQK8uxdyoNFxrle3Snen1ioqasN3qh+JNVdbGiid0Sbl2/TKfJQ+/cQuOMKw4mtKRN9TBhR1RtF67xTGJGQ8DnuKCq9mhpJgLJWqg9VfSb49kr3W0+DWjGaSSw0vQaapjdCyJoHEQykmbfVGDR90u41jAHpbuNfywT+mt6XpgJFeH4i4U0xRxm6Zu/rHSQv/+9+sG4rSnLJ2zrm75c33ohrzas+eJeBA8D2DBSWPsVGOIq5AsfEzUuNWD52wCbXh2XQyZENdvxrWzzCQk04N7slLfLyj+QZfCsixMS05gcNQwxfJZlkBiPZgC7zhVCjMOtV4weO994s/mVikag3ZnelFcdKVUb2kWMoJ1075OTiv4Wq/wlvvAnMFCN6Ic7MIujcr8b/NDQpaGbX78QR/GUFaTeQIK3OGkm9yxClW8FZvGsXs1Tpcz5WtNSdlDZbV6nglu6YZIfXoucMX99Me+/mYqMBEm4X2YhzRrhMbdL2i7YhttHXwOqWSb55ITmIXscoZzj76Kfa8rrZ0Ay/vhUKErGPfKlBRSyJfcWIidwlfoKnAevyxpUGpikcWZqnz6nDvZIxjGULjGmV+E5QscXHwX4I6MYHYsbEJgxPY6I3Y865Wwfl00a6TQHNPNF2d3k1Ztql4EciNK8/SVIf1+7sxkj5RM23h3nipnfF4U3X62c7VIVQk/twKoDTVwWB+nvlfLCa1bj3J+V3gn6SRqj4EqWOtwjYebhAph8NjHX+Db9mq75Hofkv9fsnrmLc+Cxthn1njneZNPdgfO4hnRGppVsqT/tAn2le397e3fN9E9ovzlL9e5DhdsFPACnKb5gYEZ7zDbrH5EufdFxxs/yxqX+DlXmmMq1HrLKs/z5H/pKj3NLfzhuHCCqg8liB0+vNGn7Sf+tChHoxPOP4cu/362qAtC0kNra8dVyzLP4Mgpf/Y3yAOeb5IyqSMRCXy3+mN2v9Flta4Yn1vBXimEZV/V1I3fRlU8Ed0q0/LQaNn2DOJlB45M5X0aajILyO0k9FJZA2o5ie+V1VwDGdgFebF1vrlT4ry4zQcedHIKBXkeVhsvkxsT8jW97S073GTf22Wm2yBN2TRDVaEldhl15MfHpDOllhIavGPJ+OB5Yje71SlEkGVz/6VEBT+fV9lFh9Od2xxK+a5ry0lU3yjQtcRPiCDSF0smi6c9ZDqbZso6afHA8L3Apl0LJJ7whAq3tY6+ZwkxYArATbCsYfe8U+9KNLtlW98Mbacuu7NR6NhOFzOcQKsA55FD15JuR7xsCCmuI7IO7qlDjxlLRmy02bpLxfoBncftvmGHUu6SYDOK+srqYwklx5dIjqUroTweFRrmQZZGiE5Z2eK2iXy/rD8d/+l5kcylD0Yht2mrdNmqDdgKURofrZWefrnJsVQsWnL48VGOY+AhZTf3qJpc6qhxYWyCNHrLCMnqPBgMulqj5CjaGH4/VajHzFIOK18eaVcu0XC/Cp148YVasVmi4zO9rTMjKhSAZmVvZ3l7bBVVvuQI0rP6XTudT24ZBVosD5PrR8nFMVEKPIJ/3K0qvq3TlG7ZFqkfWccRrGr7t5nGZleYH69t+yLaBKwEj7LtTHZRJkiDN9Kdt0J6BlOZeZh71maSHj4FikgDqcRmsUOsy3ZJhqFehZjNYgrd8utMC3KjYCOTICBQ7MQUILu3aDdxeVFOCNpVUcIX76jEKN9nSWYQ2PNTN3vdC8Qydo/dEWRi6OqW1ZxTNcYrgpeb09MHTZ3njxofDbBQtb6SDnL99QtwslhXy8jqLD8STMoTsbYdTxWwqSXJVmTAp0rZComyl7i6QY6a0iOaVIeBh0Zga4TzYmHN4hYY3Yw2jrNMdLya+rhdUHXkyJnXVfW+qQqbKCq7P8jbs82yX+OrVvKc31RBNPv6WNUiq32h13InyQrUcnlty4rTA3Z6N2nkK6NR+E91Q9tCtg19amUtZFPlF+GzJHj3Ew5TnswP6sFQNo0NK9aPNB1nBpGGRALr1PiN10oUIWfvVgXc1Mgd9ehTEh2MqiwtF1rvq9WMhZAeGx9okMJrWfPEkGkbpAuM6zRXEjcr/DY111+hvsdjXEawhkkcy6n0/z3urraN3gBE1+q2epXs+WTbTVMz44yqw/YZKBq8C2uT74W6H5MlaNZN6ibfZ8W+UCpSoaVl51TVo414nslTf5d3RC23QXov+keW33UzjztU0XFwjWAPrjZOQ1JrePpttq2T2AA89Yh+sVGtqmvPzoOm9+Adb2M1qAP0WHIcSPwkVkM+/pIqwZcWoI69l0UOo8LB2g7t9Tv3Vi3fMNdkZOWthWeVAe17/l9qUvWn60ZQm62fZtZLuVx+hCVRthL+Muadnt9VW91Zog+XeQXDQvNayj+JWgMDO1FMA104HNr7p4YZTs65g+PmYTMPSOMgWw44DVJF2qYv5WXfMCjj3WDXPSTC4rFsuyYfT3Y7Sl2YZaNoveCawhtnnR9MrfXS7GgTxLHrQvfndBk8GyTdKDDRZcYQiv1iL0nQ1tXtbUFxQdDySZRaEXYN+BtDeFt48raTnC6v7lrJqqyqTCuptqGjxv1el2eOOi/XUl6HVeXfyDZfJYVzWUbBIgpC6g1gaxgSIwqLpsJoYfnCGOyVg+ElTZfY98e7Tqq+P/DVpOqcZcIpbR5vfDLd3d5slkyodpDL7nuWrYcvdCOVeeXLg8n73rhuW+NaKOS4UjXHaaiSoW9e2RcL9fMnGvJck56aF3WAWOs8XWFVh3VQKBbG9PisEjmoWyy+ydXEtkmvwFu1nSFzuicrZbJT/1HCg5w3+MwWFFwyjbH26I0Tc6NJ20OXqEZKkeWjb2ceG7s0HTZ8Z0mLpEZhM9tZV5kEsM1macd4p47U9p1ppbLDpX57NPLlo5D0Bls7cNTPNpOgaxuD3cd/M0Mh0qrBFyPyqZd9o4FpHjQZpzhq0NXN3MtayO1duT3th/CC3ZY5cXnH7JWsKY15pFX4i8DeLuJ7PeJ3VhXtvKnS88Lvihto5BF0I2Dw2QF05HazFyxddvOH95draC9Ykfxr7uYyLKO62Yq//rYbCFYJjwJ3F7GHQiuOjAtJjbvk9ZQ1oiOKQCplBUtFjgodM07PqXd2/i6uujasmXTUNkE2NoESofFpdQxYC1Cla/hR0KjrrPqldoN8RJnjYvcQ3nmFATeVQ8c3L10K3u9RoVb2RbBCuIpLOe4Kb/xFdsSbtidaxfTO1O/L3Sqgp1HSiTHIVpKZZUX6hvnMXVSBV7hamutlu/VMikQ//HUi9+FWkpfJ8p6uxmJV1Cr/cJ5btknmghJbOTG35fUVXlgpzeyEpleuvU4/3iED30sCQ94PfrhPHSflunakZn2HKhh6HizLefn3ksOyCze6BfSwav6BgHi7AQtekhN2VGL+b09tw8jI+oqMcNDZTTxdPSd/qOafWHjS+9rmka+VpmC1rKOyCZwI9R/exB3NpeX/2XdjwY2ZQ7NuvrhXthcFxmfKlB+d6PiFVTcLfCmFo/jYDgKnDvYGaCYl49g1vCOHEPslDZJ4S30oux6cYQgox+mbtaaQsK2SomOSjYu0cGl2d1hQDmvNMy35ofp5SAQlS1Jd3XjWY+S/TKg2dD652JYjItaMg3m35fMdsSu7u01d123Z/kmxGTJlesmqCFxXn6n8bpcFEsE8EhwV2Yf7yjRqjC3moDUzr7yJVjnkE/vLgjJsKTPh1rltI75F72/xirBylLxyJS573DJZ6ThJQSuTokUK33+ItnXPCkoBVaJb3+FDw8OurIrjm5qbXq21n3zfRP3IOJJ3asbzU9/FVElp2KRUY4mCA5894qXzDj4qmXPgknUbcQcHzZmbom2ybBmqNZfav7Yw7RWGjFoRy4V1EYK2pXmE1pKUpokwPVCspoACXvIHRbtHNe2mbrCFvIOB437CUsaxk/ejf/2/mN9WtqfGfEWWgzQimpaDGsZXQl03cXTg6rL3zIy8K7FQaMOg0BjcA1H039QE5dJSLFV27t0XaDn9YX9QixC4puw9PEUTtpMf28y6DA3ol/xVQborN+2YnKxgg+Pawk+n/7ZOG7SCkyba5D0n5/Jnnk/HkV2wRWwfwYt3YTuxkn1pzvJMBGxM04w/3taOPYu9ff2DJZ7fBZXuHoO8DUCXJjtdeuDW8kqoxduypFa7MXAm1yPiUkrD1WB4HPaeJ7kp1Y5naGEgOKioLDM/IA19kxzSPPWkue8f9MYb8zfKzFKrKHSMhcQGAoQFMUyk9WvyYG6sBtzvw4EUnmPr2ze3bDztQONFUg0lO1LL3g80L0KtpPP4nK+xIo7q4NMozilxiwQGY1zc5T50ilRjMju+A1/r7N0wofxC2H1uMD11+L4hZyeP5/9u6nIjX20amyz05d2B2ueHcW757vJ3xHlv/D4z0AW4w99+VSop2VnZUtFAURmUMn0r4ofoHg+3bKoaKQlOK7rBfRavPwf17Gem8/ysQynXTvuQ2JdobPfnokPR/l1z/2Wf5PdiIMRJoMDeJfKNwMiU6JoKdHGzs9Qm1U34BbEx5GwUuXvmj5/CWu4gPB0xFyko4BhGVFtbfF12WKx+Bv/9mPhc48MA5Ll6jE72OVON6vFlxoXr268rtmB6MtprC39GGm6UdYcMCK6P4j/9mBKuY+60Yrs/0W/dztduFSdN932r3ej6dqG+uao23pd4kbIEGjsQfjPzn39k/VI2D/cL46Gv49v/mb8CuwwKftmT7rIQrXhXDmusMzvYlHGqz1wDg3/+aP0r5/kAWAvXPm4O0TJ4FcLZYkXYtrkOHXFDxSklG01Mj+rV0nqdQs7rAptbGcUg3Vd32tfQfp0Bmu9V7Gs8aUUxT8FwUeTV/kPu/dLJVVOzlO+Rqc18lknhD4NFHjasnIOpVobONhqTVRHV6p4efQDB9jYBlXZ9XBxfaYStOVhYFKoZFoeJ5yU8/rRXSQEGbQYWwgTGKvy4v072XqWo2ryFSudx8Of3J4sBmo8gP3fDhoClaNnATI9erIzx6h0H0gbbBxOc1fQs2DpwmPgF0RTxW4WKC5KzpVLrSedYV6rQvmqYWXIdMhH0z/LM9GOTAi0wvbKJLQJ7p4b3gUuzh3dpwG0s2GKH89Rso4NXRMmkfMRZbuRQQK0gDAt9G6TfZ+3Bp0lylA3Vspcw8syxSV+3qwSh6RUNbjxNkbiv/wyU1Y/JC/aPOv/4OL8gjarztqbD3dNTO0E5GUuCGiRSbl810vV1qt2I/FIUjxn2UTqdp0RNw1YH4mGeSGUvva6ZLsuiKm/2m4Of2nkHUSjM89JYXpEAOM/XElkoJIZFWHPVCfwTJPIgiremFnfDDp+YXfd4EO+PpbNZPhnV07oypat/Iiu7L9uauJoksdSrwq7RynZ9VhjA8qvaOR+X0n5d/+XsfNyyxy/7/xxfIlXjiPxV0t1IFLzcK12n4iu21d+JGX0kR+heWRNCVY2hQ1ZyYR4OyNmpXXzatE1zb4gF0fvVfoNVF9Z3lPOPT5KcVEFhbLTs5KEdoORurGYcYp+9O0Sv4peGU6MQT3lGk38+LDqyKeLSfD/5x2b/LxvWLnbQMk0sLHkGgtdh5we1knMAr1tJ7Xmry7uVyvWfLHA9hZ0WTwSf3aINPZp7TrN8y5tMUmxNxhRCPHDfJmI+H4fJDtRwWKAtKZNGE3pyEjNZ61NmmcqWhQtYsmKZutGyrXAJQ7uXFrv8A8Na47oObg0/216aUz0AwZ3i5vnj9nOOfTuXedNP9FVUrpsH82+2mIq/GiFU4jH4qaFxyTaVTACM2fongb/ErQE1tyNvtKtDO9U+h4nZw0JOrTdysbvDiLnHacLBrC+FV3mYvf1nGNYqBDjJJOaZZdWwZZUX2jVWKp05ttKzRs6Q/wJpsitdOTGsGrdvSQ3e1cqt081eSdeVjVLN4wUV9KQqEbISaTopru4VW8qlRhPPp/R0qtGqPsDl/gYkYodqgicd1Y2IG/jXx1hyvZuSX2htu1KtZkDe1XVDgQjuRPebUB/IqJUWTXcq8KHvAKtn+G3DtgilAZfNJl+tHDE1uXSeTPmohUluVGFf5FWnTty8+GnrRi7X5S7qLgrow2x+ZN8WMr2GlJh5XrKQbtYomRw/Y+a9+fGWd8QkeFr4jz1C3dsO0mqO7lnZgo04WGVpcXY3HPApZXmfrC8qt8iT5g128NLAjfXQgMKvbcMbfTQax0Q0WtUV75+Wvu5ELodhF2+7SyjyoRjFj2gfJCmm9KokrA4J08dqVLeEUdiVIzEczC8tRDzbe27Wr67tB0zRuwokD6n+lo0vjhpo9nYFuKX5QuILNjFor7zZ5lGHzhp42l/Y3b+7UDSjZBuUTZpJPcxS8qs1P1eZo0ZMAa8tj/IXvBPkxzpZa7Lg/oN5NFkt5j2zwaIms84KiohaPnKE49NWzLTTvXi3szrbiY3EPHn4c6ciJsqnljA4xldB39K9sBcFzyBC5BKIVxFE6/rRaWrWi4ykIjZuEajL68gw85TWyFZ9ilbvzuNCJ5QaIZ6nCfstuZ8d97umloSvnJFffD8zk1mq3afkh4GkjzwYfE3BEuvR3oUmX1S4HyStriBxrobRijsIJvMBeJau9P1a3YWaVQI0hg6o10CTO+TRl28syU/dkYd81f7chuBI3aJNSpTfyaNTUu7mqwVMim5yJ4B91os3hndehiP2C1HMwJufLt+a3ut8CoUZ9W350oljULvbX1SyYPg2FSDHsF5+ld8buR1ceDmHLfRdZBgdQLzXE/E+iZsTK5GCT1xXiIpINMXmp5jvpTdoOcxVrzCizDkX9aJTlgAhHXEoU0h5oTedbdEWb3nVh9IeP/0AC616ro5MZjDBPgNmWaM//qe0Fmv0kloLPk28i3+7XO36Yp1kGdPm+denVt7D6RHxBmlUU36IabbxluBRFktte0s7lvWV2pk3Z2GYelWbIsGfvL9zhEM0zt7lM9lcyEb4Y5zqUdRtPrdboKeub9KhECkje3rrnXN1wVCFdi71VnuwqaNcuLEsR5cwsYtosVHauaXUSaCYzr7grb9p4cv3wXP4Ak/q/Z8v/dQlrpXiO1oNJ9e8zrQfcDIXM81pXQdHMkPSBZCpnSq1yb1+ZeylXsPw/cPD6xvHWsNgCXERB0rafOt6bt7t7IHU1g5Lf5fk8QXNrXio6/9vGq9oHxQeEF2qXVbSt10EPKi82YYRY9LXYw2QqV+oyUI6dSFUKZj1DnbzRXG3hkSYHPQjKaOorUsdBw8tW+XMbg7uG8zxd3cW4NQsF3Ug7uNGL5jc+gN6HpqWeRy6WSdsVnt65uWAiwNlWDL7JPgZjcPkhf+r4B57qpmc3gnOzozM5k/TVTwL2tIS418X5eUmciP66sabjF6EPJp+b4kejrZVkp+0cYVIhE96dcJX0GNdTZbtJI8goUVh67KZ39WB1lVZBD9uHL/Xucfio79U7DDi5BPvF0SK40gvEG4+d4vB82CnWk08ccuYr6V2ls8RQ4Ac7hzfFSpa5daMZG8let59pIBSPNHuRkyp2sTZewClY9f9jym9AU/QXpW4dZqU2e1cR8LwEYndfWM2hV5P1tlcbn8+mQRFUpDZ96CV/6hK9J90Z6ElMzdfEnzV5LUTWEXWrUsAiOumitThkuAxC+77LOlkhkJpM9/rcRJi7GMOCeOBU4cdBp4FuSxbKZ6DzNaz+YPanyUuY8yDsu0sNoh16K44T0j7dHZxCysOds1J8M3qwNJ6mB0AJRBz5lUgji8b5/NBEym7aHpw2prPunQRckfDRvSY8VerSzZllUEXrA4BUk6DTG85VVAJvK22afONWEBlMFtBjHsO1DHFDYb+291tslhzU1IQxbasB8vIAI9MzCAX9Wo5vOipHaHWRtcQR/lAWsoafPINiFNEIhyTG5toHS3i0rY1FC9P61VnR9bV0G3dbplbV65cxSwC+bZtkyA3y5dv6PxtuymlhAlsd6vdcTVsi9TrVXI28pG9nZwsQXcs/WIa750ilhUxMkNm2XXs2Y8O2v+o51qiXQ8Vv+zjD3XmZfrdRs4kwuVXSCXTbver95vmOschGSrUhBnvAB/VuF6Rxa7ptXi5OBx00hflKonHi5RaPdDpJSzF7StHdcpnrDbtt9J4lww5VeECPhLsMBGq9+m95ASpFaMLNkTcxxQwqfq8VYLjeg3jwnY16YZORWRfN1bPK7SnsEmGESNQCrr7yJDEko7el9cgSMIgTUqhxFt3o95UWZiaWg1btxpFKEvqLQBoiIKcFnC3zczCbIagrlzX7fLURO2v6X4GA587rPDetvOLyCqHc6Yww2YcbG8X1aRYVCfVMdzTzM2aRqSZtnI4Lv6zdUKusbp9gf7h19TUZD/AC6JpJCaqSwF0H2roiTO0P/mWtiH/4L/rbj58rYnl9Gsv9H1vXia6XCd7sY0jzjtrKBCrH2aRSnDDsGMMfYcY7UN78avbBbqwS1IYgbij4IPq450Ud02hBFAeYVIFf/Q1Bc72B2LXn16OdipfhaXc9mItqdhEK0WxXZOVXzK+wYRPSMb1jLU10wVa10gPbIc6Owau5zKkr1e2GzZdB/+2VjJWV0PTYMIR7eL7YXuu1CEWsrFsDECmWYZbCshJ1JP0jmqobSRAcgDMHfJkOzZD95dq7ZQpS30XAImJ6qzslN1f/o7aHOrsWCaBSPjBnndHrK7f8hIfdHVk47rpfezvqrfOIyQ4HoXG0/tMrcVcjHsZOvHXnZ/V5XPQgDgMHoS0MKBbeC+MyVguwzkjy1XeDkT23uwOoTSrqpdKs2Nf/whUpvNKXrZnt5v3//UA6dPJCgtxOyrtD50ZfGfOoaEcpxTWO0lvX0zEzV2+n1i+GESda1iAZRuLgKCFVfckTh+9xi3T5g46wshk+iKR1Tre9pOFuQ8w72Q8qdj4L9ul5ePuljWHFw8qz8YM80cOorQlBLLWg8UBcMnP7Ndq9/Ug4kYWr2JzlO7atGkwbyGhSZU4QdMxydoa00Ze1MaVE2JadrtSJwGsfbrl7F0Y2YT3GdwMi3anTMMtD10ldys0b8Oovu1Fqi+Qj2yAOJaPRZrVepMVCBGVimkM8x6KArsu/Pd+ReLvS9df2OoJPffNwNaUB7Mfq7Etv9h3eZWiPjlAOSpaOBzn5KbuRZ3ZzqLQE42wZz6S3dr53KAOZtD5Cd/eLvpktUmePrphRxe2WuUL+62ySxKiWNQxAJHT5xXOU0eVDl2fHyoj0dV1nQn0l1EEKDH9cOs8z2bCA4w/n7EcleleT7aJTcV6jCmO8CO57r7fU/NJ6c8NM9WwMI8zstNVEuThtf0UcFVHiLKslx6uBcnkOHy2zLC4i+XyXOA/ez91G/M+W6f01br6VRU+/qWTIr1b7HsuXNnq2sBkpmnsA6EjYtGV6zrI6yxKyk3Ddqpbu447FTtDN0zrTE3B8L54PhXyB9aqTr3C52OtchdowMax3Uo2Q5370vt0vtCzojBTRwM9/eO0UGQRO5YHq1Nb2s9BlEHNRQ/oRtPKu/CiYBecIle1FAvZ8NUYkDy28ZHoEi/R9ZOGgvmju1FqX/M5P49uDWoPfJP6Js3uDX06qdeqZPaqzYPv73ztSe1eScFg9kCE4cMd+4WoYgTDQqPgExPNYqmSPLiKPn+LlnDT2V16zFKVDCBpzx+htzmWVhSXNTDJB9UHcmbYVqE8UFXwObMJvifnjDL9WOGaWeRsW4UEh0hHNvbvJm3/IKzF1WmWwsJMxer4kvnzWxBGmzkfzjIb/NDxCbcLuC6bujbJ41O0dVqhlY73zQoEjqHnsEQekqKzejcmAHEiEkHz7zsgatb0kH3pmoPgEk0St2AmKYip3MFk9V5Nm7q47sj8T8mIOTjTRt2LLBDp9UVFdI7Pa+p1ozeChH3WIQcar05/j8d2FhZqz1Q3kYMGQiHbLV2i1HEfw6qprmjfyGk+MI9Z3sjM2H+lg2a+q6V79RBx4qZeQi8xXOWnMsfu2tqxyqUuecL3+5ijd0F3Ff+14xx3RJSreZz2JOvYVjeyWLyCdnAp5AKRPLu/FWi9PgLhsQ9ja3bphs0nCimW6GkXEz6XFfbeFMTZxczcBwg4aQz7qDTLsv1s0VzZV+089PVDpMBF7LutaT32frEKnZSzEG40dq62Huqh8NyDBIXJv8tOa31DuRLhk7Byn+j9MByMC7Jd5EtzvXCksA0etm6TbcaQX2RzojFLZpiFebI8qMVyxaddkrvkzv4Pt7iFz9PXmP4AAAAASUVORK5CYII=);
+ background-image: none\9;
+ }
+ .container {
+ position: relative;
+ z-index: 2;
+ }
+}
+.jumbotron-icon:after { opacity: .1; }
diff --git a/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/views.less b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/views.less
new file mode 100644
index 0000000..f0cd3c9
--- /dev/null
+++ b/pyssg.xyz/live/static/fork-awesome/src/doc/assets/less/site/views.less
@@ -0,0 +1,50 @@
+// view-specific
+
+// reset background
+.v-get-started,
+.v-store,
+.v-accessibility {
+ background: @alert-well-bg; // resetting for depth
+}
+
+// get started
+.v-get-started {
+
+ .get-started-cdn {
+ background: @section-emphasized-bg;
+ }
+
+ .jumbotron {
+ border-bottom: none;
+ }
+
+ // sections
+ .get-started-cdn {
+ z-index: 2;
+ position: relative;
+ border-radius: @border-radius-base;
+ padding: @buffer-sm @buffer-xl @buffer-lg @buffer-xl;
+ }
+
+ .hr .hr-text {
+ background: @alert-well-bg;
+ font-family: @font-family-serif;
+ font-size: (@font-size-large*1.5);
+ }
+}
+
+// accessibility
+.v-accessibility {
+
+ .accessibility-cdn {
+ background: @section-emphasized-bg;
+ border-radius: @border-radius-base;
+ padding: @buffer-lg;
+ }
+
+ .hr .hr-text {
+ background: @alert-well-bg;
+ font-family: @font-family-serif;
+ font-size: (@font-size-large*1.5);
+ }
+}