master 0b565d79b88a cached
56 files
592.0 KB
183.5k tokens
258 symbols
1 requests
Download .txt
Showing preview only (617K chars total). Download the full file or copy to clipboard to get everything.
Repository: flashcards/flashcards.github.io
Branch: master
Commit: 0b565d79b88a
Files: 56
Total size: 592.0 KB

Directory structure:
gitextract_o5c_h_av/

├── .github/
│   └── workflows/
│       └── gitbook-build.yml
├── .gitignore
├── .node-version
├── CONTRIBUTING.md
├── LICENSE
├── LICENSE.md
├── README.md
├── SUMMARY.md
├── book.json
├── command_line/
│   ├── README.md
│   ├── index.html
│   ├── introduction.html
│   └── introduction.md
├── gitbook/
│   ├── fonts/
│   │   └── fontawesome/
│   │       └── FontAwesome.otf
│   ├── gitbook-plugin-advanced-emoji/
│   │   ├── LICENSE-IMAGES.md
│   │   ├── LICENSE.md
│   │   ├── emoji-book.css
│   │   └── emoji-website.css
│   ├── gitbook-plugin-copy-code-button/
│   │   └── toggle.js
│   ├── gitbook-plugin-edit-link/
│   │   └── plugin.js
│   ├── gitbook-plugin-fontsettings/
│   │   ├── fontsettings.js
│   │   └── website.css
│   ├── gitbook-plugin-ga/
│   │   └── plugin.js
│   ├── gitbook-plugin-github/
│   │   └── plugin.js
│   ├── gitbook-plugin-github-buttons/
│   │   └── plugin.js
│   ├── gitbook-plugin-highlight/
│   │   ├── ebook.css
│   │   └── website.css
│   ├── gitbook-plugin-lunr/
│   │   └── search-lunr.js
│   ├── gitbook-plugin-prism/
│   │   ├── prism-coy.css
│   │   ├── prism-dark.css
│   │   ├── prism-funky.css
│   │   ├── prism-okaidia.css
│   │   ├── prism-solarizedlight.css
│   │   ├── prism-tomorrow.css
│   │   ├── prism-twilight.css
│   │   └── prism.css
│   ├── gitbook-plugin-search/
│   │   ├── search-engine.js
│   │   ├── search.css
│   │   └── search.js
│   ├── gitbook-plugin-sharing/
│   │   └── buttons.js
│   ├── gitbook.js
│   ├── style.css
│   └── theme.js
├── graphql/
│   ├── README.md
│   ├── index.html
│   ├── introduction.html
│   └── introduction.md
├── index.html
├── package.json
├── search_index.json
├── sql/
│   ├── README.md
│   ├── index.html
│   ├── introduction.html
│   └── introduction.md
├── styles/
│   └── website.css
└── wallaby.js

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/workflows/gitbook-build.yml
================================================
name: Build GitBook

on:
  push:
    branches:
      - master
    paths:
      - '**/*.md'
      - 'book.json'
      - 'SUMMARY.md'
      - 'package.json'
      - 'package-lock.json'
  workflow_dispatch:

permissions:
  contents: write

jobs:
  build-and-commit:
    if: github.actor != 'github-actions[bot]'
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version-file: '.node-version'

      - name: Install dependencies and GitBook plugins
        run: |
          npm install
          npm install -g gitbook-cli
          gitbook install

      - name: Build GitBook
        run: |
          gitbook build
          cp -R _book/* .
          git clean -fx _book

      - name: Commit generated site files
        run: |
          git config user.name "github-actions[bot]"
          git config user.email "41898282+github-actions[bot]@users.noreply.github.com"

          if [ -n "$(git status --porcelain)" ]; then
            git add -A
            git commit -m "chore: regenerate GitBook output"
            git push
          else
            echo "No generated changes to commit"
          fi


================================================
FILE: .gitignore
================================================
_book
node_modules
.idea
npm-debug.log
CNAME

================================================
FILE: .node-version
================================================
12.16.0


================================================
FILE: CONTRIBUTING.md
================================================
# Contributing

The [flashcards.github.io](https://flashcards.github.io/) community is possible thanks to kind volunteers like you. We welcome any and all contributions to the community and are excited to welcome you aboard.

If you've noticed a mistake or have a new deck, [open a pull request](https://github.com/flashcards/flashcards.github.io/issues/new) or start a [discussion](https://github.com/flashcards/flashcards.github.io/discussions/categories/new-topic-requests)!

## Steps to contributing to this GitBook:
1. Clone the [repository here](https://github.com/flashcards/flashcards.github.io).
2. Install the [GitBook CLI](https://github.com/GitbookIO/gitbook-cli).
3. Run `npm install` via the [command line](https://github.com/flashcards/flashcards.github.io?tab=readme-ov-file#command-line).
4. Run `gitbook build` via the command line.
5. Run `cp -R _book/* .` via the command line.
6. Run `git clean -fx _book` via the command line.
7. Commit your changes and [open a PR](https://github.com/flashcards/flashcards.github.io/issues/new).

================================================
FILE: LICENSE
================================================
The MIT License (MIT)

Copyright (c) 2016 learn-rxjs

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.



================================================
FILE: LICENSE.md
================================================
MIT License

Copyright (c) 2020 Flashcards

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: README.md
================================================
# Flashcards for Developers | flashcards.github.io

A community-based collection of developer flashcards to boost your professional skills.

<a href="https://flashcards.io" target="_blank"><img width="185" src="https://flashcardsio.s3.us-east-2.amazonaws.com/assets/sponsored.png"></a>

<a href="https://www.digitalocean.com/?refcode=6f109bebd85a&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge"><img src="https://web-platforms.sfo2.cdn.digitaloceanspaces.com/WWW/Badge%201.svg" alt="DigitalOcean Referral Badge" /></a>

## Topics

### Algorithms

- [Recursion](https://flashcards.io/app/?url=https://www.codecademy.com/learn/fscj-22-algorithms/modules/wdcp-22-recursion-d930f071-374e-444b-b8d1-f6229c2c3735/cheatsheet)
- [Asymptotic Notation](https://flashcards.io/app/?url=https://www.codecademy.com/learn/fscj-22-algorithms/modules/wdcp-22-asymptotic-notation-955d9102-9539-4c54-a9ba-855b94dc9a17/cheatsheet)
- [Bubble Sort](https://flashcards.io/app/?url=https://www.codecademy.com/learn/fscj-22-algorithms/modules/wdcp-22-bubble-sort-d5360ece-398e-41ba-9747-92907fee92e0/cheatsheet)
- [Merge Sort](https://flashcards.io/app/?url=https://www.codecademy.com/learn/fscj-22-algorithms/modules/wdcp-22-merge-sort-8c032673-eb72-45a9-9ec9-99db73aa5f8d/cheatsheet)
- [Quicksort](https://flashcards.io/app/?url=https://www.codecademy.com/learn/fscj-22-algorithms/modules/wdcp-22-quicksort-36491b24-c957-4536-9d1e-5651678a0d19/cheatsheet)

### AWS FAQs

- [CloudFront](https://flashcards.io/app/?url=https://aws.amazon.com/cloudfront/faqs/)
- [DynamoDB](https://flashcards.io/app/?url=https://aws.amazon.com/dynamodb/faqs/)
- [EC2](https://flashcards.io/app/?url=https://aws.amazon.com/ec2/faqs/)
- [Lambda](https://flashcards.io/app/?url=https://aws.amazon.com/lambda/faqs/)
- [RDS](https://flashcards.io/app/?url=https://aws.amazon.com/rds/faqs/)
- [Redshift](https://flashcards.io/app/?url=https://aws.amazon.com/redshift/faqs/)
- [SageMaker](https://flashcards.io/app/?url=https://aws.amazon.com/sagemaker/faqs/)
- [S3](https://flashcards.io/app/?url=https://aws.amazon.com/s3/faqs/)

### [Bash Shortcuts](https://flashcards.io/app/?url=https://kapeli.com/cheat_sheets/Bash_Shortcuts.docset/Contents/Resources/Documents/index)

### Command Line

- [Navigating the File System](https://flashcards.io/app/?url=https://www.codecademy.com/learn/seds-learn-the-command-line/modules/seds-learn-the-command-line-navigation/cheatsheet)
- [Viewing and Changing the File System](https://flashcards.io/app/?url=https://www.codecademy.com/learn/seds-learn-the-command-line/modules/seds-learn-the-command-line-manipulation/cheatsheet)
- [Redirecting Input and Output](https://flashcards.io/app/?url=https://www.codecademy.com/learn/seds-learn-the-command-line/modules/seds-learn-the-command-line-redirection/cheatsheet)
- [Configuring the Environment](https://flashcards.io/app/?url=https://www.codecademy.com/learn/seds-learn-the-command-line/modules/seds-learn-the-command-line-environment/cheatsheet)

### CSS

- [Syntax and Selectors](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-css/modules/syntax-and-selectors/cheatsheet)
- [Visual Rules](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-css/modules/learn-css-selectors-visual-rules/cheatsheet)
- [The Box Model](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-css/modules/learn-css-box-model/cheatsheet)
- [Display and Positioning](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-css/modules/learn-css-display-positioning/cheatsheet)
- [Colors](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-css/modules/learn-css-colors/cheatsheet)
- [Typography](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-css/modules/learn-css-typography/cheatsheet)
- [Layout with Flexbox](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-intermediate-css/modules/layout-with-flexbox/cheatsheet)
- [Grid](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-intermediate-css/modules/learn-css-grid/cheatsheet)
- [CSS - Transitions](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-intermediate-css/modules/css-transitions/cheatsheet)
- [Learn Responsive Design](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-intermediate-css/modules/learn-responsive-design-module/cheatsheet)

### [Dockerfile](https://flashcards.io/app/?url=https://kapeli.com/cheat_sheets/Dockerfile.docset/Contents/Resources/Documents/index)

### [Git](https://flashcards.io/app/?url=https://kapeli.com/cheat_sheets/Git.docset/Contents/Resources/Documents/index)

### HTML

- [Elements and Structure](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-html/modules/learn-html-elements/cheatsheet)
- [Tables](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-html/modules/learn-html-tables/cheatsheet)
- [Forms](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-html/modules/learn-html-forms/cheatsheet)
- [Semantic HTML](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-html/modules/learn-semantic-html/cheatsheet)

### [HTTP Status Codes](https://flashcards.io/app/?url=https://kapeli.com/cheat_sheets/HTTP_Status_Codes.docset/Contents/Resources/Documents/index)

### Node.js

- [Introduction to Node.js](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-node-js/modules/intro-to-node-js/cheatsheet)
- [Node.js Essentials](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-node-js/modules/node-js-essentials/cheatsheet)
- [Setting up a Server with HTTP](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-node-js/modules/setting-up-a-server-with-http/cheatsheet)

### Python

- [Basics](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-python-3/modules/learn-python3-hello-world/cheatsheet)
- [Control Flow](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-python-3/modules/learn-python3-control-flow/cheatsheet)
- [Control Flows Extended](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-python-3/modules/cspath-code-challenges/cheatsheet)
- [Lists](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-python-3/modules/learn-python3-lists/cheatsheet)
- [Loops](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-python-3/modules/learn-python3-loops/cheatsheet)
- [Functions](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-python-3/modules/learn-python3-functions/cheatsheet)
- [Strings](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-python-3/modules/learn-python3-strings/cheatsheet)
- [Modules](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-python-3/modules/learn-python3-modules/cheatsheet)
- [Dictionaries](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-python-3/modules/learn-python3-dictionaries/cheatsheet)
- [Files](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-python-3/modules/learn-python3-files/cheatsheet)
- [Classes](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-python-3/modules/learn-python3-classes/cheatsheet)
- [Function Arguments](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-intermediate-python-3/modules/int-python-function-arguments/cheatsheet)
- [Logging](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-advanced-python/modules/logging/cheatsheet)
- [Functional Programming](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-advanced-python/modules/functional-programming/cheatsheet)
- [Database Operations](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-advanced-python/modules/functional-programming/cheatsheet)
- [Concurrent Programming](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-advanced-python/modules/concurrent-programming/cheatsheet)

### React

- [React Terminology](https://flashcards.io/app/?url=https://legacy.reactjs.org/docs/glossary.html)
- [Redux Terminology](https://flashcards.io/app/?url=https://redux.js.org/understanding/thinking-in-redux/glossary)
- [JSX](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-react-introduction/modules/react-101-jsx-u/cheatsheet)
- [React Components](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-react-introduction/modules/learn-react-components/cheatsheet)
- [Components Interacting](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-react-introduction/modules/react-components-interacting/cheatsheet)
- [Components and Props](https://flashcards.io/app/?url=https://www.codecademy.com/learn/fscp-react-part-ii/modules/fecp-components-and-props/cheatsheet)
- [React Programming Patterns](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-react-state-management/modules/learn-react-stateless-inherit-stateful/cheatsheet)
- [Hooks](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-react-hooks/modules/learn-react-hooks/cheatsheet)
- [Lifecycle Methods](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-react-lifecycle-methods/modules/learn-react-lifecycle-methods/cheatsheet)
- [React Styles](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-react-additional-basics/modules/react-styles/cheatsheet)
- [Advanced React: Custom Hooks](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-advanced-react/modules/advanced-react-custom-hooks/cheatsheet)
- [Advanced React: Context](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-advanced-react/modules/advanced-react-context/cheatsheet)

### Ruby

- [Introduction to Ruby](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-ruby/modules/learn-ruby-introduction-to-ruby-u/cheatsheet)
- [Control Flow in Ruby](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-ruby/modules/learn-ruby-control-flow-in-ruby-u/cheatsheet)
- [Looping with Ruby](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-ruby/modules/learn-ruby-looping-with-ruby-u/cheatsheet)
- [Arrays and Hashes](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-ruby/modules/learn-ruby-arrays-and-hashes-u/cheatsheet)
- [Blocks and Sorting](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-ruby/modules/learn-ruby-blocks-and-sorting-u/cheatsheet)
- [Hashes and Symbols](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-ruby/modules/learn-ruby-hashes-and-symbols-u/cheatsheet)
- [Refactoring](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-ruby/modules/learn-ruby-refactoring-u/cheatsheet)
- [Blocks, Procs, and Lambdas](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-ruby/modules/learn-ruby-blocks-procs-and-lambdas-u/cheatsheet)
- [Object-Oriented Programming, Part I](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-ruby/modules/learn-ruby-object-oriented-programming-part-i-u/cheatsheet)
- [Object-Oriented Programming, Part II](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-ruby/modules/learn-ruby-object-oriented-programming-part-ii-u/cheatsheet)

### SQL

- [Manipulation](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-sql/modules/learn-sql-manipulation/cheatsheet)
- [Queries](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-sql/modules/learn-sql-queries/cheatsheet)
- [Aggregate Functions](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-sql/modules/learn-sql-aggregate-functions/cheatsheet)
- [Multiple Tables](https://flashcards.io/app/?url=https://www.codecademy.com/learn/learn-sql/modules/learn-sql-multiple-tables/cheatsheet)
- [SQLite](https://flashcards.io/app/?url=https://kapeli.com/cheat_sheets/SQLite.docset/Contents/Resources/Documents/index)
- [YAML](https://flashcards.io/app/?url=https://kapeli.com/cheat_sheets/YAML.docset/Contents/Resources/Documents/index)

## Contributing

The [flashcards.github.io](https://flashcards.github.io/) community is possible thanks to kind volunteers like you. We welcome any and all contributions to the community and are excited to welcome you aboard.

If you've noticed a mistake or have a new deck, [open a pull request](https://github.com/flashcards/flashcards.github.io/issues/new) or start a [discussion](https://github.com/flashcards/flashcards.github.io/discussions/categories/new-topic-requests)!

### Steps to contributing to this GitBook:

1. Clone the [repository here](https://github.com/flashcards/flashcards.github.io).
2. Install the [GitBook CLI](https://github.com/GitbookIO/gitbook-cli).
3. Run `npm install` via the [command line](https://github.com/flashcards/flashcards.github.io?tab=readme-ov-file#command-line).
4. Run `gitbook build` via the command line.
5. Run `cp -R _book/* .` via the command line.
6. Run `git clean -fx _book` via the command line.
7. Commit your changes and [open a PR](https://github.com/flashcards/flashcards.github.io/issues/new).

---

Created by [Zachary Lawson](https://zacharylawson.com/)


================================================
FILE: SUMMARY.md
================================================
# Table of contents

- [Introduction](README.md)

## flashcards.github.io

- [Command Line](command_line/README.md)
  - [Introduction Flashcards](command_line/introduction.md)
- [GraphQL](graphql/README.md)
  - [Introduction Flashcards](graphql/introduction.md)
- [SQL](sql/README.md)
  - [Introduction Flashcards](sql/introduction.md)


================================================
FILE: book.json
================================================
{
  "gitbook": "3.1.1",
  "title": "Flashcards for Developers | flashcards.github.io",
  "plugins": [
    "include-codeblock",
    "advanced-emoji",
    "prism",
    "highlight",
    "copy-code-button",
    "edit-link",
    "github",
    "github-buttons",
    "ga",
    "fontsettings"
  ],
  "pluginsConfig": {
    "edit-link": {
      "base": "https://github.com/flashcards/flashcards.github.io/edit/master",
      "label": "Edit This Page"
    },
    "github": {
      "url": "https://github.com/flashcards/flashcards.github.io/"
    },
    "ga": {
      "token": "UA-129080735-2"
    },
    "github-buttons": {
      "buttons": [
        {
          "user": "flashcards",
          "repo": "flashcards.github.io",
          "type": "star",
          "size": "small",
          "count": true
        },{
          "user": "flashcards",
          "repo": "flashcards.github.io",
          "type": "watch",
          "size": "small"
        }
      ]
    }
  }
}


================================================
FILE: command_line/README.md
================================================
# Learn Command Line | Flashcards for Developers

Learn Command Line - a text interface for your computer. It’s a program that takes in commands, which it passes on to the computer’s operating system to run.



### Decks

- [Introduction](introduction.md)


================================================
FILE: command_line/index.html
================================================

<!DOCTYPE HTML>
<html lang="" >
    <head>
        <title>Command Line · Flashcards for Developers | flashcards.github.io</title>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
        <meta name="description" content="">
        <meta name="generator" content="GitBook 3.1.1">
        
        
        
    
    <link rel="stylesheet" href="../gitbook/style.css">

    
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-advanced-emoji/emoji-website.css">
                
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-prism/prism.css">
                
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-highlight/website.css">
                
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-fontsettings/website.css">
                
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-search/search.css">
                
            
        

    

    
        
    
        
    
        
    
        
    
        
    
        
        <link rel="stylesheet" href="../styles/website.css">
        
    

        
    
    
    
    <meta name="HandheldFriendly" content="true"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <link rel="apple-touch-icon-precomposed" sizes="152x152" href="../gitbook/images/apple-touch-icon-precomposed-152.png">
    <link rel="shortcut icon" href="../gitbook/images/favicon.ico" type="image/x-icon">

    
    <link rel="next" href="introduction.html" />
    
    
    <link rel="prev" href="../" />
    

    <style>
    @media only screen and (max-width: 640px) {
        .book-header .hidden-mobile {
            display: none;
        }
    }
    </style>
    <script>
        window["gitbook-plugin-github-buttons"] = {"buttons":[{"user":"flashcards","repo":"flashcards.github.io","type":"star","size":"small","count":true},{"user":"flashcards","repo":"flashcards.github.io","type":"watch","size":"small"}]};
    </script>

    </head>
    <body>
        
<div class="book">
    <div class="book-summary">
        
            
<div id="book-search-input" role="search">
    <input type="text" placeholder="Type to search" />
</div>

            
                <nav role="navigation">
                


<ul class="summary">
    
    

    

    
        
        
    
        <li class="chapter " data-level="1.1" data-path="../">
            
                <a href="../">
            
                    
                    Introduction
            
                </a>
            

            
        </li>
    

    
        
        <li class="header">flashcards.github.io</li>
        
        
    
        <li class="chapter active" data-level="2.1" data-path="./">
            
                <a href="./">
            
                    
                    Command Line
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="2.1.1" data-path="introduction.html">
            
                <a href="introduction.html">
            
                    
                    Introduction Flashcards
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="2.2" data-path="../graphql/">
            
                <a href="../graphql/">
            
                    
                    GraphQL
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="2.2.1" data-path="../graphql/introduction.html">
            
                <a href="../graphql/introduction.html">
            
                    
                    Introduction Flashcards
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="2.3" data-path="../sql/">
            
                <a href="../sql/">
            
                    
                    SQL
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="2.3.1" data-path="../sql/introduction.html">
            
                <a href="../sql/introduction.html">
            
                    
                    Introduction Flashcards
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    

    

    <li class="divider"></li>

    <li>
        <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
            Published with GitBook
        </a>
    </li>
</ul>


                </nav>
            
        
    </div>

    <div class="book-body">
        
            <div class="body-inner">
                
                    

<div class="book-header" role="navigation">
    

    <!-- Title -->
    <h1>
        <i class="fa fa-circle-o-notch fa-spin"></i>
        <a href=".." >Command Line</a>
    </h1>
</div>




                    <div class="page-wrapper" tabindex="-1" role="main">
                        <div class="page-inner">
                            
<div id="book-search-results">
    <div class="search-noresults">
    
                                <section class="normal markdown-section">
                                
                                <h1 id="learn-command-line--flashcards-for-developers">Learn Command Line | Flashcards for Developers</h1>
<p>Learn Command Line - a text interface for your computer. It&#x2019;s a program that takes in commands, which it passes on to the computer&#x2019;s operating system to run.</p>
<h3 id="decks">Decks</h3>
<ul>
<li><a href="introduction.html">Introduction</a></li>
</ul>

                                
                                </section>
                            
    </div>
    <div class="search-results">
        <div class="has-results">
            
            <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
            <ul class="search-results-list"></ul>
            
        </div>
        <div class="no-results">
            
            <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
            
        </div>
    </div>
</div>

                        </div>
                    </div>
                
            </div>

            
                
                <a href="../" class="navigation navigation-prev " aria-label="Previous page: Introduction">
                    <i class="fa fa-angle-left"></i>
                </a>
                
                
                <a href="introduction.html" class="navigation navigation-next " aria-label="Next page: Introduction Flashcards">
                    <i class="fa fa-angle-right"></i>
                </a>
                
            
        
    </div>

    <script>
        var gitbook = gitbook || [];
        gitbook.push(function() {
            gitbook.page.hasChanged({"page":{"title":"Command Line","level":"2.1","depth":1,"next":{"title":"Introduction Flashcards","level":"2.1.1","depth":2,"path":"command_line/introduction.md","ref":"command_line/introduction.md","articles":[]},"previous":{"title":"Introduction","level":"1.1","depth":1,"path":"README.md","ref":"README.md","articles":[]},"dir":"ltr"},"config":{"plugins":["include-codeblock","advanced-emoji","prism","highlight","copy-code-button","edit-link","github","github-buttons","ga","fontsettings"],"styles":{"pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css","website":"styles/website.css"},"pluginsConfig":{"prism":{},"github":{"url":"https://github.com/flashcards/flashcards.github.io/"},"search":{},"lunr":{"maxIndexSize":1000000},"fontsettings":{"family":"sans","size":2,"theme":"white"},"highlight":{},"github-buttons":{"buttons":[{"user":"flashcards","repo":"flashcards.github.io","type":"star","size":"small","count":true},{"user":"flashcards","repo":"flashcards.github.io","type":"watch","size":"small"}]},"copy-code-button":{},"ga":{"configuration":"auto","token":"UA-129080735-2"},"advanced-emoji":{"embedEmojis":false},"include-codeblock":{"check":false,"edit":false,"fixlang":false,"lang":"","template":"default","theme":"chrome","unindent":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"edit-link":{"label":"Edit This Page","base":"https://github.com/flashcards/flashcards.github.io/edit/master"},"theme-default":{"styles":{"pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css","website":"styles/website.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"Flashcards for Developers | flashcards.github.io","gitbook":"3.1.1"},"file":{"path":"command_line/README.md","mtime":"2026-02-15T20:36:55.674Z","type":"markdown"},"gitbook":{"version":"3.1.1","time":"2026-02-15T20:37:47.498Z"},"basePath":"..","book":{"language":""}});
        });
    </script>
</div>

        
    <script src="../gitbook/gitbook.js"></script>
    <script src="../gitbook/theme.js"></script>
    
        
        <script src="../gitbook/gitbook-plugin-copy-code-button/toggle.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-edit-link/plugin.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-github/plugin.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-github-buttons/plugin.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-ga/plugin.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-search/search-engine.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-search/search.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-sharing/buttons.js"></script>
        
    

    </body>
</html>



================================================
FILE: command_line/introduction.html
================================================

<!DOCTYPE HTML>
<html lang="" >
    <head>
        <title>Introduction Flashcards · Flashcards for Developers | flashcards.github.io</title>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
        <meta name="description" content="">
        <meta name="generator" content="GitBook 3.1.1">
        
        
        
    
    <link rel="stylesheet" href="../gitbook/style.css">

    
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-advanced-emoji/emoji-website.css">
                
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-prism/prism.css">
                
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-highlight/website.css">
                
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-fontsettings/website.css">
                
            
                
                <link rel="stylesheet" href="../gitbook/gitbook-plugin-search/search.css">
                
            
        

    

    
        
    
        
    
        
    
        
    
        
    
        
        <link rel="stylesheet" href="../styles/website.css">
        
    

        
    
    
    
    <meta name="HandheldFriendly" content="true"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <link rel="apple-touch-icon-precomposed" sizes="152x152" href="../gitbook/images/apple-touch-icon-precomposed-152.png">
    <link rel="shortcut icon" href="../gitbook/images/favicon.ico" type="image/x-icon">

    
    <link rel="next" href="../graphql/" />
    
    
    <link rel="prev" href="./" />
    

    <style>
    @media only screen and (max-width: 640px) {
        .book-header .hidden-mobile {
            display: none;
        }
    }
    </style>
    <script>
        window["gitbook-plugin-github-buttons"] = {"buttons":[{"user":"flashcards","repo":"flashcards.github.io","type":"star","size":"small","count":true},{"user":"flashcards","repo":"flashcards.github.io","type":"watch","size":"small"}]};
    </script>

    </head>
    <body>
        
<div class="book">
    <div class="book-summary">
        
            
<div id="book-search-input" role="search">
    <input type="text" placeholder="Type to search" />
</div>

            
                <nav role="navigation">
                


<ul class="summary">
    
    

    

    
        
        
    
        <li class="chapter " data-level="1.1" data-path="../">
            
                <a href="../">
            
                    
                    Introduction
            
                </a>
            

            
        </li>
    

    
        
        <li class="header">flashcards.github.io</li>
        
        
    
        <li class="chapter " data-level="2.1" data-path="./">
            
                <a href="./">
            
                    
                    Command Line
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter active" data-level="2.1.1" data-path="introduction.html">
            
                <a href="introduction.html">
            
                    
                    Introduction Flashcards
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="2.2" data-path="../graphql/">
            
                <a href="../graphql/">
            
                    
                    GraphQL
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="2.2.1" data-path="../graphql/introduction.html">
            
                <a href="../graphql/introduction.html">
            
                    
                    Introduction Flashcards
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="2.3" data-path="../sql/">
            
                <a href="../sql/">
            
                    
                    SQL
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="2.3.1" data-path="../sql/introduction.html">
            
                <a href="../sql/introduction.html">
            
                    
                    Introduction Flashcards
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    

    

    <li class="divider"></li>

    <li>
        <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
            Published with GitBook
        </a>
    </li>
</ul>


                </nav>
            
        
    </div>

    <div class="book-body">
        
            <div class="body-inner">
                
                    

<div class="book-header" role="navigation">
    

    <!-- Title -->
    <h1>
        <i class="fa fa-circle-o-notch fa-spin"></i>
        <a href=".." >Introduction Flashcards</a>
    </h1>
</div>




                    <div class="page-wrapper" tabindex="-1" role="main">
                        <div class="page-inner">
                            
<div id="book-search-results">
    <div class="search-noresults">
    
                                <section class="normal markdown-section">
                                
                                <h1 id="introduction--command-line-flashcards">Introduction | Command Line Flashcards</h1>
<iframe class="FlashcardsIO" src="https://embed.flashcards.io/?url=https://flashcards.github.io/command_line/introduction.html"></iframe>

<h3 id="command-line">command line</h3>
<p>The command line is a text interface for your computer. It&#x2019;s a program that takes in commands, which it passes on to the computer&#x2019;s operating system to run.</p>
<h3 id="pwd">pwd</h3>
<p><code>pwd</code> prints the name of the working directory</p>
<h3 id="cd">cd</h3>
<p><code>cd</code> takes a directory name as an argument, and switches into that directory</p>
<h3 id="ls">ls</h3>
<p><code>ls</code> lists all files and directories in the working directory</p>
<h3 id="cp">cp</h3>
<p><code>cp</code> copies files or directories. <code>cp file1 file2</code> will copy file1 to file2</p>
<h3 id="cd-">cd ..</h3>
<p>To move up one directory, use <code>cd ..</code></p>
<h3 id="mkdir">mkdir</h3>
<p><code>mkdir</code> takes in a directory name as an argument, and then creates a new directory in the current working directory.</p>
<h3 id="mv">mv</h3>
<p>To move a file into a directory, use <code>mv</code> with the source file as the first argument and the destination directory as the second argument</p>
<h3 id="cat">cat</h3>
<p><code>cat</code> allows us to create single or multiple files, view contain of file, concatenate files and redirect output in terminal or files.</p>
<h3 id="touch">touch</h3>
<p><code>touch</code> creates a new file inside the working directory. It takes in a file name as an argument, and then creates a new empty file in the current working directory. Here we used touch to create a new file named keyboard.txt inside the 2014/dec/ directory.</p>
<h3 id="grep">grep</h3>
<p><code>grep</code> stands for &#x201C;global regular expression print&#x201D;. It searches files for lines that match a pattern and returns the results. It is case sensitive.</p>
<h3 id="rm">rm</h3>
<p><code>rm</code> deletes files</p>
<h3 id="rm--r">rm -r</h3>
<p><code>rm -r</code> removes a directory recursively</p>
<h3 id="man">man</h3>
<p><code>man command</code> shows the manual for the specified <code>command</code></p>
<h3 id="chmod">chmod</h3>
<p><code>chmod ugo file</code> changes permissions of file to ugo - u is the user&apos;s permissions, g is the group&apos;s permissions, and o is everyone else&apos;s permissions. The values of u, g, and o can be any number between 0 and 7.</p>
<h3 id="cat">cat</h3>
<p>cat command allows us to create single or multiple files, view contain of file, concatenate files and redirect output in terminal or files.</p>
<h3 id="">&gt;&gt;</h3>
<p><code>&gt;&gt;</code> takes the standard output of the command on the left and appends (adds) it to the file on the right. Example: <code>cat glaciers.txt &gt;&gt; rivers.txt</code></p>
<h3 id=""><strong>&lt;</strong></h3>
<p><code>&lt;</code> takes the standard input from the file on the right and inputs it into the program on the left. Example: <code>cat &lt; lakes.txt</code></p>
<h3 id="">|</h3>
<p><code>|</code> is a &#x201C;pipe&#x201D;. The | takes the standard output of the command on the left, and pipes it as standard input to the command on the right. You can think of this as &#x201C;command to command&#x201D; redirection. Example: <code>cat volcanoes.txt | wc</code></p>
<h2 id="references">References:</h2>
<ul>
<li><a href="http://cheatsheetworld.com/programming/unix-linux-cheat-sheet/" target="_blank">http://cheatsheetworld.com/programming/unix-linux-cheat-sheet/</a></li>
<li><a href="https://www.codecademy.com/articles/command-line-commands" target="_blank">https://www.codecademy.com/articles/command-line-commands</a></li>
</ul>

                                
                                </section>
                            
    </div>
    <div class="search-results">
        <div class="has-results">
            
            <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
            <ul class="search-results-list"></ul>
            
        </div>
        <div class="no-results">
            
            <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
            
        </div>
    </div>
</div>

                        </div>
                    </div>
                
            </div>

            
                
                <a href="./" class="navigation navigation-prev " aria-label="Previous page: Command Line">
                    <i class="fa fa-angle-left"></i>
                </a>
                
                
                <a href="../graphql/" class="navigation navigation-next " aria-label="Next page: GraphQL">
                    <i class="fa fa-angle-right"></i>
                </a>
                
            
        
    </div>

    <script>
        var gitbook = gitbook || [];
        gitbook.push(function() {
            gitbook.page.hasChanged({"page":{"title":"Introduction Flashcards","level":"2.1.1","depth":2,"next":{"title":"GraphQL","level":"2.2","depth":1,"path":"graphql/README.md","ref":"graphql/README.md","articles":[{"title":"Introduction Flashcards","level":"2.2.1","depth":2,"path":"graphql/introduction.md","ref":"graphql/introduction.md","articles":[]}]},"previous":{"title":"Command Line","level":"2.1","depth":1,"path":"command_line/README.md","ref":"command_line/README.md","articles":[{"title":"Introduction Flashcards","level":"2.1.1","depth":2,"path":"command_line/introduction.md","ref":"command_line/introduction.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":["include-codeblock","advanced-emoji","prism","highlight","copy-code-button","edit-link","github","github-buttons","ga","fontsettings"],"styles":{"pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css","website":"styles/website.css"},"pluginsConfig":{"prism":{},"github":{"url":"https://github.com/flashcards/flashcards.github.io/"},"search":{},"lunr":{"maxIndexSize":1000000},"fontsettings":{"family":"sans","size":2,"theme":"white"},"highlight":{},"github-buttons":{"buttons":[{"user":"flashcards","repo":"flashcards.github.io","type":"star","size":"small","count":true},{"user":"flashcards","repo":"flashcards.github.io","type":"watch","size":"small"}]},"copy-code-button":{},"ga":{"configuration":"auto","token":"UA-129080735-2"},"advanced-emoji":{"embedEmojis":false},"include-codeblock":{"check":false,"edit":false,"fixlang":false,"lang":"","template":"default","theme":"chrome","unindent":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"edit-link":{"label":"Edit This Page","base":"https://github.com/flashcards/flashcards.github.io/edit/master"},"theme-default":{"styles":{"pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css","website":"styles/website.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"Flashcards for Developers | flashcards.github.io","gitbook":"3.1.1"},"file":{"path":"command_line/introduction.md","mtime":"2026-02-15T20:36:55.675Z","type":"markdown"},"gitbook":{"version":"3.1.1","time":"2026-02-15T20:37:47.498Z"},"basePath":"..","book":{"language":""}});
        });
    </script>
</div>

        
    <script src="../gitbook/gitbook.js"></script>
    <script src="../gitbook/theme.js"></script>
    
        
        <script src="../gitbook/gitbook-plugin-copy-code-button/toggle.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-edit-link/plugin.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-github/plugin.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-github-buttons/plugin.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-ga/plugin.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-search/search-engine.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-search/search.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
        
    
        
        <script src="../gitbook/gitbook-plugin-sharing/buttons.js"></script>
        
    

    </body>
</html>



================================================
FILE: command_line/introduction.md
================================================
# Introduction | Command Line Flashcards

<iframe class="FlashcardsIO" src="https://embed.flashcards.io/?url=https://flashcards.github.io/command_line/introduction.html"></iframe>

### command line

The command line is a text interface for your computer. It’s a program that takes in commands, which it passes on to the computer’s operating system to run.

### pwd

`pwd` prints the name of the working directory

### cd

`cd` takes a directory name as an argument, and switches into that directory

### ls

`ls` lists all files and directories in the working directory

### cp

`cp` copies files or directories. `cp file1 file2` will copy file1 to file2

### cd ..

To move up one directory, use `cd ..`

### mkdir

`mkdir` takes in a directory name as an argument, and then creates a new directory in the current working directory.

### mv

To move a file into a directory, use `mv` with the source file as the first argument and the destination directory as the second argument

### cat

`cat` allows us to create single or multiple files, view contain of file, concatenate files and redirect output in terminal or files.

### touch

`touch` creates a new file inside the working directory. It takes in a file name as an argument, and then creates a new empty file in the current working directory. Here we used touch to create a new file named keyboard.txt inside the 2014/dec/ directory.

### grep

`grep` stands for “global regular expression print”. It searches files for lines that match a pattern and returns the results. It is case sensitive.

### rm

`rm` deletes files

### rm -r

`rm -r` removes a directory recursively

### man

`man command` shows the manual for the specified `command`

### chmod

`chmod ugo file` changes permissions of file to ugo - u is the user's permissions, g is the group's permissions, and o is everyone else's permissions. The values of u, g, and o can be any number between 0 and 7.

### cat

cat command allows us to create single or multiple files, view contain of file, concatenate files and redirect output in terminal or files.

### >>

`>>` takes the standard output of the command on the left and appends (adds) it to the file on the right. Example: `cat glaciers.txt >> rivers.txt`

### **<**

`<` takes the standard input from the file on the right and inputs it into the program on the left. Example: `cat < lakes.txt`

### |

`|` is a “pipe”. The | takes the standard output of the command on the left, and pipes it as standard input to the command on the right. You can think of this as “command to command” redirection. Example: `cat volcanoes.txt | wc`

## References:

- http://cheatsheetworld.com/programming/unix-linux-cheat-sheet/
- https://www.codecademy.com/articles/command-line-commands


================================================
FILE: gitbook/gitbook-plugin-advanced-emoji/LICENSE-IMAGES.md
================================================
octocat, squirrel, shipit
Copyright (c) 2012 GitHub Inc. All rights reserved.

bowtie, neckbeard
Copyright (c) 2012 37signals, LLC. All rights reserved.

feelsgood, finnadie, goberserk, godmode, hurtrealbad, rage 1-4, suspect
Copyright (c) 2012 id Software. All rights reserved.

trollface
Copyright (c) 2012 whynne@deviantart. All rights reserved.

All other images
Copyright (c) 2012 Apple Inc. All rights reserved.


================================================
FILE: gitbook/gitbook-plugin-advanced-emoji/LICENSE.md
================================================
THE MIT LICENSE (MIT)
Copyright © 2014 Hassan Khan, http://hassankhan.me <contact@hassankhan.me>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


================================================
FILE: gitbook/gitbook-plugin-advanced-emoji/emoji-book.css
================================================
/* adjusted for gitbook styling. original css from emojify.js */
.emoji {
  width: 1em;
  height: 1em;
  display: inline-block;
  margin-top: 0;
  background-size: contain;
}

================================================
FILE: gitbook/gitbook-plugin-advanced-emoji/emoji-website.css
================================================
/* adjusted for gitbook styling. original css from emojify.js */
.emoji {
  width: 1.3em;
  height: 1.3em;
  display: inline-block;
  margin-bottom: 0.2em;
  background-size: contain;
}

================================================
FILE: gitbook/gitbook-plugin-copy-code-button/toggle.js
================================================
require(["gitbook", "jQuery"], function(gitbook, $) {
  function selectElementText(el){
      var range = document.createRange();
      range.selectNodeContents(el);
      var selection = window.getSelection();
      selection.removeAllRanges();
      selection.addRange(range);
  }

  function getSelectedText() {
    var t = '';
      if (window.getSelection) {
          t = window.getSelection();
      } else if (document.getSelection) {
          t = document.getSelection();
      } else if (document.selection) {
          t = document.selection.createRange().text;
      }
      return t;
  }
  
  function copyToClipboard(text) {
    if (window.clipboardData && window.clipboardData.setData) {
        // IE specific code path to prevent textarea being shown while dialog is visible.
        return clipboardData.setData("Text", text); 

    } else if (document.queryCommandSupported && document.queryCommandSupported("copy")) {
        var textarea = document.createElement("textarea");
        textarea.textContent = text;
        textarea.style.position = "fixed";  // Prevent scrolling to bottom of page in MS Edge.
        document.body.appendChild(textarea);
        textarea.select();
        try {
            return document.execCommand("copy");  // Security exception may be thrown by some browsers.
        } catch (ex) {
            console.warn("Copy to clipboard failed.", ex);
            return false;
        } finally {
            document.body.removeChild(textarea);
        }
    }
  }

  function expand(chapter) {
    chapter.show();
    if (chapter.parent().attr('class') != 'summary'
        && chapter.parent().attr('class') != 'book-summary'
      && chapter.length != 0
       ) {
         expand(chapter.parent());
       }
  }

  gitbook.events.bind("page.change", function() {
    $("pre").each(function(){
      $(this).css("position", "relative");

      var $copyCodeButton = $("<button class='copy-code-button'>Copy</button>");
      $copyCodeButton.css({"position": "absolute", "top": "5px", "right": "5px", "padding": "3px", "background-color":"#313E4E", "color":"white", "border-radius": "5px" , "-moz-border-radius": "5px", "-webkit-border-radius": "5px", "border": "2px solid #CCCCCC"});
      $copyCodeButton.click(function(){
        var $codeContainer = $(this).siblings("code");
        if($codeContainer) {
          selectElementText($codeContainer.get(0));
          var selectedText = getSelectedText();

          var buttonNewText = "";
          if(copyToClipboard(selectedText) == true){
            buttonNewText = "Copied";
            selectElementText($codeContainer.get(0));
          } else {
            buttonNewText = "Unable to copy";
            selectElementText($codeContainer.get(0));
          }

          $(this).text(buttonNewText);
          var that = this;
          setTimeout(function(){
              $(that).text("Copy");
          }, 2000);
        }
      });
      
      $(this).append($copyCodeButton);
    });
  });
});


================================================
FILE: gitbook/gitbook-plugin-edit-link/plugin.js
================================================
require(["gitbook", "jQuery"], function(gitbook, $) {
    gitbook.events.bind('start', function (e, config) {
        var conf = config['edit-link'];
        var label = conf.label;
        var base = conf.base;
        var lang = gitbook.state.innerLanguage;
        if (lang) {
            // label can be a unique string for multi-languages site
            if (typeof label === 'object') label = label[lang];

            lang = lang + '/';
        }

        // Add slash at the end if not present
        if (base.slice(-1) != "/") {
            base = base + "/";
        }

        gitbook.toolbar.createButton({
            icon: 'fa fa-edit',
            text: label,
            onClick: function() {
                var filepath = gitbook.state.filepath;

                window.open(base + lang + filepath);
            }
        });
    });

});

================================================
FILE: gitbook/gitbook-plugin-fontsettings/fontsettings.js
================================================
require(['gitbook', 'jquery'], function(gitbook, $) {
    // Configuration
    var MAX_SIZE       = 4,
        MIN_SIZE       = 0,
        BUTTON_ID;

    // Current fontsettings state
    var fontState;

    // Default themes
    var THEMES = [
        {
            config: 'white',
            text: 'White',
            id: 0
        },
        {
            config: 'sepia',
            text: 'Sepia',
            id: 1
        },
        {
            config: 'night',
            text: 'Night',
            id: 2
        }
    ];

    // Default font families
    var FAMILIES = [
        {
            config: 'serif',
            text: 'Serif',
            id: 0
        },
        {
            config: 'sans',
            text: 'Sans',
            id: 1
        }
    ];

    // Return configured themes
    function getThemes() {
        return THEMES;
    }

    // Modify configured themes
    function setThemes(themes) {
        THEMES = themes;
        updateButtons();
    }

    // Return configured font families
    function getFamilies() {
        return FAMILIES;
    }

    // Modify configured font families
    function setFamilies(families) {
        FAMILIES = families;
        updateButtons();
    }

    // Save current font settings
    function saveFontSettings() {
        gitbook.storage.set('fontState', fontState);
        update();
    }

    // Increase font size
    function enlargeFontSize(e) {
        e.preventDefault();
        if (fontState.size >= MAX_SIZE) return;

        fontState.size++;
        saveFontSettings();
    }

    // Decrease font size
    function reduceFontSize(e) {
        e.preventDefault();
        if (fontState.size <= MIN_SIZE) return;

        fontState.size--;
        saveFontSettings();
    }

    // Change font family
    function changeFontFamily(configName, e) {
        if (e && e instanceof Event) {
            e.preventDefault();
        }

        var familyId = getFontFamilyId(configName);
        fontState.family = familyId;
        saveFontSettings();
    }

    // Change type of color theme
    function changeColorTheme(configName, e) {
        if (e && e instanceof Event) {
            e.preventDefault();
        }

        var $book = gitbook.state.$book;

        // Remove currently applied color theme
        if (fontState.theme !== 0)
            $book.removeClass('color-theme-'+fontState.theme);

        // Set new color theme
        var themeId = getThemeId(configName);
        fontState.theme = themeId;
        if (fontState.theme !== 0)
            $book.addClass('color-theme-'+fontState.theme);

        saveFontSettings();
    }

    // Return the correct id for a font-family config key
    // Default to first font-family
    function getFontFamilyId(configName) {
        // Search for plugin configured font family
        var configFamily = $.grep(FAMILIES, function(family) {
            return family.config == configName;
        })[0];
        // Fallback to default font family
        return (!!configFamily)? configFamily.id : 0;
    }

    // Return the correct id for a theme config key
    // Default to first theme
    function getThemeId(configName) {
        // Search for plugin configured theme
        var configTheme = $.grep(THEMES, function(theme) {
            return theme.config == configName;
        })[0];
        // Fallback to default theme
        return (!!configTheme)? configTheme.id : 0;
    }

    function update() {
        var $book = gitbook.state.$book;

        $('.font-settings .font-family-list li').removeClass('active');
        $('.font-settings .font-family-list li:nth-child('+(fontState.family+1)+')').addClass('active');

        $book[0].className = $book[0].className.replace(/\bfont-\S+/g, '');
        $book.addClass('font-size-'+fontState.size);
        $book.addClass('font-family-'+fontState.family);

        if(fontState.theme !== 0) {
            $book[0].className = $book[0].className.replace(/\bcolor-theme-\S+/g, '');
            $book.addClass('color-theme-'+fontState.theme);
        }
    }

    function init(config) {
        // Search for plugin configured font family
        var configFamily = getFontFamilyId(config.family),
            configTheme = getThemeId(config.theme);

        // Instantiate font state object
        fontState = gitbook.storage.get('fontState', {
            size:   config.size || 2,
            family: configFamily,
            theme:  configTheme
        });

        update();
    }

    function updateButtons() {
        // Remove existing fontsettings buttons
        if (!!BUTTON_ID) {
            gitbook.toolbar.removeButton(BUTTON_ID);
        }

        // Create buttons in toolbar
        BUTTON_ID = gitbook.toolbar.createButton({
            icon: 'fa fa-font',
            label: 'Font Settings',
            className: 'font-settings',
            dropdown: [
                [
                    {
                        text: 'A',
                        className: 'font-reduce',
                        onClick: reduceFontSize
                    },
                    {
                        text: 'A',
                        className: 'font-enlarge',
                        onClick: enlargeFontSize
                    }
                ],
                $.map(FAMILIES, function(family) {
                    family.onClick = function(e) {
                        return changeFontFamily(family.config, e);
                    };

                    return family;
                }),
                $.map(THEMES, function(theme) {
                    theme.onClick = function(e) {
                        return changeColorTheme(theme.config, e);
                    };

                    return theme;
                })
            ]
        });
    }

    // Init configuration at start
    gitbook.events.bind('start', function(e, config) {
        var opts = config.fontsettings;

        // Generate buttons at start
        updateButtons();

        // Init current settings
        init(opts);
    });

    // Expose API
    gitbook.fontsettings = {
        enlargeFontSize: enlargeFontSize,
        reduceFontSize:  reduceFontSize,
        setTheme:        changeColorTheme,
        setFamily:       changeFontFamily,
        getThemes:       getThemes,
        setThemes:       setThemes,
        getFamilies:     getFamilies,
        setFamilies:     setFamilies
    };
});




================================================
FILE: gitbook/gitbook-plugin-fontsettings/website.css
================================================
/*
 * Theme 1
 */
.color-theme-1 .dropdown-menu {
  background-color: #111111;
  border-color: #7e888b;
}
.color-theme-1 .dropdown-menu .dropdown-caret .caret-inner {
  border-bottom: 9px solid #111111;
}
.color-theme-1 .dropdown-menu .buttons {
  border-color: #7e888b;
}
.color-theme-1 .dropdown-menu .button {
  color: #afa790;
}
.color-theme-1 .dropdown-menu .button:hover {
  color: #73553c;
}
/*
 * Theme 2
 */
.color-theme-2 .dropdown-menu {
  background-color: #2d3143;
  border-color: #272a3a;
}
.color-theme-2 .dropdown-menu .dropdown-caret .caret-inner {
  border-bottom: 9px solid #2d3143;
}
.color-theme-2 .dropdown-menu .buttons {
  border-color: #272a3a;
}
.color-theme-2 .dropdown-menu .button {
  color: #62677f;
}
.color-theme-2 .dropdown-menu .button:hover {
  color: #f4f4f5;
}
.book .book-header .font-settings .font-enlarge {
  line-height: 30px;
  font-size: 1.4em;
}
.book .book-header .font-settings .font-reduce {
  line-height: 30px;
  font-size: 1em;
}
.book.color-theme-1 .book-body {
  color: #704214;
  background: #f3eacb;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section {
  background: #f3eacb;
}
.book.color-theme-2 .book-body {
  color: #bdcadb;
  background: #1c1f2b;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section {
  background: #1c1f2b;
}
.book.font-size-0 .book-body .page-inner section {
  font-size: 1.2rem;
}
.book.font-size-1 .book-body .page-inner section {
  font-size: 1.4rem;
}
.book.font-size-2 .book-body .page-inner section {
  font-size: 1.6rem;
}
.book.font-size-3 .book-body .page-inner section {
  font-size: 2.2rem;
}
.book.font-size-4 .book-body .page-inner section {
  font-size: 4rem;
}
.book.font-family-0 {
  font-family: Georgia, serif;
}
.book.font-family-1 {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal {
  color: #704214;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal a {
  color: inherit;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h1,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h2,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h3,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h4,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h5,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h6 {
  color: inherit;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h1,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h2 {
  border-color: inherit;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h6 {
  color: inherit;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal hr {
  background-color: inherit;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal blockquote {
  border-color: inherit;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code {
  background: #fdf6e3;
  color: #657b83;
  border-color: #f8df9c;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal .highlight {
  background-color: inherit;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table th,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table td {
  border-color: #f5d06c;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table tr {
  color: inherit;
  background-color: #fdf6e3;
  border-color: #444444;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table tr:nth-child(2n) {
  background-color: #fbeecb;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal {
  color: #bdcadb;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal a {
  color: #3eb1d0;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h1,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h2,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h3,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h4,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h5,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h6 {
  color: #fffffa;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h1,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h2 {
  border-color: #373b4e;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h6 {
  color: #373b4e;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal hr {
  background-color: #373b4e;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal blockquote {
  border-color: #373b4e;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code {
  color: #9dbed8;
  background: #2d3143;
  border-color: #2d3143;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal .highlight {
  background-color: #282a39;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table th,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table td {
  border-color: #3b3f54;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table tr {
  color: #b6c2d2;
  background-color: #2d3143;
  border-color: #3b3f54;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table tr:nth-child(2n) {
  background-color: #35394b;
}
.book.color-theme-1 .book-header {
  color: #afa790;
  background: transparent;
}
.book.color-theme-1 .book-header .btn {
  color: #afa790;
}
.book.color-theme-1 .book-header .btn:hover {
  color: #73553c;
  background: none;
}
.book.color-theme-1 .book-header h1 {
  color: #704214;
}
.book.color-theme-2 .book-header {
  color: #7e888b;
  background: transparent;
}
.book.color-theme-2 .book-header .btn {
  color: #3b3f54;
}
.book.color-theme-2 .book-header .btn:hover {
  color: #fffff5;
  background: none;
}
.book.color-theme-2 .book-header h1 {
  color: #bdcadb;
}
.book.color-theme-1 .book-body .navigation {
  color: #afa790;
}
.book.color-theme-1 .book-body .navigation:hover {
  color: #73553c;
}
.book.color-theme-2 .book-body .navigation {
  color: #383f52;
}
.book.color-theme-2 .book-body .navigation:hover {
  color: #fffff5;
}
/*
 * Theme 1
 */
.book.color-theme-1 .book-summary {
  color: #afa790;
  background: #111111;
  border-right: 1px solid rgba(0, 0, 0, 0.07);
}
.book.color-theme-1 .book-summary .book-search {
  background: transparent;
}
.book.color-theme-1 .book-summary .book-search input,
.book.color-theme-1 .book-summary .book-search input:focus {
  border: 1px solid transparent;
}
.book.color-theme-1 .book-summary ul.summary li.divider {
  background: #7e888b;
  box-shadow: none;
}
.book.color-theme-1 .book-summary ul.summary li i.fa-check {
  color: #33cc33;
}
.book.color-theme-1 .book-summary ul.summary li.done > a {
  color: #877f6a;
}
.book.color-theme-1 .book-summary ul.summary li a,
.book.color-theme-1 .book-summary ul.summary li span {
  color: #877f6a;
  background: transparent;
  font-weight: normal;
}
.book.color-theme-1 .book-summary ul.summary li.active > a,
.book.color-theme-1 .book-summary ul.summary li a:hover {
  color: #704214;
  background: transparent;
  font-weight: normal;
}
/*
 * Theme 2
 */
.book.color-theme-2 .book-summary {
  color: #bcc1d2;
  background: #2d3143;
  border-right: none;
}
.book.color-theme-2 .book-summary .book-search {
  background: transparent;
}
.book.color-theme-2 .book-summary .book-search input,
.book.color-theme-2 .book-summary .book-search input:focus {
  border: 1px solid transparent;
}
.book.color-theme-2 .book-summary ul.summary li.divider {
  background: #272a3a;
  box-shadow: none;
}
.book.color-theme-2 .book-summary ul.summary li i.fa-check {
  color: #33cc33;
}
.book.color-theme-2 .book-summary ul.summary li.done > a {
  color: #62687f;
}
.book.color-theme-2 .book-summary ul.summary li a,
.book.color-theme-2 .book-summary ul.summary li span {
  color: #c1c6d7;
  background: transparent;
  font-weight: 600;
}
.book.color-theme-2 .book-summary ul.summary li.active > a,
.book.color-theme-2 .book-summary ul.summary li a:hover {
  color: #f4f4f5;
  background: #252737;
  font-weight: 600;
}


================================================
FILE: gitbook/gitbook-plugin-ga/plugin.js
================================================
require(["gitbook"], function(gitbook) {
    // Load analytics.js
    gitbook.events.bind("start", function(e, config) {
        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

        var cfg = config.ga;
        ga('create', cfg.token, cfg.configuration);
    });

    // Notify pageview
    gitbook.events.bind("page.change", function() {
        ga('send', 'pageview', window.location.pathname+window.location.search);
    });
});


================================================
FILE: gitbook/gitbook-plugin-github/plugin.js
================================================
require([ 'gitbook' ], function (gitbook) {
    gitbook.events.bind('start', function (e, config) {
        var githubURL = config.github.url;

        gitbook.toolbar.createButton({
            icon: 'fa fa-github',
            label: 'GitHub',
            position: 'right',
            onClick: function() {
                window.open(githubURL)
            }
        });
    });
});


================================================
FILE: gitbook/gitbook-plugin-github-buttons/plugin.js
================================================
// LICENSE : MIT
"use strict";
require(['gitbook'], function (gitbook) {
    function addBeforeHeader(element) {
        jQuery('.book-header > h1').before(element);
    }

    function createButton(_ref) {
        var user = _ref.user;
        var repo = _ref.repo;
        var type = _ref.type;
        var size = _ref.size;
        var width = _ref.width;
        var height = _ref.height;
        var count = _ref.count;

        var extraParam = type === "watch" ? "&v=2" : "";
        return '<a class="btn pull-right hidden-mobile" aria-label="github">\n            <iframe\n                style="display:inline-block;vertical-align:middle;"\n                src="https://ghbtns.com/github-btn.html?user=' + user + '&repo=' + repo + '&type=' + type + '&count=' + count + '&size=' + size + extraParam + '"\n                frameborder="0"\n                scrolling="0"\n                width="' + width + 'px"\n                height="' + height + 'px"\n            ></iframe>\n        </a>';
    }

    function createUserButton(_ref2) {
        var user = _ref2.user;
        var size = _ref2.size;
        var width = _ref2.width;
        var height = _ref2.height;
        var count = _ref2.count;

        return '<a class="btn pull-right hidden-mobile" aria-label="github">\n            <iframe\n                style="display:inline-block;vertical-align:middle;"\n                src="https://ghbtns.com/github-btn.html?user=' + user + '&type=follow&count=' + count + '&size=' + size + '"\n                frameborder="0"\n                scrolling="0"\n                width="' + width + 'px"\n                height="' + height + 'px"\n            ></iframe>\n        </a>';
    }

    function insertGitHubLink(button) {
        var user = button.user;
        var repo = button.repo;
        var type = button.type;
        var size = button.size;
        var width = button.width;
        var height = button.height;
        var count = button.count;

        var size = size || "large";
        var width = width || (size === "large" ? "150" : "100");
        var height = height || (size === "large" ? "30" : "20");
        var count = typeof count === "boolean" ? count : false;

        if (type === 'follow') {
            var elementString = createUserButton({
                user: user,
                size: size,
                width: width,
                height: height,
                count: count
            });
        } else {
            var elementString = createButton({
                user: user,
                repo: repo,
                type: type,
                size: size,
                width: width,
                height: height,
                count: count
            });
        }
        addBeforeHeader(elementString);
    }

    function init(config) {
        config.buttons.forEach(insertGitHubLink);
    }

    // injected by html hook
    function getPluginConfig() {
        return window["gitbook-plugin-github-buttons"];
    }

    // make sure configuration gets injected
    gitbook.events.bind('start', function (e, config) {
        window["gitbook-plugin-github-buttons"] = config["github-buttons"];
    });

    gitbook.events.bind('page.change', function () {
        init(getPluginConfig());
    });
});
//# sourceMappingURL=plugin.js.map

================================================
FILE: gitbook/gitbook-plugin-highlight/ebook.css
================================================
pre,
code {
  /* From https://github.com/isagalaev/highlight.js/blob/9.8.0/src/styles/tomorrow.css */
  /* http://jmblog.github.io/color-themes-for-highlightjs */
  /* Tomorrow Comment */
  /* Tomorrow Red */
  /* Tomorrow Orange */
  /* Tomorrow Yellow */
  /* Tomorrow Green */
  /* Tomorrow Blue */
  /* Tomorrow Purple */
}
pre .hljs-comment,
code .hljs-comment,
pre .hljs-quote,
code .hljs-quote {
  color: #8e908c;
}
pre .hljs-variable,
code .hljs-variable,
pre .hljs-template-variable,
code .hljs-template-variable,
pre .hljs-tag,
code .hljs-tag,
pre .hljs-name,
code .hljs-name,
pre .hljs-selector-id,
code .hljs-selector-id,
pre .hljs-selector-class,
code .hljs-selector-class,
pre .hljs-regexp,
code .hljs-regexp,
pre .hljs-deletion,
code .hljs-deletion {
  color: #c82829;
}
pre .hljs-number,
code .hljs-number,
pre .hljs-built_in,
code .hljs-built_in,
pre .hljs-builtin-name,
code .hljs-builtin-name,
pre .hljs-literal,
code .hljs-literal,
pre .hljs-type,
code .hljs-type,
pre .hljs-params,
code .hljs-params,
pre .hljs-meta,
code .hljs-meta,
pre .hljs-link,
code .hljs-link {
  color: #f5871f;
}
pre .hljs-attribute,
code .hljs-attribute {
  color: #eab700;
}
pre .hljs-string,
code .hljs-string,
pre .hljs-symbol,
code .hljs-symbol,
pre .hljs-bullet,
code .hljs-bullet,
pre .hljs-addition,
code .hljs-addition {
  color: #718c00;
}
pre .hljs-title,
code .hljs-title,
pre .hljs-section,
code .hljs-section {
  color: #4271ae;
}
pre .hljs-keyword,
code .hljs-keyword,
pre .hljs-selector-tag,
code .hljs-selector-tag {
  color: #8959a8;
}
pre .hljs,
code .hljs {
  display: block;
  overflow-x: auto;
  background: white;
  color: #4d4d4c;
  padding: 0.5em;
}
pre .hljs-emphasis,
code .hljs-emphasis {
  font-style: italic;
}
pre .hljs-strong,
code .hljs-strong {
  font-weight: bold;
}


================================================
FILE: gitbook/gitbook-plugin-highlight/website.css
================================================
.book .book-body .page-wrapper .page-inner section.normal pre,
.book .book-body .page-wrapper .page-inner section.normal code {
  /* From https://github.com/isagalaev/highlight.js/blob/9.8.0/src/styles/tomorrow.css */
  /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
  /* Tomorrow Comment */
  /* Tomorrow Red */
  /* Tomorrow Orange */
  /* Tomorrow Yellow */
  /* Tomorrow Green */
  /* Tomorrow Blue */
  /* Tomorrow Purple */
}
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-comment,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-comment,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-quote,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-quote {
  color: #8e908c;
}
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-variable,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-variable,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-template-variable,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-template-variable,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-tag,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-tag,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-name,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-name,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-id,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-selector-id,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-class,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-selector-class,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-regexp,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-deletion,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-deletion {
  color: #c82829;
}
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-number,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-number,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-built_in,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-builtin-name,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-builtin-name,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-literal,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-literal,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-type,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-type,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-params,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-params,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-meta,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-meta,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-link,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-link {
  color: #f5871f;
}
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-attribute {
  color: #eab700;
}
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-string,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-string,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-symbol,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-symbol,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-bullet,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-bullet,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-addition,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-addition {
  color: #718c00;
}
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-title,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-section,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-section {
  color: #4271ae;
}
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-keyword,
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-tag,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-selector-tag {
  color: #8959a8;
}
.book .book-body .page-wrapper .page-inner section.normal pre .hljs,
.book .book-body .page-wrapper .page-inner section.normal code .hljs {
  display: block;
  overflow-x: auto;
  background: white;
  color: #4d4d4c;
  padding: 0.5em;
}
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-emphasis,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-emphasis {
  font-style: italic;
}
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-strong,
.book .book-body .page-wrapper .page-inner section.normal code .hljs-strong {
  font-weight: bold;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code {
  /* From https://github.com/isagalaev/highlight.js/blob/9.8.0/src/styles/solarized-light.css */
  /*

Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull <sourdrums@gmail.com>

*/
  /* Solarized Green */
  /* Solarized Cyan */
  /* Solarized Blue */
  /* Solarized Yellow */
  /* Solarized Orange */
  /* Solarized Red */
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs {
  display: block;
  overflow-x: auto;
  padding: 0.5em;
  background: #fdf6e3;
  color: #657b83;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-comment,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-comment,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-quote,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-quote {
  color: #93a1a1;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-keyword,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-tag,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-tag,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-addition,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-addition {
  color: #859900;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-number,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-number,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-string,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-string,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-meta .hljs-meta-string,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-meta .hljs-meta-string,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-literal,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-literal,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-doctag,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-doctag,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-regexp {
  color: #2aa198;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-title,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-title,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-section,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-section,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-name,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-name,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-id,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-id,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-class,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-class {
  color: #268bd2;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-attribute,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-attr,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-attr,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-variable,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-variable,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-template-variable,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-template-variable,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-class .hljs-title,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-class .hljs-title,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-type,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-type {
  color: #b58900;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-symbol,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-symbol,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-bullet,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-bullet,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-subst,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-subst,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-meta,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-meta,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-meta .hljs-keyword,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-meta .hljs-keyword,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-attr,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-attr,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-pseudo,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-pseudo,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-link,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-link {
  color: #cb4b16;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-built_in,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-deletion,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-deletion {
  color: #dc322f;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-formula,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-formula {
  background: #eee8d5;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-emphasis,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-emphasis {
  font-style: italic;
}
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-strong,
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-strong {
  font-weight: bold;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code {
  /* From https://github.com/isagalaev/highlight.js/blob/9.8.0/src/styles/tomorrow-night-bright.css */
  /* Tomorrow Night Bright Theme */
  /* Original theme - https://github.com/chriskempson/tomorrow-theme */
  /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
  /* Tomorrow Comment */
  /* Tomorrow Red */
  /* Tomorrow Orange */
  /* Tomorrow Yellow */
  /* Tomorrow Green */
  /* Tomorrow Blue */
  /* Tomorrow Purple */
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-comment,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-comment,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-quote,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-quote {
  color: #969896;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-variable,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-variable,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-template-variable,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-template-variable,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-tag,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-tag,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-name,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-name,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-id,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-id,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-class,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-class,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-regexp,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-deletion,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-deletion {
  color: #d54e53;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-number,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-number,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-built_in,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-builtin-name,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-builtin-name,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-literal,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-literal,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-type,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-type,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-params,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-params,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-meta,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-meta,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-link,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-link {
  color: #e78c45;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-attribute {
  color: #e7c547;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-string,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-string,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-symbol,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-symbol,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-bullet,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-bullet,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-addition,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-addition {
  color: #b9ca4a;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-title,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-section,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-section {
  color: #7aa6da;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-keyword,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-tag,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-tag {
  color: #c397d8;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs {
  display: block;
  overflow-x: auto;
  background: black;
  color: #eaeaea;
  padding: 0.5em;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-emphasis,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-emphasis {
  font-style: italic;
}
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-strong,
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-strong {
  font-weight: bold;
}


================================================
FILE: gitbook/gitbook-plugin-lunr/search-lunr.js
================================================
require([
    'gitbook',
    'jquery'
], function(gitbook, $) {
    // Define global search engine
    function LunrSearchEngine() {
        this.index = null;
        this.store = {};
        this.name = 'LunrSearchEngine';
    }

    // Initialize lunr by fetching the search index
    LunrSearchEngine.prototype.init = function() {
        var that = this;
        var d = $.Deferred();

        $.getJSON(gitbook.state.basePath+'/search_index.json')
        .then(function(data) {
            // eslint-disable-next-line no-undef
            that.index = lunr.Index.load(data.index);
            that.store = data.store;
            d.resolve();
        });

        return d.promise();
    };

    // Search for a term and return results
    LunrSearchEngine.prototype.search = function(q, offset, length) {
        var that = this;
        var results = [];

        if (this.index) {
            results = $.map(this.index.search(q), function(result) {
                var doc = that.store[result.ref];

                return {
                    title: doc.title,
                    url: doc.url,
                    body: doc.summary || doc.body
                };
            });
        }

        return $.Deferred().resolve({
            query: q,
            results: results.slice(0, length),
            count: results.length
        }).promise();
    };

    // Set gitbook research
    gitbook.events.bind('start', function(e, config) {
        var engine = gitbook.search.getEngine();
        if (!engine) {
            gitbook.search.setEngine(LunrSearchEngine, config);
        }
    });
});

================================================
FILE: gitbook/gitbook-plugin-prism/prism-coy.css
================================================
/**
 * prism.js Coy theme for JavaScript, CoffeeScript, CSS and HTML
 * Based on https://github.com/tshedor/workshop-wp-theme (Example: http://workshop.kansan.com/category/sessions/basics or http://workshop.timshedor.com/category/sessions/basics);
 * @author Tim  Shedor
 */

code[class*="language-"],
pre[class*="language-"] {
	color: black;
	background: none;
	font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
	font-size: 1em;
	text-align: left;
	white-space: pre;
	word-spacing: normal;
	word-break: normal;
	word-wrap: normal;
	line-height: 1.5;

	-moz-tab-size: 4;
	-o-tab-size: 4;
	tab-size: 4;

	-webkit-hyphens: none;
	-moz-hyphens: none;
	-ms-hyphens: none;
	hyphens: none;
}

/* Code blocks */
pre[class*="language-"] {
	position: relative;
	margin: .5em 0;
	overflow: visible;
	padding: 0;
}
pre[class*="language-"]>code {
	position: relative;
	border-left: 10px solid #358ccb;
	box-shadow: -1px 0px 0px 0px #358ccb, 0px 0px 0px 1px #dfdfdf;
	background-color: #fdfdfd;
	background-image: linear-gradient(transparent 50%, rgba(69, 142, 209, 0.04) 50%);
	background-size: 3em 3em;
	background-origin: content-box;
	background-attachment: local;
}

code[class*="language"] {
	max-height: inherit;
	height: inherit;
	padding: 0 1em;
	display: block;
	overflow: auto;
}

/* Margin bottom to accommodate shadow */
:not(pre) > code[class*="language-"],
pre[class*="language-"] {
	background-color: #fdfdfd;
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	margin-bottom: 1em;
}

/* Inline code */
:not(pre) > code[class*="language-"] {
	position: relative;
	padding: .2em;
	border-radius: 0.3em;
	color: #c92c2c;
	border: 1px solid rgba(0, 0, 0, 0.1);
	display: inline;
	white-space: normal;
}

pre[class*="language-"]:before,
pre[class*="language-"]:after {
	content: '';
	z-index: -2;
	display: block;
	position: absolute;
	bottom: 0.75em;
	left: 0.18em;
	width: 40%;
	height: 20%;
	max-height: 13em;
	box-shadow: 0px 13px 8px #979797;
	-webkit-transform: rotate(-2deg);
	-moz-transform: rotate(-2deg);
	-ms-transform: rotate(-2deg);
	-o-transform: rotate(-2deg);
	transform: rotate(-2deg);
}

:not(pre) > code[class*="language-"]:after,
pre[class*="language-"]:after {
	right: 0.75em;
	left: auto;
	-webkit-transform: rotate(2deg);
	-moz-transform: rotate(2deg);
	-ms-transform: rotate(2deg);
	-o-transform: rotate(2deg);
	transform: rotate(2deg);
}

.token.comment,
.token.block-comment,
.token.prolog,
.token.doctype,
.token.cdata {
	color: #7D8B99;
}

.token.punctuation {
	color: #5F6364;
}

.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.function-name,
.token.constant,
.token.symbol,
.token.deleted {
	color: #c92c2c;
}

.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.function,
.token.builtin,
.token.inserted {
	color: #2f9c0a;
}

.token.operator,
.token.entity,
.token.url,
.token.variable {
	color: #a67f59;
	background: rgba(255, 255, 255, 0.5);
}

.token.atrule,
.token.attr-value,
.token.keyword,
.token.class-name {
	color: #1990b8;
}

.token.regex,
.token.important {
	color: #e90;
}

.language-css .token.string,
.style .token.string {
	color: #a67f59;
	background: rgba(255, 255, 255, 0.5);
}

.token.important {
	font-weight: normal;
}

.token.bold {
	font-weight: bold;
}
.token.italic {
	font-style: italic;
}

.token.entity {
	cursor: help;
}

.token.namespace {
	opacity: .7;
}

@media screen and (max-width: 767px) {
	pre[class*="language-"]:before,
	pre[class*="language-"]:after {
		bottom: 14px;
		box-shadow: none;
	}

}

/* Plugin styles */
.token.tab:not(:empty):before,
.token.cr:before,
.token.lf:before {
	color: #e0d7d1;
}

/* Plugin styles: Line Numbers */
pre[class*="language-"].line-numbers.line-numbers {
	padding-left: 0;
}

pre[class*="language-"].line-numbers.line-numbers code {
	padding-left: 3.8em;
}

pre[class*="language-"].line-numbers.line-numbers .line-numbers-rows {
	left: 0;
}

/* Plugin styles: Line Highlight */
pre[class*="language-"][data-line] {
	padding-top: 0;
	padding-bottom: 0;
	padding-left: 0;
}
pre[data-line] code {
	position: relative;
	padding-left: 4em;
}
pre .line-highlight {
	margin-top: 0;
}


================================================
FILE: gitbook/gitbook-plugin-prism/prism-dark.css
================================================
/**
 * prism.js Dark theme for JavaScript, CSS and HTML
 * Based on the slides of the talk “/Reg(exp){2}lained/”
 * @author Lea Verou
 */

code[class*="language-"],
pre[class*="language-"] {
	color: white;
	background: none;
	text-shadow: 0 -.1em .2em black;
	font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
	font-size: 1em;
	text-align: left;
	white-space: pre;
	word-spacing: normal;
	word-break: normal;
	word-wrap: normal;
	line-height: 1.5;

	-moz-tab-size: 4;
	-o-tab-size: 4;
	tab-size: 4;

	-webkit-hyphens: none;
	-moz-hyphens: none;
	-ms-hyphens: none;
	hyphens: none;
}

@media print {
	code[class*="language-"],
	pre[class*="language-"] {
		text-shadow: none;
	}
}

pre[class*="language-"],
:not(pre) > code[class*="language-"] {
	background: hsl(30, 20%, 25%);
}

/* Code blocks */
pre[class*="language-"] {
	padding: 1em;
	margin: .5em 0;
	overflow: auto;
	border: .3em solid hsl(30, 20%, 40%);
	border-radius: .5em;
	box-shadow: 1px 1px .5em black inset;
}

/* Inline code */
:not(pre) > code[class*="language-"] {
	padding: .15em .2em .05em;
	border-radius: .3em;
	border: .13em solid hsl(30, 20%, 40%);
	box-shadow: 1px 1px .3em -.1em black inset;
	white-space: normal;
}

.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
	color: hsl(30, 20%, 50%);
}

.token.punctuation {
	opacity: .7;
}

.token.namespace {
	opacity: .7;
}

.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol {
	color: hsl(350, 40%, 70%);
}

.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
	color: hsl(75, 70%, 60%);
}

.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string,
.token.variable {
	color: hsl(40, 90%, 60%);
}

.token.atrule,
.token.attr-value,
.token.keyword {
	color: hsl(350, 40%, 70%);
}

.token.regex,
.token.important {
	color: #e90;
}

.token.important,
.token.bold {
	font-weight: bold;
}
.token.italic {
	font-style: italic;
}

.token.entity {
	cursor: help;
}

.token.deleted {
	color: red;
}


================================================
FILE: gitbook/gitbook-plugin-prism/prism-funky.css
================================================
/**
 * prism.js Funky theme
 * Based on “Polyfilling the gaps” talk slides http://lea.verou.me/polyfilling-the-gaps/
 * @author Lea Verou
 */

code[class*="language-"],
pre[class*="language-"] {
	font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
	font-size: 1em;
	text-align: left;
	white-space: pre;
	word-spacing: normal;
	word-break: normal;
	word-wrap: normal;
	line-height: 1.5;

	-moz-tab-size: 4;
	-o-tab-size: 4;
	tab-size: 4;

	-webkit-hyphens: none;
	-moz-hyphens: none;
	-ms-hyphens: none;
	hyphens: none;
}

/* Code blocks */
pre[class*="language-"] {
	padding: .4em .8em;
	margin: .5em 0;
	overflow: auto;
	background: url('data:image/svg+xml;charset=utf-8,<svg%20version%3D"1.1"%20xmlns%3D"http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg"%20width%3D"100"%20height%3D"100"%20fill%3D"rgba(0%2C0%2C0%2C.2)">%0D%0A<polygon%20points%3D"0%2C50%2050%2C0%200%2C0"%20%2F>%0D%0A<polygon%20points%3D"0%2C100%2050%2C100%20100%2C50%20100%2C0"%20%2F>%0D%0A<%2Fsvg>');
	background-size: 1em 1em;
}

code[class*="language-"] {
	background: black;
	color: white;
	box-shadow: -.3em 0 0 .3em black, .3em 0 0 .3em black;
}

/* Inline code */
:not(pre) > code[class*="language-"] {
	padding: .2em;
	border-radius: .3em;
	box-shadow: none;
	white-space: normal;
}

.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
	color: #aaa;
}

.token.punctuation {
	color: #999;
}

.token.namespace {
	opacity: .7;
}

.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol {
	color: #0cf;
}

.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin {
	color: yellow;
}

.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.token.variable,
.token.inserted {
	color: yellowgreen;
}

.token.atrule,
.token.attr-value,
.token.keyword {
	color: deeppink;
}

.token.regex,
.token.important {
	color: orange;
}

.token.important,
.token.bold {
	font-weight: bold;
}
.token.italic {
	font-style: italic;
}

.token.entity {
	cursor: help;
}

.token.deleted {
	color: red;
}

/* Plugin styles: Diff Highlight */
pre.diff-highlight.diff-highlight > code .token.deleted:not(.prefix),
pre > code.diff-highlight.diff-highlight .token.deleted:not(.prefix) {
	background-color: rgba(255, 0, 0, .3);
	display: inline;
}

pre.diff-highlight.diff-highlight > code .token.inserted:not(.prefix),
pre > code.diff-highlight.diff-highlight .token.inserted:not(.prefix) {
	background-color: rgba(0, 255, 128, .3);
	display: inline;
}


================================================
FILE: gitbook/gitbook-plugin-prism/prism-okaidia.css
================================================
/**
 * okaidia theme for JavaScript, CSS and HTML
 * Loosely based on Monokai textmate theme by http://www.monokai.nl/
 * @author ocodia
 */

code[class*="language-"],
pre[class*="language-"] {
	color: #f8f8f2;
	background: none;
	text-shadow: 0 1px rgba(0, 0, 0, 0.3);
	font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
	font-size: 1em;
	text-align: left;
	white-space: pre;
	word-spacing: normal;
	word-break: normal;
	word-wrap: normal;
	line-height: 1.5;

	-moz-tab-size: 4;
	-o-tab-size: 4;
	tab-size: 4;

	-webkit-hyphens: none;
	-moz-hyphens: none;
	-ms-hyphens: none;
	hyphens: none;
}

/* Code blocks */
pre[class*="language-"] {
	padding: 1em;
	margin: .5em 0;
	overflow: auto;
	border-radius: 0.3em;
}

:not(pre) > code[class*="language-"],
pre[class*="language-"] {
	background: #272822;
}

/* Inline code */
:not(pre) > code[class*="language-"] {
	padding: .1em;
	border-radius: .3em;
	white-space: normal;
}

.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
	color: slategray;
}

.token.punctuation {
	color: #f8f8f2;
}

.token.namespace {
	opacity: .7;
}

.token.property,
.token.tag,
.token.constant,
.token.symbol,
.token.deleted {
	color: #f92672;
}

.token.boolean,
.token.number {
	color: #ae81ff;
}

.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
	color: #a6e22e;
}

.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string,
.token.variable {
	color: #f8f8f2;
}

.token.atrule,
.token.attr-value,
.token.function,
.token.class-name {
	color: #e6db74;
}

.token.keyword {
	color: #66d9ef;
}

.token.regex,
.token.important {
	color: #fd971f;
}

.token.important,
.token.bold {
	font-weight: bold;
}
.token.italic {
	font-style: italic;
}

.token.entity {
	cursor: help;
}


================================================
FILE: gitbook/gitbook-plugin-prism/prism-solarizedlight.css
================================================
/*
 Solarized Color Schemes originally by Ethan Schoonover
 http://ethanschoonover.com/solarized

 Ported for PrismJS by Hector Matos
 Website: https://krakendev.io
 Twitter Handle: https://twitter.com/allonsykraken)
*/

/*
SOLARIZED HEX
--------- -------
base03    #002b36
base02    #073642
base01    #586e75
base00    #657b83
base0     #839496
base1     #93a1a1
base2     #eee8d5
base3     #fdf6e3
yellow    #b58900
orange    #cb4b16
red       #dc322f
magenta   #d33682
violet    #6c71c4
blue      #268bd2
cyan      #2aa198
green     #859900
*/

code[class*="language-"],
pre[class*="language-"] {
	color: #657b83; /* base00 */
	font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
	font-size: 1em;
	text-align: left;
	white-space: pre;
	word-spacing: normal;
	word-break: normal;
	word-wrap: normal;

	line-height: 1.5;

	-moz-tab-size: 4;
	-o-tab-size: 4;
	tab-size: 4;

	-webkit-hyphens: none;
	-moz-hyphens: none;
	-ms-hyphens: none;
	hyphens: none;
}

pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {
	background: #073642; /* base02 */
}

pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
code[class*="language-"]::selection, code[class*="language-"] ::selection {
	background: #073642; /* base02 */
}

/* Code blocks */
pre[class*="language-"] {
	padding: 1em;
	margin: .5em 0;
	overflow: auto;
	border-radius: 0.3em;
}

:not(pre) > code[class*="language-"],
pre[class*="language-"] {
	background-color: #fdf6e3; /* base3 */
}

/* Inline code */
:not(pre) > code[class*="language-"] {
	padding: .1em;
	border-radius: .3em;
}

.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
	color: #93a1a1; /* base1 */
}

.token.punctuation {
	color: #586e75; /* base01 */
}

.token.namespace {
	opacity: .7;
}

.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
	color: #268bd2; /* blue */
}

.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.url,
.token.inserted {
	color: #2aa198; /* cyan */
}

.token.entity {
	color: #657b83; /* base00 */
	background: #eee8d5; /* base2 */
}

.token.atrule,
.token.attr-value,
.token.keyword {
	color: #859900; /* green */
}

.token.function,
.token.class-name {
	color: #b58900; /* yellow */
}

.token.regex,
.token.important,
.token.variable {
	color: #cb4b16; /* orange */
}

.token.important,
.token.bold {
	font-weight: bold;
}
.token.italic {
	font-style: italic;
}

.token.entity {
	cursor: help;
}


================================================
FILE: gitbook/gitbook-plugin-prism/prism-tomorrow.css
================================================
/**
 * prism.js tomorrow night eighties for JavaScript, CoffeeScript, CSS and HTML
 * Based on https://github.com/chriskempson/tomorrow-theme
 * @author Rose Pritchard
 */

code[class*="language-"],
pre[class*="language-"] {
	color: #ccc;
	background: none;
	font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
	font-size: 1em;
	text-align: left;
	white-space: pre;
	word-spacing: normal;
	word-break: normal;
	word-wrap: normal;
	line-height: 1.5;

	-moz-tab-size: 4;
	-o-tab-size: 4;
	tab-size: 4;

	-webkit-hyphens: none;
	-moz-hyphens: none;
	-ms-hyphens: none;
	hyphens: none;

}

/* Code blocks */
pre[class*="language-"] {
	padding: 1em;
	margin: .5em 0;
	overflow: auto;
}

:not(pre) > code[class*="language-"],
pre[class*="language-"] {
	background: #2d2d2d;
}

/* Inline code */
:not(pre) > code[class*="language-"] {
	padding: .1em;
	border-radius: .3em;
	white-space: normal;
}

.token.comment,
.token.block-comment,
.token.prolog,
.token.doctype,
.token.cdata {
	color: #999;
}

.token.punctuation {
	color: #ccc;
}

.token.tag,
.token.attr-name,
.token.namespace,
.token.deleted {
	color: #e2777a;
}

.token.function-name {
	color: #6196cc;
}

.token.boolean,
.token.number,
.token.function {
	color: #f08d49;
}

.token.property,
.token.class-name,
.token.constant,
.token.symbol {
	color: #f8c555;
}

.token.selector,
.token.important,
.token.atrule,
.token.keyword,
.token.builtin {
	color: #cc99cd;
}

.token.string,
.token.char,
.token.attr-value,
.token.regex,
.token.variable {
	color: #7ec699;
}

.token.operator,
.token.entity,
.token.url {
	color: #67cdcc;
}

.token.important,
.token.bold {
	font-weight: bold;
}
.token.italic {
	font-style: italic;
}

.token.entity {
	cursor: help;
}

.token.inserted {
	color: green;
}


================================================
FILE: gitbook/gitbook-plugin-prism/prism-twilight.css
================================================
/**
 * prism.js Twilight theme
 * Based (more or less) on the Twilight theme originally of Textmate fame.
 * @author Remy Bach
 */
code[class*="language-"],
pre[class*="language-"] {
	color: white;
	background: none;
	font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
	font-size: 1em;
	text-align: left;
	text-shadow: 0 -.1em .2em black;
	white-space: pre;
	word-spacing: normal;
	word-break: normal;
	word-wrap: normal;
	line-height: 1.5;

	-moz-tab-size: 4;
	-o-tab-size: 4;
	tab-size: 4;

	-webkit-hyphens: none;
	-moz-hyphens: none;
	-ms-hyphens: none;
	hyphens: none;
}

pre[class*="language-"],
:not(pre) > code[class*="language-"] {
	background: hsl(0, 0%, 8%); /* #141414 */
}

/* Code blocks */
pre[class*="language-"] {
	border-radius: .5em;
	border: .3em solid hsl(0, 0%, 33%); /* #282A2B */
	box-shadow: 1px 1px .5em black inset;
	margin: .5em 0;
	overflow: auto;
	padding: 1em;
}

pre[class*="language-"]::-moz-selection {
	/* Firefox */
	background: hsl(200, 4%, 16%); /* #282A2B */
}

pre[class*="language-"]::selection {
	/* Safari */
	background: hsl(200, 4%, 16%); /* #282A2B */
}

/* Text Selection colour */
pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {
	text-shadow: none;
	background: hsla(0, 0%, 93%, 0.15); /* #EDEDED */
}

pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
code[class*="language-"]::selection, code[class*="language-"] ::selection {
	text-shadow: none;
	background: hsla(0, 0%, 93%, 0.15); /* #EDEDED */
}

/* Inline code */
:not(pre) > code[class*="language-"] {
	border-radius: .3em;
	border: .13em solid hsl(0, 0%, 33%); /* #545454 */
	box-shadow: 1px 1px .3em -.1em black inset;
	padding: .15em .2em .05em;
	white-space: normal;
}

.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
	color: hsl(0, 0%, 47%); /* #777777 */
}

.token.punctuation {
	opacity: .7;
}

.token.namespace {
	opacity: .7;
}

.token.tag,
.token.boolean,
.token.number,
.token.deleted {
	color: hsl(14, 58%, 55%); /* #CF6A4C */
}

.token.keyword,
.token.property,
.token.selector,
.token.constant,
.token.symbol,
.token.builtin {
	color: hsl(53, 89%, 79%); /* #F9EE98 */
}

.token.attr-name,
.token.attr-value,
.token.string,
.token.char,
.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string,
.token.variable,
.token.inserted {
	color: hsl(76, 21%, 52%); /* #8F9D6A */
}

.token.atrule {
	color: hsl(218, 22%, 55%); /* #7587A6 */
}

.token.regex,
.token.important {
	color: hsl(42, 75%, 65%); /* #E9C062 */
}

.token.important,
.token.bold {
	font-weight: bold;
}
.token.italic {
	font-style: italic;
}

.token.entity {
	cursor: help;
}

pre[data-line] {
	padding: 1em 0 1em 3em;
	position: relative;
}

/* Markup */
.language-markup .token.tag,
.language-markup .token.attr-name,
.language-markup .token.punctuation {
	color: hsl(33, 33%, 52%); /* #AC885B */
}

/* Make the tokens sit above the line highlight so the colours don't look faded. */
.token {
	position: relative;
	z-index: 1;
}

.line-highlight {
	background: hsla(0, 0%, 33%, 0.25); /* #545454 */
	background: linear-gradient(to right, hsla(0, 0%, 33%, .1) 70%, hsla(0, 0%, 33%, 0)); /* #545454 */
	border-bottom: 1px dashed hsl(0, 0%, 33%); /* #545454 */
	border-top: 1px dashed hsl(0, 0%, 33%); /* #545454 */
	left: 0;
	line-height: inherit;
	margin-top: 0.75em; /* Same as .prism’s padding-top */
	padding: inherit 0;
	pointer-events: none;
	position: absolute;
	right: 0;
	white-space: pre;
	z-index: 0;
}

.line-highlight:before,
.line-highlight[data-end]:after {
	background-color: hsl(215, 15%, 59%); /* #8794A6 */
	border-radius: 999px;
	box-shadow: 0 1px white;
	color: hsl(24, 20%, 95%); /* #F5F2F0 */
	content: attr(data-start);
	font: bold 65%/1.5 sans-serif;
	left: .6em;
	min-width: 1em;
	padding: 0 .5em;
	position: absolute;
	text-align: center;
	text-shadow: none;
	top: .4em;
	vertical-align: .3em;
}

.line-highlight[data-end]:after {
	bottom: .4em;
	content: attr(data-end);
	top: auto;
}


================================================
FILE: gitbook/gitbook-plugin-prism/prism.css
================================================
/**
 * prism.js default theme for JavaScript, CSS and HTML
 * Based on dabblet (http://dabblet.com)
 * @author Lea Verou
 */

code[class*="language-"],
pre[class*="language-"] {
	color: black;
	background: none;
	text-shadow: 0 1px white;
	font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
	font-size: 1em;
	text-align: left;
	white-space: pre;
	word-spacing: normal;
	word-break: normal;
	word-wrap: normal;
	line-height: 1.5;

	-moz-tab-size: 4;
	-o-tab-size: 4;
	tab-size: 4;

	-webkit-hyphens: none;
	-moz-hyphens: none;
	-ms-hyphens: none;
	hyphens: none;
}

pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {
	text-shadow: none;
	background: #b3d4fc;
}

pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
code[class*="language-"]::selection, code[class*="language-"] ::selection {
	text-shadow: none;
	background: #b3d4fc;
}

@media print {
	code[class*="language-"],
	pre[class*="language-"] {
		text-shadow: none;
	}
}

/* Code blocks */
pre[class*="language-"] {
	padding: 1em;
	margin: .5em 0;
	overflow: auto;
}

:not(pre) > code[class*="language-"],
pre[class*="language-"] {
	background: #f5f2f0;
}

/* Inline code */
:not(pre) > code[class*="language-"] {
	padding: .1em;
	border-radius: .3em;
	white-space: normal;
}

.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
	color: slategray;
}

.token.punctuation {
	color: #999;
}

.token.namespace {
	opacity: .7;
}

.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
	color: #905;
}

.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
	color: #690;
}

.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
	color: #9a6e3a;
	background: hsla(0, 0%, 100%, .5);
}

.token.atrule,
.token.attr-value,
.token.keyword {
	color: #07a;
}

.token.function,
.token.class-name {
	color: #DD4A68;
}

.token.regex,
.token.important,
.token.variable {
	color: #e90;
}

.token.important,
.token.bold {
	font-weight: bold;
}
.token.italic {
	font-style: italic;
}

.token.entity {
	cursor: help;
}


================================================
FILE: gitbook/gitbook-plugin-search/search-engine.js
================================================
require([
    'gitbook',
    'jquery'
], function(gitbook, $) {
    // Global search objects
    var engine      = null;
    var initialized = false;

    // Set a new search engine
    function setEngine(Engine, config) {
        initialized = false;
        engine      = new Engine(config);

        init(config);
    }

    // Initialize search engine with config
    function init(config) {
        if (!engine) throw new Error('No engine set for research. Set an engine using gitbook.research.setEngine(Engine).');

        return engine.init(config)
        .then(function() {
            initialized = true;
            gitbook.events.trigger('search.ready');
        });
    }

    // Launch search for query q
    function query(q, offset, length) {
        if (!initialized) throw new Error('Search has not been initialized');
        return engine.search(q, offset, length);
    }

    // Get stats about search
    function getEngine() {
        return engine? engine.name : null;
    }

    function isInitialized() {
        return initialized;
    }

    // Initialize gitbook.search
    gitbook.search = {
        setEngine:     setEngine,
        getEngine:     getEngine,
        query:         query,
        isInitialized: isInitialized
    };
});

================================================
FILE: gitbook/gitbook-plugin-search/search.css
================================================
/*
    This CSS only styled the search results section, not the search input
    It defines the basic interraction to hide content when displaying results, etc
*/
#book-search-results .search-results {
  display: none;
}
#book-search-results .search-results ul.search-results-list {
  list-style-type: none;
  padding-left: 0;
}
#book-search-results .search-results ul.search-results-list li {
  margin-bottom: 1.5rem;
  padding-bottom: 0.5rem;
  /* Highlight results */
}
#book-search-results .search-results ul.search-results-list li p em {
  background-color: rgba(255, 220, 0, 0.4);
  font-style: normal;
}
#book-search-results .search-results .no-results {
  display: none;
}
#book-search-results.open .search-results {
  display: block;
}
#book-search-results.open .search-noresults {
  display: none;
}
#book-search-results.no-results .search-results .has-results {
  display: none;
}
#book-search-results.no-results .search-results .no-results {
  display: block;
}


================================================
FILE: gitbook/gitbook-plugin-search/search.js
================================================
require([
    'gitbook',
    'jquery'
], function(gitbook, $) {
    var MAX_RESULTS = 15;
    var MAX_DESCRIPTION_SIZE = 500;

    var usePushState = (typeof history.pushState !== 'undefined');

    // DOM Elements
    var $body = $('body');
    var $bookSearchResults;
    var $searchInput;
    var $searchList;
    var $searchTitle;
    var $searchResultsCount;
    var $searchQuery;

    // Throttle search
    function throttle(fn, wait) {
        var timeout;

        return function() {
            var ctx = this, args = arguments;
            if (!timeout) {
                timeout = setTimeout(function() {
                    timeout = null;
                    fn.apply(ctx, args);
                }, wait);
            }
        };
    }

    function displayResults(res) {
        $bookSearchResults.addClass('open');

        var noResults = res.count == 0;
        $bookSearchResults.toggleClass('no-results', noResults);

        // Clear old results
        $searchList.empty();

        // Display title for research
        $searchResultsCount.text(res.count);
        $searchQuery.text(res.query);

        // Create an <li> element for each result
        res.results.forEach(function(res) {
            var $li = $('<li>', {
                'class': 'search-results-item'
            });

            var $title = $('<h3>');

            var $link = $('<a>', {
                'href': gitbook.state.basePath + '/' + res.url,
                'text': res.title
            });

            var content = res.body.trim();
            if (content.length > MAX_DESCRIPTION_SIZE) {
                content = content.slice(0, MAX_DESCRIPTION_SIZE).trim()+'...';
            }
            var $content = $('<p>').html(content);

            $link.appendTo($title);
            $title.appendTo($li);
            $content.appendTo($li);
            $li.appendTo($searchList);
        });
    }

    function launchSearch(q) {
        // Add class for loading
        $body.addClass('with-search');
        $body.addClass('search-loading');

        // Launch search query
        throttle(gitbook.search.query(q, 0, MAX_RESULTS)
        .then(function(results) {
            displayResults(results);
        })
        .always(function() {
            $body.removeClass('search-loading');
        }), 1000);
    }

    function closeSearch() {
        $body.removeClass('with-search');
        $bookSearchResults.removeClass('open');
    }

    function launchSearchFromQueryString() {
        var q = getParameterByName('q');
        if (q && q.length > 0) {
            // Update search input
            $searchInput.val(q);

            // Launch search
            launchSearch(q);
        }
    }

    function bindSearch() {
        // Bind DOM
        $searchInput        = $('#book-search-input input');
        $bookSearchResults  = $('#book-search-results');
        $searchList         = $bookSearchResults.find('.search-results-list');
        $searchTitle        = $bookSearchResults.find('.search-results-title');
        $searchResultsCount = $searchTitle.find('.search-results-count');
        $searchQuery        = $searchTitle.find('.search-query');

        // Launch query based on input content
        function handleUpdate() {
            var q = $searchInput.val();

            if (q.length == 0) {
                closeSearch();
            }
            else {
                launchSearch(q);
            }
        }

        // Detect true content change in search input
        // Workaround for IE < 9
        var propertyChangeUnbound = false;
        $searchInput.on('propertychange', function(e) {
            if (e.originalEvent.propertyName == 'value') {
                handleUpdate();
            }
        });

        // HTML5 (IE9 & others)
        $searchInput.on('input', function(e) {
            // Unbind propertychange event for IE9+
            if (!propertyChangeUnbound) {
                $(this).unbind('propertychange');
                propertyChangeUnbound = true;
            }

            handleUpdate();
        });

        // Push to history on blur
        $searchInput.on('blur', function(e) {
            // Update history state
            if (usePushState) {
                var uri = updateQueryString('q', $(this).val());
                history.pushState({ path: uri }, null, uri);
            }
        });
    }

    gitbook.events.on('page.change', function() {
        bindSearch();
        closeSearch();

        // Launch search based on query parameter
        if (gitbook.search.isInitialized()) {
            launchSearchFromQueryString();
        }
    });

    gitbook.events.on('search.ready', function() {
        bindSearch();

        // Launch search from query param at start
        launchSearchFromQueryString();
    });

    function getParameterByName(name) {
        var url = window.location.href;
        name = name.replace(/[\[\]]/g, '\\$&');
        var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)', 'i'),
            results = regex.exec(url);
        if (!results) return null;
        if (!results[2]) return '';
        return decodeURIComponent(results[2].replace(/\+/g, ' '));
    }

    function updateQueryString(key, value) {
        value = encodeURIComponent(value);

        var url = window.location.href;
        var re = new RegExp('([?&])' + key + '=.*?(&|#|$)(.*)', 'gi'),
            hash;

        if (re.test(url)) {
            if (typeof value !== 'undefined' && value !== null)
                return url.replace(re, '$1' + key + '=' + value + '$2$3');
            else {
                hash = url.split('#');
                url = hash[0].replace(re, '$1$3').replace(/(&|\?)$/, '');
                if (typeof hash[1] !== 'undefined' && hash[1] !== null)
                    url += '#' + hash[1];
                return url;
            }
        }
        else {
            if (typeof value !== 'undefined' && value !== null) {
                var separator = url.indexOf('?') !== -1 ? '&' : '?';
                hash = url.split('#');
                url = hash[0] + separator + key + '=' + value;
                if (typeof hash[1] !== 'undefined' && hash[1] !== null)
                    url += '#' + hash[1];
                return url;
            }
            else
                return url;
        }
    }
});


================================================
FILE: gitbook/gitbook-plugin-sharing/buttons.js
================================================
require(['gitbook', 'jquery'], function(gitbook, $) {
    var SITES = {
        'facebook': {
            'label': 'Facebook',
            'icon': 'fa fa-facebook',
            'onClick': function(e) {
                e.preventDefault();
                window.open('http://www.facebook.com/sharer/sharer.php?s=100&p[url]='+encodeURIComponent(location.href));
            }
        },
        'twitter': {
            'label': 'Twitter',
            'icon': 'fa fa-twitter',
            'onClick': function(e) {
                e.preventDefault();
                window.open('http://twitter.com/home?status='+encodeURIComponent(document.title+' '+location.href));
            }
        },
        'google': {
            'label': 'Google+',
            'icon': 'fa fa-google-plus',
            'onClick': function(e) {
                e.preventDefault();
                window.open('https://plus.google.com/share?url='+encodeURIComponent(location.href));
            }
        },
        'weibo': {
            'label': 'Weibo',
            'icon': 'fa fa-weibo',
            'onClick': function(e) {
                e.preventDefault();
                window.open('http://service.weibo.com/share/share.php?content=utf-8&url='+encodeURIComponent(location.href)+'&title='+encodeURIComponent(document.title));
            }
        },
        'instapaper': {
            'label': 'Instapaper',
            'icon': 'fa fa-instapaper',
            'onClick': function(e) {
                e.preventDefault();
                window.open('http://www.instapaper.com/text?u='+encodeURIComponent(location.href));
            }
        },
        'vk': {
            'label': 'VK',
            'icon': 'fa fa-vk',
            'onClick': function(e) {
                e.preventDefault();
                window.open('http://vkontakte.ru/share.php?url='+encodeURIComponent(location.href));
            }
        }
    };



    gitbook.events.bind('start', function(e, config) {
        var opts = config.sharing;

        // Create dropdown menu
        var menu = $.map(opts.all, function(id) {
            var site = SITES[id];

            return {
                text: site.label,
                onClick: site.onClick
            };
        });

        // Create main button with dropdown
        if (menu.length > 0) {
            gitbook.toolbar.createButton({
                icon: 'fa fa-share-alt',
                label: 'Share',
                position: 'right',
                dropdown: [menu]
            });
        }

        // Direct actions to share
        $.each(SITES, function(sideId, site) {
            if (!opts[sideId]) return;

            gitbook.toolbar.createButton({
                icon: site.icon,
                label: site.text,
                position: 'right',
                onClick: site.onClick
            });
        });
    });
});


================================================
FILE: gitbook/gitbook.js
================================================
!function e(t,n,r){function o(s,a){if(!n[s]){if(!t[s]){var u="function"==typeof require&&require;if(!a&&u)return u(s,!0);if(i)return i(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[s]={exports:{}};t[s][0].call(c.exports,function(e){var n=t[s][1][e];return o(n?n:e)},c,c.exports,e,t,n,r)}return n[s].exports}for(var i="function"==typeof require&&require,s=0;s<r.length;s++)o(r[s]);return o}({1:[function(e,t,n){!function(e,n){"object"==typeof t&&"object"==typeof t.exports?t.exports=e.document?n(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return n(e)}:n(e)}("undefined"!=typeof window?window:this,function(e,t){function n(e){var t="length"in e&&e.length,n=Z.type(e);return"function"===n||Z.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e}function r(e,t,n){if(Z.isFunction(t))return Z.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return Z.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(ae.test(t))return Z.filter(t,e,n);t=Z.filter(t,e)}return Z.grep(e,function(e){return X.call(t,e)>=0!==n})}function o(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function i(e){var t=de[e]={};return Z.each(e.match(he)||[],function(e,n){t[n]=!0}),t}function s(){Q.removeEventListener("DOMContentLoaded",s,!1),e.removeEventListener("load",s,!1),Z.ready()}function a(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=Z.expando+a.uid++}function u(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(be,"-$1").toLowerCase(),n=e.getAttribute(r),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:xe.test(n)?Z.parseJSON(n):n}catch(o){}ye.set(e,t,n)}else n=void 0;return n}function l(){return!0}function c(){return!1}function f(){try{return Q.activeElement}catch(e){}}function p(e,t){return Z.nodeName(e,"table")&&Z.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function h(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function d(e){var t=Re.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function g(e,t){for(var n=0,r=e.length;r>n;n++)ve.set(e[n],"globalEval",!t||ve.get(t[n],"globalEval"))}function m(e,t){var n,r,o,i,s,a,u,l;if(1===t.nodeType){if(ve.hasData(e)&&(i=ve.access(e),s=ve.set(t,i),l=i.events)){delete s.handle,s.events={};for(o in l)for(n=0,r=l[o].length;r>n;n++)Z.event.add(t,o,l[o][n])}ye.hasData(e)&&(a=ye.access(e),u=Z.extend({},a),ye.set(t,u))}}function v(e,t){var n=e.getElementsByTagName?e.getElementsByTagName(t||"*"):e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&Z.nodeName(e,t)?Z.merge([e],n):n}function y(e,t){var n=t.nodeName.toLowerCase();"input"===n&&je.test(e.type)?t.checked=e.checked:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}function x(t,n){var r,o=Z(n.createElement(t)).appendTo(n.body),i=e.getDefaultComputedStyle&&(r=e.getDefaultComputedStyle(o[0]))?r.display:Z.css(o[0],"display");return o.detach(),i}function b(e){var t=Q,n=$e[e];return n||(n=x(e,t),"none"!==n&&n||(Me=(Me||Z("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement),t=Me[0].contentDocument,t.write(),t.close(),n=x(e,t),Me.detach()),$e[e]=n),n}function w(e,t,n){var r,o,i,s,a=e.style;return n=n||_e(e),n&&(s=n.getPropertyValue(t)||n[t]),n&&(""!==s||Z.contains(e.ownerDocument,e)||(s=Z.style(e,t)),Be.test(s)&&We.test(t)&&(r=a.width,o=a.minWidth,i=a.maxWidth,a.minWidth=a.maxWidth=a.width=s,s=n.width,a.width=r,a.minWidth=o,a.maxWidth=i)),void 0!==s?s+"":s}function T(e,t){return{get:function(){return e()?void delete this.get:(this.get=t).apply(this,arguments)}}}function C(e,t){if(t in e)return t;for(var n=t[0].toUpperCase()+t.slice(1),r=t,o=Ge.length;o--;)if(t=Ge[o]+n,t in e)return t;return r}function j(e,t,n){var r=ze.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function k(e,t,n,r,o){for(var i=n===(r?"border":"content")?4:"width"===t?1:0,s=0;4>i;i+=2)"margin"===n&&(s+=Z.css(e,n+Te[i],!0,o)),r?("content"===n&&(s-=Z.css(e,"padding"+Te[i],!0,o)),"margin"!==n&&(s-=Z.css(e,"border"+Te[i]+"Width",!0,o))):(s+=Z.css(e,"padding"+Te[i],!0,o),"padding"!==n&&(s+=Z.css(e,"border"+Te[i]+"Width",!0,o)));return s}function N(e,t,n){var r=!0,o="width"===t?e.offsetWidth:e.offsetHeight,i=_e(e),s="border-box"===Z.css(e,"boxSizing",!1,i);if(0>=o||null==o){if(o=w(e,t,i),(0>o||null==o)&&(o=e.style[t]),Be.test(o))return o;r=s&&(J.boxSizingReliable()||o===e.style[t]),o=parseFloat(o)||0}return o+k(e,t,n||(s?"border":"content"),r,i)+"px"}function E(e,t){for(var n,r,o,i=[],s=0,a=e.length;a>s;s++)r=e[s],r.style&&(i[s]=ve.get(r,"olddisplay"),n=r.style.display,t?(i[s]||"none"!==n||(r.style.display=""),""===r.style.display&&Ce(r)&&(i[s]=ve.access(r,"olddisplay",b(r.nodeName)))):(o=Ce(r),"none"===n&&o||ve.set(r,"olddisplay",o?n:Z.css(r,"display"))));for(s=0;a>s;s++)r=e[s],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?i[s]||"":"none"));return e}function S(e,t,n,r,o){return new S.prototype.init(e,t,n,r,o)}function A(){return setTimeout(function(){Je=void 0}),Je=Z.now()}function D(e,t){var n,r=0,o={height:e};for(t=t?1:0;4>r;r+=2-t)n=Te[r],o["margin"+n]=o["padding"+n]=e;return t&&(o.opacity=o.width=e),o}function q(e,t,n){for(var r,o=(nt[t]||[]).concat(nt["*"]),i=0,s=o.length;s>i;i++)if(r=o[i].call(n,t,e))return r}function O(e,t,n){var r,o,i,s,a,u,l,c,f=this,p={},h=e.style,d=e.nodeType&&Ce(e),g=ve.get(e,"fxshow");n.queue||(a=Z._queueHooks(e,"fx"),null==a.unqueued&&(a.unqueued=0,u=a.empty.fire,a.empty.fire=function(){a.unqueued||u()}),a.unqueued++,f.always(function(){f.always(function(){a.unqueued--,Z.queue(e,"fx").length||a.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],l=Z.css(e,"display"),c="none"===l?ve.get(e,"olddisplay")||b(e.nodeName):l,"inline"===c&&"none"===Z.css(e,"float")&&(h.display="inline-block")),n.overflow&&(h.overflow="hidden",f.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]}));for(r in t)if(o=t[r],Ke.exec(o)){if(delete t[r],i=i||"toggle"===o,o===(d?"hide":"show")){if("show"!==o||!g||void 0===g[r])continue;d=!0}p[r]=g&&g[r]||Z.style(e,r)}else l=void 0;if(Z.isEmptyObject(p))"inline"===("none"===l?b(e.nodeName):l)&&(h.display=l);else{g?"hidden"in g&&(d=g.hidden):g=ve.access(e,"fxshow",{}),i&&(g.hidden=!d),d?Z(e).show():f.done(function(){Z(e).hide()}),f.done(function(){var t;ve.remove(e,"fxshow");for(t in p)Z.style(e,t,p[t])});for(r in p)s=q(d?g[r]:0,r,f),r in g||(g[r]=s.start,d&&(s.end=s.start,s.start="width"===r||"height"===r?1:0))}}function L(e,t){var n,r,o,i,s;for(n in e)if(r=Z.camelCase(n),o=t[r],i=e[n],Z.isArray(i)&&(o=i[1],i=e[n]=i[0]),n!==r&&(e[r]=i,delete e[n]),s=Z.cssHooks[r],s&&"expand"in s){i=s.expand(i),delete e[r];for(n in i)n in e||(e[n]=i[n],t[n]=o)}else t[r]=o}function H(e,t,n){var r,o,i=0,s=tt.length,a=Z.Deferred().always(function(){delete u.elem}),u=function(){if(o)return!1;for(var t=Je||A(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,i=1-r,s=0,u=l.tweens.length;u>s;s++)l.tweens[s].run(i);return a.notifyWith(e,[l,i,n]),1>i&&u?n:(a.resolveWith(e,[l]),!1)},l=a.promise({elem:e,props:Z.extend({},t),opts:Z.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Je||A(),duration:n.duration,tweens:[],createTween:function(t,n){var r=Z.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(o)return this;for(o=!0;r>n;n++)l.tweens[n].run(1);return t?a.resolveWith(e,[l,t]):a.rejectWith(e,[l,t]),this}}),c=l.props;for(L(c,l.opts.specialEasing);s>i;i++)if(r=tt[i].call(l,e,c,l.opts))return r;return Z.map(c,q,l),Z.isFunction(l.opts.start)&&l.opts.start.call(e,l),Z.fx.timer(Z.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function F(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,o=0,i=t.toLowerCase().match(he)||[];if(Z.isFunction(n))for(;r=i[o++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function R(e,t,n,r){function o(a){var u;return i[a]=!0,Z.each(e[a]||[],function(e,a){var l=a(t,n,r);return"string"!=typeof l||s||i[l]?s?!(u=l):void 0:(t.dataTypes.unshift(l),o(l),!1)}),u}var i={},s=e===xt;return o(t.dataTypes[0])||!i["*"]&&o("*")}function P(e,t){var n,r,o=Z.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((o[n]?e:r||(r={}))[n]=t[n]);return r&&Z.extend(!0,e,r),e}function I(e,t,n){for(var r,o,i,s,a=e.contents,u=e.dataTypes;"*"===u[0];)u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(o in a)if(a[o]&&a[o].test(r)){u.unshift(o);break}if(u[0]in n)i=u[0];else{for(o in n){if(!u[0]||e.converters[o+" "+u[0]]){i=o;break}s||(s=o)}i=i||s}return i?(i!==u[0]&&u.unshift(i),n[i]):void 0}function M(e,t,n,r){var o,i,s,a,u,l={},c=e.dataTypes.slice();if(c[1])for(s in e.converters)l[s.toLowerCase()]=e.converters[s];for(i=c.shift();i;)if(e.responseFields[i]&&(n[e.responseFields[i]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=i,i=c.shift())if("*"===i)i=u;else if("*"!==u&&u!==i){if(s=l[u+" "+i]||l["* "+i],!s)for(o in l)if(a=o.split(" "),a[1]===i&&(s=l[u+" "+a[0]]||l["* "+a[0]])){s===!0?s=l[o]:l[o]!==!0&&(i=a[0],c.unshift(a[1]));break}if(s!==!0)if(s&&e["throws"])t=s(t);else try{t=s(t)}catch(f){return{state:"parsererror",error:s?f:"No conversion from "+u+" to "+i}}}return{state:"success",data:t}}function $(e,t,n,r){var o;if(Z.isArray(t))Z.each(t,function(t,o){n||jt.test(e)?r(e,o):$(e+"["+("object"==typeof o?t:"")+"]",o,n,r)});else if(n||"object"!==Z.type(t))r(e,t);else for(o in t)$(e+"["+o+"]",t[o],n,r)}function W(e){return Z.isWindow(e)?e:9===e.nodeType&&e.defaultView}var B=[],_=B.slice,U=B.concat,z=B.push,X=B.indexOf,V={},Y=V.toString,G=V.hasOwnProperty,J={},Q=e.document,K="2.1.4",Z=function(e,t){return new Z.fn.init(e,t)},ee=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,te=/^-ms-/,ne=/-([\da-z])/gi,re=function(e,t){return t.toUpperCase()};Z.fn=Z.prototype={jquery:K,constructor:Z,selector:"",length:0,toArray:function(){return _.call(this)},get:function(e){return null!=e?0>e?this[e+this.length]:this[e]:_.call(this)},pushStack:function(e){var t=Z.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return Z.each(this,e,t)},map:function(e){return this.pushStack(Z.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(_.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:z,sort:B.sort,splice:B.splice},Z.extend=Z.fn.extend=function(){var e,t,n,r,o,i,s=arguments[0]||{},a=1,u=arguments.length,l=!1;for("boolean"==typeof s&&(l=s,s=arguments[a]||{},a++),"object"==typeof s||Z.isFunction(s)||(s={}),a===u&&(s=this,a--);u>a;a++)if(null!=(e=arguments[a]))for(t in e)n=s[t],r=e[t],s!==r&&(l&&r&&(Z.isPlainObject(r)||(o=Z.isArray(r)))?(o?(o=!1,i=n&&Z.isArray(n)?n:[]):i=n&&Z.isPlainObject(n)?n:{},s[t]=Z.extend(l,i,r)):void 0!==r&&(s[t]=r));return s},Z.extend({expando:"jQuery"+(K+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===Z.type(e)},isArray:Array.isArray,isWindow:function(e){return null!=e&&e===e.window},isNumeric:function(e){return!Z.isArray(e)&&e-parseFloat(e)+1>=0},isPlainObject:function(e){return"object"!==Z.type(e)||e.nodeType||Z.isWindow(e)?!1:e.constructor&&!G.call(e.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?V[Y.call(e)]||"object":typeof e},globalEval:function(e){var t,n=eval;e=Z.trim(e),e&&(1===e.indexOf("use strict")?(t=Q.createElement("script"),t.text=e,Q.head.appendChild(t).parentNode.removeChild(t)):n(e))},camelCase:function(e){return e.replace(te,"ms-").replace(ne,re)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,r){var o,i=0,s=e.length,a=n(e);if(r){if(a)for(;s>i&&(o=t.apply(e[i],r),o!==!1);i++);else for(i in e)if(o=t.apply(e[i],r),o===!1)break}else if(a)for(;s>i&&(o=t.call(e[i],i,e[i]),o!==!1);i++);else for(i in e)if(o=t.call(e[i],i,e[i]),o===!1)break;return e},trim:function(e){return null==e?"":(e+"").replace(ee,"")},makeArray:function(e,t){var r=t||[];return null!=e&&(n(Object(e))?Z.merge(r,"string"==typeof e?[e]:e):z.call(r,e)),r},inArray:function(e,t,n){return null==t?-1:X.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,o=e.length;n>r;r++)e[o++]=t[r];return e.length=o,e},grep:function(e,t,n){for(var r,o=[],i=0,s=e.length,a=!n;s>i;i++)r=!t(e[i],i),r!==a&&o.push(e[i]);return o},map:function(e,t,r){var o,i=0,s=e.length,a=n(e),u=[];if(a)for(;s>i;i++)o=t(e[i],i,r),null!=o&&u.push(o);else for(i in e)o=t(e[i],i,r),null!=o&&u.push(o);return U.apply([],u)},guid:1,proxy:function(e,t){var n,r,o;return"string"==typeof t&&(n=e[t],t=e,e=n),Z.isFunction(e)?(r=_.call(arguments,2),o=function(){return e.apply(t||this,r.concat(_.call(arguments)))},o.guid=e.guid=e.guid||Z.guid++,o):void 0},now:Date.now,support:J}),Z.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){V["[object "+t+"]"]=t.toLowerCase()});var oe=function(e){function t(e,t,n,r){var o,i,s,a,u,l,f,h,d,g;if((t?t.ownerDocument||t:$)!==O&&q(t),t=t||O,n=n||[],a=t.nodeType,"string"!=typeof e||!e||1!==a&&9!==a&&11!==a)return n;if(!r&&H){if(11!==a&&(o=ye.exec(e)))if(s=o[1]){if(9===a){if(i=t.getElementById(s),!i||!i.parentNode)return n;if(i.id===s)return n.push(i),n}else if(t.ownerDocument&&(i=t.ownerDocument.getElementById(s))&&I(t,i)&&i.id===s)return n.push(i),n}else{if(o[2])return K.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&w.getElementsByClassName)return K.apply(n,t.getElementsByClassName(s)),n}if(w.qsa&&(!F||!F.test(e))){if(h=f=M,d=t,g=1!==a&&e,1===a&&"object"!==t.nodeName.toLowerCase()){for(l=k(e),(f=t.getAttribute("id"))?h=f.replace(be,"\\$&"):t.setAttribute("id",h),h="[id='"+h+"'] ",u=l.length;u--;)l[u]=h+p(l[u]);d=xe.test(e)&&c(t.parentNode)||t,g=l.join(",")}if(g)try{return K.apply(n,d.querySelectorAll(g)),n}catch(m){}finally{f||t.removeAttribute("id")}}}return E(e.replace(ue,"$1"),t,n,r)}function n(){function e(n,r){return t.push(n+" ")>T.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[M]=!0,e}function o(e){var t=O.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function i(e,t){for(var n=e.split("|"),r=e.length;r--;)T.attrHandle[n[r]]=t}function s(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||V)-(~e.sourceIndex||V);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function a(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function u(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function l(e){return r(function(t){return t=+t,r(function(n,r){for(var o,i=e([],n.length,t),s=i.length;s--;)n[o=i[s]]&&(n[o]=!(r[o]=n[o]))})})}function c(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function f(){}function p(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function h(e,t,n){var r=t.dir,o=n&&"parentNode"===r,i=B++;return t.first?function(t,n,i){for(;t=t[r];)if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var a,u,l=[W,i];if(s){for(;t=t[r];)if((1===t.nodeType||o)&&e(t,n,s))return!0}else for(;t=t[r];)if(1===t.nodeType||o){if(u=t[M]||(t[M]={}),(a=u[r])&&a[0]===W&&a[1]===i)return l[2]=a[2];if(u[r]=l,l[2]=e(t,n,s))return!0}}}function d(e){return e.length>1?function(t,n,r){for(var o=e.length;o--;)if(!e[o](t,n,r))return!1;return!0}:e[0]}function g(e,n,r){for(var o=0,i=n.length;i>o;o++)t(e,n[o],r);return r}function m(e,t,n,r,o){for(var i,s=[],a=0,u=e.length,l=null!=t;u>a;a++)(i=e[a])&&(!n||n(i,r,o))&&(s.push(i),l&&t.push(a));return s}function v(e,t,n,o,i,s){return o&&!o[M]&&(o=v(o)),i&&!i[M]&&(i=v(i,s)),r(function(r,s,a,u){var l,c,f,p=[],h=[],d=s.length,v=r||g(t||"*",a.nodeType?[a]:a,[]),y=!e||!r&&t?v:m(v,p,e,a,u),x=n?i||(r?e:d||o)?[]:s:y;if(n&&n(y,x,a,u),o)for(l=m(x,h),o(l,[],a,u),c=l.length;c--;)(f=l[c])&&(x[h[c]]=!(y[h[c]]=f));if(r){if(i||e){if(i){for(l=[],c=x.length;c--;)(f=x[c])&&l.push(y[c]=f);i(null,x=[],l,u)}for(c=x.length;c--;)(f=x[c])&&(l=i?ee(r,f):p[c])>-1&&(r[l]=!(s[l]=f))}}else x=m(x===s?x.splice(d,x.length):x),i?i(null,s,x,u):K.apply(s,x)})}function y(e){for(var t,n,r,o=e.length,i=T.relative[e[0].type],s=i||T.relative[" "],a=i?1:0,u=h(function(e){return e===t},s,!0),l=h(function(e){return ee(t,e)>-1},s,!0),c=[function(e,n,r){var o=!i&&(r||n!==S)||((t=n).nodeType?u(e,n,r):l(e,n,r));return t=null,o}];o>a;a++)if(n=T.relative[e[a].type])c=[h(d(c),n)];else{if(n=T.filter[e[a].type].apply(null,e[a].matches),n[M]){for(r=++a;o>r&&!T.relative[e[r].type];r++);return v(a>1&&d(c),a>1&&p(e.slice(0,a-1).concat({value:" "===e[a-2].type?"*":""})).replace(ue,"$1"),n,r>a&&y(e.slice(a,r)),o>r&&y(e=e.slice(r)),o>r&&p(e))}c.push(n)}return d(c)}function x(e,n){var o=n.length>0,i=e.length>0,s=function(r,s,a,u,l){var c,f,p,h=0,d="0",g=r&&[],v=[],y=S,x=r||i&&T.find.TAG("*",l),b=W+=null==y?1:Math.random()||.1,w=x.length;for(l&&(S=s!==O&&s);d!==w&&null!=(c=x[d]);d++){if(i&&c){for(f=0;p=e[f++];)if(p(c,s,a)){u.push(c);break}l&&(W=b)}o&&((c=!p&&c)&&h--,r&&g.push(c))}if(h+=d,o&&d!==h){for(f=0;p=n[f++];)p(g,v,s,a);if(r){if(h>0)for(;d--;)g[d]||v[d]||(v[d]=J.call(u));v=m(v)}K.apply(u,v),l&&!r&&v.length>0&&h+n.length>1&&t.uniqueSort(u)}return l&&(W=b,S=y),g};return o?r(s):s}var b,w,T,C,j,k,N,E,S,A,D,q,O,L,H,F,R,P,I,M="sizzle"+1*new Date,$=e.document,W=0,B=0,_=n(),U=n(),z=n(),X=function(e,t){return e===t&&(D=!0),0},V=1<<31,Y={}.hasOwnProperty,G=[],J=G.pop,Q=G.push,K=G.push,Z=G.slice,ee=function(e,t){for(var n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1},te="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ne="[\\x20\\t\\r\\n\\f]",re="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",oe=re.replace("w","w#"),ie="\\["+ne+"*("+re+")(?:"+ne+"*([*^$|!~]?=)"+ne+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+oe+"))|)"+ne+"*\\]",se=":("+re+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ie+")*)|.*)\\)|)",ae=new RegExp(ne+"+","g"),ue=new RegExp("^"+ne+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ne+"+$","g"),le=new RegExp("^"+ne+"*,"+ne+"*"),ce=new RegExp("^"+ne+"*([>+~]|"+ne+")"+ne+"*"),fe=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),pe=new RegExp(se),he=new RegExp("^"+oe+"$"),de={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re.replace("w","w*")+")"),ATTR:new RegExp("^"+ie),PSEUDO:new RegExp("^"+se),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},ge=/^(?:input|select|textarea|button)$/i,me=/^h\d$/i,ve=/^[^{]+\{\s*\[native \w/,ye=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,xe=/[+~]/,be=/'|\\/g,we=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),Te=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},Ce=function(){q()};try{K.apply(G=Z.call($.childNodes),$.childNodes),G[$.childNodes.length].nodeType}catch(je){K={apply:G.length?function(e,t){Q.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}w=t.support={},j=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},q=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:$;return r!==O&&9===r.nodeType&&r.documentElement?(O=r,L=r.documentElement,n=r.defaultView,n&&n!==n.top&&(n.addEventListener?n.addEventListener("unload",Ce,!1):n.attachEvent&&n.attachEvent("onunload",Ce)),H=!j(r),w.attributes=o(function(e){return e.className="i",!e.getAttribute("className")}),w.getElementsByTagName=o(function(e){return e.appendChild(r.createComment("")),!e.getElementsByTagName("*").length}),w.getElementsByClassName=ve.test(r.getElementsByClassName),w.getById=o(function(e){return L.appendChild(e).id=M,!r.getElementsByName||!r.getElementsByName(M).length}),w.getById?(T.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&H){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},T.filter.ID=function(e){var t=e.replace(we,Te);return function(e){return e.getAttribute("id")===t}}):(delete T.find.ID,T.filter.ID=function(e){var t=e.replace(we,Te);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),T.find.TAG=w.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):w.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],o=0,i=t.getElementsByTagName(e);if("*"===e){for(;n=i[o++];)1===n.nodeType&&r.push(n);return r}return i},T.find.CLASS=w.getElementsByClassName&&function(e,t){return H?t.getElementsByClassName(e):void 0},R=[],F=[],(w.qsa=ve.test(r.querySelectorAll))&&(o(function(e){L.appendChild(e).innerHTML="<a id='"+M+"'></a><select id='"+M+"-\f]' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&F.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||F.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+M+"-]").length||F.push("~="),e.querySelectorAll(":checked").length||F.push(":checked"),e.querySelectorAll("a#"+M+"+*").length||F.push(".#.+[+~]")}),o(function(e){var t=r.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&F.push("name"+ne+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||F.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),F.push(",.*:")})),(w.matchesSelector=ve.test(P=L.matches||L.webkitMatchesSelector||L.mozMatchesSelector||L.oMatchesSelector||L.msMatchesSelector))&&o(function(e){w.disconnectedMatch=P.call(e,"div"),P.call(e,"[s!='']:x"),R.push("!=",se)}),F=F.length&&new RegExp(F.join("|")),R=R.length&&new RegExp(R.join("|")),t=ve.test(L.compareDocumentPosition),I=t||ve.test(L.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},X=t?function(e,t){if(e===t)return D=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!w.sortDetached&&t.compareDocumentPosition(e)===n?e===r||e.ownerDocument===$&&I($,e)?-1:t===r||t.ownerDocument===$&&I($,t)?1:A?ee(A,e)-ee(A,t):0:4&n?-1:1)}:function(e,t){if(e===t)return D=!0,0;var n,o=0,i=e.parentNode,a=t.parentNode,u=[e],l=[t];if(!i||!a)return e===r?-1:t===r?1:i?-1:a?1:A?ee(A,e)-ee(A,t):0;if(i===a)return s(e,t);for(n=e;n=n.parentNode;)u.unshift(n);for(n=t;n=n.parentNode;)l.unshift(n);for(;u[o]===l[o];)o++;return o?s(u[o],l[o]):u[o]===$?-1:l[o]===$?1:0},r):O},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==O&&q(e),n=n.replace(fe,"='$1']"),w.matchesSelector&&H&&(!R||!R.test(n))&&(!F||!F.test(n)))try{var r=P.call(e,n);if(r||w.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(o){}return t(n,O,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==O&&q(e),I(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==O&&q(e);var n=T.attrHandle[t.toLowerCase()],r=n&&Y.call(T.attrHandle,t.toLowerCase())?n(e,t,!H):void 0;return void 0!==r?r:w.attributes||!H?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,o=0;if(D=!w.detectDuplicates,A=!w.sortStable&&e.slice(0),e.sort(X),D){for(;t=e[o++];)t===e[o]&&(r=n.push(o));for(;r--;)e.splice(n[r],1)}return A=null,e},C=t.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=C(e)}else if(3===o||4===o)return e.nodeValue}else for(;t=e[r++];)n+=C(t);return n},T=t.selectors={cacheLength:50,createPseudo:r,match:de,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(we,Te),e[3]=(e[3]||e[4]||e[5]||"").replace(we,Te),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return de.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&pe.test(n)&&(t=k(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(we,Te).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=_[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&_(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(o){var i=t.attr(o,e);return null==i?"!="===n:n?(i+="","="===n?i===r:"!="===n?i!==r:"^="===n?r&&0===i.indexOf(r):"*="===n?r&&i.indexOf(r)>-1:"$="===n?r&&i.slice(-r.length)===r:"~="===n?(" "+i.replace(ae," ")+" ").indexOf(r)>-1:"|="===n?i===r||i.slice(0,r.length+1)===r+"-":!1):!0}},CHILD:function(e,t,n,r,o){var i="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t;return 1===r&&0===o?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,h,d,g=i!==s?"nextSibling":"previousSibling",m=t.parentNode,v=a&&t.nodeName.toLowerCase(),y=!u&&!a;if(m){if(i){for(;g;){for(f=t;f=f[g];)if(a?f.nodeName.toLowerCase()===v:1===f.nodeType)return!1;d=g="only"===e&&!d&&"nextSibling"}return!0}if(d=[s?m.firstChild:m.lastChild],s&&y){for(c=m[M]||(m[M]={}),l=c[e]||[],h=l[0]===W&&l[1],p=l[0]===W&&l[2],f=h&&m.childNodes[h];f=++h&&f&&f[g]||(p=h=0)||d.pop();)if(1===f.nodeType&&++p&&f===t){c[e]=[W,h,p];break}}else if(y&&(l=(t[M]||(t[M]={}))[e])&&l[0]===W)p=l[1];else for(;(f=++h&&f&&f[g]||(p=h=0)||d.pop())&&((a?f.nodeName.toLowerCase()!==v:1!==f.nodeType)||!++p||(y&&((f[M]||(f[M]={}))[e]=[W,p]),f!==t)););return p-=o,p===r||p%r===0&&p/r>=0}}},PSEUDO:function(e,n){var o,i=T.pseudos[e]||T.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return i[M]?i(n):i.length>1?(o=[e,e,"",n],T.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,o=i(e,n),s=o.length;s--;)r=ee(e,o[s]),e[r]=!(t[r]=o[s])}):function(e){return i(e,0,o)}):i}},pseudos:{not:r(function(e){var t=[],n=[],o=N(e.replace(ue,"$1"));return o[M]?r(function(e,t,n,r){for(var i,s=o(e,null,r,[]),a=e.length;a--;)(i=s[a])&&(e[a]=!(t[a]=i))}):function(e,r,i){return t[0]=e,o(t,null,i,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(we,Te),function(t){return(t.textContent||t.innerText||C(t)).indexOf(e)>-1}}),lang:r(function(e){return he.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(we,Te).toLowerCase(),function(t){var n;do if(n=H?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===L},focus:function(e){return e===O.activeElement&&(!O.hasFocus||O.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!T.pseudos.empty(e)},header:function(e){return me.test(e.nodeName)},input:function(e){return ge.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:l(function(){return[0]}),last:l(function(e,t){return[t-1]}),eq:l(function(e,t,n){return[0>n?n+t:n]}),even:l(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:l(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:l(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:l(function(e,t,n){for(var r=0>n?n+t:n;++r<t;)e.push(r);return e})}},T.pseudos.nth=T.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})T.pseudos[b]=a(b);for(b in{submit:!0,reset:!0})T.pseudos[b]=u(b);return f.prototype=T.filters=T.pseudos,T.setFilters=new f,k=t.tokenize=function(e,n){var r,o,i,s,a,u,l,c=U[e+" "];if(c)return n?0:c.slice(0);for(a=e,u=[],l=T.preFilter;a;){(!r||(o=le.exec(a)))&&(o&&(a=a.slice(o[0].length)||a),u.push(i=[])),r=!1,(o=ce.exec(a))&&(r=o.shift(),i.push({value:r,type:o[0].replace(ue," ")}),a=a.slice(r.length));for(s in T.filter)!(o=de[s].exec(a))||l[s]&&!(o=l[s](o))||(r=o.shift(),i.push({value:r,type:s,matches:o}),a=a.slice(r.length));if(!r)break}return n?a.length:a?t.error(e):U(e,u).slice(0)},N=t.compile=function(e,t){var n,r=[],o=[],i=z[e+" "];if(!i){for(t||(t=k(e)),n=t.length;n--;)i=y(t[n]),i[M]?r.push(i):o.push(i);i=z(e,x(o,r)),i.selector=e}return i},E=t.select=function(e,t,n,r){var o,i,s,a,u,l="function"==typeof e&&e,f=!r&&k(e=l.selector||e);if(n=n||[],1===f.length){if(i=f[0]=f[0].slice(0),i.length>2&&"ID"===(s=i[0]).type&&w.getById&&9===t.nodeType&&H&&T.relative[i[1].type]){if(t=(T.find.ID(s.matches[0].replace(we,Te),t)||[])[0],!t)return n;l&&(t=t.parentNode),e=e.slice(i.shift().value.length)}for(o=de.needsContext.test(e)?0:i.length;o--&&(s=i[o],!T.relative[a=s.type]);)if((u=T.find[a])&&(r=u(s.matches[0].replace(we,Te),xe.test(i[0].type)&&c(t.parentNode)||t))){if(i.splice(o,1),e=r.length&&p(i),!e)return K.apply(n,r),n;break}}return(l||N(e,f))(r,t,!H,n,xe.test(e)&&c(t.parentNode)||t),n},w.sortStable=M.split("").sort(X).join("")===M,w.detectDuplicates=!!D,q(),w.sortDetached=o(function(e){return 1&e.compareDocumentPosition(O.createElement("div"))}),o(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||i("type|href|height|width",function(e,t,n){return n?void 0:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),w.attributes&&o(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||i("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?void 0:e.defaultValue}),o(function(e){return null==e.getAttribute("disabled")})||i(te,function(e,t,n){var r;return n?void 0:e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(e);Z.find=oe,Z.expr=oe.selectors,Z.expr[":"]=Z.expr.pseudos,
Z.unique=oe.uniqueSort,Z.text=oe.getText,Z.isXMLDoc=oe.isXML,Z.contains=oe.contains;var ie=Z.expr.match.needsContext,se=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,ae=/^.[^:#\[\.,]*$/;Z.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?Z.find.matchesSelector(r,e)?[r]:[]:Z.find.matches(e,Z.grep(t,function(e){return 1===e.nodeType}))},Z.fn.extend({find:function(e){var t,n=this.length,r=[],o=this;if("string"!=typeof e)return this.pushStack(Z(e).filter(function(){for(t=0;n>t;t++)if(Z.contains(o[t],this))return!0}));for(t=0;n>t;t++)Z.find(e,o[t],r);return r=this.pushStack(n>1?Z.unique(r):r),r.selector=this.selector?this.selector+" "+e:e,r},filter:function(e){return this.pushStack(r(this,e||[],!1))},not:function(e){return this.pushStack(r(this,e||[],!0))},is:function(e){return!!r(this,"string"==typeof e&&ie.test(e)?Z(e):e||[],!1).length}});var ue,le=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,ce=Z.fn.init=function(e,t){var n,r;if(!e)return this;if("string"==typeof e){if(n="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:le.exec(e),!n||!n[1]&&t)return!t||t.jquery?(t||ue).find(e):this.constructor(t).find(e);if(n[1]){if(t=t instanceof Z?t[0]:t,Z.merge(this,Z.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:Q,!0)),se.test(n[1])&&Z.isPlainObject(t))for(n in t)Z.isFunction(this[n])?this[n](t[n]):this.attr(n,t[n]);return this}return r=Q.getElementById(n[2]),r&&r.parentNode&&(this.length=1,this[0]=r),this.context=Q,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):Z.isFunction(e)?"undefined"!=typeof ue.ready?ue.ready(e):e(Z):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),Z.makeArray(e,this))};ce.prototype=Z.fn,ue=Z(Q);var fe=/^(?:parents|prev(?:Until|All))/,pe={children:!0,contents:!0,next:!0,prev:!0};Z.extend({dir:function(e,t,n){for(var r=[],o=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(o&&Z(e).is(n))break;r.push(e)}return r},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}}),Z.fn.extend({has:function(e){var t=Z(e,this),n=t.length;return this.filter(function(){for(var e=0;n>e;e++)if(Z.contains(this,t[e]))return!0})},closest:function(e,t){for(var n,r=0,o=this.length,i=[],s=ie.test(e)||"string"!=typeof e?Z(e,t||this.context):0;o>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(s?s.index(n)>-1:1===n.nodeType&&Z.find.matchesSelector(n,e))){i.push(n);break}return this.pushStack(i.length>1?Z.unique(i):i)},index:function(e){return e?"string"==typeof e?X.call(Z(e),this[0]):X.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(Z.unique(Z.merge(this.get(),Z(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),Z.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return Z.dir(e,"parentNode")},parentsUntil:function(e,t,n){return Z.dir(e,"parentNode",n)},next:function(e){return o(e,"nextSibling")},prev:function(e){return o(e,"previousSibling")},nextAll:function(e){return Z.dir(e,"nextSibling")},prevAll:function(e){return Z.dir(e,"previousSibling")},nextUntil:function(e,t,n){return Z.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return Z.dir(e,"previousSibling",n)},siblings:function(e){return Z.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return Z.sibling(e.firstChild)},contents:function(e){return e.contentDocument||Z.merge([],e.childNodes)}},function(e,t){Z.fn[e]=function(n,r){var o=Z.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(o=Z.filter(r,o)),this.length>1&&(pe[e]||Z.unique(o),fe.test(e)&&o.reverse()),this.pushStack(o)}});var he=/\S+/g,de={};Z.Callbacks=function(e){e="string"==typeof e?de[e]||i(e):Z.extend({},e);var t,n,r,o,s,a,u=[],l=!e.once&&[],c=function(i){for(t=e.memory&&i,n=!0,a=o||0,o=0,s=u.length,r=!0;u&&s>a;a++)if(u[a].apply(i[0],i[1])===!1&&e.stopOnFalse){t=!1;break}r=!1,u&&(l?l.length&&c(l.shift()):t?u=[]:f.disable())},f={add:function(){if(u){var n=u.length;!function i(t){Z.each(t,function(t,n){var r=Z.type(n);"function"===r?e.unique&&f.has(n)||u.push(n):n&&n.length&&"string"!==r&&i(n)})}(arguments),r?s=u.length:t&&(o=n,c(t))}return this},remove:function(){return u&&Z.each(arguments,function(e,t){for(var n;(n=Z.inArray(t,u,n))>-1;)u.splice(n,1),r&&(s>=n&&s--,a>=n&&a--)}),this},has:function(e){return e?Z.inArray(e,u)>-1:!(!u||!u.length)},empty:function(){return u=[],s=0,this},disable:function(){return u=l=t=void 0,this},disabled:function(){return!u},lock:function(){return l=void 0,t||f.disable(),this},locked:function(){return!l},fireWith:function(e,t){return!u||n&&!l||(t=t||[],t=[e,t.slice?t.slice():t],r?l.push(t):c(t)),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!n}};return f},Z.extend({Deferred:function(e){var t=[["resolve","done",Z.Callbacks("once memory"),"resolved"],["reject","fail",Z.Callbacks("once memory"),"rejected"],["notify","progress",Z.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return o.done(arguments).fail(arguments),this},then:function(){var e=arguments;return Z.Deferred(function(n){Z.each(t,function(t,i){var s=Z.isFunction(e[t])&&e[t];o[i[1]](function(){var e=s&&s.apply(this,arguments);e&&Z.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[i[0]+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?Z.extend(e,r):r}},o={};return r.pipe=r.then,Z.each(t,function(e,i){var s=i[2],a=i[3];r[i[1]]=s.add,a&&s.add(function(){n=a},t[1^e][2].disable,t[2][2].lock),o[i[0]]=function(){return o[i[0]+"With"](this===o?r:this,arguments),this},o[i[0]+"With"]=s.fireWith}),r.promise(o),e&&e.call(o,o),o},when:function(e){var t,n,r,o=0,i=_.call(arguments),s=i.length,a=1!==s||e&&Z.isFunction(e.promise)?s:0,u=1===a?e:Z.Deferred(),l=function(e,n,r){return function(o){n[e]=this,r[e]=arguments.length>1?_.call(arguments):o,r===t?u.notifyWith(n,r):--a||u.resolveWith(n,r)}};if(s>1)for(t=new Array(s),n=new Array(s),r=new Array(s);s>o;o++)i[o]&&Z.isFunction(i[o].promise)?i[o].promise().done(l(o,r,i)).fail(u.reject).progress(l(o,n,t)):--a;return a||u.resolveWith(r,i),u.promise()}});var ge;Z.fn.ready=function(e){return Z.ready.promise().done(e),this},Z.extend({isReady:!1,readyWait:1,holdReady:function(e){e?Z.readyWait++:Z.ready(!0)},ready:function(e){(e===!0?--Z.readyWait:Z.isReady)||(Z.isReady=!0,e!==!0&&--Z.readyWait>0||(ge.resolveWith(Q,[Z]),Z.fn.triggerHandler&&(Z(Q).triggerHandler("ready"),Z(Q).off("ready"))))}}),Z.ready.promise=function(t){return ge||(ge=Z.Deferred(),"complete"===Q.readyState?setTimeout(Z.ready):(Q.addEventListener("DOMContentLoaded",s,!1),e.addEventListener("load",s,!1))),ge.promise(t)},Z.ready.promise();var me=Z.access=function(e,t,n,r,o,i,s){var a=0,u=e.length,l=null==n;if("object"===Z.type(n)){o=!0;for(a in n)Z.access(e,t,a,n[a],!0,i,s)}else if(void 0!==r&&(o=!0,Z.isFunction(r)||(s=!0),l&&(s?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(Z(e),n)})),t))for(;u>a;a++)t(e[a],n,s?r:r.call(e[a],a,t(e[a],n)));return o?e:l?t.call(e):u?t(e[0],n):i};Z.acceptData=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType},a.uid=1,a.accepts=Z.acceptData,a.prototype={key:function(e){if(!a.accepts(e))return 0;var t={},n=e[this.expando];if(!n){n=a.uid++;try{t[this.expando]={value:n},Object.defineProperties(e,t)}catch(r){t[this.expando]=n,Z.extend(e,t)}}return this.cache[n]||(this.cache[n]={}),n},set:function(e,t,n){var r,o=this.key(e),i=this.cache[o];if("string"==typeof t)i[t]=n;else if(Z.isEmptyObject(i))Z.extend(this.cache[o],t);else for(r in t)i[r]=t[r];return i},get:function(e,t){var n=this.cache[this.key(e)];return void 0===t?n:n[t]},access:function(e,t,n){var r;return void 0===t||t&&"string"==typeof t&&void 0===n?(r=this.get(e,t),void 0!==r?r:this.get(e,Z.camelCase(t))):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r,o,i=this.key(e),s=this.cache[i];if(void 0===t)this.cache[i]={};else{Z.isArray(t)?r=t.concat(t.map(Z.camelCase)):(o=Z.camelCase(t),t in s?r=[t,o]:(r=o,r=r in s?[r]:r.match(he)||[])),n=r.length;for(;n--;)delete s[r[n]]}},hasData:function(e){return!Z.isEmptyObject(this.cache[e[this.expando]]||{})},discard:function(e){e[this.expando]&&delete this.cache[e[this.expando]]}};var ve=new a,ye=new a,xe=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,be=/([A-Z])/g;Z.extend({hasData:function(e){return ye.hasData(e)||ve.hasData(e)},data:function(e,t,n){return ye.access(e,t,n)},removeData:function(e,t){ye.remove(e,t)},_data:function(e,t,n){return ve.access(e,t,n)},_removeData:function(e,t){ve.remove(e,t)}}),Z.fn.extend({data:function(e,t){var n,r,o,i=this[0],s=i&&i.attributes;if(void 0===e){if(this.length&&(o=ye.get(i),1===i.nodeType&&!ve.get(i,"hasDataAttrs"))){for(n=s.length;n--;)s[n]&&(r=s[n].name,0===r.indexOf("data-")&&(r=Z.camelCase(r.slice(5)),u(i,r,o[r])));ve.set(i,"hasDataAttrs",!0)}return o}return"object"==typeof e?this.each(function(){ye.set(this,e)}):me(this,function(t){var n,r=Z.camelCase(e);if(i&&void 0===t){if(n=ye.get(i,e),void 0!==n)return n;if(n=ye.get(i,r),void 0!==n)return n;if(n=u(i,r,void 0),void 0!==n)return n}else this.each(function(){var n=ye.get(this,r);ye.set(this,r,t),-1!==e.indexOf("-")&&void 0!==n&&ye.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){ye.remove(this,e)})}}),Z.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=ve.get(e,t),n&&(!r||Z.isArray(n)?r=ve.access(e,t,Z.makeArray(n)):r.push(n)),r||[]):void 0},dequeue:function(e,t){t=t||"fx";var n=Z.queue(e,t),r=n.length,o=n.shift(),i=Z._queueHooks(e,t),s=function(){Z.dequeue(e,t)};"inprogress"===o&&(o=n.shift(),r--),o&&("fx"===t&&n.unshift("inprogress"),delete i.stop,o.call(e,s,i)),!r&&i&&i.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return ve.get(e,n)||ve.access(e,n,{empty:Z.Callbacks("once memory").add(function(){ve.remove(e,[t+"queue",n])})})}}),Z.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?Z.queue(this[0],e):void 0===t?this:this.each(function(){var n=Z.queue(this,e,t);Z._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&Z.dequeue(this,e)})},dequeue:function(e){return this.each(function(){Z.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,o=Z.Deferred(),i=this,s=this.length,a=function(){--r||o.resolveWith(i,[i])};for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";s--;)n=ve.get(i[s],e+"queueHooks"),n&&n.empty&&(r++,n.empty.add(a));return a(),o.promise(t)}});var we=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Te=["Top","Right","Bottom","Left"],Ce=function(e,t){return e=t||e,"none"===Z.css(e,"display")||!Z.contains(e.ownerDocument,e)},je=/^(?:checkbox|radio)$/i;!function(){var e=Q.createDocumentFragment(),t=e.appendChild(Q.createElement("div")),n=Q.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),t.appendChild(n),J.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,t.innerHTML="<textarea>x</textarea>",J.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue}();var ke="undefined";J.focusinBubbles="onfocusin"in e;var Ne=/^key/,Ee=/^(?:mouse|pointer|contextmenu)|click/,Se=/^(?:focusinfocus|focusoutblur)$/,Ae=/^([^.]*)(?:\.(.+)|)$/;Z.event={global:{},add:function(e,t,n,r,o){var i,s,a,u,l,c,f,p,h,d,g,m=ve.get(e);if(m)for(n.handler&&(i=n,n=i.handler,o=i.selector),n.guid||(n.guid=Z.guid++),(u=m.events)||(u=m.events={}),(s=m.handle)||(s=m.handle=function(t){return typeof Z!==ke&&Z.event.triggered!==t.type?Z.event.dispatch.apply(e,arguments):void 0}),t=(t||"").match(he)||[""],l=t.length;l--;)a=Ae.exec(t[l])||[],h=g=a[1],d=(a[2]||"").split(".").sort(),h&&(f=Z.event.special[h]||{},h=(o?f.delegateType:f.bindType)||h,f=Z.event.special[h]||{},c=Z.extend({type:h,origType:g,data:r,handler:n,guid:n.guid,selector:o,needsContext:o&&Z.expr.match.needsContext.test(o),namespace:d.join(".")},i),(p=u[h])||(p=u[h]=[],p.delegateCount=0,f.setup&&f.setup.call(e,r,d,s)!==!1||e.addEventListener&&e.addEventListener(h,s,!1)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),o?p.splice(p.delegateCount++,0,c):p.push(c),Z.event.global[h]=!0)},remove:function(e,t,n,r,o){var i,s,a,u,l,c,f,p,h,d,g,m=ve.hasData(e)&&ve.get(e);if(m&&(u=m.events)){for(t=(t||"").match(he)||[""],l=t.length;l--;)if(a=Ae.exec(t[l])||[],h=g=a[1],d=(a[2]||"").split(".").sort(),h){for(f=Z.event.special[h]||{},h=(r?f.delegateType:f.bindType)||h,p=u[h]||[],a=a[2]&&new RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=i=p.length;i--;)c=p[i],!o&&g!==c.origType||n&&n.guid!==c.guid||a&&!a.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(i,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));s&&!p.length&&(f.teardown&&f.teardown.call(e,d,m.handle)!==!1||Z.removeEvent(e,h,m.handle),delete u[h])}else for(h in u)Z.event.remove(e,h+t[l],n,r,!0);Z.isEmptyObject(u)&&(delete m.handle,ve.remove(e,"events"))}},trigger:function(t,n,r,o){var i,s,a,u,l,c,f,p=[r||Q],h=G.call(t,"type")?t.type:t,d=G.call(t,"namespace")?t.namespace.split("."):[];if(s=a=r=r||Q,3!==r.nodeType&&8!==r.nodeType&&!Se.test(h+Z.event.triggered)&&(h.indexOf(".")>=0&&(d=h.split("."),h=d.shift(),d.sort()),l=h.indexOf(":")<0&&"on"+h,t=t[Z.expando]?t:new Z.Event(h,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=d.join("."),t.namespace_re=t.namespace?new RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:Z.makeArray(n,[t]),f=Z.event.special[h]||{},o||!f.trigger||f.trigger.apply(r,n)!==!1)){if(!o&&!f.noBubble&&!Z.isWindow(r)){for(u=f.delegateType||h,Se.test(u+h)||(s=s.parentNode);s;s=s.parentNode)p.push(s),a=s;a===(r.ownerDocument||Q)&&p.push(a.defaultView||a.parentWindow||e)}for(i=0;(s=p[i++])&&!t.isPropagationStopped();)t.type=i>1?u:f.bindType||h,c=(ve.get(s,"events")||{})[t.type]&&ve.get(s,"handle"),c&&c.apply(s,n),c=l&&s[l],c&&c.apply&&Z.acceptData(s)&&(t.result=c.apply(s,n),t.result===!1&&t.preventDefault());return t.type=h,o||t.isDefaultPrevented()||f._default&&f._default.apply(p.pop(),n)!==!1||!Z.acceptData(r)||l&&Z.isFunction(r[h])&&!Z.isWindow(r)&&(a=r[l],a&&(r[l]=null),Z.event.triggered=h,r[h](),Z.event.triggered=void 0,a&&(r[l]=a)),t.result}},dispatch:function(e){e=Z.event.fix(e);var t,n,r,o,i,s=[],a=_.call(arguments),u=(ve.get(this,"events")||{})[e.type]||[],l=Z.event.special[e.type]||{};if(a[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){for(s=Z.event.handlers.call(this,e,u),t=0;(o=s[t++])&&!e.isPropagationStopped();)for(e.currentTarget=o.elem,n=0;(i=o.handlers[n++])&&!e.isImmediatePropagationStopped();)(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((Z.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,a),void 0!==r&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()));return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,o,i,s=[],a=t.delegateCount,u=e.target;if(a&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!==this;u=u.parentNode||this)if(u.disabled!==!0||"click"!==e.type){for(r=[],n=0;a>n;n++)i=t[n],o=i.selector+" ",void 0===r[o]&&(r[o]=i.needsContext?Z(o,this).index(u)>=0:Z.find(o,this,null,[u]).length),r[o]&&r.push(i);r.length&&s.push({elem:u,handlers:r})}return a<t.length&&s.push({elem:this,handlers:t.slice(a)}),s},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,o,i=t.button;return null==e.pageX&&null!=t.clientX&&(n=e.target.ownerDocument||Q,r=n.documentElement,o=n.body,e.pageX=t.clientX+(r&&r.scrollLeft||o&&o.scrollLeft||0)-(r&&r.clientLeft||o&&o.clientLeft||0),e.pageY=t.clientY+(r&&r.scrollTop||o&&o.scrollTop||0)-(r&&r.clientTop||o&&o.clientTop||0)),e.which||void 0===i||(e.which=1&i?1:2&i?3:4&i?2:0),e}},fix:function(e){if(e[Z.expando])return e;var t,n,r,o=e.type,i=e,s=this.fixHooks[o];for(s||(this.fixHooks[o]=s=Ee.test(o)?this.mouseHooks:Ne.test(o)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new Z.Event(i),t=r.length;t--;)n=r[t],e[n]=i[n];return e.target||(e.target=Q),3===e.target.nodeType&&(e.target=e.target.parentNode),s.filter?s.filter(e,i):e},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==f()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===f()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&Z.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(e){return Z.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var o=Z.extend(new Z.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?Z.event.trigger(o,null,t):Z.event.dispatch.call(t,o),o.isDefaultPrevented()&&n.preventDefault()}},Z.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)},Z.Event=function(e,t){return this instanceof Z.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&e.returnValue===!1?l:c):this.type=e,t&&Z.extend(this,t),this.timeStamp=e&&e.timeStamp||Z.now(),void(this[Z.expando]=!0)):new Z.Event(e,t)},Z.Event.prototype={isDefaultPrevented:c,isPropagationStopped:c,isImmediatePropagationStopped:c,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=l,e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=l,e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=l,e&&e.stopImmediatePropagation&&e.stopImmediatePropagation(),this.stopPropagation()}},Z.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){Z.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,o=e.relatedTarget,i=e.handleObj;return(!o||o!==r&&!Z.contains(r,o))&&(e.type=i.origType,n=i.handler.apply(this,arguments),e.type=t),n}}}),J.focusinBubbles||Z.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){Z.event.simulate(t,e.target,Z.event.fix(e),!0)};Z.event.special[t]={setup:function(){var r=this.ownerDocument||this,o=ve.access(r,t);o||r.addEventListener(e,n,!0),ve.access(r,t,(o||0)+1)},teardown:function(){var r=this.ownerDocument||this,o=ve.access(r,t)-1;o?ve.access(r,t,o):(r.removeEventListener(e,n,!0),ve.remove(r,t))}}}),Z.fn.extend({on:function(e,t,n,r,o){var i,s;if("object"==typeof e){"string"!=typeof t&&(n=n||t,t=void 0);for(s in e)this.on(s,t,n,e[s],o);return this}if(null==n&&null==r?(r=t,n=t=void 0):null==r&&("string"==typeof t?(r=n,n=void 0):(r=n,n=t,t=void 0)),r===!1)r=c;else if(!r)return this;return 1===o&&(i=r,r=function(e){return Z().off(e),i.apply(this,arguments)},r.guid=i.guid||(i.guid=Z.guid++)),this.each(function(){Z.event.add(this,e,r,n,t)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,t,n){var r,o;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,Z(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(o in e)this.off(o,t,e[o]);return this}return(t===!1||"function"==typeof t)&&(n=t,t=void 0),n===!1&&(n=c),this.each(function(){Z.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){Z.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?Z.event.trigger(e,t,n,!0):void 0}});var De=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,qe=/<([\w:]+)/,Oe=/<|&#?\w+;/,Le=/<(?:script|style|link)/i,He=/checked\s*(?:[^=]|=\s*.checked.)/i,Fe=/^$|\/(?:java|ecma)script/i,Re=/^true\/(.*)/,Pe=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Ie={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Ie.optgroup=Ie.option,Ie.tbody=Ie.tfoot=Ie.colgroup=Ie.caption=Ie.thead,Ie.th=Ie.td,Z.extend({clone:function(e,t,n){var r,o,i,s,a=e.cloneNode(!0),u=Z.contains(e.ownerDocument,e);if(!(J.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||Z.isXMLDoc(e)))for(s=v(a),i=v(e),r=0,o=i.length;o>r;r++)y(i[r],s[r]);if(t)if(n)for(i=i||v(e),s=s||v(a),r=0,o=i.length;o>r;r++)m(i[r],s[r]);else m(e,a);return s=v(a,"script"),s.length>0&&g(s,!u&&v(e,"script")),a},buildFragment:function(e,t,n,r){for(var o,i,s,a,u,l,c=t.createDocumentFragment(),f=[],p=0,h=e.length;h>p;p++)if(o=e[p],o||0===o)if("object"===Z.type(o))Z.merge(f,o.nodeType?[o]:o);else if(Oe.test(o)){for(i=i||c.appendChild(t.createElement("div")),s=(qe.exec(o)||["",""])[1].toLowerCase(),a=Ie[s]||Ie._default,i.innerHTML=a[1]+o.replace(De,"<$1></$2>")+a[2],l=a[0];l--;)i=i.lastChild;Z.merge(f,i.childNodes),i=c.firstChild,i.textContent=""}else f.push(t.createTextNode(o));for(c.textContent="",p=0;o=f[p++];)if((!r||-1===Z.inArray(o,r))&&(u=Z.contains(o.ownerDocument,o),i=v(c.appendChild(o),"script"),u&&g(i),n))for(l=0;o=i[l++];)Fe.test(o.type||"")&&n.push(o);return c},cleanData:function(e){for(var t,n,r,o,i=Z.event.special,s=0;void 0!==(n=e[s]);s++){if(Z.acceptData(n)&&(o=n[ve.expando],o&&(t=ve.cache[o]))){if(t.events)for(r in t.events)i[r]?Z.event.remove(n,r):Z.removeEvent(n,r,t.handle);ve.cache[o]&&delete ve.cache[o]}delete ye.cache[n[ye.expando]]}}}),Z.fn.extend({text:function(e){return me(this,function(e){return void 0===e?Z.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=e)})},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=p(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=p(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){for(var n,r=e?Z.filter(e,this):this,o=0;null!=(n=r[o]);o++)t||1!==n.nodeType||Z.cleanData(v(n)),n.parentNode&&(t&&Z.contains(n.ownerDocument,n)&&g(v(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(Z.cleanData(v(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return Z.clone(this,e,t)})},html:function(e){return me(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Le.test(e)&&!Ie[(qe.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(De,"<$1></$2>");try{for(;r>n;n++)t=this[n]||{},1===t.nodeType&&(Z.cleanData(v(t,!1)),t.innerHTML=e);t=0}catch(o){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=arguments[0];return this.domManip(arguments,function(t){e=this.parentNode,Z.cleanData(v(this)),e&&e.replaceChild(t,this)}),e&&(e.length||e.nodeType)?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t){e=U.apply([],e);var n,r,o,i,s,a,u=0,l=this.length,c=this,f=l-1,p=e[0],g=Z.isFunction(p);if(g||l>1&&"string"==typeof p&&!J.checkClone&&He.test(p))return this.each(function(n){var r=c.eq(n);g&&(e[0]=p.call(this,n,r.html())),r.domManip(e,t)});if(l&&(n=Z.buildFragment(e,this[0].ownerDocument,!1,this),r=n.firstChild,1===n.childNodes.length&&(n=r),r)){for(o=Z.map(v(n,"script"),h),i=o.length;l>u;u++)s=n,u!==f&&(s=Z.clone(s,!0,!0),i&&Z.merge(o,v(s,"script"))),t.call(this[u],s,u);if(i)for(a=o[o.length-1].ownerDocument,Z.map(o,d),u=0;i>u;u++)s=o[u],Fe.test(s.type||"")&&!ve.access(s,"globalEval")&&Z.contains(a,s)&&(s.src?Z._evalUrl&&Z._evalUrl(s.src):Z.globalEval(s.textContent.replace(Pe,"")))}return this}}),Z.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){Z.fn[e]=function(e){for(var n,r=[],o=Z(e),i=o.length-1,s=0;i>=s;s++)n=s===i?this:this.clone(!0),Z(o[s])[t](n),z.apply(r,n.get());return this.pushStack(r)}});var Me,$e={},We=/^margin/,Be=new RegExp("^("+we+")(?!px)[a-z%]+$","i"),_e=function(t){return t.ownerDocument.defaultView.opener?t.ownerDocument.defaultView.getComputedStyle(t,null):e.getComputedStyle(t,null)};!function(){function t(){s.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",s.innerHTML="",o.appendChild(i);var t=e.getComputedStyle(s,null);n="1%"!==t.top,r="4px"===t.width,o.removeChild(i)}var n,r,o=Q.documentElement,i=Q.createElement("div"),s=Q.createElement("div");s.style&&(s.style.backgroundClip="content-box",s.cloneNode(!0).style.backgroundClip="",J.clearCloneStyle="content-box"===s.style.backgroundClip,i.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",i.appendChild(s),e.getComputedStyle&&Z.extend(J,{pixelPosition:function(){return t(),n},boxSizingReliable:function(){return null==r&&t(),r},reliableMarginRight:function(){var t,n=s.appendChild(Q.createElement("div"));return n.style.cssText=s.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",n.style.marginRight=n.style.width="0",s.style.width="1px",o.appendChild(i),t=!parseFloat(e.getComputedStyle(n,null).marginRight),o.removeChild(i),s.removeChild(n),t}}))}(),Z.swap=function(e,t,n,r){var o,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];o=n.apply(e,r||[]);for(i in t)e.style[i]=s[i];return o};var Ue=/^(none|table(?!-c[ea]).+)/,ze=new RegExp("^("+we+")(.*)$","i"),Xe=new RegExp("^([+-])=("+we+")","i"),Ve={position:"absolute",visibility:"hidden",display:"block"},Ye={letterSpacing:"0",fontWeight:"400"},Ge=["Webkit","O","Moz","ms"];Z.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=w(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,i,s,a=Z.camelCase(t),u=e.style;return t=Z.cssProps[a]||(Z.cssProps[a]=C(u,a)),s=Z.cssHooks[t]||Z.cssHooks[a],void 0===n?s&&"get"in s&&void 0!==(o=s.get(e,!1,r))?o:u[t]:(i=typeof n,"string"===i&&(o=Xe.exec(n))&&(n=(o[1]+1)*o[2]+parseFloat(Z.css(e,t)),i="number"),null!=n&&n===n&&("number"!==i||Z.cssNumber[a]||(n+="px"),J.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),s&&"set"in s&&void 0===(n=s.set(e,n,r))||(u[t]=n)),void 0)}},css:function(e,t,n,r){var o,i,s,a=Z.camelCase(t);return t=Z.cssProps[a]||(Z.cssProps[a]=C(e.style,a)),s=Z.cssHooks[t]||Z.cssHooks[a],s&&"get"in s&&(o=s.get(e,!0,n)),void 0===o&&(o=w(e,t,r)),"normal"===o&&t in Ye&&(o=Ye[t]),""===n||n?(i=parseFloat(o),n===!0||Z.isNumeric(i)?i||0:o):o}}),Z.each(["height","width"],function(e,t){Z.cssHooks[t]={get:function(e,n,r){return n?Ue.test(Z.css(e,"display"))&&0===e.offsetWidth?Z.swap(e,Ve,function(){return N(e,t,r)}):N(e,t,r):void 0},set:function(e,n,r){var o=r&&_e(e);return j(e,n,r?k(e,t,r,"border-box"===Z.css(e,"boxSizing",!1,o),o):0)}}}),Z.cssHooks.marginRight=T(J.reliableMarginRight,function(e,t){return t?Z.swap(e,{display:"inline-block"},w,[e,"marginRight"]):void 0}),Z.each({margin:"",padding:"",border:"Width"},function(e,t){Z.cssHooks[e+t]={expand:function(n){for(var r=0,o={},i="string"==typeof n?n.split(" "):[n];4>r;r++)o[e+Te[r]+t]=i[r]||i[r-2]||i[0];return o}},We.test(e)||(Z.cssHooks[e+t].set=j)}),Z.fn.extend({css:function(e,t){return me(this,function(e,t,n){var r,o,i={},s=0;if(Z.isArray(t)){for(r=_e(e),o=t.length;o>s;s++)i[t[s]]=Z.css(e,t[s],!1,r);return i}return void 0!==n?Z.style(e,t,n):Z.css(e,t)},e,t,arguments.length>1)},show:function(){return E(this,!0)},hide:function(){return E(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Ce(this)?Z(this).show():Z(this).hide()})}}),Z.Tween=S,S.prototype={constructor:S,init:function(e,t,n,r,o,i){this.elem=e,this.prop=n,this.easing=o||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=i||(Z.cssNumber[n]?"":"px")},cur:function(){var e=S.propHooks[this.prop];return e&&e.get?e.get(this):S.propHooks._default.get(this)},run:function(e){var t,n=S.propHooks[this.prop];return this.options.duration?this.pos=t=Z.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):S.propHooks._default.set(this),this}},S.prototype.init.prototype=S.prototype,S.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=Z.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){Z.fx.step[e.prop]?Z.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[Z.cssProps[e.prop]]||Z.cssHooks[e.prop])?Z.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},S.propHooks.scrollTop=S.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},Z.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},Z.fx=S.prototype.init,Z.fx.step={};var Je,Qe,Ke=/^(?:toggle|show|hide)$/,Ze=new RegExp("^(?:([+-])=|)("+we+")([a-z%]*)$","i"),et=/queueHooks$/,tt=[O],nt={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),o=Ze.exec(t),i=o&&o[3]||(Z.cssNumber[e]?"":"px"),s=(Z.cssNumber[e]||"px"!==i&&+r)&&Ze.exec(Z.css(n.elem,e)),a=1,u=20;if(s&&s[3]!==i){i=i||s[3],o=o||[],s=+r||1;do a=a||".5",s/=a,Z.style(n.elem,e,s+i);while(a!==(a=n.cur()/r)&&1!==a&&--u)}return o&&(s=n.start=+s||+r||0,n.unit=i,n.end=o[1]?s+(o[1]+1)*o[2]:+o[2]),n}]};Z.Animation=Z.extend(H,{tweener:function(e,t){Z.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,r=0,o=e.length;o>r;r++)n=e[r],nt[n]=nt[n]||[],nt[n].unshift(t)},prefilter:function(e,t){t?tt.unshift(e):tt.push(e)}}),Z.speed=function(e,t,n){var r=e&&"object"==typeof e?Z.extend({},e):{complete:n||!n&&t||Z.isFunction(e)&&e,duration:e,easing:n&&t||t&&!Z.isFunction(t)&&t};return r.duration=Z.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in Z.fx.speeds?Z.fx.speeds[r.duration]:Z.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){Z.isFunction(r.old)&&r.old.call(this),r.queue&&Z.dequeue(this,r.queue)},r},Z.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Ce).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var o=Z.isEmptyObject(e),i=Z.speed(t,n,r),s=function(){var t=H(this,Z.extend({},e),i);(o||ve.get(this,"finish"))&&t.stop(!0)};return s.finish=s,o||i.queue===!1?this.each(s):this.queue(i.queue,s)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,o=null!=e&&e+"queueHooks",i=Z.timers,s=ve.get(this);
if(o)s[o]&&s[o].stop&&r(s[o]);else for(o in s)s[o]&&s[o].stop&&et.test(o)&&r(s[o]);for(o=i.length;o--;)i[o].elem!==this||null!=e&&i[o].queue!==e||(i[o].anim.stop(n),t=!1,i.splice(o,1));(t||!n)&&Z.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=ve.get(this),r=n[e+"queue"],o=n[e+"queueHooks"],i=Z.timers,s=r?r.length:0;for(n.finish=!0,Z.queue(this,e,[]),o&&o.stop&&o.stop.call(this,!0),t=i.length;t--;)i[t].elem===this&&i[t].queue===e&&(i[t].anim.stop(!0),i.splice(t,1));for(t=0;s>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),Z.each(["toggle","show","hide"],function(e,t){var n=Z.fn[t];Z.fn[t]=function(e,r,o){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(D(t,!0),e,r,o)}}),Z.each({slideDown:D("show"),slideUp:D("hide"
Download .txt
gitextract_o5c_h_av/

├── .github/
│   └── workflows/
│       └── gitbook-build.yml
├── .gitignore
├── .node-version
├── CONTRIBUTING.md
├── LICENSE
├── LICENSE.md
├── README.md
├── SUMMARY.md
├── book.json
├── command_line/
│   ├── README.md
│   ├── index.html
│   ├── introduction.html
│   └── introduction.md
├── gitbook/
│   ├── fonts/
│   │   └── fontawesome/
│   │       └── FontAwesome.otf
│   ├── gitbook-plugin-advanced-emoji/
│   │   ├── LICENSE-IMAGES.md
│   │   ├── LICENSE.md
│   │   ├── emoji-book.css
│   │   └── emoji-website.css
│   ├── gitbook-plugin-copy-code-button/
│   │   └── toggle.js
│   ├── gitbook-plugin-edit-link/
│   │   └── plugin.js
│   ├── gitbook-plugin-fontsettings/
│   │   ├── fontsettings.js
│   │   └── website.css
│   ├── gitbook-plugin-ga/
│   │   └── plugin.js
│   ├── gitbook-plugin-github/
│   │   └── plugin.js
│   ├── gitbook-plugin-github-buttons/
│   │   └── plugin.js
│   ├── gitbook-plugin-highlight/
│   │   ├── ebook.css
│   │   └── website.css
│   ├── gitbook-plugin-lunr/
│   │   └── search-lunr.js
│   ├── gitbook-plugin-prism/
│   │   ├── prism-coy.css
│   │   ├── prism-dark.css
│   │   ├── prism-funky.css
│   │   ├── prism-okaidia.css
│   │   ├── prism-solarizedlight.css
│   │   ├── prism-tomorrow.css
│   │   ├── prism-twilight.css
│   │   └── prism.css
│   ├── gitbook-plugin-search/
│   │   ├── search-engine.js
│   │   ├── search.css
│   │   └── search.js
│   ├── gitbook-plugin-sharing/
│   │   └── buttons.js
│   ├── gitbook.js
│   ├── style.css
│   └── theme.js
├── graphql/
│   ├── README.md
│   ├── index.html
│   ├── introduction.html
│   └── introduction.md
├── index.html
├── package.json
├── search_index.json
├── sql/
│   ├── README.md
│   ├── index.html
│   ├── introduction.html
│   └── introduction.md
├── styles/
│   └── website.css
└── wallaby.js
Download .txt
SYMBOL INDEX (258 symbols across 8 files)

FILE: gitbook/gitbook-plugin-copy-code-button/toggle.js
  function selectElementText (line 2) | function selectElementText(el){
  function getSelectedText (line 10) | function getSelectedText() {
  function copyToClipboard (line 22) | function copyToClipboard(text) {
  function expand (line 44) | function expand(chapter) {

FILE: gitbook/gitbook-plugin-fontsettings/fontsettings.js
  function getThemes (line 44) | function getThemes() {
  function setThemes (line 49) | function setThemes(themes) {
  function getFamilies (line 55) | function getFamilies() {
  function setFamilies (line 60) | function setFamilies(families) {
  function saveFontSettings (line 66) | function saveFontSettings() {
  function enlargeFontSize (line 72) | function enlargeFontSize(e) {
  function reduceFontSize (line 81) | function reduceFontSize(e) {
  function changeFontFamily (line 90) | function changeFontFamily(configName, e) {
  function changeColorTheme (line 101) | function changeColorTheme(configName, e) {
  function getFontFamilyId (line 123) | function getFontFamilyId(configName) {
  function getThemeId (line 134) | function getThemeId(configName) {
  function update (line 143) | function update() {
  function init (line 159) | function init(config) {
  function updateButtons (line 174) | function updateButtons() {

FILE: gitbook/gitbook-plugin-github-buttons/plugin.js
  function addBeforeHeader (line 4) | function addBeforeHeader(element) {
  function createButton (line 8) | function createButton(_ref) {
  function createUserButton (line 21) | function createUserButton(_ref2) {
  function insertGitHubLink (line 31) | function insertGitHubLink(button) {
  function init (line 67) | function init(config) {
  function getPluginConfig (line 72) | function getPluginConfig() {

FILE: gitbook/gitbook-plugin-lunr/search-lunr.js
  function LunrSearchEngine (line 6) | function LunrSearchEngine() {

FILE: gitbook/gitbook-plugin-search/search-engine.js
  function setEngine (line 10) | function setEngine(Engine, config) {
  function init (line 18) | function init(config) {
  function query (line 29) | function query(q, offset, length) {
  function getEngine (line 35) | function getEngine() {
  function isInitialized (line 39) | function isInitialized() {

FILE: gitbook/gitbook-plugin-search/search.js
  function throttle (line 20) | function throttle(fn, wait) {
  function displayResults (line 34) | function displayResults(res) {
  function launchSearch (line 73) | function launchSearch(q) {
  function closeSearch (line 88) | function closeSearch() {
  function launchSearchFromQueryString (line 93) | function launchSearchFromQueryString() {
  function bindSearch (line 104) | function bindSearch() {
  function getParameterByName (line 172) | function getParameterByName(name) {
  function updateQueryString (line 182) | function updateQueryString(key, value) {

FILE: gitbook/gitbook.js
  function o (line 1) | function o(s,a){if(!n[s]){if(!t[s]){var u="function"==typeof require&&re...
  function n (line 1) | function n(e){var t="length"in e&&e.length,n=Z.type(e);return"function"=...
  function r (line 1) | function r(e,t,n){if(Z.isFunction(t))return Z.grep(e,function(e,r){retur...
  function o (line 1) | function o(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}
  function i (line 1) | function i(e){var t=de[e]={};return Z.each(e.match(he)||[],function(e,n)...
  function s (line 1) | function s(){Q.removeEventListener("DOMContentLoaded",s,!1),e.removeEven...
  function a (line 1) | function a(){Object.defineProperty(this.cache={},0,{get:function(){retur...
  function u (line 1) | function u(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.rep...
  function l (line 1) | function l(){return!0}
  function c (line 1) | function c(){return!1}
  function f (line 1) | function f(){try{return Q.activeElement}catch(e){}}
  function p (line 1) | function p(e,t){return Z.nodeName(e,"table")&&Z.nodeName(11!==t.nodeType...
  function h (line 1) | function h(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}
  function d (line 1) | function d(e){var t=Re.exec(e.type);return t?e.type=t[1]:e.removeAttribu...
  function g (line 1) | function g(e,t){for(var n=0,r=e.length;r>n;n++)ve.set(e[n],"globalEval",...
  function m (line 1) | function m(e,t){var n,r,o,i,s,a,u,l;if(1===t.nodeType){if(ve.hasData(e)&...
  function v (line 1) | function v(e,t){var n=e.getElementsByTagName?e.getElementsByTagName(t||"...
  function y (line 1) | function y(e,t){var n=t.nodeName.toLowerCase();"input"===n&&je.test(e.ty...
  function x (line 1) | function x(t,n){var r,o=Z(n.createElement(t)).appendTo(n.body),i=e.getDe...
  function b (line 1) | function b(e){var t=Q,n=$e[e];return n||(n=x(e,t),"none"!==n&&n||(Me=(Me...
  function w (line 1) | function w(e,t,n){var r,o,i,s,a=e.style;return n=n||_e(e),n&&(s=n.getPro...
  function T (line 1) | function T(e,t){return{get:function(){return e()?void delete this.get:(t...
  function C (line 1) | function C(e,t){if(t in e)return t;for(var n=t[0].toUpperCase()+t.slice(...
  function j (line 1) | function j(e,t,n){var r=ze.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2...
  function k (line 1) | function k(e,t,n,r,o){for(var i=n===(r?"border":"content")?4:"width"===t...
  function N (line 1) | function N(e,t,n){var r=!0,o="width"===t?e.offsetWidth:e.offsetHeight,i=...
  function E (line 1) | function E(e,t){for(var n,r,o,i=[],s=0,a=e.length;a>s;s++)r=e[s],r.style...
  function S (line 1) | function S(e,t,n,r,o){return new S.prototype.init(e,t,n,r,o)}
  function A (line 1) | function A(){return setTimeout(function(){Je=void 0}),Je=Z.now()}
  function D (line 1) | function D(e,t){var n,r=0,o={height:e};for(t=t?1:0;4>r;r+=2-t)n=Te[r],o[...
  function q (line 1) | function q(e,t,n){for(var r,o=(nt[t]||[]).concat(nt["*"]),i=0,s=o.length...
  function O (line 1) | function O(e,t,n){var r,o,i,s,a,u,l,c,f=this,p={},h=e.style,d=e.nodeType...
  function L (line 1) | function L(e,t){var n,r,o,i,s;for(n in e)if(r=Z.camelCase(n),o=t[r],i=e[...
  function H (line 1) | function H(e,t,n){var r,o,i=0,s=tt.length,a=Z.Deferred().always(function...
  function F (line 1) | function F(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r...
  function R (line 1) | function R(e,t,n,r){function o(a){var u;return i[a]=!0,Z.each(e[a]||[],f...
  function P (line 1) | function P(e,t){var n,r,o=Z.ajaxSettings.flatOptions||{};for(n in t)void...
  function I (line 1) | function I(e,t,n){for(var r,o,i,s,a=e.contents,u=e.dataTypes;"*"===u[0];...
  function M (line 1) | function M(e,t,n,r){var o,i,s,a,u,l={},c=e.dataTypes.slice();if(c[1])for...
  function $ (line 1) | function $(e,t,n,r){var o;if(Z.isArray(t))Z.each(t,function(t,o){n||jt.t...
  function W (line 1) | function W(e){return Z.isWindow(e)?e:9===e.nodeType&&e.defaultView}
  function t (line 1) | function t(e,t,n,r){var o,i,s,a,u,l,f,h,d,g;if((t?t.ownerDocument||t:$)!...
  function n (line 1) | function n(){function e(n,r){return t.push(n+" ")>T.cacheLength&&delete ...
  function r (line 1) | function r(e){return e[M]=!0,e}
  function o (line 1) | function o(e){var t=O.createElement("div");try{return!!e(t)}catch(n){ret...
  function i (line 1) | function i(e,t){for(var n=e.split("|"),r=e.length;r--;)T.attrHandle[n[r]...
  function s (line 1) | function s(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sour...
  function a (line 1) | function a(e){return function(t){var n=t.nodeName.toLowerCase();return"i...
  function u (line 1) | function u(e){return function(t){var n=t.nodeName.toLowerCase();return("...
  function l (line 1) | function l(e){return r(function(t){return t=+t,r(function(n,r){for(var o...
  function c (line 1) | function c(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}
  function f (line 1) | function f(){}
  function p (line 1) | function p(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}
  function h (line 1) | function h(e,t,n){var r=t.dir,o=n&&"parentNode"===r,i=B++;return t.first...
  function d (line 1) | function d(e){return e.length>1?function(t,n,r){for(var o=e.length;o--;)...
  function g (line 1) | function g(e,n,r){for(var o=0,i=n.length;i>o;o++)t(e,n[o],r);return r}
  function m (line 1) | function m(e,t,n,r,o){for(var i,s=[],a=0,u=e.length,l=null!=t;u>a;a++)(i...
  function v (line 1) | function v(e,t,n,o,i,s){return o&&!o[M]&&(o=v(o)),i&&!i[M]&&(i=v(i,s)),r...
  function y (line 1) | function y(e){for(var t,n,r,o=e.length,i=T.relative[e[0].type],s=i||T.re...
  function x (line 1) | function x(e,n){var o=n.length>0,i=e.length>0,s=function(r,s,a,u,l){var ...
  function t (line 2) | function t(){s.style.cssText="-webkit-box-sizing:border-box;-moz-box-siz...
  function n (line 3) | function n(e,t,n,s){var u,c,v,y,b,T=t;2!==x&&(x=2,a&&clearTimeout(a),r=v...
  function t (line 3) | function t(e,t){for(var n=0,r=e.length-1;r>=0;r--){var o=e[r];"."===o?e....
  function r (line 3) | function r(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r<e.leng...
  function r (line 3) | function r(e){for(var t=0;t<e.length&&""===e[t];t++);for(var n=e.length-...
  function r (line 3) | function r(){c=!1,a.length?l=a.concat(l):f=-1,l.length&&o()}
  function o (line 3) | function o(){if(!c){var e=setTimeout(r);c=!0;for(var t=l.length;t;){for(...
  function i (line 3) | function i(e,t){this.fun=e,this.array=t}
  function s (line 3) | function s(){}
  function o (line 3) | function o(e){throw new RangeError(L[e])}
  function i (line 3) | function i(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}
  function s (line 3) | function s(e,t){var n=e.split("@"),r="";n.length>1&&(r=n[0]+"@",e=n[1]),...
  function a (line 3) | function a(e){for(var t,n,r=[],o=0,i=e.length;i>o;)t=e.charCodeAt(o++),t...
  function u (line 3) | function u(e){return i(e,function(e){var t="";return e>65535&&(e-=65536,...
  function l (line 3) | function l(e){return 10>e-48?e-22:26>e-65?e-65:26>e-97?e-97:T}
  function c (line 3) | function c(e,t){return e+22+75*(26>e)-((0!=t)<<5)}
  function f (line 3) | function f(e,t,n){var r=0;for(e=n?F(e/N):e>>1,e+=F(e/t);e>H*j>>1;r+=T)e=...
  function p (line 3) | function p(e){var t,n,r,i,s,a,c,p,h,d,g=[],m=e.length,v=0,y=S,x=E;for(n=...
  function h (line 3) | function h(e){var t,n,r,i,s,u,l,p,h,d,g,m,v,y,x,b=[];for(e=a(e),m=e.leng...
  function d (line 3) | function d(e){return s(e,function(e){return D.test(e)?p(e.slice(4).toLow...
  function g (line 3) | function g(e){return s(e,function(e){return q.test(e)?"xn--"+h(e):e})}
  function r (line 3) | function r(e,t){return Object.prototype.hasOwnProperty.call(e,t)}
  function r (line 3) | function r(e,t){if(e.map)return e.map(t);for(var n=[],r=0;r<e.length;r++...
  function r (line 3) | function r(){this.protocol=null,this.slashes=null,this.auth=null,this.ho...
  function o (line 3) | function o(e,t,n){if(e&&l.isObject(e)&&e instanceof r)return e;var o=new...
  function i (line 3) | function i(e){return l.isString(e)&&(e=o(e)),e instanceof r?e.format():r...
  function s (line 3) | function s(e,t){return o(e,!1,!0).resolve(t)}
  function a (line 3) | function a(e,t){return e?o(e,!1,!0).resolveObject(t):t}
  function r (line 4) | function r(e){console.log("page has changed",e),o(e),c||(c=!0,l.trigger(...
  function o (line 4) | function o(e){f.page=e.page,f.file=e.file,f.gitbook=e.gitbook,f.config=e...
  function i (line 4) | function i(){return f}

FILE: gitbook/theme.js
  function o (line 1) | function o(a,s){if(!n[a]){if(!t[a]){var u="function"==typeof require&&re...
  function n (line 1) | function n(e){var t="length"in e&&e.length,n=Z.type(e);return"function"=...
  function r (line 1) | function r(e,t,n){if(Z.isFunction(t))return Z.grep(e,function(e,r){retur...
  function o (line 1) | function o(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}
  function i (line 1) | function i(e){var t=de[e]={};return Z.each(e.match(he)||[],function(e,n)...
  function a (line 1) | function a(){Q.removeEventListener("DOMContentLoaded",a,!1),e.removeEven...
  function s (line 1) | function s(){Object.defineProperty(this.cache={},0,{get:function(){retur...
  function u (line 1) | function u(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.rep...
  function l (line 1) | function l(){return!0}
  function c (line 1) | function c(){return!1}
  function f (line 1) | function f(){try{return Q.activeElement}catch(e){}}
  function p (line 1) | function p(e,t){return Z.nodeName(e,"table")&&Z.nodeName(11!==t.nodeType...
  function h (line 1) | function h(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}
  function d (line 1) | function d(e){var t=Fe.exec(e.type);return t?e.type=t[1]:e.removeAttribu...
  function g (line 1) | function g(e,t){for(var n=0,r=e.length;r>n;n++)ve.set(e[n],"globalEval",...
  function m (line 1) | function m(e,t){var n,r,o,i,a,s,u,l;if(1===t.nodeType){if(ve.hasData(e)&...
  function v (line 1) | function v(e,t){var n=e.getElementsByTagName?e.getElementsByTagName(t||"...
  function y (line 1) | function y(e,t){var n=t.nodeName.toLowerCase();"input"===n&&Te.test(e.ty...
  function b (line 1) | function b(t,n){var r,o=Z(n.createElement(t)).appendTo(n.body),i=e.getDe...
  function x (line 1) | function x(e){var t=Q,n=$e[e];return n||(n=b(e,t),"none"!==n&&n||(Ie=(Ie...
  function w (line 1) | function w(e,t,n){var r,o,i,a,s=e.style;return n=n||Be(e),n&&(a=n.getPro...
  function C (line 1) | function C(e,t){return{get:function(){return e()?void delete this.get:(t...
  function k (line 1) | function k(e,t){if(t in e)return t;for(var n=t[0].toUpperCase()+t.slice(...
  function T (line 1) | function T(e,t,n){var r=ze.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2...
  function j (line 1) | function j(e,t,n,r,o){for(var i=n===(r?"border":"content")?4:"width"===t...
  function N (line 1) | function N(e,t,n){var r=!0,o="width"===t?e.offsetWidth:e.offsetHeight,i=...
  function E (line 1) | function E(e,t){for(var n,r,o,i=[],a=0,s=e.length;s>a;a++)r=e[a],r.style...
  function S (line 1) | function S(e,t,n,r,o){return new S.prototype.init(e,t,n,r,o)}
  function A (line 1) | function A(){return setTimeout(function(){Ge=void 0}),Ge=Z.now()}
  function q (line 1) | function q(e,t){var n,r=0,o={height:e};for(t=t?1:0;4>r;r+=2-t)n=Ce[r],o[...
  function D (line 1) | function D(e,t,n){for(var r,o=(nt[t]||[]).concat(nt["*"]),i=0,a=o.length...
  function O (line 1) | function O(e,t,n){var r,o,i,a,s,u,l,c,f=this,p={},h=e.style,d=e.nodeType...
  function L (line 1) | function L(e,t){var n,r,o,i,a;for(n in e)if(r=Z.camelCase(n),o=t[r],i=e[...
  function H (line 1) | function H(e,t,n){var r,o,i=0,a=tt.length,s=Z.Deferred().always(function...
  function P (line 1) | function P(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r...
  function F (line 1) | function F(e,t,n,r){function o(s){var u;return i[s]=!0,Z.each(e[s]||[],f...
  function M (line 1) | function M(e,t){var n,r,o=Z.ajaxSettings.flatOptions||{};for(n in t)void...
  function R (line 1) | function R(e,t,n){for(var r,o,i,a,s=e.contents,u=e.dataTypes;"*"===u[0];...
  function I (line 1) | function I(e,t,n,r){var o,i,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for...
  function $ (line 1) | function $(e,t,n,r){var o;if(Z.isArray(t))Z.each(t,function(t,o){n||Tt.t...
  function _ (line 1) | function _(e){return Z.isWindow(e)?e:9===e.nodeType&&e.defaultView}
  function t (line 1) | function t(e,t,n,r){var o,i,a,s,u,l,f,h,d,g;if((t?t.ownerDocument||t:$)!...
  function n (line 1) | function n(){function e(n,r){return t.push(n+" ")>C.cacheLength&&delete ...
  function r (line 1) | function r(e){return e[I]=!0,e}
  function o (line 1) | function o(e){var t=O.createElement("div");try{return!!e(t)}catch(n){ret...
  function i (line 1) | function i(e,t){for(var n=e.split("|"),r=e.length;r--;)C.attrHandle[n[r]...
  function a (line 1) | function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sour...
  function s (line 1) | function s(e){return function(t){var n=t.nodeName.toLowerCase();return"i...
  function u (line 1) | function u(e){return function(t){var n=t.nodeName.toLowerCase();return("...
  function l (line 1) | function l(e){return r(function(t){return t=+t,r(function(n,r){for(var o...
  function c (line 1) | function c(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}
  function f (line 1) | function f(){}
  function p (line 1) | function p(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}
  function h (line 1) | function h(e,t,n){var r=t.dir,o=n&&"parentNode"===r,i=W++;return t.first...
  function d (line 1) | function d(e){return e.length>1?function(t,n,r){for(var o=e.length;o--;)...
  function g (line 1) | function g(e,n,r){for(var o=0,i=n.length;i>o;o++)t(e,n[o],r);return r}
  function m (line 1) | function m(e,t,n,r,o){for(var i,a=[],s=0,u=e.length,l=null!=t;u>s;s++)(i...
  function v (line 1) | function v(e,t,n,o,i,a){return o&&!o[I]&&(o=v(o)),i&&!i[I]&&(i=v(i,a)),r...
  function y (line 1) | function y(e){for(var t,n,r,o=e.length,i=C.relative[e[0].type],a=i||C.re...
  function b (line 1) | function b(e,n){var o=n.length>0,i=e.length>0,a=function(r,a,s,u,l){var ...
  function t (line 2) | function t(){a.style.cssText="-webkit-box-sizing:border-box;-moz-box-siz...
  function n (line 3) | function n(e,t,n,a){var u,c,v,y,x,C=t;2!==b&&(b=2,s&&clearTimeout(s),r=v...
  function o (line 3) | function o(e,t,n){return e.addEventListener?void e.addEventListener(t,n,...
  function i (line 3) | function i(e){if("keypress"==e.type){var t=String.fromCharCode(e.which);...
  function a (line 3) | function a(e,t){return e.sort().join(",")===t.sort().join(",")}
  function s (line 3) | function s(e){var t=[];return e.shiftKey&&t.push("shift"),e.altKey&&t.pu...
  function u (line 3) | function u(e){return e.preventDefault?void e.preventDefault():void(e.ret...
  function l (line 3) | function l(e){return e.stopPropagation?void e.stopPropagation():void(e.c...
  function c (line 3) | function c(e){return"shift"==e||"ctrl"==e||"alt"==e||"meta"==e}
  function f (line 3) | function f(){if(!v){v={};for(var e in y)e>95&&112>e||y.hasOwnProperty(e)...
  function p (line 3) | function p(e,t,n){return n||(n=f()[e]?"keydown":"keypress"),"keypress"==...
  function h (line 3) | function h(e){return"+"===e?["+"]:(e=e.replace(/\+{2}/g,"+plus"),e.split...
  function d (line 3) | function d(e,t){var n,r,o,i=[];for(n=h(e),o=0;o<n.length;++o)r=n[o],w[r]...
  function g (line 3) | function g(e,t){return null===e||e===n?!1:e===t?!0:g(e.parentNode,t)}
  function m (line 3) | function m(e){function t(e){e=e||{};var t,n=!1;for(t in x)e[t]?n=!0:x[t]...
  function o (line 3) | function o(e){throw new RangeError(L[e])}
  function i (line 3) | function i(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}
  function a (line 3) | function a(e,t){var n=e.split("@"),r="";n.length>1&&(r=n[0]+"@",e=n[1]),...
  function s (line 3) | function s(e){for(var t,n,r=[],o=0,i=e.length;i>o;)t=e.charCodeAt(o++),t...
  function u (line 3) | function u(e){return i(e,function(e){var t="";return e>65535&&(e-=65536,...
  function l (line 3) | function l(e){return 10>e-48?e-22:26>e-65?e-65:26>e-97?e-97:C}
  function c (line 3) | function c(e,t){return e+22+75*(26>e)-((0!=t)<<5)}
  function f (line 3) | function f(e,t,n){var r=0;for(e=n?P(e/N):e>>1,e+=P(e/t);e>H*T>>1;r+=C)e=...
  function p (line 3) | function p(e){var t,n,r,i,a,s,c,p,h,d,g=[],m=e.length,v=0,y=S,b=E;for(n=...
  function h (line 3) | function h(e){var t,n,r,i,a,u,l,p,h,d,g,m,v,y,b,x=[];for(e=s(e),m=e.leng...
  function d (line 3) | function d(e){return a(e,function(e){return q.test(e)?p(e.slice(4).toLow...
  function g (line 3) | function g(e){return a(e,function(e){return D.test(e)?"xn--"+h(e):e})}
  function r (line 3) | function r(e,t){return Object.prototype.hasOwnProperty.call(e,t)}
  function r (line 3) | function r(e,t){if(e.map)return e.map(t);for(var n=[],r=0;r<e.length;r++...
  function r (line 3) | function r(){this.protocol=null,this.slashes=null,this.auth=null,this.ho...
  function o (line 3) | function o(e,t,n){if(e&&l.isObject(e)&&e instanceof r)return e;var o=new...
  function i (line 3) | function i(e){return l.isString(e)&&(e=o(e)),e instanceof r?e.format():r...
  function a (line 3) | function a(e,t){return o(e,!1,!0).resolve(t)}
  function s (line 3) | function s(e,t){return e?o(e,!1,!0).resolveObject(t):t}
  function r (line 4) | function r(e){var t=a(e.currentTarget).parent().find(".dropdown-menu");t...
  function o (line 4) | function o(e){a(".dropdown-menu").removeClass("open")}
  function i (line 4) | function i(){a(document).on("click",".toggle-dropdown",r),a(document).on...
  function r (line 4) | function r(){s.init(),i.init(),o.init(),a.init(),u.createButton({index:0...
  function r (line 4) | function r(e,t){i.bind(e,function(e){return t(),!1})}
  function o (line 4) | function o(){r(["right"],function(e){a.goNext()}),r(["left"],function(e)...
  function r (line 4) | function r(e){return o.state.$book.addClass("is-loading"),e.always(funct...
  function r (line 4) | function r(){return x(k.isSmallScreen()?".book-body":".body-inner")}
  function o (line 4) | function o(e){var t=r(),n=0;e&&(n=i(e)),t.unbind("scroll"),t.animate({sc...
  function i (line 4) | function i(e){var t=r(),n=t.find(".page-inner"),o=t.find(e),i=o.offsetPa...
  function a (line 4) | function a(e,t){if(e||t||(e=y.first()),t&&(e=y.filter(function(){var e=s...
  function s (line 4) | function s(e){var t=e.children("a"),n=t.attr("href").split("#")[1];retur...
  function u (line 4) | function u(){var e=r(),t=e.scrollTop(),n=e.prop("scrollHeight"),o=e.prop...
  function l (line 4) | function l(e,t){var n=w.parse(N),r=w.resolve(window.location.pathname,e)...
  function c (line 4) | function c(){var e,t;e=parseInt(x(".body-inner").css("width"),10),t=pars...
  function f (line 4) | function f(e){var t=x(".book-body"),n=t.find(".body-inner"),o=n.find(".p...
  function p (line 4) | function p(e){return 0===e.button}
  function h (line 4) | function h(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}
  function d (line 4) | function d(e){var t=x(this),n=t.attr("target");if(!h(e)&&p(e)&&!n){e.sto...
  function g (line 4) | function g(){var e=x(".navigation-next").attr("href");e&&l(e,!0)}
  function m (line 4) | function m(){var e=x(".navigation-prev").attr("href");e&&l(e,!0)}
  function v (line 4) | function v(){x.ajaxSetup({cache:!1}),history.replaceState({path:window.l...
  function r (line 4) | function r(e,t){(null==l.state||o()!=e)&&(null==t&&(t=!0),l.state.$book....
  function o (line 4) | function o(){return l.state.$book.hasClass("with-summary")}
  function i (line 4) | function i(){u.isMobile()||r(l.storage.get("sidebar",!0),!1),s(document)...
  function a (line 4) | function a(e){var t=s(".book-summary");t.find("li").each(function(){var ...
  function r (line 4) | function r(){return"btn-"+g++}
  function o (line 4) | function o(e,t,n,r){var o=e.children(t).size();0>n&&(n=Math.max(0,o+1+n)...
  function i (line 4) | function i(e){e.preventDefault()}
  function a (line 4) | function a(e){var t=p("<div>",{"class":"dropdown-menu",html:'<div class=...
  function s (line 4) | function s(e){return e=p.extend({label:"",icon:"",text:"",position:"left...
  function u (line 4) | function u(e){var t,n=p(".book-header"),r=n.find("h1"),i="pull-"+e.posit...
  function l (line 4) | function l(){p(".js-toolbar-action").remove(),d.forEach(u)}
  function c (line 4) | function c(e){d=p.grep(d,function(t){return t.id!=e}),l()}
  function f (line 4) | function f(e){d=p.grep(d,function(t){return-1==e.indexOf(t.id)}),l()}
Condensed preview — 56 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (647K chars).
[
  {
    "path": ".github/workflows/gitbook-build.yml",
    "chars": 1285,
    "preview": "name: Build GitBook\n\non:\n  push:\n    branches:\n      - master\n    paths:\n      - '**/*.md'\n      - 'book.json'\n      - '"
  },
  {
    "path": ".gitignore",
    "chars": 44,
    "preview": "_book\nnode_modules\n.idea\nnpm-debug.log\nCNAME"
  },
  {
    "path": ".node-version",
    "chars": 8,
    "preview": "12.16.0\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 1051,
    "preview": "# Contributing\n\nThe [flashcards.github.io](https://flashcards.github.io/) community is possible thanks to kind volunteer"
  },
  {
    "path": "LICENSE",
    "chars": 1078,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2016 learn-rxjs\n\nPermission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "LICENSE.md",
    "chars": 1067,
    "preview": "MIT License\n\nCopyright (c) 2020 Flashcards\n\nPermission is hereby granted, free of charge, to any person obtaining a copy"
  },
  {
    "path": "README.md",
    "chars": 13377,
    "preview": "# Flashcards for Developers | flashcards.github.io\n\nA community-based collection of developer flashcards to boost your p"
  },
  {
    "path": "SUMMARY.md",
    "chars": 336,
    "preview": "# Table of contents\n\n- [Introduction](README.md)\n\n## flashcards.github.io\n\n- [Command Line](command_line/README.md)\n  - "
  },
  {
    "path": "book.json",
    "chars": 963,
    "preview": "{\n  \"gitbook\": \"3.1.1\",\n  \"title\": \"Flashcards for Developers | flashcards.github.io\",\n  \"plugins\": [\n    \"include-codeb"
  },
  {
    "path": "command_line/README.md",
    "chars": 256,
    "preview": "# Learn Command Line | Flashcards for Developers\n\nLearn Command Line - a text interface for your computer. It’s a progra"
  },
  {
    "path": "command_line/index.html",
    "chars": 11414,
    "preview": "\n<!DOCTYPE HTML>\n<html lang=\"\" >\n    <head>\n        <title>Command Line · Flashcards for Developers | flashcards.github."
  },
  {
    "path": "command_line/introduction.html",
    "chars": 15070,
    "preview": "\n<!DOCTYPE HTML>\n<html lang=\"\" >\n    <head>\n        <title>Introduction Flashcards · Flashcards for Developers | flashca"
  },
  {
    "path": "command_line/introduction.md",
    "chars": 2752,
    "preview": "# Introduction | Command Line Flashcards\n\n<iframe class=\"FlashcardsIO\" src=\"https://embed.flashcards.io/?url=https://fla"
  },
  {
    "path": "gitbook/gitbook-plugin-advanced-emoji/LICENSE-IMAGES.md",
    "chars": 418,
    "preview": "octocat, squirrel, shipit\nCopyright (c) 2012 GitHub Inc. All rights reserved.\n\nbowtie, neckbeard\nCopyright (c) 2012 37si"
  },
  {
    "path": "gitbook/gitbook-plugin-advanced-emoji/LICENSE.md",
    "chars": 1121,
    "preview": "THE MIT LICENSE (MIT)\nCopyright © 2014 Hassan Khan, http://hassankhan.me <contact@hassankhan.me>\n\nPermission is hereby g"
  },
  {
    "path": "gitbook/gitbook-plugin-advanced-emoji/emoji-book.css",
    "chars": 174,
    "preview": "/* adjusted for gitbook styling. original css from emojify.js */\n.emoji {\n  width: 1em;\n  height: 1em;\n  display: inline"
  },
  {
    "path": "gitbook/gitbook-plugin-advanced-emoji/emoji-website.css",
    "chars": 185,
    "preview": "/* adjusted for gitbook styling. original css from emojify.js */\n.emoji {\n  width: 1.3em;\n  height: 1.3em;\n  display: in"
  },
  {
    "path": "gitbook/gitbook-plugin-copy-code-button/toggle.js",
    "chars": 3013,
    "preview": "require([\"gitbook\", \"jQuery\"], function(gitbook, $) {\n  function selectElementText(el){\n      var range = document.creat"
  },
  {
    "path": "gitbook/gitbook-plugin-edit-link/plugin.js",
    "chars": 859,
    "preview": "require([\"gitbook\", \"jQuery\"], function(gitbook, $) {\n    gitbook.events.bind('start', function (e, config) {\n        va"
  },
  {
    "path": "gitbook/gitbook-plugin-fontsettings/fontsettings.js",
    "chars": 6447,
    "preview": "require(['gitbook', 'jquery'], function(gitbook, $) {\n    // Configuration\n    var MAX_SIZE       = 4,\n        MIN_SIZE "
  },
  {
    "path": "gitbook/gitbook-plugin-fontsettings/website.css",
    "chars": 8596,
    "preview": "/*\n * Theme 1\n */\n.color-theme-1 .dropdown-menu {\n  background-color: #111111;\n  border-color: #7e888b;\n}\n.color-theme-1"
  },
  {
    "path": "gitbook/gitbook-plugin-ga/plugin.js",
    "chars": 725,
    "preview": "require([\"gitbook\"], function(gitbook) {\n    // Load analytics.js\n    gitbook.events.bind(\"start\", function(e, config) {"
  },
  {
    "path": "gitbook/gitbook-plugin-github/plugin.js",
    "chars": 388,
    "preview": "require([ 'gitbook' ], function (gitbook) {\n    gitbook.events.bind('start', function (e, config) {\n        var githubUR"
  },
  {
    "path": "gitbook/gitbook-plugin-github-buttons/plugin.js",
    "chars": 3318,
    "preview": "// LICENSE : MIT\n\"use strict\";\nrequire(['gitbook'], function (gitbook) {\n    function addBeforeHeader(element) {\n       "
  },
  {
    "path": "gitbook/gitbook-plugin-highlight/ebook.css",
    "chars": 1798,
    "preview": "pre,\ncode {\n  /* From https://github.com/isagalaev/highlight.js/blob/9.8.0/src/styles/tomorrow.css */\n  /* http://jmblog"
  },
  {
    "path": "gitbook/gitbook-plugin-highlight/website.css",
    "chars": 19301,
    "preview": ".book .book-body .page-wrapper .page-inner section.normal pre,\n.book .book-body .page-wrapper .page-inner section.normal"
  },
  {
    "path": "gitbook/gitbook-plugin-lunr/search-lunr.js",
    "chars": 1615,
    "preview": "require([\n    'gitbook',\n    'jquery'\n], function(gitbook, $) {\n    // Define global search engine\n    function LunrSear"
  },
  {
    "path": "gitbook/gitbook-plugin-prism/prism-coy.css",
    "chars": 4178,
    "preview": "/**\n * prism.js Coy theme for JavaScript, CoffeeScript, CSS and HTML\n * Based on https://github.com/tshedor/workshop-wp-"
  },
  {
    "path": "gitbook/gitbook-plugin-prism/prism-dark.css",
    "chars": 2066,
    "preview": "/**\n * prism.js Dark theme for JavaScript, CSS and HTML\n * Based on the slides of the talk “/Reg(exp){2}lained/”\n * @aut"
  },
  {
    "path": "gitbook/gitbook-plugin-prism/prism-funky.css",
    "chars": 2491,
    "preview": "/**\n * prism.js Funky theme\n * Based on “Polyfilling the gaps” talk slides http://lea.verou.me/polyfilling-the-gaps/\n * "
  },
  {
    "path": "gitbook/gitbook-plugin-prism/prism-okaidia.css",
    "chars": 1814,
    "preview": "/**\n * okaidia theme for JavaScript, CSS and HTML\n * Loosely based on Monokai textmate theme by http://www.monokai.nl/\n "
  },
  {
    "path": "gitbook/gitbook-plugin-prism/prism-solarizedlight.css",
    "chars": 2606,
    "preview": "/*\n Solarized Color Schemes originally by Ethan Schoonover\n http://ethanschoonover.com/solarized\n\n Ported for PrismJS by"
  },
  {
    "path": "gitbook/gitbook-plugin-prism/prism-tomorrow.css",
    "chars": 1766,
    "preview": "/**\n * prism.js tomorrow night eighties for JavaScript, CoffeeScript, CSS and HTML\n * Based on https://github.com/chrisk"
  },
  {
    "path": "gitbook/gitbook-plugin-prism/prism-twilight.css",
    "chars": 4111,
    "preview": "/**\n * prism.js Twilight theme\n * Based (more or less) on the Twilight theme originally of Textmate fame.\n * @author Rem"
  },
  {
    "path": "gitbook/gitbook-plugin-prism/prism.css",
    "chars": 2264,
    "preview": "/**\n * prism.js default theme for JavaScript, CSS and HTML\n * Based on dabblet (http://dabblet.com)\n * @author Lea Verou"
  },
  {
    "path": "gitbook/gitbook-plugin-search/search-engine.js",
    "chars": 1268,
    "preview": "require([\n    'gitbook',\n    'jquery'\n], function(gitbook, $) {\n    // Global search objects\n    var engine      = null;"
  },
  {
    "path": "gitbook/gitbook-plugin-search/search.css",
    "chars": 974,
    "preview": "/*\n    This CSS only styled the search results section, not the search input\n    It defines the basic interraction to hi"
  },
  {
    "path": "gitbook/gitbook-plugin-search/search.js",
    "chars": 6368,
    "preview": "require([\n    'gitbook',\n    'jquery'\n], function(gitbook, $) {\n    var MAX_RESULTS = 15;\n    var MAX_DESCRIPTION_SIZE ="
  },
  {
    "path": "gitbook/gitbook-plugin-sharing/buttons.js",
    "chars": 2875,
    "preview": "require(['gitbook', 'jquery'], function(gitbook, $) {\n    var SITES = {\n        'facebook': {\n            'label': 'Face"
  },
  {
    "path": "gitbook/gitbook.js",
    "chars": 101696,
    "preview": "!function e(t,n,r){function o(s,a){if(!n[s]){if(!t[s]){var u=\"function\"==typeof require&&require;if(!a&&u)return u(s,!0)"
  },
  {
    "path": "gitbook/style.css",
    "chars": 51107,
    "preview": "/*! normalize.css v2.1.0 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup"
  },
  {
    "path": "gitbook/theme.js",
    "chars": 109931,
    "preview": "!function e(t,n,r){function o(a,s){if(!n[a]){if(!t[a]){var u=\"function\"==typeof require&&require;if(!s&&u)return u(a,!0)"
  },
  {
    "path": "graphql/README.md",
    "chars": 449,
    "preview": "# Learn GraphQL | Flashcards for Developers\n\nLearn GraphQL - At its simplest, GraphQL is about asking for specific field"
  },
  {
    "path": "graphql/index.html",
    "chars": 11700,
    "preview": "\n<!DOCTYPE HTML>\n<html lang=\"\" >\n    <head>\n        <title>GraphQL · Flashcards for Developers | flashcards.github.io</t"
  },
  {
    "path": "graphql/introduction.html",
    "chars": 17254,
    "preview": "\n<!DOCTYPE HTML>\n<html lang=\"\" >\n    <head>\n        <title>Introduction Flashcards · Flashcards for Developers | flashca"
  },
  {
    "path": "graphql/introduction.md",
    "chars": 4803,
    "preview": "# Introduction | GraphQL Flashcards\n\n<iframe class=\"FlashcardsIO\" src=\"https://embed.flashcards.io/?url=https://flashcar"
  },
  {
    "path": "index.html",
    "chars": 27757,
    "preview": "\n<!DOCTYPE HTML>\n<html lang=\"\" >\n    <head>\n        <title>Introduction · Flashcards for Developers | flashcards.github."
  },
  {
    "path": "package.json",
    "chars": 733,
    "preview": "{\n  \"name\": \"flashcards.github.io\",\n  \"version\": \"0.0.1\",\n  \"description\": \"Flashcards for Developers | flashcards.githu"
  },
  {
    "path": "search_index.json",
    "chars": 112218,
    "preview": "{\"index\":{\"version\":\"0.5.12\",\"fields\":[{\"name\":\"title\",\"boost\":10},{\"name\":\"body\",\"boost\":1}],\"ref\":\"url\",\"documentStore"
  },
  {
    "path": "sql/README.md",
    "chars": 156,
    "preview": "# Learn SQL | Flashcards for Developers\n\nLearn SQL - a language used to communicate with databases using SQL.\n\n### Decks"
  },
  {
    "path": "sql/index.html",
    "chars": 11377,
    "preview": "\n<!DOCTYPE HTML>\n<html lang=\"\" >\n    <head>\n        <title>SQL · Flashcards for Developers | flashcards.github.io</title"
  },
  {
    "path": "sql/introduction.html",
    "chars": 19458,
    "preview": "\n<!DOCTYPE HTML>\n<html lang=\"\" >\n    <head>\n        <title>Introduction Flashcards · Flashcards for Developers | flashca"
  },
  {
    "path": "sql/introduction.md",
    "chars": 6750,
    "preview": "# Introduction | SQL Flashcards\n\n<iframe class=\"FlashcardsIO\" src=\"https://embed.flashcards.io/?url=https://flashcards.g"
  },
  {
    "path": "styles/website.css",
    "chars": 897,
    "preview": "@import url('https://fonts.googleapis.com/css?family=Roboto|Roboto+Mono&display=swap');\n\n.ua-ad {\n  text-align: center;\n"
  },
  {
    "path": "wallaby.js",
    "chars": 436,
    "preview": "module.exports = wallaby => ({\n  files: [\n    {pattern: 'operators/specs/helpers/*.ts', instrument: false}\n  ],\n\n  tests"
  }
]

// ... and 1 more files (download for full content)

About this extraction

This page contains the full source code of the flashcards/flashcards.github.io GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 56 files (592.0 KB), approximately 183.5k tokens, and a symbol index with 258 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!