diff --git a/functions.md b/archetypes/functions.md similarity index 100% rename from functions.md rename to archetypes/functions.md diff --git a/showcase.md b/archetypes/showcase.md similarity index 100% rename from showcase.md rename to archetypes/showcase.md diff --git a/archetypes/tutorials.md b/archetypes/tutorials.md index d1f00348b..1a1f70aac 100644 --- a/archetypes/tutorials.md +++ b/archetypes/tutorials.md @@ -1,18 +1,16 @@ --- -title: Create a Multilingual Site -linktitle: Create a Multilingual Site -description: -godocref: -author: "" -authorurl: "" -originalurl: "" +linktitle: "" +description: "" +godocref: "" publishdate: "" lastmod: "" categories: [tutorials] -tags: [tutorials] -weight: +tags: [] +author: "" +authorurl: "" +originalurl: "" draft: false aliases: [] -z_notesforauthors: "Go to gohugo.io/docscontrib for info on req fields" +z_notesforauthors: "Go to gohugo.io/docscontrib for info on required fields" --- diff --git a/content/concept.md b/content/concept.md index 685c80e2f..516cde17d 100644 --- a/content/concept.md +++ b/content/concept.md @@ -133,11 +133,15 @@ The following are high-level requirements for the documentation site. - [X] New site architecture and content groupings - [ ] Single sample website (include in docs source, [`/static/example`](https://github.com/rdwatters/hugo-docs-concept/tree/master/static/example)) for consistent code samples or in-page tutorials -#### [Content Strategy Statement](http://contentmarketinginstitute.com/2016/01/content-on-strategy-templates/) +#### Content Strategy Statement + +[What is this?](http://contentmarketinginstitute.com/2016/01/content-on-strategy-templates/) > The Hugo documentation increases the Hugo user base and strengthens the Hugo community by providing intuitive, beginner-friendly, regularly updated usage guides. Hugo documentation makes visitors feel excited and confident that Hugo is the ideal choice for static website development. -#### [Editorial Mission](http://contentmarketinginstitute.com/2015/10/statement-content-marketing/) +#### Editorial Mission + +[What is this?](http://contentmarketinginstitute.com/2015/10/statement-content-marketing/) > The Hugo documentation is a joint effort between the Hugo maintainers and the open-source community. Hugo documentation is designed to promote Hugo, the world's fastest, friendliest, and most extensible static site generator. Hugo documentation is the primary vehicle by which the Hugo team reaches its target audiences. When visitors comes to the Hugo documentation, we want them to install Hugo, develop a new static website with our tool, and share their progress and insights with the Hugo community at large. @@ -160,7 +164,9 @@ The following are high-level requirements for the documentation site. - [ ] Content groupings (GA) to measure usage, behavior flow, and define content gaps - [ ] Automated reports (GA) -> **Note:** These are separate from usage statics re: Hugo downloads, `.Hugo.Generator`, etc. +{{% note %}} +These are separate from usage statics re: Hugo downloads, `.Hugo.Generator`, etc. +{{% /note %}} ## Visual Design @@ -181,23 +187,28 @@ The following are high-level requirements for the documentation site. ## Content Changes -The following is an *abbreviated* listing of *substantive* changes to content organization. Everything is ordered according to [existing site structure and site navigation](http://gohugo.io/overview/introduction/). These changes do not include copy edits for consistent or preferred usage, improvements in semantics, etc, all of which easily numbers in the thousands, if not more. +The following is an *abbreviated* listing of *substantive* changes to content organization. Everything is ordered according to the current docs site navigation. The changes I delimit here do not include copy edits for consistent or preferred usage, improvements in semantics, etc, all of which easily numbers in the thousands, likely more. ### Download Hugo -This is no longer a site navigation link and is instead a button along with "File and Issue" and "Discuss Hugo". +This is no longer a site navigation link and is instead a button along with "File an Issue" and "Discuss Hugo" at the bottom of the sidebar. ### Site Showcase +* Site showcase has stayed more or less as is, including styling, etc. However, I did clean up the templating and all currently submitted showcase files. (E.g., changing "thumbnail" to "image" and not requiring a full path.) This will also be updated in the ["docs" page of the contribute section](/contribute/contribute-to-the-hugo-docs/) + ### Press & Articles +* The press and article pages has been moved under "News" along with "Release Notes". Also, this whole section is lower on the navigation because it's less frequently visited---I'm assuming---than just about everything on the site. +* Like everything else, I've kept up with changes to the docs upstream on GitHub, but in this case, I also includes a [half dozen *new* articles as well](/news/press-and-articles/). + ### About Hugo ### Getting Started * The [Quick Start][] has been completely updated for more consistent heading structure, etc. Also, **I may delete the "deployment" section of the Quick Start** since this a) adds unnecessary length, making the guide less "quick" and b) detracts from the new "hosting and deployment" section, which offers better advice, and c) is redundant with [Hosting on Github](https://hugodocsconcept.netlify.com/hosting-and-deployment/hosting-on-github/). For example, the Quick Start didn't mention that files already written to public are not necessarily erased at build time. This can cause problems with drafts. I think the other options—e.g. Arjen's Wercker tutorial—are more viable and represent better practices for newcomers to Hugo. If future versions of Hugo include baked-in deployment features, I think it's worth reconsidering adding the deployment step back to the Quick Start. -### [Content](http://gohugo.io/content) +### Content * This section has been renamed "Content Management" to facilitate elimination of the ["extras"](http://gohugo.io) section. **Note**: this section does *not* include any templating. The convention is `content-management/shortcodes.md` (for explanation and usage) and then `content-management/shortcode-templates.md` @@ -205,22 +216,29 @@ This is no longer a site navigation link and is instead a button along with "Fil ### Templates +* Reworked considerably. Page titles have all been changed to reflect their obvious connection to *templating*. +* "Lookup order" page added. The order of the template pages in the main navigation is now such that it could be seen as a sequence of pages showing how to learn templating. Hence the primer, lookup order, and base templates as the first three pages in this section. + ### Taxonomies -### [Extras](http://gohugo.io/extras) +### Extras * This section no longer exists in the new documentation site * *Extras*, in the content world, is the equivalent of *miscellaneous* or *additional resources*. It's an area that's been tacked onto site navigation to accommodate a *seemingly* disparate set of new features. In other words, READ: "We don't have any idea of where to put this" * *Extras* pages: - * **Aliases** Incorporated into [`/content-management/url-management/`] - * **Analytics** Incorporated into [/templates/partial-templates/#built-in] + * **Aliases** Incorporated into [URL Management](/content-management/url-management/) + * **Analytics** Incorporated into [built-in partials](/templates/partials/#using-hugos-built-in-partials) + * **Builders** This has been removed completely since it has no real added value. The three "builders" mentioned (`new site`, `new theme`, and `new `) are all well-delimited in their respective pages, which is where end users expect to find this type of information in the first place. + * **Comments** Incorporated into [content management](/content-management/comments/) for content-related pieces and mentioned in [partials](/templates/partials/) for implementation. + * **Cross-References** Added as its own page under Content Management (`/content-management/cross-references/`) ### Community -### [Tutorials](http://gohugo.io/tutorials) +### Tutorials -* All installation guides have been consilidated under [/getting-started/install-hugo/] +* Original page: +* All installation guides have been consolidated under [/getting-started/installing/] * Installing Hugo shouldn't be considered a separate tutorial * "Tutorials" is not an intuitive place for end-users to look for this kind of documentation * All content moved from `/tutorials` edited to reflect a less tutorial-ish style of language (e.g., remove of lines starting with "In this tutorial...") diff --git a/content/content-management/comments.md b/content/content-management/comments.md index a83fe2817..58eff12f9 100644 --- a/content/content-management/comments.md +++ b/content/content-management/comments.md @@ -14,81 +14,39 @@ toc: true needsreview: true --- - +As Hugo is a static site generator, the content produced is static and doesn't allow for a high degree of interaction with the website's end users. The most common interaction people ask for in static websites is the ability to add comments. -As Hugo is a static site generator, the content produced is static and doesn’t interact with the users. The most common interaction people ask for is comment capability. - -Hugo ships with support for [Disqus](https://disqus.com/), a third-party service that provides comment and community capabilities to website via JavaScript. +Hugo ships with support for [Disqus](https://disqus.com/), a third-party service that provides comment and community capabilities to websites via JavaScript. Your theme may already support Disqus, but even it if doesn’t, it is easy to add. ## Disqus -### Adding Disqus to a Template - -Hugo comes with all the code you would need to include load Disqus. Simply include the following line where you want your comments to appear: - -```golang -{{ template "_internal/disqus.html" . }} -``` +Hugo comes with all the code you need to include load [Disqus][], a popular commenting service for both static and dynamic websites. ### Configuring Disqus -That template requires you to set a single value in your site `config`: +Disqus comments require you set a single value in your [site's configuration file][configuration]. The following show the configuration variable in TOML and YAML, respectively: ```toml disqusShortname = "yourdiscussshortname" ``` -Or with a `config.yml`: - ```yaml disqusShortname: "yourdiscussshortname" ``` -You also have the option to set the following in the front matter for a given piece of content: +For many website, this is enough configuration. However, you also have the option to set the following in the [front matter][] of a single content file: * `disqus_identifier` * `disqus_title` * `disqus_url` -### Conditional Loading of Disqus Comments +### Rendering Hugo's Built-in Disqus Partial Template -Users have noticed that enabling Disqus comments when running the Hugo web server on `localhost` (i.e. via `hugo server`) causes the creation of unwanted discussions on the associated Disqus account. In order to prevent this, a slightly tweaked partial template is required. So, rather than using the built-in `"_internal/disqus.html"` template referenced above, create a template in `layouts/partials` that looks like the following: +See [Partial Templates][partials] to learn how to add the Disqus partial to your Hugo website's templates. -{{% code file="layouts/partials/disqus.html" %}} -```html -
- - -comments powered by Disqus -``` -{{% /code %}} - -The `if` statement skips the initialization of the Disqus comment injection when you are running on `localhost`. - -You can then reference the partial template: - -{{% code file="disqus-reference.html" %}} -```golang -{{ partial "disqus.html" . }} -``` -{{% /code %}} - -## Alternatives +## Commenting Alternatives There are a few alternatives to commenting on static sites for those who do not want to use Hugo's built-in Disqus support: @@ -98,16 +56,22 @@ There are a few alternatives to commenting on static sites for those who do not * [Muut](http://muut.com/) * [多说](http://duoshuo.com/) ([Duoshuo](http://duoshuo.com/), popular in China) * [isso](http://posativ.org/isso/) (Self-hosted, Python) + * [Tutorial on Implementing Isso with Hugo][issotutorial] * [Kaiju](https://github.com/spf13/kaiju) ## Kaiju [Kaiju](https://github.com/spf13/kaiju) is an open-source project started by [spf13](http://spf13.com/) (Hugo’s author) to bring easy and fast real time discussions to the web. -Written using Go, Socket.io and MongoDB, it is very fast and easy to deploy. +Written using Go, Socket.io, and [MongoDB][], Kaiju is very fast and easy to deploy. -It is in early development but shows promise. If you have interest, please help by contributing whether via a pull request, an issue or even just a tweet. Everything helps. +It is in early development but shows promise. If you have interest, please help by contributing via pull request, [opening an issue in the Kaiju GitHub repository][kaijuissue], or [Tweeting about it][tweet]. Every bit helps. -## Discourse - -Additionally, you may recognize [Discourse](http://www.discourse.org) as the system that powers the [Hugo Discussion Forum](http://discuss.gohugo.io). \ No newline at end of file +[configuration]: /getting-started/configuration/ +[forum]: https://discuss.gohugo.io +[front matter]: /content-management/front-matter/ +[kaijuissue]: https://github.com/spf13/kaiju/issues/new +[issotutorial]: https://stiobhart.net/2017-02-24-isso-comments/ +[partials]: /templates/partials/ +[MongoDB]: https://www.mongodb.com/ +[tweet]: https://twitter.com/spf13 \ No newline at end of file diff --git a/content/content-management/shortcodes.md b/content/content-management/shortcodes.md index 794c0e633..5604082bd 100644 --- a/content/content-management/shortcodes.md +++ b/content/content-management/shortcodes.md @@ -177,7 +177,7 @@ This shortcode will convert the source code provided into syntax-highlighted HTM {{% /output %}} {{% note "Syntax Highlighting" %}} -For more information on your options for adding syntax-highlighted code blocks to your website, see [Syntax Highlighting](/developer-tools/syntax-highlighting/. +For more information on your options for adding syntax-highlighted code blocks to your website, see [Syntax Highlighting](/developer-tools/syntax-highlighting/). {{% /note %}} ### `instagram` diff --git a/content/contribute/add-your-site-to-the-showcase.md b/content/contribute/add-your-site-to-the-showcase.md index 8a08428f6..1ee17092d 100644 --- a/content/contribute/add-your-site-to-the-showcase.md +++ b/content/contribute/add-your-site-to-the-showcase.md @@ -8,7 +8,7 @@ lastmod: 2017-02-01 categories: [contribute to hugo] tags: [dev,showcase] weight: 30 -draft: false +draft: true aliases: [] toc: true notesforauthors: @@ -17,13 +17,7 @@ notesforauthors: If you've built a site with Hugo and would like to have it featured on the official Hugo site, you can add your website with a few steps to the [Site Showcase][]. -## 1. Create Your Fork -First, make sure that you created a [fork](https://help.github.com/articles/fork-a-repo/) of Hugo on Github and cloned your fork on your local computer. Next, create a separate branch for your additions. Note that you can choose a different descriptive branch name if you like: - -```git -git checkout -b showcase-addition -``` ## 2. Add Your Showcase File via the `showcase` Archetype @@ -53,43 +47,4 @@ notesforauthors: "For the image, only include the file name *without* a director --- ``` -Add at least values for `sitelink`, `title`, `description`, and a path for `thumbnail`. -{{% note "Notes for Authors" %}} -You may notice a `notesforauthors` key-value in your new content file for the showcase. These notes are not required, but rather have been added to make it easier to fill out the required metadata without needing to refer to the Hugo docs website. You can delete this metadata before submitting a pull request. -{{% /note %}} - -## 3. Add an Image - -We need to create the thumbnail of your website. Give your thumbnail a name like `my-hugo-site-name.png`. Save it under [`docs/static/images/showcase/`][]. - -{{% warning "Thumbnail Size" %}} -It's important that the thumbnail has the required dimensions of 600px by 400px or the site will not render appropriately. Be sure to optimize your image as a matter of best practice. -{{% /warning %}} - -Check one last time that everything looks complete. Start Hugo's built-in server in order to inspect your local copy of the showcase in the browser. - -```bash -hugo server -``` - -## 4. Commit and Submit a Pull Request - -If everything looks fine, we are ready to commit your additions. For the sake of best practices, please make sure that your commit follows our [code contribution guideline][]. - -{{% code file="commit-site.sh" %}} -```git -git commit -m "docs: Add example.com to the showcase" -``` -{{% /code %}} - -Last but not least, we're ready to create a [pull request]. - -### Contributor License Agreement - -Don't forget to accept the contributor license agreement. Click on the yellow badge in the automatically added comment in the pull request to accept. - -[code contribution guideline]: https://github.com/spf13/hugo#code-contribution-guideline -[pull request]: https://github.com/spf13/hugo/compare -[Site Showcase]: /showcase/ -[`docs/static/images/showcase/`]: https://github.com/spf13/hugo/tree/master/docs/static/images/showcase/ \ No newline at end of file diff --git a/content/contribute/contribute-to-the-hugo-docs.md b/content/contribute/contribute-to-the-hugo-docs.md index 3ba62ca6b..32754ed09 100644 --- a/content/contribute/contribute-to-the-hugo-docs.md +++ b/content/contribute/contribute-to-the-hugo-docs.md @@ -17,46 +17,204 @@ needsreview: true Documentation is a critical component of any open-source project. The Hugo docs were completely reworked in anticipation of the release of v0.19, but there is always room for improvement. - +## Adding a New Content Page -## Adding a New Content Pages - -The Hugo docs are built using Hugo and therefore make heavy use of Hugo's [archetype][] feature to easily scaffold new instances of content types. All [content sections][] in Hugo documentation have an assigned archetypes ([see source][archsource]) +The Hugo docs are built using Hugo and therefore make heavy use of Hugo's [archetype][] feature to easily scaffold new instances of content types. All [content sections][] in Hugo documentation have an assigned archetypes ([see source][archsource]). ### Adding a New Function +### Adding a New Tutorial + +Once you have cloned the Hugo repository, you can create a new function via the following command. For functions, title the new function in lowercase. + +``` +hugo new tutorials/newfunction.md +``` + +The archetype for the `functions` content type is as follows: + +{{% code file="archetypes/functions.md" %}} +```yaml +{{< readfile file="archetypes/functions.md">}} +``` +{{% /code %}} + ### Adding a New Showcase -**IN DEVELOPMENT** +Once you have cloned the Hugo repository, you can create add your site as a new showcase content file via the following command. Name the markdown file accordingly: + +``` +hugo new tutorials/my-showcase-addition.md +``` + +The archetype for the `showcase` content type is as follows: + +{{% code file="archetypes/showcase.md" %}} +```yaml +{{< readfile file="archetypes/showcase.md">}} +``` +{{% /code %}} + +Add at least values for `sitelink`, `title`, `description`, and a path for `image`. + +#### Add an Image for the Showcase + +We need to create the thumbnail of your website. Give your thumbnail a name like `my-hugo-site-name.png`. Save it under [`docs/static/images/showcase/`][]. + +{{% warning "Showcase Image Size" %}} +It's important that the image you use for your showcase submission has the required dimensions of 600px × 400px or the site will not render appropriately. Be sure to optimize your image as a matter of best practice. If you're looking for a quick online optimization tool, check out [Compressor](https://compressor.io/). +{{% /warning %}} ### Adding a New Tutorial -**IN DEVELOPMENT** +Once you have cloned the Hugo repository, you can create a new tutorial via the following command. Name the markdown file accordingly: + +``` +hugo new tutorials/my-new-tutorial.md +``` + +The archetype for the `tutorials` content type is as follows: + +{{% code file="archetypes/tutorials.md" %}} +```yaml +{{< readfile file="archetypes/tutorials.md">}} +``` +{{% /code %}} ## Adding Code Blocks to Hugo Docs +Code blocks are crucial for providing examples of Hugo's new features to end users of the Hugo docs. Whenever possible, create examples that you think Hugo users will be able to implement in their own projects. + +### Standard Code Block Syntax + +Across all pages on the Hugo docs, the typical triple-back-tick markdown syntax is used. If you do not want to take the extra time to implement the following code block shortcodes, please use standard Github-flavored markdown. The Hugo docs use a version of [highlight.js](https://highlightjs.org/) that's been modified for specific Hugo keywords. + +Your options for languages are `xml`/`html`, `go`/`golang`, `md`/`markdown`/`mkd`, `handlebars`, `apache`, `toml`, `yaml`, `json`, `css`, `asciidoc`, `ruby`, `powershell`/`ps`, `scss`, `sh`/`zsh`/`bash`/`git`, `http`/`https`, and `javascript`/`js`. + +````html +```html +

Hello world!

+``` +```` + ### Code Block Shortcodes -**IN DEVELOPMENT** +The Hugo documentation comes with very robust shortcodes to help you add interactive code snippets. -### Code Block +{{% note %}} +With both the `code` and the `output` shortcodes, *you still need to include the triple back ticks and language declaration*. This was done by design so that the shortcode wrappers were easily added to legacy documentation and will be that much easier to remove if needed in future versions of the docs. We assume that the triple-back-tick syntax will live longer than the shortcode. +{{% /note %}} -**IN DEVELOPMENT** +#### Input Code Block -### Output Code Block +The first shortcode is the one you'll use most often, `code`. `code`, like all code block shortcodes, requires at least a single `file` named parameter. Here is the signature: -**IN DEVELOPMENT** +````golang +{{%/* code file="smart/file/name/with/path.html" download="download.html" copy="true" */%}} +```language +A whole bunch of coding going on up in here! Boo-yah! +``` +{{%/* /code */%}} +```` + +Let's go through each of the three arguments passed into `code`: + +1. `file`. This is the only ***required*** argument for this shortcode. `file` is needed for styling but also plays an important role in helping users create a mental model around Hugo's directory structure. Visually, this will be displayed as text in the top bar of the text-editor design you've seen throughout the docs. Note that you always want to end the file with an extension, but never use more than a single period in the filename. For example, instead of `./archetypes/default`, use `archetypes/default.md`. The file extension is important for displaying the correct icon. +2. `download`. If omitted entirely, this will have no effect on the rendered shortcode. When a value is added to `download`, it's used as the filename for a downloadable version of the code block. +3. `copy`. All `code` instances add a copy button to the bottom right automatically. However, there are times where you may not want to encourage your end user to copy a code block but still want to keep consistent styling for the filename (e.g., if you adding a "Do not do" code in a tutorial). If you want to turn off the copy functionality of `code`, you can add `copy="false"`. + +##### Example of `Code` + +Here is an HTML code block we want to tell the user lives in the `layouts/_default` directory. We are going to also make the block downloadable because it works as a standalone file: + +````html +{{%/* code file="layouts/_default/single.html" download="single.html" */%}} +```html +{{ define "main" }} +
+
+
+

{{.Title}}

+ {{with .Params.subtitle}} + {{.}} +
+
+ {{.Content}} +
+ +
+
+{{ end }} +``` +{{%/* /code */%}} +```` + +The output of this example will render to the Hugo docs as follows: + +{{% code file="layouts/_default/single.html" download="single.html" %}} +```html +{{ define "main" }} +
+
+
+

{{.Title}}

+ {{with .Params.subtitle}} + {{.}} +
+
+ {{.Content}} +
+ +
+
+{{ end }} +``` +{{% /code %}} + +#### Output Code Block + +The `output` shortcode is almost identical to the `code` shortcode but doesn't take any more arguments than the required `file`. The purpose is to demonstrate what the output, or *rendered*, HTML will look after Hugo builds its templates: + +````html +{{%/* output file="post/my-first-post/index.html" */%}} +```html +

This is my First Hugo Blog Post

+

I am excited to be using Hugo.

+``` +{{%/* /output */%}} +```` + +The preceding `output` example will render as follows to the Hugo docs: + +{{% output file="post/my-first-post/index.html" %}} +```html +

This is my First Hugo Blog Post

+

I am excited to be using Hugo.

+``` +{{% /output %}} ## Blockquotes +Blockquotes can be + + +{{% note "Blockquotes `!=` Admonitions" %}} +Previous versions of the Hugo documentation used [Markdown `
` syntax](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#blockquotes) to draw attention to content. This is [*not* the intended semantic use of the `
` element](http://html5doctor.com/cite-and-blockquote-reloaded/). Use blockquotes when quoting actual text. To note or warn your user of specific information, use the admonition shortcodes that follow. +{{% /note %}} ## Admonition Short Codes @@ -64,12 +222,7 @@ The Hugo docs are built using Hugo and therefore make heavy use of Hugo's [arche > Admonitions are specially marked "topics" that can appear anywhere an ordinary body element can. They contain arbitrary body elements. Typically, an admonition is rendered as an offset block in a document, sometimes outlined or shaded, with a title matching the admonition type. - [SourceForge][sourceforge] - -Both `note` and `warning` with a single, *optional* argument for the admonition title. If the title, a [positional parameter][shortcodeparams] - -{{% note "Admonitions are **NOT** Blockquotes" %}} -Previous versions of the Hugo documentation used [Markdown `
` syntax](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#blockquotes) to draw attention to content. This is not the [intended semantic use of the `
` element](http://html5doctor.com/cite-and-blockquote-reloaded/). -{{% /note %}} +Both `note` and `warning` use a single, *optional* argument for the admonition title, which accepts markdown syntax as well. If the title, a [positional parameter][shortcodeparams] in quotes is missing, the default behavior of the `note` and `warning` shortcodes will be to display the text "Note" and "Warning", respectively. ### Note Admonition Shortcode @@ -109,7 +262,7 @@ Use the `warning` shortcode when you want to draw the user's attention to someth {{% code file="warning-admonition-input.md" %}} ```golang -{{%/* warning "Example Warning" */%}} +{{%/* warning "Example Warning Admonition" */%}} This is a warning, which should be reserved for *important* information like breaking changes. {{%/* /warning */%}} ``` @@ -119,7 +272,7 @@ This is a warning, which should be reserved for *important* information like bre {{% output file="warning-admonition-output.html" %}} ```html -{{% warning "Example Warning" %}} +{{% warning "Example Warning Admonition" %}} This is a warning, which should be reserved for *important* information like breaking changes. {{% /warning %}} ``` @@ -127,7 +280,7 @@ This is a warning, which should be reserved for *important* information like bre #### `warning` Admonition Shortcode Display -{{% warning "Example Warning" %}} +{{% warning "Example Warning Admonition" %}} This is a warning, which should be reserved for *important* information like breaking changes. {{% /warning %}} diff --git a/content/functions/apply.md b/content/functions/apply.md index cc6a7a7f6..e14283995 100644 --- a/content/functions/apply.md +++ b/content/functions/apply.md @@ -116,5 +116,5 @@ Now in the complete version, you can sort the tags, convert the tags to links wi [chome]: /functions/chomp/ [delimit]: /functions/delimit/ [functions]: /functions/ -[partials]: /templates/partial-templates/ +[partials]: /templates/partials/ [range]: /functions/range/ \ No newline at end of file diff --git a/content/getting-started/_index.md b/content/getting-started/_index.md index e5103f7fd..688a10c63 100644 --- a/content/getting-started/_index.md +++ b/content/getting-started/_index.md @@ -15,8 +15,7 @@ toc: false notesforauthors: --- -The Hugo docs were completely reworked from the ground up in anticipation of v0.19. Included in the reboot was the concept of leveraging a [single example site][] from which to pull code blocks and demo content in the documentation. Once you finish the [quick start][], be sure to look into how [the Hugo docs have been optimized for rapid learning][]. +The Hugo docs were completely reworked from the ground up in anticipation of v0.19. There are extensive code block examples throughout the documentation. If this is your first time using Hugo and you [already have Hugo installed on your machine][install], we recommend the [quick start][]. -[quick start]: /getting-started/quick-start/ -[single example site]: /getting-started/using-the-hugo-docs/ -[the Hugo docs have been optimized for rapid learning]: /getting-started/using-the-hugo-docs/ \ No newline at end of file +[install]: /getting-started/installing/ +[quick start]: /getting-started/quick-start/ \ No newline at end of file diff --git a/content/getting-started/basic-usage.md b/content/getting-started/basic-usage.md index 3af4ea92f..5fd1b1a26 100644 --- a/content/getting-started/basic-usage.md +++ b/content/getting-started/basic-usage.md @@ -262,5 +262,5 @@ Interested? Here are some great tutorials contributed by Hugo users: [GoDaddy]: https://www.godaddy.com/ [Heroku]: https://www.heroku.com/ [IIS]: http://www.iis.net/ -[install]: /getting-started/install-hugo/ +[install]: /getting-started/installing/ [nginx]: http://nginx.org/ \ No newline at end of file diff --git a/content/getting-started/configuration.md b/content/getting-started/configuration.md index 2d4263f21..277fc62ae 100644 --- a/content/getting-started/configuration.md +++ b/content/getting-started/configuration.md @@ -330,7 +330,7 @@ ignoreFiles = [ "\\.foo$", "\\.boo$" ] ``` The above is a list of regular expressions. Note that the backslash (`\`) character is escaped in this example to keep TOML happy. -## Configure Blackfriday Rendering +## Configuring Blackfriday Rendering [Blackfriday](https://github.com/russross/blackfriday) is Hugo's built-in [Markdown](http://daringfireball.net/projects/markdown/) rendering engine. diff --git a/content/getting-started/directory-structure.md b/content/getting-started/directory-structure.md index 791edf83d..8ffa13e51 100644 --- a/content/getting-started/directory-structure.md +++ b/content/getting-started/directory-structure.md @@ -44,9 +44,9 @@ Learn more about the different directories and what their purpose is: * [themes](/themes/) -## Example +## Example Hugo Project Directory -An example directory may look like: +An example directory may look like the following ```bash . @@ -93,6 +93,7 @@ An example directory may look like: | └── doc └── static ├── css + ├── images └── js ``` @@ -102,7 +103,7 @@ This directory structure tells us a lot about this website: 2. It will also apply two different taxonomies to that content: *categories* and *tags*. 3. It will be displaying content in 3 different views: a list, a summary, and a full-page view. -## Content for Home Page and Other List Pages +## Content for Homepage and Other List Pages Since Hugo 0.18, "everything" is a `Page` that can have content and metadata, like `.Params`, attached to it -- and share the same set of [page variables](/variables/page-variables/). @@ -112,7 +113,9 @@ For the default Markdown content, the filename will be `_index.md`. Se the example directory tree below. -**Note that you don't have to create `_index` file for every section, taxonomy and similar, a default page will be created if not present, but with no content and default values for `.Title` etc.** +{{% note "You Don't Have to Create `_index.md`"%}} +You don't have to create an `_index` file for every list page (i.e. section, taxonomy, taxonomy terms, etc). If Hugo does not find an `_index.md` on a list page, a default page will be created if not present but with no `{{.Content}}` and only the default values for `.Title` etc. +{{% /note %}} ```bash └── content diff --git a/content/getting-started/install-hugo.md b/content/getting-started/installing.md similarity index 96% rename from content/getting-started/install-hugo.md rename to content/getting-started/installing.md index 05da64d3c..d75a9e772 100644 --- a/content/getting-started/install-hugo.md +++ b/content/getting-started/installing.md @@ -51,8 +51,8 @@ For more detailed explanations, read the installation guides that follow for [Wi #### Prerequisite tools for downloading and building source code -* [Git](http://git-scm.com/) -* [Go][] 1.5+ +* [Git][installgit] +* [Go 1.5+][installgo] #### Get directly from GitHub @@ -366,7 +366,7 @@ built with love by spf13 and friends in Go. Complete documentation is available at http://gohugo.io/. ``` -If you do, then the installation is complete. If you don't, double-check the path that you placed the `hugo.exe` file in and that you typed that path correctly when you added it to your `PATH` variable. If you're still not getting the output, search the [Hugo discussion forum][hugodiscussion] to see if others have already figured out our problem. If not, add a note---in the "Support" category---and be sure to include your command and the output. +If you do, then the installation is complete. If you don't, double-check the path that you placed the `hugo.exe` file in and that you typed that path correctly when you added it to your `PATH` variable. If you're still not getting the output, search the [Hugo discussion forum][forum] to see if others have already figured out our problem. If not, add a note---in the "Support" category---and be sure to include your command and the output. At the prompt, change your directory to the `Sites` directory. @@ -432,13 +432,15 @@ you need to install the Python-based Pygments program. The procedure is outlined ## Next Steps -Now that you've installed Hugo, read the [Quick Start guide](/getting-started/quick-start/) and explore the rest of the documentation, starting with an [explanation of how to best use the Hugo docs][usingthehugodocs]. If you have questions, ask the Hugo community directly by visiting the [Hugo Discussion Forum][hugodiscussion]. +Now that you've installed Hugo, read the [Quick Start guide][quickstart] and explore the rest of the documentation. If you have questions, ask the Hugo community directly by visiting the [Hugo Discussion Forum][forum]. [brew]: https://brew.sh/ [highlight shortcode]: /content-management/shortcodes/#highlight -[hugodiscussion]: https://discuss.gohugo.io +[forum]: https://discuss.gohugo.io +[installgit]: (http://git-scm.com/) +[installgo]: https://golang.org/dl/ [Path Editor]: https://patheditor2.codeplex.com/ [pygments]: http://pygments.org +[quickstart]: /getting-started/quick-start/ [releases]: https://github.com/spf13/hugo/releases -[usingthehugodocs]: /getting-started/using-the-hugo-docs/ [Windows Environment Variables Editor]: http://eveditor.com/ \ No newline at end of file diff --git a/content/getting-started/quick-start.md b/content/getting-started/quick-start.md index 4fccf465a..6fe5247be 100644 --- a/content/getting-started/quick-start.md +++ b/content/getting-started/quick-start.md @@ -430,7 +430,7 @@ Now, the website should render similar to the following screenshot: Next, we want to remove information related to the theme from the footer. Let's create a new directory at `bookshelf/layouts/partials`. This will hold our new file called `default_foot.html`. -This is a new [partial template][partialtemplates]. If you are still in the project's root directory, you can use the following one-liner to create the partial before returning to the project root: +This is a new [partial template][partials]. If you are still in the project's root directory, you can use the following one-liner to create the partial before returning to the project root: {{% code file="create-new-default-foot.sh" %}} ```bash @@ -565,10 +565,10 @@ Here's what you should look into next: [frontmatter]: /content-management/front-matter/ [hostinganddeploy]: /hosting-and-deployment/ [hugodirectories]: /getting-started/directory-structure/ -[install]: /getting-started/install-hugo/ +[install]: /getting-started/installing/ [lists]: /templating/lists/ -[partialtemplates]: /templates/partial-templates/ -[quickinstall]: /getting-started/install-hugo/#quick-install +[partials]: /templates/partials/ +[quickinstall]: /getting-started/installing/#quick-install [releases]: https://github.com/spf13/hugo/releases [robusttheme]: https://github.com/dim0627/hugo_theme_robust [section]: /content-management/sections/ diff --git a/content/getting-started/using-the-hugo-docs.md b/content/getting-started/using-the-hugo-docs.md index 06dc8f68f..c8e51fbd4 100644 --- a/content/getting-started/using-the-hugo-docs.md +++ b/content/getting-started/using-the-hugo-docs.md @@ -9,7 +9,7 @@ categories: [getting started] tags: [usage,docs,fundamentals] tags_weight: 01 weight: 20 -draft: false +draft: true aliases: [/getting-started/using-the-docs/] toc: true needsreview: true diff --git a/content/templates/data-templates.md b/content/templates/data-templates.md index 764ed5329..7c3672d8f 100644 --- a/content/templates/data-templates.md +++ b/content/templates/data-templates.md @@ -16,21 +16,22 @@ needsreview: true -In addition to the [built-in variables](/templates/variables/) available from Hugo, you can specify your own custom data that can be accessed via templates or shortcodes. +In addition to the [built-in variables][vars] available from Hugo, you can specify your own custom data that can be accessed via templates or shortcodes. -Hugo supports loading data from YAML(http://yaml.org/), [JSON](http://www.json.org/), and [TOML](https://github.com/toml-lang/toml) files located in the `data` directory. +Hugo supports loading data from YAML, JSON, and TOML files located in the `data` directory in the root of your Hugo project. -{{% note %}} -Templates using `.Site.Data` even work with LiveReload! -{{% /note %}} - -Data Files can also be used in [Hugo themes][themes], but note: If the same `key` is used in both the root data folder (i.e. `data/`) and in the theme's data folder (i.e., `themes//data/), the main one will win. So, for theme authors, for theme specific data items that shouldn't be overridden, it can be wise to prefix the folder structure with a namespace, e.g. `mytheme/data//somekey/...`. To check if any such duplicate exists, run hugo with the `-v` flag; e.g., `hugo -v`. ## The Data Folder The `data` folder is where you can store additional data for Hugo to use when generating your site. Data files aren't used to generate standalone pages - rather they're meant supplemental to the content files. This feature can extend the content in case your frontmatter would grow immensely. Or perhaps your want to show a larger dataset in a template (see example below). In both cases it's a good idea to outsource the data in their own file. -These files must be YAML, JSON or TOML files (using either the `.yml`, `.yaml`, `.json` or `toml` extension) and the data will be accessible as a `map` in `.Site.Data`. +These files must be YAML, JSON or TOML files (using either the `.yml`, `.yaml`, `.json` or `toml` extension). The data will be accessible as a `map` in the `.Site.Data` variable. + +## Data Files in Themes + +Data Files can also be used in [Hugo themes][themes] but note that theme data files follow the same logic as other template files in the [Hugo lookup order][lookup] (i.e., give two files with the same name and relative path, the file in the root project `data` directory will override the file in the `themes//data` directory). + +Therefore, theme authors should take care to not include data files that could be easily overwritten by a user who decides to [customize a theme][customize]. for theme specific data items that shouldn't be overridden, it can be wise to prefix the folder structure with a namespace, e.g. `mytheme/data//somekey/...`. To check if any such duplicate exists, run hugo with the `-v` flag. **The keys in this map will be a dot chained set of _path_, _filename_ and _key_ in file (if applicable).** @@ -114,6 +115,8 @@ Note the use of the `markdownify` template function. This will send the descript +## Data-Driven Content + Data-driven content with a static site generator? Yes, it is possible! In addition to the [data files](/extras/datafiles/) feature, we have also @@ -127,15 +130,17 @@ and `getCSV`, which are available in **all template files**. ## Implementation details -### Calling the functions with an URL +### Calling the Functions with a URL In any HTML template or Markdown document, call the functions like this: - {{ $dataJ := getJSON "url" }} - {{ $dataC := getCSV "separator" "url" }} +```golang +{{ $dataJ := getJSON "url" }} +{{ $dataC := getCSV "separator" "url" }} +``` -or, if you use a prefix or postfix for the URL, the functions -accept [variadic arguments](http://en.wikipedia.org/wiki/Variadic_function): +If you use a prefix or postfix for the URL, the functions +accept [variadic arguments][variadic]: {{ $dataJ := getJSON "url prefix" "arg1" "arg2" "arg n" }} {{ $dataC := getCSV "separator" "url prefix" "arg1" "arg2" "arg n" }} @@ -165,32 +170,35 @@ first 5 gists for a GitHub user: {{ end }} - ### Example for CSV files -For `getCSV`, the one-character long separator must be placed in the -first position followed by the URL. +For `getCSV`, the one-character-long separator must be placed in the +first position followed by the URL. The following is an example of creating an HTML table in a [partial template][partials] from a published CSV: - - - - - - - - - - {{ $url := "http://a-big-corp.com/finance/employee-salaries.csv" }} - {{ $sep := "," }} - {{ range $i, $r := getCSV $sep $url }} - - - - - - {{ end }} - -
NamePositionSalary
{{ index $r 0 }}{{ index $r 1 }}{{ index $r 2 }}
+{{% code file="layouts/partials/get-csv.html" %}} +```html + + + + + + + + + + {{ $url := "http://a-big-corp.com/finance/employee-salaries.csv" }} + {{ $sep := "," }} + {{ range $i, $r := getCSV $sep $url }} + + + + + + {{ end }} + +
NamePositionSalary
{{ index $r 0 }}{{ index $r 1 }}{{ index $r 2 }}
+``` +{{% /code %}} The expression `{{index $r number}}` must be used to output the nth-column from the current row. @@ -205,26 +213,23 @@ You can also set `cacheDir` in the main configuration file. If you don't like caching at all, you can fully disable caching with the command line flag `--ignoreCache`. -### Authentication when using REST URLs +### Authentication When Using REST URLs -Currently, you can only use those authentication methods that can be put into an URL. [OAuth](http://en.wikipedia.org/wiki/OAuth) or other authentication methods are not implemented. +Currently, you can only use those authentication methods that can be put into an URL. [OAuth][] and other authentication methods are not implemented. -### Loading local files +### Loading Local files -To load local files with the two functions `getJSON` and `getCSV`, the source files must reside within Hugo's working directory. The file extension does not matter but the content does. +To load local files with `getJSON` and `getCSV`, the source files must reside within Hugo's working directory. The file extension does not matter, but the content does. -It applies the same output logic as in the topic: *Calling the functions with an URL*. +It applies the same output logic as above in [Calling the Functions with a URL](#calling-the-functions-with-a-url). -## LiveReload +## LiveReload with Data Files -There is no chance to trigger a [LiveReload](/extras/livereload/) when the content of an URL changes. However, when a local JSON/CSV file changes, then a LiveReload will be triggered of course. Symlinks are not supported. +There is no chance to trigger a [LiveReload][] when the content of a URL changes. However, when a *local* file changes (i.e., `data/*` and `themes//data/*`), a LiveReload will be triggered. Symlinks are not supported. Note too that because downloading of data takes a while, Hugo stops processing your Markdown files until the data download has completed. -{{% note "URLs and LiveReload" %}} -If you change any local file and the LiveReload is triggered, Hugo will either read the URL content from the cache or, if you have disabled the cache, Hugo will re-download the content. This can create huge traffic and you may also reach API limits quickly. -{{% /note %}} - -As downloading of content takes a while, Hugo stops processing -your Markdown files until the content has been downloaded. +{{% warning "URL Data and LiveReload" %}} +If you change any local file and the LiveReload is triggered, Hugo will read the data-driven (URL) content from the cache. If you have disabled the cache (i.e., by running the server with `hugo server --ignoreCache`), Hugo will re-download the content every time LiveReload triggers. This can create *huge* traffic. You may reach API limits quickly. +{{% /warning %}} ## Examples @@ -232,13 +237,22 @@ your Markdown files until the content has been downloaded. - GitHub Starred Repositories [in a posts](https://github.com/SchumacherFM/blog-cs/blob/master/content%2Fposts%2Fgithub-starred.md) with the related [short code](https://github.com/SchumacherFM/blog-cs/blob/master/layouts%2Fshortcodes%2FghStarred.html). - More? Please tell us! -## Specs for Configuration Formats +## Specs for Data Formats * [TOML Spec][toml] * [YAML Spec][yaml] * [JSON Spec][json] +* [CSV Spec][csv] +[csv]: https://tools.ietf.org/html/rfc4180 +[customize]: /themes/customizing/ +[lookup]: /templates/lookup-order/ [json]: /documents/ecma-404-json-spec.pdf +[LiveReload]: /getting-started/basic-usage/#livereload +[OAuth]: http://en.wikipedia.org/wiki/OAuth +[partials]: /templates/partials/ [themes]: /themes/ [toml]: https://github.com/toml-lang/toml [yaml]: http://yaml.org/spec/ +[variadic]: http://en.wikipedia.org/wiki/Variadic_function +[vars]: /variables/ \ No newline at end of file diff --git a/content/templates/go-template-primer.md b/content/templates/go-template-primer.md index c04c39b7d..2e2d2dc8c 100644 --- a/content/templates/go-template-primer.md +++ b/content/templates/go-template-primer.md @@ -451,7 +451,7 @@ Finally, you can pull "magic constants" out of your layouts as well. The followi ``` -## Go Templating Example: Show Only Upcoming Events +## Example: Show Only Upcoming Events Go allows you to do more than what's shown here. Using Hugo's [`where` function](/functions/where/) and Go built-ins, we can list only the items from `content/events/` whose date (set in a content file's [front matter][]) is in the future. The following is an example [partial template][partials]: diff --git a/content/templates/homepage-template.md b/content/templates/homepage-template.md index 3b6df123e..7f0297ea1 100644 --- a/content/templates/homepage-template.md +++ b/content/templates/homepage-template.md @@ -14,59 +14,59 @@ toc: false needsreview: true --- -The home page of a website is often formatted differently than the other pages. In Hugo you can define your own homepage template. +The homepage of a website is often formatted differently than the other pages. In Hugo you can define your own homepage template. -Homepage is a `Page` and has all the [page variables](/templates/variables/) and [site variables](/templates/variables/) available to use in the templates. +Homepage is a `Page` and therefore has all the [page variables][pagevars] and [site variables][sitevars] available for use. -*This is the only required template for building a site and useful when bootstrapping a new site and template. It is also the only required template when using a single page site.* +{{% note "The Only Required Template" %}} +The homepage template is the *only* required template for building a site and useful when bootstrapping a new site and template. It is also the only required template if you are developing a single page site. +{{% /note %}} -In addition to the standard page variables, the homepage has access to all site content accessible from `.Data.Pages`. Details on how to use the list of pages can be found in the [Lists Template](/templates/list/). +## Homepage Template Lookup Order -Note that a home page can also have a content file with frontmatter, see [Source Organization](/overview/source-directory/). +The [lookup order][lookup] for the homepage template is as follows: -## Which Template will be rendered? +* `/layouts/index.html` +* `/layouts/\_default/list.html` +* `/layouts/\_default/single.html` +* `/themes//layouts/index.html` +* `/themes//layouts/_default/list.html` +* `/themes//layouts/_default/single.html` -Hugo uses a set of rules to figure out which template to use when rendering a specific page. +## `.Data.Pages` on the Homepage -Hugo will use the following prioritized list. If a file isn’t present, then the next one in the list will be used. This enables you to craft specific layouts when you want to without creating more templates than necessary. For most sites, only the \_default file at the end of -the list will be needed. +In addition to the standard [page variables][pagevars], the homepage template has access to *all* site content via `.Data.Pages`. -* /layouts/index.html -* /layouts/\_default/list.html -* /layouts/\_default/single.html -* /themes/`THEME`/layouts/index.html -* /themes/`THEME`/layouts/\_default/list.html -* /themes/`THEME`/layouts/\_default/single.html +`.Data.Pages` usually refers to the list of pages available within a given section or taxonomy. However, since `index.html` is the homepage of your Hugo project (i.e., in essence, the top of the master section), `Data.Pages` for `layouts/index.html` is interchangeable with `.Site.Pages` when written on the homepage template. -## Example index.html -This content template is used for [spf13.com](http://spf13.com/). +Note that a homepage can also have a content file with front matter. This content file lives at `content/_index.md`. See [Content Organization][contentorg] for more information. -It makes use of [partial templates](/templates/partials/) and uses a similar approach as a [List](/templates/list/). +## Example Homepage Template - - - - +The following is an example of a homepage template. - {{ partial "meta.html" . }} +It makes use of [partial templates][partials] and uses a similar approach as a [Hugo list template][lists]. - - {{ .Site.Title }} - - - - {{ partial "head_includes.html" . }} - - - - {{ partial "subheader.html" . }} - -
+{{% code file="layouts/index.html" download="index.html" %}} +```html +{{ define "main" }} + {{ partial "content-header.html" . }} +
+ {{ range first 10 .Data.Pages }} {{ .Render "summary"}} {{ end }}
-
+ + {{ partial "content-footer.html" . }} +{{ end }} +``` +{{% /code %}} - {{ partial "footer.html" . }} \ No newline at end of file +[contentorg]: /content-management/content-organization/ +[lists]: /templates/lists/ +[lookup]: /templates/lookup-order/ +[pagevars]: /variables/page-variables/ +[partials]: /templates/partials/ +[sitevars]: /variables/site-variables/ \ No newline at end of file diff --git a/content/templates/lists.md b/content/templates/lists.md index 2e6a896b3..ce659c5f0 100644 --- a/content/templates/lists.md +++ b/content/templates/lists.md @@ -118,7 +118,7 @@ If `where` or `first` receives invalid input or a field name that doesn’t exis [homepage]: /templates/homepage-template/ [limitkeyword]: https://www.techonthenet.com/sql/select_limit.php [mentalmodel]: http://webstyleguide.com/wsg3/3-information-architecture/3-site-structure.html -[partials]: /templates/partial-templates/ +[partials]: /templates/partials/ [RSS 2.0]: http://cyber.law.harvard.edu/rss/rss.html "RSS 2.0 Specification" [RSS]: /templates/rss-templates/ [sections]: /content-management/sections/ diff --git a/content/templates/lookup-order.md b/content/templates/lookup-order.md index 0f884dc77..e64b95177 100644 --- a/content/templates/lookup-order.md +++ b/content/templates/lookup-order.md @@ -28,16 +28,18 @@ Most Hugo websites will only need the default template files at the end of the l See examples of the lookup order for each of the Hugo template types: -* [Base Templates][] +* [Homepage Template][home] +* [Base Templates][base] * [Section Page Templates][sectionlookup] * [Taxonomy List Templates][taxonomylookup] * [Taxonomy Terms Templates][termslookup] * [Single Page Templates][singlelookup] * [RSS Templates][rsslookup] -[Base Templates]: /templates/base-templates-and-blocks/#base-template-lookup-order +[base]: /templates/base-templates-and-blocks/#base-template-lookup-order [directory structure]: /getting-started/directory-structure/ [DRY]: https://en.wikipedia.org/wiki/Don%27t_repeat_yourself +[home]: /templates/homepage-template/#homepage-template-lookup-order [rsslookup]: /templates/rss-templates/#rss-template-lookup-order [sectionlookup]: /templates/section-templates/#section-template-lookup-order [singlelookup]: templates/single-page-templates/#single-page-template-lookup-order diff --git a/content/templates/partial-templates.md b/content/templates/partials.md similarity index 80% rename from content/templates/partial-templates.md rename to content/templates/partials.md index d2065be79..287fce3cc 100644 --- a/content/templates/partial-templates.md +++ b/content/templates/partials.md @@ -18,11 +18,10 @@ notesforauthors: In practice, it's very convenient to split out common template portions into a partial template that can be included anywhere. As you create the rest of your -templates, you will include templates from the ``/layouts/partials` directory -or from arbitrary subdirectories like `/layouts/partials/post/tag`. +templates, you will include templates from the `/layouts/partials/` directory +or from arbitrary partial subdirectories like `/layouts/partials/post/tag/`. -Partials are especially important for themes as it gives users an opportunity -to overwrite just a small part of your theme, while maintaining future compatibility. +Partials are especially important for [themes][] because they give theme users an opportunity to [overwrite just a small portion of a theme][customize] while maintaining compatibility with the theme's upstream. Theme developers may want to include a few partials with empty HTML files in the theme just so end users have an easy place to inject their @@ -161,40 +160,36 @@ Hugo ships with prebuilt internal partial templates for Google Analytics trackin -### Configuring Google Analytics +#### Configuring Google Analytics Provide your tracking id in your configuration file, e.g. config.yaml. - googleAnalytics = "UA-123-45" +```toml +googleAnalytics = "UA-123-45" +``` -### Google Analytics Example +#### Google Analytics Example Include the internal template in your templates like so: -{{% code file="call-ga.md" %}} +{{% code file="call-ga.html" %}} ```golang {{ template "_internal/google_analytics.html" . }} ``` {{% /code %}} -For asynchronous loading of Google analytics, include the async template: -{{% code file="call-ga-async.md" %}} +{{% code file="call-ga-async.html" %}} ```golang {{ template "_internal/google_analytics_async.html" . }} ``` {{% /code %}} - -As Hugo is a static site generator, the content produced is static and doesn’t interact with the users. The most common interaction people ask for is comment capability. - -Hugo ships with support for [Disqus](https://disqus.com/), a third-party service that provides comment and community capabilities to website via JavaScript. - -Your theme may already support Disqus, but even it if doesn’t, it is easy to add. - ### Disqus +Hugo also ships with a built-in partial for [Disqus comments][disqus], a popular commenting system for both static and dynamic websites. + #### Adding Disqus to a Template Hugo comes with all the code you would need to include load Disqus. Simply include the following line where you want your comments to appear: @@ -259,26 +254,6 @@ You can then reference the partial template: ``` {{% /code %}} -## Alternatives - -A few alternatives exist to [Disqus](https://disqus.com/): - -* [Discourse](http://www.discourse.org) -* [IntenseDebate](http://intensedebate.com/) -* [Livefyre](http://livefyre.com/) -* [Muut](http://muut.com/) -* [多说](http://duoshuo.com/) ([Duoshuo](http://duoshuo.com/), popular in China) -* [isso](http://posativ.org/isso/) (Self-hosted, Python) -* [Kaiju](https://github.com/spf13/kaiju) - -## Kaiju - -[Kaiju](https://github.com/spf13/kaiju) is an open-source project started by [spf13](http://spf13.com/) (Hugo’s author) to bring easy and fast real time discussions to the web. - -Written using Go, Socket.io and MongoDB, it is very fast and easy to deploy. - -It is in early development but shows promise. If you have interest, please help by contributing whether via a pull request, an issue or even just a tweet. Everything helps. - -## Discourse - -Additionally, you may recognize [Discourse](http://www.discourse.org) as the system that powers the [Hugo Discussion Forum](http://discuss.gohugo.io). +[themes]: /themes/ +[customize]: /themes/customizing/ +[disqus]: https://disqus.com \ No newline at end of file diff --git a/content/templates/lists-rendering.md b/content/templates/rendering-lists.md similarity index 96% rename from content/templates/lists-rendering.md rename to content/templates/rendering-lists.md index 503853fa3..228bfb53d 100644 --- a/content/templates/lists-rendering.md +++ b/content/templates/rendering-lists.md @@ -86,7 +86,7 @@ your list templates: ``` {{% /code %}} -### Order by Weight -> Date +### Ordering a list by Weight -> Date ```html {{ range .Data.Pages.ByWeight }} @@ -97,7 +97,7 @@ your list templates: {{ end }} ``` -### Order by Date +### Ordering a List by Date {{ range .Data.Pages.ByDate }}
  • @@ -106,7 +106,7 @@ your list templates:
  • {{ end }} -### Order by PublishDate +### Ordering a List by PublishDate {{ range .Data.Pages.ByPublishDate }}
  • @@ -115,7 +115,7 @@ your list templates:
  • {{ end }} -### Order by ExpiryDate +### Ordering a list by ExpiryDate {{ range .Data.Pages.ByExpiryDate }}
  • @@ -124,7 +124,7 @@ your list templates:
  • {{ end }} -### Order by Lastmod +### Ordering a List by Lastmod {{ range .Data.Pages.ByLastmod }}
  • @@ -133,7 +133,7 @@ your list templates:
  • {{ end }} -### Order by Length +### Ordering a List by Length {{ range .Data.Pages.ByLength }}
  • @@ -143,7 +143,7 @@ your list templates: {{ end }} -### Order by Title +### Ordering a List by Title {{ range .Data.Pages.ByTitle }}
  • @@ -152,7 +152,7 @@ your list templates:
  • {{ end }} -### Order by LinkTitle +### Ordering a List by LinkTitle {{ range .Data.Pages.ByLinkTitle }}
  • @@ -161,7 +161,7 @@ your list templates:
  • {{ end }} -### Order by Parameter +### Order List by Parameter Order based on the specified front matter parameter. Pages without that parameter will use the site's `.Site.Params` default. If the parameter is not @@ -317,7 +317,7 @@ it’s really just a matter of preference. Because Grouping returns a key and a slice of pages, all of the ordering methods listed above are available. -In this example, I’ve ordered the groups in chronological order and the content +In this example, I’ve ordered the groups in chronological ordering and the content within each group in alphabetical order by title. ```html diff --git a/content/templates/robots.md b/content/templates/robots.md new file mode 100644 index 000000000..58a464964 --- /dev/null +++ b/content/templates/robots.md @@ -0,0 +1,44 @@ +--- +title: Robots.txt File +linktitle: Robots.txt +description: +date: 2017-02-01 +publishdate: 2017-02-01 +lastmod: 2017-02-01 +categories: [templates] +tags: [robots,search engines] +weight: 165 +draft: false +aliases: [/extras/robots-txt/] +toc: false +needsreview: true +--- + +Hugo can generated a customized [robots.txt](http://www.robotstxt.org/) in the +[same way as any other templates]({{< ref "templates/go-templates.md" >}}). + +To enable it, just set `enableRobotsTXT` option to `true` in the [configuration file]({{< ref "overview/configuration.md" >}}). By default, it generates a robots.txt, which allows everything, with the following content: + +```http +User-agent: * +``` + +## Robots.txt Template Lookup Order + +The [lookup order][lookup] for the `robots.txt` template is as follows: + +* `/layouts/robots.txt` +* `/themes//layout/robots.txt` + +An example of a `robots.txt` layout is: + +```http +User-agent: * + +{{range .Data.Pages}} +Disallow: {{.RelPermalink}}{{end}} +``` + +This template disallows all the pages of the site creating one `Disallow` entry for each one. + +[lookup]: /layouts/lookup-order diff --git a/content/templates/single-page-templates.md b/content/templates/single-page-templates.md index 05c7a0240..4277a3cd2 100644 --- a/content/templates/single-page-templates.md +++ b/content/templates/single-page-templates.md @@ -70,7 +70,7 @@ The following examples assume two things: Now we can look at the front matter for the three single-page content (i.e.`.md`) files. {{% note "Three Content Pages but *Four* Markdown Files?" %}} -`_index.md` may seem like a single page of content but is actually a specific `kind` in Hugo. Whereas `my-first-post.md`, `my-second-post.md`, and `my-first-event.md` are all of kind `page`, all `_index.md` files in a Hugo project are of kind `section` and therefore do not submit themselves to the *single* page template lookup. Instead, `events/_index.md` will render according to its [section template](templates/section-templates/) and respective lookup order. +`_index.md` may seem like a single page of content but is actually a specific `kind` in Hugo. Whereas `my-first-post.md`, `my-second-post.md`, and `my-first-event.md` are all of kind `page`, all `_index.md` files in a Hugo project are of kind `section` and therefore do not submit themselves to the *single* page template lookup. Instead, `events/_index.md` will render according to its [section template](/templates/section-templates/) and respective lookup order. {{% /note %}} ### `my-first-post.md` @@ -279,7 +279,7 @@ To easily generate new instances of this content type (e.g., new `.md` files in [dry]: https://en.wikipedia.org/wiki/Don%27t_repeat_yourself [front matter]: /content-management/front-matter/ [page variables]: /variables-and-parms/page-variables/ -[partials]: /templates/partial-templates/ +[partials]: /templates/partials/ [section]: /content-management/sections/ [site variables]: /variables/site-variables/ [spf13]: http://spf13.com/ \ No newline at end of file diff --git a/content/templates/sitemap-template.md b/content/templates/sitemap-template.md index 57a12e7eb..ee82d7f9f 100644 --- a/content/templates/sitemap-template.md +++ b/content/templates/sitemap-template.md @@ -18,7 +18,7 @@ A single Sitemap template is used to generate the `sitemap.xml` file. Hugo automatically comes with this template file. **No work is needed on the users' part unless they want to customize `sitemap.xml`.** -A sitemap is a `Page` and have all the [page variables](/layout/variables/) available to use in this template along with Sitemap-specific ones: +A sitemap is a `Page` and therefore has all the [page variables][pagevars] available to use in this template along with Sitemap-specific ones: `.Sitemap.ChangeFreq` : The page change frequency @@ -29,7 +29,7 @@ A sitemap is a `Page` and have all the [page variables](/layout/variables/) avai `.Sitemap.Filename` : The sitemap filename -If provided, Hugo will use `/layouts/sitemap.xml` instead of the internal one. +If provided, Hugo will use `/layouts/sitemap.xml` instead of the internal `sitemap.xml` template that ships with Hugo.. ## Hugo’s sitemap.xml @@ -66,4 +66,6 @@ Defaults for ``, `` and `filename` values can be set in th filename = "sitemap.xml" ``` -The same fields can be specified in an individual page's front matter in order to override the value for that page. \ No newline at end of file +The same fields can be specified in an individual content file's front matter in order to override the value assigned to that piece of content at render time. + +[pagevars]: /variables/page-variables/ \ No newline at end of file diff --git a/content/themes/creating-a-theme.md b/content/themes/creating.md similarity index 100% rename from content/themes/creating-a-theme.md rename to content/themes/creating.md diff --git a/content/themes/customizing-a-theme.md b/content/themes/customizing.md similarity index 91% rename from content/themes/customizing-a-theme.md rename to content/themes/customizing.md index a14846c63..3146b45db 100644 --- a/content/themes/customizing-a-theme.md +++ b/content/themes/customizing.md @@ -9,23 +9,19 @@ categories: [themes] tags: [themes, source, organization, directories] weight: 20 draft: false -aliases: [/themes/customizing/,/themes/customize/] +aliases: [/themes/customize/] toc: true needsreview: true --- ## Introduction -The following are key concepts for Hugo site customization. Hugo permits you to supplement *or* override any theme template or static file, with files in your working directory. +The following are key concepts for Hugo site customization with themes. Hugo permits you to supplement *or* override any theme template or static file with files in your working directory. {{% note %}} When you use a theme cloned from its git repository, do not edit the theme's files directly. Instead, theme customization in Hugo is a matter of *overriding* the templates made available to you in a theme. This provides the added flexibility of tweaking a theme to meet your needs while staying current with a theme's upstream. {{% /note %}} -## Understanding the Theme Lookup Order - -{{< readfile file="readfile-content/lookupexplanation.md" markdown="true" >}} - ## Replacing Static Files There are times where you want to include static assets that differ from versions of the same asset that ships with a theme. For example, if you would like to use a more recent version of jQuery than what the theme happens to include, simply place an identically-named file in the same relative location but in your working directory. diff --git a/content/variables/other-variables.md b/content/variables/other-variables.md index 7070f3f8a..ecec3ffd8 100644 --- a/content/variables/other-variables.md +++ b/content/variables/other-variables.md @@ -19,13 +19,13 @@ needsreview: true [Shortcodes][shortcodes] have access to parameters delimited in the shortcode declaration via [`.Get`][getfunction], page- and site-level variables, and also the following shortcode-specific fields: `.Parent` -: Provides access to the parent shortcode context in nested shortcodes. This can be very useful for inheritance of common shortcode parameters from the root. +: provides access to the parent shortcode context in nested shortcodes. This can be very useful for inheritance of common shortcode parameters from the root. `.IsNamedParams` -: Boolean that returns `true` when the shortcode in question uses [named rather than positional parameters][shortcodes] +: boolean that returns `true` when the shortcode in question uses [named rather than positional parameters][shortcodes] `.Inner` -: Represents the content between the opening and closing shortcode tags when a [closing shortcode][markdownshortcode] is used +: represents the content between the opening and closing shortcode tags when a [closing shortcode][markdownshortcode] is used ## Git Variables @@ -46,19 +46,19 @@ Hugo's Git integrations should be fairly performant but *can* increase your buil The `GitInfo` object contains the following fields: `.AbbreviatedHash` -: The abbreviated commit hash (e.g., `866cbcc`) +: the abbreviated commit hash (e.g., `866cbcc`) `.AuthorName` -: The author's name, respecting `.mailmap` +: the author's name, respecting `.mailmap` `.AuthorEmail` -: The author's email address, respecting `.mailmap` +: the author's email address, respecting `.mailmap` `.AuthorDate` -: The author date +: the author date `.Hash` -: The commit hash (e.g., `866cbccdab588b9908887ffd3b4f2667e94090c3`) +: the commit hash (e.g., `866cbccdab588b9908887ffd3b4f2667e94090c3`) `.Subject` : commit message subject (e.g., `tpl: Add custom index function`) @@ -68,16 +68,16 @@ The `GitInfo` object contains the following fields: The `.Hugo` variable provides easy access to Hugo-related data and contains the following fields: `.Hugo.Generator` -: Meta tag for the version of Hugo that generated the site. `.Hugo.Generator` outputs a *complete* HTML tag; e.g. `` +: ``` tag for the version of Hugo that generated the site. `.Hugo.Generator` outputs a *complete* HTML tag; e.g. `` `.Hugo.Version` -: The current version of the Hugo binary you are using e.g. `0.13-DEV`
    +: the current version of the Hugo binary you are using e.g. `0.13-DEV`
    `.Hugo.CommitHash` -: The git commit hash of the current Hugo binary e.g. `0e8bed9ccffba0df554728b46c5bbf6d78ae5247`
    +: the git commit hash of the current Hugo binary e.g. `0e8bed9ccffba0df554728b46c5bbf6d78ae5247` `.Hugo.BuildDate` -: The compile date of the current Hugo binary formatted with RFC 3339 e.g. `2002-10-02T10:00:00-05:00`
    +: the compile date of the current Hugo binary formatted with RFC 3339 e.g. `2002-10-02T10:00:00-05:00`
    {{% note "Use the Hugo Generator Tag" %}} We highly recommend using `.Hugo.Generator` in your website's ``. `.Hugo.Generator` is included by default in all themes hosted on [themes.gohugo.io](http://themes.gohugo.io). The generator tag allows the Hugo team to track the usage and popularity of Hugo. @@ -114,6 +114,19 @@ A menu entry in a [menu template][] has the following properties: `.Children` : Menu +## Sitemap Variable + +A sitemap is a `Page` and therefore has all the [page variables][pagevars] available to use sitemap templates. They also have the following sitemap-specific variables available to them: + +`.Sitemap.ChangeFreq` +: the page change frequency + +`.Sitemap.Priority` +: the priority of the page + +`.Sitemap.Filename` +: the sitemap filename + [configuration]: /getting-started/configuration/ [getfunction]: /functions/get/ diff --git a/content/variables/site-variables.md b/content/variables/site-variables.md index 64ef4b231..4b7a47f91 100644 --- a/content/variables/site-variables.md +++ b/content/variables/site-variables.md @@ -112,7 +112,7 @@ baseURL = "http://yoursite.example.com/" author = "Nikola Tesla" ``` -You can use `.Site.Params` in a [partial template](/templates/partial-templates/) to call the default site description: +You can use `.Site.Params` in a [partial template](/templates/partials/) to call the default site description: {{% code file="layouts/partials/head.html" %}} ```html diff --git a/static/css/style.min.css b/static/css/style.min.css index 39ee56099..c6aec66f4 100644 --- a/static/css/style.min.css +++ b/static/css/style.min.css @@ -1 +1 @@ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box;border-radius:0px !important;outline:none}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}html,body{margin:0px;padding:0px;outline:none;border:none;font-size:18px;font-family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif;color:#222;line-height:1.6;font-weight:300;overflow-x:hidden}body{font-size:90%;overflow-x:hidden;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}@media only screen and (min-width: 760px){body{font-size:95%}}@media only screen and (min-width: 960px){body{font-size:100%}}strong{font-weight:600;color:#222}p{margin-top:0px;margin-bottom:1.5em;line-height:1.6}@font-face{font-family:'fontello';src:url("/fonts/fontello/fontello.eot");src:url("/fonts/fontello/fontello.woff2") format("woff2"),url("/fonts/fontello/fontello.woff") format("woff"),url("/fonts/fontello/fontello.ttf") format("truetype"),url("/fonts/fontello/fontello.svg?78165468#fontello") format("svg");font-weight:normal;font-style:normal}[class^="icon-"]:before,[class*=" icon-"]:before{font-family:"fontello";font-style:normal;font-weight:normal;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-alert:before{content:'\e810'}.icon-angle-double-right:before{content:'\f101'}.icon-attach:before{content:'\e820'}.icon-attention:before{content:'\e80f'}.icon-bash:before{content:'\e804'}.icon-bell:before{content:'\e80d'}.icon-cancel:before{content:'\e81e'}.icon-caution:before{content:'\e80f'}.icon-chrome:before{content:'\e841'}.icon-clipboard:before{content:'\e817'}.icon-code:before{content:'\f121'}.icon-cog-alt:before{content:'\e814'}.icon-css3:before{content:'\f13c'}.icon-docs:before{content:'\f15c'}.icon-download:before{content:'\e815'}.icon-facebook-official:before{content:'\f230'}.icon-firefox:before{content:'\e840'}.icon-flag:before{content:'\e813'}.icon-forum:before{content:'\f03d';margin-right:.3em}.icon-github:before{content:'\f09b'}.icon-gitter:before{content:'\e819'}.icon-go:before{content:'\e801'}.icon-golang:before{content:'\e801'}.icon-heart:before{content:'\e81d'}.icon-help:before{content:'\e81b'}.icon-home:before{content:'\e812'}.icon-html.input:before{content:'\e81f'}.icon-html5:before{content:'\e800'}.icon-html:before{content:'\e800'}.icon-hugo:before{content:'\e81f'}.icon-ie:before{content:'\e843'}.icon-info:before{content:'\e811'}.icon-instagram:before{content:'\f32d'}.icon-javascript:before{content:'\e802'}.icon-js:before{content:'\e802'}.icon-json:before{content:'\e81c'}.icon-link:before{content:'\e816'}.icon-linkedin:before{content:'\f30c'}.icon-love:before{content:'\e81d'}.icon-mail:before{content:'\e821'}.icon-markdown:before{content:'\e80e'}.icon-md:before{content:'\e80e'}.icon-note:before{content:'\e80d'}.icon-opera:before{content:'\e842'}.icon-pdf:before{content:'\f1c1'}.icon-pencil:before{content:'\e80c'}.icon-picture:before{content:'\e808'}.icon-quote-left:before{content:'\e809'}.icon-quote-right:before{content:'\e80a'}.icon-sass:before{content:'\e803'}.icon-search:before{content:'\e80b'}.icon-sh:before{content:'\e804'}.icon-bash:before{content:'\e804'}.icon-share:before{content:'\f1e0'}.icon-tag:before{content:'\e806'}.icon-tags:before{content:'\e805'}.icon-terminal:before{content:'\e804'}.icon-thumbs-up:before{content:'\e81a'}.icon-twitter:before{content:'\e807'}.icon-warn:before{content:'\e810'}.icon-warning:before{content:'\e810'}.icon-website:before{content:'\e818'}.icon-yaml:before,.icon-yml:before,.icon-toml:before{content:'\f121'}@font-face{font-family:'FontAwesome';src:url("/fonts/fontawesome/fontawesome-webfont.eot?v=4.6.3");src:url("/fonts/fontawesome/fontawesome-webfont.eot?#iefix&v=4.6.3") format("embedded-opentype"),url("/fonts/fontawesome/fontawesome-webfont.woff2?v=4.6.3") format("woff2"),url("/afonts/fontawesome/fontawesome-webfont.woff?v=4.6.3") format("woff"),url("/fonts/fontawesome/fontawesome-webfont.ttf?v=4.6.3") format("truetype"),url("/fonts/fontawesome/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:0.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:0.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{-webkit-filter:none;filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-remove:before,.fa-close:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-hotel:before,.fa-bed:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-yc:before,.fa-y-combinator:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-tv:before,.fa-television:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:""}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-signing:before,.fa-sign-language:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}@font-face{font-family:"muli";src:url("/fonts/muli/muli-100-webfont.woff2") format("woff2"),url("/fonts/muli/muli-100-webfont.woff") format("woff"),url("/fonts/muli/muli-100-webfont.ttf") format("truetype");font-weight:100;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-100-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-100-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-100-italic-webfont.ttf") format("truetype");font-weight:100;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-300-webfont.woff2") format("woff2"),url("/fonts/muli/muli-300-webfont.woff") format("woff"),url("/fonts/muli/muli-300-webfont.ttf") format("truetype");font-weight:300;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-300-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-300-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-300-italic-webfont.ttf") format("truetype");font-weight:300;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-400-webfont.woff2") format("woff2"),url("/fonts/muli/muli-400-webfont.woff") format("woff"),url("/fonts/muli/muli-400-webfont.ttf") format("truetype");font-weight:400;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-400-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-400-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-400-italic-webfont.ttf") format("truetype");font-weight:400;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-600-webfont.woff2") format("woff2"),url("/fonts/muli/muli-600-webfont.woff") format("woff"),url("/fonts/muli/muli-600-webfont.ttf") format("truetype");font-weight:600;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-600-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-600-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-600-italic-webfont.ttf") format("truetype");font-weight:600;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-700-webfont.woff2") format("woff2"),url("/fonts/muli/muli-700-webfont.woff") format("woff"),url("/fonts/muli/muli-700-webfont.ttf") format("truetype");font-weight:700;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-700-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-700-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-700-italic-webfont.ttf") format("truetype");font-weight:700;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-800-webfont.woff2") format("woff2"),url("/fonts/muli/muli-800-webfont.woff") format("woff"),url("/fonts/muli/muli-800-webfont.ttf") format("truetype");font-weight:800;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-800-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-800-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-800-italic-webfont.ttf") format("truetype");font-weight:800;font-style:italic}@font-face{font-family:"courierprime";src:url("/fonts/courierprime/courierprime-400-webfont.woff2") format("woff2"),url("/fonts/courierprime/courierprime-400-webfont.woff") format("woff"),url("/fonts/courierprime/courierprime-400-webfont.ttf") format("truetype");font-weight:400;font-style:normal}@font-face{font-family:"courierprime";src:url("/fonts/courierprime/courierprime-400-italic-webfont.woff2") format("woff2"),url("/fonts/courierprime/courierprime-400-italic-webfont.woff") format("woff"),url("/fonts/courierprime/courierprime-400-italic-webfont.ttf") format("truetype");font-weight:400;font-style:italic}@font-face{font-family:"courierprime";src:url("/fonts/courierprime/courierprime-700-webfont.woff2") format("woff2"),url("/fonts/courierprime/courierprime-700-webfont.woff") format("woff"),url("/fonts/courierprime/courierprime-700-webfont.ttf") format("truetype");font-weight:700;font-style:normal}@font-face{font-family:"courierprime";src:url("/fonts/courierprime/courierprime-700-italic-webfont.woff2") format("woff2"),url("/fonts/courierprime/courierprime-700-italic-webfont.woff") format("woff"),url("/fonts/courierprime/courierprime-700-italic-webfont.ttf") format("truetype");font-weight:700;font-style:italic}h1,h2,h3,h4{font-weight:800;margin:0px;line-height:1.4;position:relative}h1>code,h2>code,h3>code,h4>code{font-weight:800}h1.page-title{font-size:2.2em;line-height:1.2;letter-spacing:-.021em;padding-bottom:0px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;margin-bottom:8px;font-weight:800}@media only screen and (min-width: 760px){h1.page-title{padding-top:0px}}h1.page-title img{display:inline;height:1em;width:1em;margin-right:.15em}h1.page-title i[class^="icon-"]{margin-left:-.15em;margin-right:.15em}h2,h3{padding-bottom:24px;padding-right:1.5em}h2{font-size:1.6em}h2.contents-list-heading{text-transform:uppercase;color:#737373}h2.contents-list-heading em{font-style:normal}h3{font-size:1.2em}h4{font-size:1.1em;margin-top:1em;margin-bottom:1em;color:#737373}.functions{font-family:"courierprime",courier,monospace;font-weight:300;color:inherit}.functions>em{font-style:normal;font-family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif;padding-left:.25em;padding-right:.25em;font-size:.8em;position:relative;margin-bottom:.3em}.submenu-item:first-child a.submenu-item-link.functions{font-family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif}hr{border-top:3px double #222}button,a[role="button"]{background-color:#0083C0;color:#fff;border:none;outline:none;border-radius:.25em;padding:.25em .5em;box-shadow:none;text-align:center;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24)}button:hover,a[role="button"]:hover{transition:box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23)}button[class^="icon-"]:before,a[role="button"][class^="icon-"]:before{display:inline-block;font-family:'FontAwesome';margin-right:.3em}button.icon-forum:before,a[role="button"].icon-forum:before{content:'\f086'}button.icon-mailing-list:before,a[role="button"].icon-mailing-list:before{content:'\f0e0'}nav ul,nav ol,aside ul,aside ol{margin-left:0px;padding-left:0px;list-style:none;text-indent:0px}nav ul li,nav ol li,aside ul li,aside ol li{position:relative;margin-left:0px;padding-left:0px;list-style:none}.body-copy ul,.body-copy ol{padding-left:.75em;margin-left:.5em;margin-top:0px;padding-top:0px;margin-bottom:1.5em}.body-copy ul li,.body-copy ol li{position:relative;margin-top:.25em}.body-copy ul li ul,.body-copy ul li ol,.body-copy ol li ul,.body-copy ol li ol{margin-bottom:0px}.body-copy ul{list-style:disc outside none}.body-copy ul li ul{list-style-type:circle}.body-copy ul li ul li ul{list-style-type:square}.body-copy ol li ol{list-style-type:lower-roman}.body-copy ol li ol li ol{list-style-type:lower-alpha}.body-copy dl{margin:0px;border-bottom:1px solid #ccc;border-top:1px solid #ccc;display:block;margin-bottom:1em;font-size:1em;clear:both;line-height:1.6;padding-top:.5em;padding-bottom:.5em}.body-copy dl dt{float:left;display:block;width:100%;clear:both;margin:0px;font-weight:bolder;margin-right:1em}.body-copy dl dd{margin:.5em 0em 0em 0em;text-indent:0px;height:auto;font-size:.9em;padding-top:.25em;padding-bottom:0em;padding-left:1.5em;padding-right:0em}.body-copy .utils-list{list-style:none;margin-left:0px;padding-left:0px}.body-copy .utils-list li{list-style:none;display:inline;margin-left:0px;padding-left:0px}a{color:#C9177E;font-weight:300}a,a:hover,a:active,a:focus{text-decoration:none;cursor:pointer}a:hover{text-decoration:none}.body-copy li a,.body-copy p a{z-index:1;color:#C9177E}.body-copy li a:hover,.body-copy p a:hover{border-bottom:1px solid #C9177E}a.tooltip{position:relative;overflow:visible}a.tooltip:hover::before{display:inline-block;position:absolute;line-height:1;bottom:-1.4em;font-size:12px;color:white;font-family:'fontello';min-width:80px;padding:.25em .33em;background-color:#222;content:attr(data-tooltip);white-space:nowrap;text-transform:none;font-weight:normal;border-radius:.25em}a.tooltip.left:hover::before{right:0px;left:auto}a.tooltip.right:hover::before{right:0px;left:auto}a.tooltip.edit-link:hover::after{content:'\f09b';font-family:'fontello';color:white;font-size:13px;display:inline-block;position:absolute;line-height:1;bottom:-1.1em;right:3px}a.tooltip.edit-link:hover::before{padding-right:1.5em}.icon-github:before{content:'\f09b'}a.heading-link{color:#a2a2a2;font-size:.7em;position:absolute;display:inline;top:.4em;right:0px}a.heading-link:before,a.heading-link:after{display:none}@media only screen and (min-width: 760px){a.heading-link{left:-1.5em}}a.heading-link:hover{color:#C9177E}.body-copy img{width:100%;max-width:100%;height:auto}.note,.warning{display:block;margin-bottom:20px;width:100%;border-left-width:2px;border-left-style:solid;border-left-color:#555;position:relative;padding-top:4px;padding-bottom:4px}.note:before,.warning:before{font-family:'fontello';display:block;position:absolute;top:40%;left:-.5em;z-index:10;background-color:#fff;border-radius:30%}.note h2,.warning h2{font-size:1.1em;color:#555;width:100%;display:block;margin:0px;padding:0px;margin-left:0px;padding:0px 12px;border:none;outline:none;border-bottom-width:2px;border-bottom-style:solid;display:inline-block;width:auto;z-index:20}.note h2 code,.note h2 pre,.warning h2 code,.warning h2 pre{color:inherit}.note h2 em,.note h2 strong,.warning h2 em,.warning h2 strong{color:inherit;font-weight:inherit}.note .shortcode-content,.warning .shortcode-content{display:block;margin:0px;font-size:1em;padding:8px;margin-left:12px;color:#555}.note .shortcode-content p:last-child,.warning .shortcode-content p:last-child{margin-bottom:0px}.note{border-color:#0083C0;background-color:#f9fdfe}.note:before{content:'\e80d';color:#0083C0;background-color:#f9fdfe}.note h2{border-bottom-color:#0083C0;color:#0083C0}.warning{border-color:#C9177E;background-color:#fef5fa}.warning:before{content:'\e810';color:#C9177E;background-color:#fef5fa}.warning h2{border-bottom-color:#C9177E;color:#C9177E}.warning h2 pre,.warning h2 code{color:#C9177E}.hljs{display:block;overflow-x:auto;padding:0.5em;background:#000;font-size:.9em}.hljs,.hljs-tag,.hljs-subst{color:#fff}.hljs-strong,.hljs-emphasis{color:silver}.hljs-bullet,.hljs-quote,.hljs-number,.hljs-regexp,.hljs-literal,.hljs-link{color:#0083C0}.hljs-code,.hljs-title,.hljs-section,.hljs-selector-class{color:#33BA91}.hljs-strong{font-weight:bold}.hljs-emphasis{font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-name,.hljs-attr{color:#ff4088}.hljs-symbol,.hljs-attribute{color:#0594CB}.hljs-params,.hljs-class .hljs-title{color:#fff}.hljs-string,.hljs-type,.hljs-built_in,.hljs-builtin-name,.hljs-selector-id,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-addition,.hljs-variable,.hljs-template-variable{color:#FCD804}.hljs-comment,.hljs-deletion,.hljs-meta{color:silver}.language-toml.hljs .hljs-section{color:#ff4088}code,pre{font-family:"courierprime",courier,monospace;margin:0px;color:#222}.body-copy>pre{transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23);text-shadow:none;padding:0px;margin:.5em 0px 32px 0px;overflow:auto}.body-copy>pre>code{color:#fff}.body-copy p code{display:inline-block;padding-top:.15em}.body-copy p code,.body-copy td code,.body-copy li code{font-size:.9em;display:inline-block;color:#222;font-family:"courierprime",courier,monospace;padding-left:.25em;padding-right:.25em;text-transform:none;line-height:1.2;margin-bottom:.15em;margin-top:0px;padding-top:.1em;vertical-align:bottom;background-color:#ededed;border:none;outline:none;z-index:-1}@media only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi){.body-copy p code,.body-copy td code,.body-copy li code{background-color:#fafafa}}.body-copy dd code,.body-copy dt code{background-color:#ededed;color:#222;font-family:"courierprime",courier,monospace}@media only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi){.body-copy dd code,.body-copy dt code{background-color:#fafafa}}.body-copy p>a code,.body-copy li>a code,.body-copy td>a code{color:#C9177E}.body-copy>pre{padding-bottom:20px;padding-top:20px;background-color:#000;font-family:"courierprime",courier,monospace;color:#fff}div.code-copy{position:relative;margin-top:1em;margin-bottom:32px;background-color:#000}div.code-copy.input{padding-bottom:24px}p+.code-copy{margin-top:0em}button.copy-button,button.download-button{display:block;box-shadow:none;padding:0px;transition:all .2s ease-in-out;opacity:1;background-color:#fff;box-sizing:border-box;position:absolute;bottom:0px;z-index:4;min-width:90px;width:auto;padding-left:4px;padding-right:4px;height:1.5em;border-width:0px;border-radius:0px;font-weight:bold;color:#222;font-size:14px;display:block;width:80px;line-height:24px;height:24px;vertical-align:middle;text-align:center;text-transform:uppercase}button.copy-button:hover,button.download-button:hover{background-color:#0083C0;box-shadow:none}button.copy-button:active,button.copy-button:focus,button.download-button:active,button.download-button:focus{outline:none;position:absolute}a[role="button"].see-code-source{position:absolute;top:1.75em;right:0px;border-radius:0px;background:transparent;text-transform:uppercase;color:#f2f2f2;font-size:14px}a[href*="bitbucket"].see-code-source:after{content:'\f171';font-family:'FontAwesome';display:inline-block;font-size:1.3em;color:inherit;margin-left:.2em}a[href*="github"].see-code-source:after{content:'\f09b';font-family:'FontAwesome';display:inline-block;font-size:1.3em;color:inherit;margin-left:.2em}a[href*="gitlab"].see-code-source:after{content:'\f296';font-family:'FontAwesome';display:inline-block;font-size:1.3em;color:inherit;margin-left:.2em}button.copy-button{display:none}@media only screen and (min-width: 760px){button.copy-button{display:block;right:0px}}button.copy-button i.icon-clipboard{display:inline}@media only screen and (min-device-width: 375px) and (max-device-width: 1024px) and (orientation: portrait) and (-webkit-min-device-pixel-ratio: 2){button.copy-button{display:none}}@media only screen and (min-device-width: 375px) and (max-device-width: 1024px) and (orientation: landscape) and (-webkit-min-device-pixel-ratio: 2){button.copy-button{display:none}}div.code-copy{position:relative;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23);transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);border-radius:0px}div.code-copy-header{position:relative;height:1.5em;line-height:1.5em;background-color:#5a5a5a;border-radius:0px;position:relative;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center}div.code-copy-header.output{background-color:#0083C0}div.code-copy-header.examplesite{background-color:#C9177E}div.code-copy-header span.filename{text-align:center;color:#fff;font-weight:100;font-size:12px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbols"}div.code-copy-header span.filename i.icon-website{color:inherit;font-weight:bold;font-size:18px}div.code-copy-header [class^="icon-"]{color:#fff}div.code-copy-header i.icon-sh.input,div.code-copy-header i.icon-bash.input{padding-right:.5em}.action-buttons{position:relative;left:10px;width:12px;height:12px;background:Crimson;border-radius:50%;box-shadow:18px 0 0 Orange, 36px 0 0 LimeGreen}.tooltipped{position:relative;background-color:#C9177E;padding-right:2em}.tooltipped:after{position:absolute;z-index:1000000;display:none;padding:2px 4px;font-size:.8em;font-weight:600;font-family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif;color:#fff;text-align:center;text-transform:uppercase;text-decoration:none;text-shadow:none;letter-spacing:normal;word-wrap:break-word;white-space:pre;pointer-events:none;content:attr(aria-label);background-color:#C9177E;border-color:#C9177E;border-radius:0px;-webkit-font-smoothing:subpixel-antialiased}.tooltipped:before{position:absolute;z-index:1000001;display:none;width:0;height:0;color:#C9177E;pointer-events:none;content:"";border:5px solid transparent}.tooltipped:hover:before,.tooltipped:hover:after,.tooltipped:active:before,.tooltipped:active:after,.tooltipped:focus:before,.tooltipped:focus:after{display:inline-block;text-decoration:none}.tooltipped-multiline:hover:after,.tooltipped-multiline:active:after,.tooltipped-multiline:focus:after{display:table-cell}.tooltipped-s:after,.tooltipped-se:after,.tooltipped-sw:after{top:100%;right:50%;margin-top:5px;text-align:center}.tooltipped-s:before,.tooltipped-se:before,.tooltipped-sw:before{top:auto;right:50%;bottom:-5px;margin-right:-5px;border-bottom-color:#C9177E;text-align:center}.tooltipped-se:after{right:auto;left:50%;margin-left:-15px;text-align:center}.tooltipped-sw:after{margin-right:-15px}.tooltipped-n:after,.tooltipped-ne:after,.tooltipped-nw:after{right:50%;bottom:100%;margin-bottom:5px}.tooltipped-n:before,.tooltipped-ne:before,.tooltipped-nw:before{top:-5px;right:50%;bottom:auto;margin-right:-5px;border-top-color:#C9177E}.tooltipped-ne:after{right:auto;left:50%;margin-left:-15px}.tooltipped-nw:after{margin-right:-15px}.tooltipped-s:after,.tooltipped-n:after{-webkit-transform:translateX(50%);transform:translateX(50%)}.tooltipped-w:after{right:100%;bottom:50%;margin-right:5px;-webkit-transform:translateY(50%);transform:translateY(50%)}.tooltipped-w:before{top:50%;bottom:50%;left:-5px;margin-top:-5px;border-left-color:#C9177E}.tooltipped-e:after{bottom:50%;left:100%;margin-left:5px;-webkit-transform:translateY(50%);transform:translateY(50%)}.tooltipped-e:before{top:50%;right:-5px;bottom:50%;margin-top:-5px;border-right-color:#C9177E}.tooltipped-multiline:after{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:250px;word-break:break-word;word-wrap:normal;white-space:pre-line;border-collapse:separate}.tooltipped-multiline.tooltipped-s:after,.tooltipped-multiline.tooltipped-n:after{right:auto;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.tooltipped-multiline.tooltipped-w:after,.tooltipped-multiline.tooltipped-e:after{right:100%}svg.svg-icon{max-width:60px}.icon-freebsd:before{height:1em;width:1em;content:'';display:inline-block;margin-left:-.15em;margin-right:0em;background-image:url(/images/hugo-icons/freebsd.svg);background-size:contain;background-repeat:no-repeat}span.no code{background-color:#C9177E;color:#fff}span.no:after{display:inline-block;height:1em;width:1em;font-family:'FontAwesome';content:'\f165';margin-left:.5em;font-size:1.2em;color:#C9177E}span.break{position:relative;display:inline-block;font-weight:bold;text-align:center;width:auto;left:calc(50% - 40px)}span.break:before,span.break:after{content:"";position:absolute;display:inline-block;height:.2em;border-bottom:1px solid black;border-top:1px solid black;top:.666em;width:140px}span.break:before{right:100%;margin-right:.5em}span.break:after{left:100%;margin-left:.5em}span.yes code{color:#fff;background-color:#00A88A}span.yes:after{display:inline-block;height:1em;width:1em;font-family:'FontAwesome';content:'\f164';color:#00A88A;margin-left:.5em;font-size:1.2em}span.na code{background-color:transparent;color:#bbb}h2 .fa.fa-thumbs-up,h3 .fa.fa-thumbs-up,h4 .fa.fa-thumbs-up,li .fa.fa-thumbs-up{color:#00A88A}h2 .fa.fa-thumbs-down,h3 .fa.fa-thumbs-down,h4 .fa.fa-thumbs-down,li .fa.fa-thumbs-down{color:#C9177E}ul.tags{list-style:none;margin:0;padding:0;margin-top:1em;margin-bottom:.5em;margin-right:4px;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;float:right}ul.tags li{height:20px;line-height:20px;margin-left:4px;margin-bottom:.75em;display:-ms-flexbox;display:flex}ul.tags li:not(.icon){transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24)}ul.tags li:not(.icon):hover{transition:box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23)}ul.tags li a{line-height:20px;-ms-flex-align:center;align-items:center;height:20px;font-size:14px;color:#222;padding-left:.3em;padding-right:.3em}.searchbox{display:inline-block;position:relative;width:300px;height:32px !important;white-space:nowrap;box-sizing:border-box;visibility:visible !important}.searchbox .algolia-autocomplete{display:block;width:100%;height:100%}.searchbox__wrapper{width:100%;height:100%;z-index:999;position:relative}.searchbox__input{display:inline-block;box-sizing:border-box;transition:box-shadow .4s ease, background .4s ease;border:0;border-radius:16px;box-shadow:inset 0 0 0 0px #ccc;background:#fff !important;padding:0;padding-right:26px;padding-left:32px;width:100%;height:100%;vertical-align:middle;white-space:normal;font-size:1em;appearance:none}.searchbox__input::-webkit-search-decoration,.searchbox__input::-webkit-search-cancel-button,.searchbox__input::-webkit-search-results-button,.searchbox__input::-webkit-search-results-decoration{display:none}.searchbox__input:hover{box-shadow:inset 0 0 0 0px #b3b3b3}.searchbox__input:focus,.searchbox__input:active{outline:0;box-shadow:inset 0 0 0 0px #aaa;background:#fff}.searchbox__input::-webkit-input-placeholder{color:#aaa}.searchbox__input::-moz-placeholder{color:#aaa}.searchbox__input:-ms-input-placeholder{color:#aaa}.searchbox__input::placeholder{color:#aaa}.searchbox__submit{position:absolute;top:0;margin:0;border:0;border-radius:16px 0 0 16px;background-color:rgba(69,142,225,0);padding:0;width:32px;height:100%;vertical-align:middle;text-align:center;font-size:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;right:inherit;left:0}.searchbox__submit::before{display:inline-block;margin-right:-4px;height:100%;vertical-align:middle;content:''}.searchbox__submit:hover,.searchbox__submit:active{cursor:pointer}.searchbox__submit:focus{outline:0}.searchbox__submit svg{width:14px;height:14px;vertical-align:middle;fill:#6D7E96}.searchbox__reset{display:block;position:absolute;top:8px;right:8px;margin:0;border:0;background:none;cursor:pointer;padding:0;font-size:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;fill:rgba(0,0,0,0.5)}.searchbox__reset.hide{display:none}.searchbox__reset:focus{outline:0}.searchbox__reset svg{display:block;margin:4px;width:8px;height:8px}.searchbox__input:valid ~ .searchbox__reset{display:block;-webkit-animation-name:sbx-reset-in;animation-name:sbx-reset-in;-webkit-animation-duration:.15s;animation-duration:.15s}@-webkit-keyframes sbx-reset-in{0%{-webkit-transform:translate3d(-20%, 0, 0);transform:translate3d(-20%, 0, 0);opacity:0}100%{-webkit-transform:none;transform:none;opacity:1}}@keyframes sbx-reset-in{0%{-webkit-transform:translate3d(-20%, 0, 0);transform:translate3d(-20%, 0, 0);opacity:0}100%{-webkit-transform:none;transform:none;opacity:1}}.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu{right:0 !important;left:inherit !important}.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu:before{right:48px}.algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu{left:0 !important;right:inherit !important}.algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu:before{left:48px}.algolia-autocomplete .ds-dropdown-menu{position:relative;top:-6px;border-radius:4px;margin:6px 0 0;padding:0;text-align:left;height:auto;position:relative;background:transparent;border:none;z-index:999;max-width:500px;min-width:400px;box-shadow:0 1px 0 0 rgba(0,0,0,0.2),0 2px 3px 0 rgba(0,0,0,0.1)}.algolia-autocomplete .ds-dropdown-menu:before{display:block;position:absolute;content:'';width:14px;height:14px;background:#fff;z-index:1000;top:-7px;border-top:1px solid #d9d9d9;border-right:1px solid #d9d9d9;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);border-radius:2px}.algolia-autocomplete .ds-dropdown-menu .ds-suggestions{position:relative;z-index:1000;margin-top:8px}.algolia-autocomplete .ds-dropdown-menu .ds-suggestion{cursor:pointer}.algolia-autocomplete .ds-dropdown-menu .ds-suggestion.ds-cursor .algolia-docsearch-suggestion.suggestion-layout-simple{background-color:rgba(69,142,225,0.05)}.algolia-autocomplete .ds-dropdown-menu .ds-suggestion.ds-cursor .algolia-docsearch-suggestion:not(.suggestion-layout-simple) .algolia-docsearch-suggestion--content{background-color:rgba(69,142,225,0.05)}.algolia-autocomplete .ds-dropdown-menu [class^="ds-dataset-"]{position:relative;border:solid 1px #d9d9d9;background:#fff;border-radius:4px;overflow:auto;padding:0 8px 8px}.algolia-autocomplete .ds-dropdown-menu *{box-sizing:border-box}.algolia-autocomplete .algolia-docsearch-suggestion{position:relative;padding:0 8px;background:#fff;color:#02060C;overflow:hidden}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#174d8c;background:rgba(143,187,237,0.1);padding:0.1em 0.05em}.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl0 .algolia-docsearch-suggestion--highlight,.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl1 .algolia-docsearch-suggestion--highlight{color:inherit;background:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{padding:0 0 1px;background:inherit;box-shadow:inset 0 -2px 0 0 rgba(69,142,225,0.8);color:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--content{display:block;float:right;width:70%;position:relative;padding:5.33333px 0 5.33333px 10.66667px;cursor:pointer}.algolia-autocomplete .algolia-docsearch-suggestion--content:before{content:'';position:absolute;display:block;top:0;height:100%;width:1px;background:#ddd;left:-1px}.algolia-autocomplete .algolia-docsearch-suggestion--category-header{position:relative;border-bottom:1px solid #ddd;display:none;margin-top:8px;padding:4px 0;font-size:1em;color:#33363D}.algolia-autocomplete .algolia-docsearch-suggestion--wrapper{width:100%;float:left;padding:8px 0 0 0}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{float:left;width:30%;display:none;padding-left:0;text-align:right;position:relative;padding:5.33333px 10.66667px;color:#A4A7AE;font-size:.9em;word-wrap:break-word}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column:before{content:'';position:absolute;display:block;top:0;height:100%;width:1px;background:#ddd;right:0}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column .algolia-docsearch-suggestion--highlight{background-color:inherit;color:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline{display:none}.algolia-autocomplete .algolia-docsearch-suggestion--title{margin-bottom:4px;color:#02060C;font-size:.9em;font-weight:bold}.algolia-autocomplete .algolia-docsearch-suggestion--text{display:block;line-height:1.2em;font-size:.85em;color:#63676D}.algolia-autocomplete .algolia-docsearch-suggestion--no-results{width:100%;padding:8px 0;text-align:center;font-size:1.2em}.algolia-autocomplete .algolia-docsearch-suggestion--no-results::before{display:none}.algolia-autocomplete .algolia-docsearch-suggestion code{padding:1px 5px;font-size:90%;border:none;color:#222222;background-color:#EBEBEB;border-radius:3px;font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.algolia-autocomplete .algolia-docsearch-suggestion code .algolia-docsearch-suggestion--highlight{background:none}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header{display:block}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary .algolia-docsearch-suggestion--subcategory-column{display:block}.algolia-autocomplete .suggestion-layout-simple.algolia-docsearch-suggestion{border-bottom:solid 1px #eee;padding:8px;margin:0}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--content{width:100%;padding:0}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--content::before{display:none}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header{margin:0;padding:0;display:block;width:100%;border:none}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl0{opacity:.6;font-size:.85em}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl1{opacity:.6;font-size:.85em}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl1::before{background-image:url('data:image/svg+xml;utf8,');content:'';width:10px;height:10px;display:inline-block}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--wrapper{width:100%;float:left;margin:0;padding:0}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--subcategory-column,.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--duplicate-content,.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--subcategory-inline{display:none !important}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--title{margin:0;color:#458EE1;font-size:.9em;font-weight:normal}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--title::before{content:"#";font-weight:bold;color:#458EE1;display:inline-block}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--text{margin:4px 0 0;display:block;line-height:1.4em;padding:5.33333px 8px;background:#f8f8f8;font-size:.85em;opacity:.8}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{color:#3f4145;font-weight:bold;box-shadow:none}.algolia-autocomplete .algolia-docsearch-footer{width:110px;height:20px;z-index:2000;margin-top:10.66667px;float:right;font-size:0;line-height:0}.algolia-autocomplete .algolia-docsearch-footer--logo{background-image:url("data:image/svg+xml;utf8,");background-repeat:no-repeat;background-position:center;background-size:100%;overflow:hidden;text-indent:-9000px;padding:0 !important;width:100%;height:100%;display:block}#toggle-search{display:block;position:fixed;top:.5em;right:.3em;float:right;margin-right:20px;font-size:1.2em;z-index:60}@media only screen and (min-width: 960px){#toggle-search{top:.3em}}form#site-search-form{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:100%;width:100vw;position:fixed;top:50px;height:45px;-webkit-transform:translateY(-50px);transform:translateY(-50px);background-color:#fff;z-index:19;box-shadow:0 3px 6px rgba(201,23,126,0.15),0 3px 6px rgba(201,23,126,0.3)}form#site-search-form.search-open{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;-webkit-transform:translateY(0);transform:translateY(0);border-bottom:1px solid #C9177E}form#site-search-form #search-input{max-height:45px;padding-left:20px;font-size:24px}@media only screen and (min-width: 960px){form#site-search-form{display:block;position:fixed;top:8px;right:0px;z-index:50;width:300px;-webkit-transform:translateX(290px);transform:translateX(290px);transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;box-shadow:none;max-height:40px}form#site-search-form.search-open{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;border-bottom-width:0px;-webkit-transform:translateX(0px);transform:translateX(0px)}form#site-search-form.search-open #search-input{transition:opacity .3 ease-in-out;opacity:1;border-bottom:3px solid #C9177E}form#site-search-form.search-open #search-input::after{display:inline-block;content:'';width:1em;border-bottom:3px solid #C9177E}form#site-search-form #search-input{transition:opacity .3s ease-in-out;max-height:40px;padding-left:0px;font-size:20px;opacity:0}}#search-input{width:260px;outline:none;border:0px;border-radius:0px}#search-input,#search-input:hover,#search-input:active,#search-input:focus{outline:none}.algolia-docsearch-suggestion{border-bottom-color:#3A3DD1}.algolia-docsearch-suggestion--highlight{color:#3A33D1}.algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--highlight{background-color:#4D47D5}.aa-cursor .algolia-docsearch-suggestion--content{color:#272296}.aa-cursor .algolia-docsearch-suggestion{background:#EBEBFB}.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{box-shadow:inset 0 -2px 0 0 #C9177E}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#C9177E;background:#f7e8f1;padding:0.1em 0.05em}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{background-color:#fff}.algolia-autocomplete .ds-dropdown-menu{font-size:.8em;min-width:340px;max-width:340px}@media only screen and (min-width: 760px){.algolia-autocomplete .ds-dropdown-menu{font-size:1em;min-width:400px;max-width:500px}}@media only screen and (min-width: 960px){.algolia-autocomplete .ds-dropdown-menu{min-width:500px;max-width:600px}}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column-text .algolia-docsearch-suggestion--highlight{color:#0083C0;font-weight:bold;background:#c9e8f6}@media (min-width: 768px){.algolia-docsearch-suggestion{border-bottom-color:#7671df}.algolia-docsearch-suggestion--subcategory-column{border-right-color:#7671df;background-color:#F2F2FF;color:#4E4726}}kbd{background-color:inherit;border:1px solid #222;display:inline-block;font-size:.9em;padding:.1em .3em;border-radius:5px;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24)}aside#toc{position:fixed;max-width:280px;min-width:280px;overflow-y:scroll;max-height:calc(100vh - 50px - 40px);padding-left:.5em;padding-right:.5em;bottom:40px;right:20px;height:auto;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24);z-index:30;background-color:#fff;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:bottom right;transform-origin:bottom right;opacity:0;border-radius:5px}aside#toc header.toc-header{display:inline-block;width:100%;margin-top:24px}aside#toc header.toc-header>a h3{margin-top:0px;margin-bottom:0px;margin-left:8px;padding-bottom:0px;border-bottom:1px solid #222;color:#222;font-size:17px}aside#toc.toc-open{-webkit-transform:scale(1);transform:scale(1);opacity:1}@media only screen and (min-width: 1200px){aside#toc{box-shadow:none;top:50px;right:0px;bottom:auto;opacity:1;min-height:calc(100vh - 50px);max-height:calc(100vh - 50px);-webkit-transform:scale(1);transform:scale(1);border-left:1px solid silver;border-radius:0px}}nav#TableOfContents{position:relative;margin-bottom:20px;height:auto}nav#TableOfContents li.active>a>code{color:inherit;font-weight:700}nav#TableOfContents>ul:first-child{padding-left:0px;margin-left:0px;margin-top:.5em;margin-bottom:2em}nav#TableOfContents>ul:first-child>li{padding-left:0px;margin-left:0px;font-size:18px}nav#TableOfContents ul>li>ul li{line-height:1.2;font-size:16px;padding-left:8px;position:relative;margin-top:.5em;margin-bottom:.5em}nav#TableOfContents ul>li>ul li a{color:#222;position:relative}@media only screen and (min-width: 960px){nav#TableOfContents ul>li>ul li a:hover{color:#C9177E}nav#TableOfContents ul>li>ul li a:hover::before{content:'';display:inline-block;height:100%;border-left:1px solid #C9177E;position:absolute;left:-8px}nav#TableOfContents ul>li>ul li a:hover code{color:inherit}}nav#TableOfContents ul>li>ul li.active>a{position:relative;color:#C9177E;font-weight:400}nav#TableOfContents ul>li>ul li.active>a::before{content:'';display:inline-block;height:100%;border-left:2px solid #C9177E;position:absolute;left:-8px}nav#TableOfContents ul>li>ul li>ul{display:block;margin-top:8px;margin-bottom:0px}nav#TableOfContents ul>li>ul li>ul>li{font-size:14px}@media only screen and (min-width: 960px){nav#TableOfContents ul>li>ul li>ul>li a:hover{color:#0083C0}nav#TableOfContents ul>li>ul li>ul>li a:hover::before{content:'';display:inline-block;height:100%;border-left:1px solid #0083C0;position:absolute;left:-16px}}nav#TableOfContents ul>li>ul li>ul>li.active>a{color:#0083C0;font-weight:400}nav#TableOfContents ul>li>ul li>ul>li.active>a::before{border-left:2px solid #C9177E;left:-16px}nav#TableOfContents ul>li>ul li>ul>li ul{display:none}a#toc-toggle{display:none}aside#toc+a#toc-toggle{display:block;position:fixed;bottom:40px;right:20px;background-color:#fff;color:#fff;background-color:#C9177E;height:40px;width:40px;z-index:99;line-height:50px;text-align:center;border-radius:5px;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 3px 6px rgba(0,0,0,0.16),0 3px 6px rgba(0,0,0,0.23)}aside#toc+a#toc-toggle:after{content:'\2026';display:block;position:relative;width:40px;height:40px;font-size:2em;line-height:40px;bottom:10px}aside#toc+a#toc-toggle.toc-open{box-shadow:none;background-color:#fff;color:#222}aside#toc+a#toc-toggle.toc-open::after{content:"\00D7";font-size:2em;bottom:0px}aside#toc+a#toc-toggle.toc-open:hover{box-shadow:none}aside#toc+a#toc-toggle:hover{transition:box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 19px 38px rgba(0,0,0,0.3),0 15px 12px rgba(0,0,0,0.22)}@media only screen and (min-width: 1200px){aside#toc+a#toc-toggle{display:none}}.contents-list{box-shadow:none;background-color:transparent;color:#222;border-bottom:1px solid silver;margin-bottom:1em;position:relative;font-size:.95em}.contents-list a{width:100%;color:#222}.contents-list a:before,.contents-list a:after,.contents-list a:hover{background-color:transparent;border:none;color:#222}.contents-list h3{margin-top:0px;padding-top:0px;padding-bottom:2px}.contents-list p{margin-top:8px;margin-bottom:16px}.taxonomy-term{font-size:1.3em;display:inline-block;width:auto;clear:both}.list-icon{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.list-icon-wrapper{max-width:1em;max-height:1em;margin-right:.2em}.list-icon-wrapper img{width:100%;height:auto;margin-bottom:0px;margin-left:auto;margin-right:auto;display:block}.last-modified{color:#737373;display:inline-block;min-width:200px;width:100%;text-align:center;font-size:.8em;position:relative;bottom:-1.75em}#content-footer{min-height:100px;height:auto;display:block;border-top:2px solid silver;width:100%;margin-bottom:2em}.prev-and-next-link{display:inline-block;margin-top:2em;min-width:45%;max-width:45%;min-height:70px;position:relative}@media only screen and (min-width: 760px){.prev-and-next-link{transition:background-color .3s ease-in-out}.prev-and-next-link:hover{transition:background-color .3s ease-in-out;background-color:#C9177E;color:#fff}}.prev-and-next-link:after{content:"";display:table;clear:both;min-height:100%}.prev-and-next-link .page-info{display:inline-block;position:relative}.prev-and-next-link .page-info h5{font-size:16px;padding:0px;margin:0px;line-height:1.2;margin-top:.5em}.prev-and-next-link .page-info span{width:100%;padding:0px;margin:0px;display:block;font-size:14px;line-height:1;margin-top:.5em}.prev-and-next-link i.fa.fa-chevron-right,.prev-and-next-link i.fa.fa-chevron-left{font-size:24px;position:absolute;top:23px}@media only screen and (min-width: 760px){.prev-and-next-link i.fa.fa-chevron-right,.prev-and-next-link i.fa.fa-chevron-left{font-size:30px;top:20px}}.prev-and-next-link i.fa.fa-chevron-left{left:0px}.prev-and-next-link i.fa.fa-chevron-right{right:0px}.prev-and-next-link.prev-page{text-align:left;float:left}.prev-and-next-link.prev-page .page-info{padding-left:1.75em}.prev-and-next-link.next-page{text-align:right;position:relative;right:0px;float:right}.prev-and-next-link.next-page .page-info{padding-right:1.75em}.prev-and-next-link:hover{text-decoration:none;border:0px solid transparent}.body-copy blockquote{position:relative;display:block;margin:0px;font-style:italic;background-color:#fafafa;padding:16px;margin-bottom:1em}.body-copy blockquote p{margin-bottom:0px;margin-top:16px}.body-copy blockquote p:first-child{margin-top:8px}.body-copy blockquote:before{font-family:'fontello';display:block;height:1em;width:1em;position:absolute;content:'\e809';color:silver;top:-3px;left:4px;font-size:1.2em;font-style:normal}.body-copy blockquote code,.body-copy blockquote pre{font-style:normal}.body-copy blockquote cite.blockquote-citation{position:relative;display:block;clear:both;text-align:right;line-height:2;font-size:14px;font-style:normal}.breadcrumbs{list-style:none;display:inline-block;margin-top:3px}.breadcrumbs li{float:left}.breadcrumbs li a{color:#222;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;background:#D1F1FE;text-decoration:none;position:relative;height:30px;line-height:30px;padding:0 10px 0 5px;text-align:center;margin-right:23px;font-size:14px}.breadcrumbs li a img{height:20px;width:20px}.breadcrumbs li a span{margin-left:4px}.breadcrumbs li:nth-child(even){margin-left:-8px}.breadcrumbs li:nth-child(even) a{background-color:#D1F1FE}.breadcrumbs li:nth-child(even) a:before{border-color:#D1F1FE;border-left-color:transparent;height:30px;line-height:30px}.breadcrumbs li:nth-child(even) a:after{border-left-color:#D1F1FE}.breadcrumbs li:first-child a{padding-left:10px;border-radius:4px 0 0 4px}.breadcrumbs li:first-child a:before{border:none}.breadcrumbs li:last-child::not(first-child) a{padding-right:15px;border-radius:0 4px 4px 0}.breadcrumbs li:last-child::not(first-child) a:after{border:none}.breadcrumbs li a:before,.breadcrumbs li a:after{content:"";position:absolute;top:0;border:0 solid #D1F1FE;border-width:15px 6.666px;width:0;height:0}.breadcrumbs li a:before{left:-12px;border-left-color:transparent}.breadcrumbs li a:after{left:100%;border-color:transparent;border-left-color:#D1F1FE}.breadcrumbs li a:hover{background-color:#0083C0;color:#fff}.breadcrumbs li a:hover img{-webkit-filter:grayscale(0%);filter:grayscale(0%)}.breadcrumbs li a:hover:before{border-color:#0083C0;border-left-color:transparent}.breadcrumbs li a:hover:after{border-left-color:#0083C0}table{text-align:left;overflow-x:scroll;width:100%;max-width:100%;width:auto;display:block;border-left:2px solid #737373;margin:0px;font-size:16px;margin-bottom:1em}table tr{border-top:2px solid #737373}table tr th,table tr td{padding-left:4px;padding-right:6px}table tr th:last-child,table tr td:last-child{border-right:2px solid #737373}table.terms-table td{width:50%}table thead{width:100%;background-color:#000;color:#fff}table thead tr{min-width:100%}table thead tr th{padding-left:4px;padding-right:6px}@media only screen and (min-width: 760px){table thead tr th:last-child{min-width:220px}}table tbody{min-width:100%}table tbody tr{min-width:100%;background-color:#fff}table tbody tr:nth-child(even){background-color:#d9d9d9}table tbody tr:last-child{border-bottom:2px solid #737373}table tbody tr small{font-size:1em}table tbody td .purpose-title{font-style:italic;color:#C9177E;font-weight:bold}table tbody td.bf-default code{color:#0083C0;font-weight:bold}table tbody td.bf-flag code{color:#00A88A;font-weight:bold}table.utils-table tr{line-height:1.2}table.utils-table tr>td:first-child{min-width:220px}table.bf-configuration tbody tr td.purpose-description ul{list-style:none;margin-left:0px;padding-left:0px}table.bf-configuration tbody tr td.purpose-description ul li{list-style:none}@media all{.featherlight{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483647;text-align:center;white-space:nowrap;cursor:pointer;background:#333}.featherlight:last-of-type{background:rgba(0,0,0,0.8)}.featherlight:before{content:'';display:inline-block;height:100%;vertical-align:middle;margin-right:-0.25em}.featherlight .featherlight-content{position:relative;text-align:left;vertical-align:middle;display:inline-block;overflow:auto;border-radius:0px;padding:0px;border-bottom:0px solid transparent;margin-left:5%;margin-right:5%;max-height:95%;background:#fff;cursor:auto;white-space:normal}.featherlight .featherlight-inner{display:block}.featherlight .featherlight-close-icon{position:absolute;z-index:9999;top:0;right:0;font-size:1.1em;line-height:2em;width:2em;cursor:pointer;text-align:center;font-family:Arial, sans-serif;background-color:rgba(255,255,255,0.8);color:#222}.featherlight .featherlight-image{width:100%}.featherlight-iframe .featherlight-content{border-bottom:0;padding:0}.featherlight iframe{border:none}.featherlight *{box-sizing:border-box}}@media only screen and (max-width: 1024px){.featherlight .featherlight-content{margin-left:10px;margin-right:10px;max-height:98%}}a.image-link:hover{border-bottom:0px solid transparent !important;cursor:zoom-in}.twitter-tweet.twitter-tweet-rendered{display:block;margin-left:auto;margin-right:auto}.body-copy>div{margin-bottom:1.5em}.site-header{width:100%;height:50px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin:0px;background-color:#fff;color:#000;position:fixed;top:0px;left:0px;z-index:20;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24)}@media only screen and (min-width: 960px){.site-header{-ms-flex-pack:justify;justify-content:space-between}}.site-header .hugo-meta{display:-ms-flexbox;display:flex;width:100%;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}@media only screen and (min-width: 960px){.site-header .hugo-meta{float:left;width:auto;-ms-flex-pack:start;justify-content:flex-start}}.site-header #home-link{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;font-size:.8em;margin-left:1.5em}.site-header #home-link img{height:35px;margin-right:.25em}.site-header #home-link .hugo-v{-ms-flex-item-align:end;align-self:flex-end;font-size:.9em}.site-header a.github-button{display:none}@media only screen and (min-width: 760px){.site-header a.github-button{display:inline}}.site-header iframe[src^="https://buttons.github.io"]{display:none;margin-left:1em}@media only screen and (min-width: 760px){.site-header iframe[src^="https://buttons.github.io"]{display:inline}}.site-navigation{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;position:fixed;left:0px;top:0px;width:280px;bottom:0px;overflow-y:scroll;background-color:#fafafa;-webkit-transform:translateX(-280px);transform:translateX(-280px);padding:0px;z-index:9;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center}.site-navigation.navigation-open{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;-webkit-transform:translateX(0px);transform:translateX(0px)}@media only screen and (min-width: 960px){.site-navigation{-webkit-transform:translateX(0px);transform:translateX(0px)}}.site-navigation ul li a{display:-ms-flexbox;display:flex}.site-navigation ul.top-menu{margin-top:80px;width:85%}@media only screen and (min-width: 960px){.site-navigation ul.top-menu{margin-top:60px}}.site-navigation ul.top-menu a{color:#222;font-weight:300;width:100%}.site-navigation ul.top-menu a:hover{color:#C9177E}.site-navigation ul.top-menu li{padding-left:0px;line-height:1.2;margin-top:.66em;margin-bottom:.66em}.site-navigation ul.top-menu li ul li{padding-left:.5em}.site-navigation ul.top-menu a.top-menu-item-link{font-size:16px;width:100%}.site-navigation ul.top-menu a.top-menu-item-link i.fa.fa-angle-double-right{margin-left:.25em}.site-navigation ul.top-menu a.top-menu-item-link.active-section{color:#C9177E;font-weight:700}.site-navigation ul.top-menu a.top-menu-item-link.active-section+ul.submenu{display:block;border-left:2px solid #C9177E}.site-navigation ul.top-menu ul.submenu{display:none;margin-left:.4em;padding-left:.5em}.site-navigation ul.top-menu ul.submenu li{line-height:1.3}.site-navigation ul.top-menu ul.submenu a.submenu-item-link{font-size:14px}.site-navigation ul.top-menu ul.submenu a.submenu-item-link:hover{color:#0083C0}.site-navigation ul.top-menu ul.submenu a.submenu-item-link.active-page{font-weight:700;color:#0083C0}.site-navigation ul.top-menu ul.submenu a.submenu-item-link.active-page>code{color:#0083C0}.site-navigation ul.top-menu ul.submenu a.submenu-item-link.active-page>code>em{font-style:normal;family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif}.nav-buttons{display:block;margin-left:auto;margin-right:auto;max-width:200px}.nav-buttons a{margin-bottom:.5em;display:inline-block;width:200px;max-width:200px;position:relative;font-size:.9em}.navigation-toggle-wrapper{width:50px;height:50px;position:fixed;top:2px;left:0px;z-index:20}.navigation-toggle-wrapper h4.menu{display:inline-block;position:absolute;bottom:-1em;left:.8em;color:#0083C0;display:none}@media only screen and (min-width: 960px){.navigation-toggle-wrapper{display:none}}.navigation-toggle-wrapper.navigation-open .top{-webkit-transform:rotate(45deg);transform:rotate(45deg);top:40%;border-radius:5px;background-color:#C9177E;border-color:#C9177E}.navigation-toggle-wrapper.navigation-open .middle{width:40px;height:40px;top:4%;border-radius:50%;background-color:#C9177E;border-color:#C9177E;opacity:0.3}.navigation-toggle-wrapper.navigation-open .bottom{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);top:40%;border-radius:5px;background-color:#C9177E;border-color:#C9177E}.bar{width:40px;height:2px;border:2px solid #0083C0;background-color:#0083C0;position:absolute;border-radius:10px}.bar.navigation-open{background-color:#C9177E;border:2px solid #C9177E}.top{left:15%;top:20%;transition:all 0.5s}.middle{left:15%;top:40%;transition:all 0.5s}.bottom{left:15%;top:60%;transition:all 0.5s}#all-content-wrapper{margin-top:50px;z-index:5;transition:all .3s ease-in-out;opacity:1;overflow-x:hidden}@media only screen and (min-width: 960px){#all-content-wrapper{margin-left:280px}}#all-content-wrapper.navigation-open{transition:all .3s ease-in-out;-webkit-transform:translateX(280px);transform:translateX(280px);opacity:.4;overflow-x:hidden}@media only screen and (min-width: 960px){#all-content-wrapper.navigation-open{opacity:1;-webkit-transform:translateX(0px);transform:translateX(0px);overflow-x:hidden}}main.main{width:100%;display:block;margin-left:auto;margin-right:auto;position:relative;min-height:calc(100vh - 100px)}@media only screen and (min-width: 1200px){main.main{width:100%;margin-right:0px;max-width:calc(100vw - 560px - 20px);float:left;padding-left:0px;padding-right:0px}}.content{width:90%;margin-left:auto;margin-right:auto;max-width:35em}@media only screen and (min-width: 960px){.content{float:left;margin-left:5%;margin-right:auto}}@media only screen and (min-width: 1200px){.content{min-width:35em;max-width:90%}}header.content-header{display:block;clear:both;width:100%;position:relative;margin-top:24px;overflow-x:hidden;margin-bottom:1em}.content-section-image-wrapper{margin-bottom:1em}.content-section-image-wrapper a{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;color:#222}.content-section-image-wrapper a img{width:20px}.content-section-image-wrapper a span{font-size:.8em;margin-left:.25em}.content-header-links{display:none;position:absolute;right:0px;top:0px;text-transform:uppercase;width:auto;overflow:visible}@media only screen and (min-width: 760px){.content-header-links{display:block}}.content-header-links a{position:relative;border:1px solid silver;display:inline-block;color:#222;padding:4px 6px;vertical-align:middle;height:36px;width:36px;line-height:36px;text-align:center;border-radius:.25em;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24)}.content-header-links a:hover{transition:box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23)}.content-header-links a:hover{color:#222}.content-header-links a i.icon-pencil{font-size:20px;position:relative;bottom:4px;right:2px}.content-header-links a svg{height:24px;width:24px;display:inline}.content-header-links a.godoc-link{border-right-width:0px}.body-copy{margin-top:0px;margin-bottom:2.5em;display:block;overflow:visible}.body-copy div+h2{margin-top:1em}.body-copy em{font-weight:bolder}main.showcase-list{width:90%;max-width:1200px;margin-left:auto;margin-right:auto}#showcase{display:-ms-flexbox;display:flex;list-style:none;padding-left:0px;margin-left:0px;width:100%;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between}#showcase li.showcase-site{list-style:none;padding-left:0px;margin-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24);margin-bottom:1.5em}@media only screen and (min-width: 760px){#showcase li.showcase-site{width:48%}}@media only screen and (min-width: 1200px){#showcase li.showcase-site{width:32%}}#showcase li.showcase-site .image-wrapper{width:100%;max-width:100%}#showcase li.showcase-site .image-wrapper img{width:100%;max-width:100%;border-bottom:1px solid #d9d9d9}#showcase li.showcase-site ul.tags{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%}#showcase li.showcase-site ul.tags li{margin-bottom:.25em;-ms-flex-item-align:start;align-self:flex-start;width:auto}#showcase li.showcase-site ul.tags li a{font-size:12px}#showcase li.showcase-site ul.tags li.tags-icon-li{box-shadow:none}#showcase li.showcase-site .showcase-meta{padding:10px}#showcase li.showcase-site .showcase-meta .showcase-links{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;font-size:.8em}#showcase li.showcase-site .showcase-meta .showcase-links .showcase-source{font-size:.8em;text-transform:uppercase}#showcase li.showcase-site .showcase-meta .showcase-links .showcase-title{font-weight:bold}#showcase li.showcase-site .showcase-meta .showcase-links .showcase-title a{font-weight:bold}#site-footer{background-color:#000;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;height:auto;padding-bottom:1em}#site-footer .footer-content{width:90%;margin-left:auto;margin-right:auto;color:#fff;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}#site-footer .footer-content span{text-align:center;width:100%;display:block;margin-top:1em}#site-footer .footer-content img{max-width:200px;margin-left:auto;margin-right:auto;display:block}#site-footer .footer-content .footer-lists{display:-ms-flexbox;display:flex;-ms-flex-pack:distribute;justify-content:space-around;margin-right:1em;margin-top:1em}#site-footer .footer-content .footer-lists .footer-list{max-width:45%}@media only screen and (min-width: 760px){#site-footer .footer-content{-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center}#site-footer .footer-content div{min-width:50%;width:50%;max-width:50%}#site-footer .footer-content .footer-lists{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}#site-footer .footer-content .footer-lists .footer-list{max-width:auto;margin-right:2em}}@media only screen and (min-width: 760px) and (min-width: 960px){#site-footer .footer-content .footer-lists .footer-list{min-width:150px}}@media only screen and (min-width: 760px){#site-footer{-ms-flex-direction:row;flex-direction:row}}@media only screen and (min-width: 960px){#site-footer{width:calc(100% - 280px);margin-left:280px}}@media only screen and (min-width: 1200px){#site-footer.withtoc{max-width:calc(100vw - 560px)}}ul.footer-list{color:#fff;list-style:none;margin-left:0px;padding-left:0px;margin:0px;-ms-flex-wrap:wrap;flex-wrap:wrap}ul.footer-list li a{color:#fff;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ul.footer-list li a:not(i){font-size:14px}ul.footer-list li a i{font-size:16px;margin-right:.25em}ul.footer-list li a i.icon-github:before{font-size:22px;margin-left:0px;margin-right:2px}ul.footer-list li a:hover{color:#C9177E}.all-content-wrapper.home{background-color:#d1f1fe;overflow-x:hidden}@media only screen and (min-width: 960px){.all-content-wrapper.home{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}}main#homepage{width:90%;margin-bottom:2.5em;margin-left:auto;margin-right:auto}.homepage-image{display:block;margin:1em auto;max-width:200px}.homepage-image img{max-width:200px;margin-left:auto;margin-right:auto}.homepage-cards{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:distribute;justify-content:space-around;-ms-flex-negative:0;flex-shrink:0;list-style:none;padding-left:0px;margin-left:0px;max-width:960px}.homepage-cards .homepage-card{transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24);color:inherit;width:100%;background-color:#fff;margin-bottom:.5em;padding:16px 10px;-ms-flex-negative:0;flex-shrink:0}.homepage-cards .homepage-card:hover{transition:box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23)}.homepage-cards .homepage-card a{display:-ms-flexbox;display:flex;min-height:100%}@media only screen and (min-width: 760px){.homepage-cards .homepage-card{-ms-flex:1 0 304px;flex:1 0 304px;max-width:48%;margin-bottom:1em}}.homepage-cards .homepage-card section{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center}.homepage-cards .homepage-card .homepage-card-image-wrapper{max-width:60px;min-width:60px;margin-right:10px}.homepage-cards .homepage-card .homepage-card-image-wrapper img{max-width:60px;margin-left:auto;margin-right:auto}@media only screen and (min-width: 760px){.homepage-cards .homepage-card .homepage-card-image-wrapper{max-width:70px;min-width:70px}.homepage-cards .homepage-card .homepage-card-image-wrapper img{max-width:70px}}.homepage-cards .homepage-card h2{font-size:1em;margin:0px;line-height:1.1;margin-bottom:.5em;padding-bottom:0px;padding-top:0px;color:#222}.homepage-cards .homepage-card p{font-size:.8em;line-height:1.3;margin-bottom:0px;color:#555}@media only screen and (min-width: 960px){.homepage-cards{margin-left:auto;margin-right:auto}}@media only screen and (min-width: 1200px){.homepage-cards{max-width:760px}}#beingreviewed{background-color:#C9177E;color:white;position:absolute;left:40px;top:20px;-webkit-transform:rotate(-10deg);transform:rotate(-10deg);font-weight:bold;width:200px;font-size:36px;padding:6px;z-index:9999;overflow:visible;text-align:center;border-radius:15px;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 19px 38px rgba(0,0,0,0.3),0 15px 12px rgba(0,0,0,0.22)}#outdated{background-color:#0083C0;color:white;position:absolute;right:40px;top:20px;-webkit-transform:rotate(10deg);transform:rotate(10deg);font-weight:bold;width:200px;font-size:32px;padding:6px;z-index:9999;overflow:visible;text-align:center;border-radius:15px;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 19px 38px rgba(0,0,0,0.3),0 15px 12px rgba(0,0,0,0.22)} +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box;border-radius:0px !important;outline:none}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}html,body{margin:0px;padding:0px;outline:none;border:none;font-size:18px;font-family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif;color:#222;line-height:1.6;font-weight:300;overflow-x:hidden}body{font-size:90%;overflow-x:hidden;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}@media only screen and (min-width: 760px){body{font-size:95%}}@media only screen and (min-width: 960px){body{font-size:100%}}strong{font-weight:600;color:#222}p{margin-top:0px;margin-bottom:1.5em;line-height:1.6}@font-face{font-family:'fontello';src:url("/fonts/fontello/fontello.eot");src:url("/fonts/fontello/fontello.woff2") format("woff2"),url("/fonts/fontello/fontello.woff") format("woff"),url("/fonts/fontello/fontello.ttf") format("truetype"),url("/fonts/fontello/fontello.svg?78165468#fontello") format("svg");font-weight:normal;font-style:normal}[class^="icon-"]:before,[class*=" icon-"]:before{font-family:"fontello";font-style:normal;font-weight:normal;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-alert:before{content:'\e810'}.icon-angle-double-right:before{content:'\f101'}.icon-attach:before{content:'\e820'}.icon-attention:before{content:'\e80f'}.icon-bash:before{content:'\e804'}.icon-bell:before{content:'\e80d'}.icon-cancel:before{content:'\e81e'}.icon-caution:before{content:'\e80f'}.icon-chrome:before{content:'\e841'}.icon-clipboard:before{content:'\e817'}.icon-code:before{content:'\f121'}.icon-cog-alt:before{content:'\e814'}.icon-css3:before{content:'\f13c'}.icon-docs:before{content:'\f15c'}.icon-download:before{content:'\e815'}.icon-facebook-official:before{content:'\f230'}.icon-firefox:before{content:'\e840'}.icon-flag:before{content:'\e813'}.icon-forum:before{content:'\f03d';margin-right:.3em}.icon-github:before{content:'\f09b'}.icon-gitter:before{content:'\e819'}.icon-go:before{content:'\e801'}.icon-golang:before{content:'\e801'}.icon-heart:before{content:'\e81d'}.icon-help:before{content:'\e81b'}.icon-home:before{content:'\e812'}.icon-html.input:before{content:'\e81f'}.icon-html5:before{content:'\e800'}.icon-html:before{content:'\e800'}.icon-hugo:before{content:'\e81f'}.icon-ie:before{content:'\e843'}.icon-info:before{content:'\e811'}.icon-instagram:before{content:'\f32d'}.icon-javascript:before{content:'\e802'}.icon-js:before{content:'\e802'}.icon-json:before{content:'\e81c'}.icon-link:before{content:'\e816'}.icon-linkedin:before{content:'\f30c'}.icon-love:before{content:'\e81d'}.icon-mail:before{content:'\e821'}.icon-markdown:before{content:'\e80e'}.icon-md:before{content:'\e80e'}.icon-note:before{content:'\e80d'}.icon-opera:before{content:'\e842'}.icon-pdf:before{content:'\f1c1'}.icon-pencil:before{content:'\e80c'}.icon-picture:before{content:'\e808'}.icon-quote-left:before{content:'\e809'}.icon-quote-right:before{content:'\e80a'}.icon-sass:before{content:'\e803'}.icon-search:before{content:'\e80b'}.icon-sh:before{content:'\e804'}.icon-bash:before{content:'\e804'}.icon-share:before{content:'\f1e0'}.icon-tag:before{content:'\e806'}.icon-tags:before{content:'\e805'}.icon-terminal:before{content:'\e804'}.icon-thumbs-up:before{content:'\e81a'}.icon-twitter:before{content:'\e807'}.icon-warn:before{content:'\e810'}.icon-warning:before{content:'\e810'}.icon-website:before{content:'\e818'}.icon-yaml:before,.icon-yml:before,.icon-toml:before{content:'\f121'}@font-face{font-family:'FontAwesome';src:url("/fonts/fontawesome/fontawesome-webfont.eot?v=4.6.3");src:url("/fonts/fontawesome/fontawesome-webfont.eot?#iefix&v=4.6.3") format("embedded-opentype"),url("/fonts/fontawesome/fontawesome-webfont.woff2?v=4.6.3") format("woff2"),url("/afonts/fontawesome/fontawesome-webfont.woff?v=4.6.3") format("woff"),url("/fonts/fontawesome/fontawesome-webfont.ttf?v=4.6.3") format("truetype"),url("/fonts/fontawesome/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:0.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:0.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{-webkit-filter:none;filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-remove:before,.fa-close:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-hotel:before,.fa-bed:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-yc:before,.fa-y-combinator:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-tv:before,.fa-television:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:""}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-signing:before,.fa-sign-language:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}@font-face{font-family:"muli";src:url("/fonts/muli/muli-100-webfont.woff2") format("woff2"),url("/fonts/muli/muli-100-webfont.woff") format("woff"),url("/fonts/muli/muli-100-webfont.ttf") format("truetype");font-weight:100;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-100-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-100-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-100-italic-webfont.ttf") format("truetype");font-weight:100;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-300-webfont.woff2") format("woff2"),url("/fonts/muli/muli-300-webfont.woff") format("woff"),url("/fonts/muli/muli-300-webfont.ttf") format("truetype");font-weight:300;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-300-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-300-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-300-italic-webfont.ttf") format("truetype");font-weight:300;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-400-webfont.woff2") format("woff2"),url("/fonts/muli/muli-400-webfont.woff") format("woff"),url("/fonts/muli/muli-400-webfont.ttf") format("truetype");font-weight:400;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-400-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-400-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-400-italic-webfont.ttf") format("truetype");font-weight:400;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-600-webfont.woff2") format("woff2"),url("/fonts/muli/muli-600-webfont.woff") format("woff"),url("/fonts/muli/muli-600-webfont.ttf") format("truetype");font-weight:600;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-600-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-600-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-600-italic-webfont.ttf") format("truetype");font-weight:600;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-700-webfont.woff2") format("woff2"),url("/fonts/muli/muli-700-webfont.woff") format("woff"),url("/fonts/muli/muli-700-webfont.ttf") format("truetype");font-weight:700;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-700-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-700-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-700-italic-webfont.ttf") format("truetype");font-weight:700;font-style:italic}@font-face{font-family:"muli";src:url("/fonts/muli/muli-800-webfont.woff2") format("woff2"),url("/fonts/muli/muli-800-webfont.woff") format("woff"),url("/fonts/muli/muli-800-webfont.ttf") format("truetype");font-weight:800;font-style:normal}@font-face{font-family:"muli";src:url("/fonts/muli/muli-800-italic-webfont.woff2") format("woff2"),url("/fonts/muli/muli-800-italic-webfont.woff") format("woff"),url("/fonts/muli/muli-800-italic-webfont.ttf") format("truetype");font-weight:800;font-style:italic}@font-face{font-family:"courierprime";src:url("/fonts/courierprime/courierprime-400-webfont.woff2") format("woff2"),url("/fonts/courierprime/courierprime-400-webfont.woff") format("woff"),url("/fonts/courierprime/courierprime-400-webfont.ttf") format("truetype");font-weight:400;font-style:normal}@font-face{font-family:"courierprime";src:url("/fonts/courierprime/courierprime-400-italic-webfont.woff2") format("woff2"),url("/fonts/courierprime/courierprime-400-italic-webfont.woff") format("woff"),url("/fonts/courierprime/courierprime-400-italic-webfont.ttf") format("truetype");font-weight:400;font-style:italic}@font-face{font-family:"courierprime";src:url("/fonts/courierprime/courierprime-700-webfont.woff2") format("woff2"),url("/fonts/courierprime/courierprime-700-webfont.woff") format("woff"),url("/fonts/courierprime/courierprime-700-webfont.ttf") format("truetype");font-weight:700;font-style:normal}@font-face{font-family:"courierprime";src:url("/fonts/courierprime/courierprime-700-italic-webfont.woff2") format("woff2"),url("/fonts/courierprime/courierprime-700-italic-webfont.woff") format("woff"),url("/fonts/courierprime/courierprime-700-italic-webfont.ttf") format("truetype");font-weight:700;font-style:italic}h1,h2,h3,h4{font-weight:800;margin:0px;line-height:1.4;position:relative}h1>code,h2>code,h3>code,h4>code{font-weight:800}h1.page-title{font-size:2.2em;line-height:1.2;letter-spacing:-.021em;padding-bottom:0px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;margin-bottom:8px;font-weight:800}@media only screen and (min-width: 760px){h1.page-title{padding-top:0px}}h1.page-title img{display:inline;height:1em;width:1em;margin-right:.15em}h1.page-title i[class^="icon-"]{margin-left:-.15em;margin-right:.15em}h2,h3{padding-bottom:24px;padding-right:1.5em}h2{font-size:1.6em}h2.contents-list-heading{text-transform:uppercase;color:#737373}h2.contents-list-heading em{font-style:normal}h3{font-size:1.2em}h4{font-size:1.1em;margin-top:1em;margin-bottom:1em;color:#737373}h5{font-size:1em;font-weight:bold;margin-bottom:1em;color:#222}.functions{font-family:"courierprime",courier,monospace;font-weight:300;color:inherit}.functions>em{font-style:normal;font-family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif;padding-left:.25em;padding-right:.25em;font-size:.8em;position:relative;margin-bottom:.3em}.submenu-item:first-child a.submenu-item-link.functions{font-family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif}hr{border-top:3px double #222}button,a[role="button"]{background-color:#0083C0;color:#fff;border:none;outline:none;border-radius:.25em;padding:.25em .5em;box-shadow:none;text-align:center;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24)}button:hover,a[role="button"]:hover{transition:box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23)}button[class^="icon-"]:before,a[role="button"][class^="icon-"]:before{display:inline-block;font-family:'FontAwesome';margin-right:.3em}button.icon-forum:before,a[role="button"].icon-forum:before{content:'\f086'}button.icon-mailing-list:before,a[role="button"].icon-mailing-list:before{content:'\f0e0'}nav ul,nav ol,aside ul,aside ol{margin-left:0px;padding-left:0px;list-style:none;text-indent:0px}nav ul li,nav ol li,aside ul li,aside ol li{position:relative;margin-left:0px;padding-left:0px;list-style:none}.body-copy ul,.body-copy ol{padding-left:.75em;margin-left:.5em;margin-top:0px;padding-top:0px;margin-bottom:1.5em}.body-copy ul li,.body-copy ol li{position:relative;margin-top:.25em}.body-copy ul li ul,.body-copy ul li ol,.body-copy ol li ul,.body-copy ol li ol{margin-bottom:0px}.body-copy ul{list-style:disc outside none}.body-copy ul li ul{list-style-type:circle}.body-copy ul li ul li ul{list-style-type:square}.body-copy ol li ol{list-style-type:lower-roman}.body-copy ol li ol li ol{list-style-type:lower-alpha}.body-copy dl{margin:0px;border-bottom:1px solid #ccc;border-top:1px solid #ccc;display:block;margin-bottom:1em;font-size:1em;clear:both;line-height:1.6;padding-top:.5em;padding-bottom:.5em}.body-copy dl dt{float:left;display:block;width:100%;clear:both;margin:0px;font-weight:bolder;margin-right:1em}.body-copy dl dd{margin:.5em 0em 0em 0em;text-indent:0px;height:auto;font-size:.9em;padding-top:.25em;padding-bottom:0em;padding-left:1.5em;padding-right:0em}.body-copy .utils-list{list-style:none;margin-left:0px;padding-left:0px}.body-copy .utils-list li{list-style:none;display:inline;margin-left:0px;padding-left:0px}a{color:#C9177E;font-weight:300}a,a:hover,a:active,a:focus{text-decoration:none;cursor:pointer}a:hover{text-decoration:none}.body-copy li a,.body-copy p a{z-index:1;color:#C9177E}.body-copy li a:hover,.body-copy p a:hover{border-bottom:1px solid #C9177E}a.tooltip{position:relative;overflow:visible;font-family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif}a.tooltip:hover::before{display:inline-block;position:absolute;line-height:1;bottom:-1.4em;font-size:12px;color:white;min-width:80px;padding:.25em .33em;background-color:#222;content:attr(data-tooltip);white-space:nowrap;text-transform:none;font-weight:normal;border-radius:.25em}a.tooltip.left:hover::before{right:0px;left:auto}a.tooltip.right:hover::before{right:0px;left:auto}a.tooltip.edit-link:hover::after{content:'\f09b';font-family:'fontello';color:white;font-size:13px;display:inline-block;position:absolute;line-height:1;bottom:-1.1em;right:3px}a.tooltip.edit-link:hover::before{padding-right:1.5em;font-family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif}.icon-github:before{content:'\f09b'}a.heading-link{color:#a2a2a2;font-size:.7em;position:absolute;display:inline;top:.4em;right:0px}a.heading-link:before,a.heading-link:after{display:none}@media only screen and (min-width: 760px){a.heading-link{left:-1.5em}}a.heading-link:hover{color:#C9177E}.body-copy img{width:100%;max-width:100%;height:auto}.note,.warning{display:block;margin-bottom:20px;width:100%;border-left-width:2px;border-left-style:solid;border-left-color:#555;position:relative;padding-top:4px;padding-bottom:4px}.note:before,.warning:before{font-family:'fontello';display:block;position:absolute;top:40%;left:-.5em;z-index:10;background-color:#fff;border-radius:30%}.note h2,.warning h2{font-size:1.1em;color:#555;width:100%;display:block;margin:0px;padding:0px;margin-left:0px;padding:0px 12px;border:none;outline:none;border-bottom-width:2px;border-bottom-style:solid;display:inline-block;width:auto;z-index:20}.note h2 code,.note h2 pre,.warning h2 code,.warning h2 pre{color:inherit}.note h2 em,.note h2 strong,.warning h2 em,.warning h2 strong{color:inherit;font-weight:inherit}.note .shortcode-content,.warning .shortcode-content{display:block;margin:0px;font-size:1em;padding:8px;margin-left:12px;color:#555}.note .shortcode-content p:last-child,.warning .shortcode-content p:last-child{margin-bottom:0px}.note{border-color:#0083C0;background-color:#f9fdfe}.note:before{content:'\e80d';color:#0083C0;background-color:#f9fdfe}.note h2{border-bottom-color:#0083C0;color:#0083C0}.warning{border-color:#C9177E;background-color:#fef5fa}.warning:before{content:'\e810';color:#C9177E;background-color:#fef5fa}.warning h2{border-bottom-color:#C9177E;color:#C9177E}.warning h2 pre,.warning h2 code{color:#C9177E}.hljs{display:block;overflow-x:auto;padding:0.5em;background:#000;font-size:.9em}.hljs,.hljs-tag,.hljs-subst{color:#fff}.hljs-strong,.hljs-emphasis{color:silver}.hljs-bullet,.hljs-quote,.hljs-number,.hljs-regexp,.hljs-literal,.hljs-link{color:#0083C0}.hljs-code,.hljs-title,.hljs-section,.hljs-selector-class{color:#33BA91}.hljs-strong{font-weight:bold}.hljs-emphasis{font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-name,.hljs-attr{color:#ff4088}.hljs-symbol,.hljs-attribute{color:#0594CB}.hljs-params,.hljs-class .hljs-title{color:#fff}.hljs-string,.hljs-type,.hljs-built_in,.hljs-builtin-name,.hljs-selector-id,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-addition,.hljs-variable,.hljs-template-variable{color:#FCD804}.hljs-comment,.hljs-deletion,.hljs-meta{color:silver}.language-toml.hljs .hljs-section{color:#ff4088}code,pre{font-family:"courierprime",courier,monospace;margin:0px;color:#222}.body-copy>pre{transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23);text-shadow:none;padding:0px;margin:.5em 0px 32px 0px;overflow:auto}.body-copy>pre>code{color:#fff}.body-copy p code{display:inline-block;padding-top:.15em}.body-copy p code,.body-copy td code,.body-copy li code{font-size:.9em;display:inline-block;color:#222;font-family:"courierprime",courier,monospace;padding-left:.25em;padding-right:.25em;text-transform:none;line-height:1.2;margin-bottom:.15em;margin-top:0px;padding-top:.1em;vertical-align:bottom;background-color:#ededed;border:none;outline:none;z-index:-1}@media only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi){.body-copy p code,.body-copy td code,.body-copy li code{background-color:#fafafa}}.body-copy dd code,.body-copy dt code{background-color:#ededed;color:#222;font-family:"courierprime",courier,monospace}@media only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi){.body-copy dd code,.body-copy dt code{background-color:#fafafa}}.body-copy p>a code,.body-copy li>a code,.body-copy td>a code{color:#C9177E}.body-copy>pre{padding-bottom:20px;padding-top:20px;background-color:#000;font-family:"courierprime",courier,monospace;color:#fff}div.code-copy{position:relative;margin-top:1em;margin-bottom:32px;background-color:#000}div.code-copy.input{padding-bottom:24px}p+.code-copy{margin-top:0em}button.copy-button,button.download-button{display:block;box-shadow:none;padding:0px;transition:all .2s ease-in-out;opacity:1;background-color:#fff;box-sizing:border-box;position:absolute;bottom:0px;z-index:4;min-width:90px;width:auto;padding-left:4px;padding-right:4px;height:1.5em;border-width:0px;border-radius:0px;font-weight:bold;color:#222;font-size:14px;display:block;width:80px;line-height:24px;height:24px;vertical-align:middle;text-align:center;text-transform:uppercase}button.copy-button:hover,button.download-button:hover{background-color:#0083C0;box-shadow:none}button.copy-button:active,button.copy-button:focus,button.download-button:active,button.download-button:focus{outline:none;position:absolute}a[role="button"].see-code-source{position:absolute;top:1.75em;right:0px;border-radius:0px;background:transparent;text-transform:uppercase;color:#f2f2f2;font-size:14px}a[href*="bitbucket"].see-code-source:after{content:'\f171';font-family:'FontAwesome';display:inline-block;font-size:1.3em;color:inherit;margin-left:.2em}a[href*="github"].see-code-source:after{content:'\f09b';font-family:'FontAwesome';display:inline-block;font-size:1.3em;color:inherit;margin-left:.2em}a[href*="gitlab"].see-code-source:after{content:'\f296';font-family:'FontAwesome';display:inline-block;font-size:1.3em;color:inherit;margin-left:.2em}button.copy-button{display:none}@media only screen and (min-width: 760px){button.copy-button{display:block;right:0px}}button.copy-button i.icon-clipboard{display:inline}@media only screen and (min-device-width: 375px) and (max-device-width: 1024px) and (orientation: portrait) and (-webkit-min-device-pixel-ratio: 2){button.copy-button{display:none}}@media only screen and (min-device-width: 375px) and (max-device-width: 1024px) and (orientation: landscape) and (-webkit-min-device-pixel-ratio: 2){button.copy-button{display:none}}div.code-copy{position:relative;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23);transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);border-radius:0px}div.code-copy-header{position:relative;height:1.5em;line-height:1.5em;background-color:#5a5a5a;border-radius:0px;position:relative;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center}div.code-copy-header.output{background-color:#0083C0}div.code-copy-header.examplesite{background-color:#C9177E}div.code-copy-header span.filename{text-align:center;color:#fff;font-weight:100;font-size:12px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbols"}div.code-copy-header span.filename i.icon-website{color:inherit;font-weight:bold;font-size:18px}div.code-copy-header [class^="icon-"]{color:#fff}div.code-copy-header i.icon-sh.input,div.code-copy-header i.icon-bash.input{padding-right:.5em}.action-buttons{position:relative;left:10px;width:12px;height:12px;background:Crimson;border-radius:50%;box-shadow:18px 0 0 Orange, 36px 0 0 LimeGreen}.tooltipped{position:relative;background-color:#C9177E;padding-right:2em}.tooltipped:after{position:absolute;z-index:1000000;display:none;padding:2px 4px;font-size:.8em;font-weight:600;font-family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif;color:#fff;text-align:center;text-transform:uppercase;text-decoration:none;text-shadow:none;letter-spacing:normal;word-wrap:break-word;white-space:pre;pointer-events:none;content:attr(aria-label);background-color:#C9177E;border-color:#C9177E;border-radius:0px;-webkit-font-smoothing:subpixel-antialiased}.tooltipped:before{position:absolute;z-index:1000001;display:none;width:0;height:0;color:#C9177E;pointer-events:none;content:"";border:5px solid transparent}.tooltipped:hover:before,.tooltipped:hover:after,.tooltipped:active:before,.tooltipped:active:after,.tooltipped:focus:before,.tooltipped:focus:after{display:inline-block;text-decoration:none}.tooltipped-multiline:hover:after,.tooltipped-multiline:active:after,.tooltipped-multiline:focus:after{display:table-cell}.tooltipped-s:after,.tooltipped-se:after,.tooltipped-sw:after{top:100%;right:50%;margin-top:5px;text-align:center}.tooltipped-s:before,.tooltipped-se:before,.tooltipped-sw:before{top:auto;right:50%;bottom:-5px;margin-right:-5px;border-bottom-color:#C9177E;text-align:center}.tooltipped-se:after{right:auto;left:50%;margin-left:-15px;text-align:center}.tooltipped-sw:after{margin-right:-15px}.tooltipped-n:after,.tooltipped-ne:after,.tooltipped-nw:after{right:50%;bottom:100%;margin-bottom:5px}.tooltipped-n:before,.tooltipped-ne:before,.tooltipped-nw:before{top:-5px;right:50%;bottom:auto;margin-right:-5px;border-top-color:#C9177E}.tooltipped-ne:after{right:auto;left:50%;margin-left:-15px}.tooltipped-nw:after{margin-right:-15px}.tooltipped-s:after,.tooltipped-n:after{-webkit-transform:translateX(50%);transform:translateX(50%)}.tooltipped-w:after{right:100%;bottom:50%;margin-right:5px;-webkit-transform:translateY(50%);transform:translateY(50%)}.tooltipped-w:before{top:50%;bottom:50%;left:-5px;margin-top:-5px;border-left-color:#C9177E}.tooltipped-e:after{bottom:50%;left:100%;margin-left:5px;-webkit-transform:translateY(50%);transform:translateY(50%)}.tooltipped-e:before{top:50%;right:-5px;bottom:50%;margin-top:-5px;border-right-color:#C9177E}.tooltipped-multiline:after{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:250px;word-break:break-word;word-wrap:normal;white-space:pre-line;border-collapse:separate}.tooltipped-multiline.tooltipped-s:after,.tooltipped-multiline.tooltipped-n:after{right:auto;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.tooltipped-multiline.tooltipped-w:after,.tooltipped-multiline.tooltipped-e:after{right:100%}svg.svg-icon{max-width:60px}.icon-freebsd:before{height:1em;width:1em;content:'';display:inline-block;margin-left:-.15em;margin-right:0em;background-image:url(/images/hugo-icons/freebsd.svg);background-size:contain;background-repeat:no-repeat}span.no code{background-color:#C9177E;color:#fff}span.no:after{display:inline-block;height:1em;width:1em;font-family:'FontAwesome';content:'\f165';margin-left:.5em;font-size:1.2em;color:#C9177E}span.break{position:relative;display:inline-block;font-weight:bold;text-align:center;width:auto;left:calc(50% - 40px)}span.break:before,span.break:after{content:"";position:absolute;display:inline-block;height:.2em;border-bottom:1px solid black;border-top:1px solid black;top:.666em;width:140px}span.break:before{right:100%;margin-right:.5em}span.break:after{left:100%;margin-left:.5em}span.yes code{color:#fff;background-color:#00A88A}span.yes:after{display:inline-block;height:1em;width:1em;font-family:'FontAwesome';content:'\f164';color:#00A88A;margin-left:.5em;font-size:1.2em}span.na code{background-color:transparent;color:#bbb}h2 .fa.fa-thumbs-up,h3 .fa.fa-thumbs-up,h4 .fa.fa-thumbs-up,li .fa.fa-thumbs-up{color:#00A88A}h2 .fa.fa-thumbs-down,h3 .fa.fa-thumbs-down,h4 .fa.fa-thumbs-down,li .fa.fa-thumbs-down{color:#C9177E}ul.tags{list-style:none;margin:0;padding:0;margin-top:1em;margin-bottom:.5em;margin-right:4px;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;float:right}ul.tags li{height:20px;line-height:20px;margin-left:4px;margin-bottom:.75em;display:-ms-flexbox;display:flex}ul.tags li:not(.icon){transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24)}ul.tags li:not(.icon):hover{transition:box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23)}ul.tags li a{line-height:20px;-ms-flex-align:center;align-items:center;height:20px;font-size:14px;color:#222;padding-left:.3em;padding-right:.3em}.searchbox{display:inline-block;position:relative;width:300px;height:32px !important;white-space:nowrap;box-sizing:border-box;visibility:visible !important}.searchbox .algolia-autocomplete{display:block;width:100%;height:100%}.searchbox__wrapper{width:100%;height:100%;z-index:999;position:relative}.searchbox__input{display:inline-block;box-sizing:border-box;transition:box-shadow .4s ease, background .4s ease;border:0;border-radius:16px;box-shadow:inset 0 0 0 0px #ccc;background:#fff !important;padding:0;padding-right:26px;padding-left:32px;width:100%;height:100%;vertical-align:middle;white-space:normal;font-size:1em;appearance:none}.searchbox__input::-webkit-search-decoration,.searchbox__input::-webkit-search-cancel-button,.searchbox__input::-webkit-search-results-button,.searchbox__input::-webkit-search-results-decoration{display:none}.searchbox__input:hover{box-shadow:inset 0 0 0 0px #b3b3b3}.searchbox__input:focus,.searchbox__input:active{outline:0;box-shadow:inset 0 0 0 0px #aaa;background:#fff}.searchbox__input::-webkit-input-placeholder{color:#aaa}.searchbox__input::-moz-placeholder{color:#aaa}.searchbox__input:-ms-input-placeholder{color:#aaa}.searchbox__input::placeholder{color:#aaa}.searchbox__submit{position:absolute;top:0;margin:0;border:0;border-radius:16px 0 0 16px;background-color:rgba(69,142,225,0);padding:0;width:32px;height:100%;vertical-align:middle;text-align:center;font-size:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;right:inherit;left:0}.searchbox__submit::before{display:inline-block;margin-right:-4px;height:100%;vertical-align:middle;content:''}.searchbox__submit:hover,.searchbox__submit:active{cursor:pointer}.searchbox__submit:focus{outline:0}.searchbox__submit svg{width:14px;height:14px;vertical-align:middle;fill:#6D7E96}.searchbox__reset{display:block;position:absolute;top:8px;right:8px;margin:0;border:0;background:none;cursor:pointer;padding:0;font-size:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;fill:rgba(0,0,0,0.5)}.searchbox__reset.hide{display:none}.searchbox__reset:focus{outline:0}.searchbox__reset svg{display:block;margin:4px;width:8px;height:8px}.searchbox__input:valid ~ .searchbox__reset{display:block;-webkit-animation-name:sbx-reset-in;animation-name:sbx-reset-in;-webkit-animation-duration:.15s;animation-duration:.15s}@-webkit-keyframes sbx-reset-in{0%{-webkit-transform:translate3d(-20%, 0, 0);transform:translate3d(-20%, 0, 0);opacity:0}100%{-webkit-transform:none;transform:none;opacity:1}}@keyframes sbx-reset-in{0%{-webkit-transform:translate3d(-20%, 0, 0);transform:translate3d(-20%, 0, 0);opacity:0}100%{-webkit-transform:none;transform:none;opacity:1}}.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu{right:0 !important;left:inherit !important}.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu:before{right:48px}.algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu{left:0 !important;right:inherit !important}.algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu:before{left:48px}.algolia-autocomplete .ds-dropdown-menu{position:relative;top:-6px;border-radius:4px;margin:6px 0 0;padding:0;text-align:left;height:auto;position:relative;background:transparent;border:none;z-index:999;max-width:500px;min-width:400px;box-shadow:0 1px 0 0 rgba(0,0,0,0.2),0 2px 3px 0 rgba(0,0,0,0.1)}.algolia-autocomplete .ds-dropdown-menu:before{display:block;position:absolute;content:'';width:14px;height:14px;background:#fff;z-index:1000;top:-7px;border-top:1px solid #d9d9d9;border-right:1px solid #d9d9d9;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);border-radius:2px}.algolia-autocomplete .ds-dropdown-menu .ds-suggestions{position:relative;z-index:1000;margin-top:8px}.algolia-autocomplete .ds-dropdown-menu .ds-suggestion{cursor:pointer}.algolia-autocomplete .ds-dropdown-menu .ds-suggestion.ds-cursor .algolia-docsearch-suggestion.suggestion-layout-simple{background-color:rgba(69,142,225,0.05)}.algolia-autocomplete .ds-dropdown-menu .ds-suggestion.ds-cursor .algolia-docsearch-suggestion:not(.suggestion-layout-simple) .algolia-docsearch-suggestion--content{background-color:rgba(69,142,225,0.05)}.algolia-autocomplete .ds-dropdown-menu [class^="ds-dataset-"]{position:relative;border:solid 1px #d9d9d9;background:#fff;border-radius:4px;overflow:auto;padding:0 8px 8px}.algolia-autocomplete .ds-dropdown-menu *{box-sizing:border-box}.algolia-autocomplete .algolia-docsearch-suggestion{position:relative;padding:0 8px;background:#fff;color:#02060C;overflow:hidden}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#174d8c;background:rgba(143,187,237,0.1);padding:0.1em 0.05em}.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl0 .algolia-docsearch-suggestion--highlight,.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl1 .algolia-docsearch-suggestion--highlight{color:inherit;background:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{padding:0 0 1px;background:inherit;box-shadow:inset 0 -2px 0 0 rgba(69,142,225,0.8);color:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--content{display:block;float:right;width:70%;position:relative;padding:5.33333px 0 5.33333px 10.66667px;cursor:pointer}.algolia-autocomplete .algolia-docsearch-suggestion--content:before{content:'';position:absolute;display:block;top:0;height:100%;width:1px;background:#ddd;left:-1px}.algolia-autocomplete .algolia-docsearch-suggestion--category-header{position:relative;border-bottom:1px solid #ddd;display:none;margin-top:8px;padding:4px 0;font-size:1em;color:#33363D}.algolia-autocomplete .algolia-docsearch-suggestion--wrapper{width:100%;float:left;padding:8px 0 0 0}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{float:left;width:30%;display:none;padding-left:0;text-align:right;position:relative;padding:5.33333px 10.66667px;color:#A4A7AE;font-size:.9em;word-wrap:break-word}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column:before{content:'';position:absolute;display:block;top:0;height:100%;width:1px;background:#ddd;right:0}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column .algolia-docsearch-suggestion--highlight{background-color:inherit;color:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline{display:none}.algolia-autocomplete .algolia-docsearch-suggestion--title{margin-bottom:4px;color:#02060C;font-size:.9em;font-weight:bold}.algolia-autocomplete .algolia-docsearch-suggestion--text{display:block;line-height:1.2em;font-size:.85em;color:#63676D}.algolia-autocomplete .algolia-docsearch-suggestion--no-results{width:100%;padding:8px 0;text-align:center;font-size:1.2em}.algolia-autocomplete .algolia-docsearch-suggestion--no-results::before{display:none}.algolia-autocomplete .algolia-docsearch-suggestion code{padding:1px 5px;font-size:90%;border:none;color:#222222;background-color:#EBEBEB;border-radius:3px;font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.algolia-autocomplete .algolia-docsearch-suggestion code .algolia-docsearch-suggestion--highlight{background:none}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header{display:block}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary .algolia-docsearch-suggestion--subcategory-column{display:block}.algolia-autocomplete .suggestion-layout-simple.algolia-docsearch-suggestion{border-bottom:solid 1px #eee;padding:8px;margin:0}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--content{width:100%;padding:0}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--content::before{display:none}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header{margin:0;padding:0;display:block;width:100%;border:none}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl0{opacity:.6;font-size:.85em}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl1{opacity:.6;font-size:.85em}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl1::before{background-image:url('data:image/svg+xml;utf8,');content:'';width:10px;height:10px;display:inline-block}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--wrapper{width:100%;float:left;margin:0;padding:0}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--subcategory-column,.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--duplicate-content,.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--subcategory-inline{display:none !important}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--title{margin:0;color:#458EE1;font-size:.9em;font-weight:normal}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--title::before{content:"#";font-weight:bold;color:#458EE1;display:inline-block}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--text{margin:4px 0 0;display:block;line-height:1.4em;padding:5.33333px 8px;background:#f8f8f8;font-size:.85em;opacity:.8}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{color:#3f4145;font-weight:bold;box-shadow:none}.algolia-autocomplete .algolia-docsearch-footer{width:110px;height:20px;z-index:2000;margin-top:10.66667px;float:right;font-size:0;line-height:0}.algolia-autocomplete .algolia-docsearch-footer--logo{background-image:url("data:image/svg+xml;utf8,");background-repeat:no-repeat;background-position:center;background-size:100%;overflow:hidden;text-indent:-9000px;padding:0 !important;width:100%;height:100%;display:block}#toggle-search{display:block;position:fixed;top:.5em;right:.3em;float:right;margin-right:20px;font-size:1.2em;z-index:60}@media only screen and (min-width: 960px){#toggle-search{top:.3em}}form#site-search-form{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:100%;width:100vw;position:fixed;top:50px;height:45px;-webkit-transform:translateY(-50px);transform:translateY(-50px);background-color:#fff;z-index:19;box-shadow:0 3px 6px rgba(201,23,126,0.15),0 3px 6px rgba(201,23,126,0.3)}form#site-search-form.search-open{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;-webkit-transform:translateY(0);transform:translateY(0);border-bottom:1px solid #C9177E}form#site-search-form #search-input{max-height:45px;padding-left:20px;font-size:24px}@media only screen and (min-width: 960px){form#site-search-form{display:block;position:fixed;top:8px;right:0px;z-index:50;width:300px;-webkit-transform:translateX(290px);transform:translateX(290px);transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;box-shadow:none;max-height:40px}form#site-search-form.search-open{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;border-bottom-width:0px;-webkit-transform:translateX(0px);transform:translateX(0px)}form#site-search-form.search-open #search-input{transition:opacity .3 ease-in-out;opacity:1;border-bottom:3px solid #C9177E}form#site-search-form.search-open #search-input::after{display:inline-block;content:'';width:1em;border-bottom:3px solid #C9177E}form#site-search-form #search-input{transition:opacity .3s ease-in-out;max-height:40px;padding-left:0px;font-size:20px;opacity:0}}#search-input{width:260px;outline:none;border:0px;border-radius:0px}#search-input,#search-input:hover,#search-input:active,#search-input:focus{outline:none}.algolia-docsearch-suggestion{border-bottom-color:#3A3DD1}.algolia-docsearch-suggestion--highlight{color:#3A33D1}.algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--highlight{background-color:#4D47D5}.aa-cursor .algolia-docsearch-suggestion--content{color:#272296}.aa-cursor .algolia-docsearch-suggestion{background:#EBEBFB}.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{box-shadow:inset 0 -2px 0 0 #C9177E}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#C9177E;background:#f7e8f1;padding:0.1em 0.05em}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{background-color:#fff}.algolia-autocomplete .ds-dropdown-menu{font-size:.8em;min-width:340px;max-width:340px}@media only screen and (min-width: 760px){.algolia-autocomplete .ds-dropdown-menu{font-size:1em;min-width:400px;max-width:500px}}@media only screen and (min-width: 960px){.algolia-autocomplete .ds-dropdown-menu{min-width:500px;max-width:600px}}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column-text .algolia-docsearch-suggestion--highlight{color:#0083C0;font-weight:bold;background:#c9e8f6}@media (min-width: 768px){.algolia-docsearch-suggestion{border-bottom-color:#7671df}.algolia-docsearch-suggestion--subcategory-column{border-right-color:#7671df;background-color:#F2F2FF;color:#4E4726}}kbd{background-color:inherit;border:1px solid #222;display:inline-block;font-size:.9em;padding:.1em .3em;border-radius:5px;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24)}aside#toc{position:fixed;max-width:280px;min-width:280px;overflow-y:scroll;max-height:calc(100vh - 50px - 40px);padding-left:.5em;padding-right:.5em;bottom:40px;right:20px;height:auto;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24);z-index:30;background-color:#fff;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:bottom right;transform-origin:bottom right;opacity:0;border-radius:5px}aside#toc header.toc-header{display:inline-block;width:100%;margin-top:24px}aside#toc header.toc-header>a h3{margin-top:0px;margin-bottom:0px;margin-left:8px;padding-bottom:0px;border-bottom:1px solid #222;color:#222;font-size:17px}aside#toc.toc-open{-webkit-transform:scale(1);transform:scale(1);opacity:1}@media only screen and (min-width: 1200px){aside#toc{box-shadow:none;top:50px;right:0px;bottom:auto;opacity:1;min-height:calc(100vh - 50px);max-height:calc(100vh - 50px);-webkit-transform:scale(1);transform:scale(1);border-left:1px solid silver;border-radius:0px}}nav#TableOfContents{position:relative;margin-bottom:20px;height:auto}nav#TableOfContents li.active>a>code{color:inherit;font-weight:700}nav#TableOfContents>ul:first-child{padding-left:0px;margin-left:0px;margin-top:.5em;margin-bottom:2em}nav#TableOfContents>ul:first-child>li{padding-left:0px;margin-left:0px;font-size:18px}nav#TableOfContents ul>li>ul li{line-height:1.2;font-size:16px;padding-left:8px;position:relative;margin-top:.5em;margin-bottom:.5em}nav#TableOfContents ul>li>ul li a{color:#222;position:relative}@media only screen and (min-width: 960px){nav#TableOfContents ul>li>ul li a:hover{color:#C9177E}nav#TableOfContents ul>li>ul li a:hover::before{content:'';display:inline-block;height:100%;border-left:1px solid #C9177E;position:absolute;left:-8px}nav#TableOfContents ul>li>ul li a:hover code{color:inherit}}nav#TableOfContents ul>li>ul li.active>a{position:relative;color:#C9177E;font-weight:400}nav#TableOfContents ul>li>ul li.active>a::before{content:'';display:inline-block;height:100%;border-left:2px solid #C9177E;position:absolute;left:-8px}nav#TableOfContents ul>li>ul li>ul{display:block;margin-top:8px;margin-bottom:0px}nav#TableOfContents ul>li>ul li>ul>li{font-size:14px}@media only screen and (min-width: 960px){nav#TableOfContents ul>li>ul li>ul>li a:hover{color:#0083C0}nav#TableOfContents ul>li>ul li>ul>li a:hover::before{content:'';display:inline-block;height:100%;border-left:1px solid #0083C0;position:absolute;left:-16px}}nav#TableOfContents ul>li>ul li>ul>li.active>a{color:#0083C0;font-weight:400}nav#TableOfContents ul>li>ul li>ul>li.active>a::before{border-left:2px solid #C9177E;left:-16px}nav#TableOfContents ul>li>ul li>ul>li ul{display:none}a#toc-toggle{display:none}aside#toc+a#toc-toggle{display:block;position:fixed;bottom:40px;right:20px;background-color:#fff;color:#fff;background-color:#C9177E;height:40px;width:40px;z-index:99;line-height:50px;text-align:center;border-radius:5px;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 3px 6px rgba(0,0,0,0.16),0 3px 6px rgba(0,0,0,0.23)}aside#toc+a#toc-toggle:after{content:'\2026';display:block;position:relative;width:40px;height:40px;font-size:2em;line-height:40px;bottom:10px}aside#toc+a#toc-toggle.toc-open{box-shadow:none;background-color:#fff;color:#222}aside#toc+a#toc-toggle.toc-open::after{content:"\00D7";font-size:2em;bottom:0px}aside#toc+a#toc-toggle.toc-open:hover{box-shadow:none}aside#toc+a#toc-toggle:hover{transition:box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 19px 38px rgba(0,0,0,0.3),0 15px 12px rgba(0,0,0,0.22)}@media only screen and (min-width: 1200px){aside#toc+a#toc-toggle{display:none}}.contents-list{box-shadow:none;background-color:transparent;color:#222;border-bottom:1px solid silver;margin-bottom:1em;position:relative;font-size:.95em}.contents-list a{width:100%;color:#222}.contents-list a:before,.contents-list a:after,.contents-list a:hover{background-color:transparent;border:none;color:#222}.contents-list h3{margin-top:0px;padding-top:0px;padding-bottom:2px}.contents-list p{margin-top:8px;margin-bottom:16px}.taxonomy-term{font-size:1.3em;display:inline-block;width:auto;clear:both}.list-icon{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.list-icon-wrapper{max-width:1em;max-height:1em;margin-right:.2em}.list-icon-wrapper img{width:100%;height:auto;margin-bottom:0px;margin-left:auto;margin-right:auto;display:block}.last-modified{color:#737373;display:inline-block;min-width:200px;width:100%;text-align:center;font-size:.8em;position:relative;bottom:-1.75em}#content-footer{min-height:100px;height:auto;display:block;border-top:2px solid silver;width:100%;margin-bottom:2em}.prev-and-next-link{display:inline-block;margin-top:2em;min-width:45%;max-width:45%;min-height:70px;position:relative}@media only screen and (min-width: 760px){.prev-and-next-link{transition:background-color .3s ease-in-out}.prev-and-next-link:hover{transition:background-color .3s ease-in-out;background-color:#C9177E;color:#fff}}.prev-and-next-link:after{content:"";display:table;clear:both;min-height:100%}.prev-and-next-link .page-info{display:inline-block;position:relative}.prev-and-next-link .page-info h5{font-size:16px;padding:0px;margin:0px;line-height:1.2;margin-top:.5em}.prev-and-next-link .page-info span{width:100%;padding:0px;margin:0px;display:block;font-size:14px;line-height:1;margin-top:.5em}.prev-and-next-link i.fa.fa-chevron-right,.prev-and-next-link i.fa.fa-chevron-left{font-size:24px;position:absolute;top:23px}@media only screen and (min-width: 760px){.prev-and-next-link i.fa.fa-chevron-right,.prev-and-next-link i.fa.fa-chevron-left{font-size:30px;top:20px}}.prev-and-next-link i.fa.fa-chevron-left{left:0px}.prev-and-next-link i.fa.fa-chevron-right{right:0px}.prev-and-next-link.prev-page{text-align:left;float:left}.prev-and-next-link.prev-page .page-info{padding-left:1.75em}.prev-and-next-link.next-page{text-align:right;position:relative;right:0px;float:right}.prev-and-next-link.next-page .page-info{padding-right:1.75em}.prev-and-next-link:hover{text-decoration:none;border:0px solid transparent}.body-copy blockquote{position:relative;display:block;margin:0px;font-style:italic;background-color:#fafafa;padding:16px;margin-bottom:1em}.body-copy blockquote p{margin-bottom:0px;margin-top:16px}.body-copy blockquote p:first-child{margin-top:8px}.body-copy blockquote:before{font-family:'fontello';display:block;height:1em;width:1em;position:absolute;content:'\e809';color:silver;top:-3px;left:4px;font-size:1.2em;font-style:normal}.body-copy blockquote code,.body-copy blockquote pre{font-style:normal}.body-copy blockquote cite.blockquote-citation{position:relative;display:block;clear:both;text-align:right;line-height:2;font-size:14px;font-style:normal}.breadcrumbs{list-style:none;display:inline-block;margin-top:3px}.breadcrumbs li{float:left}.breadcrumbs li a{color:#222;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;background:#D1F1FE;text-decoration:none;position:relative;height:30px;line-height:30px;padding:0 10px 0 5px;text-align:center;margin-right:23px;font-size:14px}.breadcrumbs li a img{height:20px;width:20px}.breadcrumbs li a span{margin-left:4px}.breadcrumbs li:nth-child(even){margin-left:-8px}.breadcrumbs li:nth-child(even) a{background-color:#D1F1FE}.breadcrumbs li:nth-child(even) a:before{border-color:#D1F1FE;border-left-color:transparent;height:30px;line-height:30px}.breadcrumbs li:nth-child(even) a:after{border-left-color:#D1F1FE}.breadcrumbs li:first-child a{padding-left:10px;border-radius:4px 0 0 4px}.breadcrumbs li:first-child a:before{border:none}.breadcrumbs li:last-child::not(first-child) a{padding-right:15px;border-radius:0 4px 4px 0}.breadcrumbs li:last-child::not(first-child) a:after{border:none}.breadcrumbs li a:before,.breadcrumbs li a:after{content:"";position:absolute;top:0;border:0 solid #D1F1FE;border-width:15px 6.666px;width:0;height:0}.breadcrumbs li a:before{left:-12px;border-left-color:transparent}.breadcrumbs li a:after{left:100%;border-color:transparent;border-left-color:#D1F1FE}.breadcrumbs li a:hover{background-color:#0083C0;color:#fff}.breadcrumbs li a:hover img{-webkit-filter:grayscale(0%);filter:grayscale(0%)}.breadcrumbs li a:hover:before{border-color:#0083C0;border-left-color:transparent}.breadcrumbs li a:hover:after{border-left-color:#0083C0}table{text-align:left;overflow-x:scroll;width:100%;max-width:100%;width:auto;display:block;border-left:2px solid #737373;margin:0px;font-size:16px;margin-bottom:1em}table tr{border-top:2px solid #737373}table tr th,table tr td{padding-left:4px;padding-right:6px}table tr th:last-child,table tr td:last-child{border-right:2px solid #737373}table.terms-table td{width:50%}table thead{width:100%;background-color:#000;color:#fff}table thead tr{min-width:100%}table thead tr th{padding-left:4px;padding-right:6px}@media only screen and (min-width: 760px){table thead tr th:last-child{min-width:220px}}table tbody{min-width:100%}table tbody tr{min-width:100%;background-color:#fff}table tbody tr:nth-child(even){background-color:#d9d9d9}table tbody tr:last-child{border-bottom:2px solid #737373}table tbody tr small{font-size:1em}table tbody td .purpose-title{font-style:italic;color:#C9177E;font-weight:bold}table tbody td.bf-default code{color:#0083C0;font-weight:bold}table tbody td.bf-flag code{color:#00A88A;font-weight:bold}table.utils-table tr{line-height:1.2}table.utils-table tr>td:first-child{min-width:220px}table.bf-configuration tbody tr td.purpose-description ul{list-style:none;margin-left:0px;padding-left:0px}table.bf-configuration tbody tr td.purpose-description ul li{list-style:none}@media all{.featherlight{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483647;text-align:center;white-space:nowrap;cursor:pointer;background:#333}.featherlight:last-of-type{background:rgba(0,0,0,0.8)}.featherlight:before{content:'';display:inline-block;height:100%;vertical-align:middle;margin-right:-0.25em}.featherlight .featherlight-content{position:relative;text-align:left;vertical-align:middle;display:inline-block;overflow:auto;border-radius:0px;padding:0px;border-bottom:0px solid transparent;margin-left:5%;margin-right:5%;max-height:95%;background:#fff;cursor:auto;white-space:normal}.featherlight .featherlight-inner{display:block}.featherlight .featherlight-close-icon{position:absolute;z-index:9999;top:0;right:0;font-size:1.1em;line-height:2em;width:2em;cursor:pointer;text-align:center;font-family:Arial, sans-serif;background-color:rgba(255,255,255,0.8);color:#222}.featherlight .featherlight-image{width:100%}.featherlight-iframe .featherlight-content{border-bottom:0;padding:0}.featherlight iframe{border:none}.featherlight *{box-sizing:border-box}}@media only screen and (max-width: 1024px){.featherlight .featherlight-content{margin-left:10px;margin-right:10px;max-height:98%}}a.image-link:hover{border-bottom:0px solid transparent !important;cursor:zoom-in}.twitter-tweet.twitter-tweet-rendered{display:block;margin-left:auto;margin-right:auto}.body-copy>div{margin-bottom:1.5em}.site-header{width:100%;height:50px;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin:0px;background-color:#fff;color:#000;position:fixed;top:0px;left:0px;z-index:20;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24)}@media only screen and (min-width: 960px){.site-header{-ms-flex-pack:justify;justify-content:space-between}}.site-header .hugo-meta{display:-ms-flexbox;display:flex;width:100%;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}@media only screen and (min-width: 960px){.site-header .hugo-meta{float:left;width:auto;-ms-flex-pack:start;justify-content:flex-start}}.site-header #home-link{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;font-size:.8em;margin-left:1.5em}.site-header #home-link img{height:35px;margin-right:.25em}.site-header #home-link .hugo-v{-ms-flex-item-align:end;align-self:flex-end;font-size:.9em}.site-header a.github-button{display:none}@media only screen and (min-width: 760px){.site-header a.github-button{display:inline}}.site-header iframe[src^="https://buttons.github.io"]{display:none;margin-left:1em}@media only screen and (min-width: 760px){.site-header iframe[src^="https://buttons.github.io"]{display:inline}}.site-navigation{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;position:fixed;left:0px;top:0px;width:280px;bottom:0px;overflow-y:scroll;background-color:#fafafa;-webkit-transform:translateX(-280px);transform:translateX(-280px);padding:0px;z-index:9;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center}.site-navigation.navigation-open{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;-webkit-transform:translateX(0px);transform:translateX(0px)}@media only screen and (min-width: 960px){.site-navigation{-webkit-transform:translateX(0px);transform:translateX(0px)}}.site-navigation ul li a{display:-ms-flexbox;display:flex}.site-navigation ul.top-menu{margin-top:80px;width:85%}@media only screen and (min-width: 960px){.site-navigation ul.top-menu{margin-top:60px}}.site-navigation ul.top-menu a{color:#222;font-weight:300;width:100%}.site-navigation ul.top-menu a:hover{color:#C9177E}.site-navigation ul.top-menu li{padding-left:0px;line-height:1.2;margin-top:.66em;margin-bottom:.66em}.site-navigation ul.top-menu li ul li{padding-left:.5em}.site-navigation ul.top-menu a.top-menu-item-link{font-size:16px;width:100%}.site-navigation ul.top-menu a.top-menu-item-link i.fa.fa-angle-double-right{margin-left:.25em}.site-navigation ul.top-menu a.top-menu-item-link.active-section{color:#C9177E;font-weight:700}.site-navigation ul.top-menu a.top-menu-item-link.active-section+ul.submenu{display:block;border-left:2px solid #C9177E}.site-navigation ul.top-menu ul.submenu{display:none;margin-left:.4em;padding-left:.5em}.site-navigation ul.top-menu ul.submenu li{line-height:1.3}.site-navigation ul.top-menu ul.submenu a.submenu-item-link{font-size:14px}.site-navigation ul.top-menu ul.submenu a.submenu-item-link:hover{color:#0083C0}.site-navigation ul.top-menu ul.submenu a.submenu-item-link.active-page{font-weight:700;color:#0083C0}.site-navigation ul.top-menu ul.submenu a.submenu-item-link.active-page>code{color:#0083C0}.site-navigation ul.top-menu ul.submenu a.submenu-item-link.active-page>code>em{font-style:normal;family:"muli","Helvetica Neue","Helvetica","Roboto","Arial",sans-serif}.nav-buttons{display:block;margin-left:auto;margin-right:auto;max-width:200px}.nav-buttons a{margin-bottom:.5em;display:inline-block;width:200px;max-width:200px;position:relative;font-size:.9em}.navigation-toggle-wrapper{width:50px;height:50px;position:fixed;top:2px;left:0px;z-index:20}.navigation-toggle-wrapper h4.menu{display:inline-block;position:absolute;bottom:-1em;left:.8em;color:#0083C0;display:none}@media only screen and (min-width: 960px){.navigation-toggle-wrapper{display:none}}.navigation-toggle-wrapper.navigation-open .top{-webkit-transform:rotate(45deg);transform:rotate(45deg);top:40%;border-radius:5px;background-color:#C9177E;border-color:#C9177E}.navigation-toggle-wrapper.navigation-open .middle{width:40px;height:40px;top:4%;border-radius:50%;background-color:#C9177E;border-color:#C9177E;opacity:0.3}.navigation-toggle-wrapper.navigation-open .bottom{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);top:40%;border-radius:5px;background-color:#C9177E;border-color:#C9177E}.bar{width:40px;height:2px;border:2px solid #0083C0;background-color:#0083C0;position:absolute;border-radius:10px}.bar.navigation-open{background-color:#C9177E;border:2px solid #C9177E}.top{left:15%;top:20%;transition:all 0.5s}.middle{left:15%;top:40%;transition:all 0.5s}.bottom{left:15%;top:60%;transition:all 0.5s}#all-content-wrapper{margin-top:50px;z-index:5;transition:all .3s ease-in-out;opacity:1;overflow-x:hidden}@media only screen and (min-width: 960px){#all-content-wrapper{margin-left:280px}}#all-content-wrapper.navigation-open{transition:all .3s ease-in-out;-webkit-transform:translateX(280px);transform:translateX(280px);opacity:.4;overflow-x:hidden}@media only screen and (min-width: 960px){#all-content-wrapper.navigation-open{opacity:1;-webkit-transform:translateX(0px);transform:translateX(0px);overflow-x:hidden}}main.main{width:100%;display:block;margin-left:auto;margin-right:auto;position:relative;min-height:calc(100vh - 100px)}@media only screen and (min-width: 1200px){main.main{width:100%;margin-right:0px;max-width:calc(100vw - 560px - 20px);float:left;padding-left:0px;padding-right:0px}}.content{width:90%;margin-left:auto;margin-right:auto;max-width:35em}@media only screen and (min-width: 960px){.content{float:left;margin-left:5%;margin-right:auto}}@media only screen and (min-width: 1200px){.content{min-width:35em;max-width:90%}}header.content-header{display:block;clear:both;width:100%;position:relative;margin-top:24px;overflow-x:hidden;margin-bottom:1em}.content-section-image-wrapper{margin-bottom:1em}.content-section-image-wrapper a{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;color:#222}.content-section-image-wrapper a img{width:20px}.content-section-image-wrapper a span{font-size:.8em;margin-left:.25em}.content-header-links{display:none;position:absolute;right:0px;top:0px;text-transform:uppercase;width:auto;overflow:visible}@media only screen and (min-width: 760px){.content-header-links{display:block}}.content-header-links a{position:relative;border:1px solid silver;display:inline-block;color:#222;padding:4px 6px;vertical-align:middle;height:36px;width:36px;line-height:36px;text-align:center;border-radius:.25em;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24)}.content-header-links a:hover{transition:box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23)}.content-header-links a:hover{color:#222}.content-header-links a i.icon-pencil{font-size:20px;position:relative;bottom:4px;right:2px}.content-header-links a svg{height:24px;width:24px;display:inline}.content-header-links a.godoc-link{border-right-width:0px}.body-copy{margin-top:0px;margin-bottom:2.5em;display:block;overflow:visible}.body-copy div+h2{margin-top:1em}.body-copy em{font-weight:bolder}main.showcase-list{width:90%;max-width:1200px;margin-left:auto;margin-right:auto}#showcase{display:-ms-flexbox;display:flex;list-style:none;padding-left:0px;margin-left:0px;width:100%;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between}#showcase li.showcase-site{list-style:none;padding-left:0px;margin-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24);margin-bottom:1.5em}@media only screen and (min-width: 760px){#showcase li.showcase-site{width:48%}}@media only screen and (min-width: 1200px){#showcase li.showcase-site{width:32%}}#showcase li.showcase-site .image-wrapper{width:100%;max-width:100%}#showcase li.showcase-site .image-wrapper img{width:100%;max-width:100%;border-bottom:1px solid #d9d9d9}#showcase li.showcase-site ul.tags{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%}#showcase li.showcase-site ul.tags li{margin-bottom:.25em;-ms-flex-item-align:start;align-self:flex-start;width:auto}#showcase li.showcase-site ul.tags li a{font-size:12px}#showcase li.showcase-site ul.tags li.tags-icon-li{box-shadow:none}#showcase li.showcase-site .showcase-meta{padding:10px}#showcase li.showcase-site .showcase-meta .showcase-links{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;font-size:.8em}#showcase li.showcase-site .showcase-meta .showcase-links .showcase-source{font-size:.8em;text-transform:uppercase}#showcase li.showcase-site .showcase-meta .showcase-links .showcase-title{font-weight:bold}#showcase li.showcase-site .showcase-meta .showcase-links .showcase-title a{font-weight:bold}#site-footer{background-color:#000;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;height:auto;padding-bottom:1em}#site-footer .footer-content{width:90%;margin-left:auto;margin-right:auto;color:#fff;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}#site-footer .footer-content span{text-align:center;width:100%;display:block;margin-top:1em}#site-footer .footer-content img{max-width:200px;margin-left:auto;margin-right:auto;display:block}#site-footer .footer-content .footer-lists{display:-ms-flexbox;display:flex;-ms-flex-pack:distribute;justify-content:space-around;margin-right:1em;margin-top:1em}#site-footer .footer-content .footer-lists .footer-list{max-width:45%}@media only screen and (min-width: 760px){#site-footer .footer-content{-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center}#site-footer .footer-content div{min-width:50%;width:50%;max-width:50%}#site-footer .footer-content .footer-lists{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}#site-footer .footer-content .footer-lists .footer-list{max-width:auto;margin-right:2em}}@media only screen and (min-width: 760px) and (min-width: 960px){#site-footer .footer-content .footer-lists .footer-list{min-width:150px}}@media only screen and (min-width: 760px){#site-footer{-ms-flex-direction:row;flex-direction:row}}@media only screen and (min-width: 960px){#site-footer{width:calc(100% - 280px);margin-left:280px}}@media only screen and (min-width: 1200px){#site-footer.withtoc{max-width:calc(100vw - 560px)}}ul.footer-list{color:#fff;list-style:none;margin-left:0px;padding-left:0px;margin:0px;-ms-flex-wrap:wrap;flex-wrap:wrap}ul.footer-list li a{color:#fff;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ul.footer-list li a:not(i){font-size:14px}ul.footer-list li a i{font-size:16px;margin-right:.25em}ul.footer-list li a i.icon-github:before{font-size:22px;margin-left:0px;margin-right:2px}ul.footer-list li a:hover{color:#C9177E}.all-content-wrapper.home{background-color:#d1f1fe;overflow-x:hidden}@media only screen and (min-width: 960px){.all-content-wrapper.home{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}}main#homepage{width:90%;margin-bottom:2.5em;margin-left:auto;margin-right:auto}.homepage-image{display:block;margin:1em auto;max-width:200px}.homepage-image img{max-width:200px;margin-left:auto;margin-right:auto}.homepage-cards{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:distribute;justify-content:space-around;-ms-flex-negative:0;flex-shrink:0;list-style:none;padding-left:0px;margin-left:0px;max-width:960px}.homepage-cards .homepage-card{transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24);color:inherit;width:100%;background-color:#fff;margin-bottom:.5em;padding:16px 10px;-ms-flex-negative:0;flex-shrink:0}.homepage-cards .homepage-card:hover{transition:box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 10px 20px rgba(0,0,0,0.19),0 6px 6px rgba(0,0,0,0.23)}.homepage-cards .homepage-card a{display:-ms-flexbox;display:flex;min-height:100%}@media only screen and (min-width: 760px){.homepage-cards .homepage-card{-ms-flex:1 0 304px;flex:1 0 304px;max-width:48%;margin-bottom:1em}}.homepage-cards .homepage-card section{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center}.homepage-cards .homepage-card .homepage-card-image-wrapper{max-width:60px;min-width:60px;margin-right:10px}.homepage-cards .homepage-card .homepage-card-image-wrapper img{max-width:60px;margin-left:auto;margin-right:auto}@media only screen and (min-width: 760px){.homepage-cards .homepage-card .homepage-card-image-wrapper{max-width:70px;min-width:70px}.homepage-cards .homepage-card .homepage-card-image-wrapper img{max-width:70px}}.homepage-cards .homepage-card h2{font-size:1em;margin:0px;line-height:1.1;margin-bottom:.5em;padding-bottom:0px;padding-top:0px;color:#222}.homepage-cards .homepage-card p{font-size:.8em;line-height:1.3;margin-bottom:0px;color:#555}@media only screen and (min-width: 960px){.homepage-cards{margin-left:auto;margin-right:auto}}@media only screen and (min-width: 1200px){.homepage-cards{max-width:760px}}#beingreviewed{background-color:#C9177E;color:white;position:absolute;left:40px;top:20px;-webkit-transform:rotate(-10deg);transform:rotate(-10deg);font-weight:bold;width:200px;font-size:36px;padding:6px;z-index:9999;overflow:visible;text-align:center;border-radius:15px;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 19px 38px rgba(0,0,0,0.3),0 15px 12px rgba(0,0,0,0.22)}#outdated{background-color:#0083C0;color:white;position:absolute;right:40px;top:20px;-webkit-transform:rotate(10deg);transform:rotate(10deg);font-weight:bold;width:200px;font-size:32px;padding:6px;z-index:9999;overflow:visible;text-align:center;border-radius:15px;transition:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);box-shadow:0 19px 38px rgba(0,0,0,0.3),0 15px 12px rgba(0,0,0,0.22)} diff --git a/static/images/hugo-icons/hugo-home copy.svg b/static/images/hugo-icons/hugo-home copy.svg new file mode 100644 index 000000000..38e0df3fc --- /dev/null +++ b/static/images/hugo-icons/hugo-home copy.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/static/js/script.min.js b/static/js/script.min.js index c9494beae..2df3b7bff 100644 --- a/static/js/script.min.js +++ b/static/js/script.min.js @@ -1,4 +1,4 @@ "use strict";function showTooltip(e,t){e.setAttribute("class","copy-button tooltipped tooltipped-s"),e.setAttribute("aria-label",t)}function fallbackMessage(e){var t="",r="cut"===e?"X":"C";return t=isMac?"Press ⌘-"+r:"Press Ctrl-"+r}function toggleToc(e){e.preventDefault(),e.stopPropagation(),console.log("hello"),document.getElementById("toc").classList.toggle("toc-open"),document.getElementById("toc-toggle").classList.toggle("toc-open")}var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(e){if("object"==("undefined"==typeof exports?"undefined":_typeof(exports))&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.Clipboard=e()}}(function(){var e;return function t(e,r,n){function o(i,s){if(!r[i]){if(!e[i]){var l="function"==typeof require&&require;if(!s&&l)return l(i,!0);if(a)return a(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var u=r[i]={exports:{}};e[i][0].call(u.exports,function(t){var r=e[i][1][t];return o(r?r:t)},u,u.exports,t,e,r,n)}return r[i].exports}for(var a="function"==typeof require&&require,i=0;in;n++)r[n].fn.apply(r[n].ctx,t);return this},off:function(e,t){var r=this.e||(this.e={}),n=r[e],o=[];if(n&&t)for(var a=0,i=n.length;i>a;a++)n[a].fn!==t&&n[a].fn._!==t&&o.push(n[a]);return o.length?r[e]=o:delete r[e],this}},t.exports=n},{}],8:[function(t,r,n){!function(o,a){if("function"==typeof e&&e.amd)e(["module","select"],a);else if("undefined"!=typeof n)a(r,t("select"));else{var i={exports:{}};a(i,o.select),o.clipboardAction=i.exports}}(this,function(e,t){function r(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=r(t),a="function"==typeof Symbol&&"symbol"==_typeof(Symbol.iterator)?function(e){return"undefined"==typeof e?"undefined":_typeof(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":"undefined"==typeof e?"undefined":_typeof(e)},i=function(){function e(e,t){for(var r=0;r0&&t-1 in e)}if(!e.jQuery){var r=function c(e,t){return new c.fn.init(e,t)};r.isWindow=function(e){return e&&e===e.window},r.type=function(e){return e?"object"==("undefined"==typeof e?"undefined":_typeof(e))||"function"==typeof e?o[i.call(e)]||"object":"undefined"==typeof e?"undefined":_typeof(e):e+""},r.isArray=Array.isArray||function(e){return"array"===r.type(e)},r.isPlainObject=function(e){var t;if(!e||"object"!==r.type(e)||e.nodeType||r.isWindow(e))return!1;try{if(e.constructor&&!a.call(e,"constructor")&&!a.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}for(t in e);return void 0===t||a.call(e,t)},r.each=function(e,r,n){var o,a=0,i=e.length,s=t(e);if(n){if(s)for(;a0?o=i:r=i;while(Math.abs(a)>h&&++s=b?u(t,s):0===l?s:p(t,r,r+S)}function g(){k=!0,e===r&&n===o||f()}var m=4,b=.001,h=1e-7,y=10,v=11,S=1/(v-1),w="Float32Array"in t;if(4!==arguments.length)return!1;for(var x=0;x<4;++x)if("number"!=typeof arguments[x]||isNaN(arguments[x])||!isFinite(arguments[x]))return!1;e=Math.min(e,1),n=Math.min(n,1),e=Math.max(e,0),n=Math.max(n,0);var C=w?new Float32Array(v):new Array(v),k=!1,N=function(t){return k||g(),e===r&&n===o?t:0===t?0:1===t?1:l(d(t),r,o)};N.getControlPoints=function(){return[{x:e,y:r},{x:n,y:o}]};var P="generateBezier("+[e,r,n,o]+")";return N.toString=function(){return P},N}function c(e,t){var r=e;return m.isString(e)?v.Easings[e]||(r=!1):r=m.isArray(e)&&1===e.length?s.apply(null,e):m.isArray(e)&&2===e.length?S.apply(null,e.concat([t])):!(!m.isArray(e)||4!==e.length)&&l.apply(null,e),r===!1&&(r=v.Easings[v.defaults.easing]?v.defaults.easing:y),r}function u(e){if(e){var t=(new Date).getTime(),r=v.State.calls.length;r>1e4&&(v.State.calls=o(v.State.calls),r=v.State.calls.length);for(var a=0;a4;e--){var t=r.createElement("div");if(t.innerHTML="",t.getElementsByTagName("span").length)return t=null,e}return n}(),g=function(){var e=0;return t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||function(t){var r,n=(new Date).getTime();return r=Math.max(0,16-(n-e)),e=n+r,setTimeout(function(){t(n+r)},r)}}(),m={isString:function(e){return"string"==typeof e},isArray:Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},isFunction:function(e){return"[object Function]"===Object.prototype.toString.call(e)},isNode:function(e){return e&&e.nodeType},isNodeList:function(e){return"object"==("undefined"==typeof e?"undefined":_typeof(e))&&/^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(e))&&e.length!==n&&(0===e.length||"object"==_typeof(e[0])&&e[0].nodeType>0)},isWrapped:function(e){return e&&(e.jquery||t.Zepto&&t.Zepto.zepto.isZ(e))},isSVG:function(e){return t.SVGElement&&e instanceof t.SVGElement},isEmptyObject:function(e){for(var t in e)return!1;return!0}},b=!1;if(e.fn&&e.fn.jquery?(p=e,b=!0):p=t.Velocity.Utilities,d<=8&&!b)throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if(d<=7)return void(jQuery.fn.velocity=jQuery.fn.animate);var h=400,y="swing",v={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isAndroid:/Android/i.test(navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(navigator.userAgent),isChrome:t.chrome,isFirefox:/Firefox/i.test(navigator.userAgent),prefixElement:r.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[]},CSS:{},Utilities:p,Redirects:{},Easings:{},Promise:t.Promise,defaults:{queue:"",duration:h,easing:y,begin:n,complete:n,progress:n,display:n,visibility:n,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0},init:function(e){p.data(e,"velocity",{isSVG:m.isSVG(e),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:3,patch:0},debug:!1};t.pageYOffset!==n?(v.State.scrollAnchor=t,v.State.scrollPropertyLeft="pageXOffset",v.State.scrollPropertyTop="pageYOffset"):(v.State.scrollAnchor=r.documentElement||r.body.parentNode||r.body,v.State.scrollPropertyLeft="scrollLeft",v.State.scrollPropertyTop="scrollTop");var S=function(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,r,n){var o={x:t.x+n.dx*r,v:t.v+n.dv*r,tension:t.tension,friction:t.friction};return{dx:o.v,dv:e(o)}}function r(r,n){var o={dx:r.v,dv:e(r)},a=t(r,.5*n,o),i=t(r,.5*n,a),s=t(r,n,i),l=1/6*(o.dx+2*(a.dx+i.dx)+s.dx),c=1/6*(o.dv+2*(a.dv+i.dv)+s.dv);return r.x=r.x+l*n,r.v=r.v+c*n,r}return function n(e,t,o){var a,i,s,l={x:-1,v:0,tension:null,friction:null},c=[0],u=0,f=1e-4,p=.016;for(e=parseFloat(e)||500,t=parseFloat(t)||20,o=o||null,l.tension=e,l.friction=t,a=null!==o,a?(u=n(e,t),i=u/o*p):i=p;s=r(s||l,i),c.push(1+s.x),u+=16,Math.abs(s.x)>f&&Math.abs(s.v)>f;);return a?function(e){return c[e*(c.length-1)|0]}:u}}();v.Easings={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},spring:function(e){return 1-Math.cos(4.5*e*Math.PI)*Math.exp(6*-e)}},p.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(e,t){v.Easings[t[0]]=l.apply(null,t[1])});var w=v.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"]},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var e=0;e=1?"":"alpha(opacity="+parseInt(100*parseFloat(r),10)+")"}else switch(e){case"name":return"opacity";case"extract":return r;case"inject":return r}}},register:function(){d&&!(d>9)||v.State.isGingerbread||(w.Lists.transformsBase=w.Lists.transformsBase.concat(w.Lists.transforms3D));for(var e=0;e8)&&3===a.split(" ").length&&(a+=" 1"),a;case"inject":return d<=8?4===o.split(" ").length&&(o=o.split(/\s+/).slice(0,3).join(" ")):3===o.split(" ").length&&(o+=" 1"),(d<=8?"rgb":"rgba")+"("+o.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")"}}}()}},Names:{camelCase:function(e){return e.replace(/-(\w)/g,function(e,t){return t.toUpperCase()})},SVGAttribute:function(e){var t="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(d||v.State.isAndroid&&!v.State.isChrome)&&(t+="|transform"),new RegExp("^("+t+")$","i").test(e)},prefixCheck:function(e){if(v.State.prefixMatches[e])return[v.State.prefixMatches[e],!0];for(var t=["","Webkit","Moz","ms","O"],r=0,n=t.length;r=2&&console.log("Get "+r+": "+l),l},setPropertyValue:function(e,r,n,o,a){var s=r;if("scroll"===r)a.container?a.container["scroll"+a.direction]=n:"Left"===a.direction?t.scrollTo(n,a.alternateValue):t.scrollTo(a.alternateValue,n);else if(w.Normalizations.registered[r]&&"transform"===w.Normalizations.registered[r]("name",e))w.Normalizations.registered[r]("inject",e,n),s="transform",n=i(e).transformCache[r];else{if(w.Hooks.registered[r]){var l=r,c=w.Hooks.getRoot(r);o=o||w.getPropertyValue(e,c),n=w.Hooks.injectValue(l,n,o),r=c}if(w.Normalizations.registered[r]&&(n=w.Normalizations.registered[r]("inject",e,n),r=w.Normalizations.registered[r]("name",e)),s=w.Names.prefixCheck(r)[0],d<=8)try{e.style[s]=n}catch(u){v.debug&&console.log("Browser does not support ["+n+"] for ["+s+"]")}else{var f=i(e);f&&f.isSVG&&w.Names.SVGAttribute(r)?e.setAttribute(r,n):e.style[s]=n}v.debug>=2&&console.log("Set "+r+" ("+s+"): "+n)}return[s,n]},flushTransformCache:function(e){var t="",r=i(e);if((d||v.State.isAndroid&&!v.State.isChrome)&&r&&r.isSVG){var n=function(t){return parseFloat(w.getPropertyValue(e,t))},o={translate:[n("translateX"),n("translateY")],skewX:[n("skewX")],skewY:[n("skewY")],scale:1!==n("scale")?[n("scale"),n("scale")]:[n("scaleX"),n("scaleY")],rotate:[n("rotateZ"),0,0]};p.each(i(e).transformCache,function(e){/^translate/i.test(e)?e="translate":/^scale/i.test(e)?e="scale":/^rotate/i.test(e)&&(e="rotate"),o[e]&&(t+=e+"("+o[e].join(" ")+") ",delete o[e])})}else{var a,s;p.each(i(e).transformCache,function(r){return a=i(e).transformCache[r],"transformPerspective"===r?(s=a,!0):(9===d&&"rotateZ"===r&&(r="rotate"),void(t+=r+a+" "))}),s&&(t="perspective"+s+" "+t)}w.setPropertyValue(e,"transform",t)}};w.Hooks.register(),w.Normalizations.register(),v.hook=function(e,t,r){var o;return e=a(e),p.each(e,function(e,a){if(i(a)===n&&v.init(a),r===n)o===n&&(o=v.CSS.getPropertyValue(a,t));else{var s=v.CSS.setPropertyValue(a,t,r);"transform"===s[0]&&v.CSS.flushTransformCache(a),o=s}}),o};var x=function k(){function e(){return l?T.promise||null:d}function o(e,o){function a(a){var d,g;if(l.begin&&0===N)try{l.begin.call(b,b)}catch(h){setTimeout(function(){throw h},1)}if("scroll"===O){var x,k,P,E=/^x$/i.test(l.axis)?"Left":"Top",I=parseFloat(l.offset)||0;l.container?m.isWrapped(l.container)||m.isNode(l.container)?(l.container=l.container[0]||l.container,x=l.container["scroll"+E],P=x+p(e).position()[E.toLowerCase()]+I):l.container=null:(x=v.State.scrollAnchor[v.State["scrollProperty"+E]],k=v.State.scrollAnchor[v.State["scrollProperty"+("Left"===E?"Top":"Left")]],P=p(e).offset()[E.toLowerCase()]+I),f={scroll:{rootPropertyValue:!1,startValue:x,currentValue:x,endValue:P,unitType:"",easing:l.easing,scrollData:{container:l.container,direction:E,alternateValue:k}},element:e},v.debug&&console.log("tweensContainer (scroll): ",f.scroll,e)}else if("reverse"===O){if(d=i(e),!d)return;if(!d.tweensContainer)return void p.dequeue(e,l.queue);"none"===d.opts.display&&(d.opts.display="auto"),"hidden"===d.opts.visibility&&(d.opts.visibility="visible"),d.opts.loop=!1,d.opts.begin=null,d.opts.complete=null,S.easing||delete l.easing,S.duration||delete l.duration,l=p.extend({},d.opts,l),g=p.extend(!0,{},d?d.tweensContainer:null);for(var M in g)if("element"!==M){var A=g[M].startValue;g[M].startValue=g[M].currentValue=g[M].endValue,g[M].endValue=A,m.isEmptyObject(S)||(g[M].easing=l.easing),v.debug&&console.log("reverse tweensContainer ("+M+"): "+JSON.stringify(g[M]),e)}f=g}else if("start"===O){d=i(e),d&&d.tweensContainer&&d.isAnimating===!0&&(g=d.tweensContainer);var D=function(t,r){var a,i,s;return m.isArray(t)?(a=t[0],!m.isArray(t[1])&&/^[\d-]/.test(t[1])||m.isFunction(t[1])||w.RegEx.isHex.test(t[1])?s=t[1]:(m.isString(t[1])&&!w.RegEx.isHex.test(t[1])||m.isArray(t[1]))&&(i=r?t[1]:c(t[1],l.duration),t[2]!==n&&(s=t[2]))):a=t,r||(i=i||l.easing),m.isFunction(a)&&(a=a.call(e,o,C)),m.isFunction(s)&&(s=s.call(e,o,C)),[a||0,i,s]};p.each(y,function(e,t){if(RegExp("^"+w.Lists.colors.join("$|^")+"$").test(w.Names.camelCase(e))){var r=D(t,!0),o=r[0],a=r[1],i=r[2];if(w.RegEx.isHex.test(o)){for(var s=["Red","Green","Blue"],l=w.Values.hexToRgb(o),c=i?w.Values.hexToRgb(i):n,u=0;u=1&&console.log("Unit ratios: "+JSON.stringify(s),e),s};if(/[\/*]/.test(W))_=H;else if(H!==_&&0!==F)if(0===j)_=H;else{s=s||q();var U=/margin|padding|left|right|width|text|word|letter/i.test(L)||/X$/.test(L)||"x"===L?"x":"y";switch(H){case"%":F*="x"===U?s.percentToPxWidth:s.percentToPxHeight;break;case"px":break;default:F*=s[H+"ToPx"]}switch(_){case"%":F*=1/("x"===U?s.percentToPxWidth:s.percentToPxHeight);break;case"px":break;default:F*=1/s[_+"ToPx"]}}switch(W){case"+":j=F+j;break;case"-":j=F-j;break;case"*":j=F*j;break;case"/":j=F/j}f[L]={rootPropertyValue:Y,startValue:F,currentValue:F,endValue:j,unitType:_,easing:X},v.debug&&console.log("tweensContainer ("+L+"): "+JSON.stringify(f[L]),e)}else v.debug&&console.log("Skipping ["+B+"] due to a lack of browser support.")}f.element=e}f.element&&(w.Values.addClass(e,"velocity-animating"),V.push(f),d=i(e),d&&(""===l.queue&&(d.tweensContainer=f,d.opts=l),d.isAnimating=!0),N===C-1?(v.State.calls.push([V,b,l,null,T.resolver]),v.State.isTicking===!1&&(v.State.isTicking=!0,u())):N++)}var s,l=p.extend({},v.defaults,S),f={};switch(i(e)===n&&v.init(e),parseFloat(l.delay)&&l.queue!==!1&&p.queue(e,l.queue,function(t){v.velocityQueueEntryFlag=!0,i(e).delayTimer={setTimeout:setTimeout(t,parseFloat(l.delay)),next:t}}),l.duration.toString().toLowerCase()){case"fast":l.duration=200;break;case"normal":l.duration=h;break;case"slow":l.duration=600;break;default:l.duration=parseFloat(l.duration)||1}v.mock!==!1&&(v.mock===!0?l.duration=l.delay=1:(l.duration*=parseFloat(v.mock)||1,l.delay*=parseFloat(v.mock)||1)),l.easing=c(l.easing,l.duration),l.begin&&!m.isFunction(l.begin)&&(l.begin=null),l.progress&&!m.isFunction(l.progress)&&(l.progress=null),l.complete&&!m.isFunction(l.complete)&&(l.complete=null),l.display!==n&&null!==l.display&&(l.display=l.display.toString().toLowerCase(),"auto"===l.display&&(l.display=v.CSS.Values.getDisplayType(e))),l.visibility!==n&&null!==l.visibility&&(l.visibility=l.visibility.toString().toLowerCase()),l.mobileHA=l.mobileHA&&v.State.isMobile&&!v.State.isGingerbread,l.queue===!1?l.delay?setTimeout(a,l.delay):a():p.queue(e,l.queue,function(e,t){return t===!0?(T.promise&&T.resolver(b),!0):(v.velocityQueueEntryFlag=!0,void a(e))}),""!==l.queue&&"fx"!==l.queue||"inprogress"===p.queue(e)[0]||p.dequeue(e)}var s,l,d,g,b,y,S,x=arguments[0]&&(arguments[0].p||p.isPlainObject(arguments[0].properties)&&!arguments[0].properties.names||m.isString(arguments[0].properties));if(m.isWrapped(this)?(l=!1,g=0,b=this,d=this):(l=!0,g=1,b=x?arguments[0].elements||arguments[0].e:arguments[0]),b=a(b)){x?(y=arguments[0].properties||arguments[0].p,S=arguments[0].options||arguments[0].o):(y=arguments[g],S=arguments[g+1]);var C=b.length,N=0;if(!/^(stop|finish|finishAll)$/i.test(y)&&!p.isPlainObject(S)){var P=g+1;S={};for(var E=P;EparseFloat(r[1]))}var a=e.Velocity;if(!a||!a.Utilities)return void(t.console&&console.log("Velocity UI Pack: Velocity must be loaded first. Aborting."));var i=a.Utilities,s=a.version,l={major:1,minor:1,patch:0};if(o(l,s)){var c="Velocity UI Pack: You need to update Velocity (velocity.js) to a newer version. Visit http://github.com/julianshapiro/velocity.";throw alert(c),new Error(c)}a.RegisterEffect=a.RegisterUI=function(e,t){function r(e,t,r,n){var o,s=0;i.each(e.nodeType?[e]:e,function(e,t){n&&(r+=e*n),o=t.parentNode;var l=["height","paddingTop","paddingBottom","marginTop","marginBottom"];"border-box"===a.CSS.getPropertyValue(t,"boxSizing").toString().toLowerCase()&&(l=["height"]),i.each(l,function(e,r){s+=parseFloat(a.CSS.getPropertyValue(t,r))})}),a.animate(o,{height:("In"===t?"+":"-")+"="+s},{queue:!1,easing:"ease-in-out",duration:r*("In"===t?.6:1)})}return a.Redirects[e]=function(o,s,l,c,u,f,p){var d=l===c-1;p=p||t.loop,"function"==typeof t.defaultDuration?t.defaultDuration=t.defaultDuration.call(u,u):t.defaultDuration=parseFloat(t.defaultDuration);for(var g=0;g1&&(i.each(t.reverse(),function(e,r){var n=t[e+1];if(n){var o=r.o||r.options,s=n.o||n.options,l=o&&o.sequenceQueue===!1?"begin":"complete",c=s&&s[l],u={};u[l]=function(){var e=n.e||n.elements,t=e.nodeType?[e]:e;c&&c.call(t,t),a(r)},n.o?n.o=i.extend({},s,u):n.options=i.extend({},s,u)}}),t.reverse()),a(t[0])}}(window.jQuery||window.Zepto||window,window,window?window.document:void 0)}),$("document").ready(function(){$('.body-copy a[href$=".pdf"]').append(''),$(".body-copy > h2:not(.section-heading),.body-copy > h3").each(function(){var e=$(this).attr("id");$(this).prepend('')})}),function(){for(var e=document.querySelectorAll("blockquote > p"),t=new RegExp(/\s\-\s/),r=0;r― '+o+""}}(),$(".download-button").on("click",function(){var e=$(this).siblings(".code-copy-content"),t=e.text(),r=e.attr("id"),n=new Blob([t],{type:"text/plain;charset=utf-8"});saveAs(n,r)});var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(){$(".body-copy img:not(.hugo-icon)").each(function(){$(this).wrap('')})}(),function(e){function t(e,r){if(!(this instanceof t)){var n=new t(e,r);return n.open(),n}this.id=t.id++,this.setup(e,r),this.chainCallbacks(t._callbackChain)}if("undefined"==typeof e)return void("console"in window&&window.console.info("Too much lightness, Featherlight needs jQuery."));var r=[],n=function(t){return r=e.grep(r,function(e){return e!==t&&e.$instance.closest("body").length>0})},o=function(e,t){var r={},n=new RegExp("^"+t+"([A-Z])(.*)");for(var o in e){var a=o.match(n);if(a){var i=(a[1]+a[2].replace(/([A-Z])/g,"-$1")).toLowerCase(); -r[i]=e[o]}}return r},a={keyup:"onKeyUp",resize:"onResize"},i=function(r){e.each(t.opened().reverse(),function(){if(!r.isDefaultPrevented()&&!1===this[a[r.type]](r))return r.preventDefault(),r.stopPropagation(),!1})},s=function(r){if(r!==t._globalHandlerInstalled){t._globalHandlerInstalled=r;var n=e.map(a,function(e,r){return r+"."+t.prototype.namespace}).join(" ");e(window)[r?"on":"off"](n,i)}};t.prototype={constructor:t,namespace:"featherlight",targetAttr:"data-featherlight",variant:null,resetCss:!1,background:null,openTrigger:"click",closeTrigger:"click",filter:null,root:"body",openSpeed:250,closeSpeed:250,closeOnClick:"background",closeOnEsc:!0,closeIcon:"✕",loading:"",persist:!1,otherClose:null,beforeOpen:e.noop,beforeContent:e.noop,beforeClose:e.noop,afterOpen:e.noop,afterContent:e.noop,afterClose:e.noop,onKeyUp:e.noop,onResize:e.noop,type:null,contentFilters:["jquery","image","html","ajax","iframe","text"],setup:function(t,r){"object"!==("undefined"==typeof t?"undefined":_typeof(t))||t instanceof e!=!1||r||(r=t,t=void 0);var n=e.extend(this,r,{target:t}),o=n.resetCss?n.namespace+"-reset":n.namespace,a=e(n.background||['
    ','
    ','',n.closeIcon,"",'
    '+n.loading+"
    ","
    ","
    "].join("")),i="."+n.namespace+"-close"+(n.otherClose?","+n.otherClose:"");return n.$instance=a.clone().addClass(n.variant),n.$instance.on(n.closeTrigger+"."+n.namespace,function(t){var r=e(t.target);("background"===n.closeOnClick&&r.is("."+n.namespace)||"anywhere"===n.closeOnClick||r.closest(i).length)&&(n.close(t),t.preventDefault())}),this},getContent:function(){if(this.persist!==!1&&this.$content)return this.$content;var t=this,r=this.constructor.contentFilters,n=function(e){return t.$currentTarget&&t.$currentTarget.attr(e)},o=n(t.targetAttr),a=t.target||o||"",i=r[t.type];if(!i&&a in r&&(i=r[a],a=t.target&&o),a=a||n("href")||"",!i)for(var s in r)t[s]&&(i=r[s],a=t[s]);if(!i){var l=a;if(a=null,e.each(t.contentFilters,function(){return i=r[this],i.test&&(a=i.test(l)),!a&&i.regex&&l.match&&l.match(i.regex)&&(a=l),!a}),!a)return"console"in window&&window.console.error("Featherlight: no content filter found "+(l?' for "'+l+'"':" (no target specified)")),!1}return i.process.call(t,a)},setContent:function(t){var r=this;return(t.is("iframe")||e("iframe",t).length>0)&&r.$instance.addClass(r.namespace+"-iframe"),r.$instance.removeClass(r.namespace+"-loading"),r.$instance.find("."+r.namespace+"-inner").not(t).slice(1).remove().end().replaceWith(e.contains(r.$instance[0],t[0])?"":t),r.$content=t.addClass(r.namespace+"-inner"),r},open:function(t){var n=this;if(n.$instance.hide().appendTo(n.root),!(t&&t.isDefaultPrevented()||n.beforeOpen(t)===!1)){t&&t.preventDefault();var o=n.getContent();if(o)return r.push(n),s(!0),n.$instance.fadeIn(n.openSpeed),n.beforeContent(t),e.when(o).always(function(e){n.setContent(e),n.afterContent(t)}).then(n.$instance.promise()).done(function(){n.afterOpen(t)})}return n.$instance.detach(),e.Deferred().reject().promise()},close:function(t){var r=this,o=e.Deferred();return r.beforeClose(t)===!1?o.reject():(0===n(r).length&&s(!1),r.$instance.fadeOut(r.closeSpeed,function(){r.$instance.detach(),r.afterClose(t),o.resolve()})),o.promise()},resize:function(e,t){if(e&&t){this.$content.css("width","").css("height","");var r=Math.max(e/(parseInt(this.$content.parent().css("width"),10)-1),t/(parseInt(this.$content.parent().css("height"),10)-1));r>1&&(r=t/Math.floor(t/r),this.$content.css("width",""+e/r+"px").css("height",""+t/r+"px"))}},chainCallbacks:function(t){for(var r in t)this[r]=e.proxy(t[r],this,e.proxy(this[r],this))}},e.extend(t,{id:0,autoBind:"[data-featherlight]",defaults:t.prototype,contentFilters:{jquery:{regex:/^[#.]\w/,test:function(t){return t instanceof e&&t},process:function(t){return this.persist!==!1?e(t):e(t).clone(!0)}},image:{regex:/\.(png|jpg|jpeg|gif|tiff|bmp|svg)(\?\S*)?$/i,process:function(t){var r=this,n=e.Deferred(),o=new Image,a=e('');return o.onload=function(){a.naturalWidth=o.width,a.naturalHeight=o.height,n.resolve(a)},o.onerror=function(){n.reject(a)},o.src=t,n.promise()}},html:{regex:/^\s*<[\w!][^<]*>/,process:function(t){return e(t)}},ajax:{regex:/./,process:function(t){var r=e.Deferred(),n=e("
    ").load(t,function(e,t){"error"!==t&&r.resolve(n.contents()),r.fail()});return r.promise()}},iframe:{process:function(t){var r=new e.Deferred,n=e("