[
  {
    "path": ".gitignore",
    "content": "node_modules\nout/\npackage-lock.json\n\n# Numerous always-ignore extensions\n*.diff\n*.err\n*.orig\n*.log\n*.rej\n*.swo\n\n*.swp\n*.zip\n*.vi\n*~\n*.sass-cache\n*.ruby-version\n\n# OS or Editor folders\n.DS_Store\n._*\nThumbs.db\n.cache\n.project\n.settings\n.tmproj\n.docpad.db\n*.esproj\nnbproject\n*.sublime-project\n*.sublime-workspace\n.brofile\n"
  },
  {
    "path": ".jshintrc",
    "content": "{\n\n  \"globals\":  {\n    \"$\"                     : true,\n    \"afterEach\"             : true,\n    \"beforeEach\"            : true,\n    \"console\"               : true,\n    \"describe\"              : true,\n    \"expect\"                : true,\n    \"it\"                    : true,\n    \"jQuery\"                : true,\n    \"loadFixtures\"          : true,\n    \"module\"                : true,\n    \"requestAnimationFrame\" : true,\n    \"require\"               : true,\n    \"semantic\"              : true\n  },\n\n  \"debug\"    : false,\n  \"devel\"    : true,\n\n  \"browser\"  : true,\n  \"curly\"    : true,\n  \"immed\"    : true,\n  \"latedef\"  : true,\n  \"loopfunc\" : true,\n  \"noarg\"    : true,\n  \"undef\"    : true,\n  \"sub\"      : true,\n  \"loopfunc\" : true,\n\n  \"laxbreak\" : true,\n  \"evil\"     : true,\n  \"indent\"   : false,\n  \"trailing\" : false\n\n}"
  },
  {
    "path": "README.md",
    "content": "# Semantic Docs\n\nThis folder contains the templates used to generate the static website for [semantic-ui.com](http://www.semantic-ui.com). \n\nThis repo can be used to create a fork of the UI documents to serve as styleguide for your project.\n\n### Installing Dependencies\n\n\nYou must install [DocPad](http://github.com/docpad/docpad), the static site generator used to create the HTML for the site, to render the contents of this repository.\n\nSUI docs use a version of **DocPad compatible with Node 10**. It is recommended you install [NVM](https://github.com/nvm-sh/nvm) and a compatible node version in order to create the documentation.\n\n```\nnvm install 8\nnvm use 8\n```\n\nTo run docpad after cloning this repo\n\n```\nnpm install -g docpad@6.79.4\ndocpad install;\n```\n\nThen finally to start the server\n```\ndocpad run\n```\n\n### Generating Semantic UI for Docs\n\nAssuming two sibling folders:\n\n1. UI folder ./ui\n2. Docs folder ./docs\n\n* Clone both repos to respective folders\n* npm install in both directories\n* Go through Semantic UI installer steps (auto)\n* In `./ui` folder `gulp build-docs` (builds files to ./docs)\n* In `./docs` folder `docpad install` then `docpad run`\n* Go to http://localhost:9778/ docs should be there\n* Optionally run `gulp serve-docs` in ./ui to serve any changes from ./ui/src to ./docs\n\n### Running the Server\n\nStart the docs server (and generate docs):\n\n```\n# run from inside docs folder that will now contain the compiled docs\n# windows users can then navigate to http://localhost:9778\ndocpad run\n```\n\n\nWatch for changes from your UI folder, and serve to the docs instance:\n\n```\ngulp serve-docs\n```\n\n### Publishing to GitHub Pages\n\nYou can publish your docs to GitHub Pages from the command line automatically\n```\ndocpad deploy-ghpages --env static\n```\n\n\n## Help Fix Typos and Errors\n\nIf you find any typos or mistakes, submitting a fix is easy!\n\n- [Open the `documents/` folder](https://github.com/Semantic-Org/Semantic-UI-Docs/tree/master/server/documents) on GitHub\n- Click the “Edit” button on the appropriate page\n- Click to submit a pull request\n\n"
  },
  {
    "path": "docpad.coffee",
    "content": "# The DocPad Configuration File\n# It is simply a CoffeeScript Object which is parsed by CSON\ndocpadConfig = {\n\n\tsrcPath : './server'\n\toutPath: './out'\n\n\t# test production env\n\t# env: 'production'\n\n\tplugins:\n    ghpages:\n      deployRemote: 'origin'\n      deployBranch: 'gh-pages'\n\n\t# =================================\n\t# Template Data\n\t# These are variables that will be accessible via our templates\n\t# To access one of these within our templates, refer to the FAQ: https://github.com/bevry/docpad/wiki/FAQ\n\n\ttemplateData:\n\n\t\t# Specify some site properties\n\t\tsite:\n\n\t\t\t# The production url of our website\n\t\t\turl: \"http://www.semantic-ui.com\"\n\n\t\t\t# Here are some old site urls that you would like to redirect from\n\t\t\toldUrls: [],\n\n\t\t\tversion: \"2.5.0\",\n\n\t\t\tbranch: \"master\",\n\n\t\t\t# The default title of our website\n\t\t\ttitle: \"Semantic UI\"\n\n\t\t\t# The website description (for SEO)\n\t\t\tdescription: \"\"\"\n\t\t\t\tSemantic empowers designers and developers by creating a shared vocabulary for UI.\n\t\t\t\t\"\"\"\n\n\t\t\t# The website keywords (for SEO) separated by commas\n\t\t\tkeywords: \"\"\"\n\t\t\t\thtml5, ui, library, framework, javascript\n\t\t\t\t\"\"\"\n\n\n\t\t# -----------------------------\n\t\t# Helper Functions\n\n\t\t# Get the prepared site/document title\n\t\t# Often we would like to specify particular formatting to our page's title\n\t\t# we can apply that formatting here\n\n\t\tgetDirPath: ->\n\t\t\t@document.dirPath\n\n\t\tgetVersion: ->\n\t\t\t@site.version\n\n\t\tgetBranch: ->\n\t\t\t@site.branch\n\n\t\tgetZip: ->\n\t\t\tif @site.version\n\t\t\t\t\"https://github.com/Semantic-Org/Semantic-UI/archive/\" + @site.version + \".zip\"\n\t\t\telse\n\t\t\t\t\"https://github.com/Semantic-Org/Semantic-UI/archive/master.zip\"\n\n\t\tgetPreparedTitle: ->\n\t\t\t# if we have a document title, then we should use that and suffix the site's title onto it\n\t\t\tif @document.title\n\t\t\t\t\"#{@document.title} | #{@site.title}\"\n\t\t\t# if our document does not have it's own title, then we should just use the site's title\n\t\t\telse\n\t\t\t\t@site.title\n\n\t\tgetPage: (collection, id) ->\n\t\t\tfor item, index in collection\n\t\t\t\tselectedIndex = (index + 1) if item.id is id\n\t\t\tselectedIndex\n\n\t\tpageCount: (collection) ->\n\t\t\tfor item, index in collection\n\t\t\t\titemCount = index + 1\n\t\t\titemCount\n\n\t\tgetPageCollection: (collection, id, delta = 2) ->\n\t\t\tfor item, index in collection\n\t\t\t\tselectedIndex = index if item.id is id\n\t\t\t\tlastIndex = index\n\n\t\t\t# determine page count before and after\n\t\t\tbottomCount = if (selectedIndex - delta >= 0) then delta else (selectedIndex)\n\t\t\ttopCount = if (selectedIndex + delta <= lastIndex) then delta else (lastIndex - selectedIndex)\n\n\t\t\tbottomDelta = (delta * 2 - topCount)\n\t\t\ttopDelta = (delta * 2 - bottomCount)\n\n\t\t\tbottomIndex = if (selectedIndex - bottomDelta >= 0) then (selectedIndex - bottomDelta) else 0\n\t\t\ttopIndex = if (selectedIndex + topDelta <= lastIndex) then (selectedIndex + topDelta) else lastIndex\n\t\t\tresult = collection[bottomIndex..topIndex]\n\t\t\tresult\n\n\t\t# Get the prepared site/document description\n\t\tgetPreparedDescription: ->\n\t\t\t# if we have a document description, then we should use that, otherwise use the site's description\n\t\t\t@document.description or @site.description\n\n\t\t# Get the prepared site/document keywords\n\t\tgetPreparedKeywords: ->\n\t\t\t# Merge the document keywords with the site keywords\n\t\t\t@site.keywords.concat(@document.keywords or []).join(', ')\n\n\n\t# =================================\n\t# Custom Collections\n\n\tcollections:\n\t\tuiElements: ->\n\t\t\t@getCollection(\"documents\").findAllLive({type: $in: ['UI Element']}, [{title: 1}])\n\n\t\tuiCollections: ->\n\t\t\t@getCollection(\"documents\").findAllLive({type: $in: ['UI Collection']}, [{title: 1}])\n\n\t\tuiViews: ->\n\t\t\t@getCollection(\"documents\").findAllLive({type: $in: ['UI View']}, [{title: 1}])\n\n\t\tuiModules: ->\n\t\t\t@getCollection(\"documents\").findAllLive({type: $in: ['UI Module', 'UI Behavior']}, [{title: 1}])\n\n\t# =================================\n\t# DocPad Events\n\n\t# Here we can define handlers for events that DocPad fires\n\t# You can find a full listing of events on the DocPad Wiki\n\t# events:\n\tevents:\n    extendCollections: (opts) ->\n        @docpad.getCollection('files').on('add', (document) ->\n            document.setMetaDefaults(standalone:true))\n\n\n}\n\n# Export our DocPad Configuration\nmodule.exports = docpadConfig\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"semantic-ui-docs\",\n  \"title\": \"Semantic UI Docs\",\n  \"description\": \"Semantic empowers designers and developers by creating a shared vocabulary for UI.\",\n  \"homepage\": \"http://www.semantic-ui.com\",\n  \"author\": \"Jack Lukic <jacklukic@gmail.com>\",\n  \"license\": \"MIT\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git://github.com/Semantic-Org/Semantic-UI-Docs.git\"\n  },\n  \"dependencies\": {\n    \"docpad\": \"~6.79.4\",\n    \"docpad-plugin-babel\": \"~2.2.1\",\n    \"docpad-plugin-copy\": \"~2.1.3\",\n    \"docpad-plugin-eco\": \"~2.2.1\",\n    \"docpad-plugin-partials\": \"~2.12.0\"\n  },\n  \"devDependencies\": {\n    \"docpad-plugin-ghpages\": \"~2.6.1\"\n  }\n}\n"
  },
  {
    "path": "server/documents/404.html.eco",
    "content": "---\nlayout      : 'default'\ntitle       : 'Page Not Found'\ntype        : '404'\n---\n<%- @partial('header') %>\n\n<div class=\"main ui container\">\n\n</div>"
  },
  {
    "path": "server/documents/behaviors/api.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'api'\nstandalone  : true\n\nelement     : 'API'\nelementType : 'behavior'\n\ntitle       : 'API'\ndescription : 'API allows elements to trigger actions on a server'\ntype        : 'UI Behavior'\n---\n\n<script src=\"/javascript/library/serialize-object.js\"></script>\n<script src=\"/javascript/api.js\"></script>\n\n<%- @partial('header',  { tabs: { overview: 'Overview', usage: 'Usage',  behaviors: 'Behaviors',  settings: 'Settings' } }) %>\n\n<div class=\"main ui container\">\n  <div class=\"ui active intro tab\" data-tab=\"overview\">\n\n    <div class=\"test example\">\n      <h4 class=\"ui header\">Integrates Seamlessly with UI</h4>\n      <p>API is designed to make the process of integrating data sources to UI components seamless, <a href=\"#api-state-management\">tying API request state</a> to UI states automatically.</p>\n      <p>For example adding an API behavior to an <a href=\"/elements/input.html\"><code>input</code></a> will occur <code>oninput</code>, while a <a href=\"/elements/button.html\"><code>button</code></a>, will query the server <code>onclick</code>.</p>\n      <div class=\"ui icon input\">\n        <i class=\"search icon\"></i>\n        <input type=\"text\" placeholder=\"Type here...\">\n      </div>\n      <div class=\"ui hidden divider\"></div>\n      <div class=\"ui primary button\">Click Me</div>\n      <div class=\"ui disabled button\">Disabled</div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Preserve Templated URLs</h4>\n      <p>API helps you decouple URLs from your code. Use named API actions like <code>get followers</code> instead of URLs like <code>http://foo.com/get/1.0/followers.json</code> in your code.</p>\n      <div class=\"ignored code\" data-type=\"javascript\">\n      $('.button')\n        .api({\n          action: 'get followers'\n        })\n      ;\n      </div>\n      <p>Centrally manage your entire API making sure you aren't caught modifying urls across your codebase. Define your endpoints using an <a href=\"#api-actions\">intuitive templating system</a> that <a href=\"#passing-data\">automatically passes data</a> found in your UI.</p>\n      <div class=\"ignored code\" data-type=\"javascript\">\n        $.fn.api.settings.api = {\n          'get followers' : '/followers/{id}?results={count}',\n          'create user'   : '/create',\n          'add user'      : '/add/{id}',\n          'search'        : '/query/{query}/{/sort}'\n        };\n      </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">HTTP 200 is Not Success</h4>\n      <p>Parse your JSON for <code>success</code> conditions before callbacks fire, making sure server errors caught correctly, still trigger error conditions in your front end code.</p>\n      <div class=\"ignored code\">\n        // Responses without this status will trigger error conditions\n        $.fn.api.settings.successTest = function(response) {\n          return response.status == 'OK';\n        }\n      </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Translate APIs on the Fly</h4>\n      <p>Using a third party API that uses some unruly code? Not a problem! API lets you <a href=\"/introduction/new.html#translates-any-api\">modify an APIs raw JSON response</a> before it is consumed by your code.</p>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Tools for Third-Party Integrations & Mocking</h4>\n      <p>New powerful callbacks like <a href=\"#fulfilling-responses\"><code>response</code></a> and <a href=\"#using-custom-backends\"><code>responseAsync</code></a> let you asynchronously mock responses and trigger the same callbacks as your API.</p>\n    </div>\n\n\n  </div>\n\n  <div class=\"ui intro tab\" data-tab=\"usage\">\n    <div class=\"fixed column\">\n      <div class=\"demo content ui sticky\">\n        <h4 class=\"ui sub header\">API Example</h4>\n        <div class=\"ui fluid card\">\n          <div class=\"image\">\n            <img src=\"/images/avatar2/large/patrick.png\">\n          </div>\n          <div class=\"content\">\n            <a class=\"header\">Patrick Russel</a>\n            <div class=\"description\">Patrick lives in San Francisco, and studies french literature.</div>\n          </div>\n          <div class=\"ui bottom attached follow button\" data-id=\"22\">Follow</div>\n        </div>\n      </div>\n    </div>\n    <div class=\"examples\">\n\n      <h2 class=\"ui dividing header\">Creating an API</h2>\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">API Actions</h4>\n        <p><b>API</b> works by defining a set of server actions which interface elements can query. Actions are usually represented by short phrases, things like <code>save profile</code>, or <code>get followers</code> which correspond to a templated URL resource on the server.</p>\n        <p>URL variables specified in actions are substituted at run-time allowing individual components to query different URLs.</p>\n        <p>URLs listed in your API can include <b>required parameters</b> and <b>optional parameters</b> which may be adjusted for each call.</p>\n      </div>\n      <div class=\"no example\">\n        <h4 class=\"ui header\">Required Parameters</h4>\n        <div class=\"ui large bulleted list\">\n          <div class=\"item\">Uses format <code>{variable}</code></div>\n          <div class=\"item\"><b>Will abort the request</b> if they cannot be found.</div>\n        </div>\n        <div class=\"code\" data-type=\"javascript\">\n          /* Two required variables */\n          $.fn.api.settings.api = {\n            'get followers' : '/followers/{id}?results={count}'\n          };\n        </div>\n      </div>\n      <div class=\"no example\">\n        <h4 class=\"ui header\">Optional Parameters</h4>\n        <div class=\"ui large bulleted list\">\n          <div class=\"item\">Uses format <code>{/variable}</code></div>\n          <div class=\"item\">Will <b>not</b> abort the request if they cannot be found.</div>\n          <div class=\"item\"><b>Will be removed</b> from the URL automatically if not available.</div>\n          <div class=\"item\">Any preceding slash before an optional parameter will be removed from the URL, allowing you to include them in resource paths.</div>\n        </div>\n        <div class=\"code\" data-type=\"javascript\">\n          /* One required, one optional variable */\n          $.fn.api.settings.api = {\n            'get followers' : '/followers/{id}/{/sort}'\n          };\n        </div>\n      </div>\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">Creating your API</h4>\n        <p>You should define your endpoints <b>once in your application</b>. Usually this is done in a central configuration file included on each page.</p>\n        <p>These named API endpoints are stored globally in <code>$.fn.api.settings.api</code>.</p>\n        <p>Keeping your endpoints defined in one place makes sure when you update your application you will only need to update a single location with new URLs.</p>\n        <div class=\"code\" data-type=\"javascript\">\n          /* Define API endpoints once globally */\n          $.fn.api.settings.api = {\n            'get followers' : '/followers/{id}?results={count}',\n            'create user'   : '/create',\n            'add user'      : '/add/{id}',\n            'follow user'   : '/follow/{id}',\n            'search'        : '/search/?query={value}'\n          };\n        </div>\n      </div>\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">Using URLs</h4>\n        <p>Named API actions are not required to use API, you can also manually specify the URL for a request and use the same templating:</p>\n        <div class=\"code\">\n        $('.search.button')\n          .api({\n            url: 'http://www.google.com?q={value}'\n          })\n        ;\n        </div>\n      </div>\n\n      <h2 class=\"ui dividing header\">Querying API Actions</h2>\n\n      <div class=\"no example\">\n        <div class=\"ui info message\">\n          <p>The following examples work best while viewing <code>console</code> logs in your web console.</p>\n        </div>\n        <h4 class=\"ui header\">Attaching API Events</h4>\n\n        <p>API events are triggered by attaching named actions to elements on your page. These actions look up named endpoints in your API translating templated values from your element for each call.</p>\n\n        <p>Any element can have an API action attached directly to it. By default the action will occur on the most appropriate event for the type of element. For example a button will call your server <code>onclick</code>, an input <code>oninput</code>, or a form <code>onsubmit</code>.</p>\n\n        <p>API actions and data can be specified in Javascript on initialization:</p>\n        <div class=\"code\" data-type=\"html\">\n          <div class=\"ui follow button\">\n            Follow\n          </div>\n        </div>\n        <div class=\"evaluated code\">\n        // translates '/follow/{id}' to 'follow/22'\n        $('.follow.button')\n          .api({\n            action: 'follow user',\n            urlData: {\n              id: 22\n            }\n          })\n        ;\n        </div>\n        <div class=\"ui horizontal divider\">Or</div>\n\n        <p>API actions and data can also be specified in metadata:</p>\n        <div class=\"code\" data-type=\"html\">\n          <div class=\"ui follow button\" data-action=\"follow user\" data-id=\"22\">\n            Follow\n          </div>\n        </div>\n        <div class=\"code\">\n        // also calls '/follow/22'\n        $('.follow.button')\n          .api()\n        ;\n        </div>\n      </div>\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">Specifying DOM Events</h4>\n        <p>If you need to override what action an API event occurs on you can use the <code>on</code> parameter.</p>\n        <div class=\"ui message\">\n          API requests for the following demos have been faked using API's <code>response</code> setting to avoid rate throttling from public APIs. No actual data is returned.\n        </div>\n        <div class=\"code\" data-demo=\"true\">\n        $('.follow.button')\n          .api({\n            action: 'follow user',\n            on: 'mouseenter'\n          })\n        ;\n        </div>\n      </div>\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">Calling Immediately</h4>\n        <p>If you require API action to occur immediately use <code>on: 'now'</code>. This will still trigger the same state updates to the invoked element, but will occur immediately.</p>\n        <p>\n        <div class=\"code\" data-demo=\"true\">\n        $('.follow.button')\n          .api({\n            action: 'follow user',\n            on: 'now'\n          })\n        ;\n        </div>\n        <p>Keep in mind passing a new settings object will destroy the previous instance, and all its settings and events. If you want to preserve the previous instance, you can trigger a new request with the <code>query</code> behavior.</p>\n        <div class=\"code\" data-demo=\"true\">\n        // set-up API button with events\n        $('.follow.button')\n          .api({\n            action: 'follow user'\n          })\n        ;\n        // do an immediate query\n        $('.follow.button')\n          .api('query')\n        ;\n        </div>\n      </div>\n\n      <h2 class=\"ui dividing header\">Setting-up Requests</h2>\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">Routing Data to URLs</h4>\n        <p>If your API URLs include templated variables they will be replaced during your request by one of four possible ways, listed in of inheritance.</p>\n        <p>All parameters used in a URL are encoded using <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent\" target=\"_blank\"><code>encodeURIComponent</code></a> by default, to prevent from malicious strings from affecting your query. To disable this feature you can set <a href=\"#settings\"><code>encodeParameters: false</code></a>.\n      </div>\n\n      <div class=\"no routed example\">\n        <h4 class=\"ui header\">1. Automatically Routed URL Variables</h4>\n        <p>Some special values will be automatically replaced if specified in URL actions.</p>\n        <table class=\"ui definition table\">\n          <thead>\n            <tr>\n              <th>Variable</th>\n              <th>Description</th>\n              <th>Available for</th>\n            </tr>\n          </thead>\n          <tbody>\n            <tr>\n              <td>text</td>\n              <td>current text value of element</td>\n              <td>All elements</td>\n            </tr>\n            <tr>\n              <td>value</td>\n              <td>current input value of element</td>\n              <td>Input elements</td>\n            </tr>\n          </tbody>\n        </table>\n        <div class=\"code\" data-preview=\"true\">\n          <div class=\"ui search icon input\">\n            <i class=\"search icon\"></i>\n            <input type=\"text\" class=\"search\">\n          </div>\n        </div>\n        <div class=\"evaluated code\" data-type=\"javascript\">\n          $.fn.api.settings.api.search = '/search/?query={value}';\n\n          $('.routed.example .search input')\n            .api({\n              action       : 'search',\n              stateContext : '.ui.input'\n            })\n          ;\n        </div>\n      </div>\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">2. URL Variables Specified in Data Attributes</h4>\n        <p>You can include URL values as HTML5 metadata attributes.</p>\n        <p>This is often the easiest way to include unique URL data for each triggering element. For example, many follow buttons will trigger the same endpoint, but each will have its own user id.</p>\n        <div class=\"ui ignored large warning message\">\n          Only variables specified in your API's URL will be searched for in metadata.\n        </div>\n        <div class=\"code\" data-type=\"html\">\n          <div class=\"ui button\" data-id=\"11\">\n            Follow Sally\n          </div>\n          <div class=\"ui button\" data-id=\"22\">\n            Follow Jenny\n          </div>\n        </div>\n        <div class=\"code\" data-type=\"javascript\">\n          // requests different URLs for each button\n          $('.follow.button')\n            .api({\n              action: 'follow user'\n            })\n          ;\n        </div>\n      </div>\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">3. Settings Specified in Javascript</h4>\n        <p>URL variables and GET/POST data can be specified at run-time in the Javascript object.</p>\n        <div class=\"code\" data-type=\"javascript\">\n          $('.follow.button')\n            .api({\n              action : 'follow user',\n              method : 'POST',\n              // Substituted into URL\n              urlData: {\n                id: 22\n              },\n              // passed via POST\n              data: {\n                name: 'Joe Henderson'\n              }\n            })\n          ;\n        </div>\n      </div>\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">4. Settings Returned from beforeSend</h4>\n        <p>All run settings, not just URL data, can be adjusted in a special callback <code>beforeSend</code> which occurs before the API request is sent.</p>\n        <div class=\"ui info message\">\n          An additional callback <code>beforeXHR</code> lets you modify the XHR object before sending. This is different than beforeSend which is used <b>to modify settings</b> before send.\n        </div>\n        <div class=\"code\" data-type=\"javascript\">\n          $('.follow.button')\n            .api({\n              action: 'follow user',\n              beforeSend: function(settings) {\n                settings.urlData = {\n                  id: 22\n                };\n                return settings;\n              }\n              beforeXHR: function(xhr) {\n                // adjust XHR with additional headers\n                xhr.setRequestHeader ('Authorization', 'Basic XXXXXX');\n                return xhr;\n              }\n            })\n          ;\n        </div>\n      </div>\n\n      <h2 class=\"ui dividing header\">Adjusting Requests</h2>\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">Modifying XHR</h4>\n        <p>An additional callback <code>beforeXHR</code> lets you modify the XHR object before sending. This is useful for adjusting properties of the XHR request like modifying headers, before sending a request.</p>\n        <div class=\"code\" data-type=\"javascript\">\n          $('.follow.button')\n            .api({\n              action: 'follow user',\n              beforeXHR: function(xhr) {\n                // adjust XHR with additional headers\n                xhr.setRequestHeader ('Authorization', 'Basic XXXXXX');\n                return xhr;\n              }\n            })\n          ;\n        </div>\n      </div>\n\n      <div class=\"no disabled example\">\n        <h4 class=\"ui header\">Disabling Requests</h4>\n        <p>As a convenience, API will automatically prevent requests from occurring on elements that are currently disabled.</p>\n        <div class=\"ui disabled button\">Disabled</div>\n        <div class=\"evaluated code\">\n          // this will never occur\n          $('.disabled.button')\n            .api({\n              action: 'follow user'\n            })\n          ;\n        </div>\n      </div>\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">Cancelling Requests</h4>\n        <p>BeforeSend can also be used to check for special conditions for a request to be made. If the <code>beforeSend</code> callback returns false, the request will be cancelled.</p>\n        <div class=\"code\" data-type=\"javascript\" data-demo=\"true\">\n          // set somewhere in your code\n          window.isLoggedIn = false;\n\n          $('.follow.button')\n            .api({\n              action: 'follow user',\n              beforeSend: function(settings) {\n                // cancel request\n                if(!isLoggedIn) {\n                  $(this).state('flash text', 'Requires Login!');\n                  return false;\n                }\n              }\n            })\n          ;\n        </div>\n      </div>\n\n      <h2 class=\"ui dividing header\">Passing Data</h2>\n\n      <div class=\"example\">\n        <h4 class=\"ui header\">1. Routed Form Data</h4>\n        <p>When you use the <code>serializeForm</code> setting or attach API events on a form, API will automatically include the closest form in data sent to the server.</p>\n        <p>Structured form data is beneficial over <a href=\"https://api.jquery.com/serialize/\">jQuery's serialize</a> for several reasons:</p>\n        <ul class=\"ui large list\">\n          <li><a href=\"https://github.com/macek/jquery-serialize-object\" target=\"_blank\">Serialize Object</a> correctly converts structured form names like <code>name=\"name[first]\"</code> into nested object literals.</li>\n          <li>Structured form data can be modified in Javascript in <code>beforeSend</code>.</li>\n          <li>Form data will automatically be converted to their Javascript equivalents, for instance, checkboxes will be converted to <code>boolean</code> values.</li>\n        </ul>\n        <div class=\"ui ignored warning message\">\n          Structured form data requires including <a href=\"https://github.com/macek/jquery-serialize-object\" target=\"_blank\">macek's serialize object.</a>\n        </div>\n      </div>\n      <div class=\"example\">\n        <h4 class=\"ui header\">Structured Data Example</h4>\n        <p>The following form shows some of the advantages of structured form data mentioned above.</p>\n        <form class=\"ui form\">\n          <div class=\"two fields\">\n            <div class=\"field\">\n              <label>Name</label>\n              <div class=\"two fields\">\n                <div class=\"field\">\n                  <input type=\"text\" name=\"name[first]\" placeholder=\"First Name\">\n                </div>\n                <div class=\"field\">\n                  <input type=\"text\" name=\"name[last]\" placeholder=\"Last Name\">\n                </div>\n              </div>\n            </div>\n            <div class=\"field\">\n              <label>Gender</label>\n              <div class=\"ui selection dropdown\">\n                <input type=\"hidden\" name=\"gender\">\n                <div class=\"default text\">Gender</div>\n                <i class=\"dropdown icon\"></i>\n                <div class=\"menu\">\n                  <div class=\"item\" data-value=\"male\">Male</div>\n                  <div class=\"item\" data-value=\"female\">Female</div>\n                </div>\n              </div>\n            </div>\n          </div>\n          <div class=\"two fields\">\n            <div class=\"required field\">\n              <label>Username</label>\n              <div class=\"ui icon input\">\n                <input type=\"text\" name=\"username\" placeholder=\"Username\">\n                <i class=\"user icon\"></i>\n              </div>\n            </div>\n            <div class=\"required field\">\n              <label>Password</label>\n              <div class=\"ui icon input\">\n                <input type=\"password\" name=\"password\">\n                <i class=\"lock icon\"></i>\n              </div>\n            </div>\n          </div>\n          <div class=\"ui submit button\">Submit</div>\n        </form>\n        <div class=\"evaluated code\" data-type=\"javascript\">\n          $('form .submit.button')\n            .api({\n              action: 'create user',\n              serializeForm: true,\n              data: {\n                foo: 'baz'\n              },\n              beforeSend: function(settings) {\n                // form data is editable in before send\n                if(settings.data.username == '') {\n                  settings.data.username = 'New User';\n                }\n                // open console to inspect object\n                console.log(settings.data);\n                return settings;\n              }\n            })\n          ;\n        </div>\n      </div>\n\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">2. Data Routed in Javascript</h4>\n        <p>Server data can be specified directly when initializing an API requests.</p>\n        <div class=\"code\" data-type=\"javascript\">\n          $('.form .submit')\n            .api({\n              data: {\n                session: 22,\n                name: 'Baz'\n              }\n            })\n          ;\n        </div>\n      </div>\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">3. Data Added in beforeSend</h4>\n        <p>POST or GET data can be specified using a special callback <code>beforeSend</code>, which can be used to retrieve data before sending a request.</p>\n        <div class=\"code\" data-type=\"javascript\">\n          $('.form .submit')\n            .api({\n              action: 'create user',\n              serializeForm: true,\n              // arbitrary POST/GET same across all requests\n              data: {\n                session: 22\n              },\n              // modify data PER element in callback\n              beforeSend: function(settings) {\n                // cancel request if no id\n                if(!$(this).data('id')) {\n                  return false;\n                }\n                settings.data.userID = $(this).data('id');\n                return settings;\n              }\n            })\n          ;\n        </div>\n      </div>\n\n      <h2 class=\"ui dividing header\">Server Responses</h2>\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">Response Callbacks</h4>\n        <p>Successful responses from the server will trigger <code>onSuccess</code>, invalid results <code>onFailure</code>.<p>\n        <p><code>onError</code> will only trigger on <a href=\"https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest\">XHR</a> errors, but not on invalid JSON responses.</p>\n        <p>You can use the <code>onResponse</code> callback to adjust the JSON response before being parsed against a success test.\n        <div class=\"code\" data-type=\"javascript\">\n        $('.follow.button')\n          .api({\n            onResponse: function(response) {\n              // make some adjustments to response\n              return response;\n            },\n            successTest: function(response) {\n              // test whether a JSON response is valid\n              return response.success || false;\n            },\n            onComplete: function(response) {\n              // always called after XHR complete\n            },\n            onSuccess: function(response) {\n              // valid response and response.success = true\n            },\n            onFailure: function(response) {\n              // request failed, or valid response but response.success = false\n            },\n            onError: function(errorMessage) {\n              // invalid response\n            },\n            onAbort: function(errorMessage) {\n              // navigated to a new page, CORS issue, or user canceled request\n            }\n          })\n        ;\n        </div>\n      </div>\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">Determining JSON Success</h4>\n        <p>API has special success conditions for JSON responses. Instead of providing success and failure callbacks based on the HTTP response of the request, a request is considered successful only if the server's response tells you the action was successful. The response is passed to a validation test <code>successTest</code> which can be used to check the JSON for a valid response.</p>\n        <p>For example, you might expect all successful JSON responses to return a top level property signifying the success of the response:<p>\n        <div class=\"ui ignored info message\">\n          You can use the <code>onResponse</code> callback to modify a server's response by returning a new translated response value before it is parsed by a success test.\n        </div>\n        <div class=\"code\" data-type=\"json\" data-title=\"Example Server Response\">\n        {\n          \"success\": true,\n          \"message\": \"We've retrieved your data from the server\"\n          \"data\": {\n            // payload here\n          }\n        }\n        </div>\n        <p>You can specify a success test to check for this <code>success</code> value. This most likely will be set globally for all API requests.</p>\n        <div class=\"code\" data-type=\"javascript\">\n        $.fn.api.settings.successTest = function(response) {\n          if(response && response.success) {\n            return response.success;\n          }\n          return false;\n        };\n        </div>\n      </div>\n\n      <div class=\"no response example\">\n        <h4 class=\"ui header\">Modifying Response JSON</h4>\n        <p>Since version 2.0, API includes an <code>onResponse</code> callback which lets you adjust a server's response before a response is validated, allowing you to transform your response before other callbacks fire. This is useful for situations where an API response cannot be modified, but you need the response to conform with a required JSON structure.</p>\n        <div class=\"ui search\">\n          <div class=\"ui left icon input\">\n            <input class=\"prompt\" type=\"text\" placeholder=\"Search GitHub\">\n            <i class=\"github icon\"></i>\n          </div>\n        </div>\n        <div class=\"code\" data-type=\"javascript\">\n        $('.ui.search')\n          .search({\n            type          : 'category',\n            minCharacters : 3,\n            apiSettings   : {\n              url        : '//api.github.com/search/repositories?q={query}',\n              onResponse : function(githubResponse) {\n                var\n                  response = {\n                    results : {}\n                  }\n                ;\n                if(!githubResponse || !githubResponse.items) {\n                  return;\n                }\n                // translate GitHub API response to work with search\n                $.each(githubResponse.items, function(index, item) {\n                  var\n                    language   = item.language || 'Unknown',\n                    maxResults = 8\n                  ;\n                  if(index >= maxResults) {\n                    return false;\n                  }\n                  // create new language category\n                  if(response.results[language] === undefined) {\n                    response.results[language] = {\n                      name    : language,\n                      results : []\n                    };\n                  }\n                  // add result to category\n                  response.results[language].results.push({\n                    title       : item.name,\n                    description : item.description,\n                    url         : item.html_url\n                  });\n                });\n                return response;\n              }\n            }\n          })\n        ;\n        </div>\n      </div>\n\n      <h2 class=\"ui dividing header\">Controlling State</h2>\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">UI State</h4>\n\n        <p>API will automatically add class names for <code>loading</code> and <code>error</code>. This will let you trigger different UI states automatically as an API call progresses.</p>\n\n        <p>If you need a different element than the triggering API element to receive state class names, you can specify a different selector using <code>settings.stateContext</code>.</p>\n        <p>Using <code>stateContext</code> allows you to easily do things like trigger a loading state on a form when a submit button is pressed.</p>\n\n        <h5 class=\"ui header\">States Included in API Module</h5>\n        <table class=\"ui definition celled table\">\n          <thead>\n            <tr>\n              <th>State</th>\n              <th class=\"six wide\">Description</th>\n              <th>API event</th>\n            </tr>\n          </thead>\n          <tbody>\n            <tr>\n              <td>loading</td>\n              <td>Indicates a user needs to wait</td>\n              <td>XHR has initialized</td>\n            </tr>\n            <tr>\n              <td>error</td>\n              <td>Indicates an error has occurred</td>\n              <td>XHR Request returns error (does not trigger onAbort caused by page change, or if successTest fails). Stays visible for <code>settings.errorDuration</code></td>\n            </tr>\n            <tr>\n              <td>disabled</td>\n              <td>prevents API action</td>\n              <td>none</td>\n            </tr>\n          </tbody>\n        </table>\n      </div>\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">Text State</h4>\n        <p>Initializing an API action with the state module gives you more granular control over UI states, like setting an activated or de-activated state and the ability to adjust text values for each state:</p>\n\n     <!--    <p>\n          For additional examples of the possibilities available with state behaviors check the <a href=\"#\">state module documentation</a>\n        </p> -->\n\n        <div class=\"code\" data-demo=\"true\">\n        $('.follow.button')\n          .api({\n            action: 'follow user'\n          })\n          .state({\n            onActivate: function() {\n              $(this).state('flash text');\n            },\n            text: {\n              inactive   : 'Follow',\n              active     : 'Followed',\n              deactivate : 'Unfollow',\n              flash      : 'Added follower!'\n            }\n          })\n        ;\n        </div>\n        <h5 class=\"ui header\">States Included in State Module</h5>\n        <table class=\"ui definition celled table\">\n          <thead>\n            <tr>\n              <th>State</th>\n              <th>Description</th>\n              <th>Occurs on</th>\n            </tr>\n          </thead>\n          <tbody>\n            <tr>\n              <td>inactive</td>\n              <td>Default state</td>\n              <td></td>\n            </tr>\n            <tr>\n              <td>active</td>\n              <td>Selected state</td>\n              <td>Toggled on succesful API request</td>\n            </tr>\n            <tr>\n              <td>activate</td>\n              <td>Explains activating action</td>\n              <td>On hover if inactive</td>\n            </tr>\n            <tr>\n              <td>deactivate</td>\n              <td>Explains deactivating action</td>\n              <td>On hover if active</td>\n            </tr>\n            <tr>\n              <td>hover</td>\n              <td>Explains interaction</td>\n              <td>On hover in all states, overrides activate/deactivate</td>\n            </tr>\n            <tr>\n              <td>disabled</td>\n              <td>Indicates element cannot be interacted</td>\n              <td>Triggered programatically. Blocks API requests.</td>\n            </tr>\n            <tr>\n              <td>flash</td>\n              <td>Text-only state used to display a temporary message</td>\n              <td>Triggered programatically</td>\n            </tr>\n            <tr>\n              <td>success</td>\n              <td>Indicates user action was a success</td>\n              <td>Triggered programatically</td>\n            </tr>\n            <tr>\n              <td>warning</td>\n              <td>Indicates there was an issue with a user action</td>\n              <td>Triggered programatically</td>\n            </tr>\n          </tbody>\n        </table>\n      </div>\n\n      <h2 class=\"ui dividing header\">Advanced Use</h2>\n\n        <div class=\"no sync mocked example\">\n          <h4 class=\"ui header\">Fulfilling Responses</h4>\n          <p>Since version 2.0, API includes two new parameter <code>response</code> and <code>responseAsync</code> which allows you to specify a Javascript object or a function for returning an API response. (These were previously <code>mockResponse</code> and <code>mockResponseAsync</code>.)</p>\n          <div class=\"code\" data-type=\"javascript\" data-demo=\"true\">\n            $('.sync.mocked .button')\n              .api({\n                response: {\n                  success: true\n                }\n              })\n              .state({\n                text: {\n                  inactive   : 'Off',\n                  active     : 'On'\n                }\n              })\n            ;\n          </div>\n          <div class=\"ui toggle button\">\n            Off\n          </div>\n        </div>\n\n        <div class=\"no async mocked example\">\n          <h4 class=\"ui header\">Using Custom Backends</h4>\n          <p>Using <code>responseAsync</code> you can specify a function which can execute your API request. This allows for you to use custom backends or wrappers outside of <code>$.ajax</code> for integrating API requests.</p>\n          <div class=\"code\" data-type=\"javascript\" data-demo=\"true\">\n            $('.async.mocked .button')\n              .api({\n                responseAsync: function(settings, callback) {\n                  var response = {\n                    success: true\n                  };\n                  // do any asynchronous task here\n                  setTimeout(function() {\n                    callback(response);\n                  }, 500);\n                }\n              })\n              .state({\n                text: {\n                  inactive   : 'Off',\n                  active     : 'On'\n                }\n              })\n            ;\n          </div>\n          <div class=\"ui toggle button\">\n            Off\n          </div>\n        </div>\n      </div>\n\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"behaviors\">\n\n    <h2 class=\"ui dividing header\">Behavior</h2>\n\n    <p>All the following behaviors can be called using the syntax:</p>\n    <div class=\"code\">\n    $('.your.element')\n      .api('behavior name', argumentOne, argumentTwo)\n    ;\n    </div>\n\n    <table class=\"ui definition celled sortable table segment\">\n      <thead>\n        <th>Behavior</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>query</td>\n          <td>Execute query using existing API settings</td>\n        </tr>\n        <tr>\n          <td>add url data(url, data)</td>\n          <td>Adds data to existing templated url and returns full url string</td>\n        </tr>\n        <tr>\n          <td>get request</td>\n          <td>Gets promise for current API request</td>\n        </tr>\n        <tr>\n          <td>abort</td>\n          <td>Aborts current API request</td>\n        </tr>\n        <tr>\n          <td>reset</td>\n          <td>Removes loading and error state from element</td>\n        </tr>\n        <tr>\n          <td>was cancelled</td>\n          <td>Returns whether last request was cancelled</td>\n        </tr>\n        <tr>\n          <td>was failure</td>\n          <td>Returns whether last request was failure</td>\n        </tr>\n        <tr>\n          <td>was successful</td>\n          <td>Returns whether last request was successful</td>\n        </tr>\n        <tr>\n          <td>was complete</td>\n          <td>Returns whether last request was completed</td>\n        </tr>\n        <tr>\n          <td>is disabled</td>\n          <td>Returns whether element is disabled</td>\n        </tr>\n        <tr>\n          <td>is mocked</td>\n          <td>Returns whether element response is mocked</td>\n        </tr>\n        <tr>\n          <td>is loading</td>\n          <td>Returns whether element is loading</td>\n        </tr>\n        <tr>\n          <td>set loading</td>\n          <td>Sets loading state to element</td>\n        </tr>\n        <tr>\n          <td>set error</td>\n          <td>Sets error state to element</td>\n        </tr>\n        <tr>\n          <td>remove loading</td>\n          <td>Removes loading state to element</td>\n        </tr>\n        <tr>\n          <td>remove error</td>\n          <td>Removes error state to element</td>\n        </tr>\n        <tr>\n          <td>get event</td>\n          <td>Gets event that API request will occur on</td>\n        </tr>\n        <tr>\n          <td>get url encoded value(value)</td>\n          <td>Returns <code>encodeURIComponent</code> value only if value passsed is not already encoded\n        </tr>\n        <tr>\n          <td>read cached response(url)</td>\n          <td>Reads a locally cached response for a URL</td>\n        </tr>\n        <tr>\n          <td>write cached response(url, response)</td>\n          <td>Writes a cached response for a URL</td>\n        </tr>\n        <tr>\n          <td>create cache</td>\n          <td>Creates new cache, removing all locally cached URLs</td>\n        </tr>\n        <tr>\n          <td>destroy</td>\n          <td>Removes API settings from the page and all events</td>\n        </tr>\n      </tbody>\n    </table>\n\n\n  </div>\n\n\n  <div class=\"ui tab\" data-tab=\"settings\">\n    <h2 class=\"ui dividing header\">\n      API\n    </h2>\n\n    <h4 class=\"ui header\">\n      AJAX\n    </h4>\n    <div class=\"ui info message\">\n      You can pass in any standard <a href=\"http://api.jquery.com/jquery.ajax/\">jQuery AJAX setting</a> like <code>timeout</code> or <code>contentType</code> to API's settings and it will be automatically passed to the request's AJAX call.\n    </div>\n\n    <h4 class=\"ui header\">\n      API\n    </h4>\n    <table class=\"ui sortable celled definition table\">\n      <thead>\n        <th class=\"three wide\"></th>\n        <th class=\"three wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>on</td>\n          <td>auto</td>\n          <td>When API event should occur</td>\n        </tr>\n        <tr>\n          <td>cache</td>\n          <td>true</td>\n          <td>Can be set to 'local' to cache <b>successful</b> returned AJAX responses when using a JSON API. This helps avoid server roundtrips when API endpoints will return the same results when accessed repeatedly. Setting to <code>false</code>, will add cache busting parameters to the URL.</td>\n        </tr>\n        <tr>\n          <td>stateContext</td>\n          <td>this</td>\n          <td>UI state will be applied to this element, defaults to triggering element.</td>\n        </tr>\n        <tr>\n          <td>encodeParameters</td>\n          <td>true</td>\n          <td>Whether to encode parameters with <code>encodeURIComponent</code> before adding into url string</td>\n        </tr>\n        <tr>\n          <td>defaultData</td>\n          <td>true</td>\n          <td>Whether to automatically include default data like {value} and {text}</td>\n        </tr>\n        <tr>\n          <td>serializeForm</td>\n          <td>false</td>\n          <td>Whether to serialize closest form and include in request</td>\n        </tr>\n        <tr>\n          <td>throttle</td>\n          <td>\n            0\n          </td>\n          <td>How long to wait when a request is made before triggering request, useful for rate limiting <code>oninput</code></td>\n        </tr>\n        <tr>\n          <td>throttleFirstRequest</td>\n          <td>\n            true\n          </td>\n          <td>When set to false will not delay the first request made, when no others are queued</td>\n        </tr>\n        <tr>\n          <td>interruptRequests</td>\n          <td>\n            false\n          </td>\n          <td>Whether an API request can occur while another request is still pending</td>\n        </tr>\n        <tr>\n          <td>loadingDuration</td>\n          <td>0</td>\n          <td>Minimum duration to show loading indication</td>\n        </tr>\n        <tr>\n          <td>hideError</td>\n          <td>auto</td>\n          <td>The default <code>auto</code> will automatically remove error state after error duration, unless the element is a <code>form</code></td>\n        </tr>\n        <tr>\n          <td>errorDuration</td>\n          <td>2000</td>\n          <td>Setting to <code>true</code>, will not remove error. Setting to a duration in milliseconds to show error state after request error.</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <h4 class=\"ui header\">\n      Request Settings\n    </h4>\n    <table class=\"ui sortable celled definition table\">\n      <thead>\n        <th class=\"three wide\"></th>\n        <th class=\"three wide\">Default</th>\n        <th>Description</th>\n        <th>Possible Values</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>action</td>\n          <td>false</td>\n          <td>Named API action for query, originally specified in $.fn.settings.api</td>\n          <td>String or false</td>\n        </tr>\n        <tr>\n          <td>url</td>\n          <td>false</td>\n          <td>Templated URL for query, will override specified action</td>\n          <td>String or false</td>\n        </tr>\n        <tr>\n          <td>urlData</td>\n          <td>false</td>\n          <td>Variables to use for replacement</td>\n          <td></td>\n        </tr>\n        <tr>\n          <td>response</td>\n          <td>false</td>\n          <td>Can be set to a Javascript object which will be returned automatically instead of requesting JSON from server </td>\n          <td>{} or false</td>\n        </tr>\n        <tr>\n          <td>responseAsync(settings, callback)</td>\n          <td>false</td>\n          <td>When specified, this function can be used to retrieve content from a server and return it asynchronously <b>instead of</b> a standard AJAX call. The callback function should return the server response.</td>\n          <td>function or false</td>\n        </tr>\n        <tr>\n          <td>mockResponse</td>\n          <td>false</td>\n          <td>Alias of <code>response</code></td>\n          <td></td>\n        </tr>\n        <tr>\n          <td>mockResponseAsync</td>\n          <td>false</td>\n          <td>Alias of <code>responseAsync</code></td>\n          <td></td>\n        </tr>\n        <tr>\n          <td>method</td>\n          <td>get</td>\n          <td>Method for transmitting request to server</td>\n          <td>Any valid http method</td>\n        </tr>\n        <tr>\n          <td>dataType</td>\n          <td>JSON</td>\n          <td>Expected data type of response </td>\n          <td>xml, json, jsonp, script, html, text</td>\n        </tr>\n        <tr>\n          <td>data</td>\n          <td>{}</td>\n          <td>POST/GET Data to Send with Request</td>\n          <td></td>\n        </tr>\n      </tbody>\n    </table>\n\n    <h4 class=\"ui header\">\n      Callbacks\n    </h4>\n\n    <table class=\"ui sortable celled definition table\">\n      <thead>\n        <th class=\"three wide\"></th>\n        <th class=\"three wide\">Context</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>beforeSend(settings)</td>\n          <td>initialized element</td>\n          <td>Allows modifying settings before request, or cancelling request</td>\n        </tr>\n        <tr>\n          <td>beforeXHR(xhrObject)</td>\n          <td></td>\n          <td>Allows modifying XHR object for request</td>\n        </tr>\n        <tr>\n          <td>onRequest(promise, xhr)</td>\n          <td>state context</td>\n          <td>Callback that occurs when request is made. Receives both the API success promise and the XHR request promise.</td>\n        </tr>\n        <tr>\n          <td>onResponse(response)</td>\n          <td>state context</td>\n          <td>Allows modifying the server's response before parsed by other callbacks to determine API event success</td>\n        </tr>\n        <tr>\n          <td>successTest(response)</td>\n          <td></td>\n          <td>Determines whether completed JSON response should be <a href=\"#determining-json-success\">treated as successful</a>\n          </td>\n        </tr>\n        <tr>\n          <td>onSuccess(response, element, xhr)</td>\n          <td>state context</td>\n          <td>Callback after successful response, JSON response must pass <code>successTest</code></td>\n        </tr>\n        <tr>\n          <td>onComplete(response, element, xhr)</td>\n          <td>state context</td>\n          <td>Callback on request complete regardless of conditions</td>\n        </tr>\n        <tr>\n          <td>onFailure(response, element)</td>\n          <td>state context</td>\n          <td>Callback on failed response, or JSON response that fails <code>successTest</code></td>\n        </tr>\n        <tr>\n          <td>onError(errorMessage, element, xhr)</td>\n          <td>state context</td>\n          <td>Callback on server error from returned status code, or XHR failure.</td>\n        </tr>\n        <tr>\n          <td>onAbort(errorMessage, element, xhr)</td>\n          <td>state context</td>\n          <td>Callback on abort caused by user clicking a link or manually cancelling request.</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <h2 class=\"ui dividing header\">\n      Module\n    </h2>\n\n    <p>These settings are native to all modules, and define how the component ties content to DOM attributes, and debugging settings for the module.</p>\n\n    <table class=\"ui sortable celled definition table\">\n      <thead>\n        <th></th>\n        <th class=\"six wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>name</td>\n          <td>API</td>\n          <td>Name used in log statements</td>\n        </tr>\n        <tr>\n          <td>namespace</td>\n          <td>api</td>\n          <td>Event namespace. Makes sure module teardown does not effect other events attached to an element.</td>\n        </tr>\n        <tr>\n          <td>regExp</td>\n          <td>\n            <div class=\"code\" data-type=\"css\">\n            regExp  : {\n              required: /\\{\\$*[A-z0-9]+\\}/g,\n              optional: /\\{\\/\\$*[A-z0-9]+\\}/g,\n            }\n            </div>\n          </td>\n          <td>Regular expressions used for template matching</td>\n        </tr>\n        <tr>\n          <td>selector</td>\n          <td>\n            <div class=\"code\" data-type=\"css\">\n            selector: {\n              disabled : '.disabled',\n              form     : 'form'\n            }\n            </div>\n          </td>\n          <td>Selectors used to find parts of a module</td>\n        </tr>\n        <tr>\n          <td>className</td>\n          <td>\n            <div class=\"code\">\n            className: {\n              loading : 'loading',\n              error   : 'error'\n            }\n            </div>\n          </td>\n          <td>Class names used to determine element state</td>\n        </tr>\n        <tr>\n          <td>metadata</td>\n          <td>\n            <div class=\"code\">\n            metadata: {\n              action  : 'action',\n              url     : 'url'\n            }\n            </div>\n          </td>\n          <td>Metadata used to store XHR and response promise</td>\n        </tr>\n        <tr>\n          <td>silent</td>\n          <td>False</td>\n          <td>Silences all console output including error messages, regardless of other debug settings.</td>\n        </tr>\n        <tr>\n          <td>debug</td>\n          <td>false</td>\n          <td>Debug output to console</td>\n        </tr>\n        <tr>\n          <td>performance</td>\n          <td>true</td>\n          <td>Show <code>console.table</code> output with performance metrics</td>\n        </tr>\n        <tr>\n          <td>verbose</td>\n          <td>false</td>\n          <td>Debug output includes all internal behaviors</td>\n        </tr>\n        <tr>\n          <td>errors</td>\n          <td colspan=\"2\">\n            <div class=\"code\">\n            // errors\n            error : {\n              beforeSend        : 'The before send function has aborted the request',\n              error             : 'There was an error with your request',\n              exitConditions    : 'API Request Aborted. Exit conditions met',\n              JSONParse         : 'JSON could not be parsed during error handling',\n              legacyParameters  : 'You are using legacy API success callback names',\n              missingAction     : 'API action used but no url was defined',\n              missingSerialize  : 'Required dependency jquery-serialize-object missing, using basic serialize',\n              missingURL        : 'No URL specified for API event',\n              noReturnedValue   : 'The beforeSend callback must return a settings object, beforeSend ignored.',\n              parseError        : 'There was an error parsing your request',\n              requiredParameter : 'Missing a required URL parameter: ',\n              statusMessage     : 'Server gave an error: ',\n              timeout           : 'Your request timed out'\n            }\n            </div>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/behaviors/form.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'form'\nstandalone  : true\n\nelement     : 'validation'\nelementType : 'behavior'\n\ntitle       : 'Form Validation'\ndescription : 'A form validation behavior checks data against a set of criteria before passing it along to the server'\n\ntype        : 'UI Behavior'\n---\n\n\n<script src=\"/dist/components/form.js\"></script>\n<script src=\"/javascript/validate-form.js\"></script>\n\n<%- @partial('header', { tabs: { usage: 'Usage', examples: 'Examples', settings: 'Settings'} }) %>\n\n<div class=\"main ui container\">\n\n  <div class=\"ui active tab\" data-tab=\"usage\">\n\n    <h2 class=\"ui dividing header\">Usage</h2>\n\n    <div class=\"auto example\">\n      <h4 class=\"ui header\">Specifying Validation Rules</h4>\n      <p>Form validation requires passing in a validation object with the rules required to validate your form.</p>\n      <div class=\"ui ignored info message\">\n        A validation object includes a list of form elements, and rules to validate each field against. Fields are matched by either the <code>id</code>, <code>name</code>, or <code>data-validate</code> property (in that order) matching the identifier specified in the settings object. Validation objects must use either shorthand or longhand exclusively.\n      </div>\n      <div class=\"ignore code\" data-title=\"Shorthand Validation\">\n      $('.ui.form')\n        .form({\n          fields: {\n            name     : 'empty',\n            gender   : 'empty',\n            username : 'empty',\n            password : ['minLength[6]', 'empty'],\n            skills   : ['minCount[2]', 'empty'],\n            terms    : 'checked'\n          }\n        })\n      ;\n      </div>\n      <div class=\"ui horizontal divider\">or</div>\n      <div class=\"ignore code\" data-title=\"Full Validation Settings\">\n      $('.ui.form')\n        .form({\n          fields: {\n            name: {\n              identifier: 'name',\n              rules: [\n                {\n                  type   : 'empty',\n                  prompt : 'Please enter your name'\n                }\n              ]\n            },\n            skills: {\n              identifier: 'skills',\n              rules: [\n                {\n                  type   : 'minCount[2]',\n                  prompt : 'Please select at least two skills'\n                }\n              ]\n            },\n            gender: {\n              identifier: 'gender',\n              rules: [\n                {\n                  type   : 'empty',\n                  prompt : 'Please select a gender'\n                }\n              ]\n            },\n            username: {\n              identifier: 'username',\n              rules: [\n                {\n                  type   : 'empty',\n                  prompt : 'Please enter a username'\n                }\n              ]\n            },\n            password: {\n              identifier: 'password',\n              rules: [\n                {\n                  type   : 'empty',\n                  prompt : 'Please enter a password'\n                },\n                {\n                  type   : 'minLength[6]',\n                  prompt : 'Your password must be at least {ruleValue} characters'\n                }\n              ]\n            },\n            terms: {\n              identifier: 'terms',\n              rules: [\n                {\n                  type   : 'checked',\n                  prompt : 'You must agree to the terms and conditions'\n                }\n              ]\n            }\n          }\n        })\n      ;\n      </div>\n      <form class=\"ui form segment\">\n        <p>Tell Us About Yourself</p>\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>Name</label>\n            <input placeholder=\"First Name\" name=\"name\" type=\"text\">\n          </div>\n          <div class=\"field\">\n            <label>Gender</label>\n            <select class=\"ui dropdown\" name=\"gender\">\n              <option value=\"\">Gender</option>\n              <option value=\"male\">Male</option>\n              <option value=\"female\">Female</option>\n            </select>\n          </div>\n        </div>\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>Username</label>\n            <input placeholder=\"Username\" name=\"username\" type=\"text\">\n          </div>\n          <div class=\"field\">\n            <label>Password</label>\n            <input type=\"password\" name=\"password\">\n          </div>\n        </div>\n        <div class=\"field\">\n          <label>Skills</label>\n          <select name=\"skills\" multiple class=\"ui dropdown\">\n            <option value=\"\">Select Skills</option>\n            <option value=\"css\">CSS</option>\n            <option value=\"html\">HTML</option>\n            <option value=\"javascript\">Javascript</option>\n            <option value=\"design\">Graphic Design</option>\n            <option value=\"plumbing\">Plumbing</option>\n            <option value=\"mech\">Mechanical Engineering</option>\n            <option value=\"repair\">Kitchen Repair</option>\n          </select>\n        </div>\n        <div class=\"inline field\">\n          <div class=\"ui checkbox\">\n            <input type=\"checkbox\" name=\"terms\" />\n            <label>I agree to the terms and conditions</label>\n          </div>\n        </div>\n        <div class=\"ui primary submit button\">Submit</div>\n        <div class=\"ui error message\"></div>\n      </div>\n    </form>\n    <div class=\"color example\">\n      <h4 class=\"ui header\">Passing Parameters to Rules <div class=\"ui horizontal teal label\">New in 2.2.3</div></h4>\n      <p>Typically rules that include a parameter are written <code>minLength[2]</code> with the value being passed in as brackets.</p>\n      <p>If passing in properties as a string is not ideal, or if you are pulling values from another javascript variable, it might make sense to consider using <code>value</code> to pass in the rule value.</p>\n      <div class=\"ignored code\">\n        $('.ui.form').form({\n          fields: {\n            color: {\n              identifier: 'color',\n              rules: [{\n                type: 'regExp',\n                value: /rgb\\((\\d{1,3}), (\\d{1,3}), (\\d{1,3})\\)/i,\n              }]\n            }\n          }\n        });\n      </div>\n      <form class=\"ui form segment\">\n        <div class=\"field\">\n          <label>Color</label>\n          <input placeholder=\"Enter rgb\" name=\"color\" type=\"text\" value=\"rgb(255, 255, 255)\">\n        </div>\n        <div class=\"ui primary submit button\">Submit</div>\n      </form>\n    </div>\n\n    <div class=\"prompt example\">\n      <h4 class=\"ui header\">Customizing Prompts</h4>\n      <p>Form validation includes default error prompts for most cases, however these can be quite generic. To specify custom personalized values for a validation prompt use the <code>prompt</code> property with a rule.</p>\n      <div class=\"ui ignored info message\">Starting in <div class=\"ui teal label\">2.3.1</div> you can specify prompts as a function. This may be useful when returning validation for fields that require dynamic validation messages.</div>\n      <div class=\"ui ignored info message\">You can set default messages for each validation rule type by modifying <code>$fn.form.settings.prompt</code></div>\n      <p>Prompt also supports custom templating with the following values replaced</p>\n      <table class=\"ui celled sortable basic table segment\">\n        <tbody>\n          <tr>\n            <td class=\"four wide\"><b>{name}</b></td>\n            <td>The current text of a field's label, or if no label available its placeholder text</td>\n          </tr>\n          <tr>\n            <td class=\"four wide\"><b>{identifier}</b></td>\n            <td>The identifier used to match the field</td>\n          </tr>\n          <tr>\n            <td class=\"four wide\"><b>{value}</b></td>\n            <td>The current field value</td>\n          </tr>\n          <tr>\n            <td class=\"four wide\"><b>{ruleValue}</b></td>\n            <td>The value passed to a rule, for example <code>minLength[100]</code> would set this value to 100</td>\n          </tr>\n        </tbody>\n      </table>\n      <div class=\"ignored code\">\n      $('.ui.form')\n        .form({\n          fields: {\n            field1: {\n              rules: [\n                {\n                  type   : 'empty'\n                }\n              ]\n            },\n            field2: {\n              rules: [\n                {\n                  type   : 'exactly[dog]',\n                  prompt : '{name} is set to \"{value}\" that is totally wrong. It should be {ruleValue}'\n                }\n              ]\n            },\n            field3: {\n              rules: [\n                {\n                  type   : 'exactly[cat]',\n                  prompt : function(value) {\n                    if(value == 'dog') {\n                      return 'I told you to put cat, not dog!';\n                    }\n                    return 'That is not cat';\n                  }\n                }\n              ]\n            },\n          }\n        })\n      ;\n      </div>\n      <form class=\"ui form segment\">\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>Field 1</label>\n            <input type=\"text\" name=\"field1\">\n          </div>\n          <div class=\"field\">\n            <label>Field 2</label>\n            <input type=\"text\" name=\"field2\">\n          </div>\n          <div class=\"field\">\n            <label>Field 3</label>\n            <input type=\"text\" name=\"field3\">\n          </div>\n        </div>\n        <div class=\"ui primary submit button\">Submit</div>\n        <div class=\"ui error message\">\n        </div>\n      </form>\n    </div>\n\n    <div class=\"matching example\">\n      <h4 class=\"ui header\">Matching Fields</h4>\n      <p>By default the property name used in the validation object will match against the <code>id</code>, <code>name</code>, or <code>data-validate</code> property of each input to find the corresponding field to match validation rules against.</p>\n      <p>If you need to specify a different identifier you can use the <code>identifier</code> property on each validation rule</p>\n      <div class=\"ignored code\">\n      $('.ui.form')\n        .form({\n          fields: {\n            name: {\n              identifier : 'special-name',\n              rules: [\n                {\n                  type   : 'empty'\n                }\n              ]\n            }\n          }\n        })\n      ;\n      </div>\n      <form class=\"ui form segment\">\n        <div class=\"field\">\n          <label>Special Field</label>\n          <input type=\"text\" name=\"special-name\">\n        </div>\n        <div class=\"ui primary submit button\">Submit</div>\n        <div class=\"ui error message\">\n        </div>\n      </form>\n    </div>\n\n    <div class=\"prompt example\">\n      <h4 class=\"ui header\">\n        Validating Programmatically\n        <div class=\"ui teal label\">Updated in 2.2.8</div>\n      </h4>\n      <p>Form validation provides additional behaviors to programmatically trigger validation for either the form or an individual field, and check validation on the form or individual fields.</p>\n      <p>Please see the <a href=\"#behaviors\">behaviors section</a> for an explanation on syntax.</p>\n      <table class=\"ui celled sortable basic table segment\">\n        <tbody>\n          <tr>\n            <td class=\"four wide\"><b>validate form</b></td>\n            <td>Validates entire form and displays errors if necessary</td>\n          </tr>\n          <tr>\n            <td class=\"four wide\"><b>is valid</b></td>\n            <td>Returns whether a form is valid</td>\n          </tr>\n          <tr>\n            <td class=\"four wide\"><b>is valid(fieldName)</b></td>\n            <td>Returns whether a field in a form is valid (does not update UI)</td>\n          </tr>\n          <tr>\n            <td class=\"four wide\"><b>validate field(fieldName)</b></td>\n            <td>Validates a particular field and displays errors if necessary</td>\n          </tr>\n        </tbody>\n      </table>\n      <div class=\"ignored code\">\n      $('.ui.form')\n        .form({\n          fields: {\n           email: 'empty',\n           name: 'empty'\n          }\n        })\n      ;\n      if( $('.ui.form').form('is valid', 'email')) {\n        // email is valid\n      }\n      if( $('.ui.form').form('is valid')) {\n        // form is valid (both email and name)\n      }\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Rules</h2>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">\n        Validation Rules\n      </h4>\n        <p>Validation rules are a set of conditions required to validate a field</p>\n      <div class=\"ui info message\">Validation rules are found in <code>$.fn.form.settings.rules</code>, to add new global validation rules, modify <code>$.fn.form.settings.rules</code> to include your function.</div>\n      <div class=\"in red message\">To pass parameters to a rule, use bracket notation in your settings object. For example <code>type: 'not[dog]'</code></div>\n\n      <h3 class=\"ui header\"><a href=\"#empty\">Empty</a></h3>\n      <table class=\"ui celled sortable basic table segment\">\n        <tbody>\n          <tr>\n            <td class=\"four wide\">empty</td>\n            <td class=\"twelve wide\">A field is empty</td>\n          </tr>\n          <tr>\n            <td>checked</td>\n            <td>A checkbox field is checked</td>\n          </tr>\n        </tbody>\n      </table>\n\n      <h3 class=\"ui header\"><a href=\"#content-type\">Content Type</h3>\n      <table class=\"ui celled sortable basic table segment\">\n        <tbody>\n          <tr>\n            <td class=\"four wide\">email</td>\n            <td>A field is a valid email address</td>\n            <td class=\"six wide\"></td>\n          </tr>\n          <tr>\n            <td>url</td>\n            <td>A field is a url</td>\n            <td></td>\n          </tr>\n          <tr>\n            <td>integer</td>\n            <td>A field is an integer value, or matches an integer range</td>\n            <td><code>integer</code> or <code>integer[1..10]</code></td>\n          </tr>\n          <tr>\n            <td>decimal</td>\n            <td>A field must be a decimal number</td>\n            <td></td>\n          </tr>\n          <tr>\n            <td>number</td>\n            <td>A field is any number decimal or non-decimal</td>\n            <td></td>\n          </tr>\n          <tr>\n            <td>regExp[expression]</td>\n            <td>Matches against a regular expression, when using bracketed notation RegExp values must be escaped.</td>\n            <td>\n              <code>regExp[/^[a-z0-9_-]{3,16}$/gi]]</code>\n              <div class=\"ui horizontal divider\">Or</div>\n              <code>regExp[/^[a-z0-9_-]{3,16}$/]]</code>\n            </td>\n          </tr>\n        </tbody>\n      </table>\n\n      <h3 class=\"ui header\"><a href=\"#payment\">Payment</a></h3>\n      <table class=\"ui celled sortable basic table segment\">\n        <tbody>\n          <tr>\n            <td class=\"four wide\">creditCard</td>\n            <td class=\"six wide\">A field is a valid credit card</td>\n            <td><code>creditCard</code></td>\n          </tr>\n          <tr>\n            <td>creditCard[types]</td>\n            <td>A field matches a specified array of card types</td>\n            <td><code>creditCard[visa,mastercard,unionpay]</code></td>\n          </tr>\n        </tbody>\n      </table>\n\n      <h3 class=\"ui header\"><a href=\"#specified-content\">Specified Content</a></h3>\n      <table class=\"ui celled sortable basic table segment\">\n        <tbody>\n          <tr>\n            <td class=\"four wide\">contains</td>\n            <td>A field contains text (case insensitive)</td>\n            <td class=\"six wide\"><code>contains[foo]</code></td>\n          </tr>\n          <tr>\n            <td>containsExactly</td>\n            <td>A field contains text (case sensitive)</td>\n            <td><code>containsExactly[foo]</code></td>\n          </tr>\n          <tr>\n            <td>doesntContain</td>\n            <td>A field doesn't contain text (case insensitive)</td>\n            <td><code>doesntContain[foo]</code></td>\n          </tr>\n          <tr>\n            <td>doesntContainExactly</td>\n            <td>A field doesn't contain text (case sensitive)</td>\n            <td><code>doesntContainExactly[foo]</code></td>\n          </tr>\n          <tr>\n            <td>is</td>\n            <td>A field is a value (case insensitive)</td>\n            <td><code>is[foo]</code></td>\n          </tr>\n          <tr>\n            <td>isExactly</td>\n            <td>A field is a value (case-sensitive)</td>\n            <td><code>isExactly[foo]</code></td>\n          </tr>\n          <tr>\n            <td>not</td>\n            <td>A field is not a value (case insensitive)</td>\n            <td><code>not[foo]</code></td>\n          </tr>\n          <tr>\n            <td>notExactly</td>\n            <td>A field is not a value (case sensitive)</td>\n            <td><code>notExactly[foo]</code></td>\n          </tr>\n        </tbody>\n      </table>\n\n      <h3 class=\"ui header\"><a href=\"#length\">Length</a></h3>\n      <table class=\"ui celled sortable basic table segment\">\n        <tbody>\n          <tr>\n            <td class=\"four wide\">minLength</td>\n            <td>A field is less than a min length</td>\n            <td class=\"six wide\"><code>minLength[5]</code></td>\n          </tr>\n          <tr>\n            <td>exactLength</td>\n            <td>A field is exactly length</td>\n            <td><code>exactLength[16]</code></td>\n          </tr>\n          <tr>\n            <td>maxLength</td>\n            <td>A field is less than a max length</td>\n            <td><code>maxLength[50]</code></td>\n          </tr>\n        </tbody>\n      </table>\n\n      <h3 class=\"ui header\"><a href=\"#matching-fields\">Matching Fields</a></h3>\n      <table class=\"ui celled sortable basic table segment\">\n        <tbody>\n          <tr>\n            <td class=\"four wide\">match</td>\n            <td class=\"six wide\">A field should match the value of another validation field, for example to confirm passwords</td>\n            <td><code>match[password]</code></td>\n          </tr>\n          <tr>\n            <td>different</td>\n            <td>A field should be different than another specified field</td>\n            <td><code>different[choice]</code></td>\n          </tr>\n        </tbody>\n      </table>\n\n      <h3 class=\"ui header\"><a href=\"#selection-count\">Selection Count</a></h3>\n      <table class=\"ui celled sortable basic table segment\">\n        <tbody>\n          <tr>\n            <td class=\"four wide\">minCount</td>\n            <td>A multiple select field contains at minimum (count) selections</td>\n            <td class=\"six wide\"><code>minCount[count]</code></td>\n          </tr>\n          <tr>\n            <td>exactCount</td>\n            <td>A multiple select field contains exactly (count) selections</td>\n            <td><code>exactCount[count]</code></td>\n          </tr>\n          <tr>\n            <td>maxCount</td>\n            <td>A multiple select field contains at maximum (count) selections</td>\n            <td><code>maxCount[count]</code></td>\n          </tr>\n        </tbody>\n      </table>\n    </div>\n\n    <div class=\"custom rule example\">\n      <h4 class=\"ui header\">Adding Custom Rules</h4>\n      <p>You can extend form validation to include your own rules. Keep in mind these will need to be executed synchronously.</p>\n      <div class=\"ignore code\">\n      // some arbitrary business-logic\n      window.user = {\n        name       : 'Simon',\n        adminLevel : 1\n      };\n      // custom form validation rule\n      $.fn.form.settings.rules.adminLevel = function(value, adminLevel) {\n        return (window.user.adminLevel >= adminLevel)\n      };\n      $('.ui.form')\n        .form({\n          fields: {\n            dog: {\n              identifier: 'dog',\n              rules: [\n                {\n                  type: 'adminLevel[2]',\n                  prompt: 'You must be at least a level-2 admin to add a dog'\n                }\n              ]\n            }\n          }\n        })\n      ;\n      </div>\n      <form class=\"ui form segment\">\n        <p>Let's go ahead and get you signed up.</p>\n        <div class=\"field\">\n          <label>Dog</label>\n          <input placeholder=\"Dog\" name=\"dog\" type=\"text\">\n        </div>\n        <div class=\"ui primary submit button\">\n          <i class=\"add icon\"></i>\n          Add Dog\n        </div>\n        <div class=\"ui error message\"></div>\n      </form>\n    </div>\n\n    <div class=\"inline example\">\n      <h4 class=\"ui header\">Built-in Events</h4>\n      <p>\n        Form will automatically attach events to specially labeled form fields\n      </p>\n      <ul class=\"ui list\">\n        <li>Fields will blur on <code>escape</code> key press</li>\n        <li>Fields will submit form on <code>enter</code></li>\n        <li>Submit events will be attached to <code>click</code> on any element inside the form with class  <code>submit</code></li>\n        <li>Reset events will be attached to <code>click</code> on any element inside the form with class <code>reset</code></li>\n        <li>Clear events will be attached to <code>click</code> on any element inside the form with class <code>clear</code></li>\n      </ul>\n      <form class=\"ui form segment\">\n        <div class=\"field\">\n          <label>Test Field</label>\n          <input placeholder=\"Test Field\" name=\"name\" type=\"text\">\n        </div>\n        <div class=\"ui primary submit button\">Submit</div>\n        <div class=\"ui reset button\">Reset</div>\n        <div class=\"ui clear button\">Clear</div>\n      </form>\n    </div>\n\n    <h2 class=\"ui dividing header\">Manipulating Forms</h2>\n\n    <div class=\"inline example\">\n      <h4 class=\"ui header\">Reset / Clear Fields</h4>\n      <p>\n        Calling <code>$('form').form('reset')</code>, or clicking any reset element will return all form values to their <em>default value</em>. This is the value the form fields were set to when the page loaded.\n      </p>\n      <p>Calling <code>$('form').form('clear')</code> will remove all values from form fields and reset dropdowns to placeholder text</p>\n      <div class=\"ui ignored warning message\">\n        Form <code>reset</code> works by caching default values on page load. For this to work correctly any form that uses reset will need to initialize on page load.\n      </div>\n      <div class=\"ui ignored info message\">\n        Reset and clear will modify all form fields, not just those which have validation rules\n      </div>\n      <form class=\"ui form segment\">\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>Name</label>\n            <input placeholder=\"First Name\" name=\"name\" type=\"text\">\n          </div>\n          <div class=\"field\">\n            <label>Gender</label>\n            <div class=\"ui selection dropdown\">\n              <input name=\"gender\" type=\"hidden\">\n              <div class=\"default text\">Gender</div>\n              <i class=\"dropdown icon\"></i>\n              <div class=\"menu\">\n                <div class=\"item\" data-value=\"male\">Male</div>\n                <div class=\"item\" data-value=\"female\">Female</div>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"field\">\n          <label>Username</label>\n          <input placeholder=\"Username\" name=\"username\" type=\"text\">\n        </div>\n        <div class=\"field\">\n          <label>Password</label>\n          <input name=\"password\" type=\"password\">\n        </div>\n        <div class=\"inline field\">\n          <div class=\"ui checkbox\">\n            <input name=\"terms\" type=\"checkbox\">\n            <label>I agree to the terms and conditions</label>\n          </div>\n        </div>\n        <div class=\"ui primary submit button\">Submit</div>\n        <div class=\"ui reset button\">Reset</div>\n        <div class=\"ui clear button\">Clear</div>\n      </form>\n    </div>\n\n    <div class=\"writing no example\">\n      <h4 class=\"ui header\">Writing Values</h4>\n      <p>\n        Form includes behaviors for reading from and writing to form fields.\n      </p>\n      <div class=\"code\" data-demo=\"true\">\n      $('.writing.example form')\n        // set one value\n        .form('set value', 'name', 'Jack')\n\n        // set several values\n        .form('set values', {\n          name     : 'Jack',\n          gender   : 'male',\n          colors   : ['red', 'grey'],\n          username : 'jlukic',\n          password : 'youdliketoknow',\n          terms    : true\n        })\n      ;\n      </div>\n      <form class=\"ui form segment\">\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>Name</label>\n            <input placeholder=\"First Name\" name=\"name\" type=\"text\">\n          </div>\n          <div class=\"field\">\n            <label>Gender</label>\n            <div class=\"ui selection dropdown\">\n              <input name=\"gender\" type=\"hidden\">\n              <div class=\"default text\">Gender</div>\n              <i class=\"dropdown icon\"></i>\n              <div class=\"menu\">\n                <div class=\"item\" data-value=\"male\">Male</div>\n                <div class=\"item\" data-value=\"female\">Female</div>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"field\">\n          <label>Username</label>\n          <input placeholder=\"Username\" name=\"username\" type=\"text\">\n        </div>\n        <div class=\"field\">\n          <label>Password</label>\n          <input name=\"password\" type=\"password\">\n        </div>\n        <div class=\"inline fields\">\n          <label for=\"colors\">Favorite Colors</label>\n          <div class=\"field\">\n            <div class=\"ui checkbox\">\n              <input type=\"checkbox\" name=\"colors[]\" value=\"red\" />\n              <label>Red</label>\n            </div>\n          </div>\n          <div class=\"field\">\n            <div class=\"ui checkbox\">\n              <input type=\"checkbox\" name=\"colors[]\" value=\"blue\" />\n              <label>Blue</label>\n            </div>\n          </div>\n          <div class=\"field\">\n            <div class=\"ui checkbox\">\n              <input type=\"checkbox\" name=\"colors[]\" value=\"green\" />\n              <label>Green</label>\n            </div>\n          </div>\n          <div class=\"field\">\n            <div class=\"ui checkbox\">\n              <input type=\"checkbox\" name=\"colors[]\" value=\"grey\" />\n              <label>Grey</label>\n            </div>\n          </div>\n        </div>\n        <div class=\"inline field\">\n          <div class=\"ui checkbox\">\n            <input name=\"terms\" type=\"checkbox\">\n            <label>I agree to the terms and conditions</label>\n          </div>\n        </div>\n        <div class=\"ui primary submit button\">Submit</div>\n        <div class=\"ui clear button\">Clear</div>\n      </form>\n    </div>\n\n    <div class=\"get no example\">\n      <h4 class=\"ui header\">Getting Values</h4>\n      <p>\n        You can also read values from form fields using <code>get value</code> and <code>get values</code>\n      </p>\n      <div class=\"ui ignored info message\">\n        Although <code>get values</code> allows you to use any matching identifier, returned values will always use the corresponding <code>name</code> attribute of the element.\n      </div>\n      <div class=\"code\" data-demo=\"true\">\n      var\n        $form = $('.get.example form'),\n        // get one value\n        colors = $form.form('get value', 'colors'),\n        // get list of values\n        fields = $form.form('get values', ['name', 'colors']),\n        // get all values\n        allFields = $form.form('get values')\n      ;\n      console.log(colors);\n      console.log(fields);\n      console.log(allFields);\n      </div>\n      <form class=\"ui form segment\">\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>Name</label>\n            <input placeholder=\"First Name\" name=\"name\" type=\"text\">\n          </div>\n          <div class=\"field\">\n            <label>Gender</label>\n            <div class=\"ui selection dropdown\">\n              <input name=\"gender\" type=\"hidden\">\n              <div class=\"default text\">Gender</div>\n              <i class=\"dropdown icon\"></i>\n              <div class=\"menu\">\n                <div class=\"item\" data-value=\"male\">Male</div>\n                <div class=\"item\" data-value=\"female\">Female</div>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"field\">\n          <label>Username</label>\n          <input placeholder=\"Username\" name=\"username\" type=\"text\">\n        </div>\n        <div class=\"field\">\n          <label>Password</label>\n          <input name=\"password\" type=\"password\">\n        </div>\n        <div class=\"inline fields\">\n          <label for=\"colors\">Favorite Colors</label>\n          <div class=\"field\">\n            <div class=\"ui checkbox\">\n              <input type=\"checkbox\" name=\"colors[]\" value=\"red\" />\n              <label>Red</label>\n            </div>\n          </div>\n          <div class=\"field\">\n            <div class=\"ui checkbox\">\n              <input type=\"checkbox\" name=\"colors[]\" value=\"blue\" />\n              <label>Blue</label>\n            </div>\n          </div>\n          <div class=\"field\">\n            <div class=\"ui checkbox\">\n              <input type=\"checkbox\" name=\"colors[]\" value=\"green\" />\n              <label>Green</label>\n            </div>\n          </div>\n          <div class=\"field\">\n            <div class=\"ui checkbox\">\n              <input type=\"checkbox\" name=\"colors[]\" value=\"grey\" />\n              <label>Grey</label>\n            </div>\n          </div>\n        </div>\n        <div class=\"inline field\">\n          <div class=\"ui checkbox\">\n            <input name=\"terms\" type=\"checkbox\">\n            <label>I agree to the terms and conditions</label>\n          </div>\n        </div>\n        <div class=\"ui primary submit button\">Submit</div>\n      </form>\n    </div>\n\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"examples\">\n\n    <h2 class=\"ui dividing header\">Rule Examples</h2>\n\n    <div class=\"field example\">\n      <h4 class=\"ui header\">Empty</h4>\n      <p>The following shows examples of validating different types of empty or unchecked content.</p>\n      <form class=\"ui form\">\n        <div class=\"field\">\n          <label>Empty</label>\n          <input name=\"empty\" type=\"text\">\n        </div>\n        <div class=\"field\">\n          <label>Dropdown</label>\n          <select class=\"ui dropdown\" name=\"dropdown\">\n            <option value=\"\">Select</option>\n            <option value=\"male\">Choice 1</option>\n            <option value=\"female\">Choice 2</option>\n          </select>\n        </div>\n        <div class=\"inline field\">\n          <div class=\"ui checkbox\">\n            <input type=\"checkbox\" name=\"checkbox\" />\n            <label>Checkbox</label>\n          </div>\n        </div>\n        <div class=\"ui submit button\">Submit</div>\n        <div class=\"ui error message\"></div>\n      </form>\n      <div class=\"evaluated code\">\n        $('.field.example form')\n          .form({\n            on: 'blur',\n            fields: {\n              empty: {\n                identifier  : 'empty',\n                rules: [\n                  {\n                    type   : 'empty',\n                    prompt : 'Please enter a value'\n                  }\n                ]\n              },\n              dropdown: {\n                identifier  : 'dropdown',\n                rules: [\n                  {\n                    type   : 'empty',\n                    prompt : 'Please select a dropdown value'\n                  }\n                ]\n              },\n              checkbox: {\n                identifier  : 'checkbox',\n                rules: [\n                  {\n                    type   : 'checked',\n                    prompt : 'Please check the checkbox'\n                  }\n                ]\n              }\n            }\n          })\n        ;\n      </div>\n    </div>\n\n    <div class=\"type example\">\n      <h4 class=\"ui header\">Content Type</h4>\n      <p>Inputs can match against common content types, or your own custom <a href=\"http://www.regular-expressions.info/\" target=\"_blank\">regular expressions</a>.</p>\n      <form class=\"ui form\">\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>Integer</label>\n            <input name=\"integer\" type=\"text\" value=\"101\">\n          </div>\n          <div class=\"field\">\n            <label>E-mail</label>\n            <input name=\"email\" type=\"text\" value=\"jack\">\n          </div>\n        </div>\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>Decimal</label>\n            <input name=\"decimal\" type=\"text\" value=\"1.1.1\">\n          </div>\n          <div class=\"field\">\n            <label>Number</label>\n            <input name=\"number\" type=\"text\" value=\"+200\">\n          </div>\n        </div>\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>URL</label>\n            <input name=\"url\" type=\"text\" value=\"ww.fakeurl.com\">\n          </div>\n          <div class=\"field\">\n            <label>RegEx</label>\n            <input name=\"regex\" type=\"text\" value=\"joe\">\n          </div>\n        </div>\n        <div class=\"ui submit button\">Submit</div>\n        <div class=\"ui error message\"></div>\n      </form>\n      <div class=\"evaluated code\">\n        $('.type.example form')\n          .form({\n            on: 'blur',\n            fields: {\n              integer: {\n                identifier  : 'integer',\n                rules: [\n                  {\n                    type   : 'integer[1..100]',\n                    prompt : 'Please enter an integer value'\n                  }\n                ]\n              },\n              decimal: {\n                identifier  : 'decimal',\n                rules: [\n                  {\n                    type   : 'decimal',\n                    prompt : 'Please enter a valid decimal'\n                  }\n                ]\n              },\n              number: {\n                identifier  : 'number',\n                rules: [\n                  {\n                    type   : 'number',\n                    prompt : 'Please enter a valid number'\n                  }\n                ]\n              },\n              email: {\n                identifier  : 'email',\n                rules: [\n                  {\n                    type   : 'email',\n                    prompt : 'Please enter a valid e-mail'\n                  }\n                ]\n              },\n              url: {\n                identifier  : 'url',\n                rules: [\n                  {\n                    type   : 'url',\n                    prompt : 'Please enter a url'\n                  }\n                ]\n              },\n              regex: {\n                identifier  : 'regex',\n                rules: [\n                  {\n                    type   : 'regExp[/^[a-z0-9_-]{4,16}$/]',\n                    prompt : 'Please enter a 4-16 letter username'\n                  }\n                ]\n              }\n            }\n          })\n        ;\n      </div>\n    </div>\n    <div class=\"payment example\">\n      <h4 class=\"ui header\">Payment</h4>\n      <p>Inputs can validate credit cards and other payment types.</p>\n\n      <table class=\"ui very basic collapsing celled table\">\n        <tbody>\n          <tr>\n            <td class=\"four wide\">Card Name</td>\n            <td class=\"six wide\">Validation Name</td>\n            <td class=\"six wide\">Test Card Number</td>\n          </tr>\n          <tr>\n            <td>Visa</td>\n            <td><code>visa</code></td>\n            <td>4565340519181845</td>\n          </tr>\n          <tr>\n            <td>American Express</td>\n            <td><code>amex</code></td>\n            <td>378282246310005</td>\n          </tr>\n          <tr>\n            <td>Mastercard</td>\n            <td><code>mastercard</code></td>\n            <td>5200828282828210</td>\n          </tr>\n          <tr>\n            <td>Discover</td>\n            <td><code>discover</code></td>\n            <td>6011111111111117</td>\n          </tr>\n          <tr>\n            <td>Unionpay</td>\n            <td><code>unionpay</code></td>\n            <td>6240008631401148</td>\n          </tr>\n          <tr>\n            <td>JCB</td>\n            <td><code>jcb</code></td>\n            <td>3530111333300000</td>\n          </tr>\n          <tr>\n            <td>Diner's Club</td>\n            <td><code>dinersClub</code></td>\n            <td>38520000023237</td>\n          </tr>\n          <tr>\n            <td>Maestro</td>\n            <td><code>maestro</code></td>\n            <td>6799990100000000019</td>\n          </tr>\n          <tr>\n            <td>Laser</td>\n            <td><code>laser</code></td>\n            <td>630490017740292441</td>\n          </tr>\n          <tr>\n            <td>Visa Electron</td>\n            <td><code>visaElectron</code></td>\n            <td>4917300800000000</td>\n          </tr>\n        </tbody>\n      </table>\n      <form class=\"ui form segment\">\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>Credit Card</label>\n            <input name=\"card\" type=\"text\" value=\"4444444444444444\">\n          </div>\n          <div class=\"field\">\n            <label>Certain Type</label>\n            <input name=\"exact-card\" type=\"text\" value=\"4444444444444444\">\n          </div>\n        </div>\n        <div class=\"ui submit button\">Submit</div>\n        <div class=\"ui error message\"></div>\n      </form>\n      <div class=\"evaluated code\">\n        $('.payment.example form')\n          .form({\n            on: 'blur',\n            fields: {\n              card: {\n                identifier  : 'card',\n                rules: [\n                  {\n                    type   : 'creditCard',\n                    prompt : 'Please enter a valid credit card'\n                  }\n                ]\n              },\n              exactCard: {\n                identifier  : 'exact-card',\n                rules: [\n                  {\n                    type   : 'creditCard[visa,amex]',\n                    prompt : 'Please enter a visa or amex card'\n                  }\n                ]\n              }\n            }\n          })\n        ;\n      </div>\n    </div>\n    <div class=\"match example\">\n      <h4 class=\"ui header\">Matching Fields</h4>\n      <p>Fields can be required to match, or not match other fields. You may consider using this with <a href=\"#optional-fields\">optional fields</a>.</p>\n      <form class=\"ui form\">\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>Match 1</label>\n            <input name=\"match1\" type=\"text\" value=\"same\">\n          </div>\n          <div class=\"field\">\n            <label>Match 2</label>\n            <input name=\"match2\" type=\"text\" value=\"different\">\n          </div>\n        </div>\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>Different 1</label>\n            <input name=\"different1\" type=\"text\" value=\"same\">\n          </div>\n          <div class=\"field\">\n            <label>Different 2</label>\n            <input name=\"different2\" type=\"text\" value=\"same\">\n          </div>\n        </div>\n        <div class=\"ui submit button\">Submit</div>\n        <div class=\"ui error message\"></div>\n      </form>\n      <div class=\"evaluated code\">\n        $('.match.example form')\n          .form({\n            on: 'blur',\n            fields: {\n              match: {\n                identifier  : 'match2',\n                rules: [\n                  {\n                    type   : 'match[match1]',\n                    prompt : 'Please put the same value in both fields'\n                  }\n                ]\n              },\n              different: {\n                identifier  : 'different2',\n                rules: [\n                  {\n                    type   : 'different[different1]',\n                    prompt : 'Please put different values for each field'\n                  }\n                ]\n              }\n            }\n          })\n        ;\n      </div>\n    </div>\n\n    <div class=\"length example\">\n      <h4 class=\"ui header\">Length</h4>\n      <p>Inputs can match against length of content</p>\n      <form class=\"ui form\">\n        <div class=\"field\">\n          <label>minLength</label>\n          <textarea name=\"minLength\" cols=\"5\"></textarea>\n        </div>\n        <div class=\"field\">\n          <label>Exact Length</label>\n          <input name=\"exactLength\" type=\"text\" value=\"12345\">\n        </div>\n        <div class=\"field\">\n          <label>maxLength</label>\n          <textarea name=\"maxLength\" cols=\"5\">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla metus leo, scelerisque quis pretium non, ultricies in dolor. Vivamus pulvinar odio at nisl egestas tempor. Quisque nec diam gravida, convallis massa et, aliquam purus. Nunc eget aliquet leo. Morbi sodales mi placerat volutpat rhoncus. Pellentesque sed leo eu risus rutrum suscipit ut dapibus est. Curabitur lacus diam, viverra mollis purus ut, facilisis consectetur dui. Etiam molestie suscipit ligula, vitae lacinia mi tempor ac. Pellentesque accumsan porttitor nisi. Sed ac metus ac arcu feugiat posuere. Curabitur eget pharetra felis. Donec consectetur felis sed iaculis vulputate. Sed mollis ultrices consequat.</textarea>\n        </div>\n        <div class=\"ui submit button\">Submit</div>\n        <div class=\"ui error message\"></div>\n      </form>\n      <div class=\"evaluated code\">\n        $('.length.example form')\n          .form({\n            on: 'blur',\n            fields: {\n              minLength: {\n                identifier  : 'minLength',\n                rules: [\n                  {\n                    type   : 'minLength[100]',\n                    prompt : 'Please enter at least 100 characters'\n                  }\n                ]\n              },\n              exactLength: {\n                identifier  : 'exactLength',\n                rules: [\n                  {\n                    type   : 'exactLength[6]',\n                    prompt : 'Please enter exactly 6 characters'\n                  }\n                ]\n              },\n              maxLength: {\n                identifier  : 'maxLength',\n                rules: [\n                  {\n                    type   : 'maxLength[100]',\n                    prompt : 'Please enter at most 100 characters'\n                  }\n                ]\n              },\n            }\n          })\n        ;\n      </div>\n    </div>\n\n\n    <div class=\"content example\">\n      <h4 class=\"ui header\">Specified Content</h4>\n      <p>Validation rules can specify content that should or should not appear inside an input</p>\n      <form class=\"ui form\">\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>is</label>\n            <input name=\"is\" type=\"text\" value=\"dogs\">\n          </div>\n          <div class=\"field\">\n            <label>isExactly</label>\n            <input name=\"isExactly\" type=\"text\" value=\"Dog\">\n          </div>\n        </div>\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>not</label>\n            <input name=\"not\" type=\"text\" value=\"Dog\">\n          </div>\n          <div class=\"field\">\n            <label>notExactly</label>\n            <input name=\"notExactly\" type=\"text\" value=\"dog\">\n          </div>\n        </div>\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>contains</label>\n            <input name=\"contains\" type=\"text\" value=\"poodle\">\n          </div>\n          <div class=\"field\">\n            <label>containsExactly</label>\n            <input name=\"containsExactly\" type=\"text\" value=\"Dogbert\">\n          </div>\n        </div>\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>doesntContain</label>\n            <input name=\"doesntContain\" type=\"text\" value=\"Dogtown\">\n          </div>\n          <div class=\"field\">\n            <label>doesntContainExactly</label>\n            <input name=\"doesntContainExactly\" type=\"text\" value=\"dognapper\">\n          </div>\n        </div>\n        <div class=\"ui submit button\">Submit</div>\n        <div class=\"ui error message\"></div>\n      </form>\n      <div class=\"evaluated code\">\n        $('.content.example form')\n          .form({\n            on: 'blur',\n            fields: {\n              is: {\n                identifier  : 'is',\n                rules: [\n                  {\n                    type   : 'is[dog]',\n                    prompt : 'Please enter exactly \"dog\"'\n                  }\n                ]\n              },\n              isExactly: {\n                identifier  : 'isExactly',\n                rules: [\n                  {\n                    type   : 'isExactly[dog]',\n                    prompt : 'Please enter exactly \"dog\"'\n                  }\n                ]\n              },\n              not: {\n                identifier  : 'not',\n                rules: [\n                  {\n                    type   : 'not[dog]',\n                    prompt : 'Please enter a value, but not \"dog\"'\n                  }\n                ]\n              },\n              notExactly: {\n                identifier  : 'notExactly',\n                rules: [\n                  {\n                    type   : 'notExactly[dog]',\n                    prompt : 'Please enter a value, but not exactly \"dog\"'\n                  }\n                ]\n              },\n              contains: {\n                identifier  : 'contains',\n                rules: [\n                  {\n                    type   : 'contains[dog]',\n                    prompt : 'Please enter a value containing \"dog\"'\n                  }\n                ]\n              },\n              containsExactly: {\n                identifier  : 'containsExactly',\n                rules: [\n                  {\n                    type   : 'containsExactly[dog]',\n                    prompt : 'Please enter a value containing exactly \"dog\"'\n                  }\n                ]\n              },\n              doesntContain: {\n                identifier  : 'doesntContain',\n                rules: [\n                  {\n                    type   : 'doesntContain[dog]',\n                    prompt : 'Please enter a value not containing \"dog\"'\n                  }\n                ]\n              },\n              doesntContainExactly: {\n                identifier  : 'doesntContainExactly',\n                rules: [\n                  {\n                    type   : 'doesntContainExactly[dog]',\n                    prompt : 'Please enter a value not containing exactly \"dog\"'\n                  }\n                ]\n              }\n            }\n          })\n        ;\n      </div>\n    </div>\n\n    <div class=\"multi example\">\n      <h4 class=\"ui header\">Selection Count</h4>\n      <p>Multiple selects can specify how many options should be allowed.</p>\n      <form class=\"ui form\">\n        <div class=\"three fields\">\n          <div class=\"field\">\n            <label>Exact Count</label>\n            <select name=\"exactCount\" multiple class=\"ui dropdown\">\n              <option value=\"\">Select Values</option>\n              <option value=\"1\" selected>1</option>\n              <option value=\"2\">2</option>\n              <option value=\"3\">3</option>\n              <option value=\"4\">4</option>\n              <option value=\"5\">5</option>\n            </select>\n          </div>\n          <div class=\"field\">\n            <label>Minimum Count</label>\n            <select name=\"minCount\" multiple class=\"ui dropdown\">\n              <option value=\"\">Select Values</option>\n              <option value=\"1\" selected>1</option>\n              <option value=\"2\">2</option>\n              <option value=\"3\">3</option>\n              <option value=\"4\">4</option>\n              <option value=\"5\">5</option>\n            </select>\n          </div>\n          <div class=\"field\">\n            <label>Maximum Count</label>\n            <select name=\"maxCount\" multiple class=\"ui dropdown\">\n              <option value=\"\">Select Values</option>\n              <option value=\"1\" selected>1</option>\n              <option value=\"2\" selected>2</option>\n              <option value=\"3\" selected>3</option>\n              <option value=\"4\">4</option>\n              <option value=\"5\">5</option>\n            </select>\n          </div>\n        </div>\n        <div class=\"ui submit button\">Submit</div>\n        <div class=\"ui error message\"></div>\n      </form>\n      <div class=\"evaluated code\">\n        $('.multi.example form')\n          .form({\n            on: 'blur',\n            fields: {\n              minCount: {\n                identifier  : 'minCount',\n                rules: [\n                  {\n                    type   : 'minCount[2]',\n                    prompt : 'Please select at least 2 values'\n                  }\n                ]\n              },\n              maxCount: {\n                identifier  : 'maxCount',\n                rules: [\n                  {\n                    type   : 'maxCount[2]',\n                    prompt : 'Please select a max of 2 values'\n                  }\n                ]\n              },\n              exactCount: {\n                identifier  : 'exactCount',\n                rules: [\n                  {\n                    type   : 'exactCount[2]',\n                    prompt : 'Please select 2 values'\n                  }\n                ]\n              }\n            }\n          })\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Form Examples</h2>\n\n    <div class=\"add example\">\n      <h4 class=\"ui header\">\n        Adding Rules Programmatically <div class=\"ui teal label\">New in 2.2.11</div>\n      </h4>\n      <p>You can use the special behaviors <code>add field/rule</code>, <code>remove rule</code> and <code>remove field</code> to dynamically add or remove fields or rules. </p>\n      <div class=\"ui ignored info message\">\n        <div class=\"ui header\">Adding Multiple Rules and Complex Rules</div>\n        You can specify shorthand or full rule objects when adding rules. You can also specifiy fields as an array to modify multiple fields.</code>.\n      </div>\n      <div class=\"code\">\n      // lets only validate username to start\n      $('.add.example .ui.form')\n        .form({\n          username: ['empty', 'minLength[5]']\n        })\n      ;\n      </div>\n      <div class=\"evaluated code\">\n      // lets toggle some validation based on button\n      $('.add.example .ui.positive.button')\n        .on('click', function() {\n          $('.add.example .ui.form')\n            // adding longform\n            .form('add rule', 'gender', {\n              rules: [\n                {\n                  type   : 'empty',\n                  prompt : 'Entering your gender is necessary'\n                }\n              ]\n            })\n            // adding shorthand\n            .form('add rule', 'password', ['empty', 'minLength[5]'])\n          ;\n        })\n      ;\n      </div>\n      <div class=\"evaluated code\">\n      $('.add.example .ui.negative.button')\n        .on('click', function() {\n          $('.add.example .ui.form')\n            // removing multiple at once\n            .form('remove fields', ['gender', 'password'])\n          ;\n        })\n      ;\n      </div>\n      <div class=\"ui positive button\">Add Additional Validation</div>\n      <div class=\"ui negative button\">Remove Additional Validation</div>\n      <form class=\"ui form segment\">\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>Username</label>\n            <input type=\"text\" name=\"username\">\n          </div>\n          <div class=\"field\">\n            <label>Password</label>\n            <input type=\"password\" name=\"password\">\n          </div>\n        </div>\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>Gender</label>\n            <div class=\"ui fluid selection dropdown\">\n              <input type=\"hidden\" name=\"gender\">\n              <div class=\"default text\">Gender</div>\n              <i class=\"dropdown icon\"></i>\n              <div class=\"menu\">\n                <div class=\"item\" data-value=\"1\">Male</div>\n                <div class=\"item\" data-value=\"0\">Female</div>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"ui primary submit button\">Submit</div>\n        <div class=\"ui clear button\">Clear</div>\n        <div class=\"ui error message\"></div>\n      </form>\n    </div>\n\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Validating Dropdowns</h4>\n      <p><a href=\"/modules/dropdown.html\">Dropdowns</a> can also be validated like other form fields. Simply match the validation rule to the <code>input</code> or <code>select</code> associated with the dropdown</p>\n      <div class=\"ignored code\">\n      $('.ui.dropdown')\n        .dropdown()\n      ;\n      $('.ui.form')\n        .form({\n          fields: {\n            gender: 'empty',\n            name: 'empty'\n          }\n        })\n      ;\n      </div>\n      <form class=\"ui form segment\">\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>Name</label>\n            <input type=\"text\" name=\"name\">\n          </div>\n          <div class=\"field\">\n            <label>Gender</label>\n            <div class=\"ui fluid selection dropdown\">\n              <input type=\"hidden\" name=\"gender\">\n              <div class=\"default text\">Gender</div>\n              <i class=\"dropdown icon\"></i>\n              <div class=\"menu\">\n                <div class=\"item\" data-value=\"1\">Male</div>\n                <div class=\"item\" data-value=\"0\">Female</div>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"ui primary submit button\">Submit</div>\n      </form>\n    </div>\n    <div class=\"data example\">\n      <h4 class=\"ui header\">Using Server Name Attributes</h4>\n      <p>Sometimes an integration requires you to use a specific value for <code>name</code>, or <code>id</code>. In these cases, you can match a form field using the <code>data-validate</code> property.</p>\n      <div class=\"ignored code\">\n      $('.ui.form')\n        .form(\n          fields: {\n            name: 'empty'\n          }\n        })\n      ;\n      </div>\n      <form class=\"ui form segment\">\n        <div class=\"field\">\n          <label>Name</label>\n          <input type=\"text\" name=\"SERVER_REQUIRED_NAME\" data-validate=\"name\">\n        </div>\n        <div class=\"ui primary submit button\">Submit</div>\n      </form>\n    </div>\n\n    <div class=\"depends example\">\n      <h4 class=\"ui header\">\n        Dependent Fields\n        <div class=\"ui teal horizontal label\">New in 2.2</div>\n      </h4>\n      <p>You can specify validation fields to only be used when other fields are present. Simply add <code>depends: 'id'</code> with the ID of the field that must be non-blank for this rule to evaluate.</p>\n      <div class=\"ignored code\">\n      $('.ui.form')\n        .form({\n          fields: {\n            yearsPracticed: {\n              identifier : 'yearsPracticed',\n              depends    : 'isDoctor',\n              rules      : [\n                {\n                  type   : 'empty',\n                  prompt : 'Please enter the number of years you have been a doctor'\n                }\n              ]\n            }\n          }\n        })\n      ;\n      </div>\n      <form class=\"ui form segment\">\n        <div class=\"inline field\">\n          <div class=\"ui checkbox\">\n            <input type=\"checkbox\" name=\"isDoctor\" />\n            <label>Are you a doctor?</label>\n          </div>\n        </div>\n        <div class=\"field\">\n          <label>How long have you been a medical professional</label>\n          <input type=\"text\" name=\"yearsPracticed\">\n        </div>\n        <div class=\"ui divider\"></div>\n        <div class=\"ui primary submit button\">Submit</div>\n        <div class=\"ui error message\"></div>\n      </form>\n    </div>\n\n    <div class=\"optional example\">\n      <h4 class=\"ui header\">Optional Fields</h4>\n      <p>Adding the parameter <code>optional: true</code> will only add your validation rules when the field is <b>not empty</b>.\n      <div class=\"ignored code\">\n      $('.ui.form')\n        .form({\n          fields: {\n            email: {\n              identifier : 'email',\n              rules: [\n                {\n                  type   : 'email',\n                  prompt : 'Please enter a valid e-mail'\n                }\n              ]\n            },\n            ccEmail: {\n              identifier : 'cc-email',\n              optional   : true,\n              rules: [\n                {\n                  type   : 'email',\n                  prompt : 'Please enter a valid second e-mail'\n                }\n              ]\n            }\n          }\n        })\n      ;\n      </div>\n      <form class=\"ui form segment\">\n        <p>Your tickets are all ready to print. Where would you like to send a receipt?</p>\n        <div class=\"fields\">\n          <div class=\"ten wide field\">\n            <label>E-mail</label>\n            <input type=\"text\" name=\"email\">\n          </div>\n          <div class=\"six wide field\">\n            <label>Additional E-mail</label>\n            <input type=\"text\" name=\"cc-email\">\n          </div>\n        </div>\n        <div class=\"ui divider\"></div>\n        <div class=\"ui primary submit button\">Submit</div>\n        <div class=\"ui error message\"></div>\n      </form>\n    </div>\n\n    <div class=\"optional example\">\n      <h4 class=\"ui header\">Setting Site Defaults</h4>\n      <p>You can specify site wide validation settings by modifying <code>$.fn.form.settings.defaults</code> that will apply on any form validation if the field appears in the form</b>.\n      <div class=\"code\">\n      $.fn.form.settings.defaults = {\n        email: {\n          identifier : 'email',\n          rules: [\n            {\n              type   : 'email',\n              prompt : 'Please enter a valid e-mail'\n            }\n          ]\n        },\n        // this form doesn't have a cc email but it will not produce an error\n        ccEmail: {\n          identifier : 'cc-email',\n          optional   : true,\n          rules: [\n            {\n              type   : 'email',\n              prompt : 'Please enter a valid second e-mail'\n            }\n          ]\n        },\n      };\n      </div>\n      <form class=\"ui form segment\">\n        <p>Your tickets are all ready to print. Where would you like to send a receipt?</p>\n        <div class=\"ten wide field\">\n          <label>E-mail</label>\n          <input type=\"text\" name=\"email\">\n        </div>\n        <div class=\"ui primary submit button\">Submit</div>\n        <div class=\"ui error message\"></div>\n      </form>\n    </div>\n\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Displaying Error Messages</h4>\n      <p>Forms that contain a <a href=\"/collections/message.html\">ui message</a> error block will automatically be filled in with form validation information.</p>\n      <div class=\"ui ignored info message\">The template for error messages can be modified by adjusting settings.template.error</div>\n\n      <form class=\"ui form segment\">\n        <p>Let's go ahead and get you signed up.</p>\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>First Name</label>\n            <input placeholder=\"First Name\" name=\"first-name\" type=\"text\">\n          </div>\n          <div class=\"field\">\n            <label>Last Name</label>\n            <input placeholder=\"Last Name\" name=\"last-name\" type=\"text\">\n          </div>\n        </div>\n        <div class=\"field\">\n          <label>Username</label>\n          <input placeholder=\"Username\" name=\"username\" type=\"text\">\n        </div>\n        <div class=\"field\">\n          <label>Password</label>\n          <input type=\"password\" name=\"password\">\n        </div>\n        <div class=\"inline field\">\n          <div class=\"ui checkbox\">\n            <input type=\"checkbox\" name=\"terms\" />\n            <label>I agree to the Terms and Conditions</label>\n          </div>\n        </div>\n        <div class=\"ui primary submit button\">Submit</div>\n        <div class=\"ui error message\"></div>\n      </form>\n    </div>\n\n    <div class=\"inline example\">\n      <h4 class=\"ui header\">Validating on Blur and other Events</h4>\n      <p>Validation messages can also appear inline. UI Forms automatically format <a href=\"/elements/label.html\">labels</a> with the class name <code>prompt</code>. These validation prompts are also set to appear on input change instead of form submission.</p>\n      <div class=\"ui ignored warning message\">This example also uses a different validation event. Each element will be validated on input blur instead of the default form submit.</div>\n      <div class=\"code\" data-type=\"javascript\">\n        $('.ui.form')\n          .form({\n            fields : validationRules,\n            inline : true,\n            on     : 'blur'\n          })\n        ;\n      </div>\n      <form class=\"ui form segment\">\n        <p>Let's go ahead and get you signed up.</p>\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>First Name</label>\n            <input placeholder=\"First Name\" name=\"first-name\" type=\"text\">\n          </div>\n          <div class=\"field\">\n            <label>Last Name</label>\n            <input placeholder=\"Last Name\" name=\"last-name\" type=\"text\">\n          </div>\n        </div>\n        <div class=\"field\">\n          <label>Username</label>\n          <input placeholder=\"Username\" name=\"username\" type=\"text\">\n        </div>\n        <div class=\"field\">\n          <label>Password</label>\n          <input type=\"password\" name=\"password\">\n        </div>\n        <div class=\"inline field\">\n          <div class=\"ui checkbox\">\n            <input type=\"checkbox\" name=\"terms\" />\n            <label>I agree to the Terms and Conditions</label>\n          </div>\n        </div>\n        <div class=\"ui primary submit button\">Submit</div>\n      </form>\n    </div>\n\n    <div class=\"dog example\">\n      <h4 class=\"ui header\">Creating Custom Validation</h4>\n      <p>You can use multiple arbitrary rules to validate a form</p>\n      <div class=\"ignore code\">\n      $('.ui.form')\n        .form({\n          fields: {\n            dog: {\n              identifier: 'dog',\n              rules: [\n                {\n                  type: 'empty',\n                  prompt: 'You must have a dog to add'\n                },\n                {\n                  type: 'contains[fluffy]',\n                  prompt: 'I only want you to add fluffy dogs!'\n                },\n                {\n                  type: 'not[mean]',\n                  prompt: 'Why would you add a mean dog to the list?'\n                }\n              ]\n            }\n          }\n        })\n      ;\n      </div>\n      <form class=\"ui form segment\">\n        <p>Let's go ahead and get you signed up.</p>\n        <div class=\"field\">\n          <label>Dog</label>\n          <input placeholder=\"Dog\" name=\"dog\" type=\"text\">\n        </div>\n        <div class=\"ui primary submit button\">\n          <i class=\"add icon\"></i>\n          Add Dog\n        </div>\n        <div class=\"ui error message\"></div>\n      </form>\n    </div>\n\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"settings\">\n    <h2 class=\"ui dividing header\">Behaviors</h2>\n\n    All the following behaviors can be called using the syntax\n\n    <div class=\"code\" data-type=\"javascript\">\n      $('.foo').form('behavior name', argumentOne, argumentTwo)\n    </div>\n\n    <table class=\"ui definition celled table\">\n      <tr>\n        <td>submit</td>\n        <td>Submits selected form</td>\n      </tr>\n      <tr>\n        <td>is valid</td>\n        <td>Returns true/false whether a form passes its validation rules</td>\n      </tr>\n      <tr>\n        <td>add rule(field, rules)<div class=\"ui label\">New in 2.2.11</div></td>\n        <td>Adds rule to existing rules for field, also aliased as <code>add field</code></td>\n      </tr>\n      <tr>\n        <td>add fields(fields) <div class=\"ui label\">New in 2.2.11</div></td>\n        <td>Adds fields object to existing fields</td>\n      </tr>\n      <tr>\n        <td>remove rule(field, rules)<div class=\"ui label\">New in 2.2.11</div></td>\n        <td>Removes specific rule from field leaving other rules</td>\n      </tr>\n      <tr>\n        <td>remove field(field)<div class=\"ui label\">New in 2.2.11</div></td>\n        <td>Remove all validation for a field</td>\n      </tr>\n      <tr>\n        <td>add prompt(identifier, errors)</td>\n        <td>Adds error prompt to the field with the given identifier</td>\n      </tr>\n      <tr>\n        <td>is valid(fieldName)</td>\n        <td>Returns true/false whether a field passes its validation rules</td>\n      </tr>\n      <tr>\n        <td>validate form</td>\n        <td>Validates form, updates UI, and calls onSuccess or onFailure</td>\n      </tr>\n      <tr>\n        <td>validate field(fieldName)</td>\n        <td>Validates field, updates UI, and calls onSuccess or onFailure</td>\n      </tr>\n      <tr>\n        <td>get field(id)</td>\n        <td>Returns element with matching name, id, or data-validate metadata to ID</td>\n      </tr>\n      <tr>\n        <td>get value(id)</td>\n        <td>Returns value of element with id</td>\n      </tr>\n      <tr>\n        <td>get values(ids)</td>\n        <td>Returns object of element values that match array of ids. If no IDS are passed will return all fields</td>\n      </tr>\n      <tr>\n        <td>set value(id)</td>\n        <td>Sets value of element with id</td>\n      </tr>\n      <tr>\n        <td>set values(values)</td>\n        <td>Sets key/value pairs from passed values object to matching ids</td>\n      </tr>\n      <tr>\n        <td>get validation(element)</td>\n        <td>Returns validation rules for a given jQuery-referenced input field</td>\n      </tr>\n      <tr>\n        <td>has field(identifier)</td>\n        <td>Returns whether a field exists</td>\n      </tr>\n      <tr>\n        <td>add errors(errors)</td>\n        <td>Adds errors to form, given an array errors</td>\n      </tr>\n      <tr>\n        <td>add prompt(id, prompt)</td>\n        <td>Adds a custom user prompt for a given element with id</td>\n      </tr>\n    </table>\n\n    <h2 class=\"ui dividing header\">Settings</h2>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">\n        Form Settings\n      </h4>\n      <p>Form settings modify the form validation behavior</p>\n\n      <table class=\"ui celled sortable definition table\">\n        <thead>\n          <th>Setting</th>\n          <th class=\"six wide\">Default</th>\n          <th>Description</th>\n        </thead>\n        <tbody>\n          <tr>\n            <td>keyboardShortcuts</td>\n            <td>true</td>\n            <td>Adds keyboard shortcuts for enter and escape keys to submit form and blur fields respectively</td>\n          </tr>\n          <tr>\n            <td>on</td>\n            <td>submit</td>\n            <td>Event used to trigger validation. Can be either <b>submit</b>, <b>blur</b> or <b>change</b>.</td>\n          </tr>\n          <tr>\n            <td>revalidate</td>\n            <td>true</td>\n            <td>If set to true will revalidate fields with errors on input change</td>\n          </tr>\n          <tr>\n            <td>delay</td>\n            <td>true</td>\n            <td>Delay from last typed letter to validate a field when using <code>on: change</code> or when revalidating a field.</td>\n          </tr>\n          <tr>\n            <td>inline</td>\n            <td>false</td>\n            <td>Adds inline error on field validation error</td>\n          </tr>\n          <tr>\n            <td>transition</td>\n            <td>\n              scale\n            </td>\n            <td>Named transition to use when animating validation errors. Fade and slide down are available without including <a href=\"/modules/transition.html\">ui transitions</a></td>\n          </tr>\n          <tr>\n            <td>duration</td>\n            <td>150</td>\n            <td>Animation speed for inline prompt</td>\n          </tr>\n        </tbody>\n      </table>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">\n        Form Prompts\n      </h4>\n      <p>Settings to modify default form prompts</p>\n\n      <table class=\"ui celled sortable definition table\">\n        <thead>\n          <th class=\"collapsing\">Setting</th>\n          <th>Default</th>\n        </thead>\n        <tbody>\n          <tr>\n            <td>text</td>\n            <td>\n              <div class=\"code\">\n              text: {\n                unspecifiedRule  : 'Please enter a valid value',\n                unspecifiedField : 'This field'\n              }\n              </div>\n            </td>\n          </tr>\n          <tr>\n            <td>prompt</td>\n            <td>\n              <div class=\"code\">\n              prompt: {\n                empty                : '{name} must have a value',\n                checked              : '{name} must be checked',\n                email                : '{name} must be a valid e-mail',\n                url                  : '{name} must be a valid url',\n                regExp               : '{name} is not formatted correctly',\n                integer              : '{name} must be an integer',\n                decimal              : '{name} must be a decimal number',\n                number               : '{name} must be set to a number',\n                is                   : '{name} must be \\'{ruleValue}\\'',\n                isExactly            : '{name} must be exactly \\'{ruleValue}\\'',\n                not                  : '{name} cannot be set to \\'{ruleValue}\\'',\n                notExactly           : '{name} cannot be set to exactly \\'{ruleValue}\\'',\n                contain              : '{name} cannot contain \\'{ruleValue}\\'',\n                containExactly       : '{name} cannot contain exactly \\'{ruleValue}\\'',\n                doesntContain        : '{name} must contain  \\'{ruleValue}\\'',\n                doesntContainExactly : '{name} must contain exactly \\'{ruleValue}\\'',\n                minLength            : '{name} must be at least {ruleValue} characters',\n                length               : '{name} must be at least {ruleValue} characters',\n                exactLength          : '{name} must be exactly {ruleValue} characters',\n                maxLength            : '{name} cannot be longer than {ruleValue} characters',\n                match                : '{name} must match {ruleValue} field',\n                different            : '{name} must have a different value than {ruleValue} field',\n                creditCard           : '{name} must be a valid credit card number',\n                minCount             : '{name} must have at least {ruleValue} choices',\n                exactCount           : '{name} must have exactly {ruleValue} choices',\n                maxCount             : '{name} must have {ruleValue} or less choices'\n              }\n              </div>\n            </td>\n          </tr>\n        </tbody>\n      </table>\n    </div>\n    <div class=\"no example\">\n      <h4 class=\"ui header\">\n        Callbacks\n      </h4>\n      <p>Callbacks specify a function to occur after a specific behavior.</p>\n\n      <table class=\"ui celled sortable definition table\">\n        <thead>\n          <th class=\"four wide\">Setting</th>\n          <th>Context</th>\n          <th>Description</th>\n        </thead>\n        <tbody>\n          <tr>\n            <td>onValid</td>\n            <td>field</td>\n            <td>Callback on each valid field</td>\n          </tr>\n          <tr>\n            <td>onInvalid</td>\n            <td>field</td>\n            <td>Callback on each invalid field</td>\n          </tr>\n          <tr>\n            <td>onSuccess(event, fields)</td>\n            <td>form</td>\n            <td>Callback if a form is all valid</td>\n          </tr>\n          <tr>\n            <td>onFailure(formErrors, fields)</td>\n            <td>form</td>\n            <td>Callback if any form field is invalid</td>\n          </tr>\n        </tbody>\n      </table>\n    </div>\n    <div class=\"no example\">\n      <h4 class=\"ui header\">\n        Templates\n      </h4>\n      <p>Templates are used to construct elements</p>\n      <div class=\"ui ignored info message\">Templates are found in <code>settings.template</code>, to modify templates across all forms, modify <code>$.fn.form.settings.templates</code> to include your function. They must return HTML.</div>\n      <table class=\"ui celled sortable definition table\">\n        <thead>\n          <th class=\"four wide\">Template</th>\n          <th>Arguments</th>\n          <th>Description</th>\n        </thead>\n        <tbody>\n          <tr>\n            <td>error</td>\n            <td>Errors (Array)</td>\n            <td>Constructs the contents of an error message</td>\n          </tr>\n          <tr>\n            <td>prompt</td>\n            <td>Errors (Array)</td>\n            <td>Constructs an element to prompt the user to an invalid field</td>\n          </tr>\n        </tbody>\n      </table>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">\n        DOM Settings\n      </h4>\n      <p>DOM settings specify how this module should interface with the DOM</p>\n      <table class=\"ui celled sortable definition table\">\n        <thead>\n          <th>Setting</th>\n          <th class=\"six wide\">Default</th>\n          <th>Description</th>\n        </thead>\n        <tbody>\n          <tr>\n            <td>namespace</td>\n            <td>form</td>\n            <td>Event namespace. Makes sure module teardown does not effect other events attached to an element.</td>\n          </tr>\n          <tr>\n            <td>selector</td>\n            <td>\n              <div class=\"code\">\n        selector : {\n          message   : '.error.message',\n          field     : 'input, textarea, select',\n          group     : '.field',\n          input     : 'input',\n          prompt    : '.prompt',\n          submit    : '.submit'\n        }\n              </div>\n            </td>\n            <td>Selectors used to match functionality to DOM</td>\n          </tr>\n          <tr>\n            <td>metadata</td>\n            <td>\n              <div class=\"code\">\n\n        metadata : {\n          validate: 'validate'\n        },\n              </div>\n            </td>\n            <td>\n            HTML5 metadata attributes\n            </td>\n          </tr>\n          <tr>\n            <td>className</td>\n            <td>\n              <div class=\"code\">\n        className : {\n          active      : 'active',\n          placeholder : 'default',\n          disabled    : 'disabled',\n          visible     : 'visible'\n        }\n              </div>\n            </td>\n            <td>Class names used to attach style to state</td>\n          </tr>\n        </tbody>\n      </table>\n    </div>\n    <div class=\"no example\">\n      <h4 class=\"ui header\">\n        Debug Settings\n      </h4>\n      <p>Debug settings controls debug output to the console</p>\n\n      <table class=\"ui celled sortable definition table\">\n        <thead>\n          <th>Setting</th>\n          <th class=\"four wide\">Default</th>\n          <th>Description</th>\n        </thead>\n        <tbody>\n          <tr>\n            <td>name</td>\n            <td>Form</td>\n            <td>Name used in debug logs</td>\n          </tr>\n          <tr>\n            <td>debug</td>\n            <td>False</td>\n            <td>Provides standard debug output to console</td>\n          </tr>\n          <tr>\n            <td>performance</td>\n            <td>True</td>\n            <td>Provides standard debug output to console</td>\n          </tr>\n          <tr>\n            <td>verbose</td>\n            <td>False</td>\n            <td>Provides ancillary debug output to console</td>\n          </tr>\n          <tr>\n            <td>errors</td>\n            <td colspan=\"2\">\n              <div class=\"code\">\n        errors   : {\n          method   : 'The method you called is not defined.'\n        }\n              </div>\n            </td>\n          </tr>\n        </tbody>\n      </table>\n    </div>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/behaviors/state.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'state'\nstandalone  : true\n\nelement     : 'State'\nelementType : 'draft'\n\ntitle       : 'State'\ndescription : 'State allows elements to trigger actions on a server'\ntype        : 'Draft'\n---\n\n<script src=\"/javascript/library/serialize-object.js\"></script>\n<script src=\"/javascript/state.js\"></script>\n\n<%- @partial('header',  { tabs: { overview: 'Overview', usage: 'Usage',  behaviors: 'Behaviors',  settings: 'Settings' } }) %>\n\n<div class=\"main ui container\">\n  <div class=\"ui active intro tab\" data-tab=\"overview\">\n\n    <div class=\"test example\">\n      <h4 class=\"ui header\">Activate Elements Programmatically</h4>\n      <p>State is designed to make the process of integrating data sources to UI components seamless, <a href=\"#state-state-management\">tying State request state</a> to UI states automatically.</p>\n      <p>For example adding an State behavior to an <a href=\"/elements/input.html\"><code>input</code></a> will occur <code>oninput</code>, while a <a href=\"/elements/button.html\"><code>button</code></a>, will query the server <code>onclick</code>.</p>\n      <div class=\"ui icon input\">\n        <i class=\"search icon\"></i>\n        <input type=\"text\" placeholder=\"Type here...\">\n      </div>\n      <div class=\"ui hidden divider\"></div>\n      <div class=\"ui primary button\">Click Me</div>\n      <div class=\"ui disabled button\">Disabled</div>\n    </div>\n\n\n  </div>\n\n  <div class=\"ui intro tab\" data-tab=\"usage\">\n\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"behaviors\">\n\n    <h2 class=\"ui dividing header\">Behavior</h2>\n\n    <p>All the following behaviors can be called using the syntax:</p>\n    <div class=\"code\">\n    $('.your.element')\n      .state('behavior name', argumentOne, argumentTwo)\n    ;\n    </div>\n\n    <table class=\"ui definition celled sortable table segment\">\n      <thead>\n        <th>Behavior</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>query</td>\n          <td>Execute query using existing State settings</td>\n        </tr>\n        <tr>\n          <td>add url data(url, data)</td>\n          <td>Adds data to existing templated url and returns full url string</td>\n        </tr>\n        <tr>\n          <td>get request</td>\n          <td>Gets promise for current State request</td>\n        </tr>\n        <tr>\n          <td>abort</td>\n          <td>Aborts current State request</td>\n        </tr>\n        <tr>\n          <td>reset</td>\n          <td>Removes loading and error state from element</td>\n        </tr>\n        <tr>\n          <td>was cancelled</td>\n          <td>Returns whether last request was cancelled</td>\n        </tr>\n        <tr>\n          <td>was failure</td>\n          <td>Returns whether last request was failure</td>\n        </tr>\n        <tr>\n          <td>was successful</td>\n          <td>Returns whether last request was successful</td>\n        </tr>\n        <tr>\n          <td>was complete</td>\n          <td>Returns whether last request was completed</td>\n        </tr>\n        <tr>\n          <td>is disabled</td>\n          <td>Returns whether element is disabled</td>\n        </tr>\n        <tr>\n          <td>is mocked</td>\n          <td>Returns whether element response is mocked</td>\n        </tr>\n        <tr>\n          <td>is loading</td>\n          <td>Returns whether element is loading</td>\n        </tr>\n        <tr>\n          <td>set loading</td>\n          <td>Sets loading state to element</td>\n        </tr>\n        <tr>\n          <td>set error</td>\n          <td>Sets error state to element</td>\n        </tr>\n        <tr>\n          <td>remove loading</td>\n          <td>Removes loading state to element</td>\n        </tr>\n        <tr>\n          <td>remove error</td>\n          <td>Removes error state to element</td>\n        </tr>\n        <tr>\n          <td>get event</td>\n          <td>Gets event that State request will occur on</td>\n        </tr>\n        <tr>\n          <td>get url encoded value(value)</td>\n          <td>Returns <code>encodeURIComponent</code> value only if value passsed is not already encoded\n        </tr>\n        <tr>\n          <td>read cached response(url)</td>\n          <td>Reads a locally cached response for a URL</td>\n        </tr>\n        <tr>\n          <td>write cached response(url, response)</td>\n          <td>Writes a cached response for a URL</td>\n        </tr>\n        <tr>\n          <td>create cache</td>\n          <td>Creates new cache, removing all locally cached URLs</td>\n        </tr>\n        <tr>\n          <td>destroy</td>\n          <td>Removes State settings from the page and all events</td>\n        </tr>\n      </tbody>\n    </table>\n\n\n  </div>\n\n\n  <div class=\"ui tab\" data-tab=\"settings\">\n    <h2 class=\"ui dividing header\">\n      State\n    </h2>\n\n    <h4 class=\"ui header\">\n      Behavior\n    </h4>\n    <table class=\"ui sortable celled definition table\">\n      <thead>\n        <th class=\"three wide\"></th>\n        <th class=\"three wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>automatic</td>\n          <td>true</td>\n          <td>Whether possible states should be determined automatically based on type of UI</td>\n        </tr>\n        <tr>\n          <td>sync</td>\n          <td>false</td>\n          <td>When set to <code>true</code> and state is used on multiple elements, state will be synced across all bound elements.</td>\n        </tr>\n        <tr>\n          <td>flashDuration</td>\n          <td>1000</td>\n          <td>Default duration to show text when using <code>flash text</code>.</td>\n        </tr>\n        <tr>\n          <td>context</td>\n          <td>false</td>\n          <td>When set to a selector, will use a delegated pattern to bind events from this element.</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <h4 class=\"ui header\">\n      Request Settings\n    </h4>\n    <table class=\"ui sortable celled definition table\">\n      <thead>\n        <th class=\"three wide\"></th>\n        <th class=\"three wide\">Default</th>\n        <th>Description</th>\n        <th>Possible Values</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>action</td>\n          <td>false</td>\n          <td>Named State action for query, originally specified in $.fn.settings.state</td>\n          <td>String or false</td>\n        </tr>\n        <tr>\n          <td>url</td>\n          <td>false</td>\n          <td>Templated URL for query, will override specified action</td>\n          <td>String or false</td>\n        </tr>\n        <tr>\n          <td>urlData</td>\n          <td>false</td>\n          <td>Variables to use for replacement</td>\n          <td></td>\n        </tr>\n        <tr>\n          <td>mockResponse</td>\n          <td>false</td>\n          <td>Can be set to a javascript object which will be returned automatically instead of requesting JSON from server </td>\n          <td>{} or false</td>\n        </tr>\n        <tr>\n          <td>mockResponseAsync(settings, callback)</td>\n          <td>false</td>\n          <td>When specified, this function can be used to retrieve content from a server and return it asynchronously <b>instead of</b> a standard AJAX call. The callback function should return the server response.</td>\n          <td>function or false</td>\n        </tr>\n        <tr>\n          <td>method</td>\n          <td>get</td>\n          <td>Method for transmitting request to server</td>\n          <td>post, get</td>\n        </tr>\n        <tr>\n          <td>dataType</td>\n          <td>JSON</td>\n          <td>Expected data type of response </td>\n          <td>xml, json, jsonp, script, html, text</td>\n        </tr>\n        <tr>\n          <td>data</td>\n          <td>{}</td>\n          <td>POST/GET Data to Send with Request</td>\n          <td></td>\n        </tr>\n      </tbody>\n    </table>\n\n    <h4 class=\"ui header\">\n      Callbacks\n    </h4>\n\n    <table class=\"ui sortable celled definition table\">\n      <thead>\n        <th class=\"three wide\"></th>\n        <th class=\"three wide\">Context</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>beforeSend(settings)</td>\n          <td>initialized element</td>\n          <td>Allows modifying settings before request, or cancelling request</td>\n        </tr>\n        <tr>\n          <td>beforeXHR(xhrObject)</td>\n          <td></td>\n          <td>Allows modifying XHR object for request</td>\n        </tr>\n        <tr>\n          <td>onRequest(promise, xhr)</td>\n          <td>state context</td>\n          <td>Callback that occurs when request is made. Receives both the state success promise and the xhr request promise.</td>\n        </tr>\n        <tr>\n          <td>onResponse(response)</td>\n          <td>state context</td>\n          <td>Allows modifying the server's response before parsed by other callbacks to determine State event success</td>\n        </tr>\n        <tr>\n          <td>successTest(response)</td>\n          <td></td>\n          <td>Determines whether completed JSON response should be <a href=\"#determining-json-success\">treated as successful</a>\n          </td>\n        </tr>\n        <tr>\n          <td>onSuccess(response, element, xhr)</td>\n          <td>state context</td>\n          <td>Callback after successful response, JSON response must pass <code>successTest</code></td>\n        </tr>\n        <tr>\n          <td>onComplete(response, element, xhr)</td>\n          <td>state context</td>\n          <td>Callback on request complete regardless of conditions</td>\n        </tr>\n        <tr>\n          <td>onFailure(response, element)</td>\n          <td>state context</td>\n          <td>Callback on failed response, or JSON response that fails <code>successTest</code></td>\n        </tr>\n        <tr>\n          <td>onError(errorMessage, element, xhr)</td>\n          <td>state context</td>\n          <td>Callback on server error from returned status code, or XHR failure.</td>\n        </tr>\n        <tr>\n          <td>onAbort(errorMessage, element, xhr)</td>\n          <td>state context</td>\n          <td>Callback on abort caused by user clicking a link or manually cancelling request.</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <h2 class=\"ui dividing header\">\n      Module\n    </h2>\n\n    <p>These settings are native to all modules, and define how the component ties content to DOM attributes, and debugging settings for the module.</p>\n\n    <table class=\"ui sortable celled definition table\">\n      <thead>\n        <th></th>\n        <th class=\"six wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>name</td>\n          <td>State</td>\n          <td>Name used in log statements</td>\n        </tr>\n        <tr>\n          <td>namespace</td>\n          <td>state</td>\n          <td>Event namespace. Makes sure module teardown does not effect other events attached to an element.</td>\n        </tr>\n        <tr>\n          <td>regExp</td>\n          <td>\n            <div class=\"code\" data-type=\"css\">\n            regExp  : {\n              required: /\\{\\$*[A-z0-9]+\\}/g,\n              optional: /\\{\\/\\$*[A-z0-9]+\\}/g,\n            }\n            </div>\n          </td>\n          <td>Regular expressions used for template matching</td>\n        </tr>\n        <tr>\n          <td>selector</td>\n          <td>\n            <div class=\"code\" data-type=\"css\">\n            selector: {\n              disabled : '.disabled',\n              form     : 'form'\n            }\n            </div>\n          </td>\n          <td>Selectors used to find parts of a module</td>\n        </tr>\n        <tr>\n          <td>className</td>\n          <td>\n            <div class=\"code\">\n            className: {\n              loading : 'loading',\n              error   : 'error'\n            }\n            </div>\n          </td>\n          <td>Class names used to determine element state</td>\n        </tr>\n        <tr>\n          <td>metadata</td>\n          <td>\n            <div class=\"code\">\n            metadata: {\n              action  : 'action',\n              url     : 'url'\n            }\n            </div>\n          </td>\n          <td>Metadata used to store xhr and response promise</td>\n        </tr>\n        <tr>\n          <td>silent</td>\n          <td>False</td>\n          <td>Silences all console output including error messages, regardless of other debug settings.</td>\n        </tr>\n        <tr>\n          <td>debug</td>\n          <td>false</td>\n          <td>Debug output to console</td>\n        </tr>\n        <tr>\n          <td>performance</td>\n          <td>true</td>\n          <td>Show <code>console.table</code> output with performance metrics</td>\n        </tr>\n        <tr>\n          <td>verbose</td>\n          <td>false</td>\n          <td>Debug output includes all internal behaviors</td>\n        </tr>\n        <tr>\n          <td>errors</td>\n          <td colspan=\"2\">\n            <div class=\"code\">\n            // errors\n            error : {\n              beforeSend        : 'The before send function has aborted the request',\n              error             : 'There was an error with your request',\n              exitConditions    : 'State Request Aborted. Exit conditions met',\n              JSONParse         : 'JSON could not be parsed during error handling',\n              legacyParameters  : 'You are using legacy State success callback names',\n              missingAction     : 'State action used but no url was defined',\n              missingSerialize  : 'Required dependency jquery-serialize-object missing, using basic serialize',\n              missingURL        : 'No URL specified for state event',\n              noReturnedValue   : 'The beforeSend callback must return a settings object, beforeSend ignored.',\n              parseError        : 'There was an error parsing your request',\n              requiredParameter : 'Missing a required URL parameter: ',\n              statusMessage     : 'Server gave an error: ',\n              timeout           : 'Your request timed out'\n            }\n            </div>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/behaviors/visibility.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'visibility minimal'\nelement     : 'visibility'\nelementType : 'behavior'\nstandalone  : true\n\ntitle       : 'Visibility'\ndescription : 'Visibility provides a set of callbacks for when a content appears in the viewport'\ntype        : 'UI Behavior'\n\n---\n\n<script src=\"/javascript/visibility.js\"></script>\n\n<%- @partial('header', { tabs: {  introduction: 'Introduction', usage: 'Usage', examples: 'Examples', settings: 'Settings' } }) %>\n\n<div class=\"main ui container\">\n\n  <div class=\"ui active tab\" data-tab=\"introduction\">\n\n    <div class=\"introduction\">\n      <h2 class=\"ui dividing header\">Introduction</h2>\n\n      <p>Visibility provides a set of callbacks that can be attached to any element and trigger when a specific visibility event occurs.</p>\n\n      <p>There are a variety of uses for attaching events to visibility. Here are some of the more common ones.</p>\n\n      <div class=\"ui large divided very relaxed list\">\n        <div class=\"item\">\n          <div class=\"header\">Infinite Scroll</div>\n          <div class=\"description\">You want to start loading more content into a container when a user is partially finished scrolling through the content</div>\n        </div>\n        <div class=\"item\">\n          <div class=\"header\">Lazy Loading Images</div>\n          <div class=\"description\">You want to start loading an image just before it is visible to a user</div>\n        </div>\n        <div class=\"item\">\n          <div class=\"header\">Reactive Content</div>\n          <div class=\"description\">You want an element to change based on how far a user has scrolled</div>\n        </div>\n        <div class=\"item\">\n          <div class=\"header\">Sticky Headers</div>\n          <div class=\"description\">You want an element to fix itself to the viewport when it is passed, and return to its original static position afterwards</div>\n        </div>\n        <div class=\"item\">\n          <div class=\"header\">Event Tracking</div>\n          <div class=\"description\">You want to attach analytics events that match a users engagement with content, for example, to log to Google Analytics when a blog post is 30% read.</div>\n        </div>\n      </div>\n\n    </div>\n\n  </div>\n\n\n  <div class=\"ui tab\" data-tab=\"usage\">\n\n    <h2 class=\"ui header\">Usage</h2>\n\n    <div class=\"first visibility example\">\n      <h4 class=\"ui header\">How To Use</h4>\n      <p>Visibility provides a set of callbacks which can be used to attach events to an element's position on screen.</p>\n\n      <p>Each scroll change will trigger an animation frame request that will fire callbacks for an element.</p>\n\n      <div class=\"ui ignored info message\">The following examples use sticky columns to help display data alongside each example. Please consult the <a href=\"/modules/sticky.html\">sticky documentation</a> for usage examples.</div>\n\n      <div class=\"ui ignored code\">\n      // some example callbacks\n      $('.demo.segment')\n        .visibility({\n          onTopVisible: function(calculations) {\n            // top is on screen\n          },\n          onTopPassed: function(calculations) {\n            // top of element passed\n          },\n          onUpdate: function(calculations) {\n            // do something whenever calculations adjust\n            updateTable(calculations);\n          }\n        })\n      ;\n      </div>\n\n      <div class=\"two column equal height ui grid\">\n        <div class=\"row\">\n          <div class=\"main column\">\n            <div class=\"ui first demo segment\">\n              <img src=\"/images/wireframe/centered-paragraph.png\" class=\"ui wireframe image\">\n              <div class=\"ui divider\"></div>\n              <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n              <div class=\"ui divider\"></div>\n              <img src=\"/images/wireframe/media-paragraph.png\" class=\"ui wireframe image\">\n              <div class=\"ui divider\"></div>\n              <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n              <div class=\"ui divider\"></div>\n              <img src=\"/images/wireframe/centered-paragraph.png\" class=\"ui wireframe image\">\n              <div class=\"ui divider\"></div>\n              <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n              <div class=\"ui divider\"></div>\n              <img src=\"/images/wireframe/media-paragraph.png\" class=\"ui wireframe image\">\n              <div class=\"ui divider\"></div>\n              <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n              <div class=\"ui divider\"></div>\n              <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n              <div class=\"ui divider\"></div>\n              <img src=\"/images/wireframe/centered-paragraph.png\" class=\"ui wireframe image\">\n              <div class=\"ui divider\"></div>\n              <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n              <div class=\"ui divider\"></div>\n              <img src=\"/images/wireframe/media-paragraph.png\" class=\"ui wireframe image\">\n              <div class=\"ui divider\"></div>\n              <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n              <div class=\"ui divider\"></div>\n              <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n            </div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui sticky\">\n              <table class=\"ui basic celled sortable two column table\">\n                <thead>\n                  <th>Calculation</th>\n                  <th>Value</th>\n                </thead>\n                <tbody>\n                  <tr class=\"pixelsPassed\">\n                    <td>pixelsPassed</td>\n                    <td></td>\n                  </tr>\n                  <tr class=\"percentagePassed\">\n                    <td>percentagePassed</td>\n                    <td></td>\n                  </tr>\n                  <tr class=\"fits\">\n                    <td>fits</td>\n                    <td></td>\n                  </tr>\n                  <tr class=\"width\">\n                    <td>width</td>\n                    <td></td>\n                  </tr>\n                  <tr class=\"height\">\n                    <td>height</td>\n                    <td></td>\n                  </tr>\n                  <tr class=\"onScreen\">\n                    <td>onScreen</td>\n                    <td></td>\n                  </tr>\n                  <tr class=\"offScreen\">\n                    <td>offScreen</td>\n                    <td></td>\n                  </tr>\n                  <tr class=\"passing\">\n                    <td>passing</td>\n                    <td></td>\n                  </tr>\n                  <tr class=\"topVisible\">\n                    <td>topVisible</td>\n                    <td></td>\n                  </tr>\n                  <tr class=\"bottomVisible\">\n                    <td>bottomVisible</td>\n                    <td></td>\n                  </tr>\n                  <tr class=\"topPassed\">\n                    <td>topPassed</td>\n                    <td></td>\n                  </tr>\n                  <tr class=\"bottomPassed\">\n                    <td>bottomPassed</td>\n                    <td></td>\n                  </tr>\n                </tr>\n              </table>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"second visibility example\">\n\n      <h4 class=\"ui header\">Changing Callback Frequency</h4>\n\n      <p>Visibility's default settings will only have each callback occur <b>the first time</b> which the conditions are met. On subsequent occurences the event will not fire.</p>\n\n      <p>Setting <code>continuous: true</code> will make the callback fire <b>anytime the callback conditions are met</b>. So for example if you set a \"top visible\" callback, this callback will fire with each change in scroll when the top is visible on the page.</p>\n\n      <p>Setting <code>once: false</code> will make the callback fire each time a callback <b>becomes true</b>. So, using the same \"top visible\" example, the callback will fire each time the top of an element is passed. Even if you scroll back up and pass the element again</p>\n\n      <div class=\"two column equal height ui grid\">\n        <div class=\"row\">\n          <div class=\"main column\">\n            <div class=\"ui demo segment\">\n              <img src=\"/images/wireframe/centered-paragraph.png\" class=\"ui wireframe image\">\n              <div class=\"ui divider\"></div>\n              <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n              <div class=\"ui divider\"></div>\n              <img src=\"/images/wireframe/media-paragraph.png\" class=\"ui wireframe image\">\n              <div class=\"ui divider\"></div>\n              <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n              <div class=\"ui divider\"></div>\n              <img src=\"/images/wireframe/centered-paragraph.png\" class=\"ui wireframe image\">\n              <div class=\"ui divider\"></div>\n              <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n              <div class=\"ui divider\"></div>\n              <img src=\"/images/wireframe/media-paragraph.png\" class=\"ui wireframe image\">\n              <div class=\"ui divider\"></div>\n              <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n              <div class=\"ui divider\"></div>\n              <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n              <div class=\"ui divider\"></div>\n              <img src=\"/images/wireframe/centered-paragraph.png\" class=\"ui wireframe image\">\n              <div class=\"ui divider\"></div>\n              <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n              <div class=\"ui divider\"></div>\n              <img src=\"/images/wireframe/media-paragraph.png\" class=\"ui wireframe image\">\n              <div class=\"ui divider\"></div>\n              <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n              <div class=\"ui divider\"></div>\n              <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n            </div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui sticky segments\">\n              <div class=\"ui segment\">\n                <div class=\"ui right floated compact clear button\">\n                  Clear\n                </div>\n                <div class=\"ui toggle checkbox\">\n                  <input type=\"checkbox\" checked name=\"once\" />\n                  <label>Once</label>\n                </div>\n                <div class=\"ui divider\"></div>\n                <div class=\"ui toggle checkbox\">\n                  <input type=\"checkbox\" name=\"continuous\" />\n                  <label>Continuous</label>\n                </div>\n              </div>\n              <div class=\"ui segment\">\n                Event Log\n              </div>\n              <div class=\"ui segment\">\n                <pre class=\"console\"></pre>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Callbacks</h4>\n\n    <p>Callbacks are separated into two categories. Standard events will occur the first animation frame where the conditions evaluated to true.</p>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Standard Events</h4>\n      <table class=\"ui celled definition table\">\n        <thead>\n          <tr>\n            <th class=\"three wide\">Event</th>\n            <th class=\"six wide\">Occurs</th>\n            <th>Pseudocode</th>\n          </tr>\n        </thead>\n        <tbody>\n          <tr>\n            <td>\n              onOnScreen\n            </td>\n            <td>\n              Any part of element is in current scroll viewport\n            </td>\n            <td>\n              <div class=\"code\" data-type=\"javascript\">screen.bottom >= element.top && screen.bottom <= element.bottom</div>\n            </td>\n          </tr>\n          <tr>\n            <td>\n              onOffScreen\n            </td>\n            <td>\n              No part of element is in current scroll viewport\n            </td>\n            <td>\n              <div class=\"code\" data-type=\"javascript\">screen.bottom <= element.top || screen.top >= element.bottom</div>\n            </td>\n          </tr>\n          <tr>\n            <td>\n              onTopVisible\n            </td>\n            <td>\n              Element's top edge has passed bottom of screen\n            </td>\n            <td>\n              <div class=\"code\" data-type=\"javascript\">screen.bottom >= element.top</div>\n            </td>\n          </tr>\n          <tr>\n            <td>\n              onTopPassed\n            </td>\n            <td>\n              Element's top edge has passed top of the screen\n            </td>\n            <td>\n              <div class=\"code\" data-type=\"javascript\">screen.top >= element.top</div>\n            </td>\n          </tr>\n          <tr>\n            <td>\n              onBottomVisible\n            </td>\n            <td>\n              Element's bottom edge has passed bottom of screen\n            </td>\n            <td>\n              <div class=\"code\" data-type=\"javascript\">screen.bottom >= element.top</div>\n            </td>\n          </tr>\n          <tr>\n            <td>\n              onPassing\n            </td>\n            <td>\n              Any part of an element is visible on screen\n            </td>\n            <td>\n              <div class=\"code\" data-type=\"javascript\">screen.bottom >= element.top && screen.top < element.bottom</div>\n            </td>\n          </tr>\n          <tr>\n            <td>\n              onBottomPassed\n            </td>\n            <td>\n              Element's bottom edge has passed top of screen\n            </td>\n            <td>\n              <div class=\"code\" data-type=\"javascript\">screen.top >= element.bottom</div>\n            </td>\n          </tr>\n        </tbody>\n      </table>\n    </div>\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Grouped Events</h4>\n      <p><code>onPassed</code> allows you to specify a collection of callbacks that occur after different percentages or pixels of an element are passed</p>\n      <table class=\"ui celled definition table\">\n        <thead>\n          <tr>\n            <th class=\"three wide\">Event</th>\n            <th class=\"six wide\">Occurs</th>\n            <th>Example</th>\n          </tr>\n        </thead>\n        <tbody>\n          <tr>\n            <td>\n              onPassed {}\n            </td>\n            <td>\n              A distance from the top of an element's content has been passed, either as a percentage or in pixels\n            </td>\n            <td>\n              <div class=\"code\" data-type=\"javascript\">\n              onPassed: {\n                40: function() {\n                  // do something when having passed 40 pixels.\n                },\n                '80%': function() {\n                  // do something at 80%\n                }\n              }\n              </div>\n            </td>\n          </tr>\n        </tbody>\n      </table>\n    </div>\n\n    <div class=\"no example\">\n\n      <h4 class=\"ui header\">Reverse Events</h4>\n      <p>Reverse events will occur under the same conditions but as a user scrolls back up the page.</p>\n      <table class=\"ui celled definition table\">\n        <thead>\n          <tr>\n            <th class=\"three wide\">Event</th>\n            <th class=\"six wide\">Occurs</th>\n            <th>Pseudocode</th>\n          </tr>\n        </thead>\n        <tbody>\n          <tr>\n            <td>\n              onTopVisibleReverse\n            </td>\n            <td>\n              Element's top edge has not passed bottom of screen\n            </td>\n            <td>\n              <div class=\"code\" data-type=\"javascript\">screen.bottom >= element.top</div>\n            </td>\n          </tr>\n          <tr>\n            <td>\n              onTopPassedReverse\n            </td>\n            <td>\n              Element's top edge has not passed top of the screen\n            </td>\n            <td>\n              <div class=\"code\" data-type=\"javascript\">screen.top >= element.top</div>\n            </td>\n          </tr>\n          <tr>\n            <td>\n              onBottomVisibleReverse\n            </td>\n            <td>\n              Element's bottom edge has not passed bottom of screen\n            </td>\n            <td>\n              <div class=\"code\" data-type=\"javascript\">screen.bottom >= element.top</div>\n            </td>\n          </tr>\n          <tr>\n            <td>\n              onPassingReverse\n            </td>\n            <td>\n              Element's top has not passed top of screen but bottom has\n            </td>\n            <td>\n              <div class=\"code\" data-type=\"javascript\">screen.bottom >= element.top && screen.top < element.bottom</div>\n            </td>\n          </tr>\n          <tr>\n            <td>\n              onBottomPassedReverse\n            </td>\n            <td>\n              Element's bottom edge has not passed top of screen\n            </td>\n            <td>\n              <div class=\"code\" data-type=\"javascript\">screen.top >= element.bottom</div>\n            </td>\n          </tr>\n        </tbody>\n      </table>\n    </div>\n\n    <h2 class=\"ui header\">Behaviors</h2>\n\n    <div class=\"no example\">\n\n      <p>Visibility includes several useful behaviors for interacting with the component</p>\n      <table class=\"ui celled definition table\">\n        <thead>\n          <tr>\n            <th class=\"three wide\">Behavior</th>\n            <th class=\"six wide\">Usage</th>\n          </tr>\n        </thead>\n        <tbody>\n          <tr>\n            <td>\n              disable callbacks\n            </td>\n            <td>\n              Disable callbacks temporarily. This is useful if you need to adjust scroll position and do not want to trigger callbacks during the position change.\n            </td>\n          </tr>\n          <tr>\n            <td>\n              enable callbacks\n            </td>\n            <td>\n              Re-enable callbacks\n            </td>\n          </tr>\n          <tr>\n            <td>\n              is on screen\n            </td>\n            <td>\n              Returns whether element is on screen\n            </td>\n          </tr>\n          <tr>\n            <td>\n              is off screen\n            </td>\n            <td>\n              Returns whether element is off screen\n            </td>\n          </tr>\n          <tr>\n            <td>\n              get pixels passed\n            </td>\n            <td>\n              Returns number of pixels passed in current element from top of element\n            </td>\n          </tr>\n          <tr>\n            <td>\n              get element calculations\n            </td>\n            <td>\n              Returns element calculations as object\n            </td>\n          </tr>\n          <tr>\n            <td>\n              get screen calculations\n            </td>\n            <td>\n              Returns screen calculations as object\n            </td>\n          </tr>\n          <tr>\n            <td>\n              get screen size\n            </td>\n            <td>\n              Returns screen size as object\n            </td>\n          </tr>\n        </tbody>\n      </table>\n    </div>\n\n\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"examples\">\n\n    <h2 class=\"ui dividing header\">Examples</h2>\n\n    <div class=\"visibility infinite example\">\n      <h4 class=\"ui header\">Infinite Scroll</h4>\n      <p>As an alternative to pagination you can use <code>onBottomVisible</code> to load content automatically when the bottom of a container is reached.</p>\n\n      <div class=\"evaluated code\" data-type=\"javascript\">\n        $('.infinite.example .demo.segment')\n          .visibility({\n            once: false,\n            // update size when new content loads\n            observeChanges: true,\n            // load content on bottom edge visible\n            onBottomVisible: function() {\n              // loads a max of 5 times\n              window.loadFakeContent();\n            }\n          })\n        ;\n      </div>\n\n      <div class=\"ui demo segment\">\n        <h3 class=\"ui dividing center aligned header\">Infinite Scroll Example</h3>\n        <img src=\"/images/wireframe/centered-paragraph.png\" class=\"ui wireframe image\">\n        <div class=\"ui divider\"></div>\n        <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n        <div class=\"ui divider\"></div>\n        <img src=\"/images/wireframe/media-paragraph.png\" class=\"ui wireframe image\">\n        <div class=\"ui divider\"></div>\n        <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n        <div class=\"ui divider\"></div>\n        <div class=\"ui large centered inline text loader\">\n          Adding more content...\n        </div>\n      </div>\n    </div>\n\n    <div class=\"visibility shown example\">\n      <h4 class=\"ui header\">Lazy Loading Images</h4>\n      <p>Visibility includes several shortcuts for setting up common visibility events. Using the setting <code>type: 'image'</code> will automatically attach events to an images <code>topVisible</code> to load the contents of <code>data-src</code> as <code>src</code>.</p>\n\n      <p>You can specify a placeholder image as the current <code>src</code> to make sure content doesn't jump when an image loads, or you can specify no placeholder and have the image appear.</p>\n\n      <p>By default images will appear without animation, however you can also specify a named <a href=\"/modules/transition.html\">transition</a>, and a duration that should be used for animating the image into view</p>\n\n      <div class=\"evaluated code\" data-type=\"javascript\">\n        $('.demo.items .image img')\n          .visibility({\n            type       : 'image',\n            transition : 'fade in',\n            duration   : 1000\n          })\n        ;\n      </div>\n      <div class=\"ui divided demo items\">\n        <div class=\"item\">\n          <div class=\"image\">\n            <img src=\"/images/wireframe/square-image.png\" data-src=\"/images/avatar/large/elliot.jpg\">\n          </div>\n          <div class=\"content\">\n            <h2 class=\"ui header\">Elliot Fu</h2>\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n            <div class=\"ui primary button\">Add Friend</div>\n            <div class=\"ui right floated button\">View <i class=\"right chevron icon\"></i></div>\n          </div>\n        </div>\n        <div class=\"item\">\n          <div class=\"image\">\n            <img src=\"/images/wireframe/square-image.png\" data-src=\"/images/avatar/large/helen.jpg\">\n          </div>\n          <div class=\"content\">\n            <h2 class=\"ui header\">Helen Troy</h2>\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n            <div class=\"ui primary button\">Add Friend</div>\n            <div class=\"ui right floated button\">View <i class=\"right chevron icon\"></i></div>\n          </div>\n        </div>\n        <div class=\"item\">\n          <div class=\"image\">\n            <img src=\"/images/wireframe/square-image.png\" data-src=\"/images/avatar/large/jenny.jpg\">\n          </div>\n          <div class=\"content\">\n            <h2 class=\"ui header\">Jenny Hess</h2>\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n            <div class=\"ui primary button\">Add Friend</div>\n            <div class=\"ui right floated button\">View <i class=\"right chevron icon\"></i></div>\n          </div>\n        </div>\n        <div class=\"item\">\n          <div class=\"image\">\n            <img src=\"/images/wireframe/square-image.png\" data-src=\"/images/avatar/large/veronika.jpg\">\n          </div>\n          <div class=\"content\">\n            <h2 class=\"ui header\">Veronika Ossi</h2>\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n            <div class=\"ui primary button\">Add Friend</div>\n            <div class=\"ui right floated button\">View <i class=\"right chevron icon\"></i></div>\n          </div>\n        </div>\n        <div class=\"item\">\n          <div class=\"image\">\n            <img src=\"/images/wireframe/square-image.png\" data-src=\"/images/avatar/large/stevie.jpg\">\n          </div>\n          <div class=\"content\">\n            <h2 class=\"ui header\">Stevie</h2>\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n            <div class=\"ui primary button\">Add Friend</div>\n            <div class=\"ui right floated button\">View <i class=\"right chevron icon\"></i></div>\n          </div>\n        </div>\n        <div class=\"item\">\n          <div class=\"image\">\n            <img src=\"/images/wireframe/square-image.png\" data-src=\"/images/avatar/large/steve.jpg\">\n          </div>\n          <div class=\"content\">\n            <h2 class=\"ui header\">Steve Jobes</h2>\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n            <div class=\"ui primary button\">Add Friend</div>\n            <div class=\"ui right floated button\">View <i class=\"right chevron icon\"></i></div>\n          </div>\n        </div>\n        <div class=\"item\">\n          <div class=\"image\">\n            <img src=\"/images/wireframe/square-image.png\" data-src=\"/images/avatar/large/ade.jpg\">\n          </div>\n          <div class=\"content\">\n            <h2 class=\"ui header\">Ade</h2>\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n            <div class=\"ui primary button\">Add Friend</div>\n            <div class=\"ui right floated button\">View <i class=\"right chevron icon\"></i></div>\n          </div>\n        </div>\n        <div class=\"item\">\n          <div class=\"image\">\n            <img src=\"/images/wireframe/square-image.png\" data-src=\"/images/avatar/large/chris.jpg\">\n          </div>\n          <div class=\"content\">\n            <h2 class=\"ui header\">Chris</h2>\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n            <div class=\"ui primary button\">Add Friend</div>\n            <div class=\"ui right floated button\">View <i class=\"right chevron icon\"></i></div>\n          </div>\n        </div>\n        <div class=\"item\">\n          <div class=\"image\">\n            <img src=\"/images/wireframe/square-image.png\" data-src=\"/images/avatar/large/joe.jpg\">\n          </div>\n          <div class=\"content\">\n            <h2 class=\"ui header\">Joe Henderson</h2>\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n            <div class=\"ui primary button\">Add Friend</div>\n            <div class=\"ui right floated button\">View <i class=\"right chevron icon\"></i></div>\n          </div>\n        </div>\n        <div class=\"item\">\n          <div class=\"image\">\n            <img src=\"/images/wireframe/square-image.png\" data-src=\"/images/avatar/large/laura.jpg\">\n          </div>\n          <div class=\"content\">\n            <h2 class=\"ui header\">Laura</h2>\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n            <div class=\"ui primary button\">Add Friend</div>\n            <div class=\"ui right floated button\">View <i class=\"right chevron icon\"></i></div>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"changing visibility example\">\n      <h4 class=\"ui header\">Gradual Changes</h4>\n      <p>Each callback receives all calculated values as its first parameter, allowing you to adjust an element using </p>\n\n      <div class=\"evaluated code\" data-type=\"javascript\">\n        $('.changing.example .demo.segment')\n          .visibility({\n            once       : false,\n            continuous : true,\n            onPassing  : function(calculations) {\n              var newColor = 'rgba(0, 0, 0, ' + calculations.percentagePassed +')';\n              $(this)\n                .css('background-color', newColor)\n              ;\n            }\n          })\n        ;\n      </div>\n      <div class=\"ui demo segment\" style=\"height: 1000px;\"></div>\n    </div>\n\n\n    <div class=\"visibility overlay example\">\n      <h4 class=\"ui header\">Fixing Content To Viewport</h4>\n      <p>Visibility provides a lightweight method for sticking content to a page's viewport. Using <code>type: fixed</code> will add the class <code>fixed</code> after an element is passed in the viewport. Using this class name you can assign special layout conditions to an item once it is passed.</p>\n      <p>Using the special visibility type <code>fixed</code> will automatically create a placeholder element, which will be shown or hidden after an element is passed, to ensure that the page's position does not change when the element is \"fixed\" and removed from normal layout flow.</p>\n      <p>In this example, when an element is passed we fix it to the viewport, add a background color and box shadow so that it can float above other content. We also show an adjacent placeholder element which makes sure that content stays offset the same as if the menu was still in content flow</p>\n      <div class=\"ui ignored warning message\">\n        You may need to adjust your fixed content's <code>z-index</code> to ensure it appears above other page content.\n      </div>\n      <div class=\"evaluated code\" data-type=\"javascript\">\n        $('.overlay.example .overlay')\n          .visibility({\n            type   : 'fixed',\n            offset : 15 // give some space from top of screen\n          })\n        ;\n      </div>\n      <div class=\"code\" data-type=\"css\">\n      .visibility.example .overlay {\n        background-color: #FFFFFF;\n        padding: 0em;\n        box-shadow: 0px 0px 0px rgba(0, 0, 0, 0);\n        transition: all 0.5s ease;\n        background: transparent;\n      }\n      /* change style */\n      .visibility.example .fixed.overlay {\n        position: fixed;\n        padding: 1em;\n        box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2);\n      }\n      </div>\n      <div class=\"overlay\">\n        <div class=\"ui secondary menu\">\n          <a class=\"item\">\n            <i class=\"sidebar icon\"></i> Menu\n          </a>\n          <a class=\"item\">Option 1</a>\n          <a class=\"item\">Option 2</a>\n          <a class=\"item\">Option 3</a>\n        </div>\n      </div>\n      <div class=\"ui clearing divider\"></div>\n      <img src=\"/images/wireframe/centered-paragraph.png\" class=\"ui wireframe image\">\n      <div class=\"ui divider\"></div>\n      <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n      <div class=\"ui divider\"></div>\n      <img src=\"/images/wireframe/media-paragraph.png\" class=\"ui wireframe image\">\n      <div class=\"ui divider\"></div>\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n      <div class=\"ui divider\"></div>\n      <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n      <div class=\"ui divider\"></div>\n      <img src=\"/images/wireframe/centered-paragraph.png\" class=\"ui wireframe image\">\n      <div class=\"ui divider\"></div>\n      <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n      <div class=\"ui divider\"></div>\n      <img src=\"/images/wireframe/media-paragraph.png\" class=\"ui wireframe image\">\n      <div class=\"ui divider\"></div>\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n    </div>\n  </div>\n\n\n  <div class=\"ui tab\" data-tab=\"settings\">\n\n    <h2 class=\"ui header\">Settings</h2>\n\n    <div class=\"no example\">\n\n      <h4 class=\"ui header\">\n        Functionality\n        <div class=\"sub header\">Settings to configure visibility behavior</div>\n      </h4>\n      <table class=\"ui celled sortable definition table segment\">\n        <thead>\n          <th>Setting</th>\n          <th class=\"four wide\">Default</th>\n          <th>Description</th>\n        </thead>\n        <tbody>\n          <tr>\n            <td>once</td>\n            <td>true</td>\n            <td>When set to false a callback will occur each time an element <b>passes the threshold</b> for a condition.</td>\n          </tr>\n          <tr>\n            <td>continuous</td>\n            <td>false</td>\n            <td>When set to true a callback will occur anytime an element <b>passes a condition</b>  not just immediately after the threshold is met.</td>\n          </tr>\n          <tr>\n            <td>type</td>\n            <td>false</td>\n            <td>Set to <code>image</code> to load images when on screen. Set to <code>fixed</code> to add class name <code>fixed</code> when passed.</td>\n          </tr>\n          <tr>\n            <td>initialCheck</td>\n            <td>true</td>\n            <td>Whether visibility conditions should be checked immediately on init</td>\n          </tr>\n          <tr>\n            <td>context</td>\n            <td>window</td>\n            <td>The scroll context visibility should use.</td>\n          </tr>\n          <tr>\n            <td>refreshOnLoad</td>\n            <td>true</td>\n            <td>Whether visibility conditions should be checked on window <code>load</code>. This ensures that after images load content positions will be updated correctly.</td>\n          </tr>\n          <tr>\n            <td>refreshOnResize</td>\n            <td>true</td>\n            <td>Whether visibility conditions should be checked on window <code>resize</code>. Useful when content resizes causes continuous changes in position</td>\n          </tr>\n          <tr>\n            <td>checkOnRefresh</td>\n            <td>true</td>\n            <td>Whether visibility conditions should be checked on calls to <code>refresh</code>. These calls can be triggered from either <code>resize</code>, <code>load</code> or manually calling <code>$('.foo').visibility('refresh')</code></td>\n          </tr>\n          <tr>\n            <td>zIndex</td>\n            <td>1</td>\n            <td>Specify a z-index when using <code>type: 'fixed'</code>. <div class=\"ui teal horizontal label\">New in 2.2</div></td>\n          </tr>\n          <tr>\n            <td>offset</td>\n            <td>0</td>\n            <td>Value that context <code>scrollTop</code> should be adjusted in pixels. Useful for making content appear below content fixed to the page.</td>\n          </tr>\n          <tr>\n            <td>includeMargin</td>\n            <td>false</td>\n            <td>Whether element calculations should include its margin</td>\n          </tr>\n          <tr>\n            <td>throttle</td>\n            <td>false</td>\n            <td>When set to an integer, scroll position will be debounced using this ms value. <code>false</code> will debounce with <code>requestAnimationFrame</code>.</td>\n          </tr>\n          <tr>\n            <td>observeChanges</td>\n            <td>true</td>\n            <td>Whether to automatically refresh content when changes are made to the element's DOM subtree </td>\n          </tr>\n          <tr>\n            <td>transition</td>\n            <td>false</td>\n            <td>When using <code>type: image</code> allows you to specify transition when showing a loaded image</td>\n          </tr>\n          <tr>\n            <td>duration</td>\n            <td>1000</td>\n            <td>When using <code>type: image</code> allows you to specify transition duration</td>\n          </tr>\n        </tbody>\n      </table>\n    </div>\n\n\n    <div class=\"no example\">\n\n      <h4 class=\"ui header\">Visibility Callbacks</h4>\n      <p>Callbacks that occur on named visibility events</p>\n\n      <table class=\"ui celled sortable definition table segment\">\n        <thead>\n          <tr>\n            <th class=\"four wide\"></th>\n            <th>Context</th>\n            <th>Description</th>\n          </tr>\n        </thead>\n        <tbody>\n          <tr>\n            <td>onTopVisible</td>\n            <td>$element</td>\n            <td>Element's top edge has passed bottom of screen</td>\n          </tr>\n          <tr>\n            <td>onTopPassed</td>\n            <td>$element</td>\n            <td>Element's top edge has passed top of the screen</td>\n          </tr>\n          <tr>\n            <td>onBottomVisible</td>\n            <td>$element</td>\n            <td>Element's bottom edge has passed bottom of screen</td>\n          </tr>\n          <tr>\n            <td>onPassing</td>\n            <td>$element</td>\n            <td>Any part of an element is visible on screen</td>\n            </td>\n          </tr>\n          <tr>\n            <td>onBottomPassed</td>\n            <td>$element</td>\n            <td>Element's bottom edge has passed top of screen</td>\n          </tr>\n          <tr>\n            <td>onTopVisibleReverse</td>\n            <td>$element</td>\n            <td>Element's top edge has not passed bottom of screen</td>\n          </tr>\n          <tr>\n            <td>onTopPassedReverse</td>\n            <td>$element</td>\n            <td>Element's top edge has not passed top of the screen</td>\n          </tr>\n          <tr>\n            <td>onBottomVisibleReverse</td>\n            <td>$element</td>\n            <td>Element's bottom edge has not passed bottom of screen</td>\n          </tr>\n          <tr>\n            <td>onPassingReverse</td>\n            <td>$element</td>\n            <td>Element's top has not passed top of screen but bottom has</td>\n            </td>\n          </tr>\n          <tr>\n            <td>onBottomPassedReverse</td>\n            <td>$element</td>\n            <td>Element's bottom edge has not passed top of screen</td>\n          </tr>\n        </tbody>\n      </table>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">\n        Image Callbacks\n        <div class=\"ui teal horizontal label\">New in 2.2</div>\n      </h4>\n      <p>Callbacks that occur only when using <a href=\"#lazy-loading-images\"><code>type: 'fixed'</code></a></p>\n\n      <table class=\"ui celled sortable definition table segment\">\n        <thead>\n          <tr>\n            <th class=\"four wide\"></th>\n            <th>Context</th>\n            <th>Description</th>\n          </tr>\n        </thead>\n        <tbody>\n          <tr>\n            <td>onLoad</td>\n            <td>img</td>\n            <td>Occurs after an image has completed loading</td>\n          </tr>\n          <tr>\n            <td>onAllLoaded</td>\n            <td>last loaded img</td>\n            <td>Occurs after all <code>img</code> initialized at the same time have loaded.</td>\n          </tr>\n        </tbody>\n      </table>\n    </div>\n    <div class=\"no example\">\n\n      <h4 class=\"ui header\">\n        Fixed Callbacks\n        <div class=\"ui teal horizontal label\">New in 2.2</div>\n      </h4>\n      <p>Callbacks that occur only when using <a href=\"#fixing-content-to-viewport\"><code>type: 'fixed'</code></a></p>\n\n      <table class=\"ui celled sortable definition table segment\">\n        <thead>\n          <tr>\n            <th class=\"four wide\"></th>\n            <th>Context</th>\n            <th>Description</th>\n          </tr>\n        </thead>\n        <tbody>\n          <tr>\n            <td>onFixed</td>\n            <td>$element</td>\n            <td>Occurs after element has been assigned position fixed</td>\n          </tr>\n          <tr>\n            <td>onUnfixed</td>\n            <td>$element</td>\n            <td>Occurs after element has been removed from fixed position</td>\n          </tr>\n        </tbody>\n      </table>\n    </div>\n\n    <div class=\"no example\">\n\n      <h4 class=\"ui header\">Utility Callbacks</h4>\n      <p>Callbacks that occur on named visibility events</p>\n\n      <table class=\"ui celled sortable definition table segment\">\n        <thead>\n          <tr>\n            <th class=\"four wide\"></th>\n            <th>Context</th>\n            <th>Description</th>\n          </tr>\n        </thead>\n        <tbody>\n          <tr>\n            <td>onUpdate(calculations)</td>\n            <td>$element</td>\n            <td>Occurs each time an elements calculations are updated</td>\n          </tr>\n          <tr>\n            <td>onRefresh</td>\n            <td>$element</td>\n            <td>Occurs whenever element's visibility is refreshed</td>\n          </tr>\n        </tbody>\n      </table>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">\n        DOM Settings\n        <div class=\"sub header\">DOM settings specify how this module should interface with the DOM</div>\n      </h4>\n      <table class=\"ui celled sortable definition table segment\">\n        <thead>\n          <th class=\"three wide\">Setting</th>\n          <th class=\"six wide\">Default</th>\n          <th>Description</th>\n        </thead>\n        <tbody>\n          <tr>\n            <td>namespace</td>\n            <td>visibility</td>\n            <td>Event namespace. Makes sure module teardown does not effect other events attached to an element.</td>\n          </tr>\n          <tr>\n            <td>className</td>\n            <td>\n              <div class=\"code\">\n              className : {\n                fixed     : 'fixed',\n              }\n              </div>\n            </td>\n            <td>Class names used to attach style to state</td>\n          </tr>\n        </tbody>\n      </table>\n    </div>\n\n    <div class=\"no example\">\n\n      <h4 class=\"ui header\">\n        Debug Settings\n        <div class=\"sub header\">Debug settings controls debug output to the console</div>\n      </h4>\n\n      <table class=\"ui celled sortable definition table segment\">\n        <thead>\n          <th>Setting</th>\n          <th class=\"four wide\">Default</th>\n          <th>Description</th>\n        </thead>\n        <tbody>\n          <tr>\n            <td>name</td>\n            <td>Visibility</td>\n            <td>Name used in debug logs</td>\n          </tr>\n          <tr>\n            <td>silent</td>\n            <td>False</td>\n            <td>Silences all console output including error messages, regardless of other debug settings.</td>\n          </tr>\n          <tr>\n            <td>debug</td>\n            <td>False</td>\n            <td>Provides standard debug output to console</td>\n          </tr>\n          <tr>\n            <td>performance</td>\n            <td>True</td>\n            <td>Provides standard debug output to console</td>\n          </tr>\n          <tr>\n            <td>verbose</td>\n            <td>True</td>\n            <td>Provides ancillary debug output to console</td>\n          </tr>\n          <tr>\n            <td>errors</td>\n            <td colspan=\"2\">\n              <div class=\"code\">\n              error : {\n                method : 'The method you called is not defined.',\n              }\n              </div>\n            </td>\n          </tr>\n        </tbody>\n      </table>\n    </div>\n\n  </div>\n\n\n</div>\n"
  },
  {
    "path": "server/documents/cla.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'cla'\ntitle       : \"Contributor License Agreement\"\ndescription : 'Contribute to Semantic UI responsibly'\ntype        : 'Legal'\n---\n\n<%- @partial('header', { tabs: {  individual: 'Individual', entity: 'Entity' } }) %>\n\n<div class=\"main ui container\">\n  <div class=\"ui info icon message\">\n    <i class=\"help circle icon\"></i>\n    <div class=\"content\">\n      <div class=\"header\">What's in a Contributor License Agreement (CLA)?</div>\n      This CLA makes sure that you are entitled to contribute to Semantic UI (you are not bound by a policy that prohibits you) and that you understand parts of your code may be used in derivative works. Additionally this agreement helps to legally protect Semantic UI should you later decide that you no longer want to contribute your code.\n    </div>\n  </div>\n  <div class=\"ui tab active\" data-tab=\"individual\">\n    <h1>Semantic UI Individual Contributor License Agreement</h1>\n\n    <p>Thank you for your interest in contributing to Semantic UI (\"We\" or \"Us\").</p>\n\n    <p>This contributor agreement (\"Agreement\") documents the rights granted by contributors to Us. To make this document effective, please sign it and send it to Us by email or electronic submission, following the instructions at [URL]. This is a legally binding document, so please read it carefully before agreeing to it. The Agreement may cover more than one software project managed by Us.</p>\n\n    <h2 class=\"ui header\">1. Definitions</h2>\n\n    <p>\"You\" means the individual who Submits a Contribution to Us.</p>\n\n    <p>\"Contribution\" means any work of authorship that is Submitted by You to Us in which You own or assert ownership of the Copyright. If You do not own the Copyright in the entire work of authorship, please follow the instructions in .</p>\n\n    <p>\"Copyright\" means all rights protecting works of authorship owned or controlled by You, including copyright, moral and neighboring rights, as appropriate, for the full term of their existence including any extensions by You.</p>\n\n    <p>\"Material\" means the work of authorship which is made available by Us to third parties. When this Agreement covers more than one software project, the Material means the work of authorship to which the Contribution was Submitted. After You Submit the Contribution, it may be included in the Material.</p>\n\n    <p>\"Submit\" means any form of electronic, verbal, or written communication sent to Us or our representatives, including but not limited to electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, Us for the purpose of discussing and improving the Material, but excluding communication that is conspicuously marked or otherwise designated in writing by You as \"Not a Contribution.\"</p>\n\n    <p>\"Submission Date\" means the date on which You Submit a Contribution to Us.</p>\n\n    <p>\"Effective Date\" means the date You execute this Agreement or the date You first Submit a Contribution to Us, whichever is earlier.</p>\n\n    <p>\"Media\" means any portion of a Contribution which is not software.</p>\n\n    <h2 class=\"ui header\">2. Grant of Rights</h2>\n\n    <h3>2.1 Copyright License</h3>\n\n    <p>(a) You retain ownership of the Copyright in Your Contribution and have the same rights to use or license the Contribution which You would have had without entering into the Agreement.</p>\n\n    <p>(b) To the maximum extent permitted by the relevant law, You grant to Us a perpetual, worldwide, non-exclusive, transferable, royalty-free, irrevocable license under the Copyright covering the Contribution, with the right to sublicense such rights through multiple tiers of sublicensees, to reproduce, modify, display, perform and distribute the Contribution as part of the Material; provided that this license is conditioned upon compliance with Section 2.3.</p>\n\n\n    <h3>2.2 Patent License</h3>\n\n    <p>For patent claims including, without limitation, method, process, and apparatus claims which You  own, control or have the right to grant, now or in the future, You grant to Us a perpetual, worldwide, non-exclusive, transferable, royalty-free, irrevocable patent license, with the right to sublicense these rights to multiple tiers of sublicensees, to make, have made, use, sell, offer for sale, import and otherwise transfer the Contribution and the Contribution in combination with the Material (and portions of such combination). This license is granted only to the extent that the exercise of the licensed rights infringes such patent claims; and provided that this license is conditioned upon compliance with Section 2.3.</p>\n\n    <h3>2.3 Outbound License</h3>\n\n    <p><!--(Option One)-->As a condition on the grant of rights in Sections 2.1 and 2.2, We agree to license the Contribution only under the terms of the license or licenses which We are using on the Submission Date for the Material (including any rights to adopt any future version of a license if permitted).</p>\n\n\n    <p>In addition, We may use the following licenses for Media in the Contribution: Creative Commons Attribution 3.0 (including any right to adopt any future version of a license if permitted).</p>\n\n    <p><span class=\"heading\">2.4 Moral Rights.</span> If moral rights apply to the Contribution, to the maximum extent permitted by law, You waive and agree not to assert such moral rights against Us or our successors in interest, or any of our licensees, either direct or indirect.</p>\n\n    <p><span class=\"heading\">2.5 Our Rights.</span> You acknowledge that We are not obligated to use Your Contribution as part of the Material and may decide to include any Contribution We consider appropriate.</p>\n\n    <p><span class=\"heading\">2.6 Reservation of Rights.</span> Any rights not expressly  licensed under this section are expressly reserved by You.</p>\n\n    <h2 class=\"ui header\">3. Agreement</h2>\n\n    <p>You confirm that:</p>\n\n    <p>(a) You have the legal authority to enter into this Agreement.</p>\n\n    <p>(b) You  own the Copyright and patent claims covering the Contribution which are required to grant the rights under Section 2.</p>\n\n    <p>(c) The grant of rights under Section 2 does not violate any grant of rights which You have made to third parties, including Your employer.  If You are an employee, You have had Your employer approve this Agreement or sign the Entity version of this document.  If You are less than eighteen years old, please have Your parents or guardian sign the Agreement.</p>\n\n    <p>(d) You have followed the instructions in , if You do not own the Copyright in the entire work of authorship Submitted.</p>\n\n    <h2 class=\"ui header\">4. Disclaimer</h2>\n\n    <p>EXCEPT FOR THE EXPRESS WARRANTIES IN SECTION 3, THE CONTRIBUTION IS PROVIDED \"AS IS\". MORE PARTICULARLY, ALL EXPRESS OR IMPLIED WARRANTIES INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE EXPRESSLY DISCLAIMED BY YOU TO US. TO THE EXTENT THAT ANY SUCH WARRANTIES CANNOT BE DISCLAIMED, SUCH WARRANTY IS LIMITED IN DURATION TO THE MINIMUM PERIOD PERMITTED BY LAW.</p>\n\n    <h2 class=\"ui header\">5. Consequential Damage Waiver</h2>\n\n    <p>TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT WILL YOU  BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF ANTICIPATED SAVINGS, LOSS OF DATA, INDIRECT, SPECIAL, INCIDENTAL, CONSEQUENTIAL AND EXEMPLARY DAMAGES ARISING OUT OF THIS AGREEMENT REGARDLESS OF THE LEGAL OR EQUITABLE THEORY (CONTRACT, TORT OR OTHERWISE) UPON WHICH THE CLAIM IS BASED.</p>\n\n    <h2 class=\"ui header\">6. Miscellaneous</h2>\n\n    <p>6.1 This Agreement will be governed by and construed in accordance with the laws of United States of America excluding its conflicts of law provisions. Under certain circumstances, the governing law in this section might be superseded by the United Nations Convention on Contracts for the International Sale of Goods (\"UN Convention\") and the parties intend to avoid the application of the UN Convention to this Agreement and, thus, exclude the application of the UN Convention in its entirety to this Agreement.</p>\n\n    <p>6.2 This Agreement sets out the entire agreement between You and Us for Your Contributions to Us and overrides all other agreements or understandings.</p>\n\n    <p>6.3  If You or We assign the rights or obligations received through this Agreement to a third party, as a condition of the assignment, that third party must agree in writing to abide by all the rights and obligations in the Agreement.</p>\n\n    <p>6.4 The failure of either party to require performance by the other party of any provision of this Agreement in one situation shall not affect the right of a party to require such performance at any time in the future. A waiver of performance under a provision in one situation shall not be considered a waiver of the performance of the provision in the future or a waiver of the provision in its entirety.</p>\n\n    <p>6.5 If any provision of this Agreement is found void and unenforceable, such provision will be replaced to the extent possible with a provision that comes closest to the meaning of the original provision and which is enforceable.  The terms and conditions set forth in this Agreement shall apply notwithstanding any failure of essential purpose of this Agreement or any limited remedy to the maximum extent possible under law.</p>\n  </div>\n  <div class=\"ui tab\" data-tab=\"entity\">\n    <h1>Semantic UI Entity Contributor License Agreement</h1>\n    <p>Thank you for your interest in contributing to Semantic UI (\"We\" or \"Us\").</p>\n\n    <p>This contributor agreement (\"Agreement\") documents the rights granted by contributors to Us. To make this document effective, please sign it and send it to Us by email or electronic submission, following the instructions at . This is a legally binding document, so please read it carefully before agreeing to it. The Agreement may cover more than one software project managed by Us.</p>\n\n    <h2 class=\"ui header\">1. Definitions</h2>\n\n    <p>\"You\" means any Legal Entity on behalf of whom a Contribution has been received by Us. \"Legal Entity\" means an entity which is not a natural person. \"Affiliates\" means other Legal Entities that control, are controlled by, or under common control with that Legal Entity. For the purposes of this definition, \"control\" means (i) the power, direct or indirect, to cause the direction or management of such Legal Entity, whether by contract or otherwise, (ii) ownership of fifty percent (50%) or more of the outstanding shares or securities which vote to elect the management or other persons who direct such Legal Entity or (iii) beneficial ownership of such entity.</p>\n\n    <p>\"Contribution\" means any work of authorship that is Submitted by You to Us in which You own or assert ownership of the Copyright. If You do not own the Copyright in the entire work of authorship, please follow the instructions in .</p>\n\n    <p>\"Copyright\" means all rights protecting works of authorship owned or controlled by You or Your Affiliates, including copyright, moral and neighboring rights, as appropriate, for the full term of their existence including any extensions by You.</p>\n\n    <p>\"Material\" means the work of authorship which is made available by Us to third parties. When this Agreement covers more than one software project, the Material means the work of authorship to which the Contribution was Submitted. After You Submit the Contribution, it may be included in the Material.</p>\n\n    <p>\"Submit\" means any form of electronic, verbal, or written communication sent to Us or our representatives, including but not limited to electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, Us for the purpose of discussing and improving the Material, but excluding communication that is conspicuously marked or otherwise designated in writing by You as \"Not a Contribution.\"</p>\n\n    <p>\"Submission Date\" means the date on which You Submit a Contribution to Us.</p>\n\n    <p>\"Effective Date\" means the date You execute this Agreement or the date You first Submit a Contribution to Us, whichever is earlier.</p>\n\n    <p>\"Media\" means any portion of a Contribution which is not software.</p>\n\n    <h2 class=\"ui header\">2. Grant of Rights</h2>\n\n    <h3>2.1 Copyright License</h3>\n\n    <p>(a) You retain ownership of the Copyright in Your Contribution and have the same rights to use or license the Contribution which You would have had without entering into the Agreement.</p>\n\n    <p>(b) To the maximum extent permitted by the relevant law, You grant to Us a perpetual, worldwide, non-exclusive, transferable, royalty-free, irrevocable license under the Copyright covering the Contribution, with the right to sublicense such rights through multiple tiers of sublicensees, to reproduce, modify, display, perform and distribute the Contribution as part of the Material; provided that this license is conditioned upon compliance with Section 2.3.</p>\n\n\n    <h3>2.2 Patent License</h3>\n\n    <p>For patent claims including, without limitation, method, process, and apparatus claims which You or Your Affiliates own, control or have the right to grant, now or in the future, You grant to Us a perpetual, worldwide, non-exclusive, transferable, royalty-free, irrevocable patent license, with the right to sublicense these rights to multiple tiers of sublicensees, to make, have made, use, sell, offer for sale, import and otherwise transfer the Contribution and the Contribution in combination with the Material (and portions of such combination). This license is granted only to the extent that the exercise of the licensed rights infringes such patent claims; and provided that this license is conditioned upon compliance with Section 2.3.</p>\n\n    <h3>2.3 Outbound License</h3>\n\n    <p><!--(Option One)-->As a condition on the grant of rights in Sections 2.1 and 2.2, We agree to license the Contribution only under the terms of the license or licenses which We are using on the Submission Date for the Material (including any rights to adopt any future version of a license if permitted).</p>\n\n\n    <p>In addition, We may use the following licenses for Media in the Contribution: Creative Commons Attribution 3.0 (including any right to adopt any future version of a license if permitted).</p>\n\n    <p><span class=\"heading\">2.4 Moral Rights.</span> If moral rights apply to the Contribution, to the maximum extent permitted by law, You waive and agree not to assert such moral rights against Us or our successors in interest, or any of our licensees, either direct or indirect.</p>\n\n    <p><span class=\"heading\">2.5 Our Rights.</span> You acknowledge that We are not obligated to use Your Contribution as part of the Material and may decide to include any Contribution We consider appropriate.</p>\n\n    <p><span class=\"heading\">2.6 Reservation of Rights.</span> Any rights not expressly  licensed under this section are expressly reserved by You.</p>\n\n    <h2 class=\"ui header\">3. Agreement</h2>\n\n    <p>You confirm that:</p>\n\n    <p>(a) You have the legal authority to enter into this Agreement.</p>\n\n    <p>(b) You or Your Affiliates own the Copyright and patent claims covering the Contribution which are required to grant the rights under Section 2.</p>\n\n    <p>(c) The grant of rights under Section 2 does not violate any grant of rights which You or Your Affiliates have made to third parties.</p>\n\n\n    <p>(d) You have followed the instructions in , if You do not own the Copyright in the entire work of authorship Submitted.</p>\n\n    <h2 class=\"ui header\">4. Disclaimer</h2>\n\n    <p>EXCEPT FOR THE EXPRESS WARRANTIES IN SECTION 3, THE CONTRIBUTION IS PROVIDED \"AS IS\". MORE PARTICULARLY, ALL EXPRESS OR IMPLIED WARRANTIES INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE EXPRESSLY DISCLAIMED BY YOU TO US. TO THE EXTENT THAT ANY SUCH WARRANTIES CANNOT BE DISCLAIMED, SUCH WARRANTY IS LIMITED IN DURATION TO THE MINIMUM PERIOD PERMITTED BY LAW.</p>\n\n    <h2 class=\"ui header\">5. Consequential Damage Waiver</h2>\n\n    <p>TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT WILL YOU  BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF ANTICIPATED SAVINGS, LOSS OF DATA, INDIRECT, SPECIAL, INCIDENTAL, CONSEQUENTIAL AND EXEMPLARY DAMAGES ARISING OUT OF THIS AGREEMENT REGARDLESS OF THE LEGAL OR EQUITABLE THEORY (CONTRACT, TORT OR OTHERWISE) UPON WHICH THE CLAIM IS BASED.</p>\n\n    <h2 class=\"ui header\">6. Miscellaneous</h2>\n\n    <p>6.1 This Agreement will be governed by and construed in accordance with the laws of United States of America excluding its conflicts of law provisions. Under certain circumstances, the governing law in this section might be superseded by the United Nations Convention on Contracts for the International Sale of Goods (\"UN Convention\") and the parties intend to avoid the application of the UN Convention to this Agreement and, thus, exclude the application of the UN Convention in its entirety to this Agreement.</p>\n\n    <p>6.2 This Agreement sets out the entire agreement between You and Us for Your Contributions to Us and overrides all other agreements or understandings.</p>\n\n    <p>6.3  If You or We assign the rights or obligations received through this Agreement to a third party, as a condition of the assignment, that third party must agree in writing to abide by all the rights and obligations in the Agreement.</p>\n\n    <p>6.4 The failure of either party to require performance by the other party of any provision of this Agreement in one situation shall not affect the right of a party to require such performance at any time in the future. A waiver of performance under a provision in one situation shall not be considered a waiver of the performance of the provision in the future or a waiver of the provision in its entirety.</p>\n\n    <p>6.5 If any provision of this Agreement is found void and unenforceable, such provision will be replaced to the extent possible with a provision that comes closest to the meaning of the original provision and which is enforceable.  The terms and conditions set forth in this Agreement shall apply notwithstanding any failure of essential purpose of this Agreement or any limited remedy to the maximum extent possible under law.</p>\n  </div>\n\n  <iframe src=\"https://docs.google.com/forms/d/1z7gumkiuAvzTDDHcw3Ru9PrMT-tzE38EHWuslahXA4E/viewform?embedded=true\" width=\"100%\" height=\"1350\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\">Loading...</iframe>\n\n</div>\n"
  },
  {
    "path": "server/documents/collections/breadcrumb.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'breadcrumb'\nstandalone  : true\n\nelement     : 'breadcrumb'\nelementType : 'collection'\n\ntitle       : 'Breadcrumb'\ndescription : 'A breadcrumb is used to show hierarchy between content'\ntype        : 'UI Collection'\n\nthemes      : ['Default']\n---\n\n<%- @partial('header') %>\n\n\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/collections/breadcrumb.less\" />\n\n\n<div class=\"main ui container\">\n\n  <h2 class=\"ui dividing header\">Types</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Breadcrumb</h4>\n    <p>A standard breadcrumb</p>\n    <div class=\"ui breadcrumb\">\n      <a class=\"section\">Home</a>\n      <div class=\"divider\"> / </div>\n      <a class=\"section\">Store</a>\n      <div class=\"divider\"> / </div>\n      <div class=\"active section\">T-Shirt</div>\n    </div>\n  </div>\n\n  <div class=\"another example\">\n    <div class=\"ui breadcrumb\">\n      <a class=\"section\">Home</a>\n      <i class=\"right angle icon divider\"></i>\n      <a class=\"section\">Store</a>\n      <i class=\"right angle icon divider\"></i>\n      <div class=\"active section\">T-Shirt</div>\n    </div>\n  </div>\n\n\n  <h2 class=\"ui dividing header\">Content</h2>\n\n  <div class=\"example\" data-use-content=\"true\">\n    <h4 class=\"ui header\">Divider</h4>\n    <p>A breadcrumb can contain a divider to show the relationship between sections, this can be formatted as an icon or text.</p>\n    <div class=\"ui breadcrumb\">\n      <a class=\"section\">Home</a>\n      <span class=\"divider\">/</span>\n      <a class=\"section\">Registration</a>\n      <span class=\"divider\">/</span>\n      <div class=\"active section\">Personal Information</div>\n    </div>\n  </div>\n\n  <div class=\"another example\">\n    <div class=\"ui breadcrumb\">\n      <a class=\"section\">Home</a>\n      <i class=\"right chevron icon divider\"></i>\n      <a class=\"section\">Registration</a>\n      <i class=\"right arrow icon divider\"></i>\n      <div class=\"active section\">Personal Information</div>\n    </div>\n  </div>\n\n\n  <div class=\"example\" data-use-content=\"true\">\n    <h4 class=\"ui header\">Section</h4>\n    <p>A breadcrumb can contain sections that can either be formatted as a link or text</p>\n    <div class=\"ui breadcrumb\">\n      <div class=\"section\">Home</div>\n      <div class=\"divider\"> / </div>\n      <div class=\"active section\">Search</div>\n    </div>\n  </div>\n\n  <div class=\"example\" data-use-content=\"true\">\n    <h4 class=\"ui header\">Link</h4>\n    <p>A section may be linkable or contain a link</p>\n    <div class=\"ui breadcrumb\">\n      <a class=\"section\">Home</a>\n      <div class=\"divider\"> / </div>\n      <div class=\"active section\">Search for: <a href=\"#\">paper towels</a></div>\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">States</h2>\n\n  <div class=\"example\" data-use-content=\"true\">\n    <h4 class=\"ui header\">Active</h4>\n    <p>A section can be active</p>\n    <div class=\"ui breadcrumb\">\n      <a class=\"section\">Products</a>\n      <div class=\"divider\"> / </div>\n      <div class=\"active section\">Paper Towels</div>\n    </div>\n  </div>\n\n\n  <h2 class=\"ui dividing header\">Variations</h2>\n\n  <div class=\"example\" data-class=\"size\">\n    <h4 class=\"ui header\">Size</h4>\n    <p>A breadcrumb can vary in size</p>\n    <div class=\"ui mini breadcrumb\">\n      <a class=\"section\">Home</a>\n      <i class=\"right chevron icon divider\"></i>\n      <a class=\"section\">Registration</a>\n      <i class=\"right chevron icon divider\"></i>\n      <div class=\"active section\">Personal Information</div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui tiny breadcrumb\">\n      <a class=\"section\">Home</a>\n      <i class=\"right chevron icon divider\"></i>\n      <a class=\"section\">Registration</a>\n      <i class=\"right chevron icon divider\"></i>\n      <div class=\"active section\">Personal Information</div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui small breadcrumb\">\n      <a class=\"section\">Home</a>\n      <i class=\"right chevron icon divider\"></i>\n      <a class=\"section\">Registration</a>\n      <i class=\"right chevron icon divider\"></i>\n      <div class=\"active section\">Personal Information</div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui large breadcrumb\">\n      <a class=\"section\">Home</a>\n      <i class=\"right chevron icon divider\"></i>\n      <a class=\"section\">Registration</a>\n      <i class=\"right chevron icon divider\"></i>\n      <div class=\"active section\">Personal Information</div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui big breadcrumb\">\n      <a class=\"section\">Home</a>\n      <i class=\"right chevron icon divider\"></i>\n      <a class=\"section\">Registration</a>\n      <i class=\"right chevron icon divider\"></i>\n      <div class=\"active section\">Personal Information</div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui huge breadcrumb\">\n      <a class=\"section\">Home</a>\n      <i class=\"right chevron icon divider\"></i>\n      <a class=\"section\">Registration</a>\n      <i class=\"right chevron icon divider\"></i>\n      <div class=\"active section\">Personal Information</div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui massive breadcrumb\">\n      <a class=\"section\">Home</a>\n      <i class=\"right chevron icon divider\"></i>\n      <a class=\"section\">Registration</a>\n      <i class=\"right chevron icon divider\"></i>\n      <div class=\"active section\">Personal Information</div>\n    </div>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/collections/form.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'form'\nstandalone  : true\n\nelement     : 'form'\nelementType : 'collection'\n\ntitle       : 'Form'\ndescription : 'A form displays a set of related user input fields in a structured way'\ntype        : 'UI Collection'\n\nthemes      : ['Default', 'Flat', 'Chubby', 'GitHub']\n---\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/collections/form.less\" />\n<script src=\"/javascript/form.js\"></script>\n\n<%- @partial('header') %>\n\n<div class=\"main ui container\">\n\n  <h2 class=\"ui dividing header\">Types</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Form</h4>\n    <p>A form</p>\n    <div class=\"ui ignored warning message\">\n      <p>If you are looking for validation you should check out <a href=\"/behaviors/form.html\">form behaviors</a>.</p>\n    </div>\n    <form class=\"ui form\">\n      <div class=\"field\">\n        <label>First Name</label>\n        <input type=\"text\" name=\"first-name\" placeholder=\"First Name\">\n      </div>\n      <div class=\"field\">\n        <label>Last Name</label>\n        <input type=\"text\" name=\"last-name\" placeholder=\"Last Name\">\n      </div>\n      <div class=\"field\">\n        <div class=\"ui checkbox\">\n          <input type=\"checkbox\" />\n          <label>I agree to the Terms and Conditions</label>\n        </div>\n      </div>\n      <button class=\"ui button\" type=\"submit\">Submit</button>\n    </form>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui ignored hidden divider\"></div>\n    <form class=\"ui form\">\n      <h4 class=\"ui dividing header\">Shipping Information</h4>\n      <div class=\"field\">\n        <label>Name</label>\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <input type=\"text\" name=\"shipping[first-name]\" placeholder=\"First Name\">\n          </div>\n          <div class=\"field\">\n            <input type=\"text\" name=\"shipping[last-name]\" placeholder=\"Last Name\">\n          </div>\n        </div>\n      </div>\n      <div class=\"field\">\n        <label>Billing Address</label>\n        <div class=\"fields\">\n          <div class=\"twelve wide field\">\n            <input type=\"text\" name=\"shipping[address]\" placeholder=\"Street Address\">\n          </div>\n          <div class=\"four wide field\">\n            <input type=\"text\" name=\"shipping[address-2]\" placeholder=\"Apt #\">\n          </div>\n        </div>\n      </div>\n      <div class=\"two fields\">\n        <div class=\"field\">\n          <label>State</label>\n          <select class=\"ui fluid dropdown\">\n            <%- @partial('examples/single/state-options') %>\n          </select>\n        </div>\n        <div class=\"field\">\n          <label>Country</label>\n          <div class=\"ui fluid search selection dropdown\">\n            <input type=\"hidden\" name=\"country\">\n            <i class=\"dropdown icon\"></i>\n            <div class=\"default text\">Select Country</div>\n            <%- @partial('examples/single/flag-menu') %>\n          </div>\n        </div>\n      </div>\n      <h4 class=\"ui dividing header\">Billing Information</h4>\n      <div class=\"field\">\n        <label>Card Type</label>\n        <div class=\"ui selection dropdown\">\n          <input type=\"hidden\" name=\"card[type]\">\n          <div class=\"default text\">Type</div>\n          <i class=\"dropdown icon\"></i>\n          <div class=\"menu\">\n            <div class=\"item\" data-value=\"visa\">\n              <i class=\"visa icon\"></i>\n              Visa\n            </div>\n            <div class=\"item\" data-value=\"amex\">\n              <i class=\"amex icon\"></i>\n              American Express\n            </div>\n            <div class=\"item\" data-value=\"discover\">\n              <i class=\"discover icon\"></i>\n              Discover\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"fields\">\n        <div class=\"seven wide field\">\n          <label>Card Number</label>\n          <input type=\"text\" name=\"card[number]\" maxlength=\"16\" placeholder=\"Card #\">\n        </div>\n        <div class=\"three wide field\">\n          <label>CVC</label>\n          <input type=\"text\" name=\"card[cvc]\" maxlength=\"3\" placeholder=\"CVC\">\n        </div>\n        <div class=\"six wide field\">\n          <label>Expiration</label>\n          <div class=\"two fields\">\n            <div class=\"field\">\n              <select class=\"ui fluid search dropdown\" name=\"card[expire-month]\">\n                <option value=\"\">Month</option>\n                <option value=\"1\">January</option>\n                <option value=\"2\">February</option>\n                <option value=\"3\">March</option>\n                <option value=\"4\">April</option>\n                <option value=\"5\">May</option>\n                <option value=\"6\">June</option>\n                <option value=\"7\">July</option>\n                <option value=\"8\">August</option>\n                <option value=\"9\">September</option>\n                <option value=\"10\">October</option>\n                <option value=\"11\">November</option>\n                <option value=\"12\">December</option>\n              </select>\n            </div>\n            <div class=\"field\">\n              <input type=\"text\" name=\"card[expire-year]\" maxlength=\"4\" placeholder=\"Year\">\n            </div>\n          </div>\n        </div>\n      </div>\n\n      <h4 class=\"ui dividing header\">Receipt</h4>\n\n      <div class=\"field\">\n        <label>Send Receipt To:</label>\n        <div class=\"ui fluid multiple search selection dropdown\">\n          <input type=\"hidden\" name=\"receipt\">\n          <i class=\"dropdown icon\"></i>\n          <div class=\"default text\">Saved Contacts</div>\n          <div class=\"menu\">\n            <div class=\"item\" data-value=\"jenny\" data-text=\"Jenny\">\n              <img class=\"ui mini avatar image\" src=\"/images/avatar/small/jenny.jpg\">\n              Jenny Hess\n            </div>\n            <div class=\"item\" data-value=\"elliot\" data-text=\"Elliot\">\n              <img class=\"ui mini avatar image\" src=\"/images/avatar/small/elliot.jpg\">\n              Elliot Fu\n            </div>\n            <div class=\"item\" data-value=\"stevie\" data-text=\"Stevie\">\n              <img class=\"ui mini avatar image\" src=\"/images/avatar/small/stevie.jpg\">\n              Stevie Feliciano\n            </div>\n            <div class=\"item\" data-value=\"christian\" data-text=\"Christian\">\n              <img class=\"ui mini avatar image\" src=\"/images/avatar/small/christian.jpg\">\n              Christian\n            </div>\n            <div class=\"item\" data-value=\"matt\" data-text=\"Matt\">\n              <img class=\"ui mini avatar image\" src=\"/images/avatar/small/matt.jpg\">\n              Matt\n            </div>\n            <div class=\"item\" data-value=\"justen\" data-text=\"Justen\">\n              <img class=\"ui mini avatar image\" src=\"/images/avatar/small/justen.jpg\">\n              Justen Kitsune\n            </div>\n          </div>\n        </div>\n      </div>\n\n      <div class=\"ui segment\">\n        <div class=\"field\">\n          <div class=\"ui toggle checkbox\">\n            <input type=\"checkbox\" name=\"gift\">\n            <label>Do not include a receipt in the package</label>\n          </div>\n        </div>\n      </div>\n      <div class=\"ui button\" tabindex=\"0\">Submit Order</div>\n    </div>\n  </form>\n\n  <h2 class=\"ui dividing header\">Content</h2>\n\n  <div class=\"example\" data-use-content=\"true\">\n    <h4 class=\"ui header\">Field</h4>\n    <p>A field is a form element containing a label and an input</p>\n    <div class=\"ui form\">\n      <div class=\"field\">\n        <label>User Input</label>\n        <input type=\"text\">\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\" data-use-content=\"true\">\n    <h4 class=\"ui header\">Fields</h4>\n    <p>A set of fields can appear grouped together</p>\n    <div class=\"ui ignored positive message\">\n      Field groups automatically receive responsive styling, swapping to one field per row on mobile devices.\n    </div>\n    <div class=\"ui form\">\n      <div class=\"fields\">\n        <div class=\"field\">\n          <label>First name</label>\n          <input type=\"text\" placeholder=\"First Name\">\n        </div>\n        <div class=\"field\">\n          <label>Middle name</label>\n          <input type=\"text\" placeholder=\"Middle Name\">\n        </div>\n        <div class=\"field\">\n          <label>Last name</label>\n          <input type=\"text\" placeholder=\"Last Name\">\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui form\">\n      <div class=\"three fields\">\n        <div class=\"field\">\n          <label>First name</label>\n          <input type=\"text\" placeholder=\"First Name\">\n        </div>\n        <div class=\"field\">\n          <label>Middle name</label>\n          <input type=\"text\" placeholder=\"Middle Name\">\n        </div>\n        <div class=\"field\">\n          <label>Last name</label>\n          <input type=\"text\" placeholder=\"Last Name\">\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui form\">\n      <div class=\"inline fields\">\n        <div class=\"eight wide field\">\n          <label>Name</label>\n          <input type=\"text\" placeholder=\"First Name\">\n        </div>\n        <div class=\"three wide field\">\n          <input type=\"text\" placeholder=\"Middle Name\">\n        </div>\n        <div class=\"five wide field\">\n          <input type=\"text\" placeholder=\"Last Name\">\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div data-use-content=\"true\" class=\"example\">\n    <h4 class=\"ui header\">Text Area</h4>\n    <p>A textarea can be used to allow for extended user input.</p>\n    <div class=\"ui ignored info message\">\n      To specify an approximate text area size use the <code>rows</code> attribute.\n    </div>\n    <div class=\"ui form\">\n      <div class=\"field\">\n        <label>Text</label>\n        <textarea></textarea>\n      </div>\n      <div class=\"field\">\n        <label>Short Text</label>\n        <textarea rows=\"2\"></textarea>\n      </div>\n    </div>\n  </div>\n\n  <div data-use-content=\"true\" class=\"example\">\n    <h4 class=\"ui header\">Checkbox</h4>\n    <p>A form can contain a <a href=\"/modules/checkbox.html\">checkbox</a></p>\n    <div class=\"ui ignored info message\">\n      UI checkbox are special, styled versions of standard HTML checkboxes.\n    </div>\n    <div class=\"evaluated code\" data-type=\"javascript\" data-label=\"true\">\n    $('.ui.checkbox')\n      .checkbox()\n    ;\n    </div>\n    <div class=\"ui form\">\n      <div class=\"inline field\">\n        <div class=\"ui checkbox\">\n          <input type=\"checkbox\" />\n          <label>Checkbox</label>\n        </div>\n      </div>\n      <div class=\"inline field\">\n        <div class=\"ui slider checkbox\">\n          <input type=\"checkbox\" />\n          <label>Slider</label>\n        </div>\n        <label></label>\n      </div>\n      <div class=\"inline field\">\n        <div class=\"ui toggle checkbox\">\n          <input type=\"checkbox\" />\n          <label>Toggle</label>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div data-use-content=\"true\" class=\"example\">\n    <h4 class=\"ui header\">Radio Checkbox</h4>\n    <p>A form can include a <a href=\"/modules/checkbox.html#radio\">radio checkbox</a></p>\n    <div class=\"evaluated code\" data-type=\"javascript\" data-label=\"true\">\n    $('.ui.radio.checkbox')\n      .checkbox()\n    ;\n    </div>\n    <div class=\"ui form\">\n      <div class=\"inline fields\">\n        <label for=\"fruit\">Select your favorite fruit:</label>\n        <div class=\"field\">\n          <div class=\"ui radio checkbox\">\n            <input type=\"radio\" name=\"fruit\" checked />\n            <label>Apples</label>\n          </div>\n        </div>\n        <div class=\"field\">\n          <div class=\"ui radio checkbox\">\n            <input type=\"radio\" name=\"fruit\" />\n            <label>Oranges</label>\n          </div>\n        </div>\n        <div class=\"field\">\n          <div class=\"ui radio checkbox\">\n            <input type=\"radio\" name=\"fruit\" />\n            <label>Pears</label>\n          </div>\n        </div>\n        <div class=\"field\">\n          <div class=\"ui radio checkbox\">\n            <input type=\"radio\" name=\"fruit\" />\n            <label>Grapefruit</label>\n          </div>\n        </div>\n      </div>\n      <div class=\"grouped fields\">\n        <label for=\"fruit\">Select your second favorite fruit:</label>\n        <div class=\"field\">\n          <div class=\"ui radio checkbox\">\n            <input type=\"radio\" name=\"fruit\" checked />\n            <label>Apples</label>\n          </div>\n        </div>\n        <div class=\"field\">\n          <div class=\"ui radio checkbox\">\n            <input type=\"radio\" name=\"fruit\" />\n            <label>Oranges</label>\n          </div>\n        </div>\n        <div class=\"field\">\n          <div class=\"ui radio checkbox\">\n            <input type=\"radio\" name=\"fruit\" />\n            <label>Pears</label>\n          </div>\n        </div>\n        <div class=\"field\">\n          <div class=\"ui radio checkbox\">\n            <input type=\"radio\" name=\"fruit\" />\n            <label>Grapefruit</label>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"form example\" data-use-content=\"true\">\n    <h4 class=\"ui header\">Dropdown</h4>\n    <p>A form can contain a <a href=\"/modules/dropdown.html\">dropdown</a></p>\n    <div class=\"ui ignored info message\">\n      Dropdown will automatically convert <code>select</code> elements initialized as dropdowns. For more details check out <a href=\"/modules/dropdown.html#usage\">the dropdown docs</a>\n    </div>\n    <div class=\"code\" data-type=\"javascript\" data-label=\"true\">\n    $('select.dropdown')\n      .dropdown()\n    ;\n    </div>\n    <div class=\"ui form\">\n      <div class=\"field\">\n          <label>Gender</label>\n          <div class=\"ui selection dropdown\">\n              <input type=\"hidden\" name=\"gender\">\n              <i class=\"dropdown icon\"></i>\n              <div class=\"default text\">Gender</div>\n              <div class=\"menu\">\n                  <div class=\"item\" data-value=\"1\">Male</div>\n                  <div class=\"item\" data-value=\"0\">Female</div>\n              </div>\n          </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another form example\">\n    <div class=\"ui form\">\n      <div class=\"field\">\n        <label>Country</label>\n        <select class=\"ui search dropdown\">\n          <option value=\"\">Select Country</option>\n          <option value=\"AF\">Afghanistan</option>\n          <option value=\"AX\">Åland Islands</option>\n          <option value=\"AL\">Albania</option>\n          <option value=\"DZ\">Algeria</option>\n          <option value=\"AS\">American Samoa</option>\n          <option value=\"AD\">Andorra</option>\n          <option value=\"AO\">Angola</option>\n          <option value=\"AI\">Anguilla</option>\n          <option value=\"AQ\">Antarctica</option>\n          <option value=\"AG\">Antigua and Barbuda</option>\n          <option value=\"AR\">Argentina</option>\n          <option value=\"AM\">Armenia</option>\n          <option value=\"AW\">Aruba</option>\n          <option value=\"AU\">Australia</option>\n          <option value=\"AT\">Austria</option>\n          <option value=\"AZ\">Azerbaijan</option>\n          <option value=\"BS\">Bahamas</option>\n          <option value=\"BH\">Bahrain</option>\n          <option value=\"BD\">Bangladesh</option>\n          <option value=\"BB\">Barbados</option>\n          <option value=\"BY\">Belarus</option>\n          <option value=\"BE\">Belgium</option>\n          <option value=\"BZ\">Belize</option>\n          <option value=\"BJ\">Benin</option>\n          <option value=\"BM\">Bermuda</option>\n          <option value=\"BT\">Bhutan</option>\n          <option value=\"BO\">Bolivia, Plurinational State of</option>\n          <option value=\"BQ\">Bonaire, Sint Eustatius and Saba</option>\n          <option value=\"BA\">Bosnia and Herzegovina</option>\n          <option value=\"BW\">Botswana</option>\n          <option value=\"BV\">Bouvet Island</option>\n          <option value=\"BR\">Brazil</option>\n          <option value=\"IO\">British Indian Ocean Territory</option>\n          <option value=\"BN\">Brunei Darussalam</option>\n          <option value=\"BG\">Bulgaria</option>\n          <option value=\"BF\">Burkina Faso</option>\n          <option value=\"BI\">Burundi</option>\n          <option value=\"KH\">Cambodia</option>\n          <option value=\"CM\">Cameroon</option>\n          <option value=\"CA\">Canada</option>\n          <option value=\"CV\">Cape Verde</option>\n          <option value=\"KY\">Cayman Islands</option>\n          <option value=\"CF\">Central African Republic</option>\n          <option value=\"TD\">Chad</option>\n          <option value=\"CL\">Chile</option>\n          <option value=\"CN\">China</option>\n          <option value=\"CX\">Christmas Island</option>\n          <option value=\"CC\">Cocos (Keeling) Islands</option>\n          <option value=\"CO\">Colombia</option>\n          <option value=\"KM\">Comoros</option>\n          <option value=\"CG\">Congo</option>\n          <option value=\"CD\">Congo, the Democratic Republic of the</option>\n          <option value=\"CK\">Cook Islands</option>\n          <option value=\"CR\">Costa Rica</option>\n          <option value=\"CI\">Côte d'Ivoire</option>\n          <option value=\"HR\">Croatia</option>\n          <option value=\"CU\">Cuba</option>\n          <option value=\"CW\">Curaçao</option>\n          <option value=\"CY\">Cyprus</option>\n          <option value=\"CZ\">Czech Republic</option>\n          <option value=\"DK\">Denmark</option>\n          <option value=\"DJ\">Djibouti</option>\n          <option value=\"DM\">Dominica</option>\n          <option value=\"DO\">Dominican Republic</option>\n          <option value=\"EC\">Ecuador</option>\n          <option value=\"EG\">Egypt</option>\n          <option value=\"SV\">El Salvador</option>\n          <option value=\"GQ\">Equatorial Guinea</option>\n          <option value=\"ER\">Eritrea</option>\n          <option value=\"EE\">Estonia</option>\n          <option value=\"ET\">Ethiopia</option>\n          <option value=\"FK\">Falkland Islands (Malvinas)</option>\n          <option value=\"FO\">Faroe Islands</option>\n          <option value=\"FJ\">Fiji</option>\n          <option value=\"FI\">Finland</option>\n          <option value=\"FR\">France</option>\n          <option value=\"GF\">French Guiana</option>\n          <option value=\"PF\">French Polynesia</option>\n          <option value=\"TF\">French Southern Territories</option>\n          <option value=\"GA\">Gabon</option>\n          <option value=\"GM\">Gambia</option>\n          <option value=\"GE\">Georgia</option>\n          <option value=\"DE\">Germany</option>\n          <option value=\"GH\">Ghana</option>\n          <option value=\"GI\">Gibraltar</option>\n          <option value=\"GR\">Greece</option>\n          <option value=\"GL\">Greenland</option>\n          <option value=\"GD\">Grenada</option>\n          <option value=\"GP\">Guadeloupe</option>\n          <option value=\"GU\">Guam</option>\n          <option value=\"GT\">Guatemala</option>\n          <option value=\"GG\">Guernsey</option>\n          <option value=\"GN\">Guinea</option>\n          <option value=\"GW\">Guinea-Bissau</option>\n          <option value=\"GY\">Guyana</option>\n          <option value=\"HT\">Haiti</option>\n          <option value=\"HM\">Heard Island and McDonald Islands</option>\n          <option value=\"VA\">Holy See (Vatican City State)</option>\n          <option value=\"HN\">Honduras</option>\n          <option value=\"HK\">Hong Kong</option>\n          <option value=\"HU\">Hungary</option>\n          <option value=\"IS\">Iceland</option>\n          <option value=\"IN\">India</option>\n          <option value=\"ID\">Indonesia</option>\n          <option value=\"IR\">Iran, Islamic Republic of</option>\n          <option value=\"IQ\">Iraq</option>\n          <option value=\"IE\">Ireland</option>\n          <option value=\"IM\">Isle of Man</option>\n          <option value=\"IL\">Israel</option>\n          <option value=\"IT\">Italy</option>\n          <option value=\"JM\">Jamaica</option>\n          <option value=\"JP\">Japan</option>\n          <option value=\"JE\">Jersey</option>\n          <option value=\"JO\">Jordan</option>\n          <option value=\"KZ\">Kazakhstan</option>\n          <option value=\"KE\">Kenya</option>\n          <option value=\"KI\">Kiribati</option>\n          <option value=\"KP\">Korea, Democratic People's Republic of</option>\n          <option value=\"KR\">Korea, Republic of</option>\n          <option value=\"KW\">Kuwait</option>\n          <option value=\"KG\">Kyrgyzstan</option>\n          <option value=\"LA\">Lao People's Democratic Republic</option>\n          <option value=\"LV\">Latvia</option>\n          <option value=\"LB\">Lebanon</option>\n          <option value=\"LS\">Lesotho</option>\n          <option value=\"LR\">Liberia</option>\n          <option value=\"LY\">Libya</option>\n          <option value=\"LI\">Liechtenstein</option>\n          <option value=\"LT\">Lithuania</option>\n          <option value=\"LU\">Luxembourg</option>\n          <option value=\"MO\">Macao</option>\n          <option value=\"MK\">Macedonia, the former Yugoslav Republic of</option>\n          <option value=\"MG\">Madagascar</option>\n          <option value=\"MW\">Malawi</option>\n          <option value=\"MY\">Malaysia</option>\n          <option value=\"MV\">Maldives</option>\n          <option value=\"ML\">Mali</option>\n          <option value=\"MT\">Malta</option>\n          <option value=\"MH\">Marshall Islands</option>\n          <option value=\"MQ\">Martinique</option>\n          <option value=\"MR\">Mauritania</option>\n          <option value=\"MU\">Mauritius</option>\n          <option value=\"YT\">Mayotte</option>\n          <option value=\"MX\">Mexico</option>\n          <option value=\"FM\">Micronesia, Federated States of</option>\n          <option value=\"MD\">Moldova, Republic of</option>\n          <option value=\"MC\">Monaco</option>\n          <option value=\"MN\">Mongolia</option>\n          <option value=\"ME\">Montenegro</option>\n          <option value=\"MS\">Montserrat</option>\n          <option value=\"MA\">Morocco</option>\n          <option value=\"MZ\">Mozambique</option>\n          <option value=\"MM\">Myanmar</option>\n          <option value=\"NA\">Namibia</option>\n          <option value=\"NR\">Nauru</option>\n          <option value=\"NP\">Nepal</option>\n          <option value=\"NL\">Netherlands</option>\n          <option value=\"NC\">New Caledonia</option>\n          <option value=\"NZ\">New Zealand</option>\n          <option value=\"NI\">Nicaragua</option>\n          <option value=\"NE\">Niger</option>\n          <option value=\"NG\">Nigeria</option>\n          <option value=\"NU\">Niue</option>\n          <option value=\"NF\">Norfolk Island</option>\n          <option value=\"MP\">Northern Mariana Islands</option>\n          <option value=\"NO\">Norway</option>\n          <option value=\"OM\">Oman</option>\n          <option value=\"PK\">Pakistan</option>\n          <option value=\"PW\">Palau</option>\n          <option value=\"PS\">Palestinian Territory, Occupied</option>\n          <option value=\"PA\">Panama</option>\n          <option value=\"PG\">Papua New Guinea</option>\n          <option value=\"PY\">Paraguay</option>\n          <option value=\"PE\">Peru</option>\n          <option value=\"PH\">Philippines</option>\n          <option value=\"PN\">Pitcairn</option>\n          <option value=\"PL\">Poland</option>\n          <option value=\"PT\">Portugal</option>\n          <option value=\"PR\">Puerto Rico</option>\n          <option value=\"QA\">Qatar</option>\n          <option value=\"RE\">Réunion</option>\n          <option value=\"RO\">Romania</option>\n          <option value=\"RU\">Russian Federation</option>\n          <option value=\"RW\">Rwanda</option>\n          <option value=\"BL\">Saint Barthélemy</option>\n          <option value=\"SH\">Saint Helena, Ascension and Tristan da Cunha</option>\n          <option value=\"KN\">Saint Kitts and Nevis</option>\n          <option value=\"LC\">Saint Lucia</option>\n          <option value=\"MF\">Saint Martin (French part)</option>\n          <option value=\"PM\">Saint Pierre and Miquelon</option>\n          <option value=\"VC\">Saint Vincent and the Grenadines</option>\n          <option value=\"WS\">Samoa</option>\n          <option value=\"SM\">San Marino</option>\n          <option value=\"ST\">Sao Tome and Principe</option>\n          <option value=\"SA\">Saudi Arabia</option>\n          <option value=\"SN\">Senegal</option>\n          <option value=\"RS\">Serbia</option>\n          <option value=\"SC\">Seychelles</option>\n          <option value=\"SL\">Sierra Leone</option>\n          <option value=\"SG\">Singapore</option>\n          <option value=\"SX\">Sint Maarten (Dutch part)</option>\n          <option value=\"SK\">Slovakia</option>\n          <option value=\"SI\">Slovenia</option>\n          <option value=\"SB\">Solomon Islands</option>\n          <option value=\"SO\">Somalia</option>\n          <option value=\"ZA\">South Africa</option>\n          <option value=\"GS\">South Georgia and the South Sandwich Islands</option>\n          <option value=\"SS\">South Sudan</option>\n          <option value=\"ES\">Spain</option>\n          <option value=\"LK\">Sri Lanka</option>\n          <option value=\"SD\">Sudan</option>\n          <option value=\"SR\">Suriname</option>\n          <option value=\"SJ\">Svalbard and Jan Mayen</option>\n          <option value=\"SZ\">Swaziland</option>\n          <option value=\"SE\">Sweden</option>\n          <option value=\"CH\">Switzerland</option>\n          <option value=\"SY\">Syrian Arab Republic</option>\n          <option value=\"TW\">Taiwan, Province of China</option>\n          <option value=\"TJ\">Tajikistan</option>\n          <option value=\"TZ\">Tanzania, United Republic of</option>\n          <option value=\"TH\">Thailand</option>\n          <option value=\"TL\">Timor-Leste</option>\n          <option value=\"TG\">Togo</option>\n          <option value=\"TK\">Tokelau</option>\n          <option value=\"TO\">Tonga</option>\n          <option value=\"TT\">Trinidad and Tobago</option>\n          <option value=\"TN\">Tunisia</option>\n          <option value=\"TR\">Turkey</option>\n          <option value=\"TM\">Turkmenistan</option>\n          <option value=\"TC\">Turks and Caicos Islands</option>\n          <option value=\"TV\">Tuvalu</option>\n          <option value=\"UG\">Uganda</option>\n          <option value=\"UA\">Ukraine</option>\n          <option value=\"AE\">United Arab Emirates</option>\n          <option value=\"GB\">United Kingdom</option>\n          <option value=\"US\">United States</option>\n          <option value=\"UM\">United States Minor Outlying Islands</option>\n          <option value=\"UY\">Uruguay</option>\n          <option value=\"UZ\">Uzbekistan</option>\n          <option value=\"VU\">Vanuatu</option>\n          <option value=\"VE\">Venezuela, Bolivarian Republic of</option>\n          <option value=\"VN\">Viet Nam</option>\n          <option value=\"VG\">Virgin Islands, British</option>\n          <option value=\"VI\">Virgin Islands, U.S.</option>\n          <option value=\"WF\">Wallis and Futuna</option>\n          <option value=\"EH\">Western Sahara</option>\n          <option value=\"YE\">Yemen</option>\n          <option value=\"ZM\">Zambia</option>\n          <option value=\"ZW\">Zimbabwe</option>\n        </select>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"form example\" data-tag=\"select\" data-use-content=\"true\">\n    <h4 class=\"ui header\">Multiple Select</h4>\n    <p>A <a href=\"/modules/dropdown.html##multiple-selection\">multiple select</a> is used to include several choices with one form field</p>\n    <div class=\"ui form\">\n      <div class=\"field\">\n        <label>Country</label>\n        <select multiple class=\"ui dropdown\">\n          <option value=\"\">Select Country</option>\n          <option value=\"AF\">Afghanistan</option>\n          <option value=\"AX\">Åland Islands</option>\n          <option value=\"AL\">Albania</option>\n          <option value=\"DZ\">Algeria</option>\n          <option value=\"AS\">American Samoa</option>\n          <option value=\"AD\">Andorra</option>\n          <option value=\"AO\">Angola</option>\n          <option value=\"AI\">Anguilla</option>\n          <option value=\"AQ\">Antarctica</option>\n          <option value=\"AG\">Antigua and Barbuda</option>\n          <option value=\"AR\">Argentina</option>\n          <option value=\"AM\">Armenia</option>\n          <option value=\"AW\">Aruba</option>\n          <option value=\"AU\">Australia</option>\n          <option value=\"AT\">Austria</option>\n          <option value=\"AZ\">Azerbaijan</option>\n          <option value=\"BS\">Bahamas</option>\n          <option value=\"BH\">Bahrain</option>\n          <option value=\"BD\">Bangladesh</option>\n          <option value=\"BB\">Barbados</option>\n          <option value=\"BY\">Belarus</option>\n          <option value=\"BE\">Belgium</option>\n          <option value=\"BZ\">Belize</option>\n          <option value=\"BJ\">Benin</option>\n          <option value=\"BM\">Bermuda</option>\n          <option value=\"BT\">Bhutan</option>\n          <option value=\"BO\">Bolivia, Plurinational State of</option>\n          <option value=\"BQ\">Bonaire, Sint Eustatius and Saba</option>\n          <option value=\"BA\">Bosnia and Herzegovina</option>\n          <option value=\"BW\">Botswana</option>\n          <option value=\"BV\">Bouvet Island</option>\n          <option value=\"BR\">Brazil</option>\n          <option value=\"IO\">British Indian Ocean Territory</option>\n          <option value=\"BN\">Brunei Darussalam</option>\n          <option value=\"BG\">Bulgaria</option>\n          <option value=\"BF\">Burkina Faso</option>\n          <option value=\"BI\">Burundi</option>\n          <option value=\"KH\">Cambodia</option>\n          <option value=\"CM\">Cameroon</option>\n          <option value=\"CA\">Canada</option>\n          <option value=\"CV\">Cape Verde</option>\n          <option value=\"KY\">Cayman Islands</option>\n          <option value=\"CF\">Central African Republic</option>\n          <option value=\"TD\">Chad</option>\n          <option value=\"CL\">Chile</option>\n          <option value=\"CN\">China</option>\n          <option value=\"CX\">Christmas Island</option>\n          <option value=\"CC\">Cocos (Keeling) Islands</option>\n          <option value=\"CO\">Colombia</option>\n          <option value=\"KM\">Comoros</option>\n          <option value=\"CG\">Congo</option>\n          <option value=\"CD\">Congo, the Democratic Republic of the</option>\n          <option value=\"CK\">Cook Islands</option>\n          <option value=\"CR\">Costa Rica</option>\n          <option value=\"CI\">Côte d'Ivoire</option>\n          <option value=\"HR\">Croatia</option>\n          <option value=\"CU\">Cuba</option>\n          <option value=\"CW\">Curaçao</option>\n          <option value=\"CY\">Cyprus</option>\n          <option value=\"CZ\">Czech Republic</option>\n          <option value=\"DK\">Denmark</option>\n          <option value=\"DJ\">Djibouti</option>\n          <option value=\"DM\">Dominica</option>\n          <option value=\"DO\">Dominican Republic</option>\n          <option value=\"EC\">Ecuador</option>\n          <option value=\"EG\">Egypt</option>\n          <option value=\"SV\">El Salvador</option>\n          <option value=\"GQ\">Equatorial Guinea</option>\n          <option value=\"ER\">Eritrea</option>\n          <option value=\"EE\">Estonia</option>\n          <option value=\"ET\">Ethiopia</option>\n          <option value=\"FK\">Falkland Islands (Malvinas)</option>\n          <option value=\"FO\">Faroe Islands</option>\n          <option value=\"FJ\">Fiji</option>\n          <option value=\"FI\">Finland</option>\n          <option value=\"FR\">France</option>\n          <option value=\"GF\">French Guiana</option>\n          <option value=\"PF\">French Polynesia</option>\n          <option value=\"TF\">French Southern Territories</option>\n          <option value=\"GA\">Gabon</option>\n          <option value=\"GM\">Gambia</option>\n          <option value=\"GE\">Georgia</option>\n          <option value=\"DE\">Germany</option>\n          <option value=\"GH\">Ghana</option>\n          <option value=\"GI\">Gibraltar</option>\n          <option value=\"GR\">Greece</option>\n          <option value=\"GL\">Greenland</option>\n          <option value=\"GD\">Grenada</option>\n          <option value=\"GP\">Guadeloupe</option>\n          <option value=\"GU\">Guam</option>\n          <option value=\"GT\">Guatemala</option>\n          <option value=\"GG\">Guernsey</option>\n          <option value=\"GN\">Guinea</option>\n          <option value=\"GW\">Guinea-Bissau</option>\n          <option value=\"GY\">Guyana</option>\n          <option value=\"HT\">Haiti</option>\n          <option value=\"HM\">Heard Island and McDonald Islands</option>\n          <option value=\"VA\">Holy See (Vatican City State)</option>\n          <option value=\"HN\">Honduras</option>\n          <option value=\"HK\">Hong Kong</option>\n          <option value=\"HU\">Hungary</option>\n          <option value=\"IS\">Iceland</option>\n          <option value=\"IN\">India</option>\n          <option value=\"ID\">Indonesia</option>\n          <option value=\"IR\">Iran, Islamic Republic of</option>\n          <option value=\"IQ\">Iraq</option>\n          <option value=\"IE\">Ireland</option>\n          <option value=\"IM\">Isle of Man</option>\n          <option value=\"IL\">Israel</option>\n          <option value=\"IT\">Italy</option>\n          <option value=\"JM\">Jamaica</option>\n          <option value=\"JP\">Japan</option>\n          <option value=\"JE\">Jersey</option>\n          <option value=\"JO\">Jordan</option>\n          <option value=\"KZ\">Kazakhstan</option>\n          <option value=\"KE\">Kenya</option>\n          <option value=\"KI\">Kiribati</option>\n          <option value=\"KP\">Korea, Democratic People's Republic of</option>\n          <option value=\"KR\">Korea, Republic of</option>\n          <option value=\"KW\">Kuwait</option>\n          <option value=\"KG\">Kyrgyzstan</option>\n          <option value=\"LA\">Lao People's Democratic Republic</option>\n          <option value=\"LV\">Latvia</option>\n          <option value=\"LB\">Lebanon</option>\n          <option value=\"LS\">Lesotho</option>\n          <option value=\"LR\">Liberia</option>\n          <option value=\"LY\">Libya</option>\n          <option value=\"LI\">Liechtenstein</option>\n          <option value=\"LT\">Lithuania</option>\n          <option value=\"LU\">Luxembourg</option>\n          <option value=\"MO\">Macao</option>\n          <option value=\"MK\">Macedonia, the former Yugoslav Republic of</option>\n          <option value=\"MG\">Madagascar</option>\n          <option value=\"MW\">Malawi</option>\n          <option value=\"MY\">Malaysia</option>\n          <option value=\"MV\">Maldives</option>\n          <option value=\"ML\">Mali</option>\n          <option value=\"MT\">Malta</option>\n          <option value=\"MH\">Marshall Islands</option>\n          <option value=\"MQ\">Martinique</option>\n          <option value=\"MR\">Mauritania</option>\n          <option value=\"MU\">Mauritius</option>\n          <option value=\"YT\">Mayotte</option>\n          <option value=\"MX\">Mexico</option>\n          <option value=\"FM\">Micronesia, Federated States of</option>\n          <option value=\"MD\">Moldova, Republic of</option>\n          <option value=\"MC\">Monaco</option>\n          <option value=\"MN\">Mongolia</option>\n          <option value=\"ME\">Montenegro</option>\n          <option value=\"MS\">Montserrat</option>\n          <option value=\"MA\">Morocco</option>\n          <option value=\"MZ\">Mozambique</option>\n          <option value=\"MM\">Myanmar</option>\n          <option value=\"NA\">Namibia</option>\n          <option value=\"NR\">Nauru</option>\n          <option value=\"NP\">Nepal</option>\n          <option value=\"NL\">Netherlands</option>\n          <option value=\"NC\">New Caledonia</option>\n          <option value=\"NZ\">New Zealand</option>\n          <option value=\"NI\">Nicaragua</option>\n          <option value=\"NE\">Niger</option>\n          <option value=\"NG\">Nigeria</option>\n          <option value=\"NU\">Niue</option>\n          <option value=\"NF\">Norfolk Island</option>\n          <option value=\"MP\">Northern Mariana Islands</option>\n          <option value=\"NO\">Norway</option>\n          <option value=\"OM\">Oman</option>\n          <option value=\"PK\">Pakistan</option>\n          <option value=\"PW\">Palau</option>\n          <option value=\"PS\">Palestinian Territory, Occupied</option>\n          <option value=\"PA\">Panama</option>\n          <option value=\"PG\">Papua New Guinea</option>\n          <option value=\"PY\">Paraguay</option>\n          <option value=\"PE\">Peru</option>\n          <option value=\"PH\">Philippines</option>\n          <option value=\"PN\">Pitcairn</option>\n          <option value=\"PL\">Poland</option>\n          <option value=\"PT\">Portugal</option>\n          <option value=\"PR\">Puerto Rico</option>\n          <option value=\"QA\">Qatar</option>\n          <option value=\"RE\">Réunion</option>\n          <option value=\"RO\">Romania</option>\n          <option value=\"RU\">Russian Federation</option>\n          <option value=\"RW\">Rwanda</option>\n          <option value=\"BL\">Saint Barthélemy</option>\n          <option value=\"SH\">Saint Helena, Ascension and Tristan da Cunha</option>\n          <option value=\"KN\">Saint Kitts and Nevis</option>\n          <option value=\"LC\">Saint Lucia</option>\n          <option value=\"MF\">Saint Martin (French part)</option>\n          <option value=\"PM\">Saint Pierre and Miquelon</option>\n          <option value=\"VC\">Saint Vincent and the Grenadines</option>\n          <option value=\"WS\">Samoa</option>\n          <option value=\"SM\">San Marino</option>\n          <option value=\"ST\">Sao Tome and Principe</option>\n          <option value=\"SA\">Saudi Arabia</option>\n          <option value=\"SN\">Senegal</option>\n          <option value=\"RS\">Serbia</option>\n          <option value=\"SC\">Seychelles</option>\n          <option value=\"SL\">Sierra Leone</option>\n          <option value=\"SG\">Singapore</option>\n          <option value=\"SX\">Sint Maarten (Dutch part)</option>\n          <option value=\"SK\">Slovakia</option>\n          <option value=\"SI\">Slovenia</option>\n          <option value=\"SB\">Solomon Islands</option>\n          <option value=\"SO\">Somalia</option>\n          <option value=\"ZA\">South Africa</option>\n          <option value=\"GS\">South Georgia and the South Sandwich Islands</option>\n          <option value=\"SS\">South Sudan</option>\n          <option value=\"ES\">Spain</option>\n          <option value=\"LK\">Sri Lanka</option>\n          <option value=\"SD\">Sudan</option>\n          <option value=\"SR\">Suriname</option>\n          <option value=\"SJ\">Svalbard and Jan Mayen</option>\n          <option value=\"SZ\">Swaziland</option>\n          <option value=\"SE\">Sweden</option>\n          <option value=\"CH\">Switzerland</option>\n          <option value=\"SY\">Syrian Arab Republic</option>\n          <option value=\"TW\">Taiwan, Province of China</option>\n          <option value=\"TJ\">Tajikistan</option>\n          <option value=\"TZ\">Tanzania, United Republic of</option>\n          <option value=\"TH\">Thailand</option>\n          <option value=\"TL\">Timor-Leste</option>\n          <option value=\"TG\">Togo</option>\n          <option value=\"TK\">Tokelau</option>\n          <option value=\"TO\">Tonga</option>\n          <option value=\"TT\">Trinidad and Tobago</option>\n          <option value=\"TN\">Tunisia</option>\n          <option value=\"TR\">Turkey</option>\n          <option value=\"TM\">Turkmenistan</option>\n          <option value=\"TC\">Turks and Caicos Islands</option>\n          <option value=\"TV\">Tuvalu</option>\n          <option value=\"UG\">Uganda</option>\n          <option value=\"UA\">Ukraine</option>\n          <option value=\"AE\">United Arab Emirates</option>\n          <option value=\"GB\">United Kingdom</option>\n          <option value=\"US\">United States</option>\n          <option value=\"UM\">United States Minor Outlying Islands</option>\n          <option value=\"UY\">Uruguay</option>\n          <option value=\"UZ\">Uzbekistan</option>\n          <option value=\"VU\">Vanuatu</option>\n          <option value=\"VE\">Venezuela, Bolivarian Republic of</option>\n          <option value=\"VN\">Viet Nam</option>\n          <option value=\"VG\">Virgin Islands, British</option>\n          <option value=\"VI\">Virgin Islands, U.S.</option>\n          <option value=\"WF\">Wallis and Futuna</option>\n          <option value=\"EH\">Western Sahara</option>\n          <option value=\"YE\">Yemen</option>\n          <option value=\"ZM\">Zambia</option>\n          <option value=\"ZW\">Zimbabwe</option>\n        </select>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"form example\" data-tag=\"select\" data-use-content=\"true\">\n    <h4 class=\"ui header\">HTML Select</h4>\n    <p>If Javascript or <a href=\"/modules/dropdown.html\">ui dropdown</a> are not a viable option, forms also can provide basic styling for select elements</p>\n    <div class=\"ui form\">\n      <div class=\"field\">\n        <select>\n          <option value=\"\">Gender</option>\n          <option value=\"1\">Male</option>\n          <option value=\"0\">Female</option>\n        </select>\n      </div>\n    </div>\n  </div>\n\n  <div data-use-content=\"true\" class=\"example\" data-use-content=\"true\">\n    <h4 class=\"ui header\">Message</h4>\n    <p>A form can contain a <a href=\"/collections/message.html\">message</a></p>\n    <div class=\"ui ignored info message\">\n      Any <code>info</code>, <code>error</code>, <code>success</code>, or <code>warning</code> message blocks found inside a form are hidden by default.\n    </div>\n    <div class=\"ui form\">\n      <div class=\"ui message\">\n        <div class=\"header\">We had some issues</div>\n        <ul class=\"list\">\n          <li>Please enter your first name</li>\n          <li>Please enter your last name</li>\n        </ul>\n      </div>\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">States</h2>\n\n  <div data-use-content=\"true\" class=\"example\">\n    <h4 class=\"ui header\">Loading</h4>\n    <p>If a form is in loading state, it will automatically show a loading indicator.</p>\n\n    <div class=\"ui loading form\">\n      <div class=\"field\">\n        <label>E-mail</label>\n        <input type=\"email\" placeholder=\"joe@schmoe.com\">\n      </div>\n      <div class=\"ui submit button\">Submit</div>\n    </div>\n  </div>\n\n  <div data-use-content=\"true\" class=\"example\">\n    <h4 class=\"ui header\">Success</h4>\n    <p>If a form is in an success state, it will automatically show any success message blocks.</p>\n    <div class=\"ui form success\">\n      <div class=\"field\">\n        <label>E-mail</label>\n        <input type=\"email\" placeholder=\"joe@schmoe.com\">\n      </div>\n      <div class=\"ui success message\">\n        <div class=\"header\">Form Completed</div>\n        <p>You're all signed up for the newsletter.</p>\n      </div>\n      <div class=\"ui submit button\">Submit</div>\n    </div>\n  </div>\n\n  <div data-use-content=\"true\" class=\"example\">\n    <h4 class=\"ui header\">Error</h4>\n    <p>If a form is in an error state, it will automatically show any error message blocks.</p>\n    <div class=\"ui form error\">\n      <div class=\"field\">\n        <label>E-mail</label>\n        <input type=\"email\" placeholder=\"joe@schmoe.com\">\n      </div>\n      <div class=\"ui error message\">\n        <div class=\"header\">Action Forbidden</div>\n        <p>You can only sign up for an account once with a given e-mail address.</p>\n      </div>\n      <div class=\"ui submit button\">Submit</div>\n    </div>\n  </div>\n\n  <div data-use-content=\"true\" class=\"example\">\n    <h4 class=\"ui header\">Warning</h4>\n    <p>If a form is in warning state, it will automatically show any warning message block.</p>\n\n    <div class=\"ui form warning\">\n      <div class=\"field\">\n        <label>E-mail</label>\n        <input type=\"email\" placeholder=\"joe@schmoe.com\">\n      </div>\n      <div class=\"ui warning message\">\n        <div class=\"header\">Could you check something!</div>\n        <ul class=\"list\">\n          <li>That e-mail has been subscribed, but you have not yet clicked the verification link in your e-mail.</li>\n        </ul>\n      </div>\n      <div class=\"ui submit button\">Submit</div>\n    </div>\n  </div>\n\n\n  <div data-use-content=\"true\" class=\"example\">\n    <h4 class=\"ui header\">Field Error</h4>\n    <p>Individual fields may display an error state</p>\n\n    <div class=\"ui form\">\n      <div class=\"two fields\">\n        <div class=\"field error\">\n          <label>First Name</label>\n          <input placeholder=\"First Name\" type=\"text\">\n        </div>\n        <div class=\"field\">\n          <label>Last Name</label>\n          <input placeholder=\"Last Name\" type=\"text\">\n        </div>\n      </div>\n      <div class=\"field error\">\n        <label>Gender</label>\n        <div class=\"ui selection dropdown\">\n          <div class=\"default text\">Select</div>\n          <i class=\"dropdown icon\"></i>\n          <input type=\"hidden\" name=\"gender\">\n          <div class=\"menu\">\n            <div class=\"item\" data-value=\"male\">Male</div>\n            <div class=\"item\" data-value=\"female\">Female</div>\n          </div>\n        </div>\n      </div>\n      <div class=\"inline field error\">\n        <div class=\"ui checkbox\">\n          <input type=\"checkbox\" />\n          <label>I agree to the Terms and Conditions</label>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div data-use-content=\"true\" class=\"example\">\n    <h4 class=\"ui header\">Disabled Field</h4>\n    <p>Individual fields may be disabled</p>\n\n    <div class=\"ui form\">\n      <div class=\"two fields\">\n        <div class=\"disabled field\">\n          <label>First Name</label>\n          <input placeholder=\"Read Only\" type=\"text\" disabled tabindex=\"-1\">\n        </div>\n        <div class=\"disabled field\">\n          <label>Last Name</label>\n          <input placeholder=\"Disabled\" type=\"text\" disabled tabindex=\"-1\">\n        </div>\n      </div>\n    </div>\n  </div>\n  <div data-use-content=\"true\" class=\"example\">\n    <h4 class=\"ui header\">Read-Only Field</h4>\n    <p>Individual fields may be read only</p>\n\n    <div class=\"ui form\">\n      <div class=\"two fields\">\n        <div class=\"field\">\n          <label>First Name</label>\n          <input placeholder=\"Read Only\" readonly type=\"text\">\n        </div>\n        <div class=\"field\">\n          <label>Last Name</label>\n          <input placeholder=\"Read Only\" readonly type=\"text\">\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Form Variations</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Size</h4>\n    <p>A form can vary in size</p>\n    <div class=\"ui mini form\">\n      <div class=\"two fields\">\n        <div class=\"field\">\n          <label>First Name</label>\n          <input placeholder=\"First Name\" type=\"text\">\n        </div>\n        <div class=\"field\">\n          <label>Last Name</label>\n          <input placeholder=\"Last Name\" type=\"text\">\n        </div>\n      </div>\n      <div class=\"ui submit button\">Submit</div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui tiny form\">\n      <div class=\"two fields\">\n        <div class=\"field\">\n          <label>First Name</label>\n          <input placeholder=\"First Name\" type=\"text\">\n        </div>\n        <div class=\"field\">\n          <label>Last Name</label>\n          <input placeholder=\"Last Name\" type=\"text\">\n        </div>\n      </div>\n      <div class=\"ui submit button\">Submit</div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui small form\">\n      <div class=\"two fields\">\n        <div class=\"field\">\n          <label>First Name</label>\n          <input placeholder=\"First Name\" type=\"text\">\n        </div>\n        <div class=\"field\">\n          <label>Last Name</label>\n          <input placeholder=\"Last Name\" type=\"text\">\n        </div>\n      </div>\n      <div class=\"ui submit button\">Submit</div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui large form\">\n      <div class=\"two fields\">\n        <div class=\"field\">\n          <label>First Name</label>\n          <input placeholder=\"First Name\" type=\"text\">\n        </div>\n        <div class=\"field\">\n          <label>Last Name</label>\n          <input placeholder=\"Last Name\" type=\"text\">\n        </div>\n      </div>\n      <div class=\"ui submit button\">Submit</div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui big form\">\n      <div class=\"two fields\">\n        <div class=\"field\">\n          <label>First Name</label>\n          <input placeholder=\"First Name\" type=\"text\">\n        </div>\n        <div class=\"field\">\n          <label>Last Name</label>\n          <input placeholder=\"Last Name\" type=\"text\">\n        </div>\n      </div>\n      <div class=\"ui submit button\">Submit</div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui huge form\">\n      <div class=\"two fields\">\n        <div class=\"field\">\n          <label>First Name</label>\n          <input placeholder=\"First Name\" type=\"text\">\n        </div>\n        <div class=\"field\">\n          <label>Last Name</label>\n          <input placeholder=\"Last Name\" type=\"text\">\n        </div>\n      </div>\n      <div class=\"ui submit button\">Submit</div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui massive form\">\n      <div class=\"two fields\">\n        <div class=\"field\">\n          <label>First Name</label>\n          <input placeholder=\"First Name\" type=\"text\">\n        </div>\n        <div class=\"field\">\n          <label>Last Name</label>\n          <input placeholder=\"Last Name\" type=\"text\">\n        </div>\n      </div>\n      <div class=\"ui submit button\">Submit</div>\n    </div>\n  </div>\n\n  <div class=\"example\" data-use-content=\"true\">\n    <h4 class=\"ui header\">Equal Width Form</h4>\n    <p>Forms can automatically divide fields to be equal width</p>\n    <div class=\"ui equal width form\">\n      <div class=\"fields\">\n        <div class=\"field\">\n          <label>Username</label>\n          <input type=\"text\" placeholder=\"Username\">\n        </div>\n        <div class=\"field\">\n          <label>Password</label>\n          <input type=\"password\">\n        </div>\n      </div>\n      <div class=\"fields\">\n        <div class=\"field\">\n          <label>First name</label>\n          <input type=\"text\" placeholder=\"First Name\">\n        </div>\n        <div class=\"field\">\n          <label>Middle name</label>\n          <input type=\"text\" placeholder=\"Middle Name\">\n        </div>\n        <div class=\"field\">\n          <label>Last name</label>\n          <input type=\"text\" placeholder=\"Last Name\">\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Inverted</h4>\n    <p>A form on a dark background may have to invert its color scheme</p>\n\n    <div class=\"ui inverted segment\">\n      <div class=\"ui inverted form\">\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>First Name</label>\n            <input placeholder=\"First Name\" type=\"text\">\n          </div>\n          <div class=\"field\">\n            <label>Last Name</label>\n            <input placeholder=\"Last Name\" type=\"text\">\n          </div>\n        </div>\n        <div class=\"inline field\">\n          <div class=\"ui checkbox\">\n            <input type=\"checkbox\" />\n            <label>I agree to the terms and conditions</label>\n          </div>\n        </div>\n        <div class=\"ui submit button\">Submit</div>\n      </div>\n    </div>\n  </div>\n\n\n  <h2 class=\"ui dividing header\">Field Variations</h2>\n\n  <div data-use-content=\"true\" class=\"example\">\n    <h4 class=\"ui header\">Inline Field</h4>\n    <p>A field can have its label next to instead of above it.</p>\n    <div class=\"ui form\">\n      <div class=\"inline field\">\n        <label>Last name</label>\n        <input type=\"text\" placeholder=\"Full Name\">\n      </div>\n    </div>\n  </div>\n\n  <div data-use-content=\"true\" class=\"example\" data-class=\"wide\">\n    <h4 class=\"ui header\">Width</h4>\n    <p>A field can specify its width in <a href=\"/collections/grid.html\">grid columns</a></p>\n    <div class=\"ui form\">\n      <div class=\"fields\">\n        <div class=\"six wide field\">\n          <label>First name</label>\n          <input type=\"text\" placeholder=\"First Name\">\n        </div>\n        <div class=\"four wide field\">\n          <label>Middle</label>\n          <input type=\"text\" placeholder=\"Middle Name\">\n        </div>\n        <div class=\"six wide field\">\n          <label>Last name</label>\n          <input type=\"text\" placeholder=\"Last Name\">\n        </div>\n      </div>\n      <div class=\"fields\">\n        <div class=\"two wide field\">\n          <input type=\"text\" placeholder=\"2 Wide\">\n        </div>\n        <div class=\"twelve wide field\">\n          <input type=\"text\" placeholder=\"12 Wide\">\n        </div>\n        <div class=\"two wide field\">\n          <input type=\"text\" placeholder=\"2 Wide\">\n        </div>\n      </div>\n      <div class=\"fields\">\n        <div class=\"eight wide field\">\n          <input type=\"text\" placeholder=\"8 Wide\">\n        </div>\n        <div class=\"six wide field\">\n          <input type=\"text\" placeholder=\"6 Wide\">\n        </div>\n        <div class=\"two wide field\">\n          <input type=\"text\" placeholder=\"2 Wide\">\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div data-use-content=\"true\" class=\"example\">\n    <h4 class=\"ui header\">Required</h4>\n    <p>A field can show that input is mandatory</p>\n    <div class=\"ui form\">\n        <div class=\"required field\">\n          <label>Last name</label>\n          <input type=\"text\" placeholder=\"Full Name\">\n        </div>\n        <div class=\"required inline field\">\n          <div class=\"ui checkbox\">\n            <input type=\"checkbox\" />\n            <label>I agree to the terms and conditions</label>\n          </div>\n        </div>\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Group Variations</h2>\n\n  <div class=\"example\" data-use-content=\"true\">\n    <h4 class=\"ui header\">Evenly Divided</h4>\n    <p>Fields can have their widths divided evenly</p>\n    <div class=\"ui form\">\n      <div class=\"three fields\">\n        <div class=\"field\">\n          <label>First name</label>\n          <input type=\"text\" placeholder=\"First Name\">\n        </div>\n        <div class=\"field\">\n          <label>Middle name</label>\n          <input type=\"text\" placeholder=\"Middle Name\">\n        </div>\n        <div class=\"field\">\n          <label>Last name</label>\n          <input type=\"text\" placeholder=\"Last Name\">\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\" data-use-content=\"true\">\n    <h4 class=\"ui header\">Grouped Fields</h4>\n    <p>Fields can show related choices</p>\n    <div class=\"ui form\">\n      <div class=\"grouped fields\">\n        <div class=\"field\">\n          <div class=\"ui radio checkbox\">\n            <input type=\"radio\" name=\"fruit\" />\n            <label>Apples</label>\n          </div>\n        </div>\n        <div class=\"field\">\n          <div class=\"ui radio checkbox\">\n            <input type=\"radio\" name=\"fruit\" />\n            <label>Oranges</label>\n          </div>\n        </div>\n        <div class=\"field\">\n          <div class=\"ui radio checkbox\">\n            <input type=\"radio\" name=\"fruit\" />\n            <label>Pears</label>\n          </div>\n        </div>\n        <div class=\"field\">\n          <div class=\"ui radio checkbox\">\n            <input type=\"radio\" name=\"fruit\" />\n            <label>Grapefruit</label>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\" data-use-content=\"true\">\n    <h4 class=\"ui header\">Equal Width Fields</h4>\n    <p>Fields can automatically divide fields to be equal width</p>\n    <div class=\"ui form\">\n      <div class=\"fields\">\n        <div class=\"field\">\n          <label>Username</label>\n          <input type=\"text\" placeholder=\"Username\">\n        </div>\n        <div class=\"field\">\n          <label>Password</label>\n          <input type=\"password\">\n        </div>\n      </div>\n      <div class=\"equal width fields\">\n        <div class=\"field\">\n          <label>First name</label>\n          <input type=\"text\" placeholder=\"First Name\">\n        </div>\n        <div class=\"field\">\n          <label>Middle name</label>\n          <input type=\"text\" placeholder=\"Middle Name\">\n        </div>\n        <div class=\"field\">\n          <label>Last name</label>\n          <input type=\"text\" placeholder=\"Last Name\">\n        </div>\n      </div>\n    </div>\n  </div>\n\n\n  <div class=\"example\" data-use-content=\"true\">\n    <h4 class=\"ui header\">Inline Fields</h4>\n    <p>Multiple fields may be inline in a row</p>\n    <div class=\"ui form\">\n      <div class=\"inline fields\">\n        <label>Phone Number</label>\n        <div class=\"field\">\n          <input type=\"text\" placeholder=\"(xxx)\">\n        </div>\n        <div class=\"field\">\n          <input type=\"text\" placeholder=\"xxx\">\n        </div>\n        <div class=\"field\">\n          <input type=\"text\" placeholder=\"xxxx\">\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"another example\" data-use-content=\"true\">\n    <div class=\"ui form\">\n      <div class=\"inline fields\">\n        <label>What's your favorite fruit?</label>\n        <div class=\"field\">\n          <div class=\"ui radio checkbox\">\n            <input type=\"radio\" name=\"fruit\" />\n            <label>Apples</label>\n          </div>\n        </div>\n        <div class=\"field\">\n          <div class=\"ui radio checkbox\">\n            <input type=\"radio\" name=\"fruit\" />\n            <label>Oranges</label>\n          </div>\n        </div>\n        <div class=\"field\">\n          <div class=\"ui radio checkbox\">\n            <input type=\"radio\" name=\"fruit\" />\n            <label>Pears</label>\n          </div>\n        </div>\n        <div class=\"field\">\n          <div class=\"ui radio checkbox\">\n            <input type=\"radio\" name=\"fruit\" />\n            <label>Grapefruit</label>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n\n</div>\n"
  },
  {
    "path": "server/documents/collections/grid.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'Grid'\nstandalone  : true\n\nelement     : 'grid'\nelementType : 'collection'\n\ntitle       : 'Grid'\ndescription : 'A grid is used to harmonize negative space in a layout'\ntype        : 'UI Collection'\n\nthemes      : ['Default']\n---\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/collections/grid.less\" />\n<script src=\"/javascript/grid.js\"></script>\n\n<%- @partial('header', { tabs: { overview: 'Overview', definition: 'Definition' } }) %>\n\n<div class=\"main ui container\">\n\n  <div class=\"ui active intro tab\" data-tab=\"overview\">\n\n    <h2 class=\"ui dividing header\">Introduction</h2>\n\n    <div class=\"highlighted example\" data-class=\"grid\">\n      <h4 class=\"ui header\">Grids</h4>\n      <p>A grid is a structure with a <a href=\"http://99designs.com/designer-blog/2013/03/21/history-of-the-grid-part-1/\" target=\"_blank\">long history</a> used to align negative space in designs.</p>\n      <p>Using a grid makes content appear to flow more naturally on your page.</p>\n      <div class=\"ui ignored toggle animation checkbox\">\n        <input type=\"checkbox\" name=\"animation\" />\n        <label>Toggle Animation</label>\n      </div>\n      <div class=\"ui ignored hidden divider\"></div>\n      <div class=\"ui grid\">\n        <div class=\"four wide column\"></div>\n        <div class=\"four wide column\"></div>\n        <div class=\"four wide column\"></div>\n        <div class=\"four wide column\"></div>\n      </div>\n    </div>\n\n    <div class=\"highlighted example\" data-use-content=\"true\" data-class=\"column\">\n      <h4 class=\"ui header\">Columns</h4>\n      <p>Grids divide horizontal space into indivisible units called \"columns\". All columns in a grid must specify their width as proportion of the total available row width.</p>\n      <p>All grid systems choose an arbitrary column count to allow per row. Semantic's default theme uses <b>16 columns</b>.</p>\n\n      <p>The example below shows four <code>four wide</code> columns will fit in the first row, <code>16 / 4 = 4</code>, and three various sized columns in the second row. <code>2 + 8 + 6 = 16</code></p>\n\n      <p>The default column count, and other arbitrary features of grids can be changed by adjusting Semantic UI's underlying <a href=\"/usage/theming.html\">theming variables</a>.</p>\n\n      <div class=\"ui grid\">\n        <div class=\"four wide column\"></div>\n        <div class=\"four wide column\"></div>\n        <div class=\"four wide column\"></div>\n        <div class=\"four wide column\"></div>\n        <div class=\"two wide column\"></div>\n        <div class=\"eight wide column\"></div>\n        <div class=\"six wide column\"></div>\n      </div>\n    </div>\n    <div class=\"highlighted example\" data-use-content=\"true\" data-class=\"row\">\n      <h4 class=\"ui header\">Rows</h4>\n      <p>Rows are groups of columns which are aligned horizontally.</p>\n      <p>Rows can either be <em>explicit</em>, marked with an additional <code>row</code> element, or <em>implicit</em>, automatically occurring when no more space is left in a previous row.\n      </p>\n      <p>After each group of columns vertical spacing is added to separate each group of columns, creating vertical rhythm.\n      <div class=\"ui four column grid\">\n        <div class=\"row\">\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n        </div>\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n      </div>\n    </div>\n\n    <div class=\"highlighted negative example\" data-use-content=\"true\" data-class=\"relaxed\">\n      <h4 class=\"ui header\">Gutters</h4>\n      <p>Grid columns are separated by areas of white space referred to as \"gutters\". Gutters improve legibility by providing, <a href=\"https://en.wikipedia.org/wiki/Negative_space\" target=\"_blank\">negative space</a> between page elements.</p>\n      <p>Gutters remain a constant size regardless of the width of the grid, or how many columns are in a row. To increase the size of gutters in a particular grid, you can use a <a href=\"#relaxed\"><code>relaxed grid</code></a> variation.</p>\n      <div class=\"ui grid\">\n        <div class=\"three column row\">\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n        </div>\n        <div class=\"eight column row\">\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n        </div>\n      </div>\n      <div class=\"ui relaxed grid\">\n        <div class=\"three column row\">\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n        </div>\n        <div class=\"eight column row\">\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"highlighted negative example\">\n      <h4 class=\"ui header\">Negative Margins</h4>\n      <p>Since all grid columns include gutters, grids use <a href=\"http://csswizardry.com/2011/08/building-better-grid-systems/\">negative margins</a> to make sure that the first and last columns sit flush with content outside the grid.</p>\n      <p>In the following example, you can see even though the top row has padding, the <a href=\"/elements/button.html#vertically-attached\"><code>attached button</code></a> still sits flush with the edge of the grid.<p>\n      <p>In some cases, like when a column or row is <a href=\"#colored\"><code>colored</code></a>, you may want to avoid using negative margins. You can do this by using a <a href=\"#padded\"><code>padded grid</code></a> variation.</p>\n       <div class=\"ui top attached button\">Button before grid</div>\n       <div class=\"ui grid\">\n        <div class=\"sixteen wide column\"></div>\n        <div class=\"ten wide column\"></div>\n        <div class=\"six wide column\"></div>\n      </div>\n      <div class=\"ui grid\">\n        <div class=\"sixteen wide column\"></div>\n      </div>\n      <div class=\"ui bottom attached button\">Button after grid</div>\n    </div>\n\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Page Grids</h4>\n      <p>Grids are fluid and will automatically flow in size to take the maximum available width.</p>\n      <p><a href=\"/elements/container.html\">Containers</a> are elements designed to limit page content to a reasonable maximum width for display based on the size of the user's screen.</p>\n      <p>Using a <a href=\"/elements/container.html#containers-using-grids\"><code>ui grid container</code></a> is the best way to include top-level page content inside a grid.</p>\n      <div class=\"ui warning message\">\n        <p>In version <code>1.x</code> of Semantic UI <code>page grid</code> were used to contain the maximum width of grids holding page content. Page grid have been deprecated in favor for the simpler <code>container</code> element.</p>\n      </div>\n    </div>\n\n\n    <h2 class=\"ui dividing header\">Columns</h2>\n\n    <div class=\"highlighted example\">\n      <h4 class=\"ui header\">Automatic Flow</h4>\n      <p>Most grids do not need to specify rows. Content will automatically flow to the next row when all the grid columns are taken in the current row</b>.</p>\n\n      <div class=\"ui grid\">\n        <div class=\"four wide column\"></div>\n        <div class=\"four wide column\"></div>\n        <div class=\"four wide column\"></div>\n        <div class=\"four wide column\"></div>\n        <div class=\"four wide column\"></div>\n        <div class=\"four wide column\"></div>\n        <div class=\"four wide column\"></div>\n        <div class=\"four wide column\"></div>\n      </div>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">Column Content</h4>\n      <p>Since columns use padding to create gutters, content stylings should not be applied directly to columns, but to elements inside of columns.</p>\n      <div class=\"ui three column grid\">\n        <div class=\"column\">\n          <div class=\"ui segment\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n        </div>\n        <div class=\"column\">\n          <div class=\"ui segment\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n        </div>\n        <div class=\"column\">\n          <div class=\"ui segment\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"highlighted example\" data-use-content=\"true\" data-class=\"wide\">\n      <h4 class=\"ui header\">Column Widths</h4>\n      <p>Column widths can be specified using <a href=\"#column-width\"><code>(x) wide</code></a> class names. If a column cannot fit in a row it will automatically flow to the next row</p>\n      <div class=\"ui grid\">\n        <div class=\"eight wide column\"></div>\n        <div class=\"eight wide column\"></div>\n        <div class=\"ten wide column\"></div>\n        <div class=\"six wide column\"></div>\n        <div class=\"four wide column\"></div>\n        <div class=\"twelve wide column\"></div>\n        <div class=\"two wide column\"></div>\n        <div class=\"fourteen wide column\"></div>\n        <div class=\"sixteen wide column\"></div>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Rows</h2>\n\n    <div class=\"highlighted example\">\n      <h4 class=\"ui header\">Grouping</h4>\n      <p>Row wrappers allow you to apply variations to a group of columns.</p>\n      <div class=\"ui four column grid\">\n        <div class=\"two column row\">\n          <div class=\"column\"></div>\n        </div>\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n      </div>\n    </div>\n    <div class=\"highlighted example\" data-use-content=\"true\" data-class=\"floated\">\n      <h4 class=\"ui header\">Clearing Content</h4>\n      <p>Row wrappers will automatically clear previous columns, making them useful when using <a href=\"#floated\"><code>floated</code></a> variations.</p>\n      <div class=\"ui grid\">\n        <div class=\"four column row\">\n          <div class=\"left floated column\"></div>\n          <div class=\"right floated column\"></div>\n        </div>\n        <div class=\"row\">\n          <div class=\"three wide column\"></div>\n          <div class=\"eight wide column\"></div>\n          <div class=\"five wide column\"></div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\" data-class=\"internally celled\">\n      <h4 class=\"ui header\">Special Grids</h4>\n      <p>Additionally, some types of grids, like <a href=\"#divided\"><code>divided</code></a> or <a href=\"#celled\"><code>celled</code></a> require row wrappers to apply formatting correctly.</p>\n\n      <div class=\"ui internally celled grid\">\n        <div class=\"row\">\n          <div class=\"three wide column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"ten wide column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/centered-paragraph.png\">\n          </div>\n          <div class=\"three wide column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n        </div>\n        <div class=\"row\">\n          <div class=\"three wide column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"ten wide column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n          </div>\n          <div class=\"three wide column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Varying Grids</h2>\n\n\n    <div class=\"highlighted special example\" data-use-content=\"true\" data-class=\"grid\">\n      <h4 class=\"ui header\">Nesting Grids</h4>\n      <p>Grids can be placed inside of other grids, letting you sub-divide columns.</p>\n\n      <div class=\"ui two column grid\">\n        <div class=\"column\">\n          <div class=\"ui three column grid\">\n            <div class=\"column\"></div>\n            <div class=\"column\"></div>\n            <div class=\"column\"></div>\n          </div>\n        </div>\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n        <div class=\"column\">\n          <div class=\"ui grid\">\n            <div class=\"ten wide column\"></div>\n            <div class=\"six wide column\"></div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"colored example\" data-use-content=\"true\" data-class=\"colored, padded\">\n      <h4 class=\"ui header\">Colored</h4>\n      <p>Grids can use named <a href=\"#colored\"><b>colors</b> variations</a> to add background colors, but only with <a href=\"#padded\"><code>padded grid</code></a> that do not include negative margins.</p>\n      <p>To include a color that is not available in the default palette its perfectly fine to use CSS</p>\n      <div class=\"ui equal width center aligned padded grid\">\n        <div class=\"row\">\n          <div class=\"olive column\">\n            Olive\n          </div>\n          <div class=\"black column\">\n            Black\n          </div>\n        </div>\n        <div class=\"row\" style=\"background-color: #869D05;color: #FFFFFF;\">\n          <div class=\"column\">Custom Row</div>\n        </div>\n        <div class=\"row\">\n          <div class=\"black column\">\n            Black\n          </div>\n          <div class=\"olive column\">\n            Olive\n          </div>\n        </div>\n      </div>\n    </div>\n\n\n    <div class=\"highlighted example\" data-class=\"equal width\">\n      <h4 class=\"ui header\">Automatic Column Count</h4>\n      <p>The <a href=\"#equal-width\"><code>equal width</code></a> variation will automatically divide column width evenly. This is useful with dynamic content where you do not know the column count in advance.</p>\n      <div class=\"ui equal width grid\">\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n        <div class=\"equal width row\">\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n        </div>\n      </div>\n    </div>\n    <div class=\"highlighted example\" data-class=\"centered\">\n      <h4 class=\"ui header\">Centering Content</h4>\n      <p>If a row does not take up all sixteen grid columns, you can use a <a href=\"#centered\"><code>centered</code></a> variation to center the column contents inside the grid.\n      </p>\n      <div class=\"ui two column centered grid\">\n        <div class=\"column\"></div>\n        <div class=\"four column centered row\">\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\" data-use-content=\"true\" data-class=\"left floated right aligned, right floated left aligned, center aligned, sixteen wide\">\n      <h4 class=\"ui header\">Significant Word Order</h4>\n      <p>Grids include many variations for adjusting things like vertical or horizontal alignment, text alignment, or default gutter sizes.</p>\n      <p>Some multi-word variations, like <a href=\"#floated\"><code>left floated</code></a> or <a href=\"#text-alignment\"><code>right aligned</code></a> are word-order dependent and require you to use adjacent class names.</p>\n\n      <div class=\"ui right aligned grid\">\n        <div class=\"left floated right aligned six wide column\">\n          <div class=\"ui segment\">\n            Left floated right aligned column\n          </div>\n        </div>\n        <div class=\"right floated left aligned six wide column\">\n          <div class=\"ui segment\">\n            Right floated left aligned column\n          </div>\n        </div>\n        <div class=\"center aligned two column row\">\n          <div class=\"column\">\n            <div class=\"ui segment\">\n            Center aligned row\n            </div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui segment\">\n            Center aligned row\n            </div>\n          </div>\n        </div>\n        <div class=\"sixteen wide column\">\n          <div class=\"ui segment\">\n            Right Aligned Grid\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Responsive Grids</h2>\n\n    <div class=\"highlighted example\" data-class=\"container\">\n      <h4 class=\"ui header\">Containers</h4>\n      <p>A <a href=\"/elements/container.html\">container</a> can be used alongside a grid to provide a responsive, fixed width container for wrapping the contents of a page.</p>\n      <div class=\"ui grid container\">\n        <div class=\"four wide column\"></div>\n        <div class=\"four wide column\"></div>\n        <div class=\"four wide column\"></div>\n        <div class=\"four wide column\"></div>\n        <div class=\"four wide column\"></div>\n        <div class=\"four wide column\"></div>\n        <div class=\"four wide column\"></div>\n        <div class=\"four wide column\"></div>\n      </div>\n    </div>\n\n    <div class=\"highlighted example\">\n      <h4 class=\"ui header\">Stackable</h4>\n      <p>A <a href=\"#stackable\"><code>stackable grid</code></a> will automatically stack rows to a single columns on mobile devices</p>\n      <div class=\"ui stackable four column grid\">\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n      </div>\n    </div>\n    <div class=\"example\" data-class=\"mobile reversed\">\n      <h4 class=\"ui header\">Reverse Order</h4>\n      <p>Semantic includes special <a href=\"#reversed\"><code>reversed</code></a> variations that allow you to reverse the order of columns or rows by device</p>\n      <div class=\"ui mobile reversed equal width grid\">\n        <div class=\"column\">\n          First\n        </div>\n        <div class=\"column\">\n          Second\n        </div>\n        <div class=\"column\">\n          Third\n        </div>\n      </div>\n    </div>\n\n    <div class=\"highlighted example\">\n      <h4 class=\"ui header\">Doubling</h4>\n      <p>A <a href=\"#doubling\"><code>doubling</code></a> grid will double column widths for each device jump.</p>\n      <div class=\"ui grid\">\n        <div class=\"doubling eight column row\">\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n        </div>\n        <div class=\"doubling six column row\">\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n        </div>\n        <div class=\"doubling four column row\">\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n        </div>\n      </div>\n    </div>\n    <div class=\"highlighted example\" data-class=\"computer only, six wide tablet eight wide computer\" data-use-content=\"true\">\n      <h4 class=\"ui header\">Manual Tweaks</h4>\n      <p>Although design patterns like <a href=\"#doubling\"><code>doubling</code></a> or <a href=\"#stackable\"><code>stackable</code></a> are useful at simplifying responsive styling, you can also manually tweak device presentation by specifying <a href=\"#device-width\"><code>(x) wide device</code></a> or <a href=\"#device-visibility\"><code>device only</code></a> columns or rows.\n      <div class=\"ui centered grid\">\n        <div class=\"computer only row\">\n          <div class=\"column\"></div>\n        </div>\n        <div class=\"six wide tablet eight wide computer column\"></div>\n        <div class=\"six wide tablet eight wide computer column\"></div>\n        <div class=\"six wide tablet eight wide computer column\"></div>\n        <div class=\"six wide tablet eight wide computer column\"></div>\n        <div class=\"six wide tablet eight wide computer column\"></div>\n      </div>\n    </div>\n\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"definition\">\n\n    <h2 class=\"ui dividing header\">Types</h2>\n\n    <div class=\"highlighted example\">\n      <h4 class=\"ui header\">\n        Grid\n        <a href=\"https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Flexible_boxes\" target=\"_blank\" class=\"ui teal label\">Flexbox</a>\n      </h4>\n      <p>A basic grid</p>\n      <div class=\"ui grid\">\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        Divided\n        <span class=\"ui black label\">Requires Rows</span>\n      </h4>\n      <p>A grid can have dividers between its columns</p>\n      <div class=\"ui three column divided grid\">\n        <div class=\"row\">\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/media-paragraph.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/media-paragraph.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/media-paragraph.png\">\n          </div>\n        </div>\n        <div class=\"row\">\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/media-paragraph.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/media-paragraph.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/media-paragraph.png\">\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        Vertically Divided\n        <span class=\"ui black label\">Requires Rows</span>\n      </h4>\n      <p>A grid can have dividers between rows</p>\n      <div class=\"ui vertically divided grid\">\n        <div class=\"two column row\">\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n          </div>\n        </div>\n        <div class=\"three column row\">\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n          </div>\n        </div>\n      </div>\n    </div>\n\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        Celled\n        <span class=\"ui black label\">Requires Rows</span>\n      </h4>\n      <p>A grid can have rows divided into cells</p>\n      <div class=\"ui celled grid\">\n        <div class=\"row\">\n          <div class=\"three wide column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"thirteen wide column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/centered-paragraph.png\">\n          </div>\n        </div>\n        <div class=\"row\">\n          <div class=\"three wide column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"ten wide column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n          </div>\n          <div class=\"three wide column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        Internally Celled\n        <span class=\"ui black label\">Requires Rows</span>\n      </h4>\n      <p>A grid can have rows divisions only between internal rows</p>\n      <div class=\"ui internally celled grid\">\n        <div class=\"row\">\n          <div class=\"three wide column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"ten wide column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/centered-paragraph.png\">\n          </div>\n          <div class=\"three wide column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n        </div>\n        <div class=\"row\">\n          <div class=\"three wide column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"ten wide column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n          </div>\n          <div class=\"three wide column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Content</h2>\n\n    <div class=\"example\" data-use-content=\"true\" data-class=\"row\">\n      <h4 class=\"ui header\">Rows</h4>\n      <p>A row is a horizontal grouping of columns</p>\n      <div class=\"ui three column grid\">\n        <div class=\"row\">\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n          </div>\n        </div>\n        <div class=\"row\">\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"example\" data-use-content=\"true\" data-class=\"column\">\n      <h4 class=\"ui header\">Columns</h4>\n      <p>Columns each contain gutters giving them equal spacing from other columns.</p>\n      <div class=\"ui grid\">\n        <div class=\"eight wide column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        </div>\n        <div class=\"eight wide column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        </div>\n        <div class=\"eight wide column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        </div>\n        <div class=\"eight wide column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        </div>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Variations</h2>\n\n\n    <div class=\"example\" data-use-content=\"true\">\n      <h4 class=\"ui header\">Floated</h4>\n      <p>A column can sit flush against the left or right edge of a row</p>\n      <div class=\"ui grid\">\n        <div class=\"left floated five wide column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        </div>\n        <div class=\"right floated five wide column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\" data-use-content=\"true\" data-class=\"wide\">\n      <h4 class=\"ui header\">Column Width</h4>\n      <p>A column can vary in width taking up more than a single grid column.</p>\n      <div class=\"ui grid\">\n        <div class=\"four wide column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"nine wide column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        </div>\n        <div class=\"three wide column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/media-paragraph.png\">\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\" data-use-content=\"true\" data-class=\"column count\">\n      <h4 class=\"ui header\">Column Count</h4>\n      <p>A grid can have a different number of columns per row</p>\n      <div class=\"ui grid\">\n        <div class=\"three column row\">\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n        </div>\n        <div class=\"four column row\">\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n        </div>\n        <div class=\"five column row\">\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\" data-use-content=\"true\">\n      <h4 class=\"ui header\">\n        Equal Width\n      </h4>\n      <p>A grid can automatically resize all elements to split the available width evenly</p>\n      <div class=\"ui equal width grid\">\n        <div class=\"column\">\n          <div class=\"ui segment\">\n            1\n          </div>\n        </div>\n        <div class=\"eight wide column\">\n          <div class=\"ui segment\">\n            2\n          </div>\n        </div>\n        <div class=\"column\">\n          <div class=\"ui segment\">\n            3\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"another example\">\n      <div class=\"ui equal width grid\">\n        <div class=\"row\">\n          <div class=\"column\">\n            <div class=\"ui segment\">1</div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui segment\">2</div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui segment\">3</div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui segment\">4</div>\n          </div>\n        </div>\n        <div class=\"row\">\n          <div class=\"column\">\n            <div class=\"ui segment\">1</div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui segment\">2</div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui segment\">3</div>\n          </div>\n        </div>\n        <div class=\"row\">\n          <div class=\"column\">\n            <div class=\"ui segment\">1</div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui segment\">2</div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"stretched example\" data-use-content=\"true\">\n      <h4 class=\"ui header\">\n        Stretched\n      </h4>\n      <p>A row can stretch its contents to take up the entire column height</p>\n      <div class=\"ui three column divided grid\">\n        <div class=\"stretched row\">\n          <div class=\"column\">\n            <div class=\"ui segment\">\n              1\n            </div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui segment\">\n              1\n            </div>\n            <div class=\"ui segment\">\n              2\n            </div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui segment\">\n              1\n            </div>\n            <div class=\"ui segment\">\n              2\n            </div>\n            <div class=\"ui segment\">\n              3\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"another example\">\n      <div class=\"ui equal width grid\">\n        <div class=\"stretched row\">\n          <div class=\"column\">\n            <div class=\"ui segment\">\n              1\n            </div>\n            <div class=\"ui segment\">\n              2\n            </div>\n          </div>\n          <div class=\"six wide column\">\n            <div class=\"ui segment\">\n              <img class=\"ui image\" src=\"/images/wireframe/image.png\">\n            </div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui segment\">\n              1\n            </div>\n            <div class=\"ui segment\">\n              2\n            </div>\n          </div>\n        </div>\n        <div class=\"row\">\n          <div class=\"column\">\n            <div class=\"ui segment\">\n              1\n            </div>\n            <div class=\"ui segment\">\n              2\n            </div>\n          </div>\n          <div class=\"six wide column\">\n            <div class=\"ui segment\">\n              <img class=\"ui image\" src=\"/images/wireframe/image.png\">\n            </div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui segment\">\n              1\n            </div>\n            <div class=\"ui segment\">\n              2\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n\n    <div class=\"example\" data-class=\"vertically padded, horizontally padded, padded\">\n      <h4 class=\"ui header\">Padded</h4>\n      <p>A grid can preserve its vertical and horizontal gutters on first and last columns</p>\n\n      <p>The following grid has vertical and horizontal gutters</p>\n      <div class=\"ui divider\"></div>\n      <div class=\"ui two column padded grid\">\n        <div class=\"column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        </div>\n        <div class=\"column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        </div>\n      </div>\n    </div>\n    <div class=\"another example\">\n      <p>The following grid has vertical gutters.</p>\n      <div class=\"ui divider\"></div>\n      <div class=\"ui two column vertically padded grid\">\n        <div class=\"column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        </div>\n        <div class=\"column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        </div>\n      </div>\n    </div>\n    <div class=\"another example\">\n      <p>The following grid has horizontal gutters</p>\n      <div class=\"ui divider\"></div>\n      <div class=\"ui two column horizontally padded grid\">\n        <div class=\"column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        </div>\n        <div class=\"column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Relaxed</h4>\n      <p>A grid can increase its gutters to allow for more negative space</p>\n      <div class=\"ui four column relaxed grid\">\n        <div class=\"column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n        </div>\n      </div>\n    </div>\n    <div class=\"another example\">\n      <div class=\"ui four column very relaxed grid\">\n        <div class=\"column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\" data-use-content=\"true\">\n      <h4 class=\"ui header\">Colored</h4>\n      <p>A row or column can be colored</p>\n      <div class=\"ui five column padded grid\">\n        <div class=\"red column\">Red</div>\n        <div class=\"orange column\">Orange</div>\n        <div class=\"yellow column\">Yellow</div>\n        <div class=\"olive column\">Olive</div>\n        <div class=\"green column\">Green</div>\n        <div class=\"teal column\">Teal</div>\n        <div class=\"blue column\">Blue</div>\n        <div class=\"violet column\">Violet</div>\n        <div class=\"purple column\">Purple</div>\n        <div class=\"pink column\">Pink</div>\n        <div class=\"brown column\">Brown</div>\n        <div class=\"grey column\">Grey</div>\n        <div class=\"black column\">Black</div>\n      </div>\n    </div>\n    <div class=\"another example\">\n      <div class=\"ui padded grid\">\n        <div class=\"red row\">\n          <div class=\"column\">Red</div>\n        </div>\n        <div class=\"orange row\">\n          <div class=\"column\">Orange</div>\n        </div>\n        <div class=\"yellow row\">\n          <div class=\"column\">Yellow</div>\n        </div>\n        <div class=\"olive row\">\n          <div class=\"column\">Olive</div>\n        </div>\n        <div class=\"green row\">\n          <div class=\"column\">Green</div>\n        </div>\n        <div class=\"teal row\">\n          <div class=\"column\">Teal</div>\n        </div>\n        <div class=\"blue row\">\n          <div class=\"column\">Blue</div>\n        </div>\n        <div class=\"violet row\">\n          <div class=\"column\">Violet</div>\n        </div>\n        <div class=\"purple row\">\n          <div class=\"column\">Purple</div>\n        </div>\n        <div class=\"pink row\">\n          <div class=\"column\">Pink</div>\n        </div>\n        <div class=\"brown row\">\n          <div class=\"column\">Brown</div>\n        </div>\n        <div class=\"grey row\">\n          <div class=\"column\">Grey</div>\n        </div>\n        <div class=\"black row\">\n          <div class=\"column\">Black</div>\n        </div>\n      </div>\n    </div>\n\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Centered</h4>\n      <p>A grid can have its columns centered</p>\n      <div class=\"ui two column centered grid\">\n        <div class=\"column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"four column centered row\">\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n        </div>\n        <div class=\"four column row\">\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\" data-use-content=\"true\">\n      <h4 class=\"ui header\">Text Alignment</h4>\n      <p>A grid, row, or column can specify its text alignment</p>\n      <div class=\"ui center aligned three column grid\">\n        <div class=\"row\">\n          <div class=\"column\">\n            <div class=\"ui vertical fluid menu\">\n              <div class=\"header item\">\n                Cats\n              </div>\n            </div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui vertical fluid menu\">\n              <div class=\"header item\">\n                Dogs\n              </div>\n              <div class=\"item\">\n                Poodle\n              </div>\n              <div class=\"item\">\n                Cockerspaniel\n              </div>\n            </div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui vertical fluid menu\">\n              <div class=\"header item\">\n                Monkeys\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"another example\">\n      <div class=\"ui center aligned grid\">\n        <div class=\"three column row\">\n          <div class=\"column\">\n            <div class=\"ui vertical fluid menu\">\n              <div class=\"header item\">\n                Cats\n              </div>\n            </div>\n          </div>\n          <div class=\"left aligned column\">\n            <div class=\"ui vertical fluid menu\">\n              <div class=\"header item\">\n                Dogs\n              </div>\n              <div class=\"item\">\n                Poodle\n              </div>\n              <div class=\"item\">\n                Cockerspaniel\n              </div>\n            </div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui vertical fluid menu\">\n              <div class=\"header item\">\n                Monkeys\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"justified row\">\n          <div class=\"column\">\n            <p>Justified content fits exactly inside the grid column, taking up the entire width from one side to the other. Justified content fits exactly inside the grid column, taking up the entire width from one side to the other. Justified content fits exactly inside the grid column, taking up the entire width from one side to the other. Justified content fits exactly inside the grid column, taking up the entire width from one side to the other. Justified content fits exactly inside the grid column, taking up the entire width from one side to the other.</p>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"another example\">\n      <div class=\"ui right aligned three column grid\">\n        <div class=\"row\">\n          <div class=\"column\">\n            <div class=\"ui vertical fluid menu\">\n              <div class=\"header item\">\n                Cats\n              </div>\n            </div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui vertical fluid menu\">\n              <div class=\"header item\">\n                Dogs\n              </div>\n              <div class=\"item\">\n                Poodle\n              </div>\n              <div class=\"item\">\n                Cockerspaniel\n              </div>\n            </div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui vertical fluid menu\">\n              <div class=\"header item\">\n                Monkeys\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n\n    <div class=\"example\" data-use-content=\"true\">\n      <h4 class=\"ui header\">Vertical Alignment</h4>\n      <p>A grid, row, or column can specify its vertical alignment to have all its columns vertically centered.</p>\n      <div class=\"ui middle aligned four column centered grid\">\n        <div class=\"row\">\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"another example\">\n      <div class=\"ui four column centered grid\">\n        <div class=\"top aligned row\">\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n        </div>\n        <div class=\"middle aligned row\">\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n        </div>\n        <div class=\"bottom aligned row\">\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Responsive Variations</h2>\n\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Doubling</h4>\n      <p>A grid can double its column width on tablet and mobile sizes</p>\n      <div class=\"ui text message info ignore\">\n        A grid will round its columns to the closest reasonable value when doubling, for example a <code>five column grid</code> will use <code>2 mobile, 3 tablet, 5 desktop</code>. To force 1 column on mobile you can add <a href=\"#stackable\"><code>stackable</code></a>\n      </div>\n      <div class=\"five column doubling ui grid\">\n        <div class=\"column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Stackable</h4>\n      <p>A grid can have its columns stack on-top of each other after reaching mobile breakpoints</p>\n      <div class=\"ui text message info ignore\">\n        To see a grid stack, try resizing your browser to a small width\n      </div>\n      <div class=\"two column stackable ui grid\">\n        <div class=\"column\">\n          <div class=\"ui segment\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n          </div>\n        </div>\n        <div class=\"column\">\n          <div class=\"ui segment\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"example\" data-use-content=\"true\" data-class=\"computer reversed, tablet reversed, mobile reversed, computer vertically reversed, mobile vertically reversed, tablet vertically reversed\">\n      <h4 class=\"ui header\">Reversed</h4>\n      <p>A grid or row can specify that its columns should reverse order at different device sizes</p>\n      <div class=\"ui ignored info message message\">Reversed grids are compatible with <code>divided</code> grids and other complex grid types.</div>\n      <div class=\"ui computer reversed equal width grid\">\n        <div class=\"row\">\n          <div class=\"column\">\n            Computer A Fourth\n          </div>\n          <div class=\"column\">\n            Computer A Third\n          </div>\n          <div class=\"column\">\n            Computer A Second\n          </div>\n          <div class=\"column\">\n            Computer A First\n          </div>\n        </div>\n        <div class=\"row\">\n          <div class=\"column\">\n            Computer B Fourth\n          </div>\n          <div class=\"column\">\n            Computer B Third\n          </div>\n          <div class=\"column\">\n            Computer B Second\n          </div>\n          <div class=\"column\">\n            Computer B First\n          </div>\n        </div>\n      </div>\n      <div class=\"ui tablet reversed equal width grid\">\n        <div class=\"column\">\n          Tablet Fourth\n        </div>\n        <div class=\"column\">\n          Tablet Third\n        </div>\n        <div class=\"column\">\n          Tablet Second\n        </div>\n        <div class=\"column\">\n          Tablet First\n        </div>\n      </div>\n      <div class=\"ui mobile reversed equal width grid\">\n        <div class=\"column\">\n          Mobile Fourth\n        </div>\n        <div class=\"column\">\n          Mobile Third\n        </div>\n        <div class=\"column\">\n          Mobile Second\n        </div>\n        <div class=\"column\">\n          Mobile First\n        </div>\n      </div>\n    </div>\n    <div class=\"another example\">\n      <div class=\"ui computer vertically reversed grid\">\n        <div class=\"row\">\n          <div class=\"column\">Computer Row 4</div>\n        </div>\n        <div class=\"row\">\n          <div class=\"column\">Computer Row 3</div>\n        </div>\n        <div class=\"row\">\n          <div class=\"column\">Computer Row 2</div>\n        </div>\n        <div class=\"row\">\n          <div class=\"column\">Computer Row 1</div>\n        </div>\n      </div>\n    </div>\n    <div class=\"another example\">\n      <div class=\"ui tablet vertically reversed grid\">\n        <div class=\"row\">\n          <div class=\"column\">Tablet Row 4</div>\n        </div>\n        <div class=\"row\">\n          <div class=\"column\">Tablet Row 3</div>\n        </div>\n        <div class=\"row\">\n          <div class=\"column\">Tablet Row 2</div>\n        </div>\n        <div class=\"row\">\n          <div class=\"column\">Tablet Row 1</div>\n        </div>\n      </div>\n    </div>\n    <div class=\"another example\">\n      <div class=\"ui mobile vertically reversed grid\">\n        <div class=\"row\">\n          <div class=\"column\">Mobile Row 4</div>\n        </div>\n        <div class=\"row\">\n          <div class=\"column\">Mobile Row 3</div>\n        </div>\n        <div class=\"row\">\n          <div class=\"column\">Mobile Row 2</div>\n        </div>\n        <div class=\"row\">\n          <div class=\"column\">Mobile Row 1</div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\" data-use-content=\"true\" data-class=\"large screen only, computer only, tablet only, mobile only\">\n      <h4 class=\"ui header\">Device Visibility</h4>\n      <p>A columns or row can appear only for a specific device, or screen sizes</p>\n      <div class=\"ui text message info ignore\">\n        See <a href=\"/elements/container.html\">container documentation</a> for information on breakpoint calculations\n      </div>\n      <div class=\"ui grid\">\n        <div class=\"two column large screen only row\">\n          <div class=\"column\">\n            <div class=\"ui segment\">\n              Large Screen\n            </div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui segment\">\n              Large Screen\n            </div>\n          </div>\n        </div>\n        <div class=\"two column large screen only row\">\n          <div class=\"column\">\n            <div class=\"ui segment\">\n              Widescreen\n            </div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui segment\">\n              Widescreen\n            </div>\n          </div>\n        </div>\n        <div class=\"two column mobile only row\">\n          <div class=\"column\">\n            <div class=\"ui segment\">\n              Mobile\n            </div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui segment\">\n              Mobile\n            </div>\n          </div>\n        </div>\n        <div class=\"three column row\">\n          <div class=\"computer only column\">\n            <div class=\"ui segment\">\n              Computer\n            </div>\n          </div>\n          <div class=\"tablet mobile only column\">\n            <div class=\"ui segment\">\n              Tablet and Mobile\n            </div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui segment\">\n              All Sizes\n            </div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui segment\">\n              All Sizes\n            </div>\n          </div>\n        </div>\n        <div class=\"four column computer only row\">\n          <div class=\"column\">\n            <div class=\"ui segment\">\n              Computer\n            </div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui segment\">\n              Computer\n            </div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui segment\">\n              Computer\n            </div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui segment\">\n              Computer\n            </div>\n          </div>\n        </div>\n        <div class=\"three column tablet only row\">\n          <div class=\"column\">\n            <div class=\"ui segment\">\n              Tablet\n            </div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui segment\">\n              Tablet\n            </div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui segment\">\n              Tablet\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\" data-use-content=\"true\">\n      <h4 class=\"ui header\">Responsive Width</h4>\n      <p>A column can specify a width for a specific device</p>\n      <div class=\"ui ignored info message\">\n        <p>It's recommended to use a responsive pattern like <a href=\"#doubling\"><code>doubling</code></a> or <a href=\"#stackable\"><code>stackable</code></a> to reduce complexity when designing responsively, however in some circumstances specifying exact widths for screen sizes may be necessary.</p>\n      </div>\n      <div class=\"ui grid\">\n        <div class=\"sixteen wide mobile eight wide tablet four wide computer column\">\n          <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n        </div>\n        <div class=\"sixteen wide mobile eight wide tablet four wide computer column\">\n          <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n        </div>\n        <div class=\"sixteen wide mobile eight wide tablet four wide computer column\">\n          <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n        </div>\n        <div class=\"sixteen wide mobile eight wide tablet four wide computer column\">\n          <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n        </div>\n        <div class=\"sixteen wide mobile eight wide tablet four wide computer column\">\n          <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n        </div>\n      </div>\n    </div>\n    <div class=\"another example\">\n      <div class=\"ui grid\">\n        <div class=\"four wide two wide large screen one wide widescreen column\">\n          <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n        </div>\n        <div class=\"four wide two wide large screen one wide widescreen column\">\n          <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n        </div>\n        <div class=\"four wide two wide large screen one wide widescreen column\">\n          <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n        </div>\n        <div class=\"four wide two wide large screen one wide widescreen column\">\n          <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n        </div>\n      </div>\n    </div>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/collections/menu.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'menu'\nstandalone  : true\n\nelement     : 'menu'\nelementType : 'collection'\n\ntitle       : 'Menu'\ndescription : 'A menu displays grouped navigation actions'\ntype        : 'UI Collection'\n\nthemes      : ['Default', 'Chubby', 'GitHub', 'Material']\n---\n\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/collections/menu.less\" />\n<script src=\"/javascript/menu.js\"></script>\n\n<%- @partial('header') %>\n\n<div class=\"main ui container\">\n\n  <h2 class=\"ui dividing header\">Types</h2>\n  <div class=\"example\">\n    <h4 class=\"ui header\">\n      Menu\n    </h4>\n    <p>A menu</p>\n    <div class=\"ui ignored message\">\n      <p>Starting in <code>2.0</code> menus now use flexbox. This allows each menu item to automatically stretch to the size of the largest item.\n    </div>\n    <div class=\"ui three item menu\">\n      <a class=\"active item\">Editorials</a>\n      <a class=\"item\">Reviews</a>\n      <a class=\"item\">Upcoming Events</a>\n    </div>\n  </div>\n  <div class=\"another school example\">\n    <div class=\"ui ignored info message\">\n      Many of the following examples use a coupling with <a href=\"/modules/dropdown.html\">dropdowns</a> to display dropdown menus inside of <code>ui menu</code>. Please consult the dropdown documentation for the correct javascript initialization for this component.\n    </div>\n    <div class=\"ui text menu\">\n      <div class=\"item\">\n        <img src=\"/images/new-school.jpg\">\n      </div>\n      <a class=\"browse item\">\n        Browse Courses\n        <i class=\"dropdown icon\"></i>\n      </a>\n      <div class=\"ui right dropdown item\">\n        More\n        <i class=\"dropdown icon\"></i>\n        <div class=\"menu\">\n          <div class=\"item\">Applications</div>\n          <div class=\"item\">International Students</div>\n          <div class=\"item\">Scholarships</div>\n        </div>\n      </div>\n    </div>\n    <div class=\"ui flowing basic admission popup\">\n      <div class=\"ui three column relaxed divided grid\">\n        <div class=\"column\">\n          <h4 class=\"ui header\">Business</h4>\n          <div class=\"ui link list\">\n            <a class=\"item\">Design & Urban Ecologies</a>\n            <a class=\"item\">Fashion Design</a>\n            <a class=\"item\">Fine Art</a>\n            <a class=\"item\">Strategic Design</a>\n          </div>\n        </div>\n        <div class=\"column\">\n          <h4 class=\"ui header\">Liberal Arts</h4>\n          <div class=\"ui link list\">\n            <a class=\"item\">Anthropology</a>\n            <a class=\"item\">Economics</a>\n            <a class=\"item\">Media Studies</a>\n            <a class=\"item\">Philosophy</a>\n          </div>\n        </div>\n        <div class=\"column\">\n          <h4 class=\"ui header\">Social Sciences</h4>\n          <div class=\"ui link list\">\n            <a class=\"item\">Food Studies</a>\n            <a class=\"item\">Journalism</a>\n            <a class=\"item\">Non Profit Management</a>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui top attached menu\">\n      <div class=\"ui dropdown icon item\">\n        <i class=\"wrench icon\"></i>\n        <div class=\"menu\">\n          <div class=\"item\">\n            <i class=\"dropdown icon\"></i>\n            <span class=\"text\">New</span>\n            <div class=\"menu\">\n              <div class=\"item\">Document</div>\n              <div class=\"item\">Image</div>\n            </div>\n          </div>\n          <div class=\"item\">\n            Open...\n          </div>\n          <div class=\"item\">\n            Save...\n          </div>\n          <div class=\"item\">Edit Permissions</div>\n          <div class=\"divider\"></div>\n          <div class=\"header\">\n            Export\n          </div>\n          <div class=\"item\">\n            Share...\n          </div>\n        </div>\n      </div>\n      <div class=\"right menu\">\n        <div class=\"ui right aligned category search item\">\n          <div class=\"ui transparent icon input\">\n            <input class=\"prompt\" type=\"text\" placeholder=\"Search animals...\">\n            <i class=\"search link icon\"></i>\n          </div>\n          <div class=\"results\"></div>\n        </div>\n      </div>\n    </div>\n    <div class=\"ui bottom attached segment\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Secondary Menu</h4>\n    <p>A menu can adjust its appearance to de-emphasize its contents</p>\n    <div class=\"ui secondary  menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n      <div class=\"right menu\">\n        <div class=\"item\">\n          <div class=\"ui icon input\">\n            <input type=\"text\" placeholder=\"Search...\">\n            <i class=\"search link icon\"></i>\n          </div>\n        </div>\n        <a class=\"ui item\">\n          Logout\n        </a>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Pointing</h4>\n    <p>A menu can point to show its relationship to nearby content</p>\n    <div class=\"ui pointing menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n      <div class=\"right menu\">\n        <div class=\"item\">\n          <div class=\"ui transparent icon input\">\n            <input type=\"text\" placeholder=\"Search...\">\n            <i class=\"search link icon\"></i>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"ui segment\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui secondary pointing menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n      <div class=\"right menu\">\n        <a class=\"ui item\">\n          Logout\n        </a>\n      </div>\n    </div>\n    <div class=\"ui segment\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/media-paragraph.png\">\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Tabular</h4>\n    <p>A menu can be formatted to show tabs of information</p>\n    <div class=\"ui ignored info message\">\n      Be sure to visit the <a href=\"/modules/tab.html\">tab documentation</a> for information on how to set up dynamic tabs\n    </div>\n    <div class=\"ui tabular menu\">\n      <a class=\"active item\">\n        Bio\n      </a>\n      <a class=\"item\">\n        Photos\n      </a>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui top attached tabular menu\">\n      <a class=\"active item\">\n        Bio\n      </a>\n      <a class=\"item\">\n        Photos\n      </a>\n      <div class=\"right menu\">\n        <div class=\"item\">\n          <div class=\"ui transparent icon input\">\n            <input type=\"text\" placeholder=\"Search users...\">\n            <i class=\"search link icon\"></i>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"ui bottom attached segment\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui top attached segment\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n    </div>\n    <div class=\"ui bottom attached tabular menu\">\n      <a class=\"active item\">\n        Active Project\n      </a>\n      <a class=\"item\">\n        Project #2\n      </a>\n      <a class=\"item\">\n        Project #3\n      </a>\n      <div class=\"right menu\">\n        <a class=\"item\">\n          <i class=\"add icon\"></i> New Tab\n        </a>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui grid\">\n      <div class=\"four wide column\">\n        <div class=\"ui vertical fluid tabular menu\">\n          <a class=\"active item\">\n            Bio\n          </a>\n          <a class=\"item\">\n            Pics\n          </a>\n          <a class=\"item\">\n            Companies\n          </a>\n          <a class=\"item\">\n            Links\n          </a>\n        </div>\n      </div>\n      <div class=\"twelve wide stretched column\">\n        <div class=\"ui segment\">\n          This is an stretched grid column. This segment will always match the tab height\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui grid\">\n      <div class=\"twelve wide stretched column\">\n        <div class=\"ui segment\">\n          This is an stretched grid column. This segment will always match the tab height\n        </div>\n      </div>\n      <div class=\"four wide column\">\n        <div class=\"ui vertical fluid right tabular menu\">\n          <a class=\"active item\">\n            Bio\n          </a>\n          <a class=\"item\">\n            Pics\n          </a>\n          <a class=\"item\">\n            Companies\n          </a>\n          <a class=\"item\">\n            Links\n          </a>\n        </div>\n      </div>\n    </div>\n  </div>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Text</h4>\n    <p>A menu can be formatted for text content</p>\n    <div class=\"ui text menu\">\n      <div class=\"header item\">Sort By</div>\n      <a class=\"active item\">\n        Closest\n      </a>\n      <a class=\"item\">\n        Most Comments\n      </a>\n      <a class=\"item\">\n        Most Popular\n      </a>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Vertical Menu</h4>\n    <p>A vertical menu displays elements vertically..</p>\n    <div class=\"ui ignore warning message\">A vertical menu's width defaults to an arbitrary size. To have it fit your content more precisely use the fluid variation in conjunction with <a href=\"grid.html\">ui grid</a>.</div>\n\n    <div class=\"ui vertical menu\">\n      <a class=\"active teal item\">\n        Inbox\n        <div class=\"ui teal left pointing label\">1</div>\n      </a>\n      <a class=\"item\">\n        Spam\n        <div class=\"ui label\">51</div>\n      </a>\n      <a class=\"item\">\n        Updates\n        <div class=\"ui label\">1</div>\n      </a>\n      <div class=\"item\">\n        <div class=\"ui transparent icon input\">\n          <input type=\"text\" placeholder=\"Search mail...\">\n          <i class=\"search icon\"></i>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"another example\">\n    <div class=\"ui secondary vertical menu\">\n      <a class=\"active item\">\n        Account\n      </a>\n      <a class=\"item\">\n        Settings\n      </a>\n      <div class=\"ui dropdown item\">\n        <i class=\"dropdown icon\"></i>\n        Display Options\n        <div class=\"menu\">\n          <div class=\"header\">Text Size</div>\n          <a class=\"item\">Small</a>\n          <a class=\"item\">Medium</a>\n          <a class=\"item\">Large</a>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"another example\">\n    <div class=\"ui vertical text menu\">\n      <div class=\"header item\">Sort By</div>\n      <a class=\"active item\">\n        Closest\n      </a>\n      <a class=\"item\">\n        Most Comments\n      </a>\n      <a class=\"item\">\n        Most Popular\n      </a>\n    </div>\n  </div>\n\n  <div class=\"another example\">\n    <div class=\"ui vertical pointing menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n  </div>\n\n  <div class=\"another example\">\n    <div class=\"ui secondary vertical pointing menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Pagination</h4>\n    <p>A pagination menu is specially formatted to present links to pages of content</p>\n    <div class=\"ui pagination menu\">\n      <a class=\"active item\">\n        1\n      </a>\n      <div class=\"disabled item\">\n        ...\n      </div>\n      <a class=\"item\">\n        10\n      </a>\n      <a class=\"item\">\n        11\n      </a>\n      <a class=\"item\">\n        12\n      </a>\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Content</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Header</h4>\n    <p>A menu item may include a header or may itself be a header</p>\n    <div class=\"ui menu\">\n      <div class=\"header item\">\n        Our Company\n      </div>\n      <a class=\"item\">\n        About Us\n      </a>\n      <a class=\"item\">\n        Jobs\n      </a>\n      <a class=\"item\">\n        Locations\n      </a>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui vertical menu\">\n      <div class=\"item\">\n        <div class=\"header\">Products</div>\n        <div class=\"menu\">\n          <a class=\"item\">Enterprise</a>\n          <a class=\"item\">Consumer</a>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"header\">CMS Solutions</div>\n        <div class=\"menu\">\n          <a class=\"item\">Rails</a>\n          <a class=\"item\">Python</a>\n          <a class=\"item\">PHP</a>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"header\">Hosting</div>\n        <div class=\"menu\">\n          <a class=\"item\">Shared</a>\n          <a class=\"item\">Dedicated</a>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"header\">Support</div>\n        <div class=\"menu\">\n          <a class=\"item\">E-mail Support</a>\n          <a class=\"item\">FAQs</a>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Text</h4>\n    <p>A vertical menu item can include any type of text content.</p>\n    <div class=\"ui vertical menu\">\n      <a class=\"item\">\n        <h4 class=\"ui header\">Promotions</h4>\n        <p>Check out our new promotions</p>\n      </a>\n      <a class=\"item\">\n        <h4 class=\"ui header\">Coupons</h4>\n        <p>Check out our collection of coupons</p>\n      </a>\n      <a class=\"item\">\n        <h4 class=\"ui header\">Rebates</h4>\n        <p>Visit our rebate forum for information on claiming rebates</p>\n      </a>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Input</h4>\n    <p>A menu item can contain an <a href=\"/elements/input.html\">input</a> inside of it</p>\n    <div class=\"ui menu\">\n      <div class=\"item\">\n        <div class=\"ui icon input\">\n          <input type=\"text\" placeholder=\"Search...\">\n          <i class=\"search icon\"></i>\n        </div>\n      </div>\n      <div class=\"right item\">\n        <div class=\"ui action input\">\n          <input type=\"text\" placeholder=\"Navigate to...\">\n          <div class=\"ui button\">Go</div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Button</h4>\n    <p>A menu item can contain a <a href=\"/elements/button.html\">button</a> inside of it</p>\n\n    <div class=\"ui menu\">\n      <div class=\"item\">\n        <div class=\"ui primary button\">Sign up</div>\n      </div>\n      <div class=\"item\">\n        <div class=\"ui button\">Log-in</div>\n      </div>\n    </div>\n  </div>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Link Item</h4>\n    <p>A menu may contain a link item, or an item formatted as if it is a link.</p>\n    <div class=\"ui vertical menu\">\n      <a href=\"http://www.google.com\" class=\"item\">\n        Visit Google\n      </a>\n      <div class=\"link item\">\n        Javascript Link\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Dropdown Item</h4>\n    <p>An item may contain a nested menu in a <a href=\"/modules/dropdown.html\">dropdown</a>.</p>\n    <div class=\"ui ignored message\">\n      <p>To have a dropdown open without Javascript, use the <a href=\"/modules/dropdown.html#simple\">simple</a> variation</p>\n    </div>\n    <div class=\"ui vertical menu\">\n      <div class=\"ui dropdown item\">\n        Categories\n        <i class=\"dropdown icon\"></i>\n        <div class=\"menu\">\n          <a class=\"item\">Electronics</a>\n          <a class=\"item\">Automotive</a>\n          <a class=\"item\">Home</a>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"popup example\">\n    <h4 class=\"ui header\">Popup Menu</h4>\n    <p>A menu item may show a large menu, or additional content using a <a href=\"/modules/popup.html\">popup</a></p>\n    <div class=\"ui menu\">\n      <a class=\"browse item\">\n        Browse\n        <i class=\"dropdown icon\"></i>\n      </a>\n    </div>\n    <div class=\"ui fluid popup\">\n      <div class=\"ui four column relaxed equal height divided grid\">\n        <div class=\"column\">\n          <h4 class=\"ui header\">Fabrics</h4>\n          <div class=\"ui link list\">\n            <a class=\"item\">Cashmere</a>\n            <a class=\"item\">Linen</a>\n            <a class=\"item\">Cotton</a>\n            <a class=\"item\">Viscose</a>\n          </div>\n        </div>\n        <div class=\"column\">\n          <h4 class=\"ui header\">Size</h4>\n          <div class=\"ui link list\">\n            <a class=\"item\">Small</a>\n            <a class=\"item\">Medium</a>\n            <a class=\"item\">Large</a>\n            <a class=\"item\">Plus Sizes</a>\n          </div>\n        </div>\n        <div class=\"column\">\n          <h4 class=\"ui header\">Colored</h4>\n          <div class=\"ui link list\">\n            <a class=\"item\">Neutrals</a>\n            <a class=\"item\">Brights</a>\n            <a class=\"item\">Pastels</a>\n          </div>\n        </div>\n        <div class=\"column\">\n          <h4 class=\"ui header\">Types</h4>\n          <div class=\"ui link list\">\n            <a class=\"item\">Knitwear</a>\n            <a class=\"item\">Outerwear</a>\n            <a class=\"item\">Pants</a>\n            <a class=\"item\">Shoes</a>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Search</h4>\n    <p>A menu can contain a <a href=\"/modules/search.html\">search</a> input</p>\n    <div class=\"ui menu\">\n      <div class=\"ui category search item\">\n        <div class=\"ui transparent icon input\">\n          <input class=\"prompt\" type=\"text\" placeholder=\"Search animals...\">\n          <i class=\"search link icon\"></i>\n        </div>\n        <div class=\"results\"></div>\n      </div>\n    </div>\n    <div class=\"ui segment\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Menu</h4>\n    <p>A menu may contain another menu group in the same level as menu items.</p>\n    <div class=\"ui menu\">\n      <a class=\"item\">Browse</a>\n      <a class=\"item\">Submit</a>\n      <div class=\"right menu\">\n        <a class=\"item\">Sign Up</a>\n        <a class=\"item\">Help</a>\n      </div>\n    </div>\n  </div>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Sub Menu</h4>\n    <p>A menu item may contain another menu nested inside that acts as a grouped sub-menu.</p>\n    <div class=\"ui vertical menu\">\n      <div class=\"item\">\n        <div class=\"ui input\"><input type=\"text\" placeholder=\"Search...\"></div>\n      </div>\n      <div class=\"item\">\n        Home\n        <div class=\"menu\">\n          <a class=\"active item\">Search</a>\n          <a class=\"item\">Add</a>\n          <a class=\"item\">Remove</a>\n        </div>\n      </div>\n      <a class=\"item\">\n        <i class=\"grid layout icon\"></i> Browse\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <div class=\"ui dropdown item\">\n        More\n        <i class=\"dropdown icon\"></i>\n        <div class=\"menu\">\n          <a class=\"item\"><i class=\"edit icon\"></i> Edit Profile</a>\n          <a class=\"item\"><i class=\"globe icon\"></i> Choose Language</a>\n          <a class=\"item\"><i class=\"settings icon\"></i> Account Settings</a>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">States</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Hover</h4>\n    <p>A menu item can be hovered</p>\n    <div class=\"ui ignore warning message\">Menu items are only hoverable if they are <code>a</code> links, or given the class name <code>link</code></div>\n    <div class=\"ui compact menu\">\n      <a class=\"item\">\n        A link\n      </a>\n      <div class=\"link item\">\n        div Link\n      </div>\n    </div>\n  </div>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Active</h4>\n    <p>A menu item can be active</p>\n    <div class=\"ui compact menu\">\n      <div class=\"active item\">\n        Link\n      </div>\n    </div>\n  </div>\n\n\n  <h2 class=\"ui dividing header\">Variations</h2>\n\n  <div class=\"fixed example\">\n    <h4 class=\"ui header\">Fixed</h4>\n    <p>A menu can be fixed to a side of its context</p>\n    <div class=\"ui ignored info message\">These examples use a an <code>iframe</code>, to prevent content from sticking to the browser viewport.</div>\n    <div class=\"ui ignored positive message\">For more advanced behaviors consider using a <a href=\"/modules/sticky.html\">sticky menu</a> or <a href=\"/behaviors/visibility.html#fixing-content-to-viewport\">visibility APIs</a>.</div>\n    <iframe src=\"/iframe/fixed-menu.html\"></iframe>\n    <div class=\"existing code\">\n      <div class=\"ui top fixed menu\">\n        <div class=\"item\">\n          <img src=\"/images/logo.png\">\n        </div>\n        <a class=\"item\">Features</a>\n        <a class=\"item\">Testimonials</a>\n        <a class=\"item\">Sign-in</a>\n      </div>\n      <div class=\"ui bottom fixed menu\">\n        <div class=\"item\">\n          <img src=\"/images/logo.png\">\n        </div>\n        <a class=\"item\">Features</a>\n        <a class=\"item\">Testimonials</a>\n        <a class=\"item\">Sign-in</a>\n      </div>\n      <p></p>\n      <p></p>\n    </div>\n  </div>\n  <div class=\"another fixed example\">\n    <iframe src=\"/iframe/fixed-vertical-menu.html\"></iframe>\n    <div class=\"existing code\">\n      <div class=\"ui left fixed vertical menu\">\n        <div class=\"item\">\n          <img class=\"ui mini image\" src=\"/images/logo.png\">\n        </div>\n        <a class=\"item\">Features</a>\n        <a class=\"item\">Testimonials</a>\n        <a class=\"item\">Sign-in</a>\n      </div>\n      <div class=\"ui right fixed vertical menu\">\n        <div class=\"item\">\n          <img class=\"ui mini image\" src=\"/images/logo.png\">\n        </div>\n        <a class=\"item\">Features</a>\n        <a class=\"item\">Testimonials</a>\n        <a class=\"item\">Sign-in</a>\n      </div>\n      <p></p>\n      <p></p>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Stackable</h4>\n    <p>A menu can stack at mobile resolutions</p>\n    <div class=\"ui ignored info message\">\n      Stackable menus are intended to be used with only simple menu content. Stacked menus will not replicate all additional stylings for vertical menus like adjusting dropdown position.\n    </div>\n    <div class=\"ui stackable menu\">\n      <div class=\"item\">\n        <img src=\"/images/logo.png\">\n      </div>\n      <a class=\"item\">Features</a>\n      <a class=\"item\">Testimonials</a>\n      <a class=\"item\">Sign-in</a>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Inverted</h4>\n    <p>A menu may have its colors inverted to show greater contrast</p>\n    <div class=\"ui inverted menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui inverted vertical menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui inverted vertical pointing menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui inverted segment\">\n      <div class=\"ui inverted secondary menu\">\n        <a class=\"active item\">\n          Home\n        </a>\n        <a class=\"item\">\n          Messages\n        </a>\n        <a class=\"item\">\n          Friends\n        </a>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui inverted segment\">\n      <div class=\"ui inverted secondary pointing menu\">\n        <a class=\"active item\">\n          Home\n        </a>\n        <a class=\"item\">\n          Messages\n        </a>\n        <a class=\"item\">\n          Friends\n        </a>\n      </div>\n    </div>\n  </div>\n  <div class=\"example\">\n    <h4 class=\"ui header\">Colored</h4>\n    <p>Additional colors can be specified.</p>\n    <div class=\"ui menu\">\n      <a class=\"active red item\">Red</a>\n      <a class=\"orange item\">Orange</a>\n      <a class=\"yellow item\">Yellow</a>\n      <a class=\"olive item\">Olive</a>\n      <a class=\"green item\">Green</a>\n      <a class=\"teal item\">Teal</a>\n    </div>\n    <div class=\"ui menu\">\n      <a class=\"blue item\">Blue</a>\n      <a class=\"violet item\">Violet</a>\n      <a class=\"purple item\">Purple</a>\n      <a class=\"pink item\">Pink</a>\n      <a class=\"brown item\">Brown</a>\n      <a class=\"grey item\">Grey</a>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui red three item menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n    <div class=\"ui orange three item menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n    <div class=\"ui yellow three item menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n    <div class=\"ui olive three item menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n    <div class=\"ui green three item menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n    <div class=\"ui teal three item menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n    <div class=\"ui blue three item menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n    <div class=\"ui violet three item menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n    <div class=\"ui purple three item menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n    <div class=\"ui pink three item menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n    <div class=\"ui brown three item menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n    <div class=\"ui grey three item menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <p>These colors can also be inverted</p>\n    <div class=\"ui inverted menu\">\n      <a class=\"active red item\">Red</a>\n      <a class=\"orange item\">Orange</a>\n      <a class=\"yellow item\">Yellow</a>\n      <a class=\"olive item\">Olive</a>\n      <a class=\"green item\">Green</a>\n      <a class=\"teal item\">Teal</a>\n    </div>\n    <div class=\"ui inverted menu\">\n      <a class=\"blue item\">Blue</a>\n      <a class=\"violet item\">Violet</a>\n      <a class=\"purple item\">Purple</a>\n      <a class=\"pink item\">Pink</a>\n      <a class=\"brown item\">Brown</a>\n      <a class=\"grey item\">Grey</a>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui red three item inverted menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n    <div class=\"ui orange three item inverted menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n    <div class=\"ui yellow three item inverted menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n    <div class=\"ui olive three item inverted menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n    <div class=\"ui green three item inverted menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n    <div class=\"ui teal three item inverted menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n    <div class=\"ui blue three item inverted menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n    <div class=\"ui violet three item inverted menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n    <div class=\"ui purple three item inverted menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n    <div class=\"ui pink three item inverted menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n    <div class=\"ui brown three item inverted menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n    <div class=\"ui grey three item inverted menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <a class=\"item\">\n        Friends\n      </a>\n    </div>\n  </div>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Icons</h4>\n    <p>A menu may have just icons</p>\n    <div class=\"ui icon menu\">\n      <a class=\"item\">\n        <i class=\"gamepad icon\"></i>\n      </a>\n      <a class=\"item\">\n        <i class=\"video camera icon\"></i>\n      </a>\n      <a class=\"item\">\n        <i class=\"video play icon\"></i>\n      </a>\n    </div>\n    <br><br>\n    <div class=\"ui vertical icon menu\">\n      <a class=\"item\">\n        <i class=\"gamepad icon\"></i>\n      </a>\n      <a class=\"item\">\n        <i class=\"video camera icon\"></i>\n      </a>\n      <a class=\"item\">\n        <i class=\"video play icon\"></i>\n      </a>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Labeled Icon</h4>\n    <p>A menu may have labeled icons</p>\n    <div class=\"ui labeled icon menu\">\n      <a class=\"item\">\n        <i class=\"gamepad icon\"></i>\n        Games\n      </a>\n      <a class=\"item\">\n        <i class=\"video camera icon\"></i>\n        Channels\n      </a>\n      <a class=\"item\">\n        <i class=\"video play icon\"></i>\n        Videos\n      </a>\n    </div>\n    <br><br>\n    <div class=\"ui vertical labeled icon menu\">\n      <a class=\"item\">\n        <i class=\"gamepad icon\"></i>\n        Games\n      </a>\n      <a class=\"item\">\n        <i class=\"video camera icon\"></i>\n        Channels\n      </a>\n      <a class=\"item\">\n        <i class=\"video play icon\"></i>\n        Videos\n      </a>\n    </div>\n  </div>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Fluid</h4>\n    <p>A vertical menu may take the size of its container. (A horizontal menu does this by default) </p>\n    <div class=\"ui fluid vertical menu\">\n      <a class=\"item\">Run</a>\n      <a class=\"item\">Walk</a>\n      <a class=\"item\">Bike</a>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Compact</h4>\n    <p>A menu can take up only the space necessary to fit its content</p>\n    <div class=\"ui compact menu\">\n      <a class=\"item\">\n        <i class=\"gamepad icon\"></i>\n        Games\n      </a>\n      <a class=\"item\">\n        <i class=\"video camera icon\"></i>\n        Channels\n      </a>\n      <a class=\"item\">\n        <i class=\"video play icon\"></i>\n        Videos\n      </a>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui compact vertical labeled icon menu\">\n      <a class=\"item\">\n        <i class=\"gamepad icon\"></i>\n        Games\n      </a>\n      <a class=\"item\">\n        <i class=\"video camera icon\"></i>\n        Channels\n      </a>\n      <a class=\"item\">\n        <i class=\"video play icon\"></i>\n        Videos\n      </a>\n    </div>\n  </div>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Evenly Divided</h4>\n    <p>A menu may divide its items evenly</p>\n    <div class=\"ui fluid three item menu\">\n      <a class=\"item\">Buy</a>\n      <a class=\"item\">Sell</a>\n      <a class=\"item\">Rent</a>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <p>A vertical menu can point to content adjacent to itself to show ownership</p>\n    <div class=\"ui pointing vertical menu\">\n      <a class=\"item\">\n        Site Title\n      </a>\n      <div class=\"item\">\n        <b>Grouped Section</b>\n        <div class=\"menu\">\n          <a class=\"item\">Subsection 1</a>\n          <a class=\"active item\">Subsection 1</a>\n          <a class=\"item\">Subsection 1</a>\n        </div>\n      </div>\n      <div class=\"ui dropdown item\">\n        Dropdown <i class=\"dropdown icon\"></i>\n        <div class=\"menu\">\n          <div class=\"item\">Choice 1</div>\n          <div class=\"item\">Choice 2</div>\n          <div class=\"item\">Choice 3</div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Attached</h4>\n    <p>A menu may be attached to other content segments</p>\n    <div class=\"ui top attached tabular menu\">\n      <a class=\"active item\">\n        Tab 1\n      </a>\n      <a class=\"item\">\n        Tab 2\n      </a>\n    </div>\n    <div class=\"ui bottom attached segment\">\n      There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc.\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui top attached menu\">\n      <a class=\"active item\">\n        Section 1\n      </a>\n      <a class=\"item\">\n        Section 2\n      </a>\n    </div>\n    <div class=\"ui attached segment\">\n      There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc.\n    </div>\n    <div class=\"ui bottom attached menu\">\n      <a class=\"active item\">\n        Section 1\n      </a>\n      <a class=\"item\">\n        Section 2\n      </a>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Size</h4>\n    <p>A menu can vary in size</p>\n    <div class=\"ui mini menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <div class=\"right menu\">\n        <div class=\"ui dropdown item\">\n          Language <i class=\"dropdown icon\"></i>\n          <div class=\"menu\">\n            <a class=\"item\">English</a>\n            <a class=\"item\">Russian</a>\n            <a class=\"item\">Spanish</a>\n          </div>\n        </div>\n        <div class=\"item\">\n            <div class=\"ui primary button\">Sign Up</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui tiny menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <div class=\"right menu\">\n        <div class=\"ui dropdown item\">\n          Language <i class=\"dropdown icon\"></i>\n          <div class=\"menu\">\n            <a class=\"item\">English</a>\n            <a class=\"item\">Russian</a>\n            <a class=\"item\">Spanish</a>\n          </div>\n        </div>\n        <div class=\"item\">\n            <div class=\"ui primary button\">Sign Up</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui small menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <div class=\"right menu\">\n        <div class=\"ui dropdown item\">\n          Language <i class=\"dropdown icon\"></i>\n          <div class=\"menu\">\n            <a class=\"item\">English</a>\n            <a class=\"item\">Russian</a>\n            <a class=\"item\">Spanish</a>\n          </div>\n        </div>\n        <div class=\"item\">\n            <div class=\"ui primary button\">Sign Up</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui large menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <div class=\"right menu\">\n        <div class=\"ui dropdown item\">\n          Language <i class=\"dropdown icon\"></i>\n          <div class=\"menu\">\n            <a class=\"item\">English</a>\n            <a class=\"item\">Russian</a>\n            <a class=\"item\">Spanish</a>\n          </div>\n        </div>\n        <div class=\"item\">\n            <div class=\"ui primary button\">Sign Up</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui huge menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <div class=\"right menu\">\n        <div class=\"ui dropdown item\">\n          Language <i class=\"dropdown icon\"></i>\n          <div class=\"menu\">\n            <a class=\"item\">English</a>\n            <a class=\"item\">Russian</a>\n            <a class=\"item\">Spanish</a>\n          </div>\n        </div>\n        <div class=\"item\">\n            <div class=\"ui primary button\">Sign Up</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui massive menu\">\n      <a class=\"active item\">\n        Home\n      </a>\n      <a class=\"item\">\n        Messages\n      </a>\n      <div class=\"right menu\">\n        <div class=\"ui dropdown item\">\n          Language <i class=\"dropdown icon\"></i>\n          <div class=\"menu\">\n            <a class=\"item\">English</a>\n            <a class=\"item\">Russian</a>\n            <a class=\"item\">Spanish</a>\n          </div>\n        </div>\n        <div class=\"item\">\n            <div class=\"ui primary button\">Sign Up</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"example\">\n    <p>A vertical menu can also vary in size</p>\n    <div class=\"ui mini vertical menu\">\n      <a class=\"active item\">\n        <div class=\"ui teal label\">1</div>\n        Inbox\n      </a>\n      <a class=\"item\">\n        <div class=\"ui label\">51</div>\n        Spam\n      </a>\n      <a class=\"item\">\n        <div class=\"ui label\">1</div>\n        Updates\n      </a>\n      <div class=\"item\">\n        <div class=\"ui icon input\">\n          <input type=\"text\" placeholder=\"Search mail...\">\n          <i class=\"search icon\"></i>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui small vertical menu\">\n      <a class=\"active item\">\n        <div class=\"ui small teal label\">1</div>\n        Inbox\n      </a>\n      <a class=\"item\">\n        <div class=\"ui small label\">51</div>\n        Spam\n      </a>\n      <a class=\"item\">\n        <div class=\"ui small label\">1</div>\n        Updates\n      </a>\n      <div class=\"item\">\n        <div class=\"ui icon input\">\n          <input type=\"text\" placeholder=\"Search mail...\">\n          <i class=\"search icon\"></i>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui large vertical menu\">\n      <a class=\"active item\">\n        <div class=\"ui small teal label\">1</div>\n        Inbox\n      </a>\n      <a class=\"item\">\n        <div class=\"ui small label\">51</div>\n        Spam\n      </a>\n      <a class=\"item\">\n        <div class=\"ui small label\">1</div>\n        Updates\n      </a>\n      <div class=\"item\">\n        <div class=\"ui icon input\">\n          <input type=\"text\" placeholder=\"Search mail...\">\n          <i class=\"search icon\"></i>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui massive vertical menu\">\n      <a class=\"active item\">\n        <div class=\"ui small teal label\">1</div>\n        Inbox\n      </a>\n      <a class=\"item\">\n        <div class=\"ui small label\">51</div>\n        Spam\n      </a>\n      <a class=\"item\">\n        <div class=\"ui small label\">1</div>\n        Updates\n      </a>\n      <div class=\"item\">\n        <div class=\"ui icon input\">\n          <input type=\"text\" placeholder=\"Search mail...\">\n          <i class=\"search icon\"></i>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <h3 class=\"ui header\">Items</h3>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Fitted</h4>\n    <p>A menu item or menu can remove element padding, vertically or horizontally</p>\n    <div class=\"ui menu\">\n      <div class=\"fitted item\">\n        No padding whatsoever\n      </div>\n      <div class=\"horizontally fitted item\">\n        No horizontal padding\n      </div>\n      <div class=\"vertically fitted item\">\n        No vertical padding\n      </div>\n    </div>\n  </div>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Borderless</h4>\n    <p>A menu item or menu can have no borders</p>\n    <div class=\"ui borderless menu\">\n      <a class=\"item\">1</a>\n      <a class=\"item\">2</a>\n      <a class=\"item\">3</a>\n      <a class=\"item\">4</a>\n      <a class=\"item\">5</a>\n      <a class=\"item\">6</a>\n    </div>\n  </div>\n\n\n</div>\n"
  },
  {
    "path": "server/documents/collections/message.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'message'\nstandalone  : true\n\nelement     : 'message'\nelementType : 'collection'\n\ntitle       : 'Message'\ndescription : 'A message displays information that explains nearby content'\ntype        : 'UI Collection'\n\nthemes      : ['Default', 'GitHub', 'Gmail']\n---\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/collections/message.less\" />\n<script src=\"/javascript/message.js\"></script>\n\n<%- @partial('header') %>\n\n<div class=\"main ui container\">\n\n  <h2 class=\"ui dividing header\">Types</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Message</h4>\n    <p>A basic message</p>\n    <div class=\"ui message\">\n      <div class=\"header\">\n        Changes in Service\n      </div>\n      <p>We just updated our privacy policy here to better service our customers. We recommend reviewing the changes.</p>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">List Message</h4>\n    <p>A message with a list</p>\n    <div class=\"ui message\">\n      <div class=\"header\">\n        New Site Features\n      </div>\n      <ul class=\"list\">\n        <li>You can now have cover images on blog pages</li>\n        <li>Drafts will now auto-save while writing</li>\n      </ul>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">\n      Icon Message\n      <span class=\"ui teal label\">Flexbox</span>\n    </h4>\n    <p>A message can contain an icon.</p>\n    <div class=\"ui icon message\">\n      <i class=\"inbox icon\"></i>\n      <div class=\"content\">\n        <div class=\"header\">\n          Have you heard about our mailing list?\n        </div>\n        <p>Get the best news in your e-mail every day.</p>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui icon message\">\n      <i class=\"notched circle loading icon\"></i>\n      <div class=\"content\">\n        <div class=\"header\">\n          Just one second\n        </div>\n        <p>We're fetching that content for you.</p>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"dismissable example\">\n    <h4 class=\"ui header\">Dismissable Block</h4>\n    <p>A message that the user can choose to hide</p>\n    <div class=\"ui message\">\n      <i class=\"close icon\"></i>\n      <div class=\"header\">\n        Welcome back!\n      </div>\n      <p>This is a special notification which you can dismiss if you're bored with it.</p>\n    </div>\n    <div class=\"warning ui ignored message\">\n      <p>Dismissable blocks do not automatically close when using the close icon, this behavior must be defined using Javascript, for example:</p>\n      <div class=\"code\">\n      $('.message .close')\n        .on('click', function() {\n          $(this)\n            .closest('.message')\n            .transition('fade')\n          ;\n        })\n      ;\n      </div>\n    </div>\n  </div>\n\n\n  <h2 class=\"ui dividing header\">States</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Hidden</h4>\n    <p>A message can be hidden</p>\n    <div class=\"existing code\">\n      <div class=\"ui hidden message\">\n        <p>You can't see me</p>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Visible</h4>\n    <p>A message can be set to visible to force itself to be shown.</p>\n    <div class=\"ui visible message\">\n      <p>You can always see me</p>\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Variations</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Floating</h4>\n    <p>A message can float above content that it is related to</p>\n    <div class=\"ui floating message\">\n      <p>Way to go!</p>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Compact</h4>\n    <p>A message can only take up the width of its content.</p>\n    <div class=\"ui compact message\">\n      <p>Get all the best inventions in your e-mail every day. Sign up now!</p>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Attached</h4>\n    <p>A message can be formatted to attach itself to other content</p>\n    <div class=\"ui attached message\">\n      <div class=\"header\">\n        Welcome to our site!\n      </div>\n      <p>Fill out the form below to sign-up for a new account</p>\n    </div>\n    <form class=\"ui form attached fluid segment\">\n      <div class=\"two fields\">\n        <div class=\"field\">\n          <label>First Name</label>\n          <input placeholder=\"First Name\" type=\"text\">\n        </div>\n        <div class=\"field\">\n          <label>Last Name</label>\n          <input placeholder=\"Last Name\" type=\"text\">\n        </div>\n      </div>\n      <div class=\"field\">\n        <label>Username</label>\n        <input placeholder=\"Username\" type=\"text\">\n      </div>\n      <div class=\"field\">\n        <label>Password</label>\n        <input type=\"password\">\n      </div>\n      <div class=\"inline field\">\n        <div class=\"ui checkbox\">\n          <input type=\"checkbox\" id=\"terms\" />\n          <label for=\"terms\">I agree to the terms and conditions</label>\n        </div>\n      </div>\n      <div class=\"ui blue submit button\">Submit</div>\n    </form>\n    <div class=\"ui bottom attached warning message\">\n      <i class=\"icon help\"></i>\n      Already signed up? <a href=\"#\">Login here</a> instead.\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Warning</h4>\n    <p>A message may be formatted to display warning messages.</p>\n    <div class=\"ui warning message\">\n      <i class=\"close icon\"></i>\n      <div class=\"header\">\n        You must register before you can do that!\n      </div>\n      Visit our registration page, then try again\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Info</h4>\n    <p>A message may be formatted to display information.</p>\n    <div class=\"ui info message\">\n      <i class=\"close icon\"></i>\n      <div class=\"header\">\n        Was this what you wanted?\n      </div>\n      <ul class=\"list\">\n        <li>It's good to see you again.</li>\n        <li>Did you know it's been a while?</li>\n      </ul>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Positive / Success</h4>\n    <p>A message may be formatted to display a positive message.</p>\n    <b class=\"ignored\">\n      <i class=\"attention icon\"></i>\n      Positive/Success and Negative/Error messages by default use similar colors, but each has their own color  variables that can be distinguished in your theme.\n    </b>\n    <div class=\"ui positive message\">\n      <i class=\"close icon\"></i>\n      <div class=\"header\">\n        You are eligible for a reward\n      </div>\n      <p>Go to your <b>special offers</b> page to see now.</p>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui success message\">\n      <i class=\"close icon\"></i>\n      <div class=\"header\">\n        Your user registration was successful.\n      </div>\n      <p>You may now log-in with the username you have chosen</p>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Negative / Error </h4>\n    <p>A message may be formatted to display a negative message.</p>\n    <div class=\"ui negative message\">\n      <i class=\"close icon\"></i>\n      <div class=\"header\">\n        We're sorry we can't apply that discount\n      </div>\n      <p>That offer has expired\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui error message\">\n      <i class=\"close icon\"></i>\n      <div class=\"header\">\n        There were some errors with your submission\n      </div>\n      <ul class=\"list\">\n        <li>You must include both a upper and lower case letters in your password.</li>\n        <li>You need to select your home country.</li>\n      </ul>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Colored</h4>\n    <p>A message can be formatted to be different colors</p>\n    <div class=\"ui red message\">Red</div>\n    <div class=\"ui orange message\">Orange</div>\n    <div class=\"ui yellow message\">Yellow</div>\n    <div class=\"ui olive message\">Olive</div>\n    <div class=\"ui green message\">Green</div>\n    <div class=\"ui teal message\">Teal</div>\n    <div class=\"ui blue message\">Blue</div>\n    <div class=\"ui violet message\">Violet</div>\n    <div class=\"ui purple message\">Purple</div>\n    <div class=\"ui pink message\">Pink</div>\n    <div class=\"ui brown message\">Brown</div>\n    <div class=\"ui black message\">Black</div>\n  </div>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Size</h4>\n    <p>A message can have different sizes</p>\n    <div class=\"ui mini message\">\n      This is a mini message.\n    </div>\n    <div class=\"ui tiny message\">\n      This is a tiny message.\n    </div>\n    <div class=\"ui small message\">\n      This is a small message.\n    </div>\n    <div class=\"ui large message\">\n      This is large\n    </div>\n    <div class=\"ui big message\">\n      This is big\n    </div>\n    <div class=\"ui huge message\">\n      This is huge\n    </div>\n    <div class=\"ui massive message\">\n      This is massive\n    </div>\n  </div>\n\n</div>\n\n"
  },
  {
    "path": "server/documents/collections/table.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'table'\nstandalone  : true\n\nelement     : 'table'\nelementType : 'collection'\n\ntitle       : 'Table'\ndescription : 'A table displays a collections of data grouped into rows'\ntype        : 'UI Collection'\n\nthemes      : ['Default', 'Basic', 'Classic', 'GitHub']\n---\n\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/collections/table.less\" />\n<script src=\"/javascript/table.js\"></script>\n\n<%- @partial('header') %>\n\n<div class=\"main ui container\">\n\n  <h2 class=\"ui dividing header\">Types</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Table</h4>\n    <p>A standard table</p>\n    <div class=\"ui ignored positive message\">\n      Tables will automatically stack their layouts for mobile devices. To disable this behavior, use the <code>unstackable</code> variation or <code>tablet stackable</code> to allow responsive adjustments for tablet.\n    </div>\n    <table class=\"ui celled table\">\n      <thead>\n        <th>Name</th>\n        <th>Age</th>\n        <th>Job</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td data-label=\"Name\">James</td>\n          <td data-label=\"Age\">24</td>\n          <td data-label=\"Job\">Engineer</td>\n        </tr>\n        <tr>\n          <td data-label=\"Name\">Jill</td>\n          <td data-label=\"Age\">26</td>\n          <td data-label=\"Job\">Engineer</td>\n        </tr>\n        <tr>\n          <td data-label=\"Name\">Elyse</td>\n          <td data-label=\"Age\">24</td>\n          <td data-label=\"Job\">Designer</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n  <div class=\"another example\">\n\n    <table class=\"ui celled padded table\">\n      <thead>\n        <th class=\"single line\">Evidence Rating</th>\n        <th>Effect</th>\n        <th>Efficacy</th>\n        <th>Consensus</th>\n        <th>Comments</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>\n            <h2 class=\"ui center aligned header\">A</h2>\n          </td>\n          <td class=\"single line\">\n            Power Output\n          </td>\n          <td>\n            <div class=\"ui star rating\" data-rating=\"3\" data-max-rating=\"3\"></div>\n          </td>\n          <td class=\"right aligned\">\n            80% <br>\n            <a href=\"#\">18 studies</a>\n          </td>\n          <td>Creatine supplementation is the reference compound for increasing muscular creatine levels; there is variability in this increase, however, with some nonresponders.</td>\n        </tr>\n        <tr>\n          <td>\n            <h2 class=\"ui center aligned header\">A</h2>\n          </td>\n          <td class=\"single line\">\n            Weight\n          </td>\n          <td>\n            <div class=\"ui star rating\" data-rating=\"3\" data-max-rating=\"3\"></div>\n          </td>\n          <td class=\"right aligned\">\n            100% <br>\n            <a href=\"#\">65 studies</a>\n          </td>\n          <td>Creatine is the reference compound for power improvement, with numbers from one meta-analysis to assess potency</td>\n        </tr>\n      </tbody>\n      <tfoot>\n        <th colspan=\"5\">\n          <div class=\"ui right floated pagination menu\">\n            <a class=\"icon item\">\n              <i class=\"left chevron icon\"></i>\n            </a>\n            <a class=\"item\">1</a>\n            <a class=\"item\">2</a>\n            <a class=\"item\">3</a>\n            <a class=\"item\">4</a>\n            <a class=\"icon item\">\n              <i class=\"right chevron icon\"></i>\n            </a>\n          </div>\n        </th>\n      </tfoot>\n    </table>\n  </div>\n  <div class=\"another example\">\n    <table class=\"ui very basic collapsing celled table\">\n      <thead>\n        <th>Employee</th>\n        <th>Correct Guesses</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>\n            <h4 class=\"ui image header\">\n              <img src=\"/images/avatar2/small/lena.png\" class=\"ui mini rounded image\">\n              <div class=\"content\">\n                Lena\n                <div class=\"sub header\">Human Resources\n              </div>\n            </div>\n          </td>\n          <td>\n            22\n          </td>\n        </tr>\n        <tr>\n          <td>\n            <h4 class=\"ui image header\">\n              <img src=\"/images/avatar2/small/matthew.png\" class=\"ui mini rounded image\">\n              <div class=\"content\">\n                Matthew\n                <div class=\"sub header\">Fabric Design\n              </div>\n            </div>\n          </td>\n          <td>\n            15\n          </td>\n        </tr>\n        <tr>\n          <td>\n            <h4 class=\"ui image header\">\n              <img src=\"/images/avatar2/small/lindsay.png\" class=\"ui mini rounded image\">\n              <div class=\"content\">\n                Lindsay\n                <div class=\"sub header\">Entertainment\n              </div>\n            </div>\n          </td>\n          <td>\n            12\n          </td>\n        </tr>\n        <tr>\n          <td>\n            <h4 class=\"ui image header\">\n              <img src=\"/images/avatar2/small/mark.png\" class=\"ui mini rounded image\">\n              <div class=\"content\">\n                Mark\n                <div class=\"sub header\">Executive\n              </div>\n            </div>\n          </td>\n          <td>\n            11\n          </td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n  <div class=\"another example\">\n    <table class=\"ui celled striped table\">\n      <thead>\n        <th colspan=\"3\">\n          Git Repository\n        </th>\n      </thead>\n      <tbody>\n        <tr>\n          <td class=\"collapsing\">\n            <i class=\"folder icon\"></i> node_modules\n          </td>\n          <td>Initial commit</td>\n          <td class=\"right aligned collapsing\">10 hours ago</td>\n        </tr>\n        <tr>\n          <td>\n            <i class=\"folder icon\"></i> test\n          </td>\n          <td>Initial commit</td>\n          <td class=\"right aligned\">10 hours ago</td>\n        </tr>\n        <tr>\n          <td>\n            <i class=\"folder icon\"></i> build\n          </td>\n          <td>Initial commit</td>\n          <td class=\"right aligned\">10 hours ago</td>\n        </tr>\n        <tr>\n          <td>\n            <i class=\"file outline icon\"></i> package.json\n          </td>\n          <td>Initial commit</td>\n          <td class=\"right aligned\">10 hours ago</td>\n        </tr>\n        <tr>\n          <td>\n            <i class=\"file outline icon\"></i> Gruntfile.js\n          </td>\n          <td>Initial commit</td>\n          <td class=\"right aligned\">10 hours ago</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Definition</h4>\n    <p>A table may be formatted to emphasize a first column that defines a rows content</p>\n    <div class=\"ui ignored info message\">Definition tables are designed to display on a single background color. You can adjust this by changing <code>@definitionPageBackground</code>, or specifying a background color on the first cell</div>\n    <table class=\"ui definition table\">\n      <thead>\n        <th></th>\n        <th>Arguments</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>reset rating</td>\n          <td>None</td>\n          <td>Resets rating to default value</td>\n        </tr>\n        <tr>\n          <td>set rating</td>\n          <td>rating (integer)</td>\n          <td>Sets the current star rating to specified value</td>\n        </tr>\n    </table>\n  </div>\n  <div class=\"another example\">\n    <table class=\"ui compact celled definition table\">\n      <thead>\n        <tr>\n          <th></th>\n          <th>Name</th>\n          <th>Registration Date</th>\n          <th>E-mail address</th>\n          <th>Premium Plan</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td class=\"collapsing\">\n            <div class=\"ui fitted slider checkbox\">\n              <input type=\"checkbox\"> <label></label>\n            </div>\n          </td>\n          <td>John Lilki</td>\n          <td>September 14, 2013</td>\n          <td>jhlilk22@yahoo.com</td>\n          <td>No</td>\n        </tr>\n        <tr>\n          <td class=\"collapsing\">\n            <div class=\"ui fitted slider checkbox\">\n              <input type=\"checkbox\"> <label></label>\n            </div>\n          </td>\n          <td>Jamie Harington</td>\n          <td>January 11, 2014</td>\n          <td>jamieharingonton@yahoo.com</td>\n          <td>Yes</td>\n        </tr>\n        <tr>\n          <td class=\"collapsing\">\n            <div class=\"ui fitted slider checkbox\">\n              <input type=\"checkbox\"> <label></label>\n            </div>\n          </td>\n          <td>Jill Lewis</td>\n          <td>May 11, 2014</td>\n          <td>jilsewris22@yahoo.com</td>\n          <td>Yes</td>\n        </tr>\n      </tbody>\n      <tfoot class=\"full-width\">\n        <tr>\n          <th></th>\n          <th colspan=\"4\">\n            <div class=\"ui right floated small primary labeled icon button\">\n              <i class=\"user icon\"></i> Add User\n            </div>\n            <div class=\"ui small button\">\n              Approve\n            </div>\n            <div class=\"ui small  disabled button\">\n              Approve All\n            </div>\n          </th>\n        </tr>\n      </tfoot>\n    </table>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Structured</h4>\n    <p>A table can be formatted to display complex structured data</p>\n\n    <div class=\"ui ignored info message\">\n      <p>UI tables use <code>border-collapse: separate</code> to allow for tables to receive styles that cannot usually be applied to tables like <code>border-radius</code>. However this can cause some cell borders to appear missing with complex layouts that use <code>rowspan</code> or <code>colspan</code> and rows with varying column count.</p>\n      <p><code>ui structured table</code> does not support some style features, but can correctly display all valid HTML table content.</p>\n    </div>\n\n    <table class=\"ui celled structured table\">\n      <thead>\n        <tr>\n          <th rowspan=\"2\">Name</th>\n          <th rowspan=\"2\">Type</th>\n          <th rowspan=\"2\">Files</th>\n          <th colspan=\"3\">Languages</th>\n        </tr>\n        <tr>\n          <th>Ruby</th>\n          <th>JavaScript</th>\n          <th>Python</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>Alpha Team</td>\n          <td>Project 1</td>\n          <td class=\"right aligned\">2</td>\n          <td class=\"center aligned\">\n            <i class=\"large green checkmark icon\"></i>\n          </td>\n          <td></td>\n          <td></td>\n        </tr>\n        <tr>\n          <td rowspan=\"3\">Beta Team</td>\n          <td>Project 1</td>\n          <td class=\"right aligned\">52</td>\n          <td class=\"center aligned\">\n            <i class=\"large green checkmark icon\"></i>\n          </td>\n          <td></td>\n          <td></td>\n        </tr>\n        <tr>\n          <td>Project 2</td>\n          <td class=\"right aligned\">12</td>\n          <td></td>\n          <td class=\"center aligned\">\n            <i class=\"large green checkmark icon\"></i>\n          </td>\n          <td></td>\n        </tr>\n        <tr>\n          <td>Project 3</td>\n          <td class=\"right aligned\">21</td>\n          <td class=\"center aligned\">\n            <i class=\"large green checkmark icon\"></i>\n          </td>\n          <td></td>\n          <td></td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n\n  <h2 class=\"ui dividing header\">States</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Positive / Negative</h4>\n    <p>A cell or row may let a user know whether a value is good or bad</p>\n    <table class=\"ui celled table\">\n      <thead>\n        <tr>\n          <th>Name</th>\n          <th>Status</th>\n          <th>Notes</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>No Name Specified</td>\n          <td>Unknown</td>\n          <td class=\"negative\">None</td>\n        </tr>\n        <tr class=\"positive\">\n          <td>Jimmy</td>\n          <td><i class=\"icon checkmark\"></i> Approved</td>\n          <td>None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Unknown</td>\n          <td class=\"positive\"><i class=\"icon close\"></i> Requires call</td>\n        </tr>\n        <tr class=\"negative\">\n          <td>Jill</td>\n          <td>Unknown</td>\n          <td>None</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n  <h3 class=\"ui header\">Cells</h3>\n  <div class=\"example\">\n    <h4 class=\"ui header\">Error</h4>\n    <p>A cell or row may call attention to an error or a negative value</p>\n    <table class=\"ui celled table\">\n      <thead>\n        <tr>\n          <th>Name</th>\n          <th>Status</th>\n          <th>Notes</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>No Name Specified</td>\n          <td>Approved</td>\n          <td>None</td>\n        </tr>\n        <tr class=\"error\">\n          <td>Jimmy</td>\n          <td>Cannot pull data</td>\n          <td>None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td class=\"error\"><i class=\"attention icon\"></i> Classified</td>\n        </tr>\n        <tr>\n          <td>Jill</td>\n          <td>Approved</td>\n          <td>None</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Warning</h4>\n    <p>A cell or row may warn a user</p>\n    <table class=\"ui celled table\">\n      <thead>\n        <tr>\n          <th>Name</th>\n          <th>Status</th>\n          <th>Notes</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>No Name Specified</td>\n          <td>Unknown</td>\n          <td>None</td>\n        </tr>\n        <tr class=\"warning\">\n          <td>Jimmy</td>\n          <td><i class=\"attention icon\"></i> Requires Action</td>\n          <td>None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Unknown</td>\n          <td class=\"warning\"><i class=\"attention icon\"></i> Hostile</td>\n        </tr>\n        <tr>\n          <td>Jill</td>\n          <td>Unknown</td>\n          <td>None</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Active</h4>\n    <p>A cell or row can be active or selected by a user</p>\n    <table class=\"ui celled table\">\n      <thead>\n        <tr>\n          <th>Name</th>\n          <th>Status</th>\n          <th>Notes</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>Requires call</td>\n        </tr>\n        <tr class=\"active\">\n          <td>John</td>\n          <td>Selected</td>\n          <td>None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>Requires call</td>\n        </tr>\n        <tr>\n          <td class=\"active\">Jill</td>\n          <td>Approved</td>\n          <td>None</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n  <div class=\"example\">\n    <h4 class=\"ui header\">Disabled</h4>\n    <p>A cell can be disabled</p>\n    <table class=\"ui celled table\">\n      <thead>\n        <tr>\n          <th>Name</th>\n          <th>Status</th>\n          <th>Notes</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr class=\"disabled\">\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>Requires call</td>\n        </tr>\n        <tr>\n          <td>John</td>\n          <td>Selected</td>\n          <td>None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>Requires call</td>\n        </tr>\n        <tr>\n          <td class=\"disabled\">Jill</td>\n          <td>Approved</td>\n          <td>None</td>\n        </tr>\n      </tbody>\n    </table>\n\n  </div>\n\n  <h2 class=\"ui dividing header\">Variations</h2>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Single Line</h4>\n    <p>A table can specify that its cell contents should remain on a single line, and not wrap.</p>\n    <table class=\"ui single line table\">\n      <thead>\n        <tr>\n          <th>Name</th>\n          <th>Registration Date</th>\n          <th>E-mail address</th>\n          <th>Premium Plan</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>John Lilki</td>\n          <td>September 14, 2013</td>\n          <td>jhlilk22@yahoo.com</td>\n          <td>No</td>\n        </tr>\n        <tr>\n          <td>Jamie Harington</td>\n          <td>January 11, 2014</td>\n          <td>jamieharingonton@yahoo.com</td>\n          <td>Yes</td>\n        </tr>\n        <tr>\n          <td>Jill Lewis</td>\n          <td>May 11, 2014</td>\n          <td>jilsewris22@yahoo.com</td>\n          <td>Yes</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">\n      Fixed\n    </h4>\n    <p>A table can use <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/table-layout\"><code>table-layout: fixed</code></a> a special faster form of table rendering that does not resize table cells based on content.</p>\n    <table class=\"ui fixed table\">\n      <thead>\n        <th>Name</th>\n        <th>Status</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>John</td>\n          <td>Approved</td>\n          <td>John is an interesting boy but sometimes you don't really have enough room to describe everything you'd like</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>Jamie is a kind girl but sometimes you don't really have enough room to describe everything you'd like</td>\n        </tr>\n        <tr>\n          <td>Jill</td>\n          <td>Denied</td>\n          <td>Jill is an alright girl but sometimes you don't really have enough room to describe everything you'd like</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui ignored info message\">\n      Fixed <code>single line</code> tables will automatically ensure content that does not fit in a single line will receive \"...\" ellipsis\n    </div>\n    <table class=\"ui fixed single line celled table\">\n      <thead>\n        <th>Name</th>\n        <th>Status</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>John</td>\n          <td>Approved</td>\n          <td title=\"This is much too long to fit I'm sorry about that\">This is much too long to fit I'm sorry about that</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>Shorter description</td>\n        </tr>\n        <tr>\n          <td>Jill</td>\n          <td>Denied</td>\n          <td>Shorter description</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Stacking</h4>\n    <p>A table can specify how it stacks table content responsively</p>\n\n    <table class=\"ui unstackable table\">\n      <thead>\n        <tr>\n          <th>Name</th>\n          <th>Status</th>\n          <th class=\"right aligned\">Notes</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>John</td>\n          <td>Approved</td>\n          <td class=\"right aligned\">None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td class=\"right aligned\">Requires call</td>\n        </tr>\n        <tr>\n          <td>Jill</td>\n          <td>Denied</td>\n          <td class=\"right aligned\">None</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <table class=\"ui tablet stackable table\">\n      <thead>\n        <tr>\n          <th>Name</th>\n          <th>Status</th>\n          <th class=\"right aligned\">Notes</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>John</td>\n          <td>Approved</td>\n          <td class=\"right aligned\">None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td class=\"right aligned\">Requires call</td>\n        </tr>\n        <tr>\n          <td>Jill</td>\n          <td>Denied</td>\n          <td class=\"right aligned\">None</td>\n        </tr>\n      </tbody>\n    </table>\n\n  </div>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Selectable Row</h4>\n    <p>A table can have its rows appear selectable</p>\n    <table class=\"ui selectable celled table\">\n      <thead>\n        <tr>\n          <th>Name</th>\n          <th>Status</th>\n          <th>Notes</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>John</td>\n          <td>No Action</td>\n          <td>None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>Requires call</td>\n        </tr>\n        <tr>\n          <td>Jill</td>\n          <td>Denied</td>\n          <td>None</td>\n        </tr>\n        <tr class=\"warning\">\n          <td>John</td>\n          <td>No Action</td>\n          <td>None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td class=\"positive\">Approved</td>\n          <td class=\"warning\">Requires call</td>\n        </tr>\n        <tr>\n          <td>Jill</td>\n          <td class=\"negative\">Denied</td>\n          <td>None</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n  <div class=\"another example\">\n    <table class=\"ui selectable inverted table\">\n      <thead>\n        <tr>\n          <th>Name</th>\n          <th>Status</th>\n          <th class=\"right aligned\">Notes</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>John</td>\n          <td>Approved</td>\n          <td class=\"right aligned\">None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td class=\"right aligned\">Requires call</td>\n        </tr>\n        <tr>\n          <td>Jill</td>\n          <td>Denied</td>\n          <td class=\"right aligned\">None</td>\n        </tr>\n      </tbody>\n    </table>\n\n  </div>\n  <div class=\"example\">\n    <h4 class=\"ui header\">Selectable Cell</h4>\n    <p>A table cell can be selectable</p>\n    <div class=\"ui ignored info message\">Using an <code>a</code> link inside a selectable cell will automatically make the hit box the entire cell area. By default links will inherit their cell color.</div>\n    <table class=\"ui celled table\">\n      <thead>\n        <tr>\n          <th>Name</th>\n          <th>Status</th>\n          <th>Edit</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>John</td>\n          <td>No Action</td>\n          <td class=\"selectable\">\n            <a href=\"#\">Edit</a>\n          </td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td class=\"selectable\">\n            <a href=\"#\">Edit</a>\n          </td>\n        </tr>\n        <tr>\n          <td>Jill</td>\n          <td>Denied</td>\n          <td class=\"selectable\">\n            <a href=\"#\">Edit</a>\n          </td>\n        </tr>\n        <tr class=\"warning\">\n          <td>John</td>\n          <td>No Action</td>\n          <td class=\"selectable warning\">\n            <a href=\"#\">Requires change</a>\n          </td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td class=\"positive\">Approved</td>\n          <td class=\"selectable positive\">\n            <a href=\"#\">Approve</a>\n          </td>\n        </tr>\n        <tr>\n          <td>Jill</td>\n          <td class=\"negative\">Denied</td>\n          <td class=\"selectable negative\">\n            <a href=\"#\">Remove</a>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Vertical Alignment</h4>\n    <p>A table header, row, or cell can adjust its vertical alignment</p>\n    <table class=\"ui striped table\">\n      <thead>\n        <tr>\n          <th>Name</th>\n          <th>Status</th>\n          <th>Notes</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr class=\"top aligned\">\n          <td>John</td>\n          <td>Approved</td>\n          <td class=\"top aligned\">\n            Notes<br>\n            1<br>\n            2<br>\n          </td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td class=\"bottom aligned\">Approved</td>\n          <td>\n            Notes<br>\n            1<br>\n            2<br>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Text Alignment</h4>\n    <p>A table header, row, or cell can adjust its text alignment</p>\n    <table class=\"ui striped table\">\n      <thead>\n        <tr>\n          <th>Name</th>\n          <th>Status</th>\n          <th class=\"right aligned\">Notes</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr class=\"center aligned\">\n          <td>John</td>\n          <td>Approved</td>\n          <td class=\"right aligned\">None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td class=\"right aligned\">Requires call</td>\n        </tr>\n        <tr>\n          <td>Jill</td>\n          <td>Denied</td>\n          <td class=\"right aligned\">None</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Striped</h4>\n    <p>A table can stripe alternate rows of content with a darker color to increase contrast</p>\n    <table class=\"ui striped table\">\n      <thead>\n        <tr>\n          <th>Name</th>\n          <th>Date Joined</th>\n          <th>E-mail</th>\n          <th>Called</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>John Lilki</td>\n          <td>September 14, 2013</td>\n          <td>jhlilk22@yahoo.com</td>\n          <td>No</td>\n        </tr>\n        <tr>\n          <td>Jamie Harington</td>\n          <td>January 11, 2014</td>\n          <td>jamieharingonton@yahoo.com</td>\n          <td>Yes</td>\n        </tr>\n        <tr>\n          <td>Jill Lewis</td>\n          <td>May 11, 2014</td>\n          <td>jilsewris22@yahoo.com</td>\n          <td>Yes</td>\n        </tr>\n        <tr>\n          <td>John Lilki</td>\n          <td>September 14, 2013</td>\n          <td>jhlilk22@yahoo.com</td>\n          <td>No</td>\n        </tr>\n        <tr>\n          <td>John Lilki</td>\n          <td>September 14, 2013</td>\n          <td>jhlilk22@yahoo.com</td>\n          <td>No</td>\n        </tr>\n        <tr>\n          <td>Jamie Harington</td>\n          <td>January 11, 2014</td>\n          <td>jamieharingonton@yahoo.com</td>\n          <td>Yes</td>\n        </tr>\n        <tr>\n          <td>Jill Lewis</td>\n          <td>May 11, 2014</td>\n          <td>jilsewris22@yahoo.com</td>\n          <td>Yes</td>\n        </tr>\n        <tr>\n          <td>John Lilki</td>\n          <td>September 14, 2013</td>\n          <td>jhlilk22@yahoo.com</td>\n          <td>No</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Celled</h4>\n    <p>A table may be divided each row into separate cells</p>\n    <table class=\"ui celled table\">\n      <thead>\n        <tr>\n          <th>Name</th>\n          <th>Status</th>\n          <th>Notes</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>John</td>\n          <td>Approved</td>\n          <td>None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>Requires call</td>\n        </tr>\n        <tr>\n          <td>Jill</td>\n          <td>Denied</td>\n          <td>None</td>\n        </tr>\n      </tbody>\n      <tfoot>\n        <th>3 People</th>\n        <th>2 Approved</th>\n        <th></th>\n      </tfoot>\n    </table>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Basic</h4>\n    <p>A table can reduce its complexity to increase readability.</p>\n    <table class=\"ui basic table\">\n      <thead>\n        <tr>\n          <th>Name</th>\n          <th>Status</th>\n          <th>Notes</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>John</td>\n          <td>Approved</td>\n          <td>None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>Requires call</td>\n        </tr>\n        <tr>\n          <td>Jill</td>\n          <td>Denied</td>\n          <td>None</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n  <div class=\"another example\">\n    <table class=\"ui very basic table\">\n      <thead>\n        <tr>\n          <th>Name</th>\n          <th>Status</th>\n          <th>Notes</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>John</td>\n          <td>Approved</td>\n          <td>None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>Requires call</td>\n        </tr>\n        <tr>\n          <td>Jill</td>\n          <td>Denied</td>\n          <td>None</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Collapsing Cell</h4>\n    <p>A cell can be collapsing so that it only uses as much space as required</p>\n    <div class=\"ui ignored warning icon message\">\n      <i class=\"warning icon\"></i>\n      <div class=\"content\">\n        To ensure icons don't wrap to a separate line you must either specify collapsing on the widest row in the collapsing column, or on all rows\n      </div>\n    </div>\n\n    <table class=\"ui table\">\n      <tbody>\n        <tr>\n          <td class=\"collapsing\">\n            <i class=\"folder icon\"></i> node_modules\n          </td>\n          <td>Initial commit</td>\n          <td>10 hours ago</td>\n        </tr>\n        <tr>\n          <td>\n            <i class=\"folder icon\"></i> test\n          </td>\n          <td>Initial commit</td>\n          <td>10 hours ago</td>\n        </tr>\n        <tr>\n          <td>\n            <i class=\"folder icon\"></i> build\n          </td>\n          <td>Initial commit</td>\n          <td>10 hours ago</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Column Count</h4>\n    <p>A table can specify its column count to divide its content evenly</p>\n    <table class=\"ui five column table\">\n      <thead>\n        <th>Name</th>\n        <th>Status</th>\n        <th>Age</th>\n        <th>Gender</th>\n        <th>Notes</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>John</td>\n          <td>Approved</td>\n          <td>22</td>\n          <td>Male</td>\n          <td>None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>32</td>\n          <td>Male</td>\n          <td>Requires call</td>\n        </tr>\n        <tr>\n          <td>Jill</td>\n          <td>Denied</td>\n          <td>22</td>\n          <td>Female</td>\n          <td>None</td>\n        </tr>\n      </tbody>\n      <tfoot>\n        <th>3 People</th>\n        <th>2 Approved</th>\n        <th></th>\n        <th></th>\n        <th></th>\n      </tfoot>\n    </table>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Column Width</h4>\n    <p>A table can specify the width of individual columns independently.</p>\n    <div class=\"ui ignored info message\">Tables use a 16 column grid similar to <a href=\"/collections/grid.html\">ui grid</a></div>\n    <table class=\"ui table\">\n      <thead>\n        <th class=\"ten wide\">Name</th>\n        <th class=\"six wide\">Status</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>John</td>\n          <td>Approved</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n        </tr>\n        <tr>\n          <td>Jill</td>\n          <td>Denied</td>\n        </tr>\n      </tbody>\n      <tfoot>\n        <th>3 People</th>\n        <th>2 Approved</th>\n      </tfoot>\n    </table>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Collapsing</h4>\n    <p>A table can be collapsing, taking up only as much space as its rows.</p>\n    <table class=\"ui collapsing table\">\n      <thead>\n        <tr>\n          <th>Name</th>\n          <th>Status</th>\n          <th>Notes</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>John</td>\n          <td>Approved</td>\n          <td>None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>Requires call</td>\n        </tr>\n        <tr>\n          <td>Jill</td>\n          <td>Denied</td>\n          <td>None</td>\n        </tr>\n      </tbody>\n      <tfoot>\n        <th>3 People</th>\n        <th>2 Approved</th>\n        <th></th>\n      </tfoot>\n    </table>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Colored</h4>\n    <p>A table can be given a color to distinguish it from other tables.</p>\n    <table class=\"ui red table\">\n      <thead>\n        <th>Food</th>\n        <th>Calories</th>\n        <th>Protein</th>\n      <tbody>\n        <tr>\n          <td>Apples</td>\n          <td>200</td>\n          <td>0g</td>\n        </tr>\n        <tr>\n          <td>Orange</td>\n          <td>310</td>\n          <td>0g</td>\n        </tr>\n      </tbody>\n    </table>\n    <table class=\"ui orange table\">\n      <thead>\n        <th>Food</th>\n        <th>Calories</th>\n        <th>Protein</th>\n      <tbody>\n        <tr>\n          <td>Apples</td>\n          <td>200</td>\n          <td>0g</td>\n        </tr>\n        <tr>\n          <td>Orange</td>\n          <td>310</td>\n          <td>0g</td>\n        </tr>\n      </tbody>\n    </table>\n    <table class=\"ui yellow table\">\n      <thead>\n        <th>Food</th>\n        <th>Calories</th>\n        <th>Protein</th>\n      <tbody>\n        <tr>\n          <td>Apples</td>\n          <td>200</td>\n          <td>0g</td>\n        </tr>\n        <tr>\n          <td>Orange</td>\n          <td>310</td>\n          <td>0g</td>\n        </tr>\n      </tbody>\n  </table>\n    <table class=\"ui olive table\">\n      <thead>\n        <th>Food</th>\n        <th>Calories</th>\n        <th>Protein</th>\n      <tbody>\n        <tr>\n          <td>Apples</td>\n          <td>200</td>\n          <td>0g</td>\n        </tr>\n        <tr>\n          <td>Orange</td>\n          <td>310</td>\n          <td>0g</td>\n        </tr>\n      </tbody>\n    </table>\n    <table class=\"ui green table\">\n      <thead>\n        <th>Food</th>\n        <th>Calories</th>\n        <th>Protein</th>\n      <tbody>\n        <tr>\n          <td>Apples</td>\n          <td>200</td>\n          <td>0g</td>\n        </tr>\n        <tr>\n          <td>Orange</td>\n          <td>310</td>\n          <td>0g</td>\n        </tr>\n      </tbody>\n    </table>\n    <table class=\"ui teal table\">\n      <thead>\n        <th>Food</th>\n        <th>Calories</th>\n        <th>Protein</th>\n      <tbody>\n        <tr>\n          <td>Apples</td>\n          <td>200</td>\n          <td>0g</td>\n        </tr>\n        <tr>\n          <td>Orange</td>\n          <td>310</td>\n          <td>0g</td>\n        </tr>\n      </tbody>\n    </table>\n    <table class=\"ui blue table\">\n      <thead>\n        <th>Food</th>\n        <th>Calories</th>\n        <th>Protein</th>\n      <tbody>\n        <tr>\n          <td>Apples</td>\n          <td>200</td>\n          <td>0g</td>\n        </tr>\n        <tr>\n          <td>Orange</td>\n          <td>310</td>\n          <td>0g</td>\n        </tr>\n      </tbody>\n    </table>\n    <table class=\"ui violet table\">\n      <thead>\n        <th>Food</th>\n        <th>Calories</th>\n        <th>Protein</th>\n      <tbody>\n        <tr>\n          <td>Apples</td>\n          <td>200</td>\n          <td>0g</td>\n        </tr>\n        <tr>\n          <td>Orange</td>\n          <td>310</td>\n          <td>0g</td>\n        </tr>\n      </tbody>\n    </table>\n    <table class=\"ui purple table\">\n      <thead>\n        <th>Food</th>\n        <th>Calories</th>\n        <th>Protein</th>\n      <tbody>\n        <tr>\n          <td>Apples</td>\n          <td>200</td>\n          <td>0g</td>\n        </tr>\n        <tr>\n          <td>Orange</td>\n          <td>310</td>\n          <td>0g</td>\n        </tr>\n      </tbody>\n    </table>\n    <table class=\"ui pink table\">\n      <thead>\n        <th>Food</th>\n        <th>Calories</th>\n        <th>Protein</th>\n      <tbody>\n        <tr>\n          <td>Apples</td>\n          <td>200</td>\n          <td>0g</td>\n        </tr>\n        <tr>\n          <td>Orange</td>\n          <td>310</td>\n          <td>0g</td>\n        </tr>\n      </tbody>\n    </table>\n    <table class=\"ui grey table\">\n      <thead>\n        <th>Food</th>\n        <th>Calories</th>\n        <th>Protein</th>\n      <tbody>\n        <tr>\n          <td>Apples</td>\n          <td>200</td>\n          <td>0g</td>\n        </tr>\n        <tr>\n          <td>Orange</td>\n          <td>310</td>\n          <td>0g</td>\n        </tr>\n      </tbody>\n    </table>\n    <table class=\"ui black table\">\n      <thead>\n        <th>Food</th>\n        <th>Calories</th>\n        <th>Protein</th>\n      <tbody>\n        <tr>\n          <td>Apples</td>\n          <td>200</td>\n          <td>0g</td>\n        </tr>\n        <tr>\n          <td>Orange</td>\n          <td>310</td>\n          <td>0g</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Inverted</h4>\n    <p>A table's colors can be inverted</p>\n    <table class=\"ui inverted table\">\n      <thead>\n        <tr>\n          <th>Name</th>\n          <th>Status</th>\n          <th>Notes</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>John</td>\n          <td>Approved</td>\n          <td>None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>Requires call</td>\n        </tr>\n        <tr>\n          <td>Jill</td>\n          <td>Denied</td>\n          <td>None</td>\n        </tr>\n      </tbody>\n      <tfoot>\n        <th>3 People</th>\n        <th>2 Approved</th>\n        <th></th>\n      </tfoot>\n    </table>\n  </div>\n  <div class=\"another example\">\n    <table class=\"ui inverted red table\">\n      <thead>\n        <th>Food</th>\n        <th>Calories</th>\n        <th>Protein</th>\n      <tbody>\n        <tr>\n          <td>Apples</td>\n          <td>200</td>\n          <td>0g</td>\n        </tr>\n        <tr>\n          <td>Orange</td>\n          <td>310</td>\n          <td>0g</td>\n        </tr>\n      </tbody>\n    </table>\n    <table class=\"ui inverted orange table\">\n      <thead>\n        <th>Food</th>\n        <th>Calories</th>\n        <th>Protein</th>\n      <tbody>\n        <tr>\n          <td>Apples</td>\n          <td>200</td>\n          <td>0g</td>\n        </tr>\n        <tr>\n          <td>Orange</td>\n          <td>310</td>\n          <td>0g</td>\n        </tr>\n      </tbody>\n    </table>\n    <table class=\"ui inverted yellow table\">\n      <thead>\n        <th>Food</th>\n        <th>Calories</th>\n        <th>Protein</th>\n      <tbody>\n        <tr>\n          <td>Apples</td>\n          <td>200</td>\n          <td>0g</td>\n        </tr>\n        <tr>\n          <td>Orange</td>\n          <td>310</td>\n          <td>0g</td>\n        </tr>\n      </tbody>\n    </table>\n    <table class=\"ui inverted olive table\">\n      <thead>\n        <th>Food</th>\n        <th>Calories</th>\n        <th>Protein</th>\n      <tbody>\n        <tr>\n          <td>Apples</td>\n          <td>200</td>\n          <td>0g</td>\n        </tr>\n        <tr>\n          <td>Orange</td>\n          <td>310</td>\n          <td>0g</td>\n        </tr>\n      </tbody>\n    </table>\n    <table class=\"ui inverted green table\">\n      <thead>\n        <th>Food</th>\n        <th>Calories</th>\n        <th>Protein</th>\n      <tbody>\n        <tr>\n          <td>Apples</td>\n          <td>200</td>\n          <td>0g</td>\n        </tr>\n        <tr>\n          <td>Orange</td>\n          <td>310</td>\n          <td>0g</td>\n        </tr>\n      </tbody>\n    </table>\n    <table class=\"ui inverted teal table\">\n      <thead>\n        <th>Food</th>\n        <th>Calories</th>\n        <th>Protein</th>\n      <tbody>\n        <tr>\n          <td>Apples</td>\n          <td>200</td>\n          <td>0g</td>\n        </tr>\n        <tr>\n          <td>Orange</td>\n          <td>310</td>\n          <td>0g</td>\n        </tr>\n      </tbody>\n    </table>\n    <table class=\"ui inverted blue table\">\n      <thead>\n        <th>Food</th>\n        <th>Calories</th>\n        <th>Protein</th>\n      <tbody>\n        <tr>\n          <td>Apples</td>\n          <td>200</td>\n          <td>0g</td>\n        </tr>\n        <tr>\n          <td>Orange</td>\n          <td>310</td>\n          <td>0g</td>\n        </tr>\n      </tbody>\n    </table>\n    <table class=\"ui inverted violet table\">\n      <thead>\n        <th>Food</th>\n        <th>Calories</th>\n        <th>Protein</th>\n      <tbody>\n        <tr>\n          <td>Apples</td>\n          <td>200</td>\n          <td>0g</td>\n        </tr>\n        <tr>\n          <td>Orange</td>\n          <td>310</td>\n          <td>0g</td>\n        </tr>\n      </tbody>\n    </table>\n    <table class=\"ui inverted purple table\">\n      <thead>\n        <th>Food</th>\n        <th>Calories</th>\n        <th>Protein</th>\n      <tbody>\n        <tr>\n          <td>Apples</td>\n          <td>200</td>\n          <td>0g</td>\n        </tr>\n        <tr>\n          <td>Orange</td>\n          <td>310</td>\n          <td>0g</td>\n        </tr>\n      </tbody>\n    </table>\n    <table class=\"ui inverted pink table\">\n      <thead>\n        <th>Food</th>\n        <th>Calories</th>\n        <th>Protein</th>\n      <tbody>\n        <tr>\n          <td>Apples</td>\n          <td>200</td>\n          <td>0g</td>\n        </tr>\n        <tr>\n          <td>Orange</td>\n          <td>310</td>\n          <td>0g</td>\n        </tr>\n      </tbody>\n    </table>\n    <table class=\"ui inverted brown table\">\n      <thead>\n        <th>Food</th>\n        <th>Calories</th>\n        <th>Protein</th>\n      <tbody>\n        <tr>\n          <td>Apples</td>\n          <td>200</td>\n          <td>0g</td>\n        </tr>\n        <tr>\n          <td>Orange</td>\n          <td>310</td>\n          <td>0g</td>\n        </tr>\n      </tbody>\n    </table>\n    <table class=\"ui inverted grey table\">\n      <thead>\n        <th>Food</th>\n        <th>Calories</th>\n        <th>Protein</th>\n      <tbody>\n        <tr>\n          <td>Apples</td>\n          <td>200</td>\n          <td>0g</td>\n        </tr>\n        <tr>\n          <td>Orange</td>\n          <td>310</td>\n          <td>0g</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Sortable</h4>\n    <p>A table may allow a user to sort contents by clicking on a table header.</p>\n\n    <div class=\"ui ignored warning message\">Adding the class <code>ascending</code> or <code>descending</code> to the <code>th</code> will show the user the sorting direction. This example uses a modified version of the kylefox's <a href=\"https://github.com/kylefox/jquery-tablesort\">tablesort plugin</a> to provide the proper class names. To make sortable tables work, include <a href=\"http://semantic-ui.com/javascript/library/tablesort.js\">this javascript</a> into your page and call <code>$('table').tablesort()</code> when the DOM is ready.\n    </div>\n\n    <table class=\"ui sortable celled table\">\n      <thead>\n        <tr>\n          <th>Name</th>\n          <th>Status</th>\n          <th>Notes</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>John</td>\n          <td>No Action</td>\n          <td>None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td class=\"positive\">Approved</td>\n          <td class=\"warning\">Requires call</td>\n        </tr>\n        <tr>\n          <td>Jill</td>\n          <td class=\"negative\">Denied</td>\n          <td>None</td>\n        </tr>\n      </tbody>\n      <tfoot>\n        <th>3 People</th>\n        <th>2 Approved</th>\n        <th></th>\n      </tfoot>\n    </table>\n  </div>\n  <div class=\"example\">\n    <h4 class=\"ui header\">Full-Width Header / Footer </h4>\n    <p>A definition table can have a full width header or footer, filling in the gap left by the first column</p>\n    <table class=\"ui compact celled definition table\">\n      <thead class=\"full-width\">\n        <tr>\n          <th></th>\n          <th>Name</th>\n          <th>Registration Date</th>\n          <th>E-mail address</th>\n          <th>Premium Plan</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td class=\"collapsing\">\n            <div class=\"ui fitted slider checkbox\">\n              <input type=\"checkbox\"> <label></label>\n            </div>\n          </td>\n          <td>John Lilki</td>\n          <td>September 14, 2013</td>\n          <td>jhlilk22@yahoo.com</td>\n          <td>No</td>\n        </tr>\n        <tr>\n          <td class=\"collapsing\">\n            <div class=\"ui fitted slider checkbox\">\n              <input type=\"checkbox\"> <label></label>\n            </div>\n          </td>\n          <td>Jamie Harington</td>\n          <td>January 11, 2014</td>\n          <td>jamieharingonton@yahoo.com</td>\n          <td>Yes</td>\n        </tr>\n        <tr>\n          <td class=\"collapsing\">\n            <div class=\"ui fitted slider checkbox\">\n              <input type=\"checkbox\"> <label></label>\n            </div>\n          </td>\n          <td>Jill Lewis</td>\n          <td>May 11, 2014</td>\n          <td>jilsewris22@yahoo.com</td>\n          <td>Yes</td>\n        </tr>\n      </tbody>\n      <tfoot class=\"full-width\">\n        <tr>\n          <th></th>\n          <th colspan=\"4\">\n            <div class=\"ui right floated small primary labeled icon button\">\n              <i class=\"user icon\"></i> Add User\n            </div>\n            <div class=\"ui small  button\">\n              Approve\n            </div>\n            <div class=\"ui small  disabled button\">\n              Approve All\n            </div>\n          </th>\n        </tr>\n      </tfoot>\n    </table>\n  </div>\n  <div class=\"example\">\n    <h4 class=\"ui header\">Padded</h4>\n    <p>A table may sometimes need to be more padded for legibility</p>\n    <table class=\"ui padded table\">\n      <thead>\n        <tr>\n          <th>Name</th>\n          <th>Status</th>\n          <th>Notes</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>John</td>\n          <td>Approved</td>\n          <td>He is a very nice guy and I enjoyed talking to him on the telephone. I hope we get to talk again.</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>Jamie was not interested in purchasing our product.</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n  <div class=\"another example\">\n    <table class=\"ui very padded table\">\n      <thead>\n        <tr>\n          <th>Name</th>\n          <th>Status</th>\n          <th>Notes</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>John</td>\n          <td>Approved</td>\n          <td>He is a very nice guy and I enjoyed talking to him on the telephone. I hope we get to talk again.</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>Jamie was not interested in purchasing our product.</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n  <div class=\"example\">\n    <h4 class=\"ui header\">Compact</h4>\n    <p>A table may sometimes need to be more compact to make more rows visible at a time</p>\n    <table class=\"ui compact table\">\n      <thead>\n        <tr>\n          <th>Name</th>\n          <th>Status</th>\n          <th>Notes</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>John</td>\n          <td>Approved</td>\n          <td>None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>Requires call</td>\n        </tr>\n        <tr>\n          <td>John</td>\n          <td>Approved</td>\n          <td>None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>Requires call</td>\n        </tr>\n        <tr>\n          <td>John</td>\n          <td>Approved</td>\n          <td>None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>Requires call</td>\n        </tr>\n        <tr>\n          <td>John</td>\n          <td>Approved</td>\n          <td>None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>Requires call</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n  <div class=\"another example\">\n    <table class=\"ui very compact table\">\n      <thead>\n        <th>Name</th>\n        <th>Status</th>\n        <th>Another Status</th>\n        <th>Notes</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>John</td>\n          <td>Approved</td>\n          <td>Approved</td>\n          <td>None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>Approved</td>\n          <td>Requires call</td>\n        </tr>\n        <tr>\n          <td>John</td>\n          <td>Approved</td>\n          <td>Approved</td>\n          <td>None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>Approved</td>\n          <td>Requires call</td>\n        </tr>\n        <tr>\n          <td>John</td>\n          <td>Approved</td>\n          <td>Approved</td>\n          <td>None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>Approved</td>\n          <td>Requires call</td>\n        </tr>\n        <tr>\n          <td>John</td>\n          <td>Approved</td>\n          <td>Approved</td>\n          <td>None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>Approved</td>\n          <td>Requires call</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Size</h4>\n    <p>A table can also be small or large</p>\n    <table class=\"ui small table\">\n      <thead>\n        <tr>\n          <th>Name</th>\n          <th>Status</th>\n          <th>Notes</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>John</td>\n          <td>Approved</td>\n          <td>None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>Requires call</td>\n        </tr>\n        <tr>\n          <td>Jill</td>\n          <td>Denied</td>\n          <td>None</td>\n        </tr>\n      </tbody>\n      <tfoot>\n        <th>3 People</th>\n        <th>2 Approved</th>\n        <th></th>\n      </tfoot>\n    </table>\n  </div>\n  <div class=\"another example\">\n    <table class=\"ui large table\">\n      <thead>\n        <tr>\n          <th>Name</th>\n          <th>Status</th>\n          <th>Notes</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>John</td>\n          <td>Approved</td>\n          <td>None</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>Requires call</td>\n        </tr>\n        <tr>\n          <td>Jill</td>\n          <td>Denied</td>\n          <td>None</td>\n        </tr>\n      </tbody>\n      <tfoot>\n        <th>3 People</th>\n        <th>2 Approved</th>\n        <th></th>\n      </tfoot>\n    </table>\n  </div>\n</div>\n"
  },
  {
    "path": "server/documents/elements/button.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'button-page'\nelement     : 'button'\nelementType : 'element'\nstandalone  : true\n\ntitle       : 'Button'\ndescription : 'A button indicates a possible user action'\ntype        : 'UI Element'\n\nthemes      : ['Default', 'Classic', 'Basic', 'Bootstrap3', 'Twitter', 'Raised', 'Chubby', 'Round', 'Amazon', 'Material', 'GitHub']\n---\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/elements/button.less\" />\n<script src=\"/javascript/button.js\"></script>\n<script src=\"/javascript/library/state.js\"></script>\n\n<%- @partial('header') %>\n\n<div class=\"main ui container\">\n\n  <h2 class=\"ui dividing header\">Types</h2>\n\n  <div class=\"follow example\">\n    <h4 class=\"ui header\">Button</h4>\n    <p>A standard button</p>\n    <button class=\"ui button\">\n      Follow\n    </button>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui ignored warning message\">\n      Although any tag can be used for a button, it will only be <a href=\"http://webaim.org/techniques/keyboard/tabindex\">keyboard focusable</a> if you use a <code>&#x3C;button&#x3E;</code> tag or you add the property <code>tabindex=\"0\"</code>. Keyboard accessible buttons will preserve focus styles after click, which may be visually jarring.</p>\n    </div>\n    <button class=\"ui button\">\n      Button\n    </button>\n    <div class=\"ui button\" tabindex=\"0\">\n      Focusable\n    </div>\n  </div>\n\n  <div class=\"example\" data-class=\"primary, secondary\">\n    <h4 class=\"ui header\">Emphasis</h4>\n    <p>A button can be formatted to show different levels of emphasis</p>\n    <div class=\"ui ignored info message\">Setting your brand colors to primary and secondary color variables in <a href=\"/usage/theming.html\"><code>site.variables</code></a> will allow you to use your color theming for UI elements</div>\n    <button class=\"ui primary button\">\n      Save\n    </button>\n    <button class=\"ui button\">\n      Discard\n    </button>\n  </div>\n  <div class=\"another example\">\n    <button class=\"ui secondary button\">\n      Okay\n    </button>\n    <button class=\"ui button\">\n      Cancel\n    </button>\n  </div>\n\n  <div class=\"example\" data-class=\"animated fade, animated\">\n    <h4 class=\"ui header\">Animated</h4>\n    <p>A button can animate to show hidden content</p>\n    <div class=\"ui ignored message\">The button will be automatically sized according to the visible content size. Make sure there is enough room for the hidden content to show</div>\n    <div class=\"ui animated button\" tabindex=\"0\">\n      <div class=\"visible content\">Next</div>\n      <div class=\"hidden content\">\n        <i class=\"right arrow icon\"></i>\n      </div>\n    </div>\n    <div class=\"ui vertical animated button\" tabindex=\"0\">\n      <div class=\"hidden content\">Shop</div>\n      <div class=\"visible content\">\n        <i class=\"shop icon\"></i>\n      </div>\n    </div>\n    <div class=\"ui animated fade button\" tabindex=\"0\">\n      <div class=\"visible content\">Sign-up for a Pro account</div>\n      <div class=\"hidden content\">\n        $12.99 a month\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\" data-class=\"labeled, left labeled\">\n    <h4 class=\"ui header\">Labeled</h4>\n    <p>A button can appear alongside a <a href=\"/elements/label.html\">label</a></p>\n    <div class=\"ui labeled button\" tabindex=\"0\">\n      <div class=\"ui button\">\n        <i class=\"heart icon\"></i> Like\n      </div>\n      <a class=\"ui basic label\">\n        2,048\n      </a>\n    </div>\n    <div class=\"ui left labeled button\" tabindex=\"0\">\n      <a class=\"ui basic right pointing label\">\n        2,048\n      </a>\n      <div class=\"ui button\">\n        <i class=\"heart icon\"></i> Like\n      </div>\n    </div>\n    <div class=\"ui left labeled button\" tabindex=\"0\">\n      <a class=\"ui basic label\">\n        1,048\n      </a>\n      <div class=\"ui icon button\">\n        <i class=\"fork icon\"></i>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui labeled button\" tabindex=\"0\">\n      <div class=\"ui red button\">\n        <i class=\"heart icon\"></i> Like\n      </div>\n      <a class=\"ui basic red left pointing label\">\n        1,048\n      </a>\n    </div>\n    <div class=\"ui labeled button\" tabindex=\"0\">\n      <div class=\"ui basic blue button\">\n        <i class=\"fork icon\"></i> Forks\n      </div>\n      <a class=\"ui basic left pointing blue label\">\n        1,048\n      </a>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Icon</h4>\n    <p>A button can have only an icon</p>\n    <button class=\"ui icon button\">\n      <i class=\"cloud icon\"></i>\n    </button>\n  </div>\n\n  <div class=\"example\" data-class=\"labeled icon, right labeled icon\">\n    <h4 class=\"ui header\">Labeled Icon</h4>\n    <p>A button can use an icon as a label</p>\n    <button class=\"ui labeled icon button\">\n      <i class=\"pause icon\"></i>\n      Pause\n    </button>\n    <button class=\"ui right labeled icon button\">\n      <i class=\"right arrow icon\"></i>\n      Next\n    </button>\n    <button class=\"ui labeled icon button\">\n      <i class=\"loading spinner icon\"></i>\n      Loading\n    </button>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Basic</h4>\n    <p>A basic button is less pronounced</p>\n    <button class=\"ui basic button\">\n      <i class=\"icon user\"></i>\n      Add Friend\n    </button>\n  </div>\n  <div class=\"another spaced example\">\n    <button class=\"ui primary basic button\">Primary</button>\n    <button class=\"ui secondary basic button\">Secondary</button>\n    <button class=\"ui positive basic button\">Positive</button>\n    <button class=\"ui negative basic button\">Negative</button>\n  </div>\n  <div class=\"another spaced example\">\n    <button class=\"ui red basic button\">Red</button>\n    <button class=\"ui orange basic button\">Orange</button>\n    <button class=\"ui yellow basic button\">Yellow</button>\n    <button class=\"ui olive basic button\">Olive</button>\n    <button class=\"ui green basic button\">Green</button>\n    <button class=\"ui teal basic button\">Teal</button>\n    <button class=\"ui blue basic button\">Blue</button>\n    <button class=\"ui violet basic button\">Violet</button>\n    <button class=\"ui purple basic button\">Purple</button>\n    <button class=\"ui pink basic button\">Pink</button>\n    <button class=\"ui brown basic button\">Brown</button>\n    <button class=\"ui grey basic button\">Grey</button>\n    <button class=\"ui black basic button\">Black</button>\n  </div>\n\n  <div class=\"spaced example\">\n    <h4 class=\"ui header\">Inverted</h4>\n    <p>A button can be formatted to appear on dark backgrounds</p>\n    <div class=\"ui inverted segment\">\n      <button class=\"ui inverted button\">Standard</button>\n      <button class=\"ui inverted primary button\">Primary</button>\n      <button class=\"ui inverted secondary button\">Secondary</button>\n      <button class=\"ui inverted red button\">Red</button>\n      <button class=\"ui inverted orange button\">Orange</button>\n      <button class=\"ui inverted yellow button\">Yellow</button>\n      <button class=\"ui inverted olive button\">Olive</button>\n      <button class=\"ui inverted green button\">Green</button>\n      <button class=\"ui inverted teal button\">Teal</button>\n      <button class=\"ui inverted blue button\">Blue</button>\n      <button class=\"ui inverted violet button\">Violet</button>\n      <button class=\"ui inverted purple button\">Purple</button>\n      <button class=\"ui inverted pink button\">Pink</button>\n      <button class=\"ui inverted brown button\">Brown</button>\n      <button class=\"ui inverted grey button\">Grey</button>\n      <button class=\"ui inverted black button\">Black</button>\n    </div>\n  </div>\n  <div class=\"another spaced example\">\n    <div class=\"ui inverted segment\">\n      <button class=\"ui inverted basic button\">Basic</button>\n      <button class=\"ui inverted primary basic button\">Primary</button>\n      <button class=\"ui inverted secondary basic button\">Secondary</button>\n      <button class=\"ui inverted red basic button\">Basic Red</button>\n      <button class=\"ui inverted orange basic button\">Basic Orange</button>\n      <button class=\"ui inverted yellow basic button\">Basic Yellow</button>\n      <button class=\"ui inverted olive basic button\">Basic Olive</button>\n      <button class=\"ui inverted green basic button\">Basic Green</button>\n      <button class=\"ui inverted teal basic button\">Basic Teal</button>\n      <button class=\"ui inverted blue basic button\">Basic Blue</button>\n      <button class=\"ui inverted violet basic button\">Basic Violet</button>\n      <button class=\"ui inverted purple basic button\">Basic Purple</button>\n      <button class=\"ui inverted pink basic button\">Basic Pink</button>\n      <button class=\"ui inverted brown basic button\">Basic Brown</button>\n      <button class=\"ui inverted grey basic button\">Basic Grey</button>\n      <button class=\"ui inverted black basic button\">Basic Black</button>\n    </div>\n  </div>\n\n\n  <h2 class=\"ui dividing header\">Groups</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Buttons</h4>\n    <p>Buttons can exist together as a group</p>\n    <div class=\"ui buttons\">\n      <button class=\"ui button\">One</button>\n      <button class=\"ui button\">Two</button>\n      <button class=\"ui button\">Three</button>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Icon Buttons</h4>\n    <p>Button groups can show groups of icons</p>\n    <div class=\"ui icon buttons\">\n      <button class=\"ui button\"><i class=\"align left icon\"></i></button>\n      <button class=\"ui button\"><i class=\"align center icon\"></i></button>\n      <button class=\"ui button\"><i class=\"align right icon\"></i></button>\n      <button class=\"ui button\"><i class=\"align justify icon\"></i></button>\n    </div>\n    <div class=\"ui icon buttons\">\n      <button class=\"ui button\"><i class=\"bold icon\"></i></button>\n      <button class=\"ui button\"><i class=\"underline icon\"></i></button>\n      <button class=\"ui button\"><i class=\"text width icon\"></i></button>\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Content</h2>\n\n  <div class=\"example\" data-class=\"or\">\n    <h4 class=\"ui header\">Conditionals</h4>\n    <p>Button groups can contain conditionals</p>\n    <div class=\"ui buttons\">\n      <button class=\"ui button\">Cancel</button>\n      <div class=\"or\"></div>\n      <button class=\"ui positive button\">Save</button>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui ignored info message\">\n      Or buttons can have their text localized, or adjusted by using the <code>data-text</code> attribute. If the size of the conditional changes you will need to adjust <code>@orCircleSize</code>\n    </div>\n    <div class=\"ui buttons\">\n      <button class=\"ui button\">un</button>\n      <div class=\"or\" data-text=\"ou\"></div>\n      <button class=\"ui positive button\">deux</button>\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">States</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Active</h4>\n    <p>A button can show it is currently the active user selection</p>\n    <button class=\"ui active button\">\n      <i class=\"user icon\"></i>\n      Follow\n    </button>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Disabled</h4>\n    <p>A button can show it is currently unable to be interacted with</p>\n    <button class=\"ui disabled button\">\n      <i class=\"user icon\"></i>\n      Followed\n    </button>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Loading</h4>\n    <p>A button can show a loading indicator</p>\n    <button class=\"ui loading button\">Loading</button>\n    <button class=\"ui basic loading button\">Loading</button>\n    <button class=\"ui primary loading button\">Loading</button>\n    <button class=\"ui secondary loading button\">Loading</button>\n  </div>\n\n  <h2 class=\"ui dividing header\">Variations</h2>\n\n  <div class=\"spaced example\" data-class=\"facebook, twitter, google, vk, linkedin, instagram, youtube\">\n    <h4 class=\"ui header\">Social</h4>\n    <p>A button can be formatted to link to a social website</p>\n    <button class=\"ui facebook button\">\n      <i class=\"facebook icon\"></i>\n      Facebook\n    </button>\n    <button class=\"ui twitter button\">\n      <i class=\"twitter icon\"></i>\n      Twitter\n    </button>\n    <button class=\"ui google plus button\">\n      <i class=\"google plus icon\"></i>\n      Google Plus\n    </button>\n    <button class=\"ui vk button\">\n      <i class=\"vk icon\"></i>\n      VK\n    </button>\n    <button class=\"ui linkedin button\">\n      <i class=\"linkedin icon\"></i>\n      LinkedIn\n    </button>\n    <button class=\"ui instagram button\">\n      <i class=\"instagram icon\"></i>\n      Instagram\n    </button>\n    <button class=\"ui youtube button\">\n      <i class=\"youtube icon\"></i>\n      YouTube\n    </button>\n  </div>\n\n\n  <div class=\"spaced example\" data-class=\"size\">\n    <h4 class=\"ui header\">Size</h4>\n    <p>A button can have different sizes</p>\n    <button class=\"mini ui button\">\n      Mini\n    </button>\n    <button class=\"tiny ui button\">\n      Tiny\n    </button>\n    <button class=\"small ui button\">\n      Small\n    </button>\n    <button class=\"medium ui button\">\n      Medium\n    </button>\n    <button class=\"large ui button\">\n      Large\n    </button>\n    <button class=\"big ui button\">\n      Big\n    </button>\n    <button class=\"huge ui button\">\n      Huge\n    </button>\n    <button class=\"massive ui button\">\n      Massive\n    </button>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Floated</h4>\n    <p>A button can be aligned to the left or right of its container</p>\n    <button class=\"ui right floated button\">Right Floated</button>\n    <button class=\"ui left floated button\">Left Floated</button>\n  </div>\n\n\n  <div class=\"spaced example\">\n    <h4 class=\"ui header\">Colored</h4>\n    <p>A button can have different colors</p>\n    <button class=\"ui red button\">Red</button>\n    <button class=\"ui orange button\">Orange</button>\n    <button class=\"ui yellow button\">Yellow</button>\n    <button class=\"ui olive button\">Olive</button>\n    <button class=\"ui green button\">Green</button>\n    <button class=\"ui teal button\">Teal</button>\n    <button class=\"ui blue button\">Blue</button>\n    <button class=\"ui violet button\">Violet</button>\n    <button class=\"ui purple button\">Purple</button>\n    <button class=\"ui pink button\">Pink</button>\n    <button class=\"ui brown button\">Brown</button>\n    <button class=\"ui grey button\">Grey</button>\n    <button class=\"ui black button\">Black</button>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Compact</h4>\n    <p>A button can reduce its padding to fit into tighter spaces</p>\n    <button class=\"compact ui button\">\n      Hold\n    </button>\n    <button class=\"ui compact icon button\">\n      <i class=\"pause icon\"></i>\n    </button>\n    <button class=\"ui compact labeled icon button\">\n      <i class=\"pause icon\"></i>\n      Pause\n    </button>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Toggle</h4>\n    <p>A button can be formatted to toggle on and off</p>\n    <button class=\"ui toggle button\">\n      Vote\n    </button>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Positive</h4>\n    <p>A button can hint towards a positive consequence</p>\n    <button class=\"positive ui button\">Positive Button</button>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Negative</h4>\n    <p>A button can hint towards a negative consequence</p>\n    <button class=\"negative ui button\">Negative Button</button>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Fluid</h4>\n    <p>A button can take the width of its container</p>\n    <button class=\"fluid ui button\">Fits container</button>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Circular</h4>\n    <p>A button can be circular</p>\n    <button class=\"circular ui icon button\">\n      <i class=\"icon settings\"></i>\n    </button>\n  </div>\n  <div class=\"another example\">\n    <button class=\"ui circular facebook icon button\">\n      <i class=\"facebook icon\"></i>\n    </button>\n    <button class=\"ui circular twitter icon button\">\n      <i class=\"twitter icon\"></i>\n    </button>\n    <button class=\"ui circular linkedin icon button\">\n      <i class=\"linkedin icon\"></i>\n    </button>\n    <button class=\"ui circular google plus icon button\">\n      <i class=\"google plus icon\"></i>\n    </button>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Vertically Attached</h4>\n    <p>A button can be attached to the top or bottom of other content</p>\n    <div class=\"ui top attached button\" tabindex=\"0\">Top</div>\n    <div class=\"ui attached segment\">\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n    </div>\n    <div class=\"ui bottom attached button\" tabindex=\"0\">Bottom</div>\n  </div>\n\n  <div class=\"another layered example\">\n    <div class=\"ui two top attached buttons\">\n        <div class=\"ui button\">One</div>\n        <div class=\"ui button\">Two</div>\n    </div>\n    <div class=\"ui attached segment\">\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n    </div>\n    <div class=\"ui two bottom attached buttons\">\n        <div class=\"ui button\">One</div>\n        <div class=\"ui button\">Two</div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Horizontally Attached</h4>\n    <p>A button can be attached to the left or right of other content</p>\n    <button class=\"ui left attached button\">Left</button>\n    <button class=\"right attached ui button\">Right</button>\n  </div>\n\n\n  <h2 class=\"ui dividing header\">Group Variations</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Vertical Buttons</h4>\n    <p>Groups can be formatted to appear vertically</p>\n    <div class=\"ui vertical buttons\">\n      <button class=\"ui button\">Feed</button>\n      <button class=\"ui button\">Messages</button>\n      <button class=\"ui button\">Events</button>\n      <button class=\"ui button\">Photos</button>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Icon Buttons</h4>\n    <p>Groups can be formatted as icons</p>\n    <div class=\"ui icon buttons\">\n      <button class=\"ui button\">\n        <i class=\"play icon\"></i>\n      </button>\n      <button class=\"ui button\">\n        <i class=\"pause icon\"></i>\n      </button>\n      <button class=\"ui button\">\n        <i class=\"shuffle icon\"></i>\n      </button>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Labeled Icon Buttons</h4>\n    <p>Groups can be formatted as labeled icons</p>\n    <div class=\"ui vertical labeled icon buttons\">\n      <button class=\"ui button\">\n        <i class=\"pause icon\"></i>\n        Pause\n      </button>\n      <button class=\"ui button\">\n        <i class=\"play icon\"></i>\n        Play\n      </button>\n      <button class=\"ui button\">\n        <i class=\"shuffle icon\"></i>\n        Shuffle\n      </button>\n    </div>\n  </div>\n  <div class=\"example\" data-class=\"labeled icon, ui button, ui buttons, right labeled icon\">\n    <h4 class=\"ui header\">Mixed Group</h4>\n    <p>Groups can be formatted to use multiple button types together</p>\n    <div class=\"ui buttons\">\n      <button class=\"ui labeled icon button\">\n        <i class=\"left chevron icon\"></i>\n        Back\n      </button>\n      <button class=\"ui button\">\n        <i class=\"stop icon\"></i>\n        Stop\n      </button>\n      <button class=\"ui right labeled icon button\">\n        Forward\n        <i class=\"right chevron icon\"></i>\n      </button>\n    </div>\n  </div>\n\n\n  <div class=\"example\" data-class=\"one, two, three, four, five\">\n    <h4 class=\"ui header\">Equal Width</h4>\n    <p>Groups can have their widths divided evenly</p>\n    <div class=\"five ui buttons\">\n      <button class=\"ui button\">Overview</button>\n      <button class=\"ui button\">Specs</button>\n      <button class=\"ui button\">Warranty</button>\n      <button class=\"ui button\">Reviews</button>\n      <button class=\"ui button\">Support</button>\n    </div>\n    <div class=\"ui ignored divider\"></div>\n    <div class=\"three ui buttons\">\n      <button class=\"ui button\">Overview</button>\n      <button class=\"ui button\">Specs</button>\n      <button class=\"ui button\">Support</button>\n    </div>\n  </div>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Colored Buttons</h4>\n    <p>Groups can have a shared color</p>\n    <div class=\"blue ui buttons\">\n      <button class=\"ui button\">One</button>\n      <button class=\"ui button\">Two</button>\n      <button class=\"ui button\">Three</button>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Basic Buttons</h4>\n    <p>A button group can be less pronounced</p>\n    <div class=\"ui basic buttons\">\n      <div class=\"ui button\">One</div>\n      <div class=\"ui button\">Two</div>\n      <div class=\"ui button\">Three</div>\n    </div>\n    <div class=\"ui divider\"></div>\n    <div class=\"ui vertical basic buttons\">\n      <button class=\"ui button\">One</button>\n      <button class=\"ui button\">Two</button>\n      <button class=\"ui button\">Three</button>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui buttons\">\n      <button class=\"ui red basic button\">One</button>\n      <button class=\"ui blue basic button\">Two</button>\n      <button class=\"ui green basic button\">Three</button>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Group Sizes</h4>\n    <p>Groups can have a shared size</p>\n    <div class=\"large ui buttons\">\n      <button class=\"ui button\">One</button>\n      <button class=\"ui button\">Two</button>\n      <button class=\"ui button\">Three</button>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui small basic icon buttons\">\n      <button class=\"ui button\"><i class=\"file icon\"></i></button>\n      <button class=\"ui button\"><i class=\"save icon\"></i></button>\n      <button class=\"ui button\"><i class=\"upload icon\"></i></button>\n      <button class=\"ui button\"><i class=\"download icon\"></i></button>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui large buttons\">\n      <button class=\"ui button\">One</button>\n      <div class=\"or\"></div>\n      <button class=\"ui button\">Two</button>\n    </div>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/elements/container.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'basic minimal'\nelement     : 'container'\nelementType : 'element'\nstandalone  : true\n\ntitle       : 'Container'\ndescription : 'A container limits content to a maximum width'\ntype        : 'UI Element'\n\nthemes      : ['Default']\n---\n\n<script src=\"/javascript/container.js\"></script>\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/elements/container.less\" />\n\n<%- @partial('header', { tabs: {  introduction: 'Introduction', definition: 'Definition', examples: 'Examples' } }) %>\n\n<div class=\"ui active intro tab\" data-tab=\"introduction\">\n\n  <div class=\"ui main container\">\n\n    <h2 class=\"ui dividing header\">Introduction</h2>\n\n    <div class=\"introduction\">\n\n      <h3 class=\"ui header\">When To Use</h3>\n\n      <p>A container is an element designed to contain page elements to a reasonable maximum width based on the size of a user's screen. This is useful to couple with other UI elements like <a href=\"/collections/grid.html\">grid</a> or <a href=\"/collections/menu.html\">menu</a> to restrict their width to a reasonable size for display.</p>\n\n\n      <h3 class=\"ui header\">Container Sizes</h3>\n\n      <p>Containers are designed to responsively adjust their maximum width based on the size of the screen on which they are appearing.</p>\n\n      <table class=\"ui celled definition table\">\n        <thead>\n          <th class=\"collapsing\"></th>\n            <th>Mobile</th>\n            <th>Tablet</th>\n            <th class=\"single line\">Small Monitor</th>\n            <th class=\"single line\">Large Monitor</th>\n        </thead>\n        <tbody>\n          <tr>\n            <td>Width</td>\n            <td>100%</td>\n            <td>\n              723px\n              <i class=\"circle help link icon\" data-html=\"Maximum device width with two <code>1em</code> gutters and a <code>17px</code> scrollbar width. <div class='ui divider'></div> <code>768 - (14 * (1 * 2)) - 17</code>\">\n            </td>\n            <td>\n              933px\n              <i class=\"circle help link icon\" data-html=\"Maximum device width with two <code>1.5em</code> gutters and a <code>17px</code> scrollbar width. <div class='ui divider'></div> <code>992 - (14 * (1.5 * 2)) - 17</code>\">\n            </td>\n            <td>\n              1127px\n              <i class=\"circle help link icon\" data-html=\"Maximum device width with two <code>2em</code> gutters and a <code>17px</code> scrollbar width. <div class='ui divider'></div> <code>1200 - (14 * (2 * 2)) - 17</code>\">\n            </td>\n          </tr>\n          <tr>\n            <td class=\"single line\">Gutter Size</td>\n            <td>1em</td>\n            <td>Fluid</td>\n            <td>Fluid</td>\n            <td>Fluid</td>\n          </tr>\n          <tr>\n            <td>Variable</td>\n            <td><code>$largestMobileScreen</code></td>\n            <td><code>$mobileBreakpoint</code></td>\n            <td><code>$smallMonitorBreakpoint</code></td>\n            <td><code>$largeMonitorBreakpoint</code></td>\n          </tr>\n          <tr>\n            <td>Device Width</td>\n            <td>below 768px</td>\n            <td>768px - 991px</td>\n            <td>992px - 1200px</td>\n            <td>above 1200px</td>\n          </tr>\n        </tbody>\n      </table>\n      <h3 class=\"ui header\">Responsive Visibility</h3>\n      <p>Since variations in Semantic UI are only assigned in the scope of components, there are no \"free floating\" responsive class names, however some components include responsive variations to help ease responsive design. <a href=\"/collections/grid.html#device-visibility\">Grid</a> for example, includes responsive classes for hiding or showing <code>column</code>, <code>row</code> based on device type.</p>\n\n      <a href=\"/collections/grid.html#device-visibility\" class=\"ui secondary button\">See grid responsive variations <i class=\"right chevron icon\"></i></a>\n\n      <h3 class=\"ui header\">Determining Maximum Widths</h3>\n\n      <p>Containers appear at the same width at each device size. This size is calculated programmatically by determining the maximum device width available within a device breakpoint, given a desired minimum gutter size.</p>\n\n      <p>For example to determine tablet container size the following formula is used:</p>\n\n      <div class=\"code\" data-type=\"less\">\n      /* In site.variables */\n      @tabletBreakpoint : 768px;\n      @scrollbarWidth : 17px; /* This is a constant */\n\n      /* In container.variables */\n      @tabletMinimumGutter : (@emSize  * 1); /* require 1em gutter */\n      @tabletWidth : @tabletBreakpoint - (@tabletMinimumGutter * 2) - @scrollbarWidth;\n      </div>\n\n      <p>This is the same as <code>768px - (14px * 2) - 17px</code> or <code>723px</code></p>\n\n      <p>Adjusting site breakpoints in <code>site.variables</code> to use custom values will automatically adjust container widths.</p>\n\n\n    </div>\n  </div>\n</div>\n\n\n<div class=\"ui tab\" data-tab=\"definition\">\n\n  <div class=\"ui main container\">\n\n    <h2 class=\"ui dividing header\">Types</h2>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Container</h4>\n      <p>A standard container</p>\n    </div>\n\n    <div class=\"ui ignored code\">\n      <div class=\"ui container\">\n        <p></p>\n      </div>\n    </div>\n\n  </div>\n\n  <div class=\"ui container\">\n    <p>Lorem ipsum dolor sit amet, consectetuer adipiscing\n    elit. Aenean commodo ligula eget dolor. Aenean massa\n    <strong>strong</strong>. Cum sociis natoque penatibus\n    et magnis dis parturient montes, nascetur ridiculus\n    mus. Donec quam felis, ultricies nec, pellentesque\n    eu, pretium quis, sem. Nulla consequat massa quis\n    enim. Donec pede justo, fringilla vel, aliquet nec,\n    vulputate eget, arcu. In enim justo, rhoncus ut,\n    imperdiet a, venenatis vitae, justo. Nullam dictum\n    felis eu pede <a href=\"#\">link</a>\n    mollis pretium. Integer tincidunt. Cras dapibus.\n    Vivamus elementum semper nisi. Aenean vulputate\n    eleifend tellus. Aenean leo ligula, porttitor eu,\n    consequat vitae, eleifend ac, enim. Aliquam lorem ante,\n    dapibus in, viverra quis, feugiat a, tellus. Phasellus\n    viverra nulla ut metus varius laoreet. Quisque rutrum.\n    Aenean imperdiet. Etiam ultricies nisi vel augue.\n    Curabitur ullamcorper ultricies nisi.</p>\n  </div>\n\n  <div class=\"ui main container\">\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Text Container</h4>\n      <p>A container can reduce its maximum width to more naturally accomodate a single column of text</p>\n      <div class=\"ui info message\">\n        A text container is a simpler markup alternative to using a grid with a single column, and is designed to have a reasonable maximum width for displaying flowing text\n      </div>\n    </div>\n\n    <div class=\"ui ignored code\">\n      <div class=\"ui text container\">\n      </div>\n    </div>\n  </div>\n\n  <div class=\"ui text container\">\n    <h2 class=\"ui header\">Header</h2>\n    <p>Lorem ipsum dolor sit amet, consectetuer adipiscing\n    elit. Aenean commodo ligula eget dolor. Aenean massa\n    <strong>strong</strong>. Cum sociis natoque penatibus\n    et magnis dis parturient montes, nascetur ridiculus\n    mus. Donec quam felis, ultricies nec, pellentesque\n    eu, pretium quis, sem. Nulla consequat massa quis\n    enim. Donec pede justo, fringilla vel, aliquet nec,\n    vulputate eget, arcu. In enim justo, rhoncus ut,\n    imperdiet a, venenatis vitae, justo. Nullam dictum\n    felis eu pede <a href=\"#\">link</a>\n    mollis pretium. Integer tincidunt. Cras dapibus.\n    Vivamus elementum semper nisi. Aenean vulputate\n    eleifend tellus. Aenean leo ligula, porttitor eu,\n    consequat vitae, eleifend ac, enim. Aliquam lorem ante,\n    dapibus in, viverra quis, feugiat a, tellus. Phasellus\n    viverra nulla ut metus varius laoreet. Quisque rutrum.\n    Aenean imperdiet. Etiam ultricies nisi vel augue.\n    Curabitur ullamcorper ultricies nisi.</p>\n    <p>Lorem ipsum dolor sit amet, consectetuer adipiscing\n    elit. Aenean commodo ligula eget dolor. Aenean massa\n    <strong>strong</strong>. Cum sociis natoque penatibus\n    et magnis dis parturient montes, nascetur ridiculus\n    mus. Donec quam felis, ultricies nec, pellentesque\n    eu, pretium quis, sem. Nulla consequat massa quis\n    enim. Donec pede justo, fringilla vel, aliquet nec,\n    vulputate eget, arcu. In enim justo, rhoncus ut,\n    imperdiet a, venenatis vitae, justo. Nullam dictum\n    felis eu pede <a href=\"#\">link</a>\n    mollis pretium. Integer tincidunt. Cras dapibus.\n    Vivamus elementum semper nisi. Aenean vulputate\n    eleifend tellus. Aenean leo ligula, porttitor eu,\n    consequat vitae, eleifend ac, enim. Aliquam lorem ante,\n    dapibus in, viverra quis, feugiat a, tellus. Phasellus\n    viverra nulla ut metus varius laoreet. Quisque rutrum.\n    Aenean imperdiet. Etiam ultricies nisi vel augue.\n    Curabitur ullamcorper ultricies nisi.</p>\n  </div>\n\n  <div class=\"ui main container\">\n\n\n    <h2 class=\"ui dividing header\">Variations</h2>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Text Alignment</h4>\n      <p>A container can specify its text alignment</p>\n\n    </div>\n\n    <div class=\"ui ignored code\">\n      <div class=\"ui left aligned container\">\n        <p></p>\n      </div>\n      <div class=\"ui center aligned container\">\n        <p></p>\n      </div>\n      <div class=\"ui right aligned container\">\n        <p></p>\n      </div>\n      <div class=\"ui justified container\">\n        <p></p>\n      </div>\n    </div>\n\n    <div class=\"ui left aligned container\">\n      Left Aligned\n    </div>\n    <div class=\"ui center aligned container\">\n      Center Aligned\n    </div>\n    <div class=\"ui right aligned container\">\n      Right Aligned\n    </div>\n    <div class=\"ui justified container\">\n      <b>Justified</b>\n      <div class=\"ui divider\"></div>\n      <p>Lorem ipsum dolor sit amet, consectetuer adipiscing\n      elit. Aenean commodo ligula eget dolor. Aenean massa\n      <strong>strong</strong>. Cum sociis natoque penatibus\n      et magnis dis parturient montes, nascetur ridiculus\n      mus. Donec quam felis, ultricies nec, pellentesque\n      eu, pretium quis, sem. Nulla consequat massa quis\n      enim. Donec pede justo, fringilla vel, aliquet nec,\n      vulputate eget, arcu. In enim justo, rhoncus ut,\n      imperdiet a, venenatis vitae, justo. Nullam dictum\n      felis eu pede <a href=\"#\">link</a>\n      mollis pretium. Integer tincidunt. Cras dapibus.\n      Vivamus elementum semper nisi. Aenean vulputate\n      eleifend tellus. Aenean leo ligula, porttitor eu,\n      consequat vitae, eleifend ac, enim. Aliquam lorem ante,\n      dapibus in, viverra quis, feugiat a, tellus. Phasellus\n      viverra nulla ut metus varius laoreet. Quisque rutrum.\n      Aenean imperdiet. Etiam ultricies nisi vel augue.\n      Curabitur ullamcorper ultricies nisi.</p>\n      <p>Lorem ipsum dolor sit amet, consectetuer adipiscing\n      elit. Aenean commodo ligula eget dolor. Aenean massa\n      <strong>strong</strong>. Cum sociis natoque penatibus\n      et magnis dis parturient montes, nascetur ridiculus\n      mus. Donec quam felis, ultricies nec, pellentesque\n      eu, pretium quis, sem. Nulla consequat massa quis\n      enim. Donec pede justo, fringilla vel, aliquet nec,\n      vulputate eget, arcu. In enim justo, rhoncus ut,\n      imperdiet a, venenatis vitae, justo. Nullam dictum\n      felis eu pede <a href=\"#\">link</a>\n      mollis pretium. Integer tincidunt. Cras dapibus.\n      Vivamus elementum semper nisi. Aenean vulputate\n      eleifend tellus. Aenean leo ligula, porttitor eu,\n      consequat vitae, eleifend ac, enim. Aliquam lorem ante,\n      dapibus in, viverra quis, feugiat a, tellus. Phasellus\n      viverra nulla ut metus varius laoreet. Quisque rutrum.\n      Aenean imperdiet. Etiam ultricies nisi vel augue.\n      Curabitur ullamcorper ultricies nisi.</p>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Fluid</h4>\n      <p>A fluid container has no maximum width</p>\n      <div class=\"ui info message\">Fluid containers are useful for setting text alignment, or other variations on unstyled content</div>\n\n      <div class=\"ui ignored code\">\n        <div class=\"ui fluid container\">\n          Fluid\n        </div>\n      </div>\n    </div>\n\n  </div>\n\n  <div class=\"ui fluid container\">\n    <h2 class=\"ui header\">Dogs Roles with Humans</h2>\n    <p>Domestic dogs inherited complex behaviors, such as bite inhibition, from their wolf ancestors, which would have been pack hunters with complex body language. These sophisticated forms of social cognition and communication may account for their trainability, playfulness, and ability to fit into human households and social situations, and these attributes have given dogs a relationship with humans that has enabled them to become one of the most successful species on the planet today.</p>\n    <p>The dogs' value to early human hunter-gatherers led to them quickly becoming ubiquitous across world cultures. Dogs perform many roles for people, such as hunting, herding, pulling loads, protection, assisting police and military, companionship, and, more recently, aiding handicapped individuals. This impact on human society has given them the nickname \"man's best friend\" in the Western world. In some cultures, however, dogs are also a source of meat.</p>\n  </div>\n\n  <div class=\"ui main container\"></div>\n\n</div>\n\n<div class=\"ui tab\" data-tab=\"examples\">\n\n\n  <div class=\"ui main container\">\n\n    <h2 class=\"ui dividing header\">Examples</h2>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Containers Using Grids</h4>\n      <p>A container can be combined with a grid allowing you to use all of the layout and alignment available for <a href=\"/collections/grid.html#doubling\">grids</a> including responsive patterns.</p>\n    </div>\n\n    <div class=\"ui ignored code\">\n      <div class=\"ui four column doubling stackable grid container\">\n        <div class=\"column\">\n          <p></p>\n          <p></p>\n        </div>\n        <div class=\"column\">\n          <p></p>\n          <p></p>\n        </div>\n        <div class=\"column\">\n          <p></p>\n          <p></p>\n        </div>\n        <div class=\"column\">\n          <p></p>\n          <p></p>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"ui four column doubling stackable grid container\">\n    <div class=\"column\">\n      <img src=\"/images/wireframe/media-paragraph.png\" class=\"ui wireframe image\">\n      <div class=\"ui hidden divider\"></div>\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n      <div class=\"ui hidden divider\"></div>\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n    </div>\n    <div class=\"column\">\n      <img src=\"/images/wireframe/media-paragraph.png\" class=\"ui wireframe image\">\n      <div class=\"ui hidden divider\"></div>\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n      <div class=\"ui hidden divider\"></div>\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n    </div>\n    <div class=\"column\">\n      <img src=\"/images/wireframe/media-paragraph.png\" class=\"ui wireframe image\">\n      <div class=\"ui hidden divider\"></div>\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n      <div class=\"ui hidden divider\"></div>\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n    </div>\n    <div class=\"column\">\n      <img src=\"/images/wireframe/media-paragraph.png\" class=\"ui wireframe image\">\n      <div class=\"ui hidden divider\"></div>\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n      <div class=\"ui hidden divider\"></div>\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n    </div>\n  </div>\n\n  <div class=\"ui main container\">\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Centered Menu</h4>\n      <p>A container can be used inside of a menu to make sure menu items appear inline with page contents. Using responsive variations like <a href=\"/collections/menu.html#stackable\">stackable</a> menu can help make contents adjust to different device sizes.</p>\n    </div>\n\n    <div class=\"ui ignored code\">\n      <div class=\"ui attached stackable menu\">\n        <div class=\"ui container\">\n          <a class=\"item\">\n            <i class=\"home icon\"></i> Home\n          </a>\n          <a class=\"item\">\n            <i class=\"grid layout icon\"></i> Browse\n          </a>\n          <a class=\"item\">\n            <i class=\"mail icon\"></i> Messages\n          </a>\n          <div class=\"ui simple dropdown item\">\n            More\n            <i class=\"dropdown icon\"></i>\n            <div class=\"menu\">\n              <a class=\"item\"><i class=\"edit icon\"></i> Edit Profile</a>\n              <a class=\"item\"><i class=\"globe icon\"></i> Choose Language</a>\n              <a class=\"item\"><i class=\"settings icon\"></i> Account Settings</a>\n            </div>\n          </div>\n          <div class=\"right item\">\n            <div class=\"ui input\"><input type=\"text\" placeholder=\"Search...\"></div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"ui attached stackable menu\">\n    <div class=\"ui container\">\n      <a class=\"item\">\n        <i class=\"home icon\"></i> Home\n      </a>\n      <a class=\"item\">\n        <i class=\"grid layout icon\"></i> Browse\n      </a>\n      <a class=\"item\">\n        <i class=\"mail icon\"></i> Messages\n      </a>\n      <div class=\"ui simple dropdown item\">\n        More\n        <i class=\"dropdown icon\"></i>\n        <div class=\"menu\">\n          <a class=\"item\"><i class=\"edit icon\"></i> Edit Profile</a>\n          <a class=\"item\"><i class=\"globe icon\"></i> Choose Language</a>\n          <a class=\"item\"><i class=\"settings icon\"></i> Account Settings</a>\n        </div>\n      </div>\n      <div class=\"right item\">\n        <div class=\"ui input\"><input type=\"text\" placeholder=\"Search...\"></div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"ui main container\">\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Container Segment</h4>\n      <p>A container can be used with a <a href=\"/elements/segment.html\">segment</a></p>\n    </div>\n\n    <div class=\"ui ignored code\">\n      <div class=\"ui raised very padded text container segment\">\n        <h2 class=\"ui header\">Dogs Roles with Humans</h2>\n        <p></p>\n        <p></p>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"ui raised very padded text container segment\">\n    <h2 class=\"ui header\">Dogs Roles with Humans</h2>\n    <p>Domestic dogs inherited complex behaviors, such as bite inhibition, from their wolf ancestors, which would have been pack hunters with complex body language. These sophisticated forms of social cognition and communication may account for their trainability, playfulness, and ability to fit into human households and social situations, and these attributes have given dogs a relationship with humans that has enabled them to become one of the most successful species on the planet today.</p>\n    <p>The dogs' value to early human hunter-gatherers led to them quickly becoming ubiquitous across world cultures. Dogs perform many roles for people, such as hunting, herding, pulling loads, protection, assisting police and military, companionship, and, more recently, aiding handicapped individuals. This impact on human society has given them the nickname \"man's best friend\" in the Western world. In some cultures, however, dogs are also a source of meat.</p>\n  </div>\n\n\n  <div class=\"main container\"></div>\n</div>\n"
  },
  {
    "path": "server/documents/elements/divider.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'divider'\nstandalone  : true\n\nelement     : 'divider'\nelementType : 'element'\n\ntitle       : 'Divider'\ndescription : 'A divider visually segments content into groups'\ntype        : 'UI Element'\n\nthemes      : ['default']\n---\n\n<%- @partial('header') %>\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/elements/divider.less\" />\n\n<div class=\"main ui container\">\n\n  <h2 class=\"ui dividing header\">Types</h2>\n  <div class=\"example\">\n    <h4 class=\"ui header\">Divider</h4>\n    <p>A standard divider</p>\n    <div class=\"ignored ui warning message\">To add a divider between parts of a grid use a <a href=\"/collections/grid.html#divided\"><code>divided grid</code></a> variation.</div>\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    <div class=\"ui divider\"></div>\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Vertical Divider</h4>\n    <p>A divider can segment content vertically</p>\n    <div class=\"ui ignored message\">\n      Vertical dividers requires <code>position: relative</code> on the element that you would like to contain the divider\n    </div>\n    <div class=\"ui warning ignored message\">\n      Due to a change in W3C implementation of <a href=\"https://github.com/w3c/csswg-drafts/issues/401\" target=\"_blank\" rel=\"nofollow\">absolutely positioned elements in flex containers</a> vertical dividers now currently only support 50/50 splits automatically, and only if not positioned <b>as direct children of flex containers</b> (like grid).\n    </div>\n    <div class=\"ui segment\">\n      <div class=\"ui two column very relaxed grid\">\n        <div class=\"column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n        </div>\n        <div class=\"column\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n        </div>\n      </div>\n      <div class=\"ui vertical divider\">\n        and\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui info ignored message\">\n      A vertical divider will automatically swap to a horizontal divider at mobile resolutions when used inside a <a href=\"/collections/grid.html#stackable-grid\"><code>stackable grid</code></a>\n    </div>\n    <div class=\"ui placeholder segment\">\n      <div class=\"ui two column very relaxed stackable grid\">\n        <div class=\"column\">\n          <div class=\"ui form\">\n            <div class=\"field\">\n              <label>Username</label>\n              <div class=\"ui left icon input\">\n                <input type=\"text\" placeholder=\"Username\">\n                <i class=\"user icon\"></i>\n              </div>\n            </div>\n            <div class=\"field\">\n              <label>Password</label>\n              <div class=\"ui left icon input\">\n                <input type=\"password\">\n                <i class=\"lock icon\"></i>\n              </div>\n            </div>\n            <div class=\"ui blue submit button\">Login</div>\n          </div>\n        </div>\n        <div class=\"middle aligned column\">\n          <div class=\"ui big button\">\n            <i class=\"signup icon\"></i>\n            Sign Up\n          </div>\n        </div>\n      </div>\n      <div class=\"ui vertical divider\">\n        Or\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Horizontal Divider</h4>\n    <p>A divider can segment content horizontally</p>\n    <div class=\"ui ignored message\">Horizontal dividers can also be used in combination with <a href=\"/elements/header.html\">headers</a> and <a href=\"/elements/icon.html\">icons</a> to create different styles of dividers.\n    </div>\n    <div class=\"ui ignored info message\">Dividers will automatically vary the size of their dividing rules to match the length of your text</div>\n    <div class=\"ui center aligned basic segment\">\n      <div class=\"ui left icon action input\">\n        <i class=\"search icon\"></i>\n        <input type=\"text\" placeholder=\"Order #\">\n        <div class=\"ui blue submit button\">Search</div>\n      </div>\n      <div class=\"ui horizontal divider\">\n        Or\n      </div>\n      <div class=\"ui teal labeled icon button\">\n        Create New Order\n        <i class=\"add icon\"></i>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <h4 class=\"ui horizontal divider header\">\n      <i class=\"tag icon\"></i>\n      Description\n    </h4>\n    <p>Doggie treats are good for all times of the year. Proven to be eaten by 99.9% of all dogs worldwide.</p>\n    <h4 class=\"ui horizontal divider header\">\n      <i class=\"bar chart icon\"></i>\n      Specifications\n    </h4>\n    <table class=\"ui definition table\">\n      <tbody>\n        <tr>\n          <td class=\"two wide column\">Size</td>\n          <td>1\" x 2\"</td>\n        </tr>\n        <tr>\n          <td>Weight</td>\n          <td>6 ounces</td>\n        </tr>\n        <tr>\n          <td>Color</td>\n          <td>Yellowish</td>\n        </tr>\n        <tr>\n          <td>Odor</td>\n          <td>Not Much Usually</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n  <h2 class=\"ui dividing header\">Variations</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Inverted</h4>\n    <p>A divider can have its colors inverted</p>\n    <div class=\"ui inverted segment\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      <div class=\"ui inverted divider\"></div>\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      <h4 class=\"ui horizontal inverted divider\">\n        Horizontal\n      </h4>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Fitted</h4>\n    <p>A divider can be fitted, without any space above or below it.</p>\n    <div class=\"ui segment\">\n      Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.\n      <div class=\"ui fitted divider\"></div>\n      Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Hidden</h4>\n    <p>A hidden divider divides content without creating a dividing line</p>\n    <h3 class=\"ui header\">Section One</h3>\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    <div class=\"ui hidden divider\"></div>\n    <h3 class=\"ui header\">Section Two</h3>\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Section</h4>\n    <p>A divider can provide greater margins to divide sections of content</p>\n    <h3 class=\"ui header\">Section One</h3>\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    <div class=\"ui section divider\"></div>\n    <h3 class=\"ui header\">Section Two</h3>\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Clearing</h4>\n    <p>A divider can clear the contents above it</p>\n    <div class=\"ui segment\">\n      <h2 class=\"ui right floated header\">Floated Content</h2>\n      <div class=\"ui clearing divider\"></div>\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    </div>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/elements/flag.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'flag-page'\nelement     : 'flag'\nelementType : 'element'\nstandalone  : true\n\ntitle       : 'Flag'\ndescription : 'A flag is used to represent a political state'\ntype        : 'UI Element'\n\n---\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/elements/flag.less\" />\n\n<%- @partial('header') %>\n\n<div class=\"main ui container\">\n\n  <div class=\"ui active tab\" data-tab=\"flags\">\n\n    <h2 class=\"ui header\">Definition</h2>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Flag</h4>\n      <p>A flag can use the two digit country code, the full name, or a common alias</p>\n      <div class=\"code\" data-type=\"html\" data-preview=\"true\">\n        <i class=\"ae flag\"></i>\n        <i class=\"france flag\"></i>\n        <i class=\"myanmar flag\"></i>\n      </div>\n    </div>\n\n    <h2 class=\"ui header\">Types</h2>\n    <div class=\"ui info message\">\n      <p>Many flag sets use SVG to render flags at multiple sizes. However svg flags usually appear blurry or render improperly at smaller sizes. Semantic's default theme uses an image sprite solution which provides crisper icons, but without the ability to resize</p>\n    </div>\n    <table class=\"ui selectable sortable compact celled striped definition table\">\n      <thead>\n        <th class=\"one wide\">Flag</th>\n        <th>Name</th>\n        <th>ISO 3166-2 Code <a href=\"http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\">?</a></th>\n        <th>Additional Aliases</th>\n      </thead>\n      <tbody>\n      <tr>\n        <td><i class=\"andorra flag\"></i></td>\n        <td>Andorra</td>\n        <td>ad</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"uae flag\"></i></td>\n        <td>U.A.E</td>\n        <td>ae</td>\n        <td>United Arab Emirates</td>\n      </tr>\n      <tr>\n        <td><i class=\"afghanistan flag\"></i></td>\n        <td>Afghanistan</td>\n        <td>af</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"antigua flag\"></i></td>\n        <td>Antigua</td>\n        <td>ag</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"anguilla flag\"></i></td>\n        <td>Anguilla</td>\n        <td>ai</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"albania flag\"></i></td>\n        <td>Albania</td>\n        <td>al</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"armenia flag\"></i></td>\n        <td>Armenia</td>\n        <td>am</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"netherlands antilles flag\"></i></td>\n        <td>Netherlands Antilles</td>\n        <td>an</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"angola flag\"></i></td>\n        <td>Angola</td>\n        <td>ao</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"argentina flag\"></i></td>\n        <td>Argentina</td>\n        <td>ar</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"american samoa flag\"></i></td>\n        <td>American Samoa</td>\n        <td>as</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"austria flag\"></i></td>\n        <td>Austria</td>\n        <td>at</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"australia flag\"></i></td>\n        <td>Australia</td>\n        <td>au</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"aruba flag\"></i></td>\n        <td>Aruba</td>\n        <td>aw</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"aland islands flag\"></i></td>\n        <td>Aland Islands</td>\n        <td>ax</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"azerbaijan flag\"></i></td>\n        <td>Azerbaijan</td>\n        <td>az</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"bosnia flag\"></i></td>\n        <td>Bosnia</td>\n        <td>ba</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"barbados flag\"></i></td>\n        <td>Barbados</td>\n        <td>bb</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"bangladesh flag\"></i></td>\n        <td>Bangladesh</td>\n        <td>bd</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"belgium flag\"></i></td>\n        <td>Belgium</td>\n        <td>be</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"burkina faso flag\"></i></td>\n        <td>Burkina Faso</td>\n        <td>bf</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"bulgaria flag\"></i></td>\n        <td>Bulgaria</td>\n        <td>bg</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"bahrain flag\"></i></td>\n        <td>Bahrain</td>\n        <td>bh</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"burundi flag\"></i></td>\n        <td>Burundi</td>\n        <td>bi</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"benin flag\"></i></td>\n        <td>Benin</td>\n        <td>bj</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"bermuda flag\"></i></td>\n        <td>Bermuda</td>\n        <td>bm</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"brunei flag\"></i></td>\n        <td>Brunei</td>\n        <td>bn</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"bolivia flag\"></i></td>\n        <td>Bolivia</td>\n        <td>bo</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"brazil flag\"></i></td>\n        <td>Brazil</td>\n        <td>br</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"bahamas flag\"></i></td>\n        <td>Bahamas</td>\n        <td>bs</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"bhutan flag\"></i></td>\n        <td>Bhutan</td>\n        <td>bt</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"bouvet island flag\"></i></td>\n        <td>Bouvet Island</td>\n        <td>bv</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"botswana flag\"></i></td>\n        <td>Botswana</td>\n        <td>bw</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"belarus flag\"></i></td>\n        <td>Belarus</td>\n        <td>by</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"belize flag\"></i></td>\n        <td>Belize</td>\n        <td>bz</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"canada flag\"></i></td>\n        <td>Canada</td>\n        <td>ca</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"cocos islands flag\"></i></td>\n        <td>Cocos Islands</td>\n        <td>cc</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"congo flag\"></i></td>\n        <td>Congo</td>\n        <td>cd</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"central african republic flag\"></i></td>\n        <td>Central African Republic</td>\n        <td>cf</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"congo brazzaville flag\"></i></td>\n        <td>Congo Brazzaville</td>\n        <td>cg</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"switzerland flag\"></i></td>\n        <td>Switzerland</td>\n        <td>ch</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"cote divoire flag\"></i></td>\n        <td>Cote Divoire</td>\n        <td>ci</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"cook islands flag\"></i></td>\n        <td>Cook Islands</td>\n        <td>ck</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"chile flag\"></i></td>\n        <td>Chile</td>\n        <td>cl</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"cameroon flag\"></i></td>\n        <td>Cameroon</td>\n        <td>cm</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"china flag\"></i></td>\n        <td>China</td>\n        <td>cn</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"colombia flag\"></i></td>\n        <td>Colombia</td>\n        <td>co</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"costa rica flag\"></i></td>\n        <td>Costa Rica</td>\n        <td>cr</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"serbia flag\"></i></td>\n        <td>Serbia</td>\n        <td>cs</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"cuba flag\"></i></td>\n        <td>Cuba</td>\n        <td>cu</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"cape verde flag\"></i></td>\n        <td>Cape Verde</td>\n        <td>cv</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"christmas island flag\"></i></td>\n        <td>Christmas Island</td>\n        <td>cx</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"cyprus flag\"></i></td>\n        <td>Cyprus</td>\n        <td>cy</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"czech republic flag\"></i></td>\n        <td>Czech Republic</td>\n        <td>cz</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"germany flag\"></i></td>\n        <td>Germany</td>\n        <td>de</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"djibouti flag\"></i></td>\n        <td>Djibouti</td>\n        <td>dj</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"denmark flag\"></i></td>\n        <td>Denmark</td>\n        <td>dk</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"dominica flag\"></i></td>\n        <td>Dominica</td>\n        <td>dm</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"dominican republic flag\"></i></td>\n        <td>Dominican Republic</td>\n        <td>do</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"algeria flag\"></i></td>\n        <td>Algeria</td>\n        <td>dz</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"ecuador flag\"></i></td>\n        <td>Ecuador</td>\n        <td>ec</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"estonia flag\"></i></td>\n        <td>Estonia</td>\n        <td>ee</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"egypt flag\"></i></td>\n        <td>Egypt</td>\n        <td>eg</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"western sahara flag\"></i></td>\n        <td>Western Sahara</td>\n        <td>eh</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"eritrea flag\"></i></td>\n        <td>Eritrea</td>\n        <td>er</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"spain flag\"></i></td>\n        <td>Spain</td>\n        <td>es</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"ethiopia flag\"></i></td>\n        <td>Ethiopia</td>\n        <td>et</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"european union flag\"></i></td>\n        <td>European Union</td>\n        <td>eu</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"finland flag\"></i></td>\n        <td>Finland</td>\n        <td>fi</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"fiji flag\"></i></td>\n        <td>Fiji</td>\n        <td>fj</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"falkland islands flag\"></i></td>\n        <td>Falkland Islands</td>\n        <td>fk</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"micronesia flag\"></i></td>\n        <td>Micronesia</td>\n        <td>fm</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"faroe islands flag\"></i></td>\n        <td>Faroe Islands</td>\n        <td>fo</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"france flag\"></i></td>\n        <td>France</td>\n        <td>fr</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"gabon flag\"></i></td>\n        <td>Gabon</td>\n        <td>ga</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"united kingdom flag\"></i></td>\n        <td>United Kingdom</td>\n        <td>gb uk</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"england flag\"></i></td>\n        <td>England</td>\n        <td>gb eng</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"scotland flag\"></i></td>\n        <td>Scotland</td>\n        <td>gb sct</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"wales flag\"></i></td>\n        <td>Wales</td>\n        <td>gb wls</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"grenada flag\"></i></td>\n        <td>Grenada</td>\n        <td>gd</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"georgia flag\"></i></td>\n        <td>Georgia</td>\n        <td>ge</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"french guiana flag\"></i></td>\n        <td>French Guiana</td>\n        <td>gf</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"ghana flag\"></i></td>\n        <td>Ghana</td>\n        <td>gh</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"gibraltar flag\"></i></td>\n        <td>Gibraltar</td>\n        <td>gi</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"greenland flag\"></i></td>\n        <td>Greenland</td>\n        <td>gl</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"gambia flag\"></i></td>\n        <td>Gambia</td>\n        <td>gm</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"guinea flag\"></i></td>\n        <td>Guinea</td>\n        <td>gn</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"guadeloupe flag\"></i></td>\n        <td>Guadeloupe</td>\n        <td>gp</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"equatorial guinea flag\"></i></td>\n        <td>Equatorial Guinea</td>\n        <td>gq</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"greece flag\"></i></td>\n        <td>Greece</td>\n        <td>gr</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"sandwich islands flag\"></i></td>\n        <td>Sandwich Islands</td>\n        <td>gs</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"guatemala flag\"></i></td>\n        <td>Guatemala</td>\n        <td>gt</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"guam flag\"></i></td>\n        <td>Guam</td>\n        <td>gu</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"guinea-bissau flag\"></i></td>\n        <td>Guinea-bissau</td>\n        <td>gw</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"guyana flag\"></i></td>\n        <td>Guyana</td>\n        <td>gy</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"hong kong flag\"></i></td>\n        <td>Hong Kong</td>\n        <td>hk</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"heard island flag\"></i></td>\n        <td>Heard Island</td>\n        <td>hm</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"honduras flag\"></i></td>\n        <td>Honduras</td>\n        <td>hn</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"croatia flag\"></i></td>\n        <td>Croatia</td>\n        <td>hr</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"haiti flag\"></i></td>\n        <td>Haiti</td>\n        <td>ht</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"hungary flag\"></i></td>\n        <td>Hungary</td>\n        <td>hu</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"indonesia flag\"></i></td>\n        <td>Indonesia</td>\n        <td>id</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"ireland flag\"></i></td>\n        <td>Ireland</td>\n        <td>ie</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"israel flag\"></i></td>\n        <td>Israel</td>\n        <td>il</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"india flag\"></i></td>\n        <td>India</td>\n        <td>in</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"indian ocean territory flag\"></i></td>\n        <td>Indian Ocean Territory</td>\n        <td>io</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"iraq flag\"></i></td>\n        <td>Iraq</td>\n        <td>iq</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"iran flag\"></i></td>\n        <td>Iran</td>\n        <td>ir</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"iceland flag\"></i></td>\n        <td>Iceland</td>\n        <td>is</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"italy flag\"></i></td>\n        <td>Italy</td>\n        <td>it</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"jamaica flag\"></i></td>\n        <td>Jamaica</td>\n        <td>jm</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"jordan flag\"></i></td>\n        <td>Jordan</td>\n        <td>jo</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"japan flag\"></i></td>\n        <td>Japan</td>\n        <td>jp</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"kenya flag\"></i></td>\n        <td>Kenya</td>\n        <td>ke</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"kyrgyzstan flag\"></i></td>\n        <td>Kyrgyzstan</td>\n        <td>kg</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"cambodia flag\"></i></td>\n        <td>Cambodia</td>\n        <td>kh</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"kiribati flag\"></i></td>\n        <td>Kiribati</td>\n        <td>ki</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"comoros flag\"></i></td>\n        <td>Comoros</td>\n        <td>km</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"saint kitts and nevis flag\"></i></td>\n        <td>Saint Kitts And Nevis</td>\n        <td>kn</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"north korea flag\"></i></td>\n        <td>North Korea</td>\n        <td>kp</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"south korea flag\"></i></td>\n        <td>South Korea</td>\n        <td>kr</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"kuwait flag\"></i></td>\n        <td>Kuwait</td>\n        <td>kw</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"cayman islands flag\"></i></td>\n        <td>Cayman Islands</td>\n        <td>ky</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"kazakhstan flag\"></i></td>\n        <td>Kazakhstan</td>\n        <td>kz</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"laos flag\"></i></td>\n        <td>Laos</td>\n        <td>la</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"lebanon flag\"></i></td>\n        <td>Lebanon</td>\n        <td>lb</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"saint lucia flag\"></i></td>\n        <td>Saint Lucia</td>\n        <td>lc</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"liechtenstein flag\"></i></td>\n        <td>Liechtenstein</td>\n        <td>li</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"sri lanka flag\"></i></td>\n        <td>Sri Lanka</td>\n        <td>lk</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"liberia flag\"></i></td>\n        <td>Liberia</td>\n        <td>lr</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"lesotho flag\"></i></td>\n        <td>Lesotho</td>\n        <td>ls</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"lithuania flag\"></i></td>\n        <td>Lithuania</td>\n        <td>lt</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"luxembourg flag\"></i></td>\n        <td>Luxembourg</td>\n        <td>lu</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"latvia flag\"></i></td>\n        <td>Latvia</td>\n        <td>lv</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"libya flag\"></i></td>\n        <td>Libya</td>\n        <td>ly</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"morocco flag\"></i></td>\n        <td>Morocco</td>\n        <td>ma</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"monaco flag\"></i></td>\n        <td>Monaco</td>\n        <td>mc</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"moldova flag\"></i></td>\n        <td>Moldova</td>\n        <td>md</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"montenegro flag\"></i></td>\n        <td>Montenegro</td>\n        <td>me</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"madagascar flag\"></i></td>\n        <td>Madagascar</td>\n        <td>mg</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"marshall islands flag\"></i></td>\n        <td>Marshall Islands</td>\n        <td>mh</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"macedonia flag\"></i></td>\n        <td>Macedonia</td>\n        <td>mk</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"mali flag\"></i></td>\n        <td>Mali</td>\n        <td>ml</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"burma flag\"></i></td>\n        <td>Burma</td>\n        <td>mm</td>\n        <td>Myanmar</td>\n      </tr>\n      <tr>\n        <td><i class=\"mongolia flag\"></i></td>\n        <td>Mongolia</td>\n        <td>mn</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"macau flag\"></i></td>\n        <td>Macau</td>\n        <td>mo</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"northern mariana islands flag\"></i></td>\n        <td>Northern Mariana Islands</td>\n        <td>mp</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"martinique flag\"></i></td>\n        <td>Martinique</td>\n        <td>mq</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"mauritania flag\"></i></td>\n        <td>Mauritania</td>\n        <td>mr</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"montserrat flag\"></i></td>\n        <td>Montserrat</td>\n        <td>ms</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"malta flag\"></i></td>\n        <td>Malta</td>\n        <td>mt</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"mauritius flag\"></i></td>\n        <td>Mauritius</td>\n        <td>mu</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"maldives flag\"></i></td>\n        <td>Maldives</td>\n        <td>mv</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"malawi flag\"></i></td>\n        <td>Malawi</td>\n        <td>mw</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"mexico flag\"></i></td>\n        <td>Mexico</td>\n        <td>mx</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"malaysia flag\"></i></td>\n        <td>Malaysia</td>\n        <td>my</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"mozambique flag\"></i></td>\n        <td>Mozambique</td>\n        <td>mz</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"namibia flag\"></i></td>\n        <td>Namibia</td>\n        <td>na</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"new caledonia flag\"></i></td>\n        <td>New Caledonia</td>\n        <td>nc</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"niger flag\"></i></td>\n        <td>Niger</td>\n        <td>ne</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"norfolk island flag\"></i></td>\n        <td>Norfolk Island</td>\n        <td>nf</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"nigeria flag\"></i></td>\n        <td>Nigeria</td>\n        <td>ng</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"nicaragua flag\"></i></td>\n        <td>Nicaragua</td>\n        <td>ni</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"netherlands flag\"></i></td>\n        <td>Netherlands</td>\n        <td>nl</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"norway flag\"></i></td>\n        <td>Norway</td>\n        <td>no</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"nepal flag\"></i></td>\n        <td>Nepal</td>\n        <td>np</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"nauru flag\"></i></td>\n        <td>Nauru</td>\n        <td>nr</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"niue flag\"></i></td>\n        <td>Niue</td>\n        <td>nu</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"new zealand flag\"></i></td>\n        <td>New Zealand</td>\n        <td>nz</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"oman flag\"></i></td>\n        <td>Oman</td>\n        <td>om</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"panama flag\"></i></td>\n        <td>Panama</td>\n        <td>pa</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"peru flag\"></i></td>\n        <td>Peru</td>\n        <td>pe</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"french polynesia flag\"></i></td>\n        <td>French Polynesia</td>\n        <td>pf</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"new guinea flag\"></i></td>\n        <td>New Guinea</td>\n        <td>pg</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"philippines flag\"></i></td>\n        <td>Philippines</td>\n        <td>ph</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"pakistan flag\"></i></td>\n        <td>Pakistan</td>\n        <td>pk</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"poland flag\"></i></td>\n        <td>Poland</td>\n        <td>pl</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"saint pierre flag\"></i></td>\n        <td>Saint Pierre</td>\n        <td>pm</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"pitcairn islands flag\"></i></td>\n        <td>Pitcairn Islands</td>\n        <td>pn</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"puerto rico flag\"></i></td>\n        <td>Puerto Rico</td>\n        <td>pr</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"palestine flag\"></i></td>\n        <td>Palestine</td>\n        <td>ps</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"portugal flag\"></i></td>\n        <td>Portugal</td>\n        <td>pt</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"palau flag\"></i></td>\n        <td>Palau</td>\n        <td>pw</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"paraguay flag\"></i></td>\n        <td>Paraguay</td>\n        <td>py</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"qatar flag\"></i></td>\n        <td>Qatar</td>\n        <td>qa</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"reunion flag\"></i></td>\n        <td>Reunion</td>\n        <td>re</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"romania flag\"></i></td>\n        <td>Romania</td>\n        <td>ro</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"serbia flag\"></i></td>\n        <td>Serbia</td>\n        <td>rs</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"russia flag\"></i></td>\n        <td>Russia</td>\n        <td>ru</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"rwanda flag\"></i></td>\n        <td>Rwanda</td>\n        <td>rw</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"saudi arabia flag\"></i></td>\n        <td>Saudi Arabia</td>\n        <td>sa</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"solomon islands flag\"></i></td>\n        <td>Solomon Islands</td>\n        <td>sb</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"seychelles flag\"></i></td>\n        <td>Seychelles</td>\n        <td>sc</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"sudan flag\"></i></td>\n        <td>Sudan</td>\n        <td>sd</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"sweden flag\"></i></td>\n        <td>Sweden</td>\n        <td>se</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"singapore flag\"></i></td>\n        <td>Singapore</td>\n        <td>sg</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"saint helena flag\"></i></td>\n        <td>Saint Helena</td>\n        <td>sh</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"slovenia flag\"></i></td>\n        <td>Slovenia</td>\n        <td>si</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"jan mayen flag\"></i></td>\n        <td>Jan Mayen</td>\n        <td>sj</td>\n        <td>Svalbard</td>\n      </tr>\n      <tr>\n        <td><i class=\"slovakia flag\"></i></td>\n        <td>Slovakia</td>\n        <td>sk</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"sierra leone flag\"></i></td>\n        <td>Sierra Leone</td>\n        <td>sl</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"san marino flag\"></i></td>\n        <td>San Marino</td>\n        <td>sm</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"senegal flag\"></i></td>\n        <td>Senegal</td>\n        <td>sn</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"somalia flag\"></i></td>\n        <td>Somalia</td>\n        <td>so</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"suriname flag\"></i></td>\n        <td>Suriname</td>\n        <td>sr</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"sao tome flag\"></i></td>\n        <td>Sao Tome</td>\n        <td>st</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"el salvador flag\"></i></td>\n        <td>El Salvador</td>\n        <td>sv</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"syria flag\"></i></td>\n        <td>Syria</td>\n        <td>sy</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"swaziland flag\"></i></td>\n        <td>Swaziland</td>\n        <td>sz</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"caicos islands flag\"></i></td>\n        <td>Caicos Islands</td>\n        <td>tc</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"chad flag\"></i></td>\n        <td>Chad</td>\n        <td>td</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"french territories flag\"></i></td>\n        <td>French Territories</td>\n        <td>tf</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"togo flag\"></i></td>\n        <td>Togo</td>\n        <td>tg</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"thailand flag\"></i></td>\n        <td>Thailand</td>\n        <td>th</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"tajikistan flag\"></i></td>\n        <td>Tajikistan</td>\n        <td>tj</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"tokelau flag\"></i></td>\n        <td>Tokelau</td>\n        <td>tk</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"timorleste flag\"></i></td>\n        <td>Timorleste</td>\n        <td>tl</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"turkmenistan flag\"></i></td>\n        <td>Turkmenistan</td>\n        <td>tm</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"tunisia flag\"></i></td>\n        <td>Tunisia</td>\n        <td>tn</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"tonga flag\"></i></td>\n        <td>Tonga</td>\n        <td>to</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"turkey flag\"></i></td>\n        <td>Turkey</td>\n        <td>tr</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"trinidad flag\"></i></td>\n        <td>Trinidad</td>\n        <td>tt</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"tuvalu flag\"></i></td>\n        <td>Tuvalu</td>\n        <td>tv</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"taiwan flag\"></i></td>\n        <td>Taiwan</td>\n        <td>tw</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"tanzania flag\"></i></td>\n        <td>Tanzania</td>\n        <td>tz</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"ukraine flag\"></i></td>\n        <td>Ukraine</td>\n        <td>ua</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"uganda flag\"></i></td>\n        <td>Uganda</td>\n        <td>ug</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"us minor islands flag\"></i></td>\n        <td>Us Minor Islands</td>\n        <td>um</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"united states flag\"></i></td>\n        <td>United States</td>\n        <td>us</td>\n        <td>America</td>\n      </tr>\n      <tr>\n        <td><i class=\"uruguay flag\"></i></td>\n        <td>Uruguay</td>\n        <td>uy</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"uzbekistan flag\"></i></td>\n        <td>Uzbekistan</td>\n        <td>uz</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"vatican city flag\"></i></td>\n        <td>Vatican City</td>\n        <td>va</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"saint vincent flag\"></i></td>\n        <td>Saint Vincent</td>\n        <td>vc</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"venezuela flag\"></i></td>\n        <td>Venezuela</td>\n        <td>ve</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"british virgin islands flag\"></i></td>\n        <td>British Virgin Islands</td>\n        <td>vg</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"us virgin islands flag\"></i></td>\n        <td>Us Virgin Islands</td>\n        <td>vi</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"vietnam flag\"></i></td>\n        <td>Vietnam</td>\n        <td>vn</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"vanuatu flag\"></i></td>\n        <td>Vanuatu</td>\n        <td>vu</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"wallis and futuna flag\"></i></td>\n        <td>Wallis And Futuna</td>\n        <td>wf</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"samoa flag\"></i></td>\n        <td>Samoa</td>\n        <td>ws</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"yemen flag\"></i></td>\n        <td>Yemen</td>\n        <td>ye</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"mayotte flag\"></i></td>\n        <td>Mayotte</td>\n        <td>yt</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"south africa flag\"></i></td>\n        <td>South Africa</td>\n        <td>za</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"zambia flag\"></i></td>\n        <td>Zambia</td>\n        <td>zm</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      <tr>\n        <td><i class=\"zimbabwe flag\"></i></td>\n        <td>Zimbabwe</td>\n        <td>zw</td>\n        <td class=\"disabled\"></td>\n      </tr>\n      </tbody>\n    </table>\n\n  </div>\n</div>\n"
  },
  {
    "path": "server/documents/elements/header.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'header'\nstandalone  : true\n\nelement     : 'header'\nelementType : 'element'\n\ntitle       : 'Header'\ndescription : 'A header provides a short summary of content'\ntype        : 'UI Element'\n\nthemes      : ['Default', 'Classic', 'Bookish', 'Chubby', 'Material']\n---\n\n<%- @partial('header') %>\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/elements/header.less\" />\n<script src=\"/javascript/header.js\"></script>\n\n<div class=\"main ui container\">\n\n  <h2 class=\"ui dividing header\">Types</h2>\n\n  <div class=\"example\" data-tag=\"h1,h2,h3,h4,h5\">\n    <h4 class=\"ui header\">Page Headers</h4>\n    <p class=\"header\">Headers may be oriented to give the hierarchy of a section in the context of the page</p>\n    <div class=\"ignored info ui message\">Page headings are sized using <a href=\"https://j.eremy.net/confused-about-rem-and-em/\" target=\"_blank\"><code>rem</code></a> and are not affected by surrounding content size.</div>\n    <h1 class=\"ui header\">First header</h1>\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    <h2 class=\"ui header\">Second header</h2>\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    <h3 class=\"ui header\">Third header</h3>\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    <h4 class=\"ui header\">Fourth header</h4>\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    <h5 class=\"ui header\">Fifth header</h5>\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n  </div>\n\n  <div class=\"example\" data-class=\"size\">\n    <h4 class=\"ui header\">Content Headers</h4>\n    <p>Headers may be oriented to give the importance of a section in the context of the content that surrounds it</p>\n    <div class=\"ignored info ui message\">Content headings are sized with <a href=\"https://j.eremy.net/confused-about-rem-and-em/\" target=\"_blank\"><code>em</code></a> and are based on the font-size of their container.</div>\n    <div class=\"ui ignored icon font buttons\">\n      <a class=\"increase ui button\"> <i class=\"plus icon\"></i></a>\n      <a class=\"decrease ui button\"> <i class=\"minus icon\"></i></a>\n    </div>\n    <div class=\"ui sizer vertical segment\">\n      <div class=\"ui huge header\">Huge Header</div>\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      <div class=\"ui large header\">Large Header</div>\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      <div class=\"ui medium header\">Medium Header</div>\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      <div class=\"ui small header\">Small Header</div>\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      <div class=\"ui tiny header\">Tiny Header</div>\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Icon Headers</h4>\n    <p>A header can be formatted to emphasize an icon</p>\n    <h2 class=\"ui icon header\">\n      <i class=\"settings icon\"></i>\n      <div class=\"content\">\n        Account Settings\n        <div class=\"sub header\">Manage your account settings and set e-mail preferences.</div>\n      </div>\n    </h2>\n  </div>\n\n  <div class=\"another example\">\n    <h2 class=\"ui center aligned icon header\">\n      <i class=\"circular users icon\"></i>\n      Friends\n    </h2>\n    <img class=\"ui centered wireframe image\" src=\"/images/wireframe/centered-paragraph.png\">\n  </div>\n\n  <div class=\"example\" data-class=\"sub\">\n    <h4 class=\"ui header\">Sub Headers</h4>\n    <p>Headers may be formatted to label smaller or de-emphasized content.</p>\n    <h2 class=\"ui sub header\">\n      Price\n    </h2>\n    <span>$10.99</span>\n  </div>\n\n  <div class=\"another example\">\n    <div class=\"ui horizontal list\">\n      <div class=\"item\">\n        <img class=\"ui mini circular image\" src=\"/images/avatar2/small/molly.png\">\n        <div class=\"content\">\n          <div class=\"ui sub header\">Molly</div>\n          Coordinator\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui mini circular image\" src=\"/images/avatar2/small/elyse.png\">\n        <div class=\"content\">\n          <div class=\"ui sub header\">Elyse</div>\n          Developer\n        </div>\n      </div>\n      <div class=\"item\">\n        <img src=\"/images/avatar2/small/eve.png\" class=\"ui mini circular image\">\n        <div class=\"content\">\n          <div class=\"ui sub header\">Eve</div>\n          Project Manager\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Content</h2>\n\n\n  <div class=\"example\" data-use-content=\"true\" data-class=\"image\" data-tag=\"img\">\n    <h4 class=\"ui header\">Image</h4>\n    <p>A header may contain an <a href=\"/elements/image.html\">image</a></p>\n    <h2 class=\"ui header\">\n      <img class=\"ui image\" src=\"/images/icons/school.png\">\n      <div class=\"content\">\n        Learn More\n      </div>\n    </h2>\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n  </div>\n  <div class=\"another example\">\n    <h2 class=\"ui header\">\n      <img src=\"/images/avatar2/large/patrick.png\" class=\"ui circular image\">\n      Patrick\n    </h2>\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n  </div>\n  <div class=\"another example\">\n    <h2 class=\"ui header\">\n      <img src=\"/images/icons/plugin.png\">\n      <div class=\"content\">\n        Plug-ins\n        <div class=\"sub header\">Check out our plug-in marketplace</div>\n      </div>\n    </h2>\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n  </div>\n\n\n  <div class=\"example\" data-use-content=\"true\" data-class=\"icon\">\n    <h4 class=\"ui header\">Icon</h4>\n    <p>A header may contain an <a href=\"/elements/icon.html\">icon</a></p>\n    <h2 class=\"ui header\">\n      <i class=\"plug icon\"></i>\n      <div class=\"content\">\n        Uptime Guarantee\n      </div>\n    </h2>\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n  </div>\n  <div class=\"another example\">\n    <h2 class=\"ui header\">\n      <i class=\"settings icon\"></i>\n      <div class=\"content\">\n        Account Settings\n        <div class=\"sub header\">Manage your preferences</div>\n      </div>\n    </h2>\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n  </div>\n\n  <div class=\"example\" data-use-content=\"true\" data-class=\"sub\">\n    <h4 class=\"ui header\">Subheader</h4>\n    <p>Headers may contain subheaders</p>\n    <h2 class=\"ui header\">\n      Account Settings\n      <div class=\"sub header\">Manage your account settings and set e-mail preferences.</div>\n    </h2>\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n  </div>\n  <div class=\"another example\">\n    <h1 class=\"ui header\">\n      H1\n      <div class=\"sub header\">Sub Header</div>\n    </h1>\n    <h2 class=\"ui header\">\n      H2\n      <div class=\"sub header\">Sub Header</div>\n    </h2>\n    <h3 class=\"ui header\">\n      H3\n      <div class=\"sub header\">Sub Header</div>\n    </h3>\n    <h4 class=\"ui header\">\n      H4\n      <div class=\"sub header\">Sub Header</div>\n    </h4>\n    <h5 class=\"ui header\">\n      H5\n      <div class=\"sub header\">Sub Header</div>\n    </h5>\n  </div>\n\n  <h2 class=\"ui dividing header\">States</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Disabled</h4>\n    <p>A header can show that it is inactive</p>\n    <div class=\"ui disabled header\">\n      Disabled Header\n    </div>\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n  </div>\n\n  <h2 class=\"ui dividing header\">Variations</h2>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Dividing</h4>\n    <p>A header can be formatted to divide itself from the content below it</p>\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    <h3 class=\"ui dividing header\">\n      Dividing Header\n    </h3>\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n  </div>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Block</h4>\n    <p>A header can be formatted to appear inside a content block</p>\n    <h3 class=\"ui block header\">\n      Block Header\n    </h3>\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/media-paragraph.png\">\n\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Attached</h4>\n    <p>A header can be attached to other content, like a <a href=\"/elements/segment.html\">segment</a></p>\n    <h3 class=\"ui top attached header\">\n      Top Attached\n    </h3>\n    <div class=\"ui attached segment\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n    </div>\n    <h3 class=\"ui attached header\">\n      Attached\n    </h3>\n    <div class=\"ui attached segment\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n    </div>\n    <h3 class=\"ui bottom attached header\">\n      Bottom Attached\n    </h3>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Floating</h4>\n    <p>A header can sit to the left or right of other content</p>\n    <div class=\"ui clearing segment\">\n      <h3 class=\"ui right floated header\">\n        Go Forward\n      </h3>\n      <h3 class=\"ui left floated header\">\n        Go Back\n      </h3>\n    </div>\n  </div>\n  <div class=\"clearing example\">\n    <h4 class=\"ui header\">Text Alignment</h4>\n    <p>A header can have its text aligned to a side</p>\n    <div class=\"ui segment\">\n      <h3 class=\"ui right aligned header\">\n        Right\n      </h3>\n      <h3 class=\"ui left aligned header\">\n        Left\n      </h3>\n      <h3 class=\"ui justified header\">\n        This should take up the full width even if only one line\n      </h3>\n      <h3 class=\"ui center aligned header\">\n        Center\n      </h3>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Colored</h4>\n    <p>A header can be formatted with different colors</p>\n    <h4 class=\"ui red header\">Red</h4>\n    <h4 class=\"ui orange header\">Orange</h4>\n    <h4 class=\"ui yellow header\">Yellow</h4>\n    <h4 class=\"ui olive header\">Olive</h4>\n    <h4 class=\"ui green header\">Green</h4>\n    <h4 class=\"ui teal header\">Teal</h4>\n    <h4 class=\"ui blue header\">Blue</h4>\n    <h4 class=\"ui purple header\">Purple</h4>\n    <h4 class=\"ui violet header\">Violet</h4>\n    <h4 class=\"ui pink header\">Pink</h4>\n    <h4 class=\"ui brown header\">Brown</h4>\n    <h4 class=\"ui grey header\">Grey</h4>\n  </div>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Inverted</h4>\n    <p>A header can have its colors inverted for contrast</p>\n    <div class=\"ui ignored info message\">\n      Inverted headers use modified light versions of your site's color scheme that are adapted to have more contrast on dark background\n    </div>\n    <div class=\"ui inverted segment\">\n      <h4 class=\"ui red inverted header\">Red</h4>\n      <h4 class=\"ui orange inverted header\">Orange</h4>\n      <h4 class=\"ui yellow inverted header\">Yellow</h4>\n      <h4 class=\"ui olive inverted header\">Olive</h4>\n      <h4 class=\"ui green inverted header\">Green</h4>\n      <h4 class=\"ui teal inverted header\">Teal</h4>\n      <h4 class=\"ui blue inverted header\">Blue</h4>\n      <h4 class=\"ui purple inverted header\">Purple</h4>\n      <h4 class=\"ui violet inverted header\">Violet</h4>\n      <h4 class=\"ui pink inverted header\">Pink</h4>\n      <h4 class=\"ui brown inverted header\">Brown</h4>\n      <h4 class=\"ui grey inverted header\">Grey</h4>\n    </div>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/elements/icon.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'icon'\nstandalone  : true\n\nelement     : 'icon'\nelementType : 'element'\n\ntitle       : 'Icon'\ndescription : 'An icon is a glyph used to represent something else'\ntype        : 'UI Element'\n\nthemes      : ['Default']\n---\n\n<%- @partial('header', { tabs: { icon: 'Icons', definition: 'Definition' } }) %>\n\n<script src=\"/javascript/icon.js\"></script>\n\n<div class=\"main ui container\">\n\n  <div class=\"ui active tab\" data-tab=\"icon\">\n\n    <iconSearch class=\"ui right aligned search\">\n      <div class=\"ui icon input\">\n        <input class=\"prompt\" type=\"text\" placeholder=\"Search icons...\">\n        <i class=\"search icon\"></i>\n      </div>\n      <div class=\"results\"></div>\n    </iconSearch>\n\n    <h2 class=\"ui header\">Icon Set</h2>\n    <p>An icon set contains an arbitrary number of glyphs</p>\n    <div class=\"ui ignored warning message\">\n      Icons serve a very similar function to text in a page. In Semantic icons receive a special tag <code>&lt;i&gt;</code> which allow for an abbreviated markup when sitting along-side text.\n    </div>\n\n    <div class=\"ui ignored message\">Semantic includes a complete port of <a href=\"https://fontawesome.com/\" target=\"_blank\">Font Awesome 5.0.8</a> designed by the <a href=\"https://twitter.com/fontawesome\">FontAwesome</a> team for its standard icon set.</div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Accessibility</h4>\n      <p>Icons can represent accessibility standards</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"american sign language interpreting icon\"></i>american sign language interpreting</div>\n        <div class=\"column\"><i class=\"assistive listening systems icon\"></i>assistive listening systems</div>\n        <div class=\"column\"><i class=\"audio description icon\"></i>audio description</div>\n        <div class=\"column\"><i class=\"blind icon\"></i>blind</div>\n        <div class=\"column\"><i class=\"braille icon\"></i>braille</div>\n        <div class=\"column\"><i class=\"closed captioning icon\"></i>closed captioning</div>\n        <div class=\"column\"><i class=\"closed captioning outline icon\"></i>closed captioning outline</div>\n        <div class=\"column\"><i class=\"deaf icon\"></i>deaf</div>\n        <div class=\"column\"><i class=\"low vision icon\"></i>low vision</div>\n        <div class=\"column\"><i class=\"phone volume icon\"></i>phone volume</div>\n        <div class=\"column\"><i class=\"question circle icon\"></i>question circle</div>\n        <div class=\"column\"><i class=\"question circle outline icon\"></i>question circle outline</div>\n        <div class=\"column\"><i class=\"sign language icon\"></i>sign language</div>\n        <div class=\"column\"><i class=\"tty icon\"></i>tty</div>\n        <div class=\"column\"><i class=\"universal access icon\"></i>universal access</div>\n        <div class=\"column\"><i class=\"wheelchair icon\"></i>wheelchair</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"american sign language interpreting icon\"></i>\n        <i class=\"assistive listening systems icon\"></i>\n        <i class=\"audio description icon\"></i>\n        <i class=\"blind icon\"></i>\n        <i class=\"braille icon\"></i>\n        <i class=\"closed captioning icon\"></i>\n        <i class=\"closed captioning outline icon\"></i>\n        <i class=\"deaf icon\"></i>\n        <i class=\"low vision icon\"></i>\n        <i class=\"phone volume icon\"></i>\n        <i class=\"question circle icon\"></i>\n        <i class=\"question circle outline icon\"></i>\n        <i class=\"sign language icon\"></i>\n        <i class=\"tty icon\"></i>\n        <i class=\"universal access icon\"></i>\n        <i class=\"wheelchair icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Arrows</h4>\n      <p>Icons can be used to indicate a direction</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"angle double down icon\"></i>angle double down</div>\n        <div class=\"column\"><i class=\"angle double left icon\"></i>angle double left</div>\n        <div class=\"column\"><i class=\"angle double right icon\"></i>angle double right</div>\n        <div class=\"column\"><i class=\"angle double up icon\"></i>angle double up</div>\n        <div class=\"column\"><i class=\"angle down icon\"></i>angle down</div>\n        <div class=\"column\"><i class=\"angle left icon\"></i>angle left</div>\n        <div class=\"column\"><i class=\"angle right icon\"></i>angle right</div>\n        <div class=\"column\"><i class=\"angle up icon\"></i>angle up</div>\n        <div class=\"column\"><i class=\"arrow alternate circle down icon\"></i>arrow alternate circle down</div>\n        <div class=\"column\"><i class=\"arrow alternate circle down outline icon\"></i>arrow alternate circle down outline</div>\n        <div class=\"column\"><i class=\"arrow alternate circle left icon\"></i>arrow alternate circle left</div>\n        <div class=\"column\"><i class=\"arrow alternate circle left outline icon\"></i>arrow alternate circle left outline</div>\n        <div class=\"column\"><i class=\"arrow alternate circle right icon\"></i>arrow alternate circle right</div>\n        <div class=\"column\"><i class=\"arrow alternate circle right outline icon\"></i>arrow alternate circle right outline</div>\n        <div class=\"column\"><i class=\"arrow alternate circle up icon\"></i>arrow alternate circle up</div>\n        <div class=\"column\"><i class=\"arrow alternate circle up outline icon\"></i>arrow alternate circle up outline</div>\n        <div class=\"column\"><i class=\"arrow circle down icon\"></i>arrow circle down</div>\n        <div class=\"column\"><i class=\"arrow circle left icon\"></i>arrow circle left</div>\n        <div class=\"column\"><i class=\"arrow circle right icon\"></i>arrow circle right</div>\n        <div class=\"column\"><i class=\"arrow circle up icon\"></i>arrow circle up</div>\n        <div class=\"column\"><i class=\"arrow down icon\"></i>arrow down</div>\n        <div class=\"column\"><i class=\"arrow left icon\"></i>arrow left</div>\n        <div class=\"column\"><i class=\"arrow right icon\"></i>arrow right</div>\n        <div class=\"column\"><i class=\"arrow up icon\"></i>arrow up</div>\n        <div class=\"column\"><i class=\"arrows alternate icon\"></i>arrows alternate</div>\n        <div class=\"column\"><i class=\"arrows alternate horizontal icon\"></i>arrows alternate horizontal</div>\n        <div class=\"column\"><i class=\"arrows alternate vertical icon\"></i>arrows alternate vertical</div>\n        <div class=\"column\"><i class=\"caret down icon\"></i>caret down</div>\n        <div class=\"column\"><i class=\"caret left icon\"></i>caret left</div>\n        <div class=\"column\"><i class=\"caret right icon\"></i>caret right</div>\n        <div class=\"column\"><i class=\"caret square down icon\"></i>caret square down</div>\n        <div class=\"column\"><i class=\"caret square down outline icon\"></i>caret square down outline</div>\n        <div class=\"column\"><i class=\"caret square left icon\"></i>caret square left</div>\n        <div class=\"column\"><i class=\"caret square left outline icon\"></i>caret square left outline</div>\n        <div class=\"column\"><i class=\"caret square right icon\"></i>caret square right</div>\n        <div class=\"column\"><i class=\"caret square right outline icon\"></i>caret square right outline</div>\n        <div class=\"column\"><i class=\"caret square up icon\"></i>caret square up</div>\n        <div class=\"column\"><i class=\"caret square up outline icon\"></i>caret square up outline</div>\n        <div class=\"column\"><i class=\"caret up icon\"></i>caret up</div>\n        <div class=\"column\"><i class=\"cart arrow down icon\"></i>cart arrow down</div>\n        <div class=\"column\"><i class=\"chart line icon\"></i>chart line</div>\n        <div class=\"column\"><i class=\"chevron circle down icon\"></i>chevron circle down</div>\n        <div class=\"column\"><i class=\"chevron circle left icon\"></i>chevron circle left</div>\n        <div class=\"column\"><i class=\"chevron circle right icon\"></i>chevron circle right</div>\n        <div class=\"column\"><i class=\"chevron circle up icon\"></i>chevron circle up</div>\n        <div class=\"column\"><i class=\"chevron down icon\"></i>chevron down</div>\n        <div class=\"column\"><i class=\"chevron left icon\"></i>chevron left</div>\n        <div class=\"column\"><i class=\"chevron right icon\"></i>chevron right</div>\n        <div class=\"column\"><i class=\"chevron up icon\"></i>chevron up</div>\n        <div class=\"column\"><i class=\"cloud download icon\"></i>cloud download</div>\n        <div class=\"column\"><i class=\"cloud upload icon\"></i>cloud upload</div>\n        <div class=\"column\"><i class=\"download icon\"></i>download</div>\n        <div class=\"column\"><i class=\"exchange icon\"></i>exchange</div>\n        <div class=\"column\"><i class=\"expand arrows alternate icon\"></i>expand arrows alternate</div>\n        <div class=\"column\"><i class=\"external alternate icon\"></i>external alternate</div>\n        <div class=\"column\"><i class=\"external square alternate icon\"></i>external square alternate</div>\n        <div class=\"column\"><i class=\"hand point down icon\"></i>hand point down</div>\n        <div class=\"column\"><i class=\"hand point down outline icon\"></i>hand point down outline</div>\n        <div class=\"column\"><i class=\"hand point left icon\"></i>hand point left</div>\n        <div class=\"column\"><i class=\"hand point left outline icon\"></i>hand point left outline</div>\n        <div class=\"column\"><i class=\"hand point right icon\"></i>hand point right</div>\n        <div class=\"column\"><i class=\"hand point right outline icon\"></i>hand point right outline</div>\n        <div class=\"column\"><i class=\"hand point up icon\"></i>hand point up</div>\n        <div class=\"column\"><i class=\"hand point up outline icon\"></i>hand point up outline</div>\n        <div class=\"column\"><i class=\"hand pointer icon\"></i>hand pointer</div>\n        <div class=\"column\"><i class=\"hand pointer outline icon\"></i>hand pointer outline</div>\n        <div class=\"column\"><i class=\"history icon\"></i>history</div>\n        <div class=\"column\"><i class=\"level down alternate icon\"></i>level down alternate</div>\n        <div class=\"column\"><i class=\"level up alternate icon\"></i>level up alternate</div>\n        <div class=\"column\"><i class=\"location arrow icon\"></i>location arrow</div>\n        <div class=\"column\"><i class=\"long arrow alternate down icon\"></i>long arrow alternate down</div>\n        <div class=\"column\"><i class=\"long arrow alternate left icon\"></i>long arrow alternate left</div>\n        <div class=\"column\"><i class=\"long arrow alternate right icon\"></i>long arrow alternate right</div>\n        <div class=\"column\"><i class=\"long arrow alternate up icon\"></i>long arrow alternate up</div>\n        <div class=\"column\"><i class=\"mouse pointer icon\"></i>mouse pointer</div>\n        <div class=\"column\"><i class=\"play icon\"></i>play</div>\n        <div class=\"column\"><i class=\"random icon\"></i>random</div>\n        <div class=\"column\"><i class=\"recycle icon\"></i>recycle</div>\n        <div class=\"column\"><i class=\"redo icon\"></i>redo</div>\n        <div class=\"column\"><i class=\"redo alternate icon\"></i>redo alternate</div>\n        <div class=\"column\"><i class=\"reply icon\"></i>reply</div>\n        <div class=\"column\"><i class=\"reply all icon\"></i>reply all</div>\n        <div class=\"column\"><i class=\"retweet icon\"></i>retweet</div>\n        <div class=\"column\"><i class=\"share icon\"></i>share</div>\n        <div class=\"column\"><i class=\"share square icon\"></i>share square</div>\n        <div class=\"column\"><i class=\"share square outline icon\"></i>share square outline</div>\n        <div class=\"column\"><i class=\"sign-in icon\"></i>sign-in</div>\n        <div class=\"column\"><i class=\"sign-out icon\"></i>sign-out</div>\n        <div class=\"column\"><i class=\"sign-in alternate icon\"></i>sign-in alternate</div>\n        <div class=\"column\"><i class=\"sign-out alternate icon\"></i>sign-out alternate</div>\n        <div class=\"column\"><i class=\"sort icon\"></i>sort</div>\n        <div class=\"column\"><i class=\"sort alphabet down icon\"></i>sort alphabet down</div>\n        <div class=\"column\"><i class=\"sort alphabet up icon\"></i>sort alphabet up</div>\n        <div class=\"column\"><i class=\"sort amount down icon\"></i>sort amount down</div>\n        <div class=\"column\"><i class=\"sort amount up icon\"></i>sort amount up</div>\n        <div class=\"column\"><i class=\"sort down icon\"></i>sort down</div>\n        <div class=\"column\"><i class=\"sort numeric down icon\"></i>sort numeric down</div>\n        <div class=\"column\"><i class=\"sort numeric up icon\"></i>sort numeric up</div>\n        <div class=\"column\"><i class=\"sort up icon\"></i>sort up</div>\n        <div class=\"column\"><i class=\"sync icon\"></i>sync</div>\n        <div class=\"column\"><i class=\"sync alternate icon\"></i>sync alternate</div>\n        <div class=\"column\"><i class=\"text height icon\"></i>text height</div>\n        <div class=\"column\"><i class=\"text width icon\"></i>text width</div>\n        <div class=\"column\"><i class=\"undo icon\"></i>undo</div>\n        <div class=\"column\"><i class=\"undo alternate icon\"></i>undo alternate</div>\n        <div class=\"column\"><i class=\"upload icon\"></i>upload</div>\n        <div class=\"column\"><i class=\"zoom-in icon\"></i>zoom-in</div>\n        <div class=\"column\"><i class=\"zoom-out icon\"></i>zoom-out</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"angle double down icon\"></i>\n        <i class=\"angle double left icon\"></i>\n        <i class=\"angle double right icon\"></i>\n        <i class=\"angle double up icon\"></i>\n        <i class=\"angle down icon\"></i>\n        <i class=\"angle left icon\"></i>\n        <i class=\"angle right icon\"></i>\n        <i class=\"angle up icon\"></i>\n        <i class=\"arrow alternate circle down icon\"></i>\n        <i class=\"arrow alternate circle down outline icon\"></i>\n        <i class=\"arrow alternate circle left icon\"></i>\n        <i class=\"arrow alternate circle left outline icon\"></i>\n        <i class=\"arrow alternate circle right icon\"></i>\n        <i class=\"arrow alternate circle right outline icon\"></i>\n        <i class=\"arrow alternate circle up icon\"></i>\n        <i class=\"arrow alternate circle up outline icon\"></i>\n        <i class=\"arrow circle down icon\"></i>\n        <i class=\"arrow circle left icon\"></i>\n        <i class=\"arrow circle right icon\"></i>\n        <i class=\"arrow circle up icon\"></i>\n        <i class=\"arrow down icon\"></i>\n        <i class=\"arrow left icon\"></i>\n        <i class=\"arrow right icon\"></i>\n        <i class=\"arrow up icon\"></i>\n        <i class=\"arrows alternate icon\"></i>\n        <i class=\"arrows alternate horizontal icon\"></i>\n        <i class=\"arrows alternate vertical icon\"></i>\n        <i class=\"caret down icon\"></i>\n        <i class=\"caret left icon\"></i>\n        <i class=\"caret right icon\"></i>\n        <i class=\"caret square down icon\"></i>\n        <i class=\"caret square down outline icon\"></i>\n        <i class=\"caret square left icon\"></i>\n        <i class=\"caret square left outline icon\"></i>\n        <i class=\"caret square right icon\"></i>\n        <i class=\"caret square right outline icon\"></i>\n        <i class=\"caret square up icon\"></i>\n        <i class=\"caret square up outline icon\"></i>\n        <i class=\"caret up icon\"></i>\n        <i class=\"cart arrow down icon\"></i>\n        <i class=\"chart line icon\"></i>\n        <i class=\"chevron circle down icon\"></i>\n        <i class=\"chevron circle left icon\"></i>\n        <i class=\"chevron circle right icon\"></i>\n        <i class=\"chevron circle up icon\"></i>\n        <i class=\"chevron down icon\"></i>\n        <i class=\"chevron left icon\"></i>\n        <i class=\"chevron right icon\"></i>\n        <i class=\"chevron up icon\"></i>\n        <i class=\"cloud download icon\"></i>\n        <i class=\"cloud upload icon\"></i>\n        <i class=\"download icon\"></i>\n        <i class=\"exchange alternate icon\"></i>\n        <i class=\"expand arrows alternate icon\"></i>\n        <i class=\"external alternate icon\"></i>\n        <i class=\"external square alternate icon\"></i>\n        <i class=\"hand point down icon\"></i>\n        <i class=\"hand point down outline icon\"></i>\n        <i class=\"hand point left icon\"></i>\n        <i class=\"hand point left outline icon\"></i>\n        <i class=\"hand point right icon\"></i>\n        <i class=\"hand point right outline icon\"></i>\n        <i class=\"hand point up icon\"></i>\n        <i class=\"hand point up outline icon\"></i>\n        <i class=\"hand pointer icon\"></i>\n        <i class=\"hand pointer outline icon\"></i>\n        <i class=\"history icon\"></i>\n        <i class=\"level down alternate icon\"></i>\n        <i class=\"level up alternate icon\"></i>\n        <i class=\"location arrow icon\"></i>\n        <i class=\"long arrow alternate down icon\"></i>\n        <i class=\"long arrow alternate left icon\"></i>\n        <i class=\"long arrow alternate right icon\"></i>\n        <i class=\"long arrow alternate up icon\"></i>\n        <i class=\"mouse pointer icon\"></i>\n        <i class=\"play icon\"></i>\n        <i class=\"random icon\"></i>\n        <i class=\"recycle icon\"></i>\n        <i class=\"redo icon\"></i>\n        <i class=\"redo alternate icon\"></i>\n        <i class=\"reply icon\"></i>\n        <i class=\"reply all icon\"></i>\n        <i class=\"retweet icon\"></i>\n        <i class=\"share icon\"></i>\n        <i class=\"share square icon\"></i>\n        <i class=\"share square outline icon\"></i>\n        <i class=\"sign in alternate icon\"></i>\n        <i class=\"sign out alternate icon\"></i>\n        <i class=\"sort icon\"></i>\n        <i class=\"sort alphabet down icon\"></i>\n        <i class=\"sort alphabet up icon\"></i>\n        <i class=\"sort amount down icon\"></i>\n        <i class=\"sort amount up icon\"></i>\n        <i class=\"sort down icon\"></i>\n        <i class=\"sort numeric down icon\"></i>\n        <i class=\"sort numeric up icon\"></i>\n        <i class=\"sort up icon\"></i>\n        <i class=\"sync icon\"></i>\n        <i class=\"sync alternate icon\"></i>\n        <i class=\"text height icon\"></i>\n        <i class=\"text width icon\"></i>\n        <i class=\"undo icon\"></i>\n        <i class=\"undo alternate icon\"></i>\n        <i class=\"upload icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Audio & Video</h4>\n      <p>Icons can be used to represent common ways to interact with audio and video</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"audio description icon\"></i>audio description</div>\n        <div class=\"column\"><i class=\"backward icon\"></i>backward</div>\n        <div class=\"column\"><i class=\"circle icon\"></i>circle</div>\n        <div class=\"column\"><i class=\"circle outline icon\"></i>circle outline</div>\n        <div class=\"column\"><i class=\"closed captioning icon\"></i>closed captioning</div>\n        <div class=\"column\"><i class=\"closed captioning outline icon\"></i>closed captioning outline</div>\n        <div class=\"column\"><i class=\"compress icon\"></i>compress</div>\n        <div class=\"column\"><i class=\"eject icon\"></i>eject</div>\n        <div class=\"column\"><i class=\"expand icon\"></i>expand</div>\n        <div class=\"column\"><i class=\"expand arrows alternate icon\"></i>expand arrows alternate</div>\n        <div class=\"column\"><i class=\"fast backward icon\"></i>fast backward</div>\n        <div class=\"column\"><i class=\"fast forward icon\"></i>fast forward</div>\n        <div class=\"column\"><i class=\"file audio icon\"></i>file audio</div>\n        <div class=\"column\"><i class=\"file audio outline icon\"></i>file audio outline</div>\n        <div class=\"column\"><i class=\"file video icon\"></i>file video</div>\n        <div class=\"column\"><i class=\"file video outline icon\"></i>file video outline</div>\n        <div class=\"column\"><i class=\"film icon\"></i>film</div>\n        <div class=\"column\"><i class=\"forward icon\"></i>forward</div>\n        <div class=\"column\"><i class=\"headphones icon\"></i>headphones</div>\n        <div class=\"column\"><i class=\"microphone icon\"></i>microphone</div>\n        <div class=\"column\"><i class=\"microphone slash icon\"></i>microphone slash</div>\n        <div class=\"column\"><i class=\"music icon\"></i>music</div>\n        <div class=\"column\"><i class=\"pause icon\"></i>pause</div>\n        <div class=\"column\"><i class=\"pause circle icon\"></i>pause circle</div>\n        <div class=\"column\"><i class=\"pause circle outline icon\"></i>pause circle outline</div>\n        <div class=\"column\"><i class=\"phone volume icon\"></i>phone volume</div>\n        <div class=\"column\"><i class=\"play icon\"></i>play</div>\n        <div class=\"column\"><i class=\"play circle icon\"></i>play circle</div>\n        <div class=\"column\"><i class=\"play circle outline icon\"></i>play circle outline</div>\n        <div class=\"column\"><i class=\"podcast icon\"></i>podcast</div>\n        <div class=\"column\"><i class=\"random icon\"></i>random</div>\n        <div class=\"column\"><i class=\"redo icon\"></i>redo</div>\n        <div class=\"column\"><i class=\"redo alternate icon\"></i>redo alternate</div>\n        <div class=\"column\"><i class=\"rss icon\"></i>rss</div>\n        <div class=\"column\"><i class=\"rss square icon\"></i>rss square</div>\n        <div class=\"column\"><i class=\"step backward icon\"></i>step backward</div>\n        <div class=\"column\"><i class=\"step forward icon\"></i>step forward</div>\n        <div class=\"column\"><i class=\"stop icon\"></i>stop</div>\n        <div class=\"column\"><i class=\"stop circle icon\"></i>stop circle</div>\n        <div class=\"column\"><i class=\"stop circle outline icon\"></i>stop circle outline</div>\n        <div class=\"column\"><i class=\"sync icon\"></i>sync</div>\n        <div class=\"column\"><i class=\"sync alternate icon\"></i>sync alternate</div>\n        <div class=\"column\"><i class=\"undo icon\"></i>undo</div>\n        <div class=\"column\"><i class=\"undo alternate icon\"></i>undo alternate</div>\n        <div class=\"column\"><i class=\"video icon\"></i>video</div>\n        <div class=\"column\"><i class=\"volume down icon\"></i>volume down</div>\n        <div class=\"column\"><i class=\"volume off icon\"></i>volume off</div>\n        <div class=\"column\"><i class=\"volume up icon\"></i>volume up</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"audio description icon\"></i>\n        <i class=\"backward icon\"></i>\n        <i class=\"circle icon\"></i>\n        <i class=\"circle outline icon\"></i>\n        <i class=\"closed captioning icon\"></i>\n        <i class=\"closed captioning outline icon\"></i>\n        <i class=\"compress icon\"></i>\n        <i class=\"eject icon\"></i>\n        <i class=\"expand icon\"></i>\n        <i class=\"expand arrows alternate icon\"></i>\n        <i class=\"fast backward icon\"></i>\n        <i class=\"fast forward icon\"></i>\n        <i class=\"file audio icon\"></i>\n        <i class=\"file audio outline icon\"></i>\n        <i class=\"file video icon\"></i>\n        <i class=\"file video outline icon\"></i>\n        <i class=\"film icon\"></i>\n        <i class=\"forward icon\"></i>\n        <i class=\"headphones icon\"></i>\n        <i class=\"microphone icon\"></i>\n        <i class=\"microphone slash icon\"></i>\n        <i class=\"music icon\"></i>\n        <i class=\"pause icon\"></i>\n        <i class=\"pause circle icon\"></i>\n        <i class=\"pause circle outline icon\"></i>\n        <i class=\"phone volume icon\"></i>\n        <i class=\"play icon\"></i>\n        <i class=\"play circle icon\"></i>\n        <i class=\"play circle outline icon\"></i>\n        <i class=\"podcast icon\"></i>\n        <i class=\"random icon\"></i>\n        <i class=\"redo icon\"></i>\n        <i class=\"redo alternate icon\"></i>\n        <i class=\"rss icon\"></i>\n        <i class=\"rss square icon\"></i>\n        <i class=\"step backward icon\"></i>\n        <i class=\"step forward icon\"></i>\n        <i class=\"stop icon\"></i>\n        <i class=\"stop circle icon\"></i>\n        <i class=\"stop circle outline icon\"></i>\n        <i class=\"sync icon\"></i>\n        <i class=\"sync alternate icon\"></i>\n        <i class=\"undo icon\"></i>\n        <i class=\"undo alternate icon\"></i>\n        <i class=\"video icon\"></i>\n        <i class=\"volume down icon\"></i>\n        <i class=\"volume off icon\"></i>\n        <i class=\"volume up icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Business</h4>\n      <p>Icons can be used to represent business and common business actions</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"address book icon\"></i>address book</div>\n        <div class=\"column\"><i class=\"address book outline icon\"></i>address book outline</div>\n        <div class=\"column\"><i class=\"address card icon\"></i>address card</div>\n        <div class=\"column\"><i class=\"address card outline icon\"></i>address card outline</div>\n        <div class=\"column\"><i class=\"archive icon\"></i>archive</div>\n        <div class=\"column\"><i class=\"balance scale icon\"></i>balance scale</div>\n        <div class=\"column\"><i class=\"birthday cake icon\"></i>birthday cake</div>\n        <div class=\"column\"><i class=\"book icon\"></i>book</div>\n        <div class=\"column\"><i class=\"briefcase icon\"></i>briefcase</div>\n        <div class=\"column\"><i class=\"building icon\"></i>building</div>\n        <div class=\"column\"><i class=\"building outline icon\"></i>building outline</div>\n        <div class=\"column\"><i class=\"bullhorn icon\"></i>bullhorn</div>\n        <div class=\"column\"><i class=\"bullseye icon\"></i>bullseye</div>\n        <div class=\"column\"><i class=\"calculator icon\"></i>calculator</div>\n        <div class=\"column\"><i class=\"calendar icon\"></i>calendar</div>\n        <div class=\"column\"><i class=\"calendar outline icon\"></i>calendar outline</div>\n        <div class=\"column\"><i class=\"calendar alternate icon\"></i>calendar alternate</div>\n        <div class=\"column\"><i class=\"calendar alternate outline icon\"></i>calendar alternate outline</div>\n        <div class=\"column\"><i class=\"certificate icon\"></i>certificate</div>\n        <div class=\"column\"><i class=\"chart area icon\"></i>chart area</div>\n        <div class=\"column\"><i class=\"chart bar icon\"></i>chart bar</div>\n        <div class=\"column\"><i class=\"chart bar outline icon\"></i>chart bar outline</div>\n        <div class=\"column\"><i class=\"chart line icon\"></i>chart line</div>\n        <div class=\"column\"><i class=\"chart pie icon\"></i>chart pie</div>\n        <div class=\"column\"><i class=\"clipboard icon\"></i>clipboard</div>\n        <div class=\"column\"><i class=\"clipboard outline icon\"></i>clipboard outline</div>\n        <div class=\"column\"><i class=\"coffee icon\"></i>coffee</div>\n        <div class=\"column\"><i class=\"columns icon\"></i>columns</div>\n        <div class=\"column\"><i class=\"compass icon\"></i>compass</div>\n        <div class=\"column\"><i class=\"compass outline icon\"></i>compass outline</div>\n        <div class=\"column\"><i class=\"copy icon\"></i>copy</div>\n        <div class=\"column\"><i class=\"copy outline icon\"></i>copy outline</div>\n        <div class=\"column\"><i class=\"copyright icon\"></i>copyright</div>\n        <div class=\"column\"><i class=\"copyright outline icon\"></i>copyright outline</div>\n        <div class=\"column\"><i class=\"cut icon\"></i>cut</div>\n        <div class=\"column\"><i class=\"edit icon\"></i>edit</div>\n        <div class=\"column\"><i class=\"edit outline icon\"></i>edit outline</div>\n        <div class=\"column\"><i class=\"envelope icon\"></i>envelope</div>\n        <div class=\"column\"><i class=\"envelope outline icon\"></i>envelope outline</div>\n        <div class=\"column\"><i class=\"envelope open icon\"></i>envelope open</div>\n        <div class=\"column\"><i class=\"envelope open outline icon\"></i>envelope open outline</div>\n        <div class=\"column\"><i class=\"envelope square icon\"></i>envelope square</div>\n        <div class=\"column\"><i class=\"eraser icon\"></i>eraser</div>\n        <div class=\"column\"><i class=\"fax icon\"></i>fax</div>\n        <div class=\"column\"><i class=\"file icon\"></i>file</div>\n        <div class=\"column\"><i class=\"file outline icon\"></i>file outline</div>\n        <div class=\"column\"><i class=\"file alternate icon\"></i>file alternate</div>\n        <div class=\"column\"><i class=\"file alternate outline icon\"></i>file alternate outline</div>\n        <div class=\"column\"><i class=\"folder icon\"></i>folder</div>\n        <div class=\"column\"><i class=\"folder outline icon\"></i>folder outline</div>\n        <div class=\"column\"><i class=\"folder open icon\"></i>folder open</div>\n        <div class=\"column\"><i class=\"folder open outline icon\"></i>folder open outline</div>\n        <div class=\"column\"><i class=\"globe icon\"></i>globe</div>\n        <div class=\"column\"><i class=\"industry icon\"></i>industry</div>\n        <div class=\"column\"><i class=\"paperclip icon\"></i>paperclip</div>\n        <div class=\"column\"><i class=\"paste icon\"></i>paste</div>\n        <div class=\"column\"><i class=\"pen square icon\"></i>pen square</div>\n        <div class=\"column\"><i class=\"pencil alternate icon\"></i>pencil alternate</div>\n        <div class=\"column\"><i class=\"percent icon\"></i>percent</div>\n        <div class=\"column\"><i class=\"phone icon\"></i>phone</div>\n        <div class=\"column\"><i class=\"phone square icon\"></i>phone square</div>\n        <div class=\"column\"><i class=\"phone volume icon\"></i>phone volume</div>\n        <div class=\"column\"><i class=\"registered icon\"></i>registered</div>\n        <div class=\"column\"><i class=\"registered outline icon\"></i>registered outline</div>\n        <div class=\"column\"><i class=\"save icon\"></i>save</div>\n        <div class=\"column\"><i class=\"save outline icon\"></i>save outline</div>\n        <div class=\"column\"><i class=\"sitemap icon\"></i>sitemap</div>\n        <div class=\"column\"><i class=\"sticky note icon\"></i>sticky note</div>\n        <div class=\"column\"><i class=\"sticky note outline icon\"></i>sticky note outline</div>\n        <div class=\"column\"><i class=\"suitcase icon\"></i>suitcase</div>\n        <div class=\"column\"><i class=\"table icon\"></i>table</div>\n        <div class=\"column\"><i class=\"tag icon\"></i>tag</div>\n        <div class=\"column\"><i class=\"tags icon\"></i>tags</div>\n        <div class=\"column\"><i class=\"tasks icon\"></i>tasks</div>\n        <div class=\"column\"><i class=\"thumbtack icon\"></i>thumbtack</div>\n        <div class=\"column\"><i class=\"trademark icon\"></i>trademark</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"address book icon\"></i>\n        <i class=\"address book outline icon\"></i>\n        <i class=\"address card icon\"></i>\n        <i class=\"address card outline icon\"></i>\n        <i class=\"archive icon\"></i>\n        <i class=\"balance scale icon\"></i>\n        <i class=\"birthday cake icon\"></i>\n        <i class=\"book icon\"></i>\n        <i class=\"briefcase icon\"></i>\n        <i class=\"building icon\"></i>\n        <i class=\"building outline icon\"></i>\n        <i class=\"bullhorn icon\"></i>\n        <i class=\"bullseye icon\"></i>\n        <i class=\"calculator icon\"></i>\n        <i class=\"calendar icon\"></i>\n        <i class=\"calendar outline icon\"></i>\n        <i class=\"calendar alternate icon\"></i>\n        <i class=\"calendar alternate outline icon\"></i>\n        <i class=\"certificate icon\"></i>\n        <i class=\"chart area icon\"></i>\n        <i class=\"chart bar icon\"></i>\n        <i class=\"chart bar outline icon\"></i>\n        <i class=\"chart line icon\"></i>\n        <i class=\"chart pie icon\"></i>\n        <i class=\"clipboard icon\"></i>\n        <i class=\"clipboard outline icon\"></i>\n        <i class=\"coffee icon\"></i>\n        <i class=\"columns icon\"></i>\n        <i class=\"compass icon\"></i>\n        <i class=\"compass outline icon\"></i>\n        <i class=\"copy icon\"></i>\n        <i class=\"copy outline icon\"></i>\n        <i class=\"copyright icon\"></i>\n        <i class=\"copyright outline icon\"></i>\n        <i class=\"cut icon\"></i>\n        <i class=\"edit icon\"></i>\n        <i class=\"edit outline icon\"></i>\n        <i class=\"envelope icon\"></i>\n        <i class=\"envelope outline icon\"></i>\n        <i class=\"envelope open icon\"></i>\n        <i class=\"envelope open outline icon\"></i>\n        <i class=\"envelope square icon\"></i>\n        <i class=\"eraser icon\"></i>\n        <i class=\"fax icon\"></i>\n        <i class=\"file icon\"></i>\n        <i class=\"file outline icon\"></i>\n        <i class=\"file alternate icon\"></i>\n        <i class=\"file alternate outline icon\"></i>\n        <i class=\"folder icon\"></i>\n        <i class=\"folder outline icon\"></i>\n        <i class=\"folder open icon\"></i>\n        <i class=\"folder open outline icon\"></i>\n        <i class=\"globe icon\"></i>\n        <i class=\"industry icon\"></i>\n        <i class=\"paperclip icon\"></i>\n        <i class=\"paste icon\"></i>\n        <i class=\"pen square icon\"></i>\n        <i class=\"pencil alternate icon\"></i>\n        <i class=\"percent icon\"></i>\n        <i class=\"phone icon\"></i>\n        <i class=\"phone square icon\"></i>\n        <i class=\"phone volume icon\"></i>\n        <i class=\"registered icon\"></i>\n        <i class=\"registered outline icon\"></i>\n        <i class=\"save icon\"></i>\n        <i class=\"save outline icon\"></i>\n        <i class=\"sitemap icon\"></i>\n        <i class=\"sticky note icon\"></i>\n        <i class=\"sticky note outline icon\"></i>\n        <i class=\"suitcase icon\"></i>\n        <i class=\"table icon\"></i>\n        <i class=\"tag icon\"></i>\n        <i class=\"tags icon\"></i>\n        <i class=\"tasks icon\"></i>\n        <i class=\"thumbtack icon\"></i>\n        <i class=\"trademark icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Chess</h4>\n      <p>Icons which represent the game chess</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"chess icon\"></i>chess</div>\n        <div class=\"column\"><i class=\"chess bishop icon\"></i>chess bishop</div>\n        <div class=\"column\"><i class=\"chess board icon\"></i>chess board</div>\n        <div class=\"column\"><i class=\"chess king icon\"></i>chess king</div>\n        <div class=\"column\"><i class=\"chess knight icon\"></i>chess knight</div>\n        <div class=\"column\"><i class=\"chess pawn icon\"></i>chess pawn</div>\n        <div class=\"column\"><i class=\"chess queen icon\"></i>chess queen</div>\n        <div class=\"column\"><i class=\"chess rook icon\"></i>chess rook</div>\n        <div class=\"column\"><i class=\"square full icon\"></i>square full</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"chess icon\"></i>\n        <i class=\"chess bishop icon\"></i>\n        <i class=\"chess board icon\"></i>\n        <i class=\"chess king icon\"></i>\n        <i class=\"chess knight icon\"></i>\n        <i class=\"chess pawn icon\"></i>\n        <i class=\"chess queen icon\"></i>\n        <i class=\"chess rook icon\"></i>\n        <i class=\"square full icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Code</h4>\n      <p>Icons can represent programming and programming tools</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"archive icon\"></i>archive</div>\n        <div class=\"column\"><i class=\"barcode icon\"></i>barcode</div>\n        <div class=\"column\"><i class=\"bath icon\"></i>bath</div>\n        <div class=\"column\"><i class=\"bug icon\"></i>bug</div>\n        <div class=\"column\"><i class=\"code icon\"></i>code</div>\n        <div class=\"column\"><i class=\"code branch icon\"></i>code branch</div>\n        <div class=\"column\"><i class=\"coffee icon\"></i>coffee</div>\n        <div class=\"column\"><i class=\"file icon\"></i>file</div>\n        <div class=\"column\"><i class=\"file outline icon\"></i>file outline</div>\n        <div class=\"column\"><i class=\"file alternate icon\"></i>file alternate</div>\n        <div class=\"column\"><i class=\"file alternate outline icon\"></i>file alternate outline</div>\n        <div class=\"column\"><i class=\"file code icon\"></i>file code</div>\n        <div class=\"column\"><i class=\"file code outline icon\"></i>file code outline</div>\n        <div class=\"column\"><i class=\"filter icon\"></i>filter</div>\n        <div class=\"column\"><i class=\"fire extinguisher icon\"></i>fire extinguisher</div>\n        <div class=\"column\"><i class=\"folder icon\"></i>folder</div>\n        <div class=\"column\"><i class=\"folder outline icon\"></i>folder outline</div>\n        <div class=\"column\"><i class=\"folder open icon\"></i>folder open</div>\n        <div class=\"column\"><i class=\"folder open outline icon\"></i>folder open outline</div>\n        <div class=\"column\"><i class=\"keyboard icon\"></i>keyboard</div>\n        <div class=\"column\"><i class=\"keyboard outline icon\"></i>keyboard outline</div>\n        <div class=\"column\"><i class=\"microchip icon\"></i>microchip</div>\n        <div class=\"column\"><i class=\"qrcode icon\"></i>qrcode</div>\n        <div class=\"column\"><i class=\"shield alternate icon\"></i>shield alternate</div>\n        <div class=\"column\"><i class=\"sitemap icon\"></i>sitemap</div>\n        <div class=\"column\"><i class=\"terminal icon\"></i>terminal</div>\n        <div class=\"column\"><i class=\"user secret icon\"></i>user secret</div>\n        <div class=\"column\"><i class=\"window close icon\"></i>window close</div>\n        <div class=\"column\"><i class=\"window close outline icon\"></i>window close outline</div>\n        <div class=\"column\"><i class=\"window maximize icon\"></i>window maximize</div>\n        <div class=\"column\"><i class=\"window maximize outline icon\"></i>window maximize outline</div>\n        <div class=\"column\"><i class=\"window minimize icon\"></i>window minimize</div>\n        <div class=\"column\"><i class=\"window minimize outline icon\"></i>window minimize outline</div>\n        <div class=\"column\"><i class=\"window restore icon\"></i>window restore</div>\n        <div class=\"column\"><i class=\"window restore outline icon\"></i>window restore outline</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"archive icon\"></i>\n        <i class=\"barcode icon\"></i>\n        <i class=\"bath icon\"></i>\n        <i class=\"bug icon\"></i>\n        <i class=\"code icon\"></i>\n        <i class=\"code branch icon\"></i>\n        <i class=\"coffee icon\"></i>\n        <i class=\"file icon\"></i>\n        <i class=\"file outline icon\"></i>\n        <i class=\"file alternate icon\"></i>\n        <i class=\"file alternate outline icon\"></i>\n        <i class=\"file code icon\"></i>\n        <i class=\"file code outline icon\"></i>\n        <i class=\"filter icon\"></i>\n        <i class=\"fire extinguisher icon\"></i>\n        <i class=\"folder icon\"></i>\n        <i class=\"folder outline icon\"></i>\n        <i class=\"folder open icon\"></i>\n        <i class=\"folder open outline icon\"></i>\n        <i class=\"keyboard icon\"></i>\n        <i class=\"keyboard outline icon\"></i>\n        <i class=\"microchip icon\"></i>\n        <i class=\"qrcode icon\"></i>\n        <i class=\"shield alternate icon\"></i>\n        <i class=\"sitemap icon\"></i>\n        <i class=\"terminal icon\"></i>\n        <i class=\"user secret icon\"></i>\n        <i class=\"window close icon\"></i>\n        <i class=\"window close outline icon\"></i>\n        <i class=\"window maximize icon\"></i>\n        <i class=\"window maximize outline icon\"></i>\n        <i class=\"window minimize icon\"></i>\n        <i class=\"window minimize outline icon\"></i>\n        <i class=\"window restore icon\"></i>\n        <i class=\"window restore outline icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Communication</h4>\n      <p>Icons which represent common ways of communication</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"address book icon\"></i>address book</div>\n        <div class=\"column\"><i class=\"address book outline icon\"></i>address book outline</div>\n        <div class=\"column\"><i class=\"address card icon\"></i>address card</div>\n        <div class=\"column\"><i class=\"address card outline icon\"></i>address card outline</div>\n        <div class=\"column\"><i class=\"american sign language interpreting icon\"></i>american sign language interpreting</div>\n        <div class=\"column\"><i class=\"assistive listening systems icon\"></i>assistive listening systems</div>\n        <div class=\"column\"><i class=\"at icon\"></i>at</div>\n        <div class=\"column\"><i class=\"bell icon\"></i>bell</div>\n        <div class=\"column\"><i class=\"bell outline icon\"></i>bell outline</div>\n        <div class=\"column\"><i class=\"bell slash icon\"></i>bell slash</div>\n        <div class=\"column\"><i class=\"bell slash outline icon\"></i>bell slash outline</div>\n        <div class=\"column\"><i class=\"bullhorn icon\"></i>bullhorn</div>\n        <div class=\"column\"><i class=\"comment icon\"></i>comment</div>\n        <div class=\"column\"><i class=\"comment outline icon\"></i>comment outline</div>\n        <div class=\"column\"><i class=\"comment alternate icon\"></i>comment alternate</div>\n        <div class=\"column\"><i class=\"comment alternate outline icon\"></i>comment alternate outline</div>\n        <div class=\"column\"><i class=\"comments icon\"></i>comments</div>\n        <div class=\"column\"><i class=\"comments outline icon\"></i>comments outline</div>\n        <div class=\"column\"><i class=\"envelope icon\"></i>envelope</div>\n        <div class=\"column\"><i class=\"envelope outline icon\"></i>envelope outline</div>\n        <div class=\"column\"><i class=\"envelope open icon\"></i>envelope open</div>\n        <div class=\"column\"><i class=\"envelope open outline icon\"></i>envelope open outline</div>\n        <div class=\"column\"><i class=\"envelope square icon\"></i>envelope square</div>\n        <div class=\"column\"><i class=\"fax icon\"></i>fax</div>\n        <div class=\"column\"><i class=\"inbox icon\"></i>inbox</div>\n        <div class=\"column\"><i class=\"language icon\"></i>language</div>\n        <div class=\"column\"><i class=\"microphone icon\"></i>microphone</div>\n        <div class=\"column\"><i class=\"microphone slash icon\"></i>microphone slash</div>\n        <div class=\"column\"><i class=\"mobile icon\"></i>mobile</div>\n        <div class=\"column\"><i class=\"mobile alternate icon\"></i>mobile alternate</div>\n        <div class=\"column\"><i class=\"paper plane icon\"></i>paper plane</div>\n        <div class=\"column\"><i class=\"paper plane outline icon\"></i>paper plane outline</div>\n        <div class=\"column\"><i class=\"phone icon\"></i>phone</div>\n        <div class=\"column\"><i class=\"phone square icon\"></i>phone square</div>\n        <div class=\"column\"><i class=\"phone volume icon\"></i>phone volume</div>\n        <div class=\"column\"><i class=\"rss icon\"></i>rss</div>\n        <div class=\"column\"><i class=\"rss square icon\"></i>rss square</div>\n        <div class=\"column\"><i class=\"tty icon\"></i>tty</div>\n        <div class=\"column\"><i class=\"wifi icon\"></i>wifi</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"address book icon\"></i>\n        <i class=\"address book outline icon\"></i>\n        <i class=\"address card icon\"></i>\n        <i class=\"address card outline icon\"></i>\n        <i class=\"american sign language interpreting icon\"></i>\n        <i class=\"assistive listening systems icon\"></i>\n        <i class=\"at icon\"></i>\n        <i class=\"bell icon\"></i>\n        <i class=\"bell outline icon\"></i>\n        <i class=\"bell slash icon\"></i>\n        <i class=\"bell slash outline icon\"></i>\n        <i class=\"bullhorn icon\"></i>\n        <i class=\"comment icon\"></i>\n        <i class=\"comment outline icon\"></i>\n        <i class=\"comment alternate icon\"></i>\n        <i class=\"comment alternate outline icon\"></i>\n        <i class=\"comments icon\"></i>\n        <i class=\"comments outline icon\"></i>\n        <i class=\"envelope icon\"></i>\n        <i class=\"envelope outline icon\"></i>\n        <i class=\"envelope open icon\"></i>\n        <i class=\"envelope open outline icon\"></i>\n        <i class=\"envelope square icon\"></i>\n        <i class=\"fax icon\"></i>\n        <i class=\"inbox icon\"></i>\n        <i class=\"language icon\"></i>\n        <i class=\"microphone icon\"></i>\n        <i class=\"microphone slash icon\"></i>\n        <i class=\"mobile icon\"></i>\n        <i class=\"mobile alternate icon\"></i>\n        <i class=\"paper plane icon\"></i>\n        <i class=\"paper plane outline icon\"></i>\n        <i class=\"phone icon\"></i>\n        <i class=\"phone square icon\"></i>\n        <i class=\"phone volume icon\"></i>\n        <i class=\"rss icon\"></i>\n        <i class=\"rss square icon\"></i>\n        <i class=\"tty icon\"></i>\n        <i class=\"wifi icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Computers</h4>\n      <p>Icons can represent computing devices, or types of content found on a computer</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"desktop icon\"></i>desktop</div>\n        <div class=\"column\"><i class=\"download icon\"></i>download</div>\n        <div class=\"column\"><i class=\"hdd icon\"></i>hdd</div>\n        <div class=\"column\"><i class=\"hdd outline icon\"></i>hdd outline</div>\n        <div class=\"column\"><i class=\"headphones icon\"></i>headphones</div>\n        <div class=\"column\"><i class=\"keyboard icon\"></i>keyboard</div>\n        <div class=\"column\"><i class=\"keyboard outline icon\"></i>keyboard outline</div>\n        <div class=\"column\"><i class=\"laptop icon\"></i>laptop</div>\n        <div class=\"column\"><i class=\"microchip icon\"></i>microchip</div>\n        <div class=\"column\"><i class=\"mobile icon\"></i>mobile</div>\n        <div class=\"column\"><i class=\"mobile alternate icon\"></i>mobile alternate</div>\n        <div class=\"column\"><i class=\"plug icon\"></i>plug</div>\n        <div class=\"column\"><i class=\"power off icon\"></i>power off</div>\n        <div class=\"column\"><i class=\"print icon\"></i>print</div>\n        <div class=\"column\"><i class=\"save icon\"></i>save</div>\n        <div class=\"column\"><i class=\"save outline icon\"></i>save outline</div>\n        <div class=\"column\"><i class=\"server icon\"></i>server</div>\n        <div class=\"column\"><i class=\"tablet icon\"></i>tablet</div>\n        <div class=\"column\"><i class=\"tablet alternate icon\"></i>tablet alternate</div>\n        <div class=\"column\"><i class=\"tv icon\"></i>tv</div>\n        <div class=\"column\"><i class=\"upload icon\"></i>upload</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"desktop icon\"></i>\n        <i class=\"download icon\"></i>\n        <i class=\"hdd icon\"></i>\n        <i class=\"hdd outline icon\"></i>\n        <i class=\"headphones icon\"></i>\n        <i class=\"keyboard icon\"></i>\n        <i class=\"keyboard outline icon\"></i>\n        <i class=\"laptop icon\"></i>\n        <i class=\"microchip icon\"></i>\n        <i class=\"mobile icon\"></i>\n        <i class=\"mobile alternate icon\"></i>\n        <i class=\"plug icon\"></i>\n        <i class=\"power off icon\"></i>\n        <i class=\"print icon\"></i>\n        <i class=\"save icon\"></i>\n        <i class=\"save outline icon\"></i>\n        <i class=\"server icon\"></i>\n        <i class=\"tablet icon\"></i>\n        <i class=\"tablet alternate icon\"></i>\n        <i class=\"tv icon\"></i>\n        <i class=\"upload icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Currency</h4>\n      <p>Icons can represent units of currency</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"dollar sign icon\"></i>dollar sign</div>\n        <div class=\"column\"><i class=\"euro sign icon\"></i>euro sign</div>\n        <div class=\"column\"><i class=\"lira sign icon\"></i>lira sign</div>\n        <div class=\"column\"><i class=\"money bill alternate icon\"></i>money bill alternate</div>\n        <div class=\"column\"><i class=\"money bill alternate outline icon\"></i>money bill alternate outline</div>\n        <div class=\"column\"><i class=\"pound sign icon\"></i>pound sign</div>\n        <div class=\"column\"><i class=\"ruble sign icon\"></i>ruble sign</div>\n        <div class=\"column\"><i class=\"rupee sign icon\"></i>rupee sign</div>\n        <div class=\"column\"><i class=\"shekel sign icon\"></i>shekel sign</div>\n        <div class=\"column\"><i class=\"won sign icon\"></i>won sign</div>\n        <div class=\"column\"><i class=\"yen sign icon\"></i>yen sign</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"dollar sign icon\"></i>\n        <i class=\"euro sign icon\"></i>\n        <i class=\"lira sign icon\"></i>\n        <i class=\"money bill alternate icon\"></i>\n        <i class=\"money bill alternate outline icon\"></i>\n        <i class=\"pound sign icon\"></i>\n        <i class=\"ruble sign icon\"></i>\n        <i class=\"rupee sign icon\"></i>\n        <i class=\"shekel sign icon\"></i>\n        <i class=\"won sign icon\"></i>\n        <i class=\"yen sign icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Date & Time</h4>\n      <p>Icons that represent common ways of showing date and time</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"bell icon\"></i>bell</div>\n        <div class=\"column\"><i class=\"bell outline icon\"></i>bell outline</div>\n        <div class=\"column\"><i class=\"bell slash icon\"></i>bell slash</div>\n        <div class=\"column\"><i class=\"bell slash outline icon\"></i>bell slash outline</div>\n        <div class=\"column\"><i class=\"calendar icon\"></i>calendar</div>\n        <div class=\"column\"><i class=\"calendar outline icon\"></i>calendar outline</div>\n        <div class=\"column\"><i class=\"calendar alternate icon\"></i>calendar alternate</div>\n        <div class=\"column\"><i class=\"calendar alternate outline icon\"></i>calendar alternate outline</div>\n        <div class=\"column\"><i class=\"calendar check icon\"></i>calendar check</div>\n        <div class=\"column\"><i class=\"calendar check outline icon\"></i>calendar check outline</div>\n        <div class=\"column\"><i class=\"calendar minus icon\"></i>calendar minus</div>\n        <div class=\"column\"><i class=\"calendar minus outline icon\"></i>calendar minus outline</div>\n        <div class=\"column\"><i class=\"calendar plus icon\"></i>calendar plus</div>\n        <div class=\"column\"><i class=\"calendar plus outline icon\"></i>calendar plus outline</div>\n        <div class=\"column\"><i class=\"calendar times icon\"></i>calendar times</div>\n        <div class=\"column\"><i class=\"calendar times outline icon\"></i>calendar times outline</div>\n        <div class=\"column\"><i class=\"clock icon\"></i>clock</div>\n        <div class=\"column\"><i class=\"clock outline icon\"></i>clock outline</div>\n        <div class=\"column\"><i class=\"hourglass icon\"></i>hourglass</div>\n        <div class=\"column\"><i class=\"hourglass outline icon\"></i>hourglass outline</div>\n        <div class=\"column\"><i class=\"hourglass end icon\"></i>hourglass end</div>\n        <div class=\"column\"><i class=\"hourglass half icon\"></i>hourglass half</div>\n        <div class=\"column\"><i class=\"hourglass start icon\"></i>hourglass start</div>\n        <div class=\"column\"><i class=\"stopwatch icon\"></i>stopwatch</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"bell icon\"></i>\n        <i class=\"bell outline icon\"></i>\n        <i class=\"bell slash icon\"></i>\n        <i class=\"bell slash outline icon\"></i>\n        <i class=\"calendar icon\"></i>\n        <i class=\"calendar outline icon\"></i>\n        <i class=\"calendar alternate icon\"></i>\n        <i class=\"calendar alternate outline icon\"></i>\n        <i class=\"calendar check icon\"></i>\n        <i class=\"calendar check outline icon\"></i>\n        <i class=\"calendar minus icon\"></i>\n        <i class=\"calendar minus outline icon\"></i>\n        <i class=\"calendar plus icon\"></i>\n        <i class=\"calendar plus outline icon\"></i>\n        <i class=\"calendar times icon\"></i>\n        <i class=\"calendar times outline icon\"></i>\n        <i class=\"clock icon\"></i>\n        <i class=\"clock outline icon\"></i>\n        <i class=\"hourglass icon\"></i>\n        <i class=\"hourglass outline icon\"></i>\n        <i class=\"hourglass end icon\"></i>\n        <i class=\"hourglass half icon\"></i>\n        <i class=\"hourglass start icon\"></i>\n        <i class=\"stopwatch icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Design</h4>\n      <p>Icons can represent common design related symbols or techniques</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"adjust icon\"></i>adjust</div>\n        <div class=\"column\"><i class=\"clone icon\"></i>clone</div>\n        <div class=\"column\"><i class=\"clone outline icon\"></i>clone outline</div>\n        <div class=\"column\"><i class=\"copy icon\"></i>copy</div>\n        <div class=\"column\"><i class=\"copy outline icon\"></i>copy outline</div>\n        <div class=\"column\"><i class=\"crop icon\"></i>crop</div>\n        <div class=\"column\"><i class=\"crosshairs icon\"></i>crosshairs</div>\n        <div class=\"column\"><i class=\"cut icon\"></i>cut</div>\n        <div class=\"column\"><i class=\"edit icon\"></i>edit</div>\n        <div class=\"column\"><i class=\"edit outline icon\"></i>edit outline</div>\n        <div class=\"column\"><i class=\"eraser icon\"></i>eraser</div>\n        <div class=\"column\"><i class=\"eye icon\"></i>eye</div>\n        <div class=\"column\"><i class=\"eye dropper icon\"></i>eye dropper</div>\n        <div class=\"column\"><i class=\"eye slash icon\"></i>eye slash</div>\n        <div class=\"column\"><i class=\"eye slash outline icon\"></i>eye slash outline</div>\n        <div class=\"column\"><i class=\"object group icon\"></i>object group</div>\n        <div class=\"column\"><i class=\"object group outline icon\"></i>object group outline</div>\n        <div class=\"column\"><i class=\"object ungroup icon\"></i>object ungroup</div>\n        <div class=\"column\"><i class=\"object ungroup outline icon\"></i>object ungroup outline</div>\n        <div class=\"column\"><i class=\"paint brush icon\"></i>paint brush</div>\n        <div class=\"column\"><i class=\"paste icon\"></i>paste</div>\n        <div class=\"column\"><i class=\"pencil alternate icon\"></i>pencil alternate</div>\n        <div class=\"column\"><i class=\"save icon\"></i>save</div>\n        <div class=\"column\"><i class=\"save outline icon\"></i>save outline</div>\n        <div class=\"column\"><i class=\"tint icon\"></i>tint</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"adjust icon\"></i>\n        <i class=\"clone icon\"></i>\n        <i class=\"clone outline icon\"></i>\n        <i class=\"copy icon\"></i>\n        <i class=\"copy outline icon\"></i>\n        <i class=\"crop icon\"></i>\n        <i class=\"crosshairs icon\"></i>\n        <i class=\"cut icon\"></i>\n        <i class=\"edit icon\"></i>\n        <i class=\"edit outline icon\"></i>\n        <i class=\"eraser icon\"></i>\n        <i class=\"eye icon\"></i>\n        <i class=\"eye dropper icon\"></i>\n        <i class=\"eye slash icon\"></i>\n        <i class=\"eye slash outline icon\"></i>\n        <i class=\"object group icon\"></i>\n        <i class=\"object group outline icon\"></i>\n        <i class=\"object ungroup icon\"></i>\n        <i class=\"object ungroup outline icon\"></i>\n        <i class=\"paint brush icon\"></i>\n        <i class=\"paste icon\"></i>\n        <i class=\"pencil alternate icon\"></i>\n        <i class=\"save icon\"></i>\n        <i class=\"save outline icon\"></i>\n        <i class=\"tint icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Editors</h4>\n      <p>Icons can represent text editors and common editor actions</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"align center icon\"></i>align center</div>\n        <div class=\"column\"><i class=\"align justify icon\"></i>align justify</div>\n        <div class=\"column\"><i class=\"align left icon\"></i>align left</div>\n        <div class=\"column\"><i class=\"align right icon\"></i>align right</div>\n        <div class=\"column\"><i class=\"bold icon\"></i>bold</div>\n        <div class=\"column\"><i class=\"clipboard icon\"></i>clipboard</div>\n        <div class=\"column\"><i class=\"clipboard outline icon\"></i>clipboard outline</div>\n        <div class=\"column\"><i class=\"clone icon\"></i>clone</div>\n        <div class=\"column\"><i class=\"clone outline icon\"></i>clone outline</div>\n        <div class=\"column\"><i class=\"columns icon\"></i>columns</div>\n        <div class=\"column\"><i class=\"copy icon\"></i>copy</div>\n        <div class=\"column\"><i class=\"copy outline icon\"></i>copy outline</div>\n        <div class=\"column\"><i class=\"cut icon\"></i>cut</div>\n        <div class=\"column\"><i class=\"edit icon\"></i>edit</div>\n        <div class=\"column\"><i class=\"edit outline icon\"></i>edit outline</div>\n        <div class=\"column\"><i class=\"eraser icon\"></i>eraser</div>\n        <div class=\"column\"><i class=\"file icon\"></i>file</div>\n        <div class=\"column\"><i class=\"file outline icon\"></i>file outline</div>\n        <div class=\"column\"><i class=\"file alternate icon\"></i>file alternate</div>\n        <div class=\"column\"><i class=\"file alternate outline icon\"></i>file alternate outline</div>\n        <div class=\"column\"><i class=\"font icon\"></i>font</div>\n        <div class=\"column\"><i class=\"heading icon\"></i>heading</div>\n        <div class=\"column\"><i class=\"i cursor icon\"></i>i cursor</div>\n        <div class=\"column\"><i class=\"indent icon\"></i>indent</div>\n        <div class=\"column\"><i class=\"italic icon\"></i>italic</div>\n        <div class=\"column\"><i class=\"linkify icon\"></i>linkify</div>\n        <div class=\"column\"><i class=\"list icon\"></i>list</div>\n        <div class=\"column\"><i class=\"list alternate icon\"></i>list alternate</div>\n        <div class=\"column\"><i class=\"list alternate outline icon\"></i>list alternate outline</div>\n        <div class=\"column\"><i class=\"list ol icon\"></i>list ol</div>\n        <div class=\"column\"><i class=\"list ul icon\"></i>list ul</div>\n        <div class=\"column\"><i class=\"outdent icon\"></i>outdent</div>\n        <div class=\"column\"><i class=\"paper plane icon\"></i>paper plane</div>\n        <div class=\"column\"><i class=\"paper plane outline icon\"></i>paper plane outline</div>\n        <div class=\"column\"><i class=\"paperclip icon\"></i>paperclip</div>\n        <div class=\"column\"><i class=\"paragraph icon\"></i>paragraph</div>\n        <div class=\"column\"><i class=\"paste icon\"></i>paste</div>\n        <div class=\"column\"><i class=\"pencil alternate icon\"></i>pencil alternate</div>\n        <div class=\"column\"><i class=\"print icon\"></i>print</div>\n        <div class=\"column\"><i class=\"quote left icon\"></i>quote left</div>\n        <div class=\"column\"><i class=\"quote right icon\"></i>quote right</div>\n        <div class=\"column\"><i class=\"redo icon\"></i>redo</div>\n        <div class=\"column\"><i class=\"redo alternate icon\"></i>redo alternate</div>\n        <div class=\"column\"><i class=\"reply icon\"></i>reply</div>\n        <div class=\"column\"><i class=\"reply all icon\"></i>reply all</div>\n        <div class=\"column\"><i class=\"share icon\"></i>share</div>\n        <div class=\"column\"><i class=\"strikethrough icon\"></i>strikethrough</div>\n        <div class=\"column\"><i class=\"subscript icon\"></i>subscript</div>\n        <div class=\"column\"><i class=\"superscript icon\"></i>superscript</div>\n        <div class=\"column\"><i class=\"sync icon\"></i>sync</div>\n        <div class=\"column\"><i class=\"sync alternate icon\"></i>sync alternate</div>\n        <div class=\"column\"><i class=\"table icon\"></i>table</div>\n        <div class=\"column\"><i class=\"tasks icon\"></i>tasks</div>\n        <div class=\"column\"><i class=\"text height icon\"></i>text height</div>\n        <div class=\"column\"><i class=\"text width icon\"></i>text width</div>\n        <div class=\"column\"><i class=\"th icon\"></i>th</div>\n        <div class=\"column\"><i class=\"th large icon\"></i>th large</div>\n        <div class=\"column\"><i class=\"th list icon\"></i>th list</div>\n        <div class=\"column\"><i class=\"trash icon\"></i>trash</div>\n        <div class=\"column\"><i class=\"trash alternate icon\"></i>trash alternate</div>\n        <div class=\"column\"><i class=\"trash alternate outline icon\"></i>trash alternate outline</div>\n        <div class=\"column\"><i class=\"underline icon\"></i>underline</div>\n        <div class=\"column\"><i class=\"undo icon\"></i>undo</div>\n        <div class=\"column\"><i class=\"undo alternate icon\"></i>undo alternate</div>\n        <div class=\"column\"><i class=\"unlink icon\"></i>unlink</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"align center icon\"></i>\n        <i class=\"align justify icon\"></i>\n        <i class=\"align left icon\"></i>\n        <i class=\"align right icon\"></i>\n        <i class=\"bold icon\"></i>\n        <i class=\"clipboard icon\"></i>\n        <i class=\"clipboard outline icon\"></i>\n        <i class=\"clone icon\"></i>\n        <i class=\"clone outline icon\"></i>\n        <i class=\"columns icon\"></i>\n        <i class=\"copy icon\"></i>\n        <i class=\"copy outline icon\"></i>\n        <i class=\"cut icon\"></i>\n        <i class=\"edit icon\"></i>\n        <i class=\"edit outline icon\"></i>\n        <i class=\"eraser icon\"></i>\n        <i class=\"file icon\"></i>\n        <i class=\"file outline icon\"></i>\n        <i class=\"file alternate icon\"></i>\n        <i class=\"file alternate outline icon\"></i>\n        <i class=\"font icon\"></i>\n        <i class=\"heading icon\"></i>\n        <i class=\"i cursor icon\"></i>\n        <i class=\"indent icon\"></i>\n        <i class=\"italic icon\"></i>\n        <i class=\"linkify icon\"></i>\n        <i class=\"list icon\"></i>\n        <i class=\"list alternate icon\"></i>\n        <i class=\"list alternate outline icon\"></i>\n        <i class=\"list ol icon\"></i>\n        <i class=\"list ul icon\"></i>\n        <i class=\"outdent icon\"></i>\n        <i class=\"paper plane icon\"></i>\n        <i class=\"paper plane outline icon\"></i>\n        <i class=\"paperclip icon\"></i>\n        <i class=\"paragraph icon\"></i>\n        <i class=\"paste icon\"></i>\n        <i class=\"pencil alternate icon\"></i>\n        <i class=\"print icon\"></i>\n        <i class=\"quote left icon\"></i>\n        <i class=\"quote right icon\"></i>\n        <i class=\"redo icon\"></i>\n        <i class=\"redo alternate icon\"></i>\n        <i class=\"reply icon\"></i>\n        <i class=\"reply all icon\"></i>\n        <i class=\"share icon\"></i>\n        <i class=\"strikethrough icon\"></i>\n        <i class=\"subscript icon\"></i>\n        <i class=\"superscript icon\"></i>\n        <i class=\"sync icon\"></i>\n        <i class=\"sync alternate icon\"></i>\n        <i class=\"table icon\"></i>\n        <i class=\"tasks icon\"></i>\n        <i class=\"text height icon\"></i>\n        <i class=\"text width icon\"></i>\n        <i class=\"th icon\"></i>\n        <i class=\"th large icon\"></i>\n        <i class=\"th list icon\"></i>\n        <i class=\"trash icon\"></i>\n        <i class=\"trash alternate icon\"></i>\n        <i class=\"trash alternate outline icon\"></i>\n        <i class=\"underline icon\"></i>\n        <i class=\"undo icon\"></i>\n        <i class=\"undo alternate icon\"></i>\n        <i class=\"unlink icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Files</h4>\n      <p>Icons can represent elements of a computer and its file system</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"archive icon\"></i>archive</div>\n        <div class=\"column\"><i class=\"clone icon\"></i>clone</div>\n        <div class=\"column\"><i class=\"clone outline icon\"></i>clone outline</div>\n        <div class=\"column\"><i class=\"copy icon\"></i>copy</div>\n        <div class=\"column\"><i class=\"copy outline icon\"></i>copy outline</div>\n        <div class=\"column\"><i class=\"cut icon\"></i>cut</div>\n        <div class=\"column\"><i class=\"file icon\"></i>file</div>\n        <div class=\"column\"><i class=\"file outline icon\"></i>file outline</div>\n        <div class=\"column\"><i class=\"file alternate icon\"></i>file alternate</div>\n        <div class=\"column\"><i class=\"file alternate outline icon\"></i>file alternate outline</div>\n        <div class=\"column\"><i class=\"file archive icon\"></i>file archive</div>\n        <div class=\"column\"><i class=\"file archive outline icon\"></i>file archive outline</div>\n        <div class=\"column\"><i class=\"file audio icon\"></i>file audio</div>\n        <div class=\"column\"><i class=\"file audio outline icon\"></i>file audio outline</div>\n        <div class=\"column\"><i class=\"file code icon\"></i>file code</div>\n        <div class=\"column\"><i class=\"file code outline icon\"></i>file code outline</div>\n        <div class=\"column\"><i class=\"file excel icon\"></i>file excel</div>\n        <div class=\"column\"><i class=\"file excel outline icon\"></i>file excel outline</div>\n        <div class=\"column\"><i class=\"file image icon\"></i>file image</div>\n        <div class=\"column\"><i class=\"file image outline icon\"></i>file image outline</div>\n        <div class=\"column\"><i class=\"file pdf icon\"></i>file pdf</div>\n        <div class=\"column\"><i class=\"file pdf outline icon\"></i>file pdf outline</div>\n        <div class=\"column\"><i class=\"file powerpoint icon\"></i>file powerpoint</div>\n        <div class=\"column\"><i class=\"file powerpoint outline icon\"></i>file powerpoint outline</div>\n        <div class=\"column\"><i class=\"file video icon\"></i>file video</div>\n        <div class=\"column\"><i class=\"file video outline icon\"></i>file video outline</div>\n        <div class=\"column\"><i class=\"file word icon\"></i>file word</div>\n        <div class=\"column\"><i class=\"file word outline icon\"></i>file word outline</div>\n        <div class=\"column\"><i class=\"folder icon\"></i>folder</div>\n        <div class=\"column\"><i class=\"folder outline icon\"></i>folder outline</div>\n        <div class=\"column\"><i class=\"folder open icon\"></i>folder open</div>\n        <div class=\"column\"><i class=\"folder open outline icon\"></i>folder open outline</div>\n        <div class=\"column\"><i class=\"paste icon\"></i>paste</div>\n        <div class=\"column\"><i class=\"save icon\"></i>save</div>\n        <div class=\"column\"><i class=\"save outline icon\"></i>save outline</div>\n        <div class=\"column\"><i class=\"sticky note icon\"></i>sticky note</div>\n        <div class=\"column\"><i class=\"sticky note outline icon\"></i>sticky note outline</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"archive icon\"></i>\n        <i class=\"clone icon\"></i>\n        <i class=\"clone outline icon\"></i>\n        <i class=\"copy icon\"></i>\n        <i class=\"copy outline icon\"></i>\n        <i class=\"cut icon\"></i>\n        <i class=\"file icon\"></i>\n        <i class=\"file outline icon\"></i>\n        <i class=\"file alternate icon\"></i>\n        <i class=\"file alternate outline icon\"></i>\n        <i class=\"file archive icon\"></i>\n        <i class=\"file archive outline icon\"></i>\n        <i class=\"file audio icon\"></i>\n        <i class=\"file audio outline icon\"></i>\n        <i class=\"file code icon\"></i>\n        <i class=\"file code outline icon\"></i>\n        <i class=\"file excel icon\"></i>\n        <i class=\"file excel outline icon\"></i>\n        <i class=\"file image icon\"></i>\n        <i class=\"file image outline icon\"></i>\n        <i class=\"file pdf icon\"></i>\n        <i class=\"file pdf outline icon\"></i>\n        <i class=\"file powerpoint icon\"></i>\n        <i class=\"file powerpoint outline icon\"></i>\n        <i class=\"file video icon\"></i>\n        <i class=\"file video outline icon\"></i>\n        <i class=\"file word icon\"></i>\n        <i class=\"file word outline icon\"></i>\n        <i class=\"folder icon\"></i>\n        <i class=\"folder outline icon\"></i>\n        <i class=\"folder open icon\"></i>\n        <i class=\"folder open outline icon\"></i>\n        <i class=\"paste icon\"></i>\n        <i class=\"save icon\"></i>\n        <i class=\"save outline icon\"></i>\n        <i class=\"sticky note icon\"></i>\n        <i class=\"sticky note outline icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Genders</h4>\n      <p>Icons can represent genders or types of sexuality</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"genderless icon\"></i>genderless</div>\n        <div class=\"column\"><i class=\"mars icon\"></i>mars</div>\n        <div class=\"column\"><i class=\"mars double icon\"></i>mars double</div>\n        <div class=\"column\"><i class=\"mars stroke icon\"></i>mars stroke</div>\n        <div class=\"column\"><i class=\"mars stroke horizontal icon\"></i>mars stroke horizontal</div>\n        <div class=\"column\"><i class=\"mars stroke vertical icon\"></i>mars stroke vertical</div>\n        <div class=\"column\"><i class=\"mercury icon\"></i>mercury</div>\n        <div class=\"column\"><i class=\"neuter icon\"></i>neuter</div>\n        <div class=\"column\"><i class=\"transgender icon\"></i>transgender</div>\n        <div class=\"column\"><i class=\"transgender alternate icon\"></i>transgender alternate</div>\n        <div class=\"column\"><i class=\"venus icon\"></i>venus</div>\n        <div class=\"column\"><i class=\"venus double icon\"></i>venus double</div>\n        <div class=\"column\"><i class=\"venus mars icon\"></i>venus mars</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"genderless icon\"></i>\n        <i class=\"mars icon\"></i>\n        <i class=\"mars double icon\"></i>\n        <i class=\"mars stroke icon\"></i>\n        <i class=\"mars stroke horizontal icon\"></i>\n        <i class=\"mars stroke vertical icon\"></i>\n        <i class=\"mercury icon\"></i>\n        <i class=\"neuter icon\"></i>\n        <i class=\"transgender icon\"></i>\n        <i class=\"transgender alternate icon\"></i>\n        <i class=\"venus icon\"></i>\n        <i class=\"venus double icon\"></i>\n        <i class=\"venus mars icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Hands & Gestures</h4>\n      <p>Icons can represent hand signals and gestures</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"hand lizard icon\"></i>hand lizard</div>\n        <div class=\"column\"><i class=\"hand lizard outline icon\"></i>hand lizard outline</div>\n        <div class=\"column\"><i class=\"hand paper icon\"></i>hand paper</div>\n        <div class=\"column\"><i class=\"hand paper outline icon\"></i>hand paper outline</div>\n        <div class=\"column\"><i class=\"hand peace icon\"></i>hand peace</div>\n        <div class=\"column\"><i class=\"hand peace outline icon\"></i>hand peace outline</div>\n        <div class=\"column\"><i class=\"hand point down icon\"></i>hand point down</div>\n        <div class=\"column\"><i class=\"hand point down outline icon\"></i>hand point down outline</div>\n        <div class=\"column\"><i class=\"hand point left icon\"></i>hand point left</div>\n        <div class=\"column\"><i class=\"hand point left outline icon\"></i>hand point left outline</div>\n        <div class=\"column\"><i class=\"hand point right icon\"></i>hand point right</div>\n        <div class=\"column\"><i class=\"hand point right outline icon\"></i>hand point right outline</div>\n        <div class=\"column\"><i class=\"hand point up icon\"></i>hand point up</div>\n        <div class=\"column\"><i class=\"hand point up outline icon\"></i>hand point up outline</div>\n        <div class=\"column\"><i class=\"hand pointer icon\"></i>hand pointer</div>\n        <div class=\"column\"><i class=\"hand pointer outline icon\"></i>hand pointer outline</div>\n        <div class=\"column\"><i class=\"hand rock icon\"></i>hand rock</div>\n        <div class=\"column\"><i class=\"hand rock outline icon\"></i>hand rock outline</div>\n        <div class=\"column\"><i class=\"hand scissors icon\"></i>hand scissors</div>\n        <div class=\"column\"><i class=\"hand scissors outline icon\"></i>hand scissors outline</div>\n        <div class=\"column\"><i class=\"hand spock icon\"></i>hand spock</div>\n        <div class=\"column\"><i class=\"hand spock outline icon\"></i>hand spock outline</div>\n        <div class=\"column\"><i class=\"handshake icon\"></i>handshake</div>\n        <div class=\"column\"><i class=\"handshake outline icon\"></i>handshake outline</div>\n        <div class=\"column\"><i class=\"thumbs down icon\"></i>thumbs down</div>\n        <div class=\"column\"><i class=\"thumbs down outline icon\"></i>thumbs down outline</div>\n        <div class=\"column\"><i class=\"thumbs up icon\"></i>thumbs up</div>\n        <div class=\"column\"><i class=\"thumbs up outline icon\"></i>thumbs up outline</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"hand lizard icon\"></i>\n        <i class=\"hand lizard outline icon\"></i>\n        <i class=\"hand paper icon\"></i>\n        <i class=\"hand paper outline icon\"></i>\n        <i class=\"hand peace icon\"></i>\n        <i class=\"hand peace outline icon\"></i>\n        <i class=\"hand point down icon\"></i>\n        <i class=\"hand point down outline icon\"></i>\n        <i class=\"hand point left icon\"></i>\n        <i class=\"hand point left outline icon\"></i>\n        <i class=\"hand point right icon\"></i>\n        <i class=\"hand point right outline icon\"></i>\n        <i class=\"hand point up icon\"></i>\n        <i class=\"hand point up outline icon\"></i>\n        <i class=\"hand pointer icon\"></i>\n        <i class=\"hand pointer outline icon\"></i>\n        <i class=\"hand rock icon\"></i>\n        <i class=\"hand rock outline icon\"></i>\n        <i class=\"hand scissors icon\"></i>\n        <i class=\"hand scissors outline icon\"></i>\n        <i class=\"hand spock icon\"></i>\n        <i class=\"hand spock outline icon\"></i>\n        <i class=\"handshake icon\"></i>\n        <i class=\"handshake outline icon\"></i>\n        <i class=\"thumbs down icon\"></i>\n        <i class=\"thumbs down outline icon\"></i>\n        <i class=\"thumbs up icon\"></i>\n        <i class=\"thumbs up outline icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Health</h4>\n      <p>Icons which represent common health symbols</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"ambulance icon\"></i>ambulance</div>\n        <div class=\"column\"><i class=\"h square icon\"></i>h square</div>\n        <div class=\"column\"><i class=\"heart icon\"></i>heart</div>\n        <div class=\"column\"><i class=\"heart outline icon\"></i>heart outline</div>\n        <div class=\"column\"><i class=\"heartbeat icon\"></i>heartbeat</div>\n        <div class=\"column\"><i class=\"hospital icon\"></i>hospital</div>\n        <div class=\"column\"><i class=\"hospital outline icon\"></i>hospital outline</div>\n        <div class=\"column\"><i class=\"medkit icon\"></i>medkit</div>\n        <div class=\"column\"><i class=\"plus square icon\"></i>plus square</div>\n        <div class=\"column\"><i class=\"plus square outline icon\"></i>plus square outline</div>\n        <div class=\"column\"><i class=\"stethoscope icon\"></i>stethoscope</div>\n        <div class=\"column\"><i class=\"user md icon\"></i>user md</div>\n        <div class=\"column\"><i class=\"wheelchair icon\"></i>wheelchair</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"ambulance icon\"></i>\n        <i class=\"h square icon\"></i>\n        <i class=\"heart icon\"></i>\n        <i class=\"heart outline icon\"></i>\n        <i class=\"heartbeat icon\"></i>\n        <i class=\"hospital icon\"></i>\n        <i class=\"hospital outline icon\"></i>\n        <i class=\"medkit icon\"></i>\n        <i class=\"plus square icon\"></i>\n        <i class=\"plus square outline icon\"></i>\n        <i class=\"stethoscope icon\"></i>\n        <i class=\"user md icon\"></i>\n        <i class=\"wheelchair icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Images</h4>\n      <p>Icons that represent common image symbols and actions</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"adjust icon\"></i>adjust</div>\n        <div class=\"column\"><i class=\"bolt icon\"></i>bolt</div>\n        <div class=\"column\"><i class=\"camera icon\"></i>camera</div>\n        <div class=\"column\"><i class=\"camera retro icon\"></i>camera retro</div>\n        <div class=\"column\"><i class=\"clone icon\"></i>clone</div>\n        <div class=\"column\"><i class=\"clone outline icon\"></i>clone outline</div>\n        <div class=\"column\"><i class=\"compress icon\"></i>compress</div>\n        <div class=\"column\"><i class=\"expand icon\"></i>expand</div>\n        <div class=\"column\"><i class=\"eye icon\"></i>eye</div>\n        <div class=\"column\"><i class=\"eye dropper icon\"></i>eye dropper</div>\n        <div class=\"column\"><i class=\"eye slash icon\"></i>eye slash</div>\n        <div class=\"column\"><i class=\"eye slash outline icon\"></i>eye slash outline</div>\n        <div class=\"column\"><i class=\"file image icon\"></i>file image</div>\n        <div class=\"column\"><i class=\"file image outline icon\"></i>file image outline</div>\n        <div class=\"column\"><i class=\"film icon\"></i>film</div>\n        <div class=\"column\"><i class=\"id badge icon\"></i>id badge</div>\n        <div class=\"column\"><i class=\"id badge outline icon\"></i>id badge outline</div>\n        <div class=\"column\"><i class=\"id card icon\"></i>id card</div>\n        <div class=\"column\"><i class=\"id card outline icon\"></i>id card outline</div>\n        <div class=\"column\"><i class=\"image icon\"></i>image</div>\n        <div class=\"column\"><i class=\"image outline icon\"></i>image outline</div>\n        <div class=\"column\"><i class=\"images icon\"></i>images</div>\n        <div class=\"column\"><i class=\"images outline icon\"></i>images outline</div>\n        <div class=\"column\"><i class=\"sliders horizontal icon\"></i>sliders horizontal</div>\n        <div class=\"column\"><i class=\"tint icon\"></i>tint</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"adjust icon\"></i>\n        <i class=\"bolt icon\"></i>\n        <i class=\"camera icon\"></i>\n        <i class=\"camera retro icon\"></i>\n        <i class=\"clone icon\"></i>\n        <i class=\"clone outline icon\"></i>\n        <i class=\"compress icon\"></i>\n        <i class=\"expand icon\"></i>\n        <i class=\"eye icon\"></i>\n        <i class=\"eye dropper icon\"></i>\n        <i class=\"eye slash icon\"></i>\n        <i class=\"eye slash outline icon\"></i>\n        <i class=\"file image icon\"></i>\n        <i class=\"file image outline icon\"></i>\n        <i class=\"film icon\"></i>\n        <i class=\"id badge icon\"></i>\n        <i class=\"id badge outline icon\"></i>\n        <i class=\"id card icon\"></i>\n        <i class=\"id card outline icon\"></i>\n        <i class=\"image icon\"></i>\n        <i class=\"image outline icon\"></i>\n        <i class=\"images icon\"></i>\n        <i class=\"images outline icon\"></i>\n        <i class=\"sliders horizontal icon\"></i>\n        <i class=\"tint icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Interfaces</h4>\n      <p>Icons can represent common actions a user can take or use</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"ban icon\"></i>ban</div>\n        <div class=\"column\"><i class=\"barcode icon\"></i>barcode</div>\n        <div class=\"column\"><i class=\"bars icon\"></i>bars</div>\n        <div class=\"column\"><i class=\"beer icon\"></i>beer</div>\n        <div class=\"column\"><i class=\"bell icon\"></i>bell</div>\n        <div class=\"column\"><i class=\"bell outline icon\"></i>bell outline</div>\n        <div class=\"column\"><i class=\"bell slash icon\"></i>bell slash</div>\n        <div class=\"column\"><i class=\"bell slash outline icon\"></i>bell slash outline</div>\n        <div class=\"column\"><i class=\"bug icon\"></i>bug</div>\n        <div class=\"column\"><i class=\"bullhorn icon\"></i>bullhorn</div>\n        <div class=\"column\"><i class=\"bullseye icon\"></i>bullseye</div>\n        <div class=\"column\"><i class=\"calculator icon\"></i>calculator</div>\n        <div class=\"column\"><i class=\"calendar icon\"></i>calendar</div>\n        <div class=\"column\"><i class=\"calendar outline icon\"></i>calendar outline</div>\n        <div class=\"column\"><i class=\"calendar alternate icon\"></i>calendar alternate</div>\n        <div class=\"column\"><i class=\"calendar alternate outline icon\"></i>calendar alternate outline</div>\n        <div class=\"column\"><i class=\"calendar check icon\"></i>calendar check</div>\n        <div class=\"column\"><i class=\"calendar check outline icon\"></i>calendar check outline</div>\n        <div class=\"column\"><i class=\"calendar minus icon\"></i>calendar minus</div>\n        <div class=\"column\"><i class=\"calendar minus outline icon\"></i>calendar minus outline</div>\n        <div class=\"column\"><i class=\"calendar plus icon\"></i>calendar plus</div>\n        <div class=\"column\"><i class=\"calendar plus outline icon\"></i>calendar plus outline</div>\n        <div class=\"column\"><i class=\"calendar times icon\"></i>calendar times</div>\n        <div class=\"column\"><i class=\"calendar times outline icon\"></i>calendar times outline</div>\n        <div class=\"column\"><i class=\"certificate icon\"></i>certificate</div>\n        <div class=\"column\"><i class=\"check icon\"></i>check</div>\n        <div class=\"column\"><i class=\"check circle icon\"></i>check circle</div>\n        <div class=\"column\"><i class=\"check circle outline icon\"></i>check circle outline</div>\n        <div class=\"column\"><i class=\"check square icon\"></i>check square</div>\n        <div class=\"column\"><i class=\"check square outline icon\"></i>check square outline</div>\n        <div class=\"column\"><i class=\"circle icon\"></i>circle</div>\n        <div class=\"column\"><i class=\"circle outline icon\"></i>circle outline</div>\n        <div class=\"column\"><i class=\"clipboard icon\"></i>clipboard</div>\n        <div class=\"column\"><i class=\"clipboard outline icon\"></i>clipboard outline</div>\n        <div class=\"column\"><i class=\"clone icon\"></i>clone</div>\n        <div class=\"column\"><i class=\"clone outline icon\"></i>clone outline</div>\n        <div class=\"column\"><i class=\"cloud icon\"></i>cloud</div>\n        <div class=\"column\"><i class=\"cloud download icon\"></i>cloud download</div>\n        <div class=\"column\"><i class=\"cloud upload icon\"></i>cloud upload</div>\n        <div class=\"column\"><i class=\"close icon\"></i>close icon</div>\n        <div class=\"column\"><i class=\"coffee icon\"></i>coffee</div>\n        <div class=\"column\"><i class=\"cog icon\"></i>cog</div>\n        <div class=\"column\"><i class=\"cogs icon\"></i>cogs</div>\n        <div class=\"column\"><i class=\"copy icon\"></i>copy</div>\n        <div class=\"column\"><i class=\"copy outline icon\"></i>copy outline</div>\n        <div class=\"column\"><i class=\"cut icon\"></i>cut</div>\n        <div class=\"column\"><i class=\"database icon\"></i>database</div>\n        <div class=\"column\"><i class=\"dot circle icon\"></i>dot circle</div>\n        <div class=\"column\"><i class=\"dot circle outline icon\"></i>dot circle outline</div>\n        <div class=\"column\"><i class=\"download icon\"></i>download</div>\n        <div class=\"column\"><i class=\"edit icon\"></i>edit</div>\n        <div class=\"column\"><i class=\"edit outline icon\"></i>edit outline</div>\n        <div class=\"column\"><i class=\"ellipsis horizontal icon\"></i>ellipsis horizontal</div>\n        <div class=\"column\"><i class=\"ellipsis vertical icon\"></i>ellipsis vertical</div>\n        <div class=\"column\"><i class=\"envelope icon\"></i>envelope</div>\n        <div class=\"column\"><i class=\"envelope outline icon\"></i>envelope outline</div>\n        <div class=\"column\"><i class=\"envelope open icon\"></i>envelope open</div>\n        <div class=\"column\"><i class=\"envelope open outline icon\"></i>envelope open outline</div>\n        <div class=\"column\"><i class=\"eraser icon\"></i>eraser</div>\n        <div class=\"column\"><i class=\"exclamation icon\"></i>exclamation</div>\n        <div class=\"column\"><i class=\"exclamation circle icon\"></i>exclamation circle</div>\n        <div class=\"column\"><i class=\"exclamation triangle icon\"></i>exclamation triangle</div>\n        <div class=\"column\"><i class=\"external alternate icon\"></i>external alternate</div>\n        <div class=\"column\"><i class=\"external square alternate icon\"></i>external square alternate</div>\n        <div class=\"column\"><i class=\"eye icon\"></i>eye</div>\n        <div class=\"column\"><i class=\"eye slash icon\"></i>eye slash</div>\n        <div class=\"column\"><i class=\"eye slash outline icon\"></i>eye slash outline</div>\n        <div class=\"column\"><i class=\"file icon\"></i>file</div>\n        <div class=\"column\"><i class=\"file outline icon\"></i>file outline</div>\n        <div class=\"column\"><i class=\"file alternate icon\"></i>file alternate</div>\n        <div class=\"column\"><i class=\"file alternate outline icon\"></i>file alternate outline</div>\n        <div class=\"column\"><i class=\"filter icon\"></i>filter</div>\n        <div class=\"column\"><i class=\"flag icon\"></i>flag</div>\n        <div class=\"column\"><i class=\"flag outline icon\"></i>flag outline</div>\n        <div class=\"column\"><i class=\"flag checkered icon\"></i>flag checkered</div>\n        <div class=\"column\"><i class=\"folder icon\"></i>folder</div>\n        <div class=\"column\"><i class=\"folder outline icon\"></i>folder outline</div>\n        <div class=\"column\"><i class=\"folder open icon\"></i>folder open</div>\n        <div class=\"column\"><i class=\"folder open outline icon\"></i>folder open outline</div>\n        <div class=\"column\"><i class=\"frown icon\"></i>frown</div>\n        <div class=\"column\"><i class=\"frown outline icon\"></i>frown outline</div>\n        <div class=\"column\"><i class=\"hashtag icon\"></i>hashtag</div>\n        <div class=\"column\"><i class=\"heart icon\"></i>heart</div>\n        <div class=\"column\"><i class=\"heart outline icon\"></i>heart outline</div>\n        <div class=\"column\"><i class=\"history icon\"></i>history</div>\n        <div class=\"column\"><i class=\"home icon\"></i>home</div>\n        <div class=\"column\"><i class=\"i cursor icon\"></i>i cursor</div>\n        <div class=\"column\"><i class=\"info icon\"></i>info</div>\n        <div class=\"column\"><i class=\"info circle icon\"></i>info circle</div>\n        <div class=\"column\"><i class=\"language icon\"></i>language</div>\n        <div class=\"column\"><i class=\"magic icon\"></i>magic</div>\n        <div class=\"column\"><i class=\"meh icon\"></i>meh</div>\n        <div class=\"column\"><i class=\"meh outline icon\"></i>meh outline</div>\n        <div class=\"column\"><i class=\"microphone icon\"></i>microphone</div>\n        <div class=\"column\"><i class=\"microphone slash icon\"></i>microphone slash</div>\n        <div class=\"column\"><i class=\"minus icon\"></i>minus</div>\n        <div class=\"column\"><i class=\"minus circle icon\"></i>minus circle</div>\n        <div class=\"column\"><i class=\"minus square icon\"></i>minus square</div>\n        <div class=\"column\"><i class=\"minus square outline icon\"></i>minus square outline</div>\n        <div class=\"column\"><i class=\"paste icon\"></i>paste</div>\n        <div class=\"column\"><i class=\"pencil alternate icon\"></i>pencil alternate</div>\n        <div class=\"column\"><i class=\"plus icon\"></i>plus</div>\n        <div class=\"column\"><i class=\"plus circle icon\"></i>plus circle</div>\n        <div class=\"column\"><i class=\"plus square icon\"></i>plus square</div>\n        <div class=\"column\"><i class=\"plus square outline icon\"></i>plus square outline</div>\n        <div class=\"column\"><i class=\"qrcode icon\"></i>qrcode</div>\n        <div class=\"column\"><i class=\"question icon\"></i>question</div>\n        <div class=\"column\"><i class=\"question circle icon\"></i>question circle</div>\n        <div class=\"column\"><i class=\"question circle outline icon\"></i>question circle outline</div>\n        <div class=\"column\"><i class=\"quote left icon\"></i>quote left</div>\n        <div class=\"column\"><i class=\"quote right icon\"></i>quote right</div>\n        <div class=\"column\"><i class=\"redo icon\"></i>redo</div>\n        <div class=\"column\"><i class=\"redo alternate icon\"></i>redo alternate</div>\n        <div class=\"column\"><i class=\"reply icon\"></i>reply</div>\n        <div class=\"column\"><i class=\"reply all icon\"></i>reply all</div>\n        <div class=\"column\"><i class=\"rss icon\"></i>rss</div>\n        <div class=\"column\"><i class=\"rss square icon\"></i>rss square</div>\n        <div class=\"column\"><i class=\"save icon\"></i>save</div>\n        <div class=\"column\"><i class=\"save outline icon\"></i>save outline</div>\n        <div class=\"column\"><i class=\"search icon\"></i>search</div>\n        <div class=\"column\"><i class=\"search minus icon\"></i>search minus</div>\n        <div class=\"column\"><i class=\"search plus icon\"></i>search plus</div>\n        <div class=\"column\"><i class=\"share icon\"></i>share</div>\n        <div class=\"column\"><i class=\"share alternate icon\"></i>share alternate</div>\n        <div class=\"column\"><i class=\"share alternate square icon\"></i>share alternate square</div>\n        <div class=\"column\"><i class=\"share square icon\"></i>share square</div>\n        <div class=\"column\"><i class=\"share square outline icon\"></i>share square outline</div>\n        <div class=\"column\"><i class=\"shield alternate icon\"></i>shield alternate</div>\n        <div class=\"column\"><i class=\"sign-in icon\"></i>sign-in</div>\n        <div class=\"column\"><i class=\"sign-out icon\"></i>sign-out</div>\n        <div class=\"column\"><i class=\"signal icon\"></i>signal</div>\n        <div class=\"column\"><i class=\"sitemap icon\"></i>sitemap</div>\n        <div class=\"column\"><i class=\"sliders horizontal icon\"></i>sliders horizontal</div>\n        <div class=\"column\"><i class=\"smile icon\"></i>smile</div>\n        <div class=\"column\"><i class=\"smile outline icon\"></i>smile outline</div>\n        <div class=\"column\"><i class=\"sort icon\"></i>sort</div>\n        <div class=\"column\"><i class=\"sort alphabet down icon\"></i>sort alphabet down</div>\n        <div class=\"column\"><i class=\"sort alphabet up icon\"></i>sort alphabet up</div>\n        <div class=\"column\"><i class=\"sort amount down icon\"></i>sort amount down</div>\n        <div class=\"column\"><i class=\"sort amount up icon\"></i>sort amount up</div>\n        <div class=\"column\"><i class=\"sort down icon\"></i>sort down</div>\n        <div class=\"column\"><i class=\"sort numeric down icon\"></i>sort numeric down</div>\n        <div class=\"column\"><i class=\"sort numeric up icon\"></i>sort numeric up</div>\n        <div class=\"column\"><i class=\"sort up icon\"></i>sort up</div>\n        <div class=\"column\"><i class=\"star icon\"></i>star</div>\n        <div class=\"column\"><i class=\"star outline icon\"></i>star outline</div>\n        <div class=\"column\"><i class=\"star half icon\"></i>star half</div>\n        <div class=\"column\"><i class=\"star half outline icon\"></i>star half outline</div>\n        <div class=\"column\"><i class=\"sync icon\"></i>sync</div>\n        <div class=\"column\"><i class=\"sync alternate icon\"></i>sync alternate</div>\n        <div class=\"column\"><i class=\"thumbs down icon\"></i>thumbs down</div>\n        <div class=\"column\"><i class=\"thumbs down outline icon\"></i>thumbs down outline</div>\n        <div class=\"column\"><i class=\"thumbs up icon\"></i>thumbs up</div>\n        <div class=\"column\"><i class=\"thumbs up outline icon\"></i>thumbs up outline</div>\n        <div class=\"column\"><i class=\"times icon\"></i>times</div>\n        <div class=\"column\"><i class=\"times circle icon\"></i>times circle</div>\n        <div class=\"column\"><i class=\"times circle outline icon\"></i>times circle outline</div>\n        <div class=\"column\"><i class=\"toggle off icon\"></i>toggle off</div>\n        <div class=\"column\"><i class=\"toggle on icon\"></i>toggle on</div>\n        <div class=\"column\"><i class=\"trash icon\"></i>trash</div>\n        <div class=\"column\"><i class=\"trash alternate icon\"></i>trash alternate</div>\n        <div class=\"column\"><i class=\"trash alternate outline icon\"></i>trash alternate outline</div>\n        <div class=\"column\"><i class=\"trophy icon\"></i>trophy</div>\n        <div class=\"column\"><i class=\"undo icon\"></i>undo</div>\n        <div class=\"column\"><i class=\"undo alternate icon\"></i>undo alternate</div>\n        <div class=\"column\"><i class=\"upload icon\"></i>upload</div>\n        <div class=\"column\"><i class=\"user icon\"></i>user</div>\n        <div class=\"column\"><i class=\"user outline icon\"></i>user outline</div>\n        <div class=\"column\"><i class=\"user circle icon\"></i>user circle</div>\n        <div class=\"column\"><i class=\"user circle outline icon\"></i>user circle outline</div>\n        <div class=\"column\"><i class=\"wifi icon\"></i>wifi</div>\n        <div class=\"column\"><i class=\"x icon\"></i>x icon</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"ban icon\"></i>\n        <i class=\"barcode icon\"></i>\n        <i class=\"bars icon\"></i>\n        <i class=\"beer icon\"></i>\n        <i class=\"bell icon\"></i>\n        <i class=\"bell outline icon\"></i>\n        <i class=\"bell slash icon\"></i>\n        <i class=\"bell slash outline icon\"></i>\n        <i class=\"bug icon\"></i>\n        <i class=\"bullhorn icon\"></i>\n        <i class=\"bullseye icon\"></i>\n        <i class=\"calculator icon\"></i>\n        <i class=\"calendar icon\"></i>\n        <i class=\"calendar outline icon\"></i>\n        <i class=\"calendar alternate icon\"></i>\n        <i class=\"calendar alternate outline icon\"></i>\n        <i class=\"calendar check icon\"></i>\n        <i class=\"calendar check outline icon\"></i>\n        <i class=\"calendar minus icon\"></i>\n        <i class=\"calendar minus outline icon\"></i>\n        <i class=\"calendar plus icon\"></i>\n        <i class=\"calendar plus outline icon\"></i>\n        <i class=\"calendar times icon\"></i>\n        <i class=\"calendar times outline icon\"></i>\n        <i class=\"certificate icon\"></i>\n        <i class=\"check icon\"></i>\n        <i class=\"check circle icon\"></i>\n        <i class=\"check circle outline icon\"></i>\n        <i class=\"check square icon\"></i>\n        <i class=\"check square outline icon\"></i>\n        <i class=\"circle icon\"></i>\n        <i class=\"circle outline icon\"></i>\n        <i class=\"clipboard icon\"></i>\n        <i class=\"clipboard outline icon\"></i>\n        <i class=\"clone icon\"></i>\n        <i class=\"clone outline icon\"></i>\n        <i class=\"cloud icon\"></i>\n        <i class=\"cloud download icon\"></i>\n        <i class=\"cloud upload icon\"></i>\n        <i class=\"coffee icon\"></i>\n        <i class=\"cog icon\"></i>\n        <i class=\"cogs icon\"></i>\n        <i class=\"copy icon\"></i>\n        <i class=\"copy outline icon\"></i>\n        <i class=\"cut icon\"></i>\n        <i class=\"database icon\"></i>\n        <i class=\"dot circle icon\"></i>\n        <i class=\"dot circle outline icon\"></i>\n        <i class=\"download icon\"></i>\n        <i class=\"edit icon\"></i>\n        <i class=\"edit outline icon\"></i>\n        <i class=\"ellipsis horizontal icon\"></i>\n        <i class=\"ellipsis vertical icon\"></i>\n        <i class=\"envelope icon\"></i>\n        <i class=\"envelope outline icon\"></i>\n        <i class=\"envelope open icon\"></i>\n        <i class=\"envelope open outline icon\"></i>\n        <i class=\"eraser icon\"></i>\n        <i class=\"exclamation icon\"></i>\n        <i class=\"exclamation circle icon\"></i>\n        <i class=\"exclamation triangle icon\"></i>\n        <i class=\"external alternate icon\"></i>\n        <i class=\"external square alternate icon\"></i>\n        <i class=\"eye icon\"></i>\n        <i class=\"eye slash icon\"></i>\n        <i class=\"eye slash outline icon\"></i>\n        <i class=\"file icon\"></i>\n        <i class=\"file outline icon\"></i>\n        <i class=\"file alternate icon\"></i>\n        <i class=\"file alternate outline icon\"></i>\n        <i class=\"filter icon\"></i>\n        <i class=\"flag icon\"></i>\n        <i class=\"flag outline icon\"></i>\n        <i class=\"flag checkered icon\"></i>\n        <i class=\"folder icon\"></i>\n        <i class=\"folder outline icon\"></i>\n        <i class=\"folder open icon\"></i>\n        <i class=\"folder open outline icon\"></i>\n        <i class=\"frown icon\"></i>\n        <i class=\"frown outline icon\"></i>\n        <i class=\"hashtag icon\"></i>\n        <i class=\"heart icon\"></i>\n        <i class=\"heart outline icon\"></i>\n        <i class=\"history icon\"></i>\n        <i class=\"home icon\"></i>\n        <i class=\"i cursor icon\"></i>\n        <i class=\"info icon\"></i>\n        <i class=\"info circle icon\"></i>\n        <i class=\"language icon\"></i>\n        <i class=\"magic icon\"></i>\n        <i class=\"meh icon\"></i>\n        <i class=\"meh outline icon\"></i>\n        <i class=\"microphone icon\"></i>\n        <i class=\"microphone slash icon\"></i>\n        <i class=\"minus icon\"></i>\n        <i class=\"minus circle icon\"></i>\n        <i class=\"minus square icon\"></i>\n        <i class=\"minus square outline icon\"></i>\n        <i class=\"paste icon\"></i>\n        <i class=\"pencil alternate icon\"></i>\n        <i class=\"plus icon\"></i>\n        <i class=\"plus circle icon\"></i>\n        <i class=\"plus square icon\"></i>\n        <i class=\"plus square outline icon\"></i>\n        <i class=\"qrcode icon\"></i>\n        <i class=\"question icon\"></i>\n        <i class=\"question circle icon\"></i>\n        <i class=\"question circle outline icon\"></i>\n        <i class=\"quote left icon\"></i>\n        <i class=\"quote right icon\"></i>\n        <i class=\"redo icon\"></i>\n        <i class=\"redo alternate icon\"></i>\n        <i class=\"reply icon\"></i>\n        <i class=\"reply all icon\"></i>\n        <i class=\"rss icon\"></i>\n        <i class=\"rss square icon\"></i>\n        <i class=\"save icon\"></i>\n        <i class=\"save outline icon\"></i>\n        <i class=\"search icon\"></i>\n        <i class=\"search minus icon\"></i>\n        <i class=\"search plus icon\"></i>\n        <i class=\"share icon\"></i>\n        <i class=\"share alternate icon\"></i>\n        <i class=\"share alternate square icon\"></i>\n        <i class=\"share square icon\"></i>\n        <i class=\"share square outline icon\"></i>\n        <i class=\"shield alternate icon\"></i>\n        <i class=\"sign in alternate icon\"></i>\n        <i class=\"sign out alternate icon\"></i>\n        <i class=\"signal icon\"></i>\n        <i class=\"sitemap icon\"></i>\n        <i class=\"sliders horizontal icon\"></i>\n        <i class=\"smile icon\"></i>\n        <i class=\"smile outline icon\"></i>\n        <i class=\"sort icon\"></i>\n        <i class=\"sort alphabet down icon\"></i>\n        <i class=\"sort alphabet up icon\"></i>\n        <i class=\"sort amount down icon\"></i>\n        <i class=\"sort amount up icon\"></i>\n        <i class=\"sort down icon\"></i>\n        <i class=\"sort numeric down icon\"></i>\n        <i class=\"sort numeric up icon\"></i>\n        <i class=\"sort up icon\"></i>\n        <i class=\"star icon\"></i>\n        <i class=\"star outline icon\"></i>\n        <i class=\"star half icon\"></i>\n        <i class=\"star half outline icon\"></i>\n        <i class=\"sync icon\"></i>\n        <i class=\"sync alternate icon\"></i>\n        <i class=\"thumbs down icon\"></i>\n        <i class=\"thumbs down outline icon\"></i>\n        <i class=\"thumbs up icon\"></i>\n        <i class=\"thumbs up outline icon\"></i>\n        <i class=\"times icon\"></i>\n        <i class=\"times circle icon\"></i>\n        <i class=\"times circle outline icon\"></i>\n        <i class=\"toggle off icon\"></i>\n        <i class=\"toggle on icon\"></i>\n        <i class=\"trash icon\"></i>\n        <i class=\"trash alternate icon\"></i>\n        <i class=\"trash alternate outline icon\"></i>\n        <i class=\"trophy icon\"></i>\n        <i class=\"undo icon\"></i>\n        <i class=\"undo alternate icon\"></i>\n        <i class=\"upload icon\"></i>\n        <i class=\"user icon\"></i>\n        <i class=\"user outline icon\"></i>\n        <i class=\"user circle icon\"></i>\n        <i class=\"user circle outline icon\"></i>\n        <i class=\"wifi icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Logistics</h4>\n      <p>Icons can represent common logistic activity</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"box icon\"></i>box</div>\n        <div class=\"column\"><i class=\"boxes icon\"></i>boxes</div>\n        <div class=\"column\"><i class=\"clipboard check icon\"></i>clipboard check</div>\n        <div class=\"column\"><i class=\"clipboard list icon\"></i>clipboard list</div>\n        <div class=\"column\"><i class=\"dolly icon\"></i>dolly</div>\n        <div class=\"column\"><i class=\"dolly flatbed icon\"></i>dolly flatbed</div>\n        <div class=\"column\"><i class=\"pallet icon\"></i>pallet</div>\n        <div class=\"column\"><i class=\"shipping fast icon\"></i>shipping fast</div>\n        <div class=\"column\"><i class=\"truck icon\"></i>truck</div>\n        <div class=\"column\"><i class=\"warehouse icon\"></i>warehouse</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"box icon\"></i>\n        <i class=\"boxes icon\"></i>\n        <i class=\"clipboard check icon\"></i>\n        <i class=\"clipboard list icon\"></i>\n        <i class=\"dolly icon\"></i>\n        <i class=\"dolly flatbed icon\"></i>\n        <i class=\"pallet icon\"></i>\n        <i class=\"shipping fast icon\"></i>\n        <i class=\"truck icon\"></i>\n        <i class=\"warehouse icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Maps</h4>\n      <p>Icons can be used to represent elements on a map</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"ambulance icon\"></i>ambulance</div>\n        <div class=\"column\"><i class=\"anchor icon\"></i>anchor</div>\n        <div class=\"column\"><i class=\"balance scale icon\"></i>balance scale</div>\n        <div class=\"column\"><i class=\"bath icon\"></i>bath</div>\n        <div class=\"column\"><i class=\"bed icon\"></i>bed</div>\n        <div class=\"column\"><i class=\"beer icon\"></i>beer</div>\n        <div class=\"column\"><i class=\"bell icon\"></i>bell</div>\n        <div class=\"column\"><i class=\"bell outline icon\"></i>bell outline</div>\n        <div class=\"column\"><i class=\"bell slash icon\"></i>bell slash</div>\n        <div class=\"column\"><i class=\"bell slash outline icon\"></i>bell slash outline</div>\n        <div class=\"column\"><i class=\"bicycle icon\"></i>bicycle</div>\n        <div class=\"column\"><i class=\"binoculars icon\"></i>binoculars</div>\n        <div class=\"column\"><i class=\"birthday cake icon\"></i>birthday cake</div>\n        <div class=\"column\"><i class=\"blind icon\"></i>blind</div>\n        <div class=\"column\"><i class=\"bomb icon\"></i>bomb</div>\n        <div class=\"column\"><i class=\"book icon\"></i>book</div>\n        <div class=\"column\"><i class=\"bookmark icon\"></i>bookmark</div>\n        <div class=\"column\"><i class=\"bookmark outline icon\"></i>bookmark outline</div>\n        <div class=\"column\"><i class=\"briefcase icon\"></i>briefcase</div>\n        <div class=\"column\"><i class=\"building icon\"></i>building</div>\n        <div class=\"column\"><i class=\"building outline icon\"></i>building outline</div>\n        <div class=\"column\"><i class=\"car icon\"></i>car</div>\n        <div class=\"column\"><i class=\"coffee icon\"></i>coffee</div>\n        <div class=\"column\"><i class=\"crosshairs icon\"></i>crosshairs</div>\n        <div class=\"column\"><i class=\"dollar sign icon\"></i>dollar sign</div>\n        <div class=\"column\"><i class=\"eye icon\"></i>eye</div>\n        <div class=\"column\"><i class=\"eye slash icon\"></i>eye slash</div>\n        <div class=\"column\"><i class=\"eye slash outline icon\"></i>eye slash outline</div>\n        <div class=\"column\"><i class=\"fighter jet icon\"></i>fighter jet</div>\n        <div class=\"column\"><i class=\"fire icon\"></i>fire</div>\n        <div class=\"column\"><i class=\"fire extinguisher icon\"></i>fire extinguisher</div>\n        <div class=\"column\"><i class=\"flag icon\"></i>flag</div>\n        <div class=\"column\"><i class=\"flag outline icon\"></i>flag outline</div>\n        <div class=\"column\"><i class=\"flag checkered icon\"></i>flag checkered</div>\n        <div class=\"column\"><i class=\"flask icon\"></i>flask</div>\n        <div class=\"column\"><i class=\"gamepad icon\"></i>gamepad</div>\n        <div class=\"column\"><i class=\"gavel icon\"></i>gavel</div>\n        <div class=\"column\"><i class=\"gift icon\"></i>gift</div>\n        <div class=\"column\"><i class=\"glass martini icon\"></i>glass martini</div>\n        <div class=\"column\"><i class=\"globe icon\"></i>globe</div>\n        <div class=\"column\"><i class=\"graduation cap icon\"></i>graduation cap</div>\n        <div class=\"column\"><i class=\"h square icon\"></i>h square</div>\n        <div class=\"column\"><i class=\"heart icon\"></i>heart</div>\n        <div class=\"column\"><i class=\"heart outline icon\"></i>heart outline</div>\n        <div class=\"column\"><i class=\"heartbeat icon\"></i>heartbeat</div>\n        <div class=\"column\"><i class=\"home icon\"></i>home</div>\n        <div class=\"column\"><i class=\"hospital icon\"></i>hospital</div>\n        <div class=\"column\"><i class=\"hospital outline icon\"></i>hospital outline</div>\n        <div class=\"column\"><i class=\"image icon\"></i>image</div>\n        <div class=\"column\"><i class=\"image outline icon\"></i>image outline</div>\n        <div class=\"column\"><i class=\"images icon\"></i>images</div>\n        <div class=\"column\"><i class=\"images outline icon\"></i>images outline</div>\n        <div class=\"column\"><i class=\"industry icon\"></i>industry</div>\n        <div class=\"column\"><i class=\"info icon\"></i>info</div>\n        <div class=\"column\"><i class=\"info circle icon\"></i>info circle</div>\n        <div class=\"column\"><i class=\"key icon\"></i>key</div>\n        <div class=\"column\"><i class=\"leaf icon\"></i>leaf</div>\n        <div class=\"column\"><i class=\"lemon icon\"></i>lemon</div>\n        <div class=\"column\"><i class=\"lemon outline icon\"></i>lemon outline</div>\n        <div class=\"column\"><i class=\"life ring icon\"></i>life ring</div>\n        <div class=\"column\"><i class=\"life ring outline icon\"></i>life ring outline</div>\n        <div class=\"column\"><i class=\"lightbulb icon\"></i>lightbulb</div>\n        <div class=\"column\"><i class=\"lightbulb outline icon\"></i>lightbulb outline</div>\n        <div class=\"column\"><i class=\"location arrow icon\"></i>location arrow</div>\n        <div class=\"column\"><i class=\"low vision icon\"></i>low vision</div>\n        <div class=\"column\"><i class=\"magnet icon\"></i>magnet</div>\n        <div class=\"column\"><i class=\"male icon\"></i>male</div>\n        <div class=\"column\"><i class=\"map icon\"></i>map</div>\n        <div class=\"column\"><i class=\"map outline icon\"></i>map outline</div>\n        <div class=\"column\"><i class=\"map marker icon\"></i>map marker</div>\n        <div class=\"column\"><i class=\"map marker alternate icon\"></i>map marker alternate</div>\n        <div class=\"column\"><i class=\"map pin icon\"></i>map pin</div>\n        <div class=\"column\"><i class=\"map signs icon\"></i>map signs</div>\n        <div class=\"column\"><i class=\"medkit icon\"></i>medkit</div>\n        <div class=\"column\"><i class=\"money bill alternate icon\"></i>money bill alternate</div>\n        <div class=\"column\"><i class=\"money bill alternate outline icon\"></i>money bill alternate outline</div>\n        <div class=\"column\"><i class=\"motorcycle icon\"></i>motorcycle</div>\n        <div class=\"column\"><i class=\"music icon\"></i>music</div>\n        <div class=\"column\"><i class=\"newspaper icon\"></i>newspaper</div>\n        <div class=\"column\"><i class=\"newspaper outline icon\"></i>newspaper outline</div>\n        <div class=\"column\"><i class=\"paw icon\"></i>paw</div>\n        <div class=\"column\"><i class=\"phone icon\"></i>phone</div>\n        <div class=\"column\"><i class=\"phone square icon\"></i>phone square</div>\n        <div class=\"column\"><i class=\"phone volume icon\"></i>phone volume</div>\n        <div class=\"column\"><i class=\"plane icon\"></i>plane</div>\n        <div class=\"column\"><i class=\"plug icon\"></i>plug</div>\n        <div class=\"column\"><i class=\"plus icon\"></i>plus</div>\n        <div class=\"column\"><i class=\"plus square icon\"></i>plus square</div>\n        <div class=\"column\"><i class=\"plus square outline icon\"></i>plus square outline</div>\n        <div class=\"column\"><i class=\"print icon\"></i>print</div>\n        <div class=\"column\"><i class=\"recycle icon\"></i>recycle</div>\n        <div class=\"column\"><i class=\"road icon\"></i>road</div>\n        <div class=\"column\"><i class=\"rocket icon\"></i>rocket</div>\n        <div class=\"column\"><i class=\"search icon\"></i>search</div>\n        <div class=\"column\"><i class=\"search minus icon\"></i>search minus</div>\n        <div class=\"column\"><i class=\"search plus icon\"></i>search plus</div>\n        <div class=\"column\"><i class=\"ship icon\"></i>ship</div>\n        <div class=\"column\"><i class=\"shopping bag icon\"></i>shopping bag</div>\n        <div class=\"column\"><i class=\"shopping basket icon\"></i>shopping basket</div>\n        <div class=\"column\"><i class=\"shopping cart icon\"></i>shopping cart</div>\n        <div class=\"column\"><i class=\"shower icon\"></i>shower</div>\n        <div class=\"column\"><i class=\"street view icon\"></i>street view</div>\n        <div class=\"column\"><i class=\"subway icon\"></i>subway</div>\n        <div class=\"column\"><i class=\"suitcase icon\"></i>suitcase</div>\n        <div class=\"column\"><i class=\"tag icon\"></i>tag</div>\n        <div class=\"column\"><i class=\"tags icon\"></i>tags</div>\n        <div class=\"column\"><i class=\"taxi icon\"></i>taxi</div>\n        <div class=\"column\"><i class=\"thumbtack icon\"></i>thumbtack</div>\n        <div class=\"column\"><i class=\"ticket alternate icon\"></i>ticket alternate</div>\n        <div class=\"column\"><i class=\"tint icon\"></i>tint</div>\n        <div class=\"column\"><i class=\"train icon\"></i>train</div>\n        <div class=\"column\"><i class=\"tree icon\"></i>tree</div>\n        <div class=\"column\"><i class=\"trophy icon\"></i>trophy</div>\n        <div class=\"column\"><i class=\"truck icon\"></i>truck</div>\n        <div class=\"column\"><i class=\"tty icon\"></i>tty</div>\n        <div class=\"column\"><i class=\"umbrella icon\"></i>umbrella</div>\n        <div class=\"column\"><i class=\"university icon\"></i>university</div>\n        <div class=\"column\"><i class=\"utensil spoon icon\"></i>utensil spoon</div>\n        <div class=\"column\"><i class=\"utensils icon\"></i>utensils</div>\n        <div class=\"column\"><i class=\"wheelchair icon\"></i>wheelchair</div>\n        <div class=\"column\"><i class=\"wifi icon\"></i>wifi</div>\n        <div class=\"column\"><i class=\"wrench icon\"></i>wrench</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"ambulance icon\"></i>\n        <i class=\"anchor icon\"></i>\n        <i class=\"balance scale icon\"></i>\n        <i class=\"bath icon\"></i>\n        <i class=\"bed icon\"></i>\n        <i class=\"beer icon\"></i>\n        <i class=\"bell icon\"></i>\n        <i class=\"bell outline icon\"></i>\n        <i class=\"bell slash icon\"></i>\n        <i class=\"bell slash outline icon\"></i>\n        <i class=\"bicycle icon\"></i>\n        <i class=\"binoculars icon\"></i>\n        <i class=\"birthday cake icon\"></i>\n        <i class=\"blind icon\"></i>\n        <i class=\"bomb icon\"></i>\n        <i class=\"book icon\"></i>\n        <i class=\"bookmark icon\"></i>\n        <i class=\"bookmark outline icon\"></i>\n        <i class=\"briefcase icon\"></i>\n        <i class=\"building icon\"></i>\n        <i class=\"building outline icon\"></i>\n        <i class=\"car icon\"></i>\n        <i class=\"coffee icon\"></i>\n        <i class=\"crosshairs icon\"></i>\n        <i class=\"dollar sign icon\"></i>\n        <i class=\"eye icon\"></i>\n        <i class=\"eye slash icon\"></i>\n        <i class=\"eye slash outline icon\"></i>\n        <i class=\"fighter jet icon\"></i>\n        <i class=\"fire icon\"></i>\n        <i class=\"fire extinguisher icon\"></i>\n        <i class=\"flag icon\"></i>\n        <i class=\"flag outline icon\"></i>\n        <i class=\"flag checkered icon\"></i>\n        <i class=\"flask icon\"></i>\n        <i class=\"gamepad icon\"></i>\n        <i class=\"gavel icon\"></i>\n        <i class=\"gift icon\"></i>\n        <i class=\"glass martini icon\"></i>\n        <i class=\"globe icon\"></i>\n        <i class=\"graduation cap icon\"></i>\n        <i class=\"h square icon\"></i>\n        <i class=\"heart icon\"></i>\n        <i class=\"heart outline icon\"></i>\n        <i class=\"heartbeat icon\"></i>\n        <i class=\"home icon\"></i>\n        <i class=\"hospital icon\"></i>\n        <i class=\"hospital outline icon\"></i>\n        <i class=\"image icon\"></i>\n        <i class=\"image outline icon\"></i>\n        <i class=\"images icon\"></i>\n        <i class=\"images outline icon\"></i>\n        <i class=\"industry icon\"></i>\n        <i class=\"info icon\"></i>\n        <i class=\"info circle icon\"></i>\n        <i class=\"key icon\"></i>\n        <i class=\"leaf icon\"></i>\n        <i class=\"lemon icon\"></i>\n        <i class=\"lemon outline icon\"></i>\n        <i class=\"life ring icon\"></i>\n        <i class=\"life ring outline icon\"></i>\n        <i class=\"lightbulb icon\"></i>\n        <i class=\"lightbulb outline icon\"></i>\n        <i class=\"location arrow icon\"></i>\n        <i class=\"low vision icon\"></i>\n        <i class=\"magnet icon\"></i>\n        <i class=\"male icon\"></i>\n        <i class=\"map icon\"></i>\n        <i class=\"map outline icon\"></i>\n        <i class=\"map marker icon\"></i>\n        <i class=\"map marker alternate icon\"></i>\n        <i class=\"map pin icon\"></i>\n        <i class=\"map signs icon\"></i>\n        <i class=\"medkit icon\"></i>\n        <i class=\"money bill alternate icon\"></i>\n        <i class=\"money bill alternate outline icon\"></i>\n        <i class=\"motorcycle icon\"></i>\n        <i class=\"music icon\"></i>\n        <i class=\"newspaper icon\"></i>\n        <i class=\"newspaper outline icon\"></i>\n        <i class=\"paw icon\"></i>\n        <i class=\"phone icon\"></i>\n        <i class=\"phone square icon\"></i>\n        <i class=\"phone volume icon\"></i>\n        <i class=\"plane icon\"></i>\n        <i class=\"plug icon\"></i>\n        <i class=\"plus icon\"></i>\n        <i class=\"plus square icon\"></i>\n        <i class=\"plus square outline icon\"></i>\n        <i class=\"print icon\"></i>\n        <i class=\"recycle icon\"></i>\n        <i class=\"road icon\"></i>\n        <i class=\"rocket icon\"></i>\n        <i class=\"search icon\"></i>\n        <i class=\"search minus icon\"></i>\n        <i class=\"search plus icon\"></i>\n        <i class=\"ship icon\"></i>\n        <i class=\"shopping bag icon\"></i>\n        <i class=\"shopping basket icon\"></i>\n        <i class=\"shopping cart icon\"></i>\n        <i class=\"shower icon\"></i>\n        <i class=\"street view icon\"></i>\n        <i class=\"subway icon\"></i>\n        <i class=\"suitcase icon\"></i>\n        <i class=\"tag icon\"></i>\n        <i class=\"tags icon\"></i>\n        <i class=\"taxi icon\"></i>\n        <i class=\"thumbtack icon\"></i>\n        <i class=\"ticket alternate icon\"></i>\n        <i class=\"tint icon\"></i>\n        <i class=\"train icon\"></i>\n        <i class=\"tree icon\"></i>\n        <i class=\"trophy icon\"></i>\n        <i class=\"truck icon\"></i>\n        <i class=\"tty icon\"></i>\n        <i class=\"umbrella icon\"></i>\n        <i class=\"university icon\"></i>\n        <i class=\"utensil spoon icon\"></i>\n        <i class=\"utensils icon\"></i>\n        <i class=\"wheelchair icon\"></i>\n        <i class=\"wifi icon\"></i>\n        <i class=\"wrench icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Medical</h4>\n      <p>Icons can represent common medical actions</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"ambulance icon\"></i>ambulance</div>\n        <div class=\"column\"><i class=\"band aid icon\"></i>band aid</div>\n        <div class=\"column\"><i class=\"dna icon\"></i>dna</div>\n        <div class=\"column\"><i class=\"first aid icon\"></i>first aid</div>\n        <div class=\"column\"><i class=\"heart icon\"></i>heart</div>\n        <div class=\"column\"><i class=\"heart outline icon\"></i>heart outline</div>\n        <div class=\"column\"><i class=\"heartbeat icon\"></i>heartbeat</div>\n        <div class=\"column\"><i class=\"hospital icon\"></i>hospital</div>\n        <div class=\"column\"><i class=\"hospital outline icon\"></i>hospital outline</div>\n        <div class=\"column\"><i class=\"hospital symbol icon\"></i>hospital symbol</div>\n        <div class=\"column\"><i class=\"pills icon\"></i>pills</div>\n        <div class=\"column\"><i class=\"plus icon\"></i>plus</div>\n        <div class=\"column\"><i class=\"stethoscope icon\"></i>stethoscope</div>\n        <div class=\"column\"><i class=\"syringe icon\"></i>syringe</div>\n        <div class=\"column\"><i class=\"thermometer icon\"></i>thermometer</div>\n        <div class=\"column\"><i class=\"user md icon\"></i>user md</div>\n        <div class=\"column\"><i class=\"weight icon\"></i>weight</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"ambulance icon\"></i>\n        <i class=\"band aid icon\"></i>\n        <i class=\"dna icon\"></i>\n        <i class=\"first aid icon\"></i>\n        <i class=\"heart icon\"></i>\n        <i class=\"heart outline icon\"></i>\n        <i class=\"heartbeat icon\"></i>\n        <i class=\"hospital icon\"></i>\n        <i class=\"hospital outline icon\"></i>\n        <i class=\"hospital symbol icon\"></i>\n        <i class=\"pills icon\"></i>\n        <i class=\"plus icon\"></i>\n        <i class=\"stethoscope icon\"></i>\n        <i class=\"syringe icon\"></i>\n        <i class=\"thermometer icon\"></i>\n        <i class=\"user md icon\"></i>\n        <i class=\"weight icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Objects</h4>\n      <p>Icons can be used to represent common objects</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"ambulance icon\"></i>ambulance</div>\n        <div class=\"column\"><i class=\"anchor icon\"></i>anchor</div>\n        <div class=\"column\"><i class=\"archive icon\"></i>archive</div>\n        <div class=\"column\"><i class=\"balance scale icon\"></i>balance scale</div>\n        <div class=\"column\"><i class=\"bath icon\"></i>bath</div>\n        <div class=\"column\"><i class=\"bed icon\"></i>bed</div>\n        <div class=\"column\"><i class=\"beer icon\"></i>beer</div>\n        <div class=\"column\"><i class=\"bell icon\"></i>bell</div>\n        <div class=\"column\"><i class=\"bell outline icon\"></i>bell outline</div>\n        <div class=\"column\"><i class=\"bicycle icon\"></i>bicycle</div>\n        <div class=\"column\"><i class=\"binoculars icon\"></i>binoculars</div>\n        <div class=\"column\"><i class=\"birthday cake icon\"></i>birthday cake</div>\n        <div class=\"column\"><i class=\"bomb icon\"></i>bomb</div>\n        <div class=\"column\"><i class=\"book icon\"></i>book</div>\n        <div class=\"column\"><i class=\"bookmark icon\"></i>bookmark</div>\n        <div class=\"column\"><i class=\"bookmark outline icon\"></i>bookmark outline</div>\n        <div class=\"column\"><i class=\"briefcase icon\"></i>briefcase</div>\n        <div class=\"column\"><i class=\"bug icon\"></i>bug</div>\n        <div class=\"column\"><i class=\"building icon\"></i>building</div>\n        <div class=\"column\"><i class=\"building outline icon\"></i>building outline</div>\n        <div class=\"column\"><i class=\"bullhorn icon\"></i>bullhorn</div>\n        <div class=\"column\"><i class=\"bullseye icon\"></i>bullseye</div>\n        <div class=\"column\"><i class=\"bus icon\"></i>bus</div>\n        <div class=\"column\"><i class=\"calculator icon\"></i>calculator</div>\n        <div class=\"column\"><i class=\"calendar icon\"></i>calendar</div>\n        <div class=\"column\"><i class=\"calendar outline icon\"></i>calendar outline</div>\n        <div class=\"column\"><i class=\"calendar alternate icon\"></i>calendar alternate</div>\n        <div class=\"column\"><i class=\"calendar alternate outline icon\"></i>calendar alternate outline</div>\n        <div class=\"column\"><i class=\"camera icon\"></i>camera</div>\n        <div class=\"column\"><i class=\"camera retro icon\"></i>camera retro</div>\n        <div class=\"column\"><i class=\"car icon\"></i>car</div>\n        <div class=\"column\"><i class=\"clipboard icon\"></i>clipboard</div>\n        <div class=\"column\"><i class=\"clipboard outline icon\"></i>clipboard outline</div>\n        <div class=\"column\"><i class=\"cloud icon\"></i>cloud</div>\n        <div class=\"column\"><i class=\"coffee icon\"></i>coffee</div>\n        <div class=\"column\"><i class=\"cog icon\"></i>cog</div>\n        <div class=\"column\"><i class=\"cogs icon\"></i>cogs</div>\n        <div class=\"column\"><i class=\"compass icon\"></i>compass</div>\n        <div class=\"column\"><i class=\"compass outline icon\"></i>compass outline</div>\n        <div class=\"column\"><i class=\"copy icon\"></i>copy</div>\n        <div class=\"column\"><i class=\"copy outline icon\"></i>copy outline</div>\n        <div class=\"column\"><i class=\"cube icon\"></i>cube</div>\n        <div class=\"column\"><i class=\"cubes icon\"></i>cubes</div>\n        <div class=\"column\"><i class=\"cut icon\"></i>cut</div>\n        <div class=\"column\"><i class=\"envelope icon\"></i>envelope</div>\n        <div class=\"column\"><i class=\"envelope outline icon\"></i>envelope outline</div>\n        <div class=\"column\"><i class=\"envelope open icon\"></i>envelope open</div>\n        <div class=\"column\"><i class=\"envelope open outline icon\"></i>envelope open outline</div>\n        <div class=\"column\"><i class=\"eraser icon\"></i>eraser</div>\n        <div class=\"column\"><i class=\"eye icon\"></i>eye</div>\n        <div class=\"column\"><i class=\"eye dropper icon\"></i>eye dropper</div>\n        <div class=\"column\"><i class=\"fax icon\"></i>fax</div>\n        <div class=\"column\"><i class=\"fighter jet icon\"></i>fighter jet</div>\n        <div class=\"column\"><i class=\"file icon\"></i>file</div>\n        <div class=\"column\"><i class=\"file outline icon\"></i>file outline</div>\n        <div class=\"column\"><i class=\"file alternate icon\"></i>file alternate</div>\n        <div class=\"column\"><i class=\"file alternate outline icon\"></i>file alternate outline</div>\n        <div class=\"column\"><i class=\"film icon\"></i>film</div>\n        <div class=\"column\"><i class=\"fire icon\"></i>fire</div>\n        <div class=\"column\"><i class=\"fire extinguisher icon\"></i>fire extinguisher</div>\n        <div class=\"column\"><i class=\"flag icon\"></i>flag</div>\n        <div class=\"column\"><i class=\"flag outline icon\"></i>flag outline</div>\n        <div class=\"column\"><i class=\"flag checkered icon\"></i>flag checkered</div>\n        <div class=\"column\"><i class=\"flask icon\"></i>flask</div>\n        <div class=\"column\"><i class=\"futbol icon\"></i>futbol</div>\n        <div class=\"column\"><i class=\"futbol outline icon\"></i>futbol outline</div>\n        <div class=\"column\"><i class=\"gamepad icon\"></i>gamepad</div>\n        <div class=\"column\"><i class=\"gavel icon\"></i>gavel</div>\n        <div class=\"column\"><i class=\"gem icon\"></i>gem</div>\n        <div class=\"column\"><i class=\"gem outline icon\"></i>gem outline</div>\n        <div class=\"column\"><i class=\"gift icon\"></i>gift</div>\n        <div class=\"column\"><i class=\"glass martini icon\"></i>glass martini</div>\n        <div class=\"column\"><i class=\"globe icon\"></i>globe</div>\n        <div class=\"column\"><i class=\"graduation cap icon\"></i>graduation cap</div>\n        <div class=\"column\"><i class=\"hdd icon\"></i>hdd</div>\n        <div class=\"column\"><i class=\"hdd outline icon\"></i>hdd outline</div>\n        <div class=\"column\"><i class=\"headphones icon\"></i>headphones</div>\n        <div class=\"column\"><i class=\"heart icon\"></i>heart</div>\n        <div class=\"column\"><i class=\"heart outline icon\"></i>heart outline</div>\n        <div class=\"column\"><i class=\"home icon\"></i>home</div>\n        <div class=\"column\"><i class=\"hospital icon\"></i>hospital</div>\n        <div class=\"column\"><i class=\"hospital outline icon\"></i>hospital outline</div>\n        <div class=\"column\"><i class=\"hourglass icon\"></i>hourglass</div>\n        <div class=\"column\"><i class=\"hourglass outline icon\"></i>hourglass outline</div>\n        <div class=\"column\"><i class=\"image icon\"></i>image</div>\n        <div class=\"column\"><i class=\"image outline icon\"></i>image outline</div>\n        <div class=\"column\"><i class=\"images icon\"></i>images</div>\n        <div class=\"column\"><i class=\"images outline icon\"></i>images outline</div>\n        <div class=\"column\"><i class=\"industry icon\"></i>industry</div>\n        <div class=\"column\"><i class=\"key icon\"></i>key</div>\n        <div class=\"column\"><i class=\"keyboard icon\"></i>keyboard</div>\n        <div class=\"column\"><i class=\"keyboard outline icon\"></i>keyboard outline</div>\n        <div class=\"column\"><i class=\"laptop icon\"></i>laptop</div>\n        <div class=\"column\"><i class=\"leaf icon\"></i>leaf</div>\n        <div class=\"column\"><i class=\"lemon icon\"></i>lemon</div>\n        <div class=\"column\"><i class=\"lemon outline icon\"></i>lemon outline</div>\n        <div class=\"column\"><i class=\"life ring icon\"></i>life ring</div>\n        <div class=\"column\"><i class=\"life ring outline icon\"></i>life ring outline</div>\n        <div class=\"column\"><i class=\"lightbulb icon\"></i>lightbulb</div>\n        <div class=\"column\"><i class=\"lightbulb outline icon\"></i>lightbulb outline</div>\n        <div class=\"column\"><i class=\"lock icon\"></i>lock</div>\n        <div class=\"column\"><i class=\"lock open icon\"></i>lock open</div>\n        <div class=\"column\"><i class=\"magic icon\"></i>magic</div>\n        <div class=\"column\"><i class=\"magnet icon\"></i>magnet</div>\n        <div class=\"column\"><i class=\"map icon\"></i>map</div>\n        <div class=\"column\"><i class=\"map outline icon\"></i>map outline</div>\n        <div class=\"column\"><i class=\"map marker icon\"></i>map marker</div>\n        <div class=\"column\"><i class=\"map marker alternate icon\"></i>map marker alternate</div>\n        <div class=\"column\"><i class=\"map pin icon\"></i>map pin</div>\n        <div class=\"column\"><i class=\"map signs icon\"></i>map signs</div>\n        <div class=\"column\"><i class=\"medkit icon\"></i>medkit</div>\n        <div class=\"column\"><i class=\"microchip icon\"></i>microchip</div>\n        <div class=\"column\"><i class=\"microphone icon\"></i>microphone</div>\n        <div class=\"column\"><i class=\"mobile icon\"></i>mobile</div>\n        <div class=\"column\"><i class=\"mobile alternate icon\"></i>mobile alternate</div>\n        <div class=\"column\"><i class=\"money bill alternate icon\"></i>money bill alternate</div>\n        <div class=\"column\"><i class=\"money bill alternate outline icon\"></i>money bill alternate outline</div>\n        <div class=\"column\"><i class=\"moon icon\"></i>moon</div>\n        <div class=\"column\"><i class=\"moon outline icon\"></i>moon outline</div>\n        <div class=\"column\"><i class=\"motorcycle icon\"></i>motorcycle</div>\n        <div class=\"column\"><i class=\"newspaper icon\"></i>newspaper</div>\n        <div class=\"column\"><i class=\"newspaper outline icon\"></i>newspaper outline</div>\n        <div class=\"column\"><i class=\"paint brush icon\"></i>paint brush</div>\n        <div class=\"column\"><i class=\"paper plane icon\"></i>paper plane</div>\n        <div class=\"column\"><i class=\"paper plane outline icon\"></i>paper plane outline</div>\n        <div class=\"column\"><i class=\"paperclip icon\"></i>paperclip</div>\n        <div class=\"column\"><i class=\"paste icon\"></i>paste</div>\n        <div class=\"column\"><i class=\"paw icon\"></i>paw</div>\n        <div class=\"column\"><i class=\"pencil alternate icon\"></i>pencil alternate</div>\n        <div class=\"column\"><i class=\"phone icon\"></i>phone</div>\n        <div class=\"column\"><i class=\"plane icon\"></i>plane</div>\n        <div class=\"column\"><i class=\"plug icon\"></i>plug</div>\n        <div class=\"column\"><i class=\"print icon\"></i>print</div>\n        <div class=\"column\"><i class=\"puzzle piece icon\"></i>puzzle piece</div>\n        <div class=\"column\"><i class=\"road icon\"></i>road</div>\n        <div class=\"column\"><i class=\"rocket icon\"></i>rocket</div>\n        <div class=\"column\"><i class=\"save icon\"></i>save</div>\n        <div class=\"column\"><i class=\"save outline icon\"></i>save outline</div>\n        <div class=\"column\"><i class=\"search icon\"></i>search</div>\n        <div class=\"column\"><i class=\"shield alternate icon\"></i>shield alternate</div>\n        <div class=\"column\"><i class=\"shopping bag icon\"></i>shopping bag</div>\n        <div class=\"column\"><i class=\"shopping basket icon\"></i>shopping basket</div>\n        <div class=\"column\"><i class=\"shopping cart icon\"></i>shopping cart</div>\n        <div class=\"column\"><i class=\"shower icon\"></i>shower</div>\n        <div class=\"column\"><i class=\"snowflake icon\"></i>snowflake</div>\n        <div class=\"column\"><i class=\"snowflake outline icon\"></i>snowflake outline</div>\n        <div class=\"column\"><i class=\"space shuttle icon\"></i>space shuttle</div>\n        <div class=\"column\"><i class=\"star icon\"></i>star</div>\n        <div class=\"column\"><i class=\"star outline icon\"></i>star outline</div>\n        <div class=\"column\"><i class=\"sticky note icon\"></i>sticky note</div>\n        <div class=\"column\"><i class=\"sticky note outline icon\"></i>sticky note outline</div>\n        <div class=\"column\"><i class=\"stopwatch icon\"></i>stopwatch</div>\n        <div class=\"column\"><i class=\"subway icon\"></i>subway</div>\n        <div class=\"column\"><i class=\"suitcase icon\"></i>suitcase</div>\n        <div class=\"column\"><i class=\"sun icon\"></i>sun</div>\n        <div class=\"column\"><i class=\"sun outline icon\"></i>sun outline</div>\n        <div class=\"column\"><i class=\"tablet icon\"></i>tablet</div>\n        <div class=\"column\"><i class=\"tablet alternate icon\"></i>tablet alternate</div>\n        <div class=\"column\"><i class=\"tachometer alternate icon\"></i>tachometer alternate</div>\n        <div class=\"column\"><i class=\"tag icon\"></i>tag</div>\n        <div class=\"column\"><i class=\"tags icon\"></i>tags</div>\n        <div class=\"column\"><i class=\"taxi icon\"></i>taxi</div>\n        <div class=\"column\"><i class=\"thumbtack icon\"></i>thumbtack</div>\n        <div class=\"column\"><i class=\"ticket alternate icon\"></i>ticket alternate</div>\n        <div class=\"column\"><i class=\"train icon\"></i>train</div>\n        <div class=\"column\"><i class=\"trash icon\"></i>trash</div>\n        <div class=\"column\"><i class=\"trash alternate icon\"></i>trash alternate</div>\n        <div class=\"column\"><i class=\"trash alternate outline icon\"></i>trash alternate outline</div>\n        <div class=\"column\"><i class=\"tree icon\"></i>tree</div>\n        <div class=\"column\"><i class=\"trophy icon\"></i>trophy</div>\n        <div class=\"column\"><i class=\"truck icon\"></i>truck</div>\n        <div class=\"column\"><i class=\"tv icon\"></i>tv</div>\n        <div class=\"column\"><i class=\"umbrella icon\"></i>umbrella</div>\n        <div class=\"column\"><i class=\"university icon\"></i>university</div>\n        <div class=\"column\"><i class=\"unlock icon\"></i>unlock</div>\n        <div class=\"column\"><i class=\"unlock alternate icon\"></i>unlock alternate</div>\n        <div class=\"column\"><i class=\"utensil spoon icon\"></i>utensil spoon</div>\n        <div class=\"column\"><i class=\"utensils icon\"></i>utensils</div>\n        <div class=\"column\"><i class=\"wheelchair icon\"></i>wheelchair</div>\n        <div class=\"column\"><i class=\"wrench icon\"></i>wrench</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"ambulance icon\"></i>\n        <i class=\"anchor icon\"></i>\n        <i class=\"archive icon\"></i>\n        <i class=\"balance scale icon\"></i>\n        <i class=\"bath icon\"></i>\n        <i class=\"bed icon\"></i>\n        <i class=\"beer icon\"></i>\n        <i class=\"bell icon\"></i>\n        <i class=\"bell outline icon\"></i>\n        <i class=\"bicycle icon\"></i>\n        <i class=\"binoculars icon\"></i>\n        <i class=\"birthday cake icon\"></i>\n        <i class=\"bomb icon\"></i>\n        <i class=\"book icon\"></i>\n        <i class=\"bookmark icon\"></i>\n        <i class=\"bookmark outline icon\"></i>\n        <i class=\"briefcase icon\"></i>\n        <i class=\"bug icon\"></i>\n        <i class=\"building icon\"></i>\n        <i class=\"building outline icon\"></i>\n        <i class=\"bullhorn icon\"></i>\n        <i class=\"bullseye icon\"></i>\n        <i class=\"bus icon\"></i>\n        <i class=\"calculator icon\"></i>\n        <i class=\"calendar icon\"></i>\n        <i class=\"calendar outline icon\"></i>\n        <i class=\"calendar alternate icon\"></i>\n        <i class=\"calendar alternate outline icon\"></i>\n        <i class=\"camera icon\"></i>\n        <i class=\"camera retro icon\"></i>\n        <i class=\"car icon\"></i>\n        <i class=\"clipboard icon\"></i>\n        <i class=\"clipboard outline icon\"></i>\n        <i class=\"cloud icon\"></i>\n        <i class=\"coffee icon\"></i>\n        <i class=\"cog icon\"></i>\n        <i class=\"cogs icon\"></i>\n        <i class=\"compass icon\"></i>\n        <i class=\"compass outline icon\"></i>\n        <i class=\"copy icon\"></i>\n        <i class=\"copy outline icon\"></i>\n        <i class=\"cube icon\"></i>\n        <i class=\"cubes icon\"></i>\n        <i class=\"cut icon\"></i>\n        <i class=\"envelope icon\"></i>\n        <i class=\"envelope outline icon\"></i>\n        <i class=\"envelope open icon\"></i>\n        <i class=\"envelope open outline icon\"></i>\n        <i class=\"eraser icon\"></i>\n        <i class=\"eye icon\"></i>\n        <i class=\"eye dropper icon\"></i>\n        <i class=\"fax icon\"></i>\n        <i class=\"fighter jet icon\"></i>\n        <i class=\"file icon\"></i>\n        <i class=\"file outline icon\"></i>\n        <i class=\"file alternate icon\"></i>\n        <i class=\"file alternate outline icon\"></i>\n        <i class=\"film icon\"></i>\n        <i class=\"fire icon\"></i>\n        <i class=\"fire extinguisher icon\"></i>\n        <i class=\"flag icon\"></i>\n        <i class=\"flag outline icon\"></i>\n        <i class=\"flag checkered icon\"></i>\n        <i class=\"flask icon\"></i>\n        <i class=\"futbol icon\"></i>\n        <i class=\"futbol outline icon\"></i>\n        <i class=\"gamepad icon\"></i>\n        <i class=\"gavel icon\"></i>\n        <i class=\"gem icon\"></i>\n        <i class=\"gem outline icon\"></i>\n        <i class=\"gift icon\"></i>\n        <i class=\"glass martini icon\"></i>\n        <i class=\"globe icon\"></i>\n        <i class=\"graduation cap icon\"></i>\n        <i class=\"hdd icon\"></i>\n        <i class=\"hdd outline icon\"></i>\n        <i class=\"headphones icon\"></i>\n        <i class=\"heart icon\"></i>\n        <i class=\"heart outline icon\"></i>\n        <i class=\"home icon\"></i>\n        <i class=\"hospital icon\"></i>\n        <i class=\"hospital outline icon\"></i>\n        <i class=\"hourglass icon\"></i>\n        <i class=\"hourglass outline icon\"></i>\n        <i class=\"image icon\"></i>\n        <i class=\"image outline icon\"></i>\n        <i class=\"images icon\"></i>\n        <i class=\"images outline icon\"></i>\n        <i class=\"industry icon\"></i>\n        <i class=\"key icon\"></i>\n        <i class=\"keyboard icon\"></i>\n        <i class=\"keyboard outline icon\"></i>\n        <i class=\"laptop icon\"></i>\n        <i class=\"leaf icon\"></i>\n        <i class=\"lemon icon\"></i>\n        <i class=\"lemon outline icon\"></i>\n        <i class=\"life ring icon\"></i>\n        <i class=\"life ring outline icon\"></i>\n        <i class=\"lightbulb icon\"></i>\n        <i class=\"lightbulb outline icon\"></i>\n        <i class=\"lock icon\"></i>\n        <i class=\"lock open icon\"></i>\n        <i class=\"magic icon\"></i>\n        <i class=\"magnet icon\"></i>\n        <i class=\"map icon\"></i>\n        <i class=\"map outline icon\"></i>\n        <i class=\"map marker icon\"></i>\n        <i class=\"map marker alternate icon\"></i>\n        <i class=\"map pin icon\"></i>\n        <i class=\"map signs icon\"></i>\n        <i class=\"medkit icon\"></i>\n        <i class=\"microchip icon\"></i>\n        <i class=\"microphone icon\"></i>\n        <i class=\"mobile icon\"></i>\n        <i class=\"mobile alternate icon\"></i>\n        <i class=\"money bill alternate icon\"></i>\n        <i class=\"money bill alternate outline icon\"></i>\n        <i class=\"moon icon\"></i>\n        <i class=\"moon outline icon\"></i>\n        <i class=\"motorcycle icon\"></i>\n        <i class=\"newspaper icon\"></i>\n        <i class=\"newspaper outline icon\"></i>\n        <i class=\"paint brush icon\"></i>\n        <i class=\"paper plane icon\"></i>\n        <i class=\"paper plane outline icon\"></i>\n        <i class=\"paperclip icon\"></i>\n        <i class=\"paste icon\"></i>\n        <i class=\"paw icon\"></i>\n        <i class=\"pencil alternate icon\"></i>\n        <i class=\"phone icon\"></i>\n        <i class=\"plane icon\"></i>\n        <i class=\"plug icon\"></i>\n        <i class=\"print icon\"></i>\n        <i class=\"puzzle piece icon\"></i>\n        <i class=\"road icon\"></i>\n        <i class=\"rocket icon\"></i>\n        <i class=\"save icon\"></i>\n        <i class=\"save outline icon\"></i>\n        <i class=\"search icon\"></i>\n        <i class=\"shield alternate icon\"></i>\n        <i class=\"shopping bag icon\"></i>\n        <i class=\"shopping basket icon\"></i>\n        <i class=\"shopping cart icon\"></i>\n        <i class=\"shower icon\"></i>\n        <i class=\"snowflake icon\"></i>\n        <i class=\"snowflake outline icon\"></i>\n        <i class=\"space shuttle icon\"></i>\n        <i class=\"star icon\"></i>\n        <i class=\"star outline icon\"></i>\n        <i class=\"sticky note icon\"></i>\n        <i class=\"sticky note outline icon\"></i>\n        <i class=\"stopwatch icon\"></i>\n        <i class=\"subway icon\"></i>\n        <i class=\"suitcase icon\"></i>\n        <i class=\"sun icon\"></i>\n        <i class=\"sun outline icon\"></i>\n        <i class=\"tablet icon\"></i>\n        <i class=\"tablet alternate icon\"></i>\n        <i class=\"tachometer alternate icon\"></i>\n        <i class=\"tag icon\"></i>\n        <i class=\"tags icon\"></i>\n        <i class=\"taxi icon\"></i>\n        <i class=\"thumbtack icon\"></i>\n        <i class=\"ticket alternate icon\"></i>\n        <i class=\"train icon\"></i>\n        <i class=\"trash icon\"></i>\n        <i class=\"trash alternate icon\"></i>\n        <i class=\"trash alternate outline icon\"></i>\n        <i class=\"tree icon\"></i>\n        <i class=\"trophy icon\"></i>\n        <i class=\"truck icon\"></i>\n        <i class=\"tv icon\"></i>\n        <i class=\"umbrella icon\"></i>\n        <i class=\"university icon\"></i>\n        <i class=\"unlock icon\"></i>\n        <i class=\"unlock alternate icon\"></i>\n        <i class=\"utensil spoon icon\"></i>\n        <i class=\"utensils icon\"></i>\n        <i class=\"wheelchair icon\"></i>\n        <i class=\"wrench icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Payments & Shopping</h4>\n      <p>Icons can represent common forms of payment and shopping actions</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"bell icon\"></i>bell</div>\n        <div class=\"column\"><i class=\"bell outline icon\"></i>bell outline</div>\n        <div class=\"column\"><i class=\"bookmark icon\"></i>bookmark</div>\n        <div class=\"column\"><i class=\"bookmark outline icon\"></i>bookmark outline</div>\n        <div class=\"column\"><i class=\"bullhorn icon\"></i>bullhorn</div>\n        <div class=\"column\"><i class=\"camera icon\"></i>camera</div>\n        <div class=\"column\"><i class=\"camera retro icon\"></i>camera retro</div>\n        <div class=\"column\"><i class=\"cart arrow down icon\"></i>cart arrow down</div>\n        <div class=\"column\"><i class=\"cart plus icon\"></i>cart plus</div>\n        <div class=\"column\"><i class=\"certificate icon\"></i>certificate</div>\n        <div class=\"column\"><i class=\"credit card icon\"></i>credit card</div>\n        <div class=\"column\"><i class=\"credit card outline icon\"></i>credit card outline</div>\n        <div class=\"column\"><i class=\"gem icon\"></i>gem</div>\n        <div class=\"column\"><i class=\"gem outline icon\"></i>gem outline</div>\n        <div class=\"column\"><i class=\"gift icon\"></i>gift</div>\n        <div class=\"column\"><i class=\"handshake icon\"></i>handshake</div>\n        <div class=\"column\"><i class=\"handshake outline icon\"></i>handshake outline</div>\n        <div class=\"column\"><i class=\"heart icon\"></i>heart</div>\n        <div class=\"column\"><i class=\"heart outline icon\"></i>heart outline</div>\n        <div class=\"column\"><i class=\"key icon\"></i>key</div>\n        <div class=\"column\"><i class=\"shopping bag icon\"></i>shopping bag</div>\n        <div class=\"column\"><i class=\"shopping basket icon\"></i>shopping basket</div>\n        <div class=\"column\"><i class=\"shopping cart icon\"></i>shopping cart</div>\n        <div class=\"column\"><i class=\"star icon\"></i>star</div>\n        <div class=\"column\"><i class=\"star outline icon\"></i>star outline</div>\n        <div class=\"column\"><i class=\"tag icon\"></i>tag</div>\n        <div class=\"column\"><i class=\"tags icon\"></i>tags</div>\n        <div class=\"column\"><i class=\"thumbs down icon\"></i>thumbs down</div>\n        <div class=\"column\"><i class=\"thumbs down outline icon\"></i>thumbs down outline</div>\n        <div class=\"column\"><i class=\"thumbs up icon\"></i>thumbs up</div>\n        <div class=\"column\"><i class=\"thumbs up outline icon\"></i>thumbs up outline</div>\n        <div class=\"column\"><i class=\"trophy icon\"></i>trophy</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"bell icon\"></i>\n        <i class=\"bell outline icon\"></i>\n        <i class=\"bookmark icon\"></i>\n        <i class=\"bookmark outline icon\"></i>\n        <i class=\"bullhorn icon\"></i>\n        <i class=\"camera icon\"></i>\n        <i class=\"camera retro icon\"></i>\n        <i class=\"cart arrow down icon\"></i>\n        <i class=\"cart plus icon\"></i>\n        <i class=\"certificate icon\"></i>\n        <i class=\"credit card icon\"></i>\n        <i class=\"credit card outline icon\"></i>\n        <i class=\"gem icon\"></i>\n        <i class=\"gem outline icon\"></i>\n        <i class=\"gift icon\"></i>\n        <i class=\"handshake icon\"></i>\n        <i class=\"handshake outline icon\"></i>\n        <i class=\"heart icon\"></i>\n        <i class=\"heart outline icon\"></i>\n        <i class=\"key icon\"></i>\n        <i class=\"shopping bag icon\"></i>\n        <i class=\"shopping basket icon\"></i>\n        <i class=\"shopping cart icon\"></i>\n        <i class=\"star icon\"></i>\n        <i class=\"star outline icon\"></i>\n        <i class=\"tag icon\"></i>\n        <i class=\"tags icon\"></i>\n        <i class=\"thumbs down icon\"></i>\n        <i class=\"thumbs down outline icon\"></i>\n        <i class=\"thumbs up icon\"></i>\n        <i class=\"thumbs up outline icon\"></i>\n        <i class=\"trophy icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Shapes</h4>\n      <p>Icons can be used to create shapes</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"bookmark icon\"></i>bookmark</div>\n        <div class=\"column\"><i class=\"bookmark outline icon\"></i>bookmark outline</div>\n        <div class=\"column\"><i class=\"calendar icon\"></i>calendar</div>\n        <div class=\"column\"><i class=\"calendar outline icon\"></i>calendar outline</div>\n        <div class=\"column\"><i class=\"certificate icon\"></i>certificate</div>\n        <div class=\"column\"><i class=\"circle icon\"></i>circle</div>\n        <div class=\"column\"><i class=\"circle outline icon\"></i>circle outline</div>\n        <div class=\"column\"><i class=\"cloud icon\"></i>cloud</div>\n        <div class=\"column\"><i class=\"comment icon\"></i>comment</div>\n        <div class=\"column\"><i class=\"comment outline icon\"></i>comment outline</div>\n        <div class=\"column\"><i class=\"file icon\"></i>file</div>\n        <div class=\"column\"><i class=\"file outline icon\"></i>file outline</div>\n        <div class=\"column\"><i class=\"folder icon\"></i>folder</div>\n        <div class=\"column\"><i class=\"folder outline icon\"></i>folder outline</div>\n        <div class=\"column\"><i class=\"heart icon\"></i>heart</div>\n        <div class=\"column\"><i class=\"heart outline icon\"></i>heart outline</div>\n        <div class=\"column\"><i class=\"map marker icon\"></i>map marker</div>\n        <div class=\"column\"><i class=\"play icon\"></i>play</div>\n        <div class=\"column\"><i class=\"square icon\"></i>square</div>\n        <div class=\"column\"><i class=\"square outline icon\"></i>square outline</div>\n        <div class=\"column\"><i class=\"star icon\"></i>star</div>\n        <div class=\"column\"><i class=\"star outline icon\"></i>star outline</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"bookmark icon\"></i>\n        <i class=\"bookmark outline icon\"></i>\n        <i class=\"calendar icon\"></i>\n        <i class=\"calendar outline icon\"></i>\n        <i class=\"certificate icon\"></i>\n        <i class=\"circle icon\"></i>\n        <i class=\"circle outline icon\"></i>\n        <i class=\"cloud icon\"></i>\n        <i class=\"comment icon\"></i>\n        <i class=\"comment outline icon\"></i>\n        <i class=\"file icon\"></i>\n        <i class=\"file outline icon\"></i>\n        <i class=\"folder icon\"></i>\n        <i class=\"folder outline icon\"></i>\n        <i class=\"heart icon\"></i>\n        <i class=\"heart outline icon\"></i>\n        <i class=\"map marker icon\"></i>\n        <i class=\"play icon\"></i>\n        <i class=\"square icon\"></i>\n        <i class=\"square outline icon\"></i>\n        <i class=\"star icon\"></i>\n        <i class=\"star outline icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Spinners</h4>\n      <p>Icons can represent loading</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"asterisk icon\"></i>asterisk</div>\n        <div class=\"column\"><i class=\"certificate icon\"></i>certificate</div>\n        <div class=\"column\"><i class=\"circle notch icon\"></i>circle notch</div>\n        <div class=\"column\"><i class=\"cog icon\"></i>cog</div>\n        <div class=\"column\"><i class=\"compass icon\"></i>compass</div>\n        <div class=\"column\"><i class=\"compass outline icon\"></i>compass outline</div>\n        <div class=\"column\"><i class=\"crosshairs icon\"></i>crosshairs</div>\n        <div class=\"column\"><i class=\"life ring icon\"></i>life ring</div>\n        <div class=\"column\"><i class=\"life ring outline icon\"></i>life ring outline</div>\n        <div class=\"column\"><i class=\"snowflake icon\"></i>snowflake</div>\n        <div class=\"column\"><i class=\"snowflake outline icon\"></i>snowflake outline</div>\n        <div class=\"column\"><i class=\"spinner icon\"></i>spinner</div>\n        <div class=\"column\"><i class=\"sun icon\"></i>sun</div>\n        <div class=\"column\"><i class=\"sun outline icon\"></i>sun outline</div>\n        <div class=\"column\"><i class=\"sync icon\"></i>sync</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"asterisk icon\"></i>\n        <i class=\"certificate icon\"></i>\n        <i class=\"circle notch icon\"></i>\n        <i class=\"cog icon\"></i>\n        <i class=\"compass icon\"></i>\n        <i class=\"compass outline icon\"></i>\n        <i class=\"crosshairs icon\"></i>\n        <i class=\"life ring icon\"></i>\n        <i class=\"life ring outline icon\"></i>\n        <i class=\"snowflake icon\"></i>\n        <i class=\"snowflake outline icon\"></i>\n        <i class=\"spinner icon\"></i>\n        <i class=\"sun icon\"></i>\n        <i class=\"sun outline icon\"></i>\n        <i class=\"sync icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Sports</h4>\n      <p>Icons which represent sports</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"baseball ball icon\"></i>baseball ball</div>\n        <div class=\"column\"><i class=\"basketball ball icon\"></i>basketball ball</div>\n        <div class=\"column\"><i class=\"bowling ball icon\"></i>bowling ball</div>\n        <div class=\"column\"><i class=\"football ball icon\"></i>football ball</div>\n        <div class=\"column\"><i class=\"futbol icon\"></i>futbol</div>\n        <div class=\"column\"><i class=\"futbol outline icon\"></i>futbol outline</div>\n        <div class=\"column\"><i class=\"golf ball icon\"></i>golf ball</div>\n        <div class=\"column\"><i class=\"hockey puck icon\"></i>hockey puck</div>\n        <div class=\"column\"><i class=\"quidditch icon\"></i>quidditch</div>\n        <div class=\"column\"><i class=\"table tennis icon\"></i>table tennis</div>\n        <div class=\"column\"><i class=\"volleyball ball icon\"></i>volleyball ball</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"baseball ball icon\"></i>\n        <i class=\"basketball ball icon\"></i>\n        <i class=\"bowling ball icon\"></i>\n        <i class=\"football ball icon\"></i>\n        <i class=\"futbol icon\"></i>\n        <i class=\"futbol outline icon\"></i>\n        <i class=\"golf ball icon\"></i>\n        <i class=\"hockey puck icon\"></i>\n        <i class=\"quidditch icon\"></i>\n        <i class=\"table tennis icon\"></i>\n        <i class=\"volleyball ball icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Status</h4>\n      <p>Icons can represent different states</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"ban icon\"></i>ban</div>\n        <div class=\"column\"><i class=\"battery empty icon\"></i>battery empty</div>\n        <div class=\"column\"><i class=\"battery full icon\"></i>battery full</div>\n        <div class=\"column\"><i class=\"battery half icon\"></i>battery half</div>\n        <div class=\"column\"><i class=\"battery quarter icon\"></i>battery quarter</div>\n        <div class=\"column\"><i class=\"battery three quarters icon\"></i>battery three quarters</div>\n        <div class=\"column\"><i class=\"bell icon\"></i>bell</div>\n        <div class=\"column\"><i class=\"bell outline icon\"></i>bell outline</div>\n        <div class=\"column\"><i class=\"bell slash icon\"></i>bell slash</div>\n        <div class=\"column\"><i class=\"bell slash outline icon\"></i>bell slash outline</div>\n        <div class=\"column\"><i class=\"calendar icon\"></i>calendar</div>\n        <div class=\"column\"><i class=\"calendar outline icon\"></i>calendar outline</div>\n        <div class=\"column\"><i class=\"calendar alternate icon\"></i>calendar alternate</div>\n        <div class=\"column\"><i class=\"calendar alternate outline icon\"></i>calendar alternate outline</div>\n        <div class=\"column\"><i class=\"calendar check icon\"></i>calendar check</div>\n        <div class=\"column\"><i class=\"calendar check outline icon\"></i>calendar check outline</div>\n        <div class=\"column\"><i class=\"calendar minus icon\"></i>calendar minus</div>\n        <div class=\"column\"><i class=\"calendar minus outline icon\"></i>calendar minus outline</div>\n        <div class=\"column\"><i class=\"calendar plus icon\"></i>calendar plus</div>\n        <div class=\"column\"><i class=\"calendar plus outline icon\"></i>calendar plus outline</div>\n        <div class=\"column\"><i class=\"calendar times icon\"></i>calendar times</div>\n        <div class=\"column\"><i class=\"calendar times outline icon\"></i>calendar times outline</div>\n        <div class=\"column\"><i class=\"cart arrow down icon\"></i>cart arrow down</div>\n        <div class=\"column\"><i class=\"cart plus icon\"></i>cart plus</div>\n        <div class=\"column\"><i class=\"exclamation icon\"></i>exclamation</div>\n        <div class=\"column\"><i class=\"exclamation circle icon\"></i>exclamation circle</div>\n        <div class=\"column\"><i class=\"exclamation triangle icon\"></i>exclamation triangle</div>\n        <div class=\"column\"><i class=\"eye icon\"></i>eye</div>\n        <div class=\"column\"><i class=\"eye slash icon\"></i>eye slash</div>\n        <div class=\"column\"><i class=\"eye slash outline icon\"></i>eye slash outline</div>\n        <div class=\"column\"><i class=\"file icon\"></i>file</div>\n        <div class=\"column\"><i class=\"file outline icon\"></i>file outline</div>\n        <div class=\"column\"><i class=\"file alternate icon\"></i>file alternate</div>\n        <div class=\"column\"><i class=\"file alternate outline icon\"></i>file alternate outline</div>\n        <div class=\"column\"><i class=\"folder icon\"></i>folder</div>\n        <div class=\"column\"><i class=\"folder outline icon\"></i>folder outline</div>\n        <div class=\"column\"><i class=\"folder open icon\"></i>folder open</div>\n        <div class=\"column\"><i class=\"folder open outline icon\"></i>folder open outline</div>\n        <div class=\"column\"><i class=\"info icon\"></i>info</div>\n        <div class=\"column\"><i class=\"info circle icon\"></i>info circle</div>\n        <div class=\"column\"><i class=\"lock icon\"></i>lock</div>\n        <div class=\"column\"><i class=\"lock open icon\"></i>lock open</div>\n        <div class=\"column\"><i class=\"minus icon\"></i>minus</div>\n        <div class=\"column\"><i class=\"minus circle icon\"></i>minus circle</div>\n        <div class=\"column\"><i class=\"minus square icon\"></i>minus square</div>\n        <div class=\"column\"><i class=\"minus square outline icon\"></i>minus square outline</div>\n        <div class=\"column\"><i class=\"plus icon\"></i>plus</div>\n        <div class=\"column\"><i class=\"plus circle icon\"></i>plus circle</div>\n        <div class=\"column\"><i class=\"plus square icon\"></i>plus square</div>\n        <div class=\"column\"><i class=\"plus square outline icon\"></i>plus square outline</div>\n        <div class=\"column\"><i class=\"question icon\"></i>question</div>\n        <div class=\"column\"><i class=\"question circle icon\"></i>question circle</div>\n        <div class=\"column\"><i class=\"question circle outline icon\"></i>question circle outline</div>\n        <div class=\"column\"><i class=\"shield alternate icon\"></i>shield alternate</div>\n        <div class=\"column\"><i class=\"shopping cart icon\"></i>shopping cart</div>\n        <div class=\"column\"><i class=\"sign in alternate icon\"></i>sign in alternate</div>\n        <div class=\"column\"><i class=\"sign out alternate icon\"></i>sign out alternate</div>\n        <div class=\"column\"><i class=\"thermometer empty icon\"></i>thermometer empty</div>\n        <div class=\"column\"><i class=\"thermometer full icon\"></i>thermometer full</div>\n        <div class=\"column\"><i class=\"thermometer half icon\"></i>thermometer half</div>\n        <div class=\"column\"><i class=\"thermometer quarter icon\"></i>thermometer quarter</div>\n        <div class=\"column\"><i class=\"thermometer three quarters icon\"></i>thermometer three quarters</div>\n        <div class=\"column\"><i class=\"thumbs down icon\"></i>thumbs down</div>\n        <div class=\"column\"><i class=\"thumbs down outline icon\"></i>thumbs down outline</div>\n        <div class=\"column\"><i class=\"thumbs up icon\"></i>thumbs up</div>\n        <div class=\"column\"><i class=\"thumbs up outline icon\"></i>thumbs up outline</div>\n        <div class=\"column\"><i class=\"toggle off icon\"></i>toggle off</div>\n        <div class=\"column\"><i class=\"toggle on icon\"></i>toggle on</div>\n        <div class=\"column\"><i class=\"unlock icon\"></i>unlock</div>\n        <div class=\"column\"><i class=\"unlock alternate icon\"></i>unlock alternate</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"ban icon\"></i>\n        <i class=\"battery empty icon\"></i>\n        <i class=\"battery full icon\"></i>\n        <i class=\"battery half icon\"></i>\n        <i class=\"battery quarter icon\"></i>\n        <i class=\"battery three quarters icon\"></i>\n        <i class=\"bell icon\"></i>\n        <i class=\"bell outline icon\"></i>\n        <i class=\"bell slash icon\"></i>\n        <i class=\"bell slash outline icon\"></i>\n        <i class=\"calendar icon\"></i>\n        <i class=\"calendar outline icon\"></i>\n        <i class=\"calendar alternate icon\"></i>\n        <i class=\"calendar alternate outline icon\"></i>\n        <i class=\"calendar check icon\"></i>\n        <i class=\"calendar check outline icon\"></i>\n        <i class=\"calendar minus icon\"></i>\n        <i class=\"calendar minus outline icon\"></i>\n        <i class=\"calendar plus icon\"></i>\n        <i class=\"calendar plus outline icon\"></i>\n        <i class=\"calendar times icon\"></i>\n        <i class=\"calendar times outline icon\"></i>\n        <i class=\"cart arrow down icon\"></i>\n        <i class=\"cart plus icon\"></i>\n        <i class=\"exclamation icon\"></i>\n        <i class=\"exclamation circle icon\"></i>\n        <i class=\"exclamation triangle icon\"></i>\n        <i class=\"eye icon\"></i>\n        <i class=\"eye slash icon\"></i>\n        <i class=\"eye slash outline icon\"></i>\n        <i class=\"file icon\"></i>\n        <i class=\"file outline icon\"></i>\n        <i class=\"file alternate icon\"></i>\n        <i class=\"file alternate outline icon\"></i>\n        <i class=\"folder icon\"></i>\n        <i class=\"folder outline icon\"></i>\n        <i class=\"folder open icon\"></i>\n        <i class=\"folder open outline icon\"></i>\n        <i class=\"info icon\"></i>\n        <i class=\"info circle icon\"></i>\n        <i class=\"lock icon\"></i>\n        <i class=\"lock open icon\"></i>\n        <i class=\"minus icon\"></i>\n        <i class=\"minus circle icon\"></i>\n        <i class=\"minus square icon\"></i>\n        <i class=\"minus square outline icon\"></i>\n        <i class=\"plus icon\"></i>\n        <i class=\"plus circle icon\"></i>\n        <i class=\"plus square icon\"></i>\n        <i class=\"plus square outline icon\"></i>\n        <i class=\"question icon\"></i>\n        <i class=\"question circle icon\"></i>\n        <i class=\"question circle outline icon\"></i>\n        <i class=\"shield alternate icon\"></i>\n        <i class=\"shopping cart icon\"></i>\n        <i class=\"sign in alternate icon\"></i>\n        <i class=\"sign out alternate icon\"></i>\n        <i class=\"thermometer empty icon\"></i>\n        <i class=\"thermometer full icon\"></i>\n        <i class=\"thermometer half icon\"></i>\n        <i class=\"thermometer quarter icon\"></i>\n        <i class=\"thermometer three quarters icon\"></i>\n        <i class=\"thumbs down icon\"></i>\n        <i class=\"thumbs down outline icon\"></i>\n        <i class=\"thumbs up icon\"></i>\n        <i class=\"thumbs up outline icon\"></i>\n        <i class=\"toggle off icon\"></i>\n        <i class=\"toggle on icon\"></i>\n        <i class=\"unlock icon\"></i>\n        <i class=\"unlock alternate icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Users & People</h4>\n      <p>Icons can represent users or people</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"address book icon\"></i>address book</div>\n        <div class=\"column\"><i class=\"address book outline icon\"></i>address book outline</div>\n        <div class=\"column\"><i class=\"address card icon\"></i>address card</div>\n        <div class=\"column\"><i class=\"address card outline icon\"></i>address card outline</div>\n        <div class=\"column\"><i class=\"bed icon\"></i>bed</div>\n        <div class=\"column\"><i class=\"blind icon\"></i>blind</div>\n        <div class=\"column\"><i class=\"child icon\"></i>child</div>\n        <div class=\"column\"><i class=\"female icon\"></i>female</div>\n        <div class=\"column\"><i class=\"frown icon\"></i>frown</div>\n        <div class=\"column\"><i class=\"frown outline icon\"></i>frown outline</div>\n        <div class=\"column\"><i class=\"id badge icon\"></i>id badge</div>\n        <div class=\"column\"><i class=\"id badge outline icon\"></i>id badge outline</div>\n        <div class=\"column\"><i class=\"id card icon\"></i>id card</div>\n        <div class=\"column\"><i class=\"id card outline icon\"></i>id card outline</div>\n        <div class=\"column\"><i class=\"male icon\"></i>male</div>\n        <div class=\"column\"><i class=\"meh icon\"></i>meh</div>\n        <div class=\"column\"><i class=\"meh outline icon\"></i>meh outline</div>\n        <div class=\"column\"><i class=\"power off icon\"></i>power off</div>\n        <div class=\"column\"><i class=\"smile icon\"></i>smile</div>\n        <div class=\"column\"><i class=\"smile outline icon\"></i>smile outline</div>\n        <div class=\"column\"><i class=\"street view icon\"></i>street view</div>\n        <div class=\"column\"><i class=\"user icon\"></i>user</div>\n        <div class=\"column\"><i class=\"user outline icon\"></i>user outline</div>\n        <div class=\"column\"><i class=\"user circle icon\"></i>user circle</div>\n        <div class=\"column\"><i class=\"user circle outline icon\"></i>user circle outline</div>\n        <div class=\"column\"><i class=\"user md icon\"></i>user md</div>\n        <div class=\"column\"><i class=\"user plus icon\"></i>user plus</div>\n        <div class=\"column\"><i class=\"user secret icon\"></i>user secret</div>\n        <div class=\"column\"><i class=\"user times icon\"></i>user times</div>\n        <div class=\"column\"><i class=\"users icon\"></i>users</div>\n        <div class=\"column\"><i class=\"wheelchair icon\"></i>wheelchair</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"address book icon\"></i>\n        <i class=\"address book outline icon\"></i>\n        <i class=\"address card icon\"></i>\n        <i class=\"address card outline icon\"></i>\n        <i class=\"bed icon\"></i>\n        <i class=\"blind icon\"></i>\n        <i class=\"child icon\"></i>\n        <i class=\"female icon\"></i>\n        <i class=\"frown icon\"></i>\n        <i class=\"frown outline icon\"></i>\n        <i class=\"id badge icon\"></i>\n        <i class=\"id badge outline icon\"></i>\n        <i class=\"id card icon\"></i>\n        <i class=\"id card outline icon\"></i>\n        <i class=\"male icon\"></i>\n        <i class=\"meh icon\"></i>\n        <i class=\"meh outline icon\"></i>\n        <i class=\"power off icon\"></i>\n        <i class=\"smile icon\"></i>\n        <i class=\"smile outline icon\"></i>\n        <i class=\"street view icon\"></i>\n        <i class=\"user icon\"></i>\n        <i class=\"user outline icon\"></i>\n        <i class=\"user circle icon\"></i>\n        <i class=\"user circle outline icon\"></i>\n        <i class=\"user md icon\"></i>\n        <i class=\"user plus icon\"></i>\n        <i class=\"user secret icon\"></i>\n        <i class=\"user times icon\"></i>\n        <i class=\"users icon\"></i>\n        <i class=\"wheelchair icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Vehicles</h4>\n      <p>Icons can represent vehicles or transport</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"ambulance icon\"></i>ambulance</div>\n        <div class=\"column\"><i class=\"bicycle icon\"></i>bicycle</div>\n        <div class=\"column\"><i class=\"bus icon\"></i>bus</div>\n        <div class=\"column\"><i class=\"car icon\"></i>car</div>\n        <div class=\"column\"><i class=\"fighter jet icon\"></i>fighter jet</div>\n        <div class=\"column\"><i class=\"motorcycle icon\"></i>motorcycle</div>\n        <div class=\"column\"><i class=\"paper plane icon\"></i>paper plane</div>\n        <div class=\"column\"><i class=\"paper plane outline icon\"></i>paper plane outline</div>\n        <div class=\"column\"><i class=\"plane icon\"></i>plane</div>\n        <div class=\"column\"><i class=\"rocket icon\"></i>rocket</div>\n        <div class=\"column\"><i class=\"ship icon\"></i>ship</div>\n        <div class=\"column\"><i class=\"shopping cart icon\"></i>shopping cart</div>\n        <div class=\"column\"><i class=\"space shuttle icon\"></i>space shuttle</div>\n        <div class=\"column\"><i class=\"subway icon\"></i>subway</div>\n        <div class=\"column\"><i class=\"taxi icon\"></i>taxi</div>\n        <div class=\"column\"><i class=\"train icon\"></i>train</div>\n        <div class=\"column\"><i class=\"truck icon\"></i>truck</div>\n        <div class=\"column\"><i class=\"wheelchair icon\"></i>wheelchair</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"ambulance icon\"></i>\n        <i class=\"bicycle icon\"></i>\n        <i class=\"bus icon\"></i>\n        <i class=\"car icon\"></i>\n        <i class=\"fighter jet icon\"></i>\n        <i class=\"motorcycle icon\"></i>\n        <i class=\"paper plane icon\"></i>\n        <i class=\"paper plane outline icon\"></i>\n        <i class=\"plane icon\"></i>\n        <i class=\"rocket icon\"></i>\n        <i class=\"ship icon\"></i>\n        <i class=\"shopping cart icon\"></i>\n        <i class=\"space shuttle icon\"></i>\n        <i class=\"subway icon\"></i>\n        <i class=\"taxi icon\"></i>\n        <i class=\"train icon\"></i>\n        <i class=\"truck icon\"></i>\n        <i class=\"wheelchair icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Writing</h4>\n      <p>Icons can represent writing and editing</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"archive icon\"></i>archive</div>\n        <div class=\"column\"><i class=\"book icon\"></i>book</div>\n        <div class=\"column\"><i class=\"bookmark icon\"></i>bookmark</div>\n        <div class=\"column\"><i class=\"bookmark outline icon\"></i>bookmark outline</div>\n        <div class=\"column\"><i class=\"edit icon\"></i>edit</div>\n        <div class=\"column\"><i class=\"edit outline icon\"></i>edit outline</div>\n        <div class=\"column\"><i class=\"envelope icon\"></i>envelope</div>\n        <div class=\"column\"><i class=\"envelope outline icon\"></i>envelope outline</div>\n        <div class=\"column\"><i class=\"envelope open icon\"></i>envelope open</div>\n        <div class=\"column\"><i class=\"envelope open outline icon\"></i>envelope open outline</div>\n        <div class=\"column\"><i class=\"eraser icon\"></i>eraser</div>\n        <div class=\"column\"><i class=\"file icon\"></i>file</div>\n        <div class=\"column\"><i class=\"file outline icon\"></i>file outline</div>\n        <div class=\"column\"><i class=\"file alternate icon\"></i>file alternate</div>\n        <div class=\"column\"><i class=\"file alternate outline icon\"></i>file alternate outline</div>\n        <div class=\"column\"><i class=\"folder icon\"></i>folder</div>\n        <div class=\"column\"><i class=\"folder outline icon\"></i>folder outline</div>\n        <div class=\"column\"><i class=\"folder open icon\"></i>folder open</div>\n        <div class=\"column\"><i class=\"folder open outline icon\"></i>folder open outline</div>\n        <div class=\"column\"><i class=\"keyboard icon\"></i>keyboard</div>\n        <div class=\"column\"><i class=\"keyboard outline icon\"></i>keyboard outline</div>\n        <div class=\"column\"><i class=\"newspaper icon\"></i>newspaper</div>\n        <div class=\"column\"><i class=\"newspaper outline icon\"></i>newspaper outline</div>\n        <div class=\"column\"><i class=\"paper plane icon\"></i>paper plane</div>\n        <div class=\"column\"><i class=\"paper plane outline icon\"></i>paper plane outline</div>\n        <div class=\"column\"><i class=\"paperclip icon\"></i>paperclip</div>\n        <div class=\"column\"><i class=\"paragraph icon\"></i>paragraph</div>\n        <div class=\"column\"><i class=\"pen square icon\"></i>pen square</div>\n        <div class=\"column\"><i class=\"pencil alternate icon\"></i>pencil alternate</div>\n        <div class=\"column\"><i class=\"quote left icon\"></i>quote left</div>\n        <div class=\"column\"><i class=\"quote right icon\"></i>quote right</div>\n        <div class=\"column\"><i class=\"sticky note icon\"></i>sticky note</div>\n        <div class=\"column\"><i class=\"sticky note outline icon\"></i>sticky note outline</div>\n        <div class=\"column\"><i class=\"thumbtack icon\"></i>thumbtack</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"archive icon\"></i>\n        <i class=\"book icon\"></i>\n        <i class=\"bookmark icon\"></i>\n        <i class=\"bookmark outline icon\"></i>\n        <i class=\"edit icon\"></i>\n        <i class=\"edit outline icon\"></i>\n        <i class=\"envelope icon\"></i>\n        <i class=\"envelope outline icon\"></i>\n        <i class=\"envelope open icon\"></i>\n        <i class=\"envelope open outline icon\"></i>\n        <i class=\"eraser icon\"></i>\n        <i class=\"file icon\"></i>\n        <i class=\"file outline icon\"></i>\n        <i class=\"file alternate icon\"></i>\n        <i class=\"file alternate outline icon\"></i>\n        <i class=\"folder icon\"></i>\n        <i class=\"folder outline icon\"></i>\n        <i class=\"folder open icon\"></i>\n        <i class=\"folder open outline icon\"></i>\n        <i class=\"keyboard icon\"></i>\n        <i class=\"keyboard outline icon\"></i>\n        <i class=\"newspaper icon\"></i>\n        <i class=\"newspaper outline icon\"></i>\n        <i class=\"paper plane icon\"></i>\n        <i class=\"paper plane outline icon\"></i>\n        <i class=\"paperclip icon\"></i>\n        <i class=\"paragraph icon\"></i>\n        <i class=\"pen square icon\"></i>\n        <i class=\"pencil alternate icon\"></i>\n        <i class=\"quote left icon\"></i>\n        <i class=\"quote right icon\"></i>\n        <i class=\"sticky note icon\"></i>\n        <i class=\"sticky note outline icon\"></i>\n        <i class=\"thumbtack icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">Brands</h4>\n      <p>Icons can represent logos to common brands</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"500px icon\"></i>500px</div>\n        <div class=\"column\"><i class=\"accessible icon icon\"></i>accessible icon</div>\n        <div class=\"column\"><i class=\"accusoft icon\"></i>accusoft</div>\n        <div class=\"column\"><i class=\"adn icon\"></i>adn</div>\n        <div class=\"column\"><i class=\"adversal icon\"></i>adversal</div>\n        <div class=\"column\"><i class=\"affiliatetheme icon\"></i>affiliatetheme</div>\n        <div class=\"column\"><i class=\"algolia icon\"></i>algolia</div>\n        <div class=\"column\"><i class=\"amazon icon\"></i>amazon</div>\n        <div class=\"column\"><i class=\"amazon pay icon\"></i>amazon pay</div>\n        <div class=\"column\"><i class=\"amilia icon\"></i>amilia</div>\n        <div class=\"column\"><i class=\"android icon\"></i>android</div>\n        <div class=\"column\"><i class=\"angellist icon\"></i>angellist</div>\n        <div class=\"column\"><i class=\"angrycreative icon\"></i>angrycreative</div>\n        <div class=\"column\"><i class=\"angular icon\"></i>angular</div>\n        <div class=\"column\"><i class=\"app store icon\"></i>app store</div>\n        <div class=\"column\"><i class=\"app store ios icon\"></i>app store ios</div>\n        <div class=\"column\"><i class=\"apper icon\"></i>apper</div>\n        <div class=\"column\"><i class=\"apple icon\"></i>apple</div>\n        <div class=\"column\"><i class=\"apple pay icon\"></i>apple pay</div>\n        <div class=\"column\"><i class=\"asymmetrik icon\"></i>asymmetrik</div>\n        <div class=\"column\"><i class=\"audible icon\"></i>audible</div>\n        <div class=\"column\"><i class=\"autoprefixer icon\"></i>autoprefixer</div>\n        <div class=\"column\"><i class=\"avianex icon\"></i>avianex</div>\n        <div class=\"column\"><i class=\"aviato icon\"></i>aviato</div>\n        <div class=\"column\"><i class=\"aws icon\"></i>aws</div>\n        <div class=\"column\"><i class=\"bandcamp icon\"></i>bandcamp</div>\n        <div class=\"column\"><i class=\"behance icon\"></i>behance</div>\n        <div class=\"column\"><i class=\"behance square icon\"></i>behance square</div>\n        <div class=\"column\"><i class=\"bimobject icon\"></i>bimobject</div>\n        <div class=\"column\"><i class=\"bitbucket icon\"></i>bitbucket</div>\n        <div class=\"column\"><i class=\"bitcoin icon\"></i>bitcoin</div>\n        <div class=\"column\"><i class=\"bity icon\"></i>bity</div>\n        <div class=\"column\"><i class=\"black tie icon\"></i>black tie</div>\n        <div class=\"column\"><i class=\"blackberry icon\"></i>blackberry</div>\n        <div class=\"column\"><i class=\"blogger icon\"></i>blogger</div>\n        <div class=\"column\"><i class=\"blogger b icon\"></i>blogger b</div>\n        <div class=\"column\"><i class=\"bluetooth icon\"></i>bluetooth</div>\n        <div class=\"column\"><i class=\"bluetooth b icon\"></i>bluetooth b</div>\n        <div class=\"column\"><i class=\"btc icon\"></i>btc</div>\n        <div class=\"column\"><i class=\"buromobelexperte icon\"></i>buromobelexperte</div>\n        <div class=\"column\"><i class=\"buysellads icon\"></i>buysellads</div>\n        <div class=\"column\"><i class=\"cc amazon pay icon\"></i>cc amazon pay</div>\n        <div class=\"column\"><i class=\"cc amex icon\"></i>cc amex</div>\n        <div class=\"column\"><i class=\"cc apple pay icon\"></i>cc apple pay</div>\n        <div class=\"column\"><i class=\"cc diners club icon\"></i>cc diners club</div>\n        <div class=\"column\"><i class=\"cc discover icon\"></i>cc discover</div>\n        <div class=\"column\"><i class=\"cc jcb icon\"></i>cc jcb</div>\n        <div class=\"column\"><i class=\"cc mastercard icon\"></i>cc mastercard</div>\n        <div class=\"column\"><i class=\"cc paypal icon\"></i>cc paypal</div>\n        <div class=\"column\"><i class=\"cc stripe icon\"></i>cc stripe</div>\n        <div class=\"column\"><i class=\"cc visa icon\"></i>cc visa</div>\n        <div class=\"column\"><i class=\"centercode icon\"></i>centercode</div>\n        <div class=\"column\"><i class=\"chrome icon\"></i>chrome</div>\n        <div class=\"column\"><i class=\"cloudscale icon\"></i>cloudscale</div>\n        <div class=\"column\"><i class=\"cloudsmith icon\"></i>cloudsmith</div>\n        <div class=\"column\"><i class=\"cloudversify icon\"></i>cloudversify</div>\n        <div class=\"column\"><i class=\"codepen icon\"></i>codepen</div>\n        <div class=\"column\"><i class=\"codiepie icon\"></i>codiepie</div>\n        <div class=\"column\"><i class=\"connectdevelop icon\"></i>connectdevelop</div>\n        <div class=\"column\"><i class=\"contao icon\"></i>contao</div>\n        <div class=\"column\"><i class=\"cpanel icon\"></i>cpanel</div>\n        <div class=\"column\"><i class=\"creative commons icon\"></i>creative commons</div>\n        <div class=\"column\"><i class=\"css3 icon\"></i>css3</div>\n        <div class=\"column\"><i class=\"css3 alternate icon\"></i>css3 alternate</div>\n        <div class=\"column\"><i class=\"cuttlefish icon\"></i>cuttlefish</div>\n        <div class=\"column\"><i class=\"d and d icon\"></i>d and d</div>\n        <div class=\"column\"><i class=\"dashcube icon\"></i>dashcube</div>\n        <div class=\"column\"><i class=\"delicious icon\"></i>delicious</div>\n        <div class=\"column\"><i class=\"deploydog icon\"></i>deploydog</div>\n        <div class=\"column\"><i class=\"deskpro icon\"></i>deskpro</div>\n        <div class=\"column\"><i class=\"deviantart icon\"></i>deviantart</div>\n        <div class=\"column\"><i class=\"digg icon\"></i>digg</div>\n        <div class=\"column\"><i class=\"digital ocean icon\"></i>digital ocean</div>\n        <div class=\"column\"><i class=\"discord icon\"></i>discord</div>\n        <div class=\"column\"><i class=\"discourse icon\"></i>discourse</div>\n        <div class=\"column\"><i class=\"dochub icon\"></i>dochub</div>\n        <div class=\"column\"><i class=\"docker icon\"></i>docker</div>\n        <div class=\"column\"><i class=\"draft2digital icon\"></i>draft2digital</div>\n        <div class=\"column\"><i class=\"dribbble icon\"></i>dribbble</div>\n        <div class=\"column\"><i class=\"dribbble square icon\"></i>dribbble square</div>\n        <div class=\"column\"><i class=\"dropbox icon\"></i>dropbox</div>\n        <div class=\"column\"><i class=\"drupal icon\"></i>drupal</div>\n        <div class=\"column\"><i class=\"dyalog icon\"></i>dyalog</div>\n        <div class=\"column\"><i class=\"earlybirds icon\"></i>earlybirds</div>\n        <div class=\"column\"><i class=\"edge icon\"></i>edge</div>\n        <div class=\"column\"><i class=\"elementor icon\"></i>elementor</div>\n        <div class=\"column\"><i class=\"ember icon\"></i>ember</div>\n        <div class=\"column\"><i class=\"empire icon\"></i>empire</div>\n        <div class=\"column\"><i class=\"envira icon\"></i>envira</div>\n        <div class=\"column\"><i class=\"erlang icon\"></i>erlang</div>\n        <div class=\"column\"><i class=\"ethereum icon\"></i>ethereum</div>\n        <div class=\"column\"><i class=\"etsy icon\"></i>etsy</div>\n        <div class=\"column\"><i class=\"expeditedssl icon\"></i>expeditedssl</div>\n        <div class=\"column\"><i class=\"facebook icon\"></i>facebook</div>\n        <div class=\"column\"><i class=\"facebook f icon\"></i>facebook f</div>\n        <div class=\"column\"><i class=\"facebook messenger icon\"></i>facebook messenger</div>\n        <div class=\"column\"><i class=\"facebook square icon\"></i>facebook square</div>\n        <div class=\"column\"><i class=\"firefox icon\"></i>firefox</div>\n        <div class=\"column\"><i class=\"first order icon\"></i>first order</div>\n        <div class=\"column\"><i class=\"firstdraft icon\"></i>firstdraft</div>\n        <div class=\"column\"><i class=\"flickr icon\"></i>flickr</div>\n        <div class=\"column\"><i class=\"flipboard icon\"></i>flipboard</div>\n        <div class=\"column\"><i class=\"fly icon\"></i>fly</div>\n        <div class=\"column\"><i class=\"font awesome icon\"></i>font awesome</div>\n        <div class=\"column\"><i class=\"font awesome alternate icon\"></i>font awesome alternate</div>\n        <div class=\"column\"><i class=\"font awesome flag icon\"></i>font awesome flag</div>\n        <div class=\"column\"><i class=\"fonticons icon\"></i>fonticons</div>\n        <div class=\"column\"><i class=\"fonticons fi icon\"></i>fonticons fi</div>\n        <div class=\"column\"><i class=\"fort awesome icon\"></i>fort awesome</div>\n        <div class=\"column\"><i class=\"fort awesome alternate icon\"></i>fort awesome alternate</div>\n        <div class=\"column\"><i class=\"forumbee icon\"></i>forumbee</div>\n        <div class=\"column\"><i class=\"foursquare icon\"></i>foursquare</div>\n        <div class=\"column\"><i class=\"free code camp icon\"></i>free code camp</div>\n        <div class=\"column\"><i class=\"freebsd icon\"></i>freebsd</div>\n        <div class=\"column\"><i class=\"get pocket icon\"></i>get pocket</div>\n        <div class=\"column\"><i class=\"gg icon\"></i>gg</div>\n        <div class=\"column\"><i class=\"gg circle icon\"></i>gg circle</div>\n        <div class=\"column\"><i class=\"git icon\"></i>git</div>\n        <div class=\"column\"><i class=\"git square icon\"></i>git square</div>\n        <div class=\"column\"><i class=\"github icon\"></i>github</div>\n        <div class=\"column\"><i class=\"github alternate icon\"></i>github alternate</div>\n        <div class=\"column\"><i class=\"github square icon\"></i>github square</div>\n        <div class=\"column\"><i class=\"gitkraken icon\"></i>gitkraken</div>\n        <div class=\"column\"><i class=\"gitlab icon\"></i>gitlab</div>\n        <div class=\"column\"><i class=\"gitter icon\"></i>gitter</div>\n        <div class=\"column\"><i class=\"glide icon\"></i>glide</div>\n        <div class=\"column\"><i class=\"glide g icon\"></i>glide g</div>\n        <div class=\"column\"><i class=\"gofore icon\"></i>gofore</div>\n        <div class=\"column\"><i class=\"goodreads icon\"></i>goodreads</div>\n        <div class=\"column\"><i class=\"goodreads g icon\"></i>goodreads g</div>\n        <div class=\"column\"><i class=\"google icon\"></i>google</div>\n        <div class=\"column\"><i class=\"google drive icon\"></i>google drive</div>\n        <div class=\"column\"><i class=\"google play icon\"></i>google play</div>\n        <div class=\"column\"><i class=\"google plus icon\"></i>google plus</div>\n        <div class=\"column\"><i class=\"google plus g icon\"></i>google plus g</div>\n        <div class=\"column\"><i class=\"google plus square icon\"></i>google plus square</div>\n        <div class=\"column\"><i class=\"google wallet icon\"></i>google wallet</div>\n        <div class=\"column\"><i class=\"gratipay icon\"></i>gratipay</div>\n        <div class=\"column\"><i class=\"grav icon\"></i>grav</div>\n        <div class=\"column\"><i class=\"gripfire icon\"></i>gripfire</div>\n        <div class=\"column\"><i class=\"grunt icon\"></i>grunt</div>\n        <div class=\"column\"><i class=\"gulp icon\"></i>gulp</div>\n        <div class=\"column\"><i class=\"hacker news icon\"></i>hacker news</div>\n        <div class=\"column\"><i class=\"hacker news square icon\"></i>hacker news square</div>\n        <div class=\"column\"><i class=\"hips icon\"></i>hips</div>\n        <div class=\"column\"><i class=\"hire a helper icon\"></i>hire a helper</div>\n        <div class=\"column\"><i class=\"hooli icon\"></i>hooli</div>\n        <div class=\"column\"><i class=\"hotjar icon\"></i>hotjar</div>\n        <div class=\"column\"><i class=\"houzz icon\"></i>houzz</div>\n        <div class=\"column\"><i class=\"html5 icon\"></i>html5</div>\n        <div class=\"column\"><i class=\"hubspot icon\"></i>hubspot</div>\n        <div class=\"column\"><i class=\"imdb icon\"></i>imdb</div>\n        <div class=\"column\"><i class=\"instagram icon\"></i>instagram</div>\n        <div class=\"column\"><i class=\"internet explorer icon\"></i>internet explorer</div>\n        <div class=\"column\"><i class=\"ioxhost icon\"></i>ioxhost</div>\n        <div class=\"column\"><i class=\"itunes icon\"></i>itunes</div>\n        <div class=\"column\"><i class=\"itunes note icon\"></i>itunes note</div>\n        <div class=\"column\"><i class=\"jenkins icon\"></i>jenkins</div>\n        <div class=\"column\"><i class=\"joget icon\"></i>joget</div>\n        <div class=\"column\"><i class=\"joomla icon\"></i>joomla</div>\n        <div class=\"column\"><i class=\"js icon\"></i>js</div>\n        <div class=\"column\"><i class=\"js square icon\"></i>js square</div>\n        <div class=\"column\"><i class=\"jsfiddle icon\"></i>jsfiddle</div>\n        <div class=\"column\"><i class=\"keycdn icon\"></i>keycdn</div>\n        <div class=\"column\"><i class=\"kickstarter icon\"></i>kickstarter</div>\n        <div class=\"column\"><i class=\"kickstarter k icon\"></i>kickstarter k</div>\n        <div class=\"column\"><i class=\"korvue icon\"></i>korvue</div>\n        <div class=\"column\"><i class=\"laravel icon\"></i>laravel</div>\n        <div class=\"column\"><i class=\"lastfm icon\"></i>lastfm</div>\n        <div class=\"column\"><i class=\"lastfm square icon\"></i>lastfm square</div>\n        <div class=\"column\"><i class=\"leanpub icon\"></i>leanpub</div>\n        <div class=\"column\"><i class=\"less icon\"></i>less</div>\n        <div class=\"column\"><i class=\"linechat icon\"></i>linechat</div>\n        <div class=\"column\"><i class=\"linkedin icon\"></i>linkedin</div>\n        <div class=\"column\"><i class=\"linkedin alternate icon\"></i>linkedin alternate</div>\n        <div class=\"column\"><i class=\"linode icon\"></i>linode</div>\n        <div class=\"column\"><i class=\"linux icon\"></i>linux</div>\n        <div class=\"column\"><i class=\"lyft icon\"></i>lyft</div>\n        <div class=\"column\"><i class=\"magento icon\"></i>magento</div>\n        <div class=\"column\"><i class=\"maxcdn icon\"></i>maxcdn</div>\n        <div class=\"column\"><i class=\"medapps icon\"></i>medapps</div>\n        <div class=\"column\"><i class=\"medium icon\"></i>medium</div>\n        <div class=\"column\"><i class=\"medium m icon\"></i>medium m</div>\n        <div class=\"column\"><i class=\"medrt icon\"></i>medrt</div>\n        <div class=\"column\"><i class=\"meetup icon\"></i>meetup</div>\n        <div class=\"column\"><i class=\"microsoft icon\"></i>microsoft</div>\n        <div class=\"column\"><i class=\"mix icon\"></i>mix</div>\n        <div class=\"column\"><i class=\"mixcloud icon\"></i>mixcloud</div>\n        <div class=\"column\"><i class=\"mizuni icon\"></i>mizuni</div>\n        <div class=\"column\"><i class=\"modx icon\"></i>modx</div>\n        <div class=\"column\"><i class=\"monero icon\"></i>monero</div>\n        <div class=\"column\"><i class=\"napster icon\"></i>napster</div>\n        <div class=\"column\"><i class=\"nintendo switch icon\"></i>nintendo switch</div>\n        <div class=\"column\"><i class=\"node icon\"></i>node</div>\n        <div class=\"column\"><i class=\"node js icon\"></i>node js</div>\n        <div class=\"column\"><i class=\"npm icon\"></i>npm</div>\n        <div class=\"column\"><i class=\"ns8 icon\"></i>ns8</div>\n        <div class=\"column\"><i class=\"nutritionix icon\"></i>nutritionix</div>\n        <div class=\"column\"><i class=\"odnoklassniki icon\"></i>odnoklassniki</div>\n        <div class=\"column\"><i class=\"odnoklassniki square icon\"></i>odnoklassniki square</div>\n        <div class=\"column\"><i class=\"opencart icon\"></i>opencart</div>\n        <div class=\"column\"><i class=\"openid icon\"></i>openid</div>\n        <div class=\"column\"><i class=\"opera icon\"></i>opera</div>\n        <div class=\"column\"><i class=\"optin monster icon\"></i>optin monster</div>\n        <div class=\"column\"><i class=\"osi icon\"></i>osi</div>\n        <div class=\"column\"><i class=\"page4 icon\"></i>page4</div>\n        <div class=\"column\"><i class=\"pagelines icon\"></i>pagelines</div>\n        <div class=\"column\"><i class=\"palfed icon\"></i>palfed</div>\n        <div class=\"column\"><i class=\"patreon icon\"></i>patreon</div>\n        <div class=\"column\"><i class=\"paypal icon\"></i>paypal</div>\n        <div class=\"column\"><i class=\"periscope icon\"></i>periscope</div>\n        <div class=\"column\"><i class=\"phabricator icon\"></i>phabricator</div>\n        <div class=\"column\"><i class=\"phoenix framework icon\"></i>phoenix framework</div>\n        <div class=\"column\"><i class=\"php icon\"></i>php</div>\n        <div class=\"column\"><i class=\"pied piper icon\"></i>pied piper</div>\n        <div class=\"column\"><i class=\"pied piper alternate icon\"></i>pied piper alternate</div>\n        <div class=\"column\"><i class=\"pied piper pp icon\"></i>pied piper pp</div>\n        <div class=\"column\"><i class=\"pinterest icon\"></i>pinterest</div>\n        <div class=\"column\"><i class=\"pinterest p icon\"></i>pinterest p</div>\n        <div class=\"column\"><i class=\"pinterest square icon\"></i>pinterest square</div>\n        <div class=\"column\"><i class=\"playstation icon\"></i>playstation</div>\n        <div class=\"column\"><i class=\"product hunt icon\"></i>product hunt</div>\n        <div class=\"column\"><i class=\"pushed icon\"></i>pushed</div>\n        <div class=\"column\"><i class=\"python icon\"></i>python</div>\n        <div class=\"column\"><i class=\"qq icon\"></i>qq</div>\n        <div class=\"column\"><i class=\"quinscape icon\"></i>quinscape</div>\n        <div class=\"column\"><i class=\"quora icon\"></i>quora</div>\n        <div class=\"column\"><i class=\"ravelry icon\"></i>ravelry</div>\n        <div class=\"column\"><i class=\"react icon\"></i>react</div>\n        <div class=\"column\"><i class=\"rebel icon\"></i>rebel</div>\n        <div class=\"column\"><i class=\"redriver icon\"></i>redriver</div>\n        <div class=\"column\"><i class=\"reddit icon\"></i>reddit</div>\n        <div class=\"column\"><i class=\"reddit alien icon\"></i>reddit alien</div>\n        <div class=\"column\"><i class=\"reddit square icon\"></i>reddit square</div>\n        <div class=\"column\"><i class=\"rendact icon\"></i>rendact</div>\n        <div class=\"column\"><i class=\"renren icon\"></i>renren</div>\n        <div class=\"column\"><i class=\"replyd icon\"></i>replyd</div>\n        <div class=\"column\"><i class=\"resolving icon\"></i>resolving</div>\n        <div class=\"column\"><i class=\"rocketchat icon\"></i>rocketchat</div>\n        <div class=\"column\"><i class=\"rockrms icon\"></i>rockrms</div>\n        <div class=\"column\"><i class=\"safari icon\"></i>safari</div>\n        <div class=\"column\"><i class=\"sass icon\"></i>sass</div>\n        <div class=\"column\"><i class=\"schlix icon\"></i>schlix</div>\n        <div class=\"column\"><i class=\"scribd icon\"></i>scribd</div>\n        <div class=\"column\"><i class=\"searchengin icon\"></i>searchengin</div>\n        <div class=\"column\"><i class=\"sellcast icon\"></i>sellcast</div>\n        <div class=\"column\"><i class=\"sellsy icon\"></i>sellsy</div>\n        <div class=\"column\"><i class=\"servicestack icon\"></i>servicestack</div>\n        <div class=\"column\"><i class=\"shirtsinbulk icon\"></i>shirtsinbulk</div>\n        <div class=\"column\"><i class=\"simplybuilt icon\"></i>simplybuilt</div>\n        <div class=\"column\"><i class=\"sistrix icon\"></i>sistrix</div>\n        <div class=\"column\"><i class=\"skyatlas icon\"></i>skyatlas</div>\n        <div class=\"column\"><i class=\"skype icon\"></i>skype</div>\n        <div class=\"column\"><i class=\"slack icon\"></i>slack</div>\n        <div class=\"column\"><i class=\"slack hash icon\"></i>slack hash</div>\n        <div class=\"column\"><i class=\"slideshare icon\"></i>slideshare</div>\n        <div class=\"column\"><i class=\"snapchat icon\"></i>snapchat</div>\n        <div class=\"column\"><i class=\"snapchat ghost icon\"></i>snapchat ghost</div>\n        <div class=\"column\"><i class=\"snapchat square icon\"></i>snapchat square</div>\n        <div class=\"column\"><i class=\"soundcloud icon\"></i>soundcloud</div>\n        <div class=\"column\"><i class=\"speakap icon\"></i>speakap</div>\n        <div class=\"column\"><i class=\"spotify icon\"></i>spotify</div>\n        <div class=\"column\"><i class=\"stack exchange icon\"></i>stack exchange</div>\n        <div class=\"column\"><i class=\"stack overflow icon\"></i>stack overflow</div>\n        <div class=\"column\"><i class=\"staylinked icon\"></i>staylinked</div>\n        <div class=\"column\"><i class=\"steam icon\"></i>steam</div>\n        <div class=\"column\"><i class=\"steam square icon\"></i>steam square</div>\n        <div class=\"column\"><i class=\"steam symbol icon\"></i>steam symbol</div>\n        <div class=\"column\"><i class=\"sticker mule icon\"></i>sticker mule</div>\n        <div class=\"column\"><i class=\"strava icon\"></i>strava</div>\n        <div class=\"column\"><i class=\"stripe icon\"></i>stripe</div>\n        <div class=\"column\"><i class=\"stripe s icon\"></i>stripe s</div>\n        <div class=\"column\"><i class=\"studiovinari icon\"></i>studiovinari</div>\n        <div class=\"column\"><i class=\"stumbleupon icon\"></i>stumbleupon</div>\n        <div class=\"column\"><i class=\"stumbleupon circle icon\"></i>stumbleupon circle</div>\n        <div class=\"column\"><i class=\"superpowers icon\"></i>superpowers</div>\n        <div class=\"column\"><i class=\"supple icon\"></i>supple</div>\n        <div class=\"column\"><i class=\"telegram icon\"></i>telegram</div>\n        <div class=\"column\"><i class=\"telegram plane icon\"></i>telegram plane</div>\n        <div class=\"column\"><i class=\"tencent weibo icon\"></i>tencent weibo</div>\n        <div class=\"column\"><i class=\"themeisle icon\"></i>themeisle</div>\n        <div class=\"column\"><i class=\"trello icon\"></i>trello</div>\n        <div class=\"column\"><i class=\"tripadvisor icon\"></i>tripadvisor</div>\n        <div class=\"column\"><i class=\"tumblr icon\"></i>tumblr</div>\n        <div class=\"column\"><i class=\"tumblr square icon\"></i>tumblr square</div>\n        <div class=\"column\"><i class=\"twitch icon\"></i>twitch</div>\n        <div class=\"column\"><i class=\"twitter icon\"></i>twitter</div>\n        <div class=\"column\"><i class=\"twitter square icon\"></i>twitter square</div>\n        <div class=\"column\"><i class=\"typo3 icon\"></i>typo3</div>\n        <div class=\"column\"><i class=\"uber icon\"></i>uber</div>\n        <div class=\"column\"><i class=\"uikit icon\"></i>uikit</div>\n        <div class=\"column\"><i class=\"uniregistry icon\"></i>uniregistry</div>\n        <div class=\"column\"><i class=\"untappd icon\"></i>untappd</div>\n        <div class=\"column\"><i class=\"usb icon\"></i>usb</div>\n        <div class=\"column\"><i class=\"ussunnah icon\"></i>ussunnah</div>\n        <div class=\"column\"><i class=\"vaadin icon\"></i>vaadin</div>\n        <div class=\"column\"><i class=\"viacoin icon\"></i>viacoin</div>\n        <div class=\"column\"><i class=\"viadeo icon\"></i>viadeo</div>\n        <div class=\"column\"><i class=\"viadeo square icon\"></i>viadeo square</div>\n        <div class=\"column\"><i class=\"viber icon\"></i>viber</div>\n        <div class=\"column\"><i class=\"vimeo icon\"></i>vimeo</div>\n        <div class=\"column\"><i class=\"vimeo square icon\"></i>vimeo square</div>\n        <div class=\"column\"><i class=\"vimeo v icon\"></i>vimeo v</div>\n        <div class=\"column\"><i class=\"vine icon\"></i>vine</div>\n        <div class=\"column\"><i class=\"vk icon\"></i>vk</div>\n        <div class=\"column\"><i class=\"vnv icon\"></i>vnv</div>\n        <div class=\"column\"><i class=\"vuejs icon\"></i>vuejs</div>\n        <div class=\"column\"><i class=\"wechat icon\"></i>wechat</div>\n        <div class=\"column\"><i class=\"weibo icon\"></i>weibo</div>\n        <div class=\"column\"><i class=\"weixin icon\"></i>weixin</div>\n        <div class=\"column\"><i class=\"whatsapp icon\"></i>whatsapp</div>\n        <div class=\"column\"><i class=\"whatsapp square icon\"></i>whatsapp square</div>\n        <div class=\"column\"><i class=\"whmcs icon\"></i>whmcs</div>\n        <div class=\"column\"><i class=\"wikipedia w icon\"></i>wikipedia w</div>\n        <div class=\"column\"><i class=\"windows icon\"></i>windows</div>\n        <div class=\"column\"><i class=\"wordpress icon\"></i>wordpress</div>\n        <div class=\"column\"><i class=\"wordpress simple icon\"></i>wordpress simple</div>\n        <div class=\"column\"><i class=\"wpbeginner icon\"></i>wpbeginner</div>\n        <div class=\"column\"><i class=\"wpexplorer icon\"></i>wpexplorer</div>\n        <div class=\"column\"><i class=\"wpforms icon\"></i>wpforms</div>\n        <div class=\"column\"><i class=\"xbox icon\"></i>xbox</div>\n        <div class=\"column\"><i class=\"xing icon\"></i>xing</div>\n        <div class=\"column\"><i class=\"xing square icon\"></i>xing square</div>\n        <div class=\"column\"><i class=\"y combinator icon\"></i>y combinator</div>\n        <div class=\"column\"><i class=\"yahoo icon\"></i>yahoo</div>\n        <div class=\"column\"><i class=\"yandex icon\"></i>yandex</div>\n        <div class=\"column\"><i class=\"yandex international icon\"></i>yandex international</div>\n        <div class=\"column\"><i class=\"yelp icon\"></i>yelp</div>\n        <div class=\"column\"><i class=\"yoast icon\"></i>yoast</div>\n        <div class=\"column\"><i class=\"youtube icon\"></i>youtube</div>\n        <div class=\"column\"><i class=\"youtube square icon\"></i>youtube square</div>\n      </div>\n      <div class=\"existing code\">\n        <i class=\"500px icon\"></i>\n        <i class=\"accessible icon icon\"></i>\n        <i class=\"accusoft icon\"></i>\n        <i class=\"adn icon\"></i>\n        <i class=\"adversal icon\"></i>\n        <i class=\"affiliatetheme icon\"></i>\n        <i class=\"algolia icon\"></i>\n        <i class=\"amazon icon\"></i>\n        <i class=\"amazon pay icon\"></i>\n        <i class=\"amilia icon\"></i>\n        <i class=\"android icon\"></i>\n        <i class=\"angellist icon\"></i>\n        <i class=\"angrycreative icon\"></i>\n        <i class=\"angular icon\"></i>\n        <i class=\"app store icon\"></i>\n        <i class=\"app store ios icon\"></i>\n        <i class=\"apper icon\"></i>\n        <i class=\"apple icon\"></i>\n        <i class=\"apple pay icon\"></i>\n        <i class=\"asymmetrik icon\"></i>\n        <i class=\"audible icon\"></i>\n        <i class=\"autoprefixer icon\"></i>\n        <i class=\"avianex icon\"></i>\n        <i class=\"aviato icon\"></i>\n        <i class=\"aws icon\"></i>\n        <i class=\"bandcamp icon\"></i>\n        <i class=\"behance icon\"></i>\n        <i class=\"behance square icon\"></i>\n        <i class=\"bimobject icon\"></i>\n        <i class=\"bitbucket icon\"></i>\n        <i class=\"bitcoin icon\"></i>\n        <i class=\"bity icon\"></i>\n        <i class=\"black tie icon\"></i>\n        <i class=\"blackberry icon\"></i>\n        <i class=\"blogger icon\"></i>\n        <i class=\"blogger b icon\"></i>\n        <i class=\"bluetooth icon\"></i>\n        <i class=\"bluetooth b icon\"></i>\n        <i class=\"btc icon\"></i>\n        <i class=\"buromobelexperte icon\"></i>\n        <i class=\"buysellads icon\"></i>\n        <i class=\"cc amazon pay icon\"></i>\n        <i class=\"cc amex icon\"></i>\n        <i class=\"cc apple pay icon\"></i>\n        <i class=\"cc diners club icon\"></i>\n        <i class=\"cc discover icon\"></i>\n        <i class=\"cc jcb icon\"></i>\n        <i class=\"cc mastercard icon\"></i>\n        <i class=\"cc paypal icon\"></i>\n        <i class=\"cc stripe icon\"></i>\n        <i class=\"cc visa icon\"></i>\n        <i class=\"centercode icon\"></i>\n        <i class=\"chrome icon\"></i>\n        <i class=\"cloudscale icon\"></i>\n        <i class=\"cloudsmith icon\"></i>\n        <i class=\"cloudversify icon\"></i>\n        <i class=\"codepen icon\"></i>\n        <i class=\"codiepie icon\"></i>\n        <i class=\"connectdevelop icon\"></i>\n        <i class=\"contao icon\"></i>\n        <i class=\"cpanel icon\"></i>\n        <i class=\"creative commons icon\"></i>\n        <i class=\"css3 icon\"></i>\n        <i class=\"css3 alternate icon\"></i>\n        <i class=\"cuttlefish icon\"></i>\n        <i class=\"d and d icon\"></i>\n        <i class=\"dashcube icon\"></i>\n        <i class=\"delicious icon\"></i>\n        <i class=\"deploydog icon\"></i>\n        <i class=\"deskpro icon\"></i>\n        <i class=\"deviantart icon\"></i>\n        <i class=\"digg icon\"></i>\n        <i class=\"digital ocean icon\"></i>\n        <i class=\"discord icon\"></i>\n        <i class=\"discourse icon\"></i>\n        <i class=\"dochub icon\"></i>\n        <i class=\"docker icon\"></i>\n        <i class=\"draft2digital icon\"></i>\n        <i class=\"dribbble icon\"></i>\n        <i class=\"dribbble square icon\"></i>\n        <i class=\"dropbox icon\"></i>\n        <i class=\"drupal icon\"></i>\n        <i class=\"dyalog icon\"></i>\n        <i class=\"earlybirds icon\"></i>\n        <i class=\"edge icon\"></i>\n        <i class=\"elementor icon\"></i>\n        <i class=\"ember icon\"></i>\n        <i class=\"empire icon\"></i>\n        <i class=\"envira icon\"></i>\n        <i class=\"erlang icon\"></i>\n        <i class=\"ethereum icon\"></i>\n        <i class=\"etsy icon\"></i>\n        <i class=\"expeditedssl icon\"></i>\n        <i class=\"facebook icon\"></i>\n        <i class=\"facebook f icon\"></i>\n        <i class=\"facebook messenger icon\"></i>\n        <i class=\"facebook square icon\"></i>\n        <i class=\"firefox icon\"></i>\n        <i class=\"first order icon\"></i>\n        <i class=\"firstdraft icon\"></i>\n        <i class=\"flickr icon\"></i>\n        <i class=\"flipboard icon\"></i>\n        <i class=\"fly icon\"></i>\n        <i class=\"font awesome icon\"></i>\n        <i class=\"font awesome alternate icon\"></i>\n        <i class=\"font awesome flag icon\"></i>\n        <i class=\"fonticons icon\"></i>\n        <i class=\"fonticons fi icon\"></i>\n        <i class=\"fort awesome icon\"></i>\n        <i class=\"fort awesome alternate icon\"></i>\n        <i class=\"forumbee icon\"></i>\n        <i class=\"foursquare icon\"></i>\n        <i class=\"free code camp icon\"></i>\n        <i class=\"freebsd icon\"></i>\n        <i class=\"get pocket icon\"></i>\n        <i class=\"gg icon\"></i>\n        <i class=\"gg circle icon\"></i>\n        <i class=\"git icon\"></i>\n        <i class=\"git square icon\"></i>\n        <i class=\"github icon\"></i>\n        <i class=\"github alternate icon\"></i>\n        <i class=\"github square icon\"></i>\n        <i class=\"gitkraken icon\"></i>\n        <i class=\"gitlab icon\"></i>\n        <i class=\"gitter icon\"></i>\n        <i class=\"glide icon\"></i>\n        <i class=\"glide g icon\"></i>\n        <i class=\"gofore icon\"></i>\n        <i class=\"goodreads icon\"></i>\n        <i class=\"goodreads g icon\"></i>\n        <i class=\"google icon\"></i>\n        <i class=\"google drive icon\"></i>\n        <i class=\"google play icon\"></i>\n        <i class=\"google plus icon\"></i>\n        <i class=\"google plus g icon\"></i>\n        <i class=\"google plus square icon\"></i>\n        <i class=\"google wallet icon\"></i>\n        <i class=\"gratipay icon\"></i>\n        <i class=\"grav icon\"></i>\n        <i class=\"gripfire icon\"></i>\n        <i class=\"grunt icon\"></i>\n        <i class=\"gulp icon\"></i>\n        <i class=\"hacker news icon\"></i>\n        <i class=\"hacker news square icon\"></i>\n        <i class=\"hips icon\"></i>\n        <i class=\"hire a helper icon\"></i>\n        <i class=\"hooli icon\"></i>\n        <i class=\"hotjar icon\"></i>\n        <i class=\"houzz icon\"></i>\n        <i class=\"html5 icon\"></i>\n        <i class=\"hubspot icon\"></i>\n        <i class=\"imdb icon\"></i>\n        <i class=\"instagram icon\"></i>\n        <i class=\"internet explorer icon\"></i>\n        <i class=\"ioxhost icon\"></i>\n        <i class=\"itunes icon\"></i>\n        <i class=\"itunes note icon\"></i>\n        <i class=\"jenkins icon\"></i>\n        <i class=\"joget icon\"></i>\n        <i class=\"joomla icon\"></i>\n        <i class=\"js icon\"></i>\n        <i class=\"js square icon\"></i>\n        <i class=\"jsfiddle icon\"></i>\n        <i class=\"keycdn icon\"></i>\n        <i class=\"kickstarter icon\"></i>\n        <i class=\"kickstarter k icon\"></i>\n        <i class=\"korvue icon\"></i>\n        <i class=\"laravel icon\"></i>\n        <i class=\"lastfm icon\"></i>\n        <i class=\"lastfm square icon\"></i>\n        <i class=\"leanpub icon\"></i>\n        <i class=\"less icon\"></i>\n        <i class=\"linechat icon\"></i>\n        <i class=\"linkedin icon\"></i>\n        <i class=\"linkedin in icon\"></i>\n        <i class=\"linode icon\"></i>\n        <i class=\"linux icon\"></i>\n        <i class=\"lyft icon\"></i>\n        <i class=\"magento icon\"></i>\n        <i class=\"maxcdn icon\"></i>\n        <i class=\"medapps icon\"></i>\n        <i class=\"medium icon\"></i>\n        <i class=\"medium m icon\"></i>\n        <i class=\"medrt icon\"></i>\n        <i class=\"meetup icon\"></i>\n        <i class=\"microsoft icon\"></i>\n        <i class=\"mix icon\"></i>\n        <i class=\"mixcloud icon\"></i>\n        <i class=\"mizuni icon\"></i>\n        <i class=\"modx icon\"></i>\n        <i class=\"monero icon\"></i>\n        <i class=\"napster icon\"></i>\n        <i class=\"nintendo switch icon\"></i>\n        <i class=\"node icon\"></i>\n        <i class=\"node js icon\"></i>\n        <i class=\"npm icon\"></i>\n        <i class=\"ns8 icon\"></i>\n        <i class=\"nutritionix icon\"></i>\n        <i class=\"odnoklassniki icon\"></i>\n        <i class=\"odnoklassniki square icon\"></i>\n        <i class=\"opencart icon\"></i>\n        <i class=\"openid icon\"></i>\n        <i class=\"opera icon\"></i>\n        <i class=\"optin monster icon\"></i>\n        <i class=\"osi icon\"></i>\n        <i class=\"page4 icon\"></i>\n        <i class=\"pagelines icon\"></i>\n        <i class=\"palfed icon\"></i>\n        <i class=\"patreon icon\"></i>\n        <i class=\"paypal icon\"></i>\n        <i class=\"periscope icon\"></i>\n        <i class=\"phabricator icon\"></i>\n        <i class=\"phoenix framework icon\"></i>\n        <i class=\"php icon\"></i>\n        <i class=\"pied piper icon\"></i>\n        <i class=\"pied piper alternate icon\"></i>\n        <i class=\"pied piper pp icon\"></i>\n        <i class=\"pinterest icon\"></i>\n        <i class=\"pinterest p icon\"></i>\n        <i class=\"pinterest square icon\"></i>\n        <i class=\"playstation icon\"></i>\n        <i class=\"product hunt icon\"></i>\n        <i class=\"pushed icon\"></i>\n        <i class=\"python icon\"></i>\n        <i class=\"qq icon\"></i>\n        <i class=\"quinscape icon\"></i>\n        <i class=\"quora icon\"></i>\n        <i class=\"ravelry icon\"></i>\n        <i class=\"react icon\"></i>\n        <i class=\"rebel icon\"></i>\n        <i class=\"redriver icon\"></i>\n        <i class=\"reddit icon\"></i>\n        <i class=\"reddit alien icon\"></i>\n        <i class=\"reddit square icon\"></i>\n        <i class=\"rendact icon\"></i>\n        <i class=\"renren icon\"></i>\n        <i class=\"replyd icon\"></i>\n        <i class=\"resolving icon\"></i>\n        <i class=\"rocketchat icon\"></i>\n        <i class=\"rockrms icon\"></i>\n        <i class=\"safari icon\"></i>\n        <i class=\"sass icon\"></i>\n        <i class=\"schlix icon\"></i>\n        <i class=\"scribd icon\"></i>\n        <i class=\"searchengin icon\"></i>\n        <i class=\"sellcast icon\"></i>\n        <i class=\"sellsy icon\"></i>\n        <i class=\"servicestack icon\"></i>\n        <i class=\"shirtsinbulk icon\"></i>\n        <i class=\"simplybuilt icon\"></i>\n        <i class=\"sistrix icon\"></i>\n        <i class=\"skyatlas icon\"></i>\n        <i class=\"skype icon\"></i>\n        <i class=\"slack icon\"></i>\n        <i class=\"slack hash icon\"></i>\n        <i class=\"slideshare icon\"></i>\n        <i class=\"snapchat icon\"></i>\n        <i class=\"snapchat ghost icon\"></i>\n        <i class=\"snapchat square icon\"></i>\n        <i class=\"soundcloud icon\"></i>\n        <i class=\"speakap icon\"></i>\n        <i class=\"spotify icon\"></i>\n        <i class=\"stack exchange icon\"></i>\n        <i class=\"stack overflow icon\"></i>\n        <i class=\"staylinked icon\"></i>\n        <i class=\"steam icon\"></i>\n        <i class=\"steam square icon\"></i>\n        <i class=\"steam symbol icon\"></i>\n        <i class=\"sticker mule icon\"></i>\n        <i class=\"strava icon\"></i>\n        <i class=\"stripe icon\"></i>\n        <i class=\"stripe s icon\"></i>\n        <i class=\"studiovinari icon\"></i>\n        <i class=\"stumbleupon icon\"></i>\n        <i class=\"stumbleupon circle icon\"></i>\n        <i class=\"superpowers icon\"></i>\n        <i class=\"supple icon\"></i>\n        <i class=\"telegram icon\"></i>\n        <i class=\"telegram plane icon\"></i>\n        <i class=\"tencent weibo icon\"></i>\n        <i class=\"themeisle icon\"></i>\n        <i class=\"trello icon\"></i>\n        <i class=\"tripadvisor icon\"></i>\n        <i class=\"tumblr icon\"></i>\n        <i class=\"tumblr square icon\"></i>\n        <i class=\"twitch icon\"></i>\n        <i class=\"twitter icon\"></i>\n        <i class=\"twitter square icon\"></i>\n        <i class=\"typo3 icon\"></i>\n        <i class=\"uber icon\"></i>\n        <i class=\"uikit icon\"></i>\n        <i class=\"uniregistry icon\"></i>\n        <i class=\"untappd icon\"></i>\n        <i class=\"usb icon\"></i>\n        <i class=\"ussunnah icon\"></i>\n        <i class=\"vaadin icon\"></i>\n        <i class=\"viacoin icon\"></i>\n        <i class=\"viadeo icon\"></i>\n        <i class=\"viadeo square icon\"></i>\n        <i class=\"viber icon\"></i>\n        <i class=\"vimeo icon\"></i>\n        <i class=\"vimeo square icon\"></i>\n        <i class=\"vimeo v icon\"></i>\n        <i class=\"vine icon\"></i>\n        <i class=\"vk icon\"></i>\n        <i class=\"vnv icon\"></i>\n        <i class=\"vuejs icon\"></i>\n        <i class=\"wechat icon\"></i>\n        <i class=\"weibo icon\"></i>\n        <i class=\"weixin icon\"></i>\n        <i class=\"whatsapp icon\"></i>\n        <i class=\"whatsapp square icon\"></i>\n        <i class=\"whmcs icon\"></i>\n        <i class=\"wikipedia w icon\"></i>\n        <i class=\"windows icon\"></i>\n        <i class=\"wordpress icon\"></i>\n        <i class=\"wordpress simple icon\"></i>\n        <i class=\"wpbeginner icon\"></i>\n        <i class=\"wpexplorer icon\"></i>\n        <i class=\"wpforms icon\"></i>\n        <i class=\"xbox icon\"></i>\n        <i class=\"xing icon\"></i>\n        <i class=\"xing square icon\"></i>\n        <i class=\"y combinator icon\"></i>\n        <i class=\"yahoo icon\"></i>\n        <i class=\"yandex icon\"></i>\n        <i class=\"yandex international icon\"></i>\n        <i class=\"yelp icon\"></i>\n        <i class=\"yoast icon\"></i>\n        <i class=\"youtube icon\"></i>\n        <i class=\"youtube square icon\"></i>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"definition\">\n\n    <h2 class=\"ui dividing header\">States</h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Disabled</h4>\n      <p>An icon can show that it is disabled</p>\n      <i class=\"disabled users icon\"></i>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Loading</h4>\n      <p>An icon can be used as a simple loader</p>\n      <i class=\"spinner loading icon\"></i>\n      <i class=\"notched circle loading icon\"></i>\n      <i class=\"asterisk loading icon\"></i>\n    </div>\n\n\n    <h2 class=\"ui dividing header\">Variations</h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Fitted</h4>\n      <p>An icon can be fitted, without any space to the left or right of it.</p>\n      Tight spacing\n      <i class=\"fitted help icon\"></i>\n      Tight spacing\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Size</h4>\n      <p>An icon can vary in size</p>\n      <i class=\"mini home icon\"></i>\n      <i class=\"tiny home icon\"></i>\n      <i class=\"small home icon\"></i>\n      <br>\n      <i class=\"home icon\"></i>\n      <br>\n      <i class=\"large home icon\"></i>\n      <br>\n      <i class=\"big home icon\"></i>\n      <br>\n      <i class=\"huge home icon\"></i>\n      <br>\n      <i class=\"massive home icon\"></i>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Link</h4>\n      <p>An icon can be formatted as a link</p>\n      <i class=\"close link icon\"></i>\n      <i class=\"help link icon\"></i>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Flipped</h4>\n      <p>An icon can be flipped</p>\n      <i class=\"horizontally flipped cloud icon\"></i>\n      <i class=\"vertically flipped cloud icon\"></i>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Rotated</h4>\n      <p>An icon can be rotated</p>\n      <i class=\"clockwise rotated cloud icon\"></i>\n      <i class=\"counterclockwise rotated cloud icon\"></i>\n    </div>\n\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Circular</h4>\n      <p>An icon can be formatted to appear circular</p>\n      <i class=\"circular users icon\"></i>\n      <i class=\"circular teal users icon\"></i>\n      <i class=\"circular inverted users icon\"></i>\n      <i class=\"circular inverted teal users icon\"></i>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Bordered</h4>\n      <div class=\"ui ignored info message\">\n        In <code>0.x.x</code> bordered was formally known as <code>squared</code>\n      </div>\n      <p>An icon can be formatted to appear bordered</p>\n      <i class=\"bordered users icon\"></i>\n      <i class=\"bordered teal users icon\"></i>\n      <i class=\"bordered inverted black users icon\"></i>\n      <i class=\"bordered inverted teal users icon\"></i>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Colored</h4>\n      <p>An icon can be formatted with different colors</p>\n      <i class=\"red users icon\"></i>\n      <i class=\"orange users icon\"></i>\n      <i class=\"yellow users icon\"></i>\n      <i class=\"olive users icon\"></i>\n      <i class=\"green users icon\"></i>\n      <i class=\"teal users icon\"></i>\n      <i class=\"blue users icon\"></i>\n      <i class=\"violet users icon\"></i>\n      <i class=\"purple users icon\"></i>\n      <i class=\"pink users icon\"></i>\n      <i class=\"brown users icon\"></i>\n      <i class=\"grey users icon\"></i>\n      <i class=\"black users icon\"></i>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Inverted</h4>\n      <p>An icon can have its colors inverted for contrast</p>\n      <div class=\"ui inverted segment\">\n        <i class=\"inverted users icon\"></i>\n        <i class=\"inverted red users icon\"></i>\n        <i class=\"inverted orange users icon\"></i>\n        <i class=\"inverted yellow users icon\"></i>\n        <i class=\"inverted olive users icon\"></i>\n        <i class=\"inverted green users icon\"></i>\n        <i class=\"inverted teal users icon\"></i>\n        <i class=\"inverted blue users icon\"></i>\n        <i class=\"inverted violet users icon\"></i>\n        <i class=\"inverted purple users icon\"></i>\n        <i class=\"inverted pink users icon\"></i>\n        <i class=\"inverted brown users icon\"></i>\n        <i class=\"inverted grey users icon\"></i>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Groups</h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Icons</h4>\n      <p>Several icons can be used together as a group</p>\n      <i class=\"huge icons\">\n        <i class=\"big circle outline icon\"></i>\n        <i class=\"user icon\"></i>\n      </i>\n    </div>\n    <div class=\"another example\">\n      <i class=\"huge icons\">\n        <i class=\"big red dont icon\"></i>\n        <i class=\"black user icon\"></i>\n      </i>\n    </div>\n    <div class=\"example\" data-class=\"corner\">\n      <h4 class=\"ui header\">Corner Icon</h4>\n      <p>A group of icons can display a smaller corner icon</p>\n      <i class=\"huge icons\">\n        <i class=\"puzzle icon\"></i>\n        <i class=\"corner add icon\"></i>\n      </i>\n    </div>\n    <div class=\"another example\">\n      <i class=\"huge icons\">\n        <i class=\"puzzle icon\"></i>\n        <i class=\"top left corner add icon\"></i>\n      </i>\n      <i class=\"huge icons\">\n        <i class=\"puzzle icon\"></i>\n        <i class=\"top right corner add icon\"></i>\n      </i>\n      <i class=\"huge icons\">\n        <i class=\"puzzle icon\"></i>\n        <i class=\"bottom left corner add icon\"></i>\n      </i>\n      <i class=\"huge icons\">\n        <i class=\"puzzle icon\"></i>\n        <i class=\"bottom right corner add icon\"></i>\n      </i>\n    </div>\n    <div class=\"another example\">\n      <h2 class=\"ui header\">\n        <i class=\"large icons\">\n          <i class=\"twitter icon\"></i>\n          <i class=\"inverted corner add icon\"></i>\n        </i>\n        Add on Twitter\n      </h2>\n    </div>\n\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/elements/image.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'image'\nstandalone  : true\n\nelement     : 'image'\nelementType : 'element'\n\ntitle       : 'Image'\ndescription : 'An image is a graphic representation of something'\ntype        : 'UI Element'\n\nthemes      : ['Default']\n---\n\n<%- @partial('header') %>\n\n<div class=\"main ui container\">\n\n  <h2 class=\"ui dividing header\">Types</h2>\n\n  <div class=\"example\" data-class=\"image\" data-tag=\"img,svg\">\n    <h4 class=\"ui header\">Image</h4>\n    <p>An image</p>\n    <div class=\"ui ignored message\">\n       Unless a size is specified, images will use the original dimensions of the image up to the size of its container.</code>.\n    </div>\n    <div class=\"ui ignored info message\">\n      You can specify an <code>img</code> or <code>svg</code> as a <code>ui image</code> or use a child element.</code>\n    </div>\n    <img class=\"ui small image\" src=\"/images/wireframe/image.png\">\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui small image\">\n      <img src=\"/images/wireframe/image.png\">\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui small image\">\n      <svg width=\"150\" height=\"150\">\n        <image xlink:href=\"/images/wireframe/image.png\" x=\"0\" y=\"0\" width=\"100%\" height=\"100%\"></image>\n      </svg>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Image Link</h4>\n    <p>An image can be formatted to link to other content</p>\n    <a href=\"http://google.com\" class=\"ui medium image\">\n      <img src=\"/images/wireframe/image-text.png\">\n    </a>\n  </div>\n\n  <h2 class=\"ui dividing header\">\n    States\n  </h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Hidden</h4>\n    <p>An image can be hidden</p>\n    <img class=\"hidden ui image\" src=\"/images/wireframe/image.png\">\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Disabled</h4>\n    <p>An image can show that it is disabled and cannot be selected</p>\n    <img class=\"disabled medium ui image\" src=\"/images/wireframe/image.png\">\n  </div>\n\n  <h2 class=\"ui dividing header\">Variations</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Avatar</h4>\n    <p>An image may be formatted to appear inline with text as an avatar</p>\n    <img class=\"ui avatar image\" src=\"/images/wireframe/square-image.png\">\n    <span>Username</span>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Bordered</h4>\n    <p>An image may include a border to emphasize the edges of white or transparent content</p>\n    <img class=\"ui medium bordered image\" src=\"/images/wireframe/white-image.png\">\n  </div>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Fluid</h4>\n    <p>An image can take up the width of its container</p>\n    <img class=\"ui fluid image\" src=\"/images/wireframe/image.png\">\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Rounded</h4>\n    <p>An image may appear rounded</p>\n    <img class=\"ui medium rounded image\" src=\"/images/wireframe/square-image.png\">\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Circular</h4>\n    <p>An image may appear circular</p>\n    <img class=\"ui medium circular image\" src=\"/images/wireframe/square-image.png\">\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Vertically Aligned</h4>\n    <p>An image can specify its vertical alignment</p>\n    <img class=\"ui top aligned tiny image\" src=\"/images/wireframe/square-image.png\">\n    <span>Top Aligned</span>\n    <div class=\"ui divider\"></div>\n    <img class=\"ui middle aligned tiny image\" src=\"/images/wireframe/square-image.png\">\n    <span>Middle Aligned</span>\n    <div class=\"ui divider\"></div>\n    <img class=\"ui bottom aligned tiny image\" src=\"/images/wireframe/square-image.png\">\n    <span>Bottom Aligned</span>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Centered</h4>\n    <p>An image can appear centered in a content block</p>\n    <div class=\"ui segment\">\n      <img class=\"ui centered medium image\" src=\"/images/wireframe/image.png\">\n      <p>Te eum doming eirmod, nominati pertinacia argumentum ad his. Ex eam alia facete scriptorem, est autem aliquip detraxit at. Usu ocurreret referrentur at, cu epicurei appellantur vix. Cum ea laoreet recteque electram, eos choro alterum definiebas in. Vim dolorum definiebas an. Mei ex natum rebum iisque.</p>\n      <p>Audiam quaerendum eu sea, pro omittam definiebas ex. Te est latine definitiones. Quot wisi nulla ex duo. Vis sint solet expetenda ne, his te phaedrum referrentur consectetuer. Id vix fabulas oporteat, ei quo vide phaedrum, vim vivendum maiestatis in.</p>\n      <img class=\"ui small centered image\" src=\"/images/wireframe/text-image.png\">\n      <p>Eu quo homero blandit intellegebat. Incorrupte consequuntur mei id. Mei ut facer dolores adolescens, no illum aperiri quo, usu odio brute at. Qui te porro electram, ea dico facete utroque quo. Populo quodsi te eam, wisi everti eos ex, eum elitr altera utamur at. Quodsi convenire mnesarchum eu per, quas minimum postulant per id.</p>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Spaced</h4>\n    <p>An image can specify that it needs an additional spacing to separate it from nearby content</p>\n\n    <div class=\"ui segment\">\n      <p>Te eum doming eirmod, nominati pertinacia <img class=\"ui mini spaced image\" src=\"/images/wireframe/image.png\"> argumentum ad his. Ex eam alia facete scriptorem, est autem aliquip detraxit at. Usu ocurreret referrentur at, cu epicurei appellantur vix. Cum ea laoreet recteque electram, eos choro alterum definiebas in. Vim dolorum definiebas an. Mei ex natum rebum iisque.</p>\n    </div>\n  </div>\n\n  <div class=\"another example\">\n      <p><img class=\"ui mini right spaced image\" src=\"/images/wireframe/image.png\">Audiam quaerendum eu sea, pro omittam definiebas ex. Te est latine definitiones. Quot wisi nulla ex duo. Vis sint solet expetenda ne, his te phaedrum referrentur consectetuer. Id vix fabulas oporteat, ei quo vide phaedrum, vim vivendum maiestatis in.</p>\n\n      <p>Eu quo homero blandit intellegebat. Incorrupte consequuntur mei id. Mei ut facer dolores adolescens, no illum aperiri quo, usu odio brute at. Qui te porro electram, ea dico facete utroque quo. Populo quodsi te eam, wisi everti eos ex, eum elitr altera utamur at. Quodsi convenire mnesarchum eu per, quas minimum postulant per id.<img class=\"ui mini left spaced image\" src=\"/images/wireframe/image.png\"></p>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Floated</h4>\n    <p>An image can sit to the left or right of other content</p>\n    <div class=\"ui segment\">\n      <img class=\"ui small left floated image\" src=\"/images/wireframe/text-image.png\">\n      <p>Te eum doming eirmod, nominati pertinacia argumentum ad his. Ex eam alia facete scriptorem, est autem aliquip detraxit at. Usu ocurreret referrentur at, cu epicurei appellantur vix. Cum ea laoreet recteque electram, eos choro alterum definiebas in. Vim dolorum definiebas an. Mei ex natum rebum iisque.</p>\n      <img class=\"ui small right floated image\" src=\"/images/wireframe/text-image.png\">\n      <p>Audiam quaerendum eu sea, pro omittam definiebas ex. Te est latine definitiones. Quot wisi nulla ex duo. Vis sint solet expetenda ne, his te phaedrum referrentur consectetuer. Id vix fabulas oporteat, ei quo vide phaedrum, vim vivendum maiestatis in.</p>\n\n      <p>Eu quo homero blandit intellegebat. Incorrupte consequuntur mei id. Mei ut facer dolores adolescens, no illum aperiri quo, usu odio brute at. Qui te porro electram, ea dico facete utroque quo. Populo quodsi te eam, wisi everti eos ex, eum elitr altera utamur at. Quodsi convenire mnesarchum eu per, quas minimum postulant per id.</p>\n    </div>\n  </div>\n\n  <div class=\"clearing example\">\n    <h4 class=\"ui header\">Size</h4>\n    <p>An image may appear at different sizes</p>\n    <div class=\"ui ignored info message\">\n      Semantic uses arbitrary default values for image sizes from mini to massive. It is recommended to update these with values used in your project in <code>image.variables</code>.\n    </div>\n    <table class=\"ui definition table\">\n      <thead>\n        <tr>\n          <th>Class Name</th>\n          <th>Size</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>Mini</td>\n          <td>35px</td>\n        </tr>\n        <tr>\n          <td>Tiny</td>\n          <td>80px</td>\n        </tr>\n        <tr>\n          <td>Small</td>\n          <td>150px</td>\n        </tr>\n        <tr>\n          <td>Medium</td>\n          <td>300px</td>\n        </tr>\n        <tr>\n          <td>Large</td>\n          <td>450px</td>\n        </tr>\n        <tr>\n          <td>Big</td>\n          <td>600px</td>\n        </tr>\n        <tr>\n          <td>Huge</td>\n          <td>800px</td>\n        </tr>\n        <tr>\n          <td>Massive</td>\n          <td>960px</td>\n        </tr>\n      </tbody>\n    </table>\n    <img class=\"ui mini image\" src=\"/images/wireframe/image.png\">\n    <div class=\"ui hidden divider\"></div>\n    <img class=\"ui tiny image\" src=\"/images/wireframe/image.png\">\n    <div class=\"ui hidden divider\"></div>\n    <img class=\"ui small image\" src=\"/images/wireframe/image.png\">\n    <div class=\"ui hidden divider\"></div>\n    <img class=\"ui medium image\" src=\"/images/wireframe/image.png\">\n\n    <div class=\"existing code\">\n      <img class=\"ui mini image\" src=\"/images/wireframe/image.png\">\n      <img class=\"ui tiny image\" src=\"/images/wireframe/image.png\">\n      <img class=\"ui small image\" src=\"/images/wireframe/image.png\">\n      <img class=\"ui medium image\" src=\"/images/wireframe/image.png\">\n      <img class=\"ui large image\" src=\"/images/wireframe/image.png\">\n      <img class=\"ui big image\" src=\"/images/wireframe/image.png\">\n      <img class=\"ui huge image\" src=\"/images/wireframe/image.png\">\n      <img class=\"ui massive image\" src=\"/images/wireframe/image.png\">\n    </div>\n\n  </div>\n\n\n\n  <h2 class=\"ui dividing header\">Groups</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Size</h4>\n    <p>A group of images can be formatted to have the same size.</p>\n    <div class=\"ui tiny images\">\n      <img class=\"ui image\" src=\"/images/wireframe/image.png\">\n      <img class=\"ui image\" src=\"/images/wireframe/image.png\">\n      <img class=\"ui image\" src=\"/images/wireframe/image.png\">\n      <img class=\"ui image\" src=\"/images/wireframe/image.png\">\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui small images\">\n      <img src=\"/images/wireframe/image.png\">\n      <img src=\"/images/wireframe/image.png\">\n      <img src=\"/images/wireframe/image.png\">\n      <img src=\"/images/wireframe/image.png\">\n    </div>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/elements/input.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'input'\nstandalone  : true\n\nelement     : 'input'\nelementType : 'element'\n\ntitle       : 'Input'\ndescription : 'An input is a field used to elicit a response from a user'\ntype        : 'UI Element'\n\nthemes      : ['Default', 'GitHub']\n---\n\n<%- @partial('header') %>\n<script src=\"/javascript/input.js\"></script>\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/elements/input.less\" />\n\n<div class=\"main ui container\">\n\n  <h2 class=\"ui dividing header\">Types</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">\n      Input\n    </h4>\n    <p>A standard input</p>\n    <div class=\"ui input\">\n      <input type=\"text\" placeholder=\"Search...\">\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">States</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Focus</h4>\n    <p>An input field can show a user is currently interacting with it</p>\n    <div class=\"ui input focus\">\n      <input type=\"text\" placeholder=\"Search...\">\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Loading</h4>\n    <p>An icon input field can show that it is currently loading data</p>\n    <div class=\"ui ignored message\">Loading inputs automatically modify the input's icon on loading state to show loading indication</div>\n    <div class=\"ui left icon input loading\">\n      <input type=\"text\" placeholder=\"Search...\">\n      <i class=\"search icon\"></i>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui icon input loading\">\n      <input type=\"text\" placeholder=\"Search...\">\n      <i class=\"search icon\"></i>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Disabled</h4>\n    <p>An input field can show that it is disabled</p>\n    <div class=\"ui disabled input\">\n      <input type=\"text\" placeholder=\"Search...\">\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui disabled icon input\">\n      <i class=\"search icon\"></i>\n      <input type=\"text\" placeholder=\"Search...\">\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui input\">\n      <input type=\"text\" placeholder=\"Search...\" disabled>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Error</h4>\n    <p>An input field can show the data contains errors</p>\n    <div class=\"ui input error\">\n      <input type=\"text\" placeholder=\"Search...\">\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Variations</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Icon</h4>\n    <p>An input can be formatted with an icon</p>\n    <div class=\"ui ignored message\">\n      Input icons do not receive <code>pointer-events</code> unless a <code>link icon</code> is used.\n    </div>\n    <div class=\"ui icon input\">\n      <input type=\"text\" placeholder=\"Search...\">\n      <i class=\"search icon\"></i>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui left icon input\">\n      <input type=\"text\" placeholder=\"Search users...\">\n      <i class=\"users icon\"></i>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui icon input\">\n      <input type=\"text\" placeholder=\"Search...\">\n      <i class=\"circular search link icon\"></i>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui icon input\">\n      <input type=\"text\" placeholder=\"Search...\">\n      <i class=\"inverted circular search link icon\"></i>\n    </div>\n  </div>\n\n  <div class=\"example\" data-class=\"left labeled, left corner labeled, right corner labeled, right labeled, labeled\">\n    <h4 class=\"ui header\">Labeled</h4>\n    <p>An input can be formatted with a label</p>\n    <div class=\"ui labeled input\">\n      <div class=\"ui label\">\n        http://\n      </div>\n      <input type=\"text\" placeholder=\"mysite.com\">\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui right labeled input\">\n      <input type=\"text\" placeholder=\"Find domain\">\n      <div class=\"ui dropdown label\">\n        <div class=\"text\">.com</div>\n        <i class=\"dropdown icon\"></i>\n        <div class=\"menu\">\n          <div class=\"item\">.com</div>\n          <div class=\"item\">.net</div>\n          <div class=\"item\">.org</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui right labeled input\">\n      <input type=\"text\" placeholder=\"Enter weight..\">\n      <div class=\"ui basic label\">\n        kg\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui right labeled input\">\n      <label for=\"amount\" class=\"ui label\">$</label>\n      <input type=\"text\" placeholder=\"Amount\" id=\"amount\">\n      <div class=\"ui basic label\">.00</div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui right labeled left icon input\">\n      <i class=\"tags icon\"></i>\n      <input type=\"text\" placeholder=\"Enter tags\">\n      <a class=\"ui tag label\">\n        Add Tag\n      </a>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui left corner labeled input\">\n      <input type=\"text\" placeholder=\"Search...\">\n      <div class=\"ui left corner label\">\n        <i class=\"asterisk icon\"></i>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui corner labeled input\">\n      <input type=\"text\" placeholder=\"Search...\">\n      <div class=\"ui corner label\">\n        <i class=\"asterisk icon\"></i>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\" data-class=\"left action, right action, action\">\n    <h4 class=\"ui header\">Action</h4>\n    <p>An input can be formatted to alert the user to an action they may perform</p>\n    <div class=\"ui action input\">\n      <input type=\"text\" placeholder=\"Search...\">\n      <button class=\"ui button\">Search</button>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui left action input\">\n      <button class=\"ui teal labeled icon button\">\n        <i class=\"cart icon\"></i>\n        Checkout\n      </button>\n      <input type=\"text\" value=\"$52.03\">\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui right action left icon input\">\n      <i class=\"search icon\"></i>\n      <input type=\"text\" placeholder=\"Search\">\n      <div class=\"ui basic floating dropdown button\">\n        <div class=\"text\">This Page</div>\n        <i class=\"dropdown icon\"></i>\n        <div class=\"menu\">\n          <div class=\"item\">This Organization</div>\n          <div class=\"item\">Entire Site</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui action input\">\n      <input type=\"text\" placeholder=\"Search...\">\n      <select class=\"ui compact selection dropdown\">\n        <option value=\"all\">All</option>\n        <option selected value=\"articles\">Articles</option>\n        <option value=\"products\">Products</option>\n      </select>\n      <div class=\"ui button\">Search</div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui action input\">\n      <input type=\"text\" value=\"http://ww.short.url/c0opq\">\n      <button class=\"ui teal right labeled icon button\">\n        <i class=\"copy icon\"></i>\n        Copy\n      </button>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui action input\">\n      <input type=\"text\" placeholder=\"Search...\">\n      <button class=\"ui icon button\">\n        <i class=\"search icon\"></i>\n      </button>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Transparent</h4>\n    <p>A transparent input has no background</p>\n    <div class=\"ui transparent input\">\n      <input type=\"text\" placeholder=\"Search...\">\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui transparent icon input\">\n      <input type=\"text\" placeholder=\"Search...\">\n      <i class=\"search icon\"></i>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui transparent left icon input\">\n      <input type=\"text\" placeholder=\"Search...\">\n      <i class=\"search icon\"></i>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Inverted</h4>\n    <p>An input can be formatted to appear on dark backgrounds</p>\n    <div class=\"ui inverted segment\">\n      <div class=\"ui inverted input\">\n        <input type=\"text\" placeholder=\"Search...\">\n      </div>\n      <div class=\"ui inverted divider\"></div>\n      <div class=\"ui inverted left icon input\">\n        <input type=\"text\" placeholder=\"Search...\">\n        <i class=\"search icon\"></i>\n      </div>\n      <div class=\"ui inverted divider\"></div>\n      <div class=\"ui inverted transparent icon input\">\n        <input type=\"text\" placeholder=\"Search...\">\n        <i class=\"search icon\"></i>\n      </div>\n    </div>\n  </div>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Fluid</h4>\n    <p>An input can take the size of its container</p>\n    <div class=\"ui fluid icon input\">\n      <input type=\"text\" placeholder=\"Search a very wide input...\">\n      <i class=\"search icon\"></i>\n    </div>\n    <div class=\"ui ignored divider\"></div>\n    <div class=\"ui fluid action input\">\n      <input type=\"text\" placeholder=\"Search...\">\n      <div class=\"ui button\">Search</div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Size</h4>\n    <p>An input can vary in size</p>\n    <div class=\"ui ignored info message\">Inputs will automatically size themselves unless you manually declare a width</div>\n    <div class=\"ui mini icon input\">\n      <input type=\"text\" placeholder=\"Search mini...\">\n      <i class=\"search icon\"></i>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui small icon input\">\n      <input type=\"text\" placeholder=\"Search small...\">\n      <i class=\"search icon\"></i>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui large icon input\">\n      <input type=\"text\" placeholder=\"Search large...\">\n      <i class=\"search icon\"></i>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui big icon input\">\n      <input type=\"text\" placeholder=\"Search big...\">\n      <i class=\"search icon\"></i>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui huge icon input\">\n      <input type=\"text\" placeholder=\"Search huge...\">\n      <i class=\"search icon\"></i>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui massive icon input\">\n      <input type=\"text\" placeholder=\"Search massive...\">\n      <i class=\"search icon\"></i>\n    </div>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/elements/label.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'label'\nstandalone  : true\n\nelement     : 'label'\nelementType : 'element'\n\ntitle       : 'Label'\ndescription : 'A label displays content classification'\ntype        : 'UI Element'\n\nthemes      : ['Default', 'GitHub']\n---\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/elements/label.less\" />\n\n<%- @partial('header') %>\n\n<div class=\"main ui container\">\n\n  <h2 class=\"ui dividing header\">Types</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Label</h4>\n    <p>A label</p>\n    <div class=\"ui label\">\n      <i class=\"mail icon\"></i> 23\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Image</h4>\n    <p>A label can be formatted to emphasize an image</p>\n    <a class=\"ui image label\">\n      <img src=\"/images/avatar/small/joe.jpg\">\n      Joe\n    </a>\n    <a class=\"ui image label\">\n      <img src=\"/images/avatar/small/elliot.jpg\">\n      Elliot\n    </a>\n    <a class=\"ui image label\">\n      <img src=\"/images/avatar/small/stevie.jpg\">\n      Stevie\n    </a>\n  </div>\n  <div class=\"another example\">\n    <a class=\"ui blue image label\">\n      <img src=\"/images/avatar/small/veronika.jpg\">\n      Veronika\n      <div class=\"detail\">Friend</div>\n    </a>\n    <a class=\"ui teal image label\">\n      <img src=\"/images/avatar/small/jenny.jpg\">\n      Veronika\n      <div class=\"detail\">Student</div>\n    </a>\n    <a class=\"ui yellow image label\">\n      <img src=\"/images/avatar/small/christian.jpg\">\n      Helen\n      <div class=\"detail\">Co-worker</div>\n    </a>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui image label\">\n      <img src=\"/images/avatar/small/ade.jpg\">\n      Adrienne\n      <i class=\"delete icon\"></i>\n    </div>\n    <div class=\"ui image label\">\n      <img src=\"/images/avatar/small/zoe.jpg\">\n      Zoe\n      <i class=\"delete icon\"></i>\n    </div>\n    <div class=\"ui image label\">\n      <img src=\"/images/avatar/small/nan.jpg\">\n      Nan\n      <i class=\"delete icon\"></i>\n    </div>\n  </div>\n\n  <div class=\"example\" data-class=\"pointing above, pointing below, left pointing, right pointing\">\n    <h4 class=\"ui header\">Pointing</h4>\n    <p>A label can point to content next to it</p>\n    <form class=\"ui fluid form\">\n      <div class=\"field\">\n        <input type=\"text\" placeholder=\"First name\">\n        <div class=\"ui pointing label\">\n          Please enter a value\n        </div>\n      </div>\n      <div class=\"ui divider\"></div>\n      <div class=\"field\" placeholder=\"Last Name\">\n        <div class=\"ui pointing below label\">\n          Please enter a value\n        </div>\n        <input type=\"text\">\n      </div>\n      <div class=\"ui divider\"></div>\n      <div class=\"inline field\">\n        <input type=\"text\" placeholder=\"Username\">\n        <div class=\"ui left pointing label\">\n          That name is taken!\n        </div>\n      </div>\n      <div class=\"ui divider\"></div>\n      <div class=\"inline field\">\n        <div class=\"ui right pointing label\">\n          Your password must be 6 characters or more\n        </div>\n        <input type=\"password\">\n      </div>\n    </form>\n  </div>\n\n  <div class=\"another example\">\n    <form class=\"ui fluid form\">\n      <div class=\"field\">\n        <input type=\"text\" placeholder=\"First name\">\n        <div class=\"ui pointing red basic label\">\n          Please enter a value\n        </div>\n      </div>\n      <div class=\"ui divider\"></div>\n      <div class=\"field\" placeholder=\"Last Name\">\n        <div class=\"ui pointing below red basic label\">\n          Please enter a value\n        </div>\n        <input type=\"text\">\n      </div>\n      <div class=\"ui divider\"></div>\n      <div class=\"inline field\">\n        <input type=\"text\" placeholder=\"Username\">\n        <div class=\"ui left pointing red basic label\">\n          That name is taken!\n        </div>\n      </div>\n      <div class=\"ui divider\"></div>\n      <div class=\"inline field\">\n        <div class=\"ui right pointing red basic label\">\n          Your password must be 6 characters or more\n        </div>\n        <input type=\"password\">\n      </div>\n    </form>\n  </div>\n  <div class=\"example\" data-class=\"left corner, right corner, corner\">\n    <h4 class=\"ui header\">Corner</h4>\n    <p>A label can position itself in the corner of an element</p>\n    <div class=\"ui ignored warning message\">A corner label must be positioned inside a container with <b>position: relative</b> to display properly. If a container is rounded you will need to add <code>overflow:hidden</code> to the container to produce a rounded label.</div>\n    <div class=\"ui two column grid\">\n      <div class=\"column\">\n        <div class=\"ui fluid image\">\n          <a class=\"ui left corner label\">\n            <i class=\"heart icon\"></i>\n          </a>\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n      </div>\n      <div class=\"column\">\n        <div class=\"ui fluid image\">\n          <a class=\"ui red right corner label\">\n            <i class=\"save icon\"></i>\n          </a>\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"clearing example\">\n    <h4 class=\"ui header\">Tag</h4>\n    <p>A label can appear as a tag</p>\n    <a class=\"ui tag label\">New</a>\n    <a class=\"ui red tag label\">Upcoming</a>\n    <a class=\"ui teal tag label\">Featured</a>\n  </div>\n\n  <div class=\"example\" data-class=\"left ribbon, right ribbon, ribbon\">\n    <h4 class=\"ui header\">Ribbon</h4>\n    <p>A label can appear as a ribbon attaching itself to an element.</p>\n    <div class=\"ui two column grid\">\n      <div class=\"column\">\n        <div class=\"ui raised segment\">\n          <a class=\"ui red ribbon label\">Overview</a>\n          <span>Account Details</span>\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n          <a class=\"ui blue ribbon label\">Community</a> User Reviews\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        </div>\n      </div>\n      <div class=\"column\">\n        <div class=\"ui segment\">\n          <a class=\"ui orange right ribbon label\">Specs</a>\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n          <a class=\"ui teal right ribbon label\">Reviews</a>\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui two column grid\">\n      <div class=\"column\">\n        <div class=\"ui fluid image\">\n          <div class=\"ui black ribbon label\">\n            <i class=\"hotel icon\"></i> Hotel\n          </div>\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n      </div>\n      <div class=\"column\">\n        <div class=\"ui fluid image\">\n          <div class=\"ui blue ribbon label\">\n            <i class=\"spoon icon\"></i> Food\n          </div>\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"clearing example\">\n    <h4 class=\"ui header\">Attached</h4>\n    <p>A label can attach to a content segment</p>\n    <div class=\"ui ignored warning message\">\n      <p>Attached labels attempt to intelligently pad other content to account for their position, but may not in all cases apply this padding correctly.</p>\n      <p>If this happens you may need to manually correct the padding of the other elements inside the container.\n    </div>\n    <div class=\"ui three column grid\">\n      <div class=\"row\">\n        <div class=\"column\">\n          <div class=\"ui segment\">\n            <div class=\"ui top attached label\">HTML</div>\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n          </div>\n        </div>\n        <div class=\"column\">\n          <div class=\"ui segment\">\n            <div class=\"ui bottom attached label\">CSS</div>\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n          </div>\n        </div>\n        <div class=\"column\">\n          <div class=\"ui segment\">\n            <div class=\"ui top right attached label\">Code</div>\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n          </div>\n        </div>\n      </div>\n      <div class=\"row\">\n        <div class=\"column\">\n          <div class=\"ui segment\">\n            <div class=\"ui top left attached label\">View</div>\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n          </div>\n        </div>\n        <div class=\"column\">\n          <div class=\"ui segment\">\n            <div class=\"ui bottom left attached label\">User View</div>\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n          </div>\n        </div>\n        <div class=\"column\">\n          <div class=\"ui segment\">\n            <div class=\"ui bottom right attached label\">Admin View</div>\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n          </div>\n        </div>\n      </div>\n    </div>\n      <div class=\"existing code\">\n    <div class=\"ui top attached label\">HTML</div>\n    <div class=\"ui bottom attached label\">CSS</div>\n    <div class=\"ui top right attached label\">Code</div>\n    <div class=\"ui top left attached label\">View</div>\n    <div class=\"ui bottom left attached label\">User View</div>\n    <div class=\"ui bottom right attached label\">Admin View</div>\n      </div>\n  </div>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Horizontal</h4>\n    <p>A horizontal label is formatted to label content along-side it horizontally</p>\n    <div class=\"ui divided selection list\">\n      <a class=\"item\">\n        <div class=\"ui red horizontal label\">Fruit</div>\n        Kumquats\n      </a>\n      <a class=\"item\">\n        <div class=\"ui purple horizontal label\">Candy</div>\n        Ice Cream\n      </a>\n      <a class=\"item\">\n        <div class=\"ui red horizontal label\">Fruit</div>\n        Orange\n      </a>\n      <a class=\"item\">\n        <div class=\"ui horizontal label\">Dog</div>\n        Poodle\n      </a>\n    </div>\n  </div>\n\n  <div class=\"example\" data-class=\"floating\">\n    <h4 class=\"ui header\">Floating</h4>\n    <p>A label can float above another element.</p>\n    <div class=\"ui ignored warning message\">A floating label must be positioned inside a container with <b>position: relative</b> to display properly.</div>\n    <div class=\"ui compact menu\">\n      <a class=\"item\">\n        <i class=\"icon mail\"></i> Messages\n        <div class=\"floating ui red label\">22</div>\n      </a>\n      <a class=\"item\">\n        <i class=\"icon users\"></i> Friends\n        <div class=\"floating ui teal label\">22</div>\n      </a>\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Content</h2>\n\n  <div class=\"example\" data-use-content=\"true\">\n    <h4 class=\"ui header\">Detail</h4>\n    <p>A label can contain a detail</p>\n    <div class=\"ui label\">\n      Dogs\n      <div class=\"detail\">214</div>\n    </div>\n  </div>\n\n  <div class=\"example\" data-use-content=\"true\" data-class=\"icon\">\n    <h4 class=\"ui header\">Icon</h4>\n    <p>A label can include an icon</p>\n    <a class=\"ui label\">\n      <i class=\"mail icon\"></i>\n      Mail\n    </a>\n    <a class=\"ui label\">\n      Tag\n      <i class=\"delete icon\"></i>\n    </a>\n  </div>\n\n  <div class=\"example\" data-use-content=\"true\" data-class=\"image\" data-tag=\"img\">\n    <h4 class=\"ui header\">Image</h4>\n    <p>A label can include an image</p>\n    <a class=\"ui label\">\n      <img class=\"ui right spaced avatar image\" src=\"/images/avatar/small/elliot.jpg\">\n      Elliot\n    </a>\n    <a class=\"ui label\">\n      <img src=\"/images/avatar/small/stevie.jpg\">\n      Stevie\n    </a>\n  </div>\n\n  <div class=\"example\" data-use-content=\"true\" data-tag=\"a\">\n    <h4 class=\"ui header\">Link</h4>\n    <p>A label can be a link or contain an item that links</p>\n    <a class=\"ui label\">\n      <i class=\"mail icon\"></i> 23\n    </a>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui label\">\n      <i class=\"mail icon\"></i>\n      23\n      <a class=\"detail\">View Mail</a>\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Variations</h2>\n\n\n  <div class=\"example\" data-class=\"empty circular, circular\">\n    <h4 class=\"ui header\">Circular</h4>\n    <p>A label can be circular</p>\n    <a class=\"ui red circular label\">2</a>\n    <a class=\"ui orange circular label\">2</a>\n    <a class=\"ui yellow circular label\">2</a>\n    <a class=\"ui olive circular label\">2</a>\n    <a class=\"ui green circular label\">2</a>\n    <a class=\"ui teal circular label\">2</a>\n    <a class=\"ui blue circular label\">2</a>\n    <a class=\"ui violet circular label\">2</a>\n    <a class=\"ui purple circular label\">2</a>\n    <a class=\"ui pink circular label\">2</a>\n    <a class=\"ui brown circular label\">2</a>\n    <a class=\"ui grey circular label\">2</a>\n    <a class=\"ui black circular label\">2</a>\n  </div>\n  <div class=\"another example\">\n    <a class=\"ui red empty circular label\"></a>\n    <a class=\"ui orange empty circular label\"></a>\n    <a class=\"ui yellow empty circular label\"></a>\n    <a class=\"ui olive empty circular label\"></a>\n    <a class=\"ui green empty circular label\"></a>\n    <a class=\"ui teal empty circular label\"></a>\n    <a class=\"ui blue empty circular label\"></a>\n    <a class=\"ui violet empty circular label\"></a>\n    <a class=\"ui purple empty circular label\"></a>\n    <a class=\"ui pink empty circular label\"></a>\n    <a class=\"ui brown empty circular label\"></a>\n    <a class=\"ui grey empty circular label\"></a>\n    <a class=\"ui black empty circular label\"></a>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Basic\n      <div class=\"ui black label\">New in 2.1</div>\n    </h4>\n    <p>A label can reduce its complexity</p>\n    <a class=\"ui basic label\">Basic</a>\n    <a class=\"ui pointing basic label\">Pointing</a>\n    <a class=\"ui basic image label\">\n      <img src=\"/images/avatar/small/elliot.jpg\">\n      Elliot\n    <a class=\"ui pointing red basic label\">Red Pointing</a>\n    <a class=\"ui blue basic label\">Blue</a>\n    </a>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Colored</h4>\n    <p>A label can have different colors</p>\n    <a class=\"ui red label\">Red</a>\n    <a class=\"ui orange label\">Orange</a>\n    <a class=\"ui yellow label\">Yellow</a>\n    <a class=\"ui olive label\">Olive</a>\n    <a class=\"ui green label\">Green</a>\n    <a class=\"ui teal label\">Teal</a>\n    <a class=\"ui blue label\">Blue</a>\n    <a class=\"ui violet label\">Violet</a>\n    <a class=\"ui purple label\">Purple</a>\n    <a class=\"ui pink label\">Pink</a>\n    <a class=\"ui brown label\">Brown</a>\n    <a class=\"ui grey label\">Grey</a>\n    <a class=\"ui black label\">Black</a>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Size</h4>\n    <p>A label can be small or large</p>\n    <div class=\"ui mini label\">\n      Mini\n    </div>\n    <div class=\"ui tiny label\">\n      Tiny\n    </div>\n    <div class=\"ui small label\">\n      Small\n    </div>\n    <div class=\"ui label\">\n      Medium\n    </div>\n    <div class=\"ui large label\">\n      Large\n    </div>\n    <div class=\"ui big label\">\n      Big\n    </div>\n    <div class=\"ui huge label\">\n      Huge\n    </div>\n    <div class=\"ui massive label\">\n      Massive\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Groups</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Group Size</h4>\n    <p>Labels can share sizes together</p>\n    <div class=\"ui huge labels\">\n      <div class=\"ui label\">\n        Fun\n      </div>\n      <div class=\"ui label\">\n        Happy\n      </div>\n      <div class=\"ui label\">\n        Smart\n      </div>\n      <div class=\"ui label\">\n        Witty\n      </div>\n    </div>\n  </div>\n  <div class=\"example\">\n    <h4 class=\"ui header\">Colored Group</h4>\n    <p>Labels can share colors together</p>\n    <div class=\"ui blue labels\">\n      <a class=\"ui label\">\n        Fun <i class=\"icon close\"></i>\n      </a>\n      <a class=\"ui label\">\n        Happy\n        <div class=\"detail\">22</div>\n      </a>\n      <a class=\"ui label\">\n        Smart\n      </a>\n      <a class=\"ui label\">\n        Insane\n      </a>\n      <a class=\"ui label\">\n        Exciting\n      </a>\n    </div>\n  </div>\n\n  <div class=\"example\" data-class=\"tag\">\n    <h4 class=\"ui header\">Tag Group</h4>\n    <p>Labels can share tag formatting</p>\n    <div class=\"ui tag labels\">\n      <a class=\"ui label\">\n        $10.00\n      </a>\n      <a class=\"ui label\">\n        $19.99\n      </a>\n      <a class=\"ui label\">\n        $24.99\n      </a>\n      <a class=\"ui label\">\n        $30.99\n      </a>\n      <a class=\"ui label\">\n        $10.25\n      </a>\n    </div>\n  </div>\n\n  <div class=\"example\" data-class=\"circular\">\n    <h4 class=\"ui header\">Circular Group</h4>\n    <p>Labels can share shapes</p>\n    <div class=\"ui circular labels\">\n      <a class=\"ui label\">\n        11\n      </a>\n      <a class=\"ui label\">\n        22\n      </a>\n      <a class=\"ui label\">\n        33\n      </a>\n      <a class=\"ui label\">\n        44\n      </a>\n      <a class=\"ui label\">\n        141\n      </a>\n    </div>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/elements/list.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'list'\nstandalone  : true\n\nelement     : 'list'\nelementType : 'element'\n\ntitle       : 'List'\ndescription : 'A list is used to group related content'\ntype        : 'UI Element'\n\nthemes      : ['Default']\n---\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/elements/list.less\" />\n\n<%- @partial('header') %>\n<div class=\"main ui container\">\n\n  <h2 class=\"ui dividing header\">Types</h2>\n  <div class=\"example\">\n    <h4 class=\"ui header\">List</h4>\n    <p>A list groups related content</p>\n    <div class=\"ui list\">\n      <div class=\"item\">Apples</div>\n      <div class=\"item\">Pears</div>\n      <div class=\"item\">Oranges</div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui list\">\n      <div class=\"item\">\n        <i class=\"users icon\"></i>\n        <div class=\"content\">\n          Semantic UI\n        </div>\n      </div>\n      <div class=\"item\">\n        <i class=\"marker icon\"></i>\n        <div class=\"content\">\n          New York, NY\n        </div>\n      </div>\n      <div class=\"item\">\n        <i class=\"mail icon\"></i>\n        <div class=\"content\">\n          <a href=\"mailto:jack@semantic-ui.com\">jack@semantic-ui.com</a>\n        </div>\n      </div>\n      <div class=\"item\">\n        <i class=\"linkify icon\"></i>\n        <div class=\"content\">\n          <a href=\"http://www.semantic-ui.com\">semantic-ui.com</a>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui relaxed divided list\">\n      <div class=\"item\">\n        <i class=\"large github middle aligned icon\"></i>\n        <div class=\"content\">\n          <a class=\"header\">Semantic-Org/Semantic-UI</a>\n          <div class=\"description\">Updated 10 mins ago</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <i class=\"large github middle aligned icon\"></i>\n        <div class=\"content\">\n          <a class=\"header\">Semantic-Org/Semantic-UI-Docs</a>\n          <div class=\"description\">Updated 22 mins ago</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <i class=\"large github middle aligned icon\"></i>\n        <div class=\"content\">\n          <a class=\"header\">Semantic-Org/Semantic-UI-Meteor</a>\n          <div class=\"description\">Updated 34 mins ago</div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"another example\">\n\n    <div class=\"ui list\">\n      <div class=\"item\">\n        <i class=\"folder icon\"></i>\n        <div class=\"content\">\n          <div class=\"header\">src</div>\n          <div class=\"description\">Source files for project</div>\n          <div class=\"list\">\n            <div class=\"item\">\n              <i class=\"folder icon\"></i>\n              <div class=\"content\">\n                <div class=\"header\">site</div>\n                <div class=\"description\">Your site's theme</div>\n              </div>\n            </div>\n            <div class=\"item\">\n              <i class=\"folder icon\"></i>\n              <div class=\"content\">\n                <div class=\"header\">themes</div>\n                <div class=\"description\">Packaged theme files</div>\n                <div class=\"list\">\n                  <div class=\"item\">\n                    <i class=\"folder icon\"></i>\n                    <div class=\"content\">\n                      <div class=\"header\">default</div>\n                      <div class=\"description\">Default packaged theme</div>\n                    </div>\n                  </div>\n                  <div class=\"item\">\n                    <i class=\"folder icon\"></i>\n                    <div class=\"content\">\n                      <div class=\"header\">my_theme</div>\n                      <div class=\"description\">Packaged themes are also available in this folder</div>\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </div>\n            <div class=\"item\">\n              <i class=\"file icon\"></i>\n              <div class=\"content\">\n                <div class=\"header\">theme.config</div>\n                <div class=\"description\">Config file for setting packaged themes</div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <i class=\"folder icon\"></i>\n        <div class=\"content\">\n          <div class=\"header\">dist</div>\n          <div class=\"description\">Compiled CSS and JS files</div>\n          <div class=\"list\">\n            <div class=\"item\">\n              <i class=\"folder icon\"></i>\n              <div class=\"content\">\n                <div class=\"header\">components</div>\n                <div class=\"description\">Individual component CSS and JS</div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <i class=\"file icon\"></i>\n        <div class=\"content\">\n          <div class=\"header\">semantic.json</div>\n          <div class=\"description\">Contains build settings for gulp</div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\" data-tag=\"ul\">\n    <h4 class=\"ui header\">Bulleted</h4>\n    <p>A list can mark items with a bullet</p>\n    <div class=\"ui bulleted list\">\n      <div class=\"item\">Gaining Access</div>\n      <div class=\"item\">Inviting Friends</div>\n      <div class=\"item\">\n        <div>Benefits</div>\n        <div class=\"list\">\n          <a class=\"item\" href=\"#\">Link to somewhere</a>\n          <div class=\"item\">Rebates</div>\n          <div class=\"item\">Discounts</div>\n        </div>\n      </div>\n      <div class=\"item\">Warranty</div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ignored ui info message\">For convenience, a simple bulleted list can also use <code>ul</code> tag.</div>\n    <ul class=\"ui list\">\n      <li>Gaining Access</li>\n      <li>Inviting Friends</li>\n      <li>Benefits\n        <ul>\n          <li>Use Anywhere</li>\n          <li>Rebates</li>\n          <li>Discounts</li>\n        </ul>\n      </li>\n      <li>Warranty</li>\n    </ul>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui horizontal bulleted list\">\n      <a class=\"item\">\n        About Us\n      </a>\n      <a class=\"item\">\n        Sitemap\n      </a>\n      <a class=\"item\">\n        Contact\n      </a>\n    </div>\n  </div>\n\n  <div class=\"example\" data-tag=\"ol\">\n    <h4 class=\"ui header\">Ordered</h4>\n    <p>A list can be ordered numerically</p>\n    <div class=\"ui ordered list\">\n      <a class=\"item\">Getting Started</a>\n      <a class=\"item\">Introduction</a>\n      <div class=\"item\">\n        <a>Languages</a>\n        <div class=\"list\">\n          <a class=\"item\">HTML</a>\n          <a class=\"item\">Javascript</a>\n          <a class=\"item\">CSS</a>\n        </div>\n      </div>\n      <a class=\"item\">Review</a>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ignored ui info message\">An ordered list can also use the <code>ol</code> tag</div>\n    <ol class=\"ui list\">\n      <li>Signing Up</li>\n      <li>User Benefits</li>\n      <li>User Types\n        <ol>\n          <li>Admin</li>\n          <li>Power User</li>\n          <li>Regular User</li>\n        </ol>\n      </li>\n      <li>Deleting Your Account</li>\n    </ol>\n  </div>\n\n  <div class=\"another example\">\n    <div class=\"ui ignored info message\">You can also manually specify a value for an ordered list using <code>data-value</code> on a <code>div</code>, or <code>value</code> on an <code>li</code>\n    </div>\n    <ol class=\"ui list\">\n      <li value=\"*\">Signing Up</li>\n      <li value=\"*\">User Benefits</li>\n      <li value=\"*\">User Types\n        <ol>\n          <li value=\"-\">Admin</li>\n          <li value=\"-\">Power User</li>\n          <li value=\"-\">Regular User</li>\n        </ol>\n      </li>\n      <li value=\"*\">Deleting Your Account</li>\n    </ol>\n  </div>\n\n\n  <div class=\"example\" data-tag=\"a\">\n    <h4 class=\"ui header\">Link</h4>\n    <p>A list can be specially formatted for navigation links</p>\n    <div class=\"ui link list\">\n      <div class=\"active item\">Home</div>\n      <a class=\"item\">About</a>\n      <a class=\"item\">Jobs</a>\n      <a class=\"item\">Team</a>\n    </div>\n  </div>\n\n\n  <h2 class=\"ui dividing header\">Content</h2>\n\n  <div class=\"example\" data-use-content=\"true\">\n    <h4 class=\"ui header\">Item</h4>\n    <p>A list item can contain a set of items</p>\n    <div class=\"ui list\">\n      <div class=\"item\">\n        1\n      </div>\n      <div class=\"item\">\n        2\n      </div>\n      <div class=\"item\">\n        3\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\" data-use-content=\"true\">\n    <h4 class=\"ui header\">Icon</h4>\n    <p>A list item can contain an icon</p>\n    <div class=\"ui list\">\n      <a class=\"item\">\n        <i class=\"help icon\"></i>\n        <div class=\"content\">\n          <div class=\"header\">Floated Icon</div>\n          <div class=\"description\">This text will always have a left margin to make sure it sits alongside your icon</div>\n        </div>\n      </a>\n      <a class=\"item\">\n        <i class=\"right triangle icon\"></i>\n        <div class=\"content\">\n          <div class=\"header\">Icon Alignment</div>\n          <div class=\"description\">Floated icons are by default top aligned. To have an icon top aligned try this example.</div>\n        </div>\n      </a>\n      <div class=\"item\">\n        <i class=\"help icon\"></i>\n        Inline Text\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\" data-use-content=\"true\" data-class=\"image\">\n    <h4 class=\"ui header\">Image</h4>\n    <p>A list item can contain an image</p>\n<!--     <div class=\"ui ignored warning message\">\n      Due to issues with <a href=\"https://github.com/philipwalton/flexbugs#5-column-flex-items-dont-always-preserve-intrinsic-aspect-ratios\" target=\"_blank\">intrinsic aspect ratio in flexbox</a> <code>img</code> should use a container element.\n    </div> -->\n    <div class=\"ui list\">\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar2/small/rachel.png\">\n        <div class=\"content\">\n          <a class=\"header\">Rachel</a>\n          <div class=\"description\">Last seen watching <a><b>Arrested Development</b></a> just now.</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar2/small/lindsay.png\">\n        <div class=\"content\">\n          <a class=\"header\">Lindsay</a>\n          <div class=\"description\">Last seen watching <a><b>Bob's Burgers</b></a> 10 hours ago.</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar2/small/matthew.png\">\n        <div class=\"content\">\n          <a class=\"header\">Matthew</a>\n          <div class=\"description\">Last seen watching <a><b>The Godfather Part 2</b></a> yesterday.</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/jenny.jpg\">\n        <div class=\"content\">\n          <a class=\"header\">Jenny Hess</a>\n          <div class=\"description\">Last seen watching <a><b>Twin Peaks</b></a> 3 days ago.</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/veronika.jpg\">\n        <div class=\"content\">\n          <a class=\"header\">Veronika Ossi</a>\n          <div class=\"description\">Has not watched anything recently</div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\" data-use-content=\"true\" data-tag=\"a\">\n    <h4 class=\"ui header\">Link</h4>\n    <p>A list can contain links</p>\n    <div class=\"ui list\">\n      <a class=\"item\">What is a FAQ?</a>\n      <a class=\"item\">Who is our user?</a>\n      <a class=\"item\">Where is our office located?</a>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui list\">\n      <div class=\"item\">\n        <a class=\"header\">Header</a>\n        <div class=\"description\">\n          Click a link in our <a>description</a>.\n        </div>\n      </div>\n      <div class=\"item\">\n        <a class=\"header\">Learn More</a>\n        <div class=\"description\">\n          Learn more about this site on <a>our FAQ page</a>.\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\" data-use-content=\"true\">\n    <h4 class=\"ui header\">Header</h4>\n    <p>A list item can contain a header</p>\n    <div class=\"ui list\">\n      <div class=\"item\">\n        <div class=\"header\">New York City</div>\n        A lovely city\n      </div>\n      <div class=\"item\">\n        <div class=\"header\">Chicago</div>\n        Also quite a lovely city\n      </div>\n      <div class=\"item\">\n        <div class=\"header\">Los Angeles</div>\n        Sometimes can be a lovely city\n      </div>\n      <div class=\"item\">\n        <div class=\"header\">San Francisco</div>\n        What a lovely city\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\" data-use-content=\"true\">\n    <h4 class=\"ui header\">Description</h4>\n    <p>A list item can contain a description</p>\n    <div class=\"ui list\">\n      <div class=\"item\">\n        <i class=\"map marker icon\"></i>\n        <div class=\"content\">\n          <a class=\"header\">Krolewskie Jadlo</a>\n          <div class=\"description\">An excellent polish restaurant, quick delivery and hearty, filling meals.</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <i class=\"map marker icon\"></i>\n        <div class=\"content\">\n          <a class=\"header\">Xian Famous Foods</a>\n          <div class=\"description\">A taste of Shaanxi's delicious culinary traditions, with delights like spicy cold noodles and lamb burgers.</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <i class=\"map marker icon\"></i>\n        <div class=\"content\">\n          <a class=\"header\">Sapporo Haru</a>\n          <div class=\"description\">Greenpoint's best choice for quick and delicious sushi.</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <i class=\"map marker icon\"></i>\n        <div class=\"content\">\n          <a class=\"header\">Enid's</a>\n          <div class=\"description\">At night a bar, during the day a delicious brunch spot.</div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Variations</h2>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Horizontal</h4>\n    <p>A list can be formatted to have items appear horizontally</p>\n    <div class=\"ui horizontal list\">\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/tom.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Tom</div>\n          Top Contributor\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/christian.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Christian Rocha</div>\n          Admin\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/matt.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Matt</div>\n          Top Rated User\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"another example\">\n    <div class=\"ui ordered horizontal list\">\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/tom.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Steve Jobes</div>\n          50 Points\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/stevie.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Stevie Feliciano</div>\n          44 Points\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/jenny.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Jenny Hess</div>\n          11 Points\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui horizontal bulleted link list\">\n      <a class=\"item\">\n        Terms and Conditions\n      </a>\n      <a class=\"item\">\n        Privacy Policy\n      </a>\n      <a class=\"item\">\n        Contact Us\n      </a>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Inverted</h4>\n    <p>A list can be inverted to appear on a dark background</p>\n    <div class=\"ui inverted segment\">\n      <div class=\"ui inverted relaxed divided list\">\n        <div class=\"item\">\n          <div class=\"content\">\n            <div class=\"header\">Snickerdoodle</div>\n            An excellent companion\n          </div>\n        </div>\n        <div class=\"item\">\n          <div class=\"content\">\n            <div class=\"header\">Poodle</div>\n            A poodle, its pretty basic\n          </div>\n        </div>\n        <div class=\"item\">\n          <div class=\"content\">\n            <div class=\"header\">Paulo</div>\n            He's also a dog\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Selection</h4>\n    <p>A selection list formats list items as possible choices</p>\n    <div class=\"ui middle aligned selection list\">\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/helen.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Helen</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/christian.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Christian</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/daniel.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Daniel</div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Animated</h4>\n    <p>A list can animate to set the current item apart from the list</p>\n    <div class=\"ui ignored info message\">\n      Be sure content can fit on one line when using the animated variation, otherwise text content will reflow when hovered.\n    </div>\n    <div class=\"ui middle aligned animated list\">\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/helen.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Helen</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/christian.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Christian</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/daniel.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Daniel</div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Relaxed</h4>\n    <p>A list can relax its padding to provide more negative space</p>\n\n    <div class=\"ui relaxed list\">\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/daniel.jpg\">\n        <div class=\"content\">\n          <a class=\"header\">Daniel Louise</a>\n          <div class=\"description\">Last seen watching <a><b>Arrested Development</b></a> just now.</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/stevie.jpg\">\n        <div class=\"content\">\n          <a class=\"header\">Stevie Feliciano</a>\n          <div class=\"description\">Last seen watching <a><b>Bob's Burgers</b></a> 10 hours ago.</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/elliot.jpg\">\n        <div class=\"content\">\n          <a class=\"header\">Elliot Fu</a>\n          <div class=\"description\">Last seen watching <a><b>The Godfather Part 2</b></a> yesterday.</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui relaxed horizontal list\">\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/daniel.jpg\">\n        <div class=\"content\">\n          <a class=\"header\">Daniel Louise</a>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/stevie.jpg\">\n        <div class=\"content\">\n          <a class=\"header\">Stevie Feliciano</a>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/elliot.jpg\">\n        <div class=\"content\">\n          <a class=\"header\">Elliot Fu</a>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui very relaxed list\">\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/daniel.jpg\">\n        <div class=\"content\">\n          <a class=\"header\">Daniel Louise</a>\n          <div class=\"description\">Last seen watching <a><b>Arrested Development</b></a> just now.</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/stevie.jpg\">\n        <div class=\"content\">\n          <a class=\"header\">Stevie Feliciano</a>\n          <div class=\"description\">Last seen watching <a><b>Bob's Burgers</b></a> 10 hours ago.</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/elliot.jpg\">\n        <div class=\"content\">\n          <a class=\"header\">Elliot Fu</a>\n          <div class=\"description\">Last seen watching <a><b>The Godfather Part 2</b></a> yesterday.</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui very relaxed horizontal list\">\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/daniel.jpg\">\n        <div class=\"content\">\n          <a class=\"header\">Daniel Louise</a>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/stevie.jpg\">\n        <div class=\"content\">\n          <a class=\"header\">Stevie Feliciano</a>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/elliot.jpg\">\n        <div class=\"content\">\n          <a class=\"header\">Elliot Fu</a>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Divided</h4>\n    <p>A list can show divisions between content</p>\n    <div class=\"ui middle aligned divided list\">\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/daniel.jpg\">\n        <div class=\"content\">\n          <a class=\"header\">Daniel Louise</a>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/stevie.jpg\">\n        <div class=\"content\">\n          <a class=\"header\">Stevie Feliciano</a>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/elliot.jpg\">\n        <div class=\"content\">\n          <a class=\"header\">Elliot Fu</a>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Celled</h4>\n    <p>A list can divide its items into cells</p>\n    <div class=\"ui celled list\">\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/helen.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Snickerdoodle</div>\n          An excellent companion\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/daniel.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Poodle</div>\n          A poodle, its pretty basic\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/daniel.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Paulo</div>\n          He's also a dog\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui celled ordered list\">\n      <div class=\"item\">Cats</div>\n      <div class=\"item\">Horses</div>\n      <div class=\"item\">Dogs\n        <div class=\"list\">\n          <div class=\"item\">Labradoodles</div>\n          <div class=\"item\">Shiba Inu</div>\n          <div class=\"item\">Mastiff</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui celled horizontal list\">\n      <div class=\"item\">About Us</div>\n      <div class=\"item\">Contact</div>\n      <div class=\"item\">Support</div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Size</h4>\n    <p>A list can vary in size</p>\n    <div class=\"ui mini horizontal divided list\">\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/helen.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Helen</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/christian.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Christian</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/daniel.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Daniel</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui tiny horizontal list\">\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/helen.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Helen</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/christian.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Christian</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/daniel.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Daniel</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui small horizontal list\">\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/helen.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Helen</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/christian.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Christian</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/daniel.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Daniel</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui large horizontal divided list\">\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/helen.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Helen</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/christian.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Christian</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/daniel.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Daniel</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui big horizontal divided list\">\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/helen.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Helen</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/christian.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Christian</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/daniel.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Daniel</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui huge horizontal divided list\">\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/helen.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Helen</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/christian.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Christian</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/daniel.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Daniel</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui massive horizontal divided list\">\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/helen.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Helen</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/christian.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Christian</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/avatar/small/daniel.jpg\">\n        <div class=\"content\">\n          <div class=\"header\">Daniel</div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Content Variations</h2>\n\n\n  <div class=\"example\" data-use-content=\"true\">\n    <h4 class=\"ui header\">Vertically Aligned</h4>\n    <p>An element inside a list can be vertically aligned</p>\n    <div class=\"ui horizontal list\">\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/wireframe/square-image.png\">\n        <div class=\"top aligned content\">\n          Top Aligned\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/wireframe/square-image.png\">\n        <div class=\"middle aligned content\">\n          Middle\n        </div>\n      </div>\n      <div class=\"item\">\n        <img class=\"ui avatar image\" src=\"/images/wireframe/square-image.png\">\n        <div class=\"bottom aligned content\">\n          Bottom\n        </div>\n      </div>\n    </div>\n  </div>\n\n\n  <div class=\"example\" data-use-content=\"true\">\n    <h4 class=\"ui header\">Floated</h4>\n    <p>An list, or an element inside a list can be floated left or right</p>\n    <div class=\"ui middle aligned divided list\">\n      <div class=\"item\">\n        <div class=\"right floated content\">\n          <div class=\"ui button\">Add</div>\n        </div>\n        <img class=\"ui avatar image\" src=\"/images/avatar2/small/lena.png\">\n        <div class=\"content\">\n          Lena\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"right floated content\">\n          <div class=\"ui button\">Add</div>\n        </div>\n        <img class=\"ui avatar image\" src=\"/images/avatar2/small/lindsay.png\">\n        <div class=\"content\">\n          Lindsay\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"right floated content\">\n          <div class=\"ui button\">Add</div>\n        </div>\n        <img class=\"ui avatar image\" src=\"/images/avatar2/small/mark.png\">\n        <div class=\"content\">\n          Mark\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"right floated content\">\n          <div class=\"ui button\">Add</div>\n        </div>\n        <img class=\"ui avatar image\" src=\"/images/avatar2/small/molly.png\">\n        <div class=\"content\">\n          Molly\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui right floated horizontal list\">\n      <div class=\"disabled item\" href=\"#\">&copy; GitHub, Inc.</div>\n      <a class=\"item\" href=\"#\">Terms</a>\n      <a class=\"item\" href=\"#\">Privacy</a>\n      <a class=\"item\" href=\"#\">Contact</a>\n    </div>\n    <div class=\"ui horizontal list\">\n      <a class=\"item\" href=\"#\">About Us</a>\n      <a class=\"item\" href=\"#\">Jobs</a>\n    </div>\n  </div>\n\n</div>\n\n\n"
  },
  {
    "path": "server/documents/elements/loader.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'loader'\nstandalone  : true\n\nelement     : 'loader'\nelementType : 'element'\n\ntitle       : 'Loader'\ndescription : 'A loader alerts a user to wait for an activity to complete'\ntype        : 'UI Element'\n\nthemes      : ['Default', 'Duo', 'Pulsar']\n---\n\n<%- @partial('header') %>\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/elements/loader.less\" />\n<script src=\"/javascript/loader.js\"></script>\n\n<div class=\"main ui container\">\n\n  <h2 class=\"ui dividing header\">Types</h2>\n  <div class=\"example\">\n    <h4 class=\"ui header\">Loader</h4>\n    <p>A loader</p>\n    <div class=\"ui ignored info message\">Loaders are hidden unless <code>active</code> or inside an <a href=\"/modules/dimmer.html\"><code>active dimmer</code></a>.</div>\n    <div class=\"ui segment\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      <div class=\"ui active dimmer\">\n        <div class=\"ui loader\"></div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Text Loader</h4>\n    <p>A loader can contain text</p>\n    <div class=\"ui segment\">\n      <div class=\"ui active dimmer\">\n        <div class=\"ui text loader\">Loading</div>\n      </div>\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui segment\">\n      <div class=\"ui active inverted dimmer\">\n        <div class=\"ui text loader\">Loading</div>\n      </div>\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    </div>\n  </div>\n\n\n  <h2 class=\"ui dividing header\">States</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Indeterminate</h4>\n    <p>A loader can show it's unsure of how long a task will take</p>\n    <div class=\"ui segment\">\n      <div class=\"ui active dimmer\">\n        <div class=\"ui indeterminate text loader\">Preparing Files</div>\n      </div>\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Active</h4>\n    <p>A loader can be active or visible</p>\n    <div class=\"ui ignored info message\">\n      An active loader may not be clearly visible without using a <a href=\"/modules/dimmer.html\">ui dimmer</a>\n    </div>\n    <div class=\"ui segment\">\n      <div class=\"ui active loader\"></div>\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Disabled</h4>\n    <p>A loader can be disabled or hidden</p>\n    <div class=\"ui segment\">\n      <div class=\"ui disabled loader\"></div>\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    </div>\n  </div>\n\n\n  <h2 class=\"ui dividing header\">Variations</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Inline</h4>\n    <p>Loaders can appear inline with content </p>\n    <div class=\"ui active inline loader\"></div>\n  </div>\n\n  <div class=\"example\" data-class=\"centered inline\">\n    <h4 class=\"ui header\">Inline Center</h4>\n    <p>Loaders can appear inline centered with content </p>\n    <div class=\"ui active centered inline loader\"></div>\n  </div>\n\n  <div class=\"example\" data-class=\"size\">\n    <h4 class=\"ui header\">Size</h4>\n    <p>Loaders can have different sizes</p>\n\n    <div class=\"ui segment\">\n      <div class=\"ui active dimmer\">\n        <div class=\"ui mini text loader\">Loading</div>\n      </div>\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    </div>\n    <div class=\"ui segment\">\n      <div class=\"ui active dimmer\">\n        <div class=\"ui tiny text loader\">Loading</div>\n      </div>\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    </div>\n    <div class=\"ui segment\">\n      <div class=\"ui active dimmer\">\n        <div class=\"ui small text loader\">Loading</div>\n      </div>\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    </div>\n    <div class=\"ui segment\">\n      <div class=\"ui active dimmer\">\n        <div class=\"ui medium text loader\">Loading</div>\n      </div>\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    </div>\n    <div class=\"ui segment\">\n      <div class=\"ui active dimmer\">\n        <div class=\"ui large text loader\">Loading</div>\n      </div>\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    </div>\n    <div class=\"ui segment\">\n      <div class=\"ui active dimmer\">\n        <div class=\"ui big text loader\">Loading</div>\n      </div>\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    </div>\n    <div class=\"ui segment\">\n      <div class=\"ui active dimmer\">\n        <div class=\"ui huge text loader\">Loading</div>\n      </div>\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    </div>\n    <div class=\"ui segment\">\n      <div class=\"ui active dimmer\">\n        <div class=\"ui massive text loader\">Loading</div>\n      </div>\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Inverted</h4>\n    <p>Loaders can have their colors inverted.</p>\n    <div class=\"ui inverted segment\">\n      <div class=\"ui active inverted loader\"></div>\n      <br>\n      <br>\n      <br>\n      <br>\n    </div>\n  </div>\n  <div class=\"another example\" data-class=\"inverted dimmer\">\n    <div class=\"ui ignored info message\">Loaders will automatically be inverted inside <code>inverted dimmer</code></div>\n    <div class=\"ui segment\">\n      <div class=\"ui active inverted dimmer\">\n        <div class=\"ui mini text loader\">Loading</div>\n      </div>\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    </div>\n    <div class=\"ui segment\">\n      <div class=\"ui active inverted dimmer\">\n        <div class=\"ui small text loader\">Loading</div>\n      </div>\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    </div>\n    <div class=\"ui segment\">\n      <div class=\"ui active inverted dimmer\">\n        <div class=\"ui medium text loader\">Loading</div>\n      </div>\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    </div>\n    <div class=\"ui segment\">\n      <div class=\"ui active inverted dimmer\">\n        <div class=\"ui large text loader\">Loading</div>\n      </div>\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    </div>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/elements/placeholder.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'loader'\nstandalone  : true\n\nelement     : 'placeholder'\nelementType : 'element'\n\ntitle       : 'Placeholder'\ndescription : 'A placeholder is used to reserve splace for content that soon will appear in a layout'\ntype        : 'UI Element'\n\nthemes      : ['Default']\n---\n\n<%- @partial('header') %>\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/elements/loader.less\" />\n<script src=\"/javascript/loader.js\"></script>\n\n<div class=\"main ui container\">\n\n  <h2 class=\"ui dividing header\">Types</h2>\n\n  <div class=\"example\" data-class=\"image header, paragraph, line, content, loader, image\">\n    <h4 class=\"ui header\">\n      Placeholder\n      <div class=\"ui teal horizontal label\">New in 2.4.0</div>\n    </h4>\n    <p>A placeholder is used to reserve space for content that soon will appear in a layout.</p>\n    <div class=\"ui ignored info message\">\n      Placeholders can include <code>paragraph</code>, <code>header</code>, <code>image header</code> and <code>image</code> to let you format the loaders to emulate the content being loaded.\n    </div>\n    <div class=\"ui placeholder\">\n      <div class=\"image header\">\n        <div class=\"line\"></div>\n        <div class=\"line\"></div>\n      </div>\n      <div class=\"paragraph\">\n        <div class=\"line\"></div>\n        <div class=\"line\"></div>\n        <div class=\"line\"></div>\n        <div class=\"line\"></div>\n        <div class=\"line\"></div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui three column stackable grid\">\n      <div class=\"column\">\n        <div class=\"ui raised segment\">\n          <div class=\"ui placeholder\">\n            <div class=\"image header\">\n              <div class=\"line\"></div>\n              <div class=\"line\"></div>\n            </div>\n            <div class=\"paragraph\">\n              <div class=\"medium line\"></div>\n              <div class=\"short line\"></div>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"column\">\n        <div class=\"ui raised segment\">\n          <div class=\"ui placeholder\">\n            <div class=\"image header\">\n              <div class=\"line\"></div>\n              <div class=\"line\"></div>\n            </div>\n            <div class=\"paragraph\">\n              <div class=\"medium line\"></div>\n              <div class=\"short line\"></div>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"column\">\n        <div class=\"ui raised segment\">\n          <div class=\"ui placeholder\">\n            <div class=\"image header\">\n              <div class=\"line\"></div>\n              <div class=\"line\"></div>\n            </div>\n            <div class=\"paragraph\">\n              <div class=\"medium line\"></div>\n              <div class=\"short line\"></div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another content example\">\n    <%- @partial('examples/content-loader') %>\n  </div>\n\n\n  <h2 class=\"ui dividing header\">Content</h2>\n  <div class=\"example\">\n    <h4 class=\"ui header\">Lines</h4>\n    <p>A placeholder can contain lines of text</p>\n    <div class=\"ui ignored info message\">By default, repeated lines will appear varied in width. However, it may be useful to specify an exact length to make it match up with content more effectively</div>\n    <div class=\"ui placeholder\">\n      <div class=\"line\"></div>\n      <div class=\"line\"></div>\n      <div class=\"line\"></div>\n      <div class=\"line\"></div>\n      <div class=\"line\"></div>\n    </div>\n  </div>\n  <div class=\"example\">\n    <h4 class=\"ui header\">Headers</h4>\n    <p>A placeholder can contain a header</p>\n    <div class=\"ui ignored info message\">\n      Header content will have a slightly larger block size from paragraph\n    </div>\n    <div class=\"ui placeholder\">\n      <div class=\"image header\">\n        <div class=\"line\"></div>\n        <div class=\"line\"></div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui placeholder\">\n      <div class=\"header\">\n        <div class=\"line\"></div>\n        <div class=\"line\"></div>\n      </div>\n    </div>\n  </div>\n  <div class=\"example\">\n    <h4 class=\"ui header\">Paragraph</h4>\n    <p>A placeholder can contain a paragraph</p>\n    <div class=\"ui ignored info message\">Paragraphs are used to group lines together.</div>\n    <div class=\"ui placeholder\">\n      <div class=\"paragraph\">\n        <div class=\"line\"></div>\n        <div class=\"line\"></div>\n        <div class=\"line\"></div>\n        <div class=\"line\"></div>\n        <div class=\"line\"></div>\n      </div>\n      <div class=\"paragraph\">\n        <div class=\"line\"></div>\n        <div class=\"line\"></div>\n        <div class=\"line\"></div>\n      </div>\n    </div>\n  </div>\n  <div class=\"example\">\n    <h4 class=\"ui header\" data-class=\"image\">Image</h4>\n    <p>A placeholder can contain an image</p>\n    <div class=\"ui placeholder\" style=\"width:150px;height:150px;\">\n      <div class=\"image\"></div>\n    </div>\n  </div>\n  <div class=\"another example\" data-class=\"square\">\n    <div class=\"ui ignored info message\">\n      Using <code>square</code> (1:1) or <code>rectangular</code> (4:3) will embed an aspect ratio into the image loader so that they modify size correctly with responsive styles.\n    </div>\n    <div class=\"ui three cards\">\n      <div class=\"ui card\">\n        <div class=\"content\">\n          <div class=\"ui placeholder\">\n            <div class=\"square image\"></div>\n          </div>\n        </div>\n      </div>\n      <div class=\"ui card\">\n        <div class=\"content\">\n          <div class=\"ui placeholder\">\n            <div class=\"square image\"></div>\n          </div>\n        </div>\n      </div>\n      <div class=\"ui card\">\n        <div class=\"content\">\n          <div class=\"ui placeholder\">\n            <div class=\"square image\"></div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\" data-class=\"rectangular\">\n    <div class=\"ui three cards\">\n      <div class=\"ui card\">\n        <div class=\"content\">\n          <div class=\"ui placeholder\">\n            <div class=\"rectangular image\"></div>\n          </div>\n        </div>\n      </div>\n      <div class=\"ui card\">\n        <div class=\"content\">\n          <div class=\"ui placeholder\">\n            <div class=\"rectangular image\"></div>\n          </div>\n        </div>\n      </div>\n      <div class=\"ui card\">\n        <div class=\"content\">\n          <div class=\"ui placeholder\">\n            <div class=\"rectangular image\"></div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <h2 class=\"ui dividing header\">Variations</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Line Length</h4>\n    <p>A line can specify how long its contents should appear</p>\n    <div class=\"ui placeholder\">\n      <div class=\"full line\"></div>\n      <div class=\"very long line\"></div>\n      <div class=\"long line\"></div>\n      <div class=\"medium line\"></div>\n      <div class=\"short line\"></div>\n      <div class=\"very short line\"></div>\n    </div>\n  </div>\n  <div class=\"another example\">\n\n    <div class=\"ui placeholder\">\n      <div class=\"image header\">\n        <div class=\"medium line\"></div>\n        <div class=\"full line\"></div>\n      </div>\n      <div class=\"paragraph\">\n        <div class=\"full line\"></div>\n        <div class=\"medium line\"></div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Fluid</h4>\n    <p>A fluid placeholder takes up the width of its container</p>\n    <div class=\"ui fluid placeholder\">\n      <div class=\"image header\">\n        <div class=\"line\"></div>\n        <div class=\"line\"></div>\n      </div>\n      <div class=\"paragraph\">\n        <div class=\"line\"></div>\n        <div class=\"line\"></div>\n        <div class=\"line\"></div>\n      </div>\n    </div>\n  </div>\n  <div class=\"example\">\n    <h4 class=\"ui header\">Inverted</h4>\n    <p>A placeholder can have their colors inverted.</p>\n    <div class=\"ui inverted segment\">\n      <div class=\"ui active inverted placeholder\">\n        <div class=\"image header\">\n          <div class=\"line\"></div>\n          <div class=\"line\"></div>\n        </div>\n        <div class=\"paragraph\">\n          <div class=\"line\"></div>\n          <div class=\"line\"></div>\n          <div class=\"line\"></div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n"
  },
  {
    "path": "server/documents/elements/rail.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'basic minimal'\nelement     : 'rail'\nelementType : 'element'\nstandalone  : true\n\ntitle       : 'Rail'\ndescription : 'A rail is used to show accompanying content outside the boundaries of the main view of a site'\ntype        : 'UI Element'\n\n---\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/elements/rail.less\" />\n\n<%- @partial('header') %>\n\n<div class=\"main ui container\">\n\n  <div class=\"introduction\">\n    <h2 class=\"ui dividing header\">Introduction</h2>\n\n    <h3 class=\"ui header\">When to Use</h3>\n    <p>Rails display optional accompanying content outside of the main viewport of your website. Sites often use rails with <a href=\"/modules/sticky.html\">sticky</a> content to fix additional—often optional—content to your viewport as you scroll through the page.</p>\n    <p>Semantic's default rail is <code>300px</code> wide, just large enough to fit many <a href=\"/views/advertisement.html\">common ad unit sizes</a>, and just wide enough for a sub-navigation menu or a prominent call-to-action.</p>\n    <h3 class=\"ui header\">Adjusting Sizes</h3>\n    <p>Railed content will most likely require arbitrary breakpoints that are specific to your site's content, to ensure they do not exceed the horizontal width of a user's browser.</p>\n    <p>Rails are generally used beside long, single-column containers with long-form content like blog posts, articles, or user profiles. Generally your main text container width should be set between around <code>600-800px</code> depending on your font size to <a href=\"http://baymard.com/blog/line-length-readability\" target=\"_blank\">optimize line length for readability</a>.</p>\n    <p>This set-up means most tablet browsers can only accomodate a single rail. Ultrabooks and lower resolution computers two small rails, and larger monitors, usually two full-sized rails. The specifics of this implementation is left up to you in your project.</p>\n    <div class=\"ui ignored warning message\">\n      The following examples do not use any breakpoints, so some railed content may appear outside your browser's viewport on smaller screens.\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Types</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Rail</h4>\n    <p class=\"header\">A rail can be presented on the left or right side of a container</p>\n\n    <div class=\"ui segment\">\n      <div class=\"ui left rail\">\n        <div class=\"ui segment\">\n          Left Rail Content\n        </div>\n      </div>\n      <div class=\"ui right rail\">\n        <div class=\"ui segment\">\n          Right Rail Content\n        </div>\n      </div>\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n    </div>\n  </div>\n  <div class=\"example\">\n    <h4 class=\"ui header\">Internal</h4>\n    <p class=\"header\">A rail can attach itself to the inside of a container</p>\n\n    <div class=\"ui segment\" style=\"left: -150px; width: 960px;min-height: 300px;\">\n      <div class=\"ui left internal rail\">\n        <div class=\"ui segment\">\n          Left Rail Content\n        </div>\n      </div>\n      <div class=\"ui right internal rail\">\n        <div class=\"ui segment\">\n          Right Rail Content\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\" data-class=\"left dividing, right dividing, dividing\">\n    <h4 class=\"ui header\">Dividing</h4>\n    <p>A rail can create a division between itself and a container</p>\n    <div class=\"ui segment\">\n      <div class=\"ui left dividing rail\">\n        <div class=\"ui segment\">\n          Left Rail Content\n        </div>\n      </div>\n      <div class=\"ui right dividing rail\">\n        <div class=\"ui segment\">\n          Right Rail Content\n        </div>\n      </div>\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Variations</h2>\n\n  <div class=\"example\" data-class=\"left attached, right attached, internal right attached, internal left attached\">\n    <h4 class=\"ui header\">Attached</h4>\n    <p>A rail can appear attached to the main viewport</p>\n    <div class=\"ui segment\">\n      <div class=\"ui left attached rail\">\n        <div class=\"ui segment\">\n          Left Rail Content\n        </div>\n      </div>\n      <div class=\"ui right attached rail\">\n        <div class=\"ui segment\">\n          Right Rail Content\n        </div>\n      </div>\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui segment\" style=\"left: -150px; width: 960px;min-height: 300px;\">\n      <div class=\"ui left internal attached rail\">\n        <div class=\"ui segment\">\n          Left Rail Content\n        </div>\n      </div>\n      <div class=\"ui right internal attached rail\">\n        <div class=\"ui segment\">\n          Right Rail Content\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\" data-class=\"close, very close\">\n    <h4 class=\"ui header\">Close</h4>\n    <p class=\"header\">A rail can appear closer to the main viewport</p>\n    <div class=\"ui segment\">\n      <div class=\"ui left close rail\">\n        <div class=\"ui segment\">\n          Left Rail Content\n        </div>\n      </div>\n      <div class=\"ui right close rail\">\n        <div class=\"ui segment\">\n          Right Rail Content\n        </div>\n      </div>\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui segment\">\n      <div class=\"ui left very close rail\">\n        <div class=\"ui segment\">\n          Left Rail Content\n        </div>\n      </div>\n      <div class=\"ui right very close rail\">\n        <div class=\"ui segment\">\n          Right Rail Content\n        </div>\n      </div>\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n    </div>\n  </div>\n\n  <div class=\"example\" data-class=\"size\">\n    <h4 class=\"ui header\">Size</h4>\n    <p>A rail can have different sizes</p>\n    <div class=\"ui segment\">\n      <div class=\"ui left mini rail\">\n        Mini\n      </div>\n      <div class=\"ui right tiny rail\">\n        Tiny\n      </div>\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n    </div>\n    <div class=\"ui segment\">\n      <div class=\"ui left small rail\">\n        Small\n      </div>\n      <div class=\"ui right large rail\">\n        Large\n      </div>\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n    </div>\n    <div class=\"ui segment\">\n      <div class=\"ui left big rail\">\n        Big\n      </div>\n      <div class=\"ui right huge rail\">\n        Huge\n      </div>\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n    </div>\n    <div class=\"ui segment\">\n      <div class=\"ui right massive rail\">\n        Massive\n      </div>\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n    </div>\n  </div>\n\n\n</div>\n"
  },
  {
    "path": "server/documents/elements/reveal.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'reveal'\nstandalone  : true\n\nelement     : 'reveal'\nelementType : 'element'\n\ntitle       : 'Reveal'\ndescription : 'A reveal displays additional content in place of previous content when activated'\ntype        : 'UI Element'\n\nthemes      : ['Default']\n---\n\n<%- @partial('header') %>\n\n<div class=\"main ui container\">\n\n  <h2 class=\"ui dividing header\">Types</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Fade</h4>\n    <p>An element can disappear to reveal content below</p>\n    <div class=\"ui fade reveal\">\n      <div class=\"visible content\">\n        <img src=\"/images/wireframe/square-image.png\" class=\"ui small image\">\n      </div>\n      <div class=\"hidden content\">\n        <img src=\"/images/avatar/large/ade.jpg\" class=\"ui small image\">\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui small fade reveal image\">\n      <img class=\"visible content\" src=\"/images/wireframe/square-image.png\">\n      <img class=\"hidden content\" src=\"/images/avatar/large/ade.jpg\">\n    </div>\n  </div>\n\n  <div class=\"example\" data-class=\"move left, move right, move up, move down, move\">\n    <h4 class=\"ui header\">Move</h4>\n    <p>An element can move in a direction to reveal content</p>\n    <div class=\"ui move reveal\">\n      <div class=\"visible content\">\n        <img src=\"/images/wireframe/square-image.png\" class=\"ui small image\">\n      </div>\n      <div class=\"hidden content\">\n        <img src=\"/images/avatar/large/chris.jpg\" class=\"ui small image\">\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui move right reveal\">\n      <div class=\"visible content\">\n        <img src=\"/images/wireframe/square-image.png\" class=\"ui small image\">\n      </div>\n      <div class=\"hidden content\">\n        <img src=\"/images/avatar/large/jenny.jpg\" class=\"ui small image\">\n      </div>\n    </div>\n  </div>\n\n  <div class=\"another example\">\n    <div class=\"ui move up reveal\">\n      <div class=\"visible content\">\n        <img src=\"/images/wireframe/square-image.png\" class=\"ui small image\">\n      </div>\n      <div class=\"hidden content\">\n        <img src=\"/images/avatar/large/justen.jpg\" class=\"ui small image\">\n      </div>\n    </div>\n  </div>\n\n  <div class=\"another example\">\n    <div class=\"ui move down reveal\">\n      <div class=\"visible content\">\n        <img src=\"/images/wireframe/square-image.png\" class=\"ui small image\">\n      </div>\n      <div class=\"hidden content\">\n        <img src=\"/images/avatar/large/nan.jpg\" class=\"ui small image\">\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\" data-class=\"rotate left, rotate\">\n    <h4 class=\"ui header\">Rotate</h4>\n    <p>An element can rotate to reveal content below</p>\n    <div class=\"ui small circular rotate reveal image\">\n      <img src=\"/images/wireframe/square-image.png\" class=\"visible content\">\n      <img src=\"/images/avatar/large/stevie.jpg\" class=\"hidden content\">\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui small circular rotate left reveal image\">\n      <img src=\"/images/wireframe/square-image.png\" class=\"visible content\">\n      <img src=\"/images/avatar/large/veronika.jpg\" class=\"hidden content\">\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Content</h2>\n\n  <div class=\"clearing example\" data-use-content=\"true\">\n    <h4 class=\"ui header\">Visible Content</h4>\n    <p>A reveal may contain content that is visible before interaction</p>\n    <div class=\"ui ignored info message\">\n      Visible and hidden content should be the same aspect ratio\n    </div>\n    <div class=\"ui small fade reveal image\">\n      <img class=\"visible content\" src=\"/images/avatar/large/ade.jpg\">\n      <img class=\"hidden content\" src=\"/images/wireframe/square-image.png\">\n    </div>\n  </div>\n\n  <div class=\"clearing example\" data-use-content=\"true\">\n    <h4 class=\"ui header\">Hidden Content</h4>\n    <p>A reveal may contain content that is hidden before user interaction</p>\n    <div class=\"ui small fade reveal image\">\n      <img class=\"visible content\" src=\"/images/wireframe/square-image.png\">\n      <img class=\"hidden content\" src=\"/images/avatar/large/ade.jpg\">\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">States</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Active</h4>\n    <p>An active reveal displays its hidden content</p>\n    <div class=\"ui ignored info message\">\n      Adding the class <code>active</code> can allow you to show the hidden contents programatically\n    </div>\n    <div class=\"ui active move left reveal\">\n      <div class=\"visible content\">\n        <img src=\"/images/wireframe/square-image.png\" class=\"ui small image\">\n      </div>\n      <div class=\"hidden content\">\n        <img src=\"/images/avatar/large/nan.jpg\" class=\"ui small image\">\n      </div>\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Variations</h2>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Instant</h4>\n    <p>An element can show its content without delay</p>\n    <div class=\"ui instant move reveal\">\n      <div class=\"visible content\">\n        <img src=\"/images/wireframe/square-image.png\" class=\"ui small image\">\n      </div>\n      <div class=\"hidden content\">\n        <img src=\"/images/avatar/large/chris.jpg\" class=\"ui small image\">\n      </div>\n    </div>\n  </div>\n\n\n  <h2 class=\"ui dividing header\">States</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Disabled</h4>\n    <p>A disabled reveal will not animate when hovered</p>\n    <div class=\"ui disabled move reveal\">\n      <div class=\"visible content\">\n        <img src=\"/images/wireframe/square-image.png\" class=\"ui small image\">\n      </div>\n      <div class=\"hidden content\">\n        <img src=\"/images/avatar/large/chris.jpg\" class=\"ui small image\">\n      </div>\n    </div>\n  </div>\n\n\n\n</div>\n"
  },
  {
    "path": "server/documents/elements/segment.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'segment'\nstandalone  : true\n\nelement     : 'segment'\nelementType : 'element'\n\ntitle       : 'Segment'\ndescription : 'A segment is used to create a grouping of related content'\ntype        : 'UI Element'\nthemes      : ['default', 'GitHub']\n---\n<%- @partial('header') %>\n<script src=\"/javascript/search.js\"></script>\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/elements/segment.less\" />\n\n<div class=\"main ui container\">\n\n  <h2 class=\"ui dividing header\">Types</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Segment</h4>\n    <p>A segment of content</p>\n    <div class=\"ui segment\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    </div>\n  </div>\n  <div class=\"example\">\n    <h4 class=\"ui header\">\n      Placeholder Segment\n      <div class=\"ui teal horizontal label\">New in 2.4.0</div>\n    </h4>\n    <p>A segment can be used to reserve space for conditionally displayed content.</p>\n    <div class=\"ui placeholder segment\">\n      <div class=\"ui icon header\">\n        <i class=\"pdf file outline icon\"></i>\n        No documents are listed for this customer.\n      </div>\n      <div class=\"ui primary button\">Add Document</div>\n    </div>\n  </div>\n\n  <div class=\"another example\">\n    <div class=\"ui ignored info message\">\n      To use inline-block content inside a placeholder, wrap the content in <code>inline</code>.\n    </div>\n    <div class=\"ui placeholder segment\">\n      <div class=\"ui icon header\">\n        <i class=\"search icon\"></i>\n        We don't have any documents matching your query\n      </div>\n      <div class=\"inline\">\n        <div class=\"ui primary button\">Clear Query</div>\n        <div class=\"ui button\">Add Document</div>\n      </div>\n    </div>\n  </div>\n\n\n  <div class=\"another local example\">\n    <div class=\"ui placeholder segment\">\n      <div class=\"ui two column stackable center aligned grid\">\n        <div class=\"ui vertical divider\">Or</div>\n        <div class=\"middle aligned row\">\n          <div class=\"column\">\n            <div class=\"ui icon header\">\n              <i class=\"search icon\"></i>\n              Find Country\n            </div>\n            <div class=\"field\">\n              <div class=\"ui search\">\n                <div class=\"ui icon input\">\n                  <input class=\"prompt\" type=\"text\" placeholder=\"Search countries...\">\n                  <i class=\"search icon\"></i>\n                </div>\n                <div class=\"results\"></div>\n              </div>\n            </div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui icon header\">\n              <i class=\"world icon\"></i>\n              Add New Country\n            </div>\n            <div class=\"ui primary button\">\n              Create\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Raised</h4>\n    <p>A segment may be formatted to raise above the page.</p>\n    <div class=\"ui raised segment\">\n      <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>\n    </div>\n  </div>\n\n  <div class=\"example\" data-class=\"tall stacked, stacked\">\n    <h4 class=\"ui header\">Stacked</h4>\n    <p>A segment can be formatted to show it contains multiple pages</p>\n    <div class=\"ui stacked segment\">\n      <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui tall stacked segment\">\n      <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>\n    </div>\n  </div>\n\n  <div class=\"piled example\">\n    <h4 class=\"ui header\">Piled</h4>\n    <p>A segment can be formatted to look like a pile of pages</p>\n    <div class=\"ui ignored warning message\">\n      Piled segments use <b>negative z-index</b> to format the additional pages below the segment. In order for them to appear correctly, your segment's offset container must have a z-index declared.\n    </div>\n    <div class=\"ui piled segment\">\n      <h4 class=\"ui header\">A header</h4>\n      <p>Te eum doming eirmod, nominati pertinacia argumentum ad his. Ex eam alia facete scriptorem, est autem aliquip detraxit at. Usu ocurreret referrentur at, cu epicurei appellantur vix. Cum ea laoreet recteque electram, eos choro alterum definiebas in. Vim dolorum definiebas an. Mei ex natum rebum iisque.</p>\n\n      <p>Audiam quaerendum eu sea, pro omittam definiebas ex. Te est latine definitiones. Quot wisi nulla ex duo. Vis sint solet expetenda ne, his te phaedrum referrentur consectetuer. Id vix fabulas oporteat, ei quo vide phaedrum, vim vivendum maiestatis in.</p>\n\n      <p>Eu quo homero blandit intellegebat. Incorrupte consequuntur mei id. Mei ut facer dolores adolescens, no illum aperiri quo, usu odio brute at. Qui te porro electram, ea dico facete utroque quo. Populo quodsi te eam, wisi everti eos ex, eum elitr altera utamur at. Quodsi convenire mnesarchum eu per, quas minimum postulant per id.</p>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Vertical Segment</h4>\n    <p>A vertical segment formats content to be aligned as part of a vertical group</p>\n    <div class=\"ui vertical segment\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    </div>\n    <div class=\"ui vertical segment\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    </div>\n    <div class=\"ui vertical segment\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Groups</h2>\n\n  <div class=\"example\" data-class=\"segments\">\n    <h4 class=\"ui header\">Segments</h4>\n    <p>A group of segments can be formatted to appear together</p>\n\n    <div class=\"ui segments\">\n      <div class=\"ui segment\">\n        <p>Top</p>\n      </div>\n      <div class=\"ui segment\">\n        <p>Middle</p>\n      </div>\n      <div class=\"ui segment\">\n        <p>Middle</p>\n      </div>\n      <div class=\"ui segment\">\n        <p>Middle</p>\n      </div>\n      <div class=\"ui segment\">\n        <p>Bottom</p>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui segments\">\n      <div class=\"ui segment\">\n        <p>Top</p>\n      </div>\n      <div class=\"ui red segment\">\n        <p>Middle</p>\n      </div>\n      <div class=\"ui blue segment\">\n        <p>Middle</p>\n      </div>\n      <div class=\"ui green segment\">\n        <p>Middle</p>\n      </div>\n      <div class=\"ui yellow segment\">\n        <p>Bottom</p>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui segments\">\n      <div class=\"ui segment\">\n        <p>Top</p>\n      </div>\n      <div class=\"ui secondary segment\">\n        <p>Secondary Content</p>\n      </div>\n    </div>\n  </div>\n  <div class=\"example\" data-use-content=\"true\" data-class=\"segments\">\n    <h4 class=\"ui header\">Nested Segments</h4>\n    <p>A group of segments can be nested in another group of segments</p>\n    <div class=\"ui segments\">\n      <div class=\"ui segment\">\n        <p>Top</p>\n      </div>\n      <div class=\"ui segments\">\n        <div class=\"ui segment\">\n          <p>Nested Top</p>\n        </div>\n        <div class=\"ui segment\">\n          <p>Nested Middle</p>\n        </div>\n        <div class=\"ui segment\">\n          <p>Nested Bottom</p>\n        </div>\n      </div>\n      <div class=\"ui segment\">\n        <p>Middle</p>\n      </div>\n      <div class=\"ui horizontal segments\">\n        <div class=\"ui segment\">\n          <p>Top</p>\n        </div>\n        <div class=\"ui segment\">\n          <p>Middle</p>\n        </div>\n        <div class=\"ui segment\">\n          <p>Bottom</p>\n        </div>\n      </div>\n      <div class=\"ui segment\">\n        <p>Bottom</p>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Horizontal Segments</h4>\n    <p>A segment group can appear horizontally</p>\n    <div class=\"ui horizontal segments\">\n      <div class=\"ui segment\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      </div>\n      <div class=\"ui segment\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      </div>\n      <div class=\"ui segment\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      </div>\n    </div>\n  </div>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Raised Segments</h4>\n    <p>A group of segments can be raised</p>\n    <div class=\"ui raised segments\">\n      <div class=\"ui segment\">\n        <p>Top</p>\n      </div>\n      <div class=\"ui segment\">\n        <p>Middle</p>\n      </div>\n      <div class=\"ui segment\">\n        <p>Bottom</p>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Stacked Segments</h4>\n    <p>A group of segments can be stacked</p>\n    <div class=\"ui stacked segments\">\n      <div class=\"ui segment\">\n        <p>Top</p>\n      </div>\n      <div class=\"ui segment\">\n        <p>Middle</p>\n      </div>\n      <div class=\"ui segment\">\n        <p>Bottom</p>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"piled example\">\n    <h4 class=\"ui header\">Piled Segments</h4>\n    <p>A group of segments can be piled</p>\n    <div class=\"ui piled segments\">\n      <div class=\"ui segment\">\n        <p>Top</p>\n      </div>\n      <div class=\"ui segment\">\n        <p>Middle</p>\n      </div>\n      <div class=\"ui segment\">\n        <p>Bottom</p>\n      </div>\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">States</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Disabled</h4>\n    <p>A segment may show its content is disabled</p>\n    <div class=\"ui disabled segment\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    </div>\n  </div>\n  <div class=\"example\">\n    <h4 class=\"ui header\">Loading</h4>\n    <p>A segment may show its content is being loaded</p>\n    <div class=\"ui loading segment\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Variations</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Inverted</h4>\n    <p>A segment can have its colors inverted for contrast</p>\n    <div class=\"ui inverted segment\">\n      <p>I'm here to tell you something, and you will probably read me first.</p>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Attached</h4>\n    <p>A segment can be attached to other content on a page</p>\n\n    <div class=\"ui ignored info message\">\n      <p>Attached segments are designed to be used with other <code>attached</code> variations like <a href=\"/elements/header.html#attached\">attached header</a> or <a href=\"/collections/message.html#attached\">attached messages</a>.</p>\n    </div>\n    <div class=\"ui top attached segment\">\n      <p>This segment is on top</p>\n    </div>\n    <div class=\"ui attached segment\">\n      <p>This segment is attached on both sides</p>\n    </div>\n    <div class=\"ui bottom attached segment\">\n      <p>This segment is on bottom</p>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <h5 class=\"ui top attached header\">\n      Dogs\n    </h5>\n    <div class=\"ui attached segment\">\n      <p>Dogs are one type of animal</p>\n    </div>\n    <h5 class=\"ui attached header\">\n      Cats\n    </h5>\n    <div class=\"ui attached segment\">\n      <p>Cats are thought of as being related to dogs, but only humans think this.</p>\n    </div>\n    <h5 class=\"ui attached header\">\n      Lions\n    </h5>\n    <div class=\"ui attached segment\">\n      <p>Humans don't think of lions as being like cats, but they are.</p>\n    </div>\n    <div class=\"ui bottom attached warning message\">\n      <i class=\"warning icon\"></i>\n      You've reached the end of this content segment!\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Padded</h4>\n    <p>A segment can increase its padding</p>\n    <div class=\"ui padded segment\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui very padded segment\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Compact</h4>\n    <p>A segment may take up only as much space as is necessary</p>\n    <div class=\"ui compact segment\">\n      <p>Pellentesque habitant morbi</p>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui compact segments\">\n      <div class=\"ui segment\">\n        <p>Pellentesque habitant morbi</p>\n      </div>\n      <div class=\"ui segment\">\n        <p>Pellentesque habitant morbi</p>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Colored</h4>\n    <p>A segment can be colored</p>\n    <div class=\"ui red segment\">Red</div>\n    <div class=\"ui orange segment\">Orange</div>\n    <div class=\"ui yellow segment\">Yellow</div>\n    <div class=\"ui olive segment\">Olive</div>\n    <div class=\"ui green segment\">Green</div>\n    <div class=\"ui teal segment\">Teal</div>\n    <div class=\"ui blue segment\">Blue</div>\n    <div class=\"ui violet segment\">Violet</div>\n    <div class=\"ui purple segment\">Purple</div>\n    <div class=\"ui pink segment\">Pink</div>\n    <div class=\"ui brown segment\">Brown</div>\n    <div class=\"ui grey segment\">Grey</div>\n    <div class=\"ui black segment\">Black</div>\n  </div>\n  <div class=\"another example\">\n    <p>These colors can be inverted</p>\n    <div class=\"ui red inverted segment\">Red</div>\n    <div class=\"ui orange inverted segment\">Orange</div>\n    <div class=\"ui yellow inverted segment\">Yellow</div>\n    <div class=\"ui olive inverted segment\">Olive</div>\n    <div class=\"ui green inverted segment\">Green</div>\n    <div class=\"ui teal inverted segment\">Teal</div>\n    <div class=\"ui blue inverted segment\">Blue</div>\n    <div class=\"ui violet inverted segment\">Violet</div>\n    <div class=\"ui purple inverted segment\">Purple</div>\n    <div class=\"ui pink inverted segment\">Pink</div>\n    <div class=\"ui brown inverted segment\">Brown</div>\n    <div class=\"ui grey inverted segment\">Grey</div>\n    <div class=\"ui black inverted segment\">Black</div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Emphasis</h4>\n    <p>A segment can be formatted to appear more or less noticeable</p>\n    <div class=\"ui segment\">\n      <p>I'm here to tell you something, and you will probably read me first.</p>\n    </div>\n    <div class=\"ui secondary segment\">\n      <p>I am pretty noticeable but you might check out other content before you look at me.</p>\n    </div>\n    <div class=\"ui tertiary segment\">\n      <p>If you notice me you must be looking very hard.</p>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <p>Inverted colors may also be more or less noticeable</p>\n    <div class=\"ui inverted segment\">\n      <p>I'm here to tell you something, and you will probably read me first.</p>\n    </div>\n    <div class=\"ui secondary inverted segment\">\n      <p>I am pretty noticeable but you might check out other content before you look at me.</p>\n    </div>\n    <div class=\"ui tertiary inverted segment\">\n      <p>If you notice me you must be looking very hard.</p>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui inverted red segment\">\n      <p>I'm here to tell you something, and you will probably read me first.</p>\n    </div>\n    <div class=\"ui secondary inverted red segment\">\n      <p>I am pretty noticeable but you might check out other content before you look at me.</p>\n    </div>\n    <div class=\"ui tertiary inverted red segment\">\n      <p>If you notice me you must be looking very hard.</p>\n    </div>\n  </div>\n  <div class=\"example\">\n    <h4 class=\"ui header\">Circular</h4>\n    <p>A segment can be circular</p>\n    <div class=\"ui ignored info message\">A circular segment will most likely have to have its content manually sized to be equal width and height, otherwise it will flow to the size of your content</div>\n    <div class=\"ui circular segment\">\n      <h2 class=\"ui header\">\n        Buy Now\n        <div class=\"sub header\">$10.99</div>\n      </h2>\n    </div>\n    <div class=\"ui inverted circular segment\">\n      <h2 class=\"ui inverted header\">\n        Buy Now\n        <div class=\"sub header\">$10.99</div>\n      </h2>\n    </div>\n  </div>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">\n      Clearing\n      <span class=\"ui teal label\">New</span>\n    </h4>\n    <p>A segment can clear floated content</p>\n    <div class=\"ui clearing segment\">\n      <div class=\"ui right floated button\">Floated</div>\n    </div>\n  </div>\n\n  <div class=\"clearing example\">\n    <h4 class=\"ui header\">Floated</h4>\n    <p>A segment can appear to the left or right of other content</p>\n    <div class=\"ui right floated segment\">\n      <p>This segment will appear to the right\n    </div>\n    <div class=\"ui left floated segment\">\n      This segment will appear to the left\n    </div>\n  </div>\n\n  <div class=\"clearing example\">\n    <h4 class=\"ui header\">Text Alignment</h4>\n    <p>A segment can have its text aligned to a side</p>\n    <div class=\"ui right aligned segment\">\n      Right\n    </div>\n    <div class=\"ui left aligned segment\">\n      Left\n    </div>\n    <div class=\"ui center aligned segment\">\n      Center\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Basic</h4>\n    <p>A basic segment has no special formatting</p>\n    <div class=\"ui basic segment\">\n      <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>\n    </div>\n  </div>\n\n\n</div>\n"
  },
  {
    "path": "server/documents/elements/step.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'steps'\nstandalone  : true\n\nelement     : 'step'\nelementType : 'element'\n\ntitle       : 'Step'\ndescription : 'A step shows the completion status of an activity in a series of activities'\ntype        : 'UI Element'\n\nthemes      : ['Default', 'Basic', 'GitHub']\n---\n\n<%- @partial('header') %>\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/elements/step.less\" />\n\n<div class=\"main ui container\">\n\n  <h2 class=\"ui dividing header\">Types</h2>\n\n  <div class=\"example\" data-use-content=\"true\">\n    <h4 class=\"ui header\">Step</h4>\n    <p>A single step</p>\n    <div class=\"ui steps\">\n      <div class=\"step\">\n        Shipping\n      </div>\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Groups</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">\n      Steps\n    </h4>\n    <p>A set of steps</p>\n    <div class=\"ui ignored positive icon message\">\n      <i class=\"mobile icon\"></i>\n      <div class=\"content\">\n        <h3 class=\"header\">Responsive Element</h3>\n        <p>Steps will automatically stack on mobile. To make steps automatically stack for tablet use the <code>tablet stackable</code> variation.</p>\n      </div>\n    </div>\n    <div class=\"ui steps\">\n      <div class=\"step\">\n        <i class=\"truck icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Shipping</div>\n          <div class=\"description\">Choose your shipping options</div>\n        </div>\n      </div>\n      <div class=\"active step\">\n        <i class=\"payment icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Billing</div>\n          <div class=\"description\">Enter billing information</div>\n        </div>\n      </div>\n      <div class=\"disabled step\">\n        <i class=\"info icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Confirm Order</div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Ordered</h4>\n    <p>A step can show a ordered sequence of steps</p>\n    <div class=\"ui ordered steps\">\n      <div class=\"completed step\">\n        <div class=\"content\">\n          <div class=\"title\">Shipping</div>\n          <div class=\"description\">Choose your shipping options</div>\n        </div>\n      </div>\n      <div class=\"completed step\">\n        <div class=\"content\">\n          <div class=\"title\">Billing</div>\n          <div class=\"description\">Enter billing information</div>\n        </div>\n      </div>\n      <div class=\"active step\">\n        <div class=\"content\">\n          <div class=\"title\">Confirm Order</div>\n          <div class=\"description\">Verify order details</div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Vertical</h4>\n    <p>A step can be displayed stacked vertically</p>\n    <div class=\"ui vertical steps\">\n      <div class=\"completed step\">\n        <i class=\"truck icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Shipping</div>\n          <div class=\"description\">Choose your shipping options</div>\n        </div>\n      </div>\n      <div class=\"completed step\">\n        <i class=\"credit card icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Billing</div>\n          <div class=\"description\">Enter billing information</div>\n        </div>\n      </div>\n      <div class=\"active step\">\n        <i class=\"info icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Confirm Order</div>\n          <div class=\"description\">Verify order details</div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n\n  <h2 class=\"ui dividing header\">Content</h2>\n\n  <div class=\"example\" data-use-content=\"true\">\n    <h4 class=\"ui header\">Description</h4>\n    <p>A step can contain a description</p>\n    <div class=\"ui steps\">\n      <div class=\"step\">\n        <div class=\"title\">Shipping</div>\n        <div class=\"description\">Choose your shipping options</div>\n      </div>\n    </div>\n  </div>\n  <div class=\"example\" data-use-content=\"true\">\n    <h4 class=\"ui header\">Icon</h4>\n    <p>A step can contain an icon</p>\n    <div class=\"ui steps\">\n      <div class=\"step\">\n        <i class=\"truck icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Shipping</div>\n          <div class=\"description\">Choose your shipping options</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"example\" data-use-content=\"true\" data-tag=\"a\">\n    <h4 class=\"ui header\">Link</h4>\n    <p>A step can link</p>\n    <div class=\"ui steps\">\n      <a class=\"active step\">\n        <i class=\"truck icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Shipping</div>\n          <div class=\"description\">Choose your shipping options</div>\n        </div>\n      </a>\n      <a class=\"step\">\n        <div class=\"content\">\n          <div class=\"title\">Billing</div>\n          <div class=\"description\">Enter billing information</div>\n        </div>\n      </a>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui steps\">\n      <div class=\"link step\">\n        <i class=\"truck icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Shipping</div>\n          <div class=\"description\">Choose your shipping options</div>\n        </div>\n      </div>\n      <div class=\"link step\">\n        <div class=\"content\">\n          <div class=\"title\">Billing</div>\n          <div class=\"description\">Enter billing information</div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n\n  <h2 class=\"ui dividing header\">States</h2>\n\n  <div class=\"example\" data-class=\"active\">\n    <h4 class=\"ui header\">Active</h4>\n    <p>A step can be highlighted as active</p>\n    <div class=\"ui steps\">\n      <div class=\"active step\">\n        <i class=\"payment icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Billing</div>\n          <div class=\"description\">Enter billing information</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"example\" data-class=\"completed\">\n    <h4 class=\"ui header\">Completed</h4>\n    <p>A step can show that a user has completed it</p>\n    <div class=\"ui steps\">\n      <div class=\"completed step\">\n        <i class=\"payment icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Billing</div>\n          <div class=\"description\">Enter billing information</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui ordered steps\">\n      <div class=\"completed step\">\n        <div class=\"content\">\n          <div class=\"title\">Billing</div>\n          <div class=\"description\">Enter billing information</div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\" data-class=\"disabled\">\n    <h4 class=\"ui header\">Disabled</h4>\n    <p>A step can show that it cannot be selected</p>\n    <div class=\"ui steps\">\n      <div class=\"disabled step\">\n        Billing\n      </div>\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Variations</h2>\n\n  <div class=\"example\" data-class=\"stackable\">\n    <h4 class=\"ui header\">Stackable</h4>\n    <p>A step can stack vertically only on smaller screens</p>\n    <div class=\"ui tablet stackable steps\">\n      <div class=\"step\">\n        <i class=\"plane icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Shipping</div>\n          <div class=\"description\">Choose your shipping options</div>\n        </div>\n      </div>\n      <div class=\"active step\">\n        <i class=\"dollar icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Billing</div>\n          <div class=\"description\">Enter billing information</div>\n        </div>\n      </div>\n      <div class=\"disabled step\">\n        <i class=\"info circle icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Confirm Order</div>\n          <div class=\"description\">Verify order details</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"example\" data-class=\"fluid\">\n    <h4 class=\"ui header\">Fluid</h4>\n    <p>A fluid step takes up the width of its container</p>\n    <div class=\"ui two column grid\">\n      <div class=\"column\">\n        <div class=\"ui fluid vertical steps\">\n          <div class=\"completed step\">\n            <i class=\"truck icon\"></i>\n            <div class=\"content\">\n              <div class=\"title\">Shipping</div>\n              <div class=\"description\">Choose your shipping options</div>\n            </div>\n          </div>\n          <div class=\"active step\">\n            <i class=\"dollar icon\"></i>\n            <div class=\"content\">\n              <div class=\"title\">Billing</div>\n              <div class=\"description\">Enter billing information</div>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"column\">\n        <p>The steps take up the entire column width</p>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\" data-class=\"stackable\">\n    <h4 class=\"ui header\">\n      Unstackable\n      <div class=\"ui teal label\">New in 2.2.11</div>\n    </h4>\n    <p>A step can prevent itself from stacking on mobile</p>\n    <div class=\"ui unstackable steps\">\n      <div class=\"step\">\n        <i class=\"plane icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Shipping</div>\n          <div class=\"description\">Choose your shipping options</div>\n        </div>\n      </div>\n      <div class=\"active step\">\n        <i class=\"dollar icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Billing</div>\n          <div class=\"description\">Enter billing information</div>\n        </div>\n      </div>\n      <div class=\"disabled step\">\n        <i class=\"info circle icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Confirm Order</div>\n          <div class=\"description\">Verify order details</div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\" data-class=\"attached\">\n    <h4 class=\"ui header\">\n      Attached\n    </h4>\n    <p>Steps can be attached to other elements</p>\n\n    <div class=\"ui three top attached steps\">\n      <div class=\"step\">\n        <i class=\"truck icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Shipping</div>\n          <div class=\"description\">Choose your shipping options</div>\n        </div>\n      </div>\n      <div class=\"active step\">\n        <i class=\"payment icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Billing</div>\n          <div class=\"description\">Enter billing information</div>\n        </div>\n      </div>\n      <div class=\"disabled step\">\n        <i class=\"info icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Confirm Order</div>\n          <div class=\"description\">Verify order details</div>\n        </div>\n      </div>\n    </div>\n    <div class=\"ui attached segment\">\n      <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n    </div>\n    <div class=\"ui three bottom attached steps\">\n      <div class=\"step\">\n        <i class=\"truck icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Shipping</div>\n          <div class=\"description\">Choose your shipping options</div>\n        </div>\n      </div>\n      <div class=\"active step\">\n        <i class=\"payment icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Billing</div>\n          <div class=\"description\">Enter billing information</div>\n        </div>\n      </div>\n      <div class=\"disabled step\">\n        <i class=\"info icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Confirm Order</div>\n          <div class=\"description\">Verify order details</div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n\n\n  <div class=\"example\" data-class=\"count\">\n    <h4 class=\"ui header\">Evenly Divided</h4>\n    <p>Steps can be divided evenly inside their parent</p>\n    <div class=\"ui three steps\">\n      <div class=\"step\">\n        <i class=\"truck icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Shipping</div>\n        </div>\n      </div>\n      <div class=\"active step\">\n        <i class=\"payment icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Billing</div>\n        </div>\n      </div>\n      <div class=\"disabled step\">\n        <i class=\"info icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Confirm Order</div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"another example\">\n    <div class=\"ui two steps\">\n      <div class=\"active step\">\n        <i class=\"payment icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Billing</div>\n        </div>\n      </div>\n      <div class=\"disabled step\">\n        <i class=\"info icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Confirm Order</div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\" data-class=\"size\">\n    <h4 class=\"ui header\">Size</h4>\n    <p>Steps can have different sizes</p>\n    <div class=\"ui mini steps\">\n      <div class=\"step\">\n        <i class=\"truck icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Shipping</div>\n          <div class=\"description\">Choose your shipping options</div>\n        </div>\n      </div>\n      <div class=\"active step\">\n        <i class=\"payment icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Billing</div>\n          <div class=\"description\">Enter billing information</div>\n        </div>\n      </div>\n      <div class=\"disabled step\">\n        <i class=\"info icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Confirm Order</div>\n          <div class=\"description\">Verify order details</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui tiny steps\">\n      <div class=\"step\">\n        <i class=\"truck icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Shipping</div>\n          <div class=\"description\">Choose your shipping options</div>\n        </div>\n      </div>\n      <div class=\"active step\">\n        <i class=\"payment icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Billing</div>\n          <div class=\"description\">Enter billing information</div>\n        </div>\n      </div>\n      <div class=\"disabled step\">\n        <i class=\"info icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Confirm Order</div>\n          <div class=\"description\">Verify order details</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui small steps\">\n      <div class=\"step\">\n        <i class=\"truck icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Shipping</div>\n          <div class=\"description\">Choose your shipping options</div>\n        </div>\n      </div>\n      <div class=\"active step\">\n        <i class=\"payment icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Billing</div>\n          <div class=\"description\">Enter billing information</div>\n        </div>\n      </div>\n      <div class=\"disabled step\">\n        <i class=\"info icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Confirm Order</div>\n          <div class=\"description\">Verify order details</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui large steps\">\n      <div class=\"step\">\n        <i class=\"truck icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Shipping</div>\n        </div>\n      </div>\n      <div class=\"active step\">\n        <i class=\"payment icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Billing</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui big steps\">\n      <div class=\"step\">\n        <i class=\"truck icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Shipping</div>\n        </div>\n      </div>\n      <div class=\"active step\">\n        <i class=\"payment icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Billing</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui huge steps\">\n      <div class=\"step\">\n        <i class=\"truck icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Shipping</div>\n        </div>\n      </div>\n      <div class=\"active step\">\n        <i class=\"payment icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Billing</div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"another example\">\n    <div class=\"ui massive steps\">\n      <div class=\"step\">\n        <i class=\"truck icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Shipping</div>\n        </div>\n      </div>\n      <div class=\"active step\">\n        <i class=\"payment icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Billing</div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n\n\n</div>\n"
  },
  {
    "path": "server/documents/globals/reset.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'reset-page'\nelement     : 'reset'\nelementType : 'global'\n\ntitle       : 'Reset'\ndescription : 'A reset is a set of normalized values for CSS properties that correct for abberations in browser defaults'\ntype        : 'UI Global'\n\nthemes      : ['Default', 'Basic', 'Resetcss']\n\n---\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/globals/reset.less\" />\n\n<%- @partial('header', { tabs: {  overview: 'Overview', test: 'Test' } }) %>\n\n<div class=\"main ui container\">\n  <div class=\"ui active tab\" data-tab=\"overview\">\n    <h2 class=\"ui dividing header\">What's In Our Reset</h2>\n    <p>Semantic's default theme includes the latest <a href=\"http://necolas.github.io/normalize.css/\">Normalize CSS</a> to provide a base line HTML reset. In addition, Semantic UI requires a <b>Box-sizing</b> reset, to make sure that elements handle width definitions in the same way.</p>\n    <div class=\"ui text message info ignore\">\n      The reset is required for Semantic UI components to function properly, and should also be included when using individual components.\n    </div>\n\n    <h2 class=\"ui dividing header\">Reset Options</h2>\n    <p>\n      The <b>basic</b> themes <b>only</b> includes the required <code>box-sizing</code> reset and nothing else. The <b>resetcss</b> theme provides a version of <a href=\"http://meyerweb.com/eric/tools/css/reset/\">Reset CSS</a>, a less opinionated CSS reset.\n    </p>\n  </div>\n  <div class=\"ui tab\" data-tab=\"test\">\n    <h2 class=\"ui dividing header\">Reset Test</h2>\n      <div class=\"Test\">\n        <h2 class=\"Test-describe\"><code>html</code></h2>\n        <h3 class=\"Test-it\">should have sans-serif font family (opinionated)</h3>\n        <div class=\"Test-run\">\n          abcdefghijklmnopqrstuvwxyz\n        </div>\n\n        <h2 class=\"Test-describe\"><code>body</code></h2>\n        <h3 class=\"Test-it\">should have no margin (opinionated)</h3>\n        <div class=\"Test-run\">\n          (there should be no red background visible on this page)\n        </div>\n\n        <h2 class=\"Test-describe\"><code>article</code>, <code>aside</code>, <code>details</code>, <code>figure</code>, <code>figcaption</code>, <code>footer</code>, <code>header</code>, <code>hgroup</code>, <code>main</code>, <code>nav</code>, <code>section</code>, <code>summary</code></h2>\n        <h3 class=\"Test-it\">should render as block</h3>\n        <div class=\"Test-run Test-run--highlightEl\">\n          <article>article</article>\n          <aside>aside</aside>\n          <details>\n            <summary>summary</summary>\n            details\n          </details>\n          <figure>\n            figure\n            <figcaption>figcaption</figcaption>\n          </figure>\n          <footer>footer</footer>\n          <header>header</header>\n          <hgroup>hgroup</hgroup>\n          <main>main</main>\n          <nav>nav</nav>\n          <section>section</section>\n        </div>\n\n        <h2 class=\"Test-describe\"><code>audio</code>, <code>canvas</code>, <code>progress</code>, <code>video</code></h2>\n        <h3 class=\"Test-it\">should render as inline-block and baseline-aligned</h3>\n        <div class=\"Test-run Test-run--highlightEl\">\n          <audio controls>audio</audio>\n          <canvas>canvas</canvas>\n          <progress>progress</progress>\n          <video controls>video</video>\n        </div>\n\n        <h2 class=\"Test-describe\"><code>audio:not([controls])</code>, <code>template</code>, <code>[hidden]</code></h2>\n        <h3 class=\"Test-it\">should not display</h3>\n        <div class=\"Test-run Test-run--highlightEl\">\n          <audio>audio</audio>\n          <template>\n            <h1>{{title}}</h1>\n            <content></content>\n          </template>\n          <p hidden>This should be hidden</p>\n        </div>\n\n        <h2 class=\"Test-describe\"><code>a</code></h2>\n        <h3 class=\"Test-it\">should have a transparent background when active</h3>\n        <div class=\"Test-run\">\n          <a href=\"#non\">dummy anchor</a>\n        </div>\n        <h3 class=\"Test-it\">should not have a focus outline when both focused and hovered (opinionated)</h3>\n        <div class=\"Test-run\">\n          <a href=\"#non\">dummy anchor</a>\n        </div>\n\n        <h2 class=\"Test-describe\"><code>abbr[title]</code></h2>\n        <h3 class=\"Test-it\">should have a dotted bottom border</h3>\n        <div class=\"Test-run\">\n          <abbr title=\"abbreviation\">abbr</abbr>\n        </div>\n\n        <h2 class=\"Test-describe\"><code>b</code>, <code>strong</code></h2>\n        <h3 class=\"Test-it\">should have bold font-weight</h3>\n        <div class=\"Test-run\">\n          <b>b</b>\n          <strong>strong</strong>\n        </div>\n\n        <h2 class=\"Test-describe\"><code>dfn</code></h2>\n        <h3 class=\"Test-it\">should have italic font-style</h3>\n        <div class=\"Test-run\">\n          <dfn>dfn</dfn>\n        </div>\n\n        <h2 class=\"Test-describe\"><code>h1</code></h2>\n        <h3 class=\"Test-it\">should not change size within an <code>article</code></h3>\n        <div class=\"Test-run\">\n          <h1>Heading (control)</h1>\n          <article>\n            <h1>Heading (in article)</h1>\n          </article>\n        </div>\n        <h3 class=\"Test-it\">should not change size within a <code>section</code></h3>\n        <div class=\"Test-run\">\n          <h1>Heading (control)</h1>\n          <section>\n            <h1>Heading (in section)</h1>\n          </section>\n        </div>\n\n        <h2 class=\"Test-describe\"><code>mark</code></h2>\n        <h3 class=\"Test-it\">should have a yellow background</h3>\n        <div class=\"Test-run\">\n          <mark>mark</mark>\n        </div>\n\n        <h2 class=\"Test-describe\"><code>small</code></h2>\n        <h3 class=\"Test-it\">should render equally small in all browsers</h3>\n        <div class=\"Test-run\">\n          control. <small>small.</small>\n        </div>\n\n        <h2 class=\"Test-describe\"><code>sub</code> and <code>sup</code></h2>\n        <h3 class=\"Test-it\">should not affect a line's visual line-height</h3>\n        <div class=\"Test-run Test-run--highlightEl\">\n          <p>control.</p>\n          <p>control. <sub>sub.</sub></p>\n          <p>control. <sup>sup.</sup></p>\n        </div>\n\n        <h2 class=\"Test-describe\"><code>img</code></h2>\n        <h3 class=\"Test-it\">should not have a border when wrapped in an anchor</h3>\n        <div class=\"Test-run\">\n          <a href=\"#non\">\n            <!-- scaled-up 1px image -->\n            <img style=\"background-color:#ADD8E6\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" width=\"100\" height=\"100\">\n          </a>\n        </div>\n\n        <h2 class=\"Test-describe\"><code>svg</code></h2>\n        <h3 class=\"Test-it\">should not overflow</h3>\n        <div class=\"Test-run Test-run--highlightEl\">\n          <svg width=\"100px\" height=\"100px\">\n            <circle cx=\"100\" cy=\"100\" r=\"100\" fill=\"#ADD8E6\" />\n          </svg>\n        </div>\n\n        <h2 class=\"Test-describe\"><code>figure</code></h2>\n        <h3 class=\"Test-it\">should have margins</h3>\n        <div class=\"Test-run\" style=\"outline:1px solid #ADD8E6; overflow:hidden;\">\n          <figure>\n            <img style=\"background-color:#ADD8E6\" src=\"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" width=\"400\" height=\"200\">\n          </figure>\n        </div>\n\n        <h2 class=\"Test-describe\"><code>hr</code></h2>\n        <h3 class=\"Test-it\">should have a <code>content-box</code> box model</h3>\n        <div class=\"Test-run\" style=\"\">\n          <hr style=\"height:2px; border:solid #ADD8E6; border-width:2px 0;\">\n        </div>\n\n        <h2 class=\"Test-describe\"><code>pre</code></h2>\n        <h3 class=\"Test-it\">should trigger a scrollbar when too wide for its container</h3>\n        <div class=\"Test-run\" style=\"max-width:300px; outline:1px solid #ADD8E6;\">\n          <pre>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et me.</pre>\n        </div>\n\n        <h2 class=\"Test-describe\"><code>code</code>, <code>kbd</code>, <code>pre</code>, <code>samp</code></h2>\n        <h3 class=\"Test-it\">should render <code>em</code>-unit preformatted text at the same absolute size as normal text</h3>\n        <div class=\"Test-run\">\n          <span>span: abcdefghijklmnopqrstuvwxyz.</span><br>\n          <code>code: abcdefghijklmnopqrstuvwxyz.</code><br>\n          <kbd>kbd: abcdefghijklmnopqrstuvwxyz.</kbd><br>\n          <samp>samp: abcdefghijklmnopqrstuvwxyz.</samp>\n          <pre>pre: abcdefghijklmnopqrstuvwxyz.</pre>\n        </div>\n\n        <h2 class=\"Test-describe\"><code>button</code>, <code>input</code>, <code>optgroup</code>, <code>select</code>, <code>textarea</code></h2>\n        <h3 class=\"Test-it\">should inherit <code>color</code> from ancestor</h3>\n        <div class=\"Test-run\" style=\"color:#ADD8E6;\">\n          <button>button</button><br>\n          <input value=\"input\"><br>\n          <select style=\"border:1px solid #999;\">\n            <optgroup label=\"optgroup\">\n              <option>option</option>\n            </optgroup>\n            <option>option</option>\n          </select><br>\n          <textarea>textarea</textarea>\n        </div>\n        <h3 class=\"Test-it\">should inherit <code>font</code> from ancestor</h3>\n        <div class=\"Test-run\" style=\"font:bold italic 20px/1 serif;\">\n          <button>button</button><br>\n          <input value=\"input\"><br>\n          <select style=\"border:1px solid #999;\">\n            <optgroup label=\"optgroup\">\n              <option>option</option>\n            </optgroup>\n            <option>option</option>\n          </select><br>\n          <textarea>textarea</textarea>\n        </div>\n        <h3 class=\"Test-it\">should not have margins</h3>\n        <div class=\"Test-run\" id=\"form-collection-margins\">\n          <style>\n            #form-collection-margins {\n              outline: 1px solid #ADD8E6;\n              overflow: hidden;\n            }\n\n            #form-collection-margins button,\n            #form-collection-margins input,\n            #form-collection-margins select,\n            #form-collection-margins textarea {\n              display: block;\n            }\n          </style>\n          <button>button</button>\n          <input value=\"input\">\n          <select style=\"border:1px solid #999;\">\n            <optgroup label=\"optgroup\">\n              <option>option</option>\n            </optgroup>\n            <option>option</option>\n          </select>\n          <textarea>textarea</textarea>\n        </div>\n\n        <h2 class=\"Test-describe\"><code>button</code></h2>\n        <h3 class=\"Test-it\">should have visible overflow</h3>\n        <div class=\"Test-run\" id=\"button-overflow\">\n          <style>\n            #button-overflow button:after {\n              content: \"\";\n              background: #ADD8E6;\n              display: inline-block;\n              height: 10px;\n              position:relative;\n              right: -20px;\n              width: 10px;\n            }\n          </style>\n          <button>abcdefghijklmnopqrstuvwxyz</button>\n        </div>\n\n        <h2 class=\"Test-describe\"><code>button</code>, <code>select</code></h2>\n        <h3 class=\"Test-it\">should not inherit <code>text-transform</code></h3>\n        <div class=\"Test-run\" style=\"text-transform:uppercase\">\n          <button>button</button>\n          <select><option>option</option></select>\n        </div>\n\n        <h2 class=\"Test-describe\"><code>button</code> and button-style <code>input</code></h2>\n        <h3 class=\"Test-it\">should have <code>pointer</code> cursor style</h3>\n        <div class=\"Test-run\">\n          <p><button>button</button></p>\n          <p><input type=\"image\" src=\"http://lorempixel.com/90/24\" alt=\"input (image)\"></p>\n          <p><input type=\"button\" value=\"input (button)\"></p>\n          <p><input type=\"reset\" value=\"input (reset)\"></p>\n          <p><input type=\"submit\" value=\"input (submit)\"></p>\n        </div>\n        <h3 class=\"Test-it\">should be styleable</h3>\n        <div class=\"Test-run\" id=\"button-like-style\">\n          <style>\n            #button-like-style button,\n            #button-like-style input {\n              background: #ADD8E6;\n              border: 2px solid black;\n              border-radius: 2px;\n              padding: 5px;\n            }\n          </style>\n          <p><button>button</button></p>\n          <p><input type=\"image\" src=\"http://lorempixel.com/90/24\" alt=\"input (image)\"></p>\n          <p><input type=\"button\" value=\"input (button)\"></p>\n          <p><input type=\"reset\" value=\"input (reset)\"></p>\n          <p><input type=\"submit\" value=\"input (submit)\"></p>\n        </div>\n\n        <h2 class=\"Test-describe\">disabled <code>button</code> and <code>input</code></h2>\n        <h3 class=\"Test-it\">should have <code>default</code> cursor style</h3>\n        <div class=\"Test-run\">\n          <p><button disabled>button</button></p>\n          <p><input disabled type=\"image\" src=\"http://lorempixel.com/90/24\" alt=\"input (image)\"></p>\n          <p><input disabled type=\"button\" value=\"input (button)\"></p>\n          <p><input disabled type=\"reset\" value=\"input (reset)\"></p>\n          <p><input disabled type=\"submit\" value=\"input (submit)\"></p>\n        </div>\n\n        <h2 class=\"Test-describe\"><code>button</code>, <code>input</code></h2>\n        <h3 class=\"Test-it\">should not have extra inner padding in Firefox</h3>\n        <div class=\"Test-run\" id=\"button-input-padding\">\n          <style>\n            #button-input-padding button,\n            #button-input-padding input {\n              border: 0;\n              padding: 0;\n              outline: 1px solid #ADD8E6;\n            }\n          </style>\n          <p><button>button</button></p>\n          <p><input value=\"input (text)\"></p>\n          <p><input type=\"button\" value=\"input (button)\"></p>\n          <p><input type=\"reset\" value=\"input (reset)\"></p>\n          <p><input type=\"submit\" value=\"input (submit)\"></p>\n        </div>\n\n        <h2 class=\"Test-describe\"><code>input</code></h2>\n        <h3 class=\"Test-it\">should not inherit <code>line-height</code></h3>\n        <div class=\"Test-run\" style=\"line-height:50px\">\n          <input value=\"input (text)\">\n        </div>\n\n        <h2 class=\"Test-describe\"><code>input[type=\"checkbox\"]</code>, <code>input[type=\"radio\"]</code></h2>\n        <h3 class=\"Test-it\">should have a <code>border-box</code> box model</h3>\n        <div class=\"Test-run Test-run--highlightEl\" id=\"radio-box-model\">\n          <style>\n            #radio-box-model {\n              width: 200px;\n              border: 1px solid red;\n            }\n\n            #radio-box-model input {\n              width: 100%;\n              border: 5px solid #ADD8E6;\n              display: block;\n              position: relative;\n            }\n          </style>\n          <input type=\"checkbox\">\n          <input type=\"radio\" name=\"rad\">\n        </div>\n        <h3 class=\"Test-it\">should not have padding</h3>\n        <div class=\"Test-run Test-run--highlightEl\">\n          <input type=\"checkbox\">\n          <input type=\"radio\" name=\"rad\">\n        </div>\n\n        <h2 class=\"Test-describe\"><code>input[type=\"number\"]</code></h2>\n        <h3 class=\"Test-it\">should display a default cursor for the decrement button's click target in Chrome</h3>\n        <div class=\"Test-run\">\n          <input style=\"height:50px; font-size:15px;\" type=\"number\" id=\"in\" min=\"0\" max=\"10\" value=\"5\">\n        </div>\n\n        <h2 class=\"Test-describe\"><code>input[type=\"search\"]</code></h2>\n        <h3 class=\"Test-it\">should be styleable</h3>\n        <div class=\"Test-run\">\n          <input type=\"search\" style=\"border:1px solid #ADD8E6; padding:10px; width:200px;\">\n        </div>\n        <h3 class=\"Test-it\">should have a <code>content-box</code> box model</h3>\n        <div class=\"Test-run\">\n          <div style=\"background:red; display:inline-block; height:62px; width:242px;\">\n            <input type=\"search\" style=\"border:1px solid #ADD8E6; height:20px; padding:20px; width:200px;\">\n          </div>\n        </div>\n        <h3 class=\"Test-it\">should not have a cancel button in Safari or Chrome</h3>\n        <div class=\"Test-run\">\n          <input type=\"search\" value=\"search\">\n        </div>\n\n        <h2 class=\"Test-describe\"><code>fieldset</code></h2>\n        <h3 class=\"Test-it\">should have consistent border, padding, and margin</h3>\n        <div class=\"Test-run\">\n          <fieldset>\n            <div style=\"width:100%; height:100px; background:#ADD8E6;\"></div>\n          </fieldset>\n        </div>\n\n        <h2 class=\"Test-describe\"><code>legend</code></h2>\n        <h3 class=\"Test-it\">should inherit color</h3>\n        <div class=\"Test-run\" style=\"color:#ADD8E6;\">\n          <fieldset>\n            <legend>legend</legend>\n          </fieldset>\n        </div>\n        <h3 class=\"Test-it\">should not have padding</h3>\n        <div class=\"Test-run\">\n          <fieldset>\n            <legend>legend</legend>\n          </fieldset>\n        </div>\n\n        <h2 class=\"Test-describe\"><code>textarea</code></h2>\n        <h3 class=\"Test-it\">should not have a scrollbar unless overflowing</h3>\n        <div class=\"Test-run\">\n          <textarea>textarea</textarea>\n        </div>\n\n        <h2 class=\"Test-describe\"><code>table</code></h2>\n        <h3 class=\"Test-it\">should not have spaces between cells</h3>\n        <div class=\"Test-run\">\n          <table>\n            <caption>Jimi Hendrix - albums</caption>\n            <thead>\n              <tr>\n                <th>Album</th>\n                <th>Year</th>\n                <th>Price</th>\n              </tr>\n            </thead>\n            <tfoot>\n              <tr>\n                <th>Album</th>\n                <th>Year</th>\n                <th>Price</th>\n              </tr>\n            </tfoot>\n            <tbody>\n              <tr>\n                <td>Are You Experienced</td>\n                <td>1967</td>\n                <td>$10.00</td>\n              </tr>\n              <tr>\n                <td>Axis: Bold as Love</td>\n                <td>1967</td>\n                <td>$12.00</td>\n              </tr>\n              <tr>\n                <td>Electric Ladyland</td>\n                <td>1968</td>\n                <td>$10.00</td>\n              </tr>\n              <tr>\n                <td>Band of Gypsies</td>\n                <td>1970</td>\n                <td>$12.00</td>\n              </tr>\n            </tbody>\n          </table>\n        </div>\n\n      </div>\n\n  </div>\n</div>\n\n<style>\n/*! suit-test v0.1.0 | MIT License | github.com/suitcss */\n.Test {\n  background: #fff;\n  counter-reset: test-describe;\n}\n.Test-describe:before {\n  content: counter(test-describe);\n  counter-increment: test-describe;\n}\n.Test-describe {\n  counter-reset: test-it;\n}\n.Test-it:before {\n  content: counter(test-describe) \".\" counter(test-it);\n  counter-increment: test-it;\n}\n.Test-title {\n  font-size: 2em;\n  font-family: sans-serif;\n  padding: 20px;\n  margin: 20px 0;\n  background: #eee;\n  color: #999;\n}\n.Test-describe,\n.Test-it {\n  background: #eee;\n  border-left: 5px solid #666;\n  color: #666;\n  font-family: sans-serif;\n  font-weight: bold;\n  margin: 20px 0;\n  padding: 0.75em 20px;\n}\n.Test-describe {\n  font-size: 1.5em;\n  margin: 60px 0 20px;\n}\n.Test-describe:before,\n.Test-it:before {\n  color: #999;\n  display: inline-block;\n  margin-right: 10px;\n  min-width: 30px;\n  text-transform: uppercase;\n}\n/* Custom helpers */\n\n/**\n * Test whether the body's margin has been removed\n */\n\nbody {\n  background: red;\n}\n/**\n * Highlight the bounds of direct children of a test block\n */\n\n.Test-run--highlightEl > * {\n  outline: 1px solid #ADD8E6;\n}\n</style>\n"
  },
  {
    "path": "server/documents/globals/site.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'site'\nelement     : 'site'\nelementType : 'global'\nstandalone  : true\n\ntitle       : 'Site'\ndescription : 'A site is a set of global constraints that define the basic parameters of all UI elements'\ntype        : 'UI Global'\nthemes      : ['Default', 'GitHub', 'Material']\n\n---\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/globals/site.less\" />\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/elements/button.less\" />\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/elements/header.less\" />\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/collections/grid.less\" />\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/elements/list.less\" />\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/modules/sidebar.less\" />\n\n<%- @partial('header') %>\n\n<div class=\"main ui container\">\n\n  <h2 class=\"ui dividing header\">Introduction</h2>\n\n  <p>Site is a special global definition which includes baseline parameters which all other elements inherit. In addition to providing global variables defaults, site also provides page styling for content that exists outside of interface elements.</p>\n\n  <h3 class=\"ui header\">Theming</h3>\n\n  <p>Customizing site variables is an important part of using Semantic UI, to learn more about global site variables visit our <a href=\"/usage/theming.html\">theming guide</a>.</p>\n\n  <h2 class=\"ui dividing header\">Content</h2>\n\n  <div class=\"example\">\n\n    <h4 class=\"ui header\">Headers</h4>\n    <p>A site can define styles for headers</p>\n\n    <h1>First Header</h1>\n    <h2>Second Header</h2>\n    <h3>Third Header</h3>\n    <h4>Fourth Header</h4>\n    <h5>Fifth Header</h5>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Page Font</h4>\n    <p>A site can specify styles for page content.</p>\n\n    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam vel tincidunt eros, nec venenatis ipsum. Nulla hendrerit urna ex, id sagittis mi scelerisque vitae. Vestibulum posuere rutrum interdum. Sed ut ullamcorper odio, non pharetra eros. Aenean sed lacus sed enim ornare vestibulum quis a felis. Sed cursus nunc sit amet mauris sodales tempus. Nullam mattis, dolor non posuere commodo, sapien ligula hendrerit orci, non placerat erat felis vel dui. Cras vulputate ligula ut ex tincidunt tincidunt. Maecenas eget gravida lorem. Nunc nec facilisis risus. Mauris congue elit sit amet elit varius mattis. Praesent convallis placerat magna, a bibendum nibh lacinia non.</p>\n\n    <p>Fusce mollis sagittis elit ut maximus. Nullam blandit lacus sit amet luctus euismod. Duis luctus leo vel consectetur consequat. Phasellus ex ligula, pellentesque et neque vitae, elementum placerat eros. Proin eleifend odio nec velit lacinia suscipit. Morbi mollis ante nec dapibus gravida. In tincidunt augue eu elit porta, vel condimentum purus posuere. Maecenas tincidunt, erat sed elementum sagittis, tortor erat faucibus tellus, nec molestie mi purus sit amet tellus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris a tincidunt metus. Fusce congue metus aliquam ex auctor eleifend.</p>\n    <p>Ut imperdiet dignissim feugiat. Phasellus tristique odio eu justo dapibus, nec rutrum ipsum luctus. Ut posuere nec tortor eu ullamcorper. Etiam pellentesque tincidunt tortor, non sagittis nibh pretium sit amet. Sed neque dolor, blandit eu ornare vel, lacinia porttitor nisi. Vestibulum sit amet diam rhoncus, consectetur enim sit amet, interdum mauris. Praesent feugiat finibus quam, porttitor varius est egestas id.</p>\n\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Text Selection</h4>\n    <p>A site can specify text selection styles.</p>\n    <div class=\"ui message ignored\">Highlight the text below with your cursor to see a demonstration</div>\n\n    <p>Fusce mollis sagittis elit ut maximus. Nullam blandit lacus sit amet luctus euismod. Duis luctus leo vel consectetur consequat. Phasellus ex ligula, pellentesque et neque vitae, elementum placerat eros. Proin eleifend odio nec velit lacinia suscipit. Morbi mollis ante nec dapibus gravida. In tincidunt augue eu elit porta, vel condimentum purus posuere. Maecenas tincidunt, erat sed elementum sagittis, tortor erat faucibus tellus, nec molestie mi purus sit amet tellus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris a tincidunt metus. Fusce congue metus aliquam ex auctor eleifend.</p>\n\n  </div>\n  <div class=\"example\">\n    <h4 class=\"ui header\">Spacing</h4>\n    <p>A site can define default spacing for headers and paragraphs</p>\n\n    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam vel tincidunt eros, nec venenatis ipsum. Nulla hendrerit urna ex, id sagittis mi scelerisque vitae. Vestibulum posuere rutrum interdum. Sed ut ullamcorper odio, non pharetra eros. Aenean sed lacus sed enim ornare vestibulum quis a felis. Sed cursus nunc sit amet mauris sodales tempus. Nullam mattis, dolor non posuere commodo, sapien ligula hendrerit orci, non placerat erat felis vel dui. Cras vulputate ligula ut ex tincidunt tincidunt. Maecenas eget gravida lorem. Nunc nec facilisis risus. Mauris congue elit sit amet elit varius mattis. Praesent convallis placerat magna, a bibendum nibh lacinia non.</p>\n\n    <p>Fusce mollis sagittis elit ut maximus. Nullam blandit lacus sit amet luctus euismod. Duis luctus leo vel consectetur consequat. Phasellus ex ligula, pellentesque et neque vitae, elementum placerat eros. Proin eleifend odio nec velit lacinia suscipit. Morbi mollis ante nec dapibus gravida. In tincidunt augue eu elit porta, vel condimentum purus posuere. Maecenas tincidunt, erat sed elementum sagittis, tortor erat faucibus tellus, nec molestie mi purus sit amet tellus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris a tincidunt metus. Fusce congue metus aliquam ex auctor eleifend.</p>\n\n    <p>Ut imperdiet dignissim feugiat. Phasellus tristique odio eu justo dapibus, nec rutrum ipsum luctus. Ut posuere nec tortor eu ullamcorper. Etiam pellentesque tincidunt tortor, non sagittis nibh pretium sit amet. Sed neque dolor, blandit eu ornare vel, lacinia porttitor nisi. Vestibulum sit amet diam rhoncus, consectetur enim sit amet, interdum mauris. Praesent feugiat finibus quam, porttitor varius est egestas id.</p>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Links</h4>\n    <p>A site can define link font formatting.</p>\n    <p>Ut imperdiet dignissim feugiat. Phasellus tristique odio eu justo dapibus, nec rutrum ipsum luctus. Ut posuere nec tortor eu ullamcorper. <a href=\"#link\">Etiam pellentesque</a> tincidunt tortor, non sagittis nibh pretium sit amet.</p>\n    <div class=\"ui bulleted list\">\n      <a class=\"item\" href=\"#link\">List Link</a>\n      <a class=\"item\" href=\"#link\">List Link</a>\n      <a class=\"item\" href=\"#link\">List Link</a>\n    </div>\n    <div class=\"ui card\">\n      <a class=\"image\" href=\"#link\">\n        <img src=\"/images/avatar/large/steve.jpg\">\n      </a>\n      <div class=\"content\">\n        <a class=\"header\" href=\"#link\">Steve Jobes</a>\n        <div class=\"meta\">\n          <a class=\"time\">Last Seen 2 days ago</a>\n        </div>\n      </div>\n    </div>\n    <div class=\"ui very relaxed items\">\n      <div class=\"item\">\n        <div class=\"image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"content\">\n          <a class=\"ui header\" href=\"#link\">Link Header</a>\n          <div class=\"description\">\n            <p>Ut imperdiet dignissim feugiat. Phasellus tristique odio eu justo dapibus, nec rutrum ipsum luctus. Ut posuere nec tortor eu ullamcorper. <a href=\"#link\">Etiam pellentesque</a> tincidunt tortor, non sagittis nibh pretium sit amet. Sed neque dolor, blandit eu ornare vel, lacinia porttitor nisi. Vestibulum sit amet diam rhoncus, consectetur enim sit amet, interdum mauris. Praesent feugiat finibus quam, porttitor varius est egestas id.</p>\n          </div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"content\">\n          <a class=\"ui header\" href=\"#link\">Link Header</a>\n          <div class=\"description\">\n            <p>Ut imperdiet dignissim feugiat. Phasellus tristique odio eu justo dapibus, nec rutrum ipsum luctus. Ut posuere nec tortor eu ullamcorper. <a href=\"#link\">Etiam pellentesque</a> tincidunt tortor, non sagittis nibh pretium sit amet. Sed neque dolor, blandit eu ornare vel, lacinia porttitor nisi. Vestibulum sit amet diam rhoncus, consectetur enim sit amet, interdum mauris. Praesent feugiat finibus quam, porttitor varius est egestas id.</p>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Variables</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Brand Colors</h4>\n    <p>A site can specify a primary and secondary brand color.</p>\n    <a class=\"ui primary button\">Primary Brand Color</a>\n    <a class=\"ui secondary button\">Secondary Brand Color</a>\n  </div>\n\n  <div class=\"colors example\">\n    <h4 class=\"ui header\">Colors</h4>\n    <p>A site can define a set of hex values for common named colors</p>\n    <div class=\"ui five column stackable padded grid\">\n      <div class=\"red column\">Red</div>\n      <div class=\"orange column\">Orange</div>\n      <div class=\"yellow column\">Yellow</div>\n      <div class=\"olive column\">Olive</div>\n      <div class=\"green column\">Green</div>\n      <div class=\"teal column\">Teal</div>\n      <div class=\"blue column\">Blue</div>\n      <div class=\"violet column\">Violet</div>\n      <div class=\"purple column\">Purple</div>\n      <div class=\"pink column\">Pink</div>\n      <div class=\"brown column\">Brown</div>\n      <div class=\"grey column\">Grey</div>\n      <div class=\"black column\">Black</div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Border Styles</h4>\n    <p>A site can specify default border styles and radius.</p>\n\n    <h3 class=\"ui header\">Examples of UI that inherit border styles</h3>\n    <div class=\"ui segment\">Segment</div>\n    <div class=\"ui button\">Button</div>\n    <div class=\"ui menu\">\n      <div class=\"item\">One</div>\n      <div class=\"item\">Two</div>\n    </div>\n    <table class=\"ui definition table\">\n      <thead>\n        <th></th>\n        <th>Header 1</th>\n        <th>Header 2</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>Definition</td>\n          <td>1A</td>\n          <td>1B</td>\n        </tr>\n        <tr>\n          <td>Definition</td>\n          <td>2A</td>\n          <td>2B</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Size</h4>\n    <p>A site can define a root em size, used for providing relative sizes for the rest of a site's content</p>\n    <div class=\"ui ignored info message\">\n      <code>em</code> and <code>rem</code> are special units used to provide relative measurements for elements. <code>1em</code> defines what baseline size, <code>medium</code>, is for UI elements. Most elements are sized in <code>rem</code> which are affected by this value, however some UI can also be defined using <code>em</code> which will be based on the surrounding font size of the parent element.</p>\n    </div>\n\n    <h3 class=\"ui header\">Examples of Absolutely Sized UI</h3>\n    <div class=\"ui button\">\n      Button\n    </div>\n    <div class=\"ui input\">\n      <input type=\"text\" placeholder=\"Input\">\n    </div>\n\n    <h3 class=\"ui header\">Examples of Relative Sized UI</h3>\n    <div style=\"font-size: 18px;\">\n      <p>Larger content container</p>\n      <div class=\"ui bulleted link list\">\n        <a class=\"item\">List Item</a>\n        <a class=\"item\">List Item</a>\n        <a class=\"item\">List Item</a>\n        <a class=\"item\">List Item</a>\n        <a class=\"item\">List Item</a>\n      </div>\n      <div class=\"ui message\">\n        <p>Message</p>\n      </div>\n    </div>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/hotfix.html",
    "content": "---\nlayout     : 'blank'\ncss        : 'hotfix'\nstandalone : true\n\ntitle      : 'Test Page'\ntype       : 'Library'\n---\n\n<div class=\"ui container\">\n  <div class=\"ui fluid selection dropdown\">\n  <input name=\"template\" type=\"hidden\">\n  <i class=\"dropdown icon\"></i>\n  <div class=\"default text\">Template</div>\n  <div class=\"menu\">\n    <div class=\"item\" >Item1</div>\n    <div class=\"item\" >Item2</div>\n</div>\n</div>\n<script>\n  $(document).ready(function() {\n$('.ui.dropdown').dropdown({transition: 'drop', on: 'hover', clearable: true,});\n  });\n</script>\n\n<!-- TEST CSS HERE !-->\n<style type=\"text/css\">\n\n.ui.container {\n  padding-top: 6em;\n}\n\n\n</style>\n\n"
  },
  {
    "path": "server/documents/iframe/fixed-menu.html",
    "content": "---\nlayout     : 'blank'\nstandalone : true\n---\n<div class=\"ui top fixed menu\">\n  <div class=\"item\">\n    <img src=\"/images/logo.png\">\n  </div>\n  <a class=\"item\">Features</a>\n  <a class=\"item\">Testimonials</a>\n  <a class=\"item\">Sign-in</a>\n</div>\n<div class=\"ui bottom fixed menu\">\n  <div class=\"item\">\n    <img src=\"/images/logo.png\">\n  </div>\n  <a class=\"item\">Features</a>\n  <a class=\"item\">Testimonials</a>\n  <a class=\"item\">Sign-in</a>\n</div>\n<img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\" style=\"margin: 1em 0em;\">\n<img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\" style=\"margin: 1em 0em;\">\n"
  },
  {
    "path": "server/documents/iframe/fixed-vertical-menu.html",
    "content": "---\nlayout     : 'blank'\nstandalone : true\n---\n<div class=\"ui left fixed vertical menu\">\n  <div class=\"item\">\n    <img class=\"ui mini image\" src=\"/images/logo.png\">\n  </div>\n  <a class=\"item\">Features</a>\n  <a class=\"item\">Testimonials</a>\n  <a class=\"item\">Sign-in</a>\n</div>\n<div class=\"ui right fixed vertical menu\">\n  <div class=\"item\">\n    <img class=\"ui mini image\" src=\"/images/logo.png\">\n  </div>\n  <a class=\"item\">Features</a>\n  <a class=\"item\">Testimonials</a>\n  <a class=\"item\">Sign-in</a>\n</div>\n<img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\" style=\"margin: 1em 0em;\">\n<img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\" style=\"margin: 1em 0em;\">\n"
  },
  {
    "path": "server/documents/index.html.eco",
    "content": "---\nlayout     : 'homepage'\ncss        : 'index'\nstandalone : false\n---\n<div class=\"following bar\">\n  <div class=\"ui container\">\n    <div class=\"ui large inverted secondary network menu\">\n      <div class=\"item\">\n        <div class=\"ui logo shape\">\n          <div class=\"sides\">\n            <div class=\"active ui side\">\n              <img class=\"ui image\" src=\"/images/logo.png\">\n            </div>\n          </div>\n        </div>\n      </div>\n      <a class=\"view-ui item\">\n        <i class=\"sidebar icon\"></i> Menu\n      </a>\n      <div class=\"right menu\">\n        <div class=\"item\">\n          <% if 'development' in @getEnvironments(): %>\n          <% else: %>\n          <a class=\"twitter-share-button twitter\"\n            href=\"http://twitter.com/share\"\n            data-text=\"Semantic UI 2.0 is out!\"\n            data-url=\"http://semantic-ui.com\"\n            data-via=\"semanticui\">\n          </a>\n          <script type=\"text/javascript\">\n          window.twttr=(function(d,s,id){var t,js,fjs=d.getElementsByTagName(s)[0];if(d.getElementById(id)){return}js=d.createElement(s);js.id=id;js.src=\"https://platform.twitter.com/widgets.js\";fjs.parentNode.insertBefore(js,fjs);return window.twttr||(t={_e:[],ready:function(f){t._e.push(f)}})}(document,\"script\",\"twitter-wjs\"));\n          </script>\n          <iframe class=\"github\" src=\"//ghbtns.com/github-btn.html?user=semantic-org&amp;repo=semantic-ui&amp;type=watch&amp;count=true\" allowtransparency=\"true\" frameborder=\"0\" scrolling=\"0\" width=\"100\" height=\"20\"></iframe>\n          <% end %>\n        </div>\n        <div class=\"ui language floating dropdown link item\" id=\"languages\">\n          <i class=\"world icon\"></i>\n          <div class=\"text\">English</div>\n          <div class=\"menu\">\n            <div class=\"header\">Search Languages</div>\n            <div class=\"ui icon search input\">\n              <i class=\"search icon\"></i>\n              <input type=\"text\" placeholder=\"Search languages...\">\n            </div>\n            <%- @partial('languages') %>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n<div class=\"zoomed masthead segment\">\n  <div class=\"ui container\">\n    <div class=\"introduction\">\n      <a class=\"ui black version label\" href=\"https://github.com/Semantic-Org/Semantic-UI/blob/<%= @getBranch() %>/RELEASE-NOTES.md\">\n        <%= @getVersion() %>\n      </a>\n      <h1 class=\"ui inverted header\">\n        <span class=\"library\">\n          Semantic UI\n        </span>\n        <span class=\"tagline\">\n          User Interface is the language of the web\n        </span>\n      </h1>\n      <div class=\"ui hidden divider\"></div>\n\n      <a href=\"/introduction/getting-started.html\" class=\"ui huge inverted download button\">\n        Get Started\n      </a>\n      <a href=\"/introduction/new.html\" class=\"ui huge inverted basic button\">New in 2.4</a>\n    </div>\n    <div class=\"inverted advertisement\">\n      <% unless 'development' in @getEnvironments(): %>\n      <div id=\"carbonads-container\">\n        <div class=\"carbonad\">\n          <div id=\"azcarbon\"></div>\n          <script type=\"text/javascript\">var z = document.createElement(\"script\"); z.type = \"text/javascript\"; z.async = true; z.src = \"//engine.carbonads.com/z/51619/azcarbon_2_1_0_VERTDARK\"; var s = document.getElementsByTagName(\"script\")[0]; s.parentNode.insertBefore(z, s);</script>\n        </div>\n      </div>\n      <% end %>\n    </div>\n  </div>\n</div>\n<div class=\"ui vertical stripe intro segment\">\n  <div class=\"ui stackable very relaxed center aligned grid container\">\n    <div class=\"row\">\n      <div class=\"twelve wide column\">\n        <img class=\"ui fluid image\" src=\"/images/devices.png\">\n        <h1 class=\"ui header\">Design Beautiful Websites Quickly</h1>\n        <p>Semantic is a development framework that helps create beautiful, responsive layouts using human-friendly HTML.</p>\n      </div>\n    </div>\n  </div>\n  <div class=\"stackable very relaxed ui grid container\">\n    <div class=\"row\">\n      <div class=\"seven wide column\">\n        <h2 class=\"ui header\">Concise HTML</h2>\n        <p>Semantic UI treats words and classes as exchangeable concepts.</p>\n        <p>Classes use syntax from natural languages like noun/modifier relationships, word order, and plurality to link concepts intuitively.</p>\n        <p>Get the same benefits as <a href=\"https://en.bem.info\" target=\"_blank\">BEM</a> or <a href=\"https://smacss.com\" target=\"_blank\">SMACSS</a>, but without the tedium.</p>\n        </p>\n      </div>\n      <div class=\"nine wide column\">\n        <div class=\"hidden code\" data-type=\"html\">\n          <div class=\"ui three buttons\">\n            <button class=\"ui active button\">One</button>\n            <button class=\"ui button\">Two</button>\n            <button class=\"ui button\">Three</button>\n          </div>\n        </div>\n        <div class=\"ui three demo buttons\">\n          <div class=\"ui active button\">One</div>\n          <div class=\"ui button\">Two</div>\n          <div class=\"ui button\">Three</div>\n        </div>\n      </div>\n    </div>\n    <div class=\"ui divider\"></div>\n    <div class=\"row\">\n      <div class=\"seven wide column\">\n        <h2 class=\"ui header\">Intuitive Javascript</h2>\n        <p>Semantic uses simple phrases called behaviors that trigger functionality.</p>\n        <p>Any arbitrary decision in a component is included as a setting that developers can modify.</p>\n      </div>\n      <div class=\"nine wide column\">\n        <div class=\"hidden code\" data-demo=\"true\" data-type=\"javascript\">\n          $('select.dropdown')\n            .dropdown('set selected', ['meteor', 'ember'])\n          ;\n        </div>\n        <div class=\"hidden code\" data-type=\"html\">\n          <select name=\"skills\" multiple class=\"ui fluid dropdown\">\n            <option value=\"\">Skills</option>\n            <option value=\"angular\">Angular</option>\n            <option value=\"css\">CSS</option>\n            <option value=\"ember\">Ember</option>\n            <option value=\"html\">HTML</option>\n            <option value=\"javascript\">Javascript</option>\n            <option value=\"meteor\">Meteor</option>\n            <option value=\"node\">NodeJS</option>\n          </select>\n        </div>\n        <select multiple class=\"ui fluid dropdown\">\n          <option value=\"\">Skills</option>\n          <option value=\"angular\">Angular</option>\n          <option value=\"css\">CSS</option>\n          <option value=\"ember\">Ember</option>\n          <option value=\"html\">HTML</option>\n          <option value=\"javascript\">Javascript</option>\n          <option value=\"meteor\">Meteor</option>\n          <option value=\"node\">NodeJS</option>\n        </select>\n      </div>\n    </div>\n    <div class=\"ui divider\"></div>\n    <div class=\"row\">\n      <div class=\"seven wide column\">\n        <h2 class=\"ui header\">Simplified Debugging</h2>\n        <p>Performance logging lets you track down bottlenecks without digging through stack traces.</p>\n        <div class=\"ui info message\">Don't have access to development tools right now? Check out <a href=\"http://t.co/GOUQx8iCyG\">this short clip</a>.</a>\n        </div>\n      </div>\n      <div class=\"nine wide column\">\n        <div class=\"hidden code\" data-demo=\"true\" data-type=\"javascript\">\n        $('.sequenced.images .image')\n          .transition({\n            debug     : true,\n            animation : 'jiggle',\n            duration  : 500,\n            interval  : 200\n          })\n        ;\n        </div>\n        <div class=\"ui small sequenced images\">\n          <img src=\"/images/avatar2/large/elyse.png\" class=\"ui circular image\">\n          <img src=\"/images/avatar2/large/matthew.png\" class=\"ui circular image\">\n          <img src=\"/images/avatar2/large/kristy.png\" class=\"ui circular image\">\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n<div class=\"ui email alternate stripe vertical segment\">\n  <div class=\"ui center aligned grid container\">\n    <div class=\"column\">\n      <h3 class=\"ui header\">\n        Semantic is growing fast. Want to see just how much? Sign up and we'll let you know\n      </h3>\n      <form class=\"ui form\" method=\"post\" action=\"https://semantic-ui.clients.ubivox.com/handlers/post/\">\n        <input type=\"hidden\" name=\"action\" value=\"subscribe\" />\n        <input type=\"hidden\" name=\"lists\" value=\"29450\" />\n        <div class=\"field\">\n          <div class=\"ui huge input\">\n            <input type=\"text\" name=\"email_address\" data-validate=\"email\" placeholder=\"E-mail\">\n          </div>\n          <button type=\"submit\" value=\"Subscribe\" class=\"ui huge secondary submit button\">\n            Sign-up\n          </button>\n        </div>\n      </form>\n    </div>\n  </div>\n</div>\n<div class=\"ui stripe theming vertical segment\">\n  <div class=\"ui stackable very relaxed two column grid container\">\n    <div class=\"center aligned column\">\n      <h1 class=\"ui icon header\">\n        <img src=\"/images/icons/theming.png\" class=\"ui icon image\">\n        Unbelievable Theming\n      </h1>\n      <p>Semantic comes equipped with an intuitive inheritance system and high level theming variables that let you have complete design freedom.</p>\n      <p>Develop your UI once, then deploy with the same code everywhere.</p>\n      <div class=\"ui large source button\" style=\"display:none;\">\n        <i class=\"docs code icon\"></i> View Source\n      </div>\n    </div>\n    <div class=\"left aligned column\">\n      <div data-type=\"element\" data-element=\"button\" class=\"ui large floating dropdown theme button\">\n        <span class=\"text\">Select Theme</span>\n        <i class=\"dropdown icon\"></i>\n        <div class=\"menu ui transition hidden\" tabindex=\"-1\">\n          <div data-value=\"Default\" class=\"item\">Semantic UI</div>\n          <div data-value=\"Amazon\" class=\"item\">Amazon</div>\n          <div data-value=\"Material\" class=\"item\">Google Material</div>\n          <div data-value=\"GitHub\" class=\"item\">GitHub</div>\n          <div data-value=\"Bootstrap3\" class=\"item\">Bootstrap</div>\n          <div data-value=\"Twitter\" class=\"item\">Twitter</div>\n          <div class=\"divider\"></div>\n          <div data-value=\"Raised\" class=\"item\">Raised</div>\n          <div data-value=\"Chubby\" class=\"item\">Chubby</div>\n          <div data-value=\"Classic\" class=\"item\">Classic</div>\n        </div>\n      </div>\n      <div class=\"ui divider\"></div>\n      <div class=\"ui button\">\n        View\n      </div>\n      <div class=\"ui primary button\">\n        <i class=\"shop icon\"></i> Add to Cart\n      </div>\n      <div class=\"ui secondary button\">\n        <i class=\"save icon\"></i> Save for Later\n      </div>\n      <div class=\"ui labeled icon button\">\n        <i class=\"star icon\"></i>\n        Rate\n      </div>\n      <div class=\"ui demo buttons\">\n        <div class=\"ui active button\">1</div>\n        <div class=\"ui button\">2</div>\n        <div class=\"ui button\">3</div>\n      </div>\n    </div>\n  </div>\n  <div class=\"ui two column center aligned relaxed stackable source grid\">\n    <div class=\"column\">\n      <h3 class=\"ui header\">Variable File</h3>\n      <div class=\"variable code\" data-type=\"less\" data-preserve=\"true\">\n      </div>\n    </div>\n    <div class=\"column\">\n      <h3 class=\"ui header\">Override File</h3>\n      <div class=\"override code\" data-type=\"less\" data-preserve=\"true\">\n      </div>\n    </div>\n  </div>\n</div>\n<div class=\"feature alternate ui stripe vertical segment\">\n  <div class=\"ui three column center aligned divided relaxed stackable grid container\">\n    <div class=\"row\">\n      <div class=\"column\">\n        <h2 class=\"ui icon header\">\n          <img class=\"ui icon image\" src=\"/images/icons/paint.png\">\n          3000+ Theming Variables\n        </h2>\n        <p>The only dogma from this framework: <em>everything arbitrary is mutable</em>.</p>\n        <a class=\"ui large button\" href=\"/usage/theming.html\">Theming Guide</a>\n      </div>\n      <div class=\"column\">\n        <h2 class=\"ui icon header\">\n          <img class=\"ui icon image\" src=\"/images/icons/book.png\">\n          50+ UI Components\n        </h2>\n        <p>Build your entire site with one UI stack. Share your UI between multiple projects.</p>\n        <div class=\"ui primary view-ui large button\">Browse UI</div>\n      </div>\n      <div class=\"column\">\n        <h2 class=\"ui icon header\">\n          <img class=\"ui icon image\" src=\"/images/icons/lab.png\">\n          5000+ Commits\n        </h2>\n        <p>\n          Semantic UI is a <b>free open source</b> project already used in multiple <a href=\"http://www.quirky.com\" target=\"_blank\">large</a> scale <a href=\"http://www.newrepublic.com\" target=\"_blank\">production</a> environments.\n        </p>\n        <a href=\"https://github.com/Semantic-Org/Semantic-UI/issues\" class=\"ui large button\">Visit GitHub</a>\n      </div>\n    </div>\n  </div>\n</div>\n<div class=\"ui stripe vertical segment\">\n  <div class=\"ui stackable very relaxed grid container\">\n    <div class=\"fourteen wide center aligned centered column\">\n      <h1 class=\"ui icon header\">\n        <img src=\"/images/icons/toolbox.png\" class=\"ui icon image\">\n        Unbelievable Breadth\n      </h1>\n      <p>Definitions aren't limited to just buttons on a page. Semantic's components allow several distinct types of definitions: elements, collections, views, modules and behaviors which cover the gamut of interface design.</p>\n      <a class=\"ui large primary button\" href=\"/usage/layout.html\">\n        See Layout Examples\n        <i class=\"right chevron icon\"></i>\n      </a>\n    </div>\n    <div class=\"three column computer one column mobile demo row\">\n      <div class=\"column\">\n        <div class=\"no example\">\n          <h4 class=\"ui header\">\n            <a href=\"/collections/menu.html\">Menu</a>\n          </h4>\n          <div class=\"ui vertical demo menu\">\n            <a class=\"active teal item\">\n              Inbox\n              <div class=\"ui teal label\">1</div>\n            </a>\n            <a class=\"item\">\n              Trash\n              <div class=\"ui label\">1</div>\n            </a>\n            <div class=\"item\">\n              <div class=\"ui transparent icon input\">\n                <input type=\"text\" placeholder=\"Search mail...\">\n                <i class=\"search icon\"></i>\n              </div>\n            </div>\n          </div>\n          <div class=\"ui fluid demo tabular menu\">\n            <a class=\"active item\">\n              Tab\n            </a>\n            <a class=\"item\">\n              Tab\n            </a>\n          </div>\n          <div class=\"ui secondary vertical demo menu\">\n            <a class=\"active item\">\n              Inbox\n            </a>\n            <a class=\"item\">\n              Starred\n            </a>\n            <a class=\"item\">\n              Trash\n            </a>\n          </div>\n          <div class=\"ui secondary pointing vertical demo menu\">\n            <a class=\"active item\">\n              Inbox\n            </a>\n            <a class=\"item\">\n              Starred\n            </a>\n            <a class=\"item\">\n              Trash\n            </a>\n          </div>\n        </div>\n        <div class=\"no example\">\n          <h4 class=\"ui header\">\n            <a href=\"/elements/divider.html\">Divider</a>\n          </h4>\n          <div class=\"ui two column stackable center aligned grid segment\">\n            <div class=\"column\">\n              <div class=\"ui button\">A</div>\n            </div>\n            <div class=\"ui vertical divider\">or</div>\n            <div class=\"column\">\n              <div class=\"teal ui button\">B</div>\n            </div>\n          </div>\n        </div>\n        <div class=\"no example\">\n          <h4 class=\"ui header\">\n            <a href=\"/modules/accordion.html\">Accordion</a>\n          </h4>\n          <div class=\"ui vertical fluid accordion menu\">\n            <div class=\"item\">\n              <a class=\"active title\">\n                <i class=\"dropdown icon\"></i>\n                Size\n              </a>\n              <div class=\"active content\">\n                <div class=\"ui form\">\n                  <div class=\"grouped fields\">\n                    <div class=\"field\">\n                      <div class=\"ui radio checkbox\">\n                        <input type=\"radio\" name=\"size\" value=\"small\">\n                        <label>Small</label>\n                      </div>\n                    </div>\n                    <div class=\"field\">\n                      <div class=\"ui radio checkbox\">\n                        <input type=\"radio\" name=\"size\" value=\"medium\">\n                        <label>Medium</label>\n                      </div>\n                    </div>\n                    <div class=\"field\">\n                      <div class=\"ui radio checkbox\">\n                        <input type=\"radio\" name=\"size\" value=\"large\">\n                        <label>Large</label>\n                      </div>\n                    </div>\n                    <div class=\"field\">\n                      <div class=\"ui radio checkbox\">\n                        <input type=\"radio\" name=\"size\" value=\"x-large\">\n                        <label>X-Large</label>\n                      </div>\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </div>\n            <div class=\"item\">\n              <a class=\"title\">\n                <i class=\"dropdown icon\"></i>\n                Colors\n              </a>\n              <div class=\"content\">\n                <div class=\"ui form\">\n                  <div class=\"grouped fields\">\n                    <div class=\"field\">\n                      <div class=\"ui radio checkbox\">\n                        <input type=\"radio\" name=\"color\">\n                        <label>Red</label>\n                      </div>\n                    </div>\n                    <div class=\"field\">\n                      <div class=\"ui radio checkbox\">\n                        <input type=\"radio\" name=\"color\">\n                        <label>Orange</label>\n                      </div>\n                    </div>\n                    <div class=\"field\">\n                      <div class=\"ui radio checkbox\">\n                        <input type=\"radio\" name=\"color\">\n                        <label>Green</label>\n                      </div>\n                    </div>\n                    <div class=\"field\">\n                      <div class=\"ui radio checkbox\">\n                        <input type=\"radio\" name=\"color\">\n                        <label>Blue</label>\n                      </div>\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"no example\">\n          <h4 class=\"ui header\">\n            <a href=\"/collections/message.html\">Message</a>\n          </h4>\n          <div class=\"ui message\">\n            <i class=\"close icon\"></i>\n            This site uses cookies\n          </div>\n          <div class=\"ui warning icon message\">\n            <div class=\"content\">\n              <div class=\"header\">Looking for help? </div>\n              <ul class=\"list\">\n                <li>Use our <a href=\"#\">help center</a></li>\n                <li>Check our <a href\"#\"=\"\">FAQ</a></li>\n              </ul>\n            </div>\n          </div>\n          <div class=\"ui info message\">\n            <div class=\"header\">We're creating your profile page</div>\n            <p>It will be ready in just a second.</p>\n          </div>\n        </div>\n      </div>\n      <div class=\"tablet only computer only column\">\n        <div class=\"no example\">\n          <h4 class=\"ui header\">\n            <a href=\"/views/card.html\">Card</a>\n          </h4>\n          <div class=\"ui card\">\n            <div class=\"blurring dimmable image\">\n              <div class=\"ui dimmer\">\n                <div class=\"content\">\n                  <div class=\"center\">\n                    <div class=\"ui inverted button\">Add Friend</div>\n                  </div>\n                </div>\n              </div>\n              <img src=\"/images/avatar2/large/rachel.png\">\n            </div>\n            <div class=\"content\">\n              <div class=\"header\">Rachel Maddaw</div>\n              <div class=\"meta\">\n                <a class=\"group\">Pundit</a>\n              </div>\n            </div>\n            <div class=\"extra content\">\n              <a class=\"right floated created\">\n                Joined in 1998\n              </a>\n              <a class=\"friends\">\n                <i class=\"user icon\"></i>\n                22 Friends\n              </a>\n            </div>\n          </div>\n        </div>\n        <div class=\"no example\">\n          <h4 class=\"ui header\">\n            <a href=\"/views/feed.html\">Feed</a>\n          </h4>\n          <div class=\"ui feed\">\n            <div class=\"event\">\n              <div class=\"label\">\n                <img src=\"/images/avatar2/small/mark.png\">\n              </div>\n              <div class=\"content\">\n                <div class=\"summary\">\n                  <a class=\"user\">\n                    Mark\n                  </a> added you as a friend\n                </div>\n              </div>\n            </div>\n            <div class=\"event\">\n              <div class=\"label\">\n                <img src=\"/images/avatar2/small/lena.png\">\n              </div>\n              <div class=\"content\">\n                You added Lena to the group <a>Close Friends</a>\n              </div>\n            </div>\n            <div class=\"event\">\n              <div class=\"label\">\n                <img src=\"/images/avatar2/small/eve.png\">\n              </div>\n              <div class=\"content\">\n                Eve just <a>posted on your page</a>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"no example\">\n          <h4 class=\"ui header\">\n            <a href=\"/elements/label.html\">Label</a>\n          </h4>\n          <div class=\"ui image label\">\n            <img src=\"/images/avatar2/small/molly.png\">\n            molly@thebears.com\n            <i class=\"delete icon\"></i>\n          </div>\n          <a class=\"ui teal label\">\n            <i class=\"mail icon\"></i> 23 New\n          </a>\n          <a class=\"ui tag label\">Dresses</a>\n        </div>\n        <div class=\"no example\">\n          <h4 class=\"ui header\">\n            <a href=\"/elements/step.html\">Step</a>\n          </h4>\n          <div class=\"ui fluid vertical steps\">\n            <a class=\"step\">\n              <i class=\"truck icon\"></i>\n              <div class=\"content\">\n                <div class=\"title\">Shipping</div>\n                <div class=\"description\">Choose your shipping options</div>\n              </div>\n            </a>\n            <a class=\"active step\">\n              <i class=\"payment icon\"></i>\n              <div class=\"content\">\n                <div class=\"title\">Billing</div>\n                <div class=\"description\">Enter billing information</div>\n              </div>\n            </a>\n            <a class=\"disabled step\">\n              <i class=\"info icon\"></i>\n              <div class=\"content\">\n                <div class=\"title\">Confirm Order</div>\n                <div class=\"description\">Verify order details</div>\n              </div>\n            </a>\n          </div>\n        </div>\n      </div>\n      <div class=\"tablet only computer only column\">\n        <div class=\"no example\">\n          <h4 class=\"ui header\">\n            <a href=\"/modules/dropdown.html\">Dropdown</a>\n          </h4>\n          <div class=\"ui fluid search selection dropdown\">\n            <input type=\"hidden\" name=\"country\">\n            <i class=\"dropdown icon\"></i>\n            <input class=\"search\" tabindex=\"0\"><div class=\"default text\">Select Country</div>\n            <div class=\"menu\" tabindex=\"-1\">\n              <div class=\"item\" data-value=\"ad\"><i class=\"ad flag\"></i>Andorra</div>\n              <div class=\"item\" data-value=\"ae\"><i class=\"ae flag\"></i>United Arab Emirates</div>\n              <div class=\"item\" data-value=\"af\"><i class=\"af flag\"></i>Afghanistan</div>\n              <div class=\"item\" data-value=\"ag\"><i class=\"ag flag\"></i>Antigua</div>\n              <div class=\"item\" data-value=\"ai\"><i class=\"ai flag\"></i>Anguilla</div>\n              <div class=\"item\" data-value=\"al\"><i class=\"al flag\"></i>Albania</div>\n              <div class=\"item\" data-value=\"am\"><i class=\"am flag\"></i>Armenia</div>\n              <div class=\"item\" data-value=\"an\"><i class=\"an flag\"></i>Netherlands Antilles</div>\n              <div class=\"item\" data-value=\"ao\"><i class=\"ao flag\"></i>Angola</div>\n              <div class=\"item\" data-value=\"ar\"><i class=\"ar flag\"></i>Argentina</div>\n              <div class=\"item\" data-value=\"as\"><i class=\"as flag\"></i>American Samoa</div>\n              <div class=\"item\" data-value=\"at\"><i class=\"at flag\"></i>Austria</div>\n              <div class=\"item\" data-value=\"au\"><i class=\"au flag\"></i>Australia</div>\n              <div class=\"item\" data-value=\"aw\"><i class=\"aw flag\"></i>Aruba</div>\n              <div class=\"item\" data-value=\"ax\"><i class=\"ax flag\"></i>Aland Islands</div>\n              <div class=\"item\" data-value=\"az\"><i class=\"az flag\"></i>Azerbaijan</div>\n              <div class=\"item\" data-value=\"ba\"><i class=\"ba flag\"></i>Bosnia</div>\n              <div class=\"item\" data-value=\"bb\"><i class=\"bb flag\"></i>Barbados</div>\n              <div class=\"item\" data-value=\"bd\"><i class=\"bd flag\"></i>Bangladesh</div>\n              <div class=\"item\" data-value=\"be\"><i class=\"be flag\"></i>Belgium</div>\n              <div class=\"item\" data-value=\"bf\"><i class=\"bf flag\"></i>Burkina Faso</div>\n              <div class=\"item\" data-value=\"bg\"><i class=\"bg flag\"></i>Bulgaria</div>\n              <div class=\"item\" data-value=\"bh\"><i class=\"bh flag\"></i>Bahrain</div>\n              <div class=\"item\" data-value=\"bi\"><i class=\"bi flag\"></i>Burundi</div>\n              <div class=\"item\" data-value=\"bj\"><i class=\"bj flag\"></i>Benin</div>\n              <div class=\"item\" data-value=\"bm\"><i class=\"bm flag\"></i>Bermuda</div>\n              <div class=\"item\" data-value=\"bn\"><i class=\"bn flag\"></i>Brunei</div>\n              <div class=\"item\" data-value=\"bo\"><i class=\"bo flag\"></i>Bolivia</div>\n              <div class=\"item\" data-value=\"br\"><i class=\"br flag\"></i>Brazil</div>\n              <div class=\"item\" data-value=\"bs\"><i class=\"bs flag\"></i>Bahamas</div>\n              <div class=\"item\" data-value=\"bt\"><i class=\"bt flag\"></i>Bhutan</div>\n              <div class=\"item\" data-value=\"bv\"><i class=\"bv flag\"></i>Bouvet Island</div>\n              <div class=\"item\" data-value=\"bw\"><i class=\"bw flag\"></i>Botswana</div>\n              <div class=\"item\" data-value=\"by\"><i class=\"by flag\"></i>Belarus</div>\n              <div class=\"item\" data-value=\"bz\"><i class=\"bz flag\"></i>Belize</div>\n              <div class=\"item\" data-value=\"ca\"><i class=\"ca flag\"></i>Canada</div>\n              <div class=\"item\" data-value=\"cc\"><i class=\"cc flag\"></i>Cocos Islands</div>\n              <div class=\"item\" data-value=\"cd\"><i class=\"cd flag\"></i>Congo</div>\n              <div class=\"item\" data-value=\"cf\"><i class=\"cf flag\"></i>Central African Republic</div>\n              <div class=\"item\" data-value=\"cg\"><i class=\"cg flag\"></i>Congo Brazzaville</div>\n              <div class=\"item\" data-value=\"ch\"><i class=\"ch flag\"></i>Switzerland</div>\n              <div class=\"item\" data-value=\"ci\"><i class=\"ci flag\"></i>Cote Divoire</div>\n              <div class=\"item\" data-value=\"ck\"><i class=\"ck flag\"></i>Cook Islands</div>\n              <div class=\"item\" data-value=\"cl\"><i class=\"cl flag\"></i>Chile</div>\n              <div class=\"item\" data-value=\"cm\"><i class=\"cm flag\"></i>Cameroon</div>\n              <div class=\"item\" data-value=\"cn\"><i class=\"cn flag\"></i>China</div>\n              <div class=\"item\" data-value=\"co\"><i class=\"co flag\"></i>Colombia</div>\n              <div class=\"item\" data-value=\"cr\"><i class=\"cr flag\"></i>Costa Rica</div>\n              <div class=\"item\" data-value=\"cs\"><i class=\"cs flag\"></i>Serbia</div>\n              <div class=\"item\" data-value=\"cu\"><i class=\"cu flag\"></i>Cuba</div>\n              <div class=\"item\" data-value=\"cv\"><i class=\"cv flag\"></i>Cape Verde</div>\n              <div class=\"item\" data-value=\"cx\"><i class=\"cx flag\"></i>Christmas Island</div>\n              <div class=\"item\" data-value=\"cy\"><i class=\"cy flag\"></i>Cyprus</div>\n              <div class=\"item\" data-value=\"cz\"><i class=\"cz flag\"></i>Czech Republic</div>\n              <div class=\"item\" data-value=\"de\"><i class=\"de flag\"></i>Germany</div>\n              <div class=\"item\" data-value=\"dj\"><i class=\"dj flag\"></i>Djibouti</div>\n              <div class=\"item\" data-value=\"dk\"><i class=\"dk flag\"></i>Denmark</div>\n              <div class=\"item\" data-value=\"dm\"><i class=\"dm flag\"></i>Dominica</div>\n              <div class=\"item\" data-value=\"do\"><i class=\"do flag\"></i>Dominican Republic</div>\n              <div class=\"item\" data-value=\"dz\"><i class=\"dz flag\"></i>Algeria</div>\n              <div class=\"item\" data-value=\"ec\"><i class=\"ec flag\"></i>Ecuador</div>\n              <div class=\"item\" data-value=\"ee\"><i class=\"ee flag\"></i>Estonia</div>\n              <div class=\"item\" data-value=\"eg\"><i class=\"eg flag\"></i>Egypt</div>\n              <div class=\"item\" data-value=\"eh\"><i class=\"eh flag\"></i>Western Sahara</div>\n              <div class=\"item\" data-value=\"er\"><i class=\"er flag\"></i>Eritrea</div>\n              <div class=\"item\" data-value=\"es\"><i class=\"es flag\"></i>Spain</div>\n              <div class=\"item\" data-value=\"et\"><i class=\"et flag\"></i>Ethiopia</div>\n              <div class=\"item\" data-value=\"eu\"><i class=\"eu flag\"></i>European Union</div>\n              <div class=\"item\" data-value=\"fi\"><i class=\"fi flag\"></i>Finland</div>\n              <div class=\"item\" data-value=\"fj\"><i class=\"fj flag\"></i>Fiji</div>\n              <div class=\"item\" data-value=\"fk\"><i class=\"fk flag\"></i>Falkland Islands</div>\n              <div class=\"item\" data-value=\"fm\"><i class=\"fm flag\"></i>Micronesia</div>\n              <div class=\"item\" data-value=\"fo\"><i class=\"fo flag\"></i>Faroe Islands</div>\n              <div class=\"item\" data-value=\"fr\"><i class=\"fr flag\"></i>France</div>\n              <div class=\"item\" data-value=\"ga\"><i class=\"ga flag\"></i>Gabon</div>\n              <div class=\"item\" data-value=\"gb\"><i class=\"gb flag\"></i>England</div>\n              <div class=\"item\" data-value=\"gd\"><i class=\"gd flag\"></i>Grenada</div>\n              <div class=\"item\" data-value=\"ge\"><i class=\"ge flag\"></i>Georgia</div>\n              <div class=\"item\" data-value=\"gf\"><i class=\"gf flag\"></i>French Guiana</div>\n              <div class=\"item\" data-value=\"gh\"><i class=\"gh flag\"></i>Ghana</div>\n              <div class=\"item\" data-value=\"gi\"><i class=\"gi flag\"></i>Gibraltar</div>\n              <div class=\"item\" data-value=\"gl\"><i class=\"gl flag\"></i>Greenland</div>\n              <div class=\"item\" data-value=\"gm\"><i class=\"gm flag\"></i>Gambia</div>\n              <div class=\"item\" data-value=\"gn\"><i class=\"gn flag\"></i>Guinea</div>\n              <div class=\"item\" data-value=\"gp\"><i class=\"gp flag\"></i>Guadeloupe</div>\n              <div class=\"item\" data-value=\"gq\"><i class=\"gq flag\"></i>Equatorial Guinea</div>\n              <div class=\"item\" data-value=\"gr\"><i class=\"gr flag\"></i>Greece</div>\n              <div class=\"item\" data-value=\"gs\"><i class=\"gs flag\"></i>Sandwich Islands</div>\n              <div class=\"item\" data-value=\"gt\"><i class=\"gt flag\"></i>Guatemala</div>\n              <div class=\"item\" data-value=\"gu\"><i class=\"gu flag\"></i>Guam</div>\n              <div class=\"item\" data-value=\"gw\"><i class=\"gw flag\"></i>Guinea-Bissau</div>\n              <div class=\"item\" data-value=\"gy\"><i class=\"gy flag\"></i>Guyana</div>\n              <div class=\"item\" data-value=\"hk\"><i class=\"hk flag\"></i>Hong Kong</div>\n              <div class=\"item\" data-value=\"hm\"><i class=\"hm flag\"></i>Heard Island</div>\n              <div class=\"item\" data-value=\"hn\"><i class=\"hn flag\"></i>Honduras</div>\n              <div class=\"item\" data-value=\"hr\"><i class=\"hr flag\"></i>Croatia</div>\n              <div class=\"item\" data-value=\"ht\"><i class=\"ht flag\"></i>Haiti</div>\n              <div class=\"item\" data-value=\"hu\"><i class=\"hu flag\"></i>Hungary</div>\n              <div class=\"item\" data-value=\"id\"><i class=\"id flag\"></i>Indonesia</div>\n              <div class=\"item\" data-value=\"ie\"><i class=\"ie flag\"></i>Ireland</div>\n              <div class=\"item\" data-value=\"il\"><i class=\"il flag\"></i>Israel</div>\n              <div class=\"item\" data-value=\"in\"><i class=\"in flag\"></i>India</div>\n              <div class=\"item\" data-value=\"io\"><i class=\"io flag\"></i>Indian Ocean Territory</div>\n              <div class=\"item\" data-value=\"iq\"><i class=\"iq flag\"></i>Iraq</div>\n              <div class=\"item\" data-value=\"ir\"><i class=\"ir flag\"></i>Iran</div>\n              <div class=\"item\" data-value=\"is\"><i class=\"is flag\"></i>Iceland</div>\n              <div class=\"item\" data-value=\"it\"><i class=\"it flag\"></i>Italy</div>\n              <div class=\"item\" data-value=\"jm\"><i class=\"jm flag\"></i>Jamaica</div>\n              <div class=\"item\" data-value=\"jo\"><i class=\"jo flag\"></i>Jordan</div>\n              <div class=\"item\" data-value=\"jp\"><i class=\"jp flag\"></i>Japan</div>\n              <div class=\"item\" data-value=\"ke\"><i class=\"ke flag\"></i>Kenya</div>\n              <div class=\"item\" data-value=\"kg\"><i class=\"kg flag\"></i>Kyrgyzstan</div>\n              <div class=\"item\" data-value=\"kh\"><i class=\"kh flag\"></i>Cambodia</div>\n              <div class=\"item\" data-value=\"ki\"><i class=\"ki flag\"></i>Kiribati</div>\n              <div class=\"item\" data-value=\"km\"><i class=\"km flag\"></i>Comoros</div>\n              <div class=\"item\" data-value=\"kn\"><i class=\"kn flag\"></i>Saint Kitts and Nevis</div>\n              <div class=\"item\" data-value=\"kp\"><i class=\"kp flag\"></i>North Korea</div>\n              <div class=\"item\" data-value=\"kr\"><i class=\"kr flag\"></i>South Korea</div>\n              <div class=\"item\" data-value=\"kw\"><i class=\"kw flag\"></i>Kuwait</div>\n              <div class=\"item\" data-value=\"ky\"><i class=\"ky flag\"></i>Cayman Islands</div>\n              <div class=\"item\" data-value=\"kz\"><i class=\"kz flag\"></i>Kazakhstan</div>\n              <div class=\"item\" data-value=\"la\"><i class=\"la flag\"></i>Laos</div>\n              <div class=\"item\" data-value=\"lb\"><i class=\"lb flag\"></i>Lebanon</div>\n              <div class=\"item\" data-value=\"lc\"><i class=\"lc flag\"></i>Saint Lucia</div>\n              <div class=\"item\" data-value=\"li\"><i class=\"li flag\"></i>Liechtenstein</div>\n              <div class=\"item\" data-value=\"lk\"><i class=\"lk flag\"></i>Sri Lanka</div>\n              <div class=\"item\" data-value=\"lr\"><i class=\"lr flag\"></i>Liberia</div>\n              <div class=\"item\" data-value=\"ls\"><i class=\"ls flag\"></i>Lesotho</div>\n              <div class=\"item\" data-value=\"lt\"><i class=\"lt flag\"></i>Lithuania</div>\n              <div class=\"item\" data-value=\"lu\"><i class=\"lu flag\"></i>Luxembourg</div>\n              <div class=\"item\" data-value=\"lv\"><i class=\"lv flag\"></i>Latvia</div>\n              <div class=\"item\" data-value=\"ly\"><i class=\"ly flag\"></i>Libya</div>\n              <div class=\"item\" data-value=\"ma\"><i class=\"ma flag\"></i>Morocco</div>\n              <div class=\"item\" data-value=\"mc\"><i class=\"mc flag\"></i>Monaco</div>\n              <div class=\"item\" data-value=\"md\"><i class=\"md flag\"></i>Moldova</div>\n              <div class=\"item\" data-value=\"me\"><i class=\"me flag\"></i>Montenegro</div>\n              <div class=\"item\" data-value=\"mg\"><i class=\"mg flag\"></i>Madagascar</div>\n              <div class=\"item\" data-value=\"mh\"><i class=\"mh flag\"></i>Marshall Islands</div>\n              <div class=\"item\" data-value=\"mk\"><i class=\"mk flag\"></i>MacEdonia</div>\n              <div class=\"item\" data-value=\"ml\"><i class=\"ml flag\"></i>Mali</div>\n              <div class=\"item\" data-value=\"ar\"><i class=\"ar flag\"></i>Burma</div>\n              <div class=\"item\" data-value=\"mn\"><i class=\"mn flag\"></i>Mongolia</div>\n              <div class=\"item\" data-value=\"mo\"><i class=\"mo flag\"></i>MacAu</div>\n              <div class=\"item\" data-value=\"mp\"><i class=\"mp flag\"></i>Northern Mariana Islands</div>\n              <div class=\"item\" data-value=\"mq\"><i class=\"mq flag\"></i>Martinique</div>\n              <div class=\"item\" data-value=\"mr\"><i class=\"mr flag\"></i>Mauritania</div>\n              <div class=\"item\" data-value=\"ms\"><i class=\"ms flag\"></i>Montserrat</div>\n              <div class=\"item\" data-value=\"mt\"><i class=\"mt flag\"></i>Malta</div>\n              <div class=\"item\" data-value=\"mu\"><i class=\"mu flag\"></i>Mauritius</div>\n              <div class=\"item\" data-value=\"mv\"><i class=\"mv flag\"></i>Maldives</div>\n              <div class=\"item\" data-value=\"mw\"><i class=\"mw flag\"></i>Malawi</div>\n              <div class=\"item\" data-value=\"mx\"><i class=\"mx flag\"></i>Mexico</div>\n              <div class=\"item\" data-value=\"my\"><i class=\"my flag\"></i>Malaysia</div>\n              <div class=\"item\" data-value=\"mz\"><i class=\"mz flag\"></i>Mozambique</div>\n              <div class=\"item\" data-value=\"na\"><i class=\"na flag\"></i>Namibia</div>\n              <div class=\"item\" data-value=\"nc\"><i class=\"nc flag\"></i>New Caledonia</div>\n              <div class=\"item\" data-value=\"ne\"><i class=\"ne flag\"></i>Niger</div>\n              <div class=\"item\" data-value=\"nf\"><i class=\"nf flag\"></i>Norfolk Island</div>\n              <div class=\"item\" data-value=\"ng\"><i class=\"ng flag\"></i>Nigeria</div>\n              <div class=\"item\" data-value=\"ni\"><i class=\"ni flag\"></i>Nicaragua</div>\n              <div class=\"item\" data-value=\"nl\"><i class=\"nl flag\"></i>Netherlands</div>\n              <div class=\"item\" data-value=\"no\"><i class=\"no flag\"></i>Norway</div>\n              <div class=\"item\" data-value=\"np\"><i class=\"np flag\"></i>Nepal</div>\n              <div class=\"item\" data-value=\"nr\"><i class=\"nr flag\"></i>Nauru</div>\n              <div class=\"item\" data-value=\"nu\"><i class=\"nu flag\"></i>Niue</div>\n              <div class=\"item\" data-value=\"nz\"><i class=\"nz flag\"></i>New Zealand</div>\n              <div class=\"item\" data-value=\"om\"><i class=\"om flag\"></i>Oman</div>\n              <div class=\"item\" data-value=\"pa\"><i class=\"pa flag\"></i>Panama</div>\n              <div class=\"item\" data-value=\"pe\"><i class=\"pe flag\"></i>Peru</div>\n              <div class=\"item\" data-value=\"pf\"><i class=\"pf flag\"></i>French Polynesia</div>\n              <div class=\"item\" data-value=\"pg\"><i class=\"pg flag\"></i>New Guinea</div>\n              <div class=\"item\" data-value=\"ph\"><i class=\"ph flag\"></i>Philippines</div>\n              <div class=\"item\" data-value=\"pk\"><i class=\"pk flag\"></i>Pakistan</div>\n              <div class=\"item\" data-value=\"pl\"><i class=\"pl flag\"></i>Poland</div>\n              <div class=\"item\" data-value=\"pm\"><i class=\"pm flag\"></i>Saint Pierre</div>\n              <div class=\"item\" data-value=\"pn\"><i class=\"pn flag\"></i>Pitcairn Islands</div>\n              <div class=\"item\" data-value=\"pr\"><i class=\"pr flag\"></i>Puerto Rico</div>\n              <div class=\"item\" data-value=\"ps\"><i class=\"ps flag\"></i>Palestine</div>\n              <div class=\"item\" data-value=\"pt\"><i class=\"pt flag\"></i>Portugal</div>\n              <div class=\"item\" data-value=\"pw\"><i class=\"pw flag\"></i>Palau</div>\n              <div class=\"item\" data-value=\"py\"><i class=\"py flag\"></i>Paraguay</div>\n              <div class=\"item\" data-value=\"qa\"><i class=\"qa flag\"></i>Qatar</div>\n              <div class=\"item\" data-value=\"re\"><i class=\"re flag\"></i>Reunion</div>\n              <div class=\"item\" data-value=\"ro\"><i class=\"ro flag\"></i>Romania</div>\n              <div class=\"item\" data-value=\"rs\"><i class=\"rs flag\"></i>Serbia</div>\n              <div class=\"item\" data-value=\"ru\"><i class=\"ru flag\"></i>Russia</div>\n              <div class=\"item\" data-value=\"rw\"><i class=\"rw flag\"></i>Rwanda</div>\n              <div class=\"item\" data-value=\"sa\"><i class=\"sa flag\"></i>Saudi Arabia</div>\n              <div class=\"item\" data-value=\"sb\"><i class=\"sb flag\"></i>Solomon Islands</div>\n              <div class=\"item\" data-value=\"sc\"><i class=\"sc flag\"></i>Seychelles</div>\n              <div class=\"item\" data-value=\"sd\"><i class=\"sd flag\"></i>Sudan</div>\n              <div class=\"item\" data-value=\"se\"><i class=\"se flag\"></i>Sweden</div>\n              <div class=\"item\" data-value=\"sg\"><i class=\"sg flag\"></i>Singapore</div>\n              <div class=\"item\" data-value=\"sh\"><i class=\"sh flag\"></i>Saint Helena</div>\n              <div class=\"item\" data-value=\"si\"><i class=\"si flag\"></i>Slovenia</div>\n              <div class=\"item\" data-value=\"sj\"><i class=\"sj flag\"></i>Svalbard, I Flag Jan Mayen</div>\n              <div class=\"item\" data-value=\"sk\"><i class=\"sk flag\"></i>Slovakia</div>\n              <div class=\"item\" data-value=\"sl\"><i class=\"sl flag\"></i>Sierra Leone</div>\n              <div class=\"item\" data-value=\"sm\"><i class=\"sm flag\"></i>San Marino</div>\n              <div class=\"item\" data-value=\"sn\"><i class=\"sn flag\"></i>Senegal</div>\n              <div class=\"item\" data-value=\"so\"><i class=\"so flag\"></i>Somalia</div>\n              <div class=\"item\" data-value=\"sr\"><i class=\"sr flag\"></i>Suriname</div>\n              <div class=\"item\" data-value=\"st\"><i class=\"st flag\"></i>Sao Tome</div>\n              <div class=\"item\" data-value=\"sv\"><i class=\"sv flag\"></i>El Salvador</div>\n              <div class=\"item\" data-value=\"sy\"><i class=\"sy flag\"></i>Syria</div>\n              <div class=\"item\" data-value=\"sz\"><i class=\"sz flag\"></i>Swaziland</div>\n              <div class=\"item\" data-value=\"tc\"><i class=\"tc flag\"></i>Caicos Islands</div>\n              <div class=\"item\" data-value=\"td\"><i class=\"td flag\"></i>Chad</div>\n              <div class=\"item\" data-value=\"tf\"><i class=\"tf flag\"></i>French Territories</div>\n              <div class=\"item\" data-value=\"tg\"><i class=\"tg flag\"></i>Togo</div>\n              <div class=\"item\" data-value=\"th\"><i class=\"th flag\"></i>Thailand</div>\n              <div class=\"item\" data-value=\"tj\"><i class=\"tj flag\"></i>Tajikistan</div>\n              <div class=\"item\" data-value=\"tk\"><i class=\"tk flag\"></i>Tokelau</div>\n              <div class=\"item\" data-value=\"tl\"><i class=\"tl flag\"></i>Timorleste</div>\n              <div class=\"item\" data-value=\"tm\"><i class=\"tm flag\"></i>Turkmenistan</div>\n              <div class=\"item\" data-value=\"tn\"><i class=\"tn flag\"></i>Tunisia</div>\n              <div class=\"item\" data-value=\"to\"><i class=\"to flag\"></i>Tonga</div>\n              <div class=\"item\" data-value=\"tr\"><i class=\"tr flag\"></i>Turkey</div>\n              <div class=\"item\" data-value=\"tt\"><i class=\"tt flag\"></i>Trinidad</div>\n              <div class=\"item\" data-value=\"tv\"><i class=\"tv flag\"></i>Tuvalu</div>\n              <div class=\"item\" data-value=\"tw\"><i class=\"tw flag\"></i>Taiwan</div>\n              <div class=\"item\" data-value=\"tz\"><i class=\"tz flag\"></i>Tanzania</div>\n              <div class=\"item\" data-value=\"ua\"><i class=\"ua flag\"></i>Ukraine</div>\n              <div class=\"item\" data-value=\"ug\"><i class=\"ug flag\"></i>Uganda</div>\n              <div class=\"item\" data-value=\"um\"><i class=\"um flag\"></i>Us Minor Islands</div>\n              <div class=\"item\" data-value=\"us\"><i class=\"us flag\"></i>United States</div>\n              <div class=\"item\" data-value=\"uy\"><i class=\"uy flag\"></i>Uruguay</div>\n              <div class=\"item\" data-value=\"uz\"><i class=\"uz flag\"></i>Uzbekistan</div>\n              <div class=\"item\" data-value=\"va\"><i class=\"va flag\"></i>Vatican City</div>\n              <div class=\"item\" data-value=\"vc\"><i class=\"vc flag\"></i>Saint Vincent</div>\n              <div class=\"item\" data-value=\"ve\"><i class=\"ve flag\"></i>Venezuela</div>\n              <div class=\"item\" data-value=\"vg\"><i class=\"vg flag\"></i>British Virgin Islands</div>\n              <div class=\"item\" data-value=\"vi\"><i class=\"vi flag\"></i>Us Virgin Islands</div>\n              <div class=\"item\" data-value=\"vn\"><i class=\"vn flag\"></i>Vietnam</div>\n              <div class=\"item\" data-value=\"vu\"><i class=\"vu flag\"></i>Vanuatu</div>\n              <div class=\"item\" data-value=\"wf\"><i class=\"wf flag\"></i>Wallis and Futuna</div>\n              <div class=\"item\" data-value=\"ws\"><i class=\"ws flag\"></i>Samoa</div>\n              <div class=\"item\" data-value=\"ye\"><i class=\"ye flag\"></i>Yemen</div>\n              <div class=\"item\" data-value=\"yt\"><i class=\"yt flag\"></i>Mayotte</div>\n              <div class=\"item\" data-value=\"za\"><i class=\"za flag\"></i>South Africa</div>\n              <div class=\"item\" data-value=\"zm\"><i class=\"zm flag\"></i>Zambia</div>\n              <div class=\"item\" data-value=\"zw\"><i class=\"zw flag\"></i>Zimbabwe</div>\n            </div>\n          </div>\n\n          <div class=\"ui divider\"></div>\n          <div class=\"ui floating dropdown labeled icon button\">\n            <i class=\"filter icon\"></i>\n            <span class=\"text\">Filter Posts</span>\n            <div class=\"menu\">\n              <div class=\"ui icon search input\">\n                <i class=\"search icon\"></i>\n                <input type=\"text\" placeholder=\"Search tags...\">\n              </div>\n              <div class=\"header\">\n                <i class=\"tags icon\"></i>\n                Tag Label\n              </div>\n              <div class=\"scrolling menu\">\n                <div class=\"item\">\n                  <div class=\"ui red empty circular label\"></div>\n                  Important\n                </div>\n                <div class=\"item\">\n                  <div class=\"ui blue empty circular label\"></div>\n                  Announcement\n                </div>\n                <div class=\"item\">\n                  <div class=\"ui black empty circular label\"></div>\n                  Cannot Fix\n                </div>\n                <div class=\"item\">\n                  <div class=\"ui purple empty circular label\"></div>\n                  News\n                </div>\n                <div class=\"item\">\n                  <div class=\"ui orange empty circular label\"></div>\n                  Enhancement\n                </div>\n                <div class=\"item\">\n                  <div class=\"ui empty circular label\"></div>\n                  Change Declined\n                </div>\n                <div class=\"item\">\n                  <div class=\"ui yellow empty circular label\"></div>\n                  Off Topic\n                </div>\n                <div class=\"item\">\n                  <div class=\"ui pink empty circular label\"></div>\n                  Interesting\n                </div>\n                <div class=\"item\">\n                  <div class=\"ui green empty circular label\"></div>\n                  Discussion\n                </div>\n              </div>\n            </div>\n          </div>\n      </div>\n        <div class=\"no segment example\">\n          <h4 class=\"ui header\">\n            <a href=\"/elements/segment.html\">Segment</a>\n          </h4>\n          <div class=\"ui stacked segment\"></div>\n          <div class=\"ui raised segment\"></div>\n          <div class=\"ui secondary segment\"></div>\n          <div class=\"ui tertiary segment\"></div>\n\n          <div class=\"ui top attached segment\"></div>\n          <div class=\"ui attached segment\"></div>\n          <div class=\"ui bottom attached segment\"></div>\n        </div>\n        <div class=\"no example\">\n          <h4 class=\"ui header\">\n            <a href=\"/elements/input.html\">Input</a>\n          </h4>\n          <div class=\"ui action left icon input\">\n            <i class=\"search icon\"></i>\n            <input type=\"text\" placeholder=\"Search...\">\n            <div class=\"ui teal button\">Search</div>\n          </div>\n          <div class=\"ui hidden divider\"></div>\n          <div class=\"ui labeled right icon input\">\n            <div class=\"ui label\">\n              http://\n            </div>\n            <input type=\"text\" placeholder=\"mysite.com\">\n            <i class=\"linkify link icon\"></i>\n          </div>\n\n          <div class=\"ui hidden divider\"></div>\n          <div class=\"ui right labeled input\">\n            <input type=\"text\" placeholder=\"Enter categories\">\n            <a class=\"ui tag label\">\n              Add Tags\n            </a>\n          </div>\n        </div>\n        <div class=\"no example\">\n          <h4 class=\"ui header\">\n            <a href=\"/modules/checkbox.html\">Checkbox</a>\n          </h4>\n          <div class=\"ui checkbox\">\n            <input type=\"checkbox\" name=\"fun\">\n            <label>I enjoy having fun</label>\n          </div>\n\n          <div class=\"ui hidden divider\"></div>\n          <div class=\"ui slider checkbox\">\n            <input type=\"checkbox\" name=\"newsletter\">\n            <label>Receive weekly poodle newsletter</label>\n          </div>\n\n          <div class=\"ui hidden divider\"></div>\n          <div class=\"ui toggle checkbox\">\n            <input type=\"checkbox\" name=\"public\">\n            <label>Make my dog's profile public</label>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n<div class=\"ui stripe community vertical segment\">\n  <div class=\"ui two column center aligned divided very relaxed stackable grid container\">\n    <div class=\"row\">\n      <div class=\"column\">\n        <h2 class=\"ui icon header\">\n          <img class=\"ui icon image\" src=\"/images/icons/mobile.png\">\n          Responsively Designed\n        </h2>\n        <p>Semantic is <b>designed completely with em</b> making responsive sizing a breeze. Design <em>variations</em> built into elements allow you to make the choice how content adjusts for tablet and mobile.</p>\n        <a class=\"ui large button\" href=\"/usage/layout.html\">Responsive Examples</a>\n      </div>\n      <div class=\"column\">\n        <h2 class=\"ui icon header\">\n          <img class=\"ui icon image\" src=\"/images/icons/heart.png\">\n          Partners with Libraries You Love\n        </h2>\n        <p>Semantic has integrations with <b>React, Angular, Meteor, Ember</b> and many other frameworks to help organize your UI layer alongside your application logic.</p>\n        <a class=\"ui large button\" href=\"/introduction/integrations.html\">See Integrations</a>\n      </div>\n    </div>\n  </div>\n</div>\n<div class=\"ui alternate stripe vertical segment\">\n  <div class=\"ui stackable center aligned grid container\">\n    <div class=\"fourteen wide column\">\n      <h1 class=\"ui icon header\">\n        <img class=\"ui inline icon image\" src=\"/images/icons/rocket.png\">\n        Liberate your Development\n      </h1>\n      <div class=\"ui stackable center aligned vertically padded grid\">\n        <div class=\"eight wide column\">\n          <h3 class=\"ui header\">Enterprise Ready</h3>\n          <p>Build tools, performance logging, support for custom definitions, multiple-levels of theme inheritance—a developer's dream.</p>\n          <a class=\"ui large right labeled primary icon button\" href=\"/introduction/getting-started.html\">\n            <i class=\"right chevron icon\"></i>\n            Get Started Now\n          </a>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n"
  },
  {
    "path": "server/documents/introduction/advanced-usage.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'started'\nstandalone  : true\norder       : 4\n\ntitle       : 'Recipes'\ndescription : 'Additional integration paths for advanced users'\ntype        : 'Introduction'\n---\n<%- @partial('header') %>\n\n<div class=\"main ui intro container\">\n\n\n  <h2 class=\"ui dividing header\">Custom Pipelines</h2>\n  <div class=\"no example\">\n    <h4>Importing Gulp Tasks</h4>\n    <p>You don't have to use <a href=\"/introduction/build-tools.html\">our gulp pipeline</a>, just import the task into your own <code>gulpfile</code></p>\n    <p>You can <a href=\"https://github.com/Semantic-Org/Example-External-Gulpfile\" target=\"_blank\">fork this example project</a> to see an example of how to import Semantic UI tasks into your project.</p>\n    <div class=\"ignored code\" data-type=\"JS\" data-title=\"Custom gulpfile.js\">\n    var\n      gulp  = require('gulp'),\n      watch = require('./semantic/tasks/watch'),\n      build = require('./semantic/tasks/build')\n    ;\n    // import task with a custom task name\n    gulp.task('watch ui', watch);\n    gulp.task('build ui', build);\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Semantic.json Settings</h2>\n\n  <div class=\"no example\">\n    <h4>Auto-Install</h4>\n    <p>Running <code>npm install</code> normally will launch an interactive installer, to allow this installer to run without user interaction include a special flag <code>autoInstall: true</code>in your <code>semantic.json</code> file.</p>\n    <div class=\"ignored code\" data-type=\"JS\" data-title=\"semantic.json\">\n     {\n      // install will now automatically build your project files without user interaction\n      \"autoInstall\": true,\n\n      // these settings may be different\n      \"base\": \"\",\n      \"paths\": {\n        \"source\": {\n          \"config\": \"src/theme.config\",\n          \"definitions\": \"src/definitions/\",\n          \"site\": \"src/site/\",\n          \"themes\": \"src/themes/\"\n        },\n        \"output\": {\n          \"packaged\": \"dist/\",\n          \"uncompressed\": \"dist/components/\",\n          \"compressed\": \"dist/components/\",\n          \"themes\": \"dist/themes/\"\n        },\n        \"clean\": \"dist/\"\n      },\n      \"permission\": false,\n      \"rtl\": false,\n    }\n    </div>\n  </div>\n\n    <div class=\"no example\">\n      <h4>Right-to-left (RTL) Languages</h4>\n      <p>Including the flag <code>rtl:true</code> will build Semantic UI using <a href=\"https://github.com/MohammadYounes/rtlcss\" target=\"_blank\">RTLCSS</a>.</p>\n      <p>To build both LTR and RTL versions use the flag <code>rtl: 'both'</code></p>\n      <div class=\"ignored code\" data-type=\"JS\" data-title=\"semantic.json\">\n       {\n        // builds both LTR and RTL version\n        \"rtl\": \"both\",\n\n        // these settings may be different\n        \"base\": \"\",\n        \"paths\": {\n          \"source\": {\n            \"config\": \"src/theme.config\",\n            \"definitions\": \"src/definitions/\",\n            \"site\": \"src/site/\",\n            \"themes\": \"src/themes/\"\n          },\n          \"output\": {\n            \"packaged\": \"dist/\",\n            \"uncompressed\": \"dist/components/\",\n            \"compressed\": \"dist/components/\",\n            \"themes\": \"dist/themes/\"\n          },\n          \"clean\": \"dist/\"\n        },\n        \"permission\": false,\n      }\n      </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Prototyping with Semantic UI</h2>\n  <div class=\"no example\">\n    <h4>Sketch Files</h4>\n    <p>If you are looking to prototype layouts using <a href=\"http://bohemiancoding.com/sketch/\" target=\"_blank\">Sketch</a> with Semantic UI check out <a href=\"https://github.com/guacamoly/semantic-ui-kit-for-sketch\" target=\"_blank\">Semantic UI Sketch Files</a></p>\n    <img class=\"ui bordered rounded fluid image\" src=\"https://github.com/guacamoly/semantic-ui-kit-for-sketch/raw/master/snapshot.jpg?raw=true\">\n  </div>\n\n  <h2 class=\"ui dividing header\">Single Components</h2>\n\n  <div class=\"no example\">\n    <h4>CDN Releases</h4>\n    <p>Individual components are available on <a href=\"https://www.jsdelivr.com/projects/semantic-ui\">jsDelivr</a></p>\n    <div class=\"code\">\n    <link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/semantic-ui@<%= @getVersion() %>/dist/semantic.min.css\">\n    </div>\n    <div class=\"code\">\n    <script src=\"https://cdn.jsdelivr.net/npm/semantic-ui@<%= @getVersion() %>/dist/semantic.min.js\"></script>\n    </div>\n    <a class=\"ui button\" href=\"https://www.jsdelivr.com/projects/semantic-ui\" target=\"_blank\">View All CDN Files</a>\n  </div>\n\n  <div class=\"no example\">\n    <h4>Tagged Releases</h4>\n    <p>Component repos are released on NPM and as tagged releases on GitHub.</p>\n    <p>Check the list of repos available under <a href=\"https://github.com/Semantic-Org?utf8=%E2%9C%93&query=ui-\">Semantic Org</a> on GitHub</p>\n    <p>Each component's release notes will automatically update with the relevant notes for that component from the main release.</p>\n    <div class=\"ignored code\">\n     npm install semantic-ui-component\n    </div>\n  </div>\n\n  <div class=\"no example\">\n    <h4>Server-Side Rendering</h4>\n    <p>Individual components repos include an <a href=\"https://github.com/Semantic-Org/Semantic-UI/blob/master/tasks/admin/components/create.js\" target=\"_blank\">auto-generated</a> <code>index.js</code> file to simplify <a href=\"http://www.sitepoint.com/understanding-module-exports-exports-node-js/\" target=\"_blank\"><code>require</code></a> use with NodeJS, for server-side rendering or with <a href=\"http://browserify.org/\" target=\"_blank\">Browserify</a>.</p>\n    <div class=\"ignored code\">\n     npm install semantic-ui-dropdown\n    </div>\n    <div class=\"ignored code\">\n      var\n        dropdown = require('semantic-ui-dropdown')\n      ;\n      foo.dropdown();\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Importing LESS</h2>\n\n  <div class=\"no example\">\n    <h4>LESS Only Distribution</h4>\n    <p>A special distribution <a href=\"https://github.com/Semantic-Org/Semantic-UI-LESS\">Semantic-UI-LESS</a> is available for projects that use custom integrations and do not require our build tools.</p>\n    <div class=\"ui ignored warning message\">LESS source files are not prefixed, and will need to be run through <a href=\"https://github.com/postcss/autoprefixer\">autoprefixer</a> before being used</div>\n  </div>\n\n  <div class=\"no example\">\n    <h4>Importing Semantic</h4>\n    <p><code>semantic.less</code> is available in all releases as an entry point for importing multiple components from other LESS files.</p>\n    <div class=\"ignored code\"  data-type=\"LESS\" data-title=\"Importing LESS\">\n      /* Import all components */\n      @import 'src/semantic';\n    </div>\n  </div>\n\n  <div class=\"no example\">\n    <h4>Importing Components</h4>\n    <p>If you need to import individual components, you should scope each import to avoid inheritance issues.</p>\n    <div class=\"ignored code\" data-type=\"LESS\" data-title=\"Importing LESS Components\">\n      /* Import specific components with scope */\n      & { @import 'src/definitions/elements/button'; }\n      & { @import 'src/definitions/elements/list'; }\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Running Docs Locally</h2>\n\n  <div class=\"no example\">\n    <h4>Download Docs Server</h4>\n    <p>The easiest way to get <a href=\"https://github.com/Semantic-Org/Semantic-UI-Docs/\">Semantic UI docs</a> is to clone the repo</p>\n    <div class=\"code\">\n      git clone https://github.com/Semantic-Org/Semantic-UI-Docs.git\n    </div>\n  </div>\n  <div class=\"no example\">\n    <h4>Install Dependencies</h4>\n    <p>Semantic UI's documentation is written in <a href=\"http://www.docpad.org\" target=\"_blank\">Docpad</a> an amazing static site generator built in NodeJS</p>\n    <div class=\"code\">\n      cd docs/\n      npm install\n    </div>\n  </div>\n\n  <div class=\"no example\">\n    <h4>A Note About Paths</h4>\n    <p>Semantic UI's <a href=\"introduction/build-tools.html\">build tools</a> include two special commands <code>build-docs</code> and <code>serve-docs</code> for use with the documentation. These will pass changes from the ui/ folder directly to a live docs server.</p>\n    <p>These gulp tasks expect two sibling folders</p>\n    <div class=\"ui list\">\n      <div class=\"item\">\n        <i class=\"folder icon\"></i>\n        <div class=\"content\">\n          <div class=\"header\">ui/</div>\n          <div class=\"description\">Files from semantic ui repo</div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <i class=\"folder icon\"></i>\n        <div class=\"content\">\n          <div class=\"header\">docs/</div>\n          <div class=\"description\">Files from docs repo</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"no example\">\n    <h4>Build UI</h4>\n    <p>The first time you run docs you will need to build the whole project once</p>\n    <div class=\"code\">\n      cd ui/\n      gulp build-docs\n    </div>\n  </div>\n  <div class=\"no example\">\n    <h4>Run Docpad Server</h4>\n    <p>Docpad</p>\n    <div class=\"code\">\n      cd docs/\n      # initial build may take several minutes\n      docpad run\n    </div>\n  </div>\n  <div class=\"no example\">\n    <h4>Serve UI to Docs</h4>\n    <p>You can then continue to make modifications to UI and \"serve\" these files to a live docs instance to see your changes immediately</p>\n    <div class=\"code\">\n      cd ui/\n      gulp serve-docs\n    </div>\n  </div>\n  <div class=\"no example\">\n    <h4>Hosted Docs</h4>\n    <p>If you are managing your documentation you can automatically deploy to GitHub Pages using a built in <a href=\"https://github.com/docpad/docpad-plugin-ghpages\">docpad gh-pages</a> plugin</p>\n    <p>For more information about GitHub Pages, check out the <a href=\"https://pages.github.com/\" target=\"_blank\">docs on GitHub</a></p>\n    <div class=\"code\">\n      docpad deploy-ghpages --env static\n    </div>\n  </div>\n  <div class=\"no example\">\n    <h4>Custom Docs Paths</h4>\n    <p>Doc task paths are specified in a file <a href=\"https://github.com/Semantic-Org/Semantic-UI/blob/master/tasks/config/docs.js\"><code>tasks/config/docs.js</code></a> and can be adjusted to use any folder set-up necessary for your project.</p>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/introduction/build-tools.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'started'\nstandalone  : true\norder       : 3\n\ntitle       : 'Build Tools'\ndescription : 'Using Gulp with Semantic UI'\ntype        : 'Introduction'\n---\n<%- @partial('header') %>\n\n<div class=\"main ui intro container\">\n\n  <h2 class=\"ui dividing header\">Overview</h2>\n\n  <div class=\"no example\">\n    <h4>30 Second Explanation</h4>\n    <p><a href=\"/introduction/getting-started.html\">Download Semantic UI</a> navigate to the install folder then run a <a href=\"#gulp-commands\">gulp command</a>.</p>\n\n    <p>To build all files:</p>\n    <div class=\"code\" data-type=\"bash\">\n      gulp build\n    </div>\n\n    <p>To watch for changes</p>\n    <div class=\"code\" data-type=\"bash\">\n      gulp watch\n    </div>\n  </div>\n  <div class=\"no example\">\n    <h4>Why Build Tools?</h4>\n    <p>Semantic UI uses Gulp for several reasons:</p>\n    <div class=\"ui large bulleted list\">\n      <div class=\"item\">Process LESS files with <a href=\"/usage/theming.html\">theming variables</a></div>\n      <div class=\"item\">Add vendor prefixes for <a href=\"https://github.com/Semantic-Org/Semantic-UI/blob/master/tasks/config/project/tasks.js#L96\">supported browsers</a> with <a href=\"https://github.com/postcss/autoprefixer\" target=\"_blank\">autoprefixer</a></div>\n      <div class=\"item\">Watch file changes and rebuild the necessary files when adjusting themes</div>\n      <div class=\"item\">Automatically process asset paths, so that minified and concatenated releases can exist in different directories</div>\n      <div class=\"item\">Allow custom builds with only the required components for your site</div>\n      <div class=\"item\">Allow advanced usage like Right-To-Left (RTL) languages using <a href=\"https://github.com/MohammadYounes/rtlcss\" target=\"_blank\">RTLCSS</a></div>\n    </div>\n  </div>\n  <div class=\"no example\">\n    <h3 class=\"ui header\">Folder Structure</h3>\n    <p>A Semantic UI project includes the following folder structure.</p>\n    <div class=\"ui list\">\n      <div class=\"item\">\n        <i class=\"folder icon\"></i>\n        <div class=\"content\">\n          <div class=\"header\">src</div>\n          <div class=\"list\">\n            <div class=\"item\">\n              <i class=\"folder icon\"></i>\n              <div class=\"content\">\n                <a href=\"/usage/theming.html#site-theme\" class=\"header\">site</a>\n                <div class=\"description\">Your site's theme</div>\n              </div>\n            </div>\n            <div class=\"item\">\n              <i class=\"folder icon\"></i>\n              <div class=\"content\">\n                <div class=\"header\">themes</div>\n                <div class=\"list\">\n                  <div class=\"item\">\n                    <i class=\"folder icon\"></i>\n                    <div class=\"content\">\n                      <a href=\"/usage/theming.html#default-theme\" class=\"header\">default</a>\n                      <div class=\"description\">Default theme</div>\n                    </div>\n                  </div>\n                  <div class=\"item\">\n                    <i class=\"folder icon\"></i>\n                    <div class=\"content\">\n                      <a href=\"/usage/theming.html#packaged-theme\" class=\"header\">packaged-theme</a>\n                      <div class=\"description\">Additional themes</div>\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </div>\n            <div class=\"item\">\n              <i class=\"file icon\"></i>\n              <div class=\"content\">\n                <a class=\"header\" href=\"#themeconfig\" >theme.config</a>\n                <div class=\"description\">Config file for setting packaged themes</div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <i class=\"folder icon\"></i>\n        <div class=\"content\">\n          <div class=\"header\">dist</div>\n          <div class=\"description\">Compiled CSS and JS files</div>\n          <div class=\"list\">\n            <div class=\"item\">\n              <i class=\"folder icon\"></i>\n              <div class=\"content\">\n                <div class=\"header\">components</div>\n                <div class=\"description\">Individual component CSS and JS</div>\n              </div>\n            </div>\n            <div class=\"item\">\n              <i class=\"file icon\"></i>\n              <div class=\"content\">\n                <div class=\"header\">semantic.css</div>\n                <div class=\"description\">concatenated release</div>\n              </div>\n            </div>\n            <div class=\"item\">\n              <i class=\"file icon\"></i>\n              <div class=\"content\">\n                <div class=\"header\">semantic.js</div>\n                <div class=\"description\">concatenated release</div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <i class=\"file icon\"></i>\n        <div class=\"content\">\n          <a href=\"#semanticjson\" class=\"header\">semantic.json</a>\n          <div class=\"description\">Contains build settings for gulp</div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"no example\">\n    <h4>Gulp Commands</h4>\n    <p>Below is a list of all available gulp commands</p>\n    <table class=\"ui definition table\">\n      <thead>\n        <th>Command</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>install</td>\n          <td>Asks install questions to setup semantic.json</td>\n        </tr>\n        <tr>\n          <td>watch (default)</td>\n          <td>Watches for changes in source files, and builds file on change</td>\n        </tr>\n        <tr>\n          <td>build</td>\n          <td>Build all files</td>\n        </tr>\n        <tr>\n          <td>clean</td>\n          <td>Cleans <code>dist/</code> folder</td>\n        </tr>\n        <tr>\n          <td>version</td>\n          <td>Outputs current version</td>\n        </tr>\n        <tr>\n          <td>build-javascript</td>\n          <td>Build JS files</td>\n        </tr>\n        <tr>\n          <td>build-css</td>\n          <td>Build CSS files</td>\n        </tr>\n        <tr>\n          <td>build-assets</td>\n          <td>Build assets files</td>\n        </tr>\n        <tr>\n          <td>serve-docs</td>\n          <td>Serves files to local docs instance</td>\n        </tr>\n        <tr>\n          <td>build-docs</td>\n          <td>Builds files to docs folder</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n\n  <h2 class=\"ui dividing header\">Configuration Files</h2>\n\n  <div class=\"no example\">\n    <h4>semantic.json</h4>\n    <p>Build tool settings are stored in a special file called <code>semantic.json</code> It can be included in any folder that is in a parent folder of the semantic install folder.</p>\n    <p>If you used the npm or meteor, a <code>semantic.json</code> file is automatically generated for you in the root of your project. If you used a different package manager you can run <code>gulp install</code> to run the interactive installer.</p>\n    <div class=\"ignored code\">\n    {\n      // base path added to all other paths specified in \"paths\"\n      \"base\": \"\",\n\n      // current version of Semantic UI\n      \"version\": \"<%= @getVersion() %>\",\n\n      \"paths\": {\n\n        \"source\": {\n\n          // source theme.config\n          \"config\"      : \"src/theme.config\",\n\n          // source definition folder\n          \"definitions\" : \"src/definitions/\",\n\n          // source site theme\n          \"site\"        : \"src/site/\",\n\n          // source themes folder\n          \"themes\"      : \"src/themes/\"\n        },\n\n        \"output\": {\n          // packaged source (both compressed/uncompressed)\n          \"packaged\"     : \"dist/\",\n\n          // uncompressed source\n          \"uncompressed\" : \"dist/components/\",\n\n          // compressed source\n          \"compressed\"   : \"dist/components/\",\n\n          // output directory for theme assets\n          \"themes\"       : \"dist/themes/\"\n        },\n\n        // directory for gulp clean task\n        \"clean\"        : \"dist/\"\n      },\n\n      // when set to an integer permission, will set dist files with this file permission\n      \"permission\" : false,\n\n      // whether gulp watch/build should run RTLCSS\n      \"rtl\": false,\n\n      // will only include components with these names\n      \"components\": [\n        \"reset\",\n        \"site\",\n        \"button\",\n        \"container\",\n        \"divider\",\n        \"flag\",\n        \"header\",\n        \"icon\",\n        \"image\",\n        \"input\",\n        \"label\",\n        \"list\",\n        \"loader\",\n        \"rail\",\n        \"reveal\",\n        \"segment\",\n        \"step\",\n        \"breadcrumb\",\n        \"form\",\n        \"grid\",\n        \"menu\",\n        \"message\",\n        \"table\",\n        \"ad\",\n        \"card\",\n        \"comment\",\n        \"feed\",\n        \"item\",\n        \"statistic\",\n        \"accordion\",\n        \"checkbox\",\n        \"dimmer\",\n        \"dropdown\",\n        \"embed\",\n        \"modal\",\n        \"nag\",\n        \"popup\",\n        \"progress\",\n        \"rating\",\n        \"search\",\n        \"shape\",\n        \"sidebar\",\n        \"sticky\",\n        \"tab\",\n        \"transition\",\n        \"api\",        \n        \"state\",\n        \"visibility\"\n      ],\n      // whether to include special project maintainer tasks\n      \"admin\": false\n    }\n\n    </div>\n  </div>\n\n  <div class=\"no example\">\n    <h4>theme.config</h4>\n    <p>LESS uses a special configuration file <code>theme.config</code> which lets you specify what theme each component should use. If you have not generated this file yet, you will receive an error message when running build tools</p>\n    <p>You can learn more about <code>theme.config</code> by checking out the <a href=\"/usage/theming.html#using-packaged-themes\">theming guide</a></p>\n  </div>\n\n  <div class=\"no example\">\n    <h4>Importing Gulp Tasks</h4>\n    <p>See our <a href=\"/introduction/advanced-usage.html\">recipes section</a> for examples on how to import individual gulp tasks into your custom Gulpfile.</p>\n  </div>\n  <div class=\"no example\">\n    <h4>\n      Auto-Install & Continuous Integration\n      <div class=\"ui teal horizontal label\">New in 2.2</div>\n    </h4>\n    <p>We've added a new setting to <code>semantic.json</code> in 2.2 to help make working with a CLI, or other automated deployments more streamlined.</p>\n    <p>Specifying <code>autoInstall: true</code> in an environments <code>semantic.json</code> configuration will prevent any user prompting when running <code>npm install</code> allowing for automated deployment.</p>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/introduction/getting-started.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'started'\nstandalone  : true\norder       : 1\n\ntitle       : 'Getting Started'\ndescription : 'Getting up and running with Semantic UI'\ntype        : 'Main'\n---\n<script src=\"/javascript/started.js\"></script>\n\n<%- @partial('header') %>\n\n<div class=\"main ui intro container\">\n\n  <h2 class=\"ui dividing header\">Preface</h2>\n\n  <div class=\"no example\">\n\n    <h4 class=\"ui header\">Using Build Tools</h4>\n\n    <p>Semantic UI packaged Gulp build tools so your project can preserve its <a href=\"/usage/theming.html\">own theme changes</a>.</p>\n    <p>The easiest way to install Semantic UI is our NPM package which contains special install scripts to make setup interactive and updates seamless.</p>\n\n    <p>For installing with specific integrations like Ember, React, or Meteor, see our <a href=\"/introduction/integrations.html\">integration guide</a></p>\n    <p>For integrating Semantic UI tasks into your own build tools, or using a CDN see our <a href=\"/introduction/advanced-usage.html\">recipes</a> section.</p>\n\n  </div>\n  <div class=\"ui large info message\">\n    <div class=\"ui header\">Simpler Setup</div>\n    <p>If you are using Semantic UI as a dependency and just want to use our default theme, use our lighter <a href=\"https://github.com/Semantic-Org/Semantic-UI-CSS\" target=\"_blank\"><code>semantic-ui-css</code></a> or <a href=\"https://github.com/Semantic-Org/Semantic-UI-Less\" target=\"_blank\"><code>semantic-ui-less</code></a> repo. If you just need the files you can download them as a zip from GitHub.</p>\n    <a href=\"https://github.com/Semantic-Org/Semantic-UI-CSS/archive/master.zip\" class=\"ui secondary button\">Download Zip</a>\n    <a href=\"https://github.com/Semantic-Org/\" class=\"ui button\" target=\"_blank\">View all Semantic-Org Repos </a>\n  </div>\n\n  <h2 class=\"ui dividing header\">Installing</h2>\n\n\n  <div class=\"no example\">\n    <h4 class=\"ui header\">Install NodeJS</h4>\n    <p>If you are unfamiliar with setting up NodeJS you can follow the steps below, or check out the <a href=\"https://nodejs.org/download/\" target=\"_blank\">download page</a> on <a href=\"http://www.nodejs.org\" target=\"_blank\">nodejs.org</a></p>\n\n    <div class=\"ui secondary menu\">\n      <a data-tab=\"mac\" class=\"active item\">Mac</a>\n      <a data-tab=\"linux\" class=\"item\">Linux</a>\n      <a data-tab=\"win\" class=\"item\">Windows</a>\n    </div>\n    <div class=\"ui active basic tab vertical segment\" data-tab=\"mac\">\n      <h4>Option 1: Homebrew</h4>\n      <p>After installing <a href=\"http://brew.sh/\" target=\"_blank\">homebrew</a></p>\n      <div class=\"ignored code\" data-type=\"bash\">\n        brew install node\n      </div>\n      <h4>Option 2: Git</h4>\n      <div class=\"ignored code\" data-type=\"bash\">\n      git clone git://github.com/nodejs/node.git\n      cd node\n      ./configure\n      make\n      sudo make install\n      </div>\n    </div>\n    <div class=\"ui basic tab vertical segment\" data-tab=\"linux\">\n      <h4>Install via PPA</h4>\n      <p>Although <a href=\"http://www.ubuntuupdates.org/ppa/chris_lea_nodejs\" target=\"_blank\">Chris Lea's PPA</a> was once the best way to install node, it is now somewhat out of date.</p>\n      <p>The recommended path to install Semantic UI is using <a href=\"https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager\" target=\"_blank\">Joyent's package manager</a> guide.</p>\n      <h4>Ubuntu</h4>\n      <div class=\"ignored code\" data-type=\"bash\">\n        curl --silent --location https://deb.nodesource.com/setup_6.x | sudo bash -\n        sudo apt-get install --yes nodejs\n      </div>\n      <h4>Debian</h4>\n      <div class=\"ignored code\" data-type=\"bash\">\n        apt-get install curl\n        curl --silent --location https://deb.nodesource.com/setup_6.x | bash -\n        apt-get install --yes nodejs\n      </div>\n      <h4>Red Hat</h4>\n      <div class=\"ignored code\" data-type=\"bash\">\n      curl --silent --location https://rpm.nodesource.com/setup | bash -\n      yum -y install nodejs\n      </div>\n    </div>\n    <div class=\"ui basic tab vertical segment\" data-tab=\"win\">\n      <h4>Install the exe</h4>\n      <p>Download the <a href=\"http://nodejs.org/download/\">NodeJS executable</a>.</p>\n    </div>\n  </div>\n\n  <div class=\"no example\">\n    <h4>Install Gulp</h4>\n    <p>Semantic UI uses <a href=\"http://www.gulpjs.com\" target=\"_blank\">Gulp</a> to provide command line tools for building themed versions of the library with just the components you need.</p>\n    <p>Gulp is an NPM module and must be installed globally</p>\n    <div class=\"ignored code\" data-type=\"bash\">\n    npm install -g gulp\n    </div>\n  </div>\n\n  <div class=\"no example\">\n    <h4>Install Semantic UI</h4>\n    <p>Semantic UI is available in an eponymous package on NPM</p>\n    <div class=\"ui secondary menu\">\n      <a class=\"active item\" data-tab=\"video\">\n        Video\n      </a>\n      <a class=\"item\" data-tab=\"code\">\n        Code\n      </a>\n    </div>\n    <div class=\"ui active tab\" data-tab=\"video\">\n      <script type=\"text/javascript\" src=\"https://asciinema.org/a/22121.js\" id=\"asciicast-22121\" async></script>\n    </div>\n    <div class=\"ui tab\" data-tab=\"code\">\n      <div class=\"ignored code\" data-type=\"bash\">\n        npm install semantic-ui --save\n        cd semantic/\n        gulp build\n      </div>\n    </div>\n  </div>\n\n  <div class=\"no example\">\n    <h4>Include in Your HTML</h4>\n    <p>Running the gulp build tools will compile CSS and Javascript for use in your project. Just link to these files in your HTML along with the latest <a href=\"http://www.jquery.com\" target=\"_blank\">jQuery</a>.</p>\n    <div class=\"ignored code\" data-type=\"html\" data-escape=\"true\">\n      &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;semantic/dist/semantic.min.css&quot;&gt;\n      &lt;script\n  src=\"https://code.jquery.com/jquery-3.1.1.min.js\"\n  integrity=\"sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=\"\n  crossorigin=\"anonymous\"&gt;&lt;/script&gt;\n      &lt;script src=&quot;semantic/dist/semantic.min.js&quot;&gt;&lt;/script&gt;\n    </div>\n  </div>\n  <h2 class=\"ui dividing header\">Updating</h2>\n\n  <div class=\"no example\">\n    <h4>Updating via NPM</h4>\n    <p>Semantic's NPM install script will automatically update Semantic UI to the latest version while preserving your site and packaged themes.</p>\n    <div class=\"ignored code\" data-type=\"bash\">\n      npm update\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Next Steps</h2>\n\n  <div class=\"no example\">\n    <h4>All Set!</h4>\n    <p>Well done! Semantic UI is now ready to be used.</p>\n\n    <div class=\"three column divided stackable center aligned ui grid\">\n      <div class=\"column\">\n        <div class=\"ui icon header\">\n          <i class=\"rocket circular icon\"></i>\n          See how to use <a href=\"/introduction/build-tools.html\">gulp commands</a> and build tools\n        </div>\n      </div>\n      <div class=\"column\">\n        <div class=\"ui icon header\">\n          <i class=\"theme circular icon\"></i>\n          Learn about <a href=\"/usage/theming.html\">changing themes</a>\n        </div>\n      </div>\n      <div class=\"column\">\n        <div class=\"ui icon header\">\n          <i class=\"food circular icon\"></i>\n          See <a href=\"/introduction/advanced-usage.html\">recipes</a> for using Semantic UI in your project\n        </div>\n      </div>\n    </div>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/introduction/glossary.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'started'\nstandalone  : true\norder       : 5\n\ntitle       : 'Glossary'\ndescription : 'Jargon specific to Semantic UI'\ntype        : 'Introduction'\n---\n<%- @partial('header') %>\n\n<div class=\"main ui intro container\">\n\n<h2 class=\"ui header\">Terminology</h2>\n\n<div class=\"no example\">\n  <h4>Types of Components</h4>\n  <p>Semantic UI classifies components into different definition types depending on its qualities. Each of these five types uses a unique definition format.</p>\n  <table class=\"ui large very padded definition table\">\n    <tbody>\n      <tr>\n        <td class=\"three wide\">Globals</td>\n        <td>\n          Globals are styles that are applied across a site. These include things like CSS resets, and sitewide font, link and sizing defaults.</p>\n          <p>Most importantly, globals include site-wide <a href=\"/usage/theming.html\">theming variables</a> that other components can inherit and modify.</td>\n      </tr>\n      </tr>\n      <tr>\n        <td>Element</td>\n        <td>\n          UI elements are page elements with a single function. They can exist alone or in a plural form with elements sharing qualities.</p>\n          <p>For example, a group of <a href=\"/elements/button.html\">buttons</a> may use <code>ui red buttons</code> as a grouping with individual <code>ui button</code> children.</td>\n      </tr>\n      <tr>\n        <td>Collection</td>\n        <td>\n          <p>Collections are heterogeneous groups of components which are usually found together. They describe a list of \"usual suspects\" which appear in a certain context. They may include and extend other ui elements for use in certain contexts—for example <a href=\"/collections/form.html\">form</a> may extend <a href=\"/modules/dropdown.html\">dropdown</a> or <a href=\"/elements/input.html\">input</a>—as well as include their own content.</p>\n        </td>\n      </tr>\n      <tr>\n        <td>Views</td>\n        <td>\n          <p>A view is a convention for presenting specific types of content that is usually consistent across a website. These include things like <a href=\"/views/comment.html\">comments</a>, <a href=\"/views/feed.html\">activity feeds</a>, or <a href=\"/views/card.html\">cards</a>.</p>\n        </td>\n      </tr>\n      <tr>\n        <td>Modules</td>\n        <td>\n          <p>Modules are components that include both a definition of how they appear and how they behave. These include components like, accordions, dropdowns, and popups.</p>\n        </td>\n      </tr>\n      <tr>\n        <td>Behaviors</td>\n        <td>\n          <p>Behaviors are standalone Javascript components that describe how page elements should act, but not how they should appear. Behaviors include things like form validation, state management, and API request routing.</p>\n        </td>\n      </tr>\n    </tbody>\n  </table>\n</div>\n\n<div class=\"no example\">\n  <h4>Project Terminology</h4>\n  <p>Semantic UI classifies components into separate definition groupings.<p>\n\n  <table class=\"ui large very padded definition table\">\n    <tbody>\n      <tr>\n        <td class=\"three wide\">Component</td>\n        <td>\n          A component is a general term used to refer to any user interface element packaged for distribution.\n        </td>\n      </tr>\n      <tr>\n        <td>Definition</td>\n        <td>\n          <p>A definition is a set of CSS and Javascript which describe a component's essential qualities.</p>\n          <p>Definition use variables to express arbitrary parts of a component's appearance so that they can be changed with themes.</p>\n        </td>\n      </tr>\n      <tr>\n        <td>ui</td>\n        <td>\n          <p><code>ui</code> is a special class name used to distinguish parts of components from components.</p>\n          <p>For example, a <a href=\"/elements/list.html\">list</a> will receive the class <code>ui list</code> because it has a corresponding definition, however a list item, will receive just the class <code>item</code>.</p>\n          <p>The ui class name helps encapsulate CSS rules by making sure all 'parts of a component' are defined in context to a 'whole' component.</p>\n          <p>It also helps make scanning unknown code simpler. If you see <code>ui</code> you know you are looking at a component.</p>\n        </td>\n      </tr>\n    </tbody>\n  </table>\n</div>\n\n<div class=\"no example\">\n  <h4>Definition Terminology</h4>\n  <p>When browsing Semantic UI definitions, you will see content grouped into different sections. These parts of a definition are consistent across definitions, and are common patterns for describing components.<p>\n\n  <table class=\"ui large very padded definition table\">\n    <tbody>\n      <tr>\n        <td class=\"three wide\">Component</td>\n        <td>\n          A component is a general term used to refer to any user interface element packaged for distribution.\n        </td>\n      </tr>\n      <tr>\n        <td>Definition</td>\n        <td>\n          <p>A definition is a set of CSS and Javascript which describe a component's essential qualities.</p>\n          <p>Definition use variables to express arbitrary parts of a component's appearance so that they can be changed with themes.</p>\n        </td>\n      </tr>\n      <tr>\n        <td>Types</td>\n        <td>\n          <p>Types are versions of an element that modify the element's standard appearance.</p>\n          <p>Types cannot be used simultaneously on the same element. For example, \"cats\" and \"dogs\" are types of animals, but are <b>mutually exclusive</b>.</p>\n        </td>\n      </tr>\n      <tr>\n        <td>Variations</td>\n        <td>\n          <p>Variations modify qualities of an element like size, or color.</p>\n          <p>Variations are <b>mutually inclusive</b>, and can be used together to modify an element.</p>\n        </td>\n      </tr>\n      <tr>\n        <td>Content</td>\n        <td>\n          <p>Content are parts which only have meaning in the context of a component. Content use names which describe the type of expected content like header, description, menu, or item.</p>\n          <p>Content inside a collection or view often includes stubbed versions of other components. For example cards let you use <a href=\"/views/card.html#image\">image content</a>, which can be extended by using <a href=\"/elements/image.html#variations\">ui image variations</a>.\n        </td>\n      </tr>\n      <tr>\n        <td>States</td>\n        <td>\n          <p>States are modifications to an element that help indicate a change in <a href=\"http://www.usabilityfirst.com/glossary/affordance/\" target=\"_blank\">affordances</a>. Common states include <code>loading</code>, <code>disabled</code>, and <code>active</code>.</p>\n        </td>\n      </tr>\n      <tr>\n        <td>Behaviors</td>\n        <td>\n          <p>Behaviors are actions that a component can perform. Behaviors are represented by simple phrases like \"set value\" or \"increment\", that can be invoked in Javascript. Behaviors are automatically converted from spaced lowercase phrases to internal Javascript methods at invocation.</p>\n        </td>\n      </tr>\n    </tbody>\n  </table>\n</div>\n\n<div class=\"no example\">\n  <h4>General Terms</h4>\n\n  <p>These terms are general programming terms that may be used without explanation in other documentation pages.</p>\n\n  <table class=\"ui large very padded definition table\">\n    <tr>\n      <td class=\"three wide\">Namespace</td>\n      <td>A name given to an element for the explicit purpose of containing the application of properties.</p>\n      <p>In Semantic UI, components are given the class name <code>ui</code> to help distinguish them from parts of elements in code, and to provide a namespace for definitions which can limit the scope of CSS rules.</td>\n    </tr>\n    <tr>\n      <td>Gulp</td>\n      <td>Gulp is a tool for automating command line tasks <a href=\"http://www.gulpjs.com\" target=\"_blank\">Gulpjs.com</a></td>\n    </tr>\n    <tr>\n      <td>NPM</td>\n      <td>NPM is a package manager used for downloading Node JS packages.</td>\n    </tr>\n    <tr>\n      <td>Node JS</td>\n      <td>Node is a event driven programming language frequently used to run command line tools for front end development. <a href=\"http://www.nodejs.org\" target=\"_blank\">nodejs.org</a></td>\n    </tr>\n  </table>\n\n</div>\n\n</div>\n"
  },
  {
    "path": "server/documents/introduction/integrations.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'started'\nstandalone  : true\norder       : 2\n\ntitle       : 'Integrations'\ndescription : 'Using Semantic UI with Other Libraries'\ntype        : 'Introduction'\n---\n<%- @partial('header') %>\n\n<div class=\"main ui intro container\">\n\n  <h2 class=\"ui dividing header\">\n    React\n  </h2>\n\n  <div class=\"example\">\n    <h4>Contribute to React Development</h4>\n    <p>Semantic UI React bindings are still in development, but are available for most components.</p>\n    <a href=\"https://github.com/Semantic-Org/Semantic-UI-React\" target=\"_blank\" class=\"ui button\"><i class=\"github icon\"></i>Visit React Repo</a>\n  </div>\n\n  <h2 class=\"ui dividing header\">\n    Meteor\n  </h2>\n\n  <div class=\"no example\">\n    <h4 class=\"ui header\">Install via Atmosphere</h4>\n    <p>Install the <a href=\"https://atmospherejs.com/semantic/ui\">Semantic UI package</a> from atmosphere.</p>\n    <div class=\"code\" data-type=\"bash\">\n      meteor add semantic:ui\n    </div>\n    <p>The next step will differ depending on what version of Meteor you are running. Continue to the section relevant to your version of Meteor.</p>\n    <h4 class=\"ui header\">(Meteor &lt;1.3) Install less-autoprefixer package</h4>\n    <p>You will need a special package less-autoprefixer, to add vendor prefixes to your LESS pipeline.</p>\n    <div class=\"ui ignored info message\">\n      Since <code>flemay:less-autoprefixer</code> compiles LESS files you don't need any other less package.\n    </div>\n    <div class=\"code\" data-type=\"bash\">\n      meteor add flemay:less-autoprefixer\n    </div>\n    <p>Continue to the \"Create a custom.semantic.json file\" section</p>\n    <h4 class=\"ui header\">(Meteor 1.3+) Install less and postcss packages</h4>\n    <p>Remove the standard-minifier-css package.</p>\n    <div class=\"code\" data-type=\"bash\">\n      meteor remove standard-minifier-css\n    </div>\n    <p>Install the less and postcss packages.</p>\n    <div class=\"code\" data-type=\"bash\">\n      meteor add less juliancwirko:postcss\n    </div>\n    <p>To configure the postcss package, add the following to your <code>package.json</code> file and save it.</p>\n    <div class=\"code\" data-type=\"json\">\n      {\n        \"devDependencies\": {\n          \"autoprefixer\": \"^6.3.1\"\n        },\n        \"postcss\": {\n          \"plugins\": {\n            \"autoprefixer\": {\"browsers\": [\"last 2 versions\"]}\n          }\n        }\n      }\n    </div>\n    <p>To finish setting up the postcss package, install the new autoprefixer NPM package.</p>\n    <div class=\"code\" data-type=\"bash\">\n      meteor npm install\n    </div>\n  </div>\n  <div class=\"no example\">\n    <h4 class=\"ui header\">Create a custom.semantic.json file</h4>\n    <p>With meteor stopped:</>\n    <div class=\"code\" data-type=\"bash\">\n      touch client/lib/semantic-ui/custom.semantic.json\n    </div>\n    <p><code>custom.semantic.json</code> is a special file used to determine which themes and components to include in your project's build.</p>\n    <p>To remove a component from the pipeline, simply set the boolean value to <code>false</code></p>\n    <div class=\"code\" data-type=\"json\">\n      {\n      \"definitions\": {\n        \"accordion\" : true,\n        \"ad\"        : true,\n        \"api\"       : true,\n        /* etc */\n      },\n      \"themes\": {\n        \"amazon\"     : false,\n        \"basic\"      : false,\n        \"bookish\"    : false,\n        \"bootstrap3\" : false,\n        \"chubby\"     : false,\n        \"classic\"    : false,\n        \"default\"    : true,\n        /* etc */\n      }\n    </div>\n  </div>\n  <div class=\"no example\">\n    <h4>Start Meteor / Generate</h4>\n\n    <p>Every time Meteor starts or refreshes it calls the package semantic:ui to generate Semantic UI.</p>\n\n    <p>The package has a uses the diff between <code>custom.semantic.json</code> and <code>.custom.semantic.json</code> to avoid regenerating files unnecessarily.</p>\n\n    <p>If the file <code>.custom.semantic.json</code> does not exist or it is different than custom.semantic.json then it will generate Semantic UI.</p>\n  </div>\n  <div class=\"no example\">\n    <h4>Customize Site Variables</h4>\n    <p>Semantic UI meteor includes a site theme, <code>site/</code> which can be used to customize less variables for your site. These files are optional, and can safely be removed if customization is not necessary.</p>\n    <p>Visit our <a href=\"/usage/theming.html\">theming guide</a> to learn more about theming.</p>\n  </div>\n  <div class=\"no example\">\n    <h4>Issues & Debugging</h4>\n    <p>For help with Semantic UI Meteor, and for the latest updates, please visit the repository home on GitHub</p>\n    <a href=\"https://github.com/Semantic-Org/Semantic-UI-Meteor\" target=\"_blank\" class=\"ui button\"><i class=\"github icon\"></i> Visit Meteor Repo</a>\n  </div>\n\n  <h2 class=\"ui header\">\n    Ember\n  </h2>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Installing via CLI</h4>\n    <p>Include the library as an NPM dependency, from within an ember-cli app.</p>\n\n    <p>If you are using Ember CLI <code>1.13-2.X</code>\n    <div class=\"code\">\n      ember install semantic-ui-ember\n    </div>\n    <p>If you are using an older version <code>< 0.1.5</code>\n    <div class=\"code\">\n    npm install --save-dev Semantic-Org/Semantic-UI-Ember\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Run the Library's Blueprint</h4>\n    <div class=\"code\">\n      ember generate semantic-ui-ember\n    </div>\n  </div>\n  <div class=\"example\">\n    <h4 class=\"ui header\">Get Coding</h4>\n    <p>For example of individual components check out the GitHub repository</p>\n    <a href=\"https://github.com/Semantic-Org/Semantic-UI-Ember\" target=\"_blank\" class=\"ui button\"><i class=\"github icon\"></i> Visit Ember Repo</a>\n  </div>\n\n  <h2 class=\"ui dividing header\">\n    Angular\n  </h2>\n\n  <div class=\"example\">\n    <h4>Contribute to Angular Development</h4>\n    <p>Semantic UI angular bindings are still in development, but are available for some components</p>\n    <a href=\"https://github.com/Semantic-Org/Semantic-UI-Angular\" target=\"_blank\" class=\"ui button\"><i class=\"github icon\"></i>Visit Angular Repo</a>\n  </div>\n</div>\n"
  },
  {
    "path": "server/documents/introduction/new.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'new'\nstandalone  : true\norder       : 1\n\ntitle       : 'New in 2.4'\ndescription : 'An introduction to new features found in the latest release'\ntype        : 'Main'\n---\n\n<%- @partial('header',  { tabs: { twoFour: 'New in 2.4', twothree: '2.3', twotwo: '2.2', twoone: '2.1', two: '2.0' } }) %>\n<script src=\"/javascript/loader.js\"></script>\n<script src=\"/javascript/new.js\"></script>\n\n<div class=\"main ui intro container\">\n  <div class=\"ui active tab\" data-tab=\"twoFour\">\n    <h2 class=\"ui dividing header\">\n      Solving Empty State\n    </h2>\n    <p>Semantic <code>2.4</code> brings a new components for handling content loading <a href=\"/elements/placeholder.html\"><code>ui placeholder</code></a>, as well as a new type of <code>segment</code> used to reserve space for content: <a href=\"/elements/segment.html#empty\"><code>ui placeholder segment</code></a>.</p>\n\n    <P>Additionally several important component updates are included in this release.\n    <div class=\"ui large bulleted list\">\n      <div class=\"item\">Modals have been re-architected to use hybrid flex support, falling back to JS positioning for more complex use-cases (or older browsers). </div>\n      <div class=\"item\">Dropdowns now include a <code>clearable</code> setting for letting users reset dropdowns to its empty state.</div>\n    </div>\n\n\n    <div class=\"ui ignored warning message\">If you are upgrading from a previous SUI version, be sure to add <code>@placeholder</code> to your <a href=\"/introduction/build-tools.html\"><code>theme.config</code></a> to include the placeholder component in your code.</div>\n\n    <h2 class=\"ui dividing header\">\n      New UI Component\n    </h2>\n    <div class=\"content example\">\n      <h4 class=\"ui header\">\n        Placeholders\n      </h4>\n      <P><a href=\"/elements/placeholder.html\">Placeholders</a> can be used to reduce the jarringness, and perceived load time when loading new content</p>\n      <%- @partial('examples/content-loader') %>\n    </div>\n    <div class=\"another example\">\n      <div class=\"ui relaxed divided list\">\n        <div class=\"item\">\n          <i class=\"large github middle aligned icon\"></i>\n          <div class=\"content\">\n            <a class=\"header\">Semantic-Org/Semantic-UI-Docs</a>\n            <div class=\"description\">Updated 22 mins ago</div>\n          </div>\n        </div>\n        <div class=\"item\">\n          <i class=\"large github middle aligned icon\"></i>\n          <div class=\"content\">\n            <div class=\"ui placeholder\">\n              <div class=\"paragraph\">\n                <div class=\"medium line\"></div>\n                <div class=\"short line\"></div>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"item\">\n          <i class=\"large github middle aligned icon\"></i>\n          <div class=\"content\">\n            <div class=\"ui placeholder\">\n              <div class=\"paragraph\">\n                <div class=\"medium line\"></div>\n                <div class=\"short line\"></div>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"item\">\n          <i class=\"large github middle aligned icon\"></i>\n          <div class=\"content\">\n            <div class=\"ui placeholder\">\n              <div class=\"paragraph\">\n                <div class=\"medium line\"></div>\n                <div class=\"short line\"></div>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"item\">\n          <i class=\"large github middle aligned icon\"></i>\n          <div class=\"content\">\n            <div class=\"ui placeholder\">\n              <div class=\"paragraph\">\n                <div class=\"medium line\"></div>\n                <div class=\"short line\"></div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        Placeholder Segment\n      </h4>\n      <p><a href=\"/elements/segment.html#placeholder\">Placeholder segments</a> allow you to reserve space in your design for where content is intended to appear. This is useful when a page should prompt a user about its intended functionality, even when no content is present.</p>\n      <div class=\"ui placeholder segment\">\n        <div class=\"ui icon header\">\n          <i class=\"dont icon\"></i>\n          No users have been added yet\n        </div>\n        <div class=\"ui primary button\">Add User</div>\n      </div>\n    </div>\n    <div class=\"another example\">\n      <div class=\"ui placeholder segment\">\n        <div class=\"ui stackable two column center aligned grid\">\n          <div class=\"ui vertical divider\">Or</div>\n          <div class=\"middle aligned row\">\n            <div class=\"column\">\n              <div class=\"ui icon header\">\n                <i class=\"search icon\"></i>\n                Find Country\n              </div>\n              <div class=\"field\">\n                <div class=\"ui search\">\n                  <div class=\"ui icon input\">\n                    <input class=\"prompt\" type=\"text\" placeholder=\"Search countries...\">\n                    <i class=\"search icon\"></i>\n                  </div>\n                  <div class=\"results\"></div>\n                </div>\n              </div>\n            </div>\n            <div class=\"column\">\n              <div class=\"ui icon header\">\n                <i class=\"world icon\"></i>\n                Add New Country\n              </div>\n              <div class=\"ui primary button\">\n                Create\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n    <h2 class=\"ui dividing header\">\n      New Features\n    </h2>\n    <div class=\"clearable no example\">\n      <h4 class=\"ui header\">\n        Clearable Dropdowns\n      </h4>\n      <p>Now dropdowns can specify that their content can be cleared with <code>clearable: true</code>.</p>\n\n      <div class=\"ui search selection dropdown\">\n        <input type=\"hidden\" name=\"country\" value=\"kr\">\n        <div class=\"text\">\n          <i class=\"kr flag\"></i>South Korea\n        </div>\n        <i class=\"dropdown icon\"></i>\n        <%- @partial('examples/single/flag-menu') %>\n      </div>\n      <div class=\"ui divider\"></div>\n      <div class=\"ui secondary segment\">\n        Show me\n        <div class=\"ui inline scrolling dropdown\">\n          <input type=\"hidden\" name=\"skill\" value=\"css\">\n          <div class=\"text\">css</div>\n          <i class=\"dropdown icon\"></i>\n          <div class=\"menu\">\n            <%- @partial('examples/single/preset-menu') %>\n          </div>\n        </div>\n        classes currently available.\n      </div>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        Improved Flexbox Modals\n      </h4>\n      <p>Although flex-box were introduced in <code>2.3.0</code> there were limitations which may have prevented some advanced use-cases. For example, flexbox modals did not support modals that used <code>detachable: false</code> and werent directly inside dimmer flex containers. Also some flex browsers (IE11) do not support absolutely positioned elements inside flex containers, so multiple overlapping modals could not be used in those cases.</p>\n      <p>\n        <code>2.4.0</code> solves this by introducing a hybrid flex system, that will fall back to javascript positioning for browsers or layouts that aren't compatible with flex.\n      </p>\n    </div>\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"twothree\">\n    <h2 class=\"ui dividing header\">A New Approach</h2>\n\n    <p>After an extended period of patches, Semantic UI <code>2.3</code> marks the return to significant feature changes for the project.</p>\n    <p>In upcoming Semantic releases we will be releasing more frequently, but with smaller changesets, to make it easier for users to upgrade and adjust to global changes.</p>\n\n    <h2 class=\"ui dividing header\">New Features</h2>\n    <div class=\"no icon example\">\n\n      <h4 class=\"ui header\">Font Awesome 5.0 &amp; Better Icon Searching</h4>\n      <p>In <code>2.3</code> <a href=\"/elements/icon.html\">icons</a> now include a full port of <a href=\"https://fontawesome.com/\" target=\"_blank\">Font Awesome</a> <code>5.0.6</code>, including 929 icons.</p>\n      <p>Icon categories now match icon categories in Font Awesome's documentation, making it easier to find icons between docs.</p>\n      <div class=\"ui doubling five column vertically padded grid\">\n        <div class=\"column\"><i class=\"smile icon\"></i>Smile</div>\n        <div class=\"column\"><i class=\"smile outline icon\"></i>Smile Outline</div>\n        <div class=\"column\"><i class=\"hand rock icon\"></i>Hand Rock </div>\n        <div class=\"column\"><i class=\"hand paper icon\"></i>Hand Paper </div>\n        <div class=\"column\"><i class=\"hand scissors icon\"></i>Hand Scissors</div>\n      </div>\n      <p>Semantic UI <a href=\"/elements/icon.html\">icon docs</a> now includes a global icon search with easy copy and paste access to html</p>\n    </div>\n\n\n    <div class=\"no modal example\">\n      <h4 class=\"ui header\">Flexbox Modals and Dimmers</h4>\n\n      <p>Semantic UI <code>2.3</code> includes a rewrite of modal to include non-js flexbox positioning for vertical centering. No longer will you have to call <code>$('.ui.modal').modal('refresh')</code> if content height changes to recenter.</p>\n\n      <p>In addition there's a new setting <code>centered: false</code> which makes it easier to do top aligned modals when the internal may be dynamic and you dont want content to shift vertically.</p>\n\n\n      <div class=\"ui special modal\">\n        <div class=\"header\">\n          Top Aligned Modal\n        </div>\n        <div class=\"content\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n          <div class=\"ui hidden divider\"></div>\n        </div>\n        <div class=\"actions\">\n          <div class=\"ui button\">\n            Cancel\n          </div>\n          <div class=\"ui primary right labeled icon button\">\n            Submit\n            <i class=\"checkmark icon\"></i>\n          </div>\n        </div>\n      </div>\n      <a class=\"ui button\" data-url=\"/images/large-pdf.pdf\">\n        Open Top Aligned Modal\n      </a>\n      <div class=\"evaluated code\" data-type=\"javascript\">\n        $('.ui.special.modal')\n          .modal({\n            centered: false\n          })\n          .modal('attach events', '.modal.example .button')\n        ;\n      </div>\n    </div>\n\n    <div class=\"no modal example\">\n      <h4 class=\"ui header\">New Transitions</h4>\n      <p>\n        <a href=\"/modules/transition.html\">Transition</a> now includes <code>zoom</code> and <code>glow</code>. Glow is useful for highlighting elements on page,\n      </p>\n      <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('zoom')\n        ;\n      </div>\n      <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('glow')\n        ;\n      </div>\n      <img src=\"/images/leaves/7.png\" class=\"ui autumn leaf medium image\">\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Global Font Weight Variables</h4>\n      <p>Theming now uses two no global variables <code>@bold</code> and <code>@normal</code> making it easier to modify font weights in a more complex font stack</p>\n      <div class=\"code\" data-type=\"less\" data-title=\"site.variables\">\n        /* Use some custom font weights */\n        @bold: 600;\n        @normal: 400;\n      </div>\n\n    </div>\n    <div class=\"local-category example\">\n      <h4 class=\"ui header\">Local Category Search</h4>\n      <p>You can now use category search with the <code>source</code> option without having to add API callbacks</p>\n      <div class=\"ui search\">\n        <div class=\"ui icon input\">\n          <input class=\"prompt\" type=\"text\" placeholder=\"Search countries...\">\n          <i class=\"search icon\"></i>\n        </div>\n        <div class=\"results\"></div>\n      </div>\n      <div class=\"evaluated code\" data-type=\"javascript\">\n        var categoryContent = [\n          { category: 'South America', title: 'Brazil' },\n          { category: 'South America', title: 'Peru' },\n          { category: 'North America', title: 'Canada' },\n          { category: 'Asia', title: 'South Korea' },\n          { category: 'Asia', title: 'Japan' },\n          { category: 'Asia', title: 'China' },\n          { category: 'Europe', title: 'Denmark' },\n          { category: 'Europe', title: 'England' },\n          { category: 'Europe', title: 'France' },\n          { category: 'Europe', title: 'Germany' },\n          { category: 'Africa', title: 'Ethiopia' },\n          { category: 'Africa', title: 'Nigeria' },\n          { category: 'Africa', title: 'Zimbabwe' },\n        ];\n        $('.local-category.example .ui.search')\n          .search({\n            type: 'category',\n            source: categoryContent,\n            searchFields: [\n              'title',\n              'category'\n            ]\n          })\n        ;\n      </div>\n    </div>\n    <div class=\"no centering example\">\n      <h4 class=\"ui header\">Arrow Aligment on Small Popups</h4>\n      <p>Semantic <a href=\"/modules/popup.html\">popups</a> now detects when horizontally aligning the popup on it's arrow is more reasonable than matching edges with a popup.</p>\n      <div class=\"ui info message\">\n        To use this feature be sure to specify <code>movePopup: false</code> in your settings\n      </div>\n      <img src=\"http://oi66.tinypic.com/2zr2ckk.jpg\" class=\"ui image\">\n\n      <div class=\"ui divider\"></div>\n      <img src=\"/images/avatar/small/elliot.jpg\" data-title=\"Elliot Fu\" data-content=\"Elliot has been a member since July 2012\" class=\"ui avatar image\">\n      <div class=\"evaluated code\" data-type=\"javascript\">\n        $('.centering.example .avatar.image').popup();\n      </div>\n    </div>\n    <div class=\"complex-popup no example\">\n      <h4 class=\"ui header\">Popups Support Multiple Coordinate Systems</h4>\n      <p>Popups now can correctly place elements with two different coordinate systems. These are typically caused by having a parent element with css properties <code>transform</code> or <code>position</code>.</p>\n      <div id=\"one\">\n        <p>Button is in here</p>\n        <div class=\"ui button\">Button</div>\n      </div>\n      <div id=\"two\">\n        <p>Popup is in here</p>\n        <div class=\"ui popup\">\n          <h4 class=\"ui header\">\n            Test\n          </h4>\n          <p>This popup now appears correct without having to move the popup to the same coordinate system by moving the DOM element.</p>\n        </div>\n      </div>\n      <div class=\"code\" data-type=\"html\">\n        <div id=\"one\">\n          <p>Button is in here</p>\n          <div class=\"ui button\">Button</div>\n        </div>\n        <div id=\"two\">\n          <p>Popup is in here</p>\n          <div class=\"ui popup\">\n            <h4 class=\"ui header\">\n              Test\n            </h4>\n            <p>This popup now appears correct without having to move the popup to the same coordinate system by moving the DOM element.</p>\n          </div>\n        </div>\n      </div>\n      <div class=\"code\" data-type=\"css\">\n        /* Activating element is inside #one with different positioning context */\n        #one {\n          display: block;\n          position: relative;\n          padding: 50px 100px;\n          background-color: #F0F0F0;\n        }\n        /* Popup is inside two with position relative (creating another positioning context) */\n        #two {\n          display: block;\n          background-color: #E2EAE4;\n          position: relative;\n          top: 10px;\n          padding: 50px 8px;\n        }\n      </div>\n      <div class=\"evaluated code\" data-type=\"javascript\">\n        $('.complex-popup.example .ui.button')\n          .popup({\n            movePopup: false,\n            popup: $('.complex-popup.example .popup')\n          })\n        ;\n      </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">New Matching Options</h4>\n      <p>In addition, search now includes three tiers of matched results, similar to the options available in dropdown. Fuzzy results now are turned off by the new default <code>fullTextSearch: 'exact'</code> </p>\n      <div class=\"ui bulleted list\">\n        <div class=\"item\">Query matches the start of field exactly</div>\n        <div class=\"item\">\n          Query matches any part of field <div class=\"ui teal label\">New</div>\n        </div>\n        <div class=\"item\">Query \"fuzzy\" matches field</div>\n      </div>\n      <div class=\"ignored code\" data-type=\"javascript\">\n        $('.ui.search')\n          .search({\n            fullTextSearch: 'exact' // only matches exact matches (no fuzzy matching)\n          })\n        ;\n      </div>\n    </div>\n\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"twotwo\">\n    <h2 class=\"ui dividing header\">By The Numbers</h2>\n    <p><code>2.2</code> represents nearly a half year of updates, many new features, and bug patches.</p>\n    <div class=\"ui large bulleted list\">\n      <div class=\"item\"><b>124</b> <a href=\"https://github.com/Semantic-Org/Semantic-UI/issues?q=is%3Aissue+milestone%3A2.1+is%3Aclosed\" target=\"_blank\">closed issues</a></div>\n      <div class=\"item\"><b>40</b> new features</div>\n      <div class=\"item\"><b>70</b> bug fixes</div>\n    </div>\n\n    <p>For the complete list of bugs, their accompanying issue threads and the fixes please consult the release notes</p>\n    <a class=\"ui button\" href=\"https://github.com/Semantic-Org/Semantic-UI/blob/master/RELEASE-NOTES.md#version-220---june-26-2016\" target=\"_blank\">Release Notes</a>\n\n    <h2 class=\"ui dividing header\">Project Changes</h2>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Critical Bug Fixes</h4>\n\n      <p><code>2.2</code> brings many new bug fixes. For a complete list please check out our release notes. Here is a highlight of some critical bugs</p>\n\n      <div class=\"ui styled bug accordion\">\n        <div class=\"title\">\n          <i class=\"dropdown icon\"></i>\n          View Critical Bug List\n        </div>\n        <div class=\"content\">\n          <div class=\"ui large relaxed bulleted list\">\n            <div class=\"item\">\n              <b>All UI</b> - Using <code>component('setting, {})</code> to add multiple settings as an object literal, for example <code>error: {}</code>, will now deep extend the existing object instead of replacing it.\n            </div>\n            <div class=\"item\">\n              <b>API</b> - <code>beforeSend</code> would not correctly cancel request when <code>return false;</code> is used in callback.\n            </div>\n            <div class=\"item\">\n              <b>API</b> - <code>cache: 'local'</code> would not return the localstorage cached results in some cases\n            </div>\n            <div class=\"item\">\n              <b>Divider</b> - Descenders like \"g\" are cut off in <code>horizontal divider</code>\n            </div>\n            <div class=\"item\">\n              <b>Dropdown</b> - <code>forceSelection</code> will now automatically select values with multi dropdowns. When using <code>userAdditions</code> setting it will now automatically tokenize the current entered value\n            </div>\n            <div class=\"item\">\n              <b>Dropdown</b> - <code>search selection</code> would not let you move back in an entered search string with left arrow\n            </div>\n            <div class=\"item\">\n              <b>Dropdown</b> - Fixed issue where value set using javascript DOM metadata would be cleared when a message or user addition triggered <code>refresh</code>\n            </div>\n            <div class=\"item\">\n              <b>Form Validation / Dropdown</b> - Using \"enter\" key in a <code>search dropdown</code> could cause a form to be submitted\n            </div>\n            <div class=\"item\">\n              <b>Form Validation</b> - Fix issue with some foreign email addresses with extended charsets causing email validation to fail\n            </div>\n            <div class=\"item\">\n              <b>Form Validation</b> - Revalidating a field <code>on: blur</code> could cause fields not yet interacted with to be validated\n            </div>\n            <div class=\"item\">\n              <b>Form</b> - Fixed issue with <code>(x) fields</code> and <code>equal width</code> fields where middle rows would be slightly smaller because they include both left and right padding in % width. (Edges only have one side padding). Field groups now use negative margins instead.\n            </div>\n            <div class=\"item\">\n              <b>Popup</b> - Fixed issue where clicking element inside popup removed from DOM (like clicking a multi select label) would cause popup to close\n            </div>\n            <div class=\"item\">\n              <b>Rail</b> - Fixed incorrect width for <code>close rail</code> and <code>very close rail</code> caused by variable addition with mixed units <code>px</code> + <code>em</code>\n            </div>\n            <div class=\"item\">\n              <b>Search</b> - Fixed bug where a previously XHR query could cause the next one to fail depending on the latency of the request.\n            </div>\n            <div class=\"item\">\n              <b>Search</b> - Fixed an issue where <code>onResult</code> returning <code>false</code> would not prevent the search menu from hiding. Clicking on an empty results message will also no longer close the search results.\n            </div>\n            <div class=\"item\">\n              <b>Sticky/Visibility</b> -  Added mutation observer to teardown element with <code>destroy</code> if removed from DOM context, fixing a possible memory leak\n            </div>\n            <div class=\"item\">\n              <b>Video</b> - Fixed issue with <code>.video('change')</code> behavior not properly changing video.\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n\n    <h2 class=\"ui dividing header\">New Features</h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">CSS-Only Tooltips</h4>\n      <p>2.2 includes CSS only popups that work without JS initialization using the <code>data-tooltip</code> property on any element. CSS tooltips even support inversion and specified positioning.</p>\n      <div class=\"ui icon button\" data-tooltip=\"Add users to your feed\" data-delay=\"500\">\n        <i class=\"add icon\"></i>\n      </div>\n      <div class=\"ui icon button\" data-tooltip=\"Add users to your feed\" data-inverted>\n        <i class=\"add icon\"></i>\n      </div>\n      <div class=\"ui button\" data-tooltip=\"Add users to your feed\" data-position=\"top left\">\n        Top Left\n      </div>\n      <div class=\"ui button\" data-tooltip=\"Add users to your feed\" data-position=\"top center\">\n        Top Center\n      </div>\n      <div class=\"ui button\" data-tooltip=\"Add users to your feed\" data-position=\"top right\">\n        Top Right\n      </div>\n      <div class=\"ui divider\"></div>\n      <div class=\"ui button\" data-tooltip=\"Add users to your feed\" data-position=\"bottom left\">\n        Bottom Left\n      </div>\n      <div class=\"ui button\" data-tooltip=\"Add users to your feed\" data-position=\"bottom center\">\n        Bottom Center\n      </div>\n      <div class=\"ui button\" data-tooltip=\"Add users to your feed\" data-position=\"bottom right\">\n        Bottom Right\n      </div>\n      <div class=\"ui divider\"></div>\n      <div class=\"ui button\" data-tooltip=\"Add users to your feed\" data-position=\"right center\">\n        Right Center\n      </div>\n      <div class=\"ui button\" data-tooltip=\"Add users to your feed\" data-position=\"left center\">\n        Left Center\n      </div>\n    </div>\n    <div class=\"another example\">\n      <div class=\"ui button\" data-inverted data-tooltip=\"Add users to your feed\" data-position=\"top left\">\n        Top Left\n      </div>\n      <div class=\"ui button\" data-inverted data-tooltip=\"Add users to your feed\" data-position=\"top center\">\n        Top Center\n      </div>\n      <div class=\"ui button\" data-inverted data-tooltip=\"Add users to your feed\" data-position=\"top right\">\n        Top Right\n      </div>\n      <div class=\"ui divider\"></div>\n      <div class=\"ui button\" data-inverted data-tooltip=\"Add users to your feed\" data-position=\"bottom left\">\n        Bottom Left\n      </div>\n      <div class=\"ui button\" data-inverted data-tooltip=\"Add users to your feed\" data-position=\"bottom center\">\n        Bottom Center\n      </div>\n      <div class=\"ui button\" data-inverted data-tooltip=\"Add users to your feed\" data-position=\"bottom right\">\n        Bottom Right\n      </div>\n      <div class=\"ui divider\"></div>\n      <div class=\"ui button\" data-inverted data-tooltip=\"Add users to your feed\" data-position=\"right center\">\n        Right Center\n      </div>\n      <div class=\"ui button\" data-inverted data-tooltip=\"Add users to your feed\" data-position=\"left center\">\n        Left Center\n      </div>\n    </div>\n    <div class=\"icon example\">\n      <h4 class=\"ui header\">New Icons</h4>\n      <p>2.2 of Semantic UI includes the latest version of <a href=\"http://fontawesome.io/\" target=\"_blank\">Font Awesome</a> with 50+ new icons. For a complete breakdown of new icons please check <a href=\"http://fontawesome.io/whats-new/\" target=\"_blank\">Font Awesome's list</a>.</p>\n      <div class=\"ui doubling five column grid\">\n        <div class=\"column\"><i class=\"wheelchair icon\"></i>Wheelchair</div>\n        <div class=\"column\"><i class=\"asl interpreting icon\"></i>American Sign Language (ASL) Interpreting</div>\n        <div class=\"column\"><i class=\"assistive listening systems icon\"></i>Assistive Listening Systems</div>\n        <div class=\"column\"><i class=\"audio description icon\"></i>Audio Description</div>\n        <div class=\"column\"><i class=\"blind icon\"></i>Blind</div>\n        <div class=\"column\"><i class=\"braille icon\"></i>Braille</div>\n        <div class=\"column\"><i class=\"deafness icon\"></i>Deafness</div>\n        <div class=\"column\"><i class=\"low vision icon\"></i>Low Vision</div>\n        <div class=\"column\"><i class=\"sign language icon\"></i>Sign Language</div>\n        <div class=\"column\"><i class=\"universal access icon\"></i>Universal Access</div>\n        <div class=\"column\"><i class=\"volume control phone icon\"></i>Volume Control Phone</div>\n      </div>\n      <div class=\"ui divider\"></div>\n      <a href=\"/elements/icon.html\" class=\"ui primary button\">View All Icons <i class=\"right chevron icon\"></i></a>\n    </div>\n    <div class=\"rapid example\">\n      <h4 class=\"ui header\">Rapid-Ready Progress</h4>\n      <p>Progress bars in 2.2 have been recoded to handle rapid update events.</p>\n      <p>Now developers can trigger updates at fast intervals without causing animations to stutter, or easing tweens to occur unnaturally.</p>\n      <div class=\"code\" data-type=\"html\" data-preview=\"true\">\n        <div class=\"ui indicating progress\" data-value=\"1\" data-total=\"200\" id=\"example5\">\n          <div class=\"bar\">\n            <div class=\"progress\"></div>\n          </div>\n          <div class=\"label\">Waiting for you to press button</div>\n        </div>\n      </div>\n      <a class=\"ui button\" data-url=\"/images/large-pdf.pdf\">\n        Rapidly Update\n      </a>\n      <div class=\"evaluated code\" data-type=\"javascript\">\n        $('.rapid.example .ui.button')\n          .on('click', function() {\n            var\n              $progress       = $('.rapid.example .ui.progress'),\n              $button         = $(this),\n              updateEvent\n            ;\n            clearInterval(window.fakeProgress)\n            $progress.progress('reset');\n\n            // updates every 10ms until complete\n            window.fakeProgress = setInterval(function() {\n              $progress.progress('increment');\n              $button.text( $progress.progress('get value') );\n              // stop incrementing when complete\n              if($progress.progress('is complete')) {\n                clearInterval(window.fakeProgress)\n              }\n            }, 10);\n          })\n        ;\n        $('.rapid.example .ui.progress')\n          .progress({\n            duration : 200,\n            total    : 200,\n            text     : {\n              active: '{value} of {total} done'\n            }\n          })\n        ;\n      </div>\n    </div>\n    <div class=\"memory example\">\n      <h4 class=\"ui header\">Reduced Memory Leaks</h4>\n      <p><a href=\"/modules/sticky.html\">Sticky</a>, <a href=\"/behaviors/visibility.html\">visibility</a>, <a href=\"/modules/popup.html\">popup</a>, and <a href=\"modules/dropdown.html\">dropdown</a>, modules that can attach events on initialization to <code>window</code> and <code>body</code>, for example to detect changes in window scroll, will now use <a href=\"https://github.com/Semantic-Org/Semantic-UI/blob/master/dist/components/visibility.js#L143\" target=\"_blank\">additional mutation observers</a> to determine if they are removed from the DOM and automatically fire their <code>destroy</code> behaviors.</p>\n      <p>This can prevent memory leaks when the parent element of a component is removed without the element is propertly teared down by calling its <code>destroy</code> behavior.</p>\n      <div class=\"ui primary button\">Simulate Memory Leak</div>\n      <div class=\"ui display segment\">\n        Not Active\n      </div>\n      <div class=\"wrapper\">\n        <div class=\"ui demo segment\">\n          This segment has visibility events attached to modify the button above to say \"active\" when it is on screen\n        </div>\n      </div>\n      <div class=\"evaluated code\">\n        $('.memory.example .demo.segment')\n          .visibility({\n            onOnScreen: function() {\n              // this will no longer fire even though element was removed indirectly\n              $('.memory.example .display.segment').html('This is active');\n            }\n          })\n        ;\n        // button will remove parent of visibility element and callback will stop firing automatically\n        $('.memory.example .ui.button')\n          .on('click', function() {\n            $('.memory.example .display.segment').html('De-activated');\n            $('.memory.example .wrapper')\n              .remove()\n            ;\n          })\n        ;\n      </div>\n    </div>\n    <div class=\"depends example\">\n      <h4 class=\"ui header\">Dependent Form Validation</h4>\n      <p>Form field validation can now specify a <a href=\"/behaviors/form.html#dependent-fields\"><code>depends</code> property</a> which will only cause validation to occur only when another field, like a checkbox or input, is selected.</p>\n      <form class=\"ui form segment\">\n        <div class=\"inline field\">\n          <div class=\"ui checkbox\">\n            <input type=\"checkbox\" name=\"isDoctor\" />\n            <label>Are you a doctor?</label>\n          </div>\n        </div>\n        <div class=\"field\">\n          <label>How long have you been a medical professional</label>\n          <input type=\"text\" name=\"yearsPracticed\">\n        </div>\n        <div class=\"ui divider\"></div>\n        <div class=\"ui blue submit button\">Submit</div>\n        <div class=\"ui error message\"></div>\n      </form>\n      <div class=\"evaluated code\">\n      $('.depends.example .ui.form')\n        .form({\n          onSuccess: function() {\n            alert('No form problems');\n            return false;\n          },\n          fields: {\n            yearsPracticed: {\n              identifier : 'yearsPracticed',\n              depends    : 'isDoctor',\n              rules      : [\n                {\n                  type   : 'empty',\n                  prompt : 'Please enter the number of years you have been a doctor'\n                }\n              ]\n            }\n          }\n        })\n      ;\n      </div>\n    </div>\n    <div class=\"faster example\">\n      <h4 class=\"ui header\">Faster Dropdown Selection</h4>\n      <p>We've updated dropdowns to make it simpler to breeze through forms with dropdowns, and provide more intuitive selection controls</p>\n      <div class=\"ui large relaxed bulleted list\">\n        <div class=\"item\">\n          Multiple select dropdowns use a new algorithm for line breaks based on actual rendered pixels and not estimated length based on glyph width calculations, meaning more choices can squeeze on a line than before.\n        </div>\n        <div class=\"item\">\n          Dropdowns now change selections on keyboards without hitting \"enter\", this lets users quickly navigate between dropdown elements in a form without having to hit \"enter\" before \"tab\" after each field entry, saving an additional keystroke.\n        </div>\n        <div class=\"item\">\n          All dropdown menus now support letter keyboard shortcuts. Hitting \"C\" for instance will let you jump to \"California\" in a dropdown list, then hitting it again \"Colorado\", even without using a search selection dropdown.\n        </div>\n      </div>\n      <div class=\"ui two column very relaxed divided grid\">\n        <div class=\"column\">\n          <select class=\"ui fluid dropdown\">\n            <%- @partial('examples/single/state-options') %>\n          </select>\n        </div>\n        <div class=\"column\">\n          <select class=\"ui multiple search fluid dropdown\" multiple>\n            <%- @partial('examples/single/state-options') %>\n          </select>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">More Basic Buttons</h4>\n      <p>We've added <code>primary</code>, <code>secondary</code>, <code>positive</code> and <code>negative</code> <a href=\"/elements/button.html#basic\"><code>basic</code> buttons</a></p>\n      <button class=\"ui primary basic button\">Primary</button>\n      <button class=\"ui secondary basic button\">Secondary</button>\n      <button class=\"ui positive basic button\">Positive</button>\n      <button class=\"ui negative basic button\">Negative</button>\n    </div>\n\n    <div class=\"boundary example\">\n      <h4 class=\"ui header\">Popup Boundaries and Scroll Context</h4>\n      <p>Popups now include a new setting <code>boundary</code> that let you specify that a popup should not escape the boundary of another section. This can be useful in complex paned layouts</p>\n      <p>Additionally popups can now specify a scroll context, to allow for scroll containers other than window to cause a clicked popup to hide on scroll.</p>\n      <div class=\"evaluated code\" data-type=\"javascript\">\n        $('.boundary.example .button')\n          .popup({\n            boundary: '.boundary.example .segment'\n          })\n        ;\n      </div>\n\n      <div class=\"ui segment\">\n        <div class=\"ui button\" data-content=\"This popup is very long but wont escape the segment it is placed in\">Hover Me</div>\n        <p>Normally this popup would open in the default position <code>top center</code> but because this would escape the boundaries of the segment it will search other available positions until it can find one to place the popup while staying inside the segment</p>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">New Settings</h2>\n\n    <p>We've added many new settings to components to help provide more granular control for some use-cases.</p>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Dropdowns</h4>\n      <table class=\"ui definition table\">\n        <tbody>\n          <tr>\n            <td>selectOnKeydown</td>\n            <td>Whether dropdown should change active selection on keyboard shortcuts, preventing the requirement of hitting <code>enter</code> to confirm selection before the user tabs out of the field. (This will save one extra keystroke)\n            </td>\n          <tr>\n            <td>allowReselection</td>\n            <td>Setting to <code>true</code> will allow <code>onChange</code> to be triggered even when reselecting the same option</td>\n          </tr>\n          <tr>\n            <td>fullTextSearch</td>\n            <td>Setting to true will allow search across any part of string, setting to <code>exact</code> will disable fuzzy matching for dropdowns.</td>\n          </tr>\n          <tr>\n            <td>hideAdditions</td>\n            <td>Setting to true will allow custom user additions without triggering a special dropdown message for \"Add custom choice\". This is now enabled by default</td>\n          </tr>\n          <tr>\n            <td>minCharacters</td>\n            <td>Minimum characters required to begin showing filtered results</td>\n          </tr>\n        </tbody>\n      </table>\n      <a class=\"ui button\" href=\"/modules/dropdown.html#settings\">Dropdown settings\n        <i class=\"right chevron icon\"></i>\n      </a>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Popup</h4>\n      <table class=\"ui definition table\">\n        <tbody>\n          <tr>\n            <td>boundary</td>\n            <td>A selector, or DOM element that the popup should never escape when positioning itself\n            </td>\n          </tr>\n          <tr>\n            <td>scrollContext</td>\n            <td>A selector or DOM element which should be used for determining if user has scrolled.</td>\n          </tr>\n          <tr>\n            <td>observeChanges</td>\n            <td>Whether popup should automatically watch for its own removal from page to avoid memory leaks.</td>\n          </tr>\n        </tbody>\n      </table>\n      <a class=\"ui button\" href=\"/modules/popup.html#settings\">Popup settings\n        <i class=\"right chevron icon\"></i>\n      </a>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Search</h4>\n      <table class=\"ui definition table\">\n        <tbody>\n          <tr>\n            <td>selectFirstResult</td>\n            <td>Whether the first search result element should be selected after results appear.\n            </td>\n          </tr>\n          <tr>\n            <td>showNoResults</td>\n            <td>Whether a message should appear when no search results are returned\n            </td>\n          </tr>\n        </tbody>\n      </table>\n      <a class=\"ui button\" href=\"/modules/search.html#settings\">Search settings\n        <i class=\"right chevron icon\"></i>\n      </a>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Rating</h4>\n      <table class=\"ui definition table\">\n        <tbody>\n          <tr>\n            <td>fireOnInit</td>\n            <td>Whether the rating component should fire callbacks on initialization.\n            </td>\n          </tr>\n        </tbody>\n      </table>\n      <a class=\"ui button\" href=\"/modules/rating.html#settings\">Rating settings\n        <i class=\"right chevron icon\"></i>\n      </a>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Visibility</h4>\n      <table class=\"ui definition table\">\n        <tbody>\n          <tr>\n            <td>zIndex</td>\n            <td>Allows you to specify the <code>z-index</code> used with <code>type: 'fixed'</code>\n            </td>\n          </tr>\n          <tr>\n            <td>onFixed</td>\n            <td>A callback used with <code>type: 'fixed'</code> to occur when content is fixed to the page.\n            </td>\n          </tr>\n          <tr>\n            <td>onUnfixed</td>\n            <td>A callback used with <code>type: 'fixed'</code> to occur when content is fixed to the page.\n            </td>\n          </tr>\n          <tr>\n            <td>onLoaded</td>\n            <td>A callback used with <code>type: 'image'</code> to occur when content is loaded.\n            </td>\n          </tr>\n          <tr>\n            <td>onAllLoaded</td>\n            <td>A callback used with <code>type: 'image'</code> to occur when all images initialized together are loaded.\n            </td>\n          </tr>\n        </tbody>\n      </table>\n      <a class=\"ui button\" href=\"/behaviors/visibility.html#settings\">Visibility settings\n        <i class=\"right chevron icon\"></i>\n      </a>\n    </div>\n\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Tab</h4>\n      <table class=\"ui definition table\">\n        <tbody>\n          <tr>\n            <td>cacheType</td>\n            <td>When set to <code>html</code> will cache the tabs html after load, reloading with the exact same html. Setting to <code>response</code> will cache the serve response, allowing for load events to fire with same contents.\n            </td>\n          </tr>\n          <tr>\n            <td>deactivate</td>\n            <td>When set to <code>siblings</code> deactivates only DOM elements that are siblings of the selected tab activator. <code>all</code> will deactivate all other elements initialized at the same time.\n            </td>\n          </tr>\n        </tbody>\n      </table>\n      <a class=\"ui button\" href=\"/modules/tab.html#settings\">Tab settings\n        <i class=\"right chevron icon\"></i>\n      </a>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Shape</h4>\n      <table class=\"ui definition table\">\n        <tbody>\n          <tr>\n            <td>width</td>\n            <td>When set to <code>next</code> will use the size of the next <code>side</code> during the shape's animation. When set to <code>initial</code> it will use the size of the shape at initialization. When set to a specifix pixel width, will force the size to that width.\n            </td>\n          </tr>\n          <tr>\n            <td>height</td>\n            <td>When set to <code>next</code> will use the size of the next <code>side</code> during the shape's animation. When set to <code>initial</code> it will use the size of the shape at initialization. When set to a specifix pixel height, will force the size to that height.\n            </td>\n          </tr>\n        </tbody>\n      </table>\n      <a class=\"ui button\" href=\"/modules/shape.html#settings\">Shape settings\n        <i class=\"right chevron icon\"></i>\n      </a>\n    </div>\n  </div>\n  <div class=\"ui tab\" data-tab=\"twoone\">\n    <h2 class=\"ui dividing header\">The Tally</h2>\n    <p><code>2.1</code> sums up around two months of work, including many new features, and updates to help bulletproof existing UI.</p>\n    <div class=\"ui large bulleted list\">\n      <div class=\"item\"><b>72</b> <a href=\"https://github.com/Semantic-Org/Semantic-UI/issues?q=is%3Aissue+milestone%3A2.1+is%3Aclosed\" target=\"_blank\">closed issues</a></div>\n      <div class=\"item\"><b>70</b> bug fixes</div>\n      <div class=\"item\"><b>23</b> new UI updates</div>\n      <div class=\"item\"><b>14</b> feature enhancements</div>\n    </div>\n\n    <p>To see the complete list of updates <a href=\"https://github.com/Semantic-Org/Semantic-UI/blob/<%= @getBranch() %>/RELEASE-NOTES.md#version-210---sep-01-2015\">review our release notes</a></p>\n\n    <div class=\"example\" data-class=\"labeled, left labeled\">\n      <h4 class=\"ui header\">Labeled Buttons</h4>\n      <p><a href=\"/elements/button.html#labeled\">Labeled buttons</a> are a useful design pattern for displaying a tally alongside a button.</p>\n      <p>Labeled buttons are compatible with any label type, but looks great alongside a <code>basic label</code>.</p>\n      <div class=\"ui labeled button\" tabindex=\"0\">\n        <div class=\"ui red button\">\n          <i class=\"heart icon\"></i> Like\n        </div>\n        <a class=\"ui basic red label\">\n          2,048\n        </a>\n      </div>\n      <div class=\"ui labeled button\" tabindex=\"0\">\n        <div class=\"ui basic blue button\">\n          <i class=\"fork icon\"></i> Forks\n        </div>\n        <a class=\"ui basic left pointing blue label\">\n          1,048\n        </a>\n      </div>\n      <div class=\"ui labeled button\" tabindex=\"0\">\n        <div class=\"ui basic violet button\">\n          <i class=\"hospital icon\"></i> Hospitals\n        </div>\n        <a class=\"ui violet tag label\">\n          2,048\n        </a>\n      </div>\n      <div class=\"ui divider\"></div>\n      <div class=\"ui labeled button\" tabindex=\"0\">\n        <div class=\"ui yellow button\">\n          <i class=\"star icon\"></i> Star\n        </div>\n        <a class=\"ui basic yellow left pointing label\">\n          1,048\n        </a>\n      </div>\n      <div class=\"ui left labeled button\" tabindex=\"0\">\n        <a class=\"ui basic right pointing label\">\n          2,048\n        </a>\n        <div class=\"ui button\">\n          <i class=\"heart icon\"></i> Like\n        </div>\n      </div>\n      <div class=\"ui left labeled button\" tabindex=\"0\">\n        <a class=\"ui basic label\">\n          1,048\n        </a>\n        <div class=\"ui icon button\">\n          <i class=\"fork icon\"></i>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\" data-class=\"basic\">\n      <h4 class=\"ui header\">Basic Labels</h4>\n      <p>We've added a new style <a href=\"/elements/label.html#basic\"><code>basic label</code></a> that is less intrusive, and compatible with all other label variations, reducing their complexity.</p>\n      <a class=\"ui basic label\">Basic</a>\n      <a class=\"ui pointing basic label\">Pointing</a>\n      <a class=\"ui basic image label\">\n        <img src=\"/images/avatar/small/elliot.jpg\">\n        Elliot\n      <a class=\"ui pointing red basic label\">Red Pointing</a>\n      <a class=\"ui blue basic label\">Blue</a>\n      <div class=\"ui divider\"></div>\n      <div class=\"ui equal width stretched grid\">\n        <div class=\"column\">\n          <div class=\"ui segment\">\n            <a class=\"ui right pointing basic teal ribbon label\">Pointing</a> Look over here\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n          </div>\n        </div>\n        <div class=\"column\">\n          <div class=\"ui segment\">\n            <a class=\"ui teal top right attached basic label\">So Complex</a>\n            <a class=\"ui orange top left attached basic label\">So Simple</a>\n            <a class=\"ui violet bottom attached top pointing basic label\">Much adjectives</a>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\" data-class=\"basic\">\n      <h4 class=\"ui header\">Multiple Input Labels</h4>\n      <p><a href=\"/elements/input.html#labeled\">Labeled input</a> now supports labels on both sides of content at the same time.</p>\n      <div class=\"ui right labeled input\">\n        <div class=\"ui basic label\">$</div>\n        <input type=\"text\" placeholder=\"Amount\">\n        <div class=\"ui basic label\">.00</div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">More Tabular Directions</h4>\n      <p><a href=\"/collections/menu.html#tabular\">Tabular menus</a> now support <code>right</code> and <code>bottom</code> positioning.</p>\n      <div class=\"ui grid\">\n        <div class=\"twelve wide stretched column\">\n          <div class=\"ui segment\">\n            This is an stretched grid column. This segment will always match the tab height\n          </div>\n        </div>\n        <div class=\"four wide column\">\n          <div class=\"ui vertical fluid right tabular menu\">\n            <a class=\"active item\">\n              Bio\n            </a>\n            <a class=\"item\">\n              Pics\n            </a>\n            <a class=\"item\">\n              Companies\n            </a>\n            <a class=\"item\">\n              Links\n            </a>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"another example\">\n      <div class=\"ui top attached segment\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n      </div>\n      <div class=\"ui three item bottom attached tabular menu\">\n        <a class=\"active item\">\n          Active Project\n        </a>\n        <a class=\"item\">\n          Project #2\n        </a>\n        <a class=\"item\">\n          Project #3\n        </a>\n      </div>\n    </div>\n    <div class=\"another example\">\n      <div class=\"ui grid\">\n        <div class=\"four wide column\">\n          <div class=\"ui vertical fluid tabular menu\">\n            <a class=\"active item\">\n              Bio\n            </a>\n            <a class=\"item\">\n              Pics\n            </a>\n            <a class=\"item\">\n              Companies\n            </a>\n            <a class=\"item\">\n              Links\n            </a>\n          </div>\n        </div>\n        <div class=\"twelve wide stretched column\">\n          <div class=\"ui segment\">\n            This is an stretched grid column. This segment will always match the tab height\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\" data-class=\"tablet reversed\">\n      <h4 class=\"ui header\">Enhanced Vertical Dividers</h4>\n      <p>Grids now support using multiple <a href=\"/elements/divider.html#vertical-divider\">vertical dividers</a> per column, in any specified arrangement.</p>\n      <div class=\"ui very relaxed vertically divided grid\">\n        <div class=\"row\" style=\"position:relative;\">\n          <div class=\"six wide column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/media-paragraph.png\">\n          </div>\n          <div class=\"three wide column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"ui vertical divider\">and</div>\n          <div class=\"three wide column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"ui vertical divider\">and</div>\n          <div class=\"three wide column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n        </div>\n        <div class=\"row\" style=\"position:relative;\">\n          <div class=\"three wide column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"ui vertical divider\">not</div>\n          <div class=\"three wide column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"ui vertical divider\">nor</div>\n          <div class=\"three wide column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n          <div class=\"six wide column\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/media-paragraph.png\">\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\" data-class=\"tablet reversed\">\n      <h4 class=\"ui header\">Inverted Colored Menu</h4>\n      <p><a href=\"/collections/menu.html#inverted\">Inverted menus</a> now support individual <code>item</code> colors</p>\n\n      <div class=\"ui three item labeled icon inverted menu\">\n        <a class=\"active red item\">\n          <i class=\"gamepad icon\"></i>\n          Games\n        </a>\n        <a class=\"pink item\">\n          <i class=\"video camera icon\"></i>\n          Channels\n        </a>\n        <a class=\"blue item\">\n          <i class=\"video play icon\"></i>\n          Videos\n        </a>\n      </div>\n    </div>\n\n    <div class=\"another example\">\n      <div class=\"ui vertical inverted menu\">\n        <a class=\"active teal item\">\n          Inbox\n        </a>\n        <a class=\"orange item\">\n          Spam\n        </a>\n        <a class=\"violet item\">\n          Updates\n        </a>\n        <div class=\"item\">\n          <div class=\"ui transparent inverted icon input\">\n            <input type=\"text\" placeholder=\"Search mail...\">\n            <i class=\"search icon\"></i>\n          </div>\n        </div>\n      </div>\n    </div>\n\n\n    <div class=\"example\" data-class=\"tablet reversed\">\n      <h4 class=\"ui header\">Reversable Grid Columns</h4>\n      <p>Grids now support <a href=\"/collections/grid.html#reversed\">reversing their column flow</a> per-device. This can be useful when a column should appear on the opposite side of the screen on smaller screens.</p>\n      <p>Reversing grids are also designed to be compatible with column-order specific variations like divided or celled</p>\n      <div class=\"ui tablet reversed divided equal width grid\">\n        <div class=\"column\">\n          Computer First <br>\n          Tablet Fourth\n        </div>\n        <div class=\"column\">\n          Computer Second <br>\n          Tablet Third\n        </div>\n        <div class=\"column\">\n          Computer Third <br>\n          Tablet Second\n        </div>\n        <div class=\"column\">\n          Computer Fourth <br>\n          Tablet First\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Stackable Cards</h4>\n      <p>Cards have a <a href=\"/views/card.html#stackable\"><code>stackable</code></a> variation so that they appear full width on mobile.</p>\n      <div class=\"ui two stackable cards\">\n        <div class=\"ui card\">\n          <div class=\"content\">\n            <div class=\"right floated meta\">14h</div>\n            <img class=\"ui avatar image\" src=\"/images/avatar/large/elliot.jpg\"> Elliot\n          </div>\n          <div class=\"content\">\n            <span class=\"right floated\">\n              <i class=\"heart outline like icon\"></i>\n              17 likes\n            </span>\n            <i class=\"comment icon\"></i>\n            3 comments\n          </div>\n          <div class=\"extra content\">\n            <div class=\"ui large transparent left icon input\">\n              <i class=\"heart outline icon\"></i>\n              <input type=\"text\" placeholder=\"Add Comment...\">\n            </div>\n          </div>\n        </div>\n        <div class=\"ui card\">\n          <div class=\"content\">\n            <div class=\"right floated meta\">14h</div>\n            <img class=\"ui avatar image\" src=\"/images/avatar/large/elliot.jpg\"> Elliot\n          </div>\n          <div class=\"content\">\n            <span class=\"right floated\">\n              <i class=\"heart outline like icon\"></i>\n              17 likes\n            </span>\n            <i class=\"comment icon\"></i>\n            3 comments\n          </div>\n          <div class=\"extra content\">\n            <div class=\"ui large transparent left icon input\">\n              <i class=\"heart outline icon\"></i>\n              <input type=\"text\" placeholder=\"Add Comment...\">\n            </div>\n          </div>\n        </div>\n        <div class=\"ui card\">\n          <div class=\"content\">\n            <div class=\"right floated meta\">14h</div>\n            <img class=\"ui avatar image\" src=\"/images/avatar/large/elliot.jpg\"> Elliot\n          </div>\n          <div class=\"content\">\n            <span class=\"right floated\">\n              <i class=\"heart outline like icon\"></i>\n              17 likes\n            </span>\n            <i class=\"comment icon\"></i>\n            3 comments\n          </div>\n          <div class=\"extra content\">\n            <div class=\"ui large transparent left icon input\">\n              <i class=\"heart outline icon\"></i>\n              <input type=\"text\" placeholder=\"Add Comment...\">\n            </div>\n          </div>\n        </div>\n        <div class=\"ui card\">\n          <div class=\"content\">\n            <div class=\"right floated meta\">14h</div>\n            <img class=\"ui avatar image\" src=\"/images/avatar/large/elliot.jpg\"> Elliot\n          </div>\n          <div class=\"content\">\n            <span class=\"right floated\">\n              <i class=\"heart outline like icon\"></i>\n              17 likes\n            </span>\n            <i class=\"comment icon\"></i>\n            3 comments\n          </div>\n          <div class=\"extra content\">\n            <div class=\"ui large transparent left icon input\">\n              <i class=\"heart outline icon\"></i>\n              <input type=\"text\" placeholder=\"Add Comment...\">\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">\n      Fixed Tables\n    </h4>\n    <p><a href=\"/collections/table.html#fixed\">Tables</a> now include a variation for using <code>table-layout: fixed</code>, which does not adjust column widths based on size.</p>\n    <p>This can help present data more cleanly with content that is uniformly formatted.</p>\n    <p>Fixed tables also support content collapsing using <code>text-overflow: ellipsis</code> when used with <code>single line</code>.</p>\n    <table class=\"ui fixed center aligned celled table\">\n      <thead>\n        <th>Name</th>\n        <th>Status</th>\n        <th>Gender</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>John</td>\n          <td>Approved</td>\n          <td>Male</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>Male</td>\n        </tr>\n        <tr>\n          <td>Jill</td>\n          <td>Denied</td>\n          <td>Female</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n  <div class=\"another example\">\n    <h4 class=\"ui header\">\n      Fixed Tables\n    </h4>\n    <table class=\"ui fixed single line celled table\">\n      <thead>\n        <th>Name</th>\n        <th>Status</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>John</td>\n          <td>Approved</td>\n          <td title=\"This is much too long to fit I'm sorry about that\">This is much too long to fit I'm sorry about that</td>\n        </tr>\n        <tr>\n          <td>Jamie</td>\n          <td>Approved</td>\n          <td>Shorter description</td>\n        </tr>\n        <tr>\n          <td>Jill</td>\n          <td>Denied</td>\n          <td>Shorter description</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n    <h2 class=\"ui dividing header\">New Behaviors</h2>\n\n    <div class=\"mapping example\">\n      <h4 class=\"ui header\">Fully Customizable JSON</h4>\n      <p>In <code>2.1</code> all component that uses remote data will let you specify a <code>fields</code> array to modify expected JSON property names, saving you the trouble of specifying an <a href=\"/behaviors/api.html#response-callbacks\"><code>onResponse</code></a> callback to modify the data structure.</p>\n      <div class=\"ui ignored code\">\n      $('.ui.search')\n        .search({\n          apiSettings: {\n            url: '//api.github.com/search/repositories?q={query}'\n          },\n          fields: {\n            results : 'items',\n            title   : 'name',\n            url     : 'html_url'\n          }\n        })\n      ;\n      </div>\n      <div class=\"ui search\">\n        <div class=\"ui left icon input\">\n          <input class=\"prompt\" type=\"text\" placeholder=\"Search GitHub\">\n          <i class=\"github icon\"></i>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"another fields example\">\n      <p>Fields can also be used with local search to simplify working with unusual search sources.</p>\n      <div class=\"ui ignored code\">\n      $('.ui.search')\n        .search({\n          searchFields: ['pickle'],\n          fields: {\n            title   : 'mustard'\n          },\n          source: [\n            {\n              mustard: 'Title #1',\n              pickle: 'thing'\n            },\n            {\n              mustard: 'Title #2',\n              pickle: 'another thing'\n            },\n            {\n              mustard: 'Title #3',\n              pickle: 'thing 100'\n            }\n          ]\n        })\n      ;\n      </div>\n      <div class=\"ui search\">\n        <div class=\"ui icon input\">\n          <input class=\"prompt\" type=\"text\" placeholder=\"Search...\">\n          <i class=\"search icon\"></i>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"no payment example\">\n      <h4 class=\"ui header\">Credit Card Validation</h4>\n      <p>We've added new validation rules for payment. These work with luhn and <a href=\"http://stackoverflow.com/questions/7863058/does-the-luhn-algorithm-work-for-all-mainstream-credit-cards-discover-visa-m?answertab=votes#tab-top\">non-luhn card numbers</a>. If you only accept a certain set of credit cards you can specify that too.</p>\n      <div class=\"ui info message\">\n        Try <code>4565340519181845</code> a test visa card number\n      </div>\n      <form class=\"ui form segment\">\n        <div class=\"field\">\n          <label>Credit Card</label>\n          <input name=\"card\" type=\"text\" value=\"4444444444444444\">\n        </div>\n        <div class=\"field\">\n          <label>Visa / Amex</label>\n          <input name=\"exact-card\" type=\"text\" value=\"4444444444444444\">\n        </div>\n        <div class=\"ui submit button\">Submit</div>\n      </form>\n      <div class=\"evaluated code\">\n        $('.payment.example form')\n          .form({\n            on: 'blur',\n            inline: true,\n            fields: {\n              card: {\n                identifier  : 'card',\n                rules: [\n                  {\n                    type   : 'creditCard',\n                    prompt : 'Please enter a valid credit card'\n                  }\n                ]\n              },\n              exactCard: {\n                identifier  : 'exact-card',\n                rules: [\n                  {\n                    type   : 'creditCard[visa,amex]',\n                    prompt : 'Please enter a visa or amex card'\n                  }\n                ]\n              }\n            }\n          })\n        ;\n      </div>\n    </div>\n    <div class=\"cancel example\">\n      <h4 class=\"ui header\">Cancellable Checkboxes</h4>\n      <p><a href=\"/modules/checkbox.html\">Checkboxes</a> now include four new callbacks <code>beforeChecked</code>, <code>beforeUnchecked</code>, <code>beforeDeterminate</code>, and <code>beforeIndeterminate</code>, returning <code>false</code> from these callbacks will cancel the action from occuring.</p>\n      <div class=\"ui checkbox\">\n        <input type=\"checkbox\" name=\"example\" />\n        <label>Maybe this will work</label>\n      </div>\n      <div class=\"evaluated code\" data-type=\"javascript\">\n        $('.cancel.example .ui.checkbox')\n          .checkbox({\n            beforeChecked: function() {\n              var\n                luckyPerson = (Math.random() < 0.5)\n              ;\n              return luckyPerson;\n            }\n          })\n        ;\n      </div>\n    </div>\n\n\n    <h2 class=\"ui dividing header\">Theme Updates</h2>\n\n    <div class=\"form example\" data-class=\"basic\">\n      <h4 class=\"ui header\">Global Form Focus</h4>\n      <p>Global variables have been added to modify form focus color across all components. The default theme now uses a light blue to signal selection.</p>\n      <form class=\"ui form\">\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>First Name</label>\n            <input type=\"text\" name=\"first-name\" placeholder=\"First Name\">\n          </div>\n          <div class=\"field\">\n            <label>Last Name</label>\n            <input type=\"text\" name=\"last-name\" placeholder=\"Last Name\">\n          </div>\n        </div>\n        <div class=\"field\">\n          <label>Gender</label>\n          <select class=\"ui dropdown\">\n            <option value=\"\">Gender</option>\n            <option value=\"1\">Male</option>\n            <option value=\"0\">Female</option>\n          </select>\n        </div>\n        <div class=\"field\">\n          <div class=\"ui checkbox\">\n            <input type=\"checkbox\" />\n            <label>I agree to the Terms and Conditions</label>\n          </div>\n        </div>\n        <button class=\"ui button\" type=\"submit\">Submit</button>\n      </form>\n    </div>\n    <div class=\"validation example\">\n      <h4 class=\"ui header\">Updated Form Validation</h4>\n      <p><a href=\"/behaviors/form.html\">Form validation</a> now uses <code>basic label</code> for validation prompts.</p>\n      <form class=\"ui form\">\n        <div class=\"field\">\n          <label>First Name</label>\n          <input type=\"text\" name=\"first-name\" placeholder=\"First Name\">\n        </div>\n        <div class=\"field\">\n          <label>Last Name</label>\n          <input type=\"text\" name=\"last-name\" placeholder=\"Last Name\">\n        </div>\n        <div class=\"inline field\">\n          <div class=\"ui checkbox\">\n            <input type=\"checkbox\" name=\"terms\" />\n            <label>I agree to the Terms and Conditions</label>\n          </div>\n        </div>\n        <button class=\"ui button\" type=\"submit\">Submit</button>\n      </form>\n    </div>\n\n    <div class=\"spaced example\" data-class=\"basic\">\n      <h4 class=\"ui header\">Colored Basic Buttons</h4>\n      <p><a href=\"/elements/button.html#basic\">Basic colored buttons</a> now are colored without <code>hover</code>, making the style more similar to common usage on most sites.</p>\n      <button class=\"ui red basic button\">Red</button>\n      <button class=\"ui orange basic button\">Orange</button>\n      <button class=\"ui yellow basic button\">Yellow</button>\n      <button class=\"ui olive basic button\">Olive</button>\n      <button class=\"ui green basic button\">Green</button>\n      <button class=\"ui teal basic button\">Teal</button>\n      <button class=\"ui blue basic button\">Blue</button>\n      <button class=\"ui violet basic button\">Violet</button>\n      <button class=\"ui purple basic button\">Purple</button>\n      <button class=\"ui pink basic button\">Pink</button>\n      <button class=\"ui brown basic button\">Brown</button>\n      <button class=\"ui grey basic button\">Grey</button>\n      <button class=\"ui black basic button\">Black</button>\n    </div>\n\n    <div class=\"example\" data-class=\"labeled icon\">\n      <h4 class=\"ui header\">Labeled Icon Menu</h4>\n      <p>Horizontal <code>labeled icon menu</code> now use stacked icons to appear more in-tune with common icon menu usage.</p>\n      <div class=\"ui three item labeled icon menu\">\n        <a class=\"active red item\">\n          <i class=\"gamepad icon\"></i>\n          Games\n        </a>\n        <a class=\"pink item\">\n          <i class=\"video camera icon\"></i>\n          Channels\n        </a>\n        <a class=\"blue item\">\n          <i class=\"video play icon\"></i>\n          Videos\n        </a>\n      </div>\n    </div>\n\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"two\">\n\n    <h2 class=\"ui dividing header\">Introduction</h2>\n\n    <div class=\"no example\">\n\n      <h4 class=\"ui header\">The Devil is in the Details</h4>\n      <p>2.0 brings a whopping set of changes to the project:\n      <div class=\"ui large bulleted list\">\n        <div class=\"item\"><b>129</b> enhancements</div>\n        <div class=\"item\"><b>118</b> bug fixes</div>\n        <div class=\"item\"><b>3</b> new components</div>\n        <div class=\"item\">Rewrites of many components including <a href=\"/collections/menu.html\"><code>menu</code></a>, and <a href=\"/elements/input.html\"><code>input</code></a></div>\n      </div>\n\n      <p>There's just too much to cover in one page, but we've tried our best to give you examples of some of the new features available in 2.0</p>\n\n      <p>To see the full list of what's changed check out the project's release notes.</p>\n\n      <a href=\"https://github.com/Semantic-Org/Semantic-UI/blob/<%= @getBranch() %>/RELEASE-NOTES.md#version-200---june-30-2015\" target=\"_blank\" class=\"ui button\">View Release Notes</a>\n    </div>\n\n\n    <h2 class=\"ui dividing header\">Global Changes</h2>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Flexbox All The Things</h4>\n      <p><a href=\"https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Flexible_boxes\" target=\"_blank\">Flexbox</a> allows for elements to intuitively resize to fill available space, making many complex layouts much simpler.</p>\n      <p>13 components: <a href=\"/collections/form.html\">Form</a>, <a href=\"/collections/grid.html\">Grid</a>, <a href=\"/collections/menu.html\">Menu</a>, <a href=\"/elements/message.html\">Message</a>, <a href=\"/elements/button.html\">Button</a>, <a href=\"/elements/segment.html\">Segment</a>, <a href=\"/elements/step.html\">Step</a>, <a href=\"/modules/dropdown.html\">Dropdown</a>, <a href=\"/modules/modal.html\">Modal</a>, <a href=\"/views/feed.html\">Feed</a>, <a href=\"/views/statistics.html\">Statistic</a>, <a href=\"/views/card.html\">Card</a>, <a href=\"/views/item.html\">Item</a> now use <a href=\"https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Flexible_boxes\" target=\"_blank\"><code>flex</code></a> for positioning.</p>\n\n    </div>\n\n    <div class=\"colored example\">\n      <h4 class=\"ui header\">Complete Spectrum</h4>\n      <p>Semantic now includes twelve named colors, enough for most languages to <a href=\"https://en.wikipedia.org/wiki/Linguistic_relativity_and_the_color_naming_debate#Berlin_and_Kay\" target=\"_blank\">distinguish between colors</a>. New in 2.0 are: olive, violet, brown and grey.</p>\n      <a class=\"ui grey label\">Grey</a>\n      <a class=\"ui red pointing label\">Red</a>\n      <a class=\"ui orange tag label\">Orange</a>\n      <a class=\"ui yellow bottom pointing label\">Yellow</a>\n      <a class=\"ui olive label\">\n        <i class=\"mail icon\"></i>\n        Olive\n      </a>\n      <a class=\"ui green right pointing label\">Green</a>\n      <a class=\"ui teal label\">\n        Teal\n        <div class=\"detail\">Detail</div>\n      </a>\n      <a class=\"ui blue image label\">\n        <img src=\"/images/avatar2/small/elyse.png\">\n        Blue\n      </a>\n      <a class=\"ui violet label\">\n        Violet\n      </a>\n      <a class=\"ui purple label\">\n        Purple\n        <i class=\"delete icon\"></i>\n      </a>\n      <div class=\"ui horizontal segments\">\n        <div class=\"ui segment\">\n          <div class=\"ui pink top left ribbon label\">Pink</div>\n          <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n        </div>\n        <div class=\"ui segment\">\n          <div class=\"ui brown right ribbon label\">Brown</div>\n          <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n        </div>\n      </div>\n    </div>\n    <div class=\"no example\">\n      <h4 class=\"ui header\">New Default Theme</h4>\n      <p>All components have received a face-lift for 2.0. Styles give slightly more negative space and a few idiosyncratic design touches have been removed.</p>\n    </div>\n    <div class=\"no example\">\n      <h4 class=\"ui header\">More Precise EM Values</h4>\n      <p>EM sizing has been improved in 2.0, with all values rounding to exact pixel values. This helps common relative sizing pitfalls like rounding errors in vertical alignment.</p>\n      <p>Em variables now use new globally calculated em ratios, like <code>@relative4px</code>, to express pixel values in terms of root em size. This makes sure components don't include confusing decimal or fractional values when dealing with sizing.</p>\n    </div>\n\n\n    <h2 class=\"ui dividing header\">Grids</h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Flexbox Grid</h4>\n      <p>Grids in 2.0 now use <a href=\"https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Flexible_boxes\" target=\"_blank\"><code>flexbox</code></a> so columns are always equal height across rows.</p>\n      <div class=\"ui three column divided grid\">\n        <div class=\"row\">\n          <div class=\"column\">\n            <div class=\"ui segment\">\n              1\n            </div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui segment\">\n              1\n            </div>\n            <div class=\"ui segment\">\n              2\n            </div>\n          </div>\n          <div class=\"column\">\n            <div class=\"ui segment\">\n              1\n            </div>\n            <div class=\"ui segment\">\n              2\n            </div>\n            <div class=\"ui segment\">\n              3\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"highlighted example\">\n      <h4 class=\"ui header\">Grids Create Themselves</h4>\n      <p>The new <a href=\"/collections/grid.html#equal-width\"><code>equal width</code></a> variation adjusts column widths automatically splitting available width between columns.</p>\n      <div class=\"ui equal width grid\">\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n      </div>\n      <p class=\"ignored\">If a column has a specified width, other columns will adapt to take available space around it.</p>\n      <div class=\"ui equal width grid\">\n        <div class=\"column\"></div>\n        <div class=\"eight wide column\"></div>\n        <div class=\"column\"></div>\n      </div>\n    </div>\n    <div class=\"highlighted example\">\n      <h4 class=\"ui header\">Containers</h4>\n      <p><a href=\"/elements/container.html\">Containers</a> have been added as a simple way to limit content width.</p>\n      <div class=\"ui container\">\n        <div class=\"ui three column grid\">\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n          <div class=\"column\"></div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"stretched example\">\n      <h4 class=\"ui header\">Stretched rows</h4>\n      <p>The new <a href=\"/collections/grid.html#stretched\"><code>stretched</code></a> variation makes vertically aligning layouts much simpler. Columns will not only match heights, but stretch their contents to match heights.</p>\n      <div class=\"ui three column stretched grid\">\n        <div class=\"column\">\n          <div class=\"ui segment\">\n            1\n          </div>\n          <div class=\"ui segment\">\n            2\n          </div>\n        </div>\n        <div class=\"column\">\n          <div class=\"ui segment\">\n            <img class=\"ui image\" src=\"/images/wireframe/image.png\">\n          </div>\n        </div>\n        <div class=\"column\">\n          <div class=\"ui segment\">\n            1\n          </div>\n          <div class=\"ui segment\">\n            2\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Dropdowns</h2>\n\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Multiple Selection</h4>\n      <p>Multiple select dropdowns are now available, and can generate automatically from standard HTML selects.  </p>\n      <p>Dropdowns now all support advanced keyboard shortcuts like <code>pagedown</code>, <code>delete</code>, <code>shift+left</code> <code>ctrl+click</code>, and selection using first letter of item.</p>\n      <p>Additionally dropdowns will now automatically open <code>upward</code> if there is not enough space available in the viewport below a dropdown.</p>\n      <select class=\"ui fluid dropdown\" multiple>\n        <%- @partial('examples/single/state-options') %>\n      </select>\n    </div>\n\n    <div class=\"user example\">\n      <h4 class=\"ui header\">User Tagging</h4>\n      <p>All dropdowns, single and multiple now support user tagging. Values can be automatically separated by a delimiter and placed in a hidden input, or extend an existing select element.</p>\n      <div class=\"ignored code\" data-type=\"javascript\">\n      $('.ui.dropdown')\n        .dropdown({\n          allowAdditions: true\n        })\n      ;\n      </div>\n      <div class=\"ui form\">\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>Primary Skill</label>\n            <div class=\"ui search selection dropdown\">\n              <input name=\"primary-skill\" type=\"hidden\" />\n              <i class=\"dropdown icon\"></i>\n              <div class=\"default text\">Skills</div>\n              <div class=\"menu\">\n                <%- @partial('examples/single/preset-menu') %>\n              </div>\n            </div>\n          </div>\n          <div class=\"field\">\n            <label>Skills</label>\n            <div class=\"ui multiple search selection dropdown\">\n              <input name=\"all-skills\" type=\"hidden\" />\n              <i class=\"dropdown icon\"></i>\n              <div class=\"default text\">Skills</div>\n              <div class=\"menu\">\n                <%- @partial('examples/single/preset-menu') %>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"remote example\">\n      <h4 class=\"ui header\">Remote Data</h4>\n      <p>All dropdowns now support loading remote data. Selected name value pairs retrieved remotely are stored in <a href=\"https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage\"><code>sessionStorage</code></a> so that selected values are repopulated correctly even after a page refresh.</p>\n      <div class=\"ignored code\" data-type=\"javascript\">\n        // somewhere in app\n        $.api.settings.api = {\n          queryTags: '//api.semantic-ui.com/tags/{query}'\n        };\n        $('.ui.dropdown')\n          .dropdown({\n            apiSettings: {\n              action: 'queryTags'\n            }\n          })\n        ;\n      </div>\n      <div class=\"ui form\">\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>Favorite Animal</label>\n            <div class=\"ui search selection dropdown\">\n              <input type=\"hidden\">\n              <i class=\"dropdown icon\"></i>\n              <input type=\"text\" class=\"search\">\n              <div class=\"default text\">Select one...</div>\n            </div>\n          </div>\n          <div class=\"field\">\n            <label>Favorite Animals</label>\n            <div class=\"ui multiple search selection dropdown\">\n              <input type=\"hidden\">\n              <i class=\"dropdown icon\"></i>\n              <input type=\"text\" class=\"search\">\n              <div class=\"default text\">Select...</div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Scrolling Menus</h4>\n      <p><a href=\"/modules/dropdown.html#scrolling\">Scrolling menu</a> and nested menus are now supported.</p>\n      <p>Listing choices in a nested menu will still give all the same keyboard shortcuts and filtering as regular menus.</p>\n      <div class=\"ui floating dropdown labeled icon button\">\n        <i class=\"filter icon\"></i>\n        <span class=\"text\">Filter Posts</span>\n        <div class=\"menu\">\n          <div class=\"ui icon search input\">\n            <i class=\"search icon\"></i>\n            <input type=\"text\" placeholder=\"Search tags...\">\n          </div>\n          <div class=\"divider\"></div>\n          <div class=\"header\">\n            <i class=\"tags icon\"></i>\n            Tag Label\n          </div>\n          <div class=\"scrolling menu\">\n            <div class=\"item\">\n              <div class=\"ui violet empty circular label\"></div>\n              Already Fixed\n            </div>\n            <div class=\"item\">\n              <div class=\"ui blue empty circular label\"></div>\n              Announcement\n            </div>\n            <div class=\"item\">\n              <div class=\"ui black empty circular label\"></div>\n              Cannot Fix\n            </div>\n            <div class=\"item\">\n              <div class=\"ui green empty circular label\"></div>\n              Discussion\n            </div>\n            <div class=\"item\">\n              <div class=\"ui orange empty circular label\"></div>\n              Enhancement\n            </div>\n            <div class=\"item\">\n              <div class=\"ui red empty circular label\"></div>\n              Important\n            </div>\n            <div class=\"item\">\n              <div class=\"ui pink empty circular label\"></div>\n              Interesting\n            </div>\n            <div class=\"item\">\n              <div class=\"ui purple empty circular label\"></div>\n              News\n            </div>\n            <div class=\"item\">\n              <div class=\"ui yellow empty circular label\"></div>\n              Off Topic\n            </div>\n            <div class=\"item\">\n              <div class=\"ui brown empty circular label\"></div>\n              Up Next\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Advanced Shortcuts</h4>\n      <p>Dropdowns now support advanced shortcuts like <code>page down</code> and <code>page up</code>, scrolling to selection on first letter press, i.e. \"N\" for New York, <code>shift+left/right</code> for group selection, and <code>ctrl+click</code> for modifying groups.</p>\n      <img class=\"ui image\" src=\"/images/gif/multi-shortcuts.gif\">\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Much More</h4>\n      <p>Dropdowns support many, many new features, including:</p>\n      <ul class=\"ui large bulleted list\">\n        <li>Maximum selection count is supported for multiple selects</li>\n        <li>Mutation observers will now watch for changes in menus or the elements they are generated from and will update choices automatically</li>\n        <li>Custom templated error messages are now supported with dropdowns</li>\n      </ul>\n    </div>\n\n    <h2 class=\"ui dividing header\">API</h2>\n\n\n    <div class=\"remote example\">\n      <h4 class=\"ui header\">Local Caching</h4>\n      <p>API now supports <a href=\"https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage\"><code>sessionStorage</code></a> caching. This setting makes repeated requests to a URL return results instantly across a user's session, drastically improving performance for components like <a href=\"/modules/search.html\">search</a>.</p>\n      <p>Try refreshing the page and searching the same letter, results will appear instantly without a server roundtrip.</p>\n      <div class=\"code\" data-type=\"javascript\">\n      $('.ui.dropdown')\n        .dropdown({\n          apiSettings: {\n            cache : 'local',\n            url: '//api.semantic-ui.com/tags/{query}'\n          }\n        })\n      ;\n      </div>\n      <div class=\"ui form\">\n        <div class=\"field\">\n          <label>Favorite Animal</label>\n          <div class=\"ui search selection dropdown\">\n            <input type=\"hidden\">\n            <i class=\"dropdown icon\"></i>\n            <input type=\"text\" class=\"search\">\n            <div class=\"default text\">Select one...</div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n\n    <div class=\"external example\">\n      <h4 class=\"ui header\">Translates Any API</h4>\n      <p><a href=\"/behaviors/api.html\">API</a> now lets you adjust a server's JSON response using a new callback, <a href=\"/behaviors/api.html#response-callbacks\"><code>onResponse</code></a>. This can let you restructure third party APIs to match your local data requirements.</p>\n      <div class=\"ui search\">\n        <div class=\"ui left icon input\">\n          <input class=\"prompt\" type=\"text\" placeholder=\"Search GitHub\">\n          <i class=\"github icon\"></i>\n        </div>\n      </div>\n      <div class=\"ignored code\" data-type=\"javascript\">\n      $('.ui.search')\n        .search({\n          type          : 'category',\n          minCharacters : 3,\n          apiSettings   : {\n            onResponse: function(githubResponse) {\n              var\n                response = {\n                  results : {}\n                }\n              ;\n              // translate GitHub API response to work with search\n              $.each(githubResponse.items, function(index, item) {\n                var\n                  language   = item.language || 'Unknown',\n                  maxResults = 8\n                ;\n                if(index >= maxResults) {\n                  return false;\n                }\n                // create new language category\n                if(response.results[language] === undefined) {\n                  response.results[language] = {\n                    name    : language,\n                    results : []\n                  };\n                }\n                // add result to category\n                response.results[language].results.push({\n                  title       : item.name,\n                  description : item.description,\n                  url         : item.html_url\n                });\n              });\n              return response;\n            },\n            url: '//api.github.com/search/repositories?q={query}'\n          }\n        })\n      </div>\n    </div>\n\n    <div class=\"mock example\">\n      <h4 class=\"ui header\">Mocked Responses</h4>\n      <p><a href=\"/behaviors/api.html\">API</a> now supports mocked responses, letting you specify how responses are returned in advance.</p>\n      <div class=\"code\" data-type=\"javascript\">\n        $('.toggle.button')\n          .api({\n\n            // lets pretend this took a while\n            loadingDuration: 500,\n\n            // lets treat this button as requesting this JSON\n            mockResponse: {\n              success: true\n            }\n          })\n          // successful responses will trigger a text state change\n          .state({\n            text: {\n              inactive   : 'Off',\n              active     : 'On'\n            }\n          })\n        ;\n      </div>\n      <div class=\"ui toggle button\">\n        Off\n      </div>\n    </div>\n    <div class=\"async example\">\n      <h4 class=\"ui header\">Custom Backends</h4>\n      <p><a href=\"/behaviors/api.html\">API</a> can now use <a href=\"/behaviors/api.html#using-custom-backends\">custom asynchronous callbacks</a> for resolving API requests, this can let you use other custom XHR backends, or local data to resolve requests.</p>\n      <div class=\"code\" data-type=\"javascript\">\n      $('.toggle.button')\n        .api({\n          // lets wait a half second then try your luck\n          mockResponseAsync: function(settings, callback) {\n            var\n              luckyPerson = (Math.random() < 0.5),\n              response    = (luckyPerson)\n                ? { success: true }\n                : { success: false, message: 'You are not lucky' }\n            ;\n            // simulate this is an async task\n            setTimeout(function() {\n              callback(response);\n            }, 500);\n          },\n          successTest: function(response) {\n            return response && response.success;\n          },\n          onFailure: function (response) {\n            alert(response.message);\n          }\n        })\n        .state({\n          text: {\n            inactive : 'Off',\n            active   : 'On'\n          }\n        })\n      ;\n      </div>\n      <div class=\"ui toggle button\">\n        Off\n      </div>\n\n    </div>\n\n    <h2 class=\"ui dividing header\">Form</h2>\n\n    <div class=\"form example\">\n      <h4 class=\"ui header\">Autocomplete</h4>\n      <p>Form now include custom styling for browser <a href=\"https://developers.google.com/web/fundamentals/input/form/label-and-name-inputs?hl=en\">autocompleted form fields</a>. Autocompleted fields can also specify focused autocomplete, and errored autocomplete styles.</p>\n\n      <form class=\"ui form\" method=\"post\" action=\"#autocomplete\">\n        <h4 class=\"ui dividing header\">Shipping Information</h4>\n        <div class=\"field\">\n          <label>Name</label>\n          <div class=\"two fields\">\n            <div class=\"field\">\n              <input type=\"text\" name=\"shipping[first-name]\" placeholder=\"First Name\" autocomplete=\"given-name\">\n            </div>\n            <div class=\"field\">\n              <input type=\"text\" name=\"shipping[last-name]\" placeholder=\"Last Name\"  autocomplete=\"family-name\">\n            </div>\n          </div>\n        </div>\n        <div class=\"field\">\n          <label>Address</label>\n          <div class=\"fields\">\n            <div class=\"eight wide field\">\n              <input type=\"text\" name=\"shipping[address]\" placeholder=\"Street Address\" autocomplete=\"address-line1\">\n            </div>\n            <div class=\"four wide field\">\n              <input type=\"text\" name=\"shipping[address-2]\" placeholder=\"Apt #\" autocomplete=\"address-line2\">\n            </div>\n            <div class=\"four wide field\">\n              <input type=\"text\" name=\"shipping[zip]\" placeholder=\"Zipcode\" autocomplete=\"postal-code\">\n            </div>\n          </div>\n        </div>\n        <div class=\"ui submit button\">Submit</div>\n      </form>\n\n    </div>\n\n\n    <h2 class=\"ui dividing header\">Dimmer</h2>\n\n    <div class=\"blurring example\">\n      <h4 class=\"ui header\">Blurring Dimmers</h4>\n      <p><a href=\"/modules/dimmer.html\">Dimmers</a> now include <code>blurring</code> dimmer variations.</p>\n      <p>Other component can use blurring dimmers to add overlay content, <a href=\"/modules/modal.html\">modal</a> also includes a blurring setting that affects its generated dimmer.</p>\n\n      <div class=\"ui cards\">\n        <div class=\"card\">\n          <div class=\"blurring dimmable image\">\n            <div class=\"ui dimmer\">\n              <div class=\"content\">\n                <div class=\"center\">\n                  <div class=\"ui inverted button\">Send Memo</div>\n                </div>\n              </div>\n            </div>\n            <img src=\"/images/avatar2/large/matthew.png\">\n          </div>\n          <div class=\"content\">\n            <a class=\"header\">Matthew</a>\n          </div>\n          <div class=\"extra content\">\n            <a class=\"right floated\">\n              Hired Jan 2014\n            </a>\n            <a>\n              Human Resources\n            </a>\n          </div>\n        </div>\n        <div class=\"card\">\n          <div class=\"blurring dimmable image\">\n            <div class=\"ui inverted dimmer\">\n              <div class=\"content\">\n                <div class=\"center\">\n                  <div class=\"ui primary button\">Send Memo</div>\n                </div>\n              </div>\n            </div>\n            <img src=\"/images/avatar2/large/rachel.png\">\n          </div>\n          <div class=\"content\">\n            <a class=\"header\">Rachel</a>\n          </div>\n          <div class=\"extra content\">\n            <a class=\"right floated\">\n              Hired Feb 2015\n            </a>\n            <a>\n              Accounting\n            </a>\n          </div>\n        </div>\n      </div>\n\n    </div>\n\n    <h2 class=\"ui dividing header\">Checkbox</h2>\n\n  <!--   <div class=\"indeterminate example\">\n      <h4 class=\"ui header\">Progressively Enhanced</h4>\n      <p><a href=\"/modules/checkbox.html\">Checkboxes</a> now can work without Javascript, although additional features are available with Javascript use.</p>\n\n      <div class=\"ui checkbox\">\n        <input type=\"checkbox\" />\n        <label>No Javascript</label>\n      </div>\n\n      <div class=\"ui divider\"></div>\n      <div class=\"ui slider checkbox\">\n        <input type=\"checkbox\" />\n        <label>No Javascript</label>\n      </div>\n\n      <div class=\"ui divider\"></div>\n      <div class=\"ui toggle checkbox\">\n        <input type=\"checkbox\" />\n        <label>No Javascript</label>\n      </div>\n    </div> -->\n\n    <div class=\"indeterminate example\">\n      <h4 class=\"ui header\">Indeterminate Checkbox</h4>\n\n      <p><a href=\"/modules/checkbox.html\">Checkboxes</a> now support an indeterminate state. This is useful when a collection of checkboxes may be partially selected.</p>\n      <div class=\"ui relaxed list\">\n        <div class=\"item\">\n          <div class=\"ui master checkbox\">\n            <input type=\"checkbox\" name=\"fruits\" />\n            <label>Fruits</label>\n          </div>\n          <div class=\"list\">\n            <div class=\"item\">\n              <div class=\"ui child checkbox\">\n                <input type=\"checkbox\" name=\"apple\" />\n                <label>Apple</label>\n              </div>\n            </div>\n            <div class=\"item\">\n              <div class=\"ui child checkbox\">\n                <input type=\"checkbox\" name=\"orange\" />\n                <label>Orange</label>\n              </div>\n            </div>\n            <div class=\"item\">\n              <div class=\"ui child checkbox\">\n                <input type=\"checkbox\" name=\"pear\" />\n                <label>Pear</label>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"item\">\n          <div class=\"ui master checkbox\">\n            <input type=\"checkbox\" name=\"vegetables\" />\n            <label>Vegetables</label>\n          </div>\n          <div class=\"list\">\n            <div class=\"item\">\n              <div class=\"ui child checkbox\">\n                <input type=\"checkbox\" name=\"lettuce\" />\n                <label>Lettuce</label>\n              </div>\n            </div>\n            <div class=\"item\">\n              <div class=\"ui child checkbox\">\n                <input type=\"checkbox\" name=\"carrot\" />\n                <label>Carrot</label>\n              </div>\n            </div>\n            <div class=\"item\">\n              <div class=\"ui child checkbox\">\n                <input type=\"checkbox\" name=\"spinach\" />\n                <label>Spinach</label>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n\n    <h2 class=\"ui dividing header\">Segment</h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Horizontal Groups</h4>\n      <p>Horizontal groups are now available for <a href=\"/elements/segment.html\">segment</a>.</p>\n      <div class=\"ui horizontal segments\">\n        <div class=\"ui segment\">\n          <p>Left</p>\n        </div>\n        <div class=\"ui segment\">\n          <p>Center</p>\n        </div>\n        <div class=\"ui segment\">\n          <p>Right</p>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Complex Layouts</h4>\n      <p>Groups now use <code>flexbox</code> and fully support nesting.</p>\n      <div class=\"ui segments\">\n        <div class=\"ui segment\">\n          <p>Top</p>\n        </div>\n        <div class=\"ui segments\">\n          <div class=\"ui segment\">\n            <p>Nested Top</p>\n          </div>\n          <div class=\"ui segment\">\n            <p>Nested Middle</p>\n          </div>\n          <div class=\"ui segment\">\n            <p>Nested Bottom</p>\n          </div>\n        </div>\n        <div class=\"ui segment\">\n          <p>Middle</p>\n        </div>\n        <div class=\"ui horizontal segments\">\n          <div class=\"ui segment\">\n            <p>Left</p>\n          </div>\n          <div class=\"ui segment\">\n            <p>Center</p>\n          </div>\n          <div class=\"ui segment\">\n            <p>Right</p>\n          </div>\n        </div>\n        <div class=\"ui segment\">\n          <p>Bottom</p>\n        </div>\n      </div>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">Typed Groups</h4>\n    <p>Groups now support types like <a href=\"/elements/segment.html#raised\"><code>raised</code></a>, <a href=\"/elements/segment.html#stacked\"><code>stacked</code></a>, or <a href=\"/elements/segment.html#piled\"><code>piled</code></a></p>\n      <div class=\"ui raised segments\">\n        <div class=\"ui secondary segment\">\n          <p>Top</p>\n        </div>\n        <div class=\"ui tall stacked horizontal segments\">\n          <div class=\"ui segment\">\n            <p>Left</p>\n          </div>\n          <div class=\"ui segment\">\n            <p>Center</p>\n          </div>\n          <div class=\"ui segment\">\n            <p>Center</p>\n          </div>\n          <div class=\"ui segment\">\n            <p>Center</p>\n          </div>\n          <div class=\"ui segment\">\n            <p>Right</p>\n          </div>\n        </div>\n        <div class=\"ui secondary segment\">\n          <p>Bottom</p>\n        </div>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Menus</h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Flexible Menus</h4>\n      <p><a href=\"/collections/menu.html\">Menus</a> have been completely rewritten to use <code>flexbox</code>. Items inside a menu will automatically adjust to align with other menu items regardless of size.</p>\n      <div class=\"ui top attached menu\">\n        <div class=\"item\">\n          <img src=\"/images/logo.png\">\n        </div>\n        <a class=\"active item\">\n          Bio\n        </a>\n        <a class=\"item\">\n          Photos\n        </a>\n      </div>\n      <div class=\"ui bottom attached segment\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n      </div>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">Vertical Tabs</h4>\n      <p>Menus now include a new <a href=\"/collections/menu.html#tabular\"><code>vertical tabular</code></a> menu type.</p>\n      <div class=\"ui grid\">\n        <div class=\"four wide column\">\n          <div class=\"ui vertical fluid tabular menu\">\n            <a class=\"item active\">\n              Bio\n            </a>\n            <a class=\"item\">\n              Pics\n            </a>\n            <a class=\"item\">\n              Companies\n            </a>\n            <a class=\"item\">\n              Links\n            </a>\n          </div>\n        </div>\n        <div class=\"twelve wide stretched column\">\n          <div class=\"ui segment\">\n            This is an stretched grid column. This segment will always match the tab height\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">Better Coupling</h4>\n      <p>Menus now have better coupling with other components like dropdown, search, button, and input.</p>\n\n      <div class=\"ignored code\" data-type=\"javascript\">\n        $('.ui.menu .browse.item')\n          .popup({\n            popup     : '.classes.popup',\n            hoverable : true,\n            position  : 'bottom left',\n            delay     : {\n              show: 300,\n              hide: 800\n            }\n          })\n        ;\n      </div>\n      <div class=\"ignored code\" data-type=\"javascript\">\n        $('.ui.search')\n          .search({\n            type: 'category',\n            apiSettings: {\n              action: 'categorySearch'\n            }\n          })\n        ;\n      </div>\n      <div class=\"ui menu\">\n        <div class=\"browse link item\">Browse</div>\n        <div class=\"ui right aligned category search item\">\n          <div class=\"ui transparent icon input\">\n            <input class=\"prompt\" type=\"text\" placeholder=\"Search things...\">\n            <i class=\"search link icon\"></i>\n          </div>\n          <div class=\"results\"></div>\n        </div>\n      </div>\n      <div class=\"ui flowing classes popup\">\n        <div class=\"ui equal width divided grid\">\n          <div class=\"column\">\n            <h4 class=\"ui header\">Business</h4>\n            <div class=\"ui link list\">\n              <a class=\"item\">Design & Urban Ecologies</a>\n              <a class=\"item\">Fashion Design</a>\n              <a class=\"item\">Fine Art</a>\n              <a class=\"item\">Strategic Design</a>\n            </div>\n          </div>\n          <div class=\"column\">\n            <h4 class=\"ui header\">Liberal Arts</h4>\n            <div class=\"ui link list\">\n              <a class=\"item\">Anthropology</a>\n              <a class=\"item\">Economics</a>\n              <a class=\"item\">Media Studies</a>\n              <a class=\"item\">Philosophy</a>\n            </div>\n          </div>\n          <div class=\"column\">\n            <h4 class=\"ui header\">Social Sciences</h4>\n            <div class=\"ui link list\">\n              <a class=\"item\">Food Studies</a>\n              <a class=\"item\">Journalism</a>\n              <a class=\"item\">Non Profit Management</a>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Visibility</h2>\n\n    <div class=\"visibility example\">\n\n      <h4 class=\"ui header\">Simple Sticky</h4>\n\n      <p><a href=\"/behaviors/visibility.html\">Visibility API</a>s now include useful shortcuts for sticky content. A placeholder will automatically be added when an element is passed making sure other content does not shift position.</p>\n\n      <p>Additionally <a href=\"/behaviors/visibility.html\">visibility</a> and <a href=\"/modules/sticky.html\">sticky</a> have been rewritten to use a pub/sub pattern which is much more performant than <code>1.0</code></p>\n\n      <div class=\"ignored code\" data-type=\"javascript\">\n        $('.overlay')\n          .visibility({\n            type   : 'fixed',\n            offset : 15 // give some space from top of screen\n          })\n        ;\n      </div>\n      <div class=\"ignored code\" data-type=\"css\">\n      .overlay {\n        background-color: #FFFFFF;\n        padding: 0.5em;\n        box-shadow: 0px 0px 0px rgba(0, 0, 0, 0);\n        transition: all 0.5s ease;\n        background: transparent;\n      }\n      /* change style */\n      .fixed.overlay {\n        position: fixed;\n        padding: 1em;\n        box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2);\n      }\n      </div>\n      <div class=\"ui segment\">\n        <div class=\"overlay\">\n          <div class=\"ui secondary menu\">\n            <a class=\"item\">\n              <i class=\"sidebar icon\"></i> Menu\n            </a>\n            <a class=\"item\">Option 1</a>\n            <a class=\"item\">Option 2</a>\n            <a class=\"item\">Option 3</a>\n          </div>\n        </div>\n        <div class=\"ui clearing divider\"></div>\n        <img src=\"/images/wireframe/centered-paragraph.png\" class=\"ui wireframe image\">\n        <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n        <img src=\"/images/wireframe/media-paragraph.png\" class=\"ui wireframe image\">\n        <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n        <img src=\"/images/wireframe/media-paragraph.png\" class=\"ui wireframe image\">\n        <img src=\"/images/wireframe/paragraph.png\" class=\"ui wireframe image\">\n      </div>\n    </div>\n  </div>\n</div>\n"
  },
  {
    "path": "server/documents/kitchen-sink.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'custom'\nstandalone  : true\n\ntitle       : 'All UI'\ntype        : 'UI Examples'\ndescription : 'Examples of all user interface elements'\n---\n\n<%- @partial('header', { tabs: {  elements: 'Elements', collections: 'Collections', views: 'Views', modules: 'Modules' } }) %>\n\n<div class=\"main demo ui container\">\n\n  <div class=\"ui active tab\" data-tab=\"elements\">\n    <h2 class=\"ui dividing header\">\n      Elements\n    </h2>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/elements/button.html\">Button</a>\n      </h4>\n      <%- @partial('examples/button') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/elements/divider.html\">Divider</a>\n      </h4>\n      <%- @partial('examples/divider') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/elements/flag.html\">Flag</a>\n      </h4>\n      <%- @partial('examples/flag') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/elements/header.html\">Header</a>\n      </h4>\n      <%- @partial('examples/header') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/elements/icon.html\">Icon</a>\n      </h4>\n      <%- @partial('examples/icon') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/elements/image.html\">Image</a>\n      </h4>\n      <%- @partial('examples/image') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/elements/input.html\">Input</a>\n      </h4>\n      <%- @partial('examples/input') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/elements/label.html\">Label</a>\n      </h4>\n      <%- @partial('examples/label') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/elements/list.html\">List</a>\n      </h4>\n      <%- @partial('examples/list') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/elements/loader.html\">Loader</a>\n      </h4>\n      <%- @partial('examples/loader') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/elements/list.html\">Reveal</a>\n      </h4>\n      <%- @partial('examples/reveal') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/elements/segment.html\">Segment</a>\n      </h4>\n      <%- @partial('examples/segment') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/elements/step.html\">Step</a>\n      </h4>\n      <%- @partial('examples/step') %>\n    </div>\n  </div>\n  <div class=\"ui tab\" data-tab=\"collections\">\n    <h2 class=\"ui dividing header\">\n      Collections\n    </h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/collections/breadcrumb.html\">Breadcrumb</a>\n      </h4>\n      <%- @partial('examples/breadcrumb') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/collections/form.html\">Form</a>\n      </h4>\n      <%- @partial('examples/form') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/collections/grid.html\">Grid</a>\n      </h4>\n      <%- @partial('examples/grid') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/collections/menu.html\">Menu</a>\n      </h4>\n      <%- @partial('examples/menu') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/collections/message.html\">Message</a>\n      </h4>\n      <%- @partial('examples/message') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/collections/table.html\">Table</a>\n      </h4>\n      <%- @partial('examples/table') %>\n    </div>\n  </div>\n  <div class=\"ui tab\" data-tab=\"views\">\n    <h2 class=\"ui dividing header\">\n      Views\n    </h2>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/views/card.html\">Card</a>\n      </h4>\n      <%- @partial('examples/card') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/views/feed.html\">Feed</a>\n      </h4>\n      <%- @partial('examples/feed') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/views/item.html\">Item</a>\n      </h4>\n      <%- @partial('examples/item') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/views/statistic.html\">Statistic</a>\n      </h4>\n      <%- @partial('examples/statistic') %>\n    </div>\n  </div>\n  <div class=\"ui tab\" data-tab=\"modules\">\n    <h2 class=\"ui dividing header\">\n      Modules\n    </h2>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/modules/accordion.html\">Accordion</a>\n      </h4>\n      <%- @partial('examples/accordion') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/modules/checkbox.html\">Checkbox</a>\n      </h4>\n      <%- @partial('examples/checkbox') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/modules/dimmer.html\">Dimmer</a>\n      </h4>\n      <%- @partial('examples/dimmer') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/modules/dropdown.html\">Dropdown</a>\n      </h4>\n      <%- @partial('examples/dropdown') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/modules/modal.html\">Modal</a>\n      </h4>\n      <%- @partial('examples/modal') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/modules/popup.html\">Popup</a>\n      </h4>\n      <%- @partial('examples/popup') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/modules/progress.html\">Progress</a>\n      </h4>\n      <%- @partial('examples/progress') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/modules/rating.html\">Rating</a>\n      </h4>\n      <%- @partial('examples/rating') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/modules/search.html\">Search</a>\n      </h4>\n      <%- @partial('examples/search') %>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/modules/shape.html\">Shape</a>\n      </h4>\n      <%- @partial('examples/shape') %>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/modules/sidebar.html\">Sidebar</a>\n      </h4>\n      <%- @partial('examples/sidebar') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/modules/tab.html\">Tab</a>\n      </h4>\n      <%- @partial('examples/tab') %>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        <a href=\"/modules/transition.html\">Transition</a>\n      </h4>\n      <%- @partial('examples/transition') %>\n    </div>\n  </div>\n</div>\n"
  },
  {
    "path": "server/documents/modules/accordion.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'accordion'\nelement     : 'accordion'\nelementType : 'module'\nstandalone  : true\n\ntitle       : 'Accordion'\ndescription : 'An accordion allows users to toggle the display of sections of content'\ntype        : 'UI Module'\n\nthemes      : ['Default', 'Chubby']\n---\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/modules/accordion.less\" />\n<script src=\"/javascript/accordion.js\"></script>\n\n<%- @partial('header', { tabs: 'module' }) %>\n\n<div class=\"main ui container\">\n\n  <div class=\"ui active tab\" data-tab=\"definition\">\n\n    <h2 class=\"ui dividing header\">Types</h2>\n    <div class=\"example\">\n      <h4 class=\"ui header\">Accordion</h4>\n      <p>A standard accordion</p>\n      <div class=\"ui accordion\">\n        <div class=\"active title\">\n          <i class=\"dropdown icon\"></i>\n          What is a dog?\n        </div>\n        <div class=\"active content\">\n          <p>A dog is a type of domesticated animal. Known for its loyalty and faithfulness, it can be found as a welcome guest in many households across the world.</p>\n        </div>\n        <div class=\"title\">\n          <i class=\"dropdown icon\"></i>\n          What kinds of dogs are there?\n        </div>\n        <div class=\"content\">\n          <p>There are many breeds of dogs. Each breed varies in size and temperament. Owners often select a breed of dog that they find to be compatible with their own lifestyle and desires from a companion.</p>\n        </div>\n        <div class=\"title\">\n          <i class=\"dropdown icon\"></i>\n          How do you acquire a dog?\n        </div>\n        <div class=\"content\">\n          <p>Three common ways for a prospective owner to acquire a dog is from pet shops, private owners, or shelters.</p>\n          <p>A pet shop may be the most convenient way to buy a dog. Buying a dog from a private owner allows you to assess the pedigree and upbringing of your dog before choosing to take it home. Lastly, finding your dog from a shelter, helps give a good home to a dog who may not find one so readily.</p>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Styled</h4>\n      <p>A styled accordion adds basic formatting</p>\n      <div class=\"ui styled accordion\">\n        <div class=\"active title\">\n          <i class=\"dropdown icon\"></i>\n          What is a dog?\n        </div>\n        <div class=\"active content\">\n          <p>A dog is a type of domesticated animal. Known for its loyalty and faithfulness, it can be found as a welcome guest in many households across the world.</p>\n        </div>\n        <div class=\"title\">\n          <i class=\"dropdown icon\"></i>\n          What kinds of dogs are there?\n        </div>\n        <div class=\"content\">\n          <p>There are many breeds of dogs. Each breed varies in size and temperament. Owners often select a breed of dog that they find to be compatible with their own lifestyle and desires from a companion.</p>\n        </div>\n        <div class=\"title\">\n          <i class=\"dropdown icon\"></i>\n          How do you acquire a dog?\n        </div>\n        <div class=\"content\">\n          <p>Three common ways for a prospective owner to acquire a dog is from pet shops, private owners, or shelters.</p>\n          <p>A pet shop may be the most convenient way to buy a dog. Buying a dog from a private owner allows you to assess the pedigree and upbringing of your dog before choosing to take it home. Lastly, finding your dog from a shelter, helps give a good home to a dog who may not find one so readily.</p>\n        </div>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Variations</h2>\n    <div class=\"example\">\n      <h4 class=\"ui header\">Fluid</h4>\n      <p>An accordion can take up the width of its container</p>\n      <div class=\"ui styled fluid accordion\">\n        <div class=\"active title\">\n          <i class=\"dropdown icon\"></i>\n          What is a dog?\n        </div>\n        <div class=\"active content\">\n          <p>A dog is a type of domesticated animal. Known for its loyalty and faithfulness, it can be found as a welcome guest in many households across the world.</p>\n        </div>\n        <div class=\"title\">\n          <i class=\"dropdown icon\"></i>\n          What kinds of dogs are there?\n        </div>\n        <div class=\"content\">\n          <p>There are many breeds of dogs. Each breed varies in size and temperament. Owners often select a breed of dog that they find to be compatible with their own lifestyle and desires from a companion.</p>\n        </div>\n        <div class=\"title\">\n          <i class=\"dropdown icon\"></i>\n          How do you acquire a dog?\n        </div>\n        <div class=\"content\">\n          <p>Three common ways for a prospective owner to acquire a dog is from pet shops, private owners, or shelters.</p>\n          <p>A pet shop may be the most convenient way to buy a dog. Buying a dog from a private owner allows you to assess the pedigree and upbringing of your dog before choosing to take it home. Lastly, finding your dog from a shelter, helps give a good home to a dog who may not find one so readily.</p>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Inverted</h4>\n      <p>An accordion can be formatted to appear on dark backgrounds</p>\n      <div class=\"ui inverted segment\">\n        <div class=\"ui inverted accordion\">\n          <div class=\"active title\">\n            <i class=\"dropdown icon\"></i>\n            What is a dog?\n          </div>\n          <div class=\"active content\">\n            <p>A dog is a type of domesticated animal. Known for its loyalty and faithfulness, it can be found as a welcome guest in many households across the world.</p>\n          </div>\n          <div class=\"title\">\n            <i class=\"dropdown icon\"></i>\n            What kinds of dogs are there?\n          </div>\n          <div class=\"content\">\n            <p>There are many breeds of dogs. Each breed varies in size and temperament. Owners often select a breed of dog that they find to be compatible with their own lifestyle and desires from a companion.</p>\n          </div>\n          <div class=\"title\">\n            <i class=\"dropdown icon\"></i>\n            How do you acquire a dog?\n          </div>\n          <div class=\"content\">\n            <p>Three common ways for a prospective owner to acquire a dog is from pet shops, private owners, or shelters.</p>\n            <p>A pet shop may be the most convenient way to buy a dog. Buying a dog from a private owner allows you to assess the pedigree and upbringing of your dog before choosing to take it home. Lastly, finding your dog from a shelter, helps give a good home to a dog who may not find one so readily.</p>\n          </div>\n        </div>\n      </div>\n    </div>\n\n\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"examples\">\n\n    <h2 class=\"ui dividing header\">Examples</h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Nested Accordions</h4>\n      <p>An accordion can have multiple levels of nested content. This content can either be in a nested <code>accordion</code> or simply another level of <code>title</code> and <code>content</code></p>\n      <div class=\"ui styled accordion\">\n        <div class=\"active title\">\n          <i class=\"dropdown icon\"></i>\n          Level 1\n        </div>\n        <div class=\"active content\">\n          Welcome to level 1\n          <div class=\"accordion\">\n            <div class=\"active title\">\n                <i class=\"dropdown icon\"></i>\n                Level 1A\n            </div>\n            <div class=\"active content\">\n              <p>Level 1A Contents</p>\n              <div class=\"accordion\">\n                <div class=\"title\">\n                    <i class=\"dropdown icon\"></i>\n                    Level 1A-A\n                </div>\n                <div class=\"content\">\n                    Level 1A-A Contents\n                </div>\n                <div class=\"title\">\n                    <i class=\"dropdown icon\"></i>\n                    Level 1A-B\n                </div>\n                <div class=\"content\">\n                    Level 1A-B Contents\n                </div>\n              </div>\n            </div>\n            <div class=\"title\">\n                <i class=\"dropdown icon\"></i>\n                Level 1B\n            </div>\n            <div class=\"content\">\n                Level 1B Contents\n            </div>\n            <div class=\"title\">\n                <i class=\"dropdown icon\"></i>\n                Level 1C\n            </div>\n            <div class=\"content\">\n                Level 1C Contents\n            </div>\n          </div>\n        </div>\n        <div class=\"title\">\n          <i class=\"dropdown icon\"></i>\n          Level 2\n        </div>\n        <div class=\"content\">\n          <p>Welcome to level 2</p>\n          <div class=\"accordion\">\n            <div class=\"active title\">\n              <i class=\"dropdown icon\"></i>\n              Level 2A\n            </div>\n            <div class=\"active content\">\n              <p>Level 2A Contents</p>\n              <div class=\"accordion\">\n                <div class=\"title\">\n                    <i class=\"dropdown icon\"></i>\n                    Level 2A-A\n                </div>\n                <div class=\"content\">\n                    Level 2A-A Contents\n                </div>\n                <div class=\"title\">\n                    <i class=\"dropdown icon\"></i>\n                    Level 2A-B\n                </div>\n                <div class=\"content\">\n                    Level 2A-B Contents\n                </div>\n              </div>\n            </div>\n            <div class=\"title\">\n                <i class=\"dropdown icon\"></i>\n                Level 2B\n            </div>\n            <div class=\"content\">\n                Level 2B Contents\n            </div>\n            <div class=\"title\">\n                <i class=\"dropdown icon\"></i>\n                Level 2C\n            </div>\n            <div class=\"content\">\n                Level 2C Contents\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"trigger example\">\n      <h4 class=\"ui header\">Changing Trigger</h4>\n      <p>An accordion normally triggers when its title is clicked. However you can change the trigger selector to specify an element inside a title to use as an activator</p>\n      <div class=\"ui code\" data-type=\"javascript\" data-demo=\"true\">\n        $('.trigger.example .accordion')\n          .accordion({\n            selector: {\n              trigger: '.title .icon'\n            }\n          })\n        ;\n      </div>\n      <div class=\"ui accordion\">\n        <div class=\"active title\">\n          <i class=\"dropdown icon\"></i>\n          What is a dog?\n        </div>\n        <div class=\"active content\">\n          <p>A dog is a type of domesticated animal. Known for its loyalty and faithfulness, it can be found as a welcome guest in many households across the world.</p>\n        </div>\n        <div class=\"title\">\n          <i class=\"dropdown icon\"></i>\n          What kinds of dogs are there?\n        </div>\n        <div class=\"content\">\n          <p>There are many breeds of dogs. Each breed varies in size and temperament. Owners often select a breed of dog that they find to be compatible with their own lifestyle and desires from a companion.</p>\n        </div>\n        <div class=\"title\">\n          <i class=\"dropdown icon\"></i>\n          How do you acquire a dog?\n        </div>\n        <div class=\"content\">\n          <p>Three common ways for a prospective owner to acquire a dog is from pet shops, private owners, or shelters.</p>\n          <p>A pet shop may be the most convenient way to buy a dog. Buying a dog from a private owner allows you to assess the pedigree and upbringing of your dog before choosing to take it home. Lastly, finding your dog from a shelter, helps give a good home to a dog who may not find one so readily.</p>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Form Fields</h4>\n      <p>An accordion can be used anywhere where content can be shown or hidden. For example, to show optional form fields.</p>\n      <div class=\"ui segment\">\n        <div class=\"ui fluid form\">\n          <div class=\"two fields\">\n            <div class=\"field\">\n              <label>First Name</label>\n              <input placeholder=\"First Name\" type=\"text\">\n            </div>\n            <div class=\"field\">\n              <label>Last Name</label>\n              <input placeholder=\"Last Name\" type=\"text\">\n            </div>\n          </div>\n          <div class=\"ui accordion field\">\n            <div class=\"title\">\n              <i class=\"icon dropdown\"></i>\n              Optional Details\n            </div>\n            <div class=\"content field\">\n              <label>Maiden Name</label>\n              <input placeholder=\"Maiden Name\" type=\"text\">\n            </div>\n          </div>\n          <div class=\"ui secondary submit button\">Sign Up</div>\n        </div>\n      </div>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">Accordion Menu</h4>\n      <p>An accordion can be used to create content drawers inside a menu</p>\n      <div class=\"ui vertical accordion menu\">\n        <div class=\"item\">\n          <a class=\"active title\">\n            <i class=\"dropdown icon\"></i>\n            Size\n          </a>\n          <div class=\"active content\">\n            <div class=\"ui form\">\n              <div class=\"grouped fields\">\n                <div class=\"field\">\n                  <div class=\"ui radio checkbox\">\n                    <input type=\"radio\" name=\"size\" value=\"small\" />\n                    <label>Small</label>\n                  </div>\n                </div>\n                <div class=\"field\">\n                  <div class=\"ui radio checkbox\">\n                    <input type=\"radio\" name=\"size\" value=\"medium\" />\n                    <label>Medium</label>\n                  </div>\n                </div>\n                <div class=\"field\">\n                  <div class=\"ui radio checkbox\">\n                    <input type=\"radio\" name=\"size\" value=\"large\" />\n                    <label>Large</label>\n                  </div>\n                </div>\n                <div class=\"field\">\n                  <div class=\"ui radio checkbox\">\n                    <input type=\"radio\" name=\"size\" value=\"x-large\" />\n                    <label>X-Large</label>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"item\">\n          <a class=\"title\">\n            <i class=\"dropdown icon\"></i>\n            Colors\n          </a>\n          <div class=\"content\">\n            <div class=\"ui form\">\n              <div class=\"grouped fields\">\n                <div class=\"field\">\n                  <div class=\"ui checkbox\">\n                    <input type=\"checkbox\" name=\"small\" />\n                    <label>Red</label>\n                  </div>\n                </div>\n                <div class=\"field\">\n                  <div class=\"ui checkbox\">\n                    <input type=\"checkbox\" name=\"medium\" />\n                    <label>Orange</label>\n                  </div>\n                </div>\n                <div class=\"field\">\n                  <div class=\"ui checkbox\">\n                    <input type=\"checkbox\" name=\"large\" />\n                    <label>Green</label>\n                  </div>\n                </div>\n                <div class=\"field\">\n                  <div class=\"ui checkbox\">\n                    <input type=\"checkbox\" name=\"x-large\" />\n                    <label>Blue</label>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"ui tab\" data-tab=\"usage\">\n\n    <h2 class=\"ui dividing header\">Initializing</h2>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Initializing an accordion</h4>\n      <p>Accordion is initialized on pre-existing markup</p>\n      <div class=\"test code\">\n      $('.ui.accordion')\n        .accordion()\n      ;\n      </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">AJAX Content</h4>\n      <p>Accordions use <a href=\"https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver\" target=\"_blank\">DOM Mutation Observers</a> and delegated events to allow for easy compatibility with AJAX content, or content added after initialization.</p>\n      <p>If the DOM tree changes the module will automatically call <code>module.refresh</code> and update the selector cache. Because events are bound on the parent module using delegated events, events will automatically fire on content added after initialization.</p>\n      <p>If you change other attributes of the module without DOM insertion and need to update the cache you can do so by calling this module's <code>refresh</code> behavior.\n      <div class=\"code\" data-type=\"javascript\">\n        $('.ui.accordion').accordion('refresh');\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Behaviors</h2>\n\n    <p>Behaviors are short english phrases used for accessing specific functionality in\n\n    <p>Behaviors are accessible with Javascript using the syntax:<p>\n    <div class=\"code\">\n    $('.ui.accordion').accordion('behavior', argumentOne, argumentTwo...);\n    </div>\n\n    <table class=\"ui definition celled table\">\n      <tr>\n        <td>refresh</td>\n        <td>Refreshes all cached selectors and data</td>\n      </tr>\n      <tr>\n        <td>open (index)</td>\n        <td>Opens accordion content at index</td>\n      </tr>\n      <tr>\n        <td>close others</td>\n        <td>Closes accordion content that are not active</td>\n      </tr>\n      <tr>\n        <td>close (index)</td>\n        <td>Closes accordion content at index</td>\n      </tr>\n      <tr>\n        <td>toggle (index)</td>\n        <td>Toggles accordion content at index</td>\n      </tr>\n    </table>\n\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"settings\">\n    <h2 class=\"ui dividing header\">\n      Accordion\n    </h2>\n\n    <h4 class=\"ui header\">\n      Behavior\n    </h4>\n    <table class=\"ui sortable celled definition table\">\n      <thead>\n        <th class=\"three wide\"></th>\n        <th class=\"three wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>exclusive</td>\n          <td>true</td>\n          <td>Only allow one section open at a time</td>\n        </tr>\n        <tr>\n          <td>on</td>\n          <td>click</td>\n          <td>Event on <code>title</code> that will cause accordion to open</td>\n        </tr>\n        <tr>\n          <td>animateChildren</td>\n          <td>true</td>\n          <td>Whether child content opacity should be animated (may cause performance issues with many child elements)</td>\n        </tr>\n        <tr>\n          <td>closeNested</td>\n          <td>true</td>\n          <td>Close open nested accordion content when an element closes</td>\n        </tr>\n        <tr>\n          <td>collapsible</td>\n          <td>true</td>\n          <td>Allow active sections to collapse</td>\n        </tr>\n        <tr>\n          <td>duration</td>\n          <td>500</td>\n          <td>Duration in ms of opening animation</td>\n        </tr>\n        <tr>\n          <td>easing</td>\n          <td>easeInOutQuint</td>\n          <td>Easing of opening animation. EaseInOutQuint is included with accordion, for additional options you must include <a href=\"http://gsgd.co.uk/sandbox/jquery/easing/\">easing equations</a>.</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <h4 class=\"ui header\">\n      Callbacks\n    </h4>\n\n    <table class=\"ui sortable celled definition table\">\n      <thead>\n        <th class=\"three wide\"></th>\n        <th class=\"three wide\">Context</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>onOpening</td>\n          <td>active content</td>\n          <td>Callback before element opens</td>\n        </tr>\n        <tr>\n          <td>onOpen</td>\n          <td>active content</td>\n          <td>Callback after element is open</td>\n        </tr>\n        <tr>\n          <td>onClosing</td>\n          <td>active content</td>\n          <td>Callback before element closes</td>\n        </tr>\n        <tr>\n          <td>onClose</td>\n          <td>active content</td>\n          <td>Callback after element is closed</td>\n        </tr>\n        <tr>\n          <td>onChanging</td>\n          <td>active content</td>\n          <td>Callback before element opens or closes</td>\n        </tr>\n        <tr>\n          <td>onChange</td>\n          <td>active content</td>\n          <td>Callback on element open or close</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <h2 class=\"ui dividing header\">\n      Module\n    </h2>\n\n    <p>These settings are native to all modules, and define how the component ties content to DOM attributes, and debugging settings for the module.</p>\n\n    <table class=\"ui sortable celled definition table\">\n      <thead>\n        <th></th>\n        <th class=\"six wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>name</td>\n          <td>Accordion</td>\n          <td>Name used in log statements</td>\n        </tr>\n        <tr>\n          <td>namespace</td>\n          <td>accordion</td>\n          <td>Event namespace. Makes sure module teardown does not effect other events attached to an element.</td>\n        </tr>\n        <tr>\n          <td>selector</td>\n          <td>\n            <div class=\"code\" data-type=\"css\">\n            selector    : {\n              accordion : '.accordion',\n              title     : '.title',\n              trigger   : '.title',\n              content   : '.content'\n            }\n            </div>\n          </td>\n          <td>Selectors used to find parts of a module</td>\n        </tr>\n        <tr>\n          <td>className</td>\n          <td>\n            <div class=\"code\">\n            className   : {\n              active    : 'active',\n              animating : 'animating'\n            }\n            </div>\n          </td>\n          <td>Class names used to determine element state</td>\n        </tr>\n        <tr>\n          <td>silent</td>\n          <td>False</td>\n          <td>Silences all console output including error messages, regardless of other debug settings.</td>\n        </tr>\n        <tr>\n          <td>debug</td>\n          <td>false</td>\n          <td>Debug output to console</td>\n        </tr>\n        <tr>\n          <td>performance</td>\n          <td>true</td>\n          <td>Show <code>console.table</code> output with performance metrics</td>\n        </tr>\n        <tr>\n          <td>verbose</td>\n          <td>false</td>\n          <td>Debug output includes all internal behaviors</td>\n        </tr>\n        <tr>\n          <td>errors</td>\n          <td colspan=\"2\">\n            <div class=\"code\">\n            error   : {\n              method   : 'The method you called is not defined.'\n            }\n            </div>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n</div>\n"
  },
  {
    "path": "server/documents/modules/checkbox.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'checkbox'\nelement     : 'checkbox'\nelementType : 'module'\nstandalone  : true\n\ntitle       : 'Checkbox'\ndescription : \"A checkbox allows a user to select a value from a small set of options, often binary\"\ntype        : 'UI Module'\n\nthemes      : ['Default', 'Colored']\n---\n<script src=\"/javascript/checkbox.js\"></script>\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/modules/checkbox.less\" />\n\n<%- @partial('header', { tabs: 'module' }) %>\n\n<div class=\"main ui container\">\n\n  <div class=\"ui tab\" data-tab=\"definition\">\n\n\n    <h2 class=\"ui dividing header\">Types</h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Checkbox</h4>\n      <p>A standard checkbox</p>\n      <div class=\"ui checkbox\">\n        <input type=\"checkbox\" name=\"example\" />\n        <label>Make my profile visible</label>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Radio</h4>\n      <p>A checkbox can be formatted as a radio element. This means it is an exclusive option.</p>\n\n      <div class=\"ui radio checkbox\">\n        <input type=\"radio\" name=\"radio\" checked=\"checked\" />\n        <label>Radio choice</label>\n      </div>\n    </div>\n    <div class=\"another example\">\n      <div class=\"ui form\">\n        <div class=\"inline fields\">\n          <label>How often do you use checkboxes?</label>\n          <div class=\"field\">\n            <div class=\"ui radio checkbox\">\n              <input type=\"radio\" name=\"frequency\" checked=\"checked\" />\n              <label>Once a week</label>\n            </div>\n          </div>\n          <div class=\"field\">\n            <div class=\"ui radio checkbox\">\n              <input type=\"radio\" name=\"frequency\" />\n              <label>2-3 times a week</label>\n            </div>\n          </div>\n          <div class=\"field\">\n            <div class=\"ui radio checkbox\">\n              <input type=\"radio\" name=\"frequency\" />\n              <label>Once a day</label>\n            </div>\n          </div>\n          <div class=\"field\">\n            <div class=\"ui radio checkbox\">\n              <input type=\"radio\" name=\"frequency\" />\n              <label>Twice a day</label>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"another example\">\n      <div class=\"ui form\">\n        <div class=\"grouped fields\">\n          <label>How often do you use checkboxes?</label>\n          <div class=\"field\">\n            <div class=\"ui radio checkbox\">\n              <input type=\"radio\" name=\"example2\" checked=\"checked\" />\n              <label>Once a week</label>\n            </div>\n          </div>\n          <div class=\"field\">\n            <div class=\"ui radio checkbox\">\n              <input type=\"radio\" name=\"example2\" />\n              <label>2-3 times a week</label>\n            </div>\n          </div>\n          <div class=\"field\">\n            <div class=\"ui radio checkbox\">\n              <input type=\"radio\" name=\"example2\" />\n              <label>Once a day</label>\n            </div>\n          </div>\n          <div class=\"field\">\n            <div class=\"ui radio checkbox\">\n              <input type=\"radio\" name=\"example2\" />\n              <label>Twice a day</label>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Slider</h4>\n      <p>A checkbox can be formatted to emphasize the current selection state</p>\n      <div class=\"ui slider checkbox\">\n        <input type=\"checkbox\" name=\"newsletter\" />\n        <label>Accept terms and conditions</label>\n      </div>\n    </div>\n\n    <div class=\"another example\">\n      <div class=\"ui form\">\n        <div class=\"grouped fields\">\n          <label>Outbound Throughput</label>\n          <div class=\"field\">\n            <div class=\"ui slider checkbox\">\n              <input type=\"radio\" name=\"throughput\" checked=\"checked\">\n              <label>20 mbps max</label>\n            </div>\n          </div>\n          <div class=\"field\">\n            <div class=\"ui slider checkbox\">\n              <input type=\"radio\" name=\"throughput\">\n              <label>10mbps max</label>\n            </div>\n          </div>\n          <div class=\"field\">\n            <div class=\"ui slider checkbox\">\n              <input type=\"radio\" name=\"throughput\">\n              <label>5mbps max</label>\n            </div>\n          </div>\n          <div class=\"field\">\n            <div class=\"ui slider checkbox checked\">\n              <input type=\"radio\" name=\"throughput\">\n              <label>Unmetered</label>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Toggle</h4>\n      <p>A checkbox can be formatted to show an on or off choice</p>\n      <div class=\"ui toggle checkbox\">\n        <input type=\"checkbox\" name=\"public\" />\n        <label>Subscribe to weekly newsletter</label>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">States</h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Read-only</h4>\n      <p>A checkbox can be read-only and unable to change states</p>\n      <div class=\"ui read-only checkbox\">\n        <input type=\"checkbox\" />\n        <label>Read Only</label>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Checked</h4>\n      <p>A checkbox can be checked</p>\n      <div class=\"ui checked checkbox\">\n        <input type=\"checkbox\" checked />\n        <label>Active</label>\n      </div>\n    </div>\n\n    <div class=\"indeterminate example\">\n      <h4 class=\"ui header\">Indeterminate</h4>\n      <p>A checkbox can be indeterminate</p>\n      <div class=\"ui ignored info message\">\n        An indeterminate state can only be set in Javascript, see examples section\n      </div>\n      <div class=\"ui checkbox\">\n        <input type=\"checkbox\" />\n        <label>Indeterminate</label>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Disabled</h4>\n      <p>A checkbox can be read-only and unable to change states</p>\n      <div class=\"ui ignored info message\">\n        A checkbox can be disabled by either setting the disabled attribute on the hidden input, or class <code>disabled</code> on the <code>ui checkbox</code>\n      </div>\n      <div class=\"ui disabled checkbox\">\n        <input type=\"checkbox\" disabled=\"disabled\" />\n        <label>Disabled</label>\n      </div>\n      <br>\n      <br>\n      <div class=\"ui toggle checkbox\">\n        <input type=\"checkbox\" disabled=\"disabled\" />\n        <label>Disabled</label>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Variations</h2>\n\n    <div class=\"fitted example\">\n      <h4 class=\"ui header\">Fitted</h4>\n      <p>A fitted checkbox does not leave padding for a label</p>\n      <div class=\"ui left floated compact segment\">\n        <div class=\"ui fitted checkbox\">\n          <input type=\"checkbox\"/>\n          <label></label>\n        </div>\n      </div>\n      <div class=\"ui left floated compact segment\">\n        <div class=\"ui fitted slider checkbox\">\n          <input type=\"checkbox\"/>\n          <label></label>\n        </div>\n      </div>\n      <div class=\"ui left floated compact segment\">\n        <div class=\"ui fitted toggle checkbox\">\n          <input type=\"checkbox\"/>\n          <label></label>\n        </div>\n      </div>\n    </div>\n\n\n  </div>\n\n  <div class=\"ui examples tab\" data-tab=\"examples\">\n\n    <h2>Examples</h2>\n    <div class=\"callback example\">\n      <h4 class=\"ui header\">Using Callbacks</h4>\n      <p>Checkbox has two versions of each state change behavior to let you determine whether the call should trigger checkbox callbacks.</p>\n      <p>Calling a behavior like <code>check</code> will trigger an elements callbacks, however using <code>set checked</code> will adjust the checkbox state <em>without triggering callbacks</em></p>\n      <p>This differentiation is important to differentiate between programmatic changes, and user-invoked changes to state.</p>\n      <div class=\"ui equal width stretched grid\">\n        <div class=\"column\">\n          <div class=\"ui segment\">\n            <div class=\"ui top right attached label\">\n              Example\n            </div>\n            <div class=\"ui checkbox\">\n              <input type=\"checkbox\" />\n              <label>Checkbox</label>\n            </div>\n            <div class=\"ui divider\"></div>\n            <div class=\"ui radio checkbox\">\n              <input type=\"radio\" />\n              <label>Radio</label>\n            </div>\n          </div>\n        </div>\n        <div class=\"column\">\n          <div class=\"ui console segment\">\n            <div class=\"ui top right attached label\">\n              Console\n            </div>\n          </div>\n        </div>\n        <div class=\"column\">\n          <div class=\"ui vertical buttons\">\n            <div class=\"ui button\" data-method=\"toggle\">Toggle</div>\n            <div class=\"ui button\" data-method=\"check\">Check</div>\n            <div class=\"ui button\" data-method=\"uncheck\">Uncheck</div>\n            <div class=\"ui button\" data-method=\"indeterminate\">Indeterminate</div>\n            <div class=\"ui button\" data-method=\"determinate\">Determinate</div>\n            <div class=\"ui button\" data-method=\"enable\">Enable</div>\n            <div class=\"ui button\" data-method=\"disable\">Disable</div>\n          </div>\n          <div class=\"ui divider\"></div>\n          <div class=\"ui vertical buttons\">\n            <div class=\"ui button\" data-method=\"set checked\">Set Checked</div>\n            <div class=\"ui button\" data-method=\"set unchecked\">Set Unchecked</div>\n            <div class=\"ui button\" data-method=\"set indeterminate\">Set Indeterminate</div>\n            <div class=\"ui button\" data-method=\"set determinate\">Set Determinate</div>\n            <div class=\"ui button\" data-method=\"set enabled\">Set Enabled</div>\n            <div class=\"ui button\" data-method=\"set disabled\">Set Disabled</div>\n          </div>\n        </div>\n      </div>\n      <div class=\"evaluated code\">\n        var\n          $console = $('.callback .console')\n        ;\n        $('.callback.example .checkbox')\n          .checkbox()\n          .first().checkbox({\n            onChecked: function() {\n              $console.append('onChecked called<br>');\n            },\n            onUnchecked: function() {\n              $console.append('onUnchecked called<br>');\n            },\n            onEnable: function() {\n              $console.append('onEnable called<br>');\n            },\n            onDisable: function() {\n              $console.append('onDisable called<br>');\n            },\n            onDeterminate: function() {\n              $console.append('onDeterminate called<br>');\n            },\n            onIndeterminate: function() {\n              $console.append('onIndeterminate called<br>');\n            },\n            onChange: function() {\n              $console.append('onChange called<br>');\n            }\n          })\n        ;\n        // bind events to buttons\n        $('.callback.example .button')\n          .on('click', function() {\n            $('.callback .checkbox').checkbox( $(this).data('method') );\n          })\n        ;\n      </div>\n    </div>\n    <div class=\"grouped example\">\n      <h4 class=\"ui header\">Grouped Checkboxes</h4>\n      <p>The <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/%3Aindeterminate\" target=\"_blank\"><code>indeterminate</code></a> state can be used to represent a value that is neither checked or unchecked.</p>\n      <p>This can be useful with groups where a \"master\" checkbox, should display the selections of several other checkboxes</p>\n\n      <div class=\"ui celled relaxed list\">\n        <div class=\"item\">\n          <div class=\"ui master checkbox\">\n            <input type=\"checkbox\" name=\"fruits\" />\n            <label>Fruits</label>\n          </div>\n          <div class=\"list\">\n            <div class=\"item\">\n              <div class=\"ui child checkbox\">\n                <input type=\"checkbox\" name=\"apple\" />\n                <label>Apple</label>\n              </div>\n            </div>\n            <div class=\"item\">\n              <div class=\"ui child checkbox\">\n                <input type=\"checkbox\" name=\"orange\" />\n                <label>Orange</label>\n              </div>\n            </div>\n            <div class=\"item\">\n              <div class=\"ui child checkbox\">\n                <input type=\"checkbox\" name=\"pear\" />\n                <label>Pear</label>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"item\">\n          <div class=\"ui master checkbox\">\n            <input type=\"checkbox\" name=\"vegetables\" />\n            <label>Vegetables</label>\n          </div>\n          <div class=\"list\">\n            <div class=\"item\">\n              <div class=\"ui child checkbox\">\n                <input type=\"checkbox\" name=\"lettuce\" />\n                <label>Lettuce</label>\n              </div>\n            </div>\n            <div class=\"item\">\n              <div class=\"ui child checkbox\">\n                <input type=\"checkbox\" name=\"carrot\" />\n                <label>Carrot</label>\n              </div>\n            </div>\n            <div class=\"item\">\n              <div class=\"ui child checkbox\">\n                <input type=\"checkbox\" name=\"spinach\" />\n                <label>Spinach</label>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"evaluated code\" data-title=\"Master Checkboxes\">\n        $('.list .master.checkbox')\n          .checkbox({\n            // check all children\n            onChecked: function() {\n              var\n                $childCheckbox  = $(this).closest('.checkbox').siblings('.list').find('.checkbox')\n              ;\n              $childCheckbox.checkbox('check');\n            },\n            // uncheck all children\n            onUnchecked: function() {\n              var\n                $childCheckbox  = $(this).closest('.checkbox').siblings('.list').find('.checkbox')\n              ;\n              $childCheckbox.checkbox('uncheck');\n            }\n          })\n        ;\n      </div>\n      <div class=\"evaluated code\" data-title=\"Child Checkboxes\">\n        $('.list .child.checkbox')\n          .checkbox({\n            // Fire on load to set parent value\n            fireOnInit : true,\n            // Change parent state on each child checkbox change\n            onChange   : function() {\n              var\n                $listGroup      = $(this).closest('.list'),\n                $parentCheckbox = $listGroup.closest('.item').children('.checkbox'),\n                $checkbox       = $listGroup.find('.checkbox'),\n                allChecked      = true,\n                allUnchecked    = true\n              ;\n              // check to see if all other siblings are checked or unchecked\n              $checkbox.each(function() {\n                if( $(this).checkbox('is checked') ) {\n                  allUnchecked = false;\n                }\n                else {\n                  allChecked = false;\n                }\n              });\n              // set parent checkbox state, but dont trigger its onChange callback\n              if(allChecked) {\n                $parentCheckbox.checkbox('set checked');\n              }\n              else if(allUnchecked) {\n                $parentCheckbox.checkbox('set unchecked');\n              }\n              else {\n                $parentCheckbox.checkbox('set indeterminate');\n              }\n            }\n          })\n        ;\n      </div>\n    </div>\n\n\n    <div class=\"cancel example\">\n      <h4 class=\"ui header\">Checking Conditions</h4>\n      <p><a href=\"/modules/checkbox.html\">Checkboxes</a> include four new callbacks <code>beforeChecked</code>, <code>beforeUnchecked</code>, <code>beforeDeterminate</code>, and <code>beforeIndeterminate</code>, returning <code>false</code> from these callbacks will cancel the action from occuring before the input value is updated.</p>\n      <div class=\"ui checkbox\">\n        <input type=\"checkbox\" name=\"example\" />\n        <label>Maybe this will work</label>\n      </div>\n      <div class=\"evaluated code\" data-type=\"javascript\">\n        $('.cancel.example .ui.checkbox')\n          .checkbox({\n            beforeChecked: function() {\n              var\n                luckyPerson = (Math.random() < 0.5)\n              ;\n              return luckyPerson;\n            }\n          })\n        ;\n      </div>\n    </div>\n\n    <div class=\"state example\">\n      <h4 class=\"ui header\">One-Way Choices</h4>\n      <p class=\"ignored\">To make a user able to check a box, but unable to uncheck it, use the <code>uncheckable</code> setting.</p>\n      <p class=\"ignored\">To always disable a checkbox, add the property <code>disabled</code> to your input.</p>\n      <p class=\"ignored\">To make a checkbox read-only do not initialize it, or include the <code>read-only</code> class which will not allow events.</p>\n      <div class=\"evaluated code\" data-type=\"javascript\">\n        $('.state.example .checkbox')\n          .last()\n          .checkbox({\n            uncheckable: false\n          })\n        ;\n      </div>\n      <div class=\"ui form\">\n        <div class=\"field\">\n          <div class=\"ui checkbox\" id=\"demo1\">\n            <input type=\"checkbox\" disabled=\"disabled\" checked=\"checked\" />\n            <label>Disabled</label>\n          </div>\n        </div>\n        <div class=\"field\">\n          <div class=\"ui read-only checkbox\" id=\"demo2\">\n            <input type=\"checkbox\" checked=\"checked\" />\n            <label>Read-only</label>\n          </div>\n        </div>\n        <div class=\"field\">\n          <div class=\"ui checkbox\" id=\"demo3\">\n            <input type=\"checkbox\" />\n            <label>Uncheckable</label>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Attaching Events to other Elements</h4>\n      <p>Checkbox can use the <code>attach events</code> behavior to attach events easily to other activating elements. This defaults to toggling, but other behaviors can be used as well.</p>\n      <div class=\"evaluated code\">\n        $('.test.checkbox').checkbox('attach events', '.toggle.button');\n        $('.test.checkbox').checkbox('attach events', '.check.button', 'check');\n        $('.test.checkbox').checkbox('attach events', '.uncheck.button', 'uncheck');\n      </div>\n      <div class=\"ui toggle button\">Toggle</div>\n      <div class=\"ui positive check button\">Check</div>\n      <div class=\"ui negative uncheck button\">Uncheck</div>\n      <div class=\"ui six column center aligned stackable divided grid segment\">\n        <div class=\"column\">\n          <div class=\"ui test slider checkbox\">\n            <input type=\"checkbox\" />\n            <label>1</label>\n          </div>\n        </div>\n        <div class=\"column\">\n          <div class=\"ui test toggle checkbox\">\n            <input type=\"checkbox\" checked=\"checked\" />\n            <label>2</label>\n          </div>\n        </div>\n        <div class=\"column\">\n          <div class=\"ui test checkbox\">\n            <input type=\"checkbox\" />\n            <label>3</label>\n          </div>\n        </div>\n        <div class=\"column\">\n          <div class=\"ui test slider checkbox\">\n            <input type=\"checkbox\" checked=\"checked\" />\n            <label>4</label>\n          </div>\n        </div>\n        <div class=\"column\">\n          <div class=\"ui test toggle checkbox\">\n            <input type=\"checkbox\" />\n            <label>5</label>\n          </div>\n        </div>\n        <div class=\"column\">\n          <div class=\"ui test checkbox\">\n            <input type=\"checkbox\" />\n            <label>6</label>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"usage\">\n    <h2 class=\"ui dividing header\">Initializing</h2>\n\n    <div class=\"simple example\">\n      <h4 class=\"ui header\">Checkbox</h4>\n      <p>A checkbox does not require Javascript to function.</p>\n      <div class=\"ui checkbox\">\n        <input type=\"checkbox\">\n        <label>Label</label>\n      </div>\n      <div class=\"code\" data-type=\"html\">\n        <div class=\"ui checkbox\">\n          <input type=\"checkbox\">\n          <label>Label</label>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Full Featured Checkboxes</h4>\n      <p>Using Javascript with checkboxes will automatically make the checkbox's label trigger a change in the input and provide callback functions. Additionally, some states like <code>indeterminate</code> can only be triggered with Javascript.</p>\n      <div class=\"ui checkbox\">\n        <input type=\"checkbox\">\n        <label>Label</label>\n      </div>\n      <div class=\"code\" data-type=\"html\">\n        <div class=\"ui checkbox\">\n          <input type=\"checkbox\">\n          <label>Label</label>\n        </div>\n      </div>\n    </div>\n\n\n    <div class=\"simple example\">\n      <h4 class=\"ui header\">Linked Labels</h4>\n      <p>If you just need labels to link without any other features of Javascript checkboxes, you can match the <code>for</code> attribute of the label to an input's id.</p>\n      <div class=\"ui checkbox\">\n        <input id=\"example-id\" type=\"checkbox\">\n        <label for=\"example-id\">Label</label>\n      </div>\n      <div class=\"code\" data-type=\"html\">\n        <div class=\"ui checkbox\">\n          <input id=\"example-id\" type=\"checkbox\">\n          <label for=\"example-id\">Label</label>\n        </div>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Behavior</h2\n      >\n    <p>Behaviors are accessible with Javascript using the syntax:<p>\n    <div class=\"code\">\n    $('.ui.checkbox').checkbox(<i>behavior</i>, argumentOne, argumentTwo...);\n    </div>\n\n    <table class=\"ui definition celled table segment\">\n      <tr>\n        <td>toggle</td>\n        <td>Switches a checkbox from current state</td>\n      </tr>\n      <tr>\n        <td>check</td>\n        <td>Set a checkbox state to checked</td>\n      </tr>\n      <tr>\n        <td>uncheck</td>\n        <td>Set a checkbox state to unchecked</td>\n      </tr>\n      <tr>\n        <td>indeterminate</td>\n        <td>Set as indeterminate checkbox</td>\n      </tr>\n      <tr>\n        <td>determinate</td>\n        <td>Set as determinate checkbox</td>\n      </tr>\n      <tr>\n        <td>enable</td>\n        <td>Enable interaction with a checkbox</td>\n      </tr>\n      <tr>\n        <td>set checked</td>\n        <td>Set a checkbox state to checked without callbacks</td>\n      </tr>\n      <tr>\n        <td>set unchecked</td>\n        <td>Set a checkbox state to unchecked without callbacks</td>\n      </tr>\n      <tr>\n        <td>set indeterminate</td>\n        <td>Set as indeterminate checkbox without callbacks</td>\n      </tr>\n      <tr>\n        <td>set determinate</td>\n        <td>Set as determinate checkbox without callbacks</td>\n      </tr>\n      <tr>\n        <td>set enabled</td>\n        <td>Enable interaction with a checkbox without callbacks</td>\n      </tr>\n      <tr>\n        <td>set disabled</td>\n        <td>Disable interaction with a checkbox without callbacks</td>\n      </tr>\n      <tr>\n        <td>attach events(selector, behavior)</td>\n        <td>Attach checkbox events to another element</td>\n      </tr>\n      <tr>\n        <td>is radio</td>\n        <td>Returns whether element is radio selection</td>\n      </tr>\n      <tr>\n        <td>is checked</td>\n        <td>Returns whether element is currently checked</td>\n      </tr>\n      <tr>\n        <td>is unchecked</td>\n        <td>Returns whether element is not checked</td>\n      </tr>\n      <tr>\n        <td>can change</td>\n        <td>Returns whether element is able to be changed</td>\n      </tr>\n      <tr>\n        <td>should allow check</td>\n        <td>Returns whether element can be checked (checking if already checked or `beforeChecked` would cancel)</td>\n      </tr>\n      <tr>\n        <td>should allow uncheck</td>\n        <td>Returns whether element can be unchecked (checking if already unchecked or `beforeUnchecked` would cancel)</td>\n      </tr>\n      <tr>\n        <td>should allow determinate</td>\n        <td>Returns whether element can be determinate (checking if already determinate or `beforeDeterminate` would cancel)</td>\n      </tr>\n      <tr>\n        <td>should allow indeterminate</td>\n        <td>Returns whether element can be indeterminate (checking if already indeterminate or `beforeIndeterminate` would cancel)</td>\n      </tr>\n      <tr>\n        <td>can uncheck</td>\n        <td>Returns whether element is able to be unchecked</td>\n      </tr>\n    </table>\n  </div>\n\n\n  <div class=\"ui tab\" data-tab=\"settings\">\n    <h2 class=\"ui dividing header\">Checkbox</h2>\n\n    <p>These settings are specific to checkbox, and determine the parameters of its behavior</p>\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <th class=\"three wide\"></th>\n        <th class=\"three wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>uncheckable</td>\n          <td>auto</td>\n          <td>Setting to true/false will determine whether an input will allow no selection. Auto will set disallow this behavior only for radio boxes</td>\n        </tr>\n        <tr>\n          <td>fireOnInit</td>\n          <td>false</td>\n          <td>Whether callbacks for checked status should be fired on init as well as change</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <th class=\"three wide\"></th>\n        <th class=\"three wide\">Context</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>onChange</td>\n          <td>HTML input element</td>\n          <td>Callback after a checkbox is either checked or unchecked.</td>\n        </tr>\n        <tr>\n          <td>onChecked</td>\n          <td>HTML input element</td>\n          <td>Callback after a checkbox is checked.</td>\n        </tr>\n        <tr>\n          <td>onIndeterminate</td>\n          <td>HTML input element</td>\n          <td>Callback after a checkbox is set to undeterminate.</td>\n        </tr>\n        <tr>\n          <td>onDeterminate</td>\n          <td>HTML input element</td>\n          <td>Callback after a checkbox is set to determinate.</td>\n        </tr>\n        <tr>\n          <td>onUnchecked</td>\n          <td>HTML input element</td>\n          <td>Callback after a checkbox is unchecked.</td>\n        </tr>\n        <tr>\n          <td>beforeChecked</td>\n          <td>HTML input element</td>\n          <td>Callback before a checkbox is checked. Can cancel change by returning <code>false</code></td>\n        </tr>\n        <tr>\n          <td>beforeIndeterminate</td>\n          <td>HTML input element</td>\n          <td>Callback before a checkbox is set to undeterminate. Can cancel change by returning <code>false</code></td>\n        </tr>\n        <tr>\n          <td>beforeDeterminate</td>\n          <td>HTML input element</td>\n          <td>Callback before a checkbox is set to determinate. Can cancel change by returning <code>false</code></td>\n        </tr>\n        <tr>\n          <td>beforeUnchecked</td>\n          <td>HTML input element</td>\n          <td>Callback before a checkbox is unchecked. Can cancel change by returning <code>false</code></td>\n        </tr>\n        <tr>\n          <td>onEnable</td>\n          <td>HTML input element</td>\n          <td>Callback after a checkbox is enabled.</td>\n        </tr>\n        <tr>\n          <td>onDisable</td>\n          <td>HTML input element</td>\n          <td>Callback after a checkbox is disabled.</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <h2 class=\"ui dividing header\">Module</h2>\n\n    <p>These settings are native to all modules, and define how the component ties content to DOM attributes, and debugging settings for the module.</p>\n    <table class=\"ui sortable celled definition table\">\n      <thead>\n        <th></th>\n        <th class=\"six wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>name</td>\n          <td>Checkbox</td>\n          <td>Name used in log statements</td>\n        </tr>\n        <tr>\n          <td>namespace</td>\n          <td>checkbox</td>\n          <td>Event namespace. Makes sure module teardown does not effect other events attached to an element.</td>\n        </tr>\n        <tr>\n          <td>selector</td>\n          <td>\n            <div class=\"code\" data-type=\"css\">\n            selector : {\n              input  : 'input[type=checkbox], input[type=radio]',\n              label  : 'label'\n            }\n            </div>\n          </td>\n          <td>Selectors used to find parts of a module</td>\n        </tr>\n        <tr>\n          <td>className</td>\n          <td>\n            <div class=\"code\">\n            className   : {\n              checked  : 'checked',\n              disabled : 'disabled',\n              radio    : 'radio',\n              readOnly : 'read-only'\n            }\n            </div>\n          </td>\n          <td>Class names used to determine element state</td>\n        </tr>\n        <tr>\n          <td>silent</td>\n          <td>False</td>\n          <td>Silences all console output including error messages, regardless of other debug settings.</td>\n        </tr>\n        <tr>\n          <td>debug</td>\n          <td>false</td>\n          <td>Debug output to console</td>\n        </tr>\n        <tr>\n          <td>performance</td>\n          <td>true</td>\n          <td>Show <code>console.table</code> output with performance metrics</td>\n        </tr>\n        <tr>\n          <td>verbose</td>\n          <td>false</td>\n          <td>Debug output includes all internal behaviors</td>\n        </tr>\n        <tr>\n          <td>errors</td>\n          <td colspan=\"2\">\n            <div class=\"code\">\n            error   : {\n              method   : 'The method you called is not defined.'\n            }\n            </div>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/modules/dimmer.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'dim'\nstandalone  : true\n\nelement     : 'dimmer'\nelementType : 'module'\n\ntitle       : 'Dimmer'\ndescription : \"A dimmer hides distractions to focus attention on particular content\"\ntype        : 'UI Module'\n\nthemes      : ['Default']\n---\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/modules/dimmer.less\" />\n<script src=\"/javascript/dimmer.js\"></script>\n\n\n<%- @partial('header', { tabs: 'module' }) %>\n\n<div class=\"main ui container\">\n\n  <div class=\"active ui tab\" data-tab=\"definition\">\n\n    <h2 class=\"ui dividing header\">Types</h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Dimmer</h4>\n      <p>A simple dimmer displays no content</p>\n      <div class=\"code\">\n        // left button\n        $('.segment').dimmer('show');\n        // right button\n        $('.segment').dimmer('hide');\n      </div>\n      <div class=\"ui ignored info message\">A dimmer will automatically be created when a dimming behavior is triggered on an element.\n      </div>\n      <div class=\"ui segment\">\n        <h3 class=\"ui header\">\n          Overlayable Section\n        </h3>\n        <div class=\"ui small images\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n        </div>\n        <img class=\"ui medium wireframe image\" src=\"/images/wireframe/media-paragraph.png\">\n      </div>\n      <div class=\"ui existing code\">\n        <div class=\"ui segment\">\n          <!-- Dimmer Generated Automatically No Need to Include !-->\n          <h3 class=\"ui header\">\n            Overlayable Section\n          </h3>\n          <div class=\"ui small images\">\n            <img>\n            <img>\n            <img>\n          </div>\n          <p></p>\n        </div>\n      </div>\n      <div class=\"ui ignored ignored icon buttons\">\n        <div class=\"ui show button\"><i class=\"plus icon\"></i></div>\n        <div class=\"ui hide button\"><i class=\"minus icon\"></i></div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Content Dimmer</h4>\n      <p>A dimmer can display content</p>\n      <div class=\"ui ignored info message\">Since <div class=\"ui horizontal label\">2.3</div> dimmers with content now only need a single wrapping <code>content</code> container.</div>\n      <div class=\"ui segment\">\n        <h3 class=\"ui header\">\n          Overlayable Section\n        </h3>\n        <div class=\"ui small images\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n        </div>\n        <img class=\"ui medium wireframe image\" src=\"/images/wireframe/media-paragraph.png\">\n        <div class=\"ui dimmer\">\n          <div class=\"content\">\n            <h2 class=\"ui inverted icon header\">\n              <i class=\"heart icon\"></i>\n              Dimmed Message!\n            </h2>\n          </div>\n        </div>\n      </div>\n      <div class=\"ui ignored icon buttons\">\n        <div class=\"ui show button\"><i class=\"plus icon\"></i></div>\n        <div class=\"ui hide button\"><i class=\"minus icon\"></i></div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Page Dimmer</h4>\n      <p>A dimmer can be formatted to be fixed to the page</p>\n      <div class=\"existing code\" data-preview=\"true\">\n        <div class=\"ui page dimmer\">\n          <div class=\"content\">\n            Hello\n          </div>\n        </div>\n      </div>\n      <div class=\"ui page button\">\n        <i class=\"plus icon\"></i>Show\n      </div>\n    </div>\n\n\n    <h2 class=\"ui dividing header\">States</h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Active</h4>\n      <p>An active dimmer will dim its parent container</p>\n      <div class=\"ui segment\">\n        <div class=\"ui active dimmer\"></div>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Disabled</h4>\n      <p>A disabled dimmer cannot be activated</p>\n      <div class=\"ui segment\">\n        <div class=\"ui disabled dimmer\"></div>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Variations</h2>\n\n    <h3>Dimmable</h3>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        Blurring\n        <span class=\"ui teal label\">New in 2.0</span>\n      </h4>\n      <p>A dimmable element can blur its contents</p>\n      <div class=\"ui blurring segment\">\n        <div class=\"ui dimmer\"></div>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      </div>\n      <div class=\"ui ignored ignored icon buttons\">\n        <div class=\"ui show button\"><i class=\"plus icon\"></i></div>\n        <div class=\"ui hide button\"><i class=\"minus icon\"></i></div>\n      </div>\n    </div>\n    <div class=\"another example\">\n      <div class=\"ui blurring segment\">\n        <div class=\"ui inverted dimmer\"></div>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      </div>\n      <div class=\"ui ignored ignored icon buttons\">\n        <div class=\"ui show button\"><i class=\"plus icon\"></i></div>\n        <div class=\"ui hide button\"><i class=\"minus icon\"></i></div>\n      </div>\n    </div>\n\n    <h3>Alignment</h3>\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        Vertical Alignment\n        <span class=\"ui teal label\">New in 2.3</span>\n      </h4>\n      <p>A dimmer can have its content top or bottom aligned.</p>\n      <div class=\"ui segment\">\n        <div class=\"ui top aligned dimmer\">\n          <div class=\"content\">\n            <h2 class=\"ui inverted header\">Title</h2>\n            <div class=\"ui primary button\">Add</div>\n            <div class=\"ui button\">View</div>\n          </div>\n        </div>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      </div>\n      <div class=\"ui ignored ignored icon buttons\">\n        <div class=\"ui show button\"><i class=\"plus icon\"></i></div>\n        <div class=\"ui hide button\"><i class=\"minus icon\"></i></div>\n      </div>\n    </div>\n    <div class=\"another example\">\n      <div class=\"ui segment\">\n        <div class=\"ui bottom aligned dimmer\">\n          <div class=\"content\">\n            <h2 class=\"ui inverted header\">Title</h2>\n            <div class=\"ui primary button\">Add</div>\n            <div class=\"ui button\">View</div>\n          </div>\n        </div>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      </div>\n      <div class=\"ui ignored ignored icon buttons\">\n        <div class=\"ui show button\"><i class=\"plus icon\"></i></div>\n        <div class=\"ui hide button\"><i class=\"minus icon\"></i></div>\n      </div>\n    </div>\n\n    <h3>Dimmer</h3>\n    <div class=\"example\">\n      <h4 class=\"ui header\">Simple Dimmer</h4>\n      <p>A dimmer can be controlled without Javascript</p>\n      <div class=\"ignored ui info message\">Having any parent element receive the class <code>ui dimmable dimmed</code> will trigger the dimmer to display.</div>\n      <div class=\"ui dimmable dimmed segment\">\n        <div class=\"ui simple dimmer\"></div>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Inverted Dimmer</h4>\n      <p>A dimmer can be formatted to have its colors inverted</p>\n      <div class=\"ui segment\">\n        <div class=\"ui inverted dimmer\"></div>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n      </div>\n      <div class=\"ignored ui icon buttons\">\n        <div class=\"ui show button\"><i class=\"plus icon\"></i></div>\n        <div class=\"ui hide button\"><i class=\"minus icon\"></i></div>\n      </div>\n    </div>\n  </div>\n  <div class=\"ui tab\" data-tab=\"examples\">\n\n    <h2 class=\"ui dividing header\">Examples</h2>\n\n    <div class=\"event example\">\n      <h4 class=\"ui header\">Dimmer Events</h4>\n      <p>A dimmer can trigger a visibility change on an event</p>\n      <div class=\"evaluated code\">\n      $('.event.example .image')\n        .dimmer({\n          on: 'hover'\n        })\n      ;\n      </div>\n      <div class=\"ui medium image\">\n        <div class=\"ui dimmer\">\n          <div class=\"content\">\n            <h2 class=\"ui inverted header\">Title</h2>\n            <div class=\"ui primary button\">Add</div>\n            <div class=\"ui button\">View</div>\n          </div>\n        </div>\n        <img class=\"ui image\" src=\"/images/wireframe/image.png\">\n      </div>\n      <div class=\"ui circular image\">\n        <div class=\"ui dimmer\">\n          <div class=\"content\">\n            <div class=\"ui small primary button\">Add</div>\n            <div class=\"ui small button\">View</div>\n          </div>\n        </div>\n        <img src=\"/images/wireframe/square-image.png\">\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Loaders inside Dimmers</h4>\n      <p>Any loader inside a dimmer will automatically use an appropriate color to match</p>\n      <div class=\"ui segment\">\n        <div class=\"ui inverted dimmer\">\n          <div class=\"ui text loader\">Loading</div>\n        </div>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n      </div>\n      <div class=\"ignored ui icon buttons\">\n        <div class=\"ui show button\"><i class=\"plus icon\"></i></div>\n        <div class=\"ui hide button\"><i class=\"minus icon\"></i></div>\n      </div>\n    </div>\n\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"usage\">\n\n    <h2 class=\"ui dividing header\">Usage</h2>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Display</h4>\n      <p>You can display a dimmer by either invoking .dimmer('show') on a section or a dimmer itself. If you choose to  dim a dimmable section, a dimmer will automatically be created.</p>\n      <div class=\"ignored code\">\n      // these two are the same\n      $('.ui.dimmable')\n        .dimmer('show')\n      ;\n      $('.ui.dimmable .dimmer')\n        .dimmer('show')\n      ;\n      </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Creating Dimmers</h4>\n      <p>If a dimmer does not exist inside the element it will be created on first use.</p>\n      <div class=\"code\" data-demo=\"true\">\n        $('h4')\n          .dimmer('toggle')\n        ;\n      </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Showing a Specific Dimmer</h4>\n      <p>If a dimmer is already inside an element, you can call behavior on the dimmable section or the dimmer itself.</p>\n      <div class=\"code\" data-demo=\"true\">\n        // If a dimmer exists on a page, you can make it appear by calling it directly\n        $('.page.dimmer:first')\n          .dimmer('toggle')\n        ;\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Behavior</h2>\n\n    <p>All the following behaviors can be called using the syntax:</p>\n\n    <div class=\"ui ignored info message\">\n      Behaviors must be called on the same content which you originally initialize the dimmer, whether it is the <code>dimmable</code> context, or the <code>ui dimmer</code>\n    </div>\n\n    <div class=\"code\">\n    $('.your.element')\n      .dimmer('behavior name', argumentOne, argumentTwo)\n    ;\n    </div>\n\n    <table class=\"ui definition celled sortable table segment\">\n      <thead>\n        <th>Behavior</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>add content (element)</td>\n          <td>Detaches a given element from DOM and reattaches element inside dimmer</td>\n        </tr>\n        <tr>\n          <td>show</td>\n          <td>Shows dimmer</td>\n        </tr>\n        <tr>\n          <td>hide</td>\n          <td>Hides dimmer</td>\n        </tr>\n        <tr>\n          <td>toggle</td>\n          <td>Toggles current dimmer visibility</td>\n        </tr>\n        <tr>\n          <td>set opacity(opacity)</td>\n          <td>Changes dimmer opacity</td>\n        </tr>\n        <tr>\n          <td>create</td>\n          <td>Creates a new dimmer in dimmable context</td>\n        </tr>\n        <tr>\n          <td>get duration</td>\n          <td>Returns current duration for show or hide event depending on current visibility</td>\n        </tr>\n        <tr>\n          <td>get dimmer</td>\n          <td>Returns DOM element for dimmer</td>\n        </tr>\n        <tr>\n          <td>has dimmer</td>\n          <td>Returns whether current dimmable has a dimmer</td>\n        </tr>\n        <tr>\n          <td>is active</td>\n          <td>Whether section's dimmer is active</td>\n        </tr>\n        <tr>\n          <td>is animating</td>\n          <td>Whether dimmer is animating</td>\n        </tr>\n        <tr>\n          <td>is dimmer</td>\n          <td>Whether current element is a dimmer</td>\n        </tr>\n        <tr>\n          <td>is dimmable</td>\n          <td>Whether current element is a dimmable section</td>\n        </tr>\n        <tr>\n          <td>is disabled</td>\n          <td>Whether dimmer is disabled</td>\n        </tr>\n        <tr>\n          <td>is enabled</td>\n          <td>Whether dimmer is not disabled</td>\n        </tr>\n        <tr>\n          <td>is page</td>\n          <td>Whether dimmable section is <code>body</code></td>\n        </tr>\n        <tr>\n          <td>is page dimmer</td>\n          <td>Whether dimmer is a page dimmer</td>\n        </tr>\n        <tr>\n          <td>set active</td>\n          <td>Sets page dimmer to active</td>\n        </tr>\n        <tr>\n          <td>set dimmable</td>\n          <td>Sets an element as a dimmable section</td>\n        </tr>\n        <tr>\n          <td>set dimmed</td>\n          <td>Sets a dimmable section as dimmed</td>\n        </tr>\n        <tr>\n          <td>set page dimmer</td>\n          <td>Sets current dimmer as a page dimmer</td>\n        </tr>\n        <tr>\n          <td>set disabled</td>\n          <td>Sets a dimmer as disabled</td>\n        </tr>\n      </tbody>\n    </table>\n\n  </div>\n\n   <div class=\"ui tab\" data-tab=\"settings\">\n    <h2 class=\"ui dividing header\">\n      Dimmer\n    </h2>\n\n    <h4 class=\"ui header\">\n      Behavior\n    </h4>\n    <table class=\"ui sortable celled definition table\">\n      <thead>\n        <th></th>\n        <th class=\"four wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>useFlex</td>\n          <td class=\"six wide\">true</td>\n          <td>Whether dimmers should use flex or legacy positioning</td>\n        </tr>\n        <tr>\n          <td>variation</td>\n          <td class=\"six wide\">false</td>\n          <td>Specify a variation to add when generating dimmer, like <code>inverted</code></td>\n        </tr>\n        <tr>\n          <td>dimmerName</td>\n          <td class=\"six wide\">false</td>\n          <td>If initializing a dimmer on a <code>dimmable</code> context, you can use <code>dimmerName</code> to distinguish between multiple dimmers in that context.</td>\n        </tr>\n        <tr>\n          <td>closable</td>\n          <td class=\"six wide\">auto</td>\n          <td>Whether clicking on the dimmer should hide the dimmer (Defaults to <code>auto</code>, closable only when <code>settings.on</code> is not <code>hover</code></td>\n        </tr>\n        <tr>\n          <td>on</td>\n          <td class=\"six wide\">false</td>\n          <td>Can be set to <code>hover</code> or <code>click</code> to show/hide dimmer on dimmable event</td>\n        </tr>\n        <tr>\n          <td>useCSS</td>\n          <td class=\"six wide\">true</td>\n          <td>Whether to dim dimmers using CSS transitions.</td>\n        </tr>\n        <tr>\n          <td>duration</td>\n          <td>\n            <div class=\"code\">\n            duration    : {\n              show : 500,\n              hide : 500\n            }\n            </div>\n          </td>\n          <td>Animation duration of dimming. If an integer is used, that value will apply to both show and hide animations.</td>\n        </tr>\n        <tr>\n          <td>transition</td>\n          <td>\n            Fade\n          </td>\n          <td>Named transition to use when animating menu in and out. Fade and slide down are available without including <a href=\"/modules/transition.html\">ui transitions</a></td>\n        </tr>\n      </tbody>\n    </table>\n\n    <h4 class=\"ui header\">\n      Callbacks\n    </h4>\n\n    <table class=\"ui sortable celled definition table\">\n      <thead>\n        <th class=\"three wide\"></th>\n        <th class=\"three wide\">Context</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>onShow</td>\n          <td>dimmable</td>\n          <td>Callback on element show</td>\n        </tr>\n        <tr>\n          <td>onHide</td>\n          <td>dimmable</td>\n          <td>Callback on element hide</td>\n        </tr>\n        <tr>\n          <td>onChange</td>\n          <td>dimmable</td>\n          <td>Callback on element show or hide</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <h2 class=\"ui dividing header\">\n      Module\n    </h2>\n\n    <p>These settings are native to all modules, and define how the component ties content to DOM attributes, and debugging settings for the module.</p>\n\n    <table class=\"ui sortable celled definition table\">\n      <thead>\n        <th></th>\n        <th class=\"eight wide\">Default</th>\n        <th>Description</th>\n      </thead>\n\n      <tbody>\n        <tr>\n          <td>namespace</td>\n          <td>dimmer</td>\n          <td>Event namespace. Makes sure module teardown does not effect other events attached to an element.</td>\n        </tr>\n        <tr>\n          <td>selector</td>\n          <td>\n            <div class=\"code\" data-type=\"css\">\n            selector: {\n              dimmable : '.dimmable',\n              dimmer   : '.ui.dimmer',\n              content  : '.ui.dimmer > .content, .ui.dimmer > .content > .center'\n            }\n            </div>\n          </td>\n          <td>Object containing selectors used by module.</td>\n        </tr>\n        <tr>\n          <td>template</td>\n          <td>\n            <div class=\"code\">\n            template : {\n              dimmer: function() {\n               return $('<div />').attr('class', 'ui dimmer');\n              }\n            }\n            </div>\n          </td>\n          <td>Templates used to generate dimmer content</td>\n        </tr>\n        <tr>\n          <td>className</td>\n          <td>\n            <div class=\"code\">\n            className : {\n              active     : 'active',\n              dimmable   : 'dimmable',\n              dimmed     : 'dimmed',\n              disabled   : 'disabled',\n              pageDimmer : 'page',\n              hide       : 'hide',\n              show       : 'show',\n              transition : 'transition'\n            }\n            </div>\n          </td>\n          <td>Class names used to attach style to state</td>\n        </tr>\n        <tr>\n          <td>name</td>\n          <td>Dimmer</td>\n          <td>Name used in debug logs</td>\n        </tr>\n        <tr>\n          <td>silent</td>\n          <td>False</td>\n          <td>Silences all console output including error messages, regardless of other debug settings.</td>\n        </tr>\n        <tr>\n          <td>debug</td>\n          <td>False</td>\n          <td>Provides standard debug output to console</td>\n        </tr>\n        <tr>\n          <td>performance</td>\n          <td>True</td>\n          <td>Provides standard debug output to console</td>\n        </tr>\n        <tr>\n          <td>verbose</td>\n          <td>True</td>\n          <td>Provides ancillary debug output to console</td>\n        </tr>\n        <tr>\n          <td>errors</td>\n          <td>\n            <div class=\"code\">\n            error   : {\n              method   : 'The method you called is not defined.'\n            }\n            </div>\n          </td>\n          <td>Error messages displayed to console</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/modules/dropdown.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'dropdown'\nstandalone  : true\n\ntitle       : 'Dropdown'\ndescription : 'A dropdown allows a user to select a value from a series of options'\ntype        : 'UI Module'\n\nelement     : 'dropdown'\nelementType : 'module'\n\nthemes      : ['Default', 'GitHub', 'Material']\n---\n\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/modules/dropdown.less\" />\n<script src=\"/javascript/dropdown.js\"></script>\n\n\n<%- @partial('header', { tabs: 'module' }) %>\n\n<div class=\"main ui container\">\n\n  <div class=\"ui active tab\" data-tab=\"definition\">\n    <h2 class=\"ui dividing header\">Types</h2>\n\n    <div class=\"simple example\">\n      <h4 class=\"ui header\">Dropdown</h4>\n      <p>A dropdown</p>\n      <div class=\"ui dropdown\">\n        <div class=\"text\">File</div>\n        <i class=\"dropdown icon\"></i>\n        <div class=\"menu\">\n          <div class=\"item\">New</div>\n          <div class=\"item\">\n            <span class=\"description\">ctrl + o</span>\n            Open...\n          </div>\n          <div class=\"item\">\n            <span class=\"description\">ctrl + s</span>\n            Save as...\n          </div>\n          <div class=\"item\">\n            <span class=\"description\">ctrl + r</span>\n            Rename\n          </div>\n          <div class=\"item\">Make a copy</div>\n          <div class=\"item\">\n            <i class=\"folder icon\"></i>\n            Move to folder\n          </div>\n          <div class=\"item\">\n            <i class=\"trash icon\"></i>\n            Move to trash\n          </div>\n          <div class=\"divider\"></div>\n          <div class=\"item\">Download As...</div>\n          <div class=\"item\">\n            <i class=\"dropdown icon\"></i>\n            Publish To Web\n            <div class=\"menu\">\n              <div class=\"item\">Google Docs</div>\n              <div class=\"item\">Google Drive</div>\n              <div class=\"item\">Dropbox</div>\n              <div class=\"item\">Adobe Creative Cloud</div>\n              <div class=\"item\">Private FTP</div>\n              <div class=\"item\">Another Service...</div>\n            </div>\n          </div>\n          <div class=\"item\">E-mail Collaborators</div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Selection</h4>\n      <p>A dropdown can be used to select between choices in a form</p>\n      <div class=\"ui ignored info message\">\n        Selection dropdowns can be initialized directly on a <code>select</code> or with the matching HTML and a hidden <code>input</code>.\n      </div>\n      <div class=\"ui selection dropdown\">\n        <input type=\"hidden\" name=\"gender\">\n        <i class=\"dropdown icon\"></i>\n        <div class=\"default text\">Gender</div>\n        <div class=\"menu\">\n          <div class=\"item\" data-value=\"1\">Male</div>\n          <div class=\"item\" data-value=\"0\">Female</div>\n        </div>\n      </div>\n    </div>\n    <div class=\"another dropdown example\">\n      <select class=\"ui dropdown\">\n        <option value=\"\">Gender</option>\n        <option value=\"1\">Male</option>\n        <option value=\"0\">Female</option>\n      </select>\n    </div>\n    <div class=\"another dropdown example\">\n      <div class=\"ui fluid selection dropdown\">\n        <input type=\"hidden\" name=\"user\">\n        <i class=\"dropdown icon\"></i>\n        <div class=\"default text\">Select Friend</div>\n        <div class=\"menu\">\n          <div class=\"item\" data-value=\"jenny\">\n            <img class=\"ui mini avatar image\" src=\"/images/avatar/small/jenny.jpg\">\n            Jenny Hess\n          </div>\n          <div class=\"item\" data-value=\"elliot\">\n            <img class=\"ui mini avatar image\" src=\"/images/avatar/small/elliot.jpg\">\n            Elliot Fu\n          </div>\n          <div class=\"item\" data-value=\"stevie\">\n            <img class=\"ui mini avatar image\" src=\"/images/avatar/small/stevie.jpg\">\n            Stevie Feliciano\n          </div>\n          <div class=\"item\" data-value=\"christian\">\n            <img class=\"ui mini avatar image\" src=\"/images/avatar/small/christian.jpg\">\n            Christian\n          </div>\n          <div class=\"item\" data-value=\"matt\">\n            <img class=\"ui mini avatar image\" src=\"/images/avatar/small/matt.jpg\">\n            Matt\n          </div>\n          <div class=\"item\" data-value=\"justen\">\n            <img class=\"ui mini avatar image\" src=\"/images/avatar/small/justen.jpg\">\n            Justen Kitsune\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Search Selection</h4>\n      <p>A selection dropdown can allow a user to search through a large list of choices.</p>\n      <div class=\"ui fluid search selection dropdown\">\n        <input type=\"hidden\" name=\"country\">\n        <i class=\"dropdown icon\"></i>\n        <div class=\"default text\">Select Country</div>\n        <%- @partial('examples/single/flag-menu') %>\n      </div>\n    </div>\n    <div class=\"another dropdown example\">\n      <select class=\"ui search dropdown\">\n        <%- @partial('examples/single/state-options') %>\n      </select>\n    </div>\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Multiple Selection</h4>\n      <p>A selection dropdown can allow multiple selections</p>\n      <select name=\"skills\" multiple class=\"ui fluid dropdown\">\n        <%- @partial('examples/single/skill-menu') %>\n      </select>\n    </div>\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Multiple Search Selection</h4>\n      <p>A selection dropdown can allow multiple search selections</p>\n      <select class=\"ui fluid search dropdown\" multiple>\n        <%- @partial('examples/single/state-options') %>\n      </select>\n    </div>\n    <div class=\"another dropdown example\">\n      <div class=\"ui ignored info message\">\n        Dropdowns can support content that may not be allowed inside <code>option</code> tags when converting <code>select</code> elements. For more complex content like <code>flags</code> or <code>icons</code> you can use full dropdown markup\n      </div>\n      <div class=\"ui fluid multiple search selection dropdown\">\n        <input type=\"hidden\" name=\"country\">\n        <i class=\"dropdown icon\"></i>\n        <div class=\"default text\">Select Country</div>\n        <%- @partial('examples/single/flag-menu') %>\n\n      </div>\n    </div>\n\n\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Search Dropdown</h4>\n      <p>A dropdown can be searchable</p>\n      <div class=\"ui floating dropdown labeled search icon button\">\n        <i class=\"world icon\"></i>\n        <span class=\"text\">Select Language</span>\n        <div class=\"menu\">\n          <div class=\"item\">Arabic</div>\n          <div class=\"item\">Chinese</div>\n          <div class=\"item\">Danish</div>\n          <div class=\"item\">Dutch</div>\n          <div class=\"item\">English</div>\n          <div class=\"item\">French</div>\n          <div class=\"item\">German</div>\n          <div class=\"item\">Greek</div>\n          <div class=\"item\">Hungarian</div>\n          <div class=\"item\">Italian</div>\n          <div class=\"item\">Japanese</div>\n          <div class=\"item\">Korean</div>\n          <div class=\"item\">Lithuanian</div>\n          <div class=\"item\">Persian</div>\n          <div class=\"item\">Polish</div>\n          <div class=\"item\">Portuguese</div>\n          <div class=\"item\">Russian</div>\n          <div class=\"item\">Spanish</div>\n          <div class=\"item\">Swedish</div>\n          <div class=\"item\">Turkish</div>\n          <div class=\"item\">Vietnamese</div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Search In-Menu</h4>\n      <p>A dropdown can include a search prompt inside its menu</p>\n      <div class=\"ui floating dropdown labeled icon button\">\n        <i class=\"filter icon\"></i>\n        <span class=\"text\">Filter Posts</span>\n        <div class=\"menu\">\n          <div class=\"ui icon search input\">\n            <i class=\"search icon\"></i>\n            <input type=\"text\" placeholder=\"Search tags...\">\n          </div>\n          <div class=\"divider\"></div>\n          <div class=\"header\">\n            <i class=\"tags icon\"></i>\n            Tag Label\n          </div>\n          <div class=\"scrolling menu\">\n            <div class=\"item\">\n              <div class=\"ui red empty circular label\"></div>\n              Important\n            </div>\n            <div class=\"item\">\n              <div class=\"ui blue empty circular label\"></div>\n              Announcement\n            </div>\n            <div class=\"item\">\n              <div class=\"ui black empty circular label\"></div>\n              Cannot Fix\n            </div>\n            <div class=\"item\">\n              <div class=\"ui purple empty circular label\"></div>\n              News\n            </div>\n            <div class=\"item\">\n              <div class=\"ui orange empty circular label\"></div>\n              Enhancement\n            </div>\n            <div class=\"item\">\n              <div class=\"ui empty circular label\"></div>\n              Change Declined\n            </div>\n            <div class=\"item\">\n              <div class=\"ui yellow empty circular label\"></div>\n              Off Topic\n            </div>\n            <div class=\"item\">\n              <div class=\"ui pink empty circular label\"></div>\n              Interesting\n            </div>\n            <div class=\"item\">\n              <div class=\"ui green empty circular label\"></div>\n              Discussion\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"another dropdown example\">\n      <div class=\"ui multiple dropdown\">\n        <input type=\"hidden\" name=\"filters\">\n        <i class=\"filter icon\"></i>\n        <span class=\"text\">Filter Posts</span>\n        <div class=\"menu\">\n          <div class=\"ui icon search input\">\n            <i class=\"search icon\"></i>\n            <input type=\"text\" placeholder=\"Search tags...\">\n          </div>\n          <div class=\"divider\"></div>\n          <div class=\"header\">\n            <i class=\"tags icon\"></i>\n            Tag Label\n          </div>\n          <div class=\"scrolling menu\">\n            <div class=\"item\" data-value=\"important\">\n              <div class=\"ui red empty circular label\"></div>\n              Important\n            </div>\n            <div class=\"item\" data-value=\"announcement\">\n              <div class=\"ui blue empty circular label\"></div>\n              Announcement\n            </div>\n            <div class=\"item\" data-value=\"cannotfix\">\n              <div class=\"ui black empty circular label\"></div>\n              Cannot Fix\n            </div>\n            <div class=\"item\" data-value=\"news\">\n              <div class=\"ui purple empty circular label\"></div>\n              News\n            </div>\n            <div class=\"item\" data-value=\"enhancement\">\n              <div class=\"ui orange empty circular label\"></div>\n              Enhancement\n            </div>\n            <div class=\"item\" data-value=\"off-topic\">\n              <div class=\"ui yellow empty circular label\"></div>\n              Off Topic\n            </div>\n            <div class=\"item\" data-value=\"interesting\">\n              <div class=\"ui pink empty circular label\"></div>\n              Interesting\n            </div>\n            <div class=\"item\" data-value=\"discussion\">\n              <div class=\"ui green empty circular label\"></div>\n              Discussion\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Inline</h4>\n      <p>A dropdown can be formatted to appear inline in other content</p>\n      <span>\n        Show me posts by\n        <div class=\"ui inline dropdown\">\n          <div class=\"text\">\n            <img class=\"ui avatar image\" src=\"/images/avatar/small/jenny.jpg\">\n            Jenny Hess\n          </div>\n          <i class=\"dropdown icon\"></i>\n          <div class=\"menu\">\n            <div class=\"item\">\n              <img class=\"ui avatar image\" src=\"/images/avatar/small/jenny.jpg\">\n              Jenny Hess\n            </div>\n            <div class=\"item\">\n              <img class=\"ui avatar image\" src=\"/images/avatar/small/elliot.jpg\">\n              Elliot Fu\n            </div>\n            <div class=\"item\">\n              <img class=\"ui avatar image\" src=\"/images/avatar/small/stevie.jpg\">\n              Stevie Feliciano\n            </div>\n            <div class=\"item\">\n              <img class=\"ui avatar image\" src=\"/images/avatar/small/christian.jpg\">\n              Christian\n            </div>\n            <div class=\"item\">\n              <img class=\"ui avatar image\" src=\"/images/avatar/small/matt.jpg\">\n              Matt\n            </div>\n            <div class=\"item\">\n              <img class=\"ui avatar image\" src=\"/images/avatar/small/justen.jpg\">\n              Justen Kitsune\n            </div>\n          </div>\n        </div>\n      </span>\n    </div>\n\n    <div class=\"another dropdown example\">\n      <h4 class=\"ui header\">\n        <i class=\"trophy icon\"></i>\n        <div class=\"content\">\n          Trending repos\n          <div class=\"ui inline dropdown\">\n            <div class=\"text\">today</div>\n            <i class=\"dropdown icon\"></i>\n            <div class=\"menu\">\n              <div class=\"header\">Adjust time span</div>\n              <div class=\"active item\" data-text=\"today\">Today</div>\n              <div class=\"item\" data-text=\"this week\">This Week</div>\n              <div class=\"item\" data-text=\"this month\">This Month</div>\n            </div>\n          </div>\n        </div>\n      </h4>\n    </div>\n\n    <div class=\"hover example\">\n    <h4 class=\"ui header\">Pointing</h4>\n    <p>A dropdown can be formatted so that its menu is pointing</p>\n      <div class=\"ui menu\">\n        <a class=\"item\">\n          Home\n        </a>\n        <div class=\"ui pointing dropdown link item\">\n          <span class=\"text\">Shopping</span>\n          <i class=\"dropdown icon\"></i>\n          <div class=\"menu\">\n            <div class=\"header\">Categories</div>\n            <div class=\"item\">\n              <i class=\"dropdown icon\"></i>\n              <span class=\"text\">Clothing</span>\n              <div class=\"menu\">\n                <div class=\"header\">Mens</div>\n                <div class=\"item\">Shirts</div>\n                <div class=\"item\">Pants</div>\n                <div class=\"item\">Jeans</div>\n                <div class=\"item\">Shoes</div>\n                <div class=\"divider\"></div>\n                <div class=\"header\">Womens</div>\n                <div class=\"item\">Dresses</div>\n                <div class=\"item\">Shoes</div>\n                <div class=\"item\">Bags</div>\n              </div>\n            </div>\n            <div class=\"item\">Home Goods</div>\n            <div class=\"item\">Bedroom</div>\n            <div class=\"divider\"></div>\n            <div class=\"header\">Order</div>\n            <div class=\"item\">Status</div>\n            <div class=\"item\">Cancellations</div>\n          </div>\n        </div>\n        <a class=\"item\">\n          Forums\n        </a>\n        <a class=\"item\">\n          Contact Us\n        </a>\n      </div>\n    </div>\n    <div class=\"another hover example\">\n      <div class=\"ui vertical menu\">\n        <a class=\"item\">\n          Home\n        </a>\n        <div class=\"ui left pointing dropdown link item\">\n          <i class=\"dropdown icon\"></i>\n          Messages\n          <div class=\"menu\">\n            <div class=\"item\">Inbox</div>\n            <div class=\"item\">Starred</div>\n            <div class=\"item\">Sent Mail</div>\n            <div class=\"item\">Drafts (143)</div>\n            <div class=\"divider\"></div>\n            <div class=\"item\">Spam (1009)</div>\n            <div class=\"item\">Trash</div>\n          </div>\n        </div>\n        <a class=\"item\">\n          Browse\n        </a>\n        <a class=\"item\">\n          Help\n        </a>\n      </div>\n    </div>\n    <div class=\"another button example\">\n      <div class=\"ui icon top left pointing dropdown button\">\n        <i class=\"wrench icon\"></i>\n        <div class=\"menu\">\n          <div class=\"header\">Display Density</div>\n          <div class=\"item\">Comfortable</div>\n          <div class=\"item\">Cozy</div>\n          <div class=\"item\">Compact</div>\n          <div class=\"ui divider\"></div>\n          <div class=\"item\">Settings</div>\n          <div class=\"item\">\n            <i class=\"dropdown icon\"></i>\n            <span class=\"text\">Upload Settings</span>\n            <div class=\"menu\">\n              <div class=\"item\">\n                <i class=\"check icon\"></i>\n                Convert Uploaded Files to PDF\n              </div>\n              <div class=\"item\">\n                <i class=\"check icon\"></i>\n                Digitize Text from Uploaded Files\n              </div>\n            </div>\n          </div>\n          <div class=\"item\">Manage Apps</div>\n          <div class=\"item\">Keyboard Shortcuts</div>\n          <div class=\"item\">Help</div>\n        </div>\n      </div>\n    </div>\n    <div class=\"another button example\">\n      <div class=\"ui ignored info message\">Bottom pointing dropdown menus have sub-menus open upwards</div>\n      <div class=\"ui icon bottom left pointing dropdown button\">\n        <i class=\"wrench icon\"></i>\n        <div class=\"menu\">\n          <div class=\"item\">\n            <i class=\"dropdown icon\"></i>\n            <span class=\"text\">New</span>\n            <div class=\"menu\">\n              <div class=\"item\">Document</div>\n              <div class=\"item\">Image</div>\n            </div>\n          </div>\n          <div class=\"item\">Save As...</div>\n          <div class=\"item\">Edit</div>\n        </div>\n      </div>\n      <div class=\"ui icon bottom right pointing dropdown button\">\n        <i class=\"wrench icon\"></i>\n        <div class=\"menu\">\n          <div class=\"item\">\n            <i class=\"dropdown icon\"></i>\n            <span class=\"text\">New</span>\n            <div class=\"menu\">\n              <div class=\"item\">Document</div>\n              <div class=\"item\">Image</div>\n            </div>\n          </div>\n          <div class=\"item\">Save As...</div>\n          <div class=\"item\">Edit</div>\n        </div>\n      </div>\n    </div>\n    <div class=\"another button example\">\n      <div class=\"ui labeled icon top right pointing dropdown button\">\n        <i class=\"filter icon\"></i>\n        <span class=\"text\">Filter Posts</span>\n        <div class=\"menu\">\n          <div class=\"ui search icon input\">\n            <i class=\"search icon\"></i>\n            <input type=\"text\" name=\"search\" placeholder=\"Search issues...\">\n          </div>\n          <div class=\"divider\"></div>\n          <div class=\"header\">\n            <i class=\"tags icon\"></i>\n            Filter by tag\n          </div>\n          <div class=\"item\">\n            <div class=\"ui red empty circular label\"></div>\n            Important\n          </div>\n          <div class=\"item\">\n            <div class=\"ui blue empty circular label\"></div>\n            Announcement\n          </div>\n          <div class=\"item\">\n            <div class=\"ui black empty circular label\"></div>\n            Discussion\n          </div>\n          <div class=\"divider\"></div>\n          <div class=\"header\">\n            <i class=\"calendar icon\"></i>\n            Filter by date\n          </div>\n          <div class=\"item\">\n            <i class=\"olive circle icon\"></i>\n            This Week\n          </div>\n          <div class=\"item\">\n            <i class=\"violet circle icon\"></i>\n            This Month\n          </div>\n          <div class=\"item\">\n            <i class=\"orange circle icon\"></i>\n            This Year\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"another button example\">\n      <div class=\"ui right pointing dropdown icon button\">\n        <i class=\"settings icon\"></i>\n        <div class=\"menu\">\n          <div class=\"ui left search icon input\">\n            <i class=\"search icon\"></i>\n            <input type=\"text\" name=\"search\" placeholder=\"Search issues...\">\n          </div>\n          <div class=\"divider\"></div>\n          <div class=\"header\">\n            <i class=\"tags icon\"></i>\n            Filter by tag\n          </div>\n          <div class=\"item\">\n            <div class=\"ui red empty circular label\"></div>\n            Important\n          </div>\n          <div class=\"item\">\n            <div class=\"ui blue empty circular label\"></div>\n            Announcement\n          </div>\n          <div class=\"item\">\n            <div class=\"ui black empty circular label\"></div>\n            Discussion\n          </div>\n        </div>\n      </div>\n      <div class=\"ui left pointing dropdown icon button\">\n        <i class=\"settings icon\"></i>\n        <div class=\"menu\">\n          <div class=\"ui left search icon input\">\n            <i class=\"search icon\"></i>\n            <input type=\"text\" name=\"search\" placeholder=\"Search issues...\">\n          </div>\n          <div class=\"header\">\n            <i class=\"tags icon\"></i>\n            Tag Label\n          </div>\n          <div class=\"item\">\n            <div class=\"ui red empty circular label\"></div>\n            Important\n          </div>\n          <div class=\"item\">\n            <div class=\"ui blue empty circular label\"></div>\n            Announcement\n          </div>\n          <div class=\"item\">\n            <div class=\"ui black empty circular label\"></div>\n            Discussion\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"button example\">\n      <h4 class=\"ui header\">Floating</h4>\n      <p>A dropdown menu can appear to be floating below an element.</p>\n      <div class=\"ui teal buttons\">\n        <div class=\"ui button\">Save</div>\n        <div class=\"ui floating dropdown icon button\">\n          <i class=\"dropdown icon\"></i>\n          <div class=\"menu\">\n            <div class=\"item\"><i class=\"edit icon\"></i> Edit Post</div>\n            <div class=\"item\"><i class=\"delete icon\"></i> Remove Post</div>\n            <div class=\"item\"><i class=\"hide icon\"></i> Hide Post</div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Simple</h4>\n      <p>A simple dropdown can open without Javascript</p>\n      <div class=\"ui compact menu\">\n        <div class=\"ui simple dropdown item\">\n          Dropdown\n          <i class=\"dropdown icon\"></i>\n          <div class=\"menu\">\n            <div class=\"item\">Choice 1</div>\n            <div class=\"item\">Choice 2</div>\n            <div class=\"item\">Choice 3</div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Content</h2>\n\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Header</h4>\n      <p>A dropdown menu can contain a header</p>\n      <div class=\"ui floating labeled icon dropdown button\">\n        <i class=\"filter icon\"></i>\n        <span class=\"text\">Filter</span>\n        <div class=\"menu\">\n          <div class=\"header\">\n            <i class=\"tags icon\"></i>\n            Filter by tag\n          </div>\n          <div class=\"item\">\n            Important\n          </div>\n          <div class=\"item\">\n            Announcement\n          </div>\n          <div class=\"item\">\n            Discussion\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Divider</h4>\n      <p>A dropdown menu can contain dividers to separate related content</p>\n      <div class=\"ui floating labeled icon dropdown button\">\n        <i class=\"filter icon\"></i>\n        <span class=\"text\">Filter</span>\n        <div class=\"menu\">\n          <div class=\"header\">\n            <i class=\"tags icon\"></i>\n            Filter by tag\n          </div>\n          <div class=\"divider\"></div>\n          <div class=\"item\">\n            Important\n          </div>\n          <div class=\"item\">\n            Announcement\n          </div>\n          <div class=\"item\">\n            Discussion\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Icon</h4>\n      <p>A dropdown menu can contain an <a href=\"/elements/icon.html\">icon</a>.</p>\n      <div class=\"ui floating labeled icon dropdown button\">\n        <i class=\"filter icon\"></i>\n        <span class=\"text\">Filter</span>\n        <div class=\"menu\">\n          <div class=\"header\">\n            <i class=\"tags icon\"></i>\n            Filter by tag\n          </div>\n          <div class=\"divider\"></div>\n          <div class=\"item\">\n            <i class=\"attention icon\"></i>\n            Important\n          </div>\n          <div class=\"item\">\n            <i class=\"comment icon\"></i>\n            Announcement\n          </div>\n          <div class=\"item\">\n            <i class=\"conversation icon\"></i>\n            Discussion\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Description</h4>\n      <p>A dropdown menu can contain a description.</p>\n      <div class=\"ui ignored info message\">\n        Using a description may require setting a minimum width on <code>menu</code> to prevent content overlap\n      </div>\n      <div class=\"ui floating labeled icon dropdown button\">\n        <i class=\"filter icon\"></i>\n        <span class=\"text\">Filter Tags</span>\n        <div class=\"menu\">\n          <div class=\"header\">\n            Filter by tag\n          </div>\n          <div class=\"divider\"></div>\n          <div class=\"item\">\n            <span class=\"description\">2 new</span>\n            <span class=\"text\">Important</span>\n          </div>\n          <div class=\"item\">\n            <span class=\"description\">10 new</span>\n            <span class=\"text\">Hopper</span>\n          </div>\n          <div class=\"item\">\n            <span class=\"description\">5 new</span>\n            <span class=\"text\">Discussion</span>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Label</h4>\n      <p>A dropdown menu can contain a <a href=\"/elements/label.html\">label</a>.</p>\n      <div class=\"ui floating labeled icon dropdown button\">\n        <i class=\"filter icon\"></i>\n        <span class=\"text\">Filter</span>\n        <div class=\"menu\">\n          <div class=\"header\">\n            Search Issues\n          </div>\n          <div class=\"ui left icon input\">\n            <i class=\"search icon\"></i>\n            <input type=\"text\" name=\"search\" placeholder=\"Search...\">\n          </div>\n          <div class=\"header\">\n            <i class=\"tags icon\"></i>\n            Filter by tag\n          </div>\n          <div class=\"item\">\n            <div class=\"ui red empty circular label\"></div>\n            Important\n          </div>\n          <div class=\"item\">\n            <div class=\"ui blue empty circular label\"></div>\n            Announcement\n          </div>\n          <div class=\"item\">\n            <div class=\"ui black empty circular label\"></div>\n            Discussion\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Message</h4>\n      <p>A dropdown menu can contain a <a href=\"/collections/message.html\">message</a>.</p>\n      <div class=\"ui floating labeled icon dropdown button\">\n        <i class=\"filter icon\"></i>\n        <span class=\"text\">Login</span>\n        <div class=\"menu\">\n          <div class=\"ui error message\">\n            <div class=\"header\">Error</div>\n            <p>You must log-in to see all categories</p>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Floated Content</h4>\n      <p>A dropdown menu can contain floated content.</p>\n      <div class=\"ui ignored info message\">Floated content may stack to two lines without manually setting a width when or using a <code>fluid</code> dropdown\n      </div>\n      <div class=\"ui fluid selection dropdown\">\n        <i class=\"dropdown icon\"></i>\n        <span class=\"default text\">Select Type</span>\n        <div class=\"menu\">\n          <div class=\"item\">\n            <i class=\"attention right floated icon\"></i>\n            Important\n          </div>\n          <div class=\"item\">\n            <i class=\"comment right floated icon\"></i>\n            Announcement\n          </div>\n          <div class=\"item\">\n            <i class=\"conversation right floated icon\"></i>\n            Discussion\n          </div>\n        </div>\n      </div>\n    </div>\n\n\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Input</h4>\n      <p>A dropdown menu can contain an <a href=\"/elements/input.html\">input</a></p>\n      <div class=\"ui floating labeled icon dropdown button\">\n        <i class=\"filter icon\"></i>\n        <span class=\"text\">Filter</span>\n        <div class=\"menu\">\n          <div class=\"header\">\n            Search Issues\n          </div>\n          <div class=\"ui left icon input\">\n            <i class=\"search icon\"></i>\n            <input type=\"text\" name=\"search\" placeholder=\"Search...\">\n          </div>\n          <div class=\"header\">\n            <i class=\"tags icon\"></i>\n            Filter by tag\n          </div>\n          <div class=\"divider\"></div>\n          <div class=\"item\">\n            <div class=\"ui red empty circular label\"></div>\n            Important\n          </div>\n          <div class=\"item\">\n            <div class=\"ui blue empty circular label\"></div>\n            Announcement\n          </div>\n          <div class=\"item\">\n            <div class=\"ui black empty circular label\"></div>\n            Discussion\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Image</h4>\n      <p>A dropdown menu can contain an <a href=\"/elements/image.html\">image</a></p>\n      <div class=\"ui floating labeled icon dropdown button\">\n        <i class=\"add user icon\"></i>\n        <span class=\"text\">Add User</span>\n        <div class=\"menu\">\n          <div class=\"header\">\n            People You Might Know\n          </div>\n          <div class=\"item\">\n            <img class=\"ui avatar image\" src=\"/images/avatar/small/jenny.jpg\">\n            Jenny Hess\n          </div>\n          <div class=\"item\">\n            <img class=\"ui avatar image\" src=\"/images/avatar/small/elliot.jpg\">\n            Elliot Fu\n          </div>\n          <div class=\"item\">\n            <img class=\"ui avatar image\" src=\"/images/avatar/small/stevie.jpg\">\n            Stevie Feliciano\n          </div>\n          <div class=\"header\">\n            Your Friends' Friends\n          </div>\n          <div class=\"item\">\n            <img class=\"ui avatar image\" src=\"/images/avatar/small/christian.jpg\">\n            Christian\n          </div>\n          <div class=\"item\">\n            <img class=\"ui avatar image\" src=\"/images/avatar/small/matt.jpg\">\n            Matt\n          </div>\n          <div class=\"item\">\n            <img class=\"ui avatar image\" src=\"/images/avatar/small/justen.jpg\">\n            Justen Kitsune\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">States</h2>\n\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Loading</h4>\n      <p>A dropdown can show that it is currently loading data</p>\n      <div class=\"ui loading dropdown\">\n        Dropdown <i class=\"dropdown icon\"></i>\n        <div class=\"menu\">\n          <div class=\"item\">Choice 1</div>\n          <div class=\"item\">Choice 2</div>\n          <div class=\"item\">Choice 3</div>\n        </div>\n      </div>\n    </div>\n    <div class=\"another dropdown example\">\n      <div class=\"ui loading fluid multiple search selection dropdown\">\n        <input type=\"hidden\" name=\"country\" value=\"kp\">\n        <i class=\"dropdown icon\"></i>\n        <input class=\"search\">\n        <div class=\"default text\">Search...</div>\n        <div class=\"menu\">\n          <div class=\"item\">Choice 1</div>\n          <div class=\"item\">Choice 2</div>\n          <div class=\"item\">Choice 3</div>\n        </div>\n      </div>\n    </div>\n    <div class=\"another dropdown example\">\n      <div class=\"ui loading selection dropdown\">\n        Dropdown <i class=\"dropdown icon\"></i>\n        <div class=\"menu\">\n          <div class=\"item\">Choice 1</div>\n          <div class=\"item\">Choice 2</div>\n          <div class=\"item\">Choice 3</div>\n        </div>\n      </div>\n    </div>\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Error</h4>\n      <p>An errored dropdown can alert a user to a problem</p>\n      <div class=\"ui floating dropdown error\">\n        Dropdown <i class=\"dropdown icon\"></i>\n        <div class=\"menu\">\n          <div class=\"item\">Choice 1</div>\n          <div class=\"item\">Choice 2</div>\n          <div class=\"item\">Choice 3</div>\n        </div>\n      </div>\n    </div>\n    <div class=\"another dropdown example\">\n      <div class=\"ui selection dropdown error\">\n        Dropdown <i class=\"dropdown icon\"></i>\n        <div class=\"menu\">\n          <div class=\"item\">Choice 1</div>\n          <div class=\"item\">Choice 2</div>\n          <div class=\"item\">Choice 3</div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Active</h4>\n      <p>An active dropdown has its menu open</p>\n      <div class=\"ui ignored info message\">An active state will only automatically open a <code>ui simple dropdown</code>. To activate a normal dropdown use <code>$('.ui.dropdown').dropdown('show');</code></div>\n      <div class=\"ui simple active dropdown\">\n        Dropdown <i class=\"dropdown icon\"></i>\n        <div class=\"menu\">\n          <div class=\"item\">Choice 1</div>\n          <div class=\"item\">Choice 2</div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Disabled</h4>\n      <p>A disabled dropdown menu or item does not allow user interaction</p>\n      <div class=\"ui disabled dropdown\">\n        Dropdown <i class=\"dropdown icon\"></i>\n        <div class=\"menu\">\n          <div class=\"item\">Choice 1</div>\n          <div class=\"item\">Choice 2</div>\n          <div class=\"item\">Choice 3</div>\n        </div>\n      </div>\n    </div>\n    <div class=\"another dropdown example\">\n      <div class=\"ui dropdown\">\n        Disabled Item <i class=\"dropdown icon\"></i>\n        <div class=\"menu\">\n          <div class=\"item\">Choice 1</div>\n          <div class=\"disabled item\">Disabled</div>\n          <div class=\"item\">Choice 3</div>\n        </div>\n      </div>\n    </div>\n\n\n    <h2 class=\"ui dividing header\">Variations</h2>\n\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Scrolling</h4>\n      <p>A dropdown can have its menu scroll</p>\n      <div class=\"ui ignored warning message\">\n        Scrolling dropdowns are incompatible with the usage of <code>sub menu</code>.\n      </div>\n      <div class=\"ui scrolling dropdown\">\n        <input type=\"hidden\" name=\"gender\">\n        <div class=\"default text\">Select choice</div>\n        <i class=\"dropdown icon\"></i>\n        <div class=\"menu\">\n          <div class=\"item\">Choice 1</div>\n          <div class=\"item\">Choice 2</div>\n          <div class=\"item\">Choice 3</div>\n          <div class=\"item\">Choice 4</div>\n          <div class=\"item\">Choice 5</div>\n          <div class=\"item\">Choice 6</div>\n          <div class=\"item\">Choice 7</div>\n          <div class=\"item\">Choice 8</div>\n          <div class=\"item\">Choice 9</div>\n          <div class=\"item\">Choice 10</div>\n          <div class=\"item\">Choice 11</div>\n          <div class=\"item\">Choice 12</div>\n          <div class=\"item\">Choice 13</div>\n          <div class=\"item\">Choice 14</div>\n          <div class=\"item\">Choice 15</div>\n        </div>\n      </div>\n    </div>\n    <div class=\"another dropdown example\">\n      <div class=\"ui dropdown\">\n        <i class=\"filter icon\"></i>\n        <span class=\"text\">Filter Posts</span>\n        <div class=\"menu\">\n          <div class=\"ui icon search input\">\n            <i class=\"search icon\"></i>\n            <input type=\"text\" placeholder=\"Search tags...\">\n          </div>\n          <div class=\"divider\"></div>\n          <div class=\"header\">\n            <i class=\"tags icon\"></i>\n            Tag Label\n          </div>\n          <div class=\"scrolling menu\">\n            <div class=\"item\">\n              <div class=\"ui red empty circular label\"></div>\n              Important\n            </div>\n            <div class=\"item\">\n              <div class=\"ui blue empty circular label\"></div>\n              Announcement\n            </div>\n            <div class=\"item\">\n              <div class=\"ui black empty circular label\"></div>\n              Cannot Fix\n            </div>\n            <div class=\"item\">\n              <div class=\"ui purple empty circular label\"></div>\n              News\n            </div>\n            <div class=\"item\">\n              <div class=\"ui orange empty circular label\"></div>\n              Enhancement\n            </div>\n            <div class=\"item\">\n              <div class=\"ui empty circular label\"></div>\n              Change Declined\n            </div>\n            <div class=\"item\">\n              <div class=\"ui yellow empty circular label\"></div>\n              Off Topic\n            </div>\n            <div class=\"item\">\n              <div class=\"ui pink empty circular label\"></div>\n              Interesting\n            </div>\n            <div class=\"item\">\n              <div class=\"ui green empty circular label\"></div>\n              Discussion\n            </div>\n          </div>\n        </div>\n      </div>\n\n    </div>\n\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Compact</h4>\n      <p>A compact dropdown has no minimum width</p>\n      <div class=\"ui compact selection dropdown\">\n        <i class=\"dropdown icon\"></i>\n        <div class=\"text\">Compact</div>\n        <div class=\"menu\">\n          <div class=\"item\">A</div>\n          <div class=\"item\">B</div>\n          <div class=\"item\">C</div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Fluid</h4>\n      <p>A dropdown can take the full width of its parent</p>\n      <div class=\"ui vertical menu\">\n        <a class=\"item\">Link 1</a>\n        <a class=\"item\">Link 2</a>\n        <div class=\"header item\">All Sections</div>\n        <div class=\"ui item\">\n          <div class=\"ui fluid selection dropdown\">\n            <div class=\"text\">More</div>\n            <i class=\"dropdown icon\"></i>\n            <div class=\"menu\">\n              <div class=\"item\">Choice 1</div>\n              <div class=\"item\">Choice 2</div>\n              <div class=\"item\">Choice 3</div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Menu Direction</h4>\n      <p>A dropdown menu or sub-menu can specify the direction it should open</p>\n      <div class=\"ui ignored info message\">\n        Specifying <code>left</code> on a menu will make all child menus open in the same direction implicitly. To have a dropdown icon appear on the left side on a child menu, you will need to use <code>left dropdown example</code>\n      </div>\n      <div class=\"ui floating labeled icon dropdown button\">\n        <i class=\"dropdown icon\"></i>\n        <span class=\"text\">Menu</span>\n        <div class=\"menu\">\n          <div class=\"item\">\n            <i class=\"left dropdown icon\"></i>\n            <span class=\"text\">Left</span>\n            <div class=\"left menu\">\n              <div class=\"item\">1</div>\n              <div class=\"item\">2</div>\n              <div class=\"item\">3</div>\n            </div>\n          </div>\n          <div class=\"item\">\n            <i class=\"dropdown icon\"></i>\n            <span class=\"text\">Right</span>\n            <div class=\"right menu\">\n              <div class=\"item\">1</div>\n              <div class=\"item\">2</div>\n              <div class=\"item\">3</div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"another dropdown example\">\n      <div class=\"ui floating labeled icon dropdown button\">\n        <i class=\"dropdown icon\"></i>\n        <span class=\"text\">Menu</span>\n        <div class=\"left menu\">\n          <div class=\"item\">\n            <i class=\"dropdown icon\"></i>\n            <span class=\"text\">Left</span>\n            <div class=\"menu\">\n              <div class=\"item\">\n                <i class=\"dropdown icon\"></i>\n                <span class=\"text\">Still Left</span>\n                <div class=\"menu\">\n                  <div class=\"item\">1</div>\n                  <div class=\"item\">2</div>\n                  <div class=\"item\">3</div>\n                </div>\n              </div>\n              <div class=\"item\">2</div>\n              <div class=\"item\">3</div>\n            </div>\n          </div>\n          <div class=\"item\">\n            <i class=\"dropdown icon\"></i>\n            <span class=\"text\">Left 2</span>\n            <div class=\"menu\">\n              <div class=\"item\">1</div>\n              <div class=\"item\">2</div>\n              <div class=\"item\">3</div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n  </div>\n\n\n  <div class=\"ui tab\" data-tab=\"examples\">\n\n\n    <h2 class=\"ui header\">Selection Dropdowns</h2>\n\n    <div class=\"clearable example\">\n      <h4 class=\"ui header\">\n        Clearable\n        <div class=\"ui teal label\">\n          New in 2.4.0\n        </div>\n      </h4>\n      <p>Using the clearable setting will let users remove their selection from a dropdown.</p>\n\n      <div class=\"ui fluid search selection dropdown\">\n        <input type=\"hidden\" name=\"country\">\n        <div class=\"default text\">Select Country</div>\n        <i class=\"dropdown icon\"></i>\n        <%- @partial('examples/single/flag-menu') %>\n      </div>\n      <div class=\"ui divider\"></div>\n      <div class=\"ui secondary segment\">\n        Show me\n        <div class=\"ui inline scrolling dropdown\">\n          <input type=\"hidden\" name=\"skill\" value=\"css\">\n          <div class=\"text\">css</div>\n          <i class=\"dropdown icon\"></i>\n          <div class=\"menu\">\n            <%- @partial('examples/single/preset-menu') %>\n          </div>\n        </div>\n        classes currently available.\n      </div>\n\n      <div class=\"evaluated code\" data-type=\"javascript\">\n        $('.clearable.example .ui.selection.dropdown')\n          .dropdown({\n            clearable: true\n          })\n        ;\n        $('.clearable.example .ui.inline.dropdown')\n          .dropdown({\n            clearable: true,\n            placeholder: 'any'\n          })\n        ;\n      </div>\n    </div>\n\n    <div class=\"max example\">\n      <h4 class=\"ui header\">Maximum Selections</h4>\n      <p>Using <code>maxSelections</code> lets you force a maximum number of selections. You can also use <a href=\"/behaviors/form.html#validation-rules\">form validation</a> rules to specify minimum and maximum validation settings for multi-selects inside forms.</p>\n\n      <div class=\"ui sub header\">Selection</div>\n      <select multiple name=\"skills\" class=\"ui fluid normal dropdown\">\n        <%- @partial('examples/single/skill-menu') %>\n      </select>\n\n      <div class=\"ui sub header\">Search Selection</div>\n      <div class=\"ui fluid multiple search normal selection dropdown\">\n        <input type=\"hidden\" name=\"country\">\n        <i class=\"dropdown icon\"></i>\n        <div class=\"default text\">Select Country</div>\n        <%- @partial('examples/single/flag-menu') %>\n      </div>\n\n      <div class=\"ui sub header\">Without Labels</div>\n      <div class=\"ui fluid multiple search special selection dropdown\">\n        <input type=\"hidden\" name=\"country\">\n        <i class=\"dropdown icon\"></i>\n        <div class=\"default text\">Select Country</div>\n        <%- @partial('examples/single/flag-menu') %>\n      </div>\n\n      <div class=\"evaluated code\" data-type=\"javascript\">\n        $('.max.example .ui.normal.dropdown')\n          .dropdown({\n            maxSelections: 3\n          })\n        ;\n        $('.max.example .ui.special.dropdown')\n          .dropdown({\n            useLabels: false,\n            maxSelections: 3\n          })\n        ;\n      </div>\n    </div>\n\n    <div class=\"tag example\">\n      <h4 class=\"ui header\">Tagging and User Additions</h4>\n      <p>Using <code>allowAdditions: true</code> gives users the ability to add their own options. This can work with either single or multiple search select dropdowns</p>\n\n      <div class=\"ui ignored warning message\">\n        Although all dropdowns support <code>select</code> initialization, custom choices <b>will not be saved on page refresh</b> unless you use a hidden input. This is because <code>option</code> created dynamically are not preserved on page refresh.\n      </div>\n\n      <div class=\"ui sub header\">Single</div>\n      <select name=\"skills\" class=\"ui fluid search dropdown\">\n        <%- @partial('examples/single/skill-menu') %>\n      </select>\n\n      <div class=\"ui sub header\">Multiple</div>\n      <div class=\"ui fluid multiple search selection dropdown\">\n        <input name=\"tags\" type=\"hidden\" />\n        <i class=\"dropdown icon\"></i>\n        <div class=\"default text\">Skills</div>\n        <div class=\"menu\">\n          <%- @partial('examples/single/preset-menu') %>\n        </div>\n      </div>\n\n      <div class=\"evaluated code\" data-type=\"javascript\">\n        $('.tag.example .ui.dropdown')\n          .dropdown({\n            allowAdditions: true\n          })\n        ;\n      </div>\n    </div>\n\n    <div class=\"no label example\">\n      <h4 class=\"ui header\">Text Labels</h4>\n      <p>Sometimes multiselect include options which are long and would appear awkwardly as labels. Setting <code>useLabels: false</code> will display a selected count, and allow reselection directly from the menu.</p>\n      <div class=\"ui ignored info message\">\n        You can customize any of the messages displayed by adjusting templates in <code>settings.message</code>\n      </div>\n      <select multiple name=\"binary\" class=\"ui fluid dropdown\">\n        <option value=\"\">Select Tag</option>\n        <option value=\"10001010\">10001010</option>\n        <option value=\"10001011\">10001011</option>\n        <option value=\"11001110\">11001110</option>\n        <option value=\"10011110\">10011110</option>\n      </select>\n\n      <div class=\"ui horizontal divider\">or</div>\n\n      <div class=\"ui fluid multiple search selection dropdown\">\n        <input type=\"hidden\" name=\"country\">\n        <i class=\"dropdown icon\"></i>\n        <div class=\"default text\">Select Country</div>\n        <%- @partial('examples/single/flag-menu') %>\n      </div>\n\n      <div class=\"evaluated code\" data-type=\"javascript\">\n        $('.no.label.example .ui.dropdown')\n          .dropdown({\n            useLabels: false\n          })\n        ;\n      </div>\n    </div>\n\n    <div class=\"clear dropdown example\">\n      <h4 class=\"ui header\">Clearing Dropdown</h4>\n      <p>You can reset a form field to its placeholder value</p>\n      <div class=\"ui multiple selection dropdown\">\n        <input name=\"gender\" type=\"hidden\" value=\"0,1\" />\n        <i class=\"dropdown icon\"></i>\n        <div class=\"default text\">Default</div>\n        <div class=\"menu\">\n            <div class=\"item\" data-value=\"0\">Value</div>\n            <div class=\"item\" data-value=\"1\">Another Value</div>\n        </div>\n       </div>\n      <div class=\"ui selection dropdown\">\n        <input name=\"gender\" type=\"hidden\" />\n        <div class=\"default text\">Select a value</div>\n        <i class=\"dropdown icon\"></i>\n        <div class=\"menu\">\n            <div class=\"item\" data-value=\"0\">Value</div>\n            <div class=\"item\" data-value=\"1\">Another Value</div>\n        </div>\n       </div>\n\n      <div class=\"ui button\">\n        Clear\n      </div>\n      <div class=\"evaluated code\" data-type=\"javascript\">\n        $('.clear.example .button')\n          .on('click', function() {\n            $('.clear.example .ui.dropdown')\n              .dropdown('clear')\n            ;\n          })\n        ;\n      </div>\n    </div>\n\n    <div class=\"restore dropdown example\">\n      <h4 class=\"ui header\">Restoring Defaults</h4>\n      <p>You can restore a dropdown to its value set on page load using the <code>restore defaults</code> behavior. If no default text is set on load, restore defaults will restore placeholder text</p>\n      <div class=\"ui multiple selection dropdown\">\n        <input name=\"gender\" type=\"hidden\" value=\"default,default2\" />\n        <i class=\"dropdown icon\"></i>\n        <div class=\"default text\">Default</div>\n        <div class=\"menu\">\n            <div class=\"item\" data-value=\"0\">Value</div>\n            <div class=\"item\" data-value=\"1\">Another Value</div>\n            <div class=\"item\" data-value=\"default\">Default Value</div>\n            <div class=\"item\" data-value=\"default2\">Second Default</div>\n        </div>\n      </div>\n      <div class=\"ui divider\"></div>\n      <div class=\"ui selection dropdown\">\n        <input name=\"gender\" type=\"hidden\" value=\"default\" />\n        <i class=\"dropdown icon\"></i>\n        <div class=\"default text\">Select a value</div>\n        <div class=\"menu\">\n            <div class=\"item\" data-value=\"0\">Value</div>\n            <div class=\"item\" data-value=\"1\">Another Value</div>\n        </div>\n       </div>\n      <div class=\"ui divider\"></div>\n      <div class=\"ui selection dropdown\">\n        <input name=\"gender\" type=\"hidden\" value=\"default\" />\n        <i class=\"dropdown icon\"></i>\n        <div class=\"text\">Default Value</div>\n        <div class=\"menu\">\n            <div class=\"item\" data-value=\"0\">Value</div>\n            <div class=\"item\" data-value=\"1\">Another Value</div>\n            <div class=\"item\" data-value=\"default\">Default Value</div>\n        </div>\n       </div>\n      <div class=\"ui divider\"></div>\n      <div class=\"ui primary button\">\n          Restore All Dropdowns\n      </div>\n      <div class=\"evaluated code\" data-type=\"javascript\">\n        $('.restore.example .button')\n          .on('click', function() {\n            $('.restore.example .ui.dropdown')\n              .dropdown('restore defaults')\n            ;\n          })\n        ;\n      </div>\n    </div>\n\n\n    <div class=\"upward example\">\n      <h4 class=\"ui header\">Upward</h4>\n      <p>A dropdown menu will automatically change which direction it opens if it can't fit on screen. If you need a dropdown to open in a specific direction you can specify it when initializing a dropdown.</p>\n      <div class=\"code\" data-demo=\"true\">\n        $('.upward.example .dropdown')\n          .dropdown({\n            direction: 'upward'\n          })\n        ;\n      </div>\n      <div class=\"ui top attached segment\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n      </div>\n      <div class=\"ui bottom attached menu\">\n        <div class=\"ui upward dropdown item\">\n          <i class=\"settings icon\"></i>\n          <div class=\"menu\">\n            <div class=\"item\">\n              <i class=\"dropdown icon\"></i>\n              <span class=\"text\">New</span>\n              <div class=\"menu\">\n                <div class=\"item\">Document</div>\n                <div class=\"item\">Image</div>\n              </div>\n            </div>\n            <div class=\"item\">Save As...</div>\n            <div class=\"item\">Edit</div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n\n    <h2 class=\"ui dividing header\">Remote Content</h2>\n\n    <div class=\"remote filter no example\">\n      <h4 class=\"ui header\">Match Search Query on Server</h4>\n      <p>Search selection dropdowns can specify <a href=\"/behaviors/api.html\">API settings</a> for retrieving values remotely, this can use either a named API <code>action</code> or <code>url</code>.</p>\n      <p class=\"ignored\">Using API can allow users to select choices from large datasets that would be too large to include directly in page markups.</p>\n      <p class=\"ignored\">If your backend is not designed to return the correct markup you can use API's <code><a href=\"/behaviors/api.html#adjusting-server-responses\">onResponse</a></code> callback to adjust the format of an API response after it is received from the server.</p>\n      <p class=\"ignored\">Requests for the same API endpoints will automatically cached locally, to avoid server roundtrips. You can disable this by adjusting the <code>cache</code> API setting.</p>\n      <div class=\"ui ignored positive message\">When a user refreshes the page, selection labels are automatically recreated by using <code>sessionStorage</code> to store the corresponding names for selected values. You can disable this feature by setting <code>saveRemoteData: false</code></div>\n\n\n      <div class=\"ui form\">\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>Favorite Animal</label>\n            <div class=\"ui search selection dropdown\">\n              <input type=\"hidden\">\n              <i class=\"dropdown icon\"></i>\n              <input type=\"text\" class=\"search\">\n              <div class=\"default text\">Select one...</div>\n            </div>\n          </div>\n          <div class=\"field\">\n            <label>Favorite Animals</label>\n            <div class=\"ui multiple search selection dropdown\">\n              <input type=\"hidden\">\n              <i class=\"dropdown icon\"></i>\n              <input type=\"text\" class=\"search\">\n              <div class=\"default text\">Select...</div>\n            </div>\n          </div>\n        </div>\n      </div>\n\n      <div class=\"evaluated code\" data-type=\"javascript\">\n        $('.remote.filter.example .ui.dropdown')\n          .dropdown({\n            apiSettings: {\n              // this url parses query server side and returns filtered results\n              url: '//api.semantic-ui.com/tags/{query}'\n            },\n          })\n        ;\n      </div>\n      <div class=\"code\" data-type=\"JSON\">\n      // Expected server response\n      {\n          \"success\": true,\n          \"results\": [\n            {\n              // name displayed in dropdown\n              \"name\"  : \"Choice 1\",\n\n              // selected value\n              \"value\" : \"value1\",\n\n              // name displayed after selection (optional)\n              \"text\"  : \"Choice 1\"\n\n              // whether field should be displayed as disabled (optional)\n              \"disabled\"  : false\n\n            },\n            {\n              \"name\"  : \"Choice 2\",\n              \"value\" : \"value2\",\n              \"text\"  : \"Choice 2\"\n            },\n            {\n              \"name\"  : \"Choice 3\",\n              \"value\" : \"value3\",\n              \"text\"  : \"Choice 3\"\n            },\n            {\n              \"name\"  : \"Choice 4\",\n              \"value\" : \"value4\",\n              \"text\"  : \"Choice 4\"\n            },\n            {\n              \"name\"  : \"Choice 5\",\n              \"value\" : \"value5\",\n              \"text\"  : \"Choice 5\"\n            }\n          ]\n      }\n      </div>\n    </div>\n\n    <div class=\"remote choices no example\">\n      <h4 class=\"ui header\">Return All Choices Remotely</h4>\n      <p>When possible choicesets are large, ideally API results should only return values <b>matching the passed query term</b> to reduce transmissions over the wire. However if there are only a few hundred or less choices, you may consider returning the full set of results from an API endpoint and filtering them against the query clientside using the setting <code>filterRemoteData: true</code>.</p>\n      <div class=\"ui form\">\n        <div class=\"three fields\">\n          <div class=\"field\">\n            <label>Favorite Animal</label>\n            <div class=\"ui selection dropdown\">\n              <input type=\"hidden\">\n              <i class=\"dropdown icon\"></i>\n              <div class=\"default text\">Select one...</div>\n            </div>\n          </div>\n          <div class=\"field\">\n            <label>Favorite Animal</label>\n            <div class=\"ui search selection dropdown\">\n              <input type=\"hidden\">\n              <i class=\"dropdown icon\"></i>\n              <input type=\"text\" class=\"search\">\n              <div class=\"default text\">Select one...</div>\n            </div>\n          </div>\n          <div class=\"field\">\n            <label>Favorite Animals</label>\n            <div class=\"ui multiple search selection dropdown\">\n              <input type=\"hidden\">\n              <i class=\"dropdown icon\"></i>\n              <input type=\"text\" class=\"search\">\n              <div class=\"default text\">Select...</div>\n            </div>\n          </div>\n        </div>\n      </div>\n\n      <div class=\"evaluated code\" data-type=\"javascript\">\n        $('.remote.choices.example .ui.dropdown')\n          .dropdown({\n            apiSettings: {\n              // this url just returns a list of tags (with API response expected above)\n              url: '//api.semantic-ui.com/tags/'\n            },\n            filterRemoteData: true\n          })\n        ;\n      </div>\n    </div>\n\n    <h2 class=\"ui header\">Menus</h2>\n\n    <div class=\"transition example\">\n      <h4 class=\"ui header\">Changing Transitions</h4>\n      <p>A dropdown can specify a different <a href=\"/modules/transition.html\">transition</a>.</p>\n\n      <div class=\"code\" data-type=\"javascript\">\n      $('.dropdown')\n        .dropdown({\n          // you can use any ui transition\n          transition: 'drop'\n        })\n      ;\n      </div>\n\n      <div class=\"ui teal buttons\">\n        <div class=\"ui button\">Toggle</div>\n        <div class=\"ui floating dropdown icon button\">\n          <i class=\"dropdown icon\"></i>\n          <div class=\"menu\">\n            <div class=\"item\" data-value=\"drop\">Drop</div>\n            <div class=\"item\" data-value=\"horizontal flip\">Horizontal Flip</div>\n            <div class=\"item\" data-value=\"fade up\">Fade Up</div>\n            <div class=\"item\" data-value=\"scale\">Scale</div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Multiple Levels</h4>\n      <p>A dropdown menu can also contain sub menus inside of it</p>\n      My favorite animal breed is\n      <div class=\"ui inline dropdown\">\n        <input type=\"hidden\" name=\"gender\">\n        <div class=\"text\">Shiba Inu</div>\n        <i class=\"dropdown icon\"></i>\n        <div class=\"menu\">\n          <div class=\"item\">\n            <i class=\"dropdown icon\"></i>\n            <span class=\"text\">Dogs</span>\n            <div class=\"menu\">\n              <div class=\"item\">Shiba Inu</div>\n              <div class=\"item\">\n                <i class=\"dropdown icon\"></i>\n                <span class=\"text\">Poodle</span>\n                <div class=\"menu\">\n                  <div class=\"item\">Toy</div>\n                  <div class=\"item\">Standard</div>\n                </div>\n              </div>\n              <div class=\"item\">Labrador</div>\n            </div>\n          </div>\n          <div class=\"item\">\n            <i class=\"dropdown icon\"></i>\n            <span class=\"text\">Cats</span>\n            <div class=\"menu\">\n              <div class=\"item\">Aegean</div>\n              <div class=\"item\">Balinese</div>\n              <div class=\"item\">Persian</div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"category example\">\n      <h4 class=\"ui header\">Category Selection</h4>\n      <p>Using a multi-level menu with <code>allowCategorySelection: true</code> will allow items with sub-menus to be selected.</p>\n      <div class=\"ui ignored code\" data-type=\"javascript\">\n        $('.category.example .ui.dropdown')\n          .dropdown({\n            allowCategorySelection: true\n          })\n        ;\n      </div>\n      <div class=\"ui dropdown button\">\n        <span class=\"text\">Choose Category</span>\n        <i class=\"dropdown icon\"></i>\n        <div class=\"menu\">\n          <div class=\"item\">\n            <span class=\"text\">Category 1</span>\n          </div>\n          <div class=\"item\">\n            <i class=\"dropdown icon\"></i>\n            <span class=\"text\">Category 2</span>\n            <div class=\"menu\">\n              <div class=\"item\">Item 2A</div>\n              <div class=\"item\">Item 2B</div>\n              <div class=\"item\">Item 2C</div>\n            </div>\n          </div>\n          <div class=\"item\">\n            <i class=\"dropdown icon\"></i>\n            <span class=\"text\">Category 3</span>\n            <div class=\"menu\">\n              <div class=\"item\">Item 3A</div>\n              <div class=\"item\">Item 3B</div>\n              <div class=\"item\">Item 3C</div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Preserving User Selections</h4>\n      <p>This example uses a preset text value to preserve the menu item on page navigation</p>\n      <div class=\"ui ignored info icon message\">\n        <i class=\"help circle icon\"></i>\n        <div class=\"content\">\n          <p>A dropdown will automatically select on page load any menu item that includes the current value of <code>text</code> or your dropdown's <code>hidden input</code> value.</p>\n          <p>This is used to preserve a user's selection on page navigation and will automatically remove and default text placeholder formatting.</p>\n        </div>\n      </div>\n\n\n      Current action: <div class=\"ui inline dropdown\">\n        <div class=\"text\">Hide</div>\n        <i class=\"dropdown icon\"></i>\n        <div class=\"menu\">\n          <div class=\"item\">Edit</div>\n          <div class=\"item\">Remove</div>\n          <div class=\"item\">Hide</div>\n        </div>\n      </div>\n\n    </div>\n\n\n    <h2 class=\"ui header\">Adjusting Actions</h2>\n\n    <div class=\"button example\">\n      <h4 class=\"ui header\">Combo Dropdowns</h4>\n      <div class=\"ignored\">\n        <p>A <a href=\"/elements/button.html\">button</a> can be formatted with a dropdown.</p>\n        <p>Using the <code>combo</code> action will change the preceding element to the selected value.</p>\n      </div>\n      <div class=\"evaluated code\" data-type=\"javascript\">\n      $('.combo.dropdown')\n        .dropdown({\n          action: 'combo'\n        })\n      ;\n      </div>\n\n      <div class=\"ui teal buttons\">\n        <div class=\"ui button\">Save</div>\n        <div class=\"ui combo top right pointing dropdown icon button\">\n          <i class=\"dropdown icon\"></i>\n          <div class=\"menu\">\n            <div class=\"item\"><i class=\"edit icon\"></i> Edit</div>\n            <div class=\"item\"><i class=\"delete icon\"></i> Delete</div>\n            <div class=\"item\"><i class=\"hide icon\"></i> Hide</div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"link example\">\n      <h4 class=\"ui header\">Link Dropdowns</h4>\n      <div class=\"ignored\">\n        <p>Dropdowns support different default actions that can occur when an item is selected. For example, you can set your dropdown not to change its text, or select a value from its menu.</p>\n        <div class=\"evaluated code\" data-type=\"javascript\">\n        $('.link.example .dropdown')\n          .dropdown({\n            action: 'hide'\n          })\n        ;\n        </div>\n      </div>\n      <div class=\"ui hidden divider\"></div>\n      <div class=\"ui floating dropdown button\">\n        <div class=\"text\">Go to</div>\n        <i class=\"dropdown icon\"></i>\n        <div class=\"menu\">\n          <a class=\"item\" href=\"#link1\"><i class=\"home icon\"></i> Home</a>\n          <a class=\"item\" href=\"#link2\"><i class=\"users icon\"></i> Browse</a>\n          <a class=\"item\" href=\"#link3\"><i class=\"search icon\"></i> Search</a>\n        </div>\n      </div>\n    </div>\n\n    <h2 class=\"ui header\">Coupling</h2>\n\n    <div class=\"dropdown example\">\n    <h4 class=\"ui header\">Button Group</h4>\n      <p>A <a href=\"/elements/button.html\">button group</a> can be formatted to show additional content as a dropdown</p>\n      <div class=\"ui icon buttons\">\n        <div class=\"ui top left pointing dropdown button\">\n          <i class=\"user icon\"></i>\n          <div class=\"menu\">\n            <div class=\"item\"><i class=\"edit icon\"></i>Edit User</div>\n            <div class=\"item\"><i class=\"delete icon\"></i>Remove User</div>\n            <div class=\"item\"><i class=\"hide icon\"></i>Make Invisible</div>\n          </div>\n        </div>\n        <div class=\"ui top left pointing dropdown button\">\n          <i class=\"users icon\"></i>\n          <div class=\"menu\">\n            <div class=\"item\"><i class=\"edit icon\"></i>Edit Group</div>\n            <div class=\"item\"><i class=\"delete icon\"></i>Remove Group</div>\n            <div class=\"item\"><i class=\"hide icon\"></i>Hide from Group</div>\n          </div>\n        </div>\n        <div class=\"ui top right pointing dropdown button\">\n          <i class=\"settings icon\"></i>\n          <div class=\"menu\">\n            <div class=\"item\"><i class=\"edit icon\"></i> Edit</div>\n            <div class=\"item\"><i class=\"delete icon\"></i> Remove</div>\n            <div class=\"item\"><i class=\"hide icon\"></i> Hide</div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"hover example\">\n      <h4 class=\"ui header\">Menu</h4>\n      <p>A <a href=\"/collections/menu.html\">menu</a> element can contain a dropdown</p>\n        <div class=\"ui menu\">\n          <a class=\"item\">\n            Home\n          </a>\n          <a class=\"ui dropdown item\">\n            Messages\n            <i class=\"dropdown icon\"></i>\n            <div class=\"menu\">\n              <div class=\"item\">\n                <i class=\"dropdown icon\"></i>\n                <span class=\"text\">Categories</span>\n                <div class=\"menu\">\n                  <div class=\"item\">Unread</div>\n                  <div class=\"item\">Promotions</div>\n                  <div class=\"item\">Updates</div>\n                </div>\n              </div>\n              <div class=\"item\">Archive</div>\n            </div>\n          </a>\n          <a class=\"item\">\n            Browse\n          </a>\n        </div>\n    </div>\n\n    <div class=\"dropdown example\">\n      <h4 class=\"ui header\">Form</h4>\n      <p>A dropdown can be formatted to allow selection inside a <a href=\"/collections/form.html\">form</a></p>\n      <div class=\"ui form segment\">\n        <div class=\"two fields\">\n          <div class=\"field\">\n            <label>First Name</label>\n            <input placeholder=\"First Name\" type=\"text\">\n          </div>\n          <div class=\"field\">\n            <label>Last Name</label>\n            <input placeholder=\"Last Name\" type=\"text\">\n          </div>\n        </div>\n        <div class=\"field\">\n          <label>Gender</label>\n          <div class=\"ui dropdown selection\">\n            <input type=\"hidden\" name=\"gender\">\n            <div class=\"default text\">Select Gender</div>\n            <i class=\"dropdown icon\"></i>\n            <div class=\"menu\">\n              <div class=\"item\" data-value=\"male\">Male</div>\n              <div class=\"item\" data-value=\"female\">Female</div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"usage\">\n    <h2 class=\"ui dividing header\">Initializing</h2>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Initializing Existing HTML</h4>\n      <p>Initializing a dropdown with pre-existing HTML allows for greater performance than initializing a dropdown directly on a <code>select</code> element.</p>\n      <div class=\"ui ignored info message\">Any select element initialized as dropdown will also be hidden until Javascript can create HTML, this is to avoid the flash of unstyled content, and the change in element height adjusting page flow.</div>\n      <div class=\"code\" data-label=\"HTML\" data-type=\"html\">\n        <div class=\"ui dropdown\">\n          <input type=\"hidden\" name=\"gender\">\n          <i class=\"dropdown icon\"></i>\n          <div class=\"default text\">Gender</div>\n          <div class=\"menu\">\n            <div class=\"item\" data-value=\"male\">Male</div>\n            <div class=\"item\" data-value=\"female\">Female</div>\n          </div>\n        </div>\n      </div>\n      <div class=\"code\" data-label=\"Javascript\" data-type=\"javascript\">\n        $('.ui.dropdown')\n          .dropdown()\n        ;\n      </div>\n    </div>\n    <div class=\"js example\">\n      <h4 class=\"ui header\">\n        Initializing with Javascript Only\n        <div class=\"ui teal label\">New in 2.2.12</div>\n      </h4>\n      <p>You can specify a list of values in the settings object to avoid having to stub the html yourself.</p>\n      <p>Adding <code>selected: true</code> to an item will have that item selected by default.</p>\n      <p>You can also use the <code>placeholder</code> setting to specify placeholder text before an option is selected.</p>\n      <div class=\"code\" data-label=\"HTML\" data-type=\"html\">\n        <div class=\"ui dropdown\">\n          <div class=\"text\"></div>\n          <i class=\"dropdown icon\"></i>\n        </div>\n      </div>\n      <div class=\"code\" data-label=\"Javascript\" data-type=\"javascript\">\n        $('.ui.dropdown')\n          .dropdown({\n            values: [\n              {\n                name: 'Male',\n                value: 'male'\n              },\n              {\n                name     : 'Female',\n                value    : 'female',\n                selected : true\n              }\n            ]\n          })\n        ;\n      </div>\n    </div>\n    <div class=\"no dropdown example\">\n      <h4 class=\"ui header\">Specifying Different Text &amp; Hidden Input Values</h4>\n      <p>You can specify different values for selected text, and selected form values by adding <code>data-text</code> or <code>data-value</code> to any item. This is useful if you include additional data, like icons, that you want to appear only inside the dropdown menu.</p>\n      <div class=\"ui ignored info message\">If you don't specify a value (either in the `select` or via a `data-value` property, then the input value will be set to the lowercased text in the element.</div>\n\n      <div class=\"code\" data-label=\"HTML\" data-type=\"html\">\n        <div class=\"ui selection dropdown\">\n          <input type=\"hidden\" name=\"gender\">\n          <i class=\"dropdown icon\"></i>\n          <div class=\"default text\">Gender</div>\n          <div class=\"menu\">\n            <div class=\"item\" data-value=\"male\" data-text=\"Male\">\n              <i class=\"male icon\"></i>\n              Male\n            </div>\n            <div class=\"item\" data-value=\"female\" data-text=\"Female\">\n              <i class=\"female icon\"></i>\n              Female\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"ui selection dropdown\">\n        <input type=\"hidden\" name=\"gender\">\n        <i class=\"dropdown icon\"></i>\n        <div class=\"default text\">Gender</div>\n        <div class=\"menu\">\n          <div class=\"item\" data-value=\"male\" data-text=\"Male\">\n            <i class=\"male icon\"></i>\n            Male\n          </div>\n          <div class=\"item\" data-value=\"female\" data-text=\"Female\">\n            <i class=\"female icon\"></i>\n            Female\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Converting Form Elements</h4>\n      <p>For convenience, <code>select</code> elements can automatically be converted to <code>selection dropdown</code>. A select options with blank string values will be converted to prompt text.</p>\n      <div class=\"code\" data-label=\"HTML\" data-type=\"html\">\n        <select name=\"gender\" class=\"ui dropdown\" id=\"select\">\n          <option value=\"\">Gender</option>\n          <option value=\"male\">Male</option>\n          <option value=\"female\">Female</option>\n        </select>\n      </div>\n      <div class=\"code\" data-type=\"javascript\" data-demo=\"true\">\n        $('#select')\n          .dropdown()\n        ;\n      </div>\n      <select class=\"ui dropdown\" name=\"gender\" id=\"select\">\n        <option value=\"\">Gender</option>\n        <option value=\"male\">Male</option>\n        <option value=\"female\">Female</option>\n      </select>\n    </div>\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Hybrid Form Initialization</h4>\n      <p>As a third option, you can include a wrapper around your <code>select</code> so that it will appear correctly on page load, but will then <b>populate the hidden menu</b> when Javascript fires. In this case, the <code>select</code> element does not receive the <code>ui dropdown</code> class.</p>\n      <div class=\"code\" data-label=\"HTML\" data-type=\"html\">\n        <div class=\"ui vertical menu\" id=\"hybrid\">\n          <div class=\"ui dropdown item\">\n            <i class=\"dropdown icon\"></i>\n            Colors\n            <select>\n              <option>Red</option>\n              <option>Black</option>\n              <option>Blue</option>\n              <option>Green</option>\n            </select>\n          </div>\n          <div class=\"ui dropdown item\">\n            <i class=\"dropdown icon\"></i>\n            Sizes\n            <select>\n              <option>Small</option>\n              <option>Medium</option>\n              <option>Large</option>\n              <option>Huge</option>\n            </select>\n          </div>\n        </div>\n      </div>\n      <div class=\"code\" data-type=\"javascript\" data-demo=\"true\">\n        $('#hybrid select')\n          .dropdown({\n            on: 'hover'\n          })\n        ;\n      </div>\n      <div class=\"ui vertical menu\" id=\"hybrid\">\n          <div class=\"ui dropdown item\">\n            <i class=\"dropdown icon\"></i>\n            Colors\n            <select>\n              <option>Red</option>\n              <option>Black</option>\n              <option>Blue</option>\n              <option>Green</option>\n            </select>\n          </div>\n          <div class=\"ui dropdown item\">\n            <i class=\"dropdown icon\"></i>\n            Sizes\n            <select>\n              <option>Small</option>\n              <option>Medium</option>\n              <option>Large</option>\n              <option>Huge</option>\n            </select>\n          </div>\n        </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Searching Dropdowns</h4>\n      <p>Using a <code>search selection dropdown</code> will allow you users to search more easily through large lists. This can also be converted directly from a form select element.</p>\n      <div class=\"code\" data-type=\"javascript\" data-demo=\"true\">\n        $('#search-select')\n          .dropdown()\n        ;\n      </div>\n      <select class=\"ui search selection dropdown\" id=\"search-select\">\n        <%- @partial('examples/single/state-options') %>\n      </select>\n      <div class=\"ui ignored hidden divider\"></div>\n      <div class=\"code\" data-label=\"HTML\" data-type=\"html\">\n        <select class=\"ui search selection dropdown\" id=\"search-select\">\n          <option value=\"\">State</option>\n          <option value=\"AL\">Alabama</option>\n          <option value=\"AK\">Alaska</option>\n          <option value=\"AZ\">Arizona</option>\n          <option value=\"AR\">Arkansas</option>\n          <option value=\"CA\">California</option>\n          <!-- Saving your scroll sanity !-->\n          <option value=\"OH\">Ohio</option>\n          <option value=\"OK\">Oklahoma</option>\n          <option value=\"OR\">Oregon</option>\n          <option value=\"PA\">Pennsylvania</option>\n          <option value=\"RI\">Rhode Island</option>\n          <option value=\"SC\">South Carolina</option>\n          <option value=\"SD\">South Dakota</option>\n          <option value=\"TN\">Tennessee</option>\n          <option value=\"TX\">Texas</option>\n          <option value=\"UT\">Utah</option>\n          <option value=\"VT\">Vermont</option>\n          <option value=\"VA\">Virginia</option>\n          <option value=\"WA\">Washington</option>\n          <option value=\"WV\">West Virginia</option>\n          <option value=\"WI\">Wisconsin</option>\n          <option value=\"WY\">Wyoming</option>\n        </select>\n      </div>\n    </div>\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Multiple Selections</h4>\n      <p>You can allow multiple selections by the <code>multiple</code> property on a <code>select</code> element, or by including the class <code>multiple</code> on a dropdown.</p>\n      <p>When pre-existing HTML with a hidden input is used, values will be passed through a single value separated by a delimiter. The default is \",\" but this can be changed by adjusting the <code>delimiter</code> setting.</p>\n      <div class=\"code\" data-type=\"javascript\" data-demo=\"true\">\n        $('#multi-select')\n          .dropdown()\n        ;\n      </div>\n\n      <select class=\"ui search selection dropdown\" multiple id=\"multi-select\">\n        <%- @partial('examples/single/state-options') %>\n      </select>\n\n      <div class=\"ui ignored hidden divider\"></div>\n\n      <h5 class=\"ui sub header\">Dropdown</h5>\n      <div class=\"code\" data-label=\"HTML\" data-type=\"html\">\n        <div class=\"ui multiple selection dropdown\">\n          <!-- This will receive comma separated value like OH,TX,WY !-->\n          <input name=\"states\" type=\"hidden\" />\n          <i class=\"dropdown icon\"></i>\n          <div class=\"default text\">States</div>\n          <div class=\"menu\">\n            <div class=\"item\" data-value=\"AL\">Alabama</div>\n            <div class=\"item\" data-value=\"AK\">Alaska</div>\n            <div class=\"item\" data-value=\"AZ\">Arizona</div>\n            <div class=\"item\" data-value=\"AR\">Arkansas</div>\n            <div class=\"item\" data-value=\"CA\">California</div>\n            <!-- Saving your scroll sanity !-->\n            <div class=\"item\" data-value=\"OH\">Ohio</div>\n            <div class=\"item\" data-value=\"OK\">Oklahoma</div>\n            <div class=\"item\" data-value=\"OR\">Oregon</div>\n            <div class=\"item\" data-value=\"PA\">Pennsylvania</div>\n            <div class=\"item\" data-value=\"RI\">Rhode Island</div>\n            <div class=\"item\" data-value=\"SC\">South Carolina</div>\n            <div class=\"item\" data-value=\"SD\">South Dakota</div>\n            <div class=\"item\" data-value=\"TN\">Tennessee</div>\n            <div class=\"item\" data-value=\"TX\">Texas</div>\n            <div class=\"item\" data-value=\"UT\">Utah</div>\n            <div class=\"item\" data-value=\"VT\">Vermont</div>\n            <div class=\"item\" data-value=\"VA\">Virginia</div>\n            <div class=\"item\" data-value=\"WA\">Washington</div>\n            <div class=\"item\" data-value=\"WV\">West Virginia</div>\n            <div class=\"item\" data-value=\"WI\">Wisconsin</div>\n            <div class=\"item\" data-value=\"WY\">Wyoming</div>\n          </div>\n        </div>\n      </div>\n\n      <h5 class=\"ui sub header\">Select</h5>\n      <div class=\"code\" data-label=\"HTML\" data-type=\"html\">\n        <select name=\"states\" class=\"ui selection dropdown\" multiple id=\"multi-select\">\n          <option value=\"\">States</option>\n          <option value=\"AL\">Alabama</option>\n          <option value=\"AK\">Alaska</option>\n          <option value=\"AZ\">Arizona</option>\n          <option value=\"AR\">Arkansas</option>\n          <option value=\"CA\">California</option>\n          <option value=\"OH\">Ohio</option>\n          <option value=\"OK\">Oklahoma</option>\n          <option value=\"OR\">Oregon</option>\n          <option value=\"PA\">Pennsylvania</option>\n          <option value=\"RI\">Rhode Island</option>\n          <option value=\"SC\">South Carolina</option>\n          <option value=\"SD\">South Dakota</option>\n          <option value=\"TN\">Tennessee</option>\n          <option value=\"TX\">Texas</option>\n          <option value=\"UT\">Utah</option>\n          <option value=\"VT\">Vermont</option>\n          <option value=\"VA\">Virginia</option>\n          <option value=\"WA\">Washington</option>\n          <option value=\"WV\">West Virginia</option>\n          <option value=\"WI\">Wisconsin</option>\n          <option value=\"WY\">Wyoming</option>\n        </select>\n      </div>\n    </div>\n\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Specifying Select Action</h4>\n      <p>Dropdowns have multiple built-in actions that can occur on item selection. You can specify a built-in action by passing its name to <code>settings.action</code> or pass a custom function that performs an action.</p>\n\n      <table class=\"ui definition sortable celled table segment\">\n        <thead>\n          <tr>\n            <th>Action</th>\n            <th>Description</th>\n          </tr>\n        </thead>\n        <tbody>\n          <tr>\n            <td>activate (Default)</td>\n            <td>Selects current item, adjusts dropdown value and changes dropdown text</td>\n          </tr>\n          <tr>\n            <td>combo</td>\n            <td>Same as activate, but updates previous elements text instead of self</td>\n          </tr>\n          <tr>\n            <td>select</td>\n            <td>Selects current item from menu and stores value, but does not change dropdown text</td>\n          </tr>\n          <tr>\n            <td>hide</td>\n            <td>Hides the dropdown menu and stores value, but does not change text</td>\n          </tr>\n          <tr>\n            <td>function(text, value){}</td>\n            <td>Custom action</td>\n          </tr>\n          <tr>\n            <td>nothing</td>\n            <td>Does nothing</td>\n          </tr>\n        </tbody>\n      </table>\n\n      <p>To specify a different built in action, simply specify the name.</p>\n      <div class=\"code\" data-type=\"javascript\" data-label=\"Specified Action\">\n        $('.dropdown')\n          .dropdown({\n            action: 'combo'\n          })\n        ;\n      </div>\n      <p>To trigger <b>only your custom action</b> and no default action, specify your own function for <code>settings.action</code>.</p>\n      <div class=\"code\" data-type=\"javascript\" data-label=\"Custom Action\">\n        $('.dropdown')\n          .dropdown({\n            action: function(text, value) {\n              // nothing built in occurs\n            }\n          })\n        ;\n      </div>\n\n      <p>If you want to have both a built in action occur, and your own custom action use <code>onChange</code> in combination with <code>action</code></p>\n\n      <div class=\"code\" data-type=\"javascript\" data-label=\"Custom Action\">\n        $('.dropdown')\n          .dropdown({\n            action: 'hide',\n            onChange: function(value, text, $selectedItem) {\n              // custom action\n            }\n          })\n        ;\n      </div>\n\n\n    </div>\n\n\n\n    <h2 class=\"ui dividing header\">Behavior</h2>\n\n    <p>All the following behaviors can be called using the syntax:</p>\n    <div class=\"code\">\n    $('.your.element')\n      .dropdown('behavior name', argumentOne, argumentTwo)\n    ;\n    </div>\n\n    <table class=\"ui definition sortable celled table segment\">\n      <thead>\n        <tr>\n          <th>Behavior</th>\n          <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>setup menu(values)</td>\n          <td>Recreates dropdown menu from passed values. <code>values</code> should be an object with the following structure: <code>{ values: [ {value, text, name} ] }</code>.</td>\n        </tr>\n          <td>change values (values)</td>\n          <td>Changes dropdown to use new values</td>\n        </tr>\n        <tr>\n          <td>refresh</td>\n          <td>Refreshes all cached selectors and data</td>\n        </tr>\n        <tr>\n          <td>toggle</td>\n          <td>Toggles current visibility of dropdown</td>\n        </tr>\n        <tr>\n          <td>show</td>\n          <td>Shows dropdown</td>\n        </tr>\n        <tr>\n          <td>hide</td>\n          <td>Hides dropdown</td>\n        </tr>\n        <tr>\n          <td>clear</td>\n          <td>Clears dropdown of selection</td>\n        </tr>\n        <tr>\n          <td>hide others</td>\n          <td>Hides all other dropdowns that is not current dropdown</td>\n        </tr>\n        <tr>\n          <td>restore defaults</td>\n          <td>Restores dropdown text and value to its value on page load</td>\n        </tr>\n        <tr>\n          <td>restore default text</td>\n          <td>Restores dropdown text to its value on page load</td>\n        </tr>\n        <tr>\n          <td>restore placeholder text</td>\n          <td>Restores dropdown text to its prompt, placeholder text</td>\n        </tr>\n        <tr>\n          <td>restore default value</td>\n          <td>Restores dropdown value to its value on page load</td>\n        </tr>\n        <tr>\n          <td>save defaults</td>\n          <td>Saves current text and value as new defaults (for use with restore)</td>\n        </tr>\n        <tr>\n          <td>set selected(value)</td>\n          <td>Sets value as selected</td>\n        </tr>\n        <tr>\n          <td>remove selected(value)</td>\n          <td>Remove value from selected</td>\n        </tr>\n        <tr>\n          <td>set selected([value1, value2])</td>\n          <td>Adds a group of values as selected</td>\n        </tr>\n        <tr>\n          <td>set exactly([value1, value2])</td>\n          <td>Sets selected values to exactly specified values, removing current selection</td>\n        </tr>\n        <tr>\n          <td>set text(text)</td>\n          <td>Sets dropdown text to a value</td>\n        </tr>\n        <tr>\n          <td>set value(value)</td>\n          <td>Sets dropdown input to value (does not update display state)</td>\n        </tr>\n        <tr>\n          <td>get text</td>\n          <td>Returns current dropdown text</td>\n        </tr>\n        <tr>\n          <td>get value</td>\n          <td>Returns current dropdown input value</td>\n        </tr>\n        <tr>\n          <td>get item(value)</td>\n          <td>Returns DOM element that matches a given input value</td>\n        </tr>\n        <tr>\n          <td>bind touch events</td>\n          <td>Adds touch events to element</td>\n        </tr>\n        <tr>\n          <td>bind mouse events</td>\n          <td>Adds mouse events to element</td>\n        </tr>\n        <tr>\n          <td>bind intent</td>\n          <td>Binds a click to document to determine if you click away from a dropdown</td>\n        </tr>\n        <tr>\n          <td>unbind intent</td>\n          <td>Unbinds document intent click</td>\n        </tr>\n        <tr>\n        <td>determine intent</td>\n          <td>Returns whether event occurred inside dropdown</td>\n        </tr>\n        <tr>\n          <td>determine select action(text, value)</td>\n          <td>Triggers preset item selection action based on settings passing text/value</td>\n        </tr>\n        <tr>\n          <td>set active</td>\n          <td>Sets dropdown to active state\n        <tr>\n          <td>set visible</td>\n          <td>Sets dropdown to visible state</td>\n        </tr>\n        <tr>\n          <td>remove active</td>\n          <td>Removes dropdown active state\n        <tr>\n          <td>remove visible</td>\n          <td>Removes dropdown visible state</td>\n        </tr>\n        <tr>\n          <td>is selection</td>\n          <td>Returns whether dropdown is a selection dropdown</td>\n        </tr>\n        <tr>\n          <td>is animated</td>\n          <td>Returns whether dropdown is animated</td>\n        </tr>\n        <tr>\n          <td>is visible</td>\n          <td>Returns whether dropdown is visible</td>\n        </tr>\n        <tr>\n          <td>is hidden</td>\n          <td>Returns whether dropdown is hidden</td>\n        </tr>\n        <tr>\n          <td>get default text</td>\n          <td>Returns dropdown value as set on page load</td>\n        </tr>\n        <tr>\n          <td>get placeholder text</td>\n          <td>Returns placeholder text</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"settings\">\n\n    <h2 class=\"ui dividing header\">\n      Dropdown\n    </h2>\n\n    <div class=\"no example\">\n\n    <h4 class=\"ui header\">\n      Frequently Used Settings\n    </h4>\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n        <th>Setting</th>\n        <th class=\"four wide\">Default</th>\n        <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>values</td>\n          <td>false</td>\n          <td>When specified allows you to initialize dropdown with specific values. See usage guide for details.</td>\n        </tr>\n        <tr>\n          <td>on</td>\n          <td>click</td>\n          <td>Event used to trigger dropdown (Hover, Click, Custom Event)</td>\n        </tr>\n        <tr>\n          <td>clearable</td>\n          <td>false</td>\n          <td>Whether the dropdown value can be cleared by the user after being selected. </td>\n        </tr>\n        <tr>\n          <td>ignoreCase</td>\n          <td>false<div class=\"ui label\">New in 2.2.13</div></td>\n          <td>Whether values with matching cases should be treated as identical when adding them to a dropdown.</td>\n        </tr>\n        <tr>\n          <td>allowReselection</td>\n          <td>false</td>\n          <td>When set to <code>true</code> will fire <code>onChange</code> even when the value a user select matches the currently selected value.</td>\n        </tr>\n        <tr>\n          <td>allowAdditions</td>\n          <td>false</td>\n          <td>Whether search selection should allow users to add their own selections, works for single or multiselect.</td>\n        </tr>\n        <tr>\n          <td>hideAdditions</td>\n          <td>true</td>\n          <td>If disabled user additions will appear in the dropdown's menu using a specially formatted selection item formatted by <code>templates.addition</code>.</td>\n        </tr>\n        <tr>\n          <td>action</td>\n          <td>auto</td>\n          <td>\n          <p>Sets a default action to occur. (See usage guide)</p>\n          <div class=\"ui vertical divided list\">\n            <div class=\"item\">\n              <div class=\"header\">activate (default)</div>\n              <div class=\"description\">Updates dropdown text with selected value, sets element state to active, updates any hidden fields if available</div>\n            </div>\n            <div class=\"item\">\n              <div class=\"header\">select</div>\n              <div class=\"description\">activates menu and updates input fields, but does not change current text</div>\n            </div>\n            <div class=\"item\">\n              <div class=\"header\">combo</div>\n              <div class=\"description\">changes text of previous sibling element</div>\n            </div>\n            <div class=\"item\">\n              <div class=\"header\">nothing</div>\n              <div class=\"description\">no action occurs</div>\n            </div>\n            <div class=\"item\">\n              <div class=\"header\">hide</div>\n              <div class=\"description\">Dropdown menu is hidden</div>\n            </div>\n            <div class=\"item\">\n              <div class=\"header\">function(text, value, element){}</div>\n              <div class=\"description\">custom function is executed with values specified in callback</div>\n            </div>\n          </div>\n        </tr>\n        <tr>\n          <td>minCharacters</td>\n          <td>1</td>\n          <td>The minimum characters for a search to begin showing results</td>\n        </tr>\n        <tr>\n          <td>match</td>\n          <td>both</td>\n          <td>When using <code>search selection</code> specifies how to match values.\n          <div class=\"ui vertical divided list\">\n            <div class=\"item\">\n              <div class=\"header\">both</div>\n              <div class=\"description\">Matches against text and value</div>\n            </div>\n            <div class=\"item\">\n              <div class=\"header\">value</div>\n              <div class=\"description\">matches against value only</div>\n            </div>\n            <div class=\"item\">\n              <div class=\"header\">text</div>\n              <div class=\"description\">matches against text only</div>\n            </div>\n          </div>\n        </tr>\n        <tr>\n          <td>selectOnKeydown</td>\n          <td>true</td>\n          <td>Whether dropdown should select new option when using keyboard shortcuts. Setting to <code>false</code> will require <code>enter</code> or left click to confirm a choice.</td>\n        </tr>\n        <tr>\n          <td>forceSelection</td>\n          <td>true</td>\n          <td>Whether search selection will force currently selected choice when element is blurred.</td>\n        </tr>\n        <tr>\n          <td>allowCategorySelection</td>\n          <td>false</td>\n          <td>Whether menu items with sub-menus (categories) should be selectable</td>\n        </tr>\n        <tr>\n          <td>placeholder</td>\n          <td>auto</td>\n          <td>\n            <div class=\"ui vertical divided list\">\n              <div class=\"item\">\n                <div class=\"header\">auto</div>\n                <div class=\"description\">Convert option with \"\" (blank string) value to placeholder text</div>\n              </div>\n              <div class=\"item\">\n                <div class=\"header\">value</div>\n                <div class=\"description\">Sets string value to placeholder text, leaves \"\" value</div>\n              </div>\n              <div class=\"item\">\n                <div class=\"header\">false</div>\n                <div class=\"description\">Leaves \"\" value as a selectable option</div>\n              </div>\n            </div>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n    </div>\n\n    <div class=\"no example\">\n\n    <h4 class=\"ui header\">\n      Remote Settings\n    </h4>\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n        <th>Setting</th>\n        <th class=\"four wide\">Default</th>\n        <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>apiSettings</td>\n          <td>false</td>\n          <td>Can be set to an object to specify <a href=\"/behaviors/api.html\">API settings</a> for retrieving remote selection menu content from an API endpoint</td>\n        </tr>\n        <tr>\n          <td>fields</td>\n          <td>\n            <div class=\"code\" data-type=\"css\">\n            fields: {\n              remoteValues : 'results', // grouping for api results\n              values       : 'values', // grouping for all dropdown values\n              name         : 'name',   // displayed dropdown text\n              value        : 'value'   // actual dropdown value\n            }\n            </div>\n          </td>\n          <td>List mapping dropdown content to JSON Property when using API</td>\n        </tr>\n        <tr>\n          <td>filterRemoteData</td>\n          <td>false</td>\n          <td>Whether results returned from API should be filtered by query before being displayed</td>\n        </tr>\n        <tr>\n          <td>saveRemoteData</td>\n          <td>true</td>\n          <td>When enabled, will automatically store selected name/value pairs in <code>sessionStorage</code> to preserve user selection on page refresh. Disabling will clear remote dropdown values on refresh.</td>\n        </tr>\n      </tbody>\n    </table>\n    </div>\n\n    <div class=\"no example\">\n\n    <h4 class=\"ui header\">\n      Multiple Select Settings\n    </h4>\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n        <th>Setting</th>\n        <th class=\"eight wide\">Default</th>\n        <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>useLabels</td>\n          <td>\n           true\n          </td>\n          <td>Whether multiselect should use labels. Must be set to true when <code>allowAdditions</code> is <code>true</code></td>\n        </tr>\n        <tr>\n          <td>maxSelections</td>\n          <td>\n           false\n          </td>\n          <td>When set to a number, sets the maximum number of selections</td>\n        </tr>\n        <tr>\n          <td>glyphWidth</td>\n          <td>\n           1.0714\n          </td>\n          <td>Maximum glyph width, used to calculate search size. This is usually size of a \"W\" in your font in <code>em</code></td>\n        </tr>\n        <tr>\n          <td>label</td>\n          <td>\n            <div class=\"code\">\n            label: {\n              transition : 'horizontal flip',\n              duration   : 200,\n              variation  : false\n            }\n            </div>\n          </td>\n          <td>Allows customization of multi-select labels</td>\n        </tr>\n      </tbody>\n    </table>\n    </div>\n\n    <div class=\"no example\">\n    <h4 class=\"ui header\">\n      Additional Settings\n    </h4>\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n        <th>Setting</th>\n        <th class=\"four wide\">Default</th>\n        <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>direction</td>\n          <td>'auto'</td>\n          <td>When set to <code>auto</code> determines direction based on whether dropdown can fit on screen. Set to <code>upward</code> or <code>downward</code> to always force a direction.</td>\n        </tr>\n        <tr>\n          <td>keepOnScreen</td>\n          <td>true</td>\n          <td>Whether dropdown should try to keep itself on screen by checking whether menus display position in its <code>context</code> (Default context is page).</td>\n        </tr>\n        <tr>\n          <td>context</td>\n          <td>window</td>\n          <td>Element context to use when checking whether can show when <code>keepOnScreen: true</code></td>\n        </tr>\n        <tr>\n          <td>fullTextSearch</td>\n          <td>false</td>\n          <td>Specifying to \"true\" will use a fuzzy full text search, setting to \"exact\" will force the exact search to be matched somewhere in the string, setting to \"false\" will only match start of string.</td>\n        </tr>\n        <tr>\n          <td>preserveHTML</td>\n          <td>true</td>\n          <td>Whether HTML included in dropdown values should be preserved. (Allows icons to show up in selected value)</td>\n        </tr>\n        <tr>\n          <td>sortSelect</td>\n          <td>false</td>\n          <td>Whether to sort values when creating a dropdown automatically from a select element.</td>\n        </tr>\n        <tr>\n          <td>showOnFocus</td>\n          <td>true</td>\n          <td>Whether to show dropdown menu automatically on element focus.</td>\n        </tr>\n        <tr>\n          <td>allowTab</td>\n          <td>true</td>\n          <td>Whether to allow the element to be navigable by keyboard, by automatically creating a <code>tabindex</code></td>\n        </tr>\n        <tr>\n          <td>transition</td>\n          <td>\n            auto (slide down / slide up)\n          </td>\n          <td>Named transition to use when animating menu in and out. Defaults to <code>slide down</code> or <code>slide up</code> depending on dropdown direction. Fade and slide down are available without including <a href=\"/modules/transition.html\">ui transitions</a></td>\n        </tr>\n        <tr>\n          <td>duration</td>\n          <td>\n            200\n          </td>\n          <td>Duration of animation events</td>\n        </tr>\n        <tr>\n          <td>keys</td>\n          <td>\n          <div class=\"code\">\n          keys : {\n            backspace  : 8,\n            delimiter  : 188, // comma\n            deleteKey  : 46,\n            enter      : 13,\n            escape     : 27,\n            pageUp     : 33,\n            pageDown   : 34,\n            leftArrow  : 37,\n            upArrow    : 38,\n            rightArrow : 39,\n            downArrow  : 40\n          }\n          </div>\n          </td>\n          <td>\n            The <code>keycode</code> used to represent keyboard shortcuts. To avoid issues with some foreign languages, you can pass <code>false</code> for comma delimiter's value\n          </td>\n        </tr>\n        <tr>\n          <td>delay</td>\n          <td>\n          <div class=\"code\">\n          delay : {\n            hide   : 300,\n            show   : 200,\n            search : 50,\n            touch  : 50\n          }\n          </div>\n          </td>\n          <td>Time in milliseconds to debounce show or hide behavior when <code>on: hover</code> is used, or when touch is used.</td>\n        </tr>\n      </tbody>\n    </table>\n\n    </div>\n\n    <h4 class=\"ui header\">\n      Callbacks\n    </h4>\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n          <th class=\"six wide\"></th>\n          <th>Context</th>\n          <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>onChange(value, text, $choice)</td>\n          <td>Dropdown</td>\n          <td>Is called after a dropdown value changes. Receives the name and value of selection and the active menu element</td>\n        </tr>\n        <tr>\n          <td>onAdd(addedValue, addedText, $addedChoice)</td>\n          <td>Dropdown</td>\n          <td>Is called after a dropdown selection is added using a multiple select dropdown, only receives the added value</td>\n        </tr>\n        <tr>\n          <td>onRemove(removedValue, removedText, $removedChoice)</td>\n          <td>Dropdown</td>\n          <td>Is called after a dropdown selection is removed using a multiple select dropdown, only receives the removed value</td>\n        </tr>\n        <tr>\n          <td>onLabelCreate(value, text)</td>\n          <td>$label (jQDOM)</td>\n          <td>Allows you to modify a label before it is added. Expects the jQ DOM element for a label to be returned.</td>\n        </tr>\n        <tr>\n          <td>onLabelRemove(value)</td>\n          <td>$label (jqDOM)</td>\n          <td>Called when a label is remove, <code>return false;</code> will prevent the label from being removed.</td>\n        </tr>\n        <tr>\n          <td>onLabelSelect($selectedLabels)</td>\n          <td>Dropdown</td>\n          <td>Is called after a label is selected by a user</td>\n        </tr>\n        <tr>\n          <td>onNoResults(searchValue)</td>\n          <td>Dropdown</td>\n          <td>Is called after a dropdown is searched with no matching values</td>\n        </tr>\n        <tr>\n          <td>onShow</td>\n          <td>Dropdown</td>\n          <td>Is called before a dropdown is shown. If <code>false</code> is returned, dropdown will not be shown.</td>\n        </tr>\n        <tr>\n          <td>onHide</td>\n          <td>Dropdown</td>\n          <td>Is called before a dropdown is hidden. If <code>false</code> is returned, dropdown will not be hidden.</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <h4 class=\"ui header\">\n      Module Settings\n    </h4>\n\n    <h3 class=\"ui header\">\n      DOM Settings\n      <div class=\"sub header\">DOM settings specify how this module should interface with the DOM</div>\n    </h3>\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n          <th></th>\n          <th class=\"four wide\">Default</th>\n          <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>namespace</td>\n          <td>dropdown</td>\n          <td>Event namespace. Makes sure module teardown does not effect other events attached to an element.</td>\n        </tr>\n        <tr>\n          <td>message</td>\n          <td colspan=\"2\">\n            <p>\n              You can specify site wide messages by modifying <code>$.fn.dropdown.settings.message</code>\n              that will apply on any dropdown if it appears in the page.\n            </p>\n            <div class=\"code\">\n            message: {\n              addResult     : 'Add <b>{term}</b>',\n              count         : '{count} selected',\n              maxSelections : 'Max {maxCount} selections',\n              noResults     : 'No results found.'\n            }\n            </div>\n          </td>\n        </tr>\n        <tr>\n          <td>selector</td>\n          <td colspan=\"2\">\n            <div class=\"code\" data-type=\"html\">\n            selector : {\n              addition     : '.addition',\n              dropdown     : '.ui.dropdown',\n              icon         : '> .dropdown.icon',\n              input        : '> input[type=\"hidden\"], > select',\n              item         : '.item',\n              label        : '> .label',\n              remove       : '> .label > .delete.icon',\n              siblingLabel : '.label',\n              menu         : '.menu',\n              message      : '.message',\n              menuIcon     : '.dropdown.icon',\n              search       : 'input.search, .menu > .search > input',\n              text         : '> .text:not(.icon)'\n            }\n            </div>\n          </td>\n        </tr>\n        <tr>\n          <td>regExp</td>\n          <td colspan=\"2\">\n            <div class=\"code\">\n            regExp : {\n              escape   : /[-[\\]{}()*+?.,\\\\^$|#\\s]/g,\n            }\n            </div>\n          </td>\n        </tr>\n        <tr>\n          <td>metadata</td>\n          <td colspan=\"2\">\n            <div class=\"code\">\n            metadata : {\n              defaultText     : 'defaultText',\n              defaultValue    : 'defaultValue',\n              placeholderText : 'placeholderText',\n              text            : 'text',\n              value           : 'value'\n            }\n            </div>\n          </td>\n        </tr>\n        <tr>\n          <td>className</td>\n          <td colspan=\"2\">\n            <div class=\"code\">\n            className : {\n              active      : 'active',\n              addition    : 'addition',\n              animating   : 'animating',\n              disabled    : 'disabled',\n              dropdown    : 'ui dropdown',\n              filtered    : 'filtered',\n              hidden      : 'hidden transition',\n              item        : 'item',\n              label       : 'ui label',\n              loading     : 'loading',\n              menu        : 'menu',\n              message     : 'message',\n              multiple    : 'multiple',\n              placeholder : 'default',\n              search      : 'search',\n              selected    : 'selected',\n              selection   : 'selection',\n              upward      : 'upward',\n              visible     : 'visible'\n            }\n            </div>\n          </td>\n        </tr>\n        <tr>\n          <td>name</td>\n          <td>Dropdown</td>\n          <td>Name used in debug logs</td>\n        </tr>\n        <tr>\n          <td>silent</td>\n          <td>False</td>\n          <td>Silences all console output including error messages, regardless of other debug settings.</td>\n        </tr>\n        <tr>\n          <td>debug</td>\n          <td>False</td>\n          <td>Provides standard debug output to console</td>\n        </tr>\n        <tr>\n          <td>performance</td>\n          <td>True</td>\n          <td>Provides performance stats in console, and suppresses other debug output.</td>\n        </tr>\n        <tr>\n          <td>verbose</td>\n          <td>True</td>\n          <td>Provides ancillary debug output to console</td>\n        </tr>\n        <tr>\n          <td>error</td>\n          <td colspan=\"2\">\n            <div class=\"code\">\n            error   : {\n              action       : 'You called a dropdown action that was not defined',\n              alreadySetup : 'Once a select has been initialized behaviors must be called on the created ui dropdown',\n              labels       : 'Allowing user additions currently requires the use of labels.',\n              method       : 'The method you called is not defined.',\n              noTransition : 'This module requires ui transitions <https://github.com/Semantic-Org/UI-Transition>'\n            }\n            </div>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/modules/embed.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : ''\nstandalone  : true\n\nelement     : 'Embed'\nelementType : 'module'\n\ntitle       : 'Embed'\ndescription : 'An embed displays content from other websites like YouTube videos or Google Maps'\ntype        : 'UI Module'\n\n---\n<script src=\"/javascript/embed.js\"></script>\n\n<%- @partial('header',  { tabs: { overview: 'Overview', definition: 'Definition', usage: 'Usage', settings: 'Settings' } }) %>\n\n<div class=\"main ui container\">\n  <div class=\"ui active tab\" data-tab=\"overview\">\n\n    <h2>When to Use</h2>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Responsive Aspect Ratio</h4>\n      <p>Embeds use an <a href=\"http://alistapart.com/article/creating-intrinsic-ratios-for-video\">instrinsic aspect ratio</a> which allows them to resize responsively based on their expected aspect ratio and not by using a single specified width or height.</p>\n    </div>\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Only Load After Interaction</h4>\n      <p>Including an <code>iframe</code> embed directly will automatically load all iframe contents on page load which can drastically reduce the responsiveness of a page.</p>\n      <p>Semantic's embed combats this by not  loading iframe content until a user has interacted with your embed's placeholder content.</p>\n      <p>To give you an idea of how much file size including an embed will add to your page load see the chart below</p>\n      <div class=\"ui ignored info message\">The following are download estimates taken from firebug and a single sample embed. Individual results may vary.</div>\n      <table class=\"ui celled two column table\">\n        <thead>\n          <th>Network</th>\n          <th>Embed Size</th>\n        </thead>\n        <tbody>\n          <tr>\n            <td>\n              Google Maps\n            </td>\n            <td>\n              237kb\n            </td>\n          </tr>\n          <tr>\n            <td>\n              YouTube\n            </td>\n            <td>\n              380kb\n            </td>\n          </tr>\n          <tr>\n            <td>\n              Vimeo\n            </td>\n            <td>\n              81kb\n            </td>\n          </tr>\n        </tbody>\n      </table>\n    </div>\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"definition\">\n\n    <h2 class=\"ui dividing header\">Types</h2>\n\n    <div class=\"embed example\">\n      <h4 class=\"ui header\">YouTube</h4>\n      <p>An embed can be used to display <a href=\"http://www.youtube.com\" target=\"_blank\">YouTube</a> Content</p>\n\n      <div class=\"ui embed\"\n        data-source=\"youtube\"\n        data-id=\"O6Xo21L0ybE\"\n        data-placeholder=\"/images/image-16by9.png\">\n      </div>\n\n    </div>\n\n    <div class=\"embed example\">\n      <h4 class=\"ui header\">Vimeo</h4>\n      <p>An embed can be used to display <a href=\"http://www.vimeo.com\" target=\"_blank\">Vimeo</a> content.</p>\n\n      <div class=\"ui embed\"\n        data-source=\"vimeo\"\n        data-id=\"125292332\"\n        data-placeholder=\"/images/vimeo-example.jpg\">\n      </div>\n\n    </div>\n\n    <div class=\"embed example\">\n      <h4 class=\"ui header\">Custom Content</h4>\n      <p>An embed can display any web content</p>\n      <div class=\"ui info ignored message\">Embeds use an intrinsic aspect ratios to embed content responsively. Content will preserve their intrinsic aspect ratio for all browser sizes responsively</div>\n      <div class=\"ui embed\"\n        data-url=\"http://www.myfav.es/jack\"\n        data-placeholder=\"/images/image-16by9.png\"\n        data-icon=\"right circle arrow\"\n      >\n      </div>\n    </div>\n\n\n    <h2 class=\"ui dividing header\">Variations</h2>\n\n    <div class=\"embed example\">\n      <h4 class=\"ui header\">Aspect Ratio</h4>\n      <p>An embed can specify an alternative aspect ratio</p>\n      <div class=\"ui 4:3 embed\"\n        data-source=\"youtube\"\n        data-id=\"HTZudKi36bo\"\n        data-placeholder=\"/images/4by3.jpg\">\n      </div>\n\n    </div>\n\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"usage\">\n\n    <h2>Initializing</h2>\n\n    <div class=\"no url example\">\n      <h4 class=\"ui header\">Specifying a URL</h4>\n      <p>Specifying a url will automatically match to an embed source using the domain of the url.</p>\n      <div class=\"code\" data-type=\"javascript\" data-demo=\"true\">\n        $('.url.example .ui.embed').embed();\n      </div>\n      <div class=\"code\" data-type=\"html\" data-preview=\"true\">\n        <div class=\"ui embed\"\n          data-url=\"https://www.youtube.com/embed/O6Xo21L0ybE\"\n          data-placeholder=\"/images/bear-waving.jpg\"\n        ></div>\n      </div>\n    </div>\n\n    <div class=\"no content example\">\n      <h4 class=\"ui header\">Using Content IDs</h4>\n      <p>Embed is designed to automatically generate urls from content ids. This way your site's backend can store meaningful content metadata and not worry about generating urls.</p>\n      <div class=\"code\" data-type=\"javascript\" data-demo=\"true\">\n        $('.content.example .ui.embed').embed();\n      </div>\n      <div class=\"code\" data-type=\"html\" data-preview=\"true\">\n        <div class=\"ui embed\"\n          data-source=\"youtube\"\n          data-id=\"O6Xo21L0ybE\"\n        ></div>\n      </div>\n    </div>\n\n    <div class=\"no metadata example\">\n      <h4 class=\"ui header\">Specifying Metadata</h4>\n      <p>Other settings like icons and placeholder images can be specified in metadata overriding presets for a site.</p>\n      <div class=\"code\" data-type=\"javascript\" data-demo=\"true\">\n        $('.metadata.example .ui.embed').embed();\n      </div>\n      <div class=\"code\" data-type=\"html\" data-preview=\"true\">\n        <div class=\"ui embed\"\n          data-source=\"youtube\"\n          data-id=\"O6Xo21L0ybE\"\n          data-icon=\"video\"\n          data-placeholder=\"/images/bear-waving.jpg\"\n        ></div>\n      </div>\n    </div>\n\n    <div class=\"no custom example\">\n      <h4 class=\"ui header\">Specifying Programmatically</h4>\n      <p>You can also specify embed settings at run-time in the settings object.</p>\n      <div class=\"code\" data-type=\"javascript\" data-demo=\"true\">\n        $('.custom.example .ui.embed').embed({\n          source      : 'youtube',\n          id          : 'O6Xo21L0ybE',\n          placeholder : '/images/bear-waving.jpg'\n        });\n      </div>\n      <div class=\"code\" data-type=\"html\" data-preview=\"true\">\n        <div class=\"ui embed\"></div>\n      </div>\n\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Specifying New Sources</h4>\n      <p>Embed comes with two predefined embed sources, but can be extended with custom sources. Each source specifies default parameters and their mappings to settings, a templated url, and what icon should be used for overlays</p>\n      <p>Extending <code>$.fn.embed.settings.sources</code> allows you to use other proprietary embeds.</p>\n      <div class=\"code\" data-type=\"javascript\">\n        // built in\n        $.fn.embed.settings.sources = {\n          youtube: {\n            name   : 'youtube',\n            type   : 'video',\n            icon   : 'video play',\n            domain : 'youtube.com',\n            url    : '//www.youtube.com/embed/{id}',\n            parameters: function(settings) {\n              return {\n                autohide       : !settings.showUI,\n                autoplay       : settings.autoplay,\n                color          : settings.colors || undefined,\n                hq             : settings.hd,\n                jsapi          : settings.api,\n                modestbranding : 1\n              };\n            }\n          },\n          vimeo: {\n            name   : 'vimeo',\n            type   : 'video',\n            icon   : 'video play',\n            domain : 'vimeo.com',\n            url    : '//www.youtube.com/embed/{id}',\n            parameters: function(settings) {\n              return {\n                api      : settings.api,\n                autoplay : settings.autoplay,\n                byline   : settings.showUI,\n                color    : settings.colors || undefined,\n                portrait : settings.showUI,\n                title    : settings.showUI\n              };\n            }\n          }\n        };\n      </div>\n    </div>\n\n    <h2>Behaviors</h2>\n    <p>All the following behaviors can be called using the syntax:</p>\n    <div class=\"code\">\n    $('.your.element')\n      .embed('behavior name', argumentOne, argumentTwo)\n    ;\n    </div>\n\n    <table class=\"ui definition celled sortable table segment\">\n      <thead>\n        <th>Behavior</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>change(source, id, url)</td>\n          <td>Changes iframe to a new content source</td>\n        </tr>\n        <tr>\n          <td>reset</td>\n          <td>Removes embed and shows placeholder content if available</td>\n        </tr>\n        <tr>\n          <td>show</td>\n          <td>Shows embed content</td>\n        </tr>\n        <tr>\n          <td>hide</td>\n          <td>Hides embed content and shows placeholder content</td>\n        </tr>\n        <tr>\n          <td>get id</td>\n          <td>Returns current content id</td>\n        </tr>\n        <tr>\n          <td>get placeholder</td>\n          <td>Returns placeholder image url</td>\n        </tr>\n        <tr>\n          <td>get sources</td>\n          <td>Returns source name</td>\n        </tr>\n        <tr>\n          <td>get type</td>\n          <td>Returns source type</td>\n        </tr>\n        <tr>\n          <td>get url</td>\n          <td>Returns URL with all parameters added</td>\n        </tr>\n        <tr>\n          <td>has placeholder</td>\n          <td>Returns whether embed content has placeholder</td>\n        </tr>\n        <tr>\n          <td>destroy</td>\n          <td>Destroys instance and removes all events</td>\n        </tr>\n      </tbody>\n    </table>\n\n\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"settings\">\n\n    <h3 class=\"ui header\">\n      Embed Settings\n      <div class=\"sub header\">Settings to configure video behavior</div>\n    </h3>\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <th>Setting</th>\n        <th class=\"four wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>icon</td>\n          <td>false</td>\n          <td>Specifies an icon to use with placeholder content</td>\n        </tr>\n        <tr>\n          <td>source</td>\n          <td>false</td>\n          <td>Specifies a source to use, if no source is provided it will be determined from the domain of a specified url.</td>\n        </tr>\n        <tr>\n          <td>url</td>\n          <td>false</td>\n          <td>Specifies a url to use for embed</td>\n        </tr>\n        <tr>\n          <td>id</td>\n          <td>false</td>\n          <td>Specifies an id value to replace with the <code>{id}</code> value found in templated urls</td>\n        </tr>\n        <tr>\n          <td>parameters</td>\n          <td>false</td>\n          <td>Specify an object containing key/value pairs to add to the iframes GET parameters</td>\n        </tr>\n      </tbody>\n    </table>\n\n\n    <h3 class=\"ui header\">\n      Video Settings\n      <div class=\"sub header\">Settings to configure video behavior</div>\n    </h3>\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <th>Setting</th>\n        <th class=\"four wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>autoplay</td>\n          <td>auto</td>\n          <td>Default setting <code>auto</code> will only autoplay content when a placeholder is specified. Setting to true or false will force autoplay.</td>\n        </tr>\n        <tr>\n          <td>color</td>\n          <td>#444444</td>\n          <td>Specifies a default chrome color with Vimeo or YouTube.</td>\n        </tr>\n        <tr>\n          <td>url</td>\n          <td>false</td>\n          <td>Specifies a url to use for embed</td>\n        </tr>\n        <tr>\n          <td>hd</td>\n          <td>true</td>\n          <td>Whether to prefer HD content</td>\n        </tr>\n        <tr>\n          <td>brandedUI</td>\n          <td>false</td>\n          <td>Whether to show networks branded UI like title cards, or after video calls to action.</td>\n        </tr>\n      </tbody>\n    </table>\n\n     <h4 class=\"ui header\">Callbacks</h4>\n    <p>Callbacks specify a function to occur after a specific behavior.</p>\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n          <th class=\"four wide\"></th>\n          <th class=\"four wide\">Parameters</th>\n          <th>Context</th>\n          <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>onCreate</td>\n          <td>url</td>\n          <td>$module</td>\n          <td>Callback when iframe is generated</td>\n        </tr>\n        <tr>\n          <td>onDisplay</td>\n          <td></td>\n          <td>$module</td>\n          <td>Whenever an iframe contents is shown</td>\n        </tr>\n        <tr>\n          <td>onPlaceholderDisplay</td>\n          <td></td>\n          <td>$module</td>\n          <td>Callback immediately before Embed is removed from DOM</td>\n        </tr>\n        <tr>\n          <td>onEmbed</td>\n          <td>parameters</td>\n          <td>$module</td>\n          <td>Callback when module parameters are determined. Allows you to adjust parameters at run time by returning a new parameters object.</td>\n        </tr>\n      </tbody>\n    </table>\n\n\n    <h3 class=\"ui header\">\n      DOM Settings\n      <div class=\"sub header\">DOM settings specify how this module should interface with the DOM</div>\n    </h3>\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <th>Setting</th>\n        <th class=\"six wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>namespace</td>\n          <td>embed</td>\n          <td>Event namespace. Makes sure module teardown does not effect other events attached to an element.</td>\n        </tr>\n        <tr>\n          <td>selector</td>\n          <td>\n            <div class=\"code\">\n            selector : {\n              embed       : '.embed',\n              placeholder : '.placeholder',\n              play        : '.play'\n            }\n            </div>\n          </td>\n          <td>DOM Selectors used internally</td>\n        </tr>\n        <tr>\n          <td>metadata</td>\n          <td>\n            <div class=\"code\">\n            metadata    : {\n              id          : 'id',\n              icon        : 'icon',\n              placeholder : 'placeholder',\n              source      : 'source',\n              url         : 'url'\n            }\n            </div>\n          </td>\n          <td>HTML Data attributes used to store data</td>\n        </tr>\n        <tr>\n          <td>className</td>\n          <td>\n            <div class=\"code\">\n            className : {\n              active : 'active',\n              embed  : 'embed'\n            }\n            </div>\n          </td>\n          <td>Class names used to attach style to state</td>\n        </tr>\n        <tr>\n          <td>templates</td>\n          <td colspan=\"2\">\n            <div class=\"code\" data-type=\"css\">\n            $.fn.embed.settings.templates = {\n              iframe: function(url, parameters) {\n                // returns html for iframe\n              },\n              placeholder: function(image, icon) {\n               // returns html for placeholder element\n              }\n            }\n            </div>\n          </td>\n        </tr>\n        <tr>\n          <td>metadata</td>\n          <td colspan=\"2\">\n            <div class=\"code\">\n            metadata    : {\n              id          : 'id',\n              icon        : 'icon',\n              placeholder : 'placeholder',\n              source      : 'source',\n              url         : 'url'\n            }\n            </div>\n          </td>\n        </tr>\n        <tr>\n          <td>errors</td>\n          <td colspan=\"2\">\n            <div class=\"code\">\n            error : {\n              noURL  : 'No URL specified',\n              method : 'The method you called is not defined'\n            }\n            </div>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n\n    <div class=\"ui horizontal divider\"><i class=\"icon setting\"></i></div>\n\n    <h3 class=\"ui header\">\n      Debug Settings\n      <div class=\"sub header\">Debug settings controls debug output to the console</div>\n    </h3>\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <th>Setting</th>\n        <th class=\"four wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>name</td>\n          <td>Embed</td>\n          <td>Name used in debug logs</td>\n        </tr>\n        <tr>\n          <td>silent</td>\n          <td>False</td>\n          <td>Silences all console output including error messages, regardless of other debug settings.</td>\n        </tr>\n        <tr>\n          <td>debug</td>\n          <td>False</td>\n          <td>Provides standard debug output to console</td>\n        </tr>\n        <tr>\n          <td>performance</td>\n          <td>True</td>\n          <td>Provides standard debug output to console</td>\n        </tr>\n        <tr>\n          <td>verbose</td>\n          <td>True</td>\n          <td>Provides ancillary debug output to console</td>\n        </tr>\n      </tbody>\n    </table>\n\n\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/modules/modal.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'modal-page'\nstandalone  : true\n\nelement     : 'modal'\nelementType : 'module'\n\ntitle       : 'Modal'\ndescription : 'A modal displays content that temporarily blocks interactions with the main view of a site'\ntype        : 'UI Module'\n\nthemes      : ['Default', 'Material']\n---\n\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/modules/modal.less\" />\n<script src=\"/javascript/modal.js\"></script>\n\n<%- @partial('header', { tabs: 'module' }) %>\n\n<div class=\"main ui container\">\n\n  <div class=\"ui header-example modal\">\n    <div class=\"header\">Header</div>\n    <div class=\"content\">\n      Content\n      <div class=\"ui button\">Button</div>\n    </div>\n  </div>\n\n  <div class=\"ui first coupled modal\">\n    <div class=\"header\">\n      Modal #1\n    </div>\n    <div class=\"image content\">\n      <div class=\"image\">\n        <i class=\"right arrow icon\"></i>\n      </div>\n      <div class=\"description\">\n        <p>We have more to share with you. Follow us along to modal 2</p>\n      </div>\n    </div>\n    <div class=\"actions\">\n      <div class=\"ui primary button\">Proceed</div>\n    </div>\n  </div>\n  <div class=\"ui small second coupled modal\">\n    <div class=\"header\">\n      Modal #2\n    </div>\n    <div class=\"content\">\n      <div class=\"description\">\n        <p>That's everything!</p>\n      </div>\n    </div>\n    <div class=\"actions\">\n      <div class=\"ui approve button\">\n        <i class=\"checkmark icon\"></i>\n        All Done\n      </div>\n    </div>\n  </div>\n\n  <div class=\"ui small basic test modal\">\n    <div class=\"ui icon header\">\n      <i class=\"archive icon\"></i>\n      Archive Old Messages\n    </div>\n    <div class=\"content\">\n      <p>Your inbox is getting full, would you like us to enable automatic archiving of old messages?</p>\n    </div>\n    <div class=\"actions\">\n      <div class=\"ui red basic cancel inverted button\">\n        <i class=\"remove icon\"></i>\n        No\n      </div>\n      <div class=\"ui green ok inverted button\">\n        <i class=\"checkmark icon\"></i>\n        Yes\n      </div>\n    </div>\n  </div>\n  <div class=\"ui mini test modal\">\n    <div class=\"header\">\n      Delete Your Account\n    </div>\n    <div class=\"content\">\n      <p>Are you sure you want to delete your account</p>\n    </div>\n    <div class=\"actions\">\n      <div class=\"ui negative button\">\n        No\n      </div>\n      <div class=\"ui positive right labeled icon button\">\n        Yes\n        <i class=\"checkmark icon\"></i>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"ui special modal\">\n    <div class=\"header\">\n      Delete Your Account\n    </div>\n    <div class=\"content\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n      <div class=\"ui hidden divider\"></div>\n    </div>\n    <div class=\"actions\">\n      <div class=\"ui negative button\">\n        No\n      </div>\n      <div class=\"ui positive right labeled icon button\">\n        Yes\n        <i class=\"checkmark icon\"></i>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"ui tiny test modal\">\n    <div class=\"header\">\n      Delete Your Account\n    </div>\n    <div class=\"content\">\n      <p>Are you sure you want to delete your account</p>\n    </div>\n    <div class=\"actions\">\n      <div class=\"ui negative button\">\n        No\n      </div>\n      <div class=\"ui positive right labeled icon button\">\n        Yes\n        <i class=\"checkmark icon\"></i>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"ui small test modal\">\n    <div class=\"header\">\n      Delete Your Account\n    </div>\n    <div class=\"content\">\n      <p>Are you sure you want to delete your account</p>\n    </div>\n    <div class=\"actions\">\n      <div class=\"ui negative button\">\n        No\n      </div>\n      <div class=\"ui positive right labeled icon button\">\n        Yes\n        <i class=\"checkmark icon\"></i>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"ui fullscreen modal\">\n    <i class=\"close icon\"></i>\n    <div class=\"header\">\n      Update Your Settings\n    </div>\n    <div class=\"content\">\n      <div class=\"ui form\">\n        <h4 class=\"ui dividing header\">Give us your feedback</h4>\n        <div class=\"field\">\n          <label>Feedback</label>\n          <textarea></textarea>\n        </div>\n        <div class=\"field\">\n          <div class=\"ui checkbox\">\n            <input type=\"checkbox\" checked=\"checked\" name=\"contact-me\">\n            <label>It's okay to contact me.</label>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"actions\">\n      <div class=\"ui button\">Cancel</div>\n      <div class=\"ui green button\">Send</div>\n    </div>\n  </div>\n\n  <div class=\"ui large test modal\">\n    <div class=\"header\">\n      Changing Your Thing\n    </div>\n    <div class=\"content\">\n      <p>Do you want to change that thing to something else?</p>\n    </div>\n    <div class=\"actions\">\n      <div class=\"ui negative button\">\n        No\n      </div>\n      <div class=\"ui positive right labeled icon button\">\n        Yes\n        <i class=\"checkmark icon\"></i>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"ui longer test modal\">\n    <div class=\"header\">\n      Profile Picture\n    </div>\n    <div class=\"scrolling image content\">\n      <div class=\"ui medium image\">\n        <img src=\"/images/wireframe/image.png\">\n      </div>\n      <div class=\"description\">\n        <div class=\"ui header\">Modal Header</div>\n        <p>This is an example of expanded content that will cause the modal's dimmer to scroll</p>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        <div class=\"ui divider\"></div>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        <div class=\"ui divider\"></div>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        <div class=\"ui divider\"></div>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        <div class=\"ui divider\"></div>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        <div class=\"ui divider\"></div>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        <div class=\"ui divider\"></div>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n      </div>\n    </div>\n    <div class=\"actions\">\n      <div class=\"ui primary approve button\">\n        Proceed\n        <i class=\"right chevron icon\"></i>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"ui long test modal\">\n    <div class=\"header\">\n      Profile Picture\n    </div>\n    <div class=\"image content\">\n      <div class=\"ui medium image\">\n        <img src=\"/images/wireframe/image.png\">\n      </div>\n      <div class=\"description\">\n        <div class=\"ui header\">Modal Header</div>\n        <p>This is an example of expanded content that will cause the modal's dimmer to scroll</p>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        <div class=\"ui divider\"></div>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        <div class=\"ui divider\"></div>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        <div class=\"ui divider\"></div>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        <div class=\"ui divider\"></div>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        <div class=\"ui divider\"></div>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        <div class=\"ui divider\"></div>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        <div class=\"ui divider\"></div>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n      </div>\n    </div>\n    <div class=\"actions\">\n      <div class=\"ui primary approve button\">\n        Proceed\n        <i class=\"right chevron icon\"></i>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"ui inverted test modal\">\n    <div class=\"header\">\n      Select a Photo\n    </div>\n    <div class=\"image content\">\n      <div class=\"ui medium image\">\n        <img src=\"/images/avatar2/large/rachel.png\">\n      </div>\n      <div class=\"description\">\n        <div class=\"ui header\">Default Profile Image</div>\n        <p>We've found the following <a href=\"https://www.gravatar.com\" target=\"_blank\">gravatar</a> image associated with your e-mail address.</p>\n        <p>Is it okay to use this photo?</p>\n      </div>\n    </div>\n    <div class=\"actions\">\n      <div class=\"ui black deny button\">\n        Nope\n      </div>\n      <div class=\"ui positive right labeled icon button\">\n        Yep, that's me\n        <i class=\"checkmark icon\"></i>\n      </div>\n    </div>\n  </div>\n  <div class=\"ui standard test modal\">\n    <div class=\"header\">\n      Select a Photo\n    </div>\n    <div class=\"image content\">\n      <div class=\"ui medium image\">\n        <img src=\"/images/avatar2/large/rachel.png\">\n      </div>\n      <div class=\"description\">\n        <div class=\"ui header\">Default Profile Image</div>\n        <p>We've found the following <a href=\"https://www.gravatar.com\" target=\"_blank\">gravatar</a> image associated with your e-mail address.</p>\n        <p>Is it okay to use this photo?</p>\n      </div>\n    </div>\n    <div class=\"actions\">\n      <div class=\"ui black deny button\">\n        Nope\n      </div>\n      <div class=\"ui positive right labeled icon button\">\n        Yep, that's me\n        <i class=\"checkmark icon\"></i>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"ui active tab\" data-tab=\"definition\">\n\n    <h2 class=\"ui dividing header\">Types</h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Modal</h4>\n      <p>A standard modal</p>\n      <div class=\"code\" data-demo=\"true\" data-eval=\"$('.standard.test.modal').modal('show');\">\n      $('.ui.modal')\n        .modal('show')\n      ;\n      </div>\n      <div class=\"existing code\" data-type=\"html\">\n        <div class=\"ui modal\">\n          <i class=\"close icon\"></i>\n          <div class=\"header\">\n            Profile Picture\n          </div>\n          <div class=\"image content\">\n            <div class=\"ui medium image\">\n              <img src=\"/images/avatar/large/chris.jpg\">\n            </div>\n            <div class=\"description\">\n              <div class=\"ui header\">We've auto-chosen a profile image for you.</div>\n              <p>We've grabbed the following image from the <a href=\"https://www.gravatar.com\" target=\"_blank\">gravatar</a> image associated with your registered e-mail address.</p>\n              <p>Is it okay to use this photo?</p>\n            </div>\n          </div>\n          <div class=\"actions\">\n            <div class=\"ui black deny button\">\n              Nope\n            </div>\n            <div class=\"ui positive right labeled icon button\">\n              Yep, that's me\n              <i class=\"checkmark icon\"></i>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Basic</h4>\n      <p>A modal can reduce its complexity</p>\n      <div class=\"code\" data-demo=\"true\" data-eval=\"$('.basic.test.modal').modal('show');\">\n      $('.ui.basic.modal')\n        .modal('show')\n      ;\n      </div>\n      <div class=\"existing code\">\n        <div class=\"ui basic modal\">\n          <div class=\"ui icon header\">\n            <i class=\"archive icon\"></i>\n            Archive Old Messages\n          </div>\n          <div class=\"content\">\n            <p>Your inbox is getting full, would you like us to enable automatic archiving of old messages?</p>\n          </div>\n          <div class=\"actions\">\n            <div class=\"ui red basic cancel inverted button\">\n              <i class=\"remove icon\"></i>\n              No\n            </div>\n            <div class=\"ui green ok inverted button\">\n              <i class=\"checkmark icon\"></i>\n              Yes\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Content</h2>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">\n        Header\n      </h4>\n      <p>A modal can have a header</p>\n      <div class=\"code\" data-type=\"html\">\n        <div class=\"ui modal\">\n          <div class=\"header\">Header</div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">\n        Content\n      </h4>\n      <p>A modal can contain content</p>\n      <div class=\"code\" data-type=\"html\">\n        <div class=\"ui modal\">\n          <div class=\"header\">Header</div>\n          <div class=\"content\">\n            <p></p>\n            <p></p>\n            <p></p>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">\n        Image Content\n        <span class=\"ui teal label\">\n          New in 2.0\n        </span>\n      </h4>\n      <p>A modal can contain image content</p>\n      <div class=\"ui ignored info message\">\n        Modals with image content must use the <code>image content</code> class in <code>2.0</code>. This is to make sure flex-box rules do not affect regular content.\n      </div>\n      <div class=\"code\" data-type=\"html\">\n        <div class=\"ui modal\">\n          <div class=\"header\">Header</div>\n          <div class=\"image content\">\n            <img class=\"image\">\n            <div class=\"description\">\n              <p></p>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">\n        Actions\n      </h4>\n      <p>A modal can contain a row of actions</p>\n      <div class=\"ui ignored info message\">\n        <p>Close actions are applied by default to all button actions, in addition an <code>onApprove</code> or <code>onDeny</code> callback will fire if the elements match either selector.</p>\n        <div class=\"code\" data-type=\"css\">\n          approve  : '.positive, .approve, .ok',\n          deny     : '.negative, .deny, .cancel'\n        </div>\n      </div>\n      <div class=\"ui ignored warning message\">\n        <p>To prevent a modal action from causing the modal to close, you can <code>return false;</code> from either callback.</p>\n      </div>\n      <div class=\"code\" data-type=\"html\">\n        <div class=\"ui modal\">\n          <div class=\"header\">Header</div>\n          <div class=\"content\">\n            <p></p>\n          </div>\n          <div class=\"actions\">\n            <div class=\"ui approve button\">Approve</div>\n            <div class=\"ui button\">Neutral</div>\n            <div class=\"ui cancel button\">Cancel</div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Variations</h2>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Full Screen</h4>\n      <p>A modal can use the entire size of the screen</p>\n      <div class=\"code\" data-demo=\"true\">\n      $('.fullscreen.modal')\n        .modal('show')\n      ;\n      </div>\n    </div>\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Size</h4>\n      <p>A modal can vary in size</p>\n      <div class=\"code\" data-demo=\"true\" data-eval=\"$('.mini.test.modal').not('.basic').modal('show')\">\n      $('.mini.modal')\n        .modal('show')\n      ;\n      </div>\n      <div class=\"code\" data-demo=\"true\" data-eval=\"$('.tiny.test.modal').not('.basic').modal('show')\">\n      $('.tiny.modal')\n        .modal('show')\n      ;\n      </div>\n      <div class=\"code\" data-demo=\"true\" data-eval=\"$('.small.test.modal').not('.basic').modal('show')\">\n      $('.small.modal')\n        .modal('show')\n      ;\n      </div>\n      <div class=\"code\" data-demo=\"true\" data-eval=\"$('.large.test.modal').modal('show')\">\n      $('.large.modal')\n        .modal('show')\n      ;\n      </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">\n        Scrolling Content\n        <div class=\"ui teal label\">New in 2.2.11</div>\n      </h4>\n      <p>A modal can use the entire size of the screen</p>\n      <div class=\"code\" data-type=\"html\" data-variation=\"scrolling\">\n        <div class=\"ui modal\">\n          <div class=\"header\">Header</div>\n          <div class=\"scrolling content\">\n            <p>Very long content goes here</p>\n          </div>\n        </div>\n      </div>\n      <div class=\"code\" data-demo=\"true\">\n      $('.ui.longer.modal')\n        .modal('show')\n      ;\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">States</h2>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Active</h4>\n      <p>An active modal is visible on the page</p>\n      <div class=\"visible code\" data-type=\"html\">\n        <div class=\"ui active modal\"></div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"examples\">\n\n    <h2 class=\"ui dividing header\">Examples</h2>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">\n        Disabling Vertical Centering\n        <div class=\"ui horizontal teal label\">New in 2.3</div>\n      </h4>\n      <p>When your modal has dynamic content, or multiple steps, it can make sense to disable centering so content doesn't jump around vertically when its height changes.</p>\n      <div class=\"code\" data-demo=\"true\">\n      $('.special.modal')\n        .modal({\n          centered: false\n        })\n        .modal('show')\n      ;\n      </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Scrolling Modal</h4>\n      <p>When your modal content exceeds the height of the browser the scrollable area will automatically expand to include just enough space for scrolling, without scrolling the page below.</p>\n      <div class=\"code\" data-demo=\"true\">\n      $('.long.modal')\n        .modal('show')\n      ;\n      </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Internally Scrolling Content</h4>\n      <p>You may prefer to have the content of your modal scroll itself, you can do this by using the <code>scrolling content</code> variation.</p>\n      <div class=\"code\" data-demo=\"true\">\n      $('.longer.modal')\n        .modal('show')\n      ;\n      </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Multiple Modals</h4>\n      <p>A modal can open a second modal. If you use <code>allowMultiple: true</code> parameter the second modal will  be opened on top of the first modal. Otherwise the modal will be closed before the second modal is opened.</p>\n      <div class=\"code\" data-demo=\"true\">\n      // initialize all modals\n      $('.coupled.modal')\n        .modal({\n          allowMultiple: true\n        })\n      ;\n      // open second modal on first modal buttons\n      $('.second.modal')\n        .modal('attach events', '.first.modal .button')\n      ;\n      // show first immediately\n      $('.first.modal')\n        .modal('show')\n      ;\n      </div>\n      <div class=\"code\" data-demo=\"true\">\n      $('.coupled.modal')\n        .modal({\n          allowMultiple: false\n        })\n      ;\n      // attach events to buttons\n      $('.second.modal')\n        .modal('attach events', '.first.modal .button')\n      ;\n      // show first now\n      $('.first.modal')\n        .modal('show')\n      ;\n      </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Forcing a Choice</h4>\n      <p>You can disable a modal's dimmer from being closed by click to force a user to make a choice</p>\n      <div class=\"code\" data-demo=\"true\">\n      $('.basic.test.modal')\n        .modal('setting', 'closable', false)\n        .modal('show')\n      ;\n      </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Approve / Deny Callbacks</h4>\n      <p>Modals will automatically tie approve deny callbacks to any positive/approve, negative/deny or ok/cancel buttons.\n      <div class=\"ui ignored info message\">\n        If <code>onDeny</code>, <code>onApprove</code> or <code>onHide</code> returns false it will prevent the modal from closing\n      </div>\n      <div class=\"code\" data-demo=\"true\">\n      $('.ui.basic.test.modal')\n        .modal({\n          closable  : false,\n          onDeny    : function(){\n            window.alert('Wait not yet!');\n            return false;\n          },\n          onApprove : function() {\n            window.alert('Approved!');\n          }\n        })\n        .modal('show')\n      ;\n      </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Attach events</h4>\n      <p>A modal can attach events to another element</p>\n      <div class=\"code\" data-demo=\"true\">\n      $('.test.modal')\n        .modal('attach events', '.test.button', 'show')\n      ;\n      </div>\n      <div class=\"ui primary test button\">Launch modal</div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Transitions</h4>\n      <p>A modal can use any named ui transition.</p>\n      <div class=\"ui animation selection dropdown\">\n        <input type=\"hidden\" name=\"transition\">\n        <div class=\"default text\">Choose transition</div>\n        <i class=\"dropdown icon\"></i>\n        <div class=\"menu\">\n          <div class=\"item\">Horizontal Flip</div>\n          <div class=\"item\">Vertical Flip</div>\n          <div class=\"item\">Fade Up</div>\n          <div class=\"item\">Fade</div>\n          <div class=\"item\">Scale</div>\n        </div>\n      </div>\n      <div class=\"ui clearing divider\"></div>\n      <div class=\"code\">\n      $('.selection.dropdown')\n        .dropdown({\n          onChange: function(value) {\n            $('.test.modal')\n              .modal('setting', 'transition', value)\n              .modal('show')\n            ;\n          }\n        })\n      ;\n      </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Dimmer Variations</h4>\n      <p>Modals can specify additional variations like <code>blurring</code> or <code>inverted</code> which adjust how the dimmer displays.</p>\n      <div class=\"ui ignored info message\">Full screen blurring modals are not performant for current-gen computers at widescreen resolutions with integrated graphics.</div>\n      <div class=\"code\" data-demo=\"true\" data-eval=\"$('.ui.inverted.modal').modal({inverted: true}).modal('show')\">\n      $('.ui.modal')\n        .modal({\n          inverted: true\n        })\n        .modal('show')\n      ;\n      </div>\n      <div class=\"code\" data-demo=\"true\" data-eval=\"$('.ui.standard.modal').modal({inverted: false, blurring: true}).modal('show')\">\n      $('.ui.modal')\n        .modal({\n          blurring: true\n        })\n        .modal('show')\n      ;\n      </div>\n    </div>\n\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"usage\">\n\n    <h2 class=\"ui dividing header\">Usage</h2>\n\n    <h3 class=\"ui header\">Initializing a modal</h3>\n    <p>A modal can be included anywhere on the page. On initialization a modal's current size will be cached, and the element will be detached from the DOM and moved inside a dimmer.</p>\n    <div class=\"ui info message\">\n      <div class=\"header\">Why move modal content?</div>\n      <p>Having a modal inside the page dimmer allows for 3D animations without having the 3D perspective settings alter the rest of the page content. Additionally, content outside the dimmer can be blurred or altered without affecting the modal's content.</p>\n      <p>If you need to have your modal stay in its current location you can preserve its position using the setting <code>detachable: false</code></p>\n    </div>\n    <div class=\"code\" data-type=\"javascript\">\n      $('.ui.modal')\n        .modal()\n      ;\n    </div>\n    <div class=\"code\" data-type=\"html\">\n      <div class=\"ui modal\">\n        <i class=\"close icon\"></i>\n        <div class=\"header\">\n          Modal Title\n        </div>\n        <div class=\"image content\">\n          <div class=\"image\">\n            An image can appear on left or an icon\n          </div>\n          <div class=\"description\">\n            A description can appear on the right\n          </div>\n        </div>\n        <div class=\"actions\">\n          <div class=\"ui button\">Cancel</div>\n          <div class=\"ui button\">OK</div>\n        </div>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Behavior</h2>\n\n    <p>All the following behaviors can be called using the syntax:</p>\n    <div class=\"code\">\n    $('.ui.modal')\n      .modal('behavior name', argumentOne, argumentTwo)\n    ;\n    </div>\n\n    <table class=\"ui definition celled sortable table segment\">\n      <thead>\n        <tr>\n          <th>Behavior</th>\n          <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>show</td>\n          <td>Shows the modal</td>\n        </tr>\n        <tr>\n          <td>hide</td>\n          <td>Hides the modal</td>\n        </tr>\n        <tr>\n          <td>toggle</td>\n          <td>Toggles the modal</td>\n        </tr>\n        <tr>\n          <td>refresh</td>\n          <td>Refreshes centering of modal on page</td>\n        </tr>\n        <tr>\n          <td>show dimmer</td>\n          <td>Shows associated page dimmer</td>\n        </tr>\n        <tr>\n          <td>hide dimmer</td>\n          <td>Hides associated page dimmer</td>\n        </tr>\n        <tr>\n          <td>hide others</td>\n          <td>Hides all modals not selected modal in a dimmer</td>\n        </tr>\n        <tr>\n          <td>hide all</td>\n          <td>Hides all visible modals in the same dimmer</td>\n        </tr>\n        <tr>\n          <td>cache sizes</td>\n          <td>Caches current modal size</td>\n        </tr>\n        <tr>\n          <td>can fit</td>\n          <td>Returns whether the modal can fit on the page</td>\n        </tr>\n        <tr>\n          <td>is active</td>\n          <td>Returns whether the modal is active</td>\n        </tr>\n        <tr>\n          <td>set active</td>\n          <td>Sets modal to active</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"settings\">\n\n    <h2 class=\"ui dividing header\">Settings</h2>\n\n    <h3 class=\"ui header\">Modal Settings\n      <div class=\"sub header\">Modal settings modify the modal's behavior</div>\n    </h3>\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n          <th>Setting</th>\n          <th class=\"four wide\">Default</th>\n          <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>detachable</td>\n          <td>true</td>\n          <td>If set to false will prevent the modal from being moved to inside the dimmer</td>\n        </tr>\n        <tr>\n          <td>useFlex</td>\n          <td>'auto'</td>\n          <td>Auto will automatically use flex in browsers that support absolutely positioned elements inside flex containers. Setting to true/false will force this setting for all browsers.</td>\n        </tr>\n        <tr>\n          <td>autofocus</td>\n          <td>true</td>\n          <td>When true, the first form input inside the modal will receive focus when shown.  Set this to false to prevent this behavior.</td>\n        </tr>\n        <tr>\n          <td>observeChanges</td>\n          <td>false</td>\n          <td>Whether any change in <code>modal</code> DOM should automatically refresh cached positions</td>\n        </tr>\n        <tr>\n          <td>allowMultiple</td>\n          <td>false</td>\n          <td>If set to true will not close other visible modals when opening a new one</td>\n        </tr>\n        <tr>\n          <td>keyboardShortcuts</td>\n          <td>true</td>\n          <td>Whether to automatically bind keyboard shortcuts</td>\n        </tr>\n        <tr>\n          <td>offset</td>\n          <td>0</td>\n          <td>A vertical offset to allow for content outside of modal, for example a close button, to be centered.</td>\n        </tr>\n        <tr>\n          <td>context</td>\n          <td>\n          body\n          </td>\n          <td>Selector or jquery object specifying the area to dim</td>\n        </tr>\n        <tr>\n          <td>closable</td>\n          <td>\n          true\n          </td>\n          <td>Setting to false will not allow you to close the modal by clicking on the dimmer</td>\n        </tr>\n        <tr>\n          <td>dimmerSettings</td>\n          <td>\n          <div class=\"code\" data-type=\"javascript\">\n          {\n            closable : false,\n            useCSS   : true\n          }\n          </div>\n          </td>\n          <td>You can specify custom settings to extend <a href=\"/modules/dimmer.html\">UI dimmer</a></td>\n        </tr>\n        <tr>\n          <td>transition</td>\n          <td>\n            scale\n          </td>\n          <td>Named transition to use when animating menu in and out, full list can be found in <a href=\"/modules/transition.html\">ui transitions</a> docs.</td>\n        </tr>\n        <tr>\n          <td>duration</td>\n          <td>\n            400\n          </td>\n          <td>Duration of animation</td>\n        </tr>\n        <tr>\n          <td>queue</td>\n          <td>\n            false\n          </td>\n          <td>Whether additional animations should queue</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <div class=\"ui horizontal section icon divider\"><i class=\"icon setting\"></i></div>\n    <h3 class=\"ui header\">Callbacks\n      <div class=\"sub header\">Callbacks specify a function to occur after a specific behavior.</div>\n    </h3>\n\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n          <th class=\"four wide\">Setting</th>\n          <th>Context</th>\n          <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>onShow</td>\n          <td>Modal</td>\n          <td>Is called when a modal starts to show.</td>\n        </tr>\n        <tr>\n          <td>onVisible</td>\n          <td>Modal</td>\n          <td>Is called after a modal has finished showing animating.</td>\n        </tr>\n        <tr>\n          <td>onHide($element)</td>\n          <td>Modal</td>\n          <td>Is called after a modal starts to hide. If the function returns <code>false</code>, the modal will not hide.</td>\n        </tr>\n        <tr>\n          <td>onHidden</td>\n          <td>Modal</td>\n          <td>Is called after a modal has finished hiding animation.</td>\n        </tr>\n        <tr>\n          <td>onApprove($element)</td>\n          <td>Click</td>\n          <td>Is called after a positive, approve or ok button is pressed. If the function returns <code>false</code>, the modal will not hide.</td>\n        </tr>\n        <tr>\n          <td>onDeny($element)</td>\n          <td>Modal</td>\n          <td>Is called after a negative, deny or cancel button is pressed. If the function returns <code>false</code> the modal will not hide.</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <h3 class=\"ui header\">DOM Settings\n      <div class=\"sub header\">DOM settings specify how this module should interface with the DOM</div>\n    </h3>\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n        <th>Setting</th>\n        <th class=\"four wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>namespace</td>\n          <td>modal</td>\n          <td>Event namespace. Makes sure module teardown does not effect other events attached to an element.</td>\n        </tr>\n        <tr>\n          <td>selector</td>\n          <td colspan=\"2\">\n            <div class=\"code\">\n      selector    : {\n        close    : '.close, .actions .button',\n        approve  : '.actions .positive, .actions .approve, .actions .ok',\n        deny     : '.actions .negative, .actions .deny, .actions .cancel'\n      },\n            </div>\n          </td>\n        </tr>\n        <tr>\n          <td>className</td>\n          <td colspan=\"2\">\n            <div class=\"code\">\n      className : {\n        active    : 'active',\n        scrolling : 'scrolling'\n      }\n            </div>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n\n    <h3 class=\"ui header\">Debug Settings\n      <div class=\"sub header\">Debug settings controls debug output to the console</div>\n    </h3>\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n          <th>Setting</th>\n          <th class=\"four wide\">Default</th>\n          <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>name</td>\n          <td>Modal</td>\n          <td>Name used in debug logs</td>\n        </tr>\n        <tr>\n          <td>debug</td>\n          <td>False</td>\n          <td>Provides standard debug output to console</td>\n        </tr>\n        <tr>\n          <td>performance</td>\n          <td>True</td>\n          <td>Provides standard debug output to console</td>\n        </tr>\n        <tr>\n          <td>verbose</td>\n          <td>True</td>\n          <td>Provides ancillary debug output to console</td>\n        </tr>\n        <tr>\n          <td>error</td>\n          <td colspan=\"2\">\n            <div class=\"code\">\n      error   : {\n        method    : 'The method you called is not defined.'\n      }\n            </div>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/modules/nag.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : ''\nelement     : 'nag'\nelementType : 'module'\nstandalone  : true\n\ntitle       : 'Nag'\ndescription : 'A nag is an important message that persists until dismissed by a user'\ntype        : 'Future Module'\n\n---\n\n<%- @partial('header') %>\n\n<div class=\"main container\">\n\n  <div class=\"ui active tab\" data-tab=\"overview\">\n\n    <h2 class=\"ui dividing header\">Current Progress</h2>\n    <div class=\"ui indicating progress\">\n      <div class=\"bar\" style=\"width: 60%;\">\n        <div class=\"progress\">60%</div>\n      </div>\n      <div class=\"label\">Needs Documentation / Re-coding</div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Usage</h2>\n    <div class=\"no example\">\n      <h4 class=\"ui header\"></h4>\n      <p>Nags are used to present a user with a one time message which will persist until a user acknowledges the message. This can be used for providing notices like the site's use of cookies, an important change to a site like a security breach.</p>\n      <p>Semantic's nag component provides built in options for ensuring a nag is only displayed once. You can trigger an API endpoint on dismissal, in order to store a value in your database, or you can use localstorage or cookie value to make sure that a particular computer does not receive the nag again.</p>\n    </div>\n\n    <h2 class=\"ui dividing header\">Example</h2>\n\n    <div class=\"code\" data-type=\"javascript\" data-demo=\"true\">\n    // Wont re-appear unless cleared\n    $('.cookie.nag')\n      .nag('show')\n    ;\n    </div>\n    <div class=\"code\" data-type=\"javascript\" data-demo=\"true\">\n    // Clears cookie so nag shows again\n    $('.cookie.nag')\n      .nag('clear')\n    ;\n    </div>\n    <div class=\"ui code\" data-type=\"html\" data-preview=\"true\">\n      <div class=\"ui inline cookie nag\">\n        <span class=\"title\">\n          We use cookies to ensure you get the best experience on our website\n        </span>\n        <i class=\"close icon\"></i>\n      </div>\n    </div>\n    <div class=\"evaluated code\" data-type=\"javascript\">\n    // Automatically shows on init if cookie isnt set\n    $('.cookie.nag')\n      .nag({\n        key      : 'accepts-cookies',\n        value    : true\n      })\n    ;\n    </div>\n\n    <h2 class=\"ui dividing header\">Support Development</h2>\n    <div class=\"no example\">\n\n      <p>You can help support the future development of the Semantic UI project, and help boost the priority of this component by donating to Semantic UI development.</p>\n\n      <p>Please be sure to leave a note in the comments to indicate that you are interested in the development of this particular component.</p>\n\n    </div>\n\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/modules/popup.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'popup'\nstandalone  : true\n\nelement     : 'popup'\nelementType : 'module'\n\ntitle       : 'Popup'\ndescription : 'A popup displays additional information on top of a page'\ntype        : 'UI Module'\n\nthemes      : ['Default']\n---\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/modules/popup.less\" />\n<script src=\"/javascript/popup.js\"></script>\n\n<%- @partial('header', { tabs: 'module' }) %>\n<div class=\"main ui container\">\n\n  <div class=\"ui active tab\" data-tab=\"definition\">\n\n    <h2 class=\"ui dividing header\">\n      Types\n    </h2>\n\n    <h3 class=\"ui header\">Javascript</h3>\n\n    <div class=\"ui ignored info message\">\n      Popup includes both a javascript version (with a full featureset) and a limited CSS only version, which can be useful in pages that use many popups, or with libraries like React or Meteor to avoid handling DOM lifecycle.\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Popup</h4>\n      <p>An element can specify popup content to appear</p>\n      <div class=\"ui icon button\" data-content=\"Add users to your feed\">\n        <i class=\"add icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Titled</h4>\n      <p>An element can specify popup content with a title</p>\n      <img src=\"/images/avatar/small/elliot.jpg\" data-title=\"Elliot Fu\" data-content=\"Elliot has been a member since July 2012\" class=\"ui avatar image\">\n      <img src=\"/images/avatar/small/stevie.jpg\" data-title=\"Stevie Feliciano\" data-content=\"Stevie has been a member since August 2013\" class=\"ui avatar image\">\n      <img src=\"/images/avatar/small/matt.jpg\" data-title=\"Matt\" data-content=\"Matt has been a member since July 2014\" class=\"ui avatar image\">\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">HTML</h4>\n      <p>An element can specify HTML for a popup</p>\n\n      <div class=\"ui card\" data-html=\"<div class='header'>User Rating</div><div class='content'><div class='ui star rating'><i class='active icon'></i><i class='active icon'></i><i class='active icon'></i><i class='active icon'></i><i class='active icon'></i></div></div>\">\n        <div class=\"image\">\n          <img src=\"/images/movies/totoro-horizontal.jpg\">\n        </div>\n        <div class=\"content\">\n          <div class=\"header\">My Neighbor Totoro</div>\n          <div class=\"description\">\n            Two sisters move to the country with their father in order to be closer to their hospitalized mother, and discover the surrounding trees are inhabited by magical spirits.\n          </div>\n        </div>\n        <div class=\"ui two bottom attached buttons\">\n          <div class=\"ui button\">\n            <i class=\"add icon\"></i>\n            Queue\n          </div>\n          <div class=\"ui primary button\">\n            <i class=\"play icon\"></i>\n            Watch\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"existing example\">\n      <h4 class=\"ui header\">Pre-Existing</h4>\n      <p>An element can display a popup that is already included in the page</p>\n\n      <div class=\"ui card\">\n        <div class=\"image\">\n          <img src=\"/images/movies/watchmen-horizontal.jpg\">\n        </div>\n        <div class=\"content\">\n          <div class=\"header\">Watchmen</div>\n          <div class=\"description\">\n            In a gritty and alternate 1985 the glory days of costumed vigilantes have been brought to a close by a government crackdown, but after one of the masked veterans is brutally murdered an investigation into the killer is initiated.\n          </div>\n        </div>\n        <div class=\"ui two bottom attached buttons\">\n          <div class=\"ui button\">\n            <i class=\"add icon\"></i>\n            Queue\n          </div>\n          <div class=\"ui primary button\">\n            <i class=\"play icon\"></i>\n            Watch\n          </div>\n        </div>\n      </div>\n      <div class=\"ui popup\">\n        <div class='header'>User Rating</div>\n        <div class=\"ui star rating\" data-rating=\"3\"></div>\n      </div>\n    </div>\n\n    <h3 class=\"ui header\">No Javascript</h3>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Tooltip\n        <div class=\"ui teal horizontal label\">New in 2.2</div>\n      </h4>\n      <p>An element can specify a simple tooltip that can appear without javascript</p>\n      <div class=\"ui warning ignored message\">\n        Tooltips use an element's <code>:before</code> and <code>:after</code> pseudo classes. Elements like <code>icon</code> that already use these classes for styling will need to have the tooltips to a wrapping element, like a button, or a <code>span</code> to make sure tooltips work correctly.\n      </div>\n      <div class=\"ui icon button\" data-tooltip=\"Add users to your feed\">\n        <i class=\"add icon\"></i>\n      </div>\n      <div class=\"ui icon button\" data-tooltip=\"Add users to your feed\" data-inverted>\n        <i class=\"add icon\"></i>\n      </div>\n    </div>\n    <div class=\"another example\">\n      <div class=\"ui button\" data-tooltip=\"Add users to your feed\" data-position=\"top left\">\n        Top Left\n      </div>\n      <div class=\"ui button\" data-tooltip=\"Add users to your feed\" data-position=\"top center\">\n        Top Center\n      </div>\n      <div class=\"ui button\" data-tooltip=\"Add users to your feed\" data-position=\"top right\">\n        Top Right\n      </div>\n      <div class=\"ui divider\"></div>\n      <div class=\"ui button\" data-tooltip=\"Add users to your feed\" data-position=\"bottom left\">\n        Bottom Left\n      </div>\n      <div class=\"ui button\" data-tooltip=\"Add users to your feed\" data-position=\"bottom center\">\n        Bottom Center\n      </div>\n      <div class=\"ui button\" data-tooltip=\"Add users to your feed\" data-position=\"bottom right\">\n        Bottom Right\n      </div>\n      <div class=\"ui divider\"></div>\n      <div class=\"ui button\" data-tooltip=\"Add users to your feed\" data-position=\"right center\">\n        Right Center\n      </div>\n      <div class=\"ui button\" data-tooltip=\"Add users to your feed\" data-position=\"left center\">\n        Left Center\n      </div>\n    </div>\n    <div class=\"another example\">\n      <div class=\"ui button\" data-inverted data-tooltip=\"Add users to your feed\" data-position=\"top left\">\n        Top Left\n      </div>\n      <div class=\"ui button\" data-inverted data-tooltip=\"Add users to your feed\" data-position=\"top center\">\n        Top Center\n      </div>\n      <div class=\"ui button\" data-inverted data-tooltip=\"Add users to your feed\" data-position=\"top right\">\n        Top Right\n      </div>\n      <div class=\"ui divider\"></div>\n      <div class=\"ui button\" data-inverted data-tooltip=\"Add users to your feed\" data-position=\"bottom left\">\n        Bottom Left\n      </div>\n      <div class=\"ui button\" data-inverted data-tooltip=\"Add users to your feed\" data-position=\"bottom center\">\n        Bottom Center\n      </div>\n      <div class=\"ui button\" data-inverted data-tooltip=\"Add users to your feed\" data-position=\"bottom right\">\n        Bottom Right\n      </div>\n      <div class=\"ui divider\"></div>\n      <div class=\"ui button\" data-inverted data-tooltip=\"Add users to your feed\" data-position=\"right center\">\n        Right Center\n      </div>\n      <div class=\"ui button\" data-inverted data-tooltip=\"Add users to your feed\" data-position=\"left center\">\n        Left Center\n      </div>\n    </div>\n\n\n    <h2 class=\"ui dividing header\">Variations</h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Basic</h4>\n      <p>A popup can provide more basic formatting</p>\n      <div class=\"ui icon button\" data-content=\"The default theme's basic popup removes the pointing arrow.\" data-variation=\"basic\">\n        <i class=\"add icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Width</h4>\n      <p>A popup can be extra wide to allow for longer content</p>\n      <i class=\"circular heart icon link\" data-content=\"Hello. This is a wide pop-up which allows for lots of content with additional space. You can fit a lot of words here and the paragraphs will be pretty wide.\" data-variation=\"wide\"></i>\n      <i class=\"circular heart icon link\" data-content=\"Hello. This is a very wide pop-up which allows for lots of content with additional space. You can fit a lot of words here and the paragraphs will be pretty wide.\" data-variation=\"very wide\"></i>\n    </div>\n\n    <div class=\"fluid example\">\n      <h4 class=\"ui header\">Fluid</h4>\n      <p>A fluid popup will take up the entire width of its offset container</p>\n      <div class=\"ui button\">Show fluid popup</div>\n      <div class=\"ui fluid popup\">\n        <div class=\"ui four column divided center aligned grid\">\n          <div class=\"column\">1</div>\n          <div class=\"column\">2</div>\n          <div class=\"column\">3</div>\n          <div class=\"column\">4</div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Size</h4>\n      <p>A popup can vary in size</p>\n      <i class=\"circular heart icon link\" data-content=\"Hello. This is a mini popup\" data-variation=\"mini\"></i>\n      <i class=\"circular heart icon link\" data-content=\"Hello. This is a tiny popup\" data-variation=\"tiny\"></i>\n      <i class=\"circular heart icon link\" data-content=\"Hello. This is a small popup\" data-variation=\"small\"></i>\n      <i class=\"circular heart icon link\" data-content=\"Hello. This is a large popup\" data-variation=\"large\"></i>\n      <i class=\"circular heart icon link\" data-content=\"Hello. This is a huge popup\" data-variation=\"huge\"></i>\n    </div>\n\n    <div class=\"fitted example\">\n      <h4 class=\"ui header\">Flowing</h4>\n      <p>A popup can have no maximum width and continue to flow to fit its content</p>\n      <div class=\"ui button\">Show flowing popup</div>\n      <div class=\"ui flowing popup\">\n        <div class=\"ui three column divided center aligned grid\">\n          <div class=\"column\">\n            <h4 class=\"ui header\">Basic Plan</h4>\n            <p><b>2</b> projects, $10 a month</p>\n            <div class=\"ui button\">Choose</div>\n          </div>\n          <div class=\"column\">\n            <h4 class=\"ui header\">Business Plan</h4>\n            <p><b>5</b> projects, $20 a month</p>\n            <div class=\"ui button\">Choose</div>\n          </div>\n          <div class=\"column\">\n            <h4 class=\"ui header\">Premium Plan</h4>\n            <p><b>8</b> projects, $25 a month</p>\n            <div class=\"ui button\">Choose</div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Inverted</h4>\n      <p>A popup can have its colors inverted</p>\n      <i class=\"circular heart icon link\" data-content=\"Hello. This is an inverted popup\" data-variation=\"inverted\"></i>\n      <div class=\"ui icon button\" data-tooltip=\"Hello. This is an inverted popup\" data-position=\"top left\" data-inverted>\n        <i class=\"add icon\"></i>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"usage\">\n\n    <h2 class=\"ui dividing header\">Usage</h2>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Initializing A Popup</h4>\n      <p>A popup is initialized on an activating element</p>\n      <div class=\"code\">\n      $('.activating.element')\n        .popup()\n      ;\n      </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Using a Pre-existing Popup</h4>\n      <p>Using a pre-existing popup allows for you to include complex HTML inside your popup.<p>\n      <p>If you include your popup on page load as an adjacent sibling element to your activating element it can be found automatically.</p>\n      <p>To instruct popup to look inline for your popup element you can initialize it with the <code>inline</code> parameter</p>\n      <div class=\"code\" data-type=\"javascript\">\n        $('.button')\n          .popup({\n            inline: true\n          })\n        ;\n      </div>\n      <div class=\"code\" data-type=\"html\">\n        <div class=\"ui button\">Activator</div>\n        <div class=\"ui special popup\">\n          <div class=\"header\">Custom Header</div>\n          <div class=\"ui button\">Click Me</div>\n        </div>\n      </div>\n    </div>\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Using a Pre-existing Popup Anywhere</h4>\n      <p>If you cannot include your popup element as a sibling element, you can specify a custom selector to retrieve your popup</p>\n      <div class=\"code\" data-type=\"javascript\">\n        $('.button')\n          .popup({\n            popup: '.special.popup'\n          })\n        ;\n      </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Specifying Content In Metadata</h4>\n      <p>Frequently used settings like, title, content, HTML, or offset or variation, can be included in HTML metadata<p>\n      <div class=\"ui info icon ignored message\">\n        <i class=\"info icon\"></i>\n        <div class=\"content\">\n          <div class=\"header\">Specifying Content</div>\n          <p>Popups can specify content in three ways:<p>\n          <ul class=\"list\">\n            <li>Using HTML <code>title</code> attribute</li>\n            <li>Using <code>data-content</code> attribute</li>\n            <li>Using <code>data-html</code> for specific HTML</li>\n            <li>Using the content property in the initialization of the popup</li>\n          </ul>\n          <p>Popups can also specify some other frequently used settings using metadata<p>\n          <ul class=\"list\">\n            <li><code>data-variation</code>: the popup variation to use </li>\n            <li><code>data-offset</code>: a pixel offset correction for popup</li>\n            <li><code>data-position</code>: the side to position popup on</li>\n          </ul>\n        </div>\n      </div>\n      <div class=\"code\" data-type=\"html\">\n        <i class=\"heart icon\" title=\"Hello I am a popup\"></i>\n      </div>\n    </div>\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Specifying Content In Javascript</h4>\n      <div class=\"code\">\n      $('.ui.popup')\n        .popup({\n          title   : 'Popup Title',\n          content : 'Hello I am a popup'\n        })\n      ;\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Behavior</h2>\n\n    <p>All the following behaviors can be called using the syntax:</p>\n    <div class=\"code\">\n    $('.your.element')\n      .popup('behavior name', argumentOne, argumentTwo)\n    ;\n    </div>\n\n    <table class=\"ui definition celled sortable table segment\">\n      <thead>\n        <th>Behavior</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>show</td>\n          <td>Shows popup</td>\n        </tr>\n        <tr>\n          <td>hide</td>\n          <td>Hides popup</td>\n        </tr>\n        <tr>\n          <td>hide all</td>\n          <td>Hides all visible pop ups on the page</td>\n        </tr>\n        <tr>\n          <td>get popup</td>\n          <td>Returns current popup dom element</td>\n        </tr>\n        <tr>\n          <td>change content(html)</td>\n          <td>Changes current popup content</td>\n        </tr>\n        <tr>\n          <td>toggle</td>\n          <td>Toggles visibility of popup</td>\n        </tr>\n        <tr>\n          <td>is visible</td>\n          <td>Returns whether popup is visible</td>\n        </tr>\n        <tr>\n          <td>is hidden</td>\n          <td>Returns whether popup is hidden</td>\n        </tr>\n        <tr>\n          <td>exists</td>\n          <td>Returns whether popup is created and inserted into the page</td>\n        </tr>\n        <tr>\n          <td>reposition</td>\n          <td>Adjusts popup when content size changes (only necessary for centered popups)</td>\n        </tr>\n        <tr>\n          <td>set position(position)</td>\n          <td>Repositions a popup</td>\n        </tr>\n        <tr>\n          <td>destroy</td>\n          <td>Removes popup from the page and removes all events</td>\n        </tr>\n        <tr>\n          <td>remove popup</td>\n          <td>Removes popup from the page</td>\n        </tr>\n      </tbody>\n    </table>\n\n  </div>\n\n\n  <div class=\"ui tab\" data-tab=\"examples\">\n\n    <h2 class=\"ui dividing header\">Examples</h2>\n\n    <div class=\"boundary example\">\n      <h4 class=\"ui header\">Specifying Popup Boundaries\n        <div class=\"ui horizontal teal label\">New in 2.2</div>\n      </h4>\n      <p>Popups now include a new setting <code>boundary</code> that let you specify that a popup should not escape the boundary of another section. This can be useful in complex paned layouts</p>\n      <p>Additionally popups can now specify a scroll context, to allow for scroll containers other than window to cause a clicked popup to hide on scroll.</p>\n      <div class=\"evaluated code\" data-type=\"javascript\">\n        $('.boundary.example .button')\n          .popup({\n            boundary: '.boundary.example .segment'\n          })\n        ;\n      </div>\n\n      <div class=\"ui segment\">\n        <div class=\"ui button\" data-content=\"This popup is very long but wont escape the segment it is placed in\">Hover Me</div>\n        <p>Normally this popup would open in the default position <code>top center</code> but because this would escape the boundaries of the segment it will search other available positions until it can find one to place the popup while staying inside the segment</p>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Wide Popup Menu</h4>\n      <p>An easier way to display complex content, like a wide popup menu is to have the popup content as a pre-  existing part of your page's HTML.</p>\n      <p>Using the setting <code>inline: true</code> will let Semantic know to display the next sibling <code>ui  popup</code> element after the activator.</p>\n\n      <p>Tweaking settings like the delay for show, and hide, and making the menu hoverable will help it function   more like a dropdown menu</p>\n\n      <div class=\"evaluated code\">\n      $('.example .menu .browse')\n        .popup({\n          inline     : true,\n          hoverable  : true,\n          position   : 'bottom left',\n          delay: {\n            show: 300,\n            hide: 800\n          }\n        })\n      ;\n      </div>\n      <div class=\"ui menu\">\n        <a class=\"browse item\">\n          Browse\n          <i class=\"dropdown icon\"></i>\n        </a>\n        <div class=\"ui fluid popup\">\n          <div class=\"ui four column relaxed divided grid\">\n            <div class=\"column\">\n              <h4 class=\"ui header\">Fabrics</h4>\n              <div class=\"ui link list\">\n                <a class=\"item\">Cashmere</a>\n                <a class=\"item\">Linen</a>\n                <a class=\"item\">Cotton</a>\n                <a class=\"item\">Viscose</a>\n              </div>\n            </div>\n            <div class=\"column\">\n              <h4 class=\"ui header\">Size</h4>\n              <div class=\"ui link list\">\n                <a class=\"item\">Small</a>\n                <a class=\"item\">Medium</a>\n                <a class=\"item\">Large</a>\n                <a class=\"item\">Plus Sizes</a>\n              </div>\n            </div>\n            <div class=\"column\">\n              <h4 class=\"ui header\">Colors</h4>\n              <div class=\"ui link list\">\n                <a class=\"item\">Neutrals</a>\n                <a class=\"item\">Brights</a>\n                <a class=\"item\">Pastels</a>\n              </div>\n            </div>\n            <div class=\"column\">\n              <h4 class=\"ui header\">Types</h4>\n              <div class=\"ui link list\">\n                <a class=\"item\">Knitwear</a>\n                <a class=\"item\">Outerwear</a>\n                <a class=\"item\">Pants</a>\n                <a class=\"item\">Shoes</a>\n              </div>\n            </div>\n          </div>\n        </div>\n        <a class=\"item\">\n          <i class=\"cart icon\"></i>\n          Checkout\n        </a>\n      </div>\n\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Specifying a selector for a popup</h4>\n      <p>If its not possible to include the popup content as the next sibling, you can also specify a custom selector to help link the popup contents to its activator.</p>\n      <div class=\"ui warning ignored message\">\n        Using an <code>inline</code> popup may require specifying a <code>min-width</code> on your popup, if your popup content will appear outside the boundaries of its parent element.\n      </div>\n      <div class=\"evaluated code\">\n      $('.example .custom.button')\n        .popup({\n          popup : $('.custom.popup'),\n          on    : 'click'\n        })\n      ;\n      </div>\n      <div class=\"some-wrapping-div\">\n        <div class=\"ui custom button\">Show custom popup</div>\n      </div>\n      <div class=\"ui custom popup\">\n        I'm not on the same level as the button, but i can still be found.\n      </div>\n    </div>\n\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Specifying a trigger event</h4>\n      <p>A popup trigger event can be specified</p>\n      <div class=\"evaluated code\">\n    $('.example .teal.button')\n      .popup({\n        on: 'click'\n      })\n    ;\n    $('.example input')\n      .popup({\n        on: 'focus'\n      })\n    ;\n      </div>\n      <div class=\"ui teal button\" data-title=\"Using click events\" data-content=\"Clicked popups will close if you click away, but not if you click inside the popup\">Click Me</div>\n      <div class=\"ui icon input\">\n        <input type=\"text\" placeholder=\"Focus me...\" data-content=\"You can use me to enter data\">\n        <i class=\"search icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Target Element</h4>\n      <p>A popup can specify a different target element than itself to show a popup</p>\n      <div class=\"evaluated code\">\n      $('.test.button')\n        .popup({\n          position : 'right center',\n          target   : '.test.image',\n          title    : 'My favorite dog',\n          content  : 'My favorite dog would like other dogs as much as themselves'\n        })\n      ;\n      </div>\n      <div class=\"ui green test button\">Hover Me</div>\n      <div class=\"ui divider\"></div>\n      <img class=\"medium ui test image\" src=\"/images/wireframe/image.png\">\n    </div>\n    <div class=\"inline example\">\n      <h4 class=\"ui header\">Inline or relative to page</h4>\n      <p>A popup can either be inserted directly after an element, or added as a child element to the page's <code>body</code>.</p>\n      <div class=\"ui ignored positive message\">\n        Using inline will allow your popups to go places other popups can't go, like inside <code>fixed</code> or <code>absolutely</code> positioned elements\n      </div>\n      <div class=\"ui ignored info message\">\n        If you want to style each popup individually it makes sense to keep popup <code>inline: true</code>. If you are worried that your pop up might mistakingly inherit styles that it shouldn't, you should set <code>inline: false</code>.\n      </div>\n      <div class=\"code\" data-type=\"css\">\n      /* this will only style the popup if inline is true */\n      .example .popup {\n        color: #FF0000;\n      }\n      </div>\n      <div class=\"evaluated code\">\n      $('.inline.icon')\n        .popup({\n          inline: true\n        })\n      ;\n      </div>\n      <i class=\"heart circular icon link\" data-content=\"This is a child element to the page's body and will not be styled\" ></i>\n      <i class=\"mail inline circular icon link\" data-content=\"This popup was inserted inline and will be styled\" ></i>\n\n    </div>\n    <div class=\"position example\">\n      <h4 class=\"ui header\">Positioning</h4>\n      <p>A popup can be positioned to any side of an element. If space is not available, it will automatically search for a similar alternative position to use.</p>\n      <div class=\"ui segment\">\n        <i class=\"square inverted red heart icon link\" data-content=\"Top Left\" data-position=\"top left\"></i>\n        <i class=\"square inverted red heart icon link\" data-content=\"Top Center\" data-position=\"top center\"></i>\n        <i class=\"square inverted red heart icon link\" data-content=\"Top Right\" data-position=\"top right\"></i>\n        <i class=\"square inverted red heart icon link\" data-content=\"Right Center\" data-position=\"right center\"></i>\n        <i class=\"square inverted red heart icon link\" data-content=\"Bottom Right\" data-position=\"bottom right\"></i>\n        <i class=\"square inverted red heart icon link\" data-content=\"Bottom Center\" data-position=\"bottom center\"></i>\n        <i class=\"square inverted red heart icon link\" data-content=\"Bottom Left\" data-position=\"bottom left\"></i>\n        <i class=\"square inverted red heart icon link\" data-content=\"Left Center\" data-position=\"left center\"></i>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Specifying an offset</h4>\n      <p>A popup position can be adjusted manually by specifying an offset property using <code>data-offset=\"value\"</code></p>\n\n      <i class=\"heart circular icon link\" data-offset=\"50\" data-content=\"As expected this popup is way off to the right\"></i>\n    </div>\n\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Transitions</h4>\n      <p>A popup can use any named ui transition.</p>\n      <i class=\"large demo home circular link icon\" data-title=\"Home\" data-content=\"The place where you keep your dog\"></i> Home\n\n      <div class=\"ui divider\"></div>\n\n      <div class=\"ui selection dropdown\">\n        <input type=\"hidden\" name=\"transition\">\n        <i class=\"dropdown icon\"></i>\n        <div class=\"default text\">Choose a transition</div>\n        <div class=\"menu\">\n          <div class=\"item\">Horizontal Flip</div>\n          <div class=\"item\">Vertical Flip</div>\n          <div class=\"item\">Fade Up</div>\n          <div class=\"item\">Fade</div>\n          <div class=\"item\">Scale</div>\n        </div>\n      </div>\n      <div class=\"ui clearing divider\"></div>\n      <div class=\"evaluated code\">\n    $('.selection')\n      .dropdown({\n        onChange: function(value) {\n          $('.demo.icon')\n            .popup({\n              transition: value\n            })\n            .popup('toggle')\n          ;\n        }\n      })\n    ;\n      </div>\n    </div>\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"settings\">\n\n    <h3 class=\"ui header\">\n      Popup Settings\n      <div class=\"sub header\">Settings to configure popup behavior</div>\n    </h3>\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <th>Setting</th>\n        <th class=\"four wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>popup</td>\n          <td>false</td>\n          <td>Can specify a DOM element that should be used as the popup. This is useful for including a pre-formatted popup.</td>\n        </tr>\n        <tr>\n          <td>exclusive</td>\n          <td>false</td>\n          <td>Whether all other popups should be hidden when this popup is opened</td>\n        </tr>\n        <tr>\n          <td>movePopup</td>\n          <td>true</td>\n          <td>Whether to move popup to same offset container as target element when <code>popup</code> already exists on the page. Using a popup inside of an element without <code>overflow:visible</code>, like a sidebar, may require you to set this to <code>false</code></td>\n        </tr>\n        <tr>\n          <td>observeChanges</td>\n          <td>true</td>\n          <td>Whether popup should attach <code>mutationObservers</code> to automatically run <code>destroy</code> when the element is removed from the page's DOM.</td>\n        </tr>\n        <tr>\n          <td>boundary</td>\n          <td>window</td>\n          <td>When the popup surpasses the boundary of this element, it will attempt to find another display position.</td>\n        </tr>\n        <tr>\n          <td>context</td>\n          <td>body</td>\n          <td>Selector or jquery object specifying where the popup should be created.</td>\n        </tr>\n        <tr>\n          <td>scrollContext</td>\n          <td>window</td>\n          <td>Will automatically hide a popup on scroll event in this context</td>\n        </tr>\n        <tr>\n          <td>jitter</td>\n          <td>2</td>\n          <td>Number of pixels that a popup is allowed to appear outside the boundaries of its context. This allows for permissible rounding errors when an element is against the edge of its <code>context</code>.</td>\n        </tr>\n        <tr>\n          <td>position</td>\n          <td>top left</td>\n          <td>Position that the popup should appear</td>\n        </tr>\n        <tr>\n          <td>inline</td>\n          <td>false</td>\n          <td>If a popup is inline it will be created next to current element, allowing for local css rules to apply. It will not be removed from the DOM after being hidden. Otherwise popups will appended to body and removed after being hidden.</td>\n        </tr>\n        <tr>\n          <td>preserve</td>\n          <td>false</td>\n          <td>Whether popup contents should be preserved in the page after being hidden, allowing it to re-appear slightly faster on subsequent loads.</td>\n        </tr>\n        <tr>\n          <td>prefer</td>\n          <td>adjacent</td>\n          <td>Can be set to <code>adjacent</code> or <code>opposite</code> to prefer adjacent or opposite position if popup cannot fit on screen</td>\n        </tr>\n        <tr>\n          <td>lastResort</td>\n          <td>false</td>\n          <td>When set to <code>false</code>, a popup will not appear and produce an error message if it cannot entirely fit on page. Setting this to a position like, <code>right center</code> forces the popup to use this position as a last resort even if it is partially offstage. Setting this to <code>true</code> will use the last attempted position.</td>\n        </tr>\n        <tr>\n          <td>on</td>\n          <td>hover</td>\n          <td>Event used to trigger popup. Can be either <b>focus, click, hover, or manual</b>. Manual popups must be triggered with <code>$('.element').popup('show');</code></td>\n        </tr>\n        <tr>\n          <td>delay</td>\n          <td>\n            <div class=\"code\">\n    delay: {\n      show: 50,\n      hide: 0\n    }\n            </div>\n          </td>\n          <td>Delay in milliseconds before showing or hiding a popup on hover or focus</td>\n        </tr>\n        <tr>\n          <td>transition</td>\n          <td>\n            slide down\n          </td>\n          <td>Named transition to use when animating menu in and out.</td>\n        </tr>\n        <tr>\n          <td>duration</td>\n          <td>\n            200\n          </td>\n          <td>Duration of animation events</td>\n        </tr>\n        <tr>\n          <td>arrowPixelsFromEdge <div class=\"ui teal label\">New in 2.3</div></td>\n          <td>20</td>\n          <td>When a target element is less than 2x this amount, the popup will appear with the arrow centered on the target element, instead of with the popup edge matching the target's edge.</td>\n        </tr>\n        <tr>\n          <td>setFluidWidth</td>\n          <td>true</td>\n          <td>Whether popup should set fluid popup variation width on load to avoid <code>width: 100%</code> including padding</td>\n        </tr>\n        <tr>\n          <td>hoverable</td>\n          <td>false</td>\n          <td>Whether popup should not close on hover (useful for popup navigation menus)</td>\n        </tr>\n        <tr>\n          <td>closable</td>\n          <td>true</td>\n          <td>When using <code>on: 'click'</code> specifies whether clicking the page should close the popup</td>\n        </tr>\n        <tr>\n          <td>addTouchEvents</td>\n          <td>true</td>\n          <td>When using <code>on: 'hover'</code> whether <code>touchstart</code> events should be added to allow the popup to be triggered</td>\n        </tr>\n        <tr>\n          <td>hideOnScroll</td>\n          <td>auto</td>\n          <td>Whether popup should hide on scroll or touchmove, <code>auto</code> only hides for popups without <code>on: 'click'</code>.<br>\n          Set this to <code>false</code> to prevent mobile browsers from closing popups when you tap inside input fields.</td>\n        </tr>\n        <tr>\n          <td>target</td>\n          <td>false</td>\n          <td>If a selector or jQuery object is specified this allows the popup to be positioned relative to that element.</td>\n        </tr>\n        <tr>\n          <td>distanceAway</td>\n          <td>0</td>\n          <td>Offset for distance of popup from element</td>\n        </tr>\n        <tr>\n          <td>offset</td>\n          <td>0</td>\n          <td>Offset in pixels from calculated position</td>\n        </tr>\n        <tr>\n          <td>maxSearchDepth</td>\n          <td>10</td>\n          <td>Number of iterations before giving up search for popup position when a popup cannot fit on screen</td>\n        </tr>\n      </tbody>\n    </table>\n\n     <h4 class=\"ui header\">Callbacks</h4>\n    <p>Callbacks specify a function to occur after a specific behavior.</p>\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n          <th class=\"four wide\"></th>\n          <th class=\"four wide\">Parameters</th>\n          <th>Context</th>\n          <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>onCreate</td>\n          <td>$module</td>\n          <td>$popup</td>\n          <td>Callback on popup element creation, with created popup</td>\n        </tr>\n        <tr>\n          <td>onRemove</td>\n          <td>$module</td>\n          <td>$popup</td>\n          <td>Callback immediately before Popup is removed from DOM</td>\n        </tr>\n        <tr>\n          <td>onShow</td>\n          <td>$module</td>\n          <td>$popup</td>\n          <td>Callback before popup is shown. Returning <code>false</code> from this callback will cancel the popup from showing.</td>\n        </tr>\n        <tr>\n          <td>onVisible</td>\n          <td>$module</td>\n          <td>$popup</td>\n          <td>Callback after popup is shown</td>\n        </tr>\n        <tr>\n          <td>onHide</td>\n          <td>$module</td>\n          <td>$popup</td>\n          <td>Callback before popup is hidden. Returning <code>false</code> from this callback will cancel the popup from hiding.</td>\n        </tr>\n        <tr>\n          <td>onHidden</td>\n          <td>$module</td>\n          <td>$popup</td>\n          <td>Callback after popup is hidden</td>\n        </tr>\n        <tr>\n          <td>onUnplaceable</td>\n          <td>$module</td>\n          <td>$popup</td>\n          <td>Callback after popup cannot be placed on screen</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <h3 class=\"ui header\">\n      Content Settings\n      <div class=\"sub header\">Settings to specify popup contents</div>\n    </h3>\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <th>Setting</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>variation</td>\n          <td>Popup variation to use, can use multiple variations with a space delimiter</td>\n        </tr>\n        <tr>\n          <td>content</td>\n          <td>Content to display</td>\n        </tr>\n        <tr>\n          <td>title</td>\n          <td>Title to display alongside content</td>\n        </tr>\n        <tr>\n          <td>html</td>\n          <td>HTML content to display instead of preformatted title and content</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <h3 class=\"ui header\">\n      DOM Settings\n      <div class=\"sub header\">DOM settings specify how this module should interface with the DOM</div>\n    </h3>\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <th>Setting</th>\n        <th class=\"six wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>namespace</td>\n          <td>popup</td>\n          <td>Event namespace. Makes sure module teardown does not effect other events attached to an element.</td>\n        </tr>\n        <tr>\n          <td>selector</td>\n          <td>\n            <div class=\"code\">\n    selector    : {\n      popup    : '.ui.popup'\n    }\n            </div>\n          </td>\n          <td>DOM Selectors used internally</td>\n        </tr>\n        <tr>\n          <td>metadata</td>\n          <td>\n            <div class=\"code\">\n    metadata: {\n      content   : 'content',\n      html      : 'html',\n      offset    : 'offset',\n      position  : 'position',\n      title     : 'title',\n      variation : 'variation'\n    }\n            </div>\n          </td>\n          <td>HTML Data attributes used to store data</td>\n        </tr>\n        <tr>\n          <td>className</td>\n          <td>\n            <div class=\"code\">\n    className   : {\n      loading     : 'loading',\n      popup       : 'ui popup',\n      position    : 'top left center bottom right',\n      visible     : 'visible'\n    }\n            </div>\n          </td>\n          <td>Class names used to attach style to state</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <div class=\"ui horizontal divider\"><i class=\"icon setting\"></i></div>\n\n    <h3 class=\"ui header\">\n      Debug Settings\n      <div class=\"sub header\">Debug settings controls debug output to the console</div>\n    </h3>\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <th>Setting</th>\n        <th class=\"four wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>name</td>\n          <td>Popup</td>\n          <td>Name used in debug logs</td>\n        </tr>\n        <tr>\n          <td>silent</td>\n          <td>false</td>\n          <td>Silences all console output including error messages, regardless of other debug settings.</td>\n        </tr>\n        <tr>\n          <td>debug</td>\n          <td>false</td>\n          <td>Provides standard debug output to console</td>\n        </tr>\n        <tr>\n          <td>performance</td>\n          <td>true</td>\n          <td>Provides standard debug output to console</td>\n        </tr>\n        <tr>\n          <td>verbose</td>\n          <td>true</td>\n          <td>Provides ancillary debug output to console</td>\n        </tr>\n        <tr>\n          <td>errors</td>\n          <td colspan=\"2\">\n            <div class=\"code\">\n            error: {\n              invalidPosition : 'The position you specified is not a valid position',\n              cannotPlace     : 'Popup does not fit within the boundaries of the viewport',\n              method          : 'The method you called is not defined.',\n              noTransition    : 'This module requires ui transitions <https://github.com/Semantic-Org/UI-Transition>',\n              notFound        : 'The target or popup you specified does not exist on the page'\n            }\n            </div>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/modules/progress.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'progress'\nstandalone  : true\n\nelement     : 'progress'\nelementType : 'module'\n\ntitle       : 'Progress'\ndescription : 'A progress bar shows the progression of a task'\ntype        : 'UI Module'\n\nthemes      : ['Default', 'Classic', 'Basic', 'Striped']\n---\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/modules/progress.less\" />\n<script src=\"/javascript/progress.js\"></script>\n\n<%- @partial('header', { tabs: 'module' }) %>\n\n<div class=\"main ui container\">\n\n  <div class=\"ui definition tab\" data-tab=\"definition\">\n\n    <h2 class=\"ui dividing header\">Types</h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Standard</h4>\n      <p>A standard progress bar</p>\n      <div class=\"ui progress\">\n        <div class=\"bar\">\n          <div class=\"progress\"></div>\n        </div>\n        <div class=\"label\">Uploading Files</div>\n      </div>\n      <div class=\"ignored\">\n        <div class=\"ui icon buttons\">\n          <div class=\"decrement ui basic red button icon\"><i class=\"minus icon\"></i></div>\n          <div class=\"increment ui basic green button icon\"><i class=\"plus icon\"></i></div>\n        </div>\n      </div>\n    </div>\n    <div class=\"indicating example\">\n      <h4 class=\"ui header\">Indicating</h4>\n      <p>An indicating progress bar visually indicates the current level of progress of a task</p>\n      <div class=\"ui indicating progress\">\n        <div class=\"bar\"></div>\n        <div class=\"label\">Funding</div>\n      </div>\n      <div class=\"ignored\">\n        <div class=\"ui icon buttons\">\n          <div class=\"decrement ui basic red button icon\"><i class=\"minus icon\"></i></div>\n          <div class=\"increment ui basic green button icon\"><i class=\"plus icon\"></i></div>\n        </div>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Content</h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Bar</h4>\n      <p>A progress element can contain a bar visually indicating progress</p>\n      <div class=\"ui progress\">\n        <div class=\"bar\"></div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Progress</h4>\n      <p>A progress bar can contain a text value indicating current progress</p>\n      <div class=\"ui progress\">\n        <div class=\"bar\">\n          <div class=\"progress\"></div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Label</h4>\n      <p>A progress element can contain a label</p>\n      <div class=\"ui progress\">\n        <div class=\"bar\">\n          <div class=\"progress\"></div>\n        </div>\n        <div class=\"label\">Uploading Files</div>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">States</h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Active</h4>\n      <p>A progress bar can show activity</p>\n      <div class=\"ui active progress\">\n        <div class=\"bar\">\n          <div class=\"progress\"></div>\n        </div>\n        <div class=\"label\">Uploading Files</div>\n      </div>\n    </div>\n\n\n    <div class=\"example\">\n    <h4 class=\"ui header\">Success</h4>\n    <p>A progress bar can show a success state</p>\n      <div class=\"ui progress success\">\n        <div class=\"bar\">\n          <div class=\"progress\"></div>\n        </div>\n        <div class=\"label\">Everything worked, your file is all ready.</div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n    <h4 class=\"ui header\">Warning</h4>\n    <p>A progress bar can show a warning state</p>\n      <div class=\"ui progress warning\">\n        <div class=\"bar\">\n          <div class=\"progress\"></div>\n        </div>\n        <div class=\"label\">Your file didn't meet the minimum resolution requirements.</div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n    <h4 class=\"ui header\">Error</h4>\n    <p>A progress bar can show an error state</p>\n      <div class=\"ui progress error\">\n        <div class=\"bar\">\n          <div class=\"progress\"></div>\n        </div>\n        <div class=\"label\">There was an error.</div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n    <h4 class=\"ui header\">Disabled</h4>\n    <p>A progress bar can be disabled</p>\n      <div class=\"ui disabled progress\">\n        <div class=\"bar\"></div>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Variations</h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Inverted</h4>\n      <p>A progress bar can have its colors inverted</p>\n      <div class=\"ui inverted segment\">\n        <div class=\"ui inverted progress\">\n          <div class=\"bar\">\n            <div class=\"progress\"></div>\n          </div>\n          <div class=\"label\">Uploading Files</div>\n        </div>\n        <div class=\"ui inverted progress success\">\n          <div class=\"bar\">\n            <div class=\"progress\"></div>\n          </div>\n          <div class=\"label\">Success</div>\n        </div>\n        <div class=\"ui inverted progress warning\">\n          <div class=\"bar\">\n            <div class=\"progress\"></div>\n          </div>\n          <div class=\"label\">Warning</div>\n        </div>\n        <div class=\"ui inverted progress error\">\n          <div class=\"bar\">\n            <div class=\"progress\"></div>\n          </div>\n          <div class=\"label\">Error</div>\n        </div>\n      </div>\n      <div class=\"ignored\">\n        <div class=\"ui icon buttons\">\n          <div class=\"increment ui basic green button icon\"><i class=\"plus icon\"></i></div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Attached</h4>\n      <p>A progress bar can show progress of an element</p>\n      <div class=\"ui segment\">\n        <div class=\"ui top attached progress\">\n          <div class=\"bar\"></div>\n        </div>\n        <p>La la la la</p>\n        <div class=\"ui bottom attached progress\">\n          <div class=\"bar\"></div>\n        </div>\n      </div>\n      <div class=\"ignored\">\n        <div class=\"ui icon buttons\">\n          <div class=\"decrement ui basic red button icon\"><i class=\"minus icon\"></i></div>\n          <div class=\"increment ui basic green button icon\"><i class=\"plus icon\"></i></div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"another example\">\n      <div class=\"ui card\">\n        <div class=\"image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"content\">\n          <a class=\"header\">Project</a>\n          <div class=\"meta\">\n            <span class=\"date\">Started in 2014</span>\n          </div>\n        </div>\n        <div class=\"extra content\">\n          <a>\n            <i class=\"user icon\"></i>\n            22 Friends\n          </a>\n        </div>\n        <div class=\"ui bottom attached progress\">\n          <div class=\"bar\"></div>\n        </div>\n      </div>\n      <div class=\"ignored\">\n        <div class=\"ui icon buttons\">\n          <div class=\"decrement ui basic red button icon\"><i class=\"minus icon\"></i></div>\n          <div class=\"increment ui basic green button icon\"><i class=\"plus icon\"></i></div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Size</h4>\n      <p>A progress bar can vary in size</p>\n      <div class=\"ui ignored info message\">\n        Some small sizes may not be able to fit an inlined label\n      </div>\n      <div class=\"ui tiny progress\">\n        <div class=\"bar\"></div>\n        <div class=\"label\">Tiny</div>\n      </div>\n      <div class=\"ui small progress\">\n        <div class=\"bar\"></div>\n        <div class=\"label\">Small</div>\n      </div>\n      <div class=\"ui progress\">\n        <div class=\"bar\"></div>\n        <div class=\"label\">Standard</div>\n      </div>\n      <div class=\"ui large progress\">\n        <div class=\"bar\"></div>\n        <div class=\"label\">Large</div>\n      </div>\n      <div class=\"ui big progress\">\n        <div class=\"bar\"></div>\n        <div class=\"label\">Big</div>\n      </div>\n      <div class=\"ignored\">\n        <div class=\"ui icon buttons\">\n          <div class=\"decrement ui basic red button icon\"><i class=\"minus icon\"></i></div>\n          <div class=\"increment ui basic green button icon\"><i class=\"plus icon\"></i></div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Color</h4>\n      <p>Can have different colors:</p>\n      <div class=\"ui red progress\">\n        <div class=\"bar\"></div>\n      </div>\n      <div class=\"ui orange progress\">\n        <div class=\"bar\"></div>\n      </div>\n      <div class=\"ui yellow progress\">\n        <div class=\"bar\"></div>\n      </div>\n      <div class=\"ui olive progress\">\n        <div class=\"bar\"></div>\n      </div>\n      <div class=\"ui green progress\">\n        <div class=\"bar\"></div>\n      </div>\n      <div class=\"ui teal progress\">\n        <div class=\"bar\"></div>\n      </div>\n      <div class=\"ui blue progress\">\n        <div class=\"bar\"></div>\n      </div>\n      <div class=\"ui violet progress\">\n        <div class=\"bar\"></div>\n      </div>\n      <div class=\"ui purple progress\">\n        <div class=\"bar\"></div>\n      </div>\n      <div class=\"ui pink progress\">\n        <div class=\"bar\"></div>\n      </div>\n      <div class=\"ui brown progress\">\n        <div class=\"bar\"></div>\n      </div>\n      <div class=\"ui grey progress\">\n        <div class=\"bar\"></div>\n      </div>\n      <div class=\"ui black progress\">\n        <div class=\"bar\"></div>\n      </div>\n      <div class=\"ignored\">\n        <div class=\"ui icon buttons\">\n          <div class=\"decrement ui basic red button icon\"><i class=\"minus icon\"></i></div>\n          <div class=\"increment ui basic green button icon\"><i class=\"plus icon\"></i></div>\n        </div>\n      </div>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">Inverted Color</h4>\n      <p>These colors can also be inverted for improved contrast on dark backgrounds</p>\n      <div class=\"ui inverted segment\">\n        <div class=\"ui red inverted progress\">\n          <div class=\"bar\">\n            <div class=\"progress\"></div>\n          </div>\n        </div>\n        <div class=\"ui orange inverted progress\">\n          <div class=\"bar\">\n            <div class=\"progress\"></div>\n          </div>\n        </div>\n        <div class=\"ui yellow inverted progress\">\n          <div class=\"bar\">\n            <div class=\"progress\"></div>\n          </div>\n        </div>\n        <div class=\"ui olive inverted progress\">\n          <div class=\"bar\">\n            <div class=\"progress\"></div>\n          </div>\n        </div>\n        <div class=\"ui green inverted progress\">\n          <div class=\"bar\">\n            <div class=\"progress\"></div>\n          </div>\n        </div>\n        <div class=\"ui teal inverted progress\">\n          <div class=\"bar\">\n            <div class=\"progress\"></div>\n          </div>\n        </div>\n        <div class=\"ui blue inverted progress\">\n          <div class=\"bar\">\n            <div class=\"progress\"></div>\n          </div>\n        </div>\n        <div class=\"ui violet inverted progress\">\n          <div class=\"bar\">\n            <div class=\"progress\"></div>\n          </div>\n        </div>\n        <div class=\"ui purple inverted progress\">\n          <div class=\"bar\">\n            <div class=\"progress\"></div>\n          </div>\n        </div>\n        <div class=\"ui pink inverted progress\">\n          <div class=\"bar\">\n            <div class=\"progress\"></div>\n          </div>\n        </div>\n        <div class=\"ui brown inverted progress\">\n          <div class=\"bar\">\n            <div class=\"progress\"></div>\n          </div>\n        </div>\n        <div class=\"ui grey inverted progress\">\n          <div class=\"bar\">\n            <div class=\"progress\"></div>\n          </div>\n        </div>\n        <div class=\"ui black inverted progress\">\n          <div class=\"bar\">\n            <div class=\"progress\"></div>\n          </div>\n        </div>\n        <div class=\"ignored\">\n          <div class=\"ui icon buttons\">\n            <div class=\"decrement ui basic inverted red button icon\"><i class=\"minus icon\"></i></div>\n            <div class=\"increment ui basic inverted green button icon\"><i class=\"plus icon\"></i></div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"usage\">\n\n    <h2 class=\"ui header\">Initializing a progress bar</h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">With metadata</h4>\n      <p>A progress bar can be initialized with metadata</p>\n      <div class=\"code\" data-type=\"javascript\" data-demo=\"true\">\n        $('#example1').progress();\n      </div>\n      <div class=\"code\" data-type=\"html\" data-preview=\"true\">\n        <div class=\"ui teal progress\" data-percent=\"74\" id=\"example1\">\n          <div class=\"bar\"></div>\n          <div class=\"label\">74% Funded</div>\n        </div>\n      </div>\n    </div>\n    <div class=\"example\">\n      <h4 class=\"ui header\">With Javascript</h4>\n      <p>A progress bar can be initialized with a Javascript settings object</p>\n      <div class=\"code\" data-type=\"javascript\" data-demo=\"true\">\n        $('#example2').progress({\n          percent: 22\n        });\n      </div>\n      <div class=\"code\" data-type=\"html\" data-preview=\"true\">\n        <div class=\"ui teal progress\" id=\"example2\">\n          <div class=\"bar\"></div>\n          <div class=\"label\">22% Earned</div>\n        </div>\n      </div>\n    </div>\n\n    <h2 class=\"ui header\">Task Completion Percent</h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Adding a Total Value</h4>\n      <p>A progress bar can keep track of the current value as a ratio of a total value. This is useful for tracking the progress of a series of events with a known quantity, for example \"uploading 1 of 20\" photos.</p>\n      <p>Each call to increment will increase the value by 1, or the value specified as the second parameter</p>\n      <div class=\"code\" data-type=\"javascript\" data-demo=\"true\">\n        $('#example3')\n          .progress('increment')\n        ;\n      </div>\n      <div class=\"code\" data-type=\"html\" data-preview=\"true\">\n        <div class=\"ui teal progress\" id=\"example3\">\n          <div class=\"bar\">\n            <div class=\"progress\"></div>\n          </div>\n          <div class=\"label\">Adding Photos</div>\n        </div>\n      </div>\n      <div class=\"evaluated code\" data-type=\"javascript\">\n        $('#example3')\n          .progress({\n            total: 3\n          })\n        ;\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Initializing with Metadata</h4>\n      <p>A progress bar can keep track of the current value as a ratio of a total value. This is useful for tracking the progress of a series of events with a known quantity, for example \"uploading 1 of 20\" photos.</p>\n      <p>Each call to increment will increase the value by 1, or the value specified as the second parameter</p>\n      <p>In addition you can pass in templates text for each state available to your progress bar which will automatically be updated when your progress bar reaches that state</p>\n      <div class=\"code\" data-type=\"javascript\" data-demo=\"true\">\n        $('#example4')\n          .progress('increment')\n        ;\n      </div>\n      <div class=\"code\" data-type=\"html\" data-preview=\"true\">\n        <div class=\"ui indicating progress\" data-value=\"1\" data-total=\"20\" id=\"example4\">\n          <div class=\"bar\">\n            <div class=\"progress\"></div>\n          </div>\n          <div class=\"label\">Adding Photos</div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Adding Custom Labels</h4>\n      <p>You can pass in templates text for each state available to your progress bar which will automatically be updated when your progress bar reaches that state</p>\n      <p>You can use <code>label</code> setting to change progress bar labels between two preset messages. In addition you can customize the messages themselves by specifying the templated text in <code>text</code>. Templated strings will replace three values on render</p>\n      <table class=\"ui basic celled definition table\">\n        <tr>\n          <td>{percent}</td>\n          <td>Current percentage</td>\n        </tr>\n        <tr>\n          <td>{value}</td>\n          <td>Current value</td>\n        </tr>\n        <tr>\n          <td>{total}</td>\n          <td>Total value</td>\n        </tr>\n        <tr>\n          <td>{left}</td>\n          <td>Distance to total, or % progress left</td>\n        </tr>\n      </table>\n      <div class=\"code\" data-type=\"javascript\" data-demo=\"true\">\n        $('#example5')\n          .progress('increment')\n        ;\n      </div>\n      <div class=\"code\" data-type=\"html\" data-preview=\"true\">\n        <div class=\"ui indicating progress\" data-value=\"1\" data-total=\"20\" id=\"example5\">\n          <div class=\"bar\"></div>\n          <div class=\"label\">Adding Photos</div>\n        </div>\n      </div>\n      <div class=\"evaluated code\" data-type=\"javascript\">\n        $('#example5')\n          .progress({\n            text: {\n              active  : 'Adding {value} of {total} photos',\n              success : '{total} Photos Uploaded!'\n            }\n          })\n        ;\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Translation</h4>\n      <p>You can also adjust text labels to help strings appear translated</p>\n      <div class=\"code\" data-type=\"javascript\" data-demo=\"true\">\n        $('#example6')\n          .progress('increment')\n        ;\n      </div>\n      <div class=\"code\" data-type=\"html\" data-preview=\"true\">\n        <div class=\"ui progress\" data-value=\"15\" data-total=\"20\" id=\"example6\">\n          <div class=\"bar\">\n            <div class=\"progress\"></div>\n          </div>\n          <div class=\"label\">Carga de archivos</div>\n        </div>\n      </div>\n      <div class=\"evaluated code\" data-type=\"javascript\">\n        $('#example6')\n          .progress({\n            label: 'ratio',\n            text: {\n              ratio: '{value} de {total}'\n            }\n          })\n        ;\n      </div>\n    </div>\n\n\n    <h2 class=\"ui dividing header\">Behavior</h2>\n\n    <p>All the following behaviors can be called using the syntax:</p>\n    <div class=\"code\">\n    $('.your.element')\n      .progress('behavior name', argumentOne, argumentTwo)\n    ;\n    </div>\n\n    <table class=\"ui definition celled sortable table segment\">\n      <thead>\n        <th>Behavior</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>set percent(percent)</td>\n          <td>Sets current percent of progress to value. If using a total will convert from percent to estimated value.</td>\n        </tr>\n        <tr>\n          <td>set progress(value)</td>\n          <td>Sets progress to specified value. Will automatically calculate percent from total.</td>\n        </tr>\n        <tr>\n          <td>increment(incrementValue)</td>\n          <td>Increments progress by increment value, if not passed a value will use random amount specified in settings</td>\n        </tr>\n        <tr>\n          <td>decrement(decrementValue)</td>\n          <td>Decrements progress by decrement value, if not passed a value will use random amount specified in settings</td>\n        </tr>\n        <tr>\n          <td>update progress(value)</td>\n          <td>Immediately updates progress to value, ignoring progress animation interval delays</td>\n        </tr>\n        <tr>\n          <td>complete</td>\n          <td>Finishes progress and sets loaded to 100%</td>\n        </tr>\n        <tr>\n          <td>reset</td>\n          <td>Resets progress to zero</td>\n        </tr>\n        <tr>\n          <td>set total(total)</td>\n          <td>Set total to a new value</td>\n        </tr>\n        <tr>\n          <td>get text(text)</td>\n          <td>Replaces templated string with value, total, percent left and percent.</td>\n        </tr>\n        <tr>\n          <td>get normalized value(value)</td>\n          <td>Returns normalized value inside acceptable range specified by total.</td>\n        </tr>\n        <tr>\n          <td>get percent</td>\n          <td>Returns percent as last specified</td>\n        </tr>\n        <tr>\n          <td>get value</td>\n          <td>Returns current progress value</td>\n        </tr>\n        <tr>\n          <td>get total</td>\n          <td>Returns total</td>\n        </tr>\n        <tr>\n          <td>is complete</td>\n          <td>Returns whether progress is completed</td>\n        </tr>\n        <tr>\n          <td>is success</td>\n          <td>Returns whether progress was a success</td>\n        </tr>\n        <tr>\n          <td>is warning</td>\n          <td>Returns whether progress is in warning state</td>\n        </tr>\n        <tr>\n          <td>is error</td>\n          <td>Returns whether progress is in error state</td>\n        </tr>\n        <tr>\n          <td>is active</td>\n          <td>Returns whether progress is in active state</td>\n        </tr>\n        <tr>\n          <td>set active</td>\n          <td>Sets progress to active state</td>\n        </tr>\n        <tr>\n          <td>set warning</td>\n          <td>Sets progress to warning state</td>\n        </tr>\n        <tr>\n          <td>set success</td>\n          <td>Sets progress to success state</td>\n        </tr>\n        <tr>\n          <td>set error</td>\n          <td>Sets progress to error state</td>\n        </tr>\n        <tr>\n          <td>set duration(value)</td>\n          <td>Changes progress animation speed</td>\n        </tr>\n        <tr>\n          <td>set label(text)</td>\n          <td>Sets progress exterior label to text</td>\n        </tr>\n        <tr>\n          <td>set bar label(text)</td>\n          <td>Sets progress bar label to text</td>\n        </tr>\n        <tr>\n          <td>remove active</td>\n          <td>Removes progress to active state</td>\n        </tr>\n        <tr>\n          <td>remove warning</td>\n          <td>Removes progress to warning state</td>\n        </tr>\n        <tr>\n          <td>remove success</td>\n          <td>Removes progress to success state</td>\n        </tr>\n        <tr>\n          <td>remove error</td>\n          <td>Removes progress to error state</td>\n        </tr>\n      </tbody>\n    </table>\n\n\n  </div>\n  <div class=\"ui examples tab\" data-tab=\"examples\">\n\n    <h2 class=\"ui dividing header\">Examples</h2>\n\n    <div class=\"rapid example\">\n      <h4 class=\"ui header\">Frequently Updated Progress</h4>\n      <p>Progress bar will automatically poll for the last progress value after completing an animation, so that animation easing continues to work smoothly, even if update events occur much more frequently than UI updates.</p>\n      <a class=\"ui button\" data-url=\"/images/large-pdf.pdf\">\n        Rapidly Update\n      </a>\n      <div class=\"code\" data-type=\"html\" data-preview=\"true\">\n        <div class=\"ui indicating progress\" data-value=\"1\" data-total=\"200\" id=\"example5\">\n          <div class=\"bar\">\n            <div class=\"progress\"></div>\n          </div>\n          <div class=\"label\">Waiting for you to press button</div>\n        </div>\n      </div>\n      <div class=\"evaluated code\" data-type=\"javascript\">\n        $('.rapid.example .ui.button')\n          .on('click', function() {\n            var\n              $progress       = $('.rapid.example .ui.progress'),\n              $button         = $(this),\n              updateEvent\n            ;\n            // restart to zero\n            clearInterval(window.fakeProgress)\n            $progress.progress('reset');\n\n            // updates every 10ms until complete\n            window.fakeProgress = setInterval(function() {\n              $progress.progress('increment');\n              $button.text( $progress.progress('get value') );\n              // stop incrementing when complete\n              if($progress.progress('is complete')) {\n                clearInterval(window.fakeProgress)\n              }\n            }, 10);\n          })\n        ;\n        $('.rapid.example .ui.progress')\n          .progress({\n            duration : 200,\n            total    : 200,\n            text     : {\n              active: '{value} of {total} done'\n            }\n          })\n        ;\n      </div>\n    </div>\n<!--     <div class=\"upload example\">\n      <h4 class=\"ui header\">File Upload</h4>\n      <p>Progress can be used to display the progress of a file upload event</p>\n      <a class=\"ui button\" data-url=\"/images/large-pdf.pdf\">\n        Load PDF\n      </a>\n      <div class=\"code\" data-type=\"html\" data-preview=\"true\">\n        <div class=\"ui indicating progress\" data-value=\"1\" data-total=\"20\" id=\"example5\">\n          <div class=\"bar\"></div>\n          <div class=\"label\">Uploading File</div>\n        </div>\n      </div>\n      <div class=\"evaluated code\" data-type=\"javascript\" data-demo=\"true\">\n        $('.upload.example .ui.button')\n          .api({\n            debug: true,\n            dataType: 'text',\n            onSuccess: function() {\n              console.log('Completed downloading');\n            },\n            onError: function(error) {\n              console.log(error);\n            },\n            onDownloadProgress: function(progress) {\n              console.log('progress', progress);\n            }\n          })\n        ;\n        $('.upload.example .ui.progress')\n          .progress()\n        ;\n      </div>\n    </div> -->\n\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"settings\">\n\n    <h3 class=\"ui header\">\n      Progress Settings\n      <div class=\"sub header\">Form settings modify the tab behavior</div>\n    </h3>\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n          <th>Setting</th>\n          <th class=\"four wide\">Default</th>\n          <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>autoSuccess</td>\n          <td>true</td>\n          <td>Whether success state should automatically trigger when progress completes</td>\n        </tr>\n        <tr>\n          <td>showActivity</td>\n          <td>true</td>\n          <td>Whether progress should automatically show activity when incremented</td>\n        </tr>\n        <tr>\n          <td>limitValues</td>\n          <td>true</td>\n          <td>When set to true, values that calculate to above 100% or below 0% will be adjusted. When set to false, inappropriate values will produce an error.</td>\n        </tr>\n        <tr>\n          <td>label</td>\n          <td>percent</td>\n          <td>Can be set to either to display progress as <b>percent</b> or <b>ratio</b>. Matches up to corresponding text template with the same name.</td>\n        </tr>\n        <tr>\n          <td>random</td>\n          <td>\n          <div class=\"code\">\n            className : {\n              active  : 'active',\n              error   : 'error',\n              success : 'success',\n              warning : 'warning'\n            }\n          </div>\n          </td>\n          <td>When incrementing without value, sets range for random increment value</td>\n        </tr>\n        <tr>\n          <td>precision</td>\n          <td>1</td>\n          <td>Decimal point precision for calculated progress</td>\n        </tr>\n        <tr>\n          <td>total</td>\n          <td>false</td>\n          <td>Setting a total value will make each call to increment get closer to this total (i.e. 1/20, 2/20 etc)</td>\n        </tr>\n        <tr>\n          <td>value</td>\n          <td>false</td>\n          <td>Sets current value, when total is specified, this is used to calculate a ratio of the total, with percent this should be the overall percent</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <div class=\"ui horizontal section icon divider\"><i class=\"icon setting\"></i></div>\n    <h4 class=\"ui header\">Callbacks</h4>\n    <p>Callbacks specify a function to occur after a specific behavior.</p>\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n          <th class=\"four wide\"></th>\n          <th class=\"four wide\">Parameters</th>\n          <th>Context</th>\n          <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>onChange</td>\n          <td>percent, value, total</td>\n          <td>Progress</td>\n          <td>Callback on percentage change</td>\n        </tr>\n        <tr>\n          <td>onSuccess</td>\n          <td>total</td>\n          <td>Progress</td>\n          <td>Callback on success state</td>\n        </tr>\n        <tr>\n          <td>onActive</td>\n          <td>value, total</td>\n          <td>Progress</td>\n          <td>Callback on active state</td>\n        </tr>\n        <tr>\n          <td>onError</td>\n          <td>value, total</td>\n          <td>Progress</td>\n          <td>Callback on error state</td>\n        </tr>\n        <tr>\n          <td>onWarning</td>\n          <td>value, total</td>\n          <td>Progress</td>\n          <td>Callback on warning state</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <div class=\"ui horizontal divider\"><i class=\"icon setting\"></i></div>\n\n    <h3 class=\"ui header\">\n      DOM Settings\n      <div class=\"sub header\">DOM settings specify how this module should interface with the DOM</div>\n    </h3>\n    <table class=\"ui celled definition table segment\">\n      <thead>\n        <tr>\n          <th>Setting</th>\n          <th class=\"six wide\">Default</th>\n          <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>namespace</td>\n          <td>progress</td>\n          <td>Event namespace. Makes sure module teardown does not effect other events attached to an element.</td>\n        </tr>\n        <tr>\n          <td>text</td>\n          <td>\n            <div class=\"code\">\n            text : {\n              active  : false,\n              error   : false,\n              success : false,\n              warning : false,\n              percent : '{percent}%',\n              ratio   : '{value} of {total}'\n            }\n            </div>\n          </td>\n          <td>Text content for each state, uses simple templating with {percent}, {value}, {total}</td>\n        </tr>\n        <tr>\n          <td>regExp</td>\n          <td>\n            <div class=\"code\">\n            regExp: {\n              variable: /\\{\\$*[A-z0-9]+\\}/g\n            }\n            </div>\n          </td>\n          <td>Regular expressions used by module</td>\n        </tr>\n        <tr>\n          <td>selector</td>\n          <td>\n            <div class=\"code\">\n            selector : {\n              bar      : '> .bar',\n              label    : '> .label',\n              progress : '.bar > .progress'\n            }\n            </div>\n          </td>\n          <td>Selectors used by module</td>\n        </tr>\n        <tr>\n          <td>metadata</td>\n          <td>\n            <div class=\"code\">\n            metadata: {\n              percent : 'percent',\n              total   : 'total',\n              value   : 'value'\n            }\n            </div>\n          </td>\n          <td>DOM metadata used by module</td>\n        </tr>\n        <tr>\n          <td>className</td>\n          <td>\n            <div class=\"code\">\n            className : {\n              active  : 'active',\n              error   : 'error',\n              success : 'success',\n              warning : 'warning'\n            }\n            </div>\n          </td>\n          <td>Class names used to attach style to state</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <div class=\"ui horizontal divider\"><i class=\"icon setting\"></i></div>\n\n    <h3 class=\"ui header\">\n      Debug Settings\n      <div class=\"sub header\">Debug settings controls debug output to the console</div>\n    </h3>\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n          <th>Setting</th>\n          <th class=\"four wide\">Default</th>\n          <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>name</td>\n          <td>Progress</td>\n          <td>Name used in debug logs</td>\n        </tr>\n        <tr>\n          <td>silent</td>\n          <td>False</td>\n          <td>Silences all console output including error messages, regardless of other debug settings.</td>\n        </tr>\n        <tr>\n          <td>debug</td>\n          <td>False</td>\n          <td>Provides standard debug output to console</td>\n        </tr>\n        <tr>\n          <td>performance</td>\n          <td>True</td>\n          <td>Provides standard debug output to console</td>\n        </tr>\n        <tr>\n          <td>verbose</td>\n          <td>True</td>\n          <td>Provides ancillary debug output to console</td>\n        </tr>\n        <tr>\n          <td>errors</td>\n          <td colspan=\"2\">\n            <div class=\"code\">\n            error    : {\n              method     : 'The method you called is not defined.',\n              nonNumeric : 'Progress value is non numeric'\n            }\n            </div>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/modules/rating.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'rating'\nstandalone  : true\n\nelement     : 'rating'\nelementType : 'module'\n\ntitle       : 'Rating'\ndescription : 'A rating indicates user interest in content'\ntype        : 'UI Module'\n\nthemes      : ['Default']\n---\n\n<%- @partial('header', { tabs: 'module' }) %>\n\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/modules/rating.less\" />\n<script src=\"/javascript/rating.js\"></script>\n\n<div class=\"main ui container\">\n\n  <div class=\"ui active tab\" data-tab=\"definition\">\n\n    <h2 class=\"ui dividing header\">Types</h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Rating\n        <span class=\"ui teal label\">Flexbox</span>\n      </h4>\n      <p>A basic rating </p>\n      <div class=\"ui rating\" data-max-rating=\"1\"></div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Star</h4>\n      <p>A rating can use a set of star icons</p>\n\n      Rating\n      <div class=\"ui star rating\" data-rating=\"3\"></div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Heart</h4>\n      <p>A rating can use a set of heart icons</p>\n      <div class=\"ui heart rating\" data-rating=\"1\" data-max-rating=\"3\"></div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Variations</h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Size</h4>\n      <p>A rating can vary in size</p>\n      <div class=\"ui mini star rating\"></div>\n      <br><br>\n      <div class=\"ui tiny star rating\"></div>\n      <br><br>\n      <div class=\"ui small star rating\"></div>\n      <br><br>\n      <div class=\"ui star rating\"></div>\n      <br><br>\n      <div class=\"ui large star rating\"></div>\n      <br><br>\n      <div class=\"ui huge star rating\"></div>\n      <br><br>\n      <div class=\"ui massive star rating\"></div>\n    </div>\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"examples\">\n\n    <h2 class=\"ui dividing header\">Examples</h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Setting existing values</h4>\n      <p>The starting rating can be set either using metadata value <code>data-rating</code> or the setting <code>initialRating</code>.\n      <p>The maximum rating can be be set using the metadata value <code>data-max-rating</code> or the settings <code>maxRating</code>, or you can just include the icon HTML yourself on initialization to avoid the overhead of the <code>DOM template insertions</code>. </p>\n      <div class=\"ui ignored info message\">If a metadata rating is specified it will automatically override the default value specified in Javascript.</div>\n      <div class=\"code\" data-type=\"javascript\">\n      $('.toggle.example .rating')\n        .rating({\n          initialRating: 2,\n          maxRating: 4\n        })\n      ;\n      </div>\n      <div class=\"ui very relaxed celled list\">\n        <div class=\"item\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/square-image.png\">\n          <div class=\"content\">\n            <div class=\"header\">\n              New York Dog Fair\n              <div class=\"ui heart rating\" data-rating=\"2\"></div>\n            </div>\n            A fun day at the fair\n          </div>\n        </div>\n        <div class=\"item\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/square-image.png\">\n          <div class=\"content\">\n            <div class=\"header\">\n              Dog Appreciation Day\n              <div class=\"ui heart rating\" data-rating=\"2\"></div>\n            </div>\n            I'd like to tell your dog he's great\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"toggle no example\">\n      <h4 class=\"ui header\">Read-Only Ratings</h4>\n      <p>You can disable or enable interactive rating</p>\n      <div class=\"code\" data-type=\"javascript\" data-demo=\"true\">\n      $('.toggle.example .rating')\n        .rating('disable')\n      ;\n      </div>\n      <div class=\"code\" data-type=\"javascript\" data-demo=\"true\">\n      $('.toggle.example .rating')\n        .rating('enable')\n      ;\n      </div>\n      <div class=\"ui heart demo rating\" data-rating=\"3\">\n        <i class=\"icon\"></i>\n        <i class=\"icon\"></i>\n        <i class=\"icon\"></i>\n        <i class=\"icon\"></i>\n        <i class=\"icon\"></i>\n      </div>\n    </div>\n\n    <div class=\"clearing no example\">\n      <h4 class=\"ui header\">Clearing Ratings</h4>\n      <p>When clearable is set to <code>true</code> you can clear the rating by clicking on the current start rating.</p>\n      <div class=\"evaluated code\" data-type=\"javascript\">\n      $('.clearing.example .rating')\n        .rating('setting', 'clearable', true)\n      ;\n      </div>\n      <div class=\"ui heart demo rating\" data-rating=\"3\">\n        <i class=\"icon\"></i>\n        <i class=\"icon\"></i>\n        <i class=\"icon\"></i>\n        <i class=\"icon\"></i>\n        <i class=\"icon\"></i>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"usage\">\n\n    <h2 class=\"ui dividing header\">Initializing</h2>\n\n    <div class=\"ui example\">\n      <h4 class=\"ui header\">Metadata</h4>\n      <p>You can specify the starting rating, and max rating in metadata.\n      <div class=\"code\" data-type=\"javascript\">\n        $('.ui.rating')\n          .rating()\n        ;\n      </div>\n      <div class=\"code\" data-type=\"html\">\n        <div class=\"ui rating\" data-rating=\"3\" data-max-rating=\"5\"></div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Javascript</h4>\n      <p>You can specify the rating values in Javascript</p>\n      <div class=\"code\" data-type=\"javascript\">\n        $('.ui.rating')\n          .rating({\n            initialRating: 3,\n            maxRating: 5\n          })\n        ;\n      </div>\n      <div class=\"code\" data-type=\"html\">\n        <div class=\"ui rating\"></div>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Behaviors</h2>\n\n    <p>All the following behaviors can be called using the syntax:</p>\n    <div class=\"code\">\n    $('.ui.rating')\n      .rating('behavior name', argumentOne, argumentTwo)\n    ;\n    </div>\n\n    <table class=\"ui definition celled sortable table segment\">\n      <thead>\n        <th>Behavior</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>set rating(rating)</td>\n          <td>Sets rating programmatically</td>\n        </tr>\n        <tr>\n          <td>get rating</td>\n          <td>Gets current rating</td>\n        </tr>\n        <tr>\n          <td>disable</td>\n          <td>Disables interactive rating mode</td>\n        </tr>\n        <tr>\n          <td>enable</td>\n          <td>Enables interactive rating mode</td>\n        </tr>\n        <tr>\n          <td>clear rating</td>\n          <td>Clears current rating</td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"settings\">\n    <h3 class=\"ui header\">\n      Rating Settings\n      <div class=\"sub header\">Rating settings modify the rating's behavior</div>\n    </h3>\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <th>Setting</th>\n        <th class=\"four wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>initialRating</td>\n          <td>0</td>\n          <td>A number representing the default rating to apply</td>\n        </tr>\n        <tr>\n          <td>fireOnInit</td>\n          <td>false</td>\n          <td>Whether callbacks like <code>onRate</code> should fire immediately after initializing with the current value.</td>\n        </tr>\n        <tr>\n          <td>clearable</td>\n          <td>auto</td>\n          <td>By default a rating will be only clearable if there is 1 icon. Setting to true/false will allow or disallow a user to clear their rating</td>\n        </tr>\n        <tr>\n          <td>interactive</td>\n          <td>true</td>\n          <td>Whether to enable user's ability to rate</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <h3 class=\"ui header\">\n      Callbacks\n      <div class=\"sub header\">Callbacks specify a function to occur after a specific behavior.</div>\n    </h3>\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <th class=\"four wide\">Setting</th>\n        <th>Context</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>onRate(value)</td>\n          <td>Rating</td>\n          <td>Is called after user selects a new rating</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <h3 class=\"ui header\">\n      DOM Settings\n      <div class=\"sub header\">DOM settings specify how this module should interface with the DOM</div>\n    </h3>\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <th>Setting</th>\n        <th class=\"four wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>namespace</td>\n          <td>rating</td>\n          <td>Event namespace. Makes sure module teardown does not effect other events attached to an element.</td>\n        </tr>\n        <tr>\n          <td>selector</td>\n          <td colspan=\"2\">\n            <div class=\"code\">\n      selector  : {\n        icon : '.icon'\n      }\n            </div>\n          </td>\n        </tr>\n        <tr>\n          <td>className</td>\n          <td colspan=\"2\">\n            <div class=\"code\">\n      className : {\n        active     : 'active',\n        hover      : 'hover',\n        loading    : 'loading'\n      },\n            </div>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n\n\n    <h3 class=\"ui header\">\n      Debug Settings\n      <div class=\"sub header\">Debug settings controls debug output to the console</div>\n    </h3>\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <th>Setting</th>\n        <th class=\"four wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>name</td>\n          <td>Rating</td>\n          <td>Name used in debug logs</td>\n        </tr>\n        <tr>\n          <td>silent</td>\n          <td>False</td>\n          <td>Silences all console output including error messages, regardless of other debug settings.</td>\n        </tr>\n        <tr>\n          <td>debug</td>\n          <td>False</td>\n          <td>Provides standard debug output to console</td>\n        </tr>\n        <tr>\n          <td>performance</td>\n          <td>True</td>\n          <td>Provides standard debug output to console</td>\n        </tr>\n        <tr>\n          <td>verbose</td>\n          <td>True</td>\n          <td>Provides ancillary debug output to console</td>\n        </tr>\n        <tr>\n          <td>error</td>\n          <td colspan=\"2\">\n            <div class=\"code\">\n      error   : {\n        action    : 'You called a rating action that was not defined'\n      }\n            </div>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/modules/search.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : ''\nelement     : 'search'\nelementType : 'module'\nstandalone  : true\n\ntitle       : 'Search'\ndescription : 'A search module allows a user to query for results from a selection of data'\ntype        : 'UI Module'\n---\n\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/modules/search.less\" />\n<script src=\"/javascript/search.js\"></script>\n\n<%- @partial('header', { tabs: { definition: 'Definition', examples: 'Examples', usage: 'Usage', settings: 'Settings'} }) %>\n\n<div class=\"main ui container\">\n\n  <div class=\"ui active tab\" data-tab=\"definition\">\n\n    <h2 class=\"ui dividing header\">Types</h2>\n\n    <div class=\"standard example\">\n      <h4 class=\"ui header\">Standard</h4>\n      <p>A search can display a set of results</p>\n      <div class=\"ui search\">\n        <input class=\"prompt\" type=\"text\" placeholder=\"Common passwords...\">\n        <div class=\"results\"></div>\n      </div>\n    </div>\n\n    <div class=\"another standard example\">\n      <div class=\"ui ignored info message\">\n        Using a <a href=\"/elements/input.html\">ui input</a> allows you to use additional input types, like this icon input\n      </div>\n      <div class=\"ui search\">\n        <div class=\"ui icon input\">\n          <input class=\"prompt\" type=\"text\" placeholder=\"Common passwords...\">\n          <i class=\"search icon\"></i>\n        </div>\n        <div class=\"results\"></div>\n      </div>\n    </div>\n\n\n    <div class=\"category example\">\n      <h4 class=\"ui header\">Category</h4>\n      <p>A search can display results from remote content ordered by categories</p>\n      <div class=\"ui category search\">\n        <div class=\"ui icon input\">\n          <input class=\"prompt\" type=\"text\" placeholder=\"Search animals...\">\n          <i class=\"search icon\"></i>\n        </div>\n        <div class=\"results\"></div>\n      </div>\n    </div>\n\n\n    <div class=\"local example\">\n      <h4 class=\"ui header\">Local Search</h4>\n      <p>A search can look for results inside a static local source.</p>\n      <div class=\"ui ignored info message\">\n        By default, results will return content first that begin with the query text, but also afterward content that matches the query anywhere inside. To disable full text search you can specify in settings <code>fullTextSearch: false</code>.\n      </div>\n      <div class=\"ui search\">\n        <div class=\"ui icon input\">\n          <input class=\"prompt\" type=\"text\" placeholder=\"Search countries...\">\n          <i class=\"search icon\"></i>\n        </div>\n        <div class=\"results\"></div>\n      </div>\n      <div class=\"code\" data-type=\"javascript\">\n        $('.ui.search')\n          .search({\n            source: content\n          })\n        ;\n      </div>\n      <div class=\"hidden code\" data-type=\"javascript\">\n      var content = [\n        { title: 'Andorra' },\n        { title: 'United Arab Emirates' },\n        { title: 'Afghanistan' },\n        { title: 'Antigua' },\n        { title: 'Anguilla' },\n        { title: 'Albania' },\n        { title: 'Armenia' },\n        { title: 'Netherlands Antilles' },\n        { title: 'Angola' },\n        { title: 'Argentina' },\n        { title: 'American Samoa' },\n        { title: 'Austria' },\n        { title: 'Australia' },\n        { title: 'Aruba' },\n        { title: 'Aland Islands' },\n        { title: 'Azerbaijan' },\n        { title: 'Bosnia' },\n        { title: 'Barbados' },\n        { title: 'Bangladesh' },\n        { title: 'Belgium' },\n        { title: 'Burkina Faso' },\n        { title: 'Bulgaria' },\n        { title: 'Bahrain' },\n        { title: 'Burundi' }\n        // etc\n      ];\n      </div>\n    </div>\n\n\n    <div class=\"local-category example\">\n      <h4 class=\"ui header\">\n        Local Category Search\n        <div class=\"ui teal label\">New in 2.3</div>\n      </h4>\n      <p>A search can look for category results inside a static local source.</p>\n      <div class=\"ui ignored info message\">\n        By default, results will return content first that begin with the query text, but also afterward content that matches the query anywhere inside. To disable full text search you can specify in settings <code>fullTextSearch: false</code>.\n      </div>\n      <div class=\"ui search\">\n        <div class=\"ui icon input\">\n          <input class=\"prompt\" type=\"text\" placeholder=\"Search countries...\">\n          <i class=\"search icon\"></i>\n        </div>\n        <div class=\"results\"></div>\n      </div>\n      <div class=\"code\" data-type=\"javascript\">\n        $('.ui.search')\n          .search({\n            type: 'category',\n            source: categoryContent\n          })\n        ;\n      </div>\n      <div class=\"hidden code\" data-type=\"javascript\">\n      var categoryContent = [\n        { category: 'South America', title: 'Brazil' },\n        { category: 'South America', title: 'Peru' },\n        { category: 'North America', title: 'Canada' },\n        { category: 'Asia', title: 'South Korea' },\n        { category: 'Asia', title: 'Japan' },\n        { category: 'Asia', title: 'China' },\n        { category: 'Europe', title: 'Denmark' },\n        { category: 'Europe', title: 'England' },\n        { category: 'Europe', title: 'France' },\n        { category: 'Europe', title: 'Germany' },\n        { category: 'Africa', title: 'Ethiopia' },\n        { category: 'Africa', title: 'Nigeria' },\n        { category: 'Africa', title: 'Zimbabwe' },\n      ];\n      </div>\n    </div>\n\n    <!-- Coming in 2.2\n\n    <div class=\"local example\">\n      <h4 class=\"ui header\">Selection</h4>\n      <p>A search can used inside a form to store a selection</p>\n      <div class=\"ui ignored info message\">\n        <p>Search selections are identical to normal search elements but include an addition hidden input for storing the currently selected value for a form. They are also formatted to match selection styles found in other form components.</p>\n        <p>Search selections allow for a function similar to <a href=\"/modules/dropdown.html#selection\">search selection dropdowns</a> and can be used to store an input value retrieved remotely. Selections can use either local or remote content sources.</p>\n      </div>\n      <div class=\"ui search selection\">\n        <input type=\"hidden\">\n        <div class=\"ui icon input\">\n          <input class=\"prompt\" type=\"text\" placeholder=\"Search countries...\">\n          <i class=\"remove icon\"></i>\n        </div>\n        <div class=\"results\"></div>\n      </div>\n      <div class=\"code\" data-type=\"javascript\">\n        $('.ui.search')\n          .search{\n            source: countries\n          })\n        ;\n      </div>\n    </div>\n\n    <div class=\"another local example\">\n      <div class=\"ui search selection\">\n        <input type=\"hidden\">\n        <div class=\"ui icon input\">\n          <input class=\"prompt\" type=\"text\" placeholder=\"Search countries...\">\n          <i class=\"search icon\"></i>\n          <i class=\"remove icon\"></i>\n        </div>\n        <div class=\"results\"></div>\n      </div>\n    </div>\n\n    <div class=\"another local example\">\n      <div class=\"ui search selection\">\n        <input type=\"hidden\">\n        <div class=\"ui left icon input\">\n          <input class=\"prompt\" type=\"text\" placeholder=\"Search countries...\">\n          <i class=\"search icon\"></i>\n          <i class=\"remove icon\"></i>\n        </div>\n        <div class=\"results\"></div>\n      </div>\n    </div> -->\n\n    <h2 class=\"ui dividing header\">States</h2>\n    <div class=\"example\">\n      <h4 class=\"ui header\">Loading</h4>\n      <p>A search can show a loading indicator</p>\n      <div class=\"ui loading search\">\n        <div class=\"ui icon input\">\n          <input class=\"prompt\" type=\"text\" placeholder=\"Search...\">\n          <i class=\"search icon\"></i>\n        </div>\n        <div class=\"results\"></div>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Variations</h2>\n\n    <div class=\"category example\">\n      <h4 class=\"ui header\">\n        Disabled\n        <div class=\"ui teal label\">New in 2.3.1</div>\n      </h4>\n      <p>A search can show it is currently unable to be interacted with</p>\n      <div class=\"ui disabled category search\">\n        <div class=\"ui icon input\">\n          <input class=\"prompt\" type=\"text\" placeholder=\"Search animals...\">\n          <i class=\"search icon\"></i>\n        </div>\n        <div class=\"results\"></div>\n      </div>\n    </div>\n\n    <div class=\"category example\">\n      <h4 class=\"ui header\">Fluid</h4>\n      <p>A search can have its results take up the width of its container</p>\n      <div class=\"ui fluid category search\">\n        <div class=\"ui icon input\">\n          <input class=\"prompt\" type=\"text\" placeholder=\"Search animals...\">\n          <i class=\"search icon\"></i>\n        </div>\n        <div class=\"results\"></div>\n      </div>\n    </div>\n\n    <div class=\"category example\">\n      <h4 class=\"ui header\">Aligned</h4>\n      <p>A search can have its results aligned to its left or right container edge</p>\n      <div class=\"ui right aligned category search\">\n        <div class=\"ui icon input\">\n          <input class=\"prompt\" type=\"text\" placeholder=\"Search animals...\">\n          <i class=\"search icon\"></i>\n        </div>\n        <div class=\"results\"></div>\n      </div>\n    </div>\n\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"usage\">\n\n    <h2 class=\"ui dividing header\">Initializing</h2>\n\n    <div class=\"ui message\">\n      Search is built ontop of Semantic <a href=\"/behaviors/api.html\">API</a> behaviors to allow for URL templating, and UI state management. Please check out the API documentation for more information on adjusting API settings.\n    </div>\n\n    <h4 class=\"ui header\">Automatic Routing</h4>\n    <p>By default search will automatically route to the named <a href=\"/behaviors/api.html\">API endpoint</a> 'search'</p>\n    <div class=\"code\" data-label=\"javascript\">\n      // initializes with default endpoint /search/{query}\n      $('.ui.search')\n        .search({\n          type: 'category'\n        })\n      ;\n    </div>\n\n    <h4 class=\"ui header\">Named URL</h4>\n    <p>You can specify custom API settings to adjust the url, callback settings, or specify a different API action.</p>\n    <div class=\"code\" data-label=\"javascript\">\n\n      $('.ui.search')\n        .search({\n          // change search endpoint to a custom endpoint by manipulating apiSettings\n          apiSettings: {\n            url: 'custom-search/?q={query}'\n          },\n          type: 'category'\n        })\n      ;\n    </div>\n\n    <h4 class=\"ui header\">Local Object</h4>\n    <p>Local search results allow you to search across specified properties of a javacript object literal looking for matching values</p>\n    <p>\n      You can set which fields are searchable using the <code>searchFields</code> setting. Local object search can only display standard search results (not categories).\n    </p>\n    <div class=\"code\" data-label=\"javascript\">\n      // searches across any array/object of searchable objects\n      var\n        content = [\n          {\n            title: 'Horse',\n            description: 'An Animal',\n          },\n          {\n            title: 'Cow',\n            description: 'Another Animal',\n          }\n        ]\n      ;\n      $('.ui.search')\n        .search({\n          source : content,\n          searchFields   : [\n            'title'\n          ],\n          fullTextSearch: false\n        })\n      ;\n    </div>\n\n    <h2 class=\"ui dividing header\">Server Responses</h2>\n\n    <div class=\"ui info message\">You may also consider adding a top level property like <code>success: true</code> and using API's <code>successTest</code> parameter to determine whether a server response is actually succesful, even if it returns the correct HTTP code</div>\n\n    <h4 class=\"ui header\">Standard</h4>\n    <div class=\"code\" data-title=\"Server JSON Response\">\n      {\n        \"results\": [\n          {\n            \"title\": \"Result Title\",\n            \"url\": \"/optional/url/on/click\",\n            \"image\": \"optional-image.jpg\",\n            \"price\": \"Optional Price\",\n            \"description\": \"Optional Description\"\n          },\n          {\n            \"title\": \"Result Title\",\n            \"description\": \"Result Description\"\n          }\n        ],\n        // optional action below results\n        \"action\": {\n          \"url\": '/path/to/results',\n          \"text\": \"View all 202 results\"\n        }\n      }\n    </div>\n\n\n    <h4 class=\"ui header\">Category</h4>\n    <div class=\"code\" data-title=\"Server JSON Response\">\n      {\n        \"results\": {\n          \"category1\": {\n            \"name\": \"Category 1\",\n            \"results\": [\n              {\n                \"title\": \"Result Title\",\n                \"url\": \"/optional/url/on/click\",\n                \"image\": \"optional-image.jpg\",\n                \"price\": \"Optional Price\",\n                \"description\": \"Optional Description\"\n              },\n              {\n                \"title\": \"Result Title\",\n                \"url\": \"/optional/url/on/click\",\n                \"image\": \"optional-image.jpg\",\n                \"price\": \"Optional Price\",\n                \"description\": \"Optional Description\"\n              }\n            ]\n          },\n          \"category2\": {\n            \"name\": \"Category 2\",\n            \"results\": [\n              {\n                \"title\": \"Result Title\",\n                \"url\": \"/optional/url/on/click\",\n                \"image\": \"optional-image.jpg\",\n                \"price\": \"Optional Price\",\n                \"description\": \"Optional Description\"\n              }\n            ]\n          }\n        },\n        // optional action below results\n        \"action\": {\n          \"url\": '/path/to/results',\n          \"text\": \"View all 202 results\"\n        }\n      }\n    </div>\n\n\n    <h2 class=\"ui dividing header\">Retreiving Results</h2>\n\n    <h4 class=\"ui header\">Unique IDs</h4>\n    <p>If no <code>id</code> property is included on a result, a key will automatically be generated when your results are returned for each result.</p>\n    <p>IDs are generated using the position in the results, for example the first element will receive the id <code>1</code>, and the first category result will receive the id <code>a1</code>.</p>\n    <p>An <code>id</code> or search result title can then be used with <code>get result(value)</code> to return the result object.\n    </p>\n    <div class=\"code\" data-label=\"javascript\">\n      // get result from current query results with the title cat\n      $('.ui.search')\n        .search('get result', 'cat')\n      ;\n      // get first result from first category with category search\n      $('.ui.search')\n        .search('get result', 'a1')\n      ;\n      // get first result from standard search\n      $('.ui.search')\n        .search('get result', '1')\n      ;\n    </div>\n\n\n    <h2 class=\"ui dividing header\">Behaviors</h2>\n\n    <p>All the following behaviors can be called using the syntax:</p>\n    <div class=\"code\">\n    $('.your.element')\n      .search('behavior name', argumentOne, argumentTwo)\n    ;\n    </div>\n\n    <table class=\"ui definition celled sortable table segment\">\n      <thead>\n        <th>Behavior</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>query (callback)</td>\n          <td>Search for value currently set in search input</td>\n        </tr>\n        <tr>\n          <td>display message(text, type)</td>\n          <td>Displays message in search results with text, using template matching type</td>\n        </tr>\n        <tr>\n          <td>cancel query</td>\n          <td>Cancels current remote search query</td>\n        </tr>\n        <tr>\n          <td>search local(query)</td>\n          <td>Search local object for specified query and display results</td>\n        </tr>\n        <tr>\n          <td>has minimum characters</td>\n          <td>Whether has minimum characters</td>\n        </tr>\n        <tr>\n          <td>search remote(query, callback)</td>\n          <td>Search remote endpoint for specified query and display results</td>\n        </tr>\n        <tr>\n          <td>search object(query, object, searchFields)</td>\n          <td>Search object for specified query and return results</td>\n        </tr>\n        <tr>\n          <td>cancel query</td>\n          <td>Cancels current remote search request</td>\n        </tr>\n        <tr>\n          <td>is focused</td>\n          <td>Whether search is currently focused</td>\n        </tr>\n        <tr>\n          <td>is visible</td>\n          <td>Whether search results are visible</td>\n        </tr>\n        <tr>\n          <td>is empty</td>\n          <td>Whether search results are empty</td>\n        </tr>\n        <tr>\n          <td>get value</td>\n          <td>Returns current search value</td>\n        </tr>\n        <tr>\n          <td>get result(value)</td>\n          <td>Returns JSON object matching searched title or id (see above)</td>\n        </tr>\n        <tr>\n          <td>set value(value)</td>\n          <td>Sets search input to value</td>\n        </tr>\n        <tr>\n          <td>read cache(query)</td>\n          <td>Reads cached results for query</td>\n        </tr>\n        <tr>\n          <td>clear cache(query)</td>\n          <td>Clears value from cache, if no parameter passed clears all cache</td>\n        </tr>\n        <tr>\n          <td>write cache(query)</td>\n          <td>Writes cached results for query</td>\n        </tr>\n        <tr>\n          <td>add results(html)</td>\n          <td>Adds HTML to results and displays</td>\n        </tr>\n        <tr>\n          <td>show results(callback)</td>\n          <td>Shows results container</td>\n        </tr>\n        <tr>\n          <td>hide results(callback)</td>\n          <td>Hides results container</td>\n        </tr>\n        <tr>\n          <td>generate results(response)</td>\n          <td>Generates results using parser specified by <code>settings.template</code></td>\n        </tr>\n        <tr>\n          <td>destroy</td>\n          <td>Removes all events</td>\n        </tr>\n      </tbody>\n    </table>\n\n\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"examples\">\n\n    <h2 class=\"ui dividing header\">Examples</h2>\n\n    <div class=\"mapping example\">\n      <h4 class=\"ui header\">Using Different Response Fields</h4>\n      <p>Search expects a very specific API response, however you can easily modify the mapping of server response to displayed field using the <code>fields</code> parameter.\n      <div class=\"ui ignored code\">\n      $('.ui.search')\n        .search({\n          apiSettings: {\n            url: '//api.github.com/search/repositories?q={query}'\n          },\n          fields: {\n            results : 'items',\n            title   : 'name',\n            url     : 'html_url'\n          },\n          minCharacters : 3\n        })\n      ;\n      </div>\n      <div class=\"ui search\">\n        <div class=\"ui left icon input\">\n          <input class=\"prompt\" type=\"text\" placeholder=\"Search GitHub\">\n          <i class=\"github icon\"></i>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"external example\">\n      <h4 class=\"ui header\">Using API Settings</h4>\n      <p><a href=\"/behaviors/api.html\">API</a> provides a callback <a href=\"/behaviors/api.html#response-callbacks\"><code>onResponse</code></a> that can be used to restructure third party APIs to match the expected server response for search.</p>\n      <p>You can also use <a href=\"/behaviors/api.html#mocking-responses\"><code>mockResponseAsync</code></a> to use a custom backend for fullfilling searches.</p>\n      <div class=\"ui search\">\n        <div class=\"ui left icon input\">\n          <input class=\"prompt\" type=\"text\" placeholder=\"Search GitHub\">\n          <i class=\"github icon\"></i>\n        </div>\n      </div>\n      <div class=\"ignored code\" data-type=\"javascript\">\n      $('.ui.search')\n        .search({\n          type          : 'category',\n          minCharacters : 3,\n          apiSettings   : {\n            onResponse: function(githubResponse) {\n              var\n                response = {\n                  results : {}\n                }\n              ;\n              // translate GitHub API response to work with search\n              $.each(githubResponse.items, function(index, item) {\n                var\n                  language   = item.language || 'Unknown',\n                  maxResults = 8\n                ;\n                if(index >= maxResults) {\n                  return false;\n                }\n                // create new language category\n                if(response.results[language] === undefined) {\n                  response.results[language] = {\n                    name    : language,\n                    results : []\n                  };\n                }\n                // add result to category\n                response.results[language].results.push({\n                  title       : item.name,\n                  description : item.description,\n                  url         : item.html_url\n                });\n              });\n              return response;\n            },\n            url: '//api.github.com/search/repositories?q={query}'\n          }\n        })\n      ;\n      </div>\n    </div>\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"settings\">\n    <h2 class=\"ui dividing header\">\n      Search\n    </h2>\n\n    <h4 class=\"ui header\">\n      Behavior\n    </h4>\n    <table class=\"ui sortable celled definition table\">\n      <thead>\n        <th class=\"three wide\"></th>\n        <th class=\"five wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>apiSettings</td>\n          <td>\n          <div class=\"code\">\n          {\n            action: 'search'\n          }\n          </div>\n          </td>\n          <td>Settings for <a href=\"/behaviors/api.html#/usage\">API</a> call.</td>\n        </tr>\n        <tr>\n          <td>minCharacters</td>\n          <td>1</td>\n          <td>Minimum characters to query for results</td>\n        </tr>\n        <tr>\n          <td>searchOnFocus</td>\n          <td>true</td>\n          <td>Whether search should show results on focus (must also match min character length)</td>\n        </tr>\n        <tr>\n          <td>transition</td>\n          <td>\n            fade\n          </td>\n          <td>Named transition to use when animating menu in and out. Fade and slide down are available without including <a href=\"/modules/transition.html\">ui transitions</a></td>\n        </tr>\n        <tr>\n          <td>duration</td>\n          <td>\n            300\n          </td>\n          <td>Duration of animation events</td>\n        </tr>\n        <tr>\n          <td>maxResults</td>\n          <td>7</td>\n          <td>Maximum results to display when using local and simple search, maximum category count for category search</td>\n        </tr>\n        <tr>\n          <td>cache</td>\n          <td>true</td>\n          <td>Caches results locally to avoid requerying server</td>\n        </tr>\n        <tr>\n          <td>source</td>\n          <td>false</td>\n          <td>Specify a Javascript object which will be searched locally</td>\n        </tr>\n        <tr>\n          <td>selectFirstResult</td>\n          <td>false</td>\n          <td>Whether the search should automatically select the first search result after searching</td>\n        </tr>\n        <tr>\n          <td>showNoResults</td>\n          <td>false</td>\n          <td>Whether a \"no results\" message should be shown if no results are found. (These messages can be modified using the <code>template</code> object specified below)</td>\n        </tr>\n        <tr>\n          <td>fullTextSearch</td>\n          <td>'exact'</td>\n          <td>Specifying to \"true\" will use a fuzzy full text search, setting to \"exact\" will force the exact search to be matched somewhere in the string, setting to <code>false</code> will only match to start of string. (This setting was previously called <code>searchFullText</code>.)</td>\n        </tr>\n        <tr>\n          <td>fields</td>\n          <td>\n            <div class=\"code\" data-type=\"css\">\n            fields: {\n              categories      : 'results',     // array of categories (category view)\n              categoryName    : 'name',        // name of category (category view)\n              categoryResults : 'results',     // array of results (category view)\n              description     : 'description', // result description\n              image           : 'image',       // result image\n              price           : 'price',       // result price\n              results         : 'results',     // array of results (standard)\n              title           : 'title',       // result title\n              action          : 'action',      // \"view more\" object name\n              actionText      : 'text',        // \"view more\" text\n              actionURL       : 'url'          // \"view more\" url\n            }\n            </div>\n          </td>\n          <td>List mapping display content to JSON property, either with API or <code>source</code>.</td>\n        </tr>\n        <tr>\n          <td>searchFields</td>\n          <td>\n            <div class=\"code\" data-type=\"javascript\">\n              [\n                'title',\n                'description'\n              ]\n            </div>\n          </td>\n          <td>Specify object properties inside local source object which will be searched</td>\n        </tr>\n        <tr>\n          <td>hideDelay</td>\n          <td>0</td>\n          <td>Delay before hiding results after search blur</code></td>\n        </tr>\n        <tr>\n          <td>searchDelay</td>\n          <td>100</td>\n          <td>Delay before querying results on inputchange</td>\n        </tr>\n        <tr>\n          <td>easing</td>\n          <td>\n            easeOutExpo\n          </td>\n          <td>Easing equation when using fallback Javascript animation</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <h4 class=\"ui header\">\n      Callbacks\n    </h4>\n\n    <table class=\"ui sortable celled definition table\">\n      <thead>\n        <th class=\"three wide\"></th>\n        <th class=\"three wide\">Context</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>onSelect(result, response)</td>\n          <td>module</td>\n          <td>Callback on element selection by user. The first parameter includes the filtered response results for that element. The function should return false to prevent default action (closing search results and selecting value).</td>\n        </tr>\n        <tr>\n          <td>onResultsAdd(html)</td>\n          <td>module</td>\n          <td>Callback after processing element template to add HTML to results. Function should return false to prevent default actions.</td>\n        </tr>\n        <tr>\n          <td>onSearchQuery(query)</td>\n          <td>module</td>\n          <td>Callback on search query</td>\n        </tr>\n        <tr>\n          <td>onResults(response)</td>\n          <td>module</td>\n          <td>Callback on server response</td>\n        </tr>\n        <tr>\n          <td>onResultsOpen</td>\n          <td>results element</td>\n          <td>Callback when results are opened</td>\n        </tr>\n        <tr>\n          <td>onResultsClose</td>\n          <td>results element</td>\n          <td>Callback when results are closed</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <h2 class=\"ui dividing header\">\n      Templates\n    </h2>\n\n    <p>These templates are used to generate the HTML structures for search results</p>\n\n    <div class=\"ui ignored info message\">\n      By specifying a search as <code>type: 'customType'</code>, and a custom template under <code>$.fn.search.settings.templates.customType</code> you can create custom search results. Keep in mind that <code>.title</code> will be used for matching results <code>onSelect</code>\n    </div>\n     <table class=\"ui sortable celled definition table\">\n      <thead>\n        <th></th>\n        <th class=\"twelve wide\">Functions</th>\n      </thead>\n        <tr>\n          <td>templates</td>\n          <td>\n            <div class=\"code\" data-type=\"css\">\n            $.fn.search.settings.templates : {\n              escape: function(string) {\n                // returns escaped string for injected results\n              },\n              message: function(message, type) {\n               // returns html for message with given message and type\n              },\n              category: function(response) {\n               // returns results html for category results\n              },\n              standard: function(response) {\n               // returns results html for standard results\n              }\n            }\n            </div>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n\n    <h2 class=\"ui dividing header\">\n      Module\n    </h2>\n\n    <p>These settings are native to all modules, and define how the component ties content to DOM attributes, and debugging settings for the module.</p>\n\n    <table class=\"ui sortable celled definition table\">\n      <thead>\n        <th></th>\n        <th class=\"six wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>name</td>\n          <td>Search</td>\n          <td>Name used in log statements</td>\n        </tr>\n        <tr>\n          <td>namespace</td>\n          <td>search</td>\n          <td>Event namespace. Makes sure module teardown does not effect other events attached to an element.</td>\n        </tr>\n        <tr>\n          <td>regExp</td>\n          <td>\n            <div class=\"code\" data-type=\"css\">\n            regExp: {\n              escape     : /[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g,\n              beginsWith : '(?:\\s|^)'\n            }\n            </div>\n          </td>\n          <td>Regular expressions used for matching</td>\n        </tr>\n        <tr>\n          <td>selector</td>\n          <td>\n            <div class=\"code\" data-type=\"css\">\n            selector : {\n              prompt       : '.prompt',\n              searchButton : '.search.button',\n              results      : '.results',\n              category     : '.category',\n              result       : '.result'\n            }\n            </div>\n          </td>\n          <td>Selectors used to find parts of a module</td>\n        </tr>\n        <tr>\n          <td>metadata</td>\n          <td>\n            <div class=\"code\">\n            metadata: {\n              cache   : 'cache',\n              results : 'results'\n            }\n            </div>\n          </td>\n          <td>HTML5 metadata attributes used internally</td>\n        </tr>\n        <tr>\n          <td>className</td>\n          <td>\n            <div class=\"code\">\n            className: {\n              active  : 'active',\n              empty   : 'empty',\n              focus   : 'focus',\n              loading : 'loading',\n              pressed : 'down'\n            }\n            </div>\n          </td>\n          <td>Class names used to determine element state</td>\n        </tr>\n        <tr>\n          <td>silent</td>\n          <td>False</td>\n          <td>Silences all console output including error messages, regardless of other debug settings.</td>\n        </tr>\n        <tr>\n          <td>debug</td>\n          <td>false</td>\n          <td>Debug output to console</td>\n        </tr>\n        <tr>\n          <td>performance</td>\n          <td>true</td>\n          <td>Show <code>console.table</code> output with performance metrics</td>\n        </tr>\n        <tr>\n          <td>verbose</td>\n          <td>false</td>\n          <td>Debug output includes all internal behaviors</td>\n        </tr>\n        <tr>\n          <td>errors</td>\n          <td colspan=\"2\">\n            <div class=\"code\">\n            error : {\n              source      : 'Cannot search. No source used, and Semantic API module was not included',\n              noResults   : 'Your search returned no results',\n              logging     : 'Error in debug logging, exiting.',\n              noTemplate  : 'A valid template name was not specified.',\n              serverError : 'There was an issue with querying the server.',\n              maxResults  : 'Results must be an array to use maxResults setting',\n              method      : 'The method you called is not defined.'\n            },\n            </div>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n</div>\n"
  },
  {
    "path": "server/documents/modules/shape.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'shape'\nstandalone  : true\n\nelement     : 'shape'\nelementType : 'module'\n\ntitle       : 'Shape'\ndescription : 'A shape is a three dimensional object displayed on a two dimensional plane'\ntype        : 'UI Module'\n\nthemes      : ['default']\n---\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/modules/shape.less\" />\n\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/stylesheets/shape.css\">\n<script src=\"/javascript/shape.js\"></script>\n\n<%- @partial('header', { tabs: 'module' }) %>\n\n<div class=\"main ui container\">\n\n  <div class=\"ui tab\" data-tab=\"definition\">\n\n    <h2 class=\"ui dividing header\">Types</h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Shape</h4>\n      <p>A shape is a three dimensional object including any flat content as a side.</p>\n\n      <div class=\"ui people shape\">\n        <div class=\"sides\">\n          <div class=\"active side\">\n            <div class=\"ui card\">\n              <div class=\"image\">\n                <img src=\"/images/avatar/large/steve.jpg\">\n              </div>\n              <div class=\"content\">\n                <div class=\"header\">Steve Jobes</div>\n                <div class=\"meta\">\n                  <a>Acquaintances</a>\n                </div>\n                <div class=\"description\">\n                  Steve Jobes is a fictional character designed to resemble someone familiar to readers.\n                </div>\n              </div>\n              <div class=\"extra content\">\n                <span class=\"right floated\">\n                  Joined in 2014\n                </span>\n                <span>\n                  <i class=\"user icon\"></i>\n                  151 Friends\n                </span>\n              </div>\n            </div>\n          </div>\n          <div class=\"side\">\n            <div class=\"ui card\">\n              <div class=\"image\">\n                <img src=\"/images/avatar/large/stevie.jpg\">\n              </div>\n              <div class=\"content\">\n                <a class=\"header\">Stevie Feliciano</a>\n                <div class=\"meta\">\n                  <span class=\"date\">Joined in 2014</span>\n                </div>\n                <div class=\"description\">\n                  Stevie Feliciano is a library scientist living in New York City. She likes to spend her time reading, running, and writing.\n                </div>\n              </div>\n              <div class=\"extra content\">\n                <a>\n                  <i class=\"user icon\"></i>\n                  22 Friends\n                </a>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"ui ignored divider\"></div>\n      <div class=\"ui ignored icon direction buttons\">\n        <div class=\"ui button\" data-animation=\"flip\" title=\"Flip Left\" data-direction=\"left\"><i class=\"left long arrow icon\"></i></div>\n        <div class=\"ui button\" data-animation=\"flip\" title=\"Flip Up\" data-direction=\"up\"><i class=\"up long arrow icon\"></i></div>\n        <div class=\"ui icon button\" data-animation=\"flip\" title=\"Flip Down\" data-direction=\"down\"><i class=\"down long arrow icon\"></i></div>\n        <div class=\"ui icon button\" data-animation=\"flip\" title=\"Flip Right\" data-direction=\"right\"><i class=\"right long arrow icon\"></i></div>\n      </div>\n      <div class=\"ui ignored icon direction buttons\">\n        <div class=\"ui button\" title=\"Flip Over\" data-animation=\"flip\" data-direction=\"over\"><i class=\"retweet icon\"></i></div>\n        <div class=\"ui button\" title=\"Flip Back\" data-animation=\"flip\" data-direction=\"back\"><i class=\"flipped retweet icon\"></i></div>\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Cube</h4>\n      <p>A cube shape is formatted so that each side is the face of a cube</p>\n      <div class=\"ui cube shape\">\n        <div class=\"sides\">\n          <div class=\"active side\">\n            <div class=\"content\">\n              <div class=\"center\">\n                1\n              </div>\n            </div>\n          </div>\n          <div class=\"side\">\n            <div class=\"content\">\n              <div class=\"center\">\n                2\n              </div>\n            </div>\n          </div>\n          <div class=\"side\">\n            <div class=\"content\">\n              <div class=\"center\">\n                3\n              </div>\n            </div>\n          </div>\n          <div class=\"side\">\n            <div class=\"content\">\n              <div class=\"center\">\n                4\n              </div>\n            </div>\n          </div>\n          <div class=\"side\">\n            <div class=\"content\">\n              <div class=\"center\">\n                5\n              </div>\n            </div>\n          </div>\n          <div class=\"side\">\n            <div class=\"content\">\n              <div class=\"center\">\n                6\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n\n      <div class=\"ui ignored divider\"></div>\n      <div class=\"ui ignored icon direction buttons\">\n        <div class=\"ui button\" data-animation=\"flip\" title=\"Flip Left\" data-direction=\"left\"><i class=\"left long arrow icon\"></i></div>\n        <div class=\"ui button\" data-animation=\"flip\" title=\"Flip Up\" data-direction=\"up\"><i class=\"up long arrow icon\"></i></div>\n        <div class=\"ui icon button\" data-animation=\"flip\" title=\"Flip Down\" data-direction=\"down\"><i class=\"down long arrow icon\"></i></div>\n        <div class=\"ui icon button\" data-animation=\"flip\" title=\"Flip Right\" data-direction=\"right\"><i class=\"right long arrow icon\"></i></div>\n      </div>\n      <div class=\"ui ignored icon direction buttons\">\n        <div class=\"ui button\" title=\"Flip Over\" data-animation=\"flip\" data-direction=\"over\"><i class=\"retweet icon\"></i></div>\n        <div class=\"ui button\" title=\"Flip Back\" data-animation=\"flip\" data-direction=\"back\"><i class=\"flipped retweet icon\"></i></div>\n      </div>\n\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">Text</h4>\n      <p>A text shape is formatted to allow for sides of text to be displayed</p>\n\n      <div class=\"ui info ignored icon message\">\n        <i class=\"info letter icon\"></i>\n        <div class=\"content\">\n          <div class=\"header\">Using Shapes</div>\n          <ul class=\"list\">\n            <li>A shape must have defined width and heights for each side or else text flow may change during animation</li>\n            <li>The module uses 3D transformations which are currently only supported in modern versions of Chrome, Safari, and Firefox.</li>\n          </ul>\n        </div>\n      </div>\n\n      <div class=\"ui text shape\">\n        <div class=\"sides\">\n          <div class=\"active ui header side\">Did you know? This side starts visible.</div>\n          <div class=\"ui header side\">Help, its another side!</div>\n          <div class=\"ui header side\">This is the last side</div>\n        </div>\n      </div>\n\n      <div class=\"ui ignored divider\"></div>\n      <div class=\"ui ignored icon direction buttons\">\n        <div class=\"ui button\" data-animation=\"flip\" title=\"Flip Left\" data-direction=\"left\"><i class=\"left long arrow icon\"></i></div>\n        <div class=\"ui button\" data-animation=\"flip\" title=\"Flip Up\" data-direction=\"up\"><i class=\"up long arrow icon\"></i></div>\n        <div class=\"ui icon button\" data-animation=\"flip\" title=\"Flip Down\" data-direction=\"down\"><i class=\"down long arrow icon\"></i></div>\n        <div class=\"ui icon button\" data-animation=\"flip\" title=\"Flip Right\" data-direction=\"right\"><i class=\"right long arrow icon\"></i></div>\n      </div>\n      <div class=\"ui ignored icon direction buttons\">\n        <div class=\"ui button\" title=\"Flip Over\" data-animation=\"flip\" data-direction=\"over\"><i class=\"retweet icon\"></i></div>\n        <div class=\"ui button\" title=\"Flip Back\" data-animation=\"flip\" data-direction=\"back\"><i class=\"flipped retweet icon\"></i></div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"examples\">\n\n    <h2 class=\"ui dividing header\">Examples</h2>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Shape Types</h4>\n      <p>Shapes do not have to be regular or have its sides match up in length and width to animate correctly.</p>\n\n      <h3 class=\"ui header\">Shape</h3>\n      <div class=\"ui type buttons\">\n        <div class=\"active ui button\" data-shape=\"auto\">Auto</div>\n        <div class=\"ui button\" data-shape=\"square\">Square</div>\n        <div class=\"ui button\" data-shape=\"irregular\">Irregular</div>\n      </div>\n      <div class=\"ui divider\"></div>\n      <div class=\"demo auto ui shape\">\n        <div class=\"sides\">\n          <div class=\"active first side\">\n            <img src=\"/images/leaves/1.png\" class=\"ui medium image\">\n          </div>\n          <div class=\"second side\">\n            <img src=\"/images/leaves/3.png\" class=\"ui medium image\">\n          </div>\n          <div class=\"third side\">\n            <img src=\"/images/leaves/5.png\" class=\"ui medium image\">\n          </div>\n        </div>\n      </div>\n\n      <div class=\"ui ignored divider\"></div>\n      <div class=\"ui ignored icon direction buttons\">\n        <div class=\"ui button\" data-animation=\"flip\" title=\"Flip Left\" data-direction=\"left\"><i class=\"left long arrow icon\"></i></div>\n        <div class=\"ui button\" data-animation=\"flip\" title=\"Flip Up\" data-direction=\"up\"><i class=\"up long arrow icon\"></i></div>\n        <div class=\"ui icon button\" data-animation=\"flip\" title=\"Flip Down\" data-direction=\"down\"><i class=\"down long arrow icon\"></i></div>\n        <div class=\"ui icon button\" data-animation=\"flip\" title=\"Flip Right\" data-direction=\"right\"><i class=\"right long arrow icon\"></i></div>\n      </div>\n      <div class=\"ui ignored icon direction buttons\">\n        <div class=\"ui button\" title=\"Flip Over\" data-animation=\"flip\" data-direction=\"over\"><i class=\"retweet icon\"></i></div>\n        <div class=\"ui button\" title=\"Flip Back\" data-animation=\"flip\" data-direction=\"back\"><i class=\"flipped retweet icon\"></i></div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"usage\">\n\n    <h2 class=\"ui dividing header\">Getting Started</h2>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Required Markup</h4>\n      <p>Shapes can have any arbitrary content, just wrap each side in <code>side</code></p>\n      <div class=\"code\" data-type=\"html\">\n        <div class=\"ui shape\">\n          <div class=\"sides\">\n            <div class=\"active side\">This side starts visible.</div>\n            <div class=\"side\">This is yet another side</div>\n            <div class=\"side\">This is the last side</div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"no example\">\n\n      <h4 class=\"ui header\">Animating with Javascript</h4>\n      <p>Animations use CSS3 transitions and Javascript to set-up the correct conditions.</p>\n\n      <p>Initializing a shape</p>\n      <div class=\"code\">\n        $('.shape').shape();\n      </div>\n\n      <p>Transitions automatically assume next side is the next sibling (or first if last element)</p>\n      <div class=\"code\">\n        $('.shape').shape('flip up');\n      </div>\n\n      <p>To manually set the next side to appear use a selector or jQuery object</p>\n      <div class=\"code\">\n      $('.shape')\n        .shape('set next side', '.second.side')\n        .shape('flip up')\n      ;\n      </div>\n\n      <p>Any internal method can be invoked programmatically</p>\n      <div class=\"code\">\n        $('.shape').shape('repaint');\n      </div>\n\n    </div>\n\n    <h2 class=\"ui dividing header\">Behavior</h2>\n\n    <div class=\"no example\">\n      <p>All the following behaviors can be called using the syntax:</p>\n      <div class=\"code\">\n      $('.your.element')\n        .shape('behavior name', argumentOne, argumentTwo)\n      ;\n      </div>\n    </div>\n\n    <table class=\"ui definition sortable celled table segment\">\n      <thead>\n        <th>Behavior</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>flip up</td>\n          <td>Flips the shape upward</td>\n        </tr>\n        <tr>\n          <td>flip down</td>\n          <td>Flips the shape downward</td>\n        </tr>\n        <tr>\n          <td>flip right</td>\n          <td>Flips the shape right</td>\n        </tr>\n        <tr>\n          <td>flip left</td>\n          <td>Flips the shape left</td>\n        </tr>\n        <tr>\n          <td>flip over</td>\n          <td>Flips the shape over clock-wise</td>\n        </tr>\n        <tr>\n          <td>flip back</td>\n          <td>Flips the shape over counter-clockwise</td>\n        </tr>\n        <tr>\n          <td>set next side(selector)</td>\n          <td>Set the next side to a specific selector</td>\n        </tr>\n        <tr>\n          <td>is animating</td>\n          <td>Returns whether shape is currently animating</td>\n        </tr>\n        <tr>\n          <td>reset</td>\n          <td>Removes all inline styles</td>\n        </tr>\n        <tr>\n          <td>queue(animation)</td>\n          <td>Queues an animationtill after current animation</td>\n        </tr>\n        <tr>\n          <td>repaint</td>\n          <td>Forces a reflow on element</td>\n        </tr>\n        <tr>\n          <td>set default side</td>\n          <td>Set the next side to next sibling to active element</td>\n        </tr>\n        <tr>\n          <td>set stage size</td>\n          <td>Sets shape to the content size of the next side</td>\n        </tr>\n        <tr>\n          <td>refresh</td>\n          <td>Refreshes the selector cache for element sides</td>\n        </tr>\n        <tr>\n          <td>get transform down</td>\n          <td>Returns translation for next side staged below</td>\n        </tr>\n        <tr>\n          <td>get transform left</td>\n          <td>Returns translation for next side staged left</td>\n        </tr>\n        <tr>\n          <td>get transform right</td>\n          <td>Returns translation for next side staged right</td>\n        </tr>\n        <tr>\n          <td>get transform up</td>\n          <td>Returns translation for next side staged up</td>\n        </tr>\n        <tr>\n          <td>get transform down</td>\n          <td>Returns translation for next side staged down</td>\n        </tr>\n      </tbody>\n    </table>\n\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"settings\">\n\n    <h3 class=\"ui header\">\n      Shape Settings\n      <div class=\"sub header\">Shape settings modify the shape's behavior</div>\n    </h3>\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <th>Setting</th>\n        <th class=\"four wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>duration</td>\n          <td>700ms</td>\n          <td>Duration of side change animation</td>\n        </tr>\n        <tr>\n          <td>width <div class=\"ui horizontal teal label\">2.2</div></td>\n          <td>initial</td>\n          <td>\n            <div class=\"ui bulleted list\">\n              <div class=\"item\">When set to <code>next</code> will use the width of the next <code>side</code> during the shape's animation.</div>\n              <div class=\"item\">When set to <code>initial</code> it will use the width of the shape at initialization.</div>\n              <div class=\"item\">When set to a specifix pixel height, will force the width to that height.</div>\n            </div>\n          </td>\n        </tr>\n        <tr>\n          <td>height <div class=\"ui horizontal teal label\">2.2</div></td>\n          <td>initial</td>\n          <td>\n            <div class=\"ui bulleted list\">\n              <div class=\"item\">When set to <code>next</code> will use the height of the next <code>side</code> during the shape's animation.</div>\n              <div class=\"item\">When set to <code>initial</code> it will use the height of the shape at initialization.</div>\n              <div class=\"item\">When set to a specifix pixel height, will force the height to that height.</div>\n            </div>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n\n    <div class=\"ui horizontal section divider\"><i class=\"icon setting\"></i></div>\n\n    <h3 class=\"ui header\">\n      Callbacks\n      <div class=\"sub header\">Callbacks specify a function to occur after a specific behavior.</div>\n    </h3>\n\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <th class=\"four wide\">Setting</th>\n        <th>Context</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>beforeChange</td>\n          <td>Next Side</td>\n          <td>Is called before side change</td>\n        </tr>\n        <tr>\n          <td>onChange</td>\n          <td>Active Side</td>\n          <td>Is called after visible side change</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <div class=\"ui horizontal section divider\"><i class=\"icon setting\"></i></div>\n\n    <h3 class=\"ui header\">\n      DOM Settings\n      <div class=\"sub header\">DOM settings specify how this module should interface with the DOM</div>\n    </h3>\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <th>Setting</th>\n        <th class=\"four wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>namespace</td>\n          <td>shape</td>\n          <td>Event namespace. Makes sure module teardown does not effect other events attached to an element.</td>\n        </tr>\n        <tr>\n          <td>selector</td>\n          <td colspan=\"2\">\n            <div class=\"code\">\n            selector    : {\n              sides : '.sides',\n              side  : '.side'\n            }\n            </div>\n          </td>\n        </tr>\n        <tr>\n          <td>className</td>\n          <td colspan=\"2\">\n            <div class=\"code\">\n            className   : {\n              animating : 'animating',\n              hidden    : 'hidden',\n              loading   : 'loading',\n              active    : 'active'\n            }\n            </div>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n\n    <div class=\"ui horizontal section divider\"><i class=\"icon setting\"></i></div>\n\n    <h3 class=\"ui header\">\n      Debug Settings\n      <div class=\"sub header\">Debug settings controls debug output to the console</div>\n    </h3>\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <th>Setting</th>\n        <th class=\"four wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>name</td>\n          <td>Shape</td>\n          <td>Name used in debug logs</td>\n        </tr>\n        <tr>\n          <td>silent</td>\n          <td>False</td>\n          <td>Silences all console output including error messages, regardless of other debug settings.</td>\n        </tr>\n        <tr>\n          <td>debug</td>\n          <td>False</td>\n          <td>Provides standard debug output to console</td>\n        </tr>\n        <tr>\n          <td>performance</td>\n          <td>True</td>\n          <td>Provides standard debug output to console</td>\n        </tr>\n        <tr>\n          <td>verbose</td>\n          <td>True</td>\n          <td>Provides ancillary debug output to console</td>\n        </tr>\n        <tr>\n          <td>error</td>\n          <td colspan=\"2\">\n            <div class=\"code\">\n            error: {\n              side   : 'You tried to switch to a side that does not exist.',\n              method : 'The method you called is not defined'\n            }\n            </div>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/modules/sidebar.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'minimal'\nstandalone  : true\n\nelement     : 'sidebar'\nelementType : 'element'\n\ntitle       : 'Sidebar'\ndescription : 'A sidebar hides additional content beside a page.'\ntype        : 'UI Module'\n\nthemes      : ['Default']\n---\n\n<script src=\"/javascript/sidebar.js\"></script>\n\n<%- @partial('header', { tabs: 'module' }) %>\n\n<div class=\"main ui container\">\n\n  <div class=\"ui active tab\" data-tab=\"definition\">\n\n    <h2 class=\"ui dividing header\">Types</h2>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Sidebar</h4>\n      <p>A sidebar</p>\n      <div class=\"ui ignored warning message\">\n        <p>Although sidebars can be used with any content, in most cases, sidebars are used with <a href=\"/collections/menu.html#vertical\"><code>inverted vertical menu</code></a>. Please see the <a href=\"#/usage\">usage tab</a> for more details.</p>\n      </div>\n      <div class=\"code\" data-type=\"html\" data-escape=\"true\">\n        &lt;body&gt;\n          &lt;div class=&quot;ui sidebar inverted vertical menu&quot;&gt;\n            &lt;a class=&quot;item&quot;&gt;\n              1\n            &lt;/a&gt;\n            &lt;a class=&quot;item&quot;&gt;\n              2\n            &lt;/a&gt;\n            &lt;a class=&quot;item&quot;&gt;\n              3\n            &lt;/a&gt;\n          &lt;/div&gt;\n          &lt;div class=&quot;pusher&quot;&gt;\n            &lt;!-- Site content !--&gt;\n          &lt;/div&gt;\n        &lt;/body&gt;\n      </div>\n      <div class=\"code\" data-demo=\"true\" data-type=\"javascript\" data-eval=\"$('.simple.sidebar').sidebar('toggle');\">\n      $('.ui.sidebar')\n        .sidebar('toggle')\n      ;\n      </div>\n    </div>\n    <div class=\"another example\" data-class=\"labeled icon menu\" data-use-content=\"true\">\n      <div class=\"code\" data-type=\"html\" data-escape=\"true\">\n        &lt;div class=&quot;ui left demo vertical inverted sidebar labeled icon menu&quot;&gt;\n          &lt;a class=&quot;item&quot;&gt;\n            &lt;i class=&quot;home icon&quot;&gt;&lt;/i&gt;\n            Home\n          &lt;/a&gt;\n          &lt;a class=&quot;item&quot;&gt;\n            &lt;i class=&quot;block layout icon&quot;&gt;&lt;/i&gt;\n            Topics\n          &lt;/a&gt;\n          &lt;a class=&quot;item&quot;&gt;\n            &lt;i class=&quot;smile icon&quot;&gt;&lt;/i&gt;\n            Friends\n          &lt;/a&gt;\n        &lt;/div&gt;\n      </div>\n      <div class=\"code\" data-demo=\"true\" data-type=\"javascript\" data-eval=\"$('.left.demo.sidebar').sidebar('toggle');\">\n      $('.ui.labeled.icon.sidebar')\n        .sidebar('toggle')\n      ;\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">States</h2>\n\n    <h3 class=\"ui header\">Sidebar</h3>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Visible</h4>\n      <p>A sidebar can be visible on the page</p>\n      <div class=\"ui ignored info message\">\n        To have a sidebar appear on page load simply add the class <code>visible</code> to the sidebar.\n      </div>\n      <div class=\"code\" data-type=\"html\">\n        <div class=\"ui visible sidebar\"></div>\n      </div>\n    </div>\n\n    <h3>Pusher</h3>\n\n    <div class=\"no example\" data-class=\"dimmed\" data-use-content=\"true\">\n      <h4 class=\"ui header\">Dimmed</h4>\n      <p>A pusher can be dimmed</p>\n      <div class=\"code\" data-type=\"html\">\n        <div class=\"dimmed pusher\"></div>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Variations</h2>\n\n    <div class=\"no direction example\">\n      <h4 class=\"ui header\">Direction</h4>\n      <p>A sidebar can appear on different sides of the page</p>\n\n      <div class=\"code\" data-type=\"html\">\n        <div class=\"ui top sidebar\"></div>\n        <div class=\"ui right sidebar\"></div>\n        <div class=\"ui bottom sidebar\"></div>\n        <div class=\"ui left sidebar\"></div>\n      </div>\n\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Width</h4>\n      <p>A sidebar can specify its width</p>\n      <div class=\"ui message\">\n        A sidebar will automatically adjust its animations to match any custom size specified in CSS\n      </div>\n      <div class=\"code\" data-type=\"html\">\n        <div class=\"ui thin sidebar\"></div>\n        <div class=\"ui very thin sidebar\"></div>\n        <div class=\"ui sidebar\"></div>\n        <div class=\"ui wide sidebar\"></div>\n        <div class=\"ui very wide sidebar\"></div>\n      </div>\n\n    </div>\n\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"usage\">\n\n    <h2 class=\"ui dividing header\">Set-up</h2>\n\n    <div class=\"no example\" data-class=\"sidebar, pusher\">\n      <h4 class=\"ui header\">Page Structure</h4>\n      <p>Using a sidebar requires a specific page structure. For optimal performance your page should be already set-up with this structure before initializing a sidebar.</p>\n      <div class=\"ui info message\">\n        Sidebar will automatically add the correct layout on first load if it is not set-up, however fixing your page's layout on load <b>will reduce performance and is not recommended</b>.\n      </div>\n      <div class=\"code\" data-type=\"html\" data-escape=\"true\">\n        &lt;body&gt;\n          &lt;div class=&quot;ui sidebar&quot;&gt;\n            ...\n          &lt;/div&gt;\n          &lt;div class=&quot;pusher&quot;&gt;\n            Your site&#39;s actual content\n          &lt;/div&gt;\n        &lt;/body&gt;\n      </div>\n    </div>\n    <div class=\"no example\" data-class=\"vertical menu\" data-use-content=\"true\">\n      <h4 class=\"ui header\">Using with Menu</h4>\n      <p>Sidebars can be any content, however the most common type of content to display off-canvas is a <a href=\"/collections/menu.html\"><code>menu</code></a>. To understand the required structure for a menu, please refer to the <a href=\"/collections/menu.html\">menu documentation</a>.</p>\n      <div class=\"code\" data-escape=\"true\">\n        &lt;body&gt;\n          &lt;div class=&quot;ui left vertical menu sidebar&quot;&gt;\n            &lt;a class=&quot;item&quot;&gt;\n              Item 1\n            &lt;/a&gt;\n            &lt;a class=&quot;item&quot;&gt;\n              Item 2\n            &lt;/a&gt;\n            &lt;a class=&quot;item&quot;&gt;\n              Item 3\n            &lt;/a&gt;\n          &lt;/div&gt;\n          &lt;div class=&quot;pusher&quot;&gt;\n            &lt;!-- Site content !--&gt;\n          &lt;/div&gt;\n        &lt;/body&gt;\n      </div>\n    </div>\n\n    <div class=\"no example\" data-class=\"fixed\" data-use-content=\"true\">\n      <h4 class=\"ui header\">Using Fixed Content</h4>\n      <p>Any fixed position content that should move with page content when your sidebar is visible, should receive the class name <code>fixed</code> and exist as a sibling element to your sidebar.\n      <div class=\"ui ignored warning message\">\n        Fixed content that is not included adjacent to your <code>pusher</code> <b>will lose its positioning</b> when a sidebar is shown.\n      </div>\n      <div class=\"code\" data-type=\"html\" data-escape=\"true\">\n        &lt;body&gt;\n          &lt;div class=&quot;ui sidebar&quot;&gt;\n            ...\n          &lt;/div&gt;\n          &lt;div class=&quot;ui top fixed menu&quot;&gt;\n            ...\n          &lt;/div&gt;\n          &lt;div class=&quot;pusher&quot;&gt;\n            Your site&#39;s actual content\n          &lt;/div&gt;\n        &lt;/body&gt;\n      </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">iOS Sidebars</h4>\n      <p>Sidebars use a special fix for iOS that are added using <code>userAgent</code> detection.</p>\n      <p>This should have no meaningful affect on your code, but will prevent the canvas from incorrectly autoresizing when a sidebar opens.</p>\n      <div class=\"code\" data-type=\"css\">\n      html.ios {\n        overflow-x: hidden;\n        -webkit-overflow-scrolling: touch;\n      }\n      html.ios,\n      html.ios body {\n        height: initial !important;\n      }\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Behavior</h2>\n\n    <p>All the following behaviors can be called using the syntax:</p>\n    <div class=\"code\">\n    $('.your.element')\n      .sidebar('behavior name', argumentOne, argumentTwo)\n    ;\n    </div>\n\n    <table class=\"ui definition celled sortable table segment\">\n      <thead>\n        <tr>\n          <th>Behavior</th>\n          <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>attach events(selector, event)</td>\n          <td>Attaches sidebar action to given selector. Default event if none specified is toggle</td>\n        </tr>\n        <tr>\n          <td>show</td>\n          <td>Shows sidebar</td>\n        </tr>\n        <tr>\n          <td>hide</td>\n          <td>Hides sidebar</td>\n        </tr>\n        <tr>\n          <td>toggle</td>\n          <td>Toggles visibility of sidebar</td>\n        </tr>\n        <tr>\n          <td>is visible</td>\n          <td>Returns whether sidebar is visible</td>\n        </tr>\n        <tr>\n          <td>is hidden</td>\n          <td>Returns whether sidebar is hidden</td>\n        </tr>\n        <tr>\n          <td>push page</td>\n          <td>Pushes page content to be visible alongside sidebar</td>\n        </tr>\n        <tr>\n          <td>get direction</td>\n          <td>Returns direction of current sidebar</td>\n        </tr>\n        <tr>\n          <td>pull page</td>\n          <td>Returns page content to original position</td>\n        </tr>\n        <tr>\n          <td>add body CSS</td>\n          <td>Adds stylesheet to page head to trigger sidebar animations</td>\n        </tr>\n        <tr>\n          <td>remove body CSS</td>\n          <td>Removes any inline stylesheets for sidebar animation</td>\n        </tr>\n        <tr>\n          <td>get transition event</td>\n          <td>Returns vendor prefixed transition end event</td>\n        </tr>\n      </tbody>\n    </table>\n\n\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"examples\">\n\n    <h2 class=\"ui header\">Examples</h2>\n\n    <div class=\"no direction example\">\n      <h4 class=\"ui header\">Transitions</h4>\n      <p>Not all sidebar transitions are available for every sidebar direction, or when multiple sidebars are visible at a time.</p>\n      <table class=\"ui celled definition table\">\n        <thead>\n          <tr>\n            <th></th>\n            <th>Multiple Visible <i class=\"help circle link icon\" data-content=\"Whether multiple sidebars of this type can be visible at same time\"></i></th>\n            <th>Supports Vertical Sidebars</th>\n            <th>Supports Horizontal Sidebars</th>\n          </tr>\n        </thead>\n        <tbody>\n          <tr>\n            <td>Overlay</td>\n            <td><i class=\"green check icon\"></i></td>\n            <td><i class=\"green check icon\"></i></td>\n            <td><i class=\"green check icon\"></i></td>\n          </tr>\n          <tr>\n            <td>Push</td>\n            <td><i class=\"green check icon\"></i></td>\n            <td><i class=\"green check icon\"></i></td>\n            <td><i class=\"green check icon\"></i></td>\n          </tr>\n          <tr>\n            <td>Scale Down</td>\n            <td><i class=\"green check icon\"></i></td>\n            <td><i class=\"green check icon\"></i></td>\n            <td><i class=\"red cancel icon\"></i></td>\n          </tr>\n          <tr>\n            <td>Uncover</td>\n            <td><i class=\"red cancel icon\"></i></td>\n            <td><i class=\"green check icon\"></i></td>\n            <td><i class=\"red cancel icon\"></i></td>\n          </tr>\n          <tr>\n            <td>Slide Along</td>\n            <td><i class=\"red cancel icon\"></i></td>\n            <td><i class=\"green check icon\"></i></td>\n            <td><i class=\"red cancel icon\"></i></td>\n          </tr>\n          <tr>\n            <td>Slide Out</td>\n            <td><i class=\"red cancel icon\"></i></td>\n            <td><i class=\"green check icon\"></i></td>\n            <td><i class=\"red cancel icon\"></i></td>\n          </tr>\n        </tbody>\n      </table>\n\n      <div class=\"ui toggle dim checkbox\">\n        <input type=\"checkbox\" name=\"dim\" />\n        <label>Dim Page</label>\n      </div>\n\n      <div class=\"ui hidden divider\"></div>\n\n      <h5 class=\"ui header\">Direction</h5>\n      <div class=\"ui buttons\">\n        <div class=\"ui button\" data-direction=\"left\">\n          Left\n        </div>\n        <div class=\"ui active button\" data-direction=\"right\">\n          Right\n        </div>\n        <div class=\"ui button\" data-direction=\"top\">\n          Top\n        </div>\n        <div class=\"ui button\" data-direction=\"bottom\">\n          Bottom\n        </div>\n      </div>\n\n      <div class=\"ui hidden divider\"></div>\n\n      <h5 class=\"ui header\">All Direction Animations</h5>\n      <div class=\"ui button\" data-transition=\"overlay\">\n        Overlay\n      </div>\n      <div class=\"ui button\" data-transition=\"push\">\n        Push\n      </div>\n      <div class=\"ui button\" data-transition=\"scale down\">\n        Scale Down\n      </div>\n\n      <h5 class=\"ui header\">Vertical-Only Animations</h5>\n      <div class=\"ui horizontal button\" data-transition=\"uncover\">\n        Uncover\n      </div>\n      <div class=\"ui horizontal button\" data-transition=\"slide along\">\n        Slide Along\n      </div>\n      <div class=\"ui horizontal button\" data-transition=\"slide out\">\n        Slide Out\n      </div>\n\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Displaying Multiple</h4>\n      <p>Multiple sidebars can be displayed at the same time only when using a supported animation like <code>push</code> or <code>overlay</code>.</p>\n      <div class=\"ui warning message\">You may need to manually set the z-index on elements to ensure the intended sidebar element appears on top.</div>\n\n      <div class=\"ui info message\">\n        If you are triggering multiple sidebars at the same time, its recommended to set the transition to overlay.\n      </div>\n\n      <div class=\"code\" data-demo=\"true\" data-type=\"javascript\">\n      // showing multiple\n      $('.demo.sidebar')\n        .sidebar('setting', 'transition', 'overlay')\n        .sidebar('toggle')\n      ;\n      </div>\n    </div>\n    <div class=\"context example\">\n      <h4 class=\"ui header\">Using a custom context</h4>\n      <p>A sidebar can be initialized inside any element, not just a page's <code>body</code>.</p>\n      <div class=\"ui ignored info message\">\n        A sidebar's <code>context</code> cannot have any padding. You can solve this by padding its inner content, or using an additional containing element\n      </div>\n      <div class=\"ui top attached demo menu\">\n        <a class=\"item\">\n          <i class=\"sidebar icon\"></i>\n          Menu\n        </a>\n      </div>\n      <div class=\"ui bottom attached segment\">\n        <div class=\"ui inverted labeled icon left inline vertical sidebar menu\">\n          <a class=\"item\">\n            <i class=\"home icon\"></i>\n            Home\n          </a>\n          <a class=\"item\">\n            <i class=\"block layout icon\"></i>\n            Topics\n          </a>\n          <a class=\"item\">\n            <i class=\"smile icon\"></i>\n            Friends\n          </a>\n          <a class=\"item\">\n            <i class=\"calendar icon\"></i>\n            History\n          </a>\n        </div>\n        <div class=\"pusher\">\n          <div class=\"ui basic segment\">\n            <h3 class=\"ui header\">Application Content</h3>\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n          </div>\n        </div>\n      </div>\n      <div class=\"evaluated code\" data-type=\"javascript\">\n      // using context\n      $('.context.example .ui.sidebar')\n        .sidebar({\n          context: $('.context.example .bottom.segment')\n        })\n        .sidebar('attach events', '.context.example .menu .item')\n      ;\n      </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Triggering show/hide with other content</h4>\n      <p>For convenience calling attach events will allow you to bind events. By default this will toggle the sidebar in and out of view on click</p>\n      <div class=\"code\" data-demo=\"true\">\n      $('.left.demo.sidebar').first()\n        .sidebar('attach events', '.toggle.button')\n      ;\n      $('.toggle.button')\n        .removeClass('disabled')\n      ;\n      </div>\n      <div class=\"ui disabled secondary labeled icon toggle button\">\n        <i class=\"left arrow icon\"></i>\n        Trigger Sidebar\n      </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Triggering custom behavior with other content</h4>\n      <p>You can also specify what behavior should occur when the element is clicked</p>\n      <div class=\"code\" data-demo=\"true\">\n      $('.left.demo.sidebar').first()\n        .sidebar('attach events', '.open.button', 'show')\n      ;\n      $('.open.button')\n        .removeClass('disabled')\n      ;\n      </div>\n      <div class=\"ui disabled secondary labeled icon open button\">\n        <i class=\"left arrow icon\"></i>\n        Open Sidebar\n      </div>\n    </div>\n\n    <div class=\"visible example\">\n      <h4 class=\"ui header\">Starting Visible</h4>\n      <p>A sidebar can start visible by adding the class name <code>visible</code></p>\n      <div class=\"ui ignored warning message\">\n        You must include the class <code>pushable</code> on a sidebars containing element for it to appear correctly before Javascript initializes the element\n      </div>\n      <div class=\"ui ignored info message\">\n        Although sidebars support any size content, sidebars that are visible on load only support standard, predefined sizes like <code>thin</code> or <code>wide</code>. This makes sure content can be positioned correctly before Javascript is available.\n      </div>\n      <div class=\"ui bottom attached segment pushable\">\n        <div class=\"ui visible inverted left vertical sidebar menu\">\n          <a class=\"item\">\n            <i class=\"home icon\"></i>\n            Home\n          </a>\n          <a class=\"item\">\n            <i class=\"block layout icon\"></i>\n            Topics\n          </a>\n          <a class=\"item\">\n            <i class=\"smile icon\"></i>\n            Friends\n          </a>\n          <a class=\"item\">\n            <i class=\"calendar icon\"></i>\n            History\n          </a>\n        </div>\n        <div class=\"pusher\">\n          <div class=\"ui basic segment\">\n            <h3 class=\"ui header\">Application Content</h3>\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/short-paragraph.png\">\n          </div>\n        </div>\n      </div>\n      <div class=\"code\" data-demo=\"true\" data-type=\"javascript\">\n      // showing multiple\n      $('.visible.example .ui.sidebar')\n        .sidebar({\n          context: '.visible.example .bottom.segment'\n        })\n        .sidebar('hide')\n      ;\n      </div>\n    </div>\n\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"settings\">\n\n    <h2 class=\"ui dividing header\">\n      Sidebar\n    </h2>\n\n    <h4 class=\"ui header\">\n      Behavior\n    </h4>\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n          <th>Setting</th>\n          <th class=\"four wide\">Default</th>\n          <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>context</td>\n          <td>body</td>\n          <td>Context which sidebar will appear inside</td>\n        </tr>\n        <tr>\n          <td>exclusive</td>\n          <td>false</td>\n          <td>Whether multiple sidebars can be open at once</td>\n        </tr>\n        <tr>\n          <td>closable</td>\n          <td>true</td>\n          <td>Whether sidebar can be closed by clicking on page</td>\n        </tr>\n        <tr>\n          <td>dimPage</td>\n          <td>true</td>\n          <td>Whether to dim page contents when sidebar is visible</td>\n        </tr>\n        <tr>\n          <td>scrollLock</td>\n          <td>false</td>\n          <td>Whether to lock page scroll when sidebar is visible</td>\n        </tr>\n        <tr>\n          <td>returnScroll</td>\n          <td>false</td>\n          <td>Whether to return to original scroll position when sidebar is hidden, automatically occurs with <code>transition: scale</code></td>\n        </tr>\n        <tr>\n          <td>delaySetup</td>\n          <td>false</td>\n          <td>When sidebar is initialized without the proper HTML, using this option will defer creation of DOM to use <code>requestAnimationFrame</code>.</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <div class=\"ui horizontal section divider\"><i class=\"icon setting\"></i></div>\n\n    <h4 class=\"ui header\">\n      Animation\n    </h4>\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n          <th>Setting</th>\n          <th class=\"six wide\">Default</th>\n          <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>transition</td>\n          <td>auto</td>\n          <td>Named transition to use when animating sidebar. Defaults to 'auto' which selects transition from <code>defaultTransition</code> based on direction.</td>\n        </tr>\n        <tr>\n          <td>mobileTransition</td>\n          <td>auto</td>\n          <td>Named transition to use when animating when detecting mobile device. Defaults to 'auto' which selects transition from <code>defaultTransition</code> based on direction.</td>\n        </tr>\n        <tr>\n          <td>defaultTransition</td>\n          <td>\n            <div class=\"code\" data-type=\"javascript\">\n            {\n              computer: {\n                left   : 'uncover',\n                right  : 'uncover',\n                top    : 'overlay',\n                bottom : 'overlay'\n              },\n              mobile: {\n                left   : 'uncover',\n                right  : 'uncover',\n                top    : 'overlay',\n                bottom : 'overlay'\n              }\n            }\n            </div>\n          </td>\n          <td>Default transitions for each direction and screen size, used with <code>transition: auto</code></td>\n        </tr>\n        <tr>\n          <td>useLegacy</td>\n          <td>false</td>\n          <td>Whether Javascript animations should be used. Defaults to <code>false</code>. Setting to <code>auto</code> will use legacy animations only for browsers that do not support CSS transforms</td>\n        </tr>\n        <tr>\n          <td>duration</td>\n          <td>500</td>\n          <td>Duration of sidebar animation when using legacy Javascript animation</td>\n        </tr>\n        <tr>\n          <td>easing</td>\n          <td>easeInOutQuint</td>\n          <td>Easing to use when using legacy Javascript animation</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <div class=\"ui horizontal section divider\"><i class=\"icon setting\"></i></div>\n\n    <h4 class=\"ui header\">Callbacks</h4>\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n          <th class=\"four wide\">Setting</th>\n          <th>Context</th>\n          <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>onVisible</td>\n          <td>Sidebar</td>\n          <td>Is called when a sidebar begins animating in.</td>\n        </tr>\n        <tr>\n          <td>onShow</td>\n          <td>Sidebar</td>\n          <td>Is called when a sidebar has finished animating in.</td>\n        </tr>\n        <tr>\n          <td>onChange</td>\n          <td>Sidebar</td>\n          <td>Is called when a sidebar begins to hide or show</td>\n        </tr>\n        <tr>\n          <td>onHide</td>\n          <td>Sidebar</td>\n          <td>Is called before a sidebar begins to animate out.</td>\n        </tr>\n        <tr>\n          <td>onHidden</td>\n          <td>Sidebar</td>\n          <td>Is called after a sidebar has finished animating out.</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <h2 class=\"ui dividing header\">\n      Module\n    </h2>\n\n    <h4 class=\"ui header\">\n      DOM Settings\n    </h4>\n    <table class=\"ui celled definition table segment\">\n      <thead>\n        <tr>\n          <th>Setting</th>\n          <th class=\"six wide\">Default</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>namespace</td>\n          <td>sidebar</td>\n        </tr>\n        <tr>\n          <td>className</td>\n          <td>\n            <div class=\"code\" data-type=\"javascript\">\n            className         : {\n              active    : 'active',\n              animating : 'animating',\n              dimmed    : 'dimmed',\n              ios       : 'ios',\n              pushable  : 'pushable',\n              pushed    : 'pushed',\n              right     : 'right',\n              top       : 'top',\n              left      : 'left',\n              bottom    : 'bottom',\n              visible   : 'visible'\n            }\n            </div>\n          </td>\n        </tr>\n        <tr>\n          <td>regExp</td>\n          <td>\n            <div class=\"code\" data-type=\"javascript\">\n            regExp: {\n              ios    : /(iPad|iPhone|iPod)/g,\n              mobile : /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/g\n            }\n            </div>\n          </td>\n        </tr>\n        <tr>\n          <td>selector</td>\n          <td>\n            <div class=\"code\" data-type=\"javascript\">\n            selector: {\n              fixed   : '.fixed',\n              omitted : 'script, link, style, .ui.modal, .ui.dimmer, .ui.nag, .ui.fixed',\n              pusher  : '.pusher',\n              sidebar : '.ui.sidebar'\n            }\n            </div>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n\n    <div class=\"ui horizontal section divider\"><i class=\"icon setting\"></i></div>\n\n    <h4 class=\"ui header\">\n      Debug\n    </h4>\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n          <th>Setting</th>\n          <th class=\"four wide\">Default</th>\n          <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>name</td>\n          <td>Sidebar</td>\n          <td>Name used in debug logs</td>\n        </tr>\n        <tr>\n          <td>silent</td>\n          <td>False</td>\n          <td>Silences all console output including error messages, regardless of other debug settings.</td>\n        </tr>\n        <tr>\n          <td>debug</td>\n          <td>False</td>\n          <td>Provides standard debug output to console</td>\n        </tr>\n        <tr>\n          <td>performance</td>\n          <td>True</td>\n          <td>Provides standard debug output to console</td>\n        </tr>\n        <tr>\n          <td>verbose</td>\n          <td>True</td>\n          <td>Provides ancillary debug output to console</td>\n        </tr>\n        <tr>\n          <td>errors</td>\n          <td colspan=\"2\">\n            <div class=\"code\">\n            error   : {\n              method       : 'The method you called is not defined.',\n              pusher       : 'Had to add pusher element. For optimal performance make sure body content is inside a pusher element',\n              movedSidebar : 'Had to move sidebar. For optimal performance make sure sidebar and pusher are direct children of your body tag',\n              overlay      : 'The overlay setting is no longer supported, use animation: overlay',\n              notFound     : 'There were no elements that matched the specified selector'\n            }\n            </div>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/modules/sticky.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'basic minimal'\nelement     : 'sticky'\nelementType : 'module'\nstandalone  : true\n\ntitle       : 'Sticky'\ndescription : 'Sticky content fixes itself to the browser viewport as content is scrolled'\ntype        : 'UI Module'\n\n---\n\n<script src=\"/javascript/sticky.js\"></script>\n\n<%- @partial('header', { tabs: {  examples: 'Examples', usage: 'Usage', settings: 'Settings' } }) %>\n\n<div class=\"main ui container\">\n\n  <div class=\"ui active tab\" data-tab=\"examples\">\n\n    <h2 class=\"ui dividing header\">Introduction</h2>\n    <div class=\"no example\">\n\n      <p>Sticky content stays fixed to the browser viewport while another column of content is visible on the page.</p>\n      <p>Although sticky content can be used inside any container, sticky pairs well with <a href=\"/elements/rail.html\"><code>ui rail</code></a> because often \"stuck\" content is used to occupy additional canvas space outside of the main content of a website, making sure follow up links, ads, and other ancillary content remains on screen while engaging the sites main content.</p>\n\n      <div class=\"ui ignored warning message\">\n        The following examples may be hidden on small screen sizes. For the best experience, view these examples on a large resolution display.\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Examples</h2>\n\n    <div class=\"sticky example\">\n      <h4 class=\"ui header\">Sticking to Adjacent Context</h4>\n      <p>Sticky content attaches itself to the viewport when it is passed, and remains fixed to the viewport until this fixed content collides with the bottom edge of the passed <code>context</code>. Additional static content can exist above <code>sticky</code> content without affecting its position.</p>\n\n      <div class=\"code\" data-type=\"javascript\">\n      $('.ui.sticky')\n        .sticky({\n          context: '#example1'\n        })\n      ;\n      </div>\n      <div class=\"ui segment\" id=\"example1\">\n        <div class=\"left ui rail\">\n          <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n          <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n          <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n          <div class=\"ui sticky\">\n            <h3 class=\"ui header\">Stuck Content</h3>\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n        </div>\n        <div class=\"right ui rail\">\n          <div class=\"ui sticky\">\n            <h3 class=\"ui header\">Stuck Content</h3>\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n        </div>\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n      </div>\n    </div>\n\n    <div class=\"pushing example\">\n      <h4 class=\"ui header\">Pushing</h4>\n      <p>Specifying <code>pushing: true</code> will have the viewport \"push\" the sticky content depending on the scroll direction. When scrolling down content will be stuck to the top of the viewport, but in the opposite direction content is stuck to the bottom of the viewport.</p>\n      <div class=\"code\" data-type=\"javascript\">\n      $('.ui.sticky')\n        .sticky({\n          context: '#example2',\n          pushing: true\n        })\n      ;\n      </div>\n      <div class=\"ui segment\" id=\"example2\">\n        <div class=\"left ui rail\">\n          <div class=\"ui sticky\">\n            <h3 class=\"ui header\">Stuck Content</h3>\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n        </div>\n        <div class=\"right ui rail\">\n          <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n          <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n          <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n          <div class=\"ui sticky\">\n            <h3 class=\"ui header\">Stuck Content</h3>\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n        </div>\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n      </div>\n    </div>\n\n    <div class=\"sticky example\">\n      <h4 class=\"ui header\">Oversized Content</h4>\n\n      <p>Sticky content that is larger than the viewport will automatically scroll independently from the context, shifting scroll direction at any time will also immediately adjust the scroll position of the fixed content.</p>\n\n      <p>This behavior makes sure users aren't required to navigate all the way to the top of the context element to see content that can't fit on-screen inside the sticky element.</p>\n\n      <div class=\"code\" data-type=\"javascript\">\n      $('.ui.sticky')\n        .sticky({\n          context: '#example3'\n        })\n      ;\n      </div>\n      <div class=\"ui segment\" id=\"example3\">\n        <div class=\"left ui rail\">\n          <div class=\"ui sticky\">\n            <h3 class=\"ui header\">Long Stuck Content</h3>\n            <div class=\"ui divided items\">\n              <div class=\"item\">\n                <div class=\"ui tiny image\">\n                  <img src=\"/images/wireframe/image.png\">\n                </div>\n                <div class=\"middle aligned content\">\n                  <a class=\"header\">Followup Article</a>\n                  <div class=\"meta\">\n                    <span class=\"author\">By <a>Author</a></span>\n                  </div>\n                </div>\n              </div>\n              <div class=\"item\">\n                <div class=\"ui tiny image\">\n                  <img src=\"/images/wireframe/image.png\">\n                </div>\n                <div class=\"middle aligned content\">\n                  <a class=\"header\">Followup Article</a>\n                  <div class=\"meta\">\n                    <span class=\"author\">By <a>Author</a></span>\n                  </div>\n                </div>\n              </div>\n              <div class=\"item\">\n                <div class=\"ui tiny image\">\n                  <img src=\"/images/wireframe/image.png\">\n                </div>\n                <div class=\"middle aligned content\">\n                  <a class=\"header\">Followup Article</a>\n                  <div class=\"meta\">\n                    <span class=\"author\">By <a>Author</a></span>\n                  </div>\n                </div>\n              </div>\n              <div class=\"item\">\n                <div class=\"ui tiny image\">\n                  <img src=\"/images/wireframe/image.png\">\n                </div>\n                <div class=\"middle aligned content\">\n                  <a class=\"header\">Followup Article</a>\n                  <div class=\"meta\">\n                    <span class=\"author\">By <a>Author</a></span>\n                  </div>\n                </div>\n              </div>\n              <div class=\"item\">\n                <div class=\"ui tiny image\">\n                  <img src=\"/images/wireframe/image.png\">\n                </div>\n                <div class=\"middle aligned content\">\n                  <a class=\"header\">Followup Article</a>\n                  <div class=\"meta\">\n                    <span class=\"author\">By <a>Author</a></span>\n                  </div>\n                </div>\n              </div>\n              <div class=\"item\">\n                <div class=\"ui tiny image\">\n                  <img src=\"/images/wireframe/image.png\">\n                </div>\n                <div class=\"middle aligned content\">\n                  <a class=\"header\">Followup Article</a>\n                  <div class=\"meta\">\n                    <span class=\"author\">By <a>Author</a></span>\n                  </div>\n                </div>\n              </div>\n              <div class=\"item\">\n                <div class=\"ui tiny image\">\n                  <img src=\"/images/wireframe/image.png\">\n                </div>\n                <div class=\"middle aligned content\">\n                  <a class=\"header\">Followup Article</a>\n                  <div class=\"meta\">\n                    <span class=\"author\">By <a>Author</a></span>\n                  </div>\n                </div>\n              </div>\n              <div class=\"item\">\n                <div class=\"ui tiny image\">\n                  <img src=\"/images/wireframe/image.png\">\n                </div>\n                <div class=\"middle aligned content\">\n                  <a class=\"header\">Followup Article</a>\n                  <div class=\"meta\">\n                    <span class=\"author\">By <a>Author</a></span>\n                  </div>\n                </div>\n              </div>\n              <div class=\"item\">\n                <div class=\"ui tiny image\">\n                  <img src=\"/images/wireframe/image.png\">\n                </div>\n                <div class=\"middle aligned content\">\n                  <a class=\"header\">Followup Article</a>\n                  <div class=\"meta\">\n                    <span class=\"author\">By <a>Author</a></span>\n                  </div>\n                </div>\n              </div>\n              <div class=\"item\">\n                <div class=\"ui tiny image\">\n                  <img src=\"/images/wireframe/image.png\">\n                </div>\n                <div class=\"middle aligned content\">\n                  <a class=\"header\">Followup Article</a>\n                  <div class=\"meta\">\n                    <span class=\"author\">By <a>Author</a></span>\n                  </div>\n                </div>\n              </div>\n              <div class=\"item\">\n                <div class=\"ui tiny image\">\n                  <img src=\"/images/wireframe/image.png\">\n                </div>\n                <div class=\"middle aligned content\">\n                  <a class=\"header\">Followup Article</a>\n                  <div class=\"meta\">\n                    <span class=\"author\">By <a>Author</a></span>\n                  </div>\n                </div>\n              </div>\n              <div class=\"item\">\n                <div class=\"ui tiny image\">\n                  <img src=\"/images/wireframe/image.png\">\n                </div>\n                <div class=\"middle aligned content\">\n                  <a class=\"header\">Followup Article</a>\n                  <div class=\"meta\">\n                    <span class=\"author\">By <a>Author</a></span>\n                  </div>\n                </div>\n              </div>\n              <div class=\"item\">\n                <div class=\"ui tiny image\">\n                  <img src=\"/images/wireframe/image.png\">\n                </div>\n                <div class=\"middle aligned content\">\n                  <a class=\"header\">Followup Article</a>\n                  <div class=\"meta\">\n                    <span class=\"author\">By <a>Author</a></span>\n                  </div>\n                </div>\n              </div>\n              <div class=\"item\">\n                <div class=\"ui tiny image\">\n                  <img src=\"/images/wireframe/image.png\">\n                </div>\n                <div class=\"middle aligned content\">\n                  <a class=\"header\">Followup Article</a>\n                  <div class=\"meta\">\n                    <span class=\"author\">By <a>Author</a></span>\n                  </div>\n                </div>\n              </div>\n              <div class=\"item\">\n                <div class=\"ui tiny image\">\n                  <img src=\"/images/wireframe/image.png\">\n                </div>\n                <div class=\"middle aligned content\">\n                  <a class=\"header\">Followup Article</a>\n                  <div class=\"meta\">\n                    <span class=\"author\">By <a>Author</a></span>\n                  </div>\n                </div>\n              </div>\n              <div class=\"item\">\n                <div class=\"ui tiny image\">\n                  <img src=\"/images/wireframe/image.png\">\n                </div>\n                <div class=\"middle aligned content\">\n                  <a class=\"header\">Followup Article</a>\n                  <div class=\"meta\">\n                    <span class=\"author\">By <a>Author</a></span>\n                  </div>\n                </div>\n              </div>\n              <div class=\"item\">\n                <div class=\"ui tiny image\">\n                  <img src=\"/images/wireframe/image.png\">\n                </div>\n                <div class=\"middle aligned content\">\n                  <a class=\"header\">Followup Article</a>\n                  <div class=\"meta\">\n                    <span class=\"author\">By <a>Author</a></span>\n                  </div>\n                </div>\n              </div>\n              <div class=\"item\">\n                <div class=\"ui tiny image\">\n                  <img src=\"/images/wireframe/image.png\">\n                </div>\n                <div class=\"middle aligned content\">\n                  <a class=\"header\">Followup Article</a>\n                  <div class=\"meta\">\n                    <span class=\"author\">By <a>Author</a></span>\n                  </div>\n                </div>\n              </div>\n              <div class=\"item\">\n                <div class=\"ui tiny image\">\n                  <img src=\"/images/wireframe/image.png\">\n                </div>\n                <div class=\"middle aligned content\">\n                  <a class=\"header\">Followup Article</a>\n                  <div class=\"meta\">\n                    <span class=\"author\">By <a>Author</a></span>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"right ui rail\">\n          <div class=\"ui sticky\">\n            <h3 class=\"ui header\">Short Stuck Content</h3>\n            <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n          </div>\n        </div>\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n      </div>\n    </div>\n\n    <div class=\"inline example\">\n\n      <h4 class=\"ui header\">Sticking to Own Context</h4>\n\n      <p>Sticky content without a specified context can also stick itself to its current context, although this may cause overlap issues with content.</p>\n\n      <p>Content that sticks to its own context will adjust its own layout when being \"stuck\". You can fix layout issues caused by this reflow by adding styles to the next element after a <code>ui fixed sticky</code>\n\n      <div class=\"code\">\n        .ui.fixed.sticky + p {\n          margin-top: 39px;\n        }\n      </div>\n\n      <div class=\"code\" data-type=\"javascript\">\n      $('.ui.sticky')\n        .sticky()\n      ;\n      </div>\n      <div class=\"ui segment\">\n        <div class=\"ui sticky\">\n          <div class=\"ui fluid three item tabular menu\">\n            <a class=\"active item\">Tab 1</a>\n            <a class=\"item\">Tab 2</a>\n            <a class=\"item\">Tab 3</a>\n          </div>\n        </div>\n        <div class=\"ui active tab\">\n          <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n          <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n          <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n          <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n          <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n          <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n          <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n          <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n          <img class=\"ui wireframe paragraph image\" src=\"/images/wireframe/paragraph.png\">\n        </div>\n      </div>\n    </div>\n\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"usage\">\n\n    <h2 class=\"ui dividing header\">Usage</h2>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Initializing</h4>\n      <p>Sticky is initialized on content that should be stuck to viewport. Most instances require specifying a secondary <code>context</code> which will define the top and bottom bounds of the sticky element. Sticky content must be included inside a containing element. This container can be a <a href=\"/elements/rail.html\">ui rail</a> or your own arbitrary container, but should exist parallel to your context.</p>\n\n      <div class=\"ui warning ignored message\">\n        Sticky does not work in tables without using <code>table-layout: fixed</code> to prevent automatic resizing with content\n      </div>\n      <div class=\"code\" data-type=\"html\">\n        <div class=\"ui rail\">\n          <div class=\"ui sticky\">\n            <!-- Any arbitrary content !-->\n          </div>\n        </div>\n        <div id=\"context\">\n          <!-- Long flowing text content !-->\n        </div>\n      </div>\n      <div class=\"code\" data-type=\"javascript\">\n      $('.ui.sticky')\n        .sticky({\n          context: '#context'\n        })\n      ;\n      </div>\n    </div>\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Refreshing Cached Values</h4>\n      <p>Sticky content caches its current offset on the page and other crucial values on initialization. This prevents it from having to query the DOM on each browser scroll which would drastically reduce performance.</p>\n      <p>Sticky uses <a href=\"https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver\">mutation observers</a> to adjust its position when content is added to the context, and also will automatically recalculate on browser <code>resize</code>, but any other changes to your page that adjust the elements context require you to refresh the sticky's position</p>\n      <p>Examples of changes that might affect sticky elements are:</p>\n      <div class=\"ui bulleted ignored list\">\n        <div class=\"item\">Loading images without specified size</div>\n        <div class=\"item\">Setting CSS which adjusts the layout of the page</div>\n        <div class=\"item\">Hiding elements using Javascript</div>\n      </div>\n      <p>Refreshing cached values just requires calling the <code>refresh</code> behavior.</p>\n      <div class=\"ui code\">\n        // recalculates offsets\n        $('.ui.sticky')\n          .sticky('refresh')\n        ;\n      </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Sticky Conditions</h4>\n      <p>Sticky content is required to be inside its own <code>position: relative</code> container that is either the sticky context, or <b>shares vertical positioning with the context element</b>.</p>\n      <p>You can use <code>ui rail</code> or <code>ui grid</code> column that are in the same row to provide this set-up, or your own custom CSS</p>\n      <p>Sticky elements swap between being bound to the edges of their container, or fixed to the edges of the browser viewport</p>\n      <table class=\"ui ignored celled definition table\">\n        <thead>\n          <tr>\n            <th></th>\n            <th>Class</th>\n            <th>Description</th>\n          </tr>\n        </thead>\n        <tbody>\n          <tr>\n            <td>Fixed Top</td>\n            <td>ui fixed top sticky</td>\n            <td>Element is fixed to top of viewport</td>\n          </tr>\n          <tr>\n            <td>Fixed Bottom</td>\n            <td>ui fixed bottom sticky</td>\n            <td>Element is fixed to bottom of viewport</td>\n          </tr>\n          <tr>\n            <td>Bound Top</td>\n            <td>ui bound top sticky</td>\n            <td>Element is bound to the top of its containing element (usually rail or column)</td>\n          </tr>\n          <tr>\n            <td>Bound Bottom</td>\n            <td>ui bound bottom sticky</td>\n            <td>Element is bound to the bottom of its containing element (usually rail or column)</td>\n          </tr>\n        </tbody>\n      </table>\n    </div>\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Adjusting Offset and Padding</h4>\n      <p>If you have content fixed to the viewport it might make sense to include a top or bottom offset. An <code>offset</code> will adjust all values so that content does not overlap any content between the top of the browser and the specified value. A <code>bottomOffset</code> will do the same thing for content fixed to the bottom of the viewport.</p>\n      <div class=\"code\" data-type=\"javascript\">\n      $('.ui.sticky')\n        .sticky({\n          offset       : 50,\n          bottomOffset : 50,\n          context      : '#element-to-follow'\n        })\n      ;\n      </div>\n    </div>\n\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"settings\">\n\n    <h3 class=\"ui header\">\n      Sticky Settings\n      <div class=\"sub header\">Settings to configure sticky behavior</div>\n    </h3>\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <th>Setting</th>\n        <th class=\"four wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>pushing</td>\n          <td>false</td>\n          <td>Whether element should be \"pushed\" by the viewport, attaching to the bottom of the screen when scrolling up</td>\n        </tr>\n        <tr>\n          <td>setSize</td>\n          <td>true <div class=\"ui label\">New in 2.2.11</div></td>\n          <td>Sets size of <code>fixed</code> content to match its width before fixing to screen dynamically. This is used because fixed may display block or 100% width content differently than it appears before sticking.</td>\n        </tr>\n        <tr>\n          <td>jitter</td>\n          <td>5</td>\n          <td>Sticky container height will only be set if the difference between heights of container and context is larger than this jitter value.</td>\n        </tr>\n        <tr>\n          <td>observeChanges</td>\n          <td>false</td>\n          <td>Whether any change in <code>context</code> DOM should automatically refresh cached sticky positions</td>\n        </tr>\n        <tr>\n          <td>context</td>\n          <td>false</td>\n          <td>Context which sticky element should stick to</td>\n        </tr>\n        <tr>\n          <td>scrollContext</td>\n          <td>window</td>\n          <td>Context which sticky should attach <code>onscroll</code> events.</td>\n        </tr>\n        <tr>\n          <td>offset</td>\n          <td>0</td>\n          <td>Offset in pixels from the top of the screen when fixing element to viewport</td>\n        </tr>\n        <tr>\n          <td>bottomOffset</td>\n          <td>0</td>\n          <td>Offset in pixels from the bottom of the screen when fixing element to viewport</td>\n        </tr>\n      </tbody>\n    </table>\n\n     <h4 class=\"ui header\">Callbacks</h4>\n    <p>Callbacks specify a function to occur after a specific behavior.</p>\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n          <th class=\"four wide\"></th>\n          <th>Context</th>\n          <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>onReposition</td>\n          <td>$module</td>\n          <td>Callback when element is repositioned from layout change</td>\n        </tr>\n        <tr>\n          <td>onScroll</td>\n          <td>$module</td>\n          <td>Callback when <code>requestAnimationFrame</code> fires from scroll handler.</td>\n        </tr>\n        <tr>\n          <td>onStick</td>\n          <td>$module</td>\n          <td>Callback when element is fixed to page</td>\n        </tr>\n        <tr>\n          <td>onUnstick</td>\n          <td>$module</td>\n          <td>Callback when element is unfixed from page</td>\n        </tr>\n        <tr>\n          <td>onTop</td>\n          <td>$module</td>\n          <td>Callback when element is bound to top of parent container</td>\n        </tr>\n        <tr>\n          <td>onBottom</td>\n          <td>$module</td>\n          <td>Callback when element is bound to bottom of parent container</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <h3 class=\"ui header\">\n      DOM Settings\n      <div class=\"sub header\">DOM settings specify how this module should interface with the DOM</div>\n    </h3>\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <th>Setting</th>\n        <th class=\"six wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>namespace</td>\n          <td>sticky</td>\n          <td>Event namespace. Makes sure module teardown does not effect other events attached to an element.</td>\n        </tr>\n        <tr>\n          <td>className</td>\n          <td>\n            <div class=\"code\">\n            className : {\n              bound     : 'bound',\n              fixed     : 'fixed',\n              supported : 'native',\n              top       : 'top',\n              bottom    : 'bottom'\n            }\n            </div>\n          </td>\n          <td>Class names used to attach style to state</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <div class=\"ui horizontal divider\"><i class=\"icon setting\"></i></div>\n\n    <h3 class=\"ui header\">\n      Debug Settings\n      <div class=\"sub header\">Debug settings controls debug output to the console</div>\n    </h3>\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <th>Setting</th>\n        <th class=\"four wide\">Default</th>\n        <th>Description</th>\n      </thead>\n      <tbody>\n        <tr>\n          <td>name</td>\n          <td>Sticky</td>\n          <td>Name used in debug logs</td>\n        </tr>\n        <tr>\n          <td>silent</td>\n          <td>False</td>\n          <td>Silences all console output including error messages, regardless of other debug settings.</td>\n        </tr>\n        <tr>\n          <td>debug</td>\n          <td>False</td>\n          <td>Provides standard debug output to console</td>\n        </tr>\n        <tr>\n          <td>performance</td>\n          <td>True</td>\n          <td>Provides standard debug output to console</td>\n        </tr>\n        <tr>\n          <td>verbose</td>\n          <td>True</td>\n          <td>Provides ancillary debug output to console</td>\n        </tr>\n        <tr>\n          <td>errors</td>\n          <td colspan=\"2\">\n            <div class=\"code\">\n            error         : {\n              container      : 'Sticky element must be inside a relative container',\n              visible        : 'Element is hidden, you must call refresh after element becomes visible',\n              method         : 'The method you called is not defined.',\n              invalidContext : 'Context specified does not exist',\n              elementSize    : 'Sticky element is larger than its container, cannot create sticky.'\n            }\n            </div>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n\n  </div>\n\n\n</div>\n"
  },
  {
    "path": "server/documents/modules/tab.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : ''\nelement     : 'tab'\nelementType : 'module'\nstandalone  : true\n\ntitle       : 'Tab'\ndescription : 'A tab is a hidden section of content activated by a menu'\ntype        : 'UI Module'\n\nthemes      : ['Default']\n---\n\n<script src=\"/javascript/library/sinon.js\"></script>\n<script src=\"/javascript/tab.js\"></script>\n\n<%- @partial('header', { tabs: { definition: 'Definition', examples: 'Examples',  usage: 'Usage',  settings: 'Settings' } }) %>\n\n<div class=\"main ui container\">\n\n  <div class=\"ui active tab\" data-tab=\"definition\">\n\n    <h2 class=\"ui header\">\n      Type\n    </h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        Tab\n      </h4>\n      <p>A basic tab</p>\n      <div class=\"ui ignored info message\">A tab is hidden by default, and will only become visible when given the class name <code>active</code> or when activated with Javascript. For more information, see the usage section.</div>\n      <div class=\"ui top attached tabular menu\">\n        <div class=\"item\">Tab</div>\n      </div>\n      <div class=\"ui bottom attached tab segment\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n      </div>\n    </div>\n\n    <h2 class=\"ui header\">\n      States\n    </h2>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        Active\n      </h4>\n      <p>A tab can be activated, and visible on the page</p>\n      <div class=\"ui top attached tabular menu\">\n        <div class=\"active item\">Tab</div>\n      </div>\n      <div class=\"ui bottom attached active tab segment\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n      </div>\n    </div>\n\n    <div class=\"example\">\n      <h4 class=\"ui header\">\n        Loading\n      </h4>\n      <p>A tab can display a loading indicator</p>\n      <div class=\"ui top attached tabular menu\">\n        <div class=\"active item\">Tab</div>\n      </div>\n      <div class=\"ui bottom attached loading tab segment\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n      </div>\n    </div>\n\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"examples\">\n\n    <h2 class=\"ui dividing header\">Basic Examples</h2>\n\n    <div class=\"first example\">\n      <h4 class=\"ui header\">Basic Tabs</h4>\n      <p>Tabs are connecting using paths specified in the <code>data-tab</code> attribute. Tab is then initialized in Javascript on the activating elements.</p>\n      <div class=\"ui ignored info message\">\n        To have a tab visible on page load, add the class <code>active</code> to both the initializing menu and the tab.\n      </div>\n      <div class=\"ui top attached tabular menu\">\n        <a class=\"active item\" data-tab=\"first\">First</a>\n        <a class=\"item\" data-tab=\"second\">Second</a>\n        <a class=\"item\" data-tab=\"third\">Third</a>\n      </div>\n      <div class=\"ui bottom attached active tab segment\" data-tab=\"first\">\n        First\n      </div>\n      <div class=\"ui bottom attached tab segment\" data-tab=\"second\">\n        Second\n      </div>\n      <div class=\"ui bottom attached tab segment\" data-tab=\"third\">\n        Third\n      </div>\n      <div class=\"code\" data-type=\"javascript\">\n      $('.menu .item')\n        .tab()\n      ;\n      </div>\n    </div>\n\n    <div class=\"context example\">\n      <h4 class=\"ui header\">Multiple Tab Groups</h4>\n      <p>There are a several of ways to include independent tab groups on the same page, even with history. One of the easiest ways is provide a specific parent context for each tab group.</p>\n      <div class=\"ui ignored info message\">\n        If you are using tab contexts inside of tabs, you can also specify <code>childrenOnly: true</code> which will only look for tabs as the immediate children of the given context, or <code>context: 'parent'</code> a special keyword which avoids having to create unique selectors for each group.\n      </div>\n      <div class=\"code\" data-type=\"javascript\">\n        $('#context1 .menu .item')\n          .tab({\n            context: $('#context1')\n          })\n        ;\n        $('#context2 .menu .item')\n          .tab({\n            // special keyword works same as above\n            context: 'parent'\n          })\n        ;\n      </div>\n      <div id=\"context1\">\n        <div class=\"ui secondary menu\">\n          <a class=\"item\" data-tab=\"first\">First</a>\n          <a class=\"item active\" data-tab=\"second\">Second</a>\n          <a class=\"item\" data-tab=\"third\">Third</a>\n        </div>\n        <div class=\"ui tab segment\" data-tab=\"first\">\n          <div class=\"ui top attached tabular menu\">\n            <a class=\"active item\" data-tab=\"first/a\">1A</a>\n            <a class=\"item\" data-tab=\"first/b\">1B</a>\n            <a class=\"item\" data-tab=\"first/c\">1C</a>\n          </div>\n          <div class=\"ui bottom attached active tab segment\" data-tab=\"first/a\">1A</div>\n          <div class=\"ui bottom attached tab segment\" data-tab=\"first/b\">1B</div>\n          <div class=\"ui bottom attached tab segment\" data-tab=\"first/c\">1C</div>\n        </div>\n        <div class=\"ui tab segment active\" data-tab=\"second\">\n          <div class=\"ui top attached tabular menu\">\n            <a class=\"item\" data-tab=\"second/a\">2A</a>\n            <a class=\"item\" data-tab=\"second/b\">2B</a>\n            <a class=\"item active\" data-tab=\"second/c\">2C</a>\n          </div>\n          <div class=\"ui bottom attached tab segment\" data-tab=\"second/a\">2A</div>\n          <div class=\"ui bottom attached tab segment\" data-tab=\"second/b\">2B</div>\n          <div class=\"ui bottom attached tab segment active\" data-tab=\"second/c\">2C</div>\n        </div>\n        <div class=\"ui tab segment\" data-tab=\"third\">\n          <div class=\"ui top attached tabular menu\">\n            <a class=\"item\" data-tab=\"third/a\">3A</a>\n            <a class=\"item\" data-tab=\"third/b\">3B</a>\n            <a class=\"item\" data-tab=\"third/c\">3C</a>\n          </div>\n          <div class=\"ui bottom attached tab segment\" data-tab=\"third/a\">3A</div>\n          <div class=\"ui bottom attached tab segment\" data-tab=\"third/b\">3B</div>\n          <div class=\"ui bottom attached tab segment\" data-tab=\"third/c\">3C</div>\n        </div>\n      </div>\n      <div class=\"ui divider\"></div>\n      <div id=\"context2\">\n        <div class=\"ui secondary menu\">\n          <a class=\"item\" data-tab=\"fourth\">Fourth</a>\n          <a class=\"item active\" data-tab=\"fifth\">Fifth</a>\n          <a class=\"item\" data-tab=\"sixth\">Sixth</a>\n        </div>\n        <div class=\"ui tab segment\" data-tab=\"fourth\">\n          4\n        </div>\n        <div class=\"ui active tab segment\" data-tab=\"fifth\">\n          5\n        </div>\n        <div class=\"ui tab segment\" data-tab=\"sixth\">\n          6\n        </div>\n      </div>\n      <div class=\"existing code\" data-type=\"html\">\n        <div id=\"context1\">\n          <div class=\"ui secondary menu\">\n            <a class=\"item\" data-tab=\"first\">First</a>\n            <a class=\"item active\" data-tab=\"second\">Second</a>\n            <a class=\"item\" data-tab=\"third\">Third</a>\n          </div>\n          <div class=\"ui tab segment\" data-tab=\"first\">\n            <div class=\"ui top attached tabular menu\">\n              <a class=\"active item\" data-tab=\"first/a\">1A</a>\n              <a class=\"item\" data-tab=\"first/b\">1B</a>\n              <a class=\"item\" data-tab=\"first/c\">1C</a>\n            </div>\n            <div class=\"ui bottom attached active tab segment\" data-tab=\"first/a\">1A</div>\n            <div class=\"ui bottom attached tab segment\" data-tab=\"first/b\">1B</div>\n            <div class=\"ui bottom attached tab segment\" data-tab=\"first/c\">1C</div>\n          </div>\n          <div class=\"ui tab segment active\" data-tab=\"second\">\n            <div class=\"ui top attached tabular menu\">\n              <a class=\"item\" data-tab=\"second/a\">2A</a>\n              <a class=\"item\" data-tab=\"second/b\">2B</a>\n              <a class=\"item active\" data-tab=\"second/c\">2C</a>\n            </div>\n            <div class=\"ui bottom attached tab segment\" data-tab=\"second/a\">2A</div>\n            <div class=\"ui bottom attached tab segment\" data-tab=\"second/b\">2B</div>\n            <div class=\"ui bottom attached tab segment active\" data-tab=\"second/c\">2C</div>\n          </div>\n          <div class=\"ui tab segment\" data-tab=\"third\">\n            <div class=\"ui top attached tabular menu\">\n              <a class=\"item\" data-tab=\"third/a\">3A</a>\n              <a class=\"item\" data-tab=\"third/b\">3B</a>\n              <a class=\"item\" data-tab=\"third/c\">3C</a>\n            </div>\n            <div class=\"ui bottom attached tab segment\" data-tab=\"third/a\">3A</div>\n            <div class=\"ui bottom attached tab segment\" data-tab=\"third/b\">3B</div>\n            <div class=\"ui bottom attached tab segment\" data-tab=\"third/c\">3C</div>\n          </div>\n        </div>\n        <div class=\"ui divider\"></div>\n        <div id=\"context2\">\n          <div class=\"ui secondary menu\">\n            <a class=\"item\" data-tab=\"fourth\">Fourth</a>\n            <a class=\"item active\" data-tab=\"fifth\">Fifth</a>\n            <a class=\"item\" data-tab=\"sixth\">Sixth</a>\n          </div>\n          <div class=\"ui tab segment\" data-tab=\"fourth\">\n            4\n          </div>\n          <div class=\"ui active tab segment\" data-tab=\"fifth\">\n            5\n          </div>\n          <div class=\"ui tab segment\" data-tab=\"sixth\">\n            6\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"paths example\">\n\n      <h4 class=\"ui header\">Default Paths</h4>\n      <p>When you specify a path like <code>first/</code> after opening the tab it will look for the any child paths and open the first. In this example even if the path is <code>first/</code>, the tab corresponding with <code>first/a</code> will automatically also be open because it is the default child tab. This will work recursively for as many additional child tab groups as you include.</p>\n      <div class=\"ui ignored info message\">Each of these examples is initialized with a context to prevent contamination with other tab examples on this page. This is not necessary unless using multiple tab systems on a single page.</div>\n      <div class=\"ignored code\" data-type=\"javascript\">\n      $('.paths.example .menu .item')\n        .tab({\n          context: '.paths.example'\n        })\n      ;\n      </div>\n\n      <div class=\"ui pointing secondary menu\">\n        <a class=\"active item\" data-tab=\"first\">First</a>\n        <a class=\"item\" data-tab=\"second\">Second</a>\n        <a class=\"item\" data-tab=\"third\">Third</a>\n      </div>\n      <div class=\"ui active tab segment\" data-tab=\"first\">\n        <div class=\"ui top attached tabular menu\">\n          <a class=\"active item\" data-tab=\"first/a\">1A</a>\n          <a class=\"item\" data-tab=\"first/b\">1B</a>\n          <a class=\"item\" data-tab=\"first/c\">1C</a>\n        </div>\n        <div class=\"ui bottom attached active tab segment\" data-tab=\"first/a\">1A</div>\n        <div class=\"ui bottom attached tab segment\" data-tab=\"first/b\">1B</div>\n        <div class=\"ui bottom attached tab segment\" data-tab=\"first/c\">1C</div>\n      </div>\n      <div class=\"ui tab segment\" data-tab=\"second\">\n        <div class=\"ui top attached tabular menu\">\n          <a class=\"item\" data-tab=\"second/a\">2A</a>\n          <a class=\"item\" data-tab=\"second/b\">2B</a>\n          <a class=\"item\" data-tab=\"second/c\">2C</a>\n        </div>\n        <div class=\"ui bottom attached tab segment\" data-tab=\"second/a\">2A</div>\n        <div class=\"ui bottom attached tab segment\" data-tab=\"second/b\">2B</div>\n        <div class=\"ui bottom attached tab segment\" data-tab=\"second/c\">2C</div>\n      </div>\n      <div class=\"ui tab segment\" data-tab=\"third\">\n        <div class=\"ui top attached tabular menu\">\n          <a class=\"item\" data-tab=\"third/a\">3A</a>\n          <a class=\"item\" data-tab=\"third/b\">3B</a>\n          <a class=\"item\" data-tab=\"third/c\">3C</a>\n        </div>\n        <div class=\"ui bottom attached tab segment\" data-tab=\"third/a\">3A</div>\n        <div class=\"ui bottom attached tab segment\" data-tab=\"third/b\">3B</div>\n        <div class=\"ui bottom attached tab segment\" data-tab=\"third/c\">3C</div>\n      </div>\n    </div>\n\n    <h2 class=\"ui dividing header\">Remote Examples</h2>\n\n\n    <div class=\"dynamic no example\">\n      <h4 class=\"header\">Retreiving Remote Content</h4>\n      <p>Using <code>auto: true</code> will load the tab's path from your server with additional headers to specify an in-page request. When <a href=\"#settings\"><code>cache: true</code></a> is set, re-opening a tab will be loaded from cache without a server request.</p>\n      <div class=\"ui ignored warning message\">\n        API requests for the following example have been faked using <a href=\"/behaviors/api.html#using-custom-backends\">mockResponse</a> API setting to avoid network overhead.\n      </div>\n      <div class=\"code\">\n      $('.dynamic.example .menu .item')\n        .tab({\n          cache: false,\n          // faking API request\n          apiSettings: {\n            loadingDuration : 300,\n            mockResponse    : function(settings) {\n              var response = {\n                first  : 'AJAX Tab One',\n                second : 'AJAX Tab Two',\n                third  : 'AJAX Tab Three'\n              };\n              return response[settings.urlData.tab];\n            }\n          },\n          context : 'parent',\n          auto    : true,\n          path    : '/'\n        })\n      ;\n      </div>\n      <div class=\"ui pointing secondary menu\">\n        <a class=\"active item\" data-tab=\"first\">First</a>\n        <a class=\"item\" data-tab=\"second\">Second</a>\n        <a class=\"item\" data-tab=\"third\">Third</a>\n      </div>\n      <div class=\"ui active tab segment\" data-tab=\"first\">\n        <h3 class=\"ui header\">AJAX Tab One</h3>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n      </div>\n      <div class=\"ui tab segment\" data-tab=\"second\">\n      </div>\n      <div class=\"ui tab segment\" data-tab=\"third\">\n      </div>\n    </div>\n\n    <div class=\"eval no example\">\n      <h4 class=\"header\">Evaluating Scripts in HTML</h4>\n      <p>By default, <code>script</code> tags included in HTML will only be evaluated on first load. To change this behavior you can adjust the  <code>evaluateScripts</code> setting.</p>\n      <div class=\"code\">\n      $('.eval.example .menu .item')\n        .tab({\n          evaluateScripts : 'once',\n          context         : 'parent',\n          auto            : true,\n          path            : '/'\n        })\n      ;\n      </div>\n      <div class=\"ui pointing secondary menu\">\n        <a class=\"active item\" data-tab=\"first\">First</a>\n        <a class=\"item\" data-tab=\"second\">Second</a>\n        <a class=\"item\" data-tab=\"third\">Third</a>\n      </div>\n      <div class=\"ui active tab segment\" data-tab=\"first\">\n        <h3 class=\"ui header\">AJAX Tab One</h3>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n      </div>\n      <div class=\"ui tab segment\" data-tab=\"second\">\n      </div>\n      <div class=\"ui tab segment\" data-tab=\"third\">\n      </div>\n    </div>\n\n\n    <h2 class=\"ui dividing header\">History Examples</h2>\n\n    <div class=\"history example\">\n      <h4>Using Hash History</h4>\n      <p>For static sites, or sites that only require simple history, in-page links can be used to trigger different local tab states</p>\n      <div class=\"code\" data-type=\"javascript\">\n        $('.history.example .menu .item')\n          .tab({\n            context : '.history.example',\n            history : true\n          })\n        ;\n      </div>\n\n      <div class=\"ui pointing secondary menu\">\n        <a class=\"active item\" data-tab=\"first\">First</a>\n        <a class=\"item\" data-tab=\"second\">Second</a>\n        <a class=\"item\" data-tab=\"third\">Third</a>\n      </div>\n      <div class=\"ui active tab segment\" data-tab=\"first\">\n        <div class=\"ui top attached tabular menu\">\n          <a class=\"active item\" data-tab=\"first/a\">1A</a>\n          <a class=\"item\" data-tab=\"first/b\">1B</a>\n          <a class=\"item\" data-tab=\"first/c\">1C</a>\n        </div>\n        <div class=\"ui bottom attached active tab segment\" data-tab=\"first/a\">1A</div>\n        <div class=\"ui bottom attached tab segment\" data-tab=\"first/b\">1B</div>\n        <div class=\"ui bottom attached tab segment\" data-tab=\"first/c\">1C</div>\n      </div>\n      <div class=\"ui tab segment\" data-tab=\"second\">\n        <div class=\"ui top attached tabular menu\">\n          <a class=\"item\" data-tab=\"second/a\">2A</a>\n          <a class=\"item\" data-tab=\"second/b\">2B</a>\n          <a class=\"item\" data-tab=\"second/c\">2C</a>\n        </div>\n        <div class=\"ui bottom attached tab segment\" data-tab=\"second/a\">2A</div>\n        <div class=\"ui bottom attached tab segment\" data-tab=\"second/b\">2B</div>\n        <div class=\"ui bottom attached tab segment\" data-tab=\"second/c\">2C</div>\n      </div>\n      <div class=\"ui tab segment\" data-tab=\"third\">\n        <div class=\"ui top attached tabular menu\">\n          <a class=\"item\" data-tab=\"third/a\">3A</a>\n          <a class=\"item\" data-tab=\"third/b\">3B</a>\n          <a class=\"item\" data-tab=\"third/c\">3C</a>\n        </div>\n        <div class=\"ui bottom attached tab segment\" data-tab=\"third/a\">3A</div>\n        <div class=\"ui bottom attached tab segment\" data-tab=\"third/b\">3B</div>\n        <div class=\"ui bottom attached tab segment\" data-tab=\"third/c\">3C</div>\n      </div>\n    </div>\n\n    <div class=\"state example\">\n      <h4>Using HTML5 State</h4>\n      <p>For sites that are able to replicate change on the server, tab can automatically map changes in tab navigation to <a href=\"http://diveintohtml5.info/history.html\" target=\"_blank\">html5 state.</a>\n      </p>\n      <div class=\"ui ignored warning message\">\n        Since these docs are statically hosted on GitHub Pages, html5 state tabs are not demonstrable from the docs. You will need to try this example in your own code.\n      </div>\n      <div class=\"code\" data-type=\"javascript\">\n        $('.ui.menu .item')\n          .tab({\n            history : true,\n            historyType : 'state',\n            // base url for all other path changes\n            path        : '/my/base/url'\n          })\n        ;\n      </div>\n    </div>\n\n  </div>\n\n\n  <div class=\"ui intro tab\" data-tab=\"usage\">\n\n    <h2 class=\"ui dividing header\">Initializing Tabs</h2>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">...with Menus</h4>\n      <p>Tabs are usually used in concert with an element that activates the tab. Tabs are initialized on the activating item instead of the tab.</p>\n      <p>Tabs are connected to their activators with a metadata attribute <code>data-tab</code>. This should be added to both the activating element and the tab itself.</p>\n\n      <div class=\"code\" data-type=\"javascript\">\n        $('.tabular.menu .item').tab();\n      </div>\n      <div class=\"code\" data-type=\"html\">\n        <div class=\"ui tabular menu\">\n          <div class=\"item\" data-tab=\"tab-name\">Tab Name</div>\n          <div class=\"item\" data-tab=\"tab-name2\">Tab Name 2</div>\n        </div>\n        <div class=\"ui tab\" data-tab=\"tab-name\">\n          <!-- Tab Content !-->\n        </div>\n        <div class=\"ui tab\" data-tab=\"tab-name2\">\n          <!-- Tab Content !-->\n        </div>\n      </div>\n\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">...without Menus</h4>\n      <p>If there are no menus that activate tab elements on the page, tabs can be initialized globally by using <code>$.tab()</code> and activated programmatically using <code>$.tab('change tab', path);</code></p>\n\n      <div class=\"code\" data-type=\"javascript\">\n        $('.ui.button')\n          .on('click', function() {\n            // programmatically activating tab\n            $.tab('change tab', 'tab-name');\n          })\n        ;\n      </div>\n      <div class=\"code\" data-type=\"html\">\n        <div class=\"ui button\">Activate Tab</div>\n        <div class=\"ui tab\" data-tab=\"tab-name\">\n          <!-- Tab Content !-->\n        </div>\n      </div>\n    </div>\n\n\n    <div class=\"no example\">\n      <div class=\"ignored ui info message\">\n        <h4 class=\"ui header\">Default Tabs</h4>\n        <p>After any tab is opened it will look for a default tab to open inside of the current tab. This is the first tab that begins with the same stem url as the parent tab. For example a tab with the path <code>data-tab=\"home\"</code> might open a tab automatically <code>data-tab=\"/home/inbox\"</code>.</p>\n        <p>This will happen recursively for every tab open, allowing as many levels of tabs as you like.</p>\n      </div>\n    </div>\n\n\n    <h2 class=\"ui dividing header\">Managing State</h2>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">...with Hash Tags</h4>\n\n      <p>Hash tags use in page links and <code>onhashstatechange</code> to create history events for each tab. This is sometimes easier to use than the more advanced push state, because it does not require you to route those URLs on your server. All in page links will route to the same url.</p>\n\n      <div class=\"ui warning message\">\n        <p>Tabs use Asual's <a href=\"https://github.com/asual/jquery-address\">Address library</a> to provide cross-browser push state support. This is a <b>required dependency</b> for tabs with history to work correctly.</p>\n      </div>\n\n      <div class=\"code\">\n        $('.ui.menu .item')\n          .tab({\n            history: true,\n            historyType: 'hash'\n          })\n        ;\n      </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">...with HTML5 State</h4>\n      <p>Tabs can can use html5 push state to manage page state without using <code>#/foo</code> links. When a user refreshes a page using push state the server will be queried for the new url. This means you must set up appropriate routes in your backend to match each link.</p>\n      <div class=\"code\">\n      $('.ui.menu .item')\n        .tab({\n          history: true,\n          historyType: 'state',\n          path: '/modules/tab.html'\n        })\n      ;\n      </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">Setting Paths</h4>\n      <p>Using <code>historyType: state</code> requires specifying a <b>base URL without any internal state</b>. This cannot be set automatically to <code>window.location</code> because all tabs with html5 state will appear as normal page urls, and route accordingly.</p>\n      <p>HTML5 state will only work with dynamic site back-ends because it requires each tab path to correctly route on the server to the appropriate content.</p>\n      <div class=\"code\">\n      $('.ui.menu .item')\n        .tab({\n          history: true,\n          historyType: 'state'\n          path: '/modules/tab.html'\n        })\n      ;\n      </div>\n    </div>\n\n    <div class=\"ui warning message\">Using an incorrect base path is a common error when using HTML5 state, and can cause unusual behaviors.</div>\n\n    <h2 class=\"ui dividing header\">AJAX Content</h2>\n\n    <div class=\"no example\">\n      <h3 class=\"ui header\">...with automatic routing</h3>\n\n      <p>Specifying the setting <code>auto: true</code>, will automatically retrieve content at a remote url matching the url set in the browser.</p>\n      <p>So for example the tab <code>inbox</code> will retrieve content from the URL <code>base-url/inbox/</code></p>\n      <p>The URL will receive an addition HTTP Header <code>'X-Remote': true</code>. You can use this on your server's back-end to determine whether a request is an AJAX request from a tab, or a full page request.</p>\n      <p>Queries with <code>'X-Remote': true</code> should refresh only the tabbed content, while queries without are normal resources and should refresh <b>the entire page contents</b></p>\n      <p>This uses a similar technique to <a href=\"https://github.com/defunkt/jquery-pjax\">pJax</a> or Rail's <a href=\"https://github.com/rails/turbolinks/\">turbolinks</a>.</p>\n      <div class=\"ignored ui info message\">There are a variety of settings for configuring dynamic content behavior. Visit the tab settings section for more information</div>\n      <div class=\"code\" data-type=\"javascript\">\n      $('.dynamic.example .menu .item')\n        .tab({\n          context : '.dynamic.example',\n          auto    : true,\n          path    : '/modules/tab.html'\n        })\n      ;\n      </div>\n    </div>\n\n    <div class=\"no example\">\n      <h4 class=\"ui header\">...with an API Behavior</h4>\n      <p>Tabs provide an optional coupling with API which allow you to specify a templated API endpoint that a tab can query</p>\n      <p>Tabs will automatically pass the url variable <code>{$tab}</code> which can be replaced for RESTful API links.</p>\n      <p>To learn more about API behaviors built into semantic check out the API docs</p>\n      <a class=\"ui button\" href=\"/behaviors/api.html\">View API Docs <i class=\"right chevron icon\"></i></a>\n    </div>\n\n    <h2 class=\"ui dividing header\">Behavior</h2>\n\n    All the following behaviors can be called using the syntax <code>$('.foo').tab('behavior name', argumentOne, argumentTwo)</code>\n\n    <table class=\"ui definition celled table segment\">\n      <tr>\n        <td>attach events(selector, event)</td>\n        <td>Attaches tab action to given selector. Default event if none specified is toggle</td>\n      </tr>\n      <tr>\n        <td>change tab(path)</td>\n        <td>Changes tab to path</td>\n      </tr>\n      <tr>\n        <td>set state(path)</td>\n        <td>Sets current path to state</td>\n      </tr>\n      <tr>\n        <td>get path</td>\n        <td>Returns current path</td>\n      </tr>\n      <tr>\n        <td>is tab</td>\n        <td>Returns whether tab exists</td>\n      </tr>\n      <tr>\n        <td>cache read(path)</td>\n        <td>Returns cached HTML for path</td>\n      </tr>\n      <tr>\n        <td>cache add(path, html)</td>\n        <td>Sets cached HTML for path</td>\n      </tr>\n      <tr>\n        <td>cache remove(path)</td>\n        <td>Removes cached HTML for path</td>\n      </tr>\n    </table>\n  </div>\n\n\n  <div class=\"ui tab\" data-tab=\"settings\">\n\n    <h3 class=\"ui header\">\n      Tab Settings\n      <div class=\"sub header\">Form settings modify the tab behavior</div>\n    </h3>\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n          <th>Setting</th>\n          <th class=\"four wide\">Default</th>\n          <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>auto</td>\n          <td>false</td>\n          <td>Whether tab should load remote content as same url as history</td>\n        </tr>\n        <tr>\n          <td>deactivate</td>\n          <td>'siblings'</td>\n          <td>When set to <code>siblings</code> will only deactivate elements that are DOM siblings with the activated element. When set to <code>all</code> the component will deactivate all other elements initialized at the same time.</td>\n        </tr>\n        <tr>\n          <td>history</td>\n          <td>false</td>\n          <td>Whether to record history events for tab changes</td>\n        </tr>\n        <tr>\n          <td>ignoreFirstLoad</td>\n          <td>false</td>\n          <td>Do not load content remotely on first tab load. Useful when open tab is rendered on server.</td>\n        </tr>\n        <tr>\n          <td>evaluateScripts</td>\n          <td>once</td>\n          <td>Whether inline scripts in tab HTML should be parsed on tab load. Defaults to <code>once</code>, parsing only on first load. Can also be set to <code>true</code> or <code>false</code> to always parse or never parse inline scripts.</td>\n        </tr>\n        <tr>\n          <td>alwaysRefresh</td>\n          <td>false</td>\n          <td>Tab should reload content every time it is opened</td>\n        </tr>\n        <tr>\n          <td>deactivate <div class=\"ui horizontal label\">2.2</div></td>\n          <td>siblings</td>\n          <td>Can be set to either <code>siblings</code> or <code>all</code>. Siblings will only de-activate tab activators that are <code>siblings</code> of the clicked element when a tab is selected. <code>All</code> will deactivate all other tab activators initialized at the same time.</td>\n        </tr>\n        <tr>\n          <td>cacheType <div class=\"ui horizontal label\">2.2</div></td>\n          <td>response</td>\n          <td>Can be set to either <code>response</code>, <code>DOM</code> or <code>html</code>. Using <code>DOM</code> will cache the a clone of the DOM tree, preserving all events as they existed on render. <code>response</code> will cache the original response on load, this way callbacks always receive the same content. Using <code>html</code> will cache the resulting html after all callbacks, making sure any changes to content are preserved.</td>\n        </tr>\n        <tr>\n          <td>cache</td>\n          <td>true</td>\n          <td>Tab should cache content after loading locally to avoid server trip on second load</td>\n        </tr>\n        <tr>\n          <td>apiSettings</td>\n          <td>false</td>\n          <td>Settings object for <a href=\"/behaviors/api.html\">$.api</a> call</td>\n        </tr>\n        <tr>\n          <td>historyType</td>\n          <td>hash</td>\n          <td>Can be set to <b>hash</b> or <b>state</b>. Hash will use an in-page link to create history events. State will use <a href=\"https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history\" target=\"_blank\">DOM History</a> and load pages from server on refresh.</td>\n        </tr>\n        <tr>\n          <td>path</td>\n          <td>false</td>\n          <td>When using historyType <code>state</code> you must specify the base URL for all internal links.</td>\n        </tr>\n        <tr>\n          <td>context</td>\n          <td>false</td>\n          <td>Tabs are limited to those found inside this context</td>\n        </tr>\n        <tr>\n          <td>childrenOnly</td>\n          <td>false</td>\n          <td>If enabled limits tabs to children of passed context</td>\n        </tr>\n        <tr>\n          <td>maxDepth</td>\n          <td>25</td>\n          <td>Maximum amount of nested tabs allowed (avoids recursion)</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <div class=\"ui horizontal section icon divider\"><i class=\"icon setting\"></i></div>\n    <h4 class=\"ui header\">Callbacks</h4>\n    <p>Callbacks specify a function to occur after a specific behavior.</p>\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n          <th class=\"four wide\"></th>\n          <th class=\"four wide\">Parameters</th>\n          <th>Context</th>\n          <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>onFirstLoad</td>\n          <td>tabPath, parameterArray, historyEvent</td>\n          <td>Tab</td>\n          <td>Callback only the first time a tab is loaded</td>\n        </tr>\n        <tr>\n          <td>onLoad</td>\n          <td>tabPath, parameterArray, historyEvent</td>\n          <td>Tab</td>\n          <td>Callback every time a tab is loaded</td>\n        </tr>\n        <tr>\n          <td>onRequest</td>\n          <td>tabPath</td>\n          <td>Tab</td>\n          <td>Called when a tab begins loading remote content</td>\n        </tr>\n        <tr>\n          <td>onVisible</td>\n          <td>tabPath</td>\n          <td>Tab</td>\n          <td>Called after a tab becomes visible</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <div class=\"ui horizontal divider\"><i class=\"icon setting\"></i></div>\n\n    <h3 class=\"ui header\">\n      DOM Settings\n      <div class=\"sub header\">DOM settings specify how this module should interface with the DOM</div>\n    </h3>\n    <table class=\"ui celled definition table segment\">\n      <thead>\n        <tr>\n          <th>Setting</th>\n          <th class=\"six wide\">Default</th>\n          <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>namespace</td>\n          <td>tab</td>\n          <td>Event namespace. Makes sure module teardown does not effect other events attached to an element.</td>\n        </tr>\n        <tr>\n          <td>templates</td>\n          <td>\n            <div class=\"code\">\n            templates    : {\n              // returns page title\n              determineTitle: function(tabArray) {}\n            }\n            </div>\n          </td>\n          <td>Functions used to return content</td>\n        </tr>\n        <tr>\n          <td>selector</td>\n          <td>\n            <div class=\"code\">\n            selector    : {\n              tabs : '.ui.tab',\n              parent : '.ui:not(.menu)'\n            }\n            </div>\n          </td>\n          <td>Selectors used by module</td>\n        </tr>\n        <tr>\n          <td>metadata</td>\n          <td>\n            <div class=\"code\">\n            metadata : {\n              tab    : 'tab',\n              loaded : 'loaded',\n              promise: 'promise'\n            }\n            </div>\n          </td>\n          <td>DOM metadata used by module</td>\n        </tr>\n        <tr>\n          <td>className</td>\n          <td>\n            <div class=\"code\">\n            className   : {\n              loading : 'loading',\n              active  : 'active'\n            }\n            </div>\n          </td>\n          <td>Class names used to attach style to state</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <div class=\"ui horizontal divider\"><i class=\"icon setting\"></i></div>\n\n    <h3 class=\"ui header\">\n      Debug Settings\n      <div class=\"sub header\">Debug settings controls debug output to the console</div>\n    </h3>\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n          <th>Setting</th>\n          <th class=\"four wide\">Default</th>\n          <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>name</td>\n          <td>Tab</td>\n          <td>Name used in debug logs</td>\n        </tr>\n        <tr>\n          <td>silent</td>\n          <td>False</td>\n          <td>Silences all console output including error messages, regardless of other debug settings.</td>\n        </tr>\n        <tr>\n          <td>debug</td>\n          <td>False</td>\n          <td>Provides standard debug output to console</td>\n        </tr>\n        <tr>\n          <td>performance</td>\n          <td>True</td>\n          <td>Provides standard debug output to console</td>\n        </tr>\n        <tr>\n          <td>verbose</td>\n          <td>True</td>\n          <td>Provides ancillary debug output to console</td>\n        </tr>\n        <tr>\n          <td>errors</td>\n          <td colspan=\"2\">\n            <div class=\"code\">\n      error: {\n        api        : 'You attempted to load content without API module',\n        method     : 'The method you called is not defined',\n        missingTab : 'Activated tab cannot be found for this context.',\n        noContent  : 'The tab you specified is missing a content url.',\n        path       : 'History enabled, but no path was specified',\n        recursion  : 'Max recursive depth reached',\n        state      : 'The state library has not been initialized'\n      }\n            </div>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/modules/transition.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'transition'\nelement     : 'transition'\nelementType : 'module'\nstandalone  : true\n\ntitle       : 'Transition'\ndescription : 'A transition is an animation usually used to move content in or out of view'\ntype        : 'UI Module'\n---\n\n<%- @partial('header', { tabs: 'module' }) %>\n<script src=\"/javascript/transition.js\"></script>\n\n<div class=\"main ui container\">\n\n  <div class=\"ui active tab\" data-tab=\"definition\">\n    <div class=\"fixed column\">\n      <div class=\"demo content ui sticky\">\n        <img src=\"/images/leaves/1.png\" class=\"ui autumn leaf image\">\n      </div>\n    </div>\n    <div class=\"examples\">\n\n      <h2 class=\"ui dividing header\">Transitions</h2>\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">Scale</h4>\n        <p>An element can scale into or out of view</p>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('scale')\n        ;\n        </div>\n      </div>\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">\n          Zoom\n          <div class=\"ui teal label\">New in 2.3</div>\n        </h4>\n        <p>An element can zoom into view from far away</p>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('zoom')\n        ;\n        </div>\n      </div>\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">Fade</h4>\n        <p>An element can fade into or out of view descending and ascending</p>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('fade')\n        ;\n        </div>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('fade up')\n        ;\n        </div>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('fade down')\n        ;\n        </div>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('fade left')\n        ;\n        </div>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('fade right')\n        ;\n        </div>\n      </div>\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">Flip</h4>\n        <p>An element can flip into or out of view vertically or horizontally</p>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('horizontal flip')\n        ;\n        </div>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('vertical flip')\n        ;\n        </div>\n      </div>\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">Drop</h4>\n        <p>An element can drop into view from above </p>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('drop')\n        ;\n        </div>\n      </div>\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">Fly</h4>\n        <p>An element can fly in from off canvas</p>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('fly left')\n        ;\n        </div>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('fly right')\n        ;\n        </div>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('fly up')\n        ;\n        </div>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('fly down')\n        ;\n        </div>\n      </div>\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">Swing</h4>\n        <p>An element can swing into view</p>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('swing left')\n        ;\n        </div>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('swing right')\n        ;\n        </div>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('swing up')\n        ;\n        </div>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('swing down')\n        ;\n        </div>\n      </div>\n\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">Browse</h4>\n\n        <p>An element can appear and disappear as part of a series</p>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('browse')\n        ;\n        </div>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('browse right')\n        ;\n        </div>\n      </div>\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">Slide</h4>\n        <p>An element can appear to slide in from above or below\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('slide down')\n        ;\n        </div>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('slide up')\n        ;\n        </div>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('slide left')\n        ;\n        </div>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('slide right')\n        ;\n        </div>\n      </div>\n\n      <h2 class=\"ui dividing header\">Static Animations</h2>\n\n      <div class=\"no example\">\n        <h4 class=\"ui header\">Jiggle</h4>\n        <p>An element can jiggle to draw attention to its shape</p>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('jiggle')\n        ;\n        </div>\n      </div>\n      <div class=\"no example\">\n        <h4 class=\"ui header\">Flash</h4>\n        <p>An element can flash to draw attention to itself</p>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('flash')\n        ;\n        </div>\n      </div>\n      <div class=\"no example\">\n        <h4 class=\"ui header\">Shake</h4>\n        <p>An element can shake to draw attention to its position</p>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('shake')\n        ;\n        </div>\n      </div>\n      <div class=\"no example\">\n        <h4 class=\"ui header\">Pulse</h4>\n        <p>An element can pulse to draw attention to its visibility</p>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('pulse')\n        ;\n        </div>\n      </div>\n      <div class=\"no example\">\n        <h4 class=\"ui header\">Tada</h4>\n        <p>An element can give user positive feedback for an action</p>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('tada')\n        ;\n        </div>\n      </div>\n      <div class=\"no example\">\n        <h4 class=\"ui header\">Bounce</h4>\n        <p>An element can bounce to politely remind you of itself</p>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('bounce')\n        ;\n        </div>\n      </div>\n      <div class=\"no example\">\n        <h4 class=\"ui header\">\n          Glow\n          <div class=\"ui teal label\">New in 2.3</div>\n        </h4>\n        <p>An element can glow to show its position in a page.</p>\n        <div class=\"code\" data-demo=\"true\">\n        $('.autumn.leaf')\n          .transition('glow')\n        ;\n        </div>\n      </div>\n\n    </div>\n  </div>\n  <div class=\"ui tab\" data-tab=\"examples\">\n    <div class=\"fixed column\">\n      <div class=\"ui sticky\">\n        <img src=\"/images/leaves/5.png\" class=\"ui long leaf image\">\n      </div>\n    </div>\n    <div class=\"examples\">\n      <h2 class=\"ui dividing header\">Visibility</h2>\n      <p>After the animation queue finishes for an element, its final visibility state is determined. If an animation is an outward transition, the final visibility status will be hidden. If an animation is inward the element will be visible after the animation finishes.</p>\n      <div class=\"code\" data-type=\"javascript\" data-demo=\"true\" data-title=\"Disappearing element\">\n      $('.long.leaf.image')\n        .transition('scale')\n      ;\n      </div>\n\n      <h2 class=\"ui dividing header\">Specifying a direction</h2>\n      <p>To force an animation direction, add either <code>in</code> or <code>out</code> to the animation name.</p>\n      <div class=\"code\" data-demo=\"true\" data-title=\"Specifying a direction\">\n      $('.long.leaf.image')\n        // if a direction if specified it will be obeyed\n        .transition('horizontal flip in')\n        .transition('vertical flip in')\n      ;\n      </div>\n\n      <h2 class=\"ui dividing header\">Automatic Direction</h2>\n\n      <p>If an animation direction is not specified it will automatically be determined based on the elements current visibility. For example, if the element is visible the animation \"fade out\" will be called, if the animation is not visible \"fade in\".</p>\n\n      <div class=\"code\" data-demo=\"true\" data-title=\"Automatically choosing direction\">\n      $('.long.leaf.image')\n        // fade up out is used if available\n        .transition('fade up')\n        // this is now fade up in\n        .transition('fade up')\n      ;\n      </div>\n\n      <h2 class=\"ui dividing header\">Grouped Transitions</h2>\n\n      <h4 class=\"ui header\">Animation Intervals</h4>\n      <p>When animating several different items in a group you may want to use an interval so that each item appears consecutively</p>\n      <div class=\"code\" data-demo=\"true\" data-title=\"Animation Intervals\">\n      $('.jiggle.images .image')\n        .transition({\n          animation : 'jiggle',\n          duration  : 800,\n          interval  : 200\n        })\n      ;\n      </div>\n      <div class=\"ui small jiggle images\">\n        <img src=\"/images/wireframe/image.png\" class=\"ui wireframe image\">\n        <img src=\"/images/wireframe/image.png\" class=\"ui wireframe image\">\n        <img src=\"/images/wireframe/image.png\" class=\"ui wireframe image\">\n      </div>\n      <h4 class=\"ui header\">Animation Order</h4>\n      <p>When hiding groups of elements, the default setting uses <code>reverse: 'auto'</code>. This will automatically reverse the order of animations from back-to-front when hiding elements to avoid layout reflows. When showing elements the order will return to its normal sequence.</p>\n      <div class=\"code\" data-demo=\"true\" data-title=\"Reversing Animation Order\" data-type=\"javascript\">\n      $('.sequenced.images .image')\n        .transition({\n          animation : 'scale',\n          reverse   : 'auto', // default setting\n          interval  : 200\n        })\n      ;\n      </div>\n      <div class=\"ui small sequenced images\">\n        <img src=\"/images/wireframe/image.png\" class=\"ui wireframe image\">\n        <img src=\"/images/wireframe/image.png\" class=\"ui wireframe image\">\n        <img src=\"/images/wireframe/image.png\" class=\"ui wireframe image\">\n        <img src=\"/images/wireframe/image.png\" class=\"ui wireframe image\">\n        <img src=\"/images/wireframe/image.png\" class=\"ui wireframe image\">\n        <img src=\"/images/wireframe/image.png\" class=\"ui wireframe image\">\n      </div>\n\n      <h4 class=\"ui header\">Forcing Order</h4>\n      <p>If you need to manually force reverse animations regardless of the animation direction, you can use <code>reverse: true</code>.</p>\n      <div class=\"code\" data-demo=\"true\" data-title=\"Reversing Animation Order\">\n      $('.reverse.images .image')\n        .transition({\n          animation : 'pulse',\n          reverse   : true,\n          interval  : 200\n        })\n      ;\n      </div>\n      <div class=\"ui small reverse images\">\n        <img src=\"/images/wireframe/image.png\" class=\"ui wireframe image\">\n        <img src=\"/images/wireframe/image.png\" class=\"ui wireframe image\">\n        <img src=\"/images/wireframe/image.png\" class=\"ui wireframe image\">\n      </div>\n\n      <h2 class=\"ui dividing header\">Static Animations</h2>\n      <p>Animations that do not have an in or out animation defined, will maintain their current visibility after running</p>\n      <div class=\"code\" data-demo=\"true\" data-title=\"Static transitions\">\n      $('.long.leaf.image')\n        .transition('pulse')\n      ;\n      </div>\n\n      <h2 class=\"ui dividing header\">Looping</h2>\n      <p>Animation loops can be controlled by setting looping. Callbacks will occur after each loop cycle</p>\n      <div class=\"code\" data-demo=\"true\" data-title=\"Starting looping\">\n      $('.long.leaf.image')\n        .transition('set looping')\n        .transition('bounce', '2000ms')\n      ;\n      </div>\n      <div class=\"code\" data-demo=\"true\" data-title=\"Ending looping\">\n      $('.long.leaf.image')\n        .transition('remove looping')\n      ;\n      </div>\n    </div>\n  </div>\n\n\n  <div class=\"ui tab\" data-tab=\"usage\">\n    <div class=\"fixed column\">\n      <div class=\"ui sticky\">\n        <img src=\"/images/leaves/4.png\" class=\"ui green leaf image\">\n      </div>\n    </div>\n    <div class=\"examples\">\n      <h2 class=\"ui dividing header\">Introduction</h2>\n\n      <p>UI Transitions provide a wrapper for using CSS transitions in Javascript providing cross-browser callbacks, advanced queuing, and feature detection.</p>\n      <p>Transitions are loosely coupled with other ui modules like <a href=\"/modules/dropdown.html\">dropdowns</a> and <a href=\"/modules/modal.html\">modals</a> to provide element transitions</p>\n\n      <h3 class=\"ui header\">Types</h3>\n      <p>Transitions are separated into three categories. <b>Inward transitions</b>, <b>outward transitions</b>, and <b>static transitions</b>. These three categories determine the visibility of the element after the animation completes.</p>\n\n      <h2 class=\"ui dividing header\">Usage</h2>\n\n      <h3 class=\"ui header\">Initializing</h3>\n\n      <p>If a transition is called without any arguments all default settings will be used.</p>\n\n      <div class=\"code\" data-demo=\"true\" data-title=\"Initializing a transition\">\n      $('.green.leaf')\n        // default everything\n        .transition()\n      ;\n      </div>\n\n      <h3 class=\"ui header\">Passing in settings</h3>\n      <p>Transitions use similar argument shorthand as <a href=\"http://api.jquery.com/animate/\">animate</a>. You can specify callback functions, animation duration, and other settings using the same arguments. Durations can be specified as strings with CSS shorthand, or with numbers.</p>\n      <div class=\"code\" data-demo=\"true\" data-title=\"Settings objects\">\n      $('.green.leaf')\n        .transition({\n          animation  : 'scale',\n          duration   : '2s',\n          onComplete : function() {\n            alert('done');\n          }\n        })\n      ;\n      </div>\n\n      <h3 class=\"ui header\">Display Type</h3>\n\n      <p>Animations can be used on any display type not just block level elements. For example you can animate a button while preserving its <code>inline-block</code> status.</p>\n      <div class=\"code\" data-demo=\"true\" data-title=\"Queueing animations\">\n      $('.test.button')\n        .transition('horizontal flip', '500ms')\n      ;\n      </div>\n      <div class=\"ui divider\"></div>\n      <div class=\"ui teal test labeled icon button\">\n        <i class=\"icon user\"></i> Sign-up\n      </div>\n\n      <h3 class=\"ui header\">Queuing animations</h3>\n\n      <p>Animations called in sequence will be queued. Any queued animation will automatically determine the transition direction if none is specified.</p>\n      <div class=\"code\" data-demo=\"true\" data-title=\"Queueing animations\">\n      $('.green.leaf')\n        .transition('horizontal flip', '500ms')\n        .transition('horizontal flip', 500, function() {\n          alert('done!');\n        })\n      ;\n      </div>\n\n\n      <h3 class=\"ui header\">Stopping Animations</h3>\n\n      <p>Animations can be stopped using three methods. <code>stop</code> will end the current animation, <code>stop all</code> will end animation and remove queued animations, and <code>clear queue</code> will continue the current playback but remove queued animations.</p>\n\n      <div class=\"code\" data-demo=\"true\" data-title=\"Stopping Animations\">\n      // only first horizontal flip cancelled\n      $('.green.leaf')\n        .transition('horizontal flip')\n        .transition('horizontal flip')\n        .transition('horizontal flip')\n        .transition('stop')\n        .transition('vertical flip')\n      ;\n      </div>\n      <div class=\"code\" data-demo=\"true\" data-title=\"Stopping All Animations\">\n      // all horizontal flip cancelled\n      $('.green.leaf')\n        .transition('horizontal flip')\n        .transition('horizontal flip')\n        .transition('horizontal flip')\n        .transition('stop all')\n        .transition('vertical flip')\n      ;\n      </div>\n      <div class=\"code\" data-demo=\"true\" data-title=\"Clearing Animation Queue\">\n      // all queued animations cancelled\n      $('.green.leaf')\n        .transition('horizontal flip')\n        .transition('horizontal flip')\n        .transition('vertical flip')\n        .transition('clear queue')\n      ;\n      </div>\n\n      <h3 class=\"ui header\">Hide/Show Without Transition</h3>\n\n      <p>You can use transitions <code>show</code> and <code>hide</code> behavior to hide content without animation. This will preserve the display type, like <code>flex</code> or <code>table-cell</code> of an element just like animations.</p>\n\n      <div class=\"ui ignored info message\">Transition only use inline styles when an element's final display state is not <code>block</code>, or when an element cannot be hidden without an inline override.</div>\n\n      <div class=\"code\" data-demo=\"true\" data-title=\"Toggling State\">\n      $('.demo.table tr:last-child')\n        .transition('toggle')\n      ;\n      </div>\n      <div class=\"code\" data-demo=\"true\" data-title=\"Hiding\">\n      $('.demo.table td:last-child')\n        .transition('hide')\n      ;\n      </div>\n\n      <table class=\"ui demo table\">\n        <tbody>\n          <tr>\n            <td>John Lilki</td>\n            <td>jhlilk22@yahoo.com</td>\n            <td>No</td>\n          </tr>\n          <tr>\n            <td>Jamie Harington</td>\n            <td>jamieharingonton@yahoo.com</td>\n            <td>Yes</td>\n          </tr>\n          <tr>\n            <td>Jill Lewis</td>\n            <td>jilsewris22@yahoo.com</td>\n            <td>Yes</td>\n          </tr>\n        </tbody>\n      </table>\n\n      <h2 class=\"ui dividing header\">Behavior</h2>\n\n      <p>All the following behaviors can be called using the syntax:</p>\n      <div class=\"code\">\n      $('.your.element')\n        .transition('behavior name', argumentOne, argumentTwo)\n      ;\n      </div>\n\n      <table class=\"ui definition sortable celled table segment\">\n        <thead>\n          <tr>\n          <th>Behavior</th>\n          <th>Description</th>\n          </tr>\n        </thead>\n        <tbody>\n          <tr>\n            <td>stop</td>\n            <td>Stop current animation and preserve queue</td>\n          </tr>\n          <tr>\n            <td>stop all</td>\n            <td>Stop current animation and queued animations</td>\n          </tr>\n          <tr>\n            <td>clear queue</td>\n            <td>Clears all queued animations</td>\n          </tr>\n          <tr>\n            <td>show</td>\n            <td>Stop current animation and show element</td>\n          </tr>\n          <tr>\n            <td>hide</td>\n            <td>Stop current animation and hide element</td>\n          </tr>\n          <tr>\n            <td>toggle</td>\n            <td>Toggles between hide and show</td>\n          </tr>\n          <tr>\n            <td>force repaint</td>\n            <td>Forces reflow using a more expensive but stable method</td>\n          </tr>\n          <tr>\n            <td>repaint</td>\n            <td>Triggers reflow on element</td>\n          </tr>\n          <tr>\n            <td>reset</td>\n            <td>Resets all conditions changes during transition</td>\n          </tr>\n          <tr>\n            <td>looping</td>\n            <td>Enables animation looping</td>\n          </tr>\n          <tr>\n            <td>remove looping</td>\n            <td>Removes looping state from element</td>\n          </tr>\n          <tr>\n            <td>disable</td>\n            <td>Adds disabled state (stops ability to animate)</td>\n          </tr>\n          <tr>\n            <td>enable</td>\n            <td>Removes disabled state</td>\n          </tr>\n          <tr>\n            <td>set duration(duration)</td>\n            <td>Modifies element animation duration</td>\n          </tr>\n          <tr>\n            <td>save conditions</td>\n            <td>Saves all class names and styles to cache to be retrieved after animation</td>\n          </tr>\n          <tr>\n            <td>restore conditions</td>\n            <td>Adds back cached names and styles to element</td>\n          </tr>\n          <tr>\n            <td>get animation name</td>\n            <td>Returns vendor prefixed animation property for animationname</td>\n          </tr>\n          <tr>\n            <td>get animation event</td>\n            <td>Returns vendor prefixed animation property for animationend</td>\n          </tr>\n          <tr>\n            <td>is visible</td>\n            <td>Returns whether element is currently visible</td>\n          </tr>\n          <tr>\n            <td>is animating</td>\n            <td>Returns whether transition is currently occurring</td>\n          </tr>\n          <tr>\n            <td>is looping</td>\n            <td>Returns whether animation looping is set</td>\n          </tr>\n          <tr>\n            <td>is supported</td>\n            <td>Returns whether animations are supported</td>\n          </tr>\n        </tbody>\n      </table>\n    </div>\n  </div>\n\n  <div class=\"ui tab\" data-tab=\"settings\">\n\n    <h3 class=\"ui header\">\n      Transition Settings\n      <div class=\"sub header\">Form settings modify the transition behavior</div>\n    </h3>\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n        <th>Setting</th>\n        <th class=\"four wide\">Default</th>\n        <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>animation</td>\n          <td>fade</td>\n          <td>Named animation event to used. Must be defined in CSS.</td>\n        </tr>\n        <tr>\n          <td>interval</td>\n          <td>0</td>\n          <td>Interval in MS between each elements transition</td>\n        </tr>\n        <tr>\n          <td>reverse</td>\n          <td>auto</td>\n          <td>When an interval is specified, sets order of animations. <code>auto</code> reverses only animations that are hiding.</td>\n        </tr>\n        <tr>\n          <td>displayType</td>\n          <td>false</td>\n          <td>Specify the final display type (block, inline-block etc) so that it doesn't have to be calculated.</td>\n        </tr>\n        <tr>\n          <td>duration</td>\n          <td>500ms</td>\n          <td>Duration of the CSS transition animation</td>\n        </tr>\n        <tr>\n          <td>useFailSafe</td>\n          <td>true</td>\n          <td>If enabled a <code>timeout</code> will be added to ensure <code>animationend</code> callback occurs even if element is hidden</td>\n        </tr>\n        <tr>\n          <td>allowRepeats</td>\n          <td>false</td>\n          <td>If enabled will allow same animation to be queued while it is already occurring</td>\n        </tr>\n        <tr>\n          <td>queue</td>\n          <td>true</td>\n          <td>Whether to automatically queue animation if another is occurring</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <div class=\"ui horizontal divider\"><i class=\"icon setting\"></i></div>\n\n    <h3 class=\"ui header\">\n      Callbacks\n      <div class=\"sub header\">Callbacks specify a function to occur after a specific behavior.</div>\n    </h3>\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n        <th class=\"four wide\">Setting</th>\n        <th>Context</th>\n        <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>onShow</td>\n          <td>transitioned element</td>\n          <td>Callback on each transition that changes visibility to shown</td>\n        </tr>\n        <tr>\n          <td>onHide</td>\n          <td>transitioned element</td>\n          <td>Callback on each transition that changes visibility to hidden</td>\n        </tr>\n        <tr>\n          <td>onStart</td>\n          <td>transitioned element</td>\n          <td>Callback on animation start, useful for queued animations</td>\n        </tr>\n        <tr>\n          <td>onComplete</td>\n          <td>transitioned element</td>\n          <td>Callback on each transition complete</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <div class=\"ui horizontal divider\"><i class=\"icon setting\"></i></div>\n\n    <h3 class=\"ui header\">\n      DOM Settings\n      <div class=\"sub header\">DOM settings specify how this module should interface with the DOM</div>\n    </h3>\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n        <th>Setting</th>\n        <th class=\"six wide\">Default</th>\n        <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>namespace</td>\n          <td>transition</td>\n          <td>Event namespace. Makes sure module teardown does not effect other events attached to an element.</td>\n        </tr>\n        <tr>\n          <td>className</td>\n          <td>\n            <div class=\"code\">\n  className   : {\n    animating  : 'animating',\n    disabled   : 'disabled',\n    hidden     : 'hidden',\n    inward     : 'in',\n    loading    : 'loading',\n    looping    : 'looping',\n    outward    : 'out',\n    transition : 'transition',\n    visible    : 'visible'\n  }\n            </div>\n          </td>\n          <td>Class names used to attach style to state</td>\n        </tr>\n      </tbody>\n    </table>\n\n    <div class=\"ui horizontal divider\"><i class=\"icon setting\"></i></div>\n\n    <h3 class=\"ui header\">\n      Debug Settings\n      <div class=\"sub header\">Debug settings controls debug output to the console</div>\n    </h3>\n\n    <table class=\"ui celled sortable definition table segment\">\n      <thead>\n        <tr>\n        <th>Setting</th>\n        <th class=\"four wide\">Default</th>\n        <th>Description</th>\n        </tr>\n      </thead>\n      <tbody>\n        <tr>\n          <td>name</td>\n          <td>Transition</td>\n          <td>Name used in debug logs</td>\n        </tr>\n        <tr>\n          <td>silent</td>\n          <td>False</td>\n          <td>Silences all console output including error messages, regardless of other debug settings.</td>\n        </tr>\n        <tr>\n          <td>debug</td>\n          <td>False</td>\n          <td>Provides standard debug output to console</td>\n        </tr>\n        <tr>\n          <td>performance</td>\n          <td>True</td>\n          <td>Provides standard debug output to console</td>\n        </tr>\n        <tr>\n          <td>verbose</td>\n          <td>True</td>\n          <td>Provides ancillary debug output to console</td>\n        </tr>\n        <tr>\n          <td>errors</td>\n          <td colspan=\"2\">\n            <div class=\"code\">\n  errors   : {\n    noAnimation : 'There is no CSS animation matching the one you specified.',\n    method      : 'The method you called is not defined'\n  }\n            </div>\n          </td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/test.html.eco",
    "content": "---\nlayout     : 'blank'\ncss        : 'hotfix'\nstandalone : true\n\ntitle      : 'Layout Page'\ndescription: 'This page can be used to help make adjustments to the global docs layout partials'\ntype       : 'Library'\n---\n<!-- TEST JS HERE !-->\n<!DOCTYPE html>\n<html>\n<head>\n  <%- @partial('meta') %>\n  <%- @partial('javascript') %>\n  <%- @partial('css') %>\n  <%- @partial('tracking') %>\n  <%- @partial('transifex') %>\n</head>\n<body id=\"example\" class=\"<%= @document.css %>\" ontouchstart=\"\">\n  <% if @document.element is 'sidebar': %>\n  <%- @partial('demo-sidebar') %>\n  <% end %>\n  <%- @partial('sidebar') %>\n  <%- @partial('fixed-menu') %>\n  <div class=\"pusher\">\n    <div class=\"full height\">\n      <div class=\"toc\">\n<% uiGlobals         = @getCollection(\"documents\").findAll({type: $in: ['UI Global']},[{title: 1}]).toJSON() %>\n<% uiElements        = @getCollection(\"documents\").findAll({type: $in: ['UI Element']},[{title: 1}]).toJSON() %>\n<% uiCollections     = @getCollection(\"documents\").findAll({type: $in: ['UI Collection']},[{title: 1}]).toJSON() %>\n<% uiViews           = @getCollection(\"documents\").findAll({type: $in: ['UI View']},[{title: 1}]).toJSON() %>\n<% uiModules         = @getCollection(\"documents\").findAll({type: $in: ['UI Module']},[{title: 1}]).toJSON() %>\n<% uiBehavior        = @getCollection(\"documents\").findAll({type: $in: ['UI Behavior']},[{title: 1}]).toJSON() %>\n\n<div class=\"ui vertical inverted sticky menu\">\n  <a class=\"item\" href=\"<%= @getZip() %>\">\n    <i class=\"download icon\"></i>\n    <b>Getting Started</b>\n  </a>\n  <div class=\"item\">\n    <div class=\"header\">Examples</div>\n    <div class=\"menu\">\n      <a href=\"/globals/site.html\" class=\"item\">\n        Layouts\n      </a>\n      <a href=\"/kitchen-sink.html\" class=\"item\">\n        UI\n      </a>\n    </div>\n  </div>\n  <div class=\"item\">\n    <div class=\"<%= if @document.elementType is 'global' then 'active ' %> header\">Globals</div>\n    <div class=\"menu\">\n      <% for element in uiGlobals: %>\n        <a class=\"<%= if element.id is @document.id then 'active ' %>item\" href=\"<%= element.url %>\">\n          <%= element.title %>\n          <% if element.status?: %>\n          <span class=\"ui mini empty yellow circular ui label\"></span>\n          <% end %>\n        </a>\n      <% end %>\n    </div>\n  </div>\n  <div class=\"item\">\n    <div class=\"<%= if @document.elementType is 'element' then 'active ' %> header\">Elements</div>\n    <div class=\"menu\">\n      <% for element in uiElements: %>\n        <a class=\"<%= if element.id is @document.id then 'active ' %>item\" href=\"<%= element.url %>\">\n          <%= element.title %>\n          <% if element.status?: %>\n          <span class=\"ui mini empty yellow circular ui label\"></span>\n          <% end %>\n        </a>\n      <% end %>\n    </div>\n  </div>\n  <div class=\"item\">\n    <div class=\"<%= if @document.elementType is 'collection' then 'active ' %> header\">Collections</div>\n    <div class=\"menu\">\n      <% for element in uiCollections: %>\n        <a class=\"<%= if element.id is @document.id then 'active ' %>item\" href=\"<%= element.url %>\">\n          <%= element.title %>\n          <% if element.status?: %>\n          <span class=\"ui mini empty yellow circular ui label\"></span>\n          <% end %>\n        </a>\n      <% end %>\n    </div>\n  </div>\n  <div class=\"item\">\n    <div class=\"<%= if @document.elementType is 'view' then 'active ' %> header\">Views</div>\n    <div class=\"menu\">\n      <% for element in uiViews: %>\n        <a class=\"<%= if element.id is @document.id then 'active ' %>item\" href=\"<%= element.url %>\">\n          <%= element.title %>\n          <% if element.status?: %>\n          <span class=\"ui mini empty yellow circular ui label\"></span>\n          <% end %>\n        </a>\n      <% end %>\n    </div>\n  </div>\n  <div class=\"item\">\n    <div class=\"<%= if @document.elementType is 'module' then 'active ' %> header\">Modules</div>\n    <div class=\"menu\">\n      <% for element in uiModules: %>\n        <a class=\"<%= if element.id is @document.id then 'active ' %>item\" href=\"<%= element.url %>\">\n          <%= element.title %>\n          <% if element.status?: %>\n          <span class=\"ui mini empty yellow circular ui label\"></span>\n          <% end %>\n        </a>\n    <% end %>\n    </div>\n  </div>\n  <div class=\"item\">\n    <div class=\"<%= if @document.elementType is 'behavior' then 'active ' %> header\">Behaviors</div>\n    <div class=\"menu\">\n      <% for element in uiBehavior: %>\n        <a class=\"<%= if element.id is @document.id then 'active ' %>item\" href=\"<%= element.url %>\">\n          <%= element.title %>\n          <% if element.status?: %>\n          <span class=\"ui mini empty yellow circular ui label\"></span>\n          <% end %>\n        </a>\n      <% end %>\n    </div>\n  </div>\n</div>\n      </div>\n      <div class=\"article\">\n        <% @tabs = {  definition: 'Definition', examples: 'Examples', usage: 'Usage', settings: 'Settings' } if @tabs == 'module' %>\n        <% @tabs = {  overview: 'Overview', usage: 'Usage', examples: 'Examples', settings: 'Settings' } if @tabs == 'behavior' %>\n        <div class=\"ui masthead vertical<% if @tabs?: %> tab<% end %> segment\">\n          <div class=\"ui container\">\n            <div class=\"introduction\">\n\n              <h1 class=\"ui header\">\n                <%=@document.title %>\n                <% if @document.status?: %><span class=\"ui red label\"><%= @document.status %></span><% end %>\n                <div class=\"sub header\">\n                  <% if 'developments' in @getEnvironments(): %>\n                  <% else: %>\n                  <iframe class=\"github\" src=\"//ghbtns.com/github-btn.html?user=semantic-org&amp;repo=semantic-ui&amp;type=watch&amp;count=true\" allowtransparency=\"true\" frameborder=\"0\" scrolling=\"0\" width=\"100\" height=\"20\"></iframe>\n                  <% end %>\n                  <%=@document.description %>\n                </div>\n              </h1>\n\n              <div class=\"ui hidden divider\"></div>\n\n              <div class=\"ui right floated main menu\">\n                <% if @document.type is 'UI Element' or @document.type is 'UI View' or @document.type is 'UI Collection' or @document.type is 'UI Module': %>\n                <a class=\"bug popup icon item\" data-content=\"Edit This Page\" href=\"https://github.com/Semantic-Org/Semantic-UI-Docs/edit/master/server/documents/<%= @document.elementType %>s/<%= @document.element %>.html.eco\">\n                  <i class=\"edit icon\"></i>\n                </a>\n                <a class=\"bug popup icon item\" data-content=\"Submit Bug Report\" href=\"https://github.com/Semantic-Org/Semantic-UI/issues/new?title=[<%= @document.title %>] - Bug Name\">\n                  <i class=\"bug icon\"></i>\n                </a>\n                <% end %>\n                <a class=\"github popup icon item\" data-content=\"View project on GitHub\" href=\"https://github.com/Semantic-Org/Semantic-UI\">\n                  <i class=\"alternate github icon\"></i>\n                </a>\n              </div>\n              <div class=\"ui right floated main menu\">\n                <a class=\"music popup icon item\" data-content=\"Play Music\">\n                  <i class=\"music icon\"></i>\n                </a>\n                <div class=\"ui language dropdown right floating icon item\" id=\"languages\" data-content=\"Select Language\">\n                  <i class=\"world icon\"></i>\n                  <div class=\"menu\">\n                    <div class=\"header\">Select Language</div>\n                    <div class=\"ui icon search input\">\n                      <i class=\"search icon\"></i>\n                      <input type=\"text\" placeholder=\"Search languages...\">\n                    </div>\n                    <%- @partial('languages') %>\n                  </div>\n                </div>\n              </div>\n\n              <% if @document.type is 'UI Module': %>\n        <!--       <a href=\"/module.html\" class=\"ui right floated basic right labeled icon button\">\n                Learn about Modules\n                <i class=\"help icon\" data-title=\"What are Modules?\" data-content=\"Modules are UI elements that include behaviors as part of their definition. Modules require some knowledge of Javascript to use.\"></i>\n              </a> -->\n              <% end %>\n              <% if @document.themes? && @document.themes.length > 1: %>\n              <div class=\"ui floating <% if @document.themes.length > 4: %>scrolling <% end %>dropdown theme basic button\" data-element=\"<%= @document.element %>\" data-type=\"<%= @document.elementType %>\">\n                <span class=\"text\"><%= @document.themes.length %> Themes</span>\n                <div class=\"menu transition hidden\">\n                  <% for id, name of @document.themes: %>\n                    <div class=\"item\" data-value=\"<%= name %>\" data-text=\"<%= name %> Theme\"><%= (name.charAt(0).toUpperCase() + name.slice(1)) %></div>\n                  <% end %>\n                </div>\n              </div>\n              <% end %>\n              <% if @document.type is 'UI Element' or @document.type is 'UI View' or @document.type is 'UI Collection' or @document.type is 'UI Module': %>\n              <div class=\"ui download primary button\">\n                Download\n              </div>\n              <div class=\"ui flowing download popup\">\n                <div class=\"ui divided equal width relaxed center aligned choice grid\">\n                  <div class=\"framework column\">\n                    <h4 class=\"ui center aligned header\">UI Framework</h4>\n                    <div class=\"ui list\">\n                      <div class=\"item\"><i class=\"green check icon\"></i> Themable</div>\n                      <div class=\"item\"><i class=\"green check icon\"></i> Build Tools</div>\n                    </div>\n                    <div class=\"ui primary fluid button\">Choose</div>\n                  </div>\n                  <div class=\"standalone column\">\n                    <h4 class=\"ui center aligned header\">Standalone</h4>\n                    <div class=\"ui list\">\n                      <div class=\"item\">Default Theme</div>\n                      <div class=\"item\">Precompiled</div>\n                    </div>\n                    <div class=\"ui fluid button basic\">Choose</div>\n                  </div>\n                </div>\n                <div class=\"ui divided equal height relaxed center aligned framework grid\">\n                  <div class=\"column\">\n                    <div class=\"ui header\">Semantic UI</div>\n                    <a class=\"ui primary button\" href=\"https://github.com/Semantic-Org/Semantic-UI/archive/master.zip\">\n                      Download ZIP\n                    </a>\n                    <a class=\"ui button\" href=\"http://learnsemantic.com/guide/expert.html\">Getting Started</a>\n                    <h4 class=\"ui header\">Package Managers</h4>\n                    <div class=\"ui form\">\n                      <div class=\"field\">\n                        <label>NPM</label>\n                        <div class=\"ui fluid input\">\n                          <input type=\"text\" readonly=\"readonly\" placeholder=\"Copy Link\" value=\"npm install semantic-ui\">\n                        </div>\n                      </div>\n                      <div class=\"field\">\n                        <label>Git</label>\n                        <div class=\"ui fluid input\">\n                          <input type=\"text\" readonly=\"readonly\" placeholder=\"Copy Link\" value=\"https://github.com/Semantic-Org/Semantic-UI.git\">\n                        </div>\n                      </div>\n                    </div>\n                  </div>\n                </div>\n                <div class=\"ui divided equal height relaxed center aligned standalone grid\">\n                  <div class=\"column\">\n                    <div class=\"ui header\">Standalone <%=@document.title %></div>\n                    <a class=\"ui primary button\" href=\"https://github.com/Semantic-Org/UI-<%=@document.title %>/archive/master.zip\">\n                      Download ZIP\n                    </a>\n                    <a class=\"ui button\" href=\"https://github.com/Semantic-Org/UI-<%=@document.title %>/\">\n                      View GitHub\n                    </a>\n                    <h4 class=\"ui header\">Package Managers</h4>\n                    <div class=\"ui form\">\n                      <div class=\"field\">\n                        <label>Bower</label>\n                        <div class=\"ui fluid input\">\n                          <input type=\"text\" readonly=\"readonly\" placeholder=\"Copy Link\" value=\"bower install semantic-ui-<%=@document.element %>\">\n                        </div>\n                      </div>\n                      <div class=\"field\">\n                        <label>NPM</label>\n                        <div class=\"ui fluid input\">\n                          <input type=\"text\" readonly=\"readonly\" placeholder=\"Copy Link\" value=\"npm install semantic-ui-<%=@document.element %>\">\n                        </div>\n                      </div>\n                      <div class=\"field\">\n                        <label>Git</label>\n                        <div class=\"ui fluid input\">\n                          <input type=\"text\" readonly=\"readonly\" placeholder=\"Copy Link\" value=\"https://github.com/Semantic-Org/UI-<%=@document.title %>.git\">\n                        </div>\n                      </div>\n                    </div>\n                  </div>\n                </div>\n              </div>\n              <% end %>\n            </div>\n            <div class=\"advertisement\">\n              <% unless 'developments' in @getEnvironments(): %>\n              <script async type=\"text/javascript\" src=\"//cdn.carbonads.com/carbon.js?zoneid=1673&serve=C6AILKT&placement=semanticuicom\" id=\"_carbonads_js\"></script>\n              <% end %>\n            </div>\n            <% if @tabs?: %>\n            <% index = 0 %>\n            <% tabCount = 0 %>\n            <% numbers = ['', '', 'two item', 'three item', 'four item', 'five item', 'six item'] %>\n            <% colors = ['red', 'teal', 'blue', 'purple', 'black', 'orange'] %>\n              <% for id, name of @tabs: %>\n                <% tabCount++ %>\n              <% end %>\n              <div class=\"<%= numbers[tabCount] %> ui menu\">\n                <% for id, name of @tabs: %>\n                  <a class=\"<%= if index == 0 then 'active ' %>item\" data-tab=\"<%= id %>\"><%= name %></a>\n                  <% index++ %>\n                <% end %>\n              </div>\n              <% index = 0 %>\n              <div class=\"fluid vertical ui menu\">\n                <% for id, name of @tabs: %>\n                  <a class=\"<%= if index == 0 then 'active ' %>item\" data-tab=\"<%= id %>\"><%= name %></a>\n                  <% index++ %>\n                <% end %>\n              </div>\n            <% end %>\n          </div>\n        </div>\n        <div class=\"main ui container\">\n\n          <h2 class=\"ui dividing header\">Types</h2>\n\n          <div class=\"follow example\">\n            <h4 class=\"ui header\">Button</h4>\n            <p>A standard button</p>\n            <button class=\"ui button\">\n              Follow\n            </button>\n          </div>\n          <div class=\"another example\">\n            <div class=\"ui ignored warning message\">\n              Although any tag can be used for a button, it will only be <a href=\"http://webaim.org/techniques/keyboard/tabindex\">keyboard focusable</a> if you use a <code>&#x3C;button&#x3E;</code> tag or you add the property <code>tabindex=\"0\"</code>.\n            </div>\n            <button class=\"ui button\">\n              Button\n            </button>\n            <div class=\"ui button\" tabindex=\"0\">\n              Focusable\n            </div>\n          </div>\n\n          <div class=\"example\">\n            <h4 class=\"ui header\">Ordinality</h4>\n            <p>A button can be formatted to show different levels of emphasis</p>\n            <div class=\"ui ignored info message\">Setting your brand colors to primary and secondary color variables in <code>site.variables</code> will allow you to use your color theming for UI elements</div>\n            <button class=\"ui primary button\">\n              Save\n            </button>\n            <button class=\"ui button\">\n              Discard\n            </button>\n          </div>\n          <div class=\"another example\">\n            <button class=\"ui secondary button\">\n              Okay\n            </button>\n            <button class=\"ui button\">\n              Cancel\n            </button>\n          </div>\n\n          <div class=\"example\">\n            <h4 class=\"ui header\">Animated</h4>\n            <p>A button can animate to show hidden content</p>\n            <div class=\"ui ignored message\">The button will be automatically sized according to the visible content size. Make sure there is enough room for the hidden content to show</div>\n            <div class=\"ui animated button\" tabindex=\"0\">\n              <div class=\"visible content\">Next</div>\n              <div class=\"hidden content\">\n                <i class=\"right arrow icon\"></i>\n              </div>\n            </div>\n            <div class=\"ui vertical animated button\" tabindex=\"0\">\n              <div class=\"hidden content\">Shop</div>\n              <div class=\"visible content\">\n                <i class=\"shop icon\"></i>\n              </div>\n            </div>\n            <div class=\"ui animated fade button\" tabindex=\"0\">\n              <div class=\"visible content\">Sign-up for a Pro account</div>\n              <div class=\"hidden content\">\n                $12.99 a month\n              </div>\n            </div>\n\n          </div>\n\n\n          <div class=\"example\">\n            <h4 class=\"ui header\">Icon</h4>\n            <p>A button can have only an icon</p>\n            <button class=\"ui icon button\">\n              <i class=\"cloud icon\"></i>\n            </button>\n          </div>\n\n          <div class=\"example\">\n            <h4 class=\"ui header\">Labeled Icon</h4>\n            <p>A button can have an icon and a label</p>\n            <button class=\"ui labeled icon button\">\n              <i class=\"pause icon\"></i>\n              Pause\n            </button>\n            <button class=\"ui right labeled icon button\">\n              <i class=\"right arrow icon\"></i>\n              Next\n            </button>\n          </div>\n\n          <div class=\"example\">\n            <h4 class=\"ui header\">Basic</h4>\n            <p>A basic button is less pronounced</p>\n            <button class=\"ui basic button\">\n              <i class=\"icon user\"></i>\n              Add Friend\n            </button>\n          </div>\n          <div class=\"another spaced example\">\n            <button class=\"ui red basic button\">Red</button>\n            <button class=\"ui orange basic button\">Orange</button>\n            <button class=\"ui yellow basic button\">Yellow</button>\n            <button class=\"ui olive basic button\">Olive</button>\n            <button class=\"ui green basic button\">Green</button>\n            <button class=\"ui teal basic button\">Teal</button>\n            <button class=\"ui blue basic button\">Blue</button>\n            <button class=\"ui violet basic button\">Violet</button>\n            <button class=\"ui purple basic button\">Purple</button>\n            <button class=\"ui pink basic button\">Pink</button>\n            <button class=\"ui brown basic button\">Brown</button>\n            <button class=\"ui grey basic button\">Grey</button>\n            <button class=\"ui black basic button\">Black</button>\n          </div>\n        </div>\n      </div>\n    </div>\n    <%- @partial('footer') %>\n  </div>\n\n  <%- @partial('language-modal') %>\n  <%- @partial('dimmer-demo') %>\n  <%- @partial('less') %>\n</body>\n\n</html>\n"
  },
  {
    "path": "server/documents/usage/layout.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'layouts'\nstandalone  : true\norder       : 3\n\ntitle       : 'Layouts'\ndescription : 'Examples of using Semantic UI'\ntype        : 'Usage'\n---\n\n<%- @partial('header') %>\n<div class=\"ui main intro container\">\n  <h2 class=\"ui dividing header\">Starter</h2>\n  <p>Examples to introduce components and their function</p>\n  <div class=\"ui three stackable doubling cards\">\n    <a class=\"ui card\" href=\"/examples/theming.html\">\n      <div class=\"image\">\n        <img src=\"/images/examples/theming.png\">\n      </div>\n      <div class=\"content\">\n        <div class=\"header\">Theming</div>\n        <div class=\"description\">\n          Examples of many common UI components, useful for testing custom themes.\n        </div>\n      </div>\n    </a>\n    <a class=\"ui card\" href=\"/examples/responsive.html\">\n      <div class=\"image\">\n        <img src=\"/images/examples/responsive.png\">\n      </div>\n      <div class=\"content\">\n        <div class=\"header\">Responsive</div>\n        <div class=\"description\">\n          Patterns for adjusting display for different devices.\n        </div>\n      </div>\n    </a>\n    <a class=\"ui card\" href=\"/examples/grid.html\">\n      <div class=\"image\">\n        <img src=\"/images/examples/grid.png\">\n      </div>\n      <div class=\"content\">\n        <div class=\"header\">Grid</div>\n        <div class=\"description\">\n          An introduction to using Semantic UI grids.\n        </div>\n      </div>\n    </a>\n    <a class=\"ui card\" href=\"/examples/attached.html\">\n      <div class=\"image\">\n        <img src=\"/images/examples/attached.png\">\n      </div>\n      <div class=\"content\">\n        <div class=\"header\">Attached Content</div>\n        <div class=\"description\">\n          Examples of content that can attach to other content.\n        </div>\n      </div>\n    </a>\n    <a class=\"ui card\" href=\"/examples/bootstrap.html\">\n      <div class=\"image\">\n        <img src=\"/images/examples/bootstrap.png\">\n      </div>\n      <div class=\"content\">\n        <div class=\"header\">Bootstrap Migration</div>\n        <div class=\"description\">\n          Examples of replacements for components found in Bootstrap.\n        </div>\n      </div>\n    </a>\n  </div>\n\n  <h2 class=\"ui dividing header\">Pages</h2>\n  <p>Starter page templates</p>\n  <div class=\"ui three doubling stackable cards\">\n    <a class=\"ui card\" href=\"/examples/homepage.html\">\n      <div class=\"image\">\n        <img src=\"/images/examples/homepage.png\">\n      </div>\n      <div class=\"content\">\n        <div class=\"header\">Homepage</div>\n        <div class=\"description\">\n          A simple, responsive homepage design with sidebar.\n        </div>\n      </div>\n    </a>\n    <a class=\"ui card\" href=\"/examples/sticky.html\">\n      <div class=\"image\">\n        <img src=\"/images/examples/sticky.png\">\n      </div>\n      <div class=\"content\">\n        <div class=\"header\">Sticky Menus</div>\n        <div class=\"description\">\n         Using visibility APIs to fix content after passing position in page.\n        </div>\n      </div>\n    </a>\n    <a class=\"ui card\" href=\"/examples/fixed.html\">\n      <div class=\"image\">\n        <img src=\"/images/examples/fixed.png\">\n      </div>\n      <div class=\"content\">\n        <div class=\"header\">Fixed Menu</div>\n        <div class=\"description\">\n          Using a fixed menu with page content.\n        </div>\n      </div>\n    </a>\n    <a class=\"ui card\" href=\"/examples/login.html\">\n      <div class=\"image\">\n        <img src=\"/images/examples/login.png\">\n      </div>\n      <div class=\"content\">\n        <div class=\"header\">Login Form</div>\n        <div class=\"description\">\n          A full-screen login form.\n        </div>\n      </div>\n    </a>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/usage/theming.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'theming'\nstandalone  : true\norder       : 2\n\ntitle       : 'Theming'\ndescription : 'An introduction to theming'\ntype        : 'Usage'\n---\n\n<%- @partial('header') %>\n\n<script src=\"/javascript/theming.js\"></script>\n\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/globals/site.less\" />\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/elements/button.less\" />\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/modules/checkbox.less\" />\n\n<div class=\"main ui intro container\">\n\n  <h2 class=\"ui dividing header\">\n    Preface\n  </h2>\n\n  <div class=\"no example\">\n    <h4>Progressive Truthfulness</h4>\n    <blockquote>\n      <p>[Progressive truthfulness] is perhaps a better way to build models of physical objects...Start with a model that is fully detailed but only resembles what is wanted. Then, one adjusts one attribute after another, bringing the result ever closer to the mental vision of the new creation, or to the real properties of a real-world object</p>\n      <p>...Starting with exemplars that themselves have consistency of style ensures that such consistency is the designer's to lose.</p>\n      <span class=\"author\">Frederick Brooks - <a href=\"http://www.amazon.com/gp/product/0201362988/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0201362988&linkCode=as2&tag=seui-20&linkId=IUAKN3YQ7NNJ6IQ2\" target=\"_blank\">The Design of Design</a><span>\n    </blockquote>\n    <p>Components in Semantic UI are designed to help developers adhere to <a href=\"https://books.google.com/books?id=0qG4TQi-e-4C&pg=PT234&lpg=PT234&dq=%22progressive+truthfulness%22+frederick+brooks&source=bl&ots=yrjNc6wnz8&sig=PJoYODuRku2A1kBoFOPfn4iGYnc&hl=en&sa=X&ved=0CCIQ6AEwAGoVChMImdSMpIOVxgIVCx-sCh3EQgBu#v=onepage&q=%22progressive%20truthfulness%22%20frederick%20brooks&f=false\" target=\"_blank\">progressive truthfulness</a> in their development.</p>\n    <p>Instead of having to create components from a blank canvas, developers using Semantic UI only need to specify how their components should differ from the default theme using <a href=\"http://lesscss.org/features/#variables-feature\" target=\"_blank\">CSS variables</a>.</p>\n    <p>For developers who don't have time to hone a specific look-and-feel the default theme is elegant and neutral with a legible, open source sans-serif font <a href=\"http://www.latofonts.com\"><code>Lato</code></a>.</p>\n\n  </div>\n\n\n  <h2 class=\"ui dividing header\">\n    Lead By Example\n  </h2>\n  <div class=\"no example\">\n    <h4>Recreating GitHub</h4>\n    <p>Semantic UI includes an <a target=\"_blank\" href=\"http://semantic-org.github.io/example-github/\">example project</a> designed to showcase theming. This project includes examples of creating a packaged theme, using component CSS overrides, and managing your themes with <code>theme.config</code>.</p>\n\n    <p>To get started click <b>the paint can</b> icon next to the notification button in the top right</p>\n\n    <p>The example project includes two HTML files, <code>index.html</code> is designed to swap themes using a sidebar, and uses precompiled CSS. <code>static.html</code> uses files outputted by Semantic UI and can be used alongside our <a href=\"/introduction/build-tools.html\">gulp pipeline</a> to try modifying themes hands on.</p>\n\n    <p>Some special things to note:</p>\n\n    <div class=\"ui large bulleted list\">\n      <div class=\"item\"><a target=\"_blank\" href=\"https://github.com/Semantic-Org/example-github/blob/master/semantic/src/themes/github/globals/site.variables\">Using site.variables</a> to modify page container sizes, default fonts, and colors</div>\n      <div class=\"item\"><a target=\"_blank\" href=\"https://github.com/Semantic-Org/example-github/blob/master/semantic/src/themes/github/collections/menu.overrides\">Using overrides</a> with variables to add GitHub's specially formatted tab style</div>\n      <div class=\"item\">Combining multiple individual component themes together in one <a target=\"_blank\" href=\"https://github.com/Semantic-Org/example-github/blob/master/semantic/src/theme.config\">theme.config</a></div>\n      <div class=\"item\">Using a <a target=\"_blank\" href=\"https://github.com/Semantic-Org/example-github/blob/master/semantic/src/themes/github/elements/icon.overrides\">custom icon font</a>, and <a target=\"_blank\" href=\"https://github.com/Semantic-Org/example-github/blob/master/semantic/src/themes/github/elements/icon.variables\">modifying paths</a> to assets.</div>\n    </div>\n    <a target=\"_blank\" href=\"http://semantic-org.github.io/example-github/\" class=\"ui primary right labeled icon button\">\n      <i class=\"external link icon\"></i>\n      View Theming Demo\n    </a>\n  </div>\n\n  <h2 class=\"ui dividing header\">\n    Using Themes\n  </h2>\n  <div class=\"no example\">\n    <h4>Sitewide Defaults</h4>\n\n    <p>Semantic UI includes twelve named colors. Components with color variations inherit these global variables when defining how colors should appear.</p>\n\n    <p>Each <a href=\"#theme-inheritance\">level of inheritance</a> includes a special file <code>site.variables</code> which defines theme-wide defaults that each component can extend.</p>\n\n    <p>Global variables use higher level abstractions, to avoid tedium in having to modify multiple properties to change the appearance of an element.</p>\n    <p>Other button shades like those used in <code>hover</code>, <code>active</code> and <code>focus</code> states are created by modifying the saturation and lightness of color variables, these derived variables will automatically adjust to your new color palette.</a>\n\n    <div class=\"ui ignored code\" data-type=\"less\" data-less=\"true\" data-title=\"site/globals/site.variables\">\n    @primaryColor   : @pink;\n    @secondaryColor : @grey;\n    @red            : #B03060;\n    @orange         : #FE9A76;\n    @yellow         : #FFD700;\n    @olive          : #32CD32;\n    @green          : #016936;\n    @teal           : #008080;\n    @blue           : #0E6EB8;\n    @violet         : #EE82EE;\n    @purple         : #B413EC;\n    @pink           : #FF1493;\n    @brown          : #A52A2A;\n    @grey           : #A0A0A0;\n    @black          : #000000;\n    </div>\n\n    <button class=\"ui primary button\">\n      Primary Button\n    </button>\n    <button class=\"ui secondary button\">\n      Secondary Button\n    </button>\n    <div class=\"ui horizontal divider\">All Colors</div>\n    <button class=\"ui red button\">Red</button>\n    <button class=\"ui orange button\">Orange</button>\n    <button class=\"ui yellow button\">Yellow</button>\n    <button class=\"ui olive button\">Olive</button>\n    <button class=\"ui green button\">Green</button>\n    <button class=\"ui teal button\">Teal</button>\n    <button class=\"ui blue button\">Blue</button>\n    <button class=\"ui violet button\">Violet</button>\n    <button class=\"ui purple button\">Purple</button>\n    <button class=\"ui pink button\">Pink</button>\n    <button class=\"ui brown button\">Brown</button>\n    <button class=\"ui grey button\">Grey</button>\n    <button class=\"ui black button\">Black</button>\n  </div>\n  <div class=\"no example\">\n    <h4>Component Defaults</h4>\n    <p>Components inherit default values from <code>site.variables</code> which they may redefine specifically for their component</p>\n    <p>For example, you could decide that instead of the boring default grey checkboxes, you want yours to include your site's branded colors. This can be accomplished in just a few variables.</p>\n    <div class=\"ui ignored code\" data-type=\"less\" data-less=\"true\" data-title=\"site/modules/checkbox.variables\">\n      /* Checkbox */\n      @checkboxActiveBackground: @primaryColor;\n      @checkboxActiveBorderColor: @primaryColor;\n      @checkboxActiveCheckColor: @white;\n      /* Focused Checkbox */\n      @checkboxActiveFocusBackground: @primaryColorFocus;\n      @checkboxActiveFocusBorderColor: @primaryColorFocus;\n      @checkboxActiveFocusCheckColor: @white;\n      @checkboxTransition: none;\n      /* Radio */\n      @radioActiveBackground: @white;\n      @radioActiveBorderColor: @primaryColor;\n      @radioActiveBulletColor: @primaryColor;\n      /* Focused Radio */\n      @radioActiveFocusBackground: @white;\n      @radioActiveFocusBorderColor: @primaryColorFocus;\n      @radioActiveFocusBulletColor: @primaryColorFocus;\n      /* Slider */\n      @sliderOnLineColor: @primaryColor;\n      /* Focused Slider */\n      @sliderOnFocusLineColor: @primaryColorFocus;\n    </div>\n    <div class=\"ui checkbox\">\n      <input type=\"checkbox\" name=\"checkbox\" checked >\n      <label>Checkbox</label>\n    </div>\n\n    <div class=\"ui hidden divider\"></div>\n    <div class=\"ui form\">\n      <div class=\"inline fields\">\n        <div class=\"field\">\n          <div class=\"ui radio checkbox\">\n            <input type=\"radio\" name=\"radio\" checked />\n            <label>A</label>\n          </div>\n        </div>\n        <div class=\"field\">\n          <div class=\"ui radio checkbox\">\n            <input type=\"radio\" name=\"radio\" />\n            <label>B</label>\n          </div>\n        </div>\n        <div class=\"field\">\n          <div class=\"ui radio checkbox\">\n            <input type=\"radio\" name=\"radio\" />\n            <label>C</label>\n          </div>\n        </div>\n        <div class=\"field\">\n          <div class=\"ui radio checkbox\">\n            <input type=\"radio\" name=\"radio\" />\n            <label>D</label>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"ui hidden divider\"></div>\n    <div class=\"ui slider checkbox\">\n      <input type=\"checkbox\" name=\"slider\" checked>\n      <label>Slider</label>\n    </div>\n  </div>\n  <div class=\"no example\">\n    <h4>Using Packaged Themes</h4>\n    <p>When you download Semantic UI all components will be set up to use the default theme. Semantic uses a special file <code>theme.config</code> for controlling your project's packaged theming configuration.</p>\n    <p>Packaged themes are applied per component, and not globally. This means you can specify individual themes for each component, mixing and matching from available themes.</p>\n    <p>The default <code>theme.config</code> will have all component values set to default. To choose a theme, simply change a component to match the theme name.</p>\n\n    <p>For example: </p>\n    <div class=\"code\" data-title=\"src/theme.config\">\n    /*******************************\n            Theme Selection\n    *******************************/\n\n    /* Global */\n    @site       : 'material';  /* Loads material site defaults */\n    @reset      : 'default';\n\n    /* Elements */\n    @button     : 'github'; /* But uses them with GitHub Buttons */\n    @container  : 'default';\n    @divider    : 'default';\n    @flag       : 'default';\n    @header     : 'default';\n    @icon       : 'default';\n    @image      : 'default';\n    @input      : 'default';\n    @label      : 'default';\n    @list       : 'default';\n    @loader     : 'default';\n    @rail       : 'default';\n    @reveal     : 'default';\n    @segment    : 'default';\n    @step       : 'default';\n\n    /* Collections */\n    @breadcrumb : 'default';\n    @form       : 'default';\n    @grid       : 'default';\n    @menu       : 'chubby'; /* Other UI can use different themes as well */\n    @message    : 'default';\n    @table      : 'default';\n\n    /* Modules */\n    @accordion  : 'default';\n    @checkbox   : 'default';\n    @dimmer     : 'default';\n    @dropdown   : 'default';\n    @embed      : 'default';\n    @modal      : 'default';\n    @nag        : 'default';\n    @popup      : 'default';\n    @progress   : 'default';\n    @rating     : 'default';\n    @search     : 'default';\n    @shape      : 'default';\n    @sidebar    : 'default';\n    @sticky     : 'default';\n    @tab        : 'default';\n    @transition : 'default';\n\n    /* Views */\n    @ad         : 'default';\n    @card       : 'default';\n    @comment    : 'default';\n    @feed       : 'default';\n    @item       : 'default';\n    @statistic  : 'default';\n    </div>\n  </div>\n\n  <div class=\"no example\">\n    <h4>Browsing for Themes</h4>\n    <p>Each UI definitions include a dropdown at the top of the page to preview themes included with the project.</p>\n    <p>Themes are <b>per component</b>, so although, for example, material themes are available for <a href=\"/collections/menu.html\">menu</a>, <a href=\"/elements/button.html\">button</a>, and <a href=\"/globals/site.html\">site</a>, changing all values to \"material\" will produce an error for components which are not included in that theme.</p>\n  </div>\n\n  <h2 class=\"ui dividing header\">\n    Composing a Component\n  </h2>\n\n\n  <div class=\"no example\">\n    <h4 class=\"ui header\">Definition File</h4>\n    <p>Each component includes a source CSS and Javascript file which declares how a components variables should affect its display on screen. Definition files are updated with each new release of Semantic UI, which may also include new variables.</p>\n    <p>Navigating definition files are a great way for developers who are comfortable with CSS to get an idea of how themes affect a components display.</p>\n\n    <p>Here's an abridged version of <a href=\"/elements/button.html\">button</a> with an explanation of each section of the file.</p>\n\n    <div class=\"code\" data-type=\"less\" data-title=\"src/definitions/elements/button.less\">\n\n/*******************************\n                Theme\n*******************************/\n\n/* Define type and element to help locate theme files */\n@type    : 'element';\n@element : 'button';\n\n/* Processes Variable Inheritance */\n@import (multiple) '../../theme.config';\n\n/* Create scope */\n& {\n\n/*******************************\n               Button\n*******************************/\n\n/* Define Component */\n.ui.button {\n  cursor: pointer;\n  display: inline-block;\n\n  min-height: 1em;\n\n  outline: none;\n  border: none;\n  vertical-align: @verticalAlign;\n  background: @background;\n  color: @textColor;\n\n  font-family: @fontFamily;\n\n  margin: 0em @horizontalMargin @verticalMargin 0em;\n  padding: @verticalPadding @horizontalPadding (@verticalPadding + @shadowOffset);\n\n  text-transform: @textTransform;\n  text-shadow: @textShadow;\n  font-weight: @fontWeight;\n  line-height: @lineHeight;\n  font-style: normal;\n  text-align: center;\n  text-decoration: none;\n\n  border-radius: @borderRadius;\n  box-shadow: @boxShadow;\n\n  user-select: none;\n  transition: @transition;\n  will-change: @willChange;\n\n  -webkit-tap-highlight-color: @tapColor;\n}\n\n/* Additional CSS removed for brevity */\n\n/* Load CSS Overrides and Inline */\n.loadUIOverrides();\n\n}\n\n    </div>\n  </div>\n\n  <div class=\"no example\">\n    <h4 class=\"ui header\">Theme Files</h4>\n    <p>Themes are made up of two files: a <code>.variables</code> file and a <code>.overrides</code> file. A theme can include both variables and overrides, or just either one alone.</p>\n  </div>\n  <div class=\"no example\">\n    <h4 class=\"ui header\">Variables Files</h4>\n    <p>A <code>.variables</code> file specifies variables which should be adjusted for a theme.</p>\n    <p>A theme's variable file only needs to include variables which are different for a theme.</p>\n  </div>\n  <div class=\"no example\">\n    <h4 class=\"ui header\">Override Files</h4>\n    <p>An .overrides file specifies additional CSS rules to be added to a definition for a theme. This file also has access to all inherited variables for a component.</p>\n  </div>\n\n  <h2 class=\"ui dividing header\">\n    Cascading Inheritance\n  </h2>\n\n  <div class=\"no example\">\n    <h4 class=\"ui header\">Theme Inheritance</h4>\n    <p>Themes contain three separate levels of variable inheritance.</p>\n    <p>Each level of inheritance corresponds to a different level of permanence for a variable.</p>\n    <div class=\"ui fluid steps\">\n      <div class=\"step\">\n        <i class=\"lock icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Defaults</div>\n          <div class=\"description\">UI Defaults</div>\n        </div>\n      </div>\n      <div class=\"step\">\n        <i class=\"download icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Packaged Theme</div>\n          <div class=\"description\">Distributable Packages</div>\n        </div>\n      </div>\n    <div class=\"step\">\n        <i class=\"user icon\"></i>\n        <div class=\"content\">\n          <div class=\"title\">Site Theme</div>\n          <div class=\"description\">Site Specific Changes</div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"no example\">\n    <h4 class=\"ui header\">Default Theme</h4>\n    <div class=\"ui breadcrumb\">\n      <div class=\"section\">\n        <i class=\"disabled folder icon\"></i>\n        src\n      </div>\n      <i class=\"right chevron icon divider\"></i>\n      <div class=\"section\">\n        <i class=\"disabled folder icon\"></i>\n        themes\n      </div>\n      <i class=\"right chevron icon divider\"></i>\n      <div class=\"active section\">\n        <i class=\"inverted circular teal folder icon\"></i>\n        default\n      </div>\n    </div>\n    <p>The default theme provides baseline variables for a component.</p>\n    <p>The best way to understand what variables are available for inclusion in a theme is to examine a component's default <code>.variables</code> file.</p>\n  </div>\n\n  <div class=\"no example\">\n    <h4 class=\"ui header\">Packaged Theme</h4>\n    <div class=\"ui breadcrumb\">\n      <div class=\"section\">\n        <i class=\"disabled folder icon\"></i>\n        src\n      </div>\n      <i class=\"right chevron icon divider\"></i>\n      <div class=\"section\">\n        <i class=\"disabled folder icon\"></i>\n        themes\n      </div>\n      <i class=\"right chevron icon divider\"></i>\n      <div class=\"active section\">\n        <i class=\"inverted circular teal folder icon\"></i>\n        theme-name\n      </div>\n    </div>\n    <p>Packaged themes are themes bundled together in a folder for distribution. These can be downloaded from the internet, or carried between projects.</p>\n    <p>Packaged themes can be used by modifying values in your <a href=\"#using-packaged-themes\">theme.config</a> file.</p>\n  </div>\n\n  <div class=\"no example\">\n    <h4 class=\"ui header\">Site Theme</h4>\n    <div class=\"ui breadcrumb\">\n      <div class=\"section\">\n        <i class=\"disabled folder icon\"></i>\n        src\n      </div>\n      <i class=\"right chevron icon divider\"></i>\n      <div class=\"active section\">\n        <i class=\"inverted circular teal folder icon\"></i>\n        site\n      </div>\n    </div>\n    <p>A site theme, not to be mistaken with <code>site.variables</code> a file located in every theme, is a special user theme that can be loaded on top of all other themes.</p>\n    <p>This is the best location to store changes that will be used on a single site. A site theme can be thought of as similar to a <a href=\"https://codex.wordpress.org/Child_Themes\" target=\"_blank\">child theme</a> in Wordpress.</p>\n    <p>Site theme files <b>are optional includes</b> and can be safely removed if you do not need to add additional changes to a component on your project.</p>\n  </div>\n</div>\n"
  },
  {
    "path": "server/documents/views/advertisement.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'ad'\n\nelement     : 'advertisement'\nelementType : 'view'\n\ntitle       : 'Advertisement'\ndescription : 'An ad displays third-party promotional content'\ntype        : 'UI View'\n\n---\n\n<%- @partial('header') %>\n\n\n<div class=\"main ui container\">\n\n  <h2 class=\"ui dividing header\">Types</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Ad</h4>\n    <p>A standard ad</p>\n    <div class=\"ui ignored message\">The following example uses a basic <a href=\"https://support.google.com/adsense/answer/181947?ctx=as2&rd=2&ref_topic=29033\" target=\"_blank\">AdSense implementation</a>. Your code will vary depending on your ad network.</div>\n    <div class=\"ui medium rectangle ad\">\n      <script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js\"></script>\n      <ins class=\"adsbygoogle\"\n           style=\"display:inline-block;width:300px;height:250px\"\n           data-ad-client=\"ca-pub-4591861188995436\"\n           data-ad-slot=\"4640466102\"></ins>\n      <script>\n      (adsbygoogle = window.adsbygoogle || []).push({});\n      </script>\n    </div>\n    <div class=\"ui leaderboard ad\">\n      <script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js\"></script>\n      <!-- Leaderboard -->\n      <ins class=\"adsbygoogle\"\n           style=\"display:inline-block;width:728px;height:90px\"\n           data-ad-client=\"ca-pub-4591861188995436\"\n           data-ad-slot=\"6710577704\"></ins>\n      <script>\n      (adsbygoogle = window.adsbygoogle || []).push({});\n      </script>\n    </div>\n    <div class=\"ui banner ad\">\n      <script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js\"></script>\n      <!-- Banner -->\n      <ins class=\"adsbygoogle\"\n           style=\"display:inline-block;width:468px;height:60px\"\n           data-ad-client=\"ca-pub-4591861188995436\"\n           data-ad-slot=\"9803644904\"></ins>\n      <script>\n      (adsbygoogle = window.adsbygoogle || []).push({});\n      </script>\n    </div>\n    <div class=\"existing code\">\n      <div class=\"ui medium rectangle ad\">\n        <!-- Ad Code Goes Here\n        <ins class=\"adsbygoogle\"\n             style=\"display:inline-block;width:300px;height:250px\"\n             data-ad-client=\"ca-pub-XXXXXXXXXXXXXXXX\"\n             data-ad-slot=\"XXXXXXXXXX\"></ins>\n        <script>\n        (adsbygoogle = window.adsbygoogle || []).push({});\n        </script>\n        !-->\n      </div>\n      <div class=\"ui leaderboard ad\">\n      <!-- Leaderboard\n      <ins class=\"adsbygoogle\"\n           style=\"display:inline-block;width:728px;height:90px\"\n           data-ad-client=\"ca-pub-XXXXXXXXXXXXXXXX\"\n           data-ad-slot=\"XXXXXXXXXXXXXXXX\"></ins>\n      <script>\n      (adsbygoogle = window.adsbygoogle || []).push({});\n      </script>\n      !-->\n      </div>\n      <div class=\"ui banner ad\">\n      <!-- Banner\n      <ins class=\"adsbygoogle\"\n           style=\"display:inline-block;width:468px;height:60px\"\n           data-ad-client=\"ca-pub-XXXXXXXXXXXXXXXX\"\n           data-ad-slot=\"XXXXXXXXXXXXXXXX\"></ins>\n      <script>\n      (adsbygoogle = window.adsbygoogle || []).push({});\n      </script>\n      !-->\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Common Units</h4>\n    <p>An advertisement can appear in common ad unit sizes</p>\n    <div class=\"ui ignored info message\">\n      These additional examples use the <code>test</code> variation to appear on the page. <code>ui ad</code> is best used as a wrapper for third party ad network content like <a href=\"http://www.google.com/adsense/start/\" target=\"_blank\">AdSense</a> or <a href=\"http://www.google.com/doubleclick/publishers/welcome/\" target=\"_blank\">DoubleClick</a>.\n    </div>\n    <div class=\"ui medium rectangle test ad\" data-text=\"Medium Rectangle\"></div>\n    <div class=\"ui banner test ad\" data-text=\"Banner\"></div>\n    <div class=\"ui leaderboard test ad\" data-text=\"Leaderboard\"></div>\n    <div class=\"ui large rectangle test ad\" data-text=\"Large Rectangle\"></div>\n    <div class=\"ui half page test ad\" data-text=\"Half Page\"></div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Mobile</h4>\n    <p>An ad can use common mobile ad sizes</p>\n    <div class=\"ui ignored info message\">Mobile ads will automatically only appear on mobile browser viewports</div>\n    <div class=\"ui mobile leaderboard test ad\" data-text=\"Mobile Leaderboard\"></div>\n    <div class=\"ui mobile banner test ad\" data-text=\"Mobile Banner\"></div>\n  </div>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Rectangle</h4>\n    <p>An ad can use a common rectangle ad unit size</p>\n    <div class=\"ui vertical rectangle test ad\" data-text=\"Vertical Rectangle\"></div>\n    <div class=\"ui small rectangle test ad\" data-text=\"Small Rectangle\"></div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Button</h4>\n    <p>An ad can use button ad unit size</p>\n    <div class=\"ui button test ad\" data-text=\"Button\"></div>\n    <div class=\"ui square button test ad\" data-text=\"Square Button\"></div>\n    <div class=\"ui small button test ad\" data-text=\"Small Button\"></div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Skyscraper</h4>\n    <p>An ad can use skyscraper ad unit size</p>\n    <div class=\"ui skyscraper test ad\" data-text=\"Skyscraper\"></div>\n    <div class=\"ui wide skyscraper test ad\" data-text=\"Wide Skyscraper\"></div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Banner</h4>\n    <p>An ad can use banner ad unit size</p>\n    <div class=\"ui banner test ad\" data-text=\"Banner\"></div>\n    <div class=\"ui vertical banner test ad\" data-text=\"Vertical Banner\"></div>\n    <div class=\"ui top banner test ad\" data-text=\"Top Banner\"></div>\n    <div class=\"ui half banner test ad\" data-text=\"Half Banner\"></div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Leaderboards</h4>\n    <p>An ad can use leaderboard ad unit size</p>\n    <div class=\"ui leaderboard test ad\" data-text=\"Leaderboard\"></div>\n    <div class=\"ui large leaderboard test ad\" data-text=\"Large Leaderboard\"></div>\n    <div class=\"ui billboard test ad\" data-text=\"Billboard\"></div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Panorama</h4>\n    <p>An ad can use panorama ad unit size</p>\n    <div class=\"ui panorama test ad\" data-text=\"Panorama\"></div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Netboard</h4>\n    <p>An ad can use netboard ad unit size</p>\n    <div class=\"ui netboard test ad\" data-text=\"Netboard\"></div>\n  </div>\n\n\n\n  <h2 class=\"ui dividing header\">Variations</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Centered</h4>\n    <p>An advertisement can appear centered</p>\n    <div class=\"ui centered banner test ad\"></div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Test</h4>\n    <p>A advertisement can be formatted to help verify placement</p>\n    <div class=\"ui info ignored message\">You can adjust the text displayed for your test ad placement by changing the value of <code>data-text</code>\n    </div>\n    <div class=\"ui medium rectangle test ad\" data-text=\"Ad Unit 1\"></div>\n    <div class=\"ui medium rectangle test ad\" data-text=\"Ad Unit 2\"></div>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/views/card.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'card'\nstandalone  : true\n\nelement     : 'card'\nelementType : 'view'\n\ntitle       : 'Card'\ndescription : 'A card displays site content in a manner similar to a playing card'\ntype        : 'UI View'\n\nthemes      : ['Default', 'Basic', 'Classic', 'Instagram']\n---\n\n<%- @partial('header') %>\n\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/views/card.less\" />\n<script src=\"/javascript/card.js\"></script>\n\n<div class=\"main ui container\">\n\n  <h2 class=\"ui dividing header\">Types</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Card</h4>\n    <p>A single card.</p>\n    <div class=\"ui ignored warning message\">\n      To ensure cards are equal height use the plural, <a href=\"#cards\"><code>cards</code></a>. Card groups automatically uses <a href=\"https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Flexible_boxes\" target=\"_blank\">flex</a> styles to match height between cards in the same row.\n    </div>\n    <div class=\"ui card\">\n      <div class=\"image\">\n        <img src=\"/images/avatar2/large/kristy.png\">\n      </div>\n      <div class=\"content\">\n        <a class=\"header\">Kristy</a>\n        <div class=\"meta\">\n          <span class=\"date\">Joined in 2013</span>\n        </div>\n        <div class=\"description\">\n          Kristy is an art director living in New York.\n        </div>\n      </div>\n      <div class=\"extra content\">\n        <a>\n          <i class=\"user icon\"></i>\n          22 Friends\n        </a>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui card\">\n      <div class=\"content\">\n        <div class=\"right floated meta\">14h</div>\n        <img class=\"ui avatar image\" src=\"/images/avatar/large/elliot.jpg\"> Elliot\n      </div>\n      <div class=\"image\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n      </div>\n      <div class=\"content\">\n        <span class=\"right floated\">\n          <i class=\"heart outline like icon\"></i>\n          17 likes\n        </span>\n        <i class=\"comment icon\"></i>\n        3 comments\n      </div>\n      <div class=\"extra content\">\n        <div class=\"ui large transparent left icon input\">\n          <i class=\"heart outline icon\"></i>\n          <input type=\"text\" placeholder=\"Add Comment...\">\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Cards</h4>\n    <p>A group of cards.</p>\n    <div class=\"ui ignored info message\">\n      <p>Cards are designed to be flexible to your content. <code>content</code> blocks can include any custom elements related to your content.</p>\n    </div>\n    <div class=\"ui cards\">\n      <div class=\"card\">\n        <div class=\"content\">\n          <img class=\"right floated mini ui image\" src=\"/images/avatar/large/elliot.jpg\">\n          <div class=\"header\">\n            Elliot Fu\n          </div>\n          <div class=\"meta\">\n            Friends of Veronika\n          </div>\n          <div class=\"description\">\n            Elliot requested permission to view your contact details\n          </div>\n        </div>\n        <div class=\"extra content\">\n          <div class=\"ui two buttons\">\n            <div class=\"ui basic green button\">Approve</div>\n            <div class=\"ui basic red button\">Decline</div>\n          </div>\n        </div>\n      </div>\n      <div class=\"card\">\n        <div class=\"content\">\n          <img class=\"right floated mini ui image\" src=\"/images/avatar/large/jenny.jpg\">\n          <div class=\"header\">\n            Jenny Hess\n          </div>\n          <div class=\"meta\">\n            New Member\n          </div>\n          <div class=\"description\">\n            Jenny wants to add you to the group <b>best friends</b>\n          </div>\n        </div>\n        <div class=\"extra content\">\n          <div class=\"ui two buttons\">\n            <div class=\"ui basic green button\">Approve</div>\n            <div class=\"ui basic red button\">Decline</div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui link cards\">\n      <div class=\"card\">\n        <div class=\"image\">\n          <img src=\"/images/avatar2/large/matthew.png\">\n        </div>\n        <div class=\"content\">\n          <div class=\"header\">Matt Giampietro</div>\n          <div class=\"meta\">\n            <a>Friends</a>\n          </div>\n          <div class=\"description\">\n            Matthew is an interior designer living in New York.\n          </div>\n        </div>\n        <div class=\"extra content\">\n          <span class=\"right floated\">\n            Joined in 2013\n          </span>\n          <span>\n            <i class=\"user icon\"></i>\n            75 Friends\n          </span>\n        </div>\n      </div>\n      <div class=\"card\">\n        <div class=\"image\">\n          <img src=\"/images/avatar2/large/molly.png\">\n        </div>\n        <div class=\"content\">\n          <div class=\"header\">Molly</div>\n          <div class=\"meta\">\n            <span class=\"date\">Coworker</span>\n          </div>\n          <div class=\"description\">\n            Molly is a personal assistant living in Paris.\n          </div>\n        </div>\n        <div class=\"extra content\">\n          <span class=\"right floated\">\n            Joined in 2011\n          </span>\n          <span>\n            <i class=\"user icon\"></i>\n            35 Friends\n          </span>\n        </div>\n      </div>\n      <div class=\"card\">\n        <div class=\"image\">\n          <img src=\"/images/avatar2/large/elyse.png\">\n        </div>\n        <div class=\"content\">\n          <div class=\"header\">Elyse</div>\n          <div class=\"meta\">\n            <a>Coworker</a>\n          </div>\n          <div class=\"description\">\n            Elyse is a copywriter working in New York.\n          </div>\n        </div>\n        <div class=\"extra content\">\n          <span class=\"right floated\">\n            Joined in 2014\n          </span>\n          <span>\n            <i class=\"user icon\"></i>\n            151 Friends\n          </span>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Content</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Content Block</h4>\n    <p>A card can contain blocks of content</p>\n    <div class=\"ui card\">\n      <div class=\"content\">\n        <div class=\"header\">Project Timeline</div>\n      </div>\n      <div class=\"content\">\n        <h4 class=\"ui sub header\">Activity</h4>\n        <div class=\"ui small feed\">\n          <div class=\"event\">\n            <div class=\"content\">\n              <div class=\"summary\">\n                 <a>Elliot Fu</a> added <a>Jenny Hess</a> to the project\n              </div>\n            </div>\n          </div>\n          <div class=\"event\">\n            <div class=\"content\">\n              <div class=\"summary\">\n                 <a>Stevie Feliciano</a> was added as an <a>Administrator</a>\n              </div>\n            </div>\n          </div>\n          <div class=\"event\">\n            <div class=\"content\">\n              <div class=\"summary\">\n                 <a>Helen Troy</a> added two pictures\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"extra content\">\n        <button class=\"ui button\">Join Project</button>\n      </div>\n    </div>\n  </div>\n  <div class=\"example\">\n    <h4 class=\"ui header\">Image</h4>\n    <p>A card can contain an image</p>\n    <div class=\"ui ignored info message\">Cards can use <a href=\"/elements/reveal.html\">reveal</a> or <a href=\"/modules/dimmer.html\">dimmers</a> to easily show additional content, or options on hover</div>\n    <div class=\"ui card\">\n      <div class=\"ui slide masked reveal image\">\n        <img src=\"/images/avatar/large/jenny.jpg\" class=\"visible content\">\n        <img src=\"/images/avatar/large/elliot.jpg\" class=\"hidden content\">\n      </div>\n      <div class=\"content\">\n        <a class=\"header\">Team Fu & Hess</a>\n        <div class=\"meta\">\n          <span class=\"date\">Created in Sep 2014</span>\n        </div>\n      </div>\n      <div class=\"extra content\">\n        <a>\n          <i class=\"users icon\"></i>\n          2 Members\n        </a>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"evaluated code\" data-type=\"javascript\">\n    $('.special.cards .image').dimmer({\n      on: 'hover'\n    });\n    </div>\n    <div class=\"ui special cards\">\n      <div class=\"card\">\n        <div class=\"blurring dimmable image\">\n          <div class=\"ui dimmer\">\n            <div class=\"content\">\n              <div class=\"center\">\n                <div class=\"ui inverted button\">Add Friend</div>\n              </div>\n            </div>\n          </div>\n          <img src=\"/images/avatar/large/elliot.jpg\">\n        </div>\n        <div class=\"content\">\n          <a class=\"header\">Team Fu</a>\n          <div class=\"meta\">\n            <span class=\"date\">Created in Sep 2014</span>\n          </div>\n        </div>\n        <div class=\"extra content\">\n          <a>\n            <i class=\"users icon\"></i>\n            2 Members\n          </a>\n        </div>\n      </div>\n      <div class=\"card\">\n        <div class=\"blurring dimmable image\">\n          <div class=\"ui inverted dimmer\">\n            <div class=\"content\">\n              <div class=\"center\">\n                <div class=\"ui primary button\">Add Friend</div>\n              </div>\n            </div>\n          </div>\n          <img src=\"/images/avatar/large/jenny.jpg\">\n        </div>\n        <div class=\"content\">\n          <a class=\"header\">Team Hess</a>\n          <div class=\"meta\">\n            <span class=\"date\">Created in Aug 2014</span>\n          </div>\n        </div>\n        <div class=\"extra content\">\n          <a>\n            <i class=\"users icon\"></i>\n            2 Members\n          </a>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Header</h4>\n    <p>A card can contain a header</p>\n    <div class=\"ui cards\">\n      <div class=\"card\">\n        <div class=\"content\">\n          <div class=\"header\">Elliot Fu</div>\n          <div class=\"meta\">Friend</div>\n          <div class=\"description\">\n            Elliot Fu is a film-maker from New York.\n          </div>\n        </div>\n      </div>\n      <div class=\"card\">\n        <div class=\"content\">\n          <div class=\"header\">Veronika Ossi</div>\n          <div class=\"meta\">Friend</div>\n          <div class=\"description\">\n            Veronika Ossi is a set designer living in New York who enjoys kittens, music, and partying.\n          </div>\n        </div>\n      </div>\n      <div class=\"card\">\n        <div class=\"content\">\n          <div class=\"header\">Jenny Hess</div>\n          <div class=\"meta\">Friend</div>\n          <div class=\"description\">\n            Jenny is a student studying Media Management at the New School\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Metadata</h4>\n    <p>A card can contain content metadata</p>\n\n    <div class=\"ui ignored info message\">\n      <i class=\"info icon\"></i>\n      You can include an arbitrary amount of metadata using your own class conventions, all child elements will automatically be spaced\n    </div>\n    <div class=\"ui card\">\n      <div class=\"content\">\n        <div class=\"header\">Cute Dog</div>\n        <div class=\"meta\">\n          <span>2 days ago</span>\n          <a>Animals</a>\n        </div>\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Link</h4>\n    <p>A card can contain contain links as images, headers, or inside content</p>\n    <div class=\"ui ignored info message\">To make the entire content of a card link, check out the link variation below\n    </div>\n    <div class=\"ui card\">\n      <a class=\"image\" href=\"#\">\n        <img src=\"/images/avatar/large/steve.jpg\">\n      </a>\n      <div class=\"content\">\n        <a class=\"header\" href=\"#\">Steve Jobes</a>\n        <div class=\"meta\">\n          <a>Last Seen 2 days ago</a>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"example\">\n    <h4 class=\"ui header\">Buttons</h4>\n    <p>A card can contain buttons</p>\n    <div class=\"ui cards\">\n      <div class=\"card\">\n        <div class=\"content\">\n          <div class=\"header\">Elliot Fu</div>\n          <div class=\"description\">\n            Elliot Fu is a film-maker from New York.\n          </div>\n        </div>\n        <div class=\"ui bottom attached button\">\n          <i class=\"add icon\"></i>\n          Add Friend\n        </div>\n      </div>\n      <div class=\"card\">\n        <div class=\"content\">\n          <div class=\"header\">Veronika Ossi</div>\n          <div class=\"description\">\n            Veronika Ossi is a set designer living in New York who enjoys kittens, music, and partying.\n          </div>\n        </div>\n        <div class=\"ui bottom attached button\">\n          <i class=\"add icon\"></i>\n          Add Friend\n        </div>\n      </div>\n      <div class=\"card\">\n        <div class=\"content\">\n          <div class=\"header\">Jenny Hess</div>\n          <div class=\"description\">\n            Jenny is a student studying Media Management at the New School\n          </div>\n        </div>\n        <div class=\"ui bottom attached button\">\n          <i class=\"add icon\"></i>\n          Add Friend\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Approval</h4>\n    <p>A card can contain a like or star action.</p>\n    <div class=\"ui card\">\n      <div class=\"content\">\n        <i class=\"right floated like icon\"></i>\n        <i class=\"right floated star icon\"></i>\n        <div class=\"header\">Cute Dog</div>\n        <div class=\"description\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        </div>\n      </div>\n      <div class=\"extra content\">\n        <span class=\"left floated like\">\n          <i class=\"like icon\"></i>\n          Like\n        </span>\n        <span class=\"right floated star\">\n          <i class=\"star icon\"></i>\n          Favorite\n        </span>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Description</h4>\n    <p>A card can contain a description with one or more paragraphs</p>\n    <div class=\"ui card\">\n      <div class=\"content\">\n        <div class=\"header\">Cute Dog</div>\n        <div class=\"meta\">2 days ago</div>\n        <div class=\"description\">\n          <p>Cute dogs come in a variety of shapes and sizes. Some cute dogs are cute for their adorable faces, others for their tiny stature, and even others for their massive size.</p>\n          <p>Many people also have their own barometers for what makes a cute dog.</p>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Extra Content</h4>\n    <p>A card can contain extra content meant to be formatted separately from the main content</p>\n    <div class=\"ui card\">\n      <div class=\"content\">\n        <div class=\"header\">Cute Dog</div>\n        <div class=\"meta\">2 days ago</div>\n        <div class=\"description\">\n          <p>Cute dogs come in a variety of shapes and sizes. Some cute dogs are cute for their adorable faces, others for their tiny stature, and even others for their massive size.</p>\n          <p>Many people also have their own barometers for what makes a cute dog.</p>\n        </div>\n      </div>\n      <div class=\"extra content\">\n        <i class=\"check icon\"></i>\n        121 Votes\n      </div>\n    </div>\n\n  </div>\n\n  <h2 class=\"ui dividing header\">Variations</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Fluid Card</h4>\n    <p>A fluid card takes up the width of its container</p>\n    <div class=\"ui three column grid\">\n      <div class=\"column\">\n        <div class=\"ui fluid card\">\n          <div class=\"image\">\n            <img src=\"/images/avatar/large/daniel.jpg\">\n          </div>\n          <div class=\"content\">\n            <a class=\"header\">Daniel Louise</a>\n          </div>\n        </div>\n      </div>\n      <div class=\"column\">\n        <div class=\"ui fluid card\">\n          <div class=\"image\">\n            <img src=\"/images/avatar/large/helen.jpg\">\n          </div>\n          <div class=\"content\">\n            <a class=\"header\">Helen Troy</a>\n          </div>\n        </div>\n      </div>\n      <div class=\"column\">\n        <div class=\"ui fluid card\">\n          <div class=\"image\">\n            <img src=\"/images/avatar/large/elliot.jpg\">\n          </div>\n          <div class=\"content\">\n            <a class=\"header\">Elliot Fu</a>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Centered Card</h4>\n    <p>A card can center itself inside its container</p>\n\n    <div class=\"ui centered card\">\n      <div class=\"image\">\n        <img src=\"/images/avatar2/large/elyse.png\">\n      </div>\n      <div class=\"content\">\n        <a class=\"header\">Elyse</a>\n      </div>\n    </div>\n  </div>\n  <div class=\"example\">\n    <h4 class=\"ui header\">Raised Card</h4>\n    <p>A card may be formatted to raise above the page.</p>\n    <div class=\"ui raised card\">\n      <div class=\"content\">\n        <div class=\"header\">Cute Dog</div>\n        <div class=\"meta\">\n          <span class=\"category\">Animals</span>\n        </div>\n        <div class=\"description\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        </div>\n      </div>\n      <div class=\"extra content\">\n        <div class=\"right floated author\">\n          <img class=\"ui avatar image\" src=\"/images/avatar/small/matt.jpg\"> Matt\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui raised link card\">\n      <div class=\"content\">\n        <div class=\"header\">Cute Dog</div>\n        <div class=\"meta\">\n          <span class=\"category\">Animals</span>\n        </div>\n        <div class=\"description\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        </div>\n      </div>\n      <div class=\"extra content\">\n        <div class=\"right floated author\">\n          <img class=\"ui avatar image\" src=\"/images/avatar/small/matt.jpg\"> Matt\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Link Card</h4>\n    <p>A card can be formatted so that the entire contents link to another page</p>\n    <a class=\"ui card\" href=\"http://www.dog.com\">\n      <div class=\"content\">\n        <div class=\"header\">Cute Dog</div>\n        <div class=\"meta\">\n          <span class=\"category\">Animals</span>\n        </div>\n        <div class=\"description\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        </div>\n      </div>\n      <div class=\"extra content\">\n        <div class=\"right floated author\">\n          <img class=\"ui avatar image\" src=\"/images/avatar/small/matt.jpg\"> Matt\n        </div>\n      </div>\n    </a>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui link card\">\n      <div class=\"content\">\n        <div class=\"header\">Cute Dog</div>\n        <div class=\"meta\">\n          <span class=\"category\">Animals</span>\n        </div>\n        <div class=\"description\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        </div>\n      </div>\n      <div class=\"extra content\">\n        <div class=\"right floated author\">\n          <img class=\"ui avatar image\" src=\"/images/avatar/small/matt.jpg\"> Matt\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Floated Content</h4>\n    <p>Any content element can be floated left or right</p>\n    <div class=\"ui ignored info message\">\n      <i class=\"info icon\"></i>\n      You can include an arbitrary amount of metadata using your own class conventions, all child elements will automatically be spaced\n    </div>\n    <div class=\"ui card\">\n      <div class=\"content\">\n        <div class=\"header\">Cute Dog</div>\n        <div class=\"meta\">\n          <span class=\"right floated time\">2 days ago</span>\n          <span class=\"category\">Animals</span>\n        </div>\n        <div class=\"description\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n        </div>\n      </div>\n      <div class=\"extra content\">\n        <div class=\"right floated author\">\n          <img class=\"ui avatar image\" src=\"/images/avatar/small/matt.jpg\"> Matt\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Text Alignment</h4>\n    <p>Any element inside a card can have its text alignment specified</p>\n    <div class=\"ui ignored info message\">\n      <i class=\"info icon\"></i>\n      You can include an arbitrary amount of metadata using your own class conventions, all child elements will automatically be spaced\n    </div>\n    <div class=\"ui card\">\n      <div class=\"content\">\n        <div class=\"center aligned header\">Jenny Hess</div>\n        <div class=\"center aligned description\">\n          <p>Jenny is a student studying Media Management at the New School</p>\n        </div>\n      </div>\n      <div class=\"extra content\">\n        <div class=\"center aligned author\">\n          <img class=\"ui avatar image\" src=\"http://semantic-ui.com/images/avatar/small/jenny.jpg\"> Jenny\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Colored</h4>\n    <p>A card can specify a color</p>\n    <div class=\"ui four cards\">\n      <a class=\"red card\">\n        <div class=\"image\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/white-image.png\">\n        </div>\n      </a>\n      <a class=\"orange card\">\n        <div class=\"image\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/white-image.png\">\n        </div>\n      </a>\n      <a class=\"yellow card\">\n        <div class=\"image\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/white-image.png\">\n        </div>\n      </a>\n      <a class=\"olive card\">\n        <div class=\"image\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/white-image.png\">\n        </div>\n      </a>\n      <a class=\"green card\">\n        <div class=\"image\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/white-image.png\">\n        </div>\n      </a>\n      <a class=\"teal card\">\n        <div class=\"image\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/white-image.png\">\n        </div>\n      </a>\n      <a class=\"blue card\">\n        <div class=\"image\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/white-image.png\">\n        </div>\n      </a>\n      <a class=\"violet card\">\n        <div class=\"image\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/white-image.png\">\n        </div>\n      </a>\n      <a class=\"purple card\">\n        <div class=\"image\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/white-image.png\">\n        </div>\n      </a>\n      <a class=\"pink card\">\n        <div class=\"image\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/white-image.png\">\n        </div>\n      </a>\n      <a class=\"brown card\">\n        <div class=\"image\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/white-image.png\">\n        </div>\n      </a>\n      <a class=\"grey card\">\n        <div class=\"image\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/white-image.png\">\n        </div>\n      </a>\n      <a class=\"black card\">\n        <div class=\"image\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/white-image.png\">\n        </div>\n      </a>\n    </div>\n  </div>\n  <div class=\"example\">\n    <h4 class=\"ui header\">Column Count</h4>\n    <p>A group of cards can set how many cards should exist in a row</p>\n    <div class=\"ui four cards\">\n      <div class=\"card\">\n        <div class=\"image\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"extra\">\n          Rating:\n          <div class=\"ui star rating\" data-rating=\"4\"></div>\n        </div>\n      </div>\n      <div class=\"card\">\n        <div class=\"image\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"extra\">\n          Rating:\n          <div class=\"ui star rating\" data-rating=\"2\"></div>\n        </div>\n      </div>\n      <div class=\"card\">\n        <div class=\"image\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"extra\">\n          Rating:\n          <div class=\"ui star rating\" data-rating=\"3\"></div>\n        </div>\n      </div>\n      <div class=\"card\">\n        <div class=\"image\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"extra\">\n          Rating:\n          <div class=\"ui star rating\" data-rating=\"4\"></div>\n        </div>\n      </div>\n      <div class=\"card\">\n        <div class=\"image\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"extra\">\n          Rating:\n          <div class=\"ui star rating\" data-rating=\"3\"></div>\n        </div>\n      </div>\n      <div class=\"card\">\n        <div class=\"image\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"extra\">\n          Rating:\n          <div class=\"ui star rating\" data-rating=\"3\"></div>\n        </div>\n      </div>\n      <div class=\"card\">\n        <div class=\"image\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"extra\">\n          Rating:\n          <div class=\"ui star rating\" data-rating=\"4\"></div>\n        </div>\n      </div>\n      <div class=\"card\">\n        <div class=\"image\">\n          <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"extra\">\n          Rating:\n          <div class=\"ui star rating\" data-rating=\"4\"></div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Stackable</h4>\n    <p>A group of cards can automatically stack rows to a single columns on mobile devices</p>\n    <div class=\"ui ignored warning message\">Resize your browser to a smaller size to see the cards stack after reaching mobile breakpoints</div>\n    <div class=\"ui three stackable cards\">\n      <div class=\"card\">\n        <div class=\"image\">\n          <img src=\"/images/avatar/large/elliot.jpg\">\n        </div>\n      </div>\n      <div class=\"card\">\n        <div class=\"image\">\n          <img src=\"/images/avatar/large/helen.jpg\">\n        </div>\n      </div>\n      <div class=\"card\">\n        <div class=\"image\">\n          <img src=\"/images/avatar/large/jenny.jpg\">\n        </div>\n      </div>\n      <div class=\"card\">\n        <div class=\"image\">\n          <img src=\"/images/avatar/large/veronika.jpg\">\n        </div>\n      </div>\n      <div class=\"card\">\n        <div class=\"image\">\n          <img src=\"/images/avatar/large/stevie.jpg\">\n        </div>\n      </div>\n      <div class=\"card\">\n        <div class=\"image\">\n          <img src=\"/images/avatar/large/steve.jpg\">\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Doubling</h4>\n    <p>A group of cards can double its column width for mobile</p>\n    <div class=\"ui ignored warning message\">Resize your browser to a smaller size to see the cards stack after reaching mobile breakpoints</div>\n    <div class=\"ui six doubling cards\">\n      <div class=\"card\">\n        <div class=\"image\">\n          <img src=\"/images/avatar/large/elliot.jpg\">\n        </div>\n      </div>\n      <div class=\"card\">\n        <div class=\"image\">\n          <img src=\"/images/avatar/large/helen.jpg\">\n        </div>\n      </div>\n      <div class=\"card\">\n        <div class=\"image\">\n          <img src=\"/images/avatar/large/jenny.jpg\">\n        </div>\n      </div>\n      <div class=\"card\">\n        <div class=\"image\">\n          <img src=\"/images/avatar/large/veronika.jpg\">\n        </div>\n      </div>\n      <div class=\"card\">\n        <div class=\"image\">\n          <img src=\"/images/avatar/large/stevie.jpg\">\n        </div>\n      </div>\n      <div class=\"card\">\n        <div class=\"image\">\n          <img src=\"/images/avatar/large/steve.jpg\">\n        </div>\n      </div>\n    </div>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/views/comment.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'comment'\nelement     : 'comment'\nelementType : 'view'\nstandalone  : true\n\ntitle       : 'Comment'\ndescription : 'A comment displays user feedback to site content'\ntype        : 'UI View'\n\nthemes      : ['Default', 'Chubby']\n---\n\n<%- @partial('header') %>\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/views/comment.less\" />\n\n<div class=\"main ui container\">\n\n  <h2 class=\"ui dividing header\">Types</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Comments</h4>\n    <p>A basic list of comments</p>\n    <div class=\"ui ignored info attached message\">\n      <p>These examples uses <a href=\"/elements/segment.html\">ui segment</a> to create content segments. This is not required.</p>\n    </div>\n    <div class=\"ui ignored bottom attached warning message\">\n      <p><b>UI Views</b> provide structured layouts, but do not hook up site specific code. You will need to add your own Javascript behaviors to hide and show the appropriate forms. For example, having a reply button open a reply form<p>\n    </div>\n    <div class=\"ui comments\">\n      <h3 class=\"ui dividing header\">Comments</h3>\n      <div class=\"comment\">\n        <a class=\"avatar\">\n          <img src=\"/images/avatar/small/matt.jpg\">\n        </a>\n        <div class=\"content\">\n          <a class=\"author\">Matt</a>\n          <div class=\"metadata\">\n            <span class=\"date\">Today at 5:42PM</span>\n          </div>\n          <div class=\"text\">\n            How artistic!\n          </div>\n          <div class=\"actions\">\n            <a class=\"reply\">Reply</a>\n          </div>\n        </div>\n      </div>\n      <div class=\"comment\">\n        <a class=\"avatar\">\n          <img src=\"/images/avatar/small/elliot.jpg\">\n        </a>\n        <div class=\"content\">\n          <a class=\"author\">Elliot Fu</a>\n          <div class=\"metadata\">\n            <span class=\"date\">Yesterday at 12:30AM</span>\n          </div>\n          <div class=\"text\">\n            <p>This has been very useful for my research. Thanks as well!</p>\n          </div>\n          <div class=\"actions\">\n            <a class=\"reply\">Reply</a>\n          </div>\n        </div>\n        <div class=\"comments\">\n          <div class=\"comment\">\n            <a class=\"avatar\">\n              <img src=\"/images/avatar/small/jenny.jpg\">\n            </a>\n            <div class=\"content\">\n              <a class=\"author\">Jenny Hess</a>\n              <div class=\"metadata\">\n                <span class=\"date\">Just now</span>\n              </div>\n              <div class=\"text\">\n                Elliot you are always so right :)\n              </div>\n              <div class=\"actions\">\n                <a class=\"reply\">Reply</a>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"comment\">\n        <a class=\"avatar\">\n          <img src=\"/images/avatar/small/joe.jpg\">\n        </a>\n        <div class=\"content\">\n          <a class=\"author\">Joe Henderson</a>\n          <div class=\"metadata\">\n            <span class=\"date\">5 days ago</span>\n          </div>\n          <div class=\"text\">\n            Dude, this is awesome. Thanks so much\n          </div>\n          <div class=\"actions\">\n            <a class=\"reply\">Reply</a>\n          </div>\n        </div>\n      </div>\n      <form class=\"ui reply form\">\n        <div class=\"field\">\n          <textarea></textarea>\n        </div>\n        <div class=\"ui blue labeled submit icon button\">\n          <i class=\"icon edit\"></i> Add Reply\n        </div>\n      </form>\n    </div>\n  </div>\n  <h2 class=\"ui dividing header\">Content</h2>\n\n  <h3 class=\"ui header\">Comment</h3>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Avatar</h4>\n    <p>A comment can contain an image or avatar</p>\n    <div class=\"ui comments\">\n      <div class=\"comment\">\n        <a class=\"avatar\">\n          <img src=\"/images/avatar/small/elliot.jpg\">\n        </a>\n        <div class=\"content\">\n          <a class=\"author\">Elliot Fu</a>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Metadata</h4>\n    <p>A comment can contain metadata about the comment, an arbitrary amount of metadata may be defined.</p>\n    <div class=\"ui comments\">\n      <div class=\"comment\">\n        <a class=\"avatar\">\n          <img src=\"/images/avatar/small/stevie.jpg\">\n        </a>\n        <div class=\"content\">\n          <a class=\"author\">Stevie Feliciano</a>\n          <div class=\"metadata\">\n            <div class=\"date\">2 days ago</div>\n            <div class=\"rating\">\n              <i class=\"star icon\"></i>\n              5 Faves\n            </div>\n          </div>\n          <div class=\"text\">\n            Hey guys, I hope this example comment is helping you read this documentation.\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Actions</h4>\n    <p>A comment can contain an list of actions a user may perform related to this comment.</p>\n    <div class=\"ui comments\">\n      <div class=\"comment\">\n        <a class=\"avatar\">\n          <img src=\"/images/avatar/small/joe.jpg\">\n        </a>\n        <div class=\"content\">\n          <a class=\"author\">Tom Lukic</a>\n          <div class=\"text\">\n            This will be great for business reports. I will definitely download this.\n          </div>\n          <div class=\"actions\">\n            <a class=\"reply\">Reply</a>\n            <a class=\"save\">Save</a>\n            <a class=\"hide\">Hide</a>\n            <a>\n              <i class=\"expand icon\"></i>\n              Full-screen\n            </a>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Reply Form</h4>\n    <p>A comment can contain a form to reply to a comment. This may have arbitrary content.</p>\n    <div class=\"ui ignored info message\">\n      <p>If a comment form is located inside a <code> ui comment</code> it will be formatted as an nested reply form. If the comment form is included after all comments, it will be formatted as a normal reply form.</p>\n    </div>\n    <div class=\"ui comments\">\n      <div class=\"comment\">\n        <a class=\"avatar\">\n          <img src=\"/images/avatar/small/steve.jpg\">\n        </a>\n        <div class=\"content\">\n          <a class=\"author\">Steve Jobes</a>\n          <div class=\"metadata\">\n            <div class=\"date\">2 days ago</div>\n          </div>\n          <div class=\"text\">\n            Revolutionary!\n          </div>\n          <div class=\"actions\">\n            <a class=\"reply active\">Reply</a>\n          </div>\n          <form class=\"ui reply form\">\n            <div class=\"field\">\n              <textarea></textarea>\n            </div>\n            <div class=\"ui primary submit labeled icon button\">\n              <i class=\"icon edit\"></i> Add Reply\n            </div>\n          </form>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui comments\">\n      <div class=\"comment\">\n        <a class=\"avatar\">\n          <img src=\"/images/avatar/small/joe.jpg\">\n        </a>\n        <div class=\"content\">\n          <a class=\"author\">Joe Henderson</a>\n          <div class=\"metadata\">\n            <div class=\"date\">1 day ago</div>\n          </div>\n          <div class=\"text\">\n            <p>The hours, minutes and seconds stand as visible reminders that your effort put them all there. </p>\n            <p>Preserve until your next run, when the watch lets you see how Impermanent your efforts are.</p>\n          </div>\n          <div class=\"actions\">\n            <a class=\"reply\">Reply</a>\n          </div>\n        </div>\n      </div>\n      <div class=\"comment\">\n        <a class=\"avatar\">\n          <img src=\"/images/avatar/small/christian.jpg\">\n        </a>\n        <div class=\"content\">\n          <a class=\"author\">Christian Rocha</a>\n          <div class=\"metadata\">\n            <div class=\"date\">2 days ago</div>\n          </div>\n          <div class=\"text\">\n            I re-tweeted this.\n          </div>\n          <div class=\"actions\">\n            <a class=\"reply\">Reply</a>\n          </div>\n        </div>\n      </div>\n      <form class=\"ui reply form\">\n        <div class=\"field\">\n          <textarea></textarea>\n        </div>\n        <div class=\"ui primary submit labeled icon button\">\n          <i class=\"icon edit\"></i> Add Comment\n        </div>\n      </form>\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">States</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Collapsed</h4>\n    <p>Comments can be collapsed, or hidden from view</p>\n    <div class=\"ui comments\">\n      <div class=\"comment\">\n        <a class=\"avatar\">\n          <img src=\"/images/avatar/small/christian.jpg\">\n        </a>\n        <div class=\"content\">\n          <a class=\"author\">Christian Rocha</a>\n          <div class=\"metadata\">\n            <span class=\"date\">2 days ago</span>\n          </div>\n          <div class=\"text\">\n            I'm very interested in this motherboard. Do you know if it'd work in a Intel LGA775 CPU socket?\n          </div>\n          <div class=\"actions\">\n            <a class=\"reply\">Reply</a>\n          </div>\n        </div>\n        <div class=\"collapsed comments\">\n          <div class=\"comment\">\n            <a class=\"avatar\">\n              <img src=\"/images/avatar/small/elliot.jpg\">\n            </a>\n            <div class=\"content\">\n              <a class=\"author\">Elliot Fu</a>\n              <div class=\"metadata\">\n                <span class=\"date\">1 day ago</span>\n              </div>\n              <div class=\"text\">\n                No, it wont\n              </div>\n              <div class=\"actions\">\n                <a class=\"reply\">Reply</a>\n              </div>\n            </div>\n            <div class=\"comments\">\n              <div class=\"comment\">\n                <a class=\"avatar\">\n                  <img src=\"/images/avatar/small/jenny.jpg\">\n                </a>\n                <div class=\"content\">\n                  <a class=\"author\">Jenny Hess</a>\n                  <div class=\"metadata\">\n                    <span class=\"date\">20 minutes ago</span>\n                  </div>\n                  <div class=\"text\">\n                    Maybe it would.\n                  </div>\n                  <div class=\"actions\">\n                    <a class=\"reply\">Reply</a>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n\n  <h2 class=\"ui dividing header\">Variations</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Threaded</h4>\n    <p>A comment list can be threaded to showing the relationship between conversations</p>\n    <div class=\"ui threaded comments\">\n      <h3 class=\"ui dividing header\">Comments</h3>\n      <div class=\"comment\">\n        <a class=\"avatar\">\n          <img src=\"/images/avatar/small/matt.jpg\">\n        </a>\n        <div class=\"content\">\n          <a class=\"author\">Matt</a>\n          <div class=\"metadata\">\n            <span class=\"date\">Today at 5:42PM</span>\n          </div>\n          <div class=\"text\">\n            How artistic!\n          </div>\n          <div class=\"actions\">\n            <a class=\"reply\">Reply</a>\n          </div>\n        </div>\n      </div>\n      <div class=\"comment\">\n        <a class=\"avatar\">\n          <img src=\"/images/avatar/small/elliot.jpg\">\n        </a>\n        <div class=\"content\">\n          <a class=\"author\">Elliot Fu</a>\n          <div class=\"metadata\">\n            <span class=\"date\">Yesterday at 12:30AM</span>\n          </div>\n          <div class=\"text\">\n            <p>This has been very useful for my research. Thanks as well!</p>\n          </div>\n          <div class=\"actions\">\n            <a class=\"reply\">Reply</a>\n          </div>\n        </div>\n        <div class=\"comments\">\n          <div class=\"comment\">\n            <a class=\"avatar\">\n              <img src=\"/images/avatar/small/jenny.jpg\">\n            </a>\n            <div class=\"content\">\n              <a class=\"author\">Jenny Hess</a>\n              <div class=\"metadata\">\n                <span class=\"date\">Just now</span>\n              </div>\n              <div class=\"text\">\n                Elliot you are always so right :)\n              </div>\n              <div class=\"actions\">\n                <a class=\"reply\">Reply</a>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"comment\">\n        <a class=\"avatar\">\n          <img src=\"/images/avatar/small/joe.jpg\">\n        </a>\n        <div class=\"content\">\n          <a class=\"author\">Joe Henderson</a>\n          <div class=\"metadata\">\n            <span class=\"date\">5 days ago</span>\n          </div>\n          <div class=\"text\">\n            Dude, this is awesome. Thanks so much\n          </div>\n          <div class=\"actions\">\n            <a class=\"reply\">Reply</a>\n          </div>\n        </div>\n      </div>\n      <form class=\"ui reply form\">\n        <div class=\"field\">\n          <textarea></textarea>\n        </div>\n        <div class=\"ui blue labeled submit icon button\">\n          <i class=\"icon edit\"></i> Add Reply\n        </div>\n      </form>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Minimal</h4>\n    <p>Comments can hide extra information unless a user shows intent to interact with a comment.</p>\n    <div class=\"ui minimal comments\">\n      <h3 class=\"ui dividing header\">Comments</h3>\n      <div class=\"comment\">\n        <a class=\"avatar\">\n          <img src=\"/images/avatar/small/matt.jpg\">\n        </a>\n        <div class=\"content\">\n          <a class=\"author\">Matt</a>\n          <div class=\"metadata\">\n            <span class=\"date\">Today at 5:42PM</span>\n          </div>\n          <div class=\"text\">\n            How artistic!\n          </div>\n          <div class=\"actions\">\n            <a class=\"reply\">Reply</a>\n          </div>\n        </div>\n      </div>\n      <div class=\"comment\">\n        <a class=\"avatar\">\n          <img src=\"/images/avatar/small/elliot.jpg\">\n        </a>\n        <div class=\"content\">\n          <a class=\"author\">Elliot Fu</a>\n          <div class=\"metadata\">\n            <span class=\"date\">Yesterday at 12:30AM</span>\n          </div>\n          <div class=\"text\">\n            <p>This has been very useful for my research. Thanks as well!</p>\n          </div>\n          <div class=\"actions\">\n            <a class=\"reply\">Reply</a>\n          </div>\n        </div>\n        <div class=\"comments\">\n          <div class=\"comment\">\n            <a class=\"avatar\">\n              <img src=\"/images/avatar/small/jenny.jpg\">\n            </a>\n            <div class=\"content\">\n              <a class=\"author\">Jenny Hess</a>\n              <div class=\"metadata\">\n                <span class=\"date\">Just now</span>\n              </div>\n              <div class=\"text\">\n                Elliot you are always so right :)\n              </div>\n              <div class=\"actions\">\n                <a class=\"reply\">Reply</a>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"comment\">\n        <a class=\"avatar\">\n          <img src=\"/images/avatar/small/joe.jpg\">\n        </a>\n        <div class=\"content\">\n          <a class=\"author\">Joe Henderson</a>\n          <div class=\"metadata\">\n            <span class=\"date\">5 days ago</span>\n          </div>\n          <div class=\"text\">\n            Dude, this is awesome. Thanks so much\n          </div>\n          <div class=\"actions\">\n            <a class=\"reply\">Reply</a>\n          </div>\n        </div>\n      </div>\n      <form class=\"ui reply form\">\n        <div class=\"field\">\n          <textarea></textarea>\n        </div>\n        <div class=\"ui blue labeled submit icon button\">\n          <i class=\"icon edit\"></i> Add Reply\n        </div>\n      </form>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Size</h4>\n    <p>Comments can have different sizes</p>\n    <div class=\"ui small comments\">\n      <h3 class=\"ui dividing header\">Comments</h3>\n      <div class=\"comment\">\n        <a class=\"avatar\">\n          <img src=\"/images/avatar/small/matt.jpg\">\n        </a>\n        <div class=\"content\">\n          <a class=\"author\">Matt</a>\n          <div class=\"metadata\">\n            <span class=\"date\">Today at 5:42PM</span>\n          </div>\n          <div class=\"text\">\n            How artistic!\n          </div>\n          <div class=\"actions\">\n            <a class=\"reply\">Reply</a>\n          </div>\n        </div>\n      </div>\n      <div class=\"comment\">\n        <a class=\"avatar\">\n          <img src=\"/images/avatar/small/elliot.jpg\">\n        </a>\n        <div class=\"content\">\n          <a class=\"author\">Elliot Fu</a>\n          <div class=\"metadata\">\n            <span class=\"date\">Yesterday at 12:30AM</span>\n          </div>\n          <div class=\"text\">\n            <p>This has been very useful for my research. Thanks as well!</p>\n          </div>\n          <div class=\"actions\">\n            <a class=\"reply\">Reply</a>\n          </div>\n        </div>\n        <div class=\"comments\">\n          <div class=\"comment\">\n            <a class=\"avatar\">\n              <img src=\"/images/avatar/small/jenny.jpg\">\n            </a>\n            <div class=\"content\">\n              <a class=\"author\">Jenny Hess</a>\n              <div class=\"metadata\">\n                <span class=\"date\">Just now</span>\n              </div>\n              <div class=\"text\">\n                Elliot you are always so right :)\n              </div>\n              <div class=\"actions\">\n                <a class=\"reply\">Reply</a>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"comment\">\n        <a class=\"avatar\">\n          <img src=\"/images/avatar/small/joe.jpg\">\n        </a>\n        <div class=\"content\">\n          <a class=\"author\">Joe Henderson</a>\n          <div class=\"metadata\">\n            <span class=\"date\">5 days ago</span>\n          </div>\n          <div class=\"text\">\n            Dude, this is awesome. Thanks so much\n          </div>\n          <div class=\"actions\">\n            <a class=\"reply\">Reply</a>\n          </div>\n        </div>\n      </div>\n      <form class=\"ui reply form\">\n        <div class=\"field\">\n          <textarea></textarea>\n        </div>\n        <div class=\"ui blue labeled submit icon button\">\n          <i class=\"icon edit\"></i> Add Reply\n        </div>\n      </form>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui small comments\">\n      <h3 class=\"ui dividing header\">Comments</h3>\n      <div class=\"comment\">\n        <a class=\"avatar\">\n          <img src=\"/images/avatar/small/matt.jpg\">\n        </a>\n        <div class=\"content\">\n          <a class=\"author\">Matt</a>\n          <div class=\"metadata\">\n            <span class=\"date\">Today at 5:42PM</span>\n          </div>\n          <div class=\"text\">\n            How artistic!\n          </div>\n          <div class=\"actions\">\n            <a class=\"reply\">Reply</a>\n          </div>\n        </div>\n      </div>\n      <div class=\"comment\">\n        <a class=\"avatar\">\n          <img src=\"/images/avatar/small/elliot.jpg\">\n        </a>\n        <div class=\"content\">\n          <a class=\"author\">Elliot Fu</a>\n          <div class=\"metadata\">\n            <span class=\"date\">Yesterday at 12:30AM</span>\n          </div>\n          <div class=\"text\">\n            <p>This has been very useful for my research. Thanks as well!</p>\n          </div>\n          <div class=\"actions\">\n            <a class=\"reply\">Reply</a>\n          </div>\n        </div>\n        <div class=\"comments\">\n          <div class=\"comment\">\n            <a class=\"avatar\">\n              <img src=\"/images/avatar/small/jenny.jpg\">\n            </a>\n            <div class=\"content\">\n              <a class=\"author\">Jenny Hess</a>\n              <div class=\"metadata\">\n                <span class=\"date\">Just now</span>\n              </div>\n              <div class=\"text\">\n                Elliot you are always so right :)\n              </div>\n              <div class=\"actions\">\n                <a class=\"reply\">Reply</a>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"comment\">\n        <a class=\"avatar\">\n          <img src=\"/images/avatar/small/joe.jpg\">\n        </a>\n        <div class=\"content\">\n          <a class=\"author\">Joe Henderson</a>\n          <div class=\"metadata\">\n            <span class=\"date\">5 days ago</span>\n          </div>\n          <div class=\"text\">\n            Dude, this is awesome. Thanks so much\n          </div>\n          <div class=\"actions\">\n            <a class=\"reply\">Reply</a>\n          </div>\n        </div>\n      </div>\n      <form class=\"ui reply form\">\n        <div class=\"field\">\n          <textarea></textarea>\n        </div>\n        <div class=\"ui blue labeled submit icon button\">\n          <i class=\"icon edit\"></i> Add Reply\n        </div>\n      </form>\n    </div>\n  </div>\n\n\n\n</div>\n"
  },
  {
    "path": "server/documents/views/feed.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'feed'\nstandalone  : true\n\ntitle       : 'Feed'\ndescription : 'A feed presents user activity chronologically'\ntype        : 'UI View'\n\nelement     : 'feed'\nelementType : 'view'\n\nthemes      : ['Default', 'Timeline']\n---\n\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/views/feed.less\" />\n\n<%- @partial('header') %>\n<div class=\"main ui container\">\n\n  <h2 class=\"ui dividing header\">Types</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Feed</h4>\n    <p>A feed</p>\n    <div class=\"ui feed\">\n      <div class=\"event\">\n        <div class=\"label\">\n          <img src=\"/images/avatar/small/elliot.jpg\">\n        </div>\n        <div class=\"content\">\n          <div class=\"summary\">\n            <a class=\"user\">\n              Elliot Fu\n            </a> added you as a friend\n            <div class=\"date\">\n              1 Hour Ago\n            </div>\n          </div>\n          <div class=\"meta\">\n            <a class=\"like\">\n              <i class=\"like icon\"></i> 4 Likes\n            </a>\n          </div>\n        </div>\n      </div>\n      <div class=\"event\">\n        <div class=\"label\">\n          <img src=\"/images/avatar/small/helen.jpg\">\n        </div>\n        <div class=\"content\">\n          <div class=\"summary\">\n            <a>Helen Troy</a> added <a>2 new illustrations</a>\n            <div class=\"date\">\n              4 days ago\n            </div>\n          </div>\n          <div class=\"extra images\">\n            <a><img src=\"/images/wireframe/image.png\"></a>\n            <a><img src=\"/images/wireframe/image.png\"></a>\n          </div>\n          <div class=\"meta\">\n            <a class=\"like\">\n              <i class=\"like icon\"></i> 1 Like\n            </a>\n          </div>\n        </div>\n      </div>\n      <div class=\"event\">\n        <div class=\"label\">\n          <img src=\"/images/avatar/small/jenny.jpg\">\n        </div>\n        <div class=\"content\">\n          <div class=\"summary\">\n            <a class=\"user\">\n              Jenny Hess\n            </a> added you as a friend\n            <div class=\"date\">\n              2 Days Ago\n            </div>\n          </div>\n          <div class=\"meta\">\n            <a class=\"like\">\n              <i class=\"like icon\"></i> 8 Likes\n            </a>\n          </div>\n        </div>\n      </div>\n      <div class=\"event\">\n        <div class=\"label\">\n          <img src=\"/images/avatar/small/joe.jpg\">\n        </div>\n        <div class=\"content\">\n          <div class=\"summary\">\n            <a>Joe Henderson</a> posted on his page\n            <div class=\"date\">\n              3 days ago\n            </div>\n          </div>\n          <div class=\"extra text\">\n            Ours is a life of constant reruns. We're always circling back to where we'd we started, then starting all over again. Even if we don't run extra laps that day, we surely will come back for more of the same another day soon.\n          </div>\n          <div class=\"meta\">\n            <a class=\"like\">\n              <i class=\"like icon\"></i> 5 Likes\n            </a>\n          </div>\n        </div>\n      </div>\n      <div class=\"event\">\n        <div class=\"label\">\n          <img src=\"/images/avatar/small/justen.jpg\">\n        </div>\n        <div class=\"content\">\n          <div class=\"summary\">\n            <a>Justen Kitsune</a> added <a>2 new photos</a> of you\n            <div class=\"date\">\n              4 days ago\n            </div>\n          </div>\n          <div class=\"extra images\">\n            <a><img src=\"/images/wireframe/image.png\"></a>\n            <a><img src=\"/images/wireframe/image.png\"></a>\n          </div>\n          <div class=\"meta\">\n            <a class=\"like\">\n              <i class=\"like icon\"></i> 41 Likes\n            </a>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Content</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Label</h4>\n    <p>An event can contain an image or icon label</p>\n    <div class=\"ui feed\">\n      <div class=\"event\">\n        <div class=\"label\">\n          <img src=\"/images/avatar/small/elliot.jpg\">\n        </div>\n        <div class=\"content\">\n          You added Elliot Fu to the group <a>Coworkers</a>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui feed\">\n      <div class=\"event\">\n        <div class=\"label\">\n          <i class=\"pencil icon\"></i>\n        </div>\n        <div class=\"content\">\n          <div class=\"summary\">\n            You posted on your friend <a>Stevie Feliciano's</a> wall.\n            <div class=\"date\">Today</div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Date</h4>\n    <p>An event or an event summary can contain a date</p>\n    <div class=\"ui feed\">\n      <div class=\"event\">\n        <div class=\"label\">\n          <img src=\"/images/avatar/small/jenny.jpg\">\n        </div>\n        <div class=\"content\">\n          <div class=\"date\">\n            3 days ago\n          </div>\n          <div class=\"summary\">\n             You added <a>Jenny Hess</a> to your <a>coworker</a> group.\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui feed\">\n      <div class=\"event\">\n        <div class=\"label\">\n          <img src=\"/images/avatar/small/jenny.jpg\">\n        </div>\n        <div class=\"content\">\n          <div class=\"summary\">\n            You added <a>Jenny Hess</a> to your <a>coworker</a> group.\n            <div class=\"date\">\n              3 days ago\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Additional information</h4>\n    <p>An event can contain additional information like a set of images or text</p>\n    <div class=\"ui feed\">\n      <div class=\"event\">\n        <div class=\"label\">\n          <img src=\"/images/avatar/small/helen.jpg\">\n        </div>\n        <div class=\"content\">\n          <div class=\"date\">\n            3 days ago\n          </div>\n          <div class=\"summary\">\n             <a>Helen Troy</a> added 2 photos\n          </div>\n          <div class=\"extra images\">\n            <a><img src=\"/images/wireframe/image.png\"></a>\n            <a><img src=\"/images/wireframe/image.png\"></a>\n          </div>\n        </div>\n      </div>\n      <div class=\"event\">\n        <div class=\"label\">\n          <img src=\"/images/avatar/small/laura.jpg\">\n        </div>\n        <div class=\"content\">\n          <div class=\"date\">\n            3 days ago\n          </div>\n          <div class=\"summary\">\n             <a>Laura Faucet</a> created a post\n          </div>\n          <div class=\"extra text\">\n            Have you seen what's going on in Israel? Can you believe it.\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n\n  <h2 class=\"ui dividing header\">Variations</h2>\n  <div class=\"example\">\n    <h4 class=\"ui header\">Size</h4>\n    <p>A feed can have different sizes</p>\n\n    <div class=\"ui small feed\">\n      <h4 class=\"ui header\">Followers Activity</h4>\n      <div class=\"event\">\n        <div class=\"content\">\n          <div class=\"summary\">\n             <a>Elliot Fu</a> added <a>Jenny Hess</a> as a friend\n          </div>\n        </div>\n      </div>\n      <div class=\"event\">\n        <div class=\"content\">\n          <div class=\"summary\">\n             <a>Stevie Feliciano</a> added <a>Elliot Fu</a> as a friend\n          </div>\n        </div>\n      </div>\n      <div class=\"event\">\n        <div class=\"content\">\n          <div class=\"summary\">\n             <a>Helen Troy</a> added <a>Christian Rocha</a> as a friend\n          </div>\n        </div>\n      </div>\n      <div class=\"event\">\n        <div class=\"content\">\n          <div class=\"summary\">\n             <a>Christian Rocha</a> signed up for the  site.\n          </div>\n        </div>\n      </div>\n    </div\n    >\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui large feed\">\n      <div class=\"event\">\n        <div class=\"label\">\n          <img src=\"/images/avatar/small/elliot.jpg\">\n        </div>\n        <div class=\"content\">\n          <div class=\"summary\">\n            <a class=\"user\">\n              Elliot Fu\n            </a> added you as a friend\n            <div class=\"date\">\n              1 Hour Ago\n            </div>\n          </div>\n          <div class=\"meta\">\n            <a class=\"like\">\n              <i class=\"like icon\"></i> 4 Likes\n            </a>\n          </div>\n        </div>\n      </div>\n      <div class=\"event\">\n        <div class=\"label\">\n          <i class=\"pencil icon\"></i>\n        </div>\n        <div class=\"content\">\n          <div class=\"summary\">\n            You submitted a new post to the page\n            <div class=\"date\">\n              3 days ago\n            </div>\n          </div>\n          <div class=\"extra text\">\n            I'm having a BBQ this weekend. Come by around 4pm if you can.\n          </div>\n          <div class=\"meta\">\n            <a class=\"like\">\n              <i class=\"like icon\"></i> 11 Likes\n            </a>\n          </div>\n        </div>\n      </div>\n      <div class=\"event\">\n        <div class=\"label\">\n          <img src=\"/images/avatar/small/helen.jpg\">\n        </div>\n        <div class=\"content\">\n          <div class=\"date\">\n            4 days ago\n          </div>\n          <div class=\"summary\">\n            <a>Helen Troy</a> added <a>2 new illustrations</a>\n          </div>\n          <div class=\"extra images\">\n            <a><img src=\"/images/wireframe/image.png\"></a>\n            <a><img src=\"/images/wireframe/image.png\"></a>\n          </div>\n          <div class=\"meta\">\n            <a class=\"like\">\n              <i class=\"like icon\"></i> 1 Like\n            </a>\n          </div>\n        </div>\n      </div>\n    </div>\n\n  </div>\n\n\n</div>"
  },
  {
    "path": "server/documents/views/item.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'item'\nstandalone  : true\n\nelement     : 'item'\nelementType : 'view'\n\ntitle       : 'Item'\ndescription : 'An item view presents large collections of site content for display'\ntype        : 'UI View'\n\nthemes      : ['Default']\n---\n\n<%- @partial('header') %>\n\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/views/item.less\" />\n<script src=\"/javascript/item.js\"></script>\n\n<div class=\"main ui container\">\n\n  <h2 class=\"ui dividing header\">Types</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">\n      Items\n      <span class=\"ui teal label\">Flexbox</span>\n    </h4>\n    <p>A group of items.</p>\n    <div class=\"ui ignored positive icon message\">\n      <i class=\"mobile icon\"></i>\n      <div class=\"content\">\n        <h3 class=\"header\">Responsive Element</h3>\n        <p>Item views are designed to be responsive with images stacking at mobile resolutions.</p>\n      </div>\n    </div>\n    <div class=\"ui items\">\n      <div class=\"item\">\n        <div class=\"image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"content\">\n          <a class=\"header\">Header</a>\n          <div class=\"meta\">\n            <span>Description</span>\n          </div>\n          <div class=\"description\">\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n          </div>\n          <div class=\"extra\">\n            Additional Details\n          </div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"content\">\n          <a class=\"header\">Header</a>\n          <div class=\"meta\">\n            <span>Description</span>\n          </div>\n          <div class=\"description\">\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n          </div>\n          <div class=\"extra\">\n            Additional Details\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Content</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Image</h4>\n    <p>An item can contain an image</p>\n    <div class=\"ui divided items\">\n      <div class=\"item\">\n        <div class=\"image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Content</h4>\n    <p>An item can contain content</p>\n    <div class=\"ui divided items\">\n      <div class=\"item\">\n        <div class=\"ui tiny image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"middle aligned content\">\n          Content A\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"ui tiny image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"middle aligned content\">\n          Content B\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"ui tiny image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"middle aligned content\">\n          Content C\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Header</h4>\n    <p>An item can contain a header</p>\n    <div class=\"ui items\">\n      <div class=\"item\">\n        <div class=\"ui tiny image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"middle aligned content\">\n          <a class=\"header\">12 Years a Slave</a>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"ui tiny image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"middle aligned content\">\n          <a class=\"header\">My Neighbor Totoro</a>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"ui tiny image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"middle aligned content\">\n          <a class=\"header\">Watchmen</a>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Metadata</h4>\n    <p>An item can contain content metadata</p>\n    <div class=\"ui ignored info message\">\n      <i class=\"info icon\"></i>\n      You can include an arbitrary amount of metadata using your own class conventions, all child elements will automatically be spaced\n    </div>\n    <div class=\"ui items\">\n      <div class=\"item\">\n        <div class=\"ui small image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"content\">\n          <div class=\"header\">Arrowhead Valley Camp</div>\n          <div class=\"meta\">\n            <span class=\"price\">$1200</span>\n            <span class=\"stay\">1 Month</span>\n          </div>\n          <div class=\"description\">\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n          </div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"ui small image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"content\">\n          <div class=\"header\">Buck's Homebrew Stayaway</div>\n          <div class=\"meta\">\n            <span class=\"price\">$1000</span>\n            <span class=\"stay\">2 Weeks</span>\n          </div>\n          <div class=\"description\">\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n          </div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"ui small image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"content\">\n          <div class=\"header\">Astrology Camp</div>\n          <div class=\"meta\">\n            <span class=\"price\">$1600</span>\n            <span class=\"stay\">6 Weeks</span>\n          </div>\n          <div class=\"description\">\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Link</h4>\n    <p>An item can contain links as images, headers, or inside content</p>\n    <div class=\"ui yellow message\">\n      <i class=\"star icon\"></i>\n      To make the entire content of an item link, check out the link variation below\n    </div>\n    <div class=\"ui items\">\n      <div class=\"item\">\n        <a class=\"ui tiny image\">\n          <img src=\"/images/avatar/large/stevie.jpg\">\n        </a>\n        <div class=\"content\">\n          <a class=\"header\">Stevie Feliciano</a>\n          <div class=\"description\">\n            <p>Stevie Feliciano is a <a>library scientist</a> living in New York City. She likes to spend her time reading, running, and writing.</p>\n          </div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <a class=\"ui tiny image\">\n          <img src=\"/images/avatar/large/veronika.jpg\">\n        </a>\n        <div class=\"content\">\n          <a class=\"header\">Veronika Ossi</a>\n          <div class=\"description\">\n            <p>Veronika Ossi is a set designer living in New York who <a>enjoys</a> kittens, music, and partying.</p>\n          </div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <a class=\"ui tiny image\">\n          <img src=\"/images/avatar/large/jenny.jpg\">\n        </a>\n        <div class=\"content\">\n          <a class=\"header\">Jenny Hess</a>\n          <div class=\"description\">\n            <p>Jenny is a student studying Media Management at <a>the New School</a>.</p>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Description</h4>\n    <p>An item can contain a description with a single or multiple paragraphs</p>\n    <div class=\"ui items\">\n      <div class=\"item\">\n        <a class=\"ui small image\">\n          <img src=\"/images/wireframe/image.png\" class=\"ui wireframe image\">\n        </a>\n        <div class=\"content\">\n          <a class=\"header\">Cute Dog</a>\n          <div class=\"description\">\n            <p>Cute dogs come in a variety of shapes and sizes. Some cute dogs are cute for their adorable faces, others for their tiny stature, and even others for their massive size.</p>\n            <p>Many people also have their own barometers for what makes a cute dog.</p>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Extra Content</h4>\n    <p>An item can contain extra content meant to be formatted separately from the main content</p>\n    <div class=\"ui items\">\n      <div class=\"item\">\n        <div class=\"content\">\n          <a class=\"header\">Cute Dog</a>\n          <div class=\"description\">\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n          </div>\n          <div class=\"extra\">\n            <i class=\"green check icon\"></i>\n            121 Votes\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Rating</h4>\n    <p>An item can contain icons signifying a 'like' or 'favorite' action</p>\n    <div class=\"ui ignored info message\">\n      You can use the <a href=\"/modules/rating.html\">rating</a> component to attach events to like and favorite icons\n    </div>\n    <div class=\"ui items\">\n      <div class=\"item\">\n        <a class=\"ui tiny image\">\n          <img src=\"/images/avatar/large/jenny.jpg\">\n        </a>\n        <div class=\"middle aligned content\">\n          <div class=\"header\">\n            <i class=\"like icon\"></i>\n            Veronika Ossi\n          </div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <a class=\"ui tiny image\">\n          <img src=\"/images/avatar/large/justen.jpg\">\n        </a>\n        <div class=\"middle aligned content\">\n          <div class=\"header\">\n            <i class=\"favorite icon\"></i>\n            Justen Kitsune\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n\n  <h2 class=\"ui dividing header\">Variations</h2>\n\n  <div class=\"example\" data-class=\"unstackable\">\n    <h4 class=\"ui header\">Stacking</h4>\n    <p>A table can specify how it stacks items responsively</p>\n    <div class=\"ui unstackable items\">\n      <div class=\"item\">\n        <div class=\"image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"content\">\n          <a class=\"header\">Header</a>\n          <div class=\"meta\">\n            <span>Description</span>\n          </div>\n          <div class=\"description\">\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n          </div>\n          <div class=\"extra\">\n            Additional Details\n          </div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"content\">\n          <a class=\"header\">Header</a>\n          <div class=\"meta\">\n            <span>Description</span>\n          </div>\n          <div class=\"description\">\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n          </div>\n          <div class=\"extra\">\n            Additional Details\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Divided</h4>\n    <p>Items can be divided to better distinguish between grouped content</p>\n    <div class=\"ui ignored info message\">\n      <i class=\"info icon\"></i>\n      The following example uses <a href=\"/elements/segment.html\">ui</a> for legibility only. This is not necessary for using <code>ui items</code>\n    </div>\n\n    <div class=\"ui divided items\">\n      <div class=\"item\">\n        <div class=\"image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"content\">\n          <a class=\"header\">12 Years a Slave</a>\n          <div class=\"meta\">\n            <span class=\"cinema\">Union Square 14</span>\n          </div>\n          <div class=\"description\">\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n          </div>\n          <div class=\"extra\">\n            <div class=\"ui label\">IMAX</div>\n            <div class=\"ui label\"><i class=\"globe icon\"></i> Additional Languages</div>\n          </div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"content\">\n          <a class=\"header\">My Neighbor Totoro</a>\n          <div class=\"meta\">\n            <span class=\"cinema\">IFC Cinema</span>\n          </div>\n          <div class=\"description\">\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n          </div>\n          <div class=\"extra\">\n            <div class=\"ui right floated primary button\">\n              Buy tickets\n              <i class=\"right chevron icon\"></i>\n            </div>\n            <div class=\"ui label\">Limited</div>\n          </div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"content\">\n          <a class=\"header\">Watchmen</a>\n          <div class=\"meta\">\n            <span class=\"cinema\">IFC</span>\n          </div>\n          <div class=\"description\">\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n          </div>\n          <div class=\"extra\">\n            <div class=\"ui right floated primary button\">\n              Buy tickets\n              <i class=\"right chevron icon\"></i>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Relaxed</h4>\n    <p>A group of items can relax its padding to provide more negative space</p>\n    <div class=\"ui relaxed items\">\n      <div class=\"item\">\n        <div class=\"ui tiny image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"middle aligned content\">\n          <a class=\"header\">12 Years a Slave</a>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"ui tiny image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"middle aligned content\">\n          <a class=\"header\">My Neighbor Totoro</a>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"ui tiny image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"middle aligned content\">\n          <a class=\"header\">Watchmen</a>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui very relaxed items\">\n      <div class=\"item\">\n        <div class=\"ui tiny image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"middle aligned content\">\n          <a class=\"header\">12 Years a Slave</a>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"ui tiny image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"middle aligned content\">\n          <a class=\"header\">My Neighbor Totoro</a>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"ui tiny image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"middle aligned content\">\n          <a class=\"header\">Watchmen</a>\n        </div>\n      </div>\n    </div>\n  </div>\n\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Link Item</h4>\n    <p>An item can be formatted so that the entire contents link to another page</p>\n    <div class=\"ui link items\">\n      <div class=\"item\">\n        <div class=\"ui tiny image\">\n          <img src=\"/images/avatar/large/stevie.jpg\">\n        </div>\n        <div class=\"content\">\n          <div class=\"header\">Stevie Feliciano</div>\n          <div class=\"description\">\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n          </div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"ui tiny image\">\n          <img src=\"/images/avatar/large/veronika.jpg\">\n        </div>\n        <div class=\"content\">\n          <div class=\"header\">Veronika Ossi</div>\n          <div class=\"description\">\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n          </div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"ui tiny image\">\n          <img src=\"/images/avatar/large/jenny.jpg\">\n        </div>\n        <div class=\"content\">\n          <div class=\"header\">Jenny Hess</div>\n          <div class=\"description\">\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Vertical Alignment</h4>\n    <p>Content can specify its vertical alignment</p>\n    <div class=\"ui ignored info message\">\n      <i class=\"info icon\"></i>\n      You can include an arbitrary amount of metadata using your own class conventions, all child elements will automatically be spaced\n    </div>\n    <div class=\"ui items\">\n      <div class=\"item\">\n        <div class=\"ui small image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"content\">\n          <div class=\"header\">\n            Top Aligned\n          </div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"ui small image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"middle aligned content\">\n          <div class=\"header\">\n            Middle Aligned\n          </div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"ui small image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"bottom aligned content\">\n          <div class=\"header\">\n            Bottom Aligned\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Floated Content</h4>\n    <p>Any content element can be floated left or right</p>\n    <div class=\"ui ignored info message\">\n      <i class=\"info icon\"></i>\n      You can include an arbitrary amount of metadata using your own class conventions, all child elements will automatically be spaced\n    </div>\n    <div class=\"ui items\">\n      <div class=\"item\">\n        <div class=\"ui small image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"middle aligned content\">\n          <div class=\"header\">\n            Content A\n          </div>\n          <div class=\"description\">\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n          </div>\n          <div class=\"extra\">\n            <div class=\"ui right floated button\">\n              Action\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"ui small image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"middle aligned content\">\n          <div class=\"header\">\n            Content B\n          </div>\n          <div class=\"description\">\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n          </div>\n          <div class=\"extra\">\n            <div class=\"ui right floated button\">\n              Action\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"ui small image\">\n          <img src=\"/images/wireframe/image.png\">\n        </div>\n        <div class=\"middle aligned content\">\n          <div class=\"header\">\n            Content C\n          </div>\n          <div class=\"description\">\n            <img src=\"/images/wireframe/short-paragraph.png\" class=\"ui wireframe image\">\n          </div>\n          <div class=\"extra\">\n            <div class=\"ui right floated button\">\n              Action\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/documents/views/statistic.html.eco",
    "content": "---\nlayout      : 'default'\ncss         : 'stat'\nstandalone  : true\n\nelement     : 'statistic'\nelementType : 'view'\n\ntitle       : 'Statistic'\ndescription : 'A statistic emphasizes the current value of an attribute'\ntype        : 'UI View'\n\nthemes      : ['Default']\n---\n\n<%- @partial('header') %>\n\n<link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/views/statistic.less\" />\n<script src=\"/javascript/card.js\"></script>\n\n<div class=\"main ui container\">\n\n  <h2 class=\"ui dividing header\">Types</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Statistic</h4>\n    <p>A statistic can display a value with a label above or below it.</p>\n    <div class=\"ui statistic\">\n      <div class=\"value\">\n        5,550\n      </div>\n      <div class=\"label\">\n        Downloads\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui statistic\">\n      <div class=\"label\">\n        Views\n      </div>\n      <div class=\"value\">\n        40,509\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Statistic Group</h4>\n    <p>A group of statistics</p>\n    <div class=\"ui statistics\">\n      <div class=\"statistic\">\n        <div class=\"value\">\n          22\n        </div>\n        <div class=\"label\">\n          Faves\n        </div>\n      </div>\n      <div class=\"statistic\">\n        <div class=\"value\">\n          31,200\n        </div>\n        <div class=\"label\">\n          Views\n        </div>\n      </div>\n      <div class=\"statistic\">\n        <div class=\"value\">\n          22\n        </div>\n        <div class=\"label\">\n          Members\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <h2 class=\"ui dividing header\">Content</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Value</h4>\n    <p>A statistic can contain a numeric, icon, image, or text value</p>\n    <div class=\"ui statistics\">\n      <div class=\"statistic\">\n        <div class=\"value\">\n          22\n        </div>\n        <div class=\"label\">\n          Saves\n        </div>\n      </div>\n      <div class=\"statistic\">\n        <div class=\"text value\">\n          Three<br>\n          Thousand\n        </div>\n        <div class=\"label\">\n          Signups\n        </div>\n      </div>\n      <div class=\"statistic\">\n        <div class=\"value\">\n          <i class=\"plane icon\"></i> 5\n        </div>\n        <div class=\"label\">\n          Flights\n        </div>\n      </div>\n      <div class=\"statistic\">\n        <div class=\"value\">\n          <img src=\"/images/avatar/small/joe.jpg\" class=\"ui circular inline image\">\n          42\n        </div>\n        <div class=\"label\">\n          Team Members\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Label</h4>\n    <p>A statistic can contain a label to help provide context for the presented value</p>\n    <div class=\"ui statistic\">\n      <div class=\"value\">\n        2,204\n      </div>\n      <div class=\"label\">\n        Views\n      </div>\n    </div>\n  </div>\n\n\n  <h2 class=\"ui dividing header\">Variations</h2>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Horizontal Statistic</h4>\n    <p>A statistic can present its measurement horizontally</p>\n    <div class=\"ui horizontal statistic\">\n      <div class=\"value\">\n        2,204\n      </div>\n      <div class=\"label\">\n        Views\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui horizontal statistics\">\n      <div class=\"statistic\">\n        <div class=\"value\">\n          2,204\n        </div>\n        <div class=\"label\">\n          Views\n        </div>\n      </div>\n      <div class=\"statistic\">\n        <div class=\"value\">\n          3,322\n        </div>\n        <div class=\"label\">\n          Downloads\n        </div>\n      </div>\n      <div class=\"statistic\">\n        <div class=\"value\">\n          22\n        </div>\n        <div class=\"label\">\n          Tasks\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Colored</h4>\n    <p>A statistic can be formatted to be different colors</p>\n    <div class=\"ui statistics\">\n      <div class=\"red statistic\">\n        <div class=\"value\">\n          27\n        </div>\n        <div class=\"label\">\n          Red\n        </div>\n      </div>\n      <div class=\"orange statistic\">\n        <div class=\"value\">\n          8\n        </div>\n        <div class=\"label\">\n          Orange\n        </div>\n      </div>\n      <div class=\"yellow statistic\">\n        <div class=\"value\">\n          28\n        </div>\n        <div class=\"label\">\n          Yellow\n        </div>\n      </div>\n      <div class=\"olive statistic\">\n        <div class=\"value\">\n          7\n        </div>\n        <div class=\"label\">\n          Olive\n        </div>\n      </div>\n      <div class=\"green statistic\">\n        <div class=\"value\">\n          14\n        </div>\n        <div class=\"label\">\n          Green\n        </div>\n      </div>\n      <div class=\"teal statistic\">\n        <div class=\"value\">\n          82\n        </div>\n        <div class=\"label\">\n          Teal\n        </div>\n      </div>\n      <div class=\"blue statistic\">\n        <div class=\"value\">\n          1\n        </div>\n        <div class=\"label\">\n          Blue\n        </div>\n      </div>\n      <div class=\"violet statistic\">\n        <div class=\"value\">\n          22\n        </div>\n        <div class=\"label\">\n          Violet\n        </div>\n      </div>\n      <div class=\"purple statistic\">\n        <div class=\"value\">\n          23\n        </div>\n        <div class=\"label\">\n          Purple\n        </div>\n      </div>\n      <div class=\"pink statistic\">\n        <div class=\"value\">\n          15\n        </div>\n        <div class=\"label\">\n          Pink\n        </div>\n      </div>\n      <div class=\"brown statistic\">\n        <div class=\"value\">\n          36\n        </div>\n        <div class=\"label\">\n          Brown\n        </div>\n      </div>\n      <div class=\"grey statistic\">\n        <div class=\"value\">\n          49\n        </div>\n        <div class=\"label\">\n          Grey\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"example\">\n    <h4 class=\"ui header\">Inverted</h4>\n    <p>A statistic can be formatted to fit on a dark background</p>\n    <div class=\"ui inverted segment\">\n      <div class=\"ui inverted statistic\">\n        <div class=\"value\">\n          54\n        </div>\n        <div class=\"label\">\n          Inverted\n        </div>\n      </div>\n      <div class=\"ui red inverted statistic\">\n        <div class=\"value\">\n          27\n        </div>\n        <div class=\"label\">\n          Red\n        </div>\n      </div>\n      <div class=\"ui orange inverted statistic\">\n        <div class=\"value\">\n          8\n        </div>\n        <div class=\"label\">\n          Orange\n        </div>\n      </div>\n      <div class=\"ui yellow inverted statistic\">\n        <div class=\"value\">\n          28\n        </div>\n        <div class=\"label\">\n          Yellow\n        </div>\n      </div>\n      <div class=\"ui olive inverted statistic\">\n        <div class=\"value\">\n          7\n        </div>\n        <div class=\"label\">\n          Olive\n        </div>\n      </div>\n        <div class=\"ui green inverted statistic\">\n        <div class=\"value\">\n          14\n        </div>\n        <div class=\"label\">\n          Green\n        </div>\n      </div>\n      <div class=\"ui teal inverted statistic\">\n        <div class=\"value\">\n          82\n        </div>\n        <div class=\"label\">\n          Teal\n        </div>\n      </div>\n      <div class=\"ui blue inverted statistic\">\n        <div class=\"value\">\n          1\n        </div>\n        <div class=\"label\">\n          Blue\n        </div>\n      </div>\n      <div class=\"ui violet inverted statistic\">\n        <div class=\"value\">\n          22\n        </div>\n        <div class=\"label\">\n          Violet\n        </div>\n      </div>\n      <div class=\"ui purple inverted statistic\">\n        <div class=\"value\">\n          23\n        </div>\n        <div class=\"label\">\n          Purple\n        </div>\n      </div>\n      <div class=\"ui pink inverted statistic\">\n        <div class=\"value\">\n          15\n        </div>\n        <div class=\"label\">\n          Pink\n        </div>\n      </div>\n      <div class=\"ui brown inverted statistic\">\n        <div class=\"value\">\n          36\n        </div>\n        <div class=\"label\">\n          Brown\n        </div>\n      </div>\n      <div class=\"ui grey inverted statistic\">\n        <div class=\"value\">\n          49\n        </div>\n        <div class=\"label\">\n          Grey\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Evenly Divided</h4>\n    <p>A statistic group can have its items divided evenly</p>\n    <div class=\"ui four statistics\">\n      <div class=\"statistic\">\n        <div class=\"value\">\n          22\n        </div>\n        <div class=\"label\">\n          Saves\n        </div>\n      </div>\n      <div class=\"statistic\">\n        <div class=\"text value\">\n          Three<br>\n          Thousand\n        </div>\n        <div class=\"label\">\n          Signups\n        </div>\n      </div>\n      <div class=\"statistic\">\n        <div class=\"value\">\n          <i class=\"plane icon\"></i> 5\n        </div>\n        <div class=\"label\">\n          Flights\n        </div>\n      </div>\n      <div class=\"statistic\">\n        <div class=\"value\">\n          <img src=\"/images/avatar/small/joe.jpg\" class=\"ui circular inline image\">\n          42\n        </div>\n        <div class=\"label\">\n          Team Members\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Floated</h4>\n    <p>An statistic can sit to the left or right of other content</p>\n\n    <div class=\"ui segment\">\n      <div class=\"ui right floated statistic\">\n        <div class=\"value\">\n          2,204\n        </div>\n        <div class=\"label\">\n          Views\n        </div>\n      </div>\n      <p>Te eum doming eirmod, nominati pertinacia argumentum ad his. Ex eam alia facete scriptorem, est autem aliquip detraxit at. Usu ocurreret referrentur at, cu epicurei appellantur vix. Cum ea laoreet recteque electram, eos choro alterum definiebas in. Vim dolorum definiebas an. Mei ex natum rebum iisque.</p>\n\n      <p>Audiam quaerendum eu sea, pro omittam definiebas ex. Te est latine definitiones. Quot wisi nulla ex duo. Vis sint solet expetenda ne, his te phaedrum referrentur consectetuer. Id vix fabulas oporteat, ei quo vide phaedrum, vim vivendum maiestatis in.</p>\n\n      <div class=\"ui left floated statistic\">\n        <div class=\"value\">\n          2,204\n        </div>\n        <div class=\"label\">\n          Views\n        </div>\n      </div>\n      <p>Eu quo homero blandit intellegebat. Incorrupte consequuntur mei id. Mei ut facer dolores adolescens, no illum aperiri quo, usu odio brute at. Qui te porro electram, ea dico facete utroque quo. Populo quodsi te eam, wisi everti eos ex, eum elitr altera utamur at. Quodsi convenire mnesarchum eu per, quas minimum postulant per id.</p>\n\n      <p>Audiam quaerendum eu sea, pro omittam definiebas ex. Te est latine definitiones. Quot wisi nulla ex duo. Vis sint solet expetenda ne, his te phaedrum referrentur consectetuer. Id vix fabulas oporteat, ei quo vide phaedrum, vim vivendum maiestatis in.</p>\n\n    </div>\n  </div>\n\n  <div class=\"example\">\n    <h4 class=\"ui header\">Size</h4>\n    <p>A statistic can vary in size</p>\n    <div class=\"ui mini statistic\">\n      <div class=\"value\">\n        2,204\n      </div>\n      <div class=\"label\">\n        Views\n      </div>\n    </div>\n    <div class=\"ui tiny statistic\">\n      <div class=\"value\">\n        2,204\n      </div>\n      <div class=\"label\">\n        Views\n      </div>\n    </div>\n    <div class=\"ui small statistic\">\n      <div class=\"value\">\n        2,204\n      </div>\n      <div class=\"label\">\n        Views\n      </div>\n    </div>\n    <div class=\"ui statistic\">\n      <div class=\"value\">\n        2,204\n      </div>\n      <div class=\"label\">\n        Views\n      </div>\n    </div>\n    <div class=\"ui large statistic\">\n      <div class=\"value\">\n        2,204\n      </div>\n      <div class=\"label\">\n        Views\n      </div>\n    </div>\n    <div class=\"ui huge statistic\">\n      <div class=\"value\">\n        2,204\n      </div>\n      <div class=\"label\">\n        Views\n      </div>\n    </div>\n  </div>\n  <div class=\"another example\">\n    <div class=\"ui ignored divider\"></div>\n    <div class=\"ui mini horizontal statistic\">\n      <div class=\"value\">\n        2,204\n      </div>\n      <div class=\"label\">\n        Views\n      </div>\n    </div>\n    <div class=\"ui ignored divider\"></div>\n    <div class=\"ui tiny horizontal statistic\">\n      <div class=\"value\">\n        2,204\n      </div>\n      <div class=\"label\">\n        Views\n      </div>\n    </div>\n    <div class=\"ui ignored divider\"></div>\n    <div class=\"ui small horizontal statistic\">\n      <div class=\"value\">\n        2,204\n      </div>\n      <div class=\"label\">\n        Views\n      </div>\n    </div>\n    <div class=\"ui ignored divider\"></div>\n    <div class=\"ui horizontal statistic\">\n      <div class=\"value\">\n        2,204\n      </div>\n      <div class=\"label\">\n        Views\n      </div>\n    </div>\n    <div class=\"ui ignored divider\"></div>\n    <div class=\"ui large horizontal statistic\">\n      <div class=\"value\">\n        2,204\n      </div>\n      <div class=\"label\">\n        Views\n      </div>\n    </div>\n    <div class=\"ui ignored divider\"></div>\n    <div class=\"ui huge horizontal statistic\">\n      <div class=\"value\">\n        2,204\n      </div>\n      <div class=\"label\">\n        Views\n      </div>\n    </div>\n  </div>\n\n</div>\n"
  },
  {
    "path": "server/files/javascript/accordion.js",
    "content": "semantic.accordion = {};\n\n// ready event\nsemantic.accordion.ready = function() {\n\n  // selector cache\n  var\n    $accordion     = $('.ui.accordion'),\n    $menuAccordion = $('.ui.menu.accordion'),\n    $checkbox      = $('.ui.checkbox'),\n    // alias\n    handler\n  ;\n  $accordion\n    .accordion()\n  ;\n  $menuAccordion\n    .accordion({\n     exclusive: true\n    })\n  ;\n  $checkbox\n    .checkbox()\n  ;\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.accordion.ready)\n;"
  },
  {
    "path": "server/files/javascript/api.js",
    "content": "\n$.fn.api.settings.debug = true;\n\n/* Define API endpoints once globally */\n$.extend($.fn.api.settings.api, {\n  'get followers' : '/followers/{id}?results={count}',\n  'create user'   : '/create',\n  'follow user'   : '/follow/{id}',\n  'search'        : '/search/?query={value}'\n});\n\nsemantic.api = {};\n// ready event\nsemantic.api.ready = function() {\n\n  $.fn.api.settings.responseAsync = function(settings, callback) {\n    setTimeout(function() {\n      callback({\n        \"success\": \"true\"\n      });\n    }, 500);\n  };\n\n\n  $('.response.example .ui.search')\n    .search({\n      type          : 'category',\n      minCharacters : 3,\n      apiSettings   : {\n        responseAsync : false,\n        onFailure     : function() {\n          $(this).search('display message', '<b>Hold off a few minutes</b> <div class=\"ui divider\"></div> GitHub rate limit exceeded for anonymous search.');\n        },\n        onResponse: function(githubResponse) {\n          var\n            response = {\n              results : {}\n            }\n          ;\n          if(githubResponse.items.length === 0) {\n            // no results\n            return response;\n          }\n          $.each(githubResponse.items, function(index, item) {\n            var\n              language  = item.language || 'Unknown',\n              maxLength = 200,\n              description\n            ;\n            if(index >= 8) {\n              // only show 8 results\n              return false;\n            }\n            // Create new language category\n            if(response.results[language] === undefined) {\n              response.results[language] = {\n                name    : language,\n                results : []\n              };\n            }\n            description = (item.description < maxLength)\n                ? item.description\n                : item.description.substr(0, maxLength) + '...'\n            ;\n            description = $.fn.search.settings.templates.escape(description);\n            // Add result to category\n            response.results[language].results.push({\n              title       : item.name,\n              description : description,\n              url         : item.html_url\n            });\n          });\n          return response;\n        },\n        url: '//api.github.com/search/repositories?q={query}'\n      }\n    })\n  ;\n\n\n  $('.test.example .ui.button')\n    .api()\n  ;\n  $('.test.example .ui.input input')\n    .api({\n      stateContext: '.test.example .ui.input'\n    })\n  ;\n\n  $('form .ui.dropdown')\n    .dropdown()\n  ;\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.api.ready)\n;\n"
  },
  {
    "path": "server/files/javascript/button.js",
    "content": "semantic.button = {};\n\n// ready event\nsemantic.button.ready = function() {\n\n  // selector cache\n  var\n    $buttons         = $('.main .ui.buttons .button'),\n    $invertedButtons = $('.main .inverted.button'),\n    $toggle          = $('.main .ui.toggle.button'),\n    $follow          = $('.follow.example .button'),\n    $button          = $('.ui.button').not($buttons).not($toggle),\n    // alias\n    handler = {\n\n      activate: function() {\n        $(this)\n          .addClass('active')\n          .siblings()\n          .removeClass('active')\n        ;\n      }\n\n    }\n  ;\n\n  $buttons\n    .on('click', handler.activate)\n  ;\n\n  $follow\n    .state({\n      text: {\n        inactive : 'Follow',\n        active   : 'Following'\n      }\n    })\n  ;\n\n  $toggle\n    .state({\n      text: {\n        inactive : 'Vote',\n        active   : 'Voted'\n      }\n    })\n  ;\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.button.ready)\n;\n"
  },
  {
    "path": "server/files/javascript/card.js",
    "content": "semantic.card = {};\n\n// ready event\nsemantic.card.ready = function() {\n\n  // selector cache\n  var\n    $icon = $('.card .corner.label'),\n    handler\n  ;\n\n  handler = {\n\n\n  };\n\n  $('.ui.rating')\n    .rating()\n  ;\n\n  $icon\n    .state()\n  ;\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.card.ready)\n;"
  },
  {
    "path": "server/files/javascript/checkbox.js",
    "content": "semantic.checkbox = {};\n\n// ready event\nsemantic.checkbox.ready = function() {\n\n  // selector cache\n  var\n    $indeterminate  = $('.indeterminate.example').find('.ui.checkbox'),\n    $simpleCheckbox = $('.simple.example').find('.ui.checkbox'),\n    $checkbox       = $('.example').not('.static').find('.ui.checkbox').not($simpleCheckbox),\n    // alias\n    handler\n  ;\n\n  // event handlers\n  handler = {\n\n  };\n\n  $checkbox\n    .checkbox()\n  ;\n\n  $indeterminate\n    .checkbox('indeterminate')\n  ;\n\n\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.checkbox.ready)\n;"
  },
  {
    "path": "server/files/javascript/container.js",
    "content": "semantic.container = {};\n\n// ready event\nsemantic.container.ready = function() {\n\n  var\n    $helpIcon = $('.main.container .help.icon'),\n    $pageTabs = $('.masthead.tab.segment .menu .item')\n  ;\n\n  $pageTabs\n    .tab({\n      history     : true,\n      onFirstLoad : function() {\n        semantic.handler.makeCode();\n      }\n    })\n  ;\n  semantic.handler.makeCode();\n\n  $helpIcon\n    .popup()\n  ;\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.container.ready)\n;"
  },
  {
    "path": "server/files/javascript/customize.js",
    "content": "semantic.customize = {};\n\n// ready event\nsemantic.customize.ready = function() {\n\n  var\n    $accordion = $('.main.container .ui.accordion'),\n    $choice    = $('.download .item'),\n    $popup     = $('.main.container [data-content]'),\n    $checkbox  = $('.download .item .checkbox'),\n    handler = {}\n  ;\n\n  $choice\n    .on('click', function() {\n      $(this)\n        .find($checkbox)\n          .checkbox('toggle')\n      ;\n    })\n  ;\n\n  $checkbox\n    .checkbox()\n  ;\n\n  $accordion\n    .accordion({\n      exclusive: false,\n      onChange: function() {\n        $('.ui.sticky').sticky('refresh');\n      }\n    })\n  ;\n\n\n  $popup\n    .popup()\n  ;\n\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.customize.ready)\n;"
  },
  {
    "path": "server/files/javascript/dimmer.js",
    "content": "semantic.dimmer = {};\n\n// ready event\nsemantic.dimmer.ready = function() {\n\n  // selector cache\n  var\n    $pageDimmer = $('.demo.page.dimmer'),\n    $examples   = $('.example'),\n    $showButton = $examples.find('.show.button'),\n    $pageButton = $examples.find('.page.button'),\n    $hideButton = $examples.find('.hide.button'),\n    // alias\n    handler\n  ;\n\n  // event handlers\n  handler = {\n    show: function() {\n      $(this)\n        .closest('.example')\n        .find('> .html > .segment, > .segment:not(.existing):not(.html)')\n        .dimmer('show')\n      ;\n    },\n    hide: function() {\n      $(this)\n        .closest('.example')\n        .find('> .html > .segment, > .segment:not(.existing):not(.html)')\n        .dimmer('hide')\n      ;\n    },\n    page: function() {\n      $('body > .demo.page.dimmer')\n        .dimmer('show')\n      ;\n    }\n  };\n\n  $pageDimmer\n    .dimmer()\n  ;\n\n  $pageButton\n    .on('click', handler.page)\n  ;\n  $showButton\n    .on('click', handler.show)\n  ;\n  $hideButton\n    .on('click', handler.hide)\n  ;\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.dimmer.ready)\n;"
  },
  {
    "path": "server/files/javascript/docs.js",
    "content": "\n// namespace\nwindow.semantic = {\n  handler: {}\n};\n\n// Allow for console.log to not break IE\nif (typeof window.console == \"undefined\" || typeof window.console.log == \"undefined\") {\n  window.console = {\n    log  : function() {},\n    info : function(){},\n    warn : function(){}\n  };\n}\nif(typeof window.console.group == 'undefined' || typeof window.console.groupEnd == 'undefined' || typeof window.console.groupCollapsed == 'undefined') {\n  window.console.group = function(){};\n  window.console.groupEnd = function(){};\n  window.console.groupCollapsed = function(){};\n}\nif(typeof window.console.markTimeline == 'undefined') {\n  window.console.markTimeline = function(){};\n}\nwindow.console.clear = function(){};\n\n// ready event\nsemantic.ready = function() {\n\n  // selector cache\n  var\n    $document            = $(document),\n    $sortableTables      = $('.sortable.table'),\n    $sticky              = $('.ui.sticky'),\n\n    $themeDropdown       = $('.theme.dropdown'),\n\n    $ui                  = $('.ui').not('.hover, .down'),\n    $swap                = $('.theme.menu .item'),\n    $menu                = $('#toc'),\n    $hideMenu            = $('#toc .hide.item'),\n    $search              = $('#search'),\n    $sortTable           = $('.sortable.table'),\n    $demo                = $('.demo'),\n    $begSegment          = $('.beg.segment'),\n\n    $fullHeightContainer = $('.pusher > .full.height'),\n    $container           = $('.main.container'),\n    $allHeaders          = $('.main.container > h2, .main.container > .tab > h2, .main.container > .tab > .examples h2'),\n    $sectionHeaders      = $container.children('h2'),\n    $followMenu          = $container.find('.following.menu'),\n    $sectionExample      = $container.find('.example'),\n    $exampleHeaders      = $sectionExample.children('h4'),\n    $footer              = $('.page > .footer'),\n\n    $menuMusic           = $('.ui.main.menu .music.item'),\n    $menuPopup           = $('.ui.main.menu .popup.item'),\n    $pageDropdown        = $('.ui.main.menu .page.dropdown'),\n    $pageTabs            = $('.masthead.tab.segment .tabs.menu .item'),\n\n    $languageDropdown    = $('.language.dropdown'),\n    $chineseModal        = $('.chinese.modal'),\n    $languageModal       = $('.language.modal'),\n\n    $downloadPopup       = $('.download.button'),\n    $downloads           = $('.download.popup'),\n    $downloadFramework   = $('.framework.column .button'),\n    $downloadInput       = $('.download.popup input'),\n    $downloadStandalone  = $('.standalone.column .button'),\n\n    $helpPopup           = $('.header .help'),\n\n    $example             = $('.example'),\n    $popupExample        = $example.not('.no'),\n    $shownExample        = $example.filter('.shown'),\n    $prerenderedExample  = $example.has('.ui.checkbox, .ui.dropdown, .ui.search, .ui.progress, .ui.rating, .ui.dimmer, .ui.embed, .ui.placeholder'),\n\n    $visibilityExample   = $example.filter('.visiblity').find('.overlay, .demo.segment, .items img'),\n\n\n    $sidebarButton       = $('.fixed.launch.button'),\n    $code                = $('div.code').not('.existing'),\n    $existingCode        = $('.existing.code'),\n\n    expertiseLevel       = ($.cookie !== undefined)\n      ? $.cookie('expertiseLevel') || 0\n      : 0,\n    languageDropdownUsed = false,\n\n    metadata,\n\n    requestAnimationFrame = window.requestAnimationFrame\n      || window.mozRequestAnimationFrame\n      || window.webkitRequestAnimationFrame\n      || window.msRequestAnimationFrame\n      || function(callback) { setTimeout(callback, 0); },\n\n    // alias\n    handler\n  ;\n\n\n  // event handlers\n  handler = {\n\n    getMetadata: function() {\n      $.api({\n        debug : false,\n        on    : 'now',\n        url   : '/metadata.json',\n        cache : 'local',\n        onSuccess: function(response) {\n          metadata = response;\n        }\n      });\n    },\n\n    scrollToHash: function() {\n      if(handler.scrollToSelector) {\n        var\n          location = handler.scrollToSelector,\n          $element = $(location)\n        ;\n        if($element.length) {\n          var\n            position = $element.offset().top + 10\n          ;\n          $element\n            .addClass('active')\n          ;\n          $('html, body')\n            .stop()\n            .animate({\n              scrollTop: position\n            }, 500)\n          ;\n          delete handler.scrollToSelector;\n        }\n      }\n    },\n\n    showBeg: function() {\n      if(window.localStorage !== undefined) {\n        $begSegment\n          .find('.delete.icon')\n            .on('click', handler.hideBeg)\n        ;\n        if(!window.localStorage.getItem('begDismissed')) {\n          $begSegment.transition('slide down');\n        }\n      }\n    },\n\n    hideBeg: function() {\n      $begSegment.transition('slide down');\n      if(window.localStorage !== undefined) {\n        window.localStorage.setItem('begDismissed', true);\n      }\n    },\n\n    createIcon: function() {\n      $example\n        .each(function(){\n          var\n            $insertPoint = $(this).is('.another')\n              ? $(this).children().eq(0)\n              : $(this).children().eq(1)\n          ;\n          $('<i/>')\n            .addClass('fitted icon code')\n            .insertBefore( $insertPoint )\n          ;\n        })\n        .find('i.code')\n          .on('click', handler.createCode)\n      ;\n    },\n\n    shortcut: {\n      modal: function() {\n        var\n          $modal = $('#shortcuts'),\n          shortcutModalExists,\n          shortcut,\n          index\n        ;\n        if(!shortcutModalExists) {\n          var\n            html = '<div class=\"ui small modal\" id=\"shortcuts\">'\n          ;\n          html += '<div class=\"header\">Keyboard Shortcuts</div>';\n          html += '<div class=\"content\">';\n          html += '<table class=\"ui striped basic table\">';\n          for (index = 0; index < shortcuts.length; index++) {\n            shortcut = shortcuts[index];\n            html     += '<tr><td><b>' + shortcut.aka + '</b></td><td>' + shortcut.description + '</td></tr>';\n          }\n          html += '</table>';\n          html += '<div class=\"actions\"><div class=\"ui small teal button\">OK</div></div>';\n          html += '</div></div>';\n          $('body').append(html);\n          $modal = $('#shortcuts');\n        }\n        $('#shortcuts').modal('show');\n      }\n    },\n\n    createWaypoints: function() {\n      $sectionHeaders\n        .visibility({\n          observeChanges: false,\n          once: false,\n          offset: 50,\n          onTopPassed: handler.activate.section,\n          onTopPassedReverse: handler.activate.previous\n        })\n      ;\n\n      $sectionExample\n        .visibility({\n          observeChanges: false,\n          once: false,\n          offset: 50,\n          onTopPassed: handler.activate.example,\n          onBottomPassedReverse: handler.activate.example\n        })\n      ;\n      $footer\n        .visibility({\n          observeChanges: false,\n          once: false,\n          onBottomVisible: function(calculations) {\n            var\n              $title = $followMenu.find('> .item > .title').last()\n            ;\n            $followMenu\n              .accordion('open', $title)\n            ;\n          }\n        })\n      ;\n    },\n\n    activate: {\n      previous: function() {\n        var\n          $menuItems  = $followMenu.children('.item'),\n          $section    = $menuItems.filter('.active'),\n          index       = $menuItems.index($section)\n        ;\n        if($section.prev().length > 0) {\n          $section\n            .removeClass('active')\n            .prev('.item')\n            .addClass('active')\n          ;\n          $followMenu\n            .accordion('open', index - 1)\n          ;\n        }\n      },\n      accordion: function() {\n        var\n          $section       = $(this),\n          index          = $sectionHeaders.index($section),\n          $followSection = $followMenu.children('.item'),\n          $activeSection = $followSection.eq(index)\n        ;\n      },\n      section: function() {\n        var\n          $section       = $(this),\n          index          = $sectionHeaders.index($section),\n          $followSection = $followMenu.children('.item'),\n          $activeSection = $followSection.eq(index),\n          isActive       = $activeSection.hasClass('active')\n        ;\n        if(!isActive) {\n          $followSection.filter('.active')\n            .removeClass('active')\n          ;\n          $activeSection\n            .addClass('active')\n          ;\n          $followMenu\n            .accordion('open', index)\n          ;\n        }\n      },\n      example: function() {\n        var\n          $section       = $(this).children('h4').eq(0),\n          index          = $exampleHeaders.index($section),\n          $followSection = $followMenu.find('.menu > .item'),\n          $activeSection = $followSection.eq(index),\n          inClosedTab    = ($(this).closest('.tab:not(.active)').length > 0),\n          anotherExample = ($(this).filter('.another.example').length > 0),\n          isActive       = $activeSection.hasClass('active')\n        ;\n        if(index !== -1 && !inClosedTab && !anotherExample && !isActive) {\n          $followSection.filter('.active')\n            .removeClass('active')\n          ;\n          $activeSection\n            .addClass('active')\n          ;\n        }\n      }\n    },\n\n    translatePage: function(languageCode, text, $choice) {\n      languageDropdownUsed = true;\n      if(window.Transifex !== undefined) {\n        window.Transifex.live.translateTo(languageCode, true);\n      }\n    },\n\n    showLanguageModal: function(languageCode) {\n      var\n        $choice = $languageDropdown.find('[data-value=\"' + languageCode + '\"]').eq(0),\n        percent = $choice.data('percent') || 0,\n        text    = $choice.text()\n      ;\n      // dont trigger on translate event every page load\n      if(languageDropdownUsed) {\n        if(languageCode == 'zh' && window.location.host.replace('www.','') !== 'semantic-ui.cn') {\n          $chineseModal\n            .modal({\n              closable: false\n            })\n            .modal('show')\n          ;\n        }\n        else if(percent < 100) {\n          languageDropdownUsed = false;\n          $languageModal\n            .modal()\n            .find('.header .name')\n              .html(text)\n              .end()\n            .find('.complete')\n              .html(percent)\n              .end()\n          ;\n          $languageModal\n            .modal('show', function() {\n              $('.language.modal .progress .bar').css('width', percent + '%');\n            })\n          ;\n        }\n      }\n    },\n\n    tryCreateMenu: function(event) {\n      if($(window).width() > 640 && !$('body').hasClass('basic')) {\n        if($container.length > 0 && $container.find('.following.menu').length === 0) {\n          handler.createMenu();\n          handler.createWaypoints();\n          $(window).off('resize.menu');\n        }\n      }\n    },\n\n    createAnchors: function() {\n      $allHeaders\n        .each(function() {\n          var\n            $section = $(this),\n            text     = handler.getText($section),\n            safeName = handler.getSafeName(text),\n            id       = window.escape(safeName),\n            $anchor  = $('<a />').addClass('anchor').attr('id', id)\n          ;\n          $section\n            .append($anchor)\n          ;\n        })\n      ;\n      $example\n        .each(function() {\n          var\n            $title   = $(this).children('h4').eq(0),\n            text     = handler.getText($title),\n            safeName = handler.getSafeName(text),\n            id       = window.escape(safeName),\n            $anchor  = $('<a />').addClass('anchor').attr('id', id)\n          ;\n          if($title.length > 0) {\n            $title.after($anchor);\n          }\n        })\n      ;\n\n    },\n\n    getPageTitle: function() {\n      return $.trim($('h1').eq(0).contents().filter(function() { return this.nodeType == 3; }).text().toLowerCase());\n    },\n    getSafeName: function(text) {\n      return text.replace(/\\s+/g, '-').replace(/[^-,'A-Za-z0-9]+/g, '').toLowerCase();\n    },\n\n    getText: function($element) {\n      $element = ($element.find('a').not('.label, .anchor').length > 0)\n        ? $element.find('a')\n        : $element\n      ;\n      var\n        $text = $element.contents().filter(function(){\n          return this.nodeType == 3;\n        })\n      ;\n      return ($text.length > 0)\n        ? $text[0].nodeValue.trim()\n        : $element.find('a').text().trim()\n      ;\n    },\n\n    createMenu: function() {\n      // grab each h3\n      var\n        html      = '',\n        pageTitle = handler.getPageTitle(),\n        title     = pageTitle.charAt(0).toUpperCase() + pageTitle.slice(1),\n        $sticky,\n        $rail\n      ;\n      $sectionHeaders\n        .each(function(index) {\n          var\n            $currentHeader = $(this),\n            $nextElements  = $currentHeader.nextUntil('h2'),\n            $examples      = $nextElements.find('.example:not(.another)').addBack().filter('.example:not(.another)'),\n            activeClass    = (index === 0)\n              ? 'active '\n              : '',\n            text     = handler.getText($currentHeader),\n            safeName = handler.getSafeName(text),\n            id       = window.escape(safeName),\n            $anchor  = $('<a />').addClass('anchor').attr('id', id)\n          ;\n          html += '<div class=\"item\">';\n          if($examples.length === 0) {\n            html += '<a class=\"'+activeClass+'title\" href=\"#'+ id +'\"><b>' + $(this).text() + '</b></a>';\n          }\n          else {\n            html += '<a class=\"'+activeClass+'title\"><i class=\"dropdown icon\"></i> <b>' + $(this).text() + '</b></a>';\n          }\n          if($examples.length > 0) {\n            html += '<div class=\"'+activeClass+'content menu\">';\n            $examples\n              .each(function() {\n                var\n                  $title   = $(this).children('h4').eq(0),\n                  text     = handler.getText($title),\n                  safeName = handler.getSafeName(text),\n                  id       = window.escape(safeName),\n                  $anchor  = $('<a />').addClass('anchor').attr('id', id)\n                ;\n                if($title.length > 0) {\n                  html += '<a class=\"item\" href=\"#'+id+'\">' + text + '</a>';\n                }\n              })\n            ;\n            html += '</div>';\n          }\n          html += '</div>';\n        })\n      ;\n      $followMenu = $('<div />')\n        .addClass('ui vertical following fluid accordion text menu')\n        .html(html)\n      ;\n      /* Advert\n      var $advertisement = $('<div />')\n        .addClass('advertisement')\n        .html('<script type=\"text/javascript\" src=\"//cdn.carbonads.com/carbon.js?zoneid=1673&serve=C6AILKT&placement=semanticuicom\" id=\"_carbonads_js\"></script>')\n      ;\n      */\n      $sticky = $('<div />')\n        .addClass('ui sticky')\n        .html($followMenu)\n        //.prepend($advertisement)\n        .prepend('<h4 class=\"ui header\">' + title + '</h4>')\n      ;\n      $rail = $('<div />')\n        .addClass('ui dividing right rail')\n        .html($sticky)\n        .prependTo($container)\n      ;\n      $sticky.sticky({\n        silent: true,\n        context: $container,\n        container: $('html'),\n        offset: 30\n      });\n      $followMenu\n        .accordion({\n          exclusive: false,\n          animateChildren: false,\n          onChange: function() {\n            $('.ui.sticky').sticky('refresh');\n          }\n        })\n        .find('.menu a[href], .title[href]')\n          .on('click', handler.scrollTo)\n      ;\n    },\n\n    scrollTo: function(event) {\n      var\n        id       = $(this).attr('href').replace('#', ''),\n        $element = $('#' + id),\n        position = $element.offset().top + 10\n      ;\n      $element\n        .addClass('active')\n      ;\n      $('html, body')\n        .stop()\n        .animate({\n          scrollTop: position\n        }, 500)\n      ;\n      location.hash = '#' + id;\n      event.stopImmediatePropagation();\n      event.preventDefault();\n      return false;\n    },\n\n    less: {\n\n      parseFile: function(content) {\n        var\n          variables = {},\n          lines = content.match(/^\\s*(@[\\s|\\S]+?;)/gm),\n          name,\n          value\n        ;\n        if(lines) {\n          $.each(lines, function(index, line) {\n            // clear whitespace\n            line = $.trim(line);\n            // match variables only\n            if(line[0] == '@') {\n              name = line.match(/^@(.+?):/);\n              value = line.match(/:\\s*([\\s|\\S]+?;)/);\n              if( ($.isArray(name) && name.length >= 2) && ($.isArray(value) && value.length >= 2) ) {\n                name = name[1];\n                value = value[1];\n                variables[name] = value;\n              }\n            }\n          });\n        }\n        console.log(variables);\n        return variables;\n      },\n\n      changeTheme: function(theme) {\n        var\n          $themeDropdown = $(this),\n          element        = $themeDropdown.data('element'),\n          urlData     = {\n            theme   : typeof(theme === 'string')\n              ? theme.toLowerCase()\n              : theme,\n            type    : $themeDropdown.data('type'),\n            element : $themeDropdown.data('element')\n          },\n          variables = {\n            theme: urlData.theme\n          }\n        ;\n        variables[element] = urlData.theme;\n        window.less.modifyVars(variables);\n\n        $themeDropdown\n          .api({\n            on       : 'now',\n            debug    : true,\n            action   : 'getVariables',\n            dataType : 'text',\n            urlData  : urlData,\n            onSuccess: function(content) {\n              window.less.modifyVars( handler.less.parseFile(content) );\n              $themeDropdown\n                .api({\n                  on       : 'now',\n                  action   : 'getOverrides',\n                  dataType : 'text',\n                  urlData  : urlData,\n                  onSuccess: function(content) {\n                    if( $('style.override').length > 0 ) {\n                      $('style.override').remove();\n                    }\n                    console.log(content);\n                    $('<style>' + content + '</style>')\n                      .addClass('override')\n                      .appendTo('body')\n                    ;\n                    $sticky.sticky('refresh');\n                  }\n                })\n              ;\n            }\n          })\n        ;\n      }\n\n    },\n\n    create: {\n      examples: function(json) {\n        var\n          types      = json['Types'],\n          text       = json['Text'],\n          states     = json['States'],\n          variations = json['Variations'],\n\n          $element,\n          html\n        ;\n        $.each(types, function(name, type){\n          html += '<h2 class=\"ui dividing header\">' + name + '</h2';\n          if($.isPlainObject(type)) {\n            $.each(type, function(name, subType) {\n              $element = $.zc(subType);\n              $element = handler.create.text($element, text);\n              html += '<h3 class=\"ui header\">' + name + '</h3';\n              html += handler.create.variations($element, variations);\n            });\n          }\n          else {\n            $element = $.zc(type);\n            $element = handler.create.text($element);\n            html += handler.create.variations($element, variations);\n          }\n        });\n        // Each TYPE\n        //   show type name\n        //   html = koan (html)\n        //   each text\n        //     find label\n        //     if(obj)\n        //       replace random text\n        //     else\n        //       replace text\n        //   end\n        //   Each variation\n        //     (if obj)\n        //       each\n        //         add class\n        //     (else)\n        //       add class\n        //     label = property\n        //     class = class\n        //     show html\n        //   end\n        // end\n      },\n      element: function(koan, type, text, variation) {\n\n      },\n      variations: function($element, variations) {\n        $.each(variations, function(name, variation){\n\n        });\n      },\n      text: function($element, text) {\n        $.each(text, function(selector, text) {\n          $element.find(selector).text(text);\n        });\n        return $element;\n      }\n    },\n\n    openMusic: function() {\n      var\n        url       = 'http://stratus.soundcloud.com/player?links=https://soundcloud.com/into-the-light/sets/sui-2&popup=true',\n        newWindow = window.open(url,'name','height=196,width=733')\n      ;\n      if(window.focus) {\n        newWindow.focus();\n      }\n    },\n\n    getIndent: function(text) {\n      var\n        lines           = text.split(\"\\n\"),\n        firstLine       = (lines[0] === '')\n          ? lines[1]\n          : lines[0],\n        spacesPerIndent = 2,\n        leadingSpaces   = (firstLine !== undefined)\n          ? firstLine.length - firstLine.replace(/^\\s*/g, '').length\n          : false,\n        indent\n      ;\n      if(!leadingSpaces) {\n        return ($pageTabs.length > 0)\n          ? 6\n          : 4\n        ;\n      }\n      if(leadingSpaces !== 0) {\n        indent = leadingSpaces;\n      }\n      else {\n        // string has already been trimmed, get first indented line and subtract 2\n        $.each(lines, function(index, line) {\n          leadingSpaces = line.length - line.replace(/^\\s*/g, '').length;\n          if(leadingSpaces !== 0) {\n            indent = leadingSpaces - spacesPerIndent;\n            return false;\n          }\n        });\n      }\n      return indent || 4;\n    },\n\n    generateCode: function() {\n      var\n        $example    = $(this).closest('.example'),\n        $annotation = $example.find('.annotation'),\n        $code       = $annotation.find('.code'),\n        $intro      = $example.children().not('.ignored, h4:first-child').filter('.ui, i:not(.code)').eq(0).prevAll(),\n        $ignored    = $('i.code:last-child, .wireframe, .anchor, .code, .existing, .instructive, .language.label, .annotation, br, .ignore, .ignored'),\n        $demo       = $example.children().not($intro).not($ignored),\n        code        = ''\n      ;\n      if( $code.length === 0) {\n        $demo\n          .each(function() {\n            var\n              $this      = $(this).clone(false),\n              $wireframe = $this.find('.wireframe').add($this.filter('.wireframe'))\n            ;\n            $wireframe\n              .each(function() {\n                var\n                  src       = $(this).attr('src'),\n                  image     = (src.search('image') !== -1),\n                  paragraph = (src.search('paragraph') !== -1)\n                ;\n                if(paragraph) {\n                  $(this).replaceWith('<p></p>');\n                }\n                else if(image) {\n                  $(this).replaceWith('<img>');\n                }\n              })\n            ;\n\n            // remove wireframe images\n            $this.find('.wireframe').remove();\n\n            if($this.not('br').not('.wireframe')) {\n              // allow inline styles only with this one class\n              if($this.is('.my-container')) {\n                code += $this.get(0).outerHTML + \"\\n\";\n              }\n              else {\n                code += $this.removeAttr('style').get(0).outerHTML + \"\\n\";\n              }\n            }\n          })\n        ;\n      }\n      $example.data('code', code);\n      return code;\n    },\n\n    copyCode: function() {\n      $(this)\n        .popup('change content', 'Copied to clipboard')\n      ;\n    },\n\n    createCode: function() {\n      var\n        $example        = $(this).closest('.example'),\n        $intro          = $example.children().not('.ignored, h4:first-child').filter('.ui, i:not(.code)').eq(0).prevAll(),\n        $annotation     = $example.find('.annotation'),\n        $code           = $annotation.find('.code'),\n        $html           = $example.children('.html'),\n        $ignoredContent = $('.ui.popup, i.code:last-child, .anchor, .code, .existing.segment, .instructive, .language.label, .annotation, .ignore, style, script, .ignored'),\n        $demo           = $example.children().not($intro).not($ignoredContent),\n        code            = $example.data('code') || $.proxy(handler.generateCode, this)(),\n        $copyCode,\n        $label\n      ;\n\n      // process existing code first\n      if( $code.hasClass('existing') ) {\n        $code.removeClass('existing');\n        $.proxy(handler.initializeCode, $code)(true);\n      }\n\n      // create annotation wrapper\n      if($annotation.length === 0) {\n        $annotation = $('<div/>')\n          .addClass('annotation')\n          .hide()\n          .insertAfter($demo.last())\n        ;\n      }\n\n      if($html.length === 0) {\n        $html     = $('<div class=\"html\">').insertBefore($annotation);\n        $label    = $('<div class=\"ui top attached label\">').html('Example <i data-content=\"Copy code\" class=\"copy link icon\"></i>');\n        $copyCode = $label.find('i.copy');\n        $copyCode\n          .on('click', handler.copyCode)\n          .popup({\n            variation    : 'inverted',\n            distanceAway : 6\n          })\n        ;\n        $label\n          .prependTo($html)\n        ;\n        new Clipboard($copyCode.get(0), {\n          text: function() {\n            var\n              code = $copyCode.closest('.example').data('code') || ''\n            ;\n            return handler.formatCode(code);\n          }\n        });\n        if($demo.length === 0) {\n          $html.addClass('empty');\n        }\n        else {\n          $demo\n            .detach()\n            .prependTo($html)\n          ;\n        }\n      }\n\n      // create code inside annotation wrapper\n      if( $example.find('.instructive').length === 0) {\n        $code = $('<div/>')\n          .data('type', 'html')\n          .addClass('code')\n          .html(code)\n          .hide()\n          .appendTo($annotation)\n        ;\n        $.proxy(handler.initializeCode, $code)(true);\n      }\n      if( $annotation.hasClass('visible') ) {\n        $annotation.transition('hide');\n        $html.removeClass('ui top attached segment');\n      }\n      else {\n        $html.addClass('ui top attached segment');\n        $intro.css('display', '');\n        $annotation.transition('show');\n      }\n      setTimeout(function() {\n        handler.refreshSticky();\n      }, 400);\n    },\n\n    refreshSticky: function() {\n      $sectionHeaders.visibility('refresh');\n      $sectionExample.visibility('refresh');\n      $('.ui.sticky').sticky('refresh');\n      $footer.visibility('refresh');\n      $visibilityExample.visibility('refresh');\n    },\n\n    createAnnotation: function() {\n      if(!$(this).data('type')) {\n        $(this).data('type', 'html');\n      }\n      $(this)\n        .wrap('<div class=\"annotation\">')\n        .parent()\n        .hide()\n      ;\n    },\n\n    makeCode: function() {\n      if(window.hljs !== undefined) {\n        $code\n          .filter(':visible')\n          .each(handler.initializeCode)\n        ;\n        $existingCode\n          .each(handler.createAnnotation)\n        ;\n      }\n      else {\n        console.log('Syntax highlighting not found');\n      }\n    },\n\n    highlightClasses: function($code) {\n      var\n        $closestExample = $code.closest('.example'),\n        $example        = ($closestExample.length === 0)\n          ? $code.closest('.segment').prevAll('.example').not('.another').eq(0)\n          : ($closestExample.hasClass('another'))\n            ? $closestExample.prevAll('.example').not('.another').eq(0)\n            : $closestExample,\n        $header     = $example.find('h4').eq(0),\n        $attributes = $code.find('.attribute, .class'),\n        $tags       = $code.find('.title'),\n        pageName    = handler.getPageTitle(),\n        name        = handler.getText($header).toLowerCase(),\n        classes     = $example.data('class') || '',\n        tags        = $example.data('tag')  || false,\n        useContent  = $example.data('use-content') || false\n      ;\n      // Add title\n      if(name) {\n        if(name == pageName) {\n          name = 'ui ' + name;\n        }\n        classes = (classes === '')\n          ? name\n          : classes + ',' + name\n        ;\n      }\n      // Add common variations\n      classes = classes.replace('text alignment', \"left aligned, right aligned, justified, center aligned\");\n      classes = classes.replace('floated', \"right floated,left floated,floated\");\n      classes = classes.replace('floating', \"right floated,left floated,floated\");\n      classes = classes.replace('horizontally aligned', \"left aligned, center aligned, right aligned, justified\");\n      classes = classes.replace('vertically aligned', \"top aligned, middle aligned, bottom aligned\");\n      classes = classes.replace('vertically attached', \"attached\");\n      classes = classes.replace('horizontally attached', \"attached\");\n      classes = classes.replace('padded', \"very padded, padded\");\n      classes = classes.replace('relaxed', \"very relaxed, relaxed\");\n      classes = classes.replace('attached', \"left attached,right attached,top attached,bottom attached,attached\");\n      classes = classes.replace('wide', \"one wide,two wide,three wide,four wide,five wide,six wide,seven wide,eight wide,nine wide,ten wide,eleven wide,twelve wide,thirteen wide,fourteen wide,fifteen wide,sixteen wide\");\n      classes = classes.replace('count', \"one,two,three,four,five,six,seven,eight,nine,ten,eleven,twelve,thirteen,fourteen,fifteen,sixteen\");\n      classes = classes.replace('column count', \"one column,two column,three column,four column,five column,six column,seven column,eight column,nine column,ten column,eleven column,twelve column,thirteen column,fourteen column,fifteen column,sixteen column\");\n      classes = classes.replace('evenly divided', \"one,two,three,four,five,six,seven,eight,nine,ten,eleven,twelve,thirteen,fourteen,fifteen,sixteen\");\n      classes = classes.replace('size', \"mini,tiny,small,medium,large,big,huge,massive\");\n      classes = classes.replace('emphasis', \"primary,secondary,tertiary\");\n      classes = classes.replace('colored', \"red,orange,yellow,olive,green,teal,blue,violet,purple,pink,brown,grey,black\");\n      classes = (classes !== '')\n        ? classes.split(',')\n        : []\n      ;\n      // highlight tags if asked\n      if(tags) {\n        tags = (tags !== '')\n          ? tags.split(',')\n          : []\n        ;\n        $tags.each(function() {\n          var\n            $tag    = $(this),\n            tagHTML = $tag.html(),\n            newHTML = false\n          ;\n          $.each(tags, function(index, tag) {\n            if(tagHTML == tag) {\n              newHTML = tagHTML.replace(tag, '<b>' + tag + '</b>');\n            }\n          });\n          if(newHTML) {\n            $tag\n              .addClass('class')\n              .html(newHTML)\n            ;\n          }\n        });\n      }\n      // highlight classes\n      $attributes.each(function() {\n        var\n          $attribute    = $(this),\n          attributeHTML = $attribute.html(),\n          $tag,\n          $value,\n          tagHTML,\n          isUI,\n          isPageElement,\n          isOtherUI,\n          isOtherIcon,\n          classNames,\n          classString,\n          html,\n          newHTML\n        ;\n        // only parse classes\n        if(attributeHTML.search('class') === -1) {\n          return true;\n        }\n        $value        = $attribute.next('.value, .string').eq(0);\n        $tag          = $attribute.prev('.title').eq(0);\n        tagHTML       = $tag.html();\n        html          = $value.html();\n        classNames    = html.replace(/\\\"/g, '').split(' ');\n\n        isUI          = (html.search('ui') !== -1);\n        isPageElement = (html.search(pageName) > 0);\n        isOtherUI     = (!isPageElement && isUI);\n        isOtherIcon   = (!isPageElement && tagHTML === 'i' && html.search('icon') !== -1);\n        // check if any class match\n        $.each(classes, function(index, string) {\n          var\n            className      = $.trim(string),\n            isClassMatch   = (html.search(className) !== -1)\n          ;\n          if(className === '') {\n            return true;\n          }\n          // class match on current page element (or content if allowed)\n          if(isClassMatch && (isPageElement || useContent) ) {\n            newHTML = html.replace(className, '<b title=\"Required Class\">' + className + '</b>');\n            return false;\n          }\n        });\n\n        // generate links to other UI\n        if(isOtherUI || isOtherIcon) {\n          html           = newHTML || html;\n          classString    = /^\\\"(.*)\\\"/g.exec(html);\n          if(!classString || classString.length < 2) {\n            return true;\n          }\n          classString = classString[1];\n          $.each(classNames, function(index, string){\n            var\n              className = string.replace('\"', '')\n            ;\n            // yep..\n            if(className == 'item') {\n              return;\n            }\n            if(metadata && metadata[className] && metadata[className].url) {\n              // we found a match\n              newHTML = html.replace(classString, '<a href=\"' + metadata[className].url + '\">' + classString + '</a>');\n            }\n          });\n        }\n\n        if(newHTML) {\n          $value\n            .addClass('class')\n            .html(newHTML)\n          ;\n        }\n      });\n\n    },\n\n    formatCode: function(code) {\n      var\n        indent     = handler.getIndent(code) || 2,\n        whiteSpace = new RegExp('\\\\n\\\\s{' + indent + '}', 'g')\n      ;\n      return $.trim(code).replace(whiteSpace, '\\n');\n    },\n\n    initializeCode: function(codeSample) {\n      var\n        $code         = $(this).show(),\n        $codeTag      = $('<code />'),\n        codeSample    = codeSample || false,\n        code          = $code.html(),\n        existingCode  = $code.hasClass('existing'),\n        evaluatedCode = $code.hasClass('evaluated'),\n        contentType   = $code.data('type')     || 'html',\n        title         = $code.data('title')    || false,\n        less          = $code.data('less')     || false,\n        demo          = $code.data('demo')     || false,\n        eval          = $code.data('eval')     || false,\n        preview       = $code.data('preview')  || false,\n        label         = $code.data('label')    || false,\n        preserve      = $code.data('preserve') || false,\n        escape        = $code.data('escape') || false,\n        displayType   = {\n          html       : 'HTML',\n          javascript : 'Javascript',\n          css        : 'CSS',\n          text       : 'Command Line',\n          sh         : 'Command Line'\n        },\n        padding    = 20,\n        name = (codeSample === true)\n          ? 'instructive bottom attached'\n          : 'existing',\n        formattedCode = code,\n        styledCode,\n        $example,\n        $label,\n        codeHeight\n      ;\n      var entityMap = {\n        \"&amp;\"  : \"&\",\n        \"&lt;\"   : \"<\",\n        \"&gt;\"   : \">\",\n        '&quot;' : '\"',\n        '&#39;'  : \"'\",\n        '&#x2F;' : \"/\"\n      };\n      contentType = contentType.toLowerCase();\n\n      function escapeHTML(string) {\n        return $('<div>').html(string).text();\n      }\n\n\n      // escape html entities\n      if(contentType != 'html' || escape) {\n        code = escapeHTML(code);\n      }\n\n      // evaluate if specified\n      if(evaluatedCode) {\n        window.eval(code);\n      }\n\n      // should trim whitespace\n      if(preserve) {\n        formattedCode = code;\n      }\n      else {\n        formattedCode = handler.formatCode(code);\n      }\n\n      // color code\n      formattedCode = window.hljs.highlightAuto(formattedCode);\n\n      // create <code> tag\n      $codeTag\n        .addClass($code.attr('class'))\n        .addClass(formattedCode.language)\n        .html(formattedCode.value)\n      ;\n      // replace <div> with <code>\n      $code.replaceWith($codeTag);\n      $code = $codeTag;\n      $code\n        .wrap('<div class=\"ui ' + name + ' segment\"></div>')\n        .wrap('<pre></pre>')\n      ;\n\n      if(contentType == 'html') {\n        // add class emphasis to used classes\n        handler.highlightClasses($code);\n      }\n\n      // add label\n      if(title) {\n        $('<div>')\n          .addClass('ui attached top label')\n          .html('<span class=\"title\">' + title + '</span>' + '<em>' + (displayType[contentType] || contentType) + '</em>')\n          .prependTo( $code.closest('.segment') )\n        ;\n      }\n      if(label) {\n        $('<div>')\n          .addClass('ui pointing below ignored language label')\n          .html(displayType[contentType] || contentType)\n          .insertBefore ( $code.closest('.segment') )\n        ;\n      }\n      // add apply less button\n      if(less) {\n        $('<a>')\n          .addClass('ui black pointing below ignored label')\n          .html('Apply Theme')\n          .on('click', function() {\n            window.less.modifyVars( handler.less.parseFile( code ) );\n          })\n          .insertBefore ( $code.closest('.segment') )\n        ;\n      }\n      // add run code button\n      if(demo) {\n        $('<a>')\n          .addClass('ui black pointing below ignored label')\n          .html('Run Code')\n          .on('click', function() {\n            if(eval) {\n              window.eval(eval);\n            }\n            else {\n              window.eval(code);\n            }\n          })\n          .insertBefore ( $code.closest('.segment') )\n        ;\n      }\n      // add preview if specified\n      if(preview) {\n        $(code)\n          .insertAfter( $code.closest('.segment') )\n        ;\n      }\n\n      $code.removeClass('hidden');\n\n    },\n\n    resetDownloads: function() {\n      $downloads\n        .find('.grid')\n        .hide()\n        .filter('.choice.grid')\n          .show()\n      ;\n    },\n\n    selectAll: function () {\n      this.setSelectionRange(0, this.value.length);\n    },\n\n    chooseStandalone: function() {\n      $downloads\n        .find('.grid')\n        .hide()\n        .filter('.standalone.grid')\n          .show()\n      ;\n      $downloadPopup.popup('reposition');\n    },\n\n    chooseFramework: function() {\n      $downloads\n        .find('.grid')\n        .hide()\n        .filter('.framework.grid')\n          .show()\n      ;\n      $downloadPopup.popup('reposition');\n    },\n\n    swapStyle: function() {\n      var\n        theme = $(this).data('theme')\n      ;\n      $(this)\n        .addClass('active')\n        .siblings()\n          .removeClass('active')\n      ;\n      $('head link.ui')\n        .each(function() {\n          var\n            href         = $(this).attr('href'),\n            subDirectory = href.split('/')[3],\n            newLink      = href.replace(subDirectory, theme)\n          ;\n          $(this)\n            .attr('href', newLink)\n          ;\n        })\n      ;\n    }\n  };\n\n  semantic.handler = handler;\n\n  // code highlighting languages\n  window.hljs.configure({\n    classPrefix : '',\n    languages   : [\n      'xml',\n      'bash',\n      'css',\n      'less',\n      'javascript'\n    ]\n  });\n\n  // add anchors to docs headers\n  handler.createAnchors();\n\n  // register less files\n  window.less.registerStylesheets();\n\n\n  // load page tabs\n  if( $pageTabs.length > 0 ) {\n    $pageTabs\n      .tab({\n        context      : '.main.container',\n        childrenOnly : true,\n        history      : true,\n        onFirstLoad  : function() {\n          handler.makeCode();\n\n          $container = ($('.fixed.column').length > 0 )\n            ? $(this).find('.examples')\n            : $(this)\n          ;\n          $(this).find('> .rail .ui.sticky, .fixed .ui.sticky')\n            .sticky({\n              context: $container,\n              container: $('html'),\n              silent: true,\n              offset: 30\n            })\n          ;\n          $sectionHeaders = $container.children('h2');\n          $sectionExample = $container.find('.example');\n          $exampleHeaders = $sectionExample.children('h4');\n          // create code\n          handler.tryCreateMenu();\n          $(window).on('resize.menu', function() {\n            handler.tryCreateMenu();\n          });\n          handler.scrollToHash();\n        },\n        onLoad : function() {\n          $(this).find('.ui.sticky')\n            .sticky('refresh')\n          ;\n        }\n      })\n    ;\n  }\n  else {\n    handler.makeCode();\n    handler.tryCreateMenu();\n    $(window).on('resize.menu', function() {\n      handler.tryCreateMenu();\n    });\n  }\n\n  $shownExample\n    .each(handler.createCode)\n  ;\n  $prerenderedExample\n    .each(handler.generateCode)\n  ;\n\n  // main sidebar\n  $menu\n    .sidebar({\n      dimPage          : true,\n      transition       : 'overlay',\n      mobileTransition : 'uncover'\n    })\n  ;\n\n  // launch buttons\n  $menu\n    .sidebar('attach events', '.launch.button, .view-ui, .launch.item')\n  ;\n\n  handler.createIcon();\n\n  if(expertiseLevel < 2 && $(window).width() > 640) {\n    $popupExample\n      .each(function() {\n        $(this)\n          .popup({\n            preserve: false,\n            on       : 'hover',\n            variation: 'inverted',\n            delay: {\n              show: 500,\n              hide: 100\n            },\n            position : 'top left',\n            content  : 'View Source',\n            target   : $(this).find('i.code')\n          })\n          .find('i.code')\n            .on('click', function() {\n              $.cookie('expertiseLevel', 2, {\n                expires: 365\n              });\n            })\n        ;\n      })\n    ;\n  }\n\n  $menuMusic\n    .on('click', handler.openMusic)\n  ;\n\n  $downloadPopup\n    .popup({\n      transition : 'horizontal flip',\n      duration   : 350,\n      position   : 'bottom center',\n      on         : 'click',\n      onHidden   : handler.resetDownloads\n    })\n  ;\n  $downloadInput\n    .on('mouseup', handler.selectAll)\n  ;\n  $downloadFramework\n    .on('click', handler.chooseFramework)\n  ;\n  $downloadStandalone\n    .on('click', handler.chooseStandalone)\n  ;\n\n  $themeDropdown\n    .dropdown({\n      allowTab: false,\n      onChange: handler.less.changeTheme\n    })\n  ;\n\n  if($.fn.tablesort !== undefined && $sortTable.length > 0) {\n    $sortTable\n      .tablesort()\n    ;\n  }\n\n  $helpPopup\n    .popup({\n      position: 'top left',\n      variation: 'inverted'\n    })\n  ;\n\n  $swap\n    .on('click', handler.swapStyle)\n  ;\n\n\n  $menuPopup\n    .add($languageDropdown)\n    .popup({\n      position  : 'bottom center',\n      delay: {\n        show: 100,\n        hide: 50\n      }\n    })\n  ;\n\n  $pageDropdown\n    .dropdown({\n      on       : 'hover',\n      action   : 'nothing',\n      allowTab : false\n    })\n  ;\n\n  $languageDropdown\n    .dropdown({\n      allowTab       : false,\n      on             : 'click',\n      fullTextSearch : 'exact',\n      match          : 'text',\n      onShow         : function() {\n        $(this).popup('hide');\n      },\n      onChange        : handler.translatePage\n    })\n  ;\n\n  //$.fn.api.settings.base = '//api.semantic-ui.com';\n  $.extend($.fn.api.settings.api, {\n    categorySearch     : '//api.semantic-ui.com/search/category/{query}',\n    getOverrides       : '/src/themes/{$theme}/{$type}s/{$element}.overrides',\n    getVariables       : '/src/themes/{$theme}/{$type}s/{$element}.variables',\n    search             : '//api.semantic-ui.com/search/{query}'\n  });\n\n  if(window.Transifex !== undefined) {\n    window.Transifex.live.onTranslatePage(handler.showLanguageModal);\n  }\n\n  if(typeof detectAdBlock === 'undefined') {\n    handler.showBeg();\n  }\n  else {\n    detectAdBlock.onDetected(handler.showBeg);\n  }\n\n  var\n    selector = (window.location.hash || '').replace(/^#\\//, '#')\n  ;\n  if(selector) {\n    handler.scrollToSelector = selector;\n  }\n\n  handler.getMetadata();\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.ready)\n;\n"
  },
  {
    "path": "server/files/javascript/dropdown.js",
    "content": "semantic.dropdown = {};\n\n// ready event\nsemantic.dropdown.ready = function() {\n\n  // selector cache\n  var\n    $examples         = $('.example'),\n    $hoverDropdown    = $examples.filter('.hover').find('.ui.dropdown'),\n    $clearingDropdown = $examples.filter('.clearing').find('.ui.dropdown'),\n    $buttonDropdown   = $examples.filter('.button.example').find('.ui.dropdown'),\n    $dropdown         = $examples.filter('.dropdown').find('.menu > .item > .ui.dropdown, .menu > .item.ui.dropdown, > .ui.dropdown:not(.simple), .inline.dropdown, .icon.buttons .button, .form .dropdown.selection'),\n    $transition       = $examples.filter('.transition').find('.ui.dropdown'),\n    $simpleDropdown   = $examples.filter('.simple').find('.ui.dropdown'),\n    $transitionButton = $examples.filter('.transition').find('.ui.button').first(),\n    $categoryDropdown = $examples.filter('.category').find('.ui.dropdown'),\n    // alias\n    handler\n  ;\n\n  // event handlers\n  handler = {\n\n  };\n\n  $transitionButton\n    .on('click', function(event) {\n      $transition.dropdown('toggle');\n      event.stopImmediatePropagation();\n    })\n  ;\n\n  $clearingDropdown\n    .dropdown({\n      clearable: true\n    })\n  ;\n\n  $transition\n    .dropdown({\n      onChange: function(value) {\n        $transition.dropdown('setting', 'transition', value);\n      }\n    })\n  ;\n\n  $categoryDropdown\n    .dropdown({\n      allowCategorySelection: true\n    })\n  ;\n\n  $dropdown\n    .dropdown()\n  ;\n  $hoverDropdown\n    .dropdown({\n      on: 'hover',\n      action: 'hide'\n    })\n  ;\n  $simpleDropdown\n    .dropdown({\n      action: 'hide'\n    })\n  ;\n  $buttonDropdown\n    .dropdown({\n      action: 'hide'\n    })\n  ;\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.dropdown.ready)\n;\n"
  },
  {
    "path": "server/files/javascript/embed.js",
    "content": "semantic.embed = {};\n\n// ready event\nsemantic.embed.ready = function() {\n\n  // selector cache\n  var\n    // alias\n    $myfavesEmbed = $('.example').eq(0).find('iframe'),\n    handler\n  ;\n\n  // event handlers\n  handler = {\n\n  };\n\n  $('.embed.example .ui.embed')\n    .embed()\n  ;\n  $('.existing.code .embed').removeClass('embed').addClass('ui embed');\n\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.embed.ready)\n;"
  },
  {
    "path": "server/files/javascript/form.js",
    "content": "semantic.validateForm = {};\n\n// ready event\nsemantic.validateForm.ready = function() {\n\n  // selector cache\n  var\n    $codeDropdown = $('.existing.code .dropdown'),\n    $dropdown     = $('.main.container .ui.dropdown').not($codeDropdown),\n    // alias\n    handler\n  ;\n\n  // event handlers\n  handler = {\n\n  };\n\n  $dropdown\n    .dropdown()\n  ;\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.validateForm.ready)\n;\n"
  },
  {
    "path": "server/files/javascript/grid.js",
    "content": "semantic.grid = {};\n\n// ready event\nsemantic.grid.ready = function() {\n\n  $('.animation.checkbox')\n    .checkbox({\n      onChecked: function() {\n        $('body').addClass('animated');\n      },\n      onUnchecked: function() {\n        $('body').removeClass('animated');\n      }\n    })\n  ;\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.grid.ready)\n;"
  },
  {
    "path": "server/files/javascript/header.js",
    "content": "semantic.header = {};\n\n// ready event\nsemantic.header.ready = function() {\n\n  // selector cache\n  var\n    $increaseFont     = $('.font .increase'),\n    $decreaseFont     = $('.font .decrease'),\n\n    // alias\n    handler\n  ;\n\n  // event handlers\n  handler = {\n    font: {\n\n      increase: function() {\n        var\n          $container = $(this).parent().next('.sizer'),\n          fontSize   = parseInt( $container.css('font-size'), 10)\n        ;\n        $container\n          .css('font-size', fontSize + 1)\n        ;\n      },\n      decrease: function() {\n        var\n          $container = $(this).parent().next('.sizer'),\n          fontSize   = parseInt( $container.css('font-size'), 10)\n        ;\n        $container\n          .css('font-size', fontSize - 1)\n        ;\n      }\n    }\n  };\n\n  $increaseFont\n    .on('click', handler.font.increase)\n  ;\n  $decreaseFont\n    .on('click', handler.font.decrease)\n  ;\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.header.ready)\n;"
  },
  {
    "path": "server/files/javascript/home.js",
    "content": "semantic.home = {};\n\n// ready event\nsemantic.home.ready = function() {\n\n  var\n    $themeDropdown = $('.theme.dropdown'),\n    $header        = $('.masthead'),\n    $ui            = $header.find('h1 b'),\n    $phrase        = $header.find('h1 span'),\n    $download      = $header.find('.download'),\n    $library       = $header.find('.library'),\n    $cursor        = $header.find('.typed-cursor'),\n    $version       = $header.find('.version'),\n    $themeButton   = $('.theming .source.button'),\n    $themeGrid     = $('.theming .source.grid'),\n\n    handler\n  ;\n\n  handler = {\n    getRandomInt: function(min, max) {\n      return Math.floor(Math.random() * (max - min + 1)) + min;\n    },\n    introduction: function() {\n      var\n        background = 'bg' + handler.getRandomInt(1, 14)\n      ;\n      // zoom out\n      $header\n        .addClass(background)\n        .removeClass('zoomed')\n      ;\n    },\n    changeLogo: function() {\n      var\n        $logo = $('.following .logo'),\n        $nextSide = $logo.find('.'+ $(this).data('site') +'.side'),\n        directions = [\n          'up',\n          'left',\n          'down',\n          'right'\n        ],\n        direction = directions[Math.floor(Math.random() * directions.length)]\n      ;\n      if($nextSide.length > 0) {\n        clearTimeout(handler.timer);\n        handler.timer = setTimeout(function() {\n          $logo\n            .shape('set next side', $nextSide)\n            .shape('flip ' +  direction)\n          ;\n        }, 50);\n      }\n    },\n    returnLogo: function() {\n      var\n        $logo = $('.following .logo'),\n        $nextSide = $logo.find('.ui.side')\n      ;\n      clearTimeout(handler.timer);\n      handler.timer = setTimeout(function() {\n        $logo\n          .shape('set next side', $nextSide)\n          .shape('flip over')\n        ;\n      }, 500);\n\n    },\n\n    less: {\n\n      parseFile: function(content) {\n        var\n          variables = {},\n          lines = content.match(/^\\s*(@[\\s|\\S]+?;)/gm),\n          name,\n          value\n        ;\n        if(lines) {\n          $.each(lines, function(index, line) {\n            // clear whitespace\n            line = $.trim(line);\n            // match variables only\n            if(line[0] == '@') {\n              name = line.match(/^@(.+?):/);\n              value = line.match(/:\\s*([\\s|\\S]+?;)/);\n              if( ($.isArray(name) && name.length >= 2) && ($.isArray(value) && value.length >= 2) ) {\n                name = name[1];\n                value = value[1];\n                variables[name] = value;\n              }\n            }\n          });\n        }\n        console.log(variables);\n        return variables;\n      },\n\n      changeTheme: function(theme) {\n        var\n          $themeDropdown     = $(this),\n          $variableCode      = $('.variable.code'),\n          $overrideCode      = $('.override.code'),\n          $existingVariables = $variableCode.closest('.existing'),\n          $existingOverrides  = $overrideCode.closest('.existing'),\n\n          variableURL = '/src/themes/{$theme}/{$type}s/{$element}.variables',\n          overrideURL = '/src/themes/{$theme}/{$type}s/{$element}.overrides',\n          urlData     = {\n            theme   : typeof(theme === 'string')\n              ? theme.toLowerCase()\n              : theme,\n            type    : $themeDropdown.data('type'),\n            element : $themeDropdown.data('element')\n          }\n        ;\n        if($existingVariables.length > 0) {\n          $variableCode = $('<div class=\"ui variable code\" data-type=\"less\" data-preserve=\"true\" />');\n          $variableCode\n            .insertAfter($existingVariables)\n          ;\n          $existingVariables.remove();\n          console.log($variableCode);\n        }\n\n        if($existingOverrides.length > 0) {\n          $overrideCode = $('<div class=\"ui override code\" data-type=\"less\" data-preserve=\"true\" />');\n          $overrideCode\n            .insertAfter($existingOverrides)\n          ;\n          $existingOverrides.remove();\n          console.log($overrideCode);\n        }\n\n        $themeDropdown\n          .api({\n            on       : 'now',\n            url      : variableURL,\n            dataType : 'text',\n            urlData  : urlData,\n            onSuccess: function(content) {\n              window.less.modifyVars( handler.less.parseFile(content) );\n              $themeDropdown\n                .api({\n                  on       : 'now',\n                  url      : overrideURL,\n                  dataType : 'text',\n                  urlData  : urlData,\n                  onSuccess: function(content) {\n                    if( $('style.override').length > 0 ) {\n                      $('style.override').remove();\n                    }\n                    $('<style>' + content + '</style>')\n                      .addClass('override')\n                      .appendTo('body')\n                    ;\n                    $('.sticky').sticky('refresh');\n\n                    $overrideCode.html(content);\n                    $.proxy(semantic.handler.initializeCode, $overrideCode[0])();\n                  }\n                })\n              ;\n              $variableCode.html(content);\n              $.proxy(semantic.handler.initializeCode, $variableCode[0])();\n            }\n          })\n        ;\n      }\n    },\n    showThemeButton: function(value, text) {\n      if(!$themeButton.transition('is visible')) {\n        $themeButton.transition('scale in');\n      }\n      $.proxy(handler.less.changeTheme, this)(value);\n    },\n    createDemos: function() {\n      $('.demo.menu .item, .demo.buttons .button')\n        .on('click', function() {\n          if(!$(this).hasClass('dropdown')) {\n            $(this)\n              .addClass('active')\n              .closest('.ui.menu, .ui.buttons')\n              .find('.item, .button')\n                .not($(this))\n                .removeClass('active')\n            ;\n          }\n        })\n      ;\n      $('.example .message .close')\n        .on('click', function() {\n          $(this).closest('.message').transition('scale out');\n        })\n      ;\n    },\n    toggleTheme: function() {\n      $(this).toggleClass('active');\n      $themeGrid.toggleClass('visible');\n    }\n  };\n\n  // intro\n  handler.introduction();\n\n  if($(window).width() > 600) {\n    $('body')\n      .visibility({\n        offset         : -10,\n        observeChanges : false,\n        once           : false,\n        continuous     : false,\n        onTopPassed: function() {\n          requestAnimationFrame(function() {\n            $('.following.bar')\n              .addClass('light fixed')\n              .find('.menu')\n                .removeClass('inverted')\n            ;\n            $('.following .additional.item')\n              .transition('scale in', 750)\n            ;\n          });\n        },\n        onTopPassedReverse: function() {\n          requestAnimationFrame(function() {\n            $('.following.bar')\n              .removeClass('light fixed')\n              .find('.menu')\n                .addClass('inverted')\n                .find('.additional.item')\n                  .transition('hide')\n            ;\n          });\n        }\n      })\n    ;\n  }\n  $('.additional.item')\n    .popup({\n      delay: {\n        show: 200,\n        hide: 50\n      },\n      position: 'bottom center'\n    })\n  ;\n\n  $('.email.stripe form')\n    .form({\n      fields: {\n        email: {\n          identifier : 'email',\n          rules: [\n            {\n              type   : 'empty',\n              prompt : 'Please enter an e-mail'\n            },\n            {\n              type   : 'email',\n              prompt : 'Please enter a valid e-mail address'\n            }\n          ]\n        }\n      }\n    })\n  ;\n\n\n\n  $themeDropdown\n    .dropdown('setting', 'transition', 'drop')\n    .dropdown('setting', 'duration', 350)\n    .dropdown('setting', 'action', 'activate')\n    .dropdown('setting', 'onChange', handler.showThemeButton)\n  ;\n\n  $themeButton\n    .on('click', handler.toggleTheme)\n  ;\n\n\n  // demos\n  $('.demo .checkbox')\n    .checkbox()\n  ;\n  $('.demo .accordion')\n    .accordion()\n  ;\n  $('.demo .dimmer')\n    .dimmer({\n      on: 'hover'\n    })\n  ;\n  $('.demo .ui.dropdown')\n    .dropdown()\n  ;\n\n  if(window.Transifex !== undefined) {\n    window.Transifex.live.onTranslatePage(function(countryCode){\n      var fullName = $('.language.dropdown .item[data-value=' + countryCode + ']').eq(0).text();\n      $('.language.dropdown > .text').html(fullName);\n    });\n  }\n\n  $('.ui.sidebar')\n    .sidebar('setting', {\n      transition: 'overlay'\n    })\n  ;\n\n  handler.createDemos();\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.home.ready)\n;\n"
  },
  {
    "path": "server/files/javascript/icon.js",
    "content": "semantic.icon = {};\n\n// ready event\nsemantic.icon.ready = function() {\n\n  // selector cache\n  var\n    $iconSearch = $('iconSearch.ui.search'),\n    $grid       = $('.ui.five.column.doubling.grid'),\n    // alias\n    handler = {\n      getIconList: function() {\n        var\n          $examples   = $('.icon .example')\n          icons       = []\n        ;\n        $examples.each(function() {\n          var\n            $header  = $(this).children('.ui.header'),\n            $icons   = $(this).find('.grid > .column'),\n            category = $header.text()\n          ;\n          $icons.each(function() {\n            var\n              $icon = $(this).find('.icon'),\n              icon  = $icon.attr('class').replace(' icon', '')\n              title = '<i class=\"' + icon +' icon\"></i> ' + icon\n            ;\n            if(!_.findWhere(icons, { icon: icon})) {\n              icons.push({\n                category : category,\n                title    : title,\n                icon     : icon\n              });\n            }\n          });\n        });\n        return icons;\n      }\n    }\n  ;\n\n  if($iconSearch.length > 0) {\n\n    $iconSearch\n      .search({\n        type          : 'category',\n        minCharacters : 1,\n        maxResults    : 10,\n        source        : handler.getIconList(),\n        onResults     : function(result) {\n          setTimeout(function() {\n            var\n              $results = $('iconSearch.ui.search .result')\n            ;\n            $results.each(function() {\n              var\n                $result = $(this)\n              ;\n              new Clipboard(this, {\n                text: function() {\n                  var\n                    iconHTML = $result.find('i').get(0).outerHTML\n                  ;\n                  return iconHTML;\n                }\n            });\n            });\n          }, 0);\n        },\n        onSelect: function() {\n          var\n            $search = $('iconSearch .input > input')\n          ;\n          $search.blur();\n          setTimeout(function() {\n            $('iconSearch input').transition('glow');\n            $search.val('Copied to clipboard!');\n          }, 50)\n          setTimeout(function() {\n            $search.val('');\n          }, 1500)\n          return false;\n        }\n      })\n    ;\n\n  }\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.icon.ready)\n;\n"
  },
  {
    "path": "server/files/javascript/input.js",
    "content": "semantic.input = {};\n\n// ready event\nsemantic.input.ready = function() {\n\n  $('.main.container .ui.dropdown').dropdown();\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.input.ready)\n;"
  },
  {
    "path": "server/files/javascript/item.js",
    "content": "semantic.item = {};\n\n// ready event\nsemantic.item.ready = function() {\n\n  // selector cache\n  $('.item .favorite.icon, .item .like.icon')\n    .state()\n  ;\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.item.ready)\n;"
  },
  {
    "path": "server/files/javascript/library/clipboard.js",
    "content": "/*!\n * clipboard.js v1.5.2\n * https://zenorocha.github.io/clipboard.js\n *\n * Licensed MIT © Zeno Rocha\n */\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.Clipboard = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\nvar matches = require('matches-selector')\n\nmodule.exports = function (element, selector, checkYoSelf) {\n  var parent = checkYoSelf ? element : element.parentNode\n\n  while (parent && parent !== document) {\n    if (matches(parent, selector)) return parent;\n    parent = parent.parentNode\n  }\n}\n\n},{\"matches-selector\":2}],2:[function(require,module,exports){\n\n/**\n * Element prototype.\n */\n\nvar proto = Element.prototype;\n\n/**\n * Vendor function.\n */\n\nvar vendor = proto.matchesSelector\n  || proto.webkitMatchesSelector\n  || proto.mozMatchesSelector\n  || proto.msMatchesSelector\n  || proto.oMatchesSelector;\n\n/**\n * Expose `match()`.\n */\n\nmodule.exports = match;\n\n/**\n * Match `el` to `selector`.\n *\n * @param {Element} el\n * @param {String} selector\n * @return {Boolean}\n * @api public\n */\n\nfunction match(el, selector) {\n  if (vendor) return vendor.call(el, selector);\n  var nodes = el.parentNode.querySelectorAll(selector);\n  for (var i = 0; i < nodes.length; ++i) {\n    if (nodes[i] == el) return true;\n  }\n  return false;\n}\n},{}],3:[function(require,module,exports){\nvar closest = require('closest');\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction delegate(element, selector, type, callback) {\n    var listenerFn = listener.apply(this, arguments);\n\n    element.addEventListener(type, listenerFn);\n\n    return {\n        destroy: function() {\n            element.removeEventListener(type, listenerFn);\n        }\n    }\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n    return function(e) {\n        var delegateTarget = closest(e.target, selector, true);\n\n        if (delegateTarget) {\n            Object.defineProperty(e, 'target', {\n                value: delegateTarget\n            });\n\n            callback.call(element, e);\n        }\n    }\n}\n\nmodule.exports = delegate;\n\n},{\"closest\":1}],4:[function(require,module,exports){\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n    return value !== undefined\n        && value instanceof HTMLElement\n        && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n    var type = Object.prototype.toString.call(value);\n\n    return value !== undefined\n        && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n        && ('length' in value)\n        && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n    return typeof value === 'string'\n        || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.function = function(value) {\n    var type = Object.prototype.toString.call(value);\n\n    return type === '[object Function]';\n};\n\n},{}],5:[function(require,module,exports){\nvar is = require('./is');\nvar delegate = require('delegate');\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n    if (!target && !type && !callback) {\n        throw new Error('Missing required arguments');\n    }\n\n    if (!is.string(type)) {\n        throw new TypeError('Second argument must be a String');\n    }\n\n    if (!is.function(callback)) {\n        throw new TypeError('Third argument must be a Function');\n    }\n\n    if (is.node(target)) {\n        return listenNode(target, type, callback);\n    }\n    else if (is.nodeList(target)) {\n        return listenNodeList(target, type, callback);\n    }\n    else if (is.string(target)) {\n        return listenSelector(target, type, callback);\n    }\n    else {\n        throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n    }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n    node.addEventListener(type, callback);\n\n    return {\n        destroy: function() {\n            node.removeEventListener(type, callback);\n        }\n    }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n    Array.prototype.forEach.call(nodeList, function(node) {\n        node.addEventListener(type, callback);\n    });\n\n    return {\n        destroy: function() {\n            Array.prototype.forEach.call(nodeList, function(node) {\n                node.removeEventListener(type, callback);\n            });\n        }\n    }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n    return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n},{\"./is\":4,\"delegate\":3}],6:[function(require,module,exports){\nfunction select(element) {\n    var selectedText;\n\n    if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n        element.select();\n\n        selectedText = element.value;\n    }\n    else {\n        var selection = window.getSelection();\n        var range = document.createRange();\n\n        range.selectNodeContents(element);\n        selection.removeAllRanges();\n        selection.addRange(range);\n\n        selectedText = selection.toString();\n    }\n\n    return selectedText;\n}\n\nmodule.exports = select;\n\n},{}],7:[function(require,module,exports){\nfunction E () {\n  // Keep this empty so it's easier to inherit from\n  // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n  on: function (name, callback, ctx) {\n    var e = this.e || (this.e = {});\n\n    (e[name] || (e[name] = [])).push({\n      fn: callback,\n      ctx: ctx\n    });\n\n    return this;\n  },\n\n  once: function (name, callback, ctx) {\n    var self = this;\n    function listener () {\n      self.off(name, listener);\n      callback.apply(ctx, arguments);\n    };\n\n    listener._ = callback\n    return this.on(name, listener, ctx);\n  },\n\n  emit: function (name) {\n    var data = [].slice.call(arguments, 1);\n    var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n    var i = 0;\n    var len = evtArr.length;\n\n    for (i; i < len; i++) {\n      evtArr[i].fn.apply(evtArr[i].ctx, data);\n    }\n\n    return this;\n  },\n\n  off: function (name, callback) {\n    var e = this.e || (this.e = {});\n    var evts = e[name];\n    var liveEvents = [];\n\n    if (evts && callback) {\n      for (var i = 0, len = evts.length; i < len; i++) {\n        if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n          liveEvents.push(evts[i]);\n      }\n    }\n\n    // Remove event from queue to prevent memory leak\n    // Suggested by https://github.com/lazd\n    // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n    (liveEvents.length)\n      ? e[name] = liveEvents\n      : delete e[name];\n\n    return this;\n  }\n};\n\nmodule.exports = E;\n\n},{}],8:[function(require,module,exports){\n'use strict';\n\nexports.__esModule = true;\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nvar _select = require('select');\n\nvar _select2 = _interopRequireDefault(_select);\n\n/**\n * Inner class which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n */\n\nvar ClipboardAction = (function () {\n    /**\n     * @param {Object} options\n     */\n\n    function ClipboardAction(options) {\n        _classCallCheck(this, ClipboardAction);\n\n        this.resolveOptions(options);\n        this.initSelection();\n    }\n\n    /**\n     * Defines base properties passed from constructor.\n     * @param {Object} options\n     */\n\n    ClipboardAction.prototype.resolveOptions = function resolveOptions() {\n        var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n        this.action = options.action;\n        this.emitter = options.emitter;\n        this.target = options.target;\n        this.text = options.text;\n        this.trigger = options.trigger;\n\n        this.selectedText = '';\n    };\n\n    /**\n     * Decides which selection strategy is going to be applied based\n     * on the existence of `text` and `target` properties.\n     */\n\n    ClipboardAction.prototype.initSelection = function initSelection() {\n        if (this.text && this.target) {\n            throw new Error('Multiple attributes declared, use either \"target\" or \"text\"');\n        } else if (this.text) {\n            this.selectFake();\n        } else if (this.target) {\n            this.selectTarget();\n        } else {\n            throw new Error('Missing required attributes, use either \"target\" or \"text\"');\n        }\n    };\n\n    /**\n     * Creates a fake textarea element, sets its value from `text` property,\n     * and makes a selection on it.\n     */\n\n    ClipboardAction.prototype.selectFake = function selectFake() {\n        var _this = this;\n\n        this.removeFake();\n\n        this.fakeHandler = document.body.addEventListener('click', function () {\n            return _this.removeFake();\n        });\n\n        this.fakeElem = document.createElement('textarea');\n        this.fakeElem.style.position = 'absolute';\n        this.fakeElem.style.left = '-9999px';\n        this.fakeElem.style.top = (window.pageYOffset || document.documentElement.scrollTop) + 'px';\n        this.fakeElem.setAttribute('readonly', '');\n        this.fakeElem.value = this.text;\n\n        document.body.appendChild(this.fakeElem);\n\n        this.selectedText = _select2['default'](this.fakeElem);\n        this.copyText();\n    };\n\n    /**\n     * Only removes the fake element after another click event, that way\n     * a user can hit `Ctrl+C` to copy because selection still exists.\n     */\n\n    ClipboardAction.prototype.removeFake = function removeFake() {\n        if (this.fakeHandler) {\n            document.body.removeEventListener('click');\n            this.fakeHandler = null;\n        }\n\n        if (this.fakeElem) {\n            document.body.removeChild(this.fakeElem);\n            this.fakeElem = null;\n        }\n    };\n\n    /**\n     * Selects the content from element passed on `target` property.\n     */\n\n    ClipboardAction.prototype.selectTarget = function selectTarget() {\n        this.selectedText = _select2['default'](this.target);\n        this.copyText();\n    };\n\n    /**\n     * Executes the copy operation based on the current selection.\n     */\n\n    ClipboardAction.prototype.copyText = function copyText() {\n        var succeeded = undefined;\n\n        try {\n            succeeded = document.execCommand(this.action);\n        } catch (err) {\n            succeeded = false;\n        }\n\n        this.handleResult(succeeded);\n    };\n\n    /**\n     * Fires an event based on the copy operation result.\n     * @param {Boolean} succeeded\n     */\n\n    ClipboardAction.prototype.handleResult = function handleResult(succeeded) {\n        if (succeeded) {\n            this.emitter.emit('success', {\n                action: this.action,\n                text: this.selectedText,\n                trigger: this.trigger,\n                clearSelection: this.clearSelection.bind(this)\n            });\n        } else {\n            this.emitter.emit('error', {\n                action: this.action,\n                trigger: this.trigger,\n                clearSelection: this.clearSelection.bind(this)\n            });\n        }\n    };\n\n    /**\n     * Removes current selection and focus from `target` element.\n     */\n\n    ClipboardAction.prototype.clearSelection = function clearSelection() {\n        if (this.target) {\n            this.target.blur();\n        }\n\n        window.getSelection().removeAllRanges();\n    };\n\n    /**\n     * Sets the `action` to be performed which can be either 'copy' or 'cut'.\n     * @param {String} action\n     */\n\n    /**\n     * Destroy lifecycle.\n     */\n\n    ClipboardAction.prototype.destroy = function destroy() {\n        this.removeFake();\n    };\n\n    _createClass(ClipboardAction, [{\n        key: 'action',\n        set: function set() {\n            var action = arguments.length <= 0 || arguments[0] === undefined ? 'copy' : arguments[0];\n\n            this._action = action;\n\n            if (this._action !== 'copy' && this._action !== 'cut') {\n                throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n            }\n        },\n\n        /**\n         * Gets the `action` property.\n         * @return {String}\n         */\n        get: function get() {\n            return this._action;\n        }\n\n        /**\n         * Sets the `target` property using an element\n         * that will be have its content copied.\n         * @param {Element} target\n         */\n    }, {\n        key: 'target',\n        set: function set(target) {\n            if (target !== undefined) {\n                if (target && typeof target === 'object' && target.nodeType === 1) {\n                    this._target = target;\n                } else {\n                    throw new Error('Invalid \"target\" value, use a valid Element');\n                }\n            }\n        },\n\n        /**\n         * Gets the `target` property.\n         * @return {String|HTMLElement}\n         */\n        get: function get() {\n            return this._target;\n        }\n    }]);\n\n    return ClipboardAction;\n})();\n\nexports['default'] = ClipboardAction;\nmodule.exports = exports['default'];\n\n},{\"select\":6}],9:[function(require,module,exports){\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _clipboardAction = require('./clipboard-action');\n\nvar _clipboardAction2 = _interopRequireDefault(_clipboardAction);\n\nvar _tinyEmitter = require('tiny-emitter');\n\nvar _tinyEmitter2 = _interopRequireDefault(_tinyEmitter);\n\nvar _goodListener = require('good-listener');\n\nvar _goodListener2 = _interopRequireDefault(_goodListener);\n\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\nvar Clipboard = (function (_Emitter) {\n    _inherits(Clipboard, _Emitter);\n\n    /**\n     * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n     * @param {Object} options\n     */\n\n    function Clipboard(trigger, options) {\n        _classCallCheck(this, Clipboard);\n\n        _Emitter.call(this);\n\n        this.resolveOptions(options);\n        this.listenClick(trigger);\n    }\n\n    /**\n     * Helper function to retrieve attribute value.\n     * @param {String} suffix\n     * @param {Element} element\n     */\n\n    /**\n     * Defines if attributes would be resolved using internal setter functions\n     * or custom functions that were passed in the constructor.\n     * @param {Object} options\n     */\n\n    Clipboard.prototype.resolveOptions = function resolveOptions() {\n        var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n        this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n        this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n        this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n    };\n\n    /**\n     * Adds a click event listener to the passed trigger.\n     * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n     */\n\n    Clipboard.prototype.listenClick = function listenClick(trigger) {\n        var _this = this;\n\n        this.listener = _goodListener2['default'](trigger, 'click', function (e) {\n            return _this.onClick(e);\n        });\n    };\n\n    /**\n     * Defines a new `ClipboardAction` on each click event.\n     * @param {Event} e\n     */\n\n    Clipboard.prototype.onClick = function onClick(e) {\n        if (this.clipboardAction) {\n            this.clipboardAction = null;\n        }\n\n        this.clipboardAction = new _clipboardAction2['default']({\n            action: this.action(e.target),\n            target: this.target(e.target),\n            text: this.text(e.target),\n            trigger: e.target,\n            emitter: this\n        });\n    };\n\n    /**\n     * Default `action` lookup function.\n     * @param {Element} trigger\n     */\n\n    Clipboard.prototype.defaultAction = function defaultAction(trigger) {\n        return getAttributeValue('action', trigger);\n    };\n\n    /**\n     * Default `target` lookup function.\n     * @param {Element} trigger\n     */\n\n    Clipboard.prototype.defaultTarget = function defaultTarget(trigger) {\n        var selector = getAttributeValue('target', trigger);\n\n        if (selector) {\n            return document.querySelector(selector);\n        }\n    };\n\n    /**\n     * Default `text` lookup function.\n     * @param {Element} trigger\n     */\n\n    Clipboard.prototype.defaultText = function defaultText(trigger) {\n        return getAttributeValue('text', trigger);\n    };\n\n    /**\n     * Destroy lifecycle.\n     */\n\n    Clipboard.prototype.destroy = function destroy() {\n        this.listener.destroy();\n\n        if (this.clipboardAction) {\n            this.clipboardAction.destroy();\n            this.clipboardAction = null;\n        }\n    };\n\n    return Clipboard;\n})(_tinyEmitter2['default']);\n\nfunction getAttributeValue(suffix, element) {\n    var attribute = 'data-clipboard-' + suffix;\n\n    if (!element.hasAttribute(attribute)) {\n        return;\n    }\n\n    return element.getAttribute(attribute);\n}\n\nexports['default'] = Clipboard;\nmodule.exports = exports['default'];\n\n},{\"./clipboard-action\":8,\"good-listener\":5,\"tiny-emitter\":7}]},{},[9])(9)\n});"
  },
  {
    "path": "server/files/javascript/library/cookie.js",
    "content": "/*!\n * jQuery Cookie Plugin v1.4.1\n * https://github.com/carhartl/jquery-cookie\n *\n * Copyright 2006, 2014 Klaus Hartl\n * Released under the MIT license\n */\n(function (factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD (Register as an anonymous module)\n    define(['jquery'], factory);\n  } else if (typeof exports === 'object') {\n    // Node/CommonJS\n    module.exports = factory(require('jquery'));\n  } else {\n    // Browser globals\n    factory(jQuery);\n  }\n}(function ($) {\n\n  var pluses = /\\+/g;\n\n  function encode(s) {\n    return config.raw ? s : encodeURIComponent(s);\n  }\n\n  function decode(s) {\n    return config.raw ? s : decodeURIComponent(s);\n  }\n\n  function stringifyCookieValue(value) {\n    return encode(config.json ? JSON.stringify(value) : String(value));\n  }\n\n  function parseCookieValue(s) {\n    if (s.indexOf('\"') === 0) {\n      // This is a quoted cookie as according to RFC2068, unescape...\n      s = s.slice(1, -1).replace(/\\\\\"/g, '\"').replace(/\\\\\\\\/g, '\\\\');\n    }\n\n    try {\n      // Replace server-side written pluses with spaces.\n      // If we can't decode the cookie, ignore it, it's unusable.\n      // If we can't parse the cookie, ignore it, it's unusable.\n      s = decodeURIComponent(s.replace(pluses, ' '));\n      return config.json ? JSON.parse(s) : s;\n    } catch(e) {}\n  }\n\n  function read(s, converter) {\n    var value = config.raw ? s : parseCookieValue(s);\n    return $.isFunction(converter) ? converter(value) : value;\n  }\n\n  var config = $.cookie = function (key, value, options) {\n\n    // Write\n\n    if (arguments.length > 1 && !$.isFunction(value)) {\n      options = $.extend({}, config.defaults, options);\n\n      if (typeof options.expires === 'number') {\n        var days = options.expires, t = options.expires = new Date();\n        t.setMilliseconds(t.getMilliseconds() + days * 864e+5);\n      }\n\n      return (document.cookie = [\n        encode(key), '=', stringifyCookieValue(value),\n        options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE\n        options.path    ? '; path=' + options.path : '',\n        options.domain  ? '; domain=' + options.domain : '',\n        options.secure  ? '; secure' : ''\n      ].join(''));\n    }\n\n    // Read\n\n    var result = key ? undefined : {},\n      // To prevent the for loop in the first place assign an empty array\n      // in case there are no cookies at all. Also prevents odd result when\n      // calling $.cookie().\n      cookies = document.cookie ? document.cookie.split('; ') : [],\n      i = 0,\n      l = cookies.length;\n\n    for (; i < l; i++) {\n      var parts = cookies[i].split('='),\n        name = decode(parts.shift()),\n        cookie = parts.join('=');\n\n      if (key === name) {\n        // If second argument (value) is a function it's a converter...\n        result = read(cookie, value);\n        break;\n      }\n\n      // Prevent storing a cookie that we couldn't decode.\n      if (!key && (cookie = read(cookie)) !== undefined) {\n        result[name] = cookie;\n      }\n    }\n\n    return result;\n  };\n\n  config.defaults = {};\n\n  $.removeCookie = function (key, options) {\n    // Must not alter options, thus extending a fresh object...\n    $.cookie(key, '', $.extend({}, options, { expires: -1 }));\n    return !$.cookie(key);\n  };\n\n}));"
  },
  {
    "path": "server/files/javascript/library/detect.js",
    "content": "/*\n * DetectAdBlock 3.2.1\n * Copyright (c) 2015 Valentin Allaire <valentin.allaire@sitexw.fr>\n * Released under the MIT license\n * https://github.com/sitexw/DetectAdBlock\n */\n\n(function(window) {\n  var DetectAdBlock = function(options) {\n    this._options = {\n      checkOnLoad:    false,\n      resetOnEnd:     false,\n      loopCheckTime:    50,\n      loopMaxNumber:    5,\n      baitClass:      'pub_300x250 pub_300x250m pub_728x90 text-ad textAd text_ad text_ads text-ads text-ad-links',\n      baitStyle:      'width: 1px !important; height: 1px !important; position: absolute !important; left: -10000px !important; top: -1000px !important;',\n      debug:        false\n    };\n    this._var = {\n      version:      '3.2.1',\n      bait:       null,\n      checking:     false,\n      loop:       null,\n      loopNumber:     0,\n      event:        { detected: [], notDetected: [] }\n    };\n    if(options !== undefined) {\n      this.setOption(options);\n    }\n    var self = this;\n    var eventCallback = function() {\n      setTimeout(function() {\n        if(self._options.checkOnLoad === true) {\n          if(self._options.debug === true) {\n            self._log('onload->eventCallback', 'A check loading is launched');\n          }\n          if(self._var.bait === null) {\n            self._creatBait();\n          }\n          setTimeout(function() {\n            self.check();\n          }, 1);\n        }\n      }, 1);\n    };\n    if(window.addEventListener !== undefined) {\n      window.addEventListener('load', eventCallback, false);\n    } else {\n      window.attachEvent('onload', eventCallback);\n    }\n  };\n  DetectAdBlock.prototype._options = null;\n  DetectAdBlock.prototype._var = null;\n  DetectAdBlock.prototype._bait = null;\n\n  DetectAdBlock.prototype._log = function(method, message) {\n    console.log('[DetectAdBlock]['+method+'] '+message);\n  };\n\n  DetectAdBlock.prototype.setOption = function(options, value) {\n    if(value !== undefined) {\n      var key = options;\n      options = {};\n      options[key] = value;\n    }\n    for(var option in options) {\n      this._options[option] = options[option];\n      if(this._options.debug === true) {\n        this._log('setOption', 'The option \"'+option+'\" he was assigned to \"'+options[option]+'\"');\n      }\n    }\n    return this;\n  };\n\n  DetectAdBlock.prototype._creatBait = function() {\n    var bait = document.createElement('div');\n      bait.setAttribute('class', this._options.baitClass);\n      bait.setAttribute('style', this._options.baitStyle);\n    this._var.bait = window.document.body.appendChild(bait);\n\n    this._var.bait.offsetParent;\n    this._var.bait.offsetHeight;\n    this._var.bait.offsetLeft;\n    this._var.bait.offsetTop;\n    this._var.bait.offsetWidth;\n    this._var.bait.clientHeight;\n    this._var.bait.clientWidth;\n\n    if(this._options.debug === true) {\n      this._log('_creatBait', 'Bait has been created');\n    }\n  };\n  DetectAdBlock.prototype._destroyBait = function() {\n    window.document.body.removeChild(this._var.bait);\n    this._var.bait = null;\n\n    if(this._options.debug === true) {\n      this._log('_destroyBait', 'Bait has been removed');\n    }\n  };\n\n  DetectAdBlock.prototype.check = function(loop) {\n    if(loop === undefined) {\n      loop = true;\n    }\n\n    if(this._options.debug === true) {\n      this._log('check', 'An audit was requested '+(loop===true?'with a':'without')+' loop');\n    }\n\n    if(this._var.checking === true) {\n      if(this._options.debug === true) {\n        this._log('check', 'A check was canceled because there is already an ongoing');\n      }\n      return false;\n    }\n    this._var.checking = true;\n\n    if(this._var.bait === null) {\n      this._creatBait();\n    }\n\n    var self = this;\n    this._var.loopNumber = 0;\n    if(loop === true) {\n      this._var.loop = setInterval(function() {\n        self._checkBait(loop);\n      }, this._options.loopCheckTime);\n    }\n    setTimeout(function() {\n      self._checkBait(loop);\n    }, 1);\n    if(this._options.debug === true) {\n      this._log('check', 'A check is in progress ...');\n    }\n\n    return true;\n  };\n  DetectAdBlock.prototype._checkBait = function(loop) {\n    var detected = false;\n\n    if(this._var.bait === null) {\n      this._creatBait();\n    }\n\n    if(window.document.body.getAttribute('abp') !== null\n    || this._var.bait.offsetParent === null\n    || this._var.bait.offsetHeight == 0\n    || this._var.bait.offsetLeft == 0\n    || this._var.bait.offsetTop == 0\n    || this._var.bait.offsetWidth == 0\n    || this._var.bait.clientHeight == 0\n    || this._var.bait.clientWidth == 0) {\n      detected = true;\n    }\n    if(window.getComputedStyle !== undefined) {\n      var baitTemp = window.getComputedStyle(this._var.bait, null);\n      if(baitTemp && (baitTemp.getPropertyValue('display') == 'none' || baitTemp.getPropertyValue('visibility') == 'hidden')) {\n        detected = true;\n      }\n    }\n\n    if(this._options.debug === true) {\n      this._log('_checkBait', 'A check ('+(this._var.loopNumber+1)+'/'+this._options.loopMaxNumber+' ~'+(1+this._var.loopNumber*this._options.loopCheckTime)+'ms) was conducted and detection is '+(detected===true?'positive':'negative'));\n    }\n\n    if(loop === true) {\n      this._var.loopNumber++;\n      if(this._var.loopNumber >= this._options.loopMaxNumber) {\n        this._stopLoop();\n      }\n    }\n\n    if(detected === true) {\n      this._stopLoop();\n      this._destroyBait();\n      this.emitEvent(true);\n      if(loop === true) {\n        this._var.checking = false;\n      }\n    } else if(this._var.loop === null || loop === false) {\n      this._destroyBait();\n      this.emitEvent(false);\n      if(loop === true) {\n        this._var.checking = false;\n      }\n    }\n  };\n  DetectAdBlock.prototype._stopLoop = function(detected) {\n    clearInterval(this._var.loop);\n    this._var.loop = null;\n    this._var.loopNumber = 0;\n\n    if(this._options.debug === true) {\n      this._log('_stopLoop', 'A loop has been stopped');\n    }\n  };\n\n  DetectAdBlock.prototype.emitEvent = function(detected) {\n    if(this._options.debug === true) {\n      this._log('emitEvent', 'An event with a '+(detected===true?'positive':'negative')+' detection was called');\n    }\n\n    var fns = this._var.event[(detected===true?'detected':'notDetected')];\n    for(var i in fns) {\n      if(this._options.debug === true) {\n        this._log('emitEvent', 'Call function '+(parseInt(i)+1)+'/'+fns.length);\n      }\n      if(fns.hasOwnProperty(i)) {\n        fns[i]();\n      }\n    }\n    if(this._options.resetOnEnd === true) {\n      this.clearEvent();\n    }\n    return this;\n  };\n  DetectAdBlock.prototype.clearEvent = function() {\n    this._var.event.detected = [];\n    this._var.event.notDetected = [];\n\n    if(this._options.debug === true) {\n      this._log('clearEvent', 'The event list has been cleared');\n    }\n  };\n\n  DetectAdBlock.prototype.on = function(detected, fn) {\n    this._var.event[(detected===true?'detected':'notDetected')].push(fn);\n    if(this._options.debug === true) {\n      this._log('on', 'A type of event \"'+(detected===true?'detected':'notDetected')+'\" was added');\n    }\n\n    return this;\n  };\n  DetectAdBlock.prototype.onDetected = function(fn) {\n    return this.on(true, fn);\n  };\n  DetectAdBlock.prototype.onNotDetected = function(fn) {\n    return this.on(false, fn);\n  };\n\n  window.DetectAdBlock = DetectAdBlock;\n\n  if(window.detectAdBlock === undefined) {\n    window.detectAdBlock = new DetectAdBlock({\n      checkOnLoad: true,\n      resetOnEnd: true\n    });\n  }\n})(window);\n"
  },
  {
    "path": "server/files/javascript/library/easing.js",
    "content": "/*\n * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/\n *\n * Open source under the BSD License.\n *\n * Copyright Ã‚Â© 2001 Robert Penner\n * All rights reserved.\n *\n*/\njQuery.easing.jswing=jQuery.easing.swing;jQuery.extend(jQuery.easing,{def:\"easeOutQuad\",swing:function(e,f,a,h,g){return jQuery.easing[jQuery.easing.def](e,f,a,h,g)},easeInQuad:function(e,f,a,h,g){return h*(f/=g)*f+a},easeOutQuad:function(e,f,a,h,g){return -h*(f/=g)*(f-2)+a},easeInOutQuad:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f+a}return -h/2*((--f)*(f-2)-1)+a},easeInCubic:function(e,f,a,h,g){return h*(f/=g)*f*f+a},easeOutCubic:function(e,f,a,h,g){return h*((f=f/g-1)*f*f+1)+a},easeInOutCubic:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f+a}return h/2*((f-=2)*f*f+2)+a},easeInQuart:function(e,f,a,h,g){return h*(f/=g)*f*f*f+a},easeOutQuart:function(e,f,a,h,g){return -h*((f=f/g-1)*f*f*f-1)+a},easeInOutQuart:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f+a}return -h/2*((f-=2)*f*f*f-2)+a},easeInQuint:function(e,f,a,h,g){return h*(f/=g)*f*f*f*f+a},easeOutQuint:function(e,f,a,h,g){return h*((f=f/g-1)*f*f*f*f+1)+a},easeInOutQuint:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f*f+a}return h/2*((f-=2)*f*f*f*f+2)+a},easeInSine:function(e,f,a,h,g){return -h*Math.cos(f/g*(Math.PI/2))+h+a},easeOutSine:function(e,f,a,h,g){return h*Math.sin(f/g*(Math.PI/2))+a},easeInOutSine:function(e,f,a,h,g){return -h/2*(Math.cos(Math.PI*f/g)-1)+a},easeInExpo:function(e,f,a,h,g){return(f==0)?a:h*Math.pow(2,10*(f/g-1))+a},easeOutExpo:function(e,f,a,h,g){return(f==g)?a+h:h*(-Math.pow(2,-10*f/g)+1)+a},easeInOutExpo:function(e,f,a,h,g){if(f==0){return a}if(f==g){return a+h}if((f/=g/2)<1){return h/2*Math.pow(2,10*(f-1))+a}return h/2*(-Math.pow(2,-10*--f)+2)+a},easeInCirc:function(e,f,a,h,g){return -h*(Math.sqrt(1-(f/=g)*f)-1)+a},easeOutCirc:function(e,f,a,h,g){return h*Math.sqrt(1-(f=f/g-1)*f)+a},easeInOutCirc:function(e,f,a,h,g){if((f/=g/2)<1){return -h/2*(Math.sqrt(1-f*f)-1)+a}return h/2*(Math.sqrt(1-(f-=2)*f)+1)+a},easeInElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}return -(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e},easeOutElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}return g*Math.pow(2,-10*h)*Math.sin((h*k-i)*(2*Math.PI)/j)+l+e},easeInOutElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k/2)==2){return e+l}if(!j){j=k*(0.3*1.5)}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}if(h<1){return -0.5*(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e}return g*Math.pow(2,-10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j)*0.5+l+e},easeInBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}return i*(f/=h)*f*((g+1)*f-g)+a},easeOutBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}return i*((f=f/h-1)*f*((g+1)*f+g)+1)+a},easeInOutBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}if((f/=h/2)<1){return i/2*(f*f*(((g*=(1.525))+1)*f-g))+a}return i/2*((f-=2)*f*(((g*=(1.525))+1)*f+g)+2)+a},easeInBounce:function(e,f,a,h,g){return h-jQuery.easing.easeOutBounce(e,g-f,0,h,g)+a},easeOutBounce:function(e,f,a,h,g){if((f/=g)<(1/2.75)){return h*(7.5625*f*f)+a}else{if(f<(2/2.75)){return h*(7.5625*(f-=(1.5/2.75))*f+0.75)+a}else{if(f<(2.5/2.75)){return h*(7.5625*(f-=(2.25/2.75))*f+0.9375)+a}else{return h*(7.5625*(f-=(2.625/2.75))*f+0.984375)+a}}}},easeInOutBounce:function(e,f,a,h,g){if(f<g/2){return jQuery.easing.easeInBounce(e,f*2,0,h,g)*0.5+a}return jQuery.easing.easeOutBounce(e,f*2-g,0,h,g)*0.5+h*0.5+a}});"
  },
  {
    "path": "server/files/javascript/library/history.js",
    "content": "/*! jQuery Address v${version} | (c) 2009, 2013 Rostislav Hristov | jquery.org/license */\n(function ($) {\n\n    $.address = (function () {\n\n        var _trigger = function(name) {\n               var e = $.extend($.Event(name), (function() {\n                    var parameters = {},\n                        parameterNames = $.address.parameterNames();\n                    for (var i = 0, l = parameterNames.length; i < l; i++) {\n                        parameters[parameterNames[i]] = $.address.parameter(parameterNames[i]);\n                    }\n                    return {\n                        value: $.address.value(),\n                        path: $.address.path(),\n                        pathNames: $.address.pathNames(),\n                        parameterNames: parameterNames,\n                        parameters: parameters,\n                        queryString: $.address.queryString()\n                    };\n                }).call($.address));\n                $($.address).trigger(e);\n                return e;\n            },\n            _array = function(obj) {\n                return Array.prototype.slice.call(obj);\n            },\n            _bind = function(value, data, fn) {\n                $().bind.apply($($.address), Array.prototype.slice.call(arguments));\n                return $.address;\n            },\n            _unbind = function(value,  fn) {\n                $().unbind.apply($($.address), Array.prototype.slice.call(arguments));\n                return $.address;\n            },\n            _supportsState = function() {\n                return (_h.pushState && _opts.state !== UNDEFINED);\n            },\n            _hrefState = function() {\n                return ('/' + _l.pathname.replace(new RegExp(_opts.state), '') +\n                    _l.search + (_hrefHash() ? '#' + _hrefHash() : '')).replace(_re, '/');\n            },\n            _hrefHash = function() {\n                var index = _l.href.indexOf('#');\n                return index != -1 ? _l.href.substr(index + 1) : '';\n            },\n            _href = function() {\n                return _supportsState() ? _hrefState() : _hrefHash();\n            },\n            _window = function() {\n                try {\n                    return top.document !== UNDEFINED && top.document.title !== UNDEFINED ? top : window;\n                } catch (e) {\n                    return window;\n                }\n            },\n            _js = function() {\n                return 'javascript';\n            },\n            _strict = function(value) {\n                value = value.toString();\n                return (_opts.strict && value.substr(0, 1) != '/' ? '/' : '') + value;\n            },\n            _cssint = function(el, value) {\n                return parseInt(el.css(value), 10);\n            },\n            _listen = function() {\n                if (!_silent) {\n                    var hash = _href(),\n                        diff = decodeURI(_value) != decodeURI(hash);\n                    if (diff) {\n                        if (_msie && _version < 7) {\n                            _l.reload();\n                        } else {\n                            if (_msie && !_hashchange && _opts.history) {\n                                _st(_html, 50);\n                            }\n                            _value = hash;\n                            _update(FALSE);\n                        }\n                    }\n                }\n            },\n            _update = function(internal) {\n                if (_opts.tracker !== 'null' && _opts.tracker !== NULL) {\n                    _st(_track, 10);\n                }\n                return _trigger(CHANGE).isDefaultPrevented() ||\n                    _trigger(internal ? INTERNAL_CHANGE : EXTERNAL_CHANGE).isDefaultPrevented();\n            },\n            _track = function() {\n                if (_opts.tracker !== 'null' && _opts.tracker !== NULL) {\n                    var fn = $.isFunction(_opts.tracker) ? _opts.tracker : _t[_opts.tracker],\n                        value = (_l.pathname + _l.search +\n                                ($.address && !_supportsState() ? $.address.value() : ''))\n                                .replace(/\\/\\//, '/').replace(/^\\/$/, '');\n                    if ($.isFunction(fn)) {\n                        fn(value);\n                    } else if ($.isFunction(_t.urchinTracker)) {\n                        _t.urchinTracker(value);\n                    } else if (_t.pageTracker !== UNDEFINED && $.isFunction(_t.pageTracker._trackPageview)) {\n                        _t.pageTracker._trackPageview(value);\n                    } else if (_t._gaq !== UNDEFINED && $.isFunction(_t._gaq.push)) {\n                        _t._gaq.push(['_trackPageview', decodeURI(value)]);\n                    }\n                }\n            },\n            _html = function() {\n                var src = _js() + ':' + FALSE + ';document.open();document.writeln(\\'<html><head><title>' +\n                    _d.title.replace(/\\'/g, '\\\\\\'') + '</title><script>var ' + ID + ' = \"' + encodeURIComponent(_href()).replace(/\\'/g, '\\\\\\'') +\n                    (_d.domain != _l.hostname ? '\";document.domain=\"' + _d.domain : '') +\n                    '\";</' + 'script></head></html>\\');document.close();';\n                if (_version < 7) {\n                    _frame.src = src;\n                } else {\n                    _frame.contentWindow.location.replace(src);\n                }\n            },\n            _options = function() {\n                if (_url && _qi != -1) {\n                    var i, param, params = _url.substr(_qi + 1).split('&');\n                    for (i = 0; i < params.length; i++) {\n                        param = params[i].split('=');\n                        if (/^(autoUpdate|history|strict|wrap)$/.test(param[0])) {\n                            _opts[param[0]] = (isNaN(param[1]) ? /^(true|yes)$/i.test(param[1]) : (parseInt(param[1], 10) !== 0));\n                        }\n                        if (/^(state|tracker)$/.test(param[0])) {\n                            _opts[param[0]] = param[1];\n                        }\n                    }\n                    _url = NULL;\n                }\n                _value = _href();\n            },\n            _load = function() {\n                if (!_loaded) {\n                    _loaded = TRUE;\n                    _options();\n                    $('a[rel*=\"address:\"]').address();\n                    if (_opts.wrap) {\n                        var body = $('body'),\n                            wrap = $('body > *')\n                                .wrapAll('<div style=\"padding:' +\n                                    (_cssint(body, 'marginTop') + _cssint(body, 'paddingTop')) + 'px ' +\n                                    (_cssint(body, 'marginRight') + _cssint(body, 'paddingRight')) + 'px ' +\n                                    (_cssint(body, 'marginBottom') + _cssint(body, 'paddingBottom')) + 'px ' +\n                                    (_cssint(body, 'marginLeft') + _cssint(body, 'paddingLeft')) + 'px;\" />')\n                                .parent()\n                                .wrap('<div id=\"' + ID + '\" style=\"height:100%;overflow:auto;position:relative;' +\n                                    (_webkit && !window.statusbar.visible ? 'resize:both;' : '') + '\" />');\n                        $('html, body')\n                            .css({\n                                height: '100%',\n                                margin: 0,\n                                padding: 0,\n                                overflow: 'hidden'\n                            });\n                        if (_webkit) {\n                            $('<style type=\"text/css\" />')\n                                .appendTo('head')\n                                .text('#' + ID + '::-webkit-resizer { background-color: #fff; }');\n                        }\n                    }\n                    if (_msie && !_hashchange) {\n                        var frameset = _d.getElementsByTagName('frameset')[0];\n                        _frame = _d.createElement((frameset ? '' : 'i') + 'frame');\n                        _frame.src = _js() + ':' + FALSE;\n                        if (frameset) {\n                            frameset.insertAdjacentElement('beforeEnd', _frame);\n                            frameset[frameset.cols ? 'cols' : 'rows'] += ',0';\n                            _frame.noResize = TRUE;\n                            _frame.frameBorder = _frame.frameSpacing = 0;\n                        } else {\n                            _frame.style.display = 'none';\n                            _frame.style.width = _frame.style.height = 0;\n                            _frame.tabIndex = -1;\n                            _d.body.insertAdjacentElement('afterBegin', _frame);\n                        }\n                        _st(function() {\n                            $(_frame).bind('load', function() {\n                                var win = _frame.contentWindow;\n                                _value = win[ID] !== UNDEFINED ? win[ID] : '';\n                                if (_value != _href()) {\n                                    _update(FALSE);\n                                    _l.hash = _value;\n                                }\n                            });\n                            if (_frame.contentWindow[ID] === UNDEFINED) {\n                                _html();\n                            }\n                        }, 50);\n                    }\n                    _st(function() {\n                        _trigger('init');\n                        _update(FALSE);\n                    }, 1);\n                    if (!_supportsState()) {\n                        if ((_msie && _version > 7) || (!_msie && _hashchange)) {\n                            if (_t.addEventListener) {\n                                _t.addEventListener(HASH_CHANGE, _listen, FALSE);\n                            } else if (_t.attachEvent) {\n                                _t.attachEvent('on' + HASH_CHANGE, _listen);\n                            }\n                        } else {\n                            _si(_listen, 50);\n                        }\n                    }\n                    if ('state' in window.history) {\n                        $(window).trigger('popstate');\n                    }\n                }\n            },\n            _popstate = function() {\n                if (decodeURI(_value) != decodeURI(_href())) {\n                    _value = _href();\n                    _update(FALSE);\n                }\n            },\n            _unload = function() {\n                if (_t.removeEventListener) {\n                    _t.removeEventListener(HASH_CHANGE, _listen, FALSE);\n                } else if (_t.detachEvent) {\n                    _t.detachEvent('on' + HASH_CHANGE, _listen);\n                }\n            },\n            _uaMatch = function(ua) {\n                ua = ua.toLowerCase();\n                var match = /(chrome)[ \\/]([\\w.]+)/.exec( ua ) ||\n                    /(webkit)[ \\/]([\\w.]+)/.exec( ua ) ||\n                    /(opera)(?:.*version|)[ \\/]([\\w.]+)/.exec( ua ) ||\n                    /(msie) ([\\w.]+)/.exec( ua ) ||\n                    ua.indexOf('compatible') < 0 && /(mozilla)(?:.*? rv:([\\w.]+)|)/.exec( ua ) ||\n                    [];\n                return {\n                    browser: match[ 1 ] || '',\n                    version: match[ 2 ] || '0'\n                };\n            },\n            _detectBrowser = function() {\n                var browser = {},\n                    matched = _uaMatch(navigator.userAgent);\n                if (matched.browser) {\n                    browser[matched.browser] = true;\n                    browser.version = matched.version;\n                }\n                if (browser.chrome) {\n                    browser.webkit = true;\n                } else if (browser.webkit) {\n                    browser.safari = true;\n                }\n                return browser;\n            },\n            UNDEFINED,\n            NULL = null,\n            ID = 'jQueryAddress',\n            STRING = 'string',\n            HASH_CHANGE = 'hashchange',\n            INIT = 'init',\n            CHANGE = 'change',\n            INTERNAL_CHANGE = 'internalChange',\n            EXTERNAL_CHANGE = 'externalChange',\n            TRUE = true,\n            FALSE = false,\n            _opts = {\n                autoUpdate: TRUE,\n                history: TRUE,\n                strict: TRUE,\n                wrap: FALSE\n            },\n            _browser = _detectBrowser(),\n            _version = parseFloat(_browser.version),\n            _webkit = _browser.webkit || _browser.safari,\n            _msie = _browser.msie,\n            _t = _window(),\n            _d = _t.document,\n            _h = _t.history,\n            _l = _t.location,\n            _si = setInterval,\n            _st = setTimeout,\n            _re = /\\/{2,9}/g,\n            _agent = navigator.userAgent,\n            _hashchange = 'on' + HASH_CHANGE in _t,\n            _frame,\n            _form,\n            _url = $('script:last').attr('src'),\n            _qi = _url ? _url.indexOf('?') : -1,\n            _title = _d.title,\n            _silent = FALSE,\n            _loaded = FALSE,\n            _juststart = TRUE,\n            _updating = FALSE,\n            _listeners = {},\n            _value = _href();\n\n        if (_msie) {\n            _version = parseFloat(_agent.substr(_agent.indexOf('MSIE') + 4));\n            if (_d.documentMode && _d.documentMode != _version) {\n                _version = _d.documentMode != 8 ? 7 : 8;\n            }\n            var pc = _d.onpropertychange;\n            _d.onpropertychange = function() {\n                if (pc) {\n                    pc.call(_d);\n                }\n                if (_d.title != _title && _d.title.indexOf('#' + _href()) != -1) {\n                    _d.title = _title;\n                }\n            };\n        }\n\n        if (_h.navigationMode) {\n            _h.navigationMode = 'compatible';\n        }\n        if (document.readyState == 'complete') {\n            var interval = setInterval(function() {\n                if ($.address) {\n                    _load();\n                    clearInterval(interval);\n                }\n            }, 50);\n        } else {\n            _options();\n            $(_load);\n        }\n        $(window).bind('popstate', _popstate).bind('unload', _unload);\n\n        return {\n            bind: function(type, data, fn) {\n                return _bind.apply(this, _array(arguments));\n            },\n            unbind: function(type, fn) {\n                return _unbind.apply(this, _array(arguments));\n            },\n            init: function(data, fn) {\n                return _bind.apply(this, [INIT].concat(_array(arguments)));\n            },\n            change: function(data, fn) {\n                return _bind.apply(this, [CHANGE].concat(_array(arguments)));\n            },\n            internalChange: function(data, fn) {\n                return _bind.apply(this, [INTERNAL_CHANGE].concat(_array(arguments)));\n            },\n            externalChange: function(data, fn) {\n                return _bind.apply(this, [EXTERNAL_CHANGE].concat(_array(arguments)));\n            },\n            baseURL: function() {\n                var url = _l.href;\n                if (url.indexOf('#') != -1) {\n                    url = url.substr(0, url.indexOf('#'));\n                }\n                if (/\\/$/.test(url)) {\n                    url = url.substr(0, url.length - 1);\n                }\n                return url;\n            },\n            autoUpdate: function(value) {\n                if (value !== UNDEFINED) {\n                    _opts.autoUpdate = value;\n                    return this;\n                }\n                return _opts.autoUpdate;\n            },\n            history: function(value) {\n                if (value !== UNDEFINED) {\n                    _opts.history = value;\n                    return this;\n                }\n                return _opts.history;\n            },\n            state: function(value) {\n                if (value !== UNDEFINED) {\n                    _opts.state = value;\n                    var hrefState = _hrefState();\n                    if (_opts.state !== UNDEFINED) {\n                        if (_h.pushState) {\n                            if (hrefState.substr(0, 3) == '/#/') {\n                                _l.replace(_opts.state.replace(/^\\/$/, '') + hrefState.substr(2));\n                            }\n                        } else if (hrefState != '/' && hrefState.replace(/^\\/#/, '') != _hrefHash()) {\n                            _st(function() {\n                                _l.replace(_opts.state.replace(/^\\/$/, '') + '/#' + hrefState);\n                            }, 1);\n                        }\n                    }\n                    return this;\n                }\n                return _opts.state;\n            },\n            strict: function(value) {\n                if (value !== UNDEFINED) {\n                    _opts.strict = value;\n                    return this;\n                }\n                return _opts.strict;\n            },\n            tracker: function(value) {\n                if (value !== UNDEFINED) {\n                    _opts.tracker = value;\n                    return this;\n                }\n                return _opts.tracker;\n            },\n            wrap: function(value) {\n                if (value !== UNDEFINED) {\n                    _opts.wrap = value;\n                    return this;\n                }\n                return _opts.wrap;\n            },\n            update: function() {\n                _updating = TRUE;\n                this.value(_value);\n                _updating = FALSE;\n                return this;\n            },\n            title: function(value) {\n                if (value !== UNDEFINED) {\n                    _st(function() {\n                        _title = _d.title = value;\n                        if (_juststart && _frame && _frame.contentWindow && _frame.contentWindow.document) {\n                            _frame.contentWindow.document.title = value;\n                            _juststart = FALSE;\n                        }\n                    }, 50);\n                    return this;\n                }\n                return _d.title;\n            },\n            value: function(value) {\n                if (value !== UNDEFINED) {\n                    value = _strict(value);\n                    if (value == '/') {\n                        value = '';\n                    }\n                    if (_value == value && !_updating) {\n                        return;\n                    }\n                    _value = value;\n                    if (_opts.autoUpdate || _updating) {\n                        if (_update(TRUE)) {\n                            return this;\n                        }\n                        if (_supportsState()) {\n                            _h[_opts.history ? 'pushState' : 'replaceState']({}, '',\n                                    _opts.state.replace(/\\/$/, '') + (_value === '' ? '/' : _value));\n                        } else {\n                            _silent = TRUE;\n                            if (_webkit) {\n                                if (_opts.history) {\n                                    _l.hash = '#' + _value;\n                                } else {\n                                    _l.replace('#' + _value);\n                                }\n                            } else if (_value != _href()) {\n                                if (_opts.history) {\n                                    _l.hash = '#' + _value;\n                                } else {\n                                    _l.replace('#' + _value);\n                                }\n                            }\n                            if ((_msie && !_hashchange) && _opts.history) {\n                                _st(_html, 50);\n                            }\n                            if (_webkit) {\n                                _st(function(){ _silent = FALSE; }, 1);\n                            } else {\n                                _silent = FALSE;\n                            }\n                        }\n                    }\n                    return this;\n                }\n                return _strict(_value);\n            },\n            path: function(value) {\n                if (value !== UNDEFINED) {\n                    var qs = this.queryString(),\n                        hash = this.hash();\n                    this.value(value + (qs ? '?' + qs : '') + (hash ? '#' + hash : ''));\n                    return this;\n                }\n                return _strict(_value).split('#')[0].split('?')[0];\n            },\n            pathNames: function() {\n                var path = this.path(),\n                    names = path.replace(_re, '/').split('/');\n                if (path.substr(0, 1) == '/' || path.length === 0) {\n                    names.splice(0, 1);\n                }\n                if (path.substr(path.length - 1, 1) == '/') {\n                    names.splice(names.length - 1, 1);\n                }\n                return names;\n            },\n            queryString: function(value) {\n                if (value !== UNDEFINED) {\n                    var hash = this.hash();\n                    this.value(this.path() + (value ? '?' + value : '') + (hash ? '#' + hash : ''));\n                    return this;\n                }\n                var arr = _value.split('?');\n                return arr.slice(1, arr.length).join('?').split('#')[0];\n            },\n            parameter: function(name, value, append) {\n                var i, params;\n                if (value !== UNDEFINED) {\n                    var names = this.parameterNames();\n                    params = [];\n                    value = value === UNDEFINED || value === NULL ? '' : value.toString();\n                    for (i = 0; i < names.length; i++) {\n                        var n = names[i],\n                            v = this.parameter(n);\n                        if (typeof v == STRING) {\n                            v = [v];\n                        }\n                        if (n == name) {\n                            v = (value === NULL || value === '') ? [] :\n                                (append ? v.concat([value]) : [value]);\n                        }\n                        for (var j = 0; j < v.length; j++) {\n                            params.push(n + '=' + v[j]);\n                        }\n                    }\n                    if ($.inArray(name, names) == -1 && value !== NULL && value !== '') {\n                        params.push(name + '=' + value);\n                    }\n                    this.queryString(params.join('&'));\n                    return this;\n                }\n                value = this.queryString();\n                if (value) {\n                    var r = [];\n                    params = value.split('&');\n                    for (i = 0; i < params.length; i++) {\n                        var p = params[i].split('=');\n                        if (p[0] == name) {\n                            r.push(p.slice(1).join('='));\n                        }\n                    }\n                    if (r.length !== 0) {\n                        return r.length != 1 ? r : r[0];\n                    }\n                }\n            },\n            parameterNames: function() {\n                var qs = this.queryString(),\n                    names = [];\n                if (qs && qs.indexOf('=') != -1) {\n                    var params = qs.split('&');\n                    for (var i = 0; i < params.length; i++) {\n                        var name = params[i].split('=')[0];\n                        if ($.inArray(name, names) == -1) {\n                            names.push(name);\n                        }\n                    }\n                }\n                return names;\n            },\n            hash: function(value) {\n                if (value !== UNDEFINED) {\n                    this.value(_value.split('#')[0] + (value ? '#' + value : ''));\n                    return this;\n                }\n                var arr = _value.split('#');\n                return arr.slice(1, arr.length).join('#');\n            }\n        };\n    })();\n\n    $.fn.address = function(fn) {\n        if (!this.data('address')) {\n            this.on('click', function(e) {\n                if (e.shiftKey || e.ctrlKey || e.metaKey || e.which == 2) {\n                    return true;\n                }\n                var target = e.currentTarget;\n                if ($(target).is('a')) {\n                    e.preventDefault();\n                    var value = fn ? fn.call(target) :\n                        /address:/.test($(target).attr('rel')) ? $(target).attr('rel').split('address:')[1].split(' ')[0] :\n                        $.address.state() !== undefined && !/^\\/?$/.test($.address.state()) ?\n                                $(target).attr('href').replace(new RegExp('^(.*' + $.address.state() + '|\\\\.)'), '') :\n                                $(target).attr('href').replace(/^(#\\!?|\\.)/, '');\n                    $.address.value(value);\n                }\n            }).on('submit', function(e) {\n                var target = e.currentTarget;\n                if ($(target).is('form')) {\n                    e.preventDefault();\n                    var action = $(target).attr('action'),\n                        value = fn ? fn.call(target) : (action.indexOf('?') != -1 ? action.replace(/&$/, '') : action + '?') +\n                            $(target).serialize();\n                    $.address.value(value);\n                }\n            }).data('address', true);\n        }\n        return this;\n    };\n\n})(jQuery);"
  },
  {
    "path": "server/files/javascript/library/jquery.hotkeys.js",
    "content": "/*\n * jQuery Hotkeys Plugin\n * Copyright 2010, John Resig\n * Dual licensed under the MIT or GPL Version 2 licenses.\n *\n * Based upon the plugin by Tzury Bar Yochay:\n * http://github.com/tzuryby/hotkeys\n *\n * Original idea by:\n * Binny V A, http://www.openjs.com/scripts/events/keyboard_shortcuts/\n*/\n\n(function(jQuery){\n\n  jQuery.hotkeys = {\n    version: \"0.8+\",\n\n    specialKeys: {\n      8: \"backspace\", 9: \"tab\", 13: \"return\", 16: \"shift\", 17: \"ctrl\", 18: \"alt\", 19: \"pause\",\n      20: \"capslock\", 27: \"esc\", 32: \"space\", 33: \"pageup\", 34: \"pagedown\", 35: \"end\", 36: \"home\",\n      37: \"left\", 38: \"up\", 39: \"right\", 40: \"down\", 45: \"insert\", 46: \"del\",\n      96: \"0\", 97: \"1\", 98: \"2\", 99: \"3\", 100: \"4\", 101: \"5\", 102: \"6\", 103: \"7\",\n      104: \"8\", 105: \"9\", 106: \"*\", 107: \"+\", 109: \"-\", 110: \".\", 111 : \"/\",\n      112: \"f1\", 113: \"f2\", 114: \"f3\", 115: \"f4\", 116: \"f5\", 117: \"f6\", 118: \"f7\", 119: \"f8\",\n      120: \"f9\", 121: \"f10\", 122: \"f11\", 123: \"f12\", 144: \"numlock\", 145: \"scroll\", 188: \",\", 190: \".\",\n      191: \"/\", 224: \"meta\"\n    },\n\n    shiftNums: {\n      \"`\": \"~\", \"1\": \"!\", \"2\": \"@\", \"3\": \"#\", \"4\": \"$\", \"5\": \"%\", \"6\": \"^\", \"7\": \"&\",\n      \"8\": \"*\", \"9\": \"(\", \"0\": \")\", \"-\": \"_\", \"=\": \"+\", \";\": \": \", \"'\": \"\\\"\", \",\": \"<\",\n      \".\": \">\",  \"/\": \"?\",  \"\\\\\": \"|\"\n    }\n  };\n\n  function keyHandler( handleObj ) {\n\n    var origHandler = handleObj.handler,\n      //use namespace as keys so it works with event delegation as well\n      //will also allow removing listeners of a specific key combination\n      //and support data objects\n      keys = (handleObj.namespace || \"\").toLowerCase().split(\" \");\n      keys = jQuery.map(keys, function(key) { return key.split(\".\"); });\n\n    //no need to modify handler if no keys specified\n    //Added keys[0].substring(0, 12) to work with jQuery ui 1.9.0\n    //Added accordion, tabs and menu, then jquery ui can use keys.\n\n      if (keys.length === 1 && (keys[0] === \"\" ||\n      keys[0].substring(0, 12) === \"autocomplete\"  ||\n      keys[0].substring(0, 9) === \"accordion\"  ||\n      keys[0].substring(0, 4) === \"tabs\"  ||\n      keys[0].substring(0, 4) === \"menu\")) {\n      return;\n    }\n\n    handleObj.handler = function( event ) {\n      // Don't fire in text-accepting inputs that we didn't directly bind to\n      // important to note that $.fn.prop is only available on jquery 1.6+\n      if ( this !== event.target && (/textarea|select/i.test( event.target.nodeName ) ||\n        event.target.type === \"text\" || $(event.target).prop('contenteditable') == 'true' )) {\n        return;\n      }\n\n      // Keypress represents characters, not special keys\n      var special = event.type !== \"keypress\" && jQuery.hotkeys.specialKeys[ event.which ],\n        character = String.fromCharCode( event.which ).toLowerCase(),\n        key, modif = \"\", possible = {};\n\n      // check combinations (alt|ctrl|shift+anything)\n      if ( event.altKey && special !== \"alt\" ) {\n        modif += \"alt_\";\n      }\n\n      if ( event.ctrlKey && special !== \"ctrl\" ) {\n        modif += \"ctrl_\";\n      }\n\n      // TODO: Need to make sure this works consistently across platforms\n      if ( event.metaKey && !event.ctrlKey && special !== \"meta\" ) {\n        modif += \"meta_\";\n      }\n\n      if ( event.shiftKey && special !== \"shift\" ) {\n        modif += \"shift_\";\n      }\n\n      if ( special ) {\n        possible[ modif + special ] = true;\n\n      } else {\n        possible[ modif + character ] = true;\n        possible[ modif + jQuery.hotkeys.shiftNums[ character ] ] = true;\n\n        // \"$\" can be triggered as \"Shift+4\" or \"Shift+$\" or just \"$\"\n        if ( modif === \"shift_\" ) {\n          possible[ jQuery.hotkeys.shiftNums[ character ] ] = true;\n        }\n      }\n\n      for ( var i = 0, l = keys.length; i < l; i++ ) {\n        if ( possible[ keys[i] ] ) {\n          return origHandler.apply( this, arguments );\n        }\n      }\n    };\n  }\n\n  jQuery.each([ \"keydown\", \"keyup\", \"keypress\" ], function() {\n    jQuery.event.special[ this ] = { add: keyHandler };\n  });\n\n})( jQuery );/*\n * jQuery Hotkeys Plugin\n * Copyright 2010, John Resig\n * Dual licensed under the MIT or GPL Version 2 licenses.\n *\n * Based upon the plugin by Tzury Bar Yochay:\n * http://github.com/tzuryby/hotkeys\n *\n * Original idea by:\n * Binny V A, http://www.openjs.com/scripts/events/keyboard_shortcuts/\n*/\n\n(function(jQuery){\n\n  jQuery.hotkeys = {\n    version: \"0.8+\",\n\n    specialKeys: {\n      8: \"backspace\", 9: \"tab\", 13: \"return\", 16: \"shift\", 17: \"ctrl\", 18: \"alt\", 19: \"pause\",\n      20: \"capslock\", 27: \"esc\", 32: \"space\", 33: \"pageup\", 34: \"pagedown\", 35: \"end\", 36: \"home\",\n      37: \"left\", 38: \"up\", 39: \"right\", 40: \"down\", 45: \"insert\", 46: \"del\",\n      96: \"0\", 97: \"1\", 98: \"2\", 99: \"3\", 100: \"4\", 101: \"5\", 102: \"6\", 103: \"7\",\n      104: \"8\", 105: \"9\", 106: \"*\", 107: \"+\", 109: \"-\", 110: \".\", 111 : \"/\",\n      112: \"f1\", 113: \"f2\", 114: \"f3\", 115: \"f4\", 116: \"f5\", 117: \"f6\", 118: \"f7\", 119: \"f8\",\n      120: \"f9\", 121: \"f10\", 122: \"f11\", 123: \"f12\", 144: \"numlock\", 145: \"scroll\", 188: \",\", 190: \".\",\n      191: \"/\", 224: \"meta\"\n    },\n\n    shiftNums: {\n      \"`\": \"~\", \"1\": \"!\", \"2\": \"@\", \"3\": \"#\", \"4\": \"$\", \"5\": \"%\", \"6\": \"^\", \"7\": \"&\",\n      \"8\": \"*\", \"9\": \"(\", \"0\": \")\", \"-\": \"_\", \"=\": \"+\", \";\": \": \", \"'\": \"\\\"\", \",\": \"<\",\n      \".\": \">\",  \"/\": \"?\",  \"\\\\\": \"|\"\n    }\n  };\n\n  function keyHandler( handleObj ) {\n\n    var origHandler = handleObj.handler,\n      //use namespace as keys so it works with event delegation as well\n      //will also allow removing listeners of a specific key combination\n      //and support data objects\n      keys = (handleObj.namespace || \"\").toLowerCase().split(\" \");\n      keys = jQuery.map(keys, function(key) { return key.split(\".\"); });\n\n    //no need to modify handler if no keys specified\n    //Added keys[0].substring(0, 12) to work with jQuery ui 1.9.0\n    //Added accordion, tabs and menu, then jquery ui can use keys.\n\n      if (keys.length === 1 && (keys[0] === \"\" ||\n      keys[0].substring(0, 12) === \"autocomplete\"  ||\n      keys[0].substring(0, 9) === \"accordion\"  ||\n      keys[0].substring(0, 4) === \"tabs\"  ||\n      keys[0].substring(0, 4) === \"menu\")) {\n      return;\n    }\n\n    handleObj.handler = function( event ) {\n      // Don't fire in text-accepting inputs that we didn't directly bind to\n      // important to note that $.fn.prop is only available on jquery 1.6+\n      if ( this !== event.target && (/textarea|select/i.test( event.target.nodeName ) ||\n        event.target.type === \"text\" || $(event.target).prop('contenteditable') == 'true' )) {\n        return;\n      }\n\n      // Keypress represents characters, not special keys\n      var special = event.type !== \"keypress\" && jQuery.hotkeys.specialKeys[ event.which ],\n        character = String.fromCharCode( event.which ).toLowerCase(),\n        key, modif = \"\", possible = {};\n\n      // check combinations (alt|ctrl|shift+anything)\n      if ( event.altKey && special !== \"alt\" ) {\n        modif += \"alt_\";\n      }\n\n      if ( event.ctrlKey && special !== \"ctrl\" ) {\n        modif += \"ctrl_\";\n      }\n\n      // TODO: Need to make sure this works consistently across platforms\n      if ( event.metaKey && !event.ctrlKey && special !== \"meta\" ) {\n        modif += \"meta_\";\n      }\n\n      if ( event.shiftKey && special !== \"shift\" ) {\n        modif += \"shift_\";\n      }\n\n      if ( special ) {\n        possible[ modif + special ] = true;\n\n      } else {\n        possible[ modif + character ] = true;\n        possible[ modif + jQuery.hotkeys.shiftNums[ character ] ] = true;\n\n        // \"$\" can be triggered as \"Shift+4\" or \"Shift+$\" or just \"$\"\n        if ( modif === \"shift_\" ) {\n          possible[ jQuery.hotkeys.shiftNums[ character ] ] = true;\n        }\n      }\n\n      for ( var i = 0, l = keys.length; i < l; i++ ) {\n        if ( possible[ keys[i] ] ) {\n          return origHandler.apply( this, arguments );\n        }\n      }\n    };\n  }\n\n  jQuery.each([ \"keydown\", \"keyup\", \"keypress\" ], function() {\n    jQuery.event.special[ this ] = { add: keyHandler };\n  });\n\n})( jQuery );"
  },
  {
    "path": "server/files/javascript/library/jquery.js",
    "content": "/*!\n * jQuery JavaScript Library v3.1.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2016-09-22T22:30Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar document = window.document;\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar concat = arr.concat;\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\n\n\n\tfunction DOMEval( code, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar script = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.1.1\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android <=4.0 only\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n\n\t// Matches dashed string for camelizing\n\trmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g,\n\n\t// Used by jQuery.camelCase as callback to replace()\n\tfcamelCase = function( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !jQuery.isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = jQuery.isArray( copy ) ) ) ) {\n\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && jQuery.isArray( src ) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject( src ) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisFunction: function( obj ) {\n\t\treturn jQuery.type( obj ) === \"function\";\n\t},\n\n\tisArray: Array.isArray,\n\n\tisWindow: function( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t},\n\n\tisNumeric: function( obj ) {\n\n\t\t// As of jQuery 3.0, isNumeric is limited to\n\t\t// strings and numbers (primitives or objects)\n\t\t// that can be coerced to finite numbers (gh-2662)\n\t\tvar type = jQuery.type( obj );\n\t\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t\t// subtraction forces infinities to NaN\n\t\t\t!isNaN( obj - parseFloat( obj ) );\n\t},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\n\t\t/* eslint-disable no-unused-vars */\n\t\t// See https://github.com/eslint/eslint/issues/6125\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\ttype: function( obj ) {\n\t\tif ( obj == null ) {\n\t\t\treturn obj + \"\";\n\t\t}\n\n\t\t// Support: Android <=2.3 only (functionish RegExp)\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\t\ttypeof obj;\n\t},\n\n\t// Evaluates a script in a global context\n\tglobalEval: function( code ) {\n\t\tDOMEval( code );\n\t},\n\n\t// Convert dashed to camelCase; used by the css and data modules\n\t// Support: IE <=9 - 11, Edge 12 - 13\n\t// Microsoft forgot to hump their vendor prefix (#9572)\n\tcamelCase: function( string ) {\n\t\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n\t},\n\n\tnodeName: function( elem, name ) {\n\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android <=4.0 only\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// Bind a function to a context, optionally partially applying any\n\t// arguments.\n\tproxy: function( fn, context ) {\n\t\tvar tmp, args, proxy;\n\n\t\tif ( typeof context === \"string\" ) {\n\t\t\ttmp = fn[ context ];\n\t\t\tcontext = fn;\n\t\t\tfn = tmp;\n\t\t}\n\n\t\t// Quick check to determine if target is callable, in the spec\n\t\t// this throws a TypeError, but we will just return undefined.\n\t\tif ( !jQuery.isFunction( fn ) ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Simulated bind\n\t\targs = slice.call( arguments, 2 );\n\t\tproxy = function() {\n\t\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t\t};\n\n\t\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\t\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\t\treturn proxy;\n\t},\n\n\tnow: Date.now,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\nfunction( i, name ) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = jQuery.type( obj );\n\n\tif ( type === \"function\" || jQuery.isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.3\n * https://sizzlejs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2016-08-08\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = \"(?:\\\\\\\\.|[\\\\w-]|[^\\0-\\\\xa0])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tdisabledAncestor = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && (\"form\" in elem || \"label\" in elem);\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\n\t\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\t\tsetDocument( context );\n\t\t}\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( (m = match[1]) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( (elem = context.getElementById( m )) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && (elem = newContext.getElementById( m )) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[2] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!compilerCache[ selector + \" \" ] &&\n\t\t\t\t(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\n\t\t\t\tif ( nodeType !== 1 ) {\n\t\t\t\t\tnewContext = context;\n\t\t\t\t\tnewSelector = selector;\n\n\t\t\t\t// qSA looks outside Element context, which is not what we want\n\t\t\t\t// Thanks to Andrew Dupont for this workaround technique\n\t\t\t\t// Support: IE <=8\n\t\t\t\t// Exclude object elements\n\t\t\t\t} else if ( context.nodeName.toLowerCase() !== \"object\" ) {\n\n\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\tif ( (nid = context.getAttribute( \"id\" )) ) {\n\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontext.setAttribute( \"id\", (nid = expando) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[i] = \"#\" + nid + \" \" + toSelector( groups[i] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\t\t\t\t}\n\n\t\t\t\tif ( newSelector ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement(\"fieldset\");\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tdisabledAncestor( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9-11, Edge\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\tif ( preferredDoc !== document &&\n\t\t(subWindow = document.defaultView) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( el ) {\n\t\tel.appendChild( document.createComment(\"\") );\n\t\treturn !el.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t});\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[\"ID\"] =  function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( (elem = elems[i++]) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( document.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( el ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( el ) {\n\t\t\tel.innerHTML = \"<a href='' disabled='disabled'></a>\" +\n\t\t\t\t\"<select disabled='disabled'><option/></select>\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll(\":enabled\").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll(\":disabled\").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( el ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === document ? -1 :\n\t\t\t\tb === document ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!compilerCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn (sel + \"\").replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t//   but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( (oldCache = uniqueCache[ key ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context === document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\tif ( !context && elem.ownerDocument !== document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n *  selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n *  selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( el ) {\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement(\"fieldset\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( el ) {\n\tel.innerHTML = \"<a href='#'></a>\";\n\treturn el.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( el ) {\n\tel.innerHTML = \"<input/>\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( el ) {\n\treturn el.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\nvar risSimple = /^.[^:#\\[\\.,]*$/;\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( jQuery.isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Simple selector that can be filtered directly, removing non-Elements\n\tif ( risSimple.test( qualifier ) ) {\n\t\treturn jQuery.filter( qualifier, elements, not );\n\t}\n\n\t// Complex selector, compare the two sets, removing non-Elements\n\tqualifier = jQuery.filter( qualifier, elements );\n\treturn jQuery.grep( elements, function( elem ) {\n\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1;\n\t} );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( jQuery.isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( jQuery.isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\treturn elem.contentDocument || jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( jQuery.isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && jQuery.type( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && jQuery.isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && jQuery.isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Support: Android 4.0 only\n\t\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\t\tresolve.call( undefined, value );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.call( undefined, value );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && jQuery.isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( jQuery.isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tjQuery.isFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tjQuery.isFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tjQuery.isFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the master Deferred\n\t\t\tmaster = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tmaster.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( master.state() === \"pending\" ||\n\t\t\t\tjQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn master.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), master.reject );\n\t\t}\n\n\t\treturn master.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Hold (or release) the ready event\n\tholdReady: function( hold ) {\n\t\tif ( hold ) {\n\t\t\tjQuery.readyWait++;\n\t\t} else {\n\t\t\tjQuery.ready( true );\n\t\t}\n\t},\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( jQuery.type( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !jQuery.isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\tvalue :\n\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t//  - Node\n\t//    - Node.ELEMENT_NODE\n\t//    - Node.DOCUMENT_NODE\n\t//  - Object\n\t//    - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ jQuery.camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ jQuery.camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t//   1. No key was specified\n\t\t//   2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t//   1. The entire cache object\n\t\t//   2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t//   1. An object of properties\n\t\t//   2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( jQuery.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( jQuery.camelCase );\n\t\t\t} else {\n\t\t\t\tkey = jQuery.camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = jQuery.camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || jQuery.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tjQuery.contains( elem.ownerDocument, elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\nvar swap = function( elem, options, callback, args ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.apply( elem, args || [] );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted,\n\t\tscale = 1,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = ( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\tdo {\n\n\t\t\t// If previous iteration zeroed out, double until we get *something*.\n\t\t\t// Use string for doubling so we don't accidentally see scale as unchanged below\n\t\t\tscale = scale || \".5\";\n\n\t\t\t// Adjust and apply\n\t\t\tinitialInUnit = initialInUnit / scale;\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Update scale, tolerating zero or NaN from tween.cur()\n\t\t// Break the loop if scale is unchanged or perfect, or if we've just had enough.\n\t\t} while (\n\t\t\tscale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations\n\t\t);\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]+)/i );\n\nvar rscriptType = ( /^$|\\/(?:java|ecma)script/i );\n\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// Support: IE <=9 only\n\toption: [ 1, \"<select multiple='multiple'>\", \"</select>\" ],\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\n// Support: IE <=9 only\nwrapMap.optgroup = wrapMap.option;\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && jQuery.nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, contains, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( jQuery.type( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( contains ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n} )();\nvar documentElement = document.documentElement;\n\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 only\n// See #13393 for more info\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tvar event = jQuery.event.fix( nativeEvent );\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\t\t\thandlers = ( dataPriv.get( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or 2) have namespace(s)\n\t\t\t\t// a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: jQuery.isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tfocus: {\n\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\n\t\t\t\t\tthis.focus();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusin\"\n\t\t},\n\t\tblur: {\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusout\"\n\t\t},\n\t\tclick: {\n\n\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this.type === \"checkbox\" && this.click && jQuery.nodeName( this, \"input\" ) ) {\n\t\t\t\t\tthis.click();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, don't fire native .click() on links\n\t\t\t_default: function( event ) {\n\t\t\t\treturn jQuery.nodeName( event.target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || jQuery.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\n\twhich: function( event ) {\n\t\tvar button = event.button;\n\n\t\t// Add which for key events\n\t\tif ( event.which == null && rkeyEvent.test( event.type ) ) {\n\t\t\treturn event.charCode != null ? event.charCode : event.keyCode;\n\t\t}\n\n\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\tif ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {\n\t\t\tif ( button & 1 ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif ( button & 2 ) {\n\t\t\t\treturn 3;\n\t\t\t}\n\n\t\t\tif ( button & 4 ) {\n\t\t\t\treturn 2;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn event.which;\n\t}\n}, jQuery.event.addProp );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event )  dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t/* eslint-disable max-len */\n\n\t// See https://github.com/eslint/eslint/issues/3229\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,\n\n\t/* eslint-enable */\n\n\t// Support: IE <=10 - 11, Edge 12 - 13\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trscriptTypeMasked = /^true\\/(.*)/,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\n\nfunction manipulationTarget( elem, content ) {\n\tif ( jQuery.nodeName( elem, \"table\" ) &&\n\t\tjQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn elem.getElementsByTagName( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tvar match = rscriptTypeMasked.exec( elem.type );\n\n\tif ( match ) {\n\t\telem.type = match[ 1 ];\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.access( src );\n\t\tpdataCur = dataPriv.set( dest, pdataOld );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdelete pdataCur.handle;\n\t\t\tpdataCur.events = {};\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = concat.apply( [], args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tisFunction = jQuery.isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( isFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( isFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && jQuery.contains( node.ownerDocument, node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html.replace( rxhtmlTag, \"<$1></$2>\" );\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rmargin = ( /^margin/ );\n\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tdiv.style.cssText =\n\t\t\t\"box-sizing:border-box;\" +\n\t\t\t\"position:relative;display:block;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"top:1%;width:50%\";\n\t\tdiv.innerHTML = \"\";\n\t\tdocumentElement.appendChild( container );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = divStyle.marginLeft === \"2px\";\n\t\tboxSizingReliableVal = divStyle.width === \"4px\";\n\n\t\t// Support: Android 4.0 - 4.3 only\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.marginRight = \"50%\";\n\t\tpixelMarginRightVal = divStyle.marginRight === \"4px\";\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tcontainer.style.cssText = \"border:0;width:8px;height:0;top:0;left:-9999px;\" +\n\t\t\"padding:0;margin-top:1px;position:absolute\";\n\tcontainer.appendChild( div );\n\n\tjQuery.extend( support, {\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelMarginRight: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelMarginRightVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// Support: IE <=9 only\n\t// getPropertyValue is only needed for .css('filter') (#12537)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t},\n\n\tcssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style;\n\n// Return a css property mapped to a potentially vendor prefixed property\nfunction vendorPropName( name ) {\n\n\t// Shortcut for names that are not vendor prefixed\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\nfunction setPositiveNumber( elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {\n\tvar i,\n\t\tval = 0;\n\n\t// If we already have the right measurement, avoid augmentation\n\tif ( extra === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\ti = 4;\n\n\t// Otherwise initialize for horizontal or vertical properties\n\t} else {\n\t\ti = name === \"width\" ? 1 : 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin, so add it if we want it\n\t\tif ( extra === \"margin\" ) {\n\t\t\tval += jQuery.css( elem, extra + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\tif ( isBorderBox ) {\n\n\t\t\t// border-box includes padding, so remove it if we want content\n\t\t\tif ( extra === \"content\" ) {\n\t\t\t\tval -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// At this point, extra isn't border nor margin, so remove border\n\t\t\tif ( extra !== \"margin\" ) {\n\t\t\t\tval -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// At this point, extra isn't content, so add padding\n\t\t\tval += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// At this point, extra isn't content nor padding, so add border\n\t\t\tif ( extra !== \"padding\" ) {\n\t\t\t\tval += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn val;\n}\n\nfunction getWidthOrHeight( elem, name, extra ) {\n\n\t// Start with offset property, which is equivalent to the border-box value\n\tvar val,\n\t\tvalueIsBorderBox = true,\n\t\tstyles = getStyles( elem ),\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t// Support: IE <=11 only\n\t// Running getBoundingClientRect on a disconnected node\n\t// in IE throws an error.\n\tif ( elem.getClientRects().length ) {\n\t\tval = elem.getBoundingClientRect()[ name ];\n\t}\n\n\t// Some non-html elements return undefined for offsetWidth, so check for null/undefined\n\t// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285\n\t// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668\n\tif ( val <= 0 || val == null ) {\n\n\t\t// Fall back to computed then uncomputed css if necessary\n\t\tval = curCSS( elem, name, styles );\n\t\tif ( val < 0 || val == null ) {\n\t\t\tval = elem.style[ name ];\n\t\t}\n\n\t\t// Computed unit is not pixels. Stop here and return.\n\t\tif ( rnumnonpx.test( val ) ) {\n\t\t\treturn val;\n\t\t}\n\n\t\t// Check for style in case a browser which returns unreliable values\n\t\t// for getComputedStyle silently falls back to the reliable elem.style\n\t\tvalueIsBorderBox = isBorderBox &&\n\t\t\t( support.boxSizingReliable() || val === elem.style[ name ] );\n\n\t\t// Normalize \"\", auto, and prepare for extra\n\t\tval = parseFloat( val ) || 0;\n\t}\n\n\t// Use the active box-sizing model to add/subtract irrelevant styles\n\treturn ( val +\n\t\taugmentWidthOrHeight(\n\t\t\telem,\n\t\t\tname,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {\n\t\t\"float\": \"cssFloat\"\n\t},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = jQuery.camelCase( name ),\n\t\t\tstyle = elem.style;\n\n\t\tname = jQuery.cssProps[ origName ] ||\n\t\t\t( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\tif ( type === \"number\" ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tstyle[ name ] = value;\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = jQuery.camelCase( name );\n\n\t\t// Make sure that we're working with the right name\n\t\tname = jQuery.cssProps[ origName ] ||\n\t\t\t( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( i, name ) {\n\tjQuery.cssHooks[ name ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\t\treturn getWidthOrHeight( elem, name, extra );\n\t\t\t\t\t\t} ) :\n\t\t\t\t\t\tgetWidthOrHeight( elem, name, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = extra && getStyles( elem ),\n\t\t\t\tsubtract = extra && augmentWidthOrHeight(\n\t\t\t\t\telem,\n\t\t\t\t\tname,\n\t\t\t\t\textra,\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\t\tstyles\n\t\t\t\t);\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ name ] = value;\n\t\t\t\tvalue = jQuery.css( elem, name );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( !rmargin.test( prefix ) ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( jQuery.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 &&\n\t\t\t\t( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||\n\t\t\t\t\tjQuery.cssHooks[ tween.prop ] ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, timerId,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction raf() {\n\tif ( timerId ) {\n\t\twindow.requestAnimationFrame( raf );\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = jQuery.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 13\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = jQuery.camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( jQuery.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t} else {\n\t\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( jQuery.isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tjQuery.proxy( result.stop, result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( jQuery.isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\t// attach callbacks from options\n\treturn animation.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( jQuery.isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tjQuery.isFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !jQuery.isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off or if document is hidden\n\tif ( jQuery.fx.off || document.hidden ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( jQuery.isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\t\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue && type !== false ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = jQuery.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Checks the timer has not already been removed\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tif ( timer() ) {\n\t\tjQuery.fx.start();\n\t} else {\n\t\tjQuery.timers.pop();\n\t}\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( !timerId ) {\n\t\ttimerId = window.requestAnimationFrame ?\n\t\t\twindow.requestAnimationFrame( raf ) :\n\t\t\twindow.setInterval( jQuery.fx.tick, jQuery.fx.interval );\n\t}\n};\n\njQuery.fx.stop = function() {\n\tif ( window.cancelAnimationFrame ) {\n\t\twindow.cancelAnimationFrame( timerId );\n\t} else {\n\t\twindow.clearInterval( timerId );\n\t}\n\n\ttimerId = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tjQuery.nodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( typeof value === \"string\" && value ) {\n\t\t\tclasses = value.match( rnothtmlwhite ) || [];\n\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tif ( typeof value === \"string\" && value ) {\n\t\t\tclasses = value.match( rnothtmlwhite ) || [];\n\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value;\n\n\t\tif ( typeof stateVal === \"boolean\" && type === \"string\" ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( type === \"string\" ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = value.match( rnothtmlwhite ) || [];\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, isFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tisFunction = jQuery.isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( isFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( jQuery.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!jQuery.nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( jQuery.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/;\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || {} )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\t\t\t\t\telem[ type ]();\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\njQuery.each( ( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( i, name ) {\n\n\t// Handle event binding\n\tjQuery.fn[ name ] = function( data, fn ) {\n\t\treturn arguments.length > 0 ?\n\t\t\tthis.on( name, null, data, fn ) :\n\t\t\tthis.trigger( name );\n\t};\n} );\n\njQuery.fn.extend( {\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\n\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = jQuery.now();\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {\n\t\txml = undefined;\n\t}\n\n\tif ( !xml || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\tjQuery.error( \"Invalid XML: \" + data );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( jQuery.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && jQuery.type( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = jQuery.isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} )\n\t\t.filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} )\n\t\t.map( function( i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( jQuery.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t *    - BEFORE asking for a transport\n\t *    - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\toriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( jQuery.isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match;\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 13\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available, append data to url\n\t\t\tif ( s.data ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce++ ) + uncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( jQuery.isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\n\njQuery._evalUrl = function( url ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\t\t\"throws\": true\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( jQuery.isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( jQuery.isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar isFunction = jQuery.isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\"  ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain requests\n\tif ( s.crossDomain ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" ).prop( {\n\t\t\t\t\tcharset: s.scriptCharset,\n\t\t\t\t\tsrc: s.url\n\t\t\t\t} ).on(\n\t\t\t\t\t\"load error\",\n\t\t\t\t\tcallback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && jQuery.isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( jQuery.isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\n// Attach a bunch of functions for handling common AJAX events\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\n/**\n * Gets a window from an element\n */\nfunction getWindow( elem ) {\n\treturn jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView;\n}\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( jQuery.isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar docElem, win, rect, doc,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\trect = elem.getBoundingClientRect();\n\n\t\t// Make sure element is not hidden (display: none)\n\t\tif ( rect.width || rect.height ) {\n\t\t\tdoc = elem.ownerDocument;\n\t\t\twin = getWindow( doc );\n\t\t\tdocElem = doc.documentElement;\n\n\t\t\treturn {\n\t\t\t\ttop: rect.top + win.pageYOffset - docElem.clientTop,\n\t\t\t\tleft: rect.left + win.pageXOffset - docElem.clientLeft\n\t\t\t};\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden elements (gh-2310)\n\t\treturn rect;\n\t},\n\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// Fixed elements are offset from window (parentOffset = {top:0, left: 0},\n\t\t// because it is its only offset parent\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume getBoundingClientRect is there when computed position is fixed\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\n\t\t\t// Get *real* offsetParent\n\t\t\toffsetParent = this.offsetParent();\n\n\t\t\t// Get correct offsets\n\t\t\toffset = this.offset();\n\t\t\tif ( !jQuery.nodeName( offsetParent[ 0 ], \"html\" ) ) {\n\t\t\t\tparentOffset = offsetParent.offset();\n\t\t\t}\n\n\t\t\t// Add offsetParent borders\n\t\t\tparentOffset = {\n\t\t\t\ttop: parentOffset.top + jQuery.css( offsetParent[ 0 ], \"borderTopWidth\", true ),\n\t\t\t\tleft: parentOffset.left + jQuery.css( offsetParent[ 0 ], \"borderLeftWidth\", true )\n\t\t\t};\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t//    documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\t\t\tvar win = getWindow( elem );\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( { padding: \"inner\" + name, content: type, \"\": \"outer\" + name },\n\t\tfunction( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t}\n} );\n\njQuery.parseJSON = JSON.parse;\n\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( !noGlobal ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\n\nreturn jQuery;\n} );\n"
  },
  {
    "path": "server/files/javascript/library/jquery.legacy.js",
    "content": "/*!\n * jQuery JavaScript Library v1.11.2\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-12-17T15:27Z\n */\n\n(function( global, factory ) {\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// For CommonJS and CommonJS-like environments where a proper window is present,\n\t\t// execute the factory and get jQuery\n\t\t// For environments that do not inherently posses a window with a document\n\t\t// (such as Node.js), expose a jQuery-making factory as module.exports\n\t\t// This accentuates the need for the creation of a real window\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n}(typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Can't do this because several apps including ASP.NET trace\n// the stack via arguments.caller.callee and Firefox dies if\n// you try to trace through \"use strict\" call chains. (#13335)\n// Support: Firefox 18+\n//\n\nvar deletedIds = [];\n\nvar slice = deletedIds.slice;\n\nvar concat = deletedIds.concat;\n\nvar push = deletedIds.push;\n\nvar indexOf = deletedIds.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar support = {};\n\n\n\nvar\n\tversion = \"1.11.2\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android<4.1, IE<9\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n\n\t// Matches dashed string for camelizing\n\trmsPrefix = /^-ms-/,\n\trdashAlpha = /-([\\da-z])/gi,\n\n\t// Used by jQuery.camelCase as callback to replace()\n\tfcamelCase = function( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t};\n\njQuery.fn = jQuery.prototype = {\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// Start with an empty selector\n\tselector: \"\",\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\t\treturn num != null ?\n\n\t\t\t// Return just the one element from the set\n\t\t\t( num < 0 ? this[ num + this.length ] : this[ num ] ) :\n\n\t\t\t// Return all the elements in a clean array\n\t\t\tslice.call( this );\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\t\tret.context = this.context;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\t// (You can seed the arguments with an array of args, but this is\n\t// only used internally.)\n\teach: function( callback, args ) {\n\t\treturn jQuery.each( this, callback, args );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map(this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t}));\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor(null);\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: deletedIds.sort,\n\tsplice: deletedIds.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar src, copyIsArray, copy, name, options, clone,\n\t\ttarget = arguments[0] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !jQuery.isFunction(target) ) {\n\t\ttarget = {};\n\t}\n\n\t// extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\t\t// Only deal with non-null/undefined values\n\t\tif ( (options = arguments[ i ]) != null ) {\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && jQuery.isArray(src) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject(src) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend({\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\t// See test/unit/core.js for details concerning isFunction.\n\t// Since version 1.3, DOM methods and functions like alert\n\t// aren't supported. They return false on IE (#2968).\n\tisFunction: function( obj ) {\n\t\treturn jQuery.type(obj) === \"function\";\n\t},\n\n\tisArray: Array.isArray || function( obj ) {\n\t\treturn jQuery.type(obj) === \"array\";\n\t},\n\n\tisWindow: function( obj ) {\n\t\t/* jshint eqeqeq: false */\n\t\treturn obj != null && obj == obj.window;\n\t},\n\n\tisNumeric: function( obj ) {\n\t\t// parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t// adding 1 corrects loss of precision from parseFloat (#15100)\n\t\treturn !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\tisPlainObject: function( obj ) {\n\t\tvar key;\n\n\t\t// Must be an Object.\n\t\t// Because of IE, we also have to check the presence of the constructor property.\n\t\t// Make sure that DOM nodes and window objects don't pass through, as well\n\t\tif ( !obj || jQuery.type(obj) !== \"object\" || obj.nodeType || jQuery.isWindow( obj ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t// Not own constructor property must be Object\n\t\t\tif ( obj.constructor &&\n\t\t\t\t!hasOwn.call(obj, \"constructor\") &&\n\t\t\t\t!hasOwn.call(obj.constructor.prototype, \"isPrototypeOf\") ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\t// IE8,9 Will throw exceptions on certain host objects #9897\n\t\t\treturn false;\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Handle iteration over inherited properties before own properties.\n\t\tif ( support.ownLast ) {\n\t\t\tfor ( key in obj ) {\n\t\t\t\treturn hasOwn.call( obj, key );\n\t\t\t}\n\t\t}\n\n\t\t// Own properties are enumerated firstly, so to speed up,\n\t\t// if last one is own, then all properties are own.\n\t\tfor ( key in obj ) {}\n\n\t\treturn key === undefined || hasOwn.call( obj, key );\n\t},\n\n\ttype: function( obj ) {\n\t\tif ( obj == null ) {\n\t\t\treturn obj + \"\";\n\t\t}\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\t\tclass2type[ toString.call(obj) ] || \"object\" :\n\t\t\ttypeof obj;\n\t},\n\n\t// Evaluates a script in a global context\n\t// Workarounds based on findings by Jim Driscoll\n\t// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context\n\tglobalEval: function( data ) {\n\t\tif ( data && jQuery.trim( data ) ) {\n\t\t\t// We use execScript on Internet Explorer\n\t\t\t// We use an anonymous function so that context is window\n\t\t\t// rather than jQuery in Firefox\n\t\t\t( window.execScript || function( data ) {\n\t\t\t\twindow[ \"eval\" ].call( window, data );\n\t\t\t} )( data );\n\t\t}\n\t},\n\n\t// Convert dashed to camelCase; used by the css and data modules\n\t// Microsoft forgot to hump their vendor prefix (#9572)\n\tcamelCase: function( string ) {\n\t\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n\t},\n\n\tnodeName: function( elem, name ) {\n\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\t},\n\n\t// args is for internal usage only\n\teach: function( obj, callback, args ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = obj.length,\n\t\t\tisArray = isArraylike( obj );\n\n\t\tif ( args ) {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// A special, fast, case for the most common use of each\n\t\t} else {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android<4.1, IE<9\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArraylike( Object(arr) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\tvar len;\n\n\t\tif ( arr ) {\n\t\t\tif ( indexOf ) {\n\t\t\t\treturn indexOf.call( arr, elem, i );\n\t\t\t}\n\n\t\t\tlen = arr.length;\n\t\t\ti = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t// Skip accessing in sparse arrays\n\t\t\t\tif ( i in arr && arr[ i ] === elem ) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn -1;\n\t},\n\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\twhile ( j < len ) {\n\t\t\tfirst[ i++ ] = second[ j++ ];\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists)\n\t\tif ( len !== len ) {\n\t\t\twhile ( second[j] !== undefined ) {\n\t\t\t\tfirst[ i++ ] = second[ j++ ];\n\t\t\t}\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tisArray = isArraylike( elems ),\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArray ) {\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// Bind a function to a context, optionally partially applying any\n\t// arguments.\n\tproxy: function( fn, context ) {\n\t\tvar args, proxy, tmp;\n\n\t\tif ( typeof context === \"string\" ) {\n\t\t\ttmp = fn[ context ];\n\t\t\tcontext = fn;\n\t\t\tfn = tmp;\n\t\t}\n\n\t\t// Quick check to determine if target is callable, in the spec\n\t\t// this throws a TypeError, but we will just return undefined.\n\t\tif ( !jQuery.isFunction( fn ) ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Simulated bind\n\t\targs = slice.call( arguments, 2 );\n\t\tproxy = function() {\n\t\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t\t};\n\n\t\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\t\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\t\treturn proxy;\n\t},\n\n\tnow: function() {\n\t\treturn +( new Date() );\n\t},\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n});\n\n// Populate the class2type map\njQuery.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n});\n\nfunction isArraylike( obj ) {\n\tvar length = obj.length,\n\t\ttype = jQuery.type( obj );\n\n\tif ( type === \"function\" || jQuery.isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\tif ( obj.nodeType === 1 && length ) {\n\t\treturn true;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.2.0-pre\n * http://sizzlejs.com/\n *\n * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-12-16\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// General-purpose constants\n\tMAX_NEGATIVE = 1 << 31,\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// http://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\t// http://www.w3.org/TR/css3-syntax/#characters\n\tcharacterEncoding = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",\n\n\t// Loosely modeled on CSS identifier characters\n\t// An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors\n\t// Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = characterEncoding.replace( \"w\", \"w#\" ),\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + characterEncoding + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + characterEncoding + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + characterEncoding + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + characterEncoding + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + characterEncoding.replace( \"w\", \"w*\" ) + \")\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\trescape = /'|\\\\/g,\n\n\t// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t};\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar match, elem, m, nodeType,\n\t\t// QSA vars\n\t\ti, groups, old, nid, newContext, newSelector;\n\n\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\n\tcontext = context || document;\n\tresults = results || [];\n\tnodeType = context.nodeType;\n\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\tif ( !seed && documentIsHTML ) {\n\n\t\t// Try to shortcut find operations when possible (e.g., not under DocumentFragment)\n\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\t\t\t// Speed-up: Sizzle(\"#ID\")\n\t\t\tif ( (m = match[1]) ) {\n\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\telem = context.getElementById( m );\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document (jQuery #6963)\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Handle the case where IE, Opera, and Webkit return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Context is not a document\n\t\t\t\t\tif ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&\n\t\t\t\t\t\tcontains( context, elem ) && elem.id === m ) {\n\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Speed-up: Sizzle(\"TAG\")\n\t\t\t} else if ( match[2] ) {\n\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\treturn results;\n\n\t\t\t// Speed-up: Sizzle(\".CLASS\")\n\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName ) {\n\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\treturn results;\n\t\t\t}\n\t\t}\n\n\t\t// QSA path\n\t\tif ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\t\t\tnid = old = expando;\n\t\t\tnewContext = context;\n\t\t\tnewSelector = nodeType !== 1 && selector;\n\n\t\t\t// qSA works strangely on Element-rooted queries\n\t\t\t// We can work around this by specifying an extra ID on the root\n\t\t\t// and working up from there (Thanks to Andrew Dupont for the technique)\n\t\t\t// IE 8 doesn't work on object elements\n\t\t\tif ( nodeType === 1 && context.nodeName.toLowerCase() !== \"object\" ) {\n\t\t\t\tgroups = tokenize( selector );\n\n\t\t\t\tif ( (old = context.getAttribute(\"id\")) ) {\n\t\t\t\t\tnid = old.replace( rescape, \"\\\\$&\" );\n\t\t\t\t} else {\n\t\t\t\t\tcontext.setAttribute( \"id\", nid );\n\t\t\t\t}\n\t\t\t\tnid = \"[id='\" + nid + \"'] \";\n\n\t\t\t\ti = groups.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tgroups[i] = nid + toSelector( groups[i] );\n\t\t\t\t}\n\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) || context;\n\t\t\t\tnewSelector = groups.join(\",\");\n\t\t\t}\n\n\t\t\tif ( newSelector ) {\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch(qsaError) {\n\t\t\t\t} finally {\n\t\t\t\t\tif ( !old ) {\n\t\t\t\t\t\tcontext.removeAttribute(\"id\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {Function(string, Object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created div and expects a boolean result\n */\nfunction assert( fn ) {\n\tvar div = document.createElement(\"div\");\n\n\ttry {\n\t\treturn !!fn( div );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( div.parentNode ) {\n\t\t\tdiv.parentNode.removeChild( div );\n\t\t}\n\t\t// release memory in IE\n\t\tdiv = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = attrs.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\t( ~b.sourceIndex || MAX_NEGATIVE ) -\n\t\t\t( ~a.sourceIndex || MAX_NEGATIVE );\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, parent,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// If no document and documentElement is available, return\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Set our document\n\tdocument = doc;\n\tdocElem = doc.documentElement;\n\tparent = doc.defaultView;\n\n\t// Support: IE>8\n\t// If iframe document is assigned to \"document\" variable and if iframe has been reloaded,\n\t// IE will throw \"permission denied\" error when accessing \"document\" variable, see jQuery #13936\n\t// IE6-8 do not support the defaultView property so parent will be undefined\n\tif ( parent && parent !== parent.top ) {\n\t\t// IE11 does not have attachEvent, so all must suffer\n\t\tif ( parent.addEventListener ) {\n\t\t\tparent.addEventListener( \"unload\", unloadHandler, false );\n\t\t} else if ( parent.attachEvent ) {\n\t\t\tparent.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Support tests\n\t---------------------------------------------------------------------- */\n\tdocumentIsHTML = !isXML( doc );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( div ) {\n\t\tdiv.className = \"i\";\n\t\treturn !div.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( div ) {\n\t\tdiv.appendChild( doc.createComment(\"\") );\n\t\treturn !div.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( doc.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( div ) {\n\t\tdocElem.appendChild( div ).id = expando;\n\t\treturn !doc.getElementsByName || !doc.getElementsByName( expando ).length;\n\t});\n\n\t// ID find and filter\n\tif ( support.getById ) {\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar m = context.getElementById( id );\n\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\treturn m && m.parentNode ? [ m ] : [];\n\t\t\t}\n\t\t};\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t} else {\n\t\t// Support: IE6/7\n\t\t// getElementById is not reliable as a find shortcut\n\t\tdelete Expr.find[\"ID\"];\n\n\t\tExpr.filter[\"ID\"] =  function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See http://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( div ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// http://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( div ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\f]' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( div.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !div.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+\n\t\t\tif ( !div.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibing-combinator selector` fails\n\t\t\tif ( !div.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( div ) {\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = doc.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tdiv.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( div.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":enabled\").length ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tdiv.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( div ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( div, \"div\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( div, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully does not implement inclusive descendent\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === doc ? -1 :\n\t\t\t\tb === doc ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn doc;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, diff, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || (parent[ expando ] = {});\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[0] === dirruns && cache[1];\n\t\t\t\t\t\t\tdiff = cache[0] === dirruns && cache[2];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t} else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {\n\t\t\t\t\t\t\tdiff = cache[1];\n\n\t\t\t\t\t\t// xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\tif ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {\n\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t(node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": function( elem ) {\n\t\t\treturn elem.disabled === false;\n\t\t},\n\n\t\t\"disabled\": function( elem ) {\n\t\t\treturn elem.disabled === true;\n\t\t},\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t//   but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tcheckNonElements = base && dir === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from dir caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\t\t\t\t\t\tif ( (oldCache = outerCache[ dir ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\touterCache[ dir ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context !== document && context;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Keep `i` a string if there are no elements so `matchedCount` will be \"00\" below\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\tmatchedCount += i;\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n *  selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n *  selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is no seed and only one group\n\tif ( match.length === 1 ) {\n\n\t\t// Take a shortcut and set the context if the root selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tsupport.getById && context.nodeType === 9 && documentIsHTML &&\n\t\t\t\tExpr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\trsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( div1 ) {\n\t// Should return 1, but returns 4 (following)\n\treturn div1.compareDocumentPosition( document.createElement(\"div\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( div ) {\n\tdiv.innerHTML = \"<a href='#'></a>\";\n\treturn div.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( div ) {\n\tdiv.innerHTML = \"<input/>\";\n\tdiv.firstChild.setAttribute( \"value\", \"\" );\n\treturn div.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( div ) {\n\treturn div.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\njQuery.expr[\":\"] = jQuery.expr.pseudos;\njQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\n\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = (/^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/);\n\n\n\nvar risSimple = /^.[^:#\\[\\.,]*$/;\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( jQuery.isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\t/* jshint -W018 */\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t});\n\n\t}\n\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t});\n\n\t}\n\n\tif ( typeof qualifier === \"string\" ) {\n\t\tif ( risSimple.test( qualifier ) ) {\n\t\t\treturn jQuery.filter( qualifier, elements, not );\n\t\t}\n\n\t\tqualifier = jQuery.filter( qualifier, elements );\n\t}\n\n\treturn jQuery.grep( elements, function( elem ) {\n\t\treturn ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not;\n\t});\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\treturn elems.length === 1 && elem.nodeType === 1 ?\n\t\tjQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :\n\t\tjQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\t\treturn elem.nodeType === 1;\n\t\t}));\n};\n\njQuery.fn.extend({\n\tfind: function( selector ) {\n\t\tvar i,\n\t\t\tret = [],\n\t\t\tself = this,\n\t\t\tlen = self.length;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter(function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}) );\n\t\t}\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\t// Needed because $( selector, context ) becomes $( context ).find( selector )\n\t\tret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );\n\t\tret.selector = this.selector ? this.selector + \" \" + selector : selector;\n\t\treturn ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], false) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], true) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n});\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// Use the correct document accordingly with window argument (sandbox)\n\tdocument = window.document,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\n\n\tinit = jQuery.fn.init = function( selector, context ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector.charAt(0) === \"<\" && selector.charAt( selector.length - 1 ) === \">\" && selector.length >= 3 ) {\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && (match[1] || !context) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[1] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[0] : context;\n\n\t\t\t\t\t// scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[1],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( jQuery.isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[2] );\n\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Handle the case where IE and Opera return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id !== match[2] ) {\n\t\t\t\t\t\t\treturn rootjQuery.find( selector );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Otherwise, we inject the element directly into the jQuery object\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t\tthis[0] = elem;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.context = document;\n\t\t\t\t\tthis.selector = selector;\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || rootjQuery ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis.context = this[0] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( jQuery.isFunction( selector ) ) {\n\t\t\treturn typeof rootjQuery.ready !== \"undefined\" ?\n\t\t\t\trootjQuery.ready( selector ) :\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\tif ( selector.selector !== undefined ) {\n\t\t\tthis.selector = selector.selector;\n\t\t\tthis.context = selector.context;\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\t// methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.extend({\n\tdir: function( elem, dir, until ) {\n\t\tvar matched = [],\n\t\t\tcur = elem[ dir ];\n\n\t\twhile ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {\n\t\t\tif ( cur.nodeType === 1 ) {\n\t\t\t\tmatched.push( cur );\n\t\t\t}\n\t\t\tcur = cur[dir];\n\t\t}\n\t\treturn matched;\n\t},\n\n\tsibling: function( n, elem ) {\n\t\tvar r = [];\n\n\t\tfor ( ; n; n = n.nextSibling ) {\n\t\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\t\tr.push( n );\n\t\t\t}\n\t\t}\n\n\t\treturn r;\n\t}\n});\n\njQuery.fn.extend({\n\thas: function( target ) {\n\t\tvar i,\n\t\t\ttargets = jQuery( target, this ),\n\t\t\tlen = targets.length;\n\n\t\treturn this.filter(function() {\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[i] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\tpos = rneedsContext.test( selectors ) || typeof selectors !== \"string\" ?\n\t\t\t\tjQuery( selectors, context || this.context ) :\n\t\t\t\t0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tfor ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {\n\t\t\t\t// Always skip document fragments\n\t\t\t\tif ( cur.nodeType < 11 && (pos ?\n\t\t\t\t\tpos.index(cur) > -1 :\n\n\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\tjQuery.find.matchesSelector(cur, selectors)) ) {\n\n\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within\n\t// the matched set of elements\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn jQuery.inArray( this[0], jQuery( elem ) );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn jQuery.inArray(\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[0] : elem, this );\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.unique(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter(selector)\n\t\t);\n\t}\n});\n\nfunction sibling( cur, dir ) {\n\tdo {\n\t\tcur = cur[ dir ];\n\t} while ( cur && cur.nodeType !== 1 );\n\n\treturn cur;\n}\n\njQuery.each({\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn jQuery.dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn jQuery.sibling( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\treturn jQuery.nodeName( elem, \"iframe\" ) ?\n\t\t\telem.contentDocument || elem.contentWindow.document :\n\t\t\tjQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar ret = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tret = jQuery.filter( selector, ret );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tret = jQuery.unique( ret );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tret = ret.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n});\nvar rnotwhite = (/\\S+/g);\n\n\n\n// String to Object options format cache\nvar optionsCache = {};\n\n// Convert String-formatted options into Object-formatted ones and store in cache\nfunction createOptions( options ) {\n\tvar object = optionsCache[ options ] = {};\n\tjQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t});\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\t( optionsCache[ options ] || createOptions( options ) ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\t\t// Last fire value (for non-forgettable lists)\n\t\tmemory,\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\t\t// End of the loop when firing\n\t\tfiringLength,\n\t\t// Index of currently firing callback (modified by remove if needed)\n\t\tfiringIndex,\n\t\t// First callback to fire (used internally by add and fireWith)\n\t\tfiringStart,\n\t\t// Actual callback list\n\t\tlist = [],\n\t\t// Stack of fire calls for repeatable lists\n\t\tstack = !options.once && [],\n\t\t// Fire callbacks\n\t\tfire = function( data ) {\n\t\t\tmemory = options.memory && data;\n\t\t\tfired = true;\n\t\t\tfiringIndex = firingStart || 0;\n\t\t\tfiringStart = 0;\n\t\t\tfiringLength = list.length;\n\t\t\tfiring = true;\n\t\t\tfor ( ; list && firingIndex < firingLength; firingIndex++ ) {\n\t\t\t\tif ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {\n\t\t\t\t\tmemory = false; // To prevent further calls using add\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfiring = false;\n\t\t\tif ( list ) {\n\t\t\t\tif ( stack ) {\n\t\t\t\t\tif ( stack.length ) {\n\t\t\t\t\t\tfire( stack.shift() );\n\t\t\t\t\t}\n\t\t\t\t} else if ( memory ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t} else {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Actual Callbacks object\n\t\tself = {\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\t// First, we save the current length\n\t\t\t\t\tvar start = list.length;\n\t\t\t\t\t(function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tvar type = jQuery.type( arg );\n\t\t\t\t\t\t\tif ( type === \"function\" ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && type !== \"string\" ) {\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t})( arguments );\n\t\t\t\t\t// Do we need to add the callbacks to the\n\t\t\t\t\t// current firing batch?\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tfiringLength = list.length;\n\t\t\t\t\t// With memory, if we're not firing then\n\t\t\t\t\t// we should call right away\n\t\t\t\t\t} else if ( memory ) {\n\t\t\t\t\t\tfiringStart = start;\n\t\t\t\t\t\tfire( memory );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\t\tvar index;\n\t\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\t\tlist.splice( index, 1 );\n\t\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\t\t\tif ( index <= firingLength ) {\n\t\t\t\t\t\t\t\t\tfiringLength--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );\n\t\t\t},\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tlist = [];\n\t\t\t\tfiringLength = 0;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Have the list do nothing anymore\n\t\t\tdisable: function() {\n\t\t\t\tlist = stack = memory = undefined;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it disabled?\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\t\t\t// Lock the list in its current state\n\t\t\tlock: function() {\n\t\t\t\tstack = undefined;\n\t\t\t\tif ( !memory ) {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it locked?\n\t\t\tlocked: function() {\n\t\t\t\treturn !stack;\n\t\t\t},\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( list && ( !fired || stack ) ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tstack.push( args );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfire( args );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\njQuery.extend({\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\t\t\t\t// action, add listener, listener list, final state\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), \"rejected\" ],\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks(\"memory\") ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\tthen: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\t\t\t\t\treturn jQuery.Deferred(function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\t\t\t\t\tvar fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];\n\t\t\t\t\t\t\t// deferred[ done | fail | progress ] for forwarding actions to newDefer\n\t\t\t\t\t\t\tdeferred[ tuple[1] ](function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && jQuery.isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject )\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t}).promise();\n\t\t\t\t},\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Keep pipe for back-compat\n\t\tpromise.pipe = promise.then;\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 3 ];\n\n\t\t\t// promise[ done | fail | progress ] = list.add\n\t\t\tpromise[ tuple[1] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(function() {\n\t\t\t\t\t// state = [ resolved | rejected ]\n\t\t\t\t\tstate = stateString;\n\n\t\t\t\t// [ reject_list | resolve_list ].disable; progress_list.lock\n\t\t\t\t}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );\n\t\t\t}\n\n\t\t\t// deferred[ resolve | reject | notify ]\n\t\t\tdeferred[ tuple[0] ] = function() {\n\t\t\t\tdeferred[ tuple[0] + \"With\" ]( this === deferred ? promise : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\t\t\tdeferred[ tuple[0] + \"With\" ] = list.fireWith;\n\t\t});\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( subordinate /* , ..., subordinateN */ ) {\n\t\tvar i = 0,\n\t\t\tresolveValues = slice.call( arguments ),\n\t\t\tlength = resolveValues.length,\n\n\t\t\t// the count of uncompleted subordinates\n\t\t\tremaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,\n\n\t\t\t// the master Deferred. If resolveValues consist of only a single Deferred, just use that.\n\t\t\tdeferred = remaining === 1 ? subordinate : jQuery.Deferred(),\n\n\t\t\t// Update function for both resolve and progress values\n\t\t\tupdateFunc = function( i, contexts, values ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tcontexts[ i ] = this;\n\t\t\t\t\tvalues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( values === progressValues ) {\n\t\t\t\t\t\tdeferred.notifyWith( contexts, values );\n\n\t\t\t\t\t} else if ( !(--remaining) ) {\n\t\t\t\t\t\tdeferred.resolveWith( contexts, values );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tprogressValues, progressContexts, resolveContexts;\n\n\t\t// add listeners to Deferred subordinates; treat others as resolved\n\t\tif ( length > 1 ) {\n\t\t\tprogressValues = new Array( length );\n\t\t\tprogressContexts = new Array( length );\n\t\t\tresolveContexts = new Array( length );\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {\n\t\t\t\t\tresolveValues[ i ].promise()\n\t\t\t\t\t\t.done( updateFunc( i, resolveContexts, resolveValues ) )\n\t\t\t\t\t\t.fail( deferred.reject )\n\t\t\t\t\t\t.progress( updateFunc( i, progressContexts, progressValues ) );\n\t\t\t\t} else {\n\t\t\t\t\t--remaining;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// if we're not waiting on anything, resolve the master\n\t\tif ( !remaining ) {\n\t\t\tdeferred.resolveWith( resolveContexts, resolveValues );\n\t\t}\n\n\t\treturn deferred.promise();\n\t}\n});\n\n\n// The deferred used on DOM ready\nvar readyList;\n\njQuery.fn.ready = function( fn ) {\n\t// Add the callback\n\tjQuery.ready.promise().done( fn );\n\n\treturn this;\n};\n\njQuery.extend({\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Hold (or release) the ready event\n\tholdReady: function( hold ) {\n\t\tif ( hold ) {\n\t\t\tjQuery.readyWait++;\n\t\t} else {\n\t\t\tjQuery.ready( true );\n\t\t}\n\t},\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).\n\t\tif ( !document.body ) {\n\t\t\treturn setTimeout( jQuery.ready );\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\n\t\t// Trigger any bound ready events\n\t\tif ( jQuery.fn.triggerHandler ) {\n\t\t\tjQuery( document ).triggerHandler( \"ready\" );\n\t\t\tjQuery( document ).off( \"ready\" );\n\t\t}\n\t}\n});\n\n/**\n * Clean-up method for dom ready events\n */\nfunction detach() {\n\tif ( document.addEventListener ) {\n\t\tdocument.removeEventListener( \"DOMContentLoaded\", completed, false );\n\t\twindow.removeEventListener( \"load\", completed, false );\n\n\t} else {\n\t\tdocument.detachEvent( \"onreadystatechange\", completed );\n\t\twindow.detachEvent( \"onload\", completed );\n\t}\n}\n\n/**\n * The ready event handler and self cleanup method\n */\nfunction completed() {\n\t// readyState === \"complete\" is good enough for us to call the dom ready in oldIE\n\tif ( document.addEventListener || event.type === \"load\" || document.readyState === \"complete\" ) {\n\t\tdetach();\n\t\tjQuery.ready();\n\t}\n}\n\njQuery.ready.promise = function( obj ) {\n\tif ( !readyList ) {\n\n\t\treadyList = jQuery.Deferred();\n\n\t\t// Catch cases where $(document).ready() is called after the browser event has already occurred.\n\t\t// we once tried to use readyState \"interactive\" here, but it caused issues like the one\n\t\t// discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15\n\t\tif ( document.readyState === \"complete\" ) {\n\t\t\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\t\t\tsetTimeout( jQuery.ready );\n\n\t\t// Standards-based browsers support DOMContentLoaded\n\t\t} else if ( document.addEventListener ) {\n\t\t\t// Use the handy event callback\n\t\t\tdocument.addEventListener( \"DOMContentLoaded\", completed, false );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.addEventListener( \"load\", completed, false );\n\n\t\t// If IE event model is used\n\t\t} else {\n\t\t\t// Ensure firing before onload, maybe late but safe also for iframes\n\t\t\tdocument.attachEvent( \"onreadystatechange\", completed );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.attachEvent( \"onload\", completed );\n\n\t\t\t// If IE and not a frame\n\t\t\t// continually check to see if the document is ready\n\t\t\tvar top = false;\n\n\t\t\ttry {\n\t\t\t\ttop = window.frameElement == null && document.documentElement;\n\t\t\t} catch(e) {}\n\n\t\t\tif ( top && top.doScroll ) {\n\t\t\t\t(function doScrollCheck() {\n\t\t\t\t\tif ( !jQuery.isReady ) {\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t// Use the trick by Diego Perini\n\t\t\t\t\t\t\t// http://javascript.nwbox.com/IEContentLoaded/\n\t\t\t\t\t\t\ttop.doScroll(\"left\");\n\t\t\t\t\t\t} catch(e) {\n\t\t\t\t\t\t\treturn setTimeout( doScrollCheck, 50 );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// detach all dom ready events\n\t\t\t\t\t\tdetach();\n\n\t\t\t\t\t\t// and execute any waiting functions\n\t\t\t\t\t\tjQuery.ready();\n\t\t\t\t\t}\n\t\t\t\t})();\n\t\t\t}\n\t\t}\n\t}\n\treturn readyList.promise( obj );\n};\n\n\nvar strundefined = typeof undefined;\n\n\n\n// Support: IE<9\n// Iteration over object's inherited properties before its own\nvar i;\nfor ( i in jQuery( support ) ) {\n\tbreak;\n}\nsupport.ownLast = i !== \"0\";\n\n// Note: most support tests are defined in their respective modules.\n// false until the test is run\nsupport.inlineBlockNeedsLayout = false;\n\n// Execute ASAP in case we need to set body.style.zoom\njQuery(function() {\n\t// Minified: var a,b,c,d\n\tvar val, div, body, container;\n\n\tbody = document.getElementsByTagName( \"body\" )[ 0 ];\n\tif ( !body || !body.style ) {\n\t\t// Return for frameset docs that don't have a body\n\t\treturn;\n\t}\n\n\t// Setup\n\tdiv = document.createElement( \"div\" );\n\tcontainer = document.createElement( \"div\" );\n\tcontainer.style.cssText = \"position:absolute;border:0;width:0;height:0;top:0;left:-9999px\";\n\tbody.appendChild( container ).appendChild( div );\n\n\tif ( typeof div.style.zoom !== strundefined ) {\n\t\t// Support: IE<8\n\t\t// Check if natively block-level elements act like inline-block\n\t\t// elements when setting their display to 'inline' and giving\n\t\t// them layout\n\t\tdiv.style.cssText = \"display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1\";\n\n\t\tsupport.inlineBlockNeedsLayout = val = div.offsetWidth === 3;\n\t\tif ( val ) {\n\t\t\t// Prevent IE 6 from affecting layout for positioned elements #11048\n\t\t\t// Prevent IE from shrinking the body in IE 7 mode #12869\n\t\t\t// Support: IE<8\n\t\t\tbody.style.zoom = 1;\n\t\t}\n\t}\n\n\tbody.removeChild( container );\n});\n\n\n\n\n(function() {\n\tvar div = document.createElement( \"div\" );\n\n\t// Execute the test only if not already executed in another module.\n\tif (support.deleteExpando == null) {\n\t\t// Support: IE<9\n\t\tsupport.deleteExpando = true;\n\t\ttry {\n\t\t\tdelete div.test;\n\t\t} catch( e ) {\n\t\t\tsupport.deleteExpando = false;\n\t\t}\n\t}\n\n\t// Null elements to avoid leaks in IE.\n\tdiv = null;\n})();\n\n\n/**\n * Determines whether an object can have data\n */\njQuery.acceptData = function( elem ) {\n\tvar noData = jQuery.noData[ (elem.nodeName + \" \").toLowerCase() ],\n\t\tnodeType = +elem.nodeType || 1;\n\n\t// Do not set data on non-element DOM nodes because it will not be cleared (#8335).\n\treturn nodeType !== 1 && nodeType !== 9 ?\n\t\tfalse :\n\n\t\t// Nodes accept data unless otherwise specified; rejection can be conditional\n\t\t!noData || noData !== true && elem.getAttribute(\"classid\") === noData;\n};\n\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /([A-Z])/g;\n\nfunction dataAttr( elem, key, data ) {\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\n\t\tvar name = \"data-\" + key.replace( rmultiDash, \"-$1\" ).toLowerCase();\n\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = data === \"true\" ? true :\n\t\t\t\t\tdata === \"false\" ? false :\n\t\t\t\t\tdata === \"null\" ? null :\n\t\t\t\t\t// Only convert to a number if it doesn't change the string\n\t\t\t\t\t+data + \"\" === data ? +data :\n\t\t\t\t\trbrace.test( data ) ? jQuery.parseJSON( data ) :\n\t\t\t\t\tdata;\n\t\t\t} catch( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tjQuery.data( elem, key, data );\n\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\n\treturn data;\n}\n\n// checks a cache object for emptiness\nfunction isEmptyDataObject( obj ) {\n\tvar name;\n\tfor ( name in obj ) {\n\n\t\t// if the public data object is empty, the private is still empty\n\t\tif ( name === \"data\" && jQuery.isEmptyObject( obj[name] ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( name !== \"toJSON\" ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nfunction internalData( elem, name, data, pvt /* Internal Use Only */ ) {\n\tif ( !jQuery.acceptData( elem ) ) {\n\t\treturn;\n\t}\n\n\tvar ret, thisCache,\n\t\tinternalKey = jQuery.expando,\n\n\t\t// We have to handle DOM nodes and JS objects differently because IE6-7\n\t\t// can't GC object references properly across the DOM-JS boundary\n\t\tisNode = elem.nodeType,\n\n\t\t// Only DOM nodes need the global jQuery cache; JS object data is\n\t\t// attached directly to the object so GC can occur automatically\n\t\tcache = isNode ? jQuery.cache : elem,\n\n\t\t// Only defining an ID for JS objects if its cache already exists allows\n\t\t// the code to shortcut on the same path as a DOM node with no cache\n\t\tid = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;\n\n\t// Avoid doing any more work than we need to when trying to get data on an\n\t// object that has no data at all\n\tif ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === \"string\" ) {\n\t\treturn;\n\t}\n\n\tif ( !id ) {\n\t\t// Only DOM nodes need a new unique ID for each element since their data\n\t\t// ends up in the global cache\n\t\tif ( isNode ) {\n\t\t\tid = elem[ internalKey ] = deletedIds.pop() || jQuery.guid++;\n\t\t} else {\n\t\t\tid = internalKey;\n\t\t}\n\t}\n\n\tif ( !cache[ id ] ) {\n\t\t// Avoid exposing jQuery metadata on plain JS objects when the object\n\t\t// is serialized using JSON.stringify\n\t\tcache[ id ] = isNode ? {} : { toJSON: jQuery.noop };\n\t}\n\n\t// An object can be passed to jQuery.data instead of a key/value pair; this gets\n\t// shallow copied over onto the existing cache\n\tif ( typeof name === \"object\" || typeof name === \"function\" ) {\n\t\tif ( pvt ) {\n\t\t\tcache[ id ] = jQuery.extend( cache[ id ], name );\n\t\t} else {\n\t\t\tcache[ id ].data = jQuery.extend( cache[ id ].data, name );\n\t\t}\n\t}\n\n\tthisCache = cache[ id ];\n\n\t// jQuery data() is stored in a separate object inside the object's internal data\n\t// cache in order to avoid key collisions between internal data and user-defined\n\t// data.\n\tif ( !pvt ) {\n\t\tif ( !thisCache.data ) {\n\t\t\tthisCache.data = {};\n\t\t}\n\n\t\tthisCache = thisCache.data;\n\t}\n\n\tif ( data !== undefined ) {\n\t\tthisCache[ jQuery.camelCase( name ) ] = data;\n\t}\n\n\t// Check for both converted-to-camel and non-converted data property names\n\t// If a data property was specified\n\tif ( typeof name === \"string\" ) {\n\n\t\t// First Try to find as-is property data\n\t\tret = thisCache[ name ];\n\n\t\t// Test for null|undefined property data\n\t\tif ( ret == null ) {\n\n\t\t\t// Try to find the camelCased property\n\t\t\tret = thisCache[ jQuery.camelCase( name ) ];\n\t\t}\n\t} else {\n\t\tret = thisCache;\n\t}\n\n\treturn ret;\n}\n\nfunction internalRemoveData( elem, name, pvt ) {\n\tif ( !jQuery.acceptData( elem ) ) {\n\t\treturn;\n\t}\n\n\tvar thisCache, i,\n\t\tisNode = elem.nodeType,\n\n\t\t// See jQuery.data for more information\n\t\tcache = isNode ? jQuery.cache : elem,\n\t\tid = isNode ? elem[ jQuery.expando ] : jQuery.expando;\n\n\t// If there is already no cache entry for this object, there is no\n\t// purpose in continuing\n\tif ( !cache[ id ] ) {\n\t\treturn;\n\t}\n\n\tif ( name ) {\n\n\t\tthisCache = pvt ? cache[ id ] : cache[ id ].data;\n\n\t\tif ( thisCache ) {\n\n\t\t\t// Support array or space separated string names for data keys\n\t\t\tif ( !jQuery.isArray( name ) ) {\n\n\t\t\t\t// try the string as a key before any manipulation\n\t\t\t\tif ( name in thisCache ) {\n\t\t\t\t\tname = [ name ];\n\t\t\t\t} else {\n\n\t\t\t\t\t// split the camel cased version by spaces unless a key with the spaces exists\n\t\t\t\t\tname = jQuery.camelCase( name );\n\t\t\t\t\tif ( name in thisCache ) {\n\t\t\t\t\t\tname = [ name ];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tname = name.split(\" \");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If \"name\" is an array of keys...\n\t\t\t\t// When data is initially created, via (\"key\", \"val\") signature,\n\t\t\t\t// keys will be converted to camelCase.\n\t\t\t\t// Since there is no way to tell _how_ a key was added, remove\n\t\t\t\t// both plain key and camelCase key. #12786\n\t\t\t\t// This will only penalize the array argument path.\n\t\t\t\tname = name.concat( jQuery.map( name, jQuery.camelCase ) );\n\t\t\t}\n\n\t\t\ti = name.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete thisCache[ name[i] ];\n\t\t\t}\n\n\t\t\t// If there is no data left in the cache, we want to continue\n\t\t\t// and let the cache object itself get destroyed\n\t\t\tif ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\t// See jQuery.data for more information\n\tif ( !pvt ) {\n\t\tdelete cache[ id ].data;\n\n\t\t// Don't destroy the parent cache unless the internal data object\n\t\t// had been the only thing left in it\n\t\tif ( !isEmptyDataObject( cache[ id ] ) ) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// Destroy the cache\n\tif ( isNode ) {\n\t\tjQuery.cleanData( [ elem ], true );\n\n\t// Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)\n\t/* jshint eqeqeq: false */\n\t} else if ( support.deleteExpando || cache != cache.window ) {\n\t\t/* jshint eqeqeq: true */\n\t\tdelete cache[ id ];\n\n\t// When all else fails, null\n\t} else {\n\t\tcache[ id ] = null;\n\t}\n}\n\njQuery.extend({\n\tcache: {},\n\n\t// The following elements (space-suffixed to avoid Object.prototype collisions)\n\t// throw uncatchable exceptions if you attempt to set expando properties\n\tnoData: {\n\t\t\"applet \": true,\n\t\t\"embed \": true,\n\t\t// ...but Flash objects (which have this classid) *can* handle expandos\n\t\t\"object \": \"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"\n\t},\n\n\thasData: function( elem ) {\n\t\telem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];\n\t\treturn !!elem && !isEmptyDataObject( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn internalData( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\treturn internalRemoveData( elem, name );\n\t},\n\n\t// For internal use only.\n\t_data: function( elem, name, data ) {\n\t\treturn internalData( elem, name, data, true );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\treturn internalRemoveData( elem, name, true );\n\t}\n});\n\njQuery.fn.extend({\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[0],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Special expections of .data basically thwart jQuery.access,\n\t\t// so implement the relevant behavior ourselves\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = jQuery.data( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !jQuery._data( elem, \"parsedAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE11+\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = jQuery.camelCase( name.slice(5) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tjQuery._data( elem, \"parsedAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each(function() {\n\t\t\t\tjQuery.data( this, key );\n\t\t\t});\n\t\t}\n\n\t\treturn arguments.length > 1 ?\n\n\t\t\t// Sets one value\n\t\t\tthis.each(function() {\n\t\t\t\tjQuery.data( this, key, value );\n\t\t\t}) :\n\n\t\t\t// Gets one value\n\t\t\t// Try to fetch any internally stored data first\n\t\t\telem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : undefined;\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.removeData( this, key );\n\t\t});\n\t}\n});\n\n\njQuery.extend({\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = jQuery._data( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || jQuery.isArray(data) ) {\n\t\t\t\t\tqueue = jQuery._data( elem, type, jQuery.makeArray(data) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// not intended for public consumption - generates a queueHooks object, or returns the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn jQuery._data( elem, key ) || jQuery._data( elem, key, {\n\t\t\tempty: jQuery.Callbacks(\"once memory\").add(function() {\n\t\t\t\tjQuery._removeData( elem, type + \"queue\" );\n\t\t\t\tjQuery._removeData( elem, key );\n\t\t\t})\n\t\t});\n\t}\n});\n\njQuery.fn.extend({\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[0], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each(function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[0] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t});\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t});\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = jQuery._data( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n});\nvar pnum = (/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/).source;\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar isHidden = function( elem, el ) {\n\t\t// isHidden might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\t\treturn jQuery.css( elem, \"display\" ) === \"none\" || !jQuery.contains( elem.ownerDocument, elem );\n\t};\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlength = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( jQuery.type( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\tjQuery.access( elems, fn, i, key[i], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !jQuery.isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tfn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn chainable ?\n\t\telems :\n\n\t\t// Gets\n\t\tbulk ?\n\t\t\tfn.call( elems ) :\n\t\t\tlength ? fn( elems[0], key ) : emptyGet;\n};\nvar rcheckableType = (/^(?:checkbox|radio)$/i);\n\n\n\n(function() {\n\t// Minified: var a,b,c\n\tvar input = document.createElement( \"input\" ),\n\t\tdiv = document.createElement( \"div\" ),\n\t\tfragment = document.createDocumentFragment();\n\n\t// Setup\n\tdiv.innerHTML = \"  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>\";\n\n\t// IE strips leading whitespace when .innerHTML is used\n\tsupport.leadingWhitespace = div.firstChild.nodeType === 3;\n\n\t// Make sure that tbody elements aren't automatically inserted\n\t// IE will insert them into empty tables\n\tsupport.tbody = !div.getElementsByTagName( \"tbody\" ).length;\n\n\t// Make sure that link elements get serialized correctly by innerHTML\n\t// This requires a wrapper element in IE\n\tsupport.htmlSerialize = !!div.getElementsByTagName( \"link\" ).length;\n\n\t// Makes sure cloning an html5 element does not cause problems\n\t// Where outerHTML is undefined, this still works\n\tsupport.html5Clone =\n\t\tdocument.createElement( \"nav\" ).cloneNode( true ).outerHTML !== \"<:nav></:nav>\";\n\n\t// Check if a disconnected checkbox will retain its checked\n\t// value of true after appended to the DOM (IE6/7)\n\tinput.type = \"checkbox\";\n\tinput.checked = true;\n\tfragment.appendChild( input );\n\tsupport.appendChecked = input.checked;\n\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\t// Support: IE6-IE11+\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// #11217 - WebKit loses check when the name is after the checked attribute\n\tfragment.appendChild( div );\n\tdiv.innerHTML = \"<input type='radio' checked='checked' name='t'/>\";\n\n\t// Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3\n\t// old WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE<9\n\t// Opera does not clone events (and typeof div.attachEvent === undefined).\n\t// IE9-10 clones events bound via attachEvent, but they don't trigger with .click()\n\tsupport.noCloneEvent = true;\n\tif ( div.attachEvent ) {\n\t\tdiv.attachEvent( \"onclick\", function() {\n\t\t\tsupport.noCloneEvent = false;\n\t\t});\n\n\t\tdiv.cloneNode( true ).click();\n\t}\n\n\t// Execute the test only if not already executed in another module.\n\tif (support.deleteExpando == null) {\n\t\t// Support: IE<9\n\t\tsupport.deleteExpando = true;\n\t\ttry {\n\t\t\tdelete div.test;\n\t\t} catch( e ) {\n\t\t\tsupport.deleteExpando = false;\n\t\t}\n\t}\n})();\n\n\n(function() {\n\tvar i, eventName,\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Support: IE<9 (lack submit/change bubble), Firefox 23+ (lack focusin event)\n\tfor ( i in { submit: true, change: true, focusin: true }) {\n\t\teventName = \"on\" + i;\n\n\t\tif ( !(support[ i + \"Bubbles\" ] = eventName in window) ) {\n\t\t\t// Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP)\n\t\t\tdiv.setAttribute( eventName, \"t\" );\n\t\t\tsupport[ i + \"Bubbles\" ] = div.attributes[ eventName ].expando === false;\n\t\t}\n\t}\n\n\t// Null elements to avoid leaks in IE.\n\tdiv = null;\n})();\n\n\nvar rformElems = /^(?:input|select|textarea)$/i,\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu)|click/,\n\trfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)$/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\t\tvar tmp, events, t, handleObjIn,\n\t\t\tspecial, eventHandle, handleObj,\n\t\t\thandlers, type, namespaces, origType,\n\t\t\telemData = jQuery._data( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !(events = elemData.events) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !(eventHandle = elemData.handle) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== strundefined && (!e || jQuery.event.triggered !== e.type) ?\n\t\t\t\t\tjQuery.event.dispatch.apply( eventHandle.elem, arguments ) :\n\t\t\t\t\tundefined;\n\t\t\t};\n\t\t\t// Add elem as a property of the handle fn to prevent a memory leak with IE non-native events\n\t\t\teventHandle.elem = elem;\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend({\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join(\".\")\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !(handlers = events[ type ]) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener/attachEvent if the special events handler returns false\n\t\t\t\tif ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\t\t\t\t\t// Bind the global event handler to the element\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle, false );\n\n\t\t\t\t\t} else if ( elem.attachEvent ) {\n\t\t\t\t\t\telem.attachEvent( \"on\" + type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t\t// Nullify elem to prevent memory leaks in IE\n\t\telem = null;\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\t\tvar j, handleObj, tmp,\n\t\t\torigCount, t, events,\n\t\t\tspecial, handlers, type,\n\t\t\tnamespaces, origType,\n\t\t\telemData = jQuery.hasData( elem ) && jQuery._data( elem );\n\n\t\tif ( !elemData || !(events = elemData.events) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[2] && new RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdelete elemData.handle;\n\n\t\t\t// removeData also checks for emptiness and clears the expando if empty\n\t\t\t// so use it instead of delete\n\t\t\tjQuery._removeData( elem, \"events\" );\n\t\t}\n\t},\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\t\tvar handle, ontype, cur,\n\t\t\tbubbleType, special, tmp, i,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split(\".\") : [];\n\n\t\tcur = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf(\".\") >= 0 ) {\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split(\".\");\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf(\":\") < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join(\".\");\n\t\tevent.namespace_re = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === (elem.ownerDocument || document) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {\n\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( jQuery._data( cur, \"events\" ) || {} )[ event.type ] && jQuery._data( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && jQuery.acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&\n\t\t\t\tjQuery.acceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name name as the event.\n\t\t\t\t// Can't use an .isFunction() check here because IE6/7 fails that test.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\t\t\t\t\ttry {\n\t\t\t\t\t\telem[ type ]();\n\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t// IE<9 dies on focus/blur to hidden element (#1486,#12518)\n\t\t\t\t\t\t// only reproducible on winXP IE8 native, not IE9 in IE8 mode\n\t\t\t\t\t}\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\tdispatch: function( event ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tevent = jQuery.event.fix( event );\n\n\t\tvar i, ret, handleObj, matched, j,\n\t\t\thandlerQueue = [],\n\t\t\targs = slice.call( arguments ),\n\t\t\thandlers = ( jQuery._data( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[0] = event;\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or\n\t\t\t\t// 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )\n\t\t\t\t\t\t\t.apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( (event.result = ret) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar sel, handleObj, matches, i,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\t// Black-hole SVG <use> instance trees (#13180)\n\t\t// Avoid non-left-click bubbling in Firefox (#3861)\n\t\tif ( delegateCount && cur.nodeType && (!event.button || event.type !== \"click\") ) {\n\n\t\t\t/* jshint eqeqeq: false */\n\t\t\tfor ( ; cur != this; cur = cur.parentNode || this ) {\n\t\t\t\t/* jshint eqeqeq: true */\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== \"click\") ) {\n\t\t\t\t\tmatches = [];\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matches[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatches[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) >= 0 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matches[ sel ] ) {\n\t\t\t\t\t\t\tmatches.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matches.length ) {\n\t\t\t\t\t\thandlerQueue.push({ elem: cur, handlers: matches });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\tfix: function( event ) {\n\t\tif ( event[ jQuery.expando ] ) {\n\t\t\treturn event;\n\t\t}\n\n\t\t// Create a writable copy of the event object and normalize some properties\n\t\tvar i, prop, copy,\n\t\t\ttype = event.type,\n\t\t\toriginalEvent = event,\n\t\t\tfixHook = this.fixHooks[ type ];\n\n\t\tif ( !fixHook ) {\n\t\t\tthis.fixHooks[ type ] = fixHook =\n\t\t\t\trmouseEvent.test( type ) ? this.mouseHooks :\n\t\t\t\trkeyEvent.test( type ) ? this.keyHooks :\n\t\t\t\t{};\n\t\t}\n\t\tcopy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;\n\n\t\tevent = new jQuery.Event( originalEvent );\n\n\t\ti = copy.length;\n\t\twhile ( i-- ) {\n\t\t\tprop = copy[ i ];\n\t\t\tevent[ prop ] = originalEvent[ prop ];\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Fix target property (#1925)\n\t\tif ( !event.target ) {\n\t\t\tevent.target = originalEvent.srcElement || document;\n\t\t}\n\n\t\t// Support: Chrome 23+, Safari?\n\t\t// Target should not be a text node (#504, #13143)\n\t\tif ( event.target.nodeType === 3 ) {\n\t\t\tevent.target = event.target.parentNode;\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// For mouse/key events, metaKey==false if it's undefined (#3368, #11328)\n\t\tevent.metaKey = !!event.metaKey;\n\n\t\treturn fixHook.filter ? fixHook.filter( event, originalEvent ) : event;\n\t},\n\n\t// Includes some event props shared by KeyEvent and MouseEvent\n\tprops: \"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"),\n\n\tfixHooks: {},\n\n\tkeyHooks: {\n\t\tprops: \"char charCode key keyCode\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\n\t\t\t// Add which for key events\n\t\t\tif ( event.which == null ) {\n\t\t\t\tevent.which = original.charCode != null ? original.charCode : original.keyCode;\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tmouseHooks: {\n\t\tprops: \"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\t\t\tvar body, eventDoc, doc,\n\t\t\t\tbutton = original.button,\n\t\t\t\tfromElement = original.fromElement;\n\n\t\t\t// Calculate pageX/Y if missing and clientX/Y available\n\t\t\tif ( event.pageX == null && original.clientX != null ) {\n\t\t\t\teventDoc = event.target.ownerDocument || document;\n\t\t\t\tdoc = eventDoc.documentElement;\n\t\t\t\tbody = eventDoc.body;\n\n\t\t\t\tevent.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );\n\t\t\t\tevent.pageY = original.clientY + ( doc && doc.scrollTop  || body && body.scrollTop  || 0 ) - ( doc && doc.clientTop  || body && body.clientTop  || 0 );\n\t\t\t}\n\n\t\t\t// Add relatedTarget, if necessary\n\t\t\tif ( !event.relatedTarget && fromElement ) {\n\t\t\t\tevent.relatedTarget = fromElement === event.target ? original.toElement : fromElement;\n\t\t\t}\n\n\t\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\t\t// Note: button is not normalized, so don't use it\n\t\t\tif ( !event.which && button !== undefined ) {\n\t\t\t\tevent.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tspecial: {\n\t\tload: {\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tfocus: {\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.focus();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t// Support: IE<9\n\t\t\t\t\t\t// If we error on focus to hidden element (#1486, #12518),\n\t\t\t\t\t\t// let .trigger() run the handlers\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusin\"\n\t\t},\n\t\tblur: {\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusout\"\n\t\t},\n\t\tclick: {\n\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\ttrigger: function() {\n\t\t\t\tif ( jQuery.nodeName( this, \"input\" ) && this.type === \"checkbox\" && this.click ) {\n\t\t\t\t\tthis.click();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, don't fire native .click() on links\n\t\t\t_default: function( event ) {\n\t\t\t\treturn jQuery.nodeName( event.target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tsimulate: function( type, elem, event, bubble ) {\n\t\t// Piggyback on a donor event to simulate a different one.\n\t\t// Fake originalEvent to avoid donor's stopPropagation, but if the\n\t\t// simulated event prevents default then we do the same on the donor.\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true,\n\t\t\t\toriginalEvent: {}\n\t\t\t}\n\t\t);\n\t\tif ( bubble ) {\n\t\t\tjQuery.event.trigger( e, null, elem );\n\t\t} else {\n\t\t\tjQuery.event.dispatch.call( elem, e );\n\t\t}\n\t\tif ( e.isDefaultPrevented() ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n};\n\njQuery.removeEvent = document.removeEventListener ?\n\tfunction( elem, type, handle ) {\n\t\tif ( elem.removeEventListener ) {\n\t\t\telem.removeEventListener( type, handle, false );\n\t\t}\n\t} :\n\tfunction( elem, type, handle ) {\n\t\tvar name = \"on\" + type;\n\n\t\tif ( elem.detachEvent ) {\n\n\t\t\t// #8545, #7054, preventing memory leaks for custom events in IE6-8\n\t\t\t// detachEvent needed property on element, by name of that event, to properly expose it to GC\n\t\t\tif ( typeof elem[ name ] === strundefined ) {\n\t\t\t\telem[ name ] = null;\n\t\t\t}\n\n\t\t\telem.detachEvent( name, handle );\n\t\t}\n\t};\n\njQuery.Event = function( src, props ) {\n\t// Allow instantiation without the 'new' keyword\n\tif ( !(this instanceof jQuery.Event) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\t\t\t\t// Support: IE < 9, Android < 4.0\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || jQuery.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\t\tif ( !e ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If preventDefault exists, run it on the original event\n\t\tif ( e.preventDefault ) {\n\t\t\te.preventDefault();\n\n\t\t// Support: IE\n\t\t// Otherwise set the returnValue property of the original event to false\n\t\t} else {\n\t\t\te.returnValue = false;\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\t\tif ( !e ) {\n\t\t\treturn;\n\t\t}\n\t\t// If stopPropagation exists, run it on the original event\n\t\tif ( e.stopPropagation ) {\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\t// Support: IE\n\t\t// Set the cancelBubble property of the original event to true\n\t\te.cancelBubble = true;\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && e.stopImmediatePropagation ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\njQuery.each({\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mousenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || (related !== target && !jQuery.contains( target, related )) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n});\n\n// IE submit delegation\nif ( !support.submitBubbles ) {\n\n\tjQuery.event.special.submit = {\n\t\tsetup: function() {\n\t\t\t// Only need this for delegated form submit events\n\t\t\tif ( jQuery.nodeName( this, \"form\" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Lazy-add a submit handler when a descendant form may potentially be submitted\n\t\t\tjQuery.event.add( this, \"click._submit keypress._submit\", function( e ) {\n\t\t\t\t// Node name check avoids a VML-related crash in IE (#9807)\n\t\t\t\tvar elem = e.target,\n\t\t\t\t\tform = jQuery.nodeName( elem, \"input\" ) || jQuery.nodeName( elem, \"button\" ) ? elem.form : undefined;\n\t\t\t\tif ( form && !jQuery._data( form, \"submitBubbles\" ) ) {\n\t\t\t\t\tjQuery.event.add( form, \"submit._submit\", function( event ) {\n\t\t\t\t\t\tevent._submit_bubble = true;\n\t\t\t\t\t});\n\t\t\t\t\tjQuery._data( form, \"submitBubbles\", true );\n\t\t\t\t}\n\t\t\t});\n\t\t\t// return undefined since we don't need an event listener\n\t\t},\n\n\t\tpostDispatch: function( event ) {\n\t\t\t// If form was submitted by the user, bubble the event up the tree\n\t\t\tif ( event._submit_bubble ) {\n\t\t\t\tdelete event._submit_bubble;\n\t\t\t\tif ( this.parentNode && !event.isTrigger ) {\n\t\t\t\t\tjQuery.event.simulate( \"submit\", this.parentNode, event, true );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tteardown: function() {\n\t\t\t// Only need this for delegated form submit events\n\t\t\tif ( jQuery.nodeName( this, \"form\" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Remove delegated handlers; cleanData eventually reaps submit handlers attached above\n\t\t\tjQuery.event.remove( this, \"._submit\" );\n\t\t}\n\t};\n}\n\n// IE change delegation and checkbox/radio fix\nif ( !support.changeBubbles ) {\n\n\tjQuery.event.special.change = {\n\n\t\tsetup: function() {\n\n\t\t\tif ( rformElems.test( this.nodeName ) ) {\n\t\t\t\t// IE doesn't fire change on a check/radio until blur; trigger it on click\n\t\t\t\t// after a propertychange. Eat the blur-change in special.change.handle.\n\t\t\t\t// This still fires onchange a second time for check/radio after blur.\n\t\t\t\tif ( this.type === \"checkbox\" || this.type === \"radio\" ) {\n\t\t\t\t\tjQuery.event.add( this, \"propertychange._change\", function( event ) {\n\t\t\t\t\t\tif ( event.originalEvent.propertyName === \"checked\" ) {\n\t\t\t\t\t\t\tthis._just_changed = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tjQuery.event.add( this, \"click._change\", function( event ) {\n\t\t\t\t\t\tif ( this._just_changed && !event.isTrigger ) {\n\t\t\t\t\t\t\tthis._just_changed = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Allow triggered, simulated change events (#11500)\n\t\t\t\t\t\tjQuery.event.simulate( \"change\", this, event, true );\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Delegated event; lazy-add a change handler on descendant inputs\n\t\t\tjQuery.event.add( this, \"beforeactivate._change\", function( e ) {\n\t\t\t\tvar elem = e.target;\n\n\t\t\t\tif ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, \"changeBubbles\" ) ) {\n\t\t\t\t\tjQuery.event.add( elem, \"change._change\", function( event ) {\n\t\t\t\t\t\tif ( this.parentNode && !event.isSimulated && !event.isTrigger ) {\n\t\t\t\t\t\t\tjQuery.event.simulate( \"change\", this.parentNode, event, true );\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tjQuery._data( elem, \"changeBubbles\", true );\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\thandle: function( event ) {\n\t\t\tvar elem = event.target;\n\n\t\t\t// Swallow native change events from checkbox/radio, we already triggered them above\n\t\t\tif ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== \"radio\" && elem.type !== \"checkbox\") ) {\n\t\t\t\treturn event.handleObj.handler.apply( this, arguments );\n\t\t\t}\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tjQuery.event.remove( this, \"._change\" );\n\n\t\t\treturn !rformElems.test( this.nodeName );\n\t\t}\n\t};\n}\n\n// Create \"bubbling\" focus and blur events\nif ( !support.focusinBubbles ) {\n\tjQuery.each({ focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );\n\t\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = jQuery._data( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tjQuery._data( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = jQuery._data( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tjQuery._removeData( doc, fix );\n\t\t\t\t} else {\n\t\t\t\t\tjQuery._data( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t});\n}\n\njQuery.fn.extend({\n\n\ton: function( types, selector, data, fn, /*INTERNAL*/ one ) {\n\t\tvar type, origFn;\n\n\t\t// Types can be a map of types/handlers\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-Object, selector, data )\n\t\t\tif ( typeof selector !== \"string\" ) {\n\t\t\t\t// ( types-Object, data )\n\t\t\t\tdata = data || selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.on( type, selector, data, types[ type ], one );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( data == null && fn == null ) {\n\t\t\t// ( types, fn )\n\t\t\tfn = selector;\n\t\t\tdata = selector = undefined;\n\t\t} else if ( fn == null ) {\n\t\t\tif ( typeof selector === \"string\" ) {\n\t\t\t\t// ( types, selector, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = undefined;\n\t\t\t} else {\n\t\t\t\t// ( types, data, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t} else if ( !fn ) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( one === 1 ) {\n\t\t\torigFn = fn;\n\t\t\tfn = function( event ) {\n\t\t\t\t// Can use an empty set, since event contains the info\n\t\t\t\tjQuery().off( event );\n\t\t\t\treturn origFn.apply( this, arguments );\n\t\t\t};\n\t\t\t// Use same guid so caller can remove using origFn\n\t\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.add( this, types, fn, data, selector );\n\t\t});\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn this.on( types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\t\t\t// ( event )  dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t});\n\t},\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t});\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[0];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n});\n\n\nfunction createSafeFragment( document ) {\n\tvar list = nodeNames.split( \"|\" ),\n\t\tsafeFrag = document.createDocumentFragment();\n\n\tif ( safeFrag.createElement ) {\n\t\twhile ( list.length ) {\n\t\t\tsafeFrag.createElement(\n\t\t\t\tlist.pop()\n\t\t\t);\n\t\t}\n\t}\n\treturn safeFrag;\n}\n\nvar nodeNames = \"abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|\" +\n\t\t\"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video\",\n\trinlinejQuery = / jQuery\\d+=\"(?:null|\\d+)\"/g,\n\trnoshimcache = new RegExp(\"<(?:\" + nodeNames + \")[\\\\s/>]\", \"i\"),\n\trleadingWhitespace = /^\\s+/,\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi,\n\trtagName = /<([\\w:]+)/,\n\trtbody = /<tbody/i,\n\trhtml = /<|&#?\\w+;/,\n\trnoInnerhtml = /<(?:script|style|link)/i,\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trscriptType = /^$|\\/(?:java|ecma)script/i,\n\trscriptTypeMasked = /^true\\/(.*)/,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g,\n\n\t// We have to close these tags to support XHTML (#13200)\n\twrapMap = {\n\t\toption: [ 1, \"<select multiple='multiple'>\", \"</select>\" ],\n\t\tlegend: [ 1, \"<fieldset>\", \"</fieldset>\" ],\n\t\tarea: [ 1, \"<map>\", \"</map>\" ],\n\t\tparam: [ 1, \"<object>\", \"</object>\" ],\n\t\tthead: [ 1, \"<table>\", \"</table>\" ],\n\t\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\t\tcol: [ 2, \"<table><tbody></tbody><colgroup>\", \"</colgroup></table>\" ],\n\t\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t\t// IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,\n\t\t// unless wrapped in a div with non-breaking characters in front of it.\n\t\t_default: support.htmlSerialize ? [ 0, \"\", \"\" ] : [ 1, \"X<div>\", \"</div>\"  ]\n\t},\n\tsafeFragment = createSafeFragment( document ),\n\tfragmentDiv = safeFragment.appendChild( document.createElement(\"div\") );\n\nwrapMap.optgroup = wrapMap.option;\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\nfunction getAll( context, tag ) {\n\tvar elems, elem,\n\t\ti = 0,\n\t\tfound = typeof context.getElementsByTagName !== strundefined ? context.getElementsByTagName( tag || \"*\" ) :\n\t\t\ttypeof context.querySelectorAll !== strundefined ? context.querySelectorAll( tag || \"*\" ) :\n\t\t\tundefined;\n\n\tif ( !found ) {\n\t\tfor ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) {\n\t\t\tif ( !tag || jQuery.nodeName( elem, tag ) ) {\n\t\t\t\tfound.push( elem );\n\t\t\t} else {\n\t\t\t\tjQuery.merge( found, getAll( elem, tag ) );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn tag === undefined || tag && jQuery.nodeName( context, tag ) ?\n\t\tjQuery.merge( [ context ], found ) :\n\t\tfound;\n}\n\n// Used in buildFragment, fixes the defaultChecked property\nfunction fixDefaultChecked( elem ) {\n\tif ( rcheckableType.test( elem.type ) ) {\n\t\telem.defaultChecked = elem.checked;\n\t}\n}\n\n// Support: IE<8\n// Manipulating tables requires a tbody\nfunction manipulationTarget( elem, content ) {\n\treturn jQuery.nodeName( elem, \"table\" ) &&\n\t\tjQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ?\n\n\t\telem.getElementsByTagName(\"tbody\")[0] ||\n\t\t\telem.appendChild( elem.ownerDocument.createElement(\"tbody\") ) :\n\t\telem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = (jQuery.find.attr( elem, \"type\" ) !== null) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tvar match = rscriptTypeMasked.exec( elem.type );\n\tif ( match ) {\n\t\telem.type = match[1];\n\t} else {\n\t\telem.removeAttribute(\"type\");\n\t}\n\treturn elem;\n}\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar elem,\n\t\ti = 0;\n\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\t\tjQuery._data( elem, \"globalEval\", !refElements || jQuery._data( refElements[i], \"globalEval\" ) );\n\t}\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\n\tif ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {\n\t\treturn;\n\t}\n\n\tvar type, i, l,\n\t\toldData = jQuery._data( src ),\n\t\tcurData = jQuery._data( dest, oldData ),\n\t\tevents = oldData.events;\n\n\tif ( events ) {\n\t\tdelete curData.handle;\n\t\tcurData.events = {};\n\n\t\tfor ( type in events ) {\n\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t}\n\t\t}\n\t}\n\n\t// make the cloned public data object a copy from the original\n\tif ( curData.data ) {\n\t\tcurData.data = jQuery.extend( {}, curData.data );\n\t}\n}\n\nfunction fixCloneNodeIssues( src, dest ) {\n\tvar nodeName, e, data;\n\n\t// We do not need to do anything for non-Elements\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\tnodeName = dest.nodeName.toLowerCase();\n\n\t// IE6-8 copies events bound via attachEvent when using cloneNode.\n\tif ( !support.noCloneEvent && dest[ jQuery.expando ] ) {\n\t\tdata = jQuery._data( dest );\n\n\t\tfor ( e in data.events ) {\n\t\t\tjQuery.removeEvent( dest, e, data.handle );\n\t\t}\n\n\t\t// Event data gets referenced instead of copied if the expando gets copied too\n\t\tdest.removeAttribute( jQuery.expando );\n\t}\n\n\t// IE blanks contents when cloning scripts, and tries to evaluate newly-set text\n\tif ( nodeName === \"script\" && dest.text !== src.text ) {\n\t\tdisableScript( dest ).text = src.text;\n\t\trestoreScript( dest );\n\n\t// IE6-10 improperly clones children of object elements using classid.\n\t// IE10 throws NoModificationAllowedError if parent is null, #12132.\n\t} else if ( nodeName === \"object\" ) {\n\t\tif ( dest.parentNode ) {\n\t\t\tdest.outerHTML = src.outerHTML;\n\t\t}\n\n\t\t// This path appears unavoidable for IE9. When cloning an object\n\t\t// element in IE9, the outerHTML strategy above is not sufficient.\n\t\t// If the src has innerHTML and the destination does not,\n\t\t// copy the src.innerHTML into the dest.innerHTML. #10324\n\t\tif ( support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) {\n\t\t\tdest.innerHTML = src.innerHTML;\n\t\t}\n\n\t} else if ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\t// IE6-8 fails to persist the checked state of a cloned checkbox\n\t\t// or radio button. Worse, IE6-7 fail to give the cloned element\n\t\t// a checked appearance if the defaultChecked value isn't also set\n\n\t\tdest.defaultChecked = dest.checked = src.checked;\n\n\t\t// IE6-7 get confused and end up setting the value of a cloned\n\t\t// checkbox/radio button to an empty string instead of \"on\"\n\t\tif ( dest.value !== src.value ) {\n\t\t\tdest.value = src.value;\n\t\t}\n\n\t// IE6-8 fails to return the selected option to the default selected\n\t// state when cloning options\n\t} else if ( nodeName === \"option\" ) {\n\t\tdest.defaultSelected = dest.selected = src.defaultSelected;\n\n\t// IE6-8 fails to set the defaultValue to the correct value when\n\t// cloning other types of input fields\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\njQuery.extend({\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar destElements, node, clone, i, srcElements,\n\t\t\tinPage = jQuery.contains( elem.ownerDocument, elem );\n\n\t\tif ( support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( \"<\" + elem.nodeName + \">\" ) ) {\n\t\t\tclone = elem.cloneNode( true );\n\n\t\t// IE<=8 does not properly clone detached, unknown element nodes\n\t\t} else {\n\t\t\tfragmentDiv.innerHTML = elem.outerHTML;\n\t\t\tfragmentDiv.removeChild( clone = fragmentDiv.firstChild );\n\t\t}\n\n\t\tif ( (!support.noCloneEvent || !support.noCloneChecked) &&\n\t\t\t\t(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\t// Fix all IE cloning issues\n\t\t\tfor ( i = 0; (node = srcElements[i]) != null; ++i ) {\n\t\t\t\t// Ensure that the destination node is not null; Fixes #9587\n\t\t\t\tif ( destElements[i] ) {\n\t\t\t\t\tfixCloneNodeIssues( node, destElements[i] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0; (node = srcElements[i]) != null; i++ ) {\n\t\t\t\t\tcloneCopyEvent( node, destElements[i] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\tdestElements = srcElements = node = null;\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tbuildFragment: function( elems, context, scripts, selection ) {\n\t\tvar j, elem, contains,\n\t\t\ttmp, tag, tbody, wrap,\n\t\t\tl = elems.length,\n\n\t\t\t// Ensure a safe fragment\n\t\t\tsafe = createSafeFragment( context ),\n\n\t\t\tnodes = [],\n\t\t\ti = 0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\telem = elems[ i ];\n\n\t\t\tif ( elem || elem === 0 ) {\n\n\t\t\t\t// Add nodes directly\n\t\t\t\tif ( jQuery.type( elem ) === \"object\" ) {\n\t\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t\t// Convert non-html into a text node\n\t\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t\t// Convert html into DOM nodes\n\t\t\t\t} else {\n\t\t\t\t\ttmp = tmp || safe.appendChild( context.createElement(\"div\") );\n\n\t\t\t\t\t// Deserialize a standard representation\n\t\t\t\t\ttag = (rtagName.exec( elem ) || [ \"\", \"\" ])[ 1 ].toLowerCase();\n\t\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\n\t\t\t\t\ttmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, \"<$1></$2>\" ) + wrap[2];\n\n\t\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\t\tj = wrap[0];\n\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Manually add leading whitespace removed by IE\n\t\t\t\t\tif ( !support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {\n\t\t\t\t\t\tnodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove IE's autoinserted <tbody> from table fragments\n\t\t\t\t\tif ( !support.tbody ) {\n\n\t\t\t\t\t\t// String was a <table>, *may* have spurious <tbody>\n\t\t\t\t\t\telem = tag === \"table\" && !rtbody.test( elem ) ?\n\t\t\t\t\t\t\ttmp.firstChild :\n\n\t\t\t\t\t\t\t// String was a bare <thead> or <tfoot>\n\t\t\t\t\t\t\twrap[1] === \"<table>\" && !rtbody.test( elem ) ?\n\t\t\t\t\t\t\t\ttmp :\n\t\t\t\t\t\t\t\t0;\n\n\t\t\t\t\t\tj = elem && elem.childNodes.length;\n\t\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\t\tif ( jQuery.nodeName( (tbody = elem.childNodes[j]), \"tbody\" ) && !tbody.childNodes.length ) {\n\t\t\t\t\t\t\t\telem.removeChild( tbody );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t\t// Fix #12392 for WebKit and IE > 9\n\t\t\t\t\ttmp.textContent = \"\";\n\n\t\t\t\t\t// Fix #12392 for oldIE\n\t\t\t\t\twhile ( tmp.firstChild ) {\n\t\t\t\t\t\ttmp.removeChild( tmp.firstChild );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remember the top-level container for proper cleanup\n\t\t\t\t\ttmp = safe.lastChild;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Fix #11356: Clear elements from fragment\n\t\tif ( tmp ) {\n\t\t\tsafe.removeChild( tmp );\n\t\t}\n\n\t\t// Reset defaultChecked for any radios and checkboxes\n\t\t// about to be appended to the DOM in IE 6/7 (#8060)\n\t\tif ( !support.appendChecked ) {\n\t\t\tjQuery.grep( getAll( nodes, \"input\" ), fixDefaultChecked );\n\t\t}\n\n\t\ti = 0;\n\t\twhile ( (elem = nodes[ i++ ]) ) {\n\n\t\t\t// #4087 - If origin and destination elements are the same, and this is\n\t\t\t// that element, do not do anything\n\t\t\tif ( selection && jQuery.inArray( elem, selection ) !== -1 ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t\t// Append to fragment\n\t\t\ttmp = getAll( safe.appendChild( elem ), \"script\" );\n\n\t\t\t// Preserve script evaluation history\n\t\t\tif ( contains ) {\n\t\t\t\tsetGlobalEval( tmp );\n\t\t\t}\n\n\t\t\t// Capture executables\n\t\t\tif ( scripts ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (elem = tmp[ j++ ]) ) {\n\t\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\t\tscripts.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\ttmp = null;\n\n\t\treturn safe;\n\t},\n\n\tcleanData: function( elems, /* internal */ acceptData ) {\n\t\tvar elem, type, id, data,\n\t\t\ti = 0,\n\t\t\tinternalKey = jQuery.expando,\n\t\t\tcache = jQuery.cache,\n\t\t\tdeleteExpando = support.deleteExpando,\n\t\t\tspecial = jQuery.event.special;\n\n\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\t\t\tif ( acceptData || jQuery.acceptData( elem ) ) {\n\n\t\t\t\tid = elem[ internalKey ];\n\t\t\t\tdata = id && cache[ id ];\n\n\t\t\t\tif ( data ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove cache only if it was not already removed by jQuery.event.remove\n\t\t\t\t\tif ( cache[ id ] ) {\n\n\t\t\t\t\t\tdelete cache[ id ];\n\n\t\t\t\t\t\t// IE does not allow us to delete expando properties from nodes,\n\t\t\t\t\t\t// nor does it have a removeAttribute function on Document nodes;\n\t\t\t\t\t\t// we must handle all of these cases\n\t\t\t\t\t\tif ( deleteExpando ) {\n\t\t\t\t\t\t\tdelete elem[ internalKey ];\n\n\t\t\t\t\t\t} else if ( typeof elem.removeAttribute !== strundefined ) {\n\t\t\t\t\t\t\telem.removeAttribute( internalKey );\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\telem[ internalKey ] = null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdeletedIds.push( id );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n});\n\njQuery.fn.extend({\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t});\n\t},\n\n\tprepend: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t});\n\t},\n\n\tbefore: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t});\n\t},\n\n\tafter: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t});\n\t},\n\n\tremove: function( selector, keepData /* Internal Use Only */ ) {\n\t\tvar elem,\n\t\t\telems = selector ? jQuery.filter( selector, this ) : this,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\n\t\t\tif ( !keepData && elem.nodeType === 1 ) {\n\t\t\t\tjQuery.cleanData( getAll( elem ) );\n\t\t\t}\n\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\tif ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\t\t\tsetGlobalEval( getAll( elem, \"script\" ) );\n\t\t\t\t}\n\t\t\t\telem.parentNode.removeChild( elem );\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = this[i]) != null; i++ ) {\n\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t}\n\n\t\t\t// Remove any remaining nodes\n\t\t\twhile ( elem.firstChild ) {\n\t\t\t\telem.removeChild( elem.firstChild );\n\t\t\t}\n\n\t\t\t// If this is a select, ensure that it displays empty (#12336)\n\t\t\t// Support: IE<9\n\t\t\tif ( elem.options && jQuery.nodeName( elem, \"select\" ) ) {\n\t\t\t\telem.options.length = 0;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map(function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t});\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined ) {\n\t\t\t\treturn elem.nodeType === 1 ?\n\t\t\t\t\telem.innerHTML.replace( rinlinejQuery, \"\" ) :\n\t\t\t\t\tundefined;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t( support.htmlSerialize || !rnoshimcache.test( value )  ) &&\n\t\t\t\t( support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&\n\t\t\t\t!wrapMap[ (rtagName.exec( value ) || [ \"\", \"\" ])[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = value.replace( rxhtmlTag, \"<$1></$2>\" );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor (; i < l; i++ ) {\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\telem = this[i] || {};\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch(e) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar arg = arguments[ 0 ];\n\n\t\t// Make the changes, replacing each context element with the new content\n\t\tthis.domManip( arguments, function( elem ) {\n\t\t\targ = this.parentNode;\n\n\t\t\tjQuery.cleanData( getAll( this ) );\n\n\t\t\tif ( arg ) {\n\t\t\t\targ.replaceChild( elem, this );\n\t\t\t}\n\t\t});\n\n\t\t// Force removal if there was no new content (e.g., from empty arguments)\n\t\treturn arg && (arg.length || arg.nodeType) ? this : this.remove();\n\t},\n\n\tdetach: function( selector ) {\n\t\treturn this.remove( selector, true );\n\t},\n\n\tdomManip: function( args, callback ) {\n\n\t\t// Flatten any nested arrays\n\t\targs = concat.apply( [], args );\n\n\t\tvar first, node, hasScripts,\n\t\t\tscripts, doc, fragment,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tset = this,\n\t\t\tiNoClone = l - 1,\n\t\t\tvalue = args[0],\n\t\t\tisFunction = jQuery.isFunction( value );\n\n\t\t// We can't cloneNode fragments that contain checked, in WebKit\n\t\tif ( isFunction ||\n\t\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\t\treturn this.each(function( index ) {\n\t\t\t\tvar self = set.eq( index );\n\t\t\t\tif ( isFunction ) {\n\t\t\t\t\targs[0] = value.call( this, index, self.html() );\n\t\t\t\t}\n\t\t\t\tself.domManip( args, callback );\n\t\t\t});\n\t\t}\n\n\t\tif ( l ) {\n\t\t\tfragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this );\n\t\t\tfirst = fragment.firstChild;\n\n\t\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\t\tfragment = first;\n\t\t\t}\n\n\t\t\tif ( first ) {\n\t\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\t\thasScripts = scripts.length;\n\n\t\t\t\t// Use the original fragment for the last item instead of the first because it can end up\n\t\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\tnode = fragment;\n\n\t\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcallback.call( this[i], node, i );\n\t\t\t\t}\n\n\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t\t// Reenable scripts\n\t\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t\t!jQuery._data( node, \"globalEval\" ) && jQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\t\tif ( node.src ) {\n\t\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\t\tif ( jQuery._evalUrl ) {\n\t\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.globalEval( ( node.text || node.textContent || node.innerHTML || \"\" ).replace( rcleanScript, \"\" ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Fix #11809: Avoid leaking memory\n\t\t\t\tfragment = first = null;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n});\n\njQuery.each({\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\ti = 0,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone(true);\n\t\t\tjQuery( insert[i] )[ original ]( elems );\n\n\t\t\t// Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get()\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n});\n\n\nvar iframe,\n\telemdisplay = {};\n\n/**\n * Retrieve the actual display of a element\n * @param {String} name nodeName of the element\n * @param {Object} doc Document object\n */\n// Called only from within defaultDisplay\nfunction actualDisplay( name, doc ) {\n\tvar style,\n\t\telem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),\n\n\t\t// getDefaultComputedStyle might be reliably used only on attached element\n\t\tdisplay = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ?\n\n\t\t\t// Use of this method is a temporary fix (more like optmization) until something better comes along,\n\t\t\t// since it was removed from specification and supported only in FF\n\t\t\tstyle.display : jQuery.css( elem[ 0 ], \"display\" );\n\n\t// We don't have any data stored on the element,\n\t// so use \"detach\" method as fast way to get rid of the element\n\telem.detach();\n\n\treturn display;\n}\n\n/**\n * Try to determine the default display value of an element\n * @param {String} nodeName\n */\nfunction defaultDisplay( nodeName ) {\n\tvar doc = document,\n\t\tdisplay = elemdisplay[ nodeName ];\n\n\tif ( !display ) {\n\t\tdisplay = actualDisplay( nodeName, doc );\n\n\t\t// If the simple way fails, read from inside an iframe\n\t\tif ( display === \"none\" || !display ) {\n\n\t\t\t// Use the already-created iframe if possible\n\t\t\tiframe = (iframe || jQuery( \"<iframe frameborder='0' width='0' height='0'/>\" )).appendTo( doc.documentElement );\n\n\t\t\t// Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse\n\t\t\tdoc = ( iframe[ 0 ].contentWindow || iframe[ 0 ].contentDocument ).document;\n\n\t\t\t// Support: IE\n\t\t\tdoc.write();\n\t\t\tdoc.close();\n\n\t\t\tdisplay = actualDisplay( nodeName, doc );\n\t\t\tiframe.detach();\n\t\t}\n\n\t\t// Store the correct default display\n\t\telemdisplay[ nodeName ] = display;\n\t}\n\n\treturn display;\n}\n\n\n(function() {\n\tvar shrinkWrapBlocksVal;\n\n\tsupport.shrinkWrapBlocks = function() {\n\t\tif ( shrinkWrapBlocksVal != null ) {\n\t\t\treturn shrinkWrapBlocksVal;\n\t\t}\n\n\t\t// Will be changed later if needed.\n\t\tshrinkWrapBlocksVal = false;\n\n\t\t// Minified: var b,c,d\n\t\tvar div, body, container;\n\n\t\tbody = document.getElementsByTagName( \"body\" )[ 0 ];\n\t\tif ( !body || !body.style ) {\n\t\t\t// Test fired too early or in an unsupported environment, exit.\n\t\t\treturn;\n\t\t}\n\n\t\t// Setup\n\t\tdiv = document.createElement( \"div\" );\n\t\tcontainer = document.createElement( \"div\" );\n\t\tcontainer.style.cssText = \"position:absolute;border:0;width:0;height:0;top:0;left:-9999px\";\n\t\tbody.appendChild( container ).appendChild( div );\n\n\t\t// Support: IE6\n\t\t// Check if elements with layout shrink-wrap their children\n\t\tif ( typeof div.style.zoom !== strundefined ) {\n\t\t\t// Reset CSS: box-sizing; display; margin; border\n\t\t\tdiv.style.cssText =\n\t\t\t\t// Support: Firefox<29, Android 2.3\n\t\t\t\t// Vendor-prefix box-sizing\n\t\t\t\t\"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;\" +\n\t\t\t\t\"box-sizing:content-box;display:block;margin:0;border:0;\" +\n\t\t\t\t\"padding:1px;width:1px;zoom:1\";\n\t\t\tdiv.appendChild( document.createElement( \"div\" ) ).style.width = \"5px\";\n\t\t\tshrinkWrapBlocksVal = div.offsetWidth !== 3;\n\t\t}\n\n\t\tbody.removeChild( container );\n\n\t\treturn shrinkWrapBlocksVal;\n\t};\n\n})();\nvar rmargin = (/^margin/);\n\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\n\n\nvar getStyles, curCSS,\n\trposition = /^(top|right|bottom|left)$/;\n\nif ( window.getComputedStyle ) {\n\tgetStyles = function( elem ) {\n\t\t// Support: IE<=11+, Firefox<=30+ (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tif ( elem.ownerDocument.defaultView.opener ) {\n\t\t\treturn elem.ownerDocument.defaultView.getComputedStyle( elem, null );\n\t\t}\n\n\t\treturn window.getComputedStyle( elem, null );\n\t};\n\n\tcurCSS = function( elem, name, computed ) {\n\t\tvar width, minWidth, maxWidth, ret,\n\t\t\tstyle = elem.style;\n\n\t\tcomputed = computed || getStyles( elem );\n\n\t\t// getPropertyValue is only needed for .css('filter') in IE9, see #12537\n\t\tret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined;\n\n\t\tif ( computed ) {\n\n\t\t\tif ( ret === \"\" && !jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\t\tret = jQuery.style( elem, name );\n\t\t\t}\n\n\t\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t\t// Chrome < 17 and Safari 5.0 uses \"computed value\" instead of \"used value\" for margin-right\n\t\t\t// Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels\n\t\t\t// this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values\n\t\t\tif ( rnumnonpx.test( ret ) && rmargin.test( name ) ) {\n\n\t\t\t\t// Remember the original values\n\t\t\t\twidth = style.width;\n\t\t\t\tminWidth = style.minWidth;\n\t\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t\t// Put in the new values to get a computed value out\n\t\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\t\tret = computed.width;\n\n\t\t\t\t// Revert the changed values\n\t\t\t\tstyle.width = width;\n\t\t\t\tstyle.minWidth = minWidth;\n\t\t\t\tstyle.maxWidth = maxWidth;\n\t\t\t}\n\t\t}\n\n\t\t// Support: IE\n\t\t// IE returns zIndex value as an integer.\n\t\treturn ret === undefined ?\n\t\t\tret :\n\t\t\tret + \"\";\n\t};\n} else if ( document.documentElement.currentStyle ) {\n\tgetStyles = function( elem ) {\n\t\treturn elem.currentStyle;\n\t};\n\n\tcurCSS = function( elem, name, computed ) {\n\t\tvar left, rs, rsLeft, ret,\n\t\t\tstyle = elem.style;\n\n\t\tcomputed = computed || getStyles( elem );\n\t\tret = computed ? computed[ name ] : undefined;\n\n\t\t// Avoid setting ret to empty string here\n\t\t// so we don't default to auto\n\t\tif ( ret == null && style && style[ name ] ) {\n\t\t\tret = style[ name ];\n\t\t}\n\n\t\t// From the awesome hack by Dean Edwards\n\t\t// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n\n\t\t// If we're not dealing with a regular pixel number\n\t\t// but a number that has a weird ending, we need to convert it to pixels\n\t\t// but not position css attributes, as those are proportional to the parent element instead\n\t\t// and we can't measure the parent instead because it might trigger a \"stacking dolls\" problem\n\t\tif ( rnumnonpx.test( ret ) && !rposition.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\tleft = style.left;\n\t\t\trs = elem.runtimeStyle;\n\t\t\trsLeft = rs && rs.left;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tif ( rsLeft ) {\n\t\t\t\trs.left = elem.currentStyle.left;\n\t\t\t}\n\t\t\tstyle.left = name === \"fontSize\" ? \"1em\" : ret;\n\t\t\tret = style.pixelLeft + \"px\";\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.left = left;\n\t\t\tif ( rsLeft ) {\n\t\t\t\trs.left = rsLeft;\n\t\t\t}\n\t\t}\n\n\t\t// Support: IE\n\t\t// IE returns zIndex value as an integer.\n\t\treturn ret === undefined ?\n\t\t\tret :\n\t\t\tret + \"\" || \"auto\";\n\t};\n}\n\n\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tvar condition = conditionFn();\n\n\t\t\tif ( condition == null ) {\n\t\t\t\t// The test was not ready at this point; screw the hook this time\n\t\t\t\t// but check again when needed next time.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( condition ) {\n\t\t\t\t// Hook not needed (or it's not possible to use it due to missing dependency),\n\t\t\t\t// remove it.\n\t\t\t\t// Since there are no other hooks for marginRight, remove the whole object.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\n\t\t\treturn (this.get = hookFn).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\n(function() {\n\t// Minified: var b,c,d,e,f,g, h,i\n\tvar div, style, a, pixelPositionVal, boxSizingReliableVal,\n\t\treliableHiddenOffsetsVal, reliableMarginRightVal;\n\n\t// Setup\n\tdiv = document.createElement( \"div\" );\n\tdiv.innerHTML = \"  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>\";\n\ta = div.getElementsByTagName( \"a\" )[ 0 ];\n\tstyle = a && a.style;\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !style ) {\n\t\treturn;\n\t}\n\n\tstyle.cssText = \"float:left;opacity:.5\";\n\n\t// Support: IE<9\n\t// Make sure that element opacity exists (as opposed to filter)\n\tsupport.opacity = style.opacity === \"0.5\";\n\n\t// Verify style float existence\n\t// (IE uses styleFloat instead of cssFloat)\n\tsupport.cssFloat = !!style.cssFloat;\n\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\t// Support: Firefox<29, Android 2.3\n\t// Vendor-prefix box-sizing\n\tsupport.boxSizing = style.boxSizing === \"\" || style.MozBoxSizing === \"\" ||\n\t\tstyle.WebkitBoxSizing === \"\";\n\n\tjQuery.extend(support, {\n\t\treliableHiddenOffsets: function() {\n\t\t\tif ( reliableHiddenOffsetsVal == null ) {\n\t\t\t\tcomputeStyleTests();\n\t\t\t}\n\t\t\treturn reliableHiddenOffsetsVal;\n\t\t},\n\n\t\tboxSizingReliable: function() {\n\t\t\tif ( boxSizingReliableVal == null ) {\n\t\t\t\tcomputeStyleTests();\n\t\t\t}\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\n\t\tpixelPosition: function() {\n\t\t\tif ( pixelPositionVal == null ) {\n\t\t\t\tcomputeStyleTests();\n\t\t\t}\n\t\t\treturn pixelPositionVal;\n\t\t},\n\n\t\t// Support: Android 2.3\n\t\treliableMarginRight: function() {\n\t\t\tif ( reliableMarginRightVal == null ) {\n\t\t\t\tcomputeStyleTests();\n\t\t\t}\n\t\t\treturn reliableMarginRightVal;\n\t\t}\n\t});\n\n\tfunction computeStyleTests() {\n\t\t// Minified: var b,c,d,j\n\t\tvar div, body, container, contents;\n\n\t\tbody = document.getElementsByTagName( \"body\" )[ 0 ];\n\t\tif ( !body || !body.style ) {\n\t\t\t// Test fired too early or in an unsupported environment, exit.\n\t\t\treturn;\n\t\t}\n\n\t\t// Setup\n\t\tdiv = document.createElement( \"div\" );\n\t\tcontainer = document.createElement( \"div\" );\n\t\tcontainer.style.cssText = \"position:absolute;border:0;width:0;height:0;top:0;left:-9999px\";\n\t\tbody.appendChild( container ).appendChild( div );\n\n\t\tdiv.style.cssText =\n\t\t\t// Support: Firefox<29, Android 2.3\n\t\t\t// Vendor-prefix box-sizing\n\t\t\t\"-webkit-box-sizing:border-box;-moz-box-sizing:border-box;\" +\n\t\t\t\"box-sizing:border-box;display:block;margin-top:1%;top:1%;\" +\n\t\t\t\"border:1px;padding:1px;width:4px;position:absolute\";\n\n\t\t// Support: IE<9\n\t\t// Assume reasonable values in the absence of getComputedStyle\n\t\tpixelPositionVal = boxSizingReliableVal = false;\n\t\treliableMarginRightVal = true;\n\n\t\t// Check for getComputedStyle so that this code is not run in IE<9.\n\t\tif ( window.getComputedStyle ) {\n\t\t\tpixelPositionVal = ( window.getComputedStyle( div, null ) || {} ).top !== \"1%\";\n\t\t\tboxSizingReliableVal =\n\t\t\t\t( window.getComputedStyle( div, null ) || { width: \"4px\" } ).width === \"4px\";\n\n\t\t\t// Support: Android 2.3\n\t\t\t// Div with explicit width and no margin-right incorrectly\n\t\t\t// gets computed margin-right based on width of container (#3333)\n\t\t\t// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right\n\t\t\tcontents = div.appendChild( document.createElement( \"div\" ) );\n\n\t\t\t// Reset CSS: box-sizing; display; margin; border; padding\n\t\t\tcontents.style.cssText = div.style.cssText =\n\t\t\t\t// Support: Firefox<29, Android 2.3\n\t\t\t\t// Vendor-prefix box-sizing\n\t\t\t\t\"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;\" +\n\t\t\t\t\"box-sizing:content-box;display:block;margin:0;border:0;padding:0\";\n\t\t\tcontents.style.marginRight = contents.style.width = \"0\";\n\t\t\tdiv.style.width = \"1px\";\n\n\t\t\treliableMarginRightVal =\n\t\t\t\t!parseFloat( ( window.getComputedStyle( contents, null ) || {} ).marginRight );\n\n\t\t\tdiv.removeChild( contents );\n\t\t}\n\n\t\t// Support: IE8\n\t\t// Check if table cells still have offsetWidth/Height when they are set\n\t\t// to display:none and there are still other visible table cells in a\n\t\t// table row; if so, offsetWidth/Height are not reliable for use when\n\t\t// determining if an element has been hidden directly using\n\t\t// display:none (it is still safe to use offsets if a parent element is\n\t\t// hidden; don safety goggles and see bug #4512 for more information).\n\t\tdiv.innerHTML = \"<table><tr><td></td><td>t</td></tr></table>\";\n\t\tcontents = div.getElementsByTagName( \"td\" );\n\t\tcontents[ 0 ].style.cssText = \"margin:0;border:0;padding:0;display:none\";\n\t\treliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0;\n\t\tif ( reliableHiddenOffsetsVal ) {\n\t\t\tcontents[ 0 ].style.display = \"\";\n\t\t\tcontents[ 1 ].style.display = \"none\";\n\t\t\treliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0;\n\t\t}\n\n\t\tbody.removeChild( container );\n\t}\n\n})();\n\n\n// A method for quickly swapping in/out CSS properties to get correct calculations.\njQuery.swap = function( elem, options, callback, args ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.apply( elem, args || [] );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar\n\t\tralpha = /alpha\\([^)]*\\)/i,\n\tropacity = /opacity\\s*=\\s*([^)]*)/,\n\n\t// swappable if display is none or starts with table except \"table\", \"table-cell\", or \"table-caption\"\n\t// see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trnumsplit = new RegExp( \"^(\" + pnum + \")(.*)$\", \"i\" ),\n\trrelNum = new RegExp( \"^([+-])=(\" + pnum + \")\", \"i\" ),\n\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t},\n\n\tcssPrefixes = [ \"Webkit\", \"O\", \"Moz\", \"ms\" ];\n\n\n// return a css property mapped to a potentially vendor prefixed property\nfunction vendorPropName( style, name ) {\n\n\t// shortcut for names that are not vendor prefixed\n\tif ( name in style ) {\n\t\treturn name;\n\t}\n\n\t// check for vendor prefixed names\n\tvar capName = name.charAt(0).toUpperCase() + name.slice(1),\n\t\torigName = name,\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in style ) {\n\t\t\treturn name;\n\t\t}\n\t}\n\n\treturn origName;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem, hidden,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tvalues[ index ] = jQuery._data( elem, \"olddisplay\" );\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\t\t\t// Reset the inline display of this element to learn if it is\n\t\t\t// being hidden by cascaded rules or not\n\t\t\tif ( !values[ index ] && display === \"none\" ) {\n\t\t\t\telem.style.display = \"\";\n\t\t\t}\n\n\t\t\t// Set elements which have been overridden with display: none\n\t\t\t// in a stylesheet to whatever the default browser style is\n\t\t\t// for such an element\n\t\t\tif ( elem.style.display === \"\" && isHidden( elem ) ) {\n\t\t\t\tvalues[ index ] = jQuery._data( elem, \"olddisplay\", defaultDisplay(elem.nodeName) );\n\t\t\t}\n\t\t} else {\n\t\t\thidden = isHidden( elem );\n\n\t\t\tif ( display && display !== \"none\" || !hidden ) {\n\t\t\t\tjQuery._data( elem, \"olddisplay\", hidden ? display : jQuery.css( elem, \"display\" ) );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of most of the elements in a second loop\n\t// to avoid the constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( !show || elem.style.display === \"none\" || elem.style.display === \"\" ) {\n\t\t\telem.style.display = show ? values[ index ] || \"\" : \"none\";\n\t\t}\n\t}\n\n\treturn elements;\n}\n\nfunction setPositiveNumber( elem, value, subtract ) {\n\tvar matches = rnumsplit.exec( value );\n\treturn matches ?\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {\n\tvar i = extra === ( isBorderBox ? \"border\" : \"content\" ) ?\n\t\t// If we already have the right measurement, avoid augmentation\n\t\t4 :\n\t\t// Otherwise initialize for horizontal or vertical properties\n\t\tname === \"width\" ? 1 : 0,\n\n\t\tval = 0;\n\n\tfor ( ; i < 4; i += 2 ) {\n\t\t// both box models exclude margin, so add it if we want it\n\t\tif ( extra === \"margin\" ) {\n\t\t\tval += jQuery.css( elem, extra + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\tif ( isBorderBox ) {\n\t\t\t// border-box includes padding, so remove it if we want content\n\t\t\tif ( extra === \"content\" ) {\n\t\t\t\tval -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// at this point, extra isn't border nor margin, so remove border\n\t\t\tif ( extra !== \"margin\" ) {\n\t\t\t\tval -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t} else {\n\t\t\t// at this point, extra isn't content, so add padding\n\t\t\tval += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// at this point, extra isn't content nor padding, so add border\n\t\t\tif ( extra !== \"padding\" ) {\n\t\t\t\tval += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn val;\n}\n\nfunction getWidthOrHeight( elem, name, extra ) {\n\n\t// Start with offset property, which is equivalent to the border-box value\n\tvar valueIsBorderBox = true,\n\t\tval = name === \"width\" ? elem.offsetWidth : elem.offsetHeight,\n\t\tstyles = getStyles( elem ),\n\t\tisBorderBox = support.boxSizing && jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t// some non-html elements return undefined for offsetWidth, so check for null/undefined\n\t// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285\n\t// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668\n\tif ( val <= 0 || val == null ) {\n\t\t// Fall back to computed then uncomputed css if necessary\n\t\tval = curCSS( elem, name, styles );\n\t\tif ( val < 0 || val == null ) {\n\t\t\tval = elem.style[ name ];\n\t\t}\n\n\t\t// Computed unit is not pixels. Stop here and return.\n\t\tif ( rnumnonpx.test(val) ) {\n\t\t\treturn val;\n\t\t}\n\n\t\t// we need the check for style in case a browser which returns unreliable values\n\t\t// for getComputedStyle silently falls back to the reliable elem.style\n\t\tvalueIsBorderBox = isBorderBox && ( support.boxSizingReliable() || val === elem.style[ name ] );\n\n\t\t// Normalize \"\", auto, and prepare for extra\n\t\tval = parseFloat( val ) || 0;\n\t}\n\n\t// use the active box-sizing model to add/subtract irrelevant styles\n\treturn ( val +\n\t\taugmentWidthOrHeight(\n\t\t\telem,\n\t\t\tname,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend({\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {\n\t\t// normalize float css property\n\t\t\"float\": support.cssFloat ? \"cssFloat\" : \"styleFloat\"\n\t},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = jQuery.camelCase( name ),\n\t\t\tstyle = elem.style;\n\n\t\tname = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) );\n\n\t\t// gets hook for the prefixed version\n\t\t// followed by the unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// convert relative number strings (+= or -=) to relative numbers. #7345\n\t\t\tif ( type === \"string\" && (ret = rrelNum.exec( value )) ) {\n\t\t\t\tvalue = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) );\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set. See: #7116\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add 'px' to the (except for certain CSS properties)\n\t\t\tif ( type === \"number\" && !jQuery.cssNumber[ origName ] ) {\n\t\t\t\tvalue += \"px\";\n\t\t\t}\n\n\t\t\t// Fixes #8908, it can be done more correctly by specifing setters in cssHooks,\n\t\t\t// but it would mean to define eight (for every problematic property) identical functions\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !(\"set\" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) {\n\n\t\t\t\t// Support: IE\n\t\t\t\t// Swallow errors from 'invalid' CSS values (#5509)\n\t\t\t\ttry {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t} catch(e) {}\n\t\t\t}\n\n\t\t} else {\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar num, val, hooks,\n\t\t\torigName = jQuery.camelCase( name );\n\n\t\t// Make sure that we're working with the right name\n\t\tname = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) );\n\n\t\t// gets hook for the prefixed version\n\t\t// followed by the unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t//convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Return, converting to number if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || jQuery.isNumeric( num ) ? num || 0 : val;\n\t\t}\n\t\treturn val;\n\t}\n});\n\njQuery.each([ \"height\", \"width\" ], function( i, name ) {\n\tjQuery.cssHooks[ name ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\t\t\t\t// certain elements can have dimension info if we invisibly show them\n\t\t\t\t// however, it must have a current display style that would benefit from this\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) && elem.offsetWidth === 0 ?\n\t\t\t\t\tjQuery.swap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, name, extra );\n\t\t\t\t\t}) :\n\t\t\t\t\tgetWidthOrHeight( elem, name, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar styles = extra && getStyles( elem );\n\t\t\treturn setPositiveNumber( elem, value, extra ?\n\t\t\t\taugmentWidthOrHeight(\n\t\t\t\t\telem,\n\t\t\t\t\tname,\n\t\t\t\t\textra,\n\t\t\t\t\tsupport.boxSizing && jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\t\tstyles\n\t\t\t\t) : 0\n\t\t\t);\n\t\t}\n\t};\n});\n\nif ( !support.opacity ) {\n\tjQuery.cssHooks.opacity = {\n\t\tget: function( elem, computed ) {\n\t\t\t// IE uses filters for opacity\n\t\t\treturn ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || \"\" ) ?\n\t\t\t\t( 0.01 * parseFloat( RegExp.$1 ) ) + \"\" :\n\t\t\t\tcomputed ? \"1\" : \"\";\n\t\t},\n\n\t\tset: function( elem, value ) {\n\t\t\tvar style = elem.style,\n\t\t\t\tcurrentStyle = elem.currentStyle,\n\t\t\t\topacity = jQuery.isNumeric( value ) ? \"alpha(opacity=\" + value * 100 + \")\" : \"\",\n\t\t\t\tfilter = currentStyle && currentStyle.filter || style.filter || \"\";\n\n\t\t\t// IE has trouble with opacity if it does not have layout\n\t\t\t// Force it by setting the zoom level\n\t\t\tstyle.zoom = 1;\n\n\t\t\t// if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652\n\t\t\t// if value === \"\", then remove inline opacity #12685\n\t\t\tif ( ( value >= 1 || value === \"\" ) &&\n\t\t\t\t\tjQuery.trim( filter.replace( ralpha, \"\" ) ) === \"\" &&\n\t\t\t\t\tstyle.removeAttribute ) {\n\n\t\t\t\t// Setting style.filter to null, \"\" & \" \" still leave \"filter:\" in the cssText\n\t\t\t\t// if \"filter:\" is present at all, clearType is disabled, we want to avoid this\n\t\t\t\t// style.removeAttribute is IE Only, but so apparently is this code path...\n\t\t\t\tstyle.removeAttribute( \"filter\" );\n\n\t\t\t\t// if there is no filter style applied in a css rule or unset inline opacity, we are done\n\t\t\t\tif ( value === \"\" || currentStyle && !currentStyle.filter ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// otherwise, set new filter values\n\t\t\tstyle.filter = ralpha.test( filter ) ?\n\t\t\t\tfilter.replace( ralpha, opacity ) :\n\t\t\t\tfilter + \" \" + opacity;\n\t\t}\n\t};\n}\n\njQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\t// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right\n\t\t\t// Work around by temporarily setting element display to inline-block\n\t\t\treturn jQuery.swap( elem, { \"display\": \"inline-block\" },\n\t\t\t\tcurCSS, [ elem, \"marginRight\" ] );\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each({\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split(\" \") : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( !rmargin.test( prefix ) ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n});\n\njQuery.fn.extend({\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( jQuery.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t},\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tif ( isHidden( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t});\n\t}\n});\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || \"swing\";\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\tif ( tween.elem[ tween.prop ] != null &&\n\t\t\t\t(!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails\n\t\t\t// so, simple values such as \"10px\" are parsed to Float.\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\t\t\t// use step hook for back compat - use cssHook if its there - use .style if its\n\t\t\t// available and use plain properties where available\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9\n// Panic based approach to setting things on disconnected nodes\n\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t}\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back Compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, timerId,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trfxnum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" ),\n\trrun = /queueHooks$/,\n\tanimationPrefilters = [ defaultPrefilter ],\n\ttweeners = {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value ),\n\t\t\t\ttarget = tween.cur(),\n\t\t\t\tparts = rfxnum.exec( value ),\n\t\t\t\tunit = parts && parts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t\t\t// Starting value computation is required for potential unit mismatches\n\t\t\t\tstart = ( jQuery.cssNumber[ prop ] || unit !== \"px\" && +target ) &&\n\t\t\t\t\trfxnum.exec( jQuery.css( tween.elem, prop ) ),\n\t\t\t\tscale = 1,\n\t\t\t\tmaxIterations = 20;\n\n\t\t\tif ( start && start[ 3 ] !== unit ) {\n\t\t\t\t// Trust units reported by jQuery.css\n\t\t\t\tunit = unit || start[ 3 ];\n\n\t\t\t\t// Make sure we update the tween properties later on\n\t\t\t\tparts = parts || [];\n\n\t\t\t\t// Iteratively approximate from a nonzero starting point\n\t\t\t\tstart = +target || 1;\n\n\t\t\t\tdo {\n\t\t\t\t\t// If previous iteration zeroed out, double until we get *something*\n\t\t\t\t\t// Use a string for doubling factor so we don't accidentally see scale as unchanged below\n\t\t\t\t\tscale = scale || \".5\";\n\n\t\t\t\t\t// Adjust and apply\n\t\t\t\t\tstart = start / scale;\n\t\t\t\t\tjQuery.style( tween.elem, prop, start + unit );\n\n\t\t\t\t// Update scale, tolerating zero or NaN from tween.cur()\n\t\t\t\t// And breaking the loop if scale is unchanged or perfect, or if we've just had enough\n\t\t\t\t} while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations );\n\t\t\t}\n\n\t\t\t// Update tween properties\n\t\t\tif ( parts ) {\n\t\t\t\tstart = tween.start = +start || +target || 0;\n\t\t\t\ttween.unit = unit;\n\t\t\t\t// If a +=/-= token was provided, we're doing a relative animation\n\t\t\t\ttween.end = parts[ 1 ] ?\n\t\t\t\t\tstart + ( parts[ 1 ] + 1 ) * parts[ 2 ] :\n\t\t\t\t\t+parts[ 2 ];\n\t\t\t}\n\n\t\t\treturn tween;\n\t\t} ]\n\t};\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\tsetTimeout(function() {\n\t\tfxNow = undefined;\n\t});\n\treturn ( fxNow = jQuery.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\tattrs = { height: type },\n\t\ti = 0;\n\n\t// if we include width, step value is 1 to do all cssExpand values,\n\t// if we don't include width, step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4 ; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( tweeners[ prop ] || [] ).concat( tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( (tween = collection[ index ].call( animation, prop, value )) ) {\n\n\t\t\t// we're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\t/* jshint validthis: true */\n\tvar prop, value, toggle, tween, hooks, oldfire, display, checkDisplay,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHidden( elem ),\n\t\tdataShow = jQuery._data( elem, \"fxshow\" );\n\n\t// handle queue: false promises\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always(function() {\n\t\t\t// doing this makes sure that the complete handler will be called\n\t\t\t// before this completes\n\t\t\tanim.always(function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\t// height/width overflow pass\n\tif ( elem.nodeType === 1 && ( \"height\" in props || \"width\" in props ) ) {\n\t\t// Make sure that nothing sneaks out\n\t\t// Record all 3 overflow attributes because IE does not\n\t\t// change the overflow attribute when overflowX and\n\t\t// overflowY are set to the same value\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Set display property to inline-block for height/width\n\t\t// animations on inline elements that are having width/height animated\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\n\t\t// Test default display if display is currently \"none\"\n\t\tcheckDisplay = display === \"none\" ?\n\t\t\tjQuery._data( elem, \"olddisplay\" ) || defaultDisplay( elem.nodeName ) : display;\n\n\t\tif ( checkDisplay === \"inline\" && jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t// inline-level elements accept inline-block;\n\t\t\t// block-level elements need to be inline with layout\n\t\t\tif ( !support.inlineBlockNeedsLayout || defaultDisplay( elem.nodeName ) === \"inline\" ) {\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t} else {\n\t\t\t\tstyle.zoom = 1;\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tif ( !support.shrinkWrapBlocks() ) {\n\t\t\tanim.always(function() {\n\t\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t\t});\n\t\t}\n\t}\n\n\t// show/hide pass\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.exec( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// If there is dataShow left over from a stopped hide or show and we are going to proceed with show, we should pretend to be hidden\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\n\t\t// Any non-fx value stops us from restoring the original display value\n\t\t} else {\n\t\t\tdisplay = undefined;\n\t\t}\n\t}\n\n\tif ( !jQuery.isEmptyObject( orig ) ) {\n\t\tif ( dataShow ) {\n\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\thidden = dataShow.hidden;\n\t\t\t}\n\t\t} else {\n\t\t\tdataShow = jQuery._data( elem, \"fxshow\", {} );\n\t\t}\n\n\t\t// store state if its toggle - enables .stop().toggle() to \"reverse\"\n\t\tif ( toggle ) {\n\t\t\tdataShow.hidden = !hidden;\n\t\t}\n\t\tif ( hidden ) {\n\t\t\tjQuery( elem ).show();\n\t\t} else {\n\t\t\tanim.done(function() {\n\t\t\t\tjQuery( elem ).hide();\n\t\t\t});\n\t\t}\n\t\tanim.done(function() {\n\t\t\tvar prop;\n\t\t\tjQuery._removeData( elem, \"fxshow\" );\n\t\t\tfor ( prop in orig ) {\n\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t}\n\t\t});\n\t\tfor ( prop in orig ) {\n\t\t\ttween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\n\t\t\tif ( !( prop in dataShow ) ) {\n\t\t\t\tdataShow[ prop ] = tween.start;\n\t\t\t\tif ( hidden ) {\n\t\t\t\t\ttween.end = tween.start;\n\t\t\t\t\ttween.start = prop === \"width\" || prop === \"height\" ? 1 : 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t// If this is a noop like .hide().hide(), restore an overwritten display value\n\t} else if ( (display === \"none\" ? defaultDisplay( elem.nodeName ) : display) === \"inline\" ) {\n\t\tstyle.display = display;\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = jQuery.camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( jQuery.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// not quite $.extend, this wont overwrite keys already present.\n\t\t\t// also - reusing 'index' from above because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = animationPrefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\t\t\t// don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t}),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\t\t\t\t// archaic crash bug won't allow us to use 1 - ( 0.5 || 0 ) (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length ; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ]);\n\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t} else {\n\t\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tanimation = deferred.promise({\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, { specialEasing: {} }, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\t\t\t\t\t// if we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length ; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// resolve when we played the last frame\n\t\t\t\t// otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length ; index++ ) {\n\t\tresult = animationPrefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( jQuery.isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t})\n\t);\n\n\t// attach callbacks from options\n\treturn animation.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\ttweener: function( props, callback ) {\n\t\tif ( jQuery.isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.split(\" \");\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length ; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\ttweeners[ prop ] = tweeners[ prop ] || [];\n\t\t\ttweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tanimationPrefilters.unshift( callback );\n\t\t} else {\n\t\t\tanimationPrefilters.push( callback );\n\t\t}\n\t}\n});\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tjQuery.isFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !jQuery.isFunction( easing ) && easing\n\t};\n\n\topt.duration = jQuery.fx.off ? 0 : typeof opt.duration === \"number\" ? opt.duration :\n\t\topt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;\n\n\t// normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( jQuery.isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend({\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHidden ).css( \"opacity\", 0 ).show()\n\n\t\t\t// animate to the value specified\n\t\t\t.end().animate({ opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || jQuery._data( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\t\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue && type !== false ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = jQuery._data( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) {\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// start the next in the queue if the last step wasn't forced\n\t\t\t// timers currently will call their complete callbacks, which will dequeue\n\t\t\t// but only if they were gotoEnd\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t});\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each(function() {\n\t\t\tvar index,\n\t\t\t\tdata = jQuery._data( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t});\n\t}\n});\n\njQuery.each([ \"toggle\", \"show\", \"hide\" ], function( i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n});\n\n// Generate shortcuts for custom animations\njQuery.each({\n\tslideDown: genFx(\"show\"),\n\tslideUp: genFx(\"hide\"),\n\tslideToggle: genFx(\"toggle\"),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n});\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ttimers = jQuery.timers,\n\t\ti = 0;\n\n\tfxNow = jQuery.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\t\t// Checks the timer has not already been removed\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tif ( timer() ) {\n\t\tjQuery.fx.start();\n\t} else {\n\t\tjQuery.timers.pop();\n\t}\n};\n\njQuery.fx.interval = 13;\n\njQuery.fx.start = function() {\n\tif ( !timerId ) {\n\t\ttimerId = setInterval( jQuery.fx.tick, jQuery.fx.interval );\n\t}\n};\n\njQuery.fx.stop = function() {\n\tclearInterval( timerId );\n\ttimerId = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\tclearTimeout( timeout );\n\t\t};\n\t});\n};\n\n\n(function() {\n\t// Minified: var a,b,c,d,e\n\tvar input, div, select, a, opt;\n\n\t// Setup\n\tdiv = document.createElement( \"div\" );\n\tdiv.setAttribute( \"className\", \"t\" );\n\tdiv.innerHTML = \"  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>\";\n\ta = div.getElementsByTagName(\"a\")[ 0 ];\n\n\t// First batch of tests.\n\tselect = document.createElement(\"select\");\n\topt = select.appendChild( document.createElement(\"option\") );\n\tinput = div.getElementsByTagName(\"input\")[ 0 ];\n\n\ta.style.cssText = \"top:1px\";\n\n\t// Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)\n\tsupport.getSetAttribute = div.className !== \"t\";\n\n\t// Get the style information from getAttribute\n\t// (IE uses .cssText instead)\n\tsupport.style = /top/.test( a.getAttribute(\"style\") );\n\n\t// Make sure that URLs aren't manipulated\n\t// (IE normalizes it by default)\n\tsupport.hrefNormalized = a.getAttribute(\"href\") === \"/a\";\n\n\t// Check the default checkbox/radio value (\"\" on WebKit; \"on\" elsewhere)\n\tsupport.checkOn = !!input.value;\n\n\t// Make sure that a selected-by-default option has a working selected property.\n\t// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)\n\tsupport.optSelected = opt.selected;\n\n\t// Tests for enctype support on a form (#6743)\n\tsupport.enctype = !!document.createElement(\"form\").enctype;\n\n\t// Make sure that the options inside disabled selects aren't marked as disabled\n\t// (WebKit marks them as disabled)\n\tselect.disabled = true;\n\tsupport.optDisabled = !opt.disabled;\n\n\t// Support: IE8 only\n\t// Check if we can trust getAttribute(\"value\")\n\tinput = document.createElement( \"input\" );\n\tinput.setAttribute( \"value\", \"\" );\n\tsupport.input = input.getAttribute( \"value\" ) === \"\";\n\n\t// Check if an input maintains its value after becoming a radio\n\tinput.value = \"t\";\n\tinput.setAttribute( \"type\", \"radio\" );\n\tsupport.radioValue = input.value === \"t\";\n})();\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend({\n\tval: function( value ) {\n\t\tvar hooks, ret, isFunction,\n\t\t\telem = this[0];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks && \"get\" in hooks && (ret = hooks.get( elem, \"value\" )) !== undefined ) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\treturn typeof ret === \"string\" ?\n\t\t\t\t\t// handle most common string cases\n\t\t\t\t\tret.replace(rreturn, \"\") :\n\t\t\t\t\t// handle cases where value is null/undef or number\n\t\t\t\t\tret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tisFunction = jQuery.isFunction( value );\n\n\t\treturn this.each(function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( isFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\t\t\t} else if ( jQuery.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t});\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !(\"set\" in hooks) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t});\n\t}\n});\n\njQuery.extend({\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\t\t\t\t\t// Support: IE10-11+\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\tjQuery.trim( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\" || index < 0,\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length,\n\t\t\t\t\ti = index < 0 ?\n\t\t\t\t\t\tmax :\n\t\t\t\t\t\tone ? index : 0;\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// oldIE doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t( support.optDisabled ? !option.disabled : option.getAttribute(\"disabled\") === null ) &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\tif ( jQuery.inArray( jQuery.valHooks.option.get( option ), values ) >= 0 ) {\n\n\t\t\t\t\t\t// Support: IE6\n\t\t\t\t\t\t// When new option element is added to select box we need to\n\t\t\t\t\t\t// force reflow of newly added node in order to workaround delay\n\t\t\t\t\t\t// of initialization properties\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\toption.selected = optionSet = true;\n\n\t\t\t\t\t\t} catch ( _ ) {\n\n\t\t\t\t\t\t\t// Will be executed only in IE6\n\t\t\t\t\t\t\toption.scrollHeight;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\toption.selected = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\n\t\t\t\treturn options;\n\t\t\t}\n\t\t}\n\t}\n});\n\n// Radios and checkboxes getter/setter\njQuery.each([ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( jQuery.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\t// Support: Webkit\n\t\t\t// \"\" is returned instead of \"on\" if a value isn't specified\n\t\t\treturn elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n\t\t};\n\t}\n});\n\n\n\n\nvar nodeHook, boolHook,\n\tattrHandle = jQuery.expr.attrHandle,\n\truseDefault = /^(?:checked|selected)$/i,\n\tgetSetAttribute = support.getSetAttribute,\n\tgetSetInput = support.input;\n\njQuery.fn.extend({\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t});\n\t}\n});\n\njQuery.extend({\n\tattr: function( elem, name, value ) {\n\t\tvar hooks, ret,\n\t\t\tnType = elem.nodeType;\n\n\t\t// don't get/set attributes on text, comment and attribute nodes\n\t\tif ( !elem || nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === strundefined ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// All attributes are lowercase\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\tname = name.toLowerCase();\n\t\t\thooks = jQuery.attrHooks[ name ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\n\t\t\t} else if ( hooks && \"set\" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {\n\t\t\t\treturn ret;\n\n\t\t\t} else {\n\t\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t} else if ( hooks && \"get\" in hooks && (ret = hooks.get( elem, name )) !== null ) {\n\t\t\treturn ret;\n\n\t\t} else {\n\t\t\tret = jQuery.find.attr( elem, name );\n\n\t\t\t// Non-existent attributes return null, we normalize to undefined\n\t\t\treturn ret == null ?\n\t\t\t\tundefined :\n\t\t\t\tret;\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name, propName,\n\t\t\ti = 0,\n\t\t\tattrNames = value && value.match( rnotwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( (name = attrNames[i++]) ) {\n\t\t\t\tpropName = jQuery.propFix[ name ] || name;\n\n\t\t\t\t// Boolean attributes get special treatment (#10870)\n\t\t\t\tif ( jQuery.expr.match.bool.test( name ) ) {\n\t\t\t\t\t// Set corresponding property to false\n\t\t\t\t\tif ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {\n\t\t\t\t\t\telem[ propName ] = false;\n\t\t\t\t\t// Support: IE<9\n\t\t\t\t\t// Also clear defaultChecked/defaultSelected (if appropriate)\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem[ jQuery.camelCase( \"default-\" + name ) ] =\n\t\t\t\t\t\t\telem[ propName ] = false;\n\t\t\t\t\t}\n\n\t\t\t\t// See #9699 for explanation of this approach (setting first, then removal)\n\t\t\t\t} else {\n\t\t\t\t\tjQuery.attr( elem, name, \"\" );\n\t\t\t\t}\n\n\t\t\t\telem.removeAttribute( getSetAttribute ? name : propName );\n\t\t\t}\n\t\t}\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" && jQuery.nodeName(elem, \"input\") ) {\n\t\t\t\t\t// Setting the type on a radio button after the value resets the value in IE6-9\n\t\t\t\t\t// Reset value to default in case type is set after value during creation\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n});\n\n// Hook for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {\n\t\t\t// IE<8 needs the *property* name\n\t\t\telem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name );\n\n\t\t// Use defaultChecked and defaultSelected for oldIE\n\t\t} else {\n\t\t\telem[ jQuery.camelCase( \"default-\" + name ) ] = elem[ name ] = true;\n\t\t}\n\n\t\treturn name;\n\t}\n};\n\n// Retrieve booleans specially\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( i, name ) {\n\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = getSetInput && getSetAttribute || !ruseDefault.test( name ) ?\n\t\tfunction( elem, name, isXML ) {\n\t\t\tvar ret, handle;\n\t\t\tif ( !isXML ) {\n\t\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\t\thandle = attrHandle[ name ];\n\t\t\t\tattrHandle[ name ] = ret;\n\t\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\t\tname.toLowerCase() :\n\t\t\t\t\tnull;\n\t\t\t\tattrHandle[ name ] = handle;\n\t\t\t}\n\t\t\treturn ret;\n\t\t} :\n\t\tfunction( elem, name, isXML ) {\n\t\t\tif ( !isXML ) {\n\t\t\t\treturn elem[ jQuery.camelCase( \"default-\" + name ) ] ?\n\t\t\t\t\tname.toLowerCase() :\n\t\t\t\t\tnull;\n\t\t\t}\n\t\t};\n});\n\n// fix oldIE attroperties\nif ( !getSetInput || !getSetAttribute ) {\n\tjQuery.attrHooks.value = {\n\t\tset: function( elem, value, name ) {\n\t\t\tif ( jQuery.nodeName( elem, \"input\" ) ) {\n\t\t\t\t// Does not return so that setAttribute is also used\n\t\t\t\telem.defaultValue = value;\n\t\t\t} else {\n\t\t\t\t// Use nodeHook if defined (#1954); otherwise setAttribute is fine\n\t\t\t\treturn nodeHook && nodeHook.set( elem, value, name );\n\t\t\t}\n\t\t}\n\t};\n}\n\n// IE6/7 do not support getting/setting some attributes with get/setAttribute\nif ( !getSetAttribute ) {\n\n\t// Use this for any attribute in IE6/7\n\t// This fixes almost every IE6/7 issue\n\tnodeHook = {\n\t\tset: function( elem, value, name ) {\n\t\t\t// Set the existing or create a new attribute node\n\t\t\tvar ret = elem.getAttributeNode( name );\n\t\t\tif ( !ret ) {\n\t\t\t\telem.setAttributeNode(\n\t\t\t\t\t(ret = elem.ownerDocument.createAttribute( name ))\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tret.value = value += \"\";\n\n\t\t\t// Break association with cloned elements by also using setAttribute (#9646)\n\t\t\tif ( name === \"value\" || value === elem.getAttribute( name ) ) {\n\t\t\t\treturn value;\n\t\t\t}\n\t\t}\n\t};\n\n\t// Some attributes are constructed with empty-string values when not defined\n\tattrHandle.id = attrHandle.name = attrHandle.coords =\n\t\tfunction( elem, name, isXML ) {\n\t\t\tvar ret;\n\t\t\tif ( !isXML ) {\n\t\t\t\treturn (ret = elem.getAttributeNode( name )) && ret.value !== \"\" ?\n\t\t\t\t\tret.value :\n\t\t\t\t\tnull;\n\t\t\t}\n\t\t};\n\n\t// Fixing value retrieval on a button requires this module\n\tjQuery.valHooks.button = {\n\t\tget: function( elem, name ) {\n\t\t\tvar ret = elem.getAttributeNode( name );\n\t\t\tif ( ret && ret.specified ) {\n\t\t\t\treturn ret.value;\n\t\t\t}\n\t\t},\n\t\tset: nodeHook.set\n\t};\n\n\t// Set contenteditable to false on removals(#10429)\n\t// Setting to empty string throws an error as an invalid value\n\tjQuery.attrHooks.contenteditable = {\n\t\tset: function( elem, value, name ) {\n\t\t\tnodeHook.set( elem, value === \"\" ? false : value, name );\n\t\t}\n\t};\n\n\t// Set width and height to auto instead of 0 on empty string( Bug #8150 )\n\t// This is for removals\n\tjQuery.each([ \"width\", \"height\" ], function( i, name ) {\n\t\tjQuery.attrHooks[ name ] = {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( value === \"\" ) {\n\t\t\t\t\telem.setAttribute( name, \"auto\" );\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t});\n}\n\nif ( !support.style ) {\n\tjQuery.attrHooks.style = {\n\t\tget: function( elem ) {\n\t\t\t// Return undefined in the case of empty string\n\t\t\t// Note: IE uppercases css property names, but if we were to .toLowerCase()\n\t\t\t// .cssText, that would destroy case senstitivity in URL's, like in \"background\"\n\t\t\treturn elem.style.cssText || undefined;\n\t\t},\n\t\tset: function( elem, value ) {\n\t\t\treturn ( elem.style.cssText = value + \"\" );\n\t\t}\n\t};\n}\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button|object)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend({\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\tname = jQuery.propFix[ name ] || name;\n\t\treturn this.each(function() {\n\t\t\t// try/catch handles cases where IE balks (such as removing a property on window)\n\t\t\ttry {\n\t\t\t\tthis[ name ] = undefined;\n\t\t\t\tdelete this[ name ];\n\t\t\t} catch( e ) {}\n\t\t});\n\t}\n});\n\njQuery.extend({\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t},\n\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks, notxml,\n\t\t\tnType = elem.nodeType;\n\n\t\t// don't get/set properties on text, comment and attribute nodes\n\t\tif ( !elem || nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tnotxml = nType !== 1 || !jQuery.isXMLDoc( elem );\n\n\t\tif ( notxml ) {\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\treturn hooks && \"set\" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ?\n\t\t\t\tret :\n\t\t\t\t( elem[ name ] = value );\n\n\t\t} else {\n\t\t\treturn hooks && \"get\" in hooks && (ret = hooks.get( elem, name )) !== null ?\n\t\t\t\tret :\n\t\t\t\telem[ name ];\n\t\t}\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\t\t\t\t// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set\n\t\t\t\t// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\treturn tabindex ?\n\t\t\t\t\tparseInt( tabindex, 10 ) :\n\t\t\t\t\trfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?\n\t\t\t\t\t\t0 :\n\t\t\t\t\t\t-1;\n\t\t\t}\n\t\t}\n\t}\n});\n\n// Some attributes require a special call on IE\n// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !support.hrefNormalized ) {\n\t// href/src property should get the full normalized URL (#10299/#12915)\n\tjQuery.each([ \"href\", \"src\" ], function( i, name ) {\n\t\tjQuery.propHooks[ name ] = {\n\t\t\tget: function( elem ) {\n\t\t\t\treturn elem.getAttribute( name, 4 );\n\t\t\t}\n\t\t};\n\t});\n}\n\n// Support: Safari, IE9+\n// mis-reports the default selected property of an option\n// Accessing the parent's selectedIndex property fixes it\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\t// Make sure that it also works with optgroups, see #5701\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t};\n}\n\njQuery.each([\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n});\n\n// IE6/7 call enctype encoding\nif ( !support.enctype ) {\n\tjQuery.propFix.enctype = \"encoding\";\n}\n\n\n\n\nvar rclass = /[\\t\\r\\n\\f]/g;\n\njQuery.fn.extend({\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, clazz, j, finalValue,\n\t\t\ti = 0,\n\t\t\tlen = this.length,\n\t\t\tproceed = typeof value === \"string\" && value;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, this.className ) );\n\t\t\t});\n\t\t}\n\n\t\tif ( proceed ) {\n\t\t\t// The disjunction here is for better compressibility (see removeClass)\n\t\t\tclasses = ( value || \"\" ).match( rnotwhite ) || [];\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\telem = this[ i ];\n\t\t\t\tcur = elem.nodeType === 1 && ( elem.className ?\n\t\t\t\t\t( \" \" + elem.className + \" \" ).replace( rclass, \" \" ) :\n\t\t\t\t\t\" \"\n\t\t\t\t);\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (clazz = classes[j++]) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = jQuery.trim( cur );\n\t\t\t\t\tif ( elem.className !== finalValue ) {\n\t\t\t\t\t\telem.className = finalValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, clazz, j, finalValue,\n\t\t\ti = 0,\n\t\t\tlen = this.length,\n\t\t\tproceed = arguments.length === 0 || typeof value === \"string\" && value;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, this.className ) );\n\t\t\t});\n\t\t}\n\t\tif ( proceed ) {\n\t\t\tclasses = ( value || \"\" ).match( rnotwhite ) || [];\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\telem = this[ i ];\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( elem.className ?\n\t\t\t\t\t( \" \" + elem.className + \" \" ).replace( rclass, \" \" ) :\n\t\t\t\t\t\"\"\n\t\t\t\t);\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (clazz = classes[j++]) ) {\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) >= 0 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = value ? jQuery.trim( cur ) : \"\";\n\t\t\t\t\tif ( elem.className !== finalValue ) {\n\t\t\t\t\t\telem.className = finalValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value;\n\n\t\tif ( typeof stateVal === \"boolean\" && type === \"string\" ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( i ) {\n\t\t\t\tjQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );\n\t\t\t});\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tif ( type === \"string\" ) {\n\t\t\t\t// toggle individual class names\n\t\t\t\tvar className,\n\t\t\t\t\ti = 0,\n\t\t\t\t\tself = jQuery( this ),\n\t\t\t\t\tclassNames = value.match( rnotwhite ) || [];\n\n\t\t\t\twhile ( (className = classNames[ i++ ]) ) {\n\t\t\t\t\t// check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( type === strundefined || type === \"boolean\" ) {\n\t\t\t\tif ( this.className ) {\n\t\t\t\t\t// store className if set\n\t\t\t\t\tjQuery._data( this, \"__className__\", this.className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed \"false\",\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tthis.className = this.className || value === false ? \"\" : jQuery._data( this, \"__className__\" ) || \"\";\n\t\t\t}\n\t\t});\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className = \" \" + selector + \" \",\n\t\t\ti = 0,\n\t\t\tl = this.length;\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tif ( this[i].nodeType === 1 && (\" \" + this[i].className + \" \").replace(rclass, \" \").indexOf( className ) >= 0 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n});\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\njQuery.each( (\"blur focus focusin focusout load resize scroll unload click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup error contextmenu\").split(\" \"), function( i, name ) {\n\n\t// Handle event binding\n\tjQuery.fn[ name ] = function( data, fn ) {\n\t\treturn arguments.length > 0 ?\n\t\t\tthis.on( name, null, data, fn ) :\n\t\t\tthis.trigger( name );\n\t};\n});\n\njQuery.fn.extend({\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t},\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ? this.off( selector, \"**\" ) : this.off( types, selector || \"**\", fn );\n\t}\n});\n\n\nvar nonce = jQuery.now();\n\nvar rquery = (/\\?/);\n\n\n\nvar rvalidtokens = /(,)|(\\[|{)|(}|])|\"(?:[^\"\\\\\\r\\n]|\\\\[\"\\\\\\/bfnrt]|\\\\u[\\da-fA-F]{4})*\"\\s*:?|true|false|null|-?(?!0\\d)\\d+(?:\\.\\d+|)(?:[eE][+-]?\\d+|)/g;\n\njQuery.parseJSON = function( data ) {\n\t// Attempt to parse using the native JSON parser first\n\tif ( window.JSON && window.JSON.parse ) {\n\t\t// Support: Android 2.3\n\t\t// Workaround failure to string-cast null input\n\t\treturn window.JSON.parse( data + \"\" );\n\t}\n\n\tvar requireNonComma,\n\t\tdepth = null,\n\t\tstr = jQuery.trim( data + \"\" );\n\n\t// Guard against invalid (and possibly dangerous) input by ensuring that nothing remains\n\t// after removing valid tokens\n\treturn str && !jQuery.trim( str.replace( rvalidtokens, function( token, comma, open, close ) {\n\n\t\t// Force termination if we see a misplaced comma\n\t\tif ( requireNonComma && comma ) {\n\t\t\tdepth = 0;\n\t\t}\n\n\t\t// Perform no more replacements after returning to outermost depth\n\t\tif ( depth === 0 ) {\n\t\t\treturn token;\n\t\t}\n\n\t\t// Commas must not follow \"[\", \"{\", or \",\"\n\t\trequireNonComma = open || comma;\n\n\t\t// Determine new depth\n\t\t// array/object open (\"[\" or \"{\"): depth += true - false (increment)\n\t\t// array/object close (\"]\" or \"}\"): depth += false - true (decrement)\n\t\t// other cases (\",\" or primitive): depth += true - true (numeric cast)\n\t\tdepth += !close - !open;\n\n\t\t// Remove this token\n\t\treturn \"\";\n\t}) ) ?\n\t\t( Function( \"return \" + str ) )() :\n\t\tjQuery.error( \"Invalid JSON: \" + data );\n};\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, tmp;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\ttry {\n\t\tif ( window.DOMParser ) { // Standard\n\t\t\ttmp = new DOMParser();\n\t\t\txml = tmp.parseFromString( data, \"text/xml\" );\n\t\t} else { // IE\n\t\t\txml = new ActiveXObject( \"Microsoft.XMLDOM\" );\n\t\t\txml.async = \"false\";\n\t\t\txml.loadXML( data );\n\t\t}\n\t} catch( e ) {\n\t\txml = undefined;\n\t}\n\tif ( !xml || !xml.documentElement || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\tjQuery.error( \"Invalid XML: \" + data );\n\t}\n\treturn xml;\n};\n\n\nvar\n\t// Document location\n\tajaxLocParts,\n\tajaxLocation,\n\n\trhash = /#.*$/,\n\trts = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)\\r?$/mg, // IE leaves an \\r character at EOL\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\trurl = /^([\\w.+-]+:)(?:\\/\\/(?:[^\\/?#]*@|)([^\\/?#:]*)(?::(\\d+)|)|)/,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t *    - BEFORE asking for a transport\n\t *    - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat(\"*\");\n\n// #8138, IE may throw an exception when accessing\n// a field from window.location if document.domain has been set\ntry {\n\tajaxLocation = location.href;\n} catch( e ) {\n\t// Use the href attribute of an A element\n\t// since IE will modify it given document.location\n\tajaxLocation = document.createElement( \"a\" );\n\tajaxLocation.href = \"\";\n\tajaxLocation = ajaxLocation.href;\n}\n\n// Segment location into parts\najaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || [];\n\n\t\tif ( jQuery.isFunction( func ) ) {\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( (dataType = dataTypes[i++]) ) {\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType.charAt( 0 ) === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t(structure[ dataType ] = structure[ dataType ] || []).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t(structure[ dataType ] = structure[ dataType ] || []).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t});\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar deep, key,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\tvar firstDataType, ct, finalDataType, type,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[0] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s[ \"throws\" ] ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn { state: \"parsererror\", error: conv ? e : \"No conversion from \" + prev + \" to \" + current };\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend({\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: ajaxLocation,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /xml/,\n\t\t\thtml: /html/,\n\t\t\tjson: /json/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": jQuery.parseJSON,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar // Cross-domain detection vars\n\t\t\tparts,\n\t\t\t// Loop variable\n\t\t\ti,\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\t\t\t// Response headers as string\n\t\t\tresponseHeadersString,\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\ttransport,\n\t\t\t// Response headers\n\t\t\tresponseHeaders,\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks(\"once memory\"),\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\t\t\t// The jqXHR state\n\t\t\tstate = 0,\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( state === 2 ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( (match = rheaders.exec( responseHeadersString )) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[1].toLowerCase() ] = match[ 2 ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match;\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn state === 2 ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tvar lname = name.toLowerCase();\n\t\t\t\t\tif ( !state ) {\n\t\t\t\t\t\tname = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( !state ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( state < 2 ) {\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\t// Lazy-add the new callback in a way that preserves old ones\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR ).complete = completeDeferred.add;\n\t\tjqXHR.success = jqXHR.done;\n\t\tjqXHR.error = jqXHR.fail;\n\n\t\t// Remove hash character (#7531: and string promotion)\n\t\t// Add protocol if not provided (#5866: IE7 issue with protocol-less urls)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || ajaxLocation ) + \"\" ).replace( rhash, \"\" ).replace( rprotocol, ajaxLocParts[ 1 ] + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = jQuery.trim( s.dataType || \"*\" ).toLowerCase().match( rnotwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when we have a protocol:host:port mismatch\n\t\tif ( s.crossDomain == null ) {\n\t\t\tparts = rurl.exec( s.url.toLowerCase() );\n\t\t\ts.crossDomain = !!( parts &&\n\t\t\t\t( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] ||\n\t\t\t\t\t( parts[ 3 ] || ( parts[ 1 ] === \"http:\" ? \"80\" : \"443\" ) ) !==\n\t\t\t\t\t\t( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === \"http:\" ? \"80\" : \"443\" ) ) )\n\t\t\t);\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( state === 2 ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger(\"ajaxStart\");\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\tcacheURL = s.url;\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// If data is available, append data to url\n\t\t\tif ( s.data ) {\n\t\t\t\tcacheURL = ( s.url += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data );\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add anti-cache in url if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\ts.url = rts.test( cacheURL ) ?\n\n\t\t\t\t\t// If there is already a '_' parameter, set its value\n\t\t\t\t\tcacheURL.replace( rts, \"$1_=\" + nonce++ ) :\n\n\t\t\t\t\t// Otherwise add one to the end\n\t\t\t\t\tcacheURL + ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + nonce++;\n\t\t\t}\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tfor ( i in { success: 1, error: 1, complete: 1 } ) {\n\t\t\tjqXHR[ i ]( s[ i ] );\n\t\t}\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = setTimeout(function() {\n\t\t\t\t\tjqXHR.abort(\"timeout\");\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tstate = 1;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\t\t\t\t// Propagate exception as error if not done\n\t\t\t\tif ( state < 2 ) {\n\t\t\t\t\tdone( -1, e );\n\t\t\t\t// Simply rethrow otherwise\n\t\t\t\t} else {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Called once\n\t\t\tif ( state === 2 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// State is \"done\" now\n\t\t\tstate = 2;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\tclearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader(\"Last-Modified\");\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader(\"etag\");\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// We extract error from statusText\n\t\t\t\t// then normalize statusText and status for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger(\"ajaxStop\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n});\n\njQuery.each( [ \"get\", \"post\" ], function( i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\t\t// shift arguments if data argument was omitted\n\t\tif ( jQuery.isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\treturn jQuery.ajax({\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t});\n\t};\n});\n\n\njQuery._evalUrl = function( url ) {\n\treturn jQuery.ajax({\n\t\turl: url,\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tasync: false,\n\t\tglobal: false,\n\t\t\"throws\": true\n\t});\n};\n\n\njQuery.fn.extend({\n\twrapAll: function( html ) {\n\t\tif ( jQuery.isFunction( html ) ) {\n\t\t\treturn this.each(function(i) {\n\t\t\t\tjQuery(this).wrapAll( html.call(this, i) );\n\t\t\t});\n\t\t}\n\n\t\tif ( this[0] ) {\n\t\t\t// The elements to wrap the target around\n\t\t\tvar wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);\n\n\t\t\tif ( this[0].parentNode ) {\n\t\t\t\twrap.insertBefore( this[0] );\n\t\t\t}\n\n\t\t\twrap.map(function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstChild && elem.firstChild.nodeType === 1 ) {\n\t\t\t\t\telem = elem.firstChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t}).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( jQuery.isFunction( html ) ) {\n\t\t\treturn this.each(function(i) {\n\t\t\t\tjQuery(this).wrapInner( html.call(this, i) );\n\t\t\t});\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t});\n\t},\n\n\twrap: function( html ) {\n\t\tvar isFunction = jQuery.isFunction( html );\n\n\t\treturn this.each(function(i) {\n\t\t\tjQuery( this ).wrapAll( isFunction ? html.call(this, i) : html );\n\t\t});\n\t},\n\n\tunwrap: function() {\n\t\treturn this.parent().each(function() {\n\t\t\tif ( !jQuery.nodeName( this, \"body\" ) ) {\n\t\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t\t}\n\t\t}).end();\n\t}\n});\n\n\njQuery.expr.filters.hidden = function( elem ) {\n\t// Support: Opera <= 12.12\n\t// Opera reports offsetWidths and offsetHeights less than zero on some elements\n\treturn elem.offsetWidth <= 0 && elem.offsetHeight <= 0 ||\n\t\t(!support.reliableHiddenOffsets() &&\n\t\t\t((elem.style && elem.style.display) || jQuery.css( elem, \"display\" )) === \"none\");\n};\n\njQuery.expr.filters.visible = function( elem ) {\n\treturn !jQuery.expr.filters.hidden( elem );\n};\n\n\n\n\nvar r20 = /%20/g,\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( jQuery.isArray( obj ) ) {\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams( prefix + \"[\" + ( typeof v === \"object\" ? i : \"\" ) + \"]\", v, traditional, add );\n\t\t\t}\n\t\t});\n\n\t} else if ( !traditional && jQuery.type( obj ) === \"object\" ) {\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, value ) {\n\t\t\t// If value is a function, invoke it and return its value\n\t\t\tvalue = jQuery.isFunction( value ) ? value() : ( value == null ? \"\" : value );\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" + encodeURIComponent( value );\n\t\t};\n\n\t// Set traditional to true for jQuery <= 1.3.2 behavior.\n\tif ( traditional === undefined ) {\n\t\ttraditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t});\n\n\t} else {\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" ).replace( r20, \"+\" );\n};\n\njQuery.fn.extend({\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map(function() {\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t})\n\t\t.filter(function() {\n\t\t\tvar type = this.type;\n\t\t\t// Use .is(\":disabled\") so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t})\n\t\t.map(function( i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\treturn val == null ?\n\t\t\t\tnull :\n\t\t\t\tjQuery.isArray( val ) ?\n\t\t\t\t\tjQuery.map( val, function( val ) {\n\t\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t\t}) :\n\t\t\t\t\t{ name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t}).get();\n\t}\n});\n\n\n// Create the request object\n// (This is still attached to ajaxSettings for backward compatibility)\njQuery.ajaxSettings.xhr = window.ActiveXObject !== undefined ?\n\t// Support: IE6+\n\tfunction() {\n\n\t\t// XHR cannot access local files, always use ActiveX for that case\n\t\treturn !this.isLocal &&\n\n\t\t\t// Support: IE7-8\n\t\t\t// oldIE XHR does not support non-RFC2616 methods (#13240)\n\t\t\t// See http://msdn.microsoft.com/en-us/library/ie/ms536648(v=vs.85).aspx\n\t\t\t// and http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9\n\t\t\t// Although this check for six methods instead of eight\n\t\t\t// since IE also does not support \"trace\" and \"connect\"\n\t\t\t/^(get|post|head|put|delete|options)$/i.test( this.type ) &&\n\n\t\t\tcreateStandardXHR() || createActiveXHR();\n\t} :\n\t// For all other browsers, use the standard XMLHttpRequest object\n\tcreateStandardXHR;\n\nvar xhrId = 0,\n\txhrCallbacks = {},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\n// Support: IE<10\n// Open requests must be manually aborted on unload (#5280)\n// See https://support.microsoft.com/kb/2856746 for more info\nif ( window.attachEvent ) {\n\twindow.attachEvent( \"onunload\", function() {\n\t\tfor ( var key in xhrCallbacks ) {\n\t\t\txhrCallbacks[ key ]( undefined, true );\n\t\t}\n\t});\n}\n\n// Determine support properties\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nxhrSupported = support.ajax = !!xhrSupported;\n\n// Create transport if the browser can provide an xhr\nif ( xhrSupported ) {\n\n\tjQuery.ajaxTransport(function( options ) {\n\t\t// Cross domain only allowed if supported through XMLHttpRequest\n\t\tif ( !options.crossDomain || support.cors ) {\n\n\t\t\tvar callback;\n\n\t\t\treturn {\n\t\t\t\tsend: function( headers, complete ) {\n\t\t\t\t\tvar i,\n\t\t\t\t\t\txhr = options.xhr(),\n\t\t\t\t\t\tid = ++xhrId;\n\n\t\t\t\t\t// Open the socket\n\t\t\t\t\txhr.open( options.type, options.url, options.async, options.username, options.password );\n\n\t\t\t\t\t// Apply custom fields if provided\n\t\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Override mime type if needed\n\t\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t\t}\n\n\t\t\t\t\t// X-Requested-With header\n\t\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\t\tif ( !options.crossDomain && !headers[\"X-Requested-With\"] ) {\n\t\t\t\t\t\theaders[\"X-Requested-With\"] = \"XMLHttpRequest\";\n\t\t\t\t\t}\n\n\t\t\t\t\t// Set headers\n\t\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\t\t// Support: IE<9\n\t\t\t\t\t\t// IE's ActiveXObject throws a 'Type Mismatch' exception when setting\n\t\t\t\t\t\t// request header to a null-value.\n\t\t\t\t\t\t//\n\t\t\t\t\t\t// To keep consistent with other XHR implementations, cast the value\n\t\t\t\t\t\t// to string and ignore `undefined`.\n\t\t\t\t\t\tif ( headers[ i ] !== undefined ) {\n\t\t\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] + \"\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Do send the request\n\t\t\t\t\t// This may raise an exception which is actually\n\t\t\t\t\t// handled in jQuery.ajax (so no try/catch here)\n\t\t\t\t\txhr.send( ( options.hasContent && options.data ) || null );\n\n\t\t\t\t\t// Listener\n\t\t\t\t\tcallback = function( _, isAbort ) {\n\t\t\t\t\t\tvar status, statusText, responses;\n\n\t\t\t\t\t\t// Was never called and is aborted or complete\n\t\t\t\t\t\tif ( callback && ( isAbort || xhr.readyState === 4 ) ) {\n\t\t\t\t\t\t\t// Clean up\n\t\t\t\t\t\t\tdelete xhrCallbacks[ id ];\n\t\t\t\t\t\t\tcallback = undefined;\n\t\t\t\t\t\t\txhr.onreadystatechange = jQuery.noop;\n\n\t\t\t\t\t\t\t// Abort manually if needed\n\t\t\t\t\t\t\tif ( isAbort ) {\n\t\t\t\t\t\t\t\tif ( xhr.readyState !== 4 ) {\n\t\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tresponses = {};\n\t\t\t\t\t\t\t\tstatus = xhr.status;\n\n\t\t\t\t\t\t\t\t// Support: IE<10\n\t\t\t\t\t\t\t\t// Accessing binary-data responseText throws an exception\n\t\t\t\t\t\t\t\t// (#11426)\n\t\t\t\t\t\t\t\tif ( typeof xhr.responseText === \"string\" ) {\n\t\t\t\t\t\t\t\t\tresponses.text = xhr.responseText;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Firefox throws an exception when accessing\n\t\t\t\t\t\t\t\t// statusText for faulty cross-domain requests\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tstatusText = xhr.statusText;\n\t\t\t\t\t\t\t\t} catch( e ) {\n\t\t\t\t\t\t\t\t\t// We normalize with Webkit giving an empty statusText\n\t\t\t\t\t\t\t\t\tstatusText = \"\";\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Filter status for non standard behaviors\n\n\t\t\t\t\t\t\t\t// If the request is local and we have data: assume a success\n\t\t\t\t\t\t\t\t// (success with no data won't get notified, that's the best we\n\t\t\t\t\t\t\t\t// can do given current implementations)\n\t\t\t\t\t\t\t\tif ( !status && options.isLocal && !options.crossDomain ) {\n\t\t\t\t\t\t\t\t\tstatus = responses.text ? 200 : 404;\n\t\t\t\t\t\t\t\t// IE - #1450: sometimes returns 1223 when it should be 204\n\t\t\t\t\t\t\t\t} else if ( status === 1223 ) {\n\t\t\t\t\t\t\t\t\tstatus = 204;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Call complete if needed\n\t\t\t\t\t\tif ( responses ) {\n\t\t\t\t\t\t\tcomplete( status, statusText, responses, xhr.getAllResponseHeaders() );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tif ( !options.async ) {\n\t\t\t\t\t\t// if we're in sync mode we fire the callback\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t} else if ( xhr.readyState === 4 ) {\n\t\t\t\t\t\t// (IE6 & IE7) if it's in cache and has been\n\t\t\t\t\t\t// retrieved directly we need to fire the callback\n\t\t\t\t\t\tsetTimeout( callback );\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Add to the list of active xhr callbacks\n\t\t\t\t\t\txhr.onreadystatechange = xhrCallbacks[ id ] = callback;\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tabort: function() {\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tcallback( undefined, true );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t});\n}\n\n// Functions to create xhrs\nfunction createStandardXHR() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch( e ) {}\n}\n\nfunction createActiveXHR() {\n\ttry {\n\t\treturn new window.ActiveXObject( \"Microsoft.XMLHTTP\" );\n\t} catch( e ) {}\n}\n\n\n\n\n// Install script dataType\njQuery.ajaxSetup({\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /(?:java|ecma)script/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n});\n\n// Handle cache's special case and global\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t\ts.global = false;\n\t}\n});\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function(s) {\n\n\t// This transport only deals with cross domain requests\n\tif ( s.crossDomain ) {\n\n\t\tvar script,\n\t\t\thead = document.head || jQuery(\"head\")[0] || document.documentElement;\n\n\t\treturn {\n\n\t\t\tsend: function( _, callback ) {\n\n\t\t\t\tscript = document.createElement(\"script\");\n\n\t\t\t\tscript.async = true;\n\n\t\t\t\tif ( s.scriptCharset ) {\n\t\t\t\t\tscript.charset = s.scriptCharset;\n\t\t\t\t}\n\n\t\t\t\tscript.src = s.url;\n\n\t\t\t\t// Attach handlers for all browsers\n\t\t\t\tscript.onload = script.onreadystatechange = function( _, isAbort ) {\n\n\t\t\t\t\tif ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) {\n\n\t\t\t\t\t\t// Handle memory leak in IE\n\t\t\t\t\t\tscript.onload = script.onreadystatechange = null;\n\n\t\t\t\t\t\t// Remove the script\n\t\t\t\t\t\tif ( script.parentNode ) {\n\t\t\t\t\t\t\tscript.parentNode.removeChild( script );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Dereference the script\n\t\t\t\t\t\tscript = null;\n\n\t\t\t\t\t\t// Callback if not abort\n\t\t\t\t\t\tif ( !isAbort ) {\n\t\t\t\t\t\t\tcallback( 200, \"success\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\t// Circumvent IE6 bugs with base elements (#2709 and #4378) by prepending\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\thead.insertBefore( script, head.firstChild );\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( script ) {\n\t\t\t\t\tscript.onload( undefined, true );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n});\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup({\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n});\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" && !( s.contentType || \"\" ).indexOf(\"application/x-www-form-urlencoded\") && rjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[\"script json\"] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always(function() {\n\t\t\t// Restore preexisting value\n\t\t\twindow[ callbackName ] = overwritten;\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\t\t\t\t// make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && jQuery.isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t});\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n});\n\n\n\n\n// data: string of html\n// context (optional): If specified, the fragment will be created in this context, defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\tcontext = context || document;\n\n\tvar parsed = rsingleTag.exec( data ),\n\t\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[1] ) ];\n\t}\n\n\tparsed = jQuery.buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n// Keep a copy of the old load method\nvar _load = jQuery.fn.load;\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tif ( typeof url !== \"string\" && _load ) {\n\t\treturn _load.apply( this, arguments );\n\t}\n\n\tvar selector, response, type,\n\t\tself = this,\n\t\toff = url.indexOf(\" \");\n\n\tif ( off >= 0 ) {\n\t\tselector = jQuery.trim( url.slice( off, url.length ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( jQuery.isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax({\n\t\t\turl: url,\n\n\t\t\t// if \"type\" variable is undefined, then \"GET\" method will be used\n\t\t\ttype: type,\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t}).done(function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery(\"<div>\").append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t}).complete( callback && function( jqXHR, status ) {\n\t\t\tself.each( callback, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t});\n\t}\n\n\treturn this;\n};\n\n\n\n\n// Attach a bunch of functions for handling common AJAX events\njQuery.each( [ \"ajaxStart\", \"ajaxStop\", \"ajaxComplete\", \"ajaxError\", \"ajaxSuccess\", \"ajaxSend\" ], function( i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n});\n\n\n\n\njQuery.expr.filters.animated = function( elem ) {\n\treturn jQuery.grep(jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t}).length;\n};\n\n\n\n\n\nvar docElem = window.document.documentElement;\n\n/**\n * Gets a window from an element\n */\nfunction getWindow( elem ) {\n\treturn jQuery.isWindow( elem ) ?\n\t\telem :\n\t\telem.nodeType === 9 ?\n\t\t\telem.defaultView || elem.parentWindow :\n\t\t\tfalse;\n}\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\tjQuery.inArray(\"auto\", [ curCSSTop, curCSSLeft ] ) > -1;\n\n\t\t// need to be able to calculate position if either top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( jQuery.isFunction( options ) ) {\n\t\t\toptions = options.call( elem, i, curOffset );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend({\n\toffset: function( options ) {\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each(function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t});\n\t\t}\n\n\t\tvar docElem, win,\n\t\t\tbox = { top: 0, left: 0 },\n\t\t\telem = this[ 0 ],\n\t\t\tdoc = elem && elem.ownerDocument;\n\n\t\tif ( !doc ) {\n\t\t\treturn;\n\t\t}\n\n\t\tdocElem = doc.documentElement;\n\n\t\t// Make sure it's not a disconnected DOM node\n\t\tif ( !jQuery.contains( docElem, elem ) ) {\n\t\t\treturn box;\n\t\t}\n\n\t\t// If we don't have gBCR, just use 0,0 rather than error\n\t\t// BlackBerry 5, iOS 3 (original iPhone)\n\t\tif ( typeof elem.getBoundingClientRect !== strundefined ) {\n\t\t\tbox = elem.getBoundingClientRect();\n\t\t}\n\t\twin = getWindow( doc );\n\t\treturn {\n\t\t\ttop: box.top  + ( win.pageYOffset || docElem.scrollTop )  - ( docElem.clientTop  || 0 ),\n\t\t\tleft: box.left + ( win.pageXOffset || docElem.scrollLeft ) - ( docElem.clientLeft || 0 )\n\t\t};\n\t},\n\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset,\n\t\t\tparentOffset = { top: 0, left: 0 },\n\t\t\telem = this[ 0 ];\n\n\t\t// fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is its only offset parent\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\t\t\t// we assume that getBoundingClientRect is available when computed position is fixed\n\t\t\toffset = elem.getBoundingClientRect();\n\t\t} else {\n\t\t\t// Get *real* offsetParent\n\t\t\toffsetParent = this.offsetParent();\n\n\t\t\t// Get correct offsets\n\t\t\toffset = this.offset();\n\t\t\tif ( !jQuery.nodeName( offsetParent[ 0 ], \"html\" ) ) {\n\t\t\t\tparentOffset = offsetParent.offset();\n\t\t\t}\n\n\t\t\t// Add offsetParent borders\n\t\t\tparentOffset.top  += jQuery.css( offsetParent[ 0 ], \"borderTopWidth\", true );\n\t\t\tparentOffset.left += jQuery.css( offsetParent[ 0 ], \"borderLeftWidth\", true );\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\t// note: when an element has margin: auto the offsetLeft and marginLeft\n\t\t// are the same in Safari causing offset.left to incorrectly be 0\n\t\treturn {\n\t\t\ttop:  offset.top  - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true)\n\t\t};\n\t},\n\n\toffsetParent: function() {\n\t\treturn this.map(function() {\n\t\t\tvar offsetParent = this.offsetParent || docElem;\n\n\t\t\twhile ( offsetParent && ( !jQuery.nodeName( offsetParent, \"html\" ) && jQuery.css( offsetParent, \"position\" ) === \"static\" ) ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\t\t\treturn offsetParent || docElem;\n\t\t});\n\t}\n});\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = /Y/.test( prop );\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\t\t\tvar win = getWindow( elem );\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? (prop in win) ? win[ prop ] :\n\t\t\t\t\twin.document.documentElement[ method ] :\n\t\t\t\t\telem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : jQuery( win ).scrollLeft(),\n\t\t\t\t\ttop ? val : jQuery( win ).scrollTop()\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length, null );\n\t};\n});\n\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// getComputedStyle returns percent when specified for top/left/bottom/right\n// rather than make the css module depend on the offset module, we just check for it here\njQuery.each( [ \"top\", \"left\" ], function( i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\t\t\t\t// if curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n});\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( { padding: \"inner\" + name, content: type, \"\": \"outer\" + name }, function( defaultExtra, funcName ) {\n\t\t// margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( jQuery.isWindow( elem ) ) {\n\t\t\t\t\t// As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there\n\t\t\t\t\t// isn't a whole lot we can do. See pull request at this URL for discussion:\n\t\t\t\t\t// https://github.com/jquery/jquery/pull/764\n\t\t\t\t\treturn elem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest\n\t\t\t\t\t// unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it.\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable, null );\n\t\t};\n\t});\n});\n\n\n// The number of elements contained in the matched element set\njQuery.fn.size = function() {\n\treturn this.length;\n};\n\njQuery.fn.andSelf = jQuery.fn.addBack;\n\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t});\n}\n\n\n\n\nvar\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in\n// AMD (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( typeof noGlobal === strundefined ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n\n}));\n"
  },
  {
    "path": "server/files/javascript/library/less.js",
    "content": "/*!\n * Less - Leaner CSS v2.5.1\n * http://lesscss.org\n *\n * Copyright (c) 2009-2015, Alexis Sellier <self@cloudhead.net>\n * Licensed under the Apache v2 License.\n *\n */\n\n /** * @license Apache v2\n */\n\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.less = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\nvar addDataAttr = require(\"./utils\").addDataAttr,\n    browser = require(\"./browser\");\n\nmodule.exports = function(window, options) {\n\n    // use options from the current script tag data attribues\n    addDataAttr(options, browser.currentScript(window));\n\n    if (options.isFileProtocol === undefined) {\n        options.isFileProtocol = /^(file|(chrome|safari)(-extension)?|resource|qrc|app):/.test(window.location.protocol);\n    }\n\n    // Load styles asynchronously (default: false)\n    //\n    // This is set to `false` by default, so that the body\n    // doesn't start loading before the stylesheets are parsed.\n    // Setting this to `true` can result in flickering.\n    //\n    options.async = options.async || false;\n    options.fileAsync = options.fileAsync || false;\n\n    // Interval between watch polls\n    options.poll = options.poll || (options.isFileProtocol ? 1000 : 1500);\n\n    options.env = options.env || (window.location.hostname == '127.0.0.1' ||\n        window.location.hostname == '0.0.0.0'   ||\n        window.location.hostname == 'localhost' ||\n        (window.location.port &&\n            window.location.port.length > 0)      ||\n        options.isFileProtocol                   ? 'development'\n        : 'production');\n\n    var dumpLineNumbers = /!dumpLineNumbers:(comments|mediaquery|all)/.exec(window.location.hash);\n    if (dumpLineNumbers) {\n        options.dumpLineNumbers = dumpLineNumbers[1];\n    }\n\n    if (options.useFileCache === undefined) {\n        options.useFileCache = true;\n    }\n\n    if (options.onReady === undefined) {\n        options.onReady = true;\n    }\n\n};\n\n},{\"./browser\":3,\"./utils\":9}],2:[function(require,module,exports){\n/**\n * Kicks off less and compiles any stylesheets\n * used in the browser distributed version of less\n * to kick-start less using the browser api\n */\n/*global window */\n\n// shim Promise if required\nrequire('promise/polyfill.js');\n\nvar options = window.less || {};\nrequire(\"./add-default-options\")(window, options);\n\nvar less = module.exports = require(\"./index\")(window, options);\n\nwindow.less = less;\n\nif (options.onReady) {\n    if (/!watch/.test(window.location.hash)) {\n        less.watch();\n    }\n\n    less.registerStylesheetsImmediately();\n    less.pageLoadFinished = less.refresh(less.env === 'development');\n}\n\n},{\"./add-default-options\":1,\"./index\":7,\"promise/polyfill.js\":94}],3:[function(require,module,exports){\nvar utils = require(\"./utils\");\nmodule.exports = {\n    createCSS: function (document, styles, sheet) {\n        // Strip the query-string\n        var href = sheet.href || '';\n\n        // If there is no title set, use the filename, minus the extension\n        var id = 'less:' + (sheet.title || utils.extractId(href));\n\n        // If this has already been inserted into the DOM, we may need to replace it\n        var oldStyleNode = document.getElementById(id);\n        var keepOldStyleNode = false;\n\n        // Create a new stylesheet node for insertion or (if necessary) replacement\n        var styleNode = document.createElement('style');\n        styleNode.setAttribute('type', 'text/css');\n        if (sheet.media) {\n            styleNode.setAttribute('media', sheet.media);\n        }\n        styleNode.id = id;\n\n        if (!styleNode.styleSheet) {\n            styleNode.appendChild(document.createTextNode(styles));\n\n            // If new contents match contents of oldStyleNode, don't replace oldStyleNode\n            keepOldStyleNode = (oldStyleNode !== null && oldStyleNode.childNodes.length > 0 && styleNode.childNodes.length > 0 &&\n                oldStyleNode.firstChild.nodeValue === styleNode.firstChild.nodeValue);\n        }\n\n        var head = document.getElementsByTagName('head')[0];\n\n        // If there is no oldStyleNode, just append; otherwise, only append if we need\n        // to replace oldStyleNode with an updated stylesheet\n        if (oldStyleNode === null || keepOldStyleNode === false) {\n            var nextEl = sheet && sheet.nextSibling || null;\n            if (nextEl) {\n                nextEl.parentNode.insertBefore(styleNode, nextEl);\n            } else {\n                head.appendChild(styleNode);\n            }\n        }\n        if (oldStyleNode && keepOldStyleNode === false) {\n            oldStyleNode.parentNode.removeChild(oldStyleNode);\n        }\n\n        // For IE.\n        // This needs to happen *after* the style element is added to the DOM, otherwise IE 7 and 8 may crash.\n        // See http://social.msdn.microsoft.com/Forums/en-US/7e081b65-878a-4c22-8e68-c10d39c2ed32/internet-explorer-crashes-appending-style-element-to-head\n        if (styleNode.styleSheet) {\n            try {\n                styleNode.styleSheet.cssText = styles;\n            } catch (e) {\n                throw new Error(\"Couldn't reassign styleSheet.cssText.\");\n            }\n        }\n    },\n    currentScript: function(window) {\n        var document = window.document;\n        return document.currentScript || (function() {\n            var scripts = document.getElementsByTagName(\"script\");\n            return scripts[scripts.length - 1];\n        })();\n    }\n};\n\n},{\"./utils\":9}],4:[function(require,module,exports){\n// Cache system is a bit outdated and could do with work\n\nmodule.exports = function(window, options, logger) {\n    var cache = null;\n    if (options.env !== 'development') {\n        try {\n            cache = (typeof window.localStorage === 'undefined') ? null : window.localStorage;\n        } catch (_) {}\n    }\n    return {\n        setCSS: function(path, lastModified, styles) {\n            if (cache) {\n                logger.info('saving ' + path + ' to cache.');\n                try {\n                    cache.setItem(path, styles);\n                    cache.setItem(path + ':timestamp', lastModified);\n                } catch(e) {\n                    //TODO - could do with adding more robust error handling\n                    logger.error('failed to save \"' + path + '\" to local storage for caching.');\n                }\n            }\n        },\n        getCSS: function(path, webInfo) {\n            var css       = cache && cache.getItem(path),\n                timestamp = cache && cache.getItem(path + ':timestamp');\n\n            if (timestamp && webInfo.lastModified &&\n                (new Date(webInfo.lastModified).valueOf() ===\n                    new Date(timestamp).valueOf())) {\n                // Use local copy\n                return css;\n            }\n        }\n    };\n};\n\n},{}],5:[function(require,module,exports){\nvar utils = require(\"./utils\"),\n    browser = require(\"./browser\");\n\nmodule.exports = function(window, less, options) {\n\n    function errorHTML(e, rootHref) {\n        var id = 'less-error-message:' + utils.extractId(rootHref || \"\");\n        var template = '<li><label>{line}</label><pre class=\"{class}\">{content}</pre></li>';\n        var elem = window.document.createElement('div'), timer, content, errors = [];\n        var filename = e.filename || rootHref;\n        var filenameNoPath = filename.match(/([^\\/]+(\\?.*)?)$/)[1];\n\n        elem.id        = id;\n        elem.className = \"less-error-message\";\n\n        content = '<h3>'  + (e.type || \"Syntax\") + \"Error: \" + (e.message || 'There is an error in your .less file') +\n            '</h3>' + '<p>in <a href=\"' + filename   + '\">' + filenameNoPath + \"</a> \";\n\n        var errorline = function (e, i, classname) {\n            if (e.extract[i] !== undefined) {\n                errors.push(template.replace(/\\{line\\}/, (parseInt(e.line, 10) || 0) + (i - 1))\n                    .replace(/\\{class\\}/, classname)\n                    .replace(/\\{content\\}/, e.extract[i]));\n            }\n        };\n\n        if (e.extract) {\n            errorline(e, 0, '');\n            errorline(e, 1, 'line');\n            errorline(e, 2, '');\n            content += 'on line ' + e.line + ', column ' + (e.column + 1) + ':</p>' +\n                '<ul>' + errors.join('') + '</ul>';\n        }\n        if (e.stack && (e.extract || options.logLevel >= 4)) {\n            content += '<br/>Stack Trace</br />' + e.stack.split('\\n').slice(1).join('<br/>');\n        }\n        elem.innerHTML = content;\n\n        // CSS for error messages\n        browser.createCSS(window.document, [\n            '.less-error-message ul, .less-error-message li {',\n            'list-style-type: none;',\n            'margin-right: 15px;',\n            'padding: 4px 0;',\n            'margin: 0;',\n            '}',\n            '.less-error-message label {',\n            'font-size: 12px;',\n            'margin-right: 15px;',\n            'padding: 4px 0;',\n            'color: #cc7777;',\n            '}',\n            '.less-error-message pre {',\n            'color: #dd6666;',\n            'padding: 4px 0;',\n            'margin: 0;',\n            'display: inline-block;',\n            '}',\n            '.less-error-message pre.line {',\n            'color: #ff0000;',\n            '}',\n            '.less-error-message h3 {',\n            'font-size: 20px;',\n            'font-weight: bold;',\n            'padding: 15px 0 5px 0;',\n            'margin: 0;',\n            '}',\n            '.less-error-message a {',\n            'color: #10a',\n            '}',\n            '.less-error-message .error {',\n            'color: red;',\n            'font-weight: bold;',\n            'padding-bottom: 2px;',\n            'border-bottom: 1px dashed red;',\n            '}'\n        ].join('\\n'), { title: 'error-message' });\n\n        elem.style.cssText = [\n            \"font-family: Arial, sans-serif\",\n            \"border: 1px solid #e00\",\n            \"background-color: #eee\",\n            \"border-radius: 5px\",\n            \"-webkit-border-radius: 5px\",\n            \"-moz-border-radius: 5px\",\n            \"color: #e00\",\n            \"padding: 15px\",\n            \"margin-bottom: 15px\"\n        ].join(';');\n\n        if (options.env === 'development') {\n            timer = setInterval(function () {\n                var document = window.document,\n                    body = document.body;\n                if (body) {\n                    if (document.getElementById(id)) {\n                        body.replaceChild(elem, document.getElementById(id));\n                    } else {\n                        body.insertBefore(elem, body.firstChild);\n                    }\n                    clearInterval(timer);\n                }\n            }, 10);\n        }\n    }\n\n    function error(e, rootHref) {\n        if (!options.errorReporting || options.errorReporting === \"html\") {\n            errorHTML(e, rootHref);\n        } else if (options.errorReporting === \"console\") {\n            errorConsole(e, rootHref);\n        } else if (typeof options.errorReporting === 'function') {\n            options.errorReporting(\"add\", e, rootHref);\n        }\n    }\n\n    function removeErrorHTML(path) {\n        var node = window.document.getElementById('less-error-message:' + utils.extractId(path));\n        if (node) {\n            node.parentNode.removeChild(node);\n        }\n    }\n\n    function removeErrorConsole(path) {\n        //no action\n    }\n\n    function removeError(path) {\n        if (!options.errorReporting || options.errorReporting === \"html\") {\n            removeErrorHTML(path);\n        } else if (options.errorReporting === \"console\") {\n            removeErrorConsole(path);\n        } else if (typeof options.errorReporting === 'function') {\n            options.errorReporting(\"remove\", path);\n        }\n    }\n\n    function errorConsole(e, rootHref) {\n        var template = '{line} {content}';\n        var filename = e.filename || rootHref;\n        var errors = [];\n        var content = (e.type || \"Syntax\") + \"Error: \" + (e.message || 'There is an error in your .less file') +\n            \" in \" + filename + \" \";\n\n        var errorline = function (e, i, classname) {\n            if (e.extract[i] !== undefined) {\n                errors.push(template.replace(/\\{line\\}/, (parseInt(e.line, 10) || 0) + (i - 1))\n                    .replace(/\\{class\\}/, classname)\n                    .replace(/\\{content\\}/, e.extract[i]));\n            }\n        };\n\n        if (e.extract) {\n            errorline(e, 0, '');\n            errorline(e, 1, 'line');\n            errorline(e, 2, '');\n            content += 'on line ' + e.line + ', column ' + (e.column + 1) + ':\\n' +\n                errors.join('\\n');\n        }\n        if (e.stack && (e.extract || options.logLevel >= 4)) {\n            content += '\\nStack Trace\\n' + e.stack;\n        }\n        less.logger.error(content);\n    }\n\n    return {\n        add: error,\n        remove: removeError\n    };\n};\n\n},{\"./browser\":3,\"./utils\":9}],6:[function(require,module,exports){\n/*global window, XMLHttpRequest */\n\nmodule.exports = function(options, logger) {\n\n    var AbstractFileManager = require(\"../less/environment/abstract-file-manager.js\");\n\n    var fileCache = {};\n\n    //TODOS - move log somewhere. pathDiff and doing something similar in node. use pathDiff in the other browser file for the initial load\n\n    function getXMLHttpRequest() {\n        if (window.XMLHttpRequest && (window.location.protocol !== \"file:\" || !(\"ActiveXObject\" in window))) {\n            return new XMLHttpRequest();\n        } else {\n            try {\n                /*global ActiveXObject */\n                return new ActiveXObject(\"Microsoft.XMLHTTP\");\n            } catch (e) {\n                logger.error(\"browser doesn't support AJAX.\");\n                return null;\n            }\n        }\n    }\n\n    var FileManager = function() {\n    };\n\n    FileManager.prototype = new AbstractFileManager();\n\n    FileManager.prototype.alwaysMakePathsAbsolute = function alwaysMakePathsAbsolute() {\n        return true;\n    };\n    FileManager.prototype.join = function join(basePath, laterPath) {\n        if (!basePath) {\n            return laterPath;\n        }\n        return this.extractUrlParts(laterPath, basePath).path;\n    };\n    FileManager.prototype.doXHR = function doXHR(url, type, callback, errback) {\n\n        var xhr = getXMLHttpRequest();\n        var async = options.isFileProtocol ? options.fileAsync : options.async;\n\n        if (typeof xhr.overrideMimeType === 'function') {\n            xhr.overrideMimeType('text/css');\n        }\n        logger.debug(\"XHR: Getting '\" + url + \"'\");\n        xhr.open('GET', url, async);\n        xhr.setRequestHeader('Accept', type || 'text/x-less, text/css; q=0.9, */*; q=0.5');\n        xhr.send(null);\n\n        function handleResponse(xhr, callback, errback) {\n            if (xhr.status >= 200 && xhr.status < 300) {\n                callback(xhr.responseText,\n                    xhr.getResponseHeader(\"Last-Modified\"));\n            } else if (typeof errback === 'function') {\n                errback(xhr.status, url);\n            }\n        }\n\n        if (options.isFileProtocol && !options.fileAsync) {\n            if (xhr.status === 0 || (xhr.status >= 200 && xhr.status < 300)) {\n                callback(xhr.responseText);\n            } else {\n                errback(xhr.status, url);\n            }\n        } else if (async) {\n            xhr.onreadystatechange = function () {\n                if (xhr.readyState == 4) {\n                    handleResponse(xhr, callback, errback);\n                }\n            };\n        } else {\n            handleResponse(xhr, callback, errback);\n        }\n    };\n    FileManager.prototype.supports = function(filename, currentDirectory, options, environment) {\n        return true;\n    };\n\n    FileManager.prototype.clearFileCache = function() {\n        fileCache = {};\n    };\n\n    FileManager.prototype.loadFile = function loadFile(filename, currentDirectory, options, environment, callback) {\n        if (currentDirectory && !this.isPathAbsolute(filename)) {\n            filename = currentDirectory + filename;\n        }\n\n        options = options || {};\n\n        // sheet may be set to the stylesheet for the initial load or a collection of properties including\n        // some context variables for imports\n        var hrefParts = this.extractUrlParts(filename, window.location.href);\n        var href      = hrefParts.url;\n\n        if (options.useFileCache && fileCache[href]) {\n            try {\n                var lessText = fileCache[href];\n                callback(null, { contents: lessText, filename: href, webInfo: { lastModified: new Date() }});\n            } catch (e) {\n                callback({filename: href, message: \"Error loading file \" + href + \" error was \" + e.message});\n            }\n            return;\n        }\n\n        this.doXHR(href, options.mime, function doXHRCallback(data, lastModified) {\n            // per file cache\n            fileCache[href] = data;\n\n            // Use remote copy (re-parse)\n            callback(null, { contents: data, filename: href, webInfo: { lastModified: lastModified }});\n        }, function doXHRError(status, url) {\n            callback({ type: 'File', message: \"'\" + url + \"' wasn't found (\" + status + \")\", href: href });\n        });\n    };\n\n    return FileManager;\n};\n\n},{\"../less/environment/abstract-file-manager.js\":14}],7:[function(require,module,exports){\n//\n// index.js\n// Should expose the additional browser functions on to the less object\n//\nvar addDataAttr = require(\"./utils\").addDataAttr,\n    browser = require(\"./browser\");\n\nmodule.exports = function(window, options) {\n    var document = window.document;\n    var less = require('../less')();\n    //module.exports = less;\n    less.options = options;\n    var environment = less.environment,\n        FileManager = require(\"./file-manager\")(options, less.logger),\n        fileManager = new FileManager();\n    environment.addFileManager(fileManager);\n    less.FileManager = FileManager;\n\n    require(\"./log-listener\")(less, options);\n    var errors = require(\"./error-reporting\")(window, less, options);\n    var cache = less.cache = options.cache || require(\"./cache\")(window, options, less.logger);\n\n    //Setup user functions\n    if (options.functions) {\n        less.functions.functionRegistry.addMultiple(options.functions);\n    }\n\n    var typePattern = /^text\\/(x-)?less$/;\n\n    function postProcessCSS(styles) { // deprecated, use a plugin for postprocesstasks\n        if (options.postProcessor && typeof options.postProcessor === 'function') {\n            styles = options.postProcessor.call(styles, styles) || styles;\n        }\n        return styles;\n    }\n\n    function clone(obj) {\n        var cloned = {};\n        for (var prop in obj) {\n            if (obj.hasOwnProperty(prop)) {\n                cloned[prop] = obj[prop];\n            }\n        }\n        return cloned;\n    }\n\n    // only really needed for phantom\n    function bind(func, thisArg) {\n        var curryArgs = Array.prototype.slice.call(arguments, 2);\n        return function() {\n            var args = curryArgs.concat(Array.prototype.slice.call(arguments, 0));\n            return func.apply(thisArg, args);\n        };\n    }\n\n    function loadStyles(modifyVars) {\n        var styles = document.getElementsByTagName('style'),\n            style;\n\n        for (var i = 0; i < styles.length; i++) {\n            style = styles[i];\n            if (style.type.match(typePattern)) {\n                var instanceOptions = clone(options);\n                instanceOptions.modifyVars = modifyVars;\n                var lessText = style.innerHTML || '';\n                instanceOptions.filename = document.location.href.replace(/#.*$/, '');\n\n                /*jshint loopfunc:true */\n                // use closure to store current style\n                less.render(lessText, instanceOptions,\n                        bind(function(style, e, result) {\n                            if (e) {\n                                errors.add(e, \"inline\");\n                            } else {\n                                style.type = 'text/css';\n                                if (style.styleSheet) {\n                                    style.styleSheet.cssText = result.css;\n                                } else {\n                                    style.innerHTML = result.css;\n                                }\n                            }\n                        }, null, style));\n            }\n        }\n    }\n\n    function loadStyleSheet(sheet, callback, reload, remaining, modifyVars) {\n\n        var instanceOptions = clone(options);\n        addDataAttr(instanceOptions, sheet);\n        instanceOptions.mime = sheet.type;\n\n        if (modifyVars) {\n            instanceOptions.modifyVars = modifyVars;\n        }\n\n        function loadInitialFileCallback(loadedFile) {\n\n            var data = loadedFile.contents,\n                path = loadedFile.filename,\n                webInfo = loadedFile.webInfo;\n\n            var newFileInfo = {\n                currentDirectory: fileManager.getPath(path),\n                filename: path,\n                rootFilename: path,\n                relativeUrls: instanceOptions.relativeUrls};\n\n            newFileInfo.entryPath = newFileInfo.currentDirectory;\n            newFileInfo.rootpath = instanceOptions.rootpath || newFileInfo.currentDirectory;\n\n            if (webInfo) {\n                webInfo.remaining = remaining;\n\n                if (!instanceOptions.modifyVars) {\n                    var css = cache.getCSS(path, webInfo);\n                    if (!reload && css) {\n                        webInfo.local = true;\n                        callback(null, css, data, sheet, webInfo, path);\n                        return;\n                    }\n                }\n            }\n\n            //TODO add tests around how this behaves when reloading\n            errors.remove(path);\n\n            instanceOptions.rootFileInfo = newFileInfo;\n            less.render(data, instanceOptions, function(e, result) {\n                if (e) {\n                    e.href = path;\n                    callback(e);\n                } else {\n                    result.css = postProcessCSS(result.css);\n                    if (!instanceOptions.modifyVars) {\n                        cache.setCSS(sheet.href, webInfo.lastModified, result.css);\n                    }\n                    callback(null, result.css, data, sheet, webInfo, path);\n                }\n            });\n        }\n\n        fileManager.loadFile(sheet.href, null, instanceOptions, environment, function(e, loadedFile) {\n            if (e) {\n                callback(e);\n                return;\n            }\n            loadInitialFileCallback(loadedFile);\n        });\n    }\n\n    function loadStyleSheets(callback, reload, modifyVars) {\n        for (var i = 0; i < less.sheets.length; i++) {\n            loadStyleSheet(less.sheets[i], callback, reload, less.sheets.length - (i + 1), modifyVars);\n        }\n    }\n\n    function initRunningMode() {\n        if (less.env === 'development') {\n            less.watchTimer = setInterval(function () {\n                if (less.watchMode) {\n                    fileManager.clearFileCache();\n                    loadStyleSheets(function (e, css, _, sheet, webInfo) {\n                        if (e) {\n                            errors.add(e, e.href || sheet.href);\n                        } else if (css) {\n                            browser.createCSS(window.document, css, sheet);\n                        }\n                    });\n                }\n            }, options.poll);\n        }\n    }\n\n    //\n    // Watch mode\n    //\n    less.watch   = function () {\n        if (!less.watchMode ) {\n            less.env = 'development';\n            initRunningMode();\n        }\n        this.watchMode = true;\n        return true;\n    };\n\n    less.unwatch = function () {clearInterval(less.watchTimer); this.watchMode = false; return false; };\n\n    //\n    // Synchronously get all <link> tags with the 'rel' attribute set to\n    // \"stylesheet/less\".\n    //\n    less.registerStylesheetsImmediately = function() {\n        var links = document.getElementsByTagName('link');\n        less.sheets = [];\n\n        for (var i = 0; i < links.length; i++) {\n            if (links[i].rel === 'stylesheet/less' || (links[i].rel.match(/stylesheet/) &&\n                (links[i].type.match(typePattern)))) {\n                less.sheets.push(links[i]);\n            }\n        }\n    };\n\n    //\n    // Asynchronously get all <link> tags with the 'rel' attribute set to\n    // \"stylesheet/less\", returning a Promise.\n    //\n    less.registerStylesheets = function() {\n        return new Promise(function(resolve, reject) {\n            less.registerStylesheetsImmediately();\n            resolve();\n        });\n    };\n\n    //\n    // With this function, it's possible to alter variables and re-render\n    // CSS without reloading less-files\n    //\n    less.modifyVars = function(record) {\n        return less.refresh(true, record, false);\n    };\n\n    less.refresh = function (reload, modifyVars, clearFileCache) {\n        if ((reload || clearFileCache) && clearFileCache !== false) {\n            fileManager.clearFileCache();\n        }\n        return new Promise(function (resolve, reject) {\n            var startTime, endTime, totalMilliseconds;\n            startTime = endTime = new Date();\n\n            loadStyleSheets(function (e, css, _, sheet, webInfo) {\n                if (e) {\n                    errors.add(e, e.href || sheet.href);\n                    reject(e);\n                    return;\n                }\n                if (webInfo.local) {\n                    less.logger.info(\"loading \" + sheet.href + \" from cache.\");\n                } else {\n                    less.logger.info(\"rendered \" + sheet.href + \" successfully.\");\n                }\n                browser.createCSS(window.document, css, sheet);\n                less.logger.info(\"css for \" + sheet.href + \" generated in \" + (new Date() - endTime) + 'ms');\n                if (webInfo.remaining === 0) {\n                    totalMilliseconds = new Date() - startTime;\n                    less.logger.info(\"less has finished. css generated in \" + totalMilliseconds + 'ms');\n                    resolve({\n                        startTime: startTime,\n                        endTime: endTime,\n                        totalMilliseconds: totalMilliseconds,\n                        sheets: less.sheets.length\n                    });\n                }\n                endTime = new Date();\n            }, reload, modifyVars);\n\n            loadStyles(modifyVars);\n        });\n    };\n\n    less.refreshStyles = loadStyles;\n    return less;\n};\n\n},{\"../less\":29,\"./browser\":3,\"./cache\":4,\"./error-reporting\":5,\"./file-manager\":6,\"./log-listener\":8,\"./utils\":9}],8:[function(require,module,exports){\nmodule.exports = function(less, options) {\n\n    var logLevel_debug = 4,\n        logLevel_info = 3,\n        logLevel_warn = 2,\n        logLevel_error = 1;\n\n    // The amount of logging in the javascript console.\n    // 3 - Debug, information and errors\n    // 2 - Information and errors\n    // 1 - Errors\n    // 0 - None\n    // Defaults to 2\n    options.logLevel = typeof options.logLevel !== 'undefined' ? options.logLevel : (options.env === 'development' ?  logLevel_info : logLevel_error);\n\n    if (!options.loggers) {\n        options.loggers = [{\n            debug: function(msg) {\n                if (options.logLevel >= logLevel_debug) {\n                    console.log(msg);\n                }\n            },\n            info: function(msg) {\n                if (options.logLevel >= logLevel_info) {\n                    console.log(msg);\n                }\n            },\n            warn: function(msg) {\n                if (options.logLevel >= logLevel_warn) {\n                    console.warn(msg);\n                }\n            },\n            error: function(msg) {\n                if (options.logLevel >= logLevel_error) {\n                    console.error(msg);\n                }\n            }\n        }];\n    }\n    for (var i = 0; i < options.loggers.length; i++) {\n        less.logger.addListener(options.loggers[i]);\n    }\n};\n\n},{}],9:[function(require,module,exports){\nmodule.exports = {\n    extractId: function(href) {\n        return href.replace(/^[a-z-]+:\\/+?[^\\/]+/, '')  // Remove protocol & domain\n            .replace(/[\\?\\&]livereload=\\w+/, '')        // Remove LiveReload cachebuster\n            .replace(/^\\//, '')                         // Remove root /\n            .replace(/\\.[a-zA-Z]+$/, '')                // Remove simple extension\n            .replace(/[^\\.\\w-]+/g, '-')                 // Replace illegal characters\n            .replace(/\\./g, ':');                       // Replace dots with colons(for valid id)\n    },\n    addDataAttr: function(options, tag) {\n        for (var opt in tag.dataset) {\n            if (tag.dataset.hasOwnProperty(opt)) {\n                if (opt === \"env\" || opt === \"dumpLineNumbers\" || opt === \"rootpath\" || opt === \"errorReporting\") {\n                    options[opt] = tag.dataset[opt];\n                } else {\n                    try {\n                        options[opt] = JSON.parse(tag.dataset[opt]);\n                    }\n                    catch(_) {}\n                }\n            }\n        }\n    }\n};\n\n},{}],10:[function(require,module,exports){\nvar contexts = {};\nmodule.exports = contexts;\n\nvar copyFromOriginal = function copyFromOriginal(original, destination, propertiesToCopy) {\n    if (!original) { return; }\n\n    for (var i = 0; i < propertiesToCopy.length; i++) {\n        if (original.hasOwnProperty(propertiesToCopy[i])) {\n            destination[propertiesToCopy[i]] = original[propertiesToCopy[i]];\n        }\n    }\n};\n\n/*\n parse is used whilst parsing\n */\nvar parseCopyProperties = [\n    // options\n    'paths',            // option - unmodified - paths to search for imports on\n    'relativeUrls',     // option - whether to adjust URL's to be relative\n    'rootpath',         // option - rootpath to append to URL's\n    'strictImports',    // option -\n    'insecure',         // option - whether to allow imports from insecure ssl hosts\n    'dumpLineNumbers',  // option - whether to dump line numbers\n    'compress',         // option - whether to compress\n    'syncImport',       // option - whether to import synchronously\n    'chunkInput',       // option - whether to chunk input. more performant but causes parse issues.\n    'mime',             // browser only - mime type for sheet import\n    'useFileCache',     // browser only - whether to use the per file session cache\n    // context\n    'processImports',   // option & context - whether to process imports. if false then imports will not be imported.\n                        // Used by the import manager to stop multiple import visitors being created.\n    'reference',        // Used to indicate that the contents are imported by reference\n    'pluginManager'     // Used as the plugin manager for the session\n];\n\ncontexts.Parse = function(options) {\n    copyFromOriginal(options, this, parseCopyProperties);\n\n    if (typeof this.paths === \"string\") { this.paths = [this.paths]; }\n};\n\nvar evalCopyProperties = [\n    'paths',          // additional include paths\n    'compress',       // whether to compress\n    'ieCompat',       // whether to enforce IE compatibility (IE8 data-uri)\n    'strictMath',     // whether math has to be within parenthesis\n    'strictUnits',    // whether units need to evaluate correctly\n    'sourceMap',      // whether to output a source map\n    'importMultiple', // whether we are currently importing multiple copies\n    'urlArgs',        // whether to add args into url tokens\n    'javascriptEnabled',// option - whether JavaScript is enabled. if undefined, defaults to true\n    'pluginManager',  // Used as the plugin manager for the session\n    'importantScope'  // used to bubble up !important statements\n    ];\n\ncontexts.Eval = function(options, frames) {\n    copyFromOriginal(options, this, evalCopyProperties);\n\n    if (typeof this.paths === \"string\") { this.paths = [this.paths]; }\n\n    this.frames = frames || [];\n    this.importantScope = this.importantScope || [];\n};\n\ncontexts.Eval.prototype.inParenthesis = function () {\n    if (!this.parensStack) {\n        this.parensStack = [];\n    }\n    this.parensStack.push(true);\n};\n\ncontexts.Eval.prototype.outOfParenthesis = function () {\n    this.parensStack.pop();\n};\n\ncontexts.Eval.prototype.isMathOn = function () {\n    return this.strictMath ? (this.parensStack && this.parensStack.length) : true;\n};\n\ncontexts.Eval.prototype.isPathRelative = function (path) {\n    return !/^(?:[a-z-]+:|\\/|#)/i.test(path);\n};\n\ncontexts.Eval.prototype.normalizePath = function( path ) {\n    var\n      segments = path.split(\"/\").reverse(),\n      segment;\n\n    path = [];\n    while (segments.length !== 0 ) {\n        segment = segments.pop();\n        switch( segment ) {\n            case \".\":\n                break;\n            case \"..\":\n                if ((path.length === 0) || (path[path.length - 1] === \"..\")) {\n                    path.push( segment );\n                } else {\n                    path.pop();\n                }\n                break;\n            default:\n                path.push( segment );\n                break;\n        }\n    }\n\n    return path.join(\"/\");\n};\n\n//todo - do the same for the toCSS ?\n\n},{}],11:[function(require,module,exports){\nmodule.exports = {\n    'aliceblue':'#f0f8ff',\n    'antiquewhite':'#faebd7',\n    'aqua':'#00ffff',\n    'aquamarine':'#7fffd4',\n    'azure':'#f0ffff',\n    'beige':'#f5f5dc',\n    'bisque':'#ffe4c4',\n    'black':'#000000',\n    'blanchedalmond':'#ffebcd',\n    'blue':'#0000ff',\n    'blueviolet':'#8a2be2',\n    'brown':'#a52a2a',\n    'burlywood':'#deb887',\n    'cadetblue':'#5f9ea0',\n    'chartreuse':'#7fff00',\n    'chocolate':'#d2691e',\n    'coral':'#ff7f50',\n    'cornflowerblue':'#6495ed',\n    'cornsilk':'#fff8dc',\n    'crimson':'#dc143c',\n    'cyan':'#00ffff',\n    'darkblue':'#00008b',\n    'darkcyan':'#008b8b',\n    'darkgoldenrod':'#b8860b',\n    'darkgray':'#a9a9a9',\n    'darkgrey':'#a9a9a9',\n    'darkgreen':'#006400',\n    'darkkhaki':'#bdb76b',\n    'darkmagenta':'#8b008b',\n    'darkolivegreen':'#556b2f',\n    'darkorange':'#ff8c00',\n    'darkorchid':'#9932cc',\n    'darkred':'#8b0000',\n    'darksalmon':'#e9967a',\n    'darkseagreen':'#8fbc8f',\n    'darkslateblue':'#483d8b',\n    'darkslategray':'#2f4f4f',\n    'darkslategrey':'#2f4f4f',\n    'darkturquoise':'#00ced1',\n    'darkviolet':'#9400d3',\n    'deeppink':'#ff1493',\n    'deepskyblue':'#00bfff',\n    'dimgray':'#696969',\n    'dimgrey':'#696969',\n    'dodgerblue':'#1e90ff',\n    'firebrick':'#b22222',\n    'floralwhite':'#fffaf0',\n    'forestgreen':'#228b22',\n    'fuchsia':'#ff00ff',\n    'gainsboro':'#dcdcdc',\n    'ghostwhite':'#f8f8ff',\n    'gold':'#ffd700',\n    'goldenrod':'#daa520',\n    'gray':'#808080',\n    'grey':'#808080',\n    'green':'#008000',\n    'greenyellow':'#adff2f',\n    'honeydew':'#f0fff0',\n    'hotpink':'#ff69b4',\n    'indianred':'#cd5c5c',\n    'indigo':'#4b0082',\n    'ivory':'#fffff0',\n    'khaki':'#f0e68c',\n    'lavender':'#e6e6fa',\n    'lavenderblush':'#fff0f5',\n    'lawngreen':'#7cfc00',\n    'lemonchiffon':'#fffacd',\n    'lightblue':'#add8e6',\n    'lightcoral':'#f08080',\n    'lightcyan':'#e0ffff',\n    'lightgoldenrodyellow':'#fafad2',\n    'lightgray':'#d3d3d3',\n    'lightgrey':'#d3d3d3',\n    'lightgreen':'#90ee90',\n    'lightpink':'#ffb6c1',\n    'lightsalmon':'#ffa07a',\n    'lightseagreen':'#20b2aa',\n    'lightskyblue':'#87cefa',\n    'lightslategray':'#778899',\n    'lightslategrey':'#778899',\n    'lightsteelblue':'#b0c4de',\n    'lightyellow':'#ffffe0',\n    'lime':'#00ff00',\n    'limegreen':'#32cd32',\n    'linen':'#faf0e6',\n    'magenta':'#ff00ff',\n    'maroon':'#800000',\n    'mediumaquamarine':'#66cdaa',\n    'mediumblue':'#0000cd',\n    'mediumorchid':'#ba55d3',\n    'mediumpurple':'#9370d8',\n    'mediumseagreen':'#3cb371',\n    'mediumslateblue':'#7b68ee',\n    'mediumspringgreen':'#00fa9a',\n    'mediumturquoise':'#48d1cc',\n    'mediumvioletred':'#c71585',\n    'midnightblue':'#191970',\n    'mintcream':'#f5fffa',\n    'mistyrose':'#ffe4e1',\n    'moccasin':'#ffe4b5',\n    'navajowhite':'#ffdead',\n    'navy':'#000080',\n    'oldlace':'#fdf5e6',\n    'olive':'#808000',\n    'olivedrab':'#6b8e23',\n    'orange':'#ffa500',\n    'orangered':'#ff4500',\n    'orchid':'#da70d6',\n    'palegoldenrod':'#eee8aa',\n    'palegreen':'#98fb98',\n    'paleturquoise':'#afeeee',\n    'palevioletred':'#d87093',\n    'papayawhip':'#ffefd5',\n    'peachpuff':'#ffdab9',\n    'peru':'#cd853f',\n    'pink':'#ffc0cb',\n    'plum':'#dda0dd',\n    'powderblue':'#b0e0e6',\n    'purple':'#800080',\n    'rebeccapurple':'#663399',\n    'red':'#ff0000',\n    'rosybrown':'#bc8f8f',\n    'royalblue':'#4169e1',\n    'saddlebrown':'#8b4513',\n    'salmon':'#fa8072',\n    'sandybrown':'#f4a460',\n    'seagreen':'#2e8b57',\n    'seashell':'#fff5ee',\n    'sienna':'#a0522d',\n    'silver':'#c0c0c0',\n    'skyblue':'#87ceeb',\n    'slateblue':'#6a5acd',\n    'slategray':'#708090',\n    'slategrey':'#708090',\n    'snow':'#fffafa',\n    'springgreen':'#00ff7f',\n    'steelblue':'#4682b4',\n    'tan':'#d2b48c',\n    'teal':'#008080',\n    'thistle':'#d8bfd8',\n    'tomato':'#ff6347',\n    'turquoise':'#40e0d0',\n    'violet':'#ee82ee',\n    'wheat':'#f5deb3',\n    'white':'#ffffff',\n    'whitesmoke':'#f5f5f5',\n    'yellow':'#ffff00',\n    'yellowgreen':'#9acd32'\n};\n},{}],12:[function(require,module,exports){\nmodule.exports = {\n    colors: require(\"./colors\"),\n    unitConversions: require(\"./unit-conversions\")\n};\n\n},{\"./colors\":11,\"./unit-conversions\":13}],13:[function(require,module,exports){\nmodule.exports = {\n    length: {\n        'm': 1,\n        'cm': 0.01,\n        'mm': 0.001,\n        'in': 0.0254,\n        'px': 0.0254 / 96,\n        'pt': 0.0254 / 72,\n        'pc': 0.0254 / 72 * 12\n    },\n    duration: {\n        's': 1,\n        'ms': 0.001\n    },\n    angle: {\n        'rad': 1 / (2 * Math.PI),\n        'deg': 1 / 360,\n        'grad': 1 / 400,\n        'turn': 1\n    }\n};\n},{}],14:[function(require,module,exports){\nvar abstractFileManager = function() {\n};\n\nabstractFileManager.prototype.getPath = function (filename) {\n    var j = filename.lastIndexOf('?');\n    if (j > 0) {\n        filename = filename.slice(0, j);\n    }\n    j = filename.lastIndexOf('/');\n    if (j < 0) {\n        j = filename.lastIndexOf('\\\\');\n    }\n    if (j < 0) {\n        return \"\";\n    }\n    return filename.slice(0, j + 1);\n};\n\nabstractFileManager.prototype.tryAppendExtension = function(path, ext) {\n    return /(\\.[a-z]*$)|([\\?;].*)$/.test(path) ? path : path + ext;\n};\n\nabstractFileManager.prototype.tryAppendLessExtension = function(path) {\n    return this.tryAppendExtension(path, '.less');\n};\n\nabstractFileManager.prototype.supportsSync = function() {\n    return false;\n};\n\nabstractFileManager.prototype.alwaysMakePathsAbsolute = function() {\n    return false;\n};\n\nabstractFileManager.prototype.isPathAbsolute = function(filename) {\n    return (/^(?:[a-z-]+:|\\/|\\\\|#)/i).test(filename);\n};\n\nabstractFileManager.prototype.join = function(basePath, laterPath) {\n    if (!basePath) {\n        return laterPath;\n    }\n    return basePath + laterPath;\n};\nabstractFileManager.prototype.pathDiff = function pathDiff(url, baseUrl) {\n    // diff between two paths to create a relative path\n\n    var urlParts = this.extractUrlParts(url),\n        baseUrlParts = this.extractUrlParts(baseUrl),\n        i, max, urlDirectories, baseUrlDirectories, diff = \"\";\n    if (urlParts.hostPart !== baseUrlParts.hostPart) {\n        return \"\";\n    }\n    max = Math.max(baseUrlParts.directories.length, urlParts.directories.length);\n    for (i = 0; i < max; i++) {\n        if (baseUrlParts.directories[i] !== urlParts.directories[i]) { break; }\n    }\n    baseUrlDirectories = baseUrlParts.directories.slice(i);\n    urlDirectories = urlParts.directories.slice(i);\n    for (i = 0; i < baseUrlDirectories.length - 1; i++) {\n        diff += \"../\";\n    }\n    for (i = 0; i < urlDirectories.length - 1; i++) {\n        diff += urlDirectories[i] + \"/\";\n    }\n    return diff;\n};\n// helper function, not part of API\nabstractFileManager.prototype.extractUrlParts = function extractUrlParts(url, baseUrl) {\n    // urlParts[1] = protocol&hostname || /\n    // urlParts[2] = / if path relative to host base\n    // urlParts[3] = directories\n    // urlParts[4] = filename\n    // urlParts[5] = parameters\n\n    var urlPartsRegex = /^((?:[a-z-]+:)?\\/+?(?:[^\\/\\?#]*\\/)|([\\/\\\\]))?((?:[^\\/\\\\\\?#]*[\\/\\\\])*)([^\\/\\\\\\?#]*)([#\\?].*)?$/i,\n        urlParts = url.match(urlPartsRegex),\n        returner = {}, directories = [], i, baseUrlParts;\n\n    if (!urlParts) {\n        throw new Error(\"Could not parse sheet href - '\" + url + \"'\");\n    }\n\n    // Stylesheets in IE don't always return the full path\n    if (baseUrl && (!urlParts[1] || urlParts[2])) {\n        baseUrlParts = baseUrl.match(urlPartsRegex);\n        if (!baseUrlParts) {\n            throw new Error(\"Could not parse page url - '\" + baseUrl + \"'\");\n        }\n        urlParts[1] = urlParts[1] || baseUrlParts[1] || \"\";\n        if (!urlParts[2]) {\n            urlParts[3] = baseUrlParts[3] + urlParts[3];\n        }\n    }\n\n    if (urlParts[3]) {\n        directories = urlParts[3].replace(/\\\\/g, \"/\").split(\"/\");\n\n        // extract out . before .. so .. doesn't absorb a non-directory\n        for (i = 0; i < directories.length; i++) {\n            if (directories[i] === \".\") {\n                directories.splice(i, 1);\n                i -= 1;\n            }\n        }\n\n        for (i = 0; i < directories.length; i++) {\n            if (directories[i] === \"..\" && i > 0) {\n                directories.splice(i - 1, 2);\n                i -= 2;\n            }\n        }\n    }\n\n    returner.hostPart = urlParts[1];\n    returner.directories = directories;\n    returner.path = (urlParts[1] || \"\") + directories.join(\"/\");\n    returner.fileUrl = returner.path + (urlParts[4] || \"\");\n    returner.url = returner.fileUrl + (urlParts[5] || \"\");\n    return returner;\n};\n\nmodule.exports = abstractFileManager;\n\n},{}],15:[function(require,module,exports){\nvar logger = require(\"../logger\");\nvar environment = function(externalEnvironment, fileManagers) {\n    this.fileManagers = fileManagers || [];\n    externalEnvironment = externalEnvironment || {};\n\n    var optionalFunctions = [\"encodeBase64\", \"mimeLookup\", \"charsetLookup\", \"getSourceMapGenerator\"],\n        requiredFunctions = [],\n        functions = requiredFunctions.concat(optionalFunctions);\n\n    for (var i = 0; i < functions.length; i++) {\n        var propName = functions[i],\n            environmentFunc = externalEnvironment[propName];\n        if (environmentFunc) {\n            this[propName] = environmentFunc.bind(externalEnvironment);\n        } else if (i < requiredFunctions.length) {\n            this.warn(\"missing required function in environment - \" + propName);\n        }\n    }\n};\n\nenvironment.prototype.getFileManager = function (filename, currentDirectory, options, environment, isSync) {\n\n    if (!filename) {\n        logger.warn(\"getFileManager called with no filename.. Please report this issue. continuing.\");\n    }\n    if (currentDirectory == null) {\n        logger.warn(\"getFileManager called with null directory.. Please report this issue. continuing.\");\n    }\n\n    var fileManagers = this.fileManagers;\n    if (options.pluginManager) {\n        fileManagers = [].concat(fileManagers).concat(options.pluginManager.getFileManagers());\n    }\n    for (var i = fileManagers.length - 1; i >= 0 ; i--) {\n        var fileManager = fileManagers[i];\n        if (fileManager[isSync ? \"supportsSync\" : \"supports\"](filename, currentDirectory, options, environment)) {\n            return fileManager;\n        }\n    }\n    return null;\n};\n\nenvironment.prototype.addFileManager = function (fileManager) {\n    this.fileManagers.push(fileManager);\n};\n\nenvironment.prototype.clearFileManagers = function () {\n    this.fileManagers = [];\n};\n\nmodule.exports = environment;\n\n},{\"../logger\":31}],16:[function(require,module,exports){\nvar Color = require(\"../tree/color\"),\n    functionRegistry = require(\"./function-registry\");\n\n// Color Blending\n// ref: http://www.w3.org/TR/compositing-1\n\nfunction colorBlend(mode, color1, color2) {\n    var ab = color1.alpha, cb, // backdrop\n        as = color2.alpha, cs, // source\n        ar, cr, r = [];        // result\n\n    ar = as + ab * (1 - as);\n    for (var i = 0; i < 3; i++) {\n        cb = color1.rgb[i] / 255;\n        cs = color2.rgb[i] / 255;\n        cr = mode(cb, cs);\n        if (ar) {\n            cr = (as * cs + ab * (cb -\n                  as * (cb + cs - cr))) / ar;\n        }\n        r[i] = cr * 255;\n    }\n\n    return new Color(r, ar);\n}\n\nvar colorBlendModeFunctions = {\n    multiply: function(cb, cs) {\n        return cb * cs;\n    },\n    screen: function(cb, cs) {\n        return cb + cs - cb * cs;\n    },\n    overlay: function(cb, cs) {\n        cb *= 2;\n        return (cb <= 1) ?\n            colorBlendModeFunctions.multiply(cb, cs) :\n            colorBlendModeFunctions.screen(cb - 1, cs);\n    },\n    softlight: function(cb, cs) {\n        var d = 1, e = cb;\n        if (cs > 0.5) {\n            e = 1;\n            d = (cb > 0.25) ? Math.sqrt(cb)\n                : ((16 * cb - 12) * cb + 4) * cb;\n        }\n        return cb - (1 - 2 * cs) * e * (d - cb);\n    },\n    hardlight: function(cb, cs) {\n        return colorBlendModeFunctions.overlay(cs, cb);\n    },\n    difference: function(cb, cs) {\n        return Math.abs(cb - cs);\n    },\n    exclusion: function(cb, cs) {\n        return cb + cs - 2 * cb * cs;\n    },\n\n    // non-w3c functions:\n    average: function(cb, cs) {\n        return (cb + cs) / 2;\n    },\n    negation: function(cb, cs) {\n        return 1 - Math.abs(cb + cs - 1);\n    }\n};\n\nfor (var f in colorBlendModeFunctions) {\n    if (colorBlendModeFunctions.hasOwnProperty(f)) {\n        colorBlend[f] = colorBlend.bind(null, colorBlendModeFunctions[f]);\n    }\n}\n\nfunctionRegistry.addMultiple(colorBlend);\n\n},{\"../tree/color\":48,\"./function-registry\":21}],17:[function(require,module,exports){\nvar Dimension = require(\"../tree/dimension\"),\n    Color = require(\"../tree/color\"),\n    Quoted = require(\"../tree/quoted\"),\n    Anonymous = require(\"../tree/anonymous\"),\n    functionRegistry = require(\"./function-registry\"),\n    colorFunctions;\n\nfunction clamp(val) {\n    return Math.min(1, Math.max(0, val));\n}\nfunction hsla(color) {\n    return colorFunctions.hsla(color.h, color.s, color.l, color.a);\n}\nfunction number(n) {\n    if (n instanceof Dimension) {\n        return parseFloat(n.unit.is('%') ? n.value / 100 : n.value);\n    } else if (typeof n === 'number') {\n        return n;\n    } else {\n        throw {\n            type: \"Argument\",\n            message: \"color functions take numbers as parameters\"\n        };\n    }\n}\nfunction scaled(n, size) {\n    if (n instanceof Dimension && n.unit.is('%')) {\n        return parseFloat(n.value * size / 100);\n    } else {\n        return number(n);\n    }\n}\ncolorFunctions = {\n    rgb: function (r, g, b) {\n        return colorFunctions.rgba(r, g, b, 1.0);\n    },\n    rgba: function (r, g, b, a) {\n        var rgb = [r, g, b].map(function (c) { return scaled(c, 255); });\n        a = number(a);\n        return new Color(rgb, a);\n    },\n    hsl: function (h, s, l) {\n        return colorFunctions.hsla(h, s, l, 1.0);\n    },\n    hsla: function (h, s, l, a) {\n        function hue(h) {\n            h = h < 0 ? h + 1 : (h > 1 ? h - 1 : h);\n            if (h * 6 < 1) {\n                return m1 + (m2 - m1) * h * 6;\n            }\n            else if (h * 2 < 1) {\n                return m2;\n            }\n            else if (h * 3 < 2) {\n                return m1 + (m2 - m1) * (2 / 3 - h) * 6;\n            }\n            else {\n                return m1;\n            }\n        }\n\n        h = (number(h) % 360) / 360;\n        s = clamp(number(s)); l = clamp(number(l)); a = clamp(number(a));\n\n        var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n        var m1 = l * 2 - m2;\n\n        return colorFunctions.rgba(hue(h + 1 / 3) * 255,\n            hue(h)       * 255,\n            hue(h - 1 / 3) * 255,\n            a);\n    },\n\n    hsv: function(h, s, v) {\n        return colorFunctions.hsva(h, s, v, 1.0);\n    },\n\n    hsva: function(h, s, v, a) {\n        h = ((number(h) % 360) / 360) * 360;\n        s = number(s); v = number(v); a = number(a);\n\n        var i, f;\n        i = Math.floor((h / 60) % 6);\n        f = (h / 60) - i;\n\n        var vs = [v,\n            v * (1 - s),\n            v * (1 - f * s),\n            v * (1 - (1 - f) * s)];\n        var perm = [[0, 3, 1],\n            [2, 0, 1],\n            [1, 0, 3],\n            [1, 2, 0],\n            [3, 1, 0],\n            [0, 1, 2]];\n\n        return colorFunctions.rgba(vs[perm[i][0]] * 255,\n            vs[perm[i][1]] * 255,\n            vs[perm[i][2]] * 255,\n            a);\n    },\n\n    hue: function (color) {\n        return new Dimension(color.toHSL().h);\n    },\n    saturation: function (color) {\n        return new Dimension(color.toHSL().s * 100, '%');\n    },\n    lightness: function (color) {\n        return new Dimension(color.toHSL().l * 100, '%');\n    },\n    hsvhue: function(color) {\n        return new Dimension(color.toHSV().h);\n    },\n    hsvsaturation: function (color) {\n        return new Dimension(color.toHSV().s * 100, '%');\n    },\n    hsvvalue: function (color) {\n        return new Dimension(color.toHSV().v * 100, '%');\n    },\n    red: function (color) {\n        return new Dimension(color.rgb[0]);\n    },\n    green: function (color) {\n        return new Dimension(color.rgb[1]);\n    },\n    blue: function (color) {\n        return new Dimension(color.rgb[2]);\n    },\n    alpha: function (color) {\n        return new Dimension(color.toHSL().a);\n    },\n    luma: function (color) {\n        return new Dimension(color.luma() * color.alpha * 100, '%');\n    },\n    luminance: function (color) {\n        var luminance =\n            (0.2126 * color.rgb[0] / 255) +\n                (0.7152 * color.rgb[1] / 255) +\n                (0.0722 * color.rgb[2] / 255);\n\n        return new Dimension(luminance * color.alpha * 100, '%');\n    },\n    saturate: function (color, amount, method) {\n        // filter: saturate(3.2);\n        // should be kept as is, so check for color\n        if (!color.rgb) {\n            return null;\n        }\n        var hsl = color.toHSL();\n\n        if (typeof method !== \"undefined\" && method.value === \"relative\") {\n            hsl.s +=  hsl.s * amount.value / 100;\n        }\n        else {\n            hsl.s += amount.value / 100;\n        }\n        hsl.s = clamp(hsl.s);\n        return hsla(hsl);\n    },\n    desaturate: function (color, amount, method) {\n        var hsl = color.toHSL();\n\n        if (typeof method !== \"undefined\" && method.value === \"relative\") {\n            hsl.s -=  hsl.s * amount.value / 100;\n        }\n        else {\n            hsl.s -= amount.value / 100;\n        }\n        hsl.s = clamp(hsl.s);\n        return hsla(hsl);\n    },\n    lighten: function (color, amount, method) {\n        var hsl = color.toHSL();\n\n        if (typeof method !== \"undefined\" && method.value === \"relative\") {\n            hsl.l +=  hsl.l * amount.value / 100;\n        }\n        else {\n            hsl.l += amount.value / 100;\n        }\n        hsl.l = clamp(hsl.l);\n        return hsla(hsl);\n    },\n    darken: function (color, amount, method) {\n        var hsl = color.toHSL();\n\n        if (typeof method !== \"undefined\" && method.value === \"relative\") {\n            hsl.l -=  hsl.l * amount.value / 100;\n        }\n        else {\n            hsl.l -= amount.value / 100;\n        }\n        hsl.l = clamp(hsl.l);\n        return hsla(hsl);\n    },\n    fadein: function (color, amount, method) {\n        var hsl = color.toHSL();\n\n        if (typeof method !== \"undefined\" && method.value === \"relative\") {\n            hsl.a +=  hsl.a * amount.value / 100;\n        }\n        else {\n            hsl.a += amount.value / 100;\n        }\n        hsl.a = clamp(hsl.a);\n        return hsla(hsl);\n    },\n    fadeout: function (color, amount, method) {\n        var hsl = color.toHSL();\n\n        if (typeof method !== \"undefined\" && method.value === \"relative\") {\n            hsl.a -=  hsl.a * amount.value / 100;\n        }\n        else {\n            hsl.a -= amount.value / 100;\n        }\n        hsl.a = clamp(hsl.a);\n        return hsla(hsl);\n    },\n    fade: function (color, amount) {\n        var hsl = color.toHSL();\n\n        hsl.a = amount.value / 100;\n        hsl.a = clamp(hsl.a);\n        return hsla(hsl);\n    },\n    spin: function (color, amount) {\n        var hsl = color.toHSL();\n        var hue = (hsl.h + amount.value) % 360;\n\n        hsl.h = hue < 0 ? 360 + hue : hue;\n\n        return hsla(hsl);\n    },\n    //\n    // Copyright (c) 2006-2009 Hampton Catlin, Nathan Weizenbaum, and Chris Eppstein\n    // http://sass-lang.com\n    //\n    mix: function (color1, color2, weight) {\n        if (!color1.toHSL || !color2.toHSL) {\n            console.log(color2.type);\n            console.dir(color2);\n        }\n        if (!weight) {\n            weight = new Dimension(50);\n        }\n        var p = weight.value / 100.0;\n        var w = p * 2 - 1;\n        var a = color1.toHSL().a - color2.toHSL().a;\n\n        var w1 = (((w * a == -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n        var w2 = 1 - w1;\n\n        var rgb = [color1.rgb[0] * w1 + color2.rgb[0] * w2,\n            color1.rgb[1] * w1 + color2.rgb[1] * w2,\n            color1.rgb[2] * w1 + color2.rgb[2] * w2];\n\n        var alpha = color1.alpha * p + color2.alpha * (1 - p);\n\n        return new Color(rgb, alpha);\n    },\n    greyscale: function (color) {\n        return colorFunctions.desaturate(color, new Dimension(100));\n    },\n    contrast: function (color, dark, light, threshold) {\n        // filter: contrast(3.2);\n        // should be kept as is, so check for color\n        if (!color.rgb) {\n            return null;\n        }\n        if (typeof light === 'undefined') {\n            light = colorFunctions.rgba(255, 255, 255, 1.0);\n        }\n        if (typeof dark === 'undefined') {\n            dark = colorFunctions.rgba(0, 0, 0, 1.0);\n        }\n        //Figure out which is actually light and dark!\n        if (dark.luma() > light.luma()) {\n            var t = light;\n            light = dark;\n            dark = t;\n        }\n        if (typeof threshold === 'undefined') {\n            threshold = 0.43;\n        } else {\n            threshold = number(threshold);\n        }\n        if (color.luma() < threshold) {\n            return light;\n        } else {\n            return dark;\n        }\n    },\n    argb: function (color) {\n        return new Anonymous(color.toARGB());\n    },\n    color: function(c) {\n        if ((c instanceof Quoted) &&\n            (/^#([a-f0-9]{6}|[a-f0-9]{3})$/i.test(c.value))) {\n            return new Color(c.value.slice(1));\n        }\n        if ((c instanceof Color) || (c = Color.fromKeyword(c.value))) {\n            c.value = undefined;\n            return c;\n        }\n        throw {\n            type:    \"Argument\",\n            message: \"argument must be a color keyword or 3/6 digit hex e.g. #FFF\"\n        };\n    },\n    tint: function(color, amount) {\n        return colorFunctions.mix(colorFunctions.rgb(255, 255, 255), color, amount);\n    },\n    shade: function(color, amount) {\n        return colorFunctions.mix(colorFunctions.rgb(0, 0, 0), color, amount);\n    }\n};\nfunctionRegistry.addMultiple(colorFunctions);\n\n},{\"../tree/anonymous\":44,\"../tree/color\":48,\"../tree/dimension\":54,\"../tree/quoted\":71,\"./function-registry\":21}],18:[function(require,module,exports){\nmodule.exports = function(environment) {\n    var Quoted = require(\"../tree/quoted\"),\n        URL = require(\"../tree/url\"),\n        functionRegistry = require(\"./function-registry\"),\n        fallback = function(functionThis, node) {\n            return new URL(node, functionThis.index, functionThis.currentFileInfo).eval(functionThis.context);\n        },\n        logger = require('../logger');\n\n    functionRegistry.add(\"data-uri\", function(mimetypeNode, filePathNode) {\n\n        if (!filePathNode) {\n            filePathNode = mimetypeNode;\n            mimetypeNode = null;\n        }\n\n        var mimetype = mimetypeNode && mimetypeNode.value;\n        var filePath = filePathNode.value;\n        var currentFileInfo = this.currentFileInfo;\n        var currentDirectory = currentFileInfo.relativeUrls ?\n            currentFileInfo.currentDirectory : currentFileInfo.entryPath;\n\n        var fragmentStart = filePath.indexOf('#');\n        var fragment = '';\n        if (fragmentStart !== -1) {\n            fragment = filePath.slice(fragmentStart);\n            filePath = filePath.slice(0, fragmentStart);\n        }\n\n        var fileManager = environment.getFileManager(filePath, currentDirectory, this.context, environment, true);\n\n        if (!fileManager) {\n            return fallback(this, filePathNode);\n        }\n\n        var useBase64 = false;\n\n        // detect the mimetype if not given\n        if (!mimetypeNode) {\n\n            mimetype = environment.mimeLookup(filePath);\n\n            if (mimetype === \"image/svg+xml\") {\n                useBase64 = false;\n            } else {\n                // use base 64 unless it's an ASCII or UTF-8 format\n                var charset = environment.charsetLookup(mimetype);\n                useBase64 = ['US-ASCII', 'UTF-8'].indexOf(charset) < 0;\n            }\n            if (useBase64) { mimetype += ';base64'; }\n        }\n        else {\n            useBase64 = /;base64$/.test(mimetype);\n        }\n\n        var fileSync = fileManager.loadFileSync(filePath, currentDirectory, this.context, environment);\n        if (!fileSync.contents) {\n            logger.warn(\"Skipped data-uri embedding of \" + filePath + \" because file not found\");\n            return fallback(this, filePathNode || mimetypeNode);\n        }\n        var buf = fileSync.contents;\n        if (useBase64 && !environment.encodeBase64) {\n            return fallback(this, filePathNode);\n        }\n\n        buf = useBase64 ? environment.encodeBase64(buf) : encodeURIComponent(buf);\n\n        var uri = \"data:\" + mimetype + ',' + buf + fragment;\n\n        // IE8 cannot handle a data-uri larger than 32,768 characters. If this is exceeded\n        // and the --ieCompat flag is enabled, return a normal url() instead.\n        var DATA_URI_MAX = 32768;\n        if (uri.length >= DATA_URI_MAX) {\n\n            if (this.context.ieCompat !== false) {\n                logger.warn(\"Skipped data-uri embedding of \" + filePath + \" because its size (\" + uri.length +\n                    \" characters) exceeds IE8-safe \" + DATA_URI_MAX + \" characters!\");\n\n                return fallback(this, filePathNode || mimetypeNode);\n            }\n        }\n\n        return new URL(new Quoted('\"' + uri + '\"', uri, false, this.index, this.currentFileInfo), this.index, this.currentFileInfo);\n    });\n};\n\n},{\"../logger\":31,\"../tree/quoted\":71,\"../tree/url\":78,\"./function-registry\":21}],19:[function(require,module,exports){\nvar Keyword = require(\"../tree/keyword\"),\n    functionRegistry = require(\"./function-registry\");\n\nvar defaultFunc = {\n    eval: function () {\n        var v = this.value_, e = this.error_;\n        if (e) {\n            throw e;\n        }\n        if (v != null) {\n            return v ? Keyword.True : Keyword.False;\n        }\n    },\n    value: function (v) {\n        this.value_ = v;\n    },\n    error: function (e) {\n        this.error_ = e;\n    },\n    reset: function () {\n        this.value_ = this.error_ = null;\n    }\n};\n\nfunctionRegistry.add(\"default\", defaultFunc.eval.bind(defaultFunc));\n\nmodule.exports = defaultFunc;\n\n},{\"../tree/keyword\":63,\"./function-registry\":21}],20:[function(require,module,exports){\nvar Expression = require(\"../tree/expression\");\n\nvar functionCaller = function(name, context, index, currentFileInfo) {\n    this.name = name.toLowerCase();\n    this.index = index;\n    this.context = context;\n    this.currentFileInfo = currentFileInfo;\n\n    this.func = context.frames[0].functionRegistry.get(this.name);\n};\nfunctionCaller.prototype.isValid = function() {\n    return Boolean(this.func);\n};\nfunctionCaller.prototype.call = function(args) {\n\n    // This code is terrible and should be replaced as per this issue...\n    // https://github.com/less/less.js/issues/2477\n    if (Array.isArray(args)) {\n        args = args.filter(function (item) {\n            if (item.type === \"Comment\") {\n                return false;\n            }\n            return true;\n        })\n        .map(function(item) {\n            if (item.type === \"Expression\") {\n                var subNodes = item.value.filter(function (item) {\n                    if (item.type === \"Comment\") {\n                        return false;\n                    }\n                    return true;\n                });\n                if (subNodes.length === 1) {\n                    return subNodes[0];\n                } else {\n                    return new Expression(subNodes);\n                }\n            }\n            return item;\n        });\n    }\n\n    return this.func.apply(this, args);\n};\n\nmodule.exports = functionCaller;\n\n},{\"../tree/expression\":57}],21:[function(require,module,exports){\nfunction makeRegistry( base ) {\n    return {\n        _data: {},\n        add: function(name, func) {\n            // precautionary case conversion, as later querying of\n            // the registry by function-caller uses lower case as well.\n            name = name.toLowerCase();\n\n            if (this._data.hasOwnProperty(name)) {\n                //TODO warn\n            }\n            this._data[name] = func;\n        },\n        addMultiple: function(functions) {\n            Object.keys(functions).forEach(\n                function(name) {\n                    this.add(name, functions[name]);\n                }.bind(this));\n        },\n        get: function(name) {\n            return this._data[name] || ( base && base.get( name ));\n        },\n        inherit : function() {\n            return makeRegistry( this );\n        }\n    };\n}\n\nmodule.exports = makeRegistry( null );\n},{}],22:[function(require,module,exports){\nmodule.exports = function(environment) {\n    var functions = {\n        functionRegistry: require(\"./function-registry\"),\n        functionCaller: require(\"./function-caller\")\n    };\n\n    //register functions\n    require(\"./default\");\n    require(\"./color\");\n    require(\"./color-blending\");\n    require(\"./data-uri\")(environment);\n    require(\"./math\");\n    require(\"./number\");\n    require(\"./string\");\n    require(\"./svg\")(environment);\n    require(\"./types\");\n\n    return functions;\n};\n\n},{\"./color\":17,\"./color-blending\":16,\"./data-uri\":18,\"./default\":19,\"./function-caller\":20,\"./function-registry\":21,\"./math\":23,\"./number\":24,\"./string\":25,\"./svg\":26,\"./types\":27}],23:[function(require,module,exports){\nvar Dimension = require(\"../tree/dimension\"),\n    functionRegistry = require(\"./function-registry\");\n\nvar mathFunctions = {\n    // name,  unit\n    ceil:  null,\n    floor: null,\n    sqrt:  null,\n    abs:   null,\n    tan:   \"\",\n    sin:   \"\",\n    cos:   \"\",\n    atan:  \"rad\",\n    asin:  \"rad\",\n    acos:  \"rad\"\n};\n\nfunction _math(fn, unit, n) {\n    if (!(n instanceof Dimension)) {\n        throw { type: \"Argument\", message: \"argument must be a number\" };\n    }\n    if (unit == null) {\n        unit = n.unit;\n    } else {\n        n = n.unify();\n    }\n    return new Dimension(fn(parseFloat(n.value)), unit);\n}\n\nfor (var f in mathFunctions) {\n    if (mathFunctions.hasOwnProperty(f)) {\n        mathFunctions[f] = _math.bind(null, Math[f], mathFunctions[f]);\n    }\n}\n\nmathFunctions.round = function (n, f) {\n    var fraction = typeof f === \"undefined\" ? 0 : f.value;\n    return _math(function(num) { return num.toFixed(fraction); }, null, n);\n};\n\nfunctionRegistry.addMultiple(mathFunctions);\n\n},{\"../tree/dimension\":54,\"./function-registry\":21}],24:[function(require,module,exports){\nvar Dimension = require(\"../tree/dimension\"),\n    Anonymous = require(\"../tree/anonymous\"),\n    functionRegistry = require(\"./function-registry\");\n\nvar minMax = function (isMin, args) {\n    args = Array.prototype.slice.call(args);\n    switch(args.length) {\n        case 0: throw { type: \"Argument\", message: \"one or more arguments required\" };\n    }\n    var i, j, current, currentUnified, referenceUnified, unit, unitStatic, unitClone,\n        order  = [], // elems only contains original argument values.\n        values = {}; // key is the unit.toString() for unified Dimension values,\n    // value is the index into the order array.\n    for (i = 0; i < args.length; i++) {\n        current = args[i];\n        if (!(current instanceof Dimension)) {\n            if (Array.isArray(args[i].value)) {\n                Array.prototype.push.apply(args, Array.prototype.slice.call(args[i].value));\n            }\n            continue;\n        }\n        currentUnified = current.unit.toString() === \"\" && unitClone !== undefined ? new Dimension(current.value, unitClone).unify() : current.unify();\n        unit = currentUnified.unit.toString() === \"\" && unitStatic !== undefined ? unitStatic : currentUnified.unit.toString();\n        unitStatic = unit !== \"\" && unitStatic === undefined || unit !== \"\" && order[0].unify().unit.toString() === \"\" ? unit : unitStatic;\n        unitClone = unit !== \"\" && unitClone === undefined ? current.unit.toString() : unitClone;\n        j = values[\"\"] !== undefined && unit !== \"\" && unit === unitStatic ? values[\"\"] : values[unit];\n        if (j === undefined) {\n            if (unitStatic !== undefined && unit !== unitStatic) {\n                throw{ type: \"Argument\", message: \"incompatible types\" };\n            }\n            values[unit] = order.length;\n            order.push(current);\n            continue;\n        }\n        referenceUnified = order[j].unit.toString() === \"\" && unitClone !== undefined ? new Dimension(order[j].value, unitClone).unify() : order[j].unify();\n        if ( isMin && currentUnified.value < referenceUnified.value ||\n            !isMin && currentUnified.value > referenceUnified.value) {\n            order[j] = current;\n        }\n    }\n    if (order.length == 1) {\n        return order[0];\n    }\n    args = order.map(function (a) { return a.toCSS(this.context); }).join(this.context.compress ? \",\" : \", \");\n    return new Anonymous((isMin ? \"min\" : \"max\") + \"(\" + args + \")\");\n};\nfunctionRegistry.addMultiple({\n    min: function () {\n        return minMax(true, arguments);\n    },\n    max: function () {\n        return minMax(false, arguments);\n    },\n    convert: function (val, unit) {\n        return val.convertTo(unit.value);\n    },\n    pi: function () {\n        return new Dimension(Math.PI);\n    },\n    mod: function(a, b) {\n        return new Dimension(a.value % b.value, a.unit);\n    },\n    pow: function(x, y) {\n        if (typeof x === \"number\" && typeof y === \"number\") {\n            x = new Dimension(x);\n            y = new Dimension(y);\n        } else if (!(x instanceof Dimension) || !(y instanceof Dimension)) {\n            throw { type: \"Argument\", message: \"arguments must be numbers\" };\n        }\n\n        return new Dimension(Math.pow(x.value, y.value), x.unit);\n    },\n    percentage: function (n) {\n        return new Dimension(n.value * 100, '%');\n    }\n});\n\n},{\"../tree/anonymous\":44,\"../tree/dimension\":54,\"./function-registry\":21}],25:[function(require,module,exports){\nvar Quoted = require(\"../tree/quoted\"),\n    Anonymous = require(\"../tree/anonymous\"),\n    JavaScript = require(\"../tree/javascript\"),\n    functionRegistry = require(\"./function-registry\");\n\nfunctionRegistry.addMultiple({\n    e: function (str) {\n        return new Anonymous(str instanceof JavaScript ? str.evaluated : str.value);\n    },\n    escape: function (str) {\n        return new Anonymous(\n            encodeURI(str.value).replace(/=/g, \"%3D\").replace(/:/g, \"%3A\").replace(/#/g, \"%23\").replace(/;/g, \"%3B\")\n                .replace(/\\(/g, \"%28\").replace(/\\)/g, \"%29\"));\n    },\n    replace: function (string, pattern, replacement, flags) {\n        var result = string.value;\n        replacement = (replacement.type === \"Quoted\") ?\n            replacement.value : replacement.toCSS();\n        result = result.replace(new RegExp(pattern.value, flags ? flags.value : ''), replacement);\n        return new Quoted(string.quote || '', result, string.escaped);\n    },\n    '%': function (string /* arg, arg, ...*/) {\n        var args = Array.prototype.slice.call(arguments, 1),\n            result = string.value;\n\n        for (var i = 0; i < args.length; i++) {\n            /*jshint loopfunc:true */\n            result = result.replace(/%[sda]/i, function(token) {\n                var value = ((args[i].type === \"Quoted\") &&\n                    token.match(/s/i)) ? args[i].value : args[i].toCSS();\n                return token.match(/[A-Z]$/) ? encodeURIComponent(value) : value;\n            });\n        }\n        result = result.replace(/%%/g, '%');\n        return new Quoted(string.quote || '', result, string.escaped);\n    }\n});\n\n},{\"../tree/anonymous\":44,\"../tree/javascript\":61,\"../tree/quoted\":71,\"./function-registry\":21}],26:[function(require,module,exports){\nmodule.exports = function(environment) {\n    var Dimension = require(\"../tree/dimension\"),\n        Color = require(\"../tree/color\"),\n        Expression = require(\"../tree/expression\"),\n        Quoted = require(\"../tree/quoted\"),\n        URL = require(\"../tree/url\"),\n        functionRegistry = require(\"./function-registry\");\n\n    functionRegistry.add(\"svg-gradient\", function(direction) {\n\n        var stops,\n            gradientDirectionSvg,\n            gradientType = \"linear\",\n            rectangleDimension = 'x=\"0\" y=\"0\" width=\"1\" height=\"1\"',\n            renderEnv = {compress: false},\n            returner,\n            directionValue = direction.toCSS(renderEnv),\n            i, color, position, positionValue, alpha;\n\n        function throwArgumentDescriptor() {\n            throw { type: \"Argument\",\n                    message: \"svg-gradient expects direction, start_color [start_position], [color position,]...,\" +\n                            \" end_color [end_position] or direction, color list\" };\n        }\n\n        if (arguments.length == 2) {\n            if (arguments[1].value.length < 2) {\n                throwArgumentDescriptor();\n            }\n            stops = arguments[1].value;\n        } else if (arguments.length < 3) {\n            throwArgumentDescriptor();\n        } else {\n            stops = Array.prototype.slice.call(arguments, 1);\n        }\n\n        switch (directionValue) {\n            case \"to bottom\":\n                gradientDirectionSvg = 'x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\"';\n                break;\n            case \"to right\":\n                gradientDirectionSvg = 'x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\"';\n                break;\n            case \"to bottom right\":\n                gradientDirectionSvg = 'x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\"';\n                break;\n            case \"to top right\":\n                gradientDirectionSvg = 'x1=\"0%\" y1=\"100%\" x2=\"100%\" y2=\"0%\"';\n                break;\n            case \"ellipse\":\n            case \"ellipse at center\":\n                gradientType = \"radial\";\n                gradientDirectionSvg = 'cx=\"50%\" cy=\"50%\" r=\"75%\"';\n                rectangleDimension = 'x=\"-50\" y=\"-50\" width=\"101\" height=\"101\"';\n                break;\n            default:\n                throw { type: \"Argument\", message: \"svg-gradient direction must be 'to bottom', 'to right',\" +\n                    \" 'to bottom right', 'to top right' or 'ellipse at center'\" };\n        }\n        returner = '<?xml version=\"1.0\" ?>' +\n            '<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"100%\" height=\"100%\" viewBox=\"0 0 1 1\" preserveAspectRatio=\"none\">' +\n            '<' + gradientType + 'Gradient id=\"gradient\" gradientUnits=\"userSpaceOnUse\" ' + gradientDirectionSvg + '>';\n\n        for (i = 0; i < stops.length; i+= 1) {\n            if (stops[i] instanceof Expression) {\n                color = stops[i].value[0];\n                position = stops[i].value[1];\n            } else {\n                color = stops[i];\n                position = undefined;\n            }\n\n            if (!(color instanceof Color) || (!((i === 0 || i + 1 === stops.length) && position === undefined) && !(position instanceof Dimension))) {\n                throwArgumentDescriptor();\n            }\n            positionValue = position ? position.toCSS(renderEnv) : i === 0 ? \"0%\" : \"100%\";\n            alpha = color.alpha;\n            returner += '<stop offset=\"' + positionValue + '\" stop-color=\"' + color.toRGB() + '\"' + (alpha < 1 ? ' stop-opacity=\"' + alpha + '\"' : '') + '/>';\n        }\n        returner += '</' + gradientType + 'Gradient>' +\n            '<rect ' + rectangleDimension + ' fill=\"url(#gradient)\" /></svg>';\n\n        returner = encodeURIComponent(returner);\n\n        returner = \"data:image/svg+xml,\" + returner;\n        return new URL(new Quoted(\"'\" + returner + \"'\", returner, false, this.index, this.currentFileInfo), this.index, this.currentFileInfo);\n    });\n};\n\n},{\"../tree/color\":48,\"../tree/dimension\":54,\"../tree/expression\":57,\"../tree/quoted\":71,\"../tree/url\":78,\"./function-registry\":21}],27:[function(require,module,exports){\nvar Keyword = require(\"../tree/keyword\"),\n    DetachedRuleset = require(\"../tree/detached-ruleset\"),\n    Dimension = require(\"../tree/dimension\"),\n    Color = require(\"../tree/color\"),\n    Quoted = require(\"../tree/quoted\"),\n    Anonymous = require(\"../tree/anonymous\"),\n    URL = require(\"../tree/url\"),\n    Operation = require(\"../tree/operation\"),\n    functionRegistry = require(\"./function-registry\");\n\nvar isa = function (n, Type) {\n        return (n instanceof Type) ? Keyword.True : Keyword.False;\n    },\n    isunit = function (n, unit) {\n        if (unit === undefined) {\n            throw { type: \"Argument\", message: \"missing the required second argument to isunit.\" };\n        }\n        unit = typeof unit.value === \"string\" ? unit.value : unit;\n        if (typeof unit !== \"string\") {\n            throw { type: \"Argument\", message: \"Second argument to isunit should be a unit or a string.\" };\n        }\n        return (n instanceof Dimension) && n.unit.is(unit) ? Keyword.True : Keyword.False;\n    },\n    getItemsFromNode = function(node) {\n        // handle non-array values as an array of length 1\n        // return 'undefined' if index is invalid\n        var items = Array.isArray(node.value) ?\n            node.value : Array(node);\n\n        return items;\n    };\nfunctionRegistry.addMultiple({\n    isruleset: function (n) {\n        return isa(n, DetachedRuleset);\n    },\n    iscolor: function (n) {\n        return isa(n, Color);\n    },\n    isnumber: function (n) {\n        return isa(n, Dimension);\n    },\n    isstring: function (n) {\n        return isa(n, Quoted);\n    },\n    iskeyword: function (n) {\n        return isa(n, Keyword);\n    },\n    isurl: function (n) {\n        return isa(n, URL);\n    },\n    ispixel: function (n) {\n        return isunit(n, 'px');\n    },\n    ispercentage: function (n) {\n        return isunit(n, '%');\n    },\n    isem: function (n) {\n        return isunit(n, 'em');\n    },\n    isunit: isunit,\n    unit: function (val, unit) {\n        if (!(val instanceof Dimension)) {\n            throw { type: \"Argument\",\n                message: \"the first argument to unit must be a number\" +\n                    (val instanceof Operation ? \". Have you forgotten parenthesis?\" : \"\") };\n        }\n        if (unit) {\n            if (unit instanceof Keyword) {\n                unit = unit.value;\n            } else {\n                unit = unit.toCSS();\n            }\n        } else {\n            unit = \"\";\n        }\n        return new Dimension(val.value, unit);\n    },\n    \"get-unit\": function (n) {\n        return new Anonymous(n.unit);\n    },\n    extract: function(values, index) {\n        index = index.value - 1; // (1-based index)\n\n        return getItemsFromNode(values)[index];\n    },\n    length: function(values) {\n        return new Dimension(getItemsFromNode(values).length);\n    }\n});\n\n},{\"../tree/anonymous\":44,\"../tree/color\":48,\"../tree/detached-ruleset\":53,\"../tree/dimension\":54,\"../tree/keyword\":63,\"../tree/operation\":69,\"../tree/quoted\":71,\"../tree/url\":78,\"./function-registry\":21}],28:[function(require,module,exports){\nvar contexts = require(\"./contexts\"),\n    Parser = require('./parser/parser'),\n    FunctionImporter = require('./plugins/function-importer');\n\nmodule.exports = function(environment) {\n\n    // FileInfo = {\n    //  'relativeUrls' - option - whether to adjust URL's to be relative\n    //  'filename' - full resolved filename of current file\n    //  'rootpath' - path to append to normal URLs for this node\n    //  'currentDirectory' - path to the current file, absolute\n    //  'rootFilename' - filename of the base file\n    //  'entryPath' - absolute path to the entry file\n    //  'reference' - whether the file should not be output and only output parts that are referenced\n\n    var ImportManager = function(context, rootFileInfo) {\n        this.rootFilename = rootFileInfo.filename;\n        this.paths = context.paths || [];  // Search paths, when importing\n        this.contents = {};             // map - filename to contents of all the files\n        this.contentsIgnoredChars = {}; // map - filename to lines at the beginning of each file to ignore\n        this.mime = context.mime;\n        this.error = null;\n        this.context = context;\n        // Deprecated? Unused outside of here, could be useful.\n        this.queue = [];        // Files which haven't been imported yet\n        this.files = {};        // Holds the imported parse trees.\n    };\n    /**\n     * Add an import to be imported\n     * @param path - the raw path\n     * @param tryAppendLessExtension - whether to try appending the less extension (if the path has no extension)\n     * @param currentFileInfo - the current file info (used for instance to work out relative paths)\n     * @param importOptions - import options\n     * @param callback - callback for when it is imported\n     */\n    ImportManager.prototype.push = function (path, tryAppendLessExtension, currentFileInfo, importOptions, callback) {\n        var importManager = this;\n        this.queue.push(path);\n\n        var fileParsedFunc = function (e, root, fullPath) {\n            importManager.queue.splice(importManager.queue.indexOf(path), 1); // Remove the path from the queue\n\n            var importedEqualsRoot = fullPath === importManager.rootFilename;\n            if (importOptions.optional && e) {\n                callback(null, {rules:[]}, false, null);\n            }\n            else {\n                importManager.files[fullPath] = root;\n                if (e && !importManager.error) { importManager.error = e; }\n                callback(e, root, importedEqualsRoot, fullPath);\n            }\n        };\n\n        var newFileInfo = {\n            relativeUrls: this.context.relativeUrls,\n            entryPath: currentFileInfo.entryPath,\n            rootpath: currentFileInfo.rootpath,\n            rootFilename: currentFileInfo.rootFilename\n        };\n\n        var fileManager = environment.getFileManager(path, currentFileInfo.currentDirectory, this.context, environment);\n\n        if (!fileManager) {\n            fileParsedFunc({ message: \"Could not find a file-manager for \" + path });\n            return;\n        }\n\n        if (tryAppendLessExtension) {\n            path = fileManager.tryAppendExtension(path, importOptions.plugin ? \".js\" : \".less\");\n        }\n\n        var loadFileCallback = function(loadedFile) {\n            var resolvedFilename = loadedFile.filename,\n                contents = loadedFile.contents.replace(/^\\uFEFF/, '');\n\n            // Pass on an updated rootpath if path of imported file is relative and file\n            // is in a (sub|sup) directory\n            //\n            // Examples:\n            // - If path of imported file is 'module/nav/nav.less' and rootpath is 'less/',\n            //   then rootpath should become 'less/module/nav/'\n            // - If path of imported file is '../mixins.less' and rootpath is 'less/',\n            //   then rootpath should become 'less/../'\n            newFileInfo.currentDirectory = fileManager.getPath(resolvedFilename);\n            if (newFileInfo.relativeUrls) {\n                newFileInfo.rootpath = fileManager.join(\n                    (importManager.context.rootpath || \"\"),\n                    fileManager.pathDiff(newFileInfo.currentDirectory, newFileInfo.entryPath));\n\n                if (!fileManager.isPathAbsolute(newFileInfo.rootpath) && fileManager.alwaysMakePathsAbsolute()) {\n                    newFileInfo.rootpath = fileManager.join(newFileInfo.entryPath, newFileInfo.rootpath);\n                }\n            }\n            newFileInfo.filename = resolvedFilename;\n\n            var newEnv = new contexts.Parse(importManager.context);\n\n            newEnv.processImports = false;\n            importManager.contents[resolvedFilename] = contents;\n\n            if (currentFileInfo.reference || importOptions.reference) {\n                newFileInfo.reference = true;\n            }\n\n            if (importOptions.plugin) {\n                new FunctionImporter(newEnv, newFileInfo).eval(contents, function (e, root) {\n                    fileParsedFunc(e, root, resolvedFilename);\n                });\n            } else if (importOptions.inline) {\n                fileParsedFunc(null, contents, resolvedFilename);\n            } else {\n                new Parser(newEnv, importManager, newFileInfo).parse(contents, function (e, root) {\n                    fileParsedFunc(e, root, resolvedFilename);\n                });\n            }\n        };\n\n        var promise = fileManager.loadFile(path, currentFileInfo.currentDirectory, this.context, environment,\n            function(err, loadedFile) {\n            if (err) {\n                fileParsedFunc(err);\n            } else {\n                loadFileCallback(loadedFile);\n            }\n        });\n        if (promise) {\n            promise.then(loadFileCallback, fileParsedFunc);\n        }\n    };\n    return ImportManager;\n};\n\n},{\"./contexts\":10,\"./parser/parser\":36,\"./plugins/function-importer\":38}],29:[function(require,module,exports){\nmodule.exports = function(environment, fileManagers) {\n    var SourceMapOutput, SourceMapBuilder, ParseTree, ImportManager, Environment;\n\n    var less = {\n        version: [2, 5, 1],\n        data: require('./data'),\n        tree: require('./tree'),\n        Environment: (Environment = require(\"./environment/environment\")),\n        AbstractFileManager: require(\"./environment/abstract-file-manager\"),\n        environment: (environment = new Environment(environment, fileManagers)),\n        visitors: require('./visitors'),\n        Parser: require('./parser/parser'),\n        functions: require('./functions')(environment),\n        contexts: require(\"./contexts\"),\n        SourceMapOutput: (SourceMapOutput = require('./source-map-output')(environment)),\n        SourceMapBuilder: (SourceMapBuilder = require('./source-map-builder')(SourceMapOutput, environment)),\n        ParseTree: (ParseTree = require('./parse-tree')(SourceMapBuilder)),\n        ImportManager: (ImportManager = require('./import-manager')(environment)),\n        render: require(\"./render\")(environment, ParseTree, ImportManager),\n        parse: require(\"./parse\")(environment, ParseTree, ImportManager),\n        LessError: require('./less-error'),\n        transformTree: require('./transform-tree'),\n        utils: require('./utils'),\n        PluginManager: require('./plugin-manager'),\n        logger: require('./logger')\n    };\n\n    return less;\n};\n\n},{\"./contexts\":10,\"./data\":12,\"./environment/abstract-file-manager\":14,\"./environment/environment\":15,\"./functions\":22,\"./import-manager\":28,\"./less-error\":30,\"./logger\":31,\"./parse\":33,\"./parse-tree\":32,\"./parser/parser\":36,\"./plugin-manager\":37,\"./render\":39,\"./source-map-builder\":40,\"./source-map-output\":41,\"./transform-tree\":42,\"./tree\":60,\"./utils\":81,\"./visitors\":85}],30:[function(require,module,exports){\nvar utils = require(\"./utils\");\n\nvar LessError = module.exports = function LessError(e, importManager, currentFilename) {\n\n    Error.call(this);\n\n    var filename = e.filename || currentFilename;\n\n    if (importManager && filename) {\n        var input = importManager.contents[filename],\n            loc = utils.getLocation(e.index, input),\n            line = loc.line,\n            col  = loc.column,\n            callLine = e.call && utils.getLocation(e.call, input).line,\n            lines = input.split('\\n');\n\n        this.type = e.type || 'Syntax';\n        this.filename = filename;\n        this.index = e.index;\n        this.line = typeof line === 'number' ? line + 1 : null;\n        this.callLine = callLine + 1;\n        this.callExtract = lines[callLine];\n        this.column = col;\n        this.extract = [\n            lines[line - 1],\n            lines[line],\n            lines[line + 1]\n        ];\n    }\n    this.message = e.message;\n    this.stack = e.stack;\n};\n\nif (typeof Object.create === 'undefined') {\n    var F = function () {};\n    F.prototype = Error.prototype;\n    LessError.prototype = new F();\n} else {\n    LessError.prototype = Object.create(Error.prototype);\n}\n\nLessError.prototype.constructor = LessError;\n\n},{\"./utils\":81}],31:[function(require,module,exports){\nmodule.exports = {\n    error: function(msg) {\n        this._fireEvent(\"error\", msg);\n    },\n    warn: function(msg) {\n        this._fireEvent(\"warn\", msg);\n    },\n    info: function(msg) {\n        this._fireEvent(\"info\", msg);\n    },\n    debug: function(msg) {\n        this._fireEvent(\"debug\", msg);\n    },\n    addListener: function(listener) {\n        this._listeners.push(listener);\n    },\n    removeListener: function(listener) {\n        for (var i = 0; i < this._listeners.length; i++) {\n            if (this._listeners[i] === listener) {\n                this._listeners.splice(i, 1);\n                return;\n            }\n        }\n    },\n    _fireEvent: function(type, msg) {\n        for (var i = 0; i < this._listeners.length; i++) {\n            var logFunction = this._listeners[i][type];\n            if (logFunction) {\n                logFunction(msg);\n            }\n        }\n    },\n    _listeners: []\n};\n\n},{}],32:[function(require,module,exports){\nvar LessError = require('./less-error'),\n    transformTree = require(\"./transform-tree\"),\n    logger = require(\"./logger\");\n\nmodule.exports = function(SourceMapBuilder) {\n    var ParseTree = function(root, imports) {\n        this.root = root;\n        this.imports = imports;\n    };\n\n    ParseTree.prototype.toCSS = function(options) {\n        var evaldRoot, result = {}, sourceMapBuilder;\n        try {\n            evaldRoot = transformTree(this.root, options);\n        } catch (e) {\n            throw new LessError(e, this.imports);\n        }\n\n        try {\n            var compress = Boolean(options.compress);\n            if (compress) {\n                logger.warn(\"The compress option has been deprecated. We recommend you use a dedicated css minifier, for instance see less-plugin-clean-css.\");\n            }\n\n            var toCSSOptions = {\n                compress: compress,\n                dumpLineNumbers: options.dumpLineNumbers,\n                strictUnits: Boolean(options.strictUnits),\n                numPrecision: 8};\n\n            if (options.sourceMap) {\n                sourceMapBuilder = new SourceMapBuilder(options.sourceMap);\n                result.css = sourceMapBuilder.toCSS(evaldRoot, toCSSOptions, this.imports);\n            } else {\n                result.css = evaldRoot.toCSS(toCSSOptions);\n            }\n        } catch (e) {\n            throw new LessError(e, this.imports);\n        }\n\n        if (options.pluginManager) {\n            var postProcessors = options.pluginManager.getPostProcessors();\n            for (var i = 0; i < postProcessors.length; i++) {\n                result.css = postProcessors[i].process(result.css, { sourceMap: sourceMapBuilder, options: options, imports: this.imports });\n            }\n        }\n        if (options.sourceMap) {\n            result.map = sourceMapBuilder.getExternalSourceMap();\n        }\n\n        result.imports = [];\n        for (var file in this.imports.files) {\n            if (this.imports.files.hasOwnProperty(file) && file !== this.imports.rootFilename) {\n                result.imports.push(file);\n            }\n        }\n        return result;\n    };\n    return ParseTree;\n};\n\n},{\"./less-error\":30,\"./logger\":31,\"./transform-tree\":42}],33:[function(require,module,exports){\nvar PromiseConstructor,\n    contexts = require(\"./contexts\"),\n    Parser = require('./parser/parser'),\n    PluginManager = require('./plugin-manager');\n\nmodule.exports = function(environment, ParseTree, ImportManager) {\n    var parse = function (input, options, callback) {\n        options = options || {};\n\n        if (typeof options === 'function') {\n            callback = options;\n            options = {};\n        }\n\n        if (!callback) {\n            if (!PromiseConstructor) {\n                PromiseConstructor = typeof Promise === 'undefined' ? require('promise') : Promise;\n            }\n            var self = this;\n            return new PromiseConstructor(function (resolve, reject) {\n                parse.call(self, input, options, function(err, output) {\n                    if (err) {\n                        reject(err);\n                    } else {\n                        resolve(output);\n                    }\n                });\n            });\n        } else {\n            var context,\n                rootFileInfo,\n                pluginManager = new PluginManager(this);\n\n            pluginManager.addPlugins(options.plugins);\n            options.pluginManager = pluginManager;\n\n            context = new contexts.Parse(options);\n\n            if (options.rootFileInfo) {\n                rootFileInfo = options.rootFileInfo;\n            } else {\n                var filename = options.filename || \"input\";\n                var entryPath = filename.replace(/[^\\/\\\\]*$/, \"\");\n                rootFileInfo = {\n                    filename: filename,\n                    relativeUrls: context.relativeUrls,\n                    rootpath: context.rootpath || \"\",\n                    currentDirectory: entryPath,\n                    entryPath: entryPath,\n                    rootFilename: filename\n                };\n                // add in a missing trailing slash\n                if (rootFileInfo.rootpath && rootFileInfo.rootpath.slice(-1) !== \"/\") {\n                    rootFileInfo.rootpath += \"/\";\n                }\n            }\n\n            var imports = new ImportManager(context, rootFileInfo);\n\n            new Parser(context, imports, rootFileInfo)\n                .parse(input, function (e, root) {\n                if (e) { return callback(e); }\n                callback(null, root, imports, options);\n            }, options);\n        }\n    };\n    return parse;\n};\n\n},{\"./contexts\":10,\"./parser/parser\":36,\"./plugin-manager\":37,\"promise\":undefined}],34:[function(require,module,exports){\n// Split the input into chunks.\nmodule.exports = function (input, fail) {\n    var len = input.length, level = 0, parenLevel = 0,\n        lastOpening, lastOpeningParen, lastMultiComment, lastMultiCommentEndBrace,\n        chunks = [], emitFrom = 0,\n        chunkerCurrentIndex, currentChunkStartIndex, cc, cc2, matched;\n\n    function emitChunk(force) {\n        var len = chunkerCurrentIndex - emitFrom;\n        if (((len < 512) && !force) || !len) {\n            return;\n        }\n        chunks.push(input.slice(emitFrom, chunkerCurrentIndex + 1));\n        emitFrom = chunkerCurrentIndex + 1;\n    }\n\n    for (chunkerCurrentIndex = 0; chunkerCurrentIndex < len; chunkerCurrentIndex++) {\n        cc = input.charCodeAt(chunkerCurrentIndex);\n        if (((cc >= 97) && (cc <= 122)) || (cc < 34)) {\n            // a-z or whitespace\n            continue;\n        }\n\n        switch (cc) {\n            case 40:                        // (\n                parenLevel++;\n                lastOpeningParen = chunkerCurrentIndex;\n                continue;\n            case 41:                        // )\n                if (--parenLevel < 0) {\n                    return fail(\"missing opening `(`\", chunkerCurrentIndex);\n                }\n                continue;\n            case 59:                        // ;\n                if (!parenLevel) { emitChunk(); }\n                continue;\n            case 123:                       // {\n                level++;\n                lastOpening = chunkerCurrentIndex;\n                continue;\n            case 125:                       // }\n                if (--level < 0) {\n                    return fail(\"missing opening `{`\", chunkerCurrentIndex);\n                }\n                if (!level && !parenLevel) { emitChunk(); }\n                continue;\n            case 92:                        // \\\n                if (chunkerCurrentIndex < len - 1) { chunkerCurrentIndex++; continue; }\n                return fail(\"unescaped `\\\\`\", chunkerCurrentIndex);\n            case 34:\n            case 39:\n            case 96:                        // \", ' and `\n                matched = 0;\n                currentChunkStartIndex = chunkerCurrentIndex;\n                for (chunkerCurrentIndex = chunkerCurrentIndex + 1; chunkerCurrentIndex < len; chunkerCurrentIndex++) {\n                    cc2 = input.charCodeAt(chunkerCurrentIndex);\n                    if (cc2 > 96) { continue; }\n                    if (cc2 == cc) { matched = 1; break; }\n                    if (cc2 == 92) {        // \\\n                        if (chunkerCurrentIndex == len - 1) {\n                            return fail(\"unescaped `\\\\`\", chunkerCurrentIndex);\n                        }\n                        chunkerCurrentIndex++;\n                    }\n                }\n                if (matched) { continue; }\n                return fail(\"unmatched `\" + String.fromCharCode(cc) + \"`\", currentChunkStartIndex);\n            case 47:                        // /, check for comment\n                if (parenLevel || (chunkerCurrentIndex == len - 1)) { continue; }\n                cc2 = input.charCodeAt(chunkerCurrentIndex + 1);\n                if (cc2 == 47) {\n                    // //, find lnfeed\n                    for (chunkerCurrentIndex = chunkerCurrentIndex + 2; chunkerCurrentIndex < len; chunkerCurrentIndex++) {\n                        cc2 = input.charCodeAt(chunkerCurrentIndex);\n                        if ((cc2 <= 13) && ((cc2 == 10) || (cc2 == 13))) { break; }\n                    }\n                } else if (cc2 == 42) {\n                    // /*, find */\n                    lastMultiComment = currentChunkStartIndex = chunkerCurrentIndex;\n                    for (chunkerCurrentIndex = chunkerCurrentIndex + 2; chunkerCurrentIndex < len - 1; chunkerCurrentIndex++) {\n                        cc2 = input.charCodeAt(chunkerCurrentIndex);\n                        if (cc2 == 125) { lastMultiCommentEndBrace = chunkerCurrentIndex; }\n                        if (cc2 != 42) { continue; }\n                        if (input.charCodeAt(chunkerCurrentIndex + 1) == 47) { break; }\n                    }\n                    if (chunkerCurrentIndex == len - 1) {\n                        return fail(\"missing closing `*/`\", currentChunkStartIndex);\n                    }\n                    chunkerCurrentIndex++;\n                }\n                continue;\n            case 42:                       // *, check for unmatched */\n                if ((chunkerCurrentIndex < len - 1) && (input.charCodeAt(chunkerCurrentIndex + 1) == 47)) {\n                    return fail(\"unmatched `/*`\", chunkerCurrentIndex);\n                }\n                continue;\n        }\n    }\n\n    if (level !== 0) {\n        if ((lastMultiComment > lastOpening) && (lastMultiCommentEndBrace > lastMultiComment)) {\n            return fail(\"missing closing `}` or `*/`\", lastOpening);\n        } else {\n            return fail(\"missing closing `}`\", lastOpening);\n        }\n    } else if (parenLevel !== 0) {\n        return fail(\"missing closing `)`\", lastOpeningParen);\n    }\n\n    emitChunk(true);\n    return chunks;\n};\n\n},{}],35:[function(require,module,exports){\nvar chunker = require('./chunker');\n\nmodule.exports = function() {\n    var input,       // LeSS input string\n        j,           // current chunk\n        saveStack = [],   // holds state for backtracking\n        furthest,    // furthest index the parser has gone to\n        furthestPossibleErrorMessage,// if this is furthest we got to, this is the probably cause\n        chunks,      // chunkified input\n        current,     // current chunk\n        currentPos,  // index of current chunk, in `input`\n        parserInput = {};\n\n    parserInput.save = function() {\n        currentPos = parserInput.i;\n        saveStack.push( { current: current, i: parserInput.i, j: j });\n    };\n    parserInput.restore = function(possibleErrorMessage) {\n\n        if (parserInput.i > furthest || (parserInput.i === furthest && possibleErrorMessage && !furthestPossibleErrorMessage)) {\n            furthest = parserInput.i;\n            furthestPossibleErrorMessage = possibleErrorMessage;\n        }\n        var state = saveStack.pop();\n        current = state.current;\n        currentPos = parserInput.i = state.i;\n        j = state.j;\n    };\n    parserInput.forget = function() {\n        saveStack.pop();\n    };\n    parserInput.isWhitespace = function (offset) {\n        var pos = parserInput.i + (offset || 0),\n            code = input.charCodeAt(pos);\n        return (code === CHARCODE_SPACE || code === CHARCODE_CR || code === CHARCODE_TAB || code === CHARCODE_LF);\n    };\n\n    // Specialization of $(tok)\n    parserInput.$re = function(tok) {\n        if (parserInput.i > currentPos) {\n            current = current.slice(parserInput.i - currentPos);\n            currentPos = parserInput.i;\n        }\n\n        var m = tok.exec(current);\n        if (!m) {\n            return null;\n        }\n\n        skipWhitespace(m[0].length);\n        if (typeof m === \"string\") {\n            return m;\n        }\n\n        return m.length === 1 ? m[0] : m;\n    };\n\n    parserInput.$char = function(tok) {\n        if (input.charAt(parserInput.i) !== tok) {\n            return null;\n        }\n        skipWhitespace(1);\n        return tok;\n    };\n\n    parserInput.$str = function(tok) {\n        var tokLength = tok.length;\n\n        // https://jsperf.com/string-startswith/21\n        for (var i = 0; i < tokLength; i++) {\n            if (input.charAt(parserInput.i + i) !== tok.charAt(i)) {\n                return null;\n            }\n        }\n\n        skipWhitespace(tokLength);\n        return tok;\n    };\n\n    parserInput.$quoted = function() {\n\n        var startChar = input.charAt(parserInput.i);\n        if (startChar !== \"'\" && startChar !== '\"') {\n            return;\n        }\n        var length = input.length,\n            currentPosition = parserInput.i;\n\n        for (var i = 1; i + currentPosition < length; i++) {\n            var nextChar = input.charAt(i + currentPosition);\n            switch(nextChar) {\n                case \"\\\\\":\n                    i++;\n                    continue;\n                case \"\\r\":\n                case \"\\n\":\n                    break;\n                case startChar:\n                    var str = input.substr(currentPosition, i + 1);\n                    skipWhitespace(i + 1);\n                    return str;\n                default:\n            }\n        }\n        return null;\n    };\n\n    var CHARCODE_SPACE = 32,\n        CHARCODE_TAB = 9,\n        CHARCODE_LF = 10,\n        CHARCODE_CR = 13,\n        CHARCODE_PLUS = 43,\n        CHARCODE_COMMA = 44,\n        CHARCODE_FORWARD_SLASH = 47,\n        CHARCODE_9 = 57;\n\n    parserInput.autoCommentAbsorb = true;\n    parserInput.commentStore = [];\n    parserInput.finished = false;\n\n    var skipWhitespace = function(length) {\n        var oldi = parserInput.i, oldj = j,\n            curr = parserInput.i - currentPos,\n            endIndex = parserInput.i + current.length - curr,\n            mem = (parserInput.i += length),\n            inp = input,\n            c, nextChar, comment;\n\n        for (; parserInput.i < endIndex; parserInput.i++) {\n            c = inp.charCodeAt(parserInput.i);\n\n            if (parserInput.autoCommentAbsorb && c === CHARCODE_FORWARD_SLASH) {\n                nextChar = inp.charAt(parserInput.i + 1);\n                if (nextChar === '/') {\n                    comment = {index: parserInput.i, isLineComment: true};\n                    var nextNewLine = inp.indexOf(\"\\n\", parserInput.i + 2);\n                    if (nextNewLine < 0) {\n                        nextNewLine = endIndex;\n                    }\n                    parserInput.i = nextNewLine;\n                    comment.text = inp.substr(comment.i, parserInput.i - comment.i);\n                    parserInput.commentStore.push(comment);\n                    continue;\n                } else if (nextChar === '*') {\n                    var nextStarSlash = inp.indexOf(\"*/\", parserInput.i + 2);\n                    if (nextStarSlash >= 0) {\n                        comment = {\n                            index: parserInput.i,\n                            text: inp.substr(parserInput.i, nextStarSlash + 2 - parserInput.i),\n                            isLineComment: false\n                        };\n                        parserInput.i += comment.text.length - 1;\n                        parserInput.commentStore.push(comment);\n                        continue;\n                    }\n                }\n                break;\n            }\n\n            if ((c !== CHARCODE_SPACE) && (c !== CHARCODE_LF) && (c !== CHARCODE_TAB) && (c !== CHARCODE_CR)) {\n                break;\n            }\n        }\n\n        current = current.slice(length + parserInput.i - mem + curr);\n        currentPos = parserInput.i;\n\n        if (!current.length) {\n            if (j < chunks.length - 1) {\n                current = chunks[++j];\n                skipWhitespace(0); // skip space at the beginning of a chunk\n                return true; // things changed\n            }\n            parserInput.finished = true;\n        }\n\n        return oldi !== parserInput.i || oldj !== j;\n    };\n\n    // Same as $(), but don't change the state of the parser,\n    // just return the match.\n    parserInput.peek = function(tok) {\n        if (typeof tok === 'string') {\n            // https://jsperf.com/string-startswith/21\n            for (var i = 0; i < tok.length; i++) {\n                if (input.charAt(parserInput.i + i) !== tok.charAt(i)) {\n                    return false;\n                }\n            }\n            return true;\n        } else {\n            return tok.test(current);\n        }\n    };\n\n    // Specialization of peek()\n    // TODO remove or change some currentChar calls to peekChar\n    parserInput.peekChar = function(tok) {\n        return input.charAt(parserInput.i) === tok;\n    };\n\n    parserInput.currentChar = function() {\n        return input.charAt(parserInput.i);\n    };\n\n    parserInput.getInput = function() {\n        return input;\n    };\n\n    parserInput.peekNotNumeric = function() {\n        var c = input.charCodeAt(parserInput.i);\n        //Is the first char of the dimension 0-9, '.', '+' or '-'\n        return (c > CHARCODE_9 || c < CHARCODE_PLUS) || c === CHARCODE_FORWARD_SLASH || c === CHARCODE_COMMA;\n    };\n\n    parserInput.start = function(str, chunkInput, failFunction) {\n        input = str;\n        parserInput.i = j = currentPos = furthest = 0;\n\n        // chunking apparantly makes things quicker (but my tests indicate\n        // it might actually make things slower in node at least)\n        // and it is a non-perfect parse - it can't recognise\n        // unquoted urls, meaning it can't distinguish comments\n        // meaning comments with quotes or {}() in them get 'counted'\n        // and then lead to parse errors.\n        // In addition if the chunking chunks in the wrong place we might\n        // not be able to parse a parser statement in one go\n        // this is officially deprecated but can be switched on via an option\n        // in the case it causes too much performance issues.\n        if (chunkInput) {\n            chunks = chunker(str, failFunction);\n        } else {\n            chunks = [str];\n        }\n\n        current = chunks[0];\n\n        skipWhitespace(0);\n    };\n\n    parserInput.end = function() {\n        var message,\n            isFinished = parserInput.i >= input.length;\n\n        if (parserInput.i < furthest) {\n            message = furthestPossibleErrorMessage;\n            parserInput.i = furthest;\n        }\n        return {\n            isFinished: isFinished,\n            furthest: parserInput.i,\n            furthestPossibleErrorMessage: message,\n            furthestReachedEnd: parserInput.i >= input.length - 1,\n            furthestChar: input[parserInput.i]\n        };\n    };\n\n    return parserInput;\n};\n\n},{\"./chunker\":34}],36:[function(require,module,exports){\nvar LessError = require('../less-error'),\n    tree = require(\"../tree\"),\n    visitors = require(\"../visitors\"),\n    getParserInput = require(\"./parser-input\"),\n    utils = require(\"../utils\");\n\n//\n// less.js - parser\n//\n//    A relatively straight-forward predictive parser.\n//    There is no tokenization/lexing stage, the input is parsed\n//    in one sweep.\n//\n//    To make the parser fast enough to run in the browser, several\n//    optimization had to be made:\n//\n//    - Matching and slicing on a huge input is often cause of slowdowns.\n//      The solution is to chunkify the input into smaller strings.\n//      The chunks are stored in the `chunks` var,\n//      `j` holds the current chunk index, and `currentPos` holds\n//      the index of the current chunk in relation to `input`.\n//      This gives us an almost 4x speed-up.\n//\n//    - In many cases, we don't need to match individual tokens;\n//      for example, if a value doesn't hold any variables, operations\n//      or dynamic references, the parser can effectively 'skip' it,\n//      treating it as a literal.\n//      An example would be '1px solid #000' - which evaluates to itself,\n//      we don't need to know what the individual components are.\n//      The drawback, of course is that you don't get the benefits of\n//      syntax-checking on the CSS. This gives us a 50% speed-up in the parser,\n//      and a smaller speed-up in the code-gen.\n//\n//\n//    Token matching is done with the `$` function, which either takes\n//    a terminal string or regexp, or a non-terminal function to call.\n//    It also takes care of moving all the indices forwards.\n//\n//\nvar Parser = function Parser(context, imports, fileInfo) {\n    var parsers,\n        parserInput = getParserInput();\n\n    function expect(arg, msg, index) {\n        // some older browsers return typeof 'function' for RegExp\n        var result = (Object.prototype.toString.call(arg) === '[object Function]') ? arg.call(parsers) : parserInput.$re(arg);\n        if (result) {\n            return result;\n        }\n        error(msg || (typeof arg === 'string' ? \"expected '\" + arg + \"' got '\" + parserInput.currentChar() + \"'\"\n                                               : \"unexpected token\"));\n    }\n\n    // Specialization of expect()\n    function expectChar(arg, msg) {\n        if (parserInput.$char(arg)) {\n            return arg;\n        }\n        error(msg || \"expected '\" + arg + \"' got '\" + parserInput.currentChar() + \"'\");\n    }\n\n    function error(msg, type) {\n        throw new LessError(\n            {\n                index: parserInput.i,\n                filename: fileInfo.filename,\n                type: type || 'Syntax',\n                message: msg\n            },\n            imports\n        );\n    }\n\n    function getDebugInfo(index) {\n        var filename = fileInfo.filename;\n\n        return {\n            lineNumber: utils.getLocation(index, parserInput.getInput()).line + 1,\n            fileName: filename\n        };\n    }\n\n    //\n    // The Parser\n    //\n    return {\n\n        //\n        // Parse an input string into an abstract syntax tree,\n        // @param str A string containing 'less' markup\n        // @param callback call `callback` when done.\n        // @param [additionalData] An optional map which can contains vars - a map (key, value) of variables to apply\n        //\n        parse: function (str, callback, additionalData) {\n            var root, error = null, globalVars, modifyVars, ignored, preText = \"\";\n\n            globalVars = (additionalData && additionalData.globalVars) ? Parser.serializeVars(additionalData.globalVars) + '\\n' : '';\n            modifyVars = (additionalData && additionalData.modifyVars) ? '\\n' + Parser.serializeVars(additionalData.modifyVars) : '';\n\n            if (context.pluginManager) {\n                var preProcessors = context.pluginManager.getPreProcessors();\n                for (var i = 0; i < preProcessors.length; i++) {\n                    str = preProcessors[i].process(str, { context: context, imports: imports, fileInfo: fileInfo });\n                }\n            }\n\n            if (globalVars || (additionalData && additionalData.banner)) {\n                preText = ((additionalData && additionalData.banner) ? additionalData.banner : \"\") + globalVars;\n                ignored = imports.contentsIgnoredChars;\n                ignored[fileInfo.filename] = ignored[fileInfo.filename] || 0;\n                ignored[fileInfo.filename] += preText.length;\n            }\n\n            str = str.replace(/\\r\\n?/g, '\\n');\n            // Remove potential UTF Byte Order Mark\n            str = preText + str.replace(/^\\uFEFF/, '') + modifyVars;\n            imports.contents[fileInfo.filename] = str;\n\n            // Start with the primary rule.\n            // The whole syntax tree is held under a Ruleset node,\n            // with the `root` property set to true, so no `{}` are\n            // output. The callback is called when the input is parsed.\n            try {\n                parserInput.start(str, context.chunkInput, function fail(msg, index) {\n                    throw new LessError({\n                        index: index,\n                        type: 'Parse',\n                        message: msg,\n                        filename: fileInfo.filename\n                    }, imports);\n                });\n\n                root = new(tree.Ruleset)(null, this.parsers.primary());\n                root.root = true;\n                root.firstRoot = true;\n            } catch (e) {\n                return callback(new LessError(e, imports, fileInfo.filename));\n            }\n\n            // If `i` is smaller than the `input.length - 1`,\n            // it means the parser wasn't able to parse the whole\n            // string, so we've got a parsing error.\n            //\n            // We try to extract a \\n delimited string,\n            // showing the line where the parse error occurred.\n            // We split it up into two parts (the part which parsed,\n            // and the part which didn't), so we can color them differently.\n            var endInfo = parserInput.end();\n            if (!endInfo.isFinished) {\n\n                var message = endInfo.furthestPossibleErrorMessage;\n\n                if (!message) {\n                    message = \"Unrecognised input\";\n                    if (endInfo.furthestChar === '}') {\n                        message += \". Possibly missing opening '{'\";\n                    } else if (endInfo.furthestChar === ')') {\n                        message += \". Possibly missing opening '('\";\n                    } else if (endInfo.furthestReachedEnd) {\n                        message += \". Possibly missing something\";\n                    }\n                }\n\n                error = new LessError({\n                    type: \"Parse\",\n                    message: message,\n                    index: endInfo.furthest,\n                    filename: fileInfo.filename\n                }, imports);\n            }\n\n            var finish = function (e) {\n                e = error || e || imports.error;\n\n                if (e) {\n                    if (!(e instanceof LessError)) {\n                        e = new LessError(e, imports, fileInfo.filename);\n                    }\n\n                    return callback(e);\n                }\n                else {\n                    return callback(null, root);\n                }\n            };\n\n            if (context.processImports !== false) {\n                new visitors.ImportVisitor(imports, finish)\n                    .run(root);\n            } else {\n                return finish();\n            }\n        },\n\n        //\n        // Here in, the parsing rules/functions\n        //\n        // The basic structure of the syntax tree generated is as follows:\n        //\n        //   Ruleset ->  Rule -> Value -> Expression -> Entity\n        //\n        // Here's some Less code:\n        //\n        //    .class {\n        //      color: #fff;\n        //      border: 1px solid #000;\n        //      width: @w + 4px;\n        //      > .child {...}\n        //    }\n        //\n        // And here's what the parse tree might look like:\n        //\n        //     Ruleset (Selector '.class', [\n        //         Rule (\"color\",  Value ([Expression [Color #fff]]))\n        //         Rule (\"border\", Value ([Expression [Dimension 1px][Keyword \"solid\"][Color #000]]))\n        //         Rule (\"width\",  Value ([Expression [Operation \" + \" [Variable \"@w\"][Dimension 4px]]]))\n        //         Ruleset (Selector [Element '>', '.child'], [...])\n        //     ])\n        //\n        //  In general, most rules will try to parse a token with the `$re()` function, and if the return\n        //  value is truly, will return a new node, of the relevant type. Sometimes, we need to check\n        //  first, before parsing, that's when we use `peek()`.\n        //\n        parsers: parsers = {\n            //\n            // The `primary` rule is the *entry* and *exit* point of the parser.\n            // The rules here can appear at any level of the parse tree.\n            //\n            // The recursive nature of the grammar is an interplay between the `block`\n            // rule, which represents `{ ... }`, the `ruleset` rule, and this `primary` rule,\n            // as represented by this simplified grammar:\n            //\n            //     primary  →  (ruleset | rule)+\n            //     ruleset  →  selector+ block\n            //     block    →  '{' primary '}'\n            //\n            // Only at one point is the primary rule not called from the\n            // block rule: at the root level.\n            //\n            primary: function () {\n                var mixin = this.mixin, root = [], node;\n\n                while (true) {\n                    while (true) {\n                        node = this.comment();\n                        if (!node) { break; }\n                        root.push(node);\n                    }\n                    // always process comments before deciding if finished\n                    if (parserInput.finished) {\n                        break;\n                    }\n                    if (parserInput.peek('}')) {\n                        break;\n                    }\n\n                    node = this.extendRule();\n                    if (node) {\n                        root = root.concat(node);\n                        continue;\n                    }\n\n                    node = mixin.definition() || this.rule() || this.ruleset() ||\n                        mixin.call() || this.rulesetCall() || this.directive();\n                    if (node) {\n                        root.push(node);\n                    } else {\n                        var foundSemiColon = false;\n                        while (parserInput.$char(\";\")) {\n                            foundSemiColon = true;\n                        }\n                        if (!foundSemiColon) {\n                            break;\n                        }\n                    }\n                }\n\n                return root;\n            },\n\n            // comments are collected by the main parsing mechanism and then assigned to nodes\n            // where the current structure allows it\n            comment: function () {\n                if (parserInput.commentStore.length) {\n                    var comment = parserInput.commentStore.shift();\n                    return new(tree.Comment)(comment.text, comment.isLineComment, comment.index, fileInfo);\n                }\n            },\n\n            //\n            // Entities are tokens which can be found inside an Expression\n            //\n            entities: {\n                //\n                // A string, which supports escaping \" and '\n                //\n                //     \"milky way\" 'he\\'s the one!'\n                //\n                quoted: function () {\n                    var str, index = parserInput.i, isEscaped = false;\n\n                    parserInput.save();\n                    if (parserInput.$char(\"~\")) {\n                        isEscaped = true;\n                    }\n                    str = parserInput.$quoted();\n                    if (!str) {\n                        parserInput.restore();\n                        return;\n                    }\n                    parserInput.forget();\n\n                    return new(tree.Quoted)(str.charAt(0), str.substr(1, str.length - 2), isEscaped, index, fileInfo);\n                },\n\n                //\n                // A catch-all word, such as:\n                //\n                //     black border-collapse\n                //\n                keyword: function () {\n                    var k = parserInput.$char(\"%\") || parserInput.$re(/^[_A-Za-z-][_A-Za-z0-9-]*/);\n                    if (k) {\n                        return tree.Color.fromKeyword(k) || new(tree.Keyword)(k);\n                    }\n                },\n\n                //\n                // A function call\n                //\n                //     rgb(255, 0, 255)\n                //\n                // We also try to catch IE's `alpha()`, but let the `alpha` parser\n                // deal with the details.\n                //\n                // The arguments are parsed with the `entities.arguments` parser.\n                //\n                call: function () {\n                    var name, nameLC, args, alpha, index = parserInput.i;\n\n                    // http://jsperf.com/case-insensitive-regex-vs-strtolower-then-regex/18\n                    if (parserInput.peek(/^url\\(/i)) {\n                        return;\n                    }\n\n                    parserInput.save();\n\n                    name = parserInput.$re(/^([\\w-]+|%|progid:[\\w\\.]+)\\(/);\n                    if (!name) { parserInput.forget(); return; }\n\n                    name = name[1];\n                    nameLC = name.toLowerCase();\n\n                    if (nameLC === 'alpha') {\n                        alpha = parsers.alpha();\n                        if (alpha) {\n                            parserInput.forget();\n                            return alpha;\n                        }\n                    }\n\n                    args = this.arguments();\n\n                    if (! parserInput.$char(')')) {\n                        parserInput.restore(\"Could not parse call arguments or missing ')'\");\n                        return;\n                    }\n\n                    parserInput.forget();\n                    return new(tree.Call)(name, args, index, fileInfo);\n                },\n                arguments: function () {\n                    var args = [], arg;\n\n                    while (true) {\n                        arg = this.assignment() || parsers.expression();\n                        if (!arg) {\n                            break;\n                        }\n                        args.push(arg);\n                        if (! parserInput.$char(',')) {\n                            break;\n                        }\n                    }\n                    return args;\n                },\n                literal: function () {\n                    return this.dimension() ||\n                           this.color() ||\n                           this.quoted() ||\n                           this.unicodeDescriptor();\n                },\n\n                // Assignments are argument entities for calls.\n                // They are present in ie filter properties as shown below.\n                //\n                //     filter: progid:DXImageTransform.Microsoft.Alpha( *opacity=50* )\n                //\n\n                assignment: function () {\n                    var key, value;\n                    parserInput.save();\n                    key = parserInput.$re(/^\\w+(?=\\s?=)/i);\n                    if (!key) {\n                        parserInput.restore();\n                        return;\n                    }\n                    if (!parserInput.$char('=')) {\n                        parserInput.restore();\n                        return;\n                    }\n                    value = parsers.entity();\n                    if (value) {\n                        parserInput.forget();\n                        return new(tree.Assignment)(key, value);\n                    } else {\n                        parserInput.restore();\n                    }\n                },\n\n                //\n                // Parse url() tokens\n                //\n                // We use a specific rule for urls, because they don't really behave like\n                // standard function calls. The difference is that the argument doesn't have\n                // to be enclosed within a string, so it can't be parsed as an Expression.\n                //\n                url: function () {\n                    var value, index = parserInput.i;\n\n                    parserInput.autoCommentAbsorb = false;\n\n                    if (!parserInput.$str(\"url(\")) {\n                        parserInput.autoCommentAbsorb = true;\n                        return;\n                    }\n\n                    value = this.quoted() || this.variable() ||\n                            parserInput.$re(/^(?:(?:\\\\[\\(\\)'\"])|[^\\(\\)'\"])+/) || \"\";\n\n                    parserInput.autoCommentAbsorb = true;\n\n                    expectChar(')');\n\n                    return new(tree.URL)((value.value != null || value instanceof tree.Variable) ?\n                                        value : new(tree.Anonymous)(value), index, fileInfo);\n                },\n\n                //\n                // A Variable entity, such as `@fink`, in\n                //\n                //     width: @fink + 2px\n                //\n                // We use a different parser for variable definitions,\n                // see `parsers.variable`.\n                //\n                variable: function () {\n                    var name, index = parserInput.i;\n\n                    if (parserInput.currentChar() === '@' && (name = parserInput.$re(/^@@?[\\w-]+/))) {\n                        return new(tree.Variable)(name, index, fileInfo);\n                    }\n                },\n\n                // A variable entity useing the protective {} e.g. @{var}\n                variableCurly: function () {\n                    var curly, index = parserInput.i;\n\n                    if (parserInput.currentChar() === '@' && (curly = parserInput.$re(/^@\\{([\\w-]+)\\}/))) {\n                        return new(tree.Variable)(\"@\" + curly[1], index, fileInfo);\n                    }\n                },\n\n                //\n                // A Hexadecimal color\n                //\n                //     #4F3C2F\n                //\n                // `rgb` and `hsl` colors are parsed through the `entities.call` parser.\n                //\n                color: function () {\n                    var rgb;\n\n                    if (parserInput.currentChar() === '#' && (rgb = parserInput.$re(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})/))) {\n                        // strip colons, brackets, whitespaces and other characters that should not\n                        // definitely be part of color string\n                        var colorCandidateString = rgb.input.match(/^#([\\w]+).*/);\n                        colorCandidateString = colorCandidateString[1];\n                        if (!colorCandidateString.match(/^[A-Fa-f0-9]+$/)) { // verify if candidate consists only of allowed HEX characters\n                            error(\"Invalid HEX color code\");\n                        }\n                        return new(tree.Color)(rgb[1]);\n                    }\n                },\n\n                //\n                // A Dimension, that is, a number and a unit\n                //\n                //     0.5em 95%\n                //\n                dimension: function () {\n                    if (parserInput.peekNotNumeric()) {\n                        return;\n                    }\n\n                    var value = parserInput.$re(/^([+-]?\\d*\\.?\\d+)(%|[a-z]+)?/i);\n                    if (value) {\n                        return new(tree.Dimension)(value[1], value[2]);\n                    }\n                },\n\n                //\n                // A unicode descriptor, as is used in unicode-range\n                //\n                // U+0??  or U+00A1-00A9\n                //\n                unicodeDescriptor: function () {\n                    var ud;\n\n                    ud = parserInput.$re(/^U\\+[0-9a-fA-F?]+(\\-[0-9a-fA-F?]+)?/);\n                    if (ud) {\n                        return new(tree.UnicodeDescriptor)(ud[0]);\n                    }\n                },\n\n                //\n                // JavaScript code to be evaluated\n                //\n                //     `window.location.href`\n                //\n                javascript: function () {\n                    var js, index = parserInput.i;\n\n                    parserInput.save();\n\n                    var escape = parserInput.$char(\"~\");\n                    var jsQuote = parserInput.$char(\"`\");\n\n                    if (!jsQuote) {\n                        parserInput.restore();\n                        return;\n                    }\n\n                    js = parserInput.$re(/^[^`]*`/);\n                    if (js) {\n                        parserInput.forget();\n                        return new(tree.JavaScript)(js.substr(0, js.length - 1), Boolean(escape), index, fileInfo);\n                    }\n                    parserInput.restore(\"invalid javascript definition\");\n                }\n            },\n\n            //\n            // The variable part of a variable definition. Used in the `rule` parser\n            //\n            //     @fink:\n            //\n            variable: function () {\n                var name;\n\n                if (parserInput.currentChar() === '@' && (name = parserInput.$re(/^(@[\\w-]+)\\s*:/))) { return name[1]; }\n            },\n\n            //\n            // The variable part of a variable definition. Used in the `rule` parser\n            //\n            //     @fink();\n            //\n            rulesetCall: function () {\n                var name;\n\n                if (parserInput.currentChar() === '@' && (name = parserInput.$re(/^(@[\\w-]+)\\s*\\(\\s*\\)\\s*;/))) {\n                    return new tree.RulesetCall(name[1]);\n                }\n            },\n\n            //\n            // extend syntax - used to extend selectors\n            //\n            extend: function(isRule) {\n                var elements, e, index = parserInput.i, option, extendList, extend;\n\n                if (!parserInput.$str(isRule ? \"&:extend(\" : \":extend(\")) {\n                    return;\n                }\n\n                do {\n                    option = null;\n                    elements = null;\n                    while (! (option = parserInput.$re(/^(all)(?=\\s*(\\)|,))/))) {\n                        e = this.element();\n                        if (!e) {\n                            break;\n                        }\n                        if (elements) {\n                            elements.push(e);\n                        } else {\n                            elements = [ e ];\n                        }\n                    }\n\n                    option = option && option[1];\n                    if (!elements) {\n                        error(\"Missing target selector for :extend().\");\n                    }\n                    extend = new(tree.Extend)(new(tree.Selector)(elements), option, index);\n                    if (extendList) {\n                        extendList.push(extend);\n                    } else {\n                        extendList = [ extend ];\n                    }\n                } while (parserInput.$char(\",\"));\n\n                expect(/^\\)/);\n\n                if (isRule) {\n                    expect(/^;/);\n                }\n\n                return extendList;\n            },\n\n            //\n            // extendRule - used in a rule to extend all the parent selectors\n            //\n            extendRule: function() {\n                return this.extend(true);\n            },\n\n            //\n            // Mixins\n            //\n            mixin: {\n                //\n                // A Mixin call, with an optional argument list\n                //\n                //     #mixins > .square(#fff);\n                //     .rounded(4px, black);\n                //     .button;\n                //\n                // The `while` loop is there because mixins can be\n                // namespaced, but we only support the child and descendant\n                // selector for now.\n                //\n                call: function () {\n                    var s = parserInput.currentChar(), important = false, index = parserInput.i, elemIndex,\n                        elements, elem, e, c, args;\n\n                    if (s !== '.' && s !== '#') { return; }\n\n                    parserInput.save(); // stop us absorbing part of an invalid selector\n\n                    while (true) {\n                        elemIndex = parserInput.i;\n                        e = parserInput.$re(/^[#.](?:[\\w-]|\\\\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+/);\n                        if (!e) {\n                            break;\n                        }\n                        elem = new(tree.Element)(c, e, elemIndex, fileInfo);\n                        if (elements) {\n                            elements.push(elem);\n                        } else {\n                            elements = [ elem ];\n                        }\n                        c = parserInput.$char('>');\n                    }\n\n                    if (elements) {\n                        if (parserInput.$char('(')) {\n                            args = this.args(true).args;\n                            expectChar(')');\n                        }\n\n                        if (parsers.important()) {\n                            important = true;\n                        }\n\n                        if (parsers.end()) {\n                            parserInput.forget();\n                            return new(tree.mixin.Call)(elements, args, index, fileInfo, important);\n                        }\n                    }\n\n                    parserInput.restore();\n                },\n                args: function (isCall) {\n                    var entities = parsers.entities,\n                        returner = { args:null, variadic: false },\n                        expressions = [], argsSemiColon = [], argsComma = [],\n                        isSemiColonSeparated, expressionContainsNamed, name, nameLoop, value, arg;\n\n                    parserInput.save();\n\n                    while (true) {\n                        if (isCall) {\n                            arg = parsers.detachedRuleset() || parsers.expression();\n                        } else {\n                            parserInput.commentStore.length = 0;\n                            if (parserInput.$str(\"...\")) {\n                                returner.variadic = true;\n                                if (parserInput.$char(\";\") && !isSemiColonSeparated) {\n                                    isSemiColonSeparated = true;\n                                }\n                                (isSemiColonSeparated ? argsSemiColon : argsComma)\n                                    .push({ variadic: true });\n                                break;\n                            }\n                            arg = entities.variable() || entities.literal() || entities.keyword();\n                        }\n\n                        if (!arg) {\n                            break;\n                        }\n\n                        nameLoop = null;\n                        if (arg.throwAwayComments) {\n                            arg.throwAwayComments();\n                        }\n                        value = arg;\n                        var val = null;\n\n                        if (isCall) {\n                            // Variable\n                            if (arg.value && arg.value.length == 1) {\n                                val = arg.value[0];\n                            }\n                        } else {\n                            val = arg;\n                        }\n\n                        if (val && val instanceof tree.Variable) {\n                            if (parserInput.$char(':')) {\n                                if (expressions.length > 0) {\n                                    if (isSemiColonSeparated) {\n                                        error(\"Cannot mix ; and , as delimiter types\");\n                                    }\n                                    expressionContainsNamed = true;\n                                }\n\n                                value = parsers.detachedRuleset() || parsers.expression();\n\n                                if (!value) {\n                                    if (isCall) {\n                                        error(\"could not understand value for named argument\");\n                                    } else {\n                                        parserInput.restore();\n                                        returner.args = [];\n                                        return returner;\n                                    }\n                                }\n                                nameLoop = (name = val.name);\n                            } else if (!isCall && parserInput.$str(\"...\")) {\n                                returner.variadic = true;\n                                if (parserInput.$char(\";\") && !isSemiColonSeparated) {\n                                    isSemiColonSeparated = true;\n                                }\n                                (isSemiColonSeparated ? argsSemiColon : argsComma)\n                                    .push({ name: arg.name, variadic: true });\n                                break;\n                            } else if (!isCall) {\n                                name = nameLoop = val.name;\n                                value = null;\n                            }\n                        }\n\n                        if (value) {\n                            expressions.push(value);\n                        }\n\n                        argsComma.push({ name:nameLoop, value:value });\n\n                        if (parserInput.$char(',')) {\n                            continue;\n                        }\n\n                        if (parserInput.$char(';') || isSemiColonSeparated) {\n\n                            if (expressionContainsNamed) {\n                                error(\"Cannot mix ; and , as delimiter types\");\n                            }\n\n                            isSemiColonSeparated = true;\n\n                            if (expressions.length > 1) {\n                                value = new(tree.Value)(expressions);\n                            }\n                            argsSemiColon.push({ name:name, value:value });\n\n                            name = null;\n                            expressions = [];\n                            expressionContainsNamed = false;\n                        }\n                    }\n\n                    parserInput.forget();\n                    returner.args = isSemiColonSeparated ? argsSemiColon : argsComma;\n                    return returner;\n                },\n                //\n                // A Mixin definition, with a list of parameters\n                //\n                //     .rounded (@radius: 2px, @color) {\n                //        ...\n                //     }\n                //\n                // Until we have a finer grained state-machine, we have to\n                // do a look-ahead, to make sure we don't have a mixin call.\n                // See the `rule` function for more information.\n                //\n                // We start by matching `.rounded (`, and then proceed on to\n                // the argument list, which has optional default values.\n                // We store the parameters in `params`, with a `value` key,\n                // if there is a value, such as in the case of `@radius`.\n                //\n                // Once we've got our params list, and a closing `)`, we parse\n                // the `{...}` block.\n                //\n                definition: function () {\n                    var name, params = [], match, ruleset, cond, variadic = false;\n                    if ((parserInput.currentChar() !== '.' && parserInput.currentChar() !== '#') ||\n                        parserInput.peek(/^[^{]*\\}/)) {\n                        return;\n                    }\n\n                    parserInput.save();\n\n                    match = parserInput.$re(/^([#.](?:[\\w-]|\\\\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+)\\s*\\(/);\n                    if (match) {\n                        name = match[1];\n\n                        var argInfo = this.args(false);\n                        params = argInfo.args;\n                        variadic = argInfo.variadic;\n\n                        // .mixincall(\"@{a}\");\n                        // looks a bit like a mixin definition..\n                        // also\n                        // .mixincall(@a: {rule: set;});\n                        // so we have to be nice and restore\n                        if (!parserInput.$char(')')) {\n                            parserInput.restore(\"Missing closing ')'\");\n                            return;\n                        }\n\n                        parserInput.commentStore.length = 0;\n\n                        if (parserInput.$str(\"when\")) { // Guard\n                            cond = expect(parsers.conditions, 'expected condition');\n                        }\n\n                        ruleset = parsers.block();\n\n                        if (ruleset) {\n                            parserInput.forget();\n                            return new(tree.mixin.Definition)(name, params, ruleset, cond, variadic);\n                        } else {\n                            parserInput.restore();\n                        }\n                    } else {\n                        parserInput.forget();\n                    }\n                }\n            },\n\n            //\n            // Entities are the smallest recognized token,\n            // and can be found inside a rule's value.\n            //\n            entity: function () {\n                var entities = this.entities;\n\n                return this.comment() || entities.literal() || entities.variable() || entities.url() ||\n                       entities.call()    || entities.keyword()  || entities.javascript();\n            },\n\n            //\n            // A Rule terminator. Note that we use `peek()` to check for '}',\n            // because the `block` rule will be expecting it, but we still need to make sure\n            // it's there, if ';' was ommitted.\n            //\n            end: function () {\n                return parserInput.$char(';') || parserInput.peek('}');\n            },\n\n            //\n            // IE's alpha function\n            //\n            //     alpha(opacity=88)\n            //\n            alpha: function () {\n                var value;\n\n                // http://jsperf.com/case-insensitive-regex-vs-strtolower-then-regex/18\n                if (! parserInput.$re(/^opacity=/i)) { return; }\n                value = parserInput.$re(/^\\d+/);\n                if (!value) {\n                    value = expect(this.entities.variable, \"Could not parse alpha\");\n                }\n                expectChar(')');\n                return new(tree.Alpha)(value);\n            },\n\n            //\n            // A Selector Element\n            //\n            //     div\n            //     + h1\n            //     #socks\n            //     input[type=\"text\"]\n            //\n            // Elements are the building blocks for Selectors,\n            // they are made out of a `Combinator` (see combinator rule),\n            // and an element name, such as a tag a class, or `*`.\n            //\n            element: function () {\n                var e, c, v, index = parserInput.i;\n\n                c = this.combinator();\n\n                e = parserInput.$re(/^(?:\\d+\\.\\d+|\\d+)%/) ||\n                    parserInput.$re(/^(?:[.#]?|:*)(?:[\\w-]|[^\\x00-\\x9f]|\\\\(?:[A-Fa-f0-9]{1,6} ?|[^A-Fa-f0-9]))+/) ||\n                    parserInput.$char('*') || parserInput.$char('&') || this.attribute() ||\n                    parserInput.$re(/^\\([^&()@]+\\)/) ||  parserInput.$re(/^[\\.#:](?=@)/) ||\n                    this.entities.variableCurly();\n\n                if (! e) {\n                    parserInput.save();\n                    if (parserInput.$char('(')) {\n                        if ((v = this.selector()) && parserInput.$char(')')) {\n                            e = new(tree.Paren)(v);\n                            parserInput.forget();\n                        } else {\n                            parserInput.restore(\"Missing closing ')'\");\n                        }\n                    } else {\n                        parserInput.forget();\n                    }\n                }\n\n                if (e) { return new(tree.Element)(c, e, index, fileInfo); }\n            },\n\n            //\n            // Combinators combine elements together, in a Selector.\n            //\n            // Because our parser isn't white-space sensitive, special care\n            // has to be taken, when parsing the descendant combinator, ` `,\n            // as it's an empty space. We have to check the previous character\n            // in the input, to see if it's a ` ` character. More info on how\n            // we deal with this in *combinator.js*.\n            //\n            combinator: function () {\n                var c = parserInput.currentChar();\n\n                if (c === '/') {\n                    parserInput.save();\n                    var slashedCombinator = parserInput.$re(/^\\/[a-z]+\\//i);\n                    if (slashedCombinator) {\n                        parserInput.forget();\n                        return new(tree.Combinator)(slashedCombinator);\n                    }\n                    parserInput.restore();\n                }\n\n                if (c === '>' || c === '+' || c === '~' || c === '|' || c === '^') {\n                    parserInput.i++;\n                    if (c === '^' && parserInput.currentChar() === '^') {\n                        c = '^^';\n                        parserInput.i++;\n                    }\n                    while (parserInput.isWhitespace()) { parserInput.i++; }\n                    return new(tree.Combinator)(c);\n                } else if (parserInput.isWhitespace(-1)) {\n                    return new(tree.Combinator)(\" \");\n                } else {\n                    return new(tree.Combinator)(null);\n                }\n            },\n            //\n            // A CSS selector (see selector below)\n            // with less extensions e.g. the ability to extend and guard\n            //\n            lessSelector: function () {\n                return this.selector(true);\n            },\n            //\n            // A CSS Selector\n            //\n            //     .class > div + h1\n            //     li a:hover\n            //\n            // Selectors are made out of one or more Elements, see above.\n            //\n            selector: function (isLess) {\n                var index = parserInput.i, elements, extendList, c, e, allExtends, when, condition;\n\n                while ((isLess && (extendList = this.extend())) || (isLess && (when = parserInput.$str(\"when\"))) || (e = this.element())) {\n                    if (when) {\n                        condition = expect(this.conditions, 'expected condition');\n                    } else if (condition) {\n                        error(\"CSS guard can only be used at the end of selector\");\n                    } else if (extendList) {\n                        if (allExtends) {\n                            allExtends = allExtends.concat(extendList);\n                        } else {\n                            allExtends = extendList;\n                        }\n                    } else {\n                        if (allExtends) { error(\"Extend can only be used at the end of selector\"); }\n                        c = parserInput.currentChar();\n                        if (elements) {\n                            elements.push(e);\n                        } else {\n                            elements = [ e ];\n                        }\n                        e = null;\n                    }\n                    if (c === '{' || c === '}' || c === ';' || c === ',' || c === ')') {\n                        break;\n                    }\n                }\n\n                if (elements) { return new(tree.Selector)(elements, allExtends, condition, index, fileInfo); }\n                if (allExtends) { error(\"Extend must be used to extend a selector, it cannot be used on its own\"); }\n            },\n            attribute: function () {\n                if (! parserInput.$char('[')) { return; }\n\n                var entities = this.entities,\n                    key, val, op;\n\n                if (!(key = entities.variableCurly())) {\n                    key = expect(/^(?:[_A-Za-z0-9-\\*]*\\|)?(?:[_A-Za-z0-9-]|\\\\.)+/);\n                }\n\n                op = parserInput.$re(/^[|~*$^]?=/);\n                if (op) {\n                    val = entities.quoted() || parserInput.$re(/^[0-9]+%/) || parserInput.$re(/^[\\w-]+/) || entities.variableCurly();\n                }\n\n                expectChar(']');\n\n                return new(tree.Attribute)(key, op, val);\n            },\n\n            //\n            // The `block` rule is used by `ruleset` and `mixin.definition`.\n            // It's a wrapper around the `primary` rule, with added `{}`.\n            //\n            block: function () {\n                var content;\n                if (parserInput.$char('{') && (content = this.primary()) && parserInput.$char('}')) {\n                    return content;\n                }\n            },\n\n            blockRuleset: function() {\n                var block = this.block();\n\n                if (block) {\n                    block = new tree.Ruleset(null, block);\n                }\n                return block;\n            },\n\n            detachedRuleset: function() {\n                var blockRuleset = this.blockRuleset();\n                if (blockRuleset) {\n                    return new tree.DetachedRuleset(blockRuleset);\n                }\n            },\n\n            //\n            // div, .class, body > p {...}\n            //\n            ruleset: function () {\n                var selectors, s, rules, debugInfo;\n\n                parserInput.save();\n\n                if (context.dumpLineNumbers) {\n                    debugInfo = getDebugInfo(parserInput.i);\n                }\n\n                while (true) {\n                    s = this.lessSelector();\n                    if (!s) {\n                        break;\n                    }\n                    if (selectors) {\n                        selectors.push(s);\n                    } else {\n                        selectors = [ s ];\n                    }\n                    parserInput.commentStore.length = 0;\n                    if (s.condition && selectors.length > 1) {\n                        error(\"Guards are only currently allowed on a single selector.\");\n                    }\n                    if (! parserInput.$char(',')) { break; }\n                    if (s.condition) {\n                        error(\"Guards are only currently allowed on a single selector.\");\n                    }\n                    parserInput.commentStore.length = 0;\n                }\n\n                if (selectors && (rules = this.block())) {\n                    parserInput.forget();\n                    var ruleset = new(tree.Ruleset)(selectors, rules, context.strictImports);\n                    if (context.dumpLineNumbers) {\n                        ruleset.debugInfo = debugInfo;\n                    }\n                    return ruleset;\n                } else {\n                    parserInput.restore();\n                }\n            },\n            rule: function (tryAnonymous) {\n                var name, value, startOfRule = parserInput.i, c = parserInput.currentChar(), important, merge, isVariable;\n\n                if (c === '.' || c === '#' || c === '&' || c === ':') { return; }\n\n                parserInput.save();\n\n                name = this.variable() || this.ruleProperty();\n                if (name) {\n                    isVariable = typeof name === \"string\";\n\n                    if (isVariable) {\n                        value = this.detachedRuleset();\n                    }\n\n                    parserInput.commentStore.length = 0;\n                    if (!value) {\n                        // a name returned by this.ruleProperty() is always an array of the form:\n                        // [string-1, ..., string-n, \"\"] or [string-1, ..., string-n, \"+\"]\n                        // where each item is a tree.Keyword or tree.Variable\n                        merge = !isVariable && name.length > 1 && name.pop().value;\n\n                        // prefer to try to parse first if its a variable or we are compressing\n                        // but always fallback on the other one\n                        var tryValueFirst = !tryAnonymous && (context.compress || isVariable);\n\n                        if (tryValueFirst) {\n                            value = this.value();\n                        }\n                        if (!value) {\n                            value = this.anonymousValue();\n                            if (value) {\n                                parserInput.forget();\n                                // anonymous values absorb the end ';' which is required for them to work\n                                return new (tree.Rule)(name, value, false, merge, startOfRule, fileInfo);\n                            }\n                        }\n                        if (!tryValueFirst && !value) {\n                            value = this.value();\n                        }\n\n                        important = this.important();\n                    }\n\n                    if (value && this.end()) {\n                        parserInput.forget();\n                        return new (tree.Rule)(name, value, important, merge, startOfRule, fileInfo);\n                    } else {\n                        parserInput.restore();\n                        if (value && !tryAnonymous) {\n                            return this.rule(true);\n                        }\n                    }\n                } else {\n                    parserInput.forget();\n                }\n            },\n            anonymousValue: function () {\n                var match = parserInput.$re(/^([^@+\\/'\"*`(;{}-]*);/);\n                if (match) {\n                    return new(tree.Anonymous)(match[1]);\n                }\n            },\n\n            //\n            // An @import directive\n            //\n            //     @import \"lib\";\n            //\n            // Depending on our environment, importing is done differently:\n            // In the browser, it's an XHR request, in Node, it would be a\n            // file-system operation. The function used for importing is\n            // stored in `import`, which we pass to the Import constructor.\n            //\n            \"import\": function () {\n                var path, features, index = parserInput.i;\n\n                var dir = parserInput.$re(/^@import?\\s+/);\n\n                if (dir) {\n                    var options = (dir ? this.importOptions() : null) || {};\n\n                    if ((path = this.entities.quoted() || this.entities.url())) {\n                        features = this.mediaFeatures();\n\n                        if (!parserInput.$char(';')) {\n                            parserInput.i = index;\n                            error(\"missing semi-colon or unrecognised media features on import\");\n                        }\n                        features = features && new(tree.Value)(features);\n                        return new(tree.Import)(path, features, options, index, fileInfo);\n                    }\n                    else {\n                        parserInput.i = index;\n                        error(\"malformed import statement\");\n                    }\n                }\n            },\n\n            importOptions: function() {\n                var o, options = {}, optionName, value;\n\n                // list of options, surrounded by parens\n                if (! parserInput.$char('(')) { return null; }\n                do {\n                    o = this.importOption();\n                    if (o) {\n                        optionName = o;\n                        value = true;\n                        switch(optionName) {\n                            case \"css\":\n                                optionName = \"less\";\n                                value = false;\n                                break;\n                            case \"once\":\n                                optionName = \"multiple\";\n                                value = false;\n                                break;\n                        }\n                        options[optionName] = value;\n                        if (! parserInput.$char(',')) { break; }\n                    }\n                } while (o);\n                expectChar(')');\n                return options;\n            },\n\n            importOption: function() {\n                var opt = parserInput.$re(/^(less|css|multiple|once|inline|reference|optional)/);\n                if (opt) {\n                    return opt[1];\n                }\n            },\n\n            mediaFeature: function () {\n                var entities = this.entities, nodes = [], e, p;\n                parserInput.save();\n                do {\n                    e = entities.keyword() || entities.variable();\n                    if (e) {\n                        nodes.push(e);\n                    } else if (parserInput.$char('(')) {\n                        p = this.property();\n                        e = this.value();\n                        if (parserInput.$char(')')) {\n                            if (p && e) {\n                                nodes.push(new(tree.Paren)(new(tree.Rule)(p, e, null, null, parserInput.i, fileInfo, true)));\n                            } else if (e) {\n                                nodes.push(new(tree.Paren)(e));\n                            } else {\n                                parserInput.restore(\"badly formed media feature definition\");\n                                return null;\n                            }\n                        } else {\n                            parserInput.restore(\"Missing closing ')'\");\n                            return null;\n                        }\n                    }\n                } while (e);\n\n                parserInput.forget();\n                if (nodes.length > 0) {\n                    return new(tree.Expression)(nodes);\n                }\n            },\n\n            mediaFeatures: function () {\n                var entities = this.entities, features = [], e;\n                do {\n                    e = this.mediaFeature();\n                    if (e) {\n                        features.push(e);\n                        if (! parserInput.$char(',')) { break; }\n                    } else {\n                        e = entities.variable();\n                        if (e) {\n                            features.push(e);\n                            if (! parserInput.$char(',')) { break; }\n                        }\n                    }\n                } while (e);\n\n                return features.length > 0 ? features : null;\n            },\n\n            media: function () {\n                var features, rules, media, debugInfo;\n\n                if (context.dumpLineNumbers) {\n                    debugInfo = getDebugInfo(parserInput.i);\n                }\n\n                parserInput.save();\n\n                if (parserInput.$str(\"@media\")) {\n                    features = this.mediaFeatures();\n\n                    rules = this.block();\n\n                    if (!rules) {\n                        parserInput.restore(\"media definitions require block statements after any features\");\n                        return;\n                    }\n\n                    parserInput.forget();\n\n                    media = new(tree.Media)(rules, features, parserInput.i, fileInfo);\n                    if (context.dumpLineNumbers) {\n                        media.debugInfo = debugInfo;\n                    }\n\n                    return media;\n                }\n\n                parserInput.restore();\n            },\n\n            //\n            // A @plugin directive, used to import compiler extensions dynamically.\n            //\n            //     @plugin \"lib\";\n            //\n            // Depending on our environment, importing is done differently:\n            // In the browser, it's an XHR request, in Node, it would be a\n            // file-system operation. The function used for importing is\n            // stored in `import`, which we pass to the Import constructor.\n            //\n            plugin: function () {\n                var path,\n                    index = parserInput.i,\n                    dir   = parserInput.$re(/^@plugin?\\s+/);\n\n                if (dir) {\n                    var options = { plugin : true };\n\n                    if ((path = this.entities.quoted() || this.entities.url())) {\n\n                        if (!parserInput.$char(';')) {\n                            parserInput.i = index;\n                            error(\"missing semi-colon on plugin\");\n                        }\n\n                        return new(tree.Import)(path, null, options, index, fileInfo);\n                    }\n                    else {\n                        parserInput.i = index;\n                        error(\"malformed plugin statement\");\n                    }\n                }\n            },\n\n            //\n            // A CSS Directive\n            //\n            //     @charset \"utf-8\";\n            //\n            directive: function () {\n                var index = parserInput.i, name, value, rules, nonVendorSpecificName,\n                    hasIdentifier, hasExpression, hasUnknown, hasBlock = true, isRooted = true;\n\n                if (parserInput.currentChar() !== '@') { return; }\n\n                value = this['import']() || this.plugin() || this.media();\n                if (value) {\n                    return value;\n                }\n\n                parserInput.save();\n\n                name = parserInput.$re(/^@[a-z-]+/);\n\n                if (!name) { return; }\n\n                nonVendorSpecificName = name;\n                if (name.charAt(1) == '-' && name.indexOf('-', 2) > 0) {\n                    nonVendorSpecificName = \"@\" + name.slice(name.indexOf('-', 2) + 1);\n                }\n\n                switch(nonVendorSpecificName) {\n                    /*\n                    case \"@font-face\":\n                    case \"@viewport\":\n                    case \"@top-left\":\n                    case \"@top-left-corner\":\n                    case \"@top-center\":\n                    case \"@top-right\":\n                    case \"@top-right-corner\":\n                    case \"@bottom-left\":\n                    case \"@bottom-left-corner\":\n                    case \"@bottom-center\":\n                    case \"@bottom-right\":\n                    case \"@bottom-right-corner\":\n                    case \"@left-top\":\n                    case \"@left-middle\":\n                    case \"@left-bottom\":\n                    case \"@right-top\":\n                    case \"@right-middle\":\n                    case \"@right-bottom\":\n                        hasBlock = true;\n                        isRooted = true;\n                        break;\n                    */\n                    case \"@counter-style\":\n                        hasIdentifier = true;\n                        hasBlock = true;\n                        break;\n                    case \"@charset\":\n                        hasIdentifier = true;\n                        hasBlock = false;\n                        break;\n                    case \"@namespace\":\n                        hasExpression = true;\n                        hasBlock = false;\n                        break;\n                    case \"@keyframes\":\n                        hasIdentifier = true;\n                        break;\n                    case \"@host\":\n                    case \"@page\":\n                        hasUnknown = true;\n                        break;\n                    case \"@document\":\n                    case \"@supports\":\n                        hasUnknown = true;\n                        isRooted = false;\n                        break;\n                }\n\n                parserInput.commentStore.length = 0;\n\n                if (hasIdentifier) {\n                    value = this.entity();\n                    if (!value) {\n                        error(\"expected \" + name + \" identifier\");\n                    }\n                } else if (hasExpression) {\n                    value = this.expression();\n                    if (!value) {\n                        error(\"expected \" + name + \" expression\");\n                    }\n                } else if (hasUnknown) {\n                    value = (parserInput.$re(/^[^{;]+/) || '').trim();\n                    if (value) {\n                        value = new(tree.Anonymous)(value);\n                    }\n                }\n\n                if (hasBlock) {\n                    rules = this.blockRuleset();\n                }\n\n                if (rules || (!hasBlock && value && parserInput.$char(';'))) {\n                    parserInput.forget();\n                    return new (tree.Directive)(name, value, rules, index, fileInfo,\n                        context.dumpLineNumbers ? getDebugInfo(index) : null,\n                        false,\n                        isRooted\n                    );\n                }\n\n                parserInput.restore(\"directive options not recognised\");\n            },\n\n            //\n            // A Value is a comma-delimited list of Expressions\n            //\n            //     font-family: Baskerville, Georgia, serif;\n            //\n            // In a Rule, a Value represents everything after the `:`,\n            // and before the `;`.\n            //\n            value: function () {\n                var e, expressions = [];\n\n                do {\n                    e = this.expression();\n                    if (e) {\n                        expressions.push(e);\n                        if (! parserInput.$char(',')) { break; }\n                    }\n                } while (e);\n\n                if (expressions.length > 0) {\n                    return new(tree.Value)(expressions);\n                }\n            },\n            important: function () {\n                if (parserInput.currentChar() === '!') {\n                    return parserInput.$re(/^! *important/);\n                }\n            },\n            sub: function () {\n                var a, e;\n\n                parserInput.save();\n                if (parserInput.$char('(')) {\n                    a = this.addition();\n                    if (a && parserInput.$char(')')) {\n                        parserInput.forget();\n                        e = new(tree.Expression)([a]);\n                        e.parens = true;\n                        return e;\n                    }\n                    parserInput.restore(\"Expected ')'\");\n                    return;\n                }\n                parserInput.restore();\n            },\n            multiplication: function () {\n                var m, a, op, operation, isSpaced;\n                m = this.operand();\n                if (m) {\n                    isSpaced = parserInput.isWhitespace(-1);\n                    while (true) {\n                        if (parserInput.peek(/^\\/[*\\/]/)) {\n                            break;\n                        }\n\n                        parserInput.save();\n\n                        op = parserInput.$char('/') || parserInput.$char('*');\n\n                        if (!op) { parserInput.forget(); break; }\n\n                        a = this.operand();\n\n                        if (!a) { parserInput.restore(); break; }\n                        parserInput.forget();\n\n                        m.parensInOp = true;\n                        a.parensInOp = true;\n                        operation = new(tree.Operation)(op, [operation || m, a], isSpaced);\n                        isSpaced = parserInput.isWhitespace(-1);\n                    }\n                    return operation || m;\n                }\n            },\n            addition: function () {\n                var m, a, op, operation, isSpaced;\n                m = this.multiplication();\n                if (m) {\n                    isSpaced = parserInput.isWhitespace(-1);\n                    while (true) {\n                        op = parserInput.$re(/^[-+]\\s+/) || (!isSpaced && (parserInput.$char('+') || parserInput.$char('-')));\n                        if (!op) {\n                            break;\n                        }\n                        a = this.multiplication();\n                        if (!a) {\n                            break;\n                        }\n\n                        m.parensInOp = true;\n                        a.parensInOp = true;\n                        operation = new(tree.Operation)(op, [operation || m, a], isSpaced);\n                        isSpaced = parserInput.isWhitespace(-1);\n                    }\n                    return operation || m;\n                }\n            },\n            conditions: function () {\n                var a, b, index = parserInput.i, condition;\n\n                a = this.condition();\n                if (a) {\n                    while (true) {\n                        if (!parserInput.peek(/^,\\s*(not\\s*)?\\(/) || !parserInput.$char(',')) {\n                            break;\n                        }\n                        b = this.condition();\n                        if (!b) {\n                            break;\n                        }\n                        condition = new(tree.Condition)('or', condition || a, b, index);\n                    }\n                    return condition || a;\n                }\n            },\n            condition: function () {\n                var entities = this.entities, index = parserInput.i, negate = false,\n                    a, b, c, op;\n\n                if (parserInput.$str(\"not\")) { negate = true; }\n                expectChar('(');\n                a = this.addition() || entities.keyword() || entities.quoted();\n                if (a) {\n                    if (parserInput.$char('>')) {\n                        if (parserInput.$char('=')) {\n                            op = \">=\";\n                        } else {\n                            op = '>';\n                        }\n                    } else\n                    if (parserInput.$char('<')) {\n                        if (parserInput.$char('=')) {\n                            op = \"<=\";\n                        } else {\n                            op = '<';\n                        }\n                    } else\n                    if (parserInput.$char('=')) {\n                        if (parserInput.$char('>')) {\n                            op = \"=>\";\n                        } else if (parserInput.$char('<')) {\n                            op = '=<';\n                        } else {\n                            op = '=';\n                        }\n                    }\n                    if (op) {\n                        b = this.addition() || entities.keyword() || entities.quoted();\n                        if (b) {\n                            c = new(tree.Condition)(op, a, b, index, negate);\n                        } else {\n                            error('expected expression');\n                        }\n                    } else {\n                        c = new(tree.Condition)('=', a, new(tree.Keyword)('true'), index, negate);\n                    }\n                    expectChar(')');\n                    return parserInput.$str(\"and\") ? new(tree.Condition)('and', c, this.condition()) : c;\n                }\n            },\n\n            //\n            // An operand is anything that can be part of an operation,\n            // such as a Color, or a Variable\n            //\n            operand: function () {\n                var entities = this.entities, negate;\n\n                if (parserInput.peek(/^-[@\\(]/)) {\n                    negate = parserInput.$char('-');\n                }\n\n                var o = this.sub() || entities.dimension() ||\n                        entities.color() || entities.variable() ||\n                        entities.call();\n\n                if (negate) {\n                    o.parensInOp = true;\n                    o = new(tree.Negative)(o);\n                }\n\n                return o;\n            },\n\n            //\n            // Expressions either represent mathematical operations,\n            // or white-space delimited Entities.\n            //\n            //     1px solid black\n            //     @var * 2\n            //\n            expression: function () {\n                var entities = [], e, delim;\n\n                do {\n                    e = this.comment();\n                    if (e) {\n                        entities.push(e);\n                        continue;\n                    }\n                    e = this.addition() || this.entity();\n                    if (e) {\n                        entities.push(e);\n                        // operations do not allow keyword \"/\" dimension (e.g. small/20px) so we support that here\n                        if (!parserInput.peek(/^\\/[\\/*]/)) {\n                            delim = parserInput.$char('/');\n                            if (delim) {\n                                entities.push(new(tree.Anonymous)(delim));\n                            }\n                        }\n                    }\n                } while (e);\n                if (entities.length > 0) {\n                    return new(tree.Expression)(entities);\n                }\n            },\n            property: function () {\n                var name = parserInput.$re(/^(\\*?-?[_a-zA-Z0-9-]+)\\s*:/);\n                if (name) {\n                    return name[1];\n                }\n            },\n            ruleProperty: function () {\n                var name = [], index = [], s, k;\n\n                parserInput.save();\n\n                var simpleProperty = parserInput.$re(/^([_a-zA-Z0-9-]+)\\s*:/);\n                if (simpleProperty) {\n                    name = [new(tree.Keyword)(simpleProperty[1])];\n                    parserInput.forget();\n                    return name;\n                }\n\n                function match(re) {\n                    var i = parserInput.i,\n                        chunk = parserInput.$re(re);\n                    if (chunk) {\n                        index.push(i);\n                        return name.push(chunk[1]);\n                    }\n                }\n\n                match(/^(\\*?)/);\n                while (true) {\n                    if (!match(/^((?:[\\w-]+)|(?:@\\{[\\w-]+\\}))/)) {\n                        break;\n                    }\n                }\n\n                if ((name.length > 1) && match(/^((?:\\+_|\\+)?)\\s*:/)) {\n                    parserInput.forget();\n\n                    // at last, we have the complete match now. move forward,\n                    // convert name particles to tree objects and return:\n                    if (name[0] === '') {\n                        name.shift();\n                        index.shift();\n                    }\n                    for (k = 0; k < name.length; k++) {\n                        s = name[k];\n                        name[k] = (s.charAt(0) !== '@') ?\n                            new(tree.Keyword)(s) :\n                            new(tree.Variable)('@' + s.slice(2, -1),\n                                index[k], fileInfo);\n                    }\n                    return name;\n                }\n                parserInput.restore();\n            }\n        }\n    };\n};\nParser.serializeVars = function(vars) {\n    var s = '';\n\n    for (var name in vars) {\n        if (Object.hasOwnProperty.call(vars, name)) {\n            var value = vars[name];\n            s += ((name[0] === '@') ? '' : '@') + name + ': ' + value +\n                ((String(value).slice(-1) === ';') ? '' : ';');\n        }\n    }\n\n    return s;\n};\n\nmodule.exports = Parser;\n\n},{\"../less-error\":30,\"../tree\":60,\"../utils\":81,\"../visitors\":85,\"./parser-input\":35}],37:[function(require,module,exports){\n/**\n * Plugin Manager\n */\nvar PluginManager = function(less) {\n    this.less = less;\n    this.visitors = [];\n    this.preProcessors = [];\n    this.postProcessors = [];\n    this.installedPlugins = [];\n    this.fileManagers = [];\n};\n/**\n * Adds all the plugins in the array\n * @param {Array} plugins\n */\nPluginManager.prototype.addPlugins = function(plugins) {\n    if (plugins) {\n        for (var i = 0; i < plugins.length; i++) {\n            this.addPlugin(plugins[i]);\n        }\n    }\n};\n/**\n *\n * @param plugin\n */\nPluginManager.prototype.addPlugin = function(plugin) {\n    this.installedPlugins.push(plugin);\n    plugin.install(this.less, this);\n};\n/**\n * Adds a visitor. The visitor object has options on itself to determine\n * when it should run.\n * @param visitor\n */\nPluginManager.prototype.addVisitor = function(visitor) {\n    this.visitors.push(visitor);\n};\n/**\n * Adds a pre processor object\n * @param {object} preProcessor\n * @param {number} priority - guidelines 1 = before import, 1000 = import, 2000 = after import\n */\nPluginManager.prototype.addPreProcessor = function(preProcessor, priority) {\n    var indexToInsertAt;\n    for (indexToInsertAt = 0; indexToInsertAt < this.preProcessors.length; indexToInsertAt++) {\n        if (this.preProcessors[indexToInsertAt].priority >= priority) {\n            break;\n        }\n    }\n    this.preProcessors.splice(indexToInsertAt, 0, {preProcessor: preProcessor, priority: priority});\n};\n/**\n * Adds a post processor object\n * @param {object} postProcessor\n * @param {number} priority - guidelines 1 = before compression, 1000 = compression, 2000 = after compression\n */\nPluginManager.prototype.addPostProcessor = function(postProcessor, priority) {\n    var indexToInsertAt;\n    for (indexToInsertAt = 0; indexToInsertAt < this.postProcessors.length; indexToInsertAt++) {\n        if (this.postProcessors[indexToInsertAt].priority >= priority) {\n            break;\n        }\n    }\n    this.postProcessors.splice(indexToInsertAt, 0, {postProcessor: postProcessor, priority: priority});\n};\n/**\n *\n * @param manager\n */\nPluginManager.prototype.addFileManager = function(manager) {\n    this.fileManagers.push(manager);\n};\n/**\n *\n * @returns {Array}\n * @private\n */\nPluginManager.prototype.getPreProcessors = function() {\n    var preProcessors = [];\n    for (var i = 0; i < this.preProcessors.length; i++) {\n        preProcessors.push(this.preProcessors[i].preProcessor);\n    }\n    return preProcessors;\n};\n/**\n *\n * @returns {Array}\n * @private\n */\nPluginManager.prototype.getPostProcessors = function() {\n    var postProcessors = [];\n    for (var i = 0; i < this.postProcessors.length; i++) {\n        postProcessors.push(this.postProcessors[i].postProcessor);\n    }\n    return postProcessors;\n};\n/**\n *\n * @returns {Array}\n * @private\n */\nPluginManager.prototype.getVisitors = function() {\n    return this.visitors;\n};\n/**\n *\n * @returns {Array}\n * @private\n */\nPluginManager.prototype.getFileManagers = function() {\n    return this.fileManagers;\n};\nmodule.exports = PluginManager;\n\n},{}],38:[function(require,module,exports){\nvar LessError = require('../less-error'),\n    tree = require(\"../tree\");\n\nvar FunctionImporter = module.exports = function FunctionImporter(context, fileInfo) {\n    this.fileInfo = fileInfo;\n};\n\nFunctionImporter.prototype.eval = function(contents, callback) {\n    var loaded = {},\n        loader,\n        registry;\n\n    registry = {\n        add: function(name, func) {\n            loaded[name] = func;\n        },\n        addMultiple: function(functions) {\n            Object.keys(functions).forEach(function(name) {\n                loaded[name] = functions[name];\n            });\n        }\n    };\n\n    try {\n        loader = new Function(\"functions\", \"tree\", \"fileInfo\", contents);\n        loader(registry, tree, this.fileInfo);\n    } catch(e) {\n        callback(new LessError({\n            message: \"Plugin evaluation error: '\" + e.name + ': ' + e.message.replace(/[\"]/g, \"'\") + \"'\" ,\n            filename: this.fileInfo.filename\n        }), null );\n    }\n\n    callback(null, { functions: loaded });\n};\n\n},{\"../less-error\":30,\"../tree\":60}],39:[function(require,module,exports){\nvar PromiseConstructor;\n\nmodule.exports = function(environment, ParseTree, ImportManager) {\n    var render = function (input, options, callback) {\n        if (typeof options === 'function') {\n            callback = options;\n            options = {};\n        }\n\n        if (!callback) {\n            if (!PromiseConstructor) {\n                PromiseConstructor = typeof Promise === 'undefined' ? require('promise') : Promise;\n            }\n            var self = this;\n            return new PromiseConstructor(function (resolve, reject) {\n                render.call(self, input, options, function(err, output) {\n                    if (err) {\n                        reject(err);\n                    } else {\n                        resolve(output);\n                    }\n                });\n            });\n        } else {\n            this.parse(input, options, function(err, root, imports, options) {\n                if (err) { return callback(err); }\n\n                var result;\n                try {\n                    var parseTree = new ParseTree(root, imports);\n                    result = parseTree.toCSS(options);\n                }\n                catch (err) { return callback(err); }\n\n                callback(null, result);\n            });\n        }\n    };\n\n    return render;\n};\n\n},{\"promise\":undefined}],40:[function(require,module,exports){\nmodule.exports = function (SourceMapOutput, environment) {\n\n    var SourceMapBuilder = function (options) {\n        this.options = options;\n    };\n\n    SourceMapBuilder.prototype.toCSS = function(rootNode, options, imports) {\n        var sourceMapOutput = new SourceMapOutput(\n            {\n                contentsIgnoredCharsMap: imports.contentsIgnoredChars,\n                rootNode: rootNode,\n                contentsMap: imports.contents,\n                sourceMapFilename: this.options.sourceMapFilename,\n                sourceMapURL: this.options.sourceMapURL,\n                outputFilename: this.options.sourceMapOutputFilename,\n                sourceMapBasepath: this.options.sourceMapBasepath,\n                sourceMapRootpath: this.options.sourceMapRootpath,\n                outputSourceFiles: this.options.outputSourceFiles,\n                sourceMapGenerator: this.options.sourceMapGenerator,\n                sourceMapFileInline: this.options.sourceMapFileInline\n            });\n\n        var css = sourceMapOutput.toCSS(options);\n        this.sourceMap = sourceMapOutput.sourceMap;\n        this.sourceMapURL = sourceMapOutput.sourceMapURL;\n        if (this.options.sourceMapInputFilename) {\n            this.sourceMapInputFilename = sourceMapOutput.normalizeFilename(this.options.sourceMapInputFilename);\n        }\n        return css + this.getCSSAppendage();\n    };\n\n    SourceMapBuilder.prototype.getCSSAppendage = function() {\n\n        var sourceMapURL = this.sourceMapURL;\n        if (this.options.sourceMapFileInline) {\n            if (this.sourceMap === undefined) {\n                return \"\";\n            }\n            sourceMapURL = \"data:application/json;base64,\" + environment.encodeBase64(this.sourceMap);\n        }\n\n        if (sourceMapURL) {\n            return \"/*# sourceMappingURL=\" + sourceMapURL + \" */\";\n        }\n        return \"\";\n    };\n\n    SourceMapBuilder.prototype.getExternalSourceMap = function() {\n        return this.sourceMap;\n    };\n    SourceMapBuilder.prototype.setExternalSourceMap = function(sourceMap) {\n        this.sourceMap = sourceMap;\n    };\n\n    SourceMapBuilder.prototype.isInline = function() {\n        return this.options.sourceMapFileInline;\n    };\n    SourceMapBuilder.prototype.getSourceMapURL = function() {\n        return this.sourceMapURL;\n    };\n    SourceMapBuilder.prototype.getOutputFilename = function() {\n        return this.options.sourceMapOutputFilename;\n    };\n    SourceMapBuilder.prototype.getInputFilename = function() {\n        return this.sourceMapInputFilename;\n    };\n\n    return SourceMapBuilder;\n};\n\n},{}],41:[function(require,module,exports){\nmodule.exports = function (environment) {\n\n    var SourceMapOutput = function (options) {\n        this._css = [];\n        this._rootNode = options.rootNode;\n        this._contentsMap = options.contentsMap;\n        this._contentsIgnoredCharsMap = options.contentsIgnoredCharsMap;\n        if (options.sourceMapFilename) {\n            this._sourceMapFilename = options.sourceMapFilename.replace(/\\\\/g, '/');\n        }\n        this._outputFilename = options.outputFilename;\n        this.sourceMapURL = options.sourceMapURL;\n        if (options.sourceMapBasepath) {\n            this._sourceMapBasepath = options.sourceMapBasepath.replace(/\\\\/g, '/');\n        }\n        if (options.sourceMapRootpath) {\n            this._sourceMapRootpath = options.sourceMapRootpath.replace(/\\\\/g, '/');\n            if (this._sourceMapRootpath.charAt(this._sourceMapRootpath.length - 1) !== '/') {\n                this._sourceMapRootpath += '/';\n            }\n        } else {\n            this._sourceMapRootpath = \"\";\n        }\n        this._outputSourceFiles = options.outputSourceFiles;\n        this._sourceMapGeneratorConstructor = environment.getSourceMapGenerator();\n\n        this._lineNumber = 0;\n        this._column = 0;\n    };\n\n    SourceMapOutput.prototype.normalizeFilename = function(filename) {\n        filename = filename.replace(/\\\\/g, '/');\n\n        if (this._sourceMapBasepath && filename.indexOf(this._sourceMapBasepath) === 0) {\n            filename = filename.substring(this._sourceMapBasepath.length);\n            if (filename.charAt(0) === '\\\\' || filename.charAt(0) === '/') {\n                filename = filename.substring(1);\n            }\n        }\n        return (this._sourceMapRootpath || \"\") + filename;\n    };\n\n    SourceMapOutput.prototype.add = function(chunk, fileInfo, index, mapLines) {\n\n        //ignore adding empty strings\n        if (!chunk) {\n            return;\n        }\n\n        var lines,\n            sourceLines,\n            columns,\n            sourceColumns,\n            i;\n\n        if (fileInfo) {\n            var inputSource = this._contentsMap[fileInfo.filename];\n\n            // remove vars/banner added to the top of the file\n            if (this._contentsIgnoredCharsMap[fileInfo.filename]) {\n                // adjust the index\n                index -= this._contentsIgnoredCharsMap[fileInfo.filename];\n                if (index < 0) { index = 0; }\n                // adjust the source\n                inputSource = inputSource.slice(this._contentsIgnoredCharsMap[fileInfo.filename]);\n            }\n            inputSource = inputSource.substring(0, index);\n            sourceLines = inputSource.split(\"\\n\");\n            sourceColumns = sourceLines[sourceLines.length - 1];\n        }\n\n        lines = chunk.split(\"\\n\");\n        columns = lines[lines.length - 1];\n\n        if (fileInfo) {\n            if (!mapLines) {\n                this._sourceMapGenerator.addMapping({ generated: { line: this._lineNumber + 1, column: this._column},\n                    original: { line: sourceLines.length, column: sourceColumns.length},\n                    source: this.normalizeFilename(fileInfo.filename)});\n            } else {\n                for (i = 0; i < lines.length; i++) {\n                    this._sourceMapGenerator.addMapping({ generated: { line: this._lineNumber + i + 1, column: i === 0 ? this._column : 0},\n                        original: { line: sourceLines.length + i, column: i === 0 ? sourceColumns.length : 0},\n                        source: this.normalizeFilename(fileInfo.filename)});\n                }\n            }\n        }\n\n        if (lines.length === 1) {\n            this._column += columns.length;\n        } else {\n            this._lineNumber += lines.length - 1;\n            this._column = columns.length;\n        }\n\n        this._css.push(chunk);\n    };\n\n    SourceMapOutput.prototype.isEmpty = function() {\n        return this._css.length === 0;\n    };\n\n    SourceMapOutput.prototype.toCSS = function(context) {\n        this._sourceMapGenerator = new this._sourceMapGeneratorConstructor({ file: this._outputFilename, sourceRoot: null });\n\n        if (this._outputSourceFiles) {\n            for (var filename in this._contentsMap) {\n                if (this._contentsMap.hasOwnProperty(filename)) {\n                    var source = this._contentsMap[filename];\n                    if (this._contentsIgnoredCharsMap[filename]) {\n                        source = source.slice(this._contentsIgnoredCharsMap[filename]);\n                    }\n                    this._sourceMapGenerator.setSourceContent(this.normalizeFilename(filename), source);\n                }\n            }\n        }\n\n        this._rootNode.genCSS(context, this);\n\n        if (this._css.length > 0) {\n            var sourceMapURL,\n                sourceMapContent = JSON.stringify(this._sourceMapGenerator.toJSON());\n\n            if (this.sourceMapURL) {\n                sourceMapURL = this.sourceMapURL;\n            } else if (this._sourceMapFilename) {\n                sourceMapURL = this._sourceMapFilename;\n            }\n            this.sourceMapURL = sourceMapURL;\n\n            this.sourceMap = sourceMapContent;\n        }\n\n        return this._css.join('');\n    };\n\n    return SourceMapOutput;\n};\n\n},{}],42:[function(require,module,exports){\nvar contexts = require(\"./contexts\"),\n    visitor = require(\"./visitors\"),\n    tree = require(\"./tree\");\n\nmodule.exports = function(root, options) {\n    options = options || {};\n    var evaldRoot,\n        variables = options.variables,\n        evalEnv = new contexts.Eval(options);\n\n    //\n    // Allows setting variables with a hash, so:\n    //\n    //   `{ color: new tree.Color('#f01') }` will become:\n    //\n    //   new tree.Rule('@color',\n    //     new tree.Value([\n    //       new tree.Expression([\n    //         new tree.Color('#f01')\n    //       ])\n    //     ])\n    //   )\n    //\n    if (typeof variables === 'object' && !Array.isArray(variables)) {\n        variables = Object.keys(variables).map(function (k) {\n            var value = variables[k];\n\n            if (! (value instanceof tree.Value)) {\n                if (! (value instanceof tree.Expression)) {\n                    value = new tree.Expression([value]);\n                }\n                value = new tree.Value([value]);\n            }\n            return new tree.Rule('@' + k, value, false, null, 0);\n        });\n        evalEnv.frames = [new tree.Ruleset(null, variables)];\n    }\n\n    var preEvalVisitors = [],\n        visitors = [\n            new visitor.JoinSelectorVisitor(),\n            new visitor.ExtendVisitor(),\n            new visitor.ToCSSVisitor({compress: Boolean(options.compress)})\n        ], i;\n\n    if (options.pluginManager) {\n        var pluginVisitors = options.pluginManager.getVisitors();\n        for (i = 0; i < pluginVisitors.length; i++) {\n            var pluginVisitor = pluginVisitors[i];\n            if (pluginVisitor.isPreEvalVisitor) {\n                preEvalVisitors.push(pluginVisitor);\n            } else {\n                if (pluginVisitor.isPreVisitor) {\n                    visitors.splice(0, 0, pluginVisitor);\n                } else {\n                    visitors.push(pluginVisitor);\n                }\n            }\n        }\n    }\n\n    for (i = 0; i < preEvalVisitors.length; i++) {\n        preEvalVisitors[i].run(root);\n    }\n\n    evaldRoot = root.eval(evalEnv);\n\n    for (i = 0; i < visitors.length; i++) {\n        visitors[i].run(evaldRoot);\n    }\n\n    return evaldRoot;\n};\n\n},{\"./contexts\":10,\"./tree\":60,\"./visitors\":85}],43:[function(require,module,exports){\nvar Node = require(\"./node\");\n\nvar Alpha = function (val) {\n    this.value = val;\n};\nAlpha.prototype = new Node();\nAlpha.prototype.type = \"Alpha\";\n\nAlpha.prototype.accept = function (visitor) {\n    this.value = visitor.visit(this.value);\n};\nAlpha.prototype.eval = function (context) {\n    if (this.value.eval) { return new Alpha(this.value.eval(context)); }\n    return this;\n};\nAlpha.prototype.genCSS = function (context, output) {\n    output.add(\"alpha(opacity=\");\n\n    if (this.value.genCSS) {\n        this.value.genCSS(context, output);\n    } else {\n        output.add(this.value);\n    }\n\n    output.add(\")\");\n};\n\nmodule.exports = Alpha;\n\n},{\"./node\":68}],44:[function(require,module,exports){\nvar Node = require(\"./node\");\n\nvar Anonymous = function (value, index, currentFileInfo, mapLines, rulesetLike) {\n    this.value = value;\n    this.index = index;\n    this.mapLines = mapLines;\n    this.currentFileInfo = currentFileInfo;\n    this.rulesetLike = (typeof rulesetLike === 'undefined') ? false : rulesetLike;\n};\nAnonymous.prototype = new Node();\nAnonymous.prototype.type = \"Anonymous\";\nAnonymous.prototype.eval = function () {\n    return new Anonymous(this.value, this.index, this.currentFileInfo, this.mapLines, this.rulesetLike);\n};\nAnonymous.prototype.compare = function (other) {\n    return other.toCSS && this.toCSS() === other.toCSS() ? 0 : undefined;\n};\nAnonymous.prototype.isRulesetLike = function() {\n    return this.rulesetLike;\n};\nAnonymous.prototype.genCSS = function (context, output) {\n    output.add(this.value, this.currentFileInfo, this.index, this.mapLines);\n};\nmodule.exports = Anonymous;\n\n},{\"./node\":68}],45:[function(require,module,exports){\nvar Node = require(\"./node\");\n\nvar Assignment = function (key, val) {\n    this.key = key;\n    this.value = val;\n};\n\nAssignment.prototype = new Node();\nAssignment.prototype.type = \"Assignment\";\nAssignment.prototype.accept = function (visitor) {\n    this.value = visitor.visit(this.value);\n};\nAssignment.prototype.eval = function (context) {\n    if (this.value.eval) {\n        return new Assignment(this.key, this.value.eval(context));\n    }\n    return this;\n};\nAssignment.prototype.genCSS = function (context, output) {\n    output.add(this.key + '=');\n    if (this.value.genCSS) {\n        this.value.genCSS(context, output);\n    } else {\n        output.add(this.value);\n    }\n};\nmodule.exports = Assignment;\n\n},{\"./node\":68}],46:[function(require,module,exports){\nvar Node = require(\"./node\");\n\nvar Attribute = function (key, op, value) {\n    this.key = key;\n    this.op = op;\n    this.value = value;\n};\nAttribute.prototype = new Node();\nAttribute.prototype.type = \"Attribute\";\nAttribute.prototype.eval = function (context) {\n    return new Attribute(this.key.eval ? this.key.eval(context) : this.key,\n        this.op, (this.value && this.value.eval) ? this.value.eval(context) : this.value);\n};\nAttribute.prototype.genCSS = function (context, output) {\n    output.add(this.toCSS(context));\n};\nAttribute.prototype.toCSS = function (context) {\n    var value = this.key.toCSS ? this.key.toCSS(context) : this.key;\n\n    if (this.op) {\n        value += this.op;\n        value += (this.value.toCSS ? this.value.toCSS(context) : this.value);\n    }\n\n    return '[' + value + ']';\n};\nmodule.exports = Attribute;\n\n},{\"./node\":68}],47:[function(require,module,exports){\nvar Node = require(\"./node\"),\n    FunctionCaller = require(\"../functions/function-caller\");\n//\n// A function call node.\n//\nvar Call = function (name, args, index, currentFileInfo) {\n    this.name = name;\n    this.args = args;\n    this.index = index;\n    this.currentFileInfo = currentFileInfo;\n};\nCall.prototype = new Node();\nCall.prototype.type = \"Call\";\nCall.prototype.accept = function (visitor) {\n    if (this.args) {\n        this.args = visitor.visitArray(this.args);\n    }\n};\n//\n// When evaluating a function call,\n// we either find the function in the functionRegistry,\n// in which case we call it, passing the  evaluated arguments,\n// if this returns null or we cannot find the function, we\n// simply print it out as it appeared originally [2].\n//\n// The reason why we evaluate the arguments, is in the case where\n// we try to pass a variable to a function, like: `saturate(@color)`.\n// The function should receive the value, not the variable.\n//\nCall.prototype.eval = function (context) {\n    var args = this.args.map(function (a) { return a.eval(context); }),\n        result, funcCaller = new FunctionCaller(this.name, context, this.index, this.currentFileInfo);\n\n    if (funcCaller.isValid()) { // 1.\n        try {\n            result = funcCaller.call(args);\n            if (result != null) {\n                return result;\n            }\n        } catch (e) {\n            throw { type: e.type || \"Runtime\",\n                    message: \"error evaluating function `\" + this.name + \"`\" +\n                             (e.message ? ': ' + e.message : ''),\n                    index: this.index, filename: this.currentFileInfo.filename };\n        }\n    }\n\n    return new Call(this.name, args, this.index, this.currentFileInfo);\n};\nCall.prototype.genCSS = function (context, output) {\n    output.add(this.name + \"(\", this.currentFileInfo, this.index);\n\n    for (var i = 0; i < this.args.length; i++) {\n        this.args[i].genCSS(context, output);\n        if (i + 1 < this.args.length) {\n            output.add(\", \");\n        }\n    }\n\n    output.add(\")\");\n};\nmodule.exports = Call;\n\n},{\"../functions/function-caller\":20,\"./node\":68}],48:[function(require,module,exports){\nvar Node = require(\"./node\"),\n    colors = require(\"../data/colors\");\n\n//\n// RGB Colors - #ff0014, #eee\n//\nvar Color = function (rgb, a) {\n    //\n    // The end goal here, is to parse the arguments\n    // into an integer triplet, such as `128, 255, 0`\n    //\n    // This facilitates operations and conversions.\n    //\n    if (Array.isArray(rgb)) {\n        this.rgb = rgb;\n    } else if (rgb.length == 6) {\n        this.rgb = rgb.match(/.{2}/g).map(function (c) {\n            return parseInt(c, 16);\n        });\n    } else {\n        this.rgb = rgb.split('').map(function (c) {\n            return parseInt(c + c, 16);\n        });\n    }\n    this.alpha = typeof a === 'number' ? a : 1;\n};\n\nColor.prototype = new Node();\nColor.prototype.type = \"Color\";\n\nfunction clamp(v, max) {\n    return Math.min(Math.max(v, 0), max);\n}\n\nfunction toHex(v) {\n    return '#' + v.map(function (c) {\n        c = clamp(Math.round(c), 255);\n        return (c < 16 ? '0' : '') + c.toString(16);\n    }).join('');\n}\n\nColor.prototype.luma = function () {\n    var r = this.rgb[0] / 255,\n        g = this.rgb[1] / 255,\n        b = this.rgb[2] / 255;\n\n    r = (r <= 0.03928) ? r / 12.92 : Math.pow(((r + 0.055) / 1.055), 2.4);\n    g = (g <= 0.03928) ? g / 12.92 : Math.pow(((g + 0.055) / 1.055), 2.4);\n    b = (b <= 0.03928) ? b / 12.92 : Math.pow(((b + 0.055) / 1.055), 2.4);\n\n    return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\nColor.prototype.genCSS = function (context, output) {\n    output.add(this.toCSS(context));\n};\nColor.prototype.toCSS = function (context, doNotCompress) {\n    var compress = context && context.compress && !doNotCompress, color, alpha;\n\n    // `value` is set if this color was originally\n    // converted from a named color string so we need\n    // to respect this and try to output named color too.\n    if (this.value) {\n        return this.value;\n    }\n\n    // If we have some transparency, the only way to represent it\n    // is via `rgba`. Otherwise, we use the hex representation,\n    // which has better compatibility with older browsers.\n    // Values are capped between `0` and `255`, rounded and zero-padded.\n    alpha = this.fround(context, this.alpha);\n    if (alpha < 1) {\n        return \"rgba(\" + this.rgb.map(function (c) {\n            return clamp(Math.round(c), 255);\n        }).concat(clamp(alpha, 1))\n            .join(',' + (compress ? '' : ' ')) + \")\";\n    }\n\n    color = this.toRGB();\n\n    if (compress) {\n        var splitcolor = color.split('');\n\n        // Convert color to short format\n        if (splitcolor[1] === splitcolor[2] && splitcolor[3] === splitcolor[4] && splitcolor[5] === splitcolor[6]) {\n            color = '#' + splitcolor[1] + splitcolor[3] + splitcolor[5];\n        }\n    }\n\n    return color;\n};\n\n//\n// Operations have to be done per-channel, if not,\n// channels will spill onto each other. Once we have\n// our result, in the form of an integer triplet,\n// we create a new Color node to hold the result.\n//\nColor.prototype.operate = function (context, op, other) {\n    var rgb = [];\n    var alpha = this.alpha * (1 - other.alpha) + other.alpha;\n    for (var c = 0; c < 3; c++) {\n        rgb[c] = this._operate(context, op, this.rgb[c], other.rgb[c]);\n    }\n    return new Color(rgb, alpha);\n};\nColor.prototype.toRGB = function () {\n    return toHex(this.rgb);\n};\nColor.prototype.toHSL = function () {\n    var r = this.rgb[0] / 255,\n        g = this.rgb[1] / 255,\n        b = this.rgb[2] / 255,\n        a = this.alpha;\n\n    var max = Math.max(r, g, b), min = Math.min(r, g, b);\n    var h, s, l = (max + min) / 2, d = max - min;\n\n    if (max === min) {\n        h = s = 0;\n    } else {\n        s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n        switch (max) {\n            case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n            case g: h = (b - r) / d + 2;               break;\n            case b: h = (r - g) / d + 4;               break;\n        }\n        h /= 6;\n    }\n    return { h: h * 360, s: s, l: l, a: a };\n};\n//Adapted from http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript\nColor.prototype.toHSV = function () {\n    var r = this.rgb[0] / 255,\n        g = this.rgb[1] / 255,\n        b = this.rgb[2] / 255,\n        a = this.alpha;\n\n    var max = Math.max(r, g, b), min = Math.min(r, g, b);\n    var h, s, v = max;\n\n    var d = max - min;\n    if (max === 0) {\n        s = 0;\n    } else {\n        s = d / max;\n    }\n\n    if (max === min) {\n        h = 0;\n    } else {\n        switch(max) {\n            case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n            case g: h = (b - r) / d + 2; break;\n            case b: h = (r - g) / d + 4; break;\n        }\n        h /= 6;\n    }\n    return { h: h * 360, s: s, v: v, a: a };\n};\nColor.prototype.toARGB = function () {\n    return toHex([this.alpha * 255].concat(this.rgb));\n};\nColor.prototype.compare = function (x) {\n    return (x.rgb &&\n        x.rgb[0] === this.rgb[0] &&\n        x.rgb[1] === this.rgb[1] &&\n        x.rgb[2] === this.rgb[2] &&\n        x.alpha  === this.alpha) ? 0 : undefined;\n};\n\nColor.fromKeyword = function(keyword) {\n    var c, key = keyword.toLowerCase();\n    if (colors.hasOwnProperty(key)) {\n        c = new Color(colors[key].slice(1));\n    }\n    else if (key === \"transparent\") {\n        c = new Color([0, 0, 0], 0);\n    }\n\n    if (c) {\n        c.value = keyword;\n        return c;\n    }\n};\nmodule.exports = Color;\n\n},{\"../data/colors\":11,\"./node\":68}],49:[function(require,module,exports){\nvar Node = require(\"./node\");\n\nvar Combinator = function (value) {\n    if (value === ' ') {\n        this.value = ' ';\n        this.emptyOrWhitespace = true;\n    } else {\n        this.value = value ? value.trim() : \"\";\n        this.emptyOrWhitespace = this.value === \"\";\n    }\n};\nCombinator.prototype = new Node();\nCombinator.prototype.type = \"Combinator\";\nvar _noSpaceCombinators = {\n    '': true,\n    ' ': true,\n    '|': true\n};\nCombinator.prototype.genCSS = function (context, output) {\n    var spaceOrEmpty = (context.compress || _noSpaceCombinators[this.value]) ? '' : ' ';\n    output.add(spaceOrEmpty + this.value + spaceOrEmpty);\n};\nmodule.exports = Combinator;\n\n},{\"./node\":68}],50:[function(require,module,exports){\nvar Node = require(\"./node\"),\n    getDebugInfo = require(\"./debug-info\");\n\nvar Comment = function (value, isLineComment, index, currentFileInfo) {\n    this.value = value;\n    this.isLineComment = isLineComment;\n    this.currentFileInfo = currentFileInfo;\n};\nComment.prototype = new Node();\nComment.prototype.type = \"Comment\";\nComment.prototype.genCSS = function (context, output) {\n    if (this.debugInfo) {\n        output.add(getDebugInfo(context, this), this.currentFileInfo, this.index);\n    }\n    output.add(this.value);\n};\nComment.prototype.isSilent = function(context) {\n    var isReference = (this.currentFileInfo && this.currentFileInfo.reference && !this.isReferenced),\n        isCompressed = context.compress && this.value[2] !== \"!\";\n    return this.isLineComment || isReference || isCompressed;\n};\nComment.prototype.markReferenced = function () {\n    this.isReferenced = true;\n};\nmodule.exports = Comment;\n\n},{\"./debug-info\":52,\"./node\":68}],51:[function(require,module,exports){\nvar Node = require(\"./node\");\n\nvar Condition = function (op, l, r, i, negate) {\n    this.op = op.trim();\n    this.lvalue = l;\n    this.rvalue = r;\n    this.index = i;\n    this.negate = negate;\n};\nCondition.prototype = new Node();\nCondition.prototype.type = \"Condition\";\nCondition.prototype.accept = function (visitor) {\n    this.lvalue = visitor.visit(this.lvalue);\n    this.rvalue = visitor.visit(this.rvalue);\n};\nCondition.prototype.eval = function (context) {\n    var result = (function (op, a, b) {\n        switch (op) {\n            case 'and': return a && b;\n            case 'or':  return a || b;\n            default:\n                switch (Node.compare(a, b)) {\n                    case -1:\n                        return op === '<' || op === '=<' || op === '<=';\n                    case 0:\n                        return op === '=' || op === '>=' || op === '=<' || op === '<=';\n                    case 1:\n                        return op === '>' || op === '>=';\n                    default:\n                        return false;\n                }\n        }\n    })(this.op, this.lvalue.eval(context), this.rvalue.eval(context));\n\n    return this.negate ? !result : result;\n};\nmodule.exports = Condition;\n\n},{\"./node\":68}],52:[function(require,module,exports){\nvar debugInfo = function(context, ctx, lineSeparator) {\n    var result = \"\";\n    if (context.dumpLineNumbers && !context.compress) {\n        switch(context.dumpLineNumbers) {\n            case 'comments':\n                result = debugInfo.asComment(ctx);\n                break;\n            case 'mediaquery':\n                result = debugInfo.asMediaQuery(ctx);\n                break;\n            case 'all':\n                result = debugInfo.asComment(ctx) + (lineSeparator || \"\") + debugInfo.asMediaQuery(ctx);\n                break;\n        }\n    }\n    return result;\n};\n\ndebugInfo.asComment = function(ctx) {\n    return '/* line ' + ctx.debugInfo.lineNumber + ', ' + ctx.debugInfo.fileName + ' */\\n';\n};\n\ndebugInfo.asMediaQuery = function(ctx) {\n    var filenameWithProtocol = ctx.debugInfo.fileName;\n    if (!/^[a-z]+:\\/\\//i.test(filenameWithProtocol)) {\n        filenameWithProtocol = 'file://' + filenameWithProtocol;\n    }\n    return '@media -sass-debug-info{filename{font-family:' +\n        filenameWithProtocol.replace(/([.:\\/\\\\])/g, function (a) {\n            if (a == '\\\\') {\n                a = '\\/';\n            }\n            return '\\\\' + a;\n        }) +\n        '}line{font-family:\\\\00003' + ctx.debugInfo.lineNumber + '}}\\n';\n};\n\nmodule.exports = debugInfo;\n\n},{}],53:[function(require,module,exports){\nvar Node = require(\"./node\"),\n    contexts = require(\"../contexts\");\n\nvar DetachedRuleset = function (ruleset, frames) {\n    this.ruleset = ruleset;\n    this.frames = frames;\n};\nDetachedRuleset.prototype = new Node();\nDetachedRuleset.prototype.type = \"DetachedRuleset\";\nDetachedRuleset.prototype.evalFirst = true;\nDetachedRuleset.prototype.accept = function (visitor) {\n    this.ruleset = visitor.visit(this.ruleset);\n};\nDetachedRuleset.prototype.eval = function (context) {\n    var frames = this.frames || context.frames.slice(0);\n    return new DetachedRuleset(this.ruleset, frames);\n};\nDetachedRuleset.prototype.callEval = function (context) {\n    return this.ruleset.eval(this.frames ? new contexts.Eval(context, this.frames.concat(context.frames)) : context);\n};\nmodule.exports = DetachedRuleset;\n\n},{\"../contexts\":10,\"./node\":68}],54:[function(require,module,exports){\nvar Node = require(\"./node\"),\n    unitConversions = require(\"../data/unit-conversions\"),\n    Unit = require(\"./unit\"),\n    Color = require(\"./color\");\n\n//\n// A number with a unit\n//\nvar Dimension = function (value, unit) {\n    this.value = parseFloat(value);\n    this.unit = (unit && unit instanceof Unit) ? unit :\n      new Unit(unit ? [unit] : undefined);\n};\n\nDimension.prototype = new Node();\nDimension.prototype.type = \"Dimension\";\nDimension.prototype.accept = function (visitor) {\n    this.unit = visitor.visit(this.unit);\n};\nDimension.prototype.eval = function (context) {\n    return this;\n};\nDimension.prototype.toColor = function () {\n    return new Color([this.value, this.value, this.value]);\n};\nDimension.prototype.genCSS = function (context, output) {\n    if ((context && context.strictUnits) && !this.unit.isSingular()) {\n        throw new Error(\"Multiple units in dimension. Correct the units or use the unit function. Bad unit: \" + this.unit.toString());\n    }\n\n    var value = this.fround(context, this.value),\n        strValue = String(value);\n\n    if (value !== 0 && value < 0.000001 && value > -0.000001) {\n        // would be output 1e-6 etc.\n        strValue = value.toFixed(20).replace(/0+$/, \"\");\n    }\n\n    if (context && context.compress) {\n        // Zero values doesn't need a unit\n        if (value === 0 && this.unit.isLength()) {\n            output.add(strValue);\n            return;\n        }\n\n        // Float values doesn't need a leading zero\n        if (value > 0 && value < 1) {\n            strValue = (strValue).substr(1);\n        }\n    }\n\n    output.add(strValue);\n    this.unit.genCSS(context, output);\n};\n\n// In an operation between two Dimensions,\n// we default to the first Dimension's unit,\n// so `1px + 2` will yield `3px`.\nDimension.prototype.operate = function (context, op, other) {\n    /*jshint noempty:false */\n    var value = this._operate(context, op, this.value, other.value),\n        unit = this.unit.clone();\n\n    if (op === '+' || op === '-') {\n        if (unit.numerator.length === 0 && unit.denominator.length === 0) {\n            unit = other.unit.clone();\n            if (this.unit.backupUnit) {\n                unit.backupUnit = this.unit.backupUnit;\n            }\n        } else if (other.unit.numerator.length === 0 && unit.denominator.length === 0) {\n            // do nothing\n        } else {\n            other = other.convertTo(this.unit.usedUnits());\n\n            if (context.strictUnits && other.unit.toString() !== unit.toString()) {\n                throw new Error(\"Incompatible units. Change the units or use the unit function. Bad units: '\" + unit.toString() +\n                    \"' and '\" + other.unit.toString() + \"'.\");\n            }\n\n            value = this._operate(context, op, this.value, other.value);\n        }\n    } else if (op === '*') {\n        unit.numerator = unit.numerator.concat(other.unit.numerator).sort();\n        unit.denominator = unit.denominator.concat(other.unit.denominator).sort();\n        unit.cancel();\n    } else if (op === '/') {\n        unit.numerator = unit.numerator.concat(other.unit.denominator).sort();\n        unit.denominator = unit.denominator.concat(other.unit.numerator).sort();\n        unit.cancel();\n    }\n    return new Dimension(value, unit);\n};\nDimension.prototype.compare = function (other) {\n    var a, b;\n\n    if (!(other instanceof Dimension)) {\n        return undefined;\n    }\n\n    if (this.unit.isEmpty() || other.unit.isEmpty()) {\n        a = this;\n        b = other;\n    } else {\n        a = this.unify();\n        b = other.unify();\n        if (a.unit.compare(b.unit) !== 0) {\n            return undefined;\n        }\n    }\n\n    return Node.numericCompare(a.value, b.value);\n};\nDimension.prototype.unify = function () {\n    return this.convertTo({ length: 'px', duration: 's', angle: 'rad' });\n};\nDimension.prototype.convertTo = function (conversions) {\n    var value = this.value, unit = this.unit.clone(),\n        i, groupName, group, targetUnit, derivedConversions = {}, applyUnit;\n\n    if (typeof conversions === 'string') {\n        for (i in unitConversions) {\n            if (unitConversions[i].hasOwnProperty(conversions)) {\n                derivedConversions = {};\n                derivedConversions[i] = conversions;\n            }\n        }\n        conversions = derivedConversions;\n    }\n    applyUnit = function (atomicUnit, denominator) {\n        /* jshint loopfunc:true */\n        if (group.hasOwnProperty(atomicUnit)) {\n            if (denominator) {\n                value = value / (group[atomicUnit] / group[targetUnit]);\n            } else {\n                value = value * (group[atomicUnit] / group[targetUnit]);\n            }\n\n            return targetUnit;\n        }\n\n        return atomicUnit;\n    };\n\n    for (groupName in conversions) {\n        if (conversions.hasOwnProperty(groupName)) {\n            targetUnit = conversions[groupName];\n            group = unitConversions[groupName];\n\n            unit.map(applyUnit);\n        }\n    }\n\n    unit.cancel();\n\n    return new Dimension(value, unit);\n};\nmodule.exports = Dimension;\n\n},{\"../data/unit-conversions\":13,\"./color\":48,\"./node\":68,\"./unit\":77}],55:[function(require,module,exports){\nvar Node = require(\"./node\"),\n    Selector = require(\"./selector\"),\n    Ruleset = require(\"./ruleset\");\n\nvar Directive = function (name, value, rules, index, currentFileInfo, debugInfo, isReferenced, isRooted) {\n    var i;\n\n    this.name  = name;\n    this.value = value;\n    if (rules) {\n        if (Array.isArray(rules)) {\n            this.rules = rules;\n        } else {\n            this.rules = [rules];\n            this.rules[0].selectors = (new Selector([], null, null, this.index, currentFileInfo)).createEmptySelectors();\n        }\n        for (i = 0; i < this.rules.length; i++) {\n            this.rules[i].allowImports = true;\n        }\n    }\n    this.index = index;\n    this.currentFileInfo = currentFileInfo;\n    this.debugInfo = debugInfo;\n    this.isReferenced = isReferenced;\n    this.isRooted = isRooted || false;\n};\n\nDirective.prototype = new Node();\nDirective.prototype.type = \"Directive\";\nDirective.prototype.accept = function (visitor) {\n    var value = this.value, rules = this.rules;\n    if (rules) {\n        this.rules = visitor.visitArray(rules);\n    }\n    if (value) {\n        this.value = visitor.visit(value);\n    }\n};\nDirective.prototype.isRulesetLike = function() {\n    return this.rules || !this.isCharset();\n};\nDirective.prototype.isCharset = function() {\n    return \"@charset\" === this.name;\n};\nDirective.prototype.genCSS = function (context, output) {\n    var value = this.value, rules = this.rules;\n    output.add(this.name, this.currentFileInfo, this.index);\n    if (value) {\n        output.add(' ');\n        value.genCSS(context, output);\n    }\n    if (rules) {\n        this.outputRuleset(context, output, rules);\n    } else {\n        output.add(';');\n    }\n};\nDirective.prototype.eval = function (context) {\n    var mediaPathBackup, mediaBlocksBackup, value = this.value, rules = this.rules;\n\n    //media stored inside other directive should not bubble over it\n    //backpup media bubbling information\n    mediaPathBackup = context.mediaPath;\n    mediaBlocksBackup = context.mediaBlocks;\n    //deleted media bubbling information\n    context.mediaPath = [];\n    context.mediaBlocks = [];\n\n    if (value) {\n        value = value.eval(context);\n    }\n    if (rules) {\n        // assuming that there is only one rule at this point - that is how parser constructs the rule\n        rules = [rules[0].eval(context)];\n        rules[0].root = true;\n    }\n    //restore media bubbling information\n    context.mediaPath = mediaPathBackup;\n    context.mediaBlocks = mediaBlocksBackup;\n\n    return new Directive(this.name, value, rules,\n        this.index, this.currentFileInfo, this.debugInfo, this.isReferenced, this.isRooted);\n};\nDirective.prototype.variable = function (name) {\n    if (this.rules) {\n        // assuming that there is only one rule at this point - that is how parser constructs the rule\n        return Ruleset.prototype.variable.call(this.rules[0], name);\n    }\n};\nDirective.prototype.find = function () {\n    if (this.rules) {\n        // assuming that there is only one rule at this point - that is how parser constructs the rule\n        return Ruleset.prototype.find.apply(this.rules[0], arguments);\n    }\n};\nDirective.prototype.rulesets = function () {\n    if (this.rules) {\n        // assuming that there is only one rule at this point - that is how parser constructs the rule\n        return Ruleset.prototype.rulesets.apply(this.rules[0]);\n    }\n};\nDirective.prototype.markReferenced = function () {\n    var i, rules;\n    this.isReferenced = true;\n    if (this.rules) {\n        rules = this.rules;\n        for (i = 0; i < rules.length; i++) {\n            if (rules[i].markReferenced) {\n                rules[i].markReferenced();\n            }\n        }\n    }\n};\nDirective.prototype.getIsReferenced = function () {\n    return !this.currentFileInfo || !this.currentFileInfo.reference || this.isReferenced;\n};\nDirective.prototype.outputRuleset = function (context, output, rules) {\n    var ruleCnt = rules.length, i;\n    context.tabLevel = (context.tabLevel | 0) + 1;\n\n    // Compressed\n    if (context.compress) {\n        output.add('{');\n        for (i = 0; i < ruleCnt; i++) {\n            rules[i].genCSS(context, output);\n        }\n        output.add('}');\n        context.tabLevel--;\n        return;\n    }\n\n    // Non-compressed\n    var tabSetStr = '\\n' + Array(context.tabLevel).join(\"  \"), tabRuleStr = tabSetStr + \"  \";\n    if (!ruleCnt) {\n        output.add(\" {\" + tabSetStr + '}');\n    } else {\n        output.add(\" {\" + tabRuleStr);\n        rules[0].genCSS(context, output);\n        for (i = 1; i < ruleCnt; i++) {\n            output.add(tabRuleStr);\n            rules[i].genCSS(context, output);\n        }\n        output.add(tabSetStr + '}');\n    }\n\n    context.tabLevel--;\n};\nmodule.exports = Directive;\n\n},{\"./node\":68,\"./ruleset\":74,\"./selector\":75}],56:[function(require,module,exports){\nvar Node = require(\"./node\"),\n    Paren = require(\"./paren\"),\n    Combinator = require(\"./combinator\");\n\nvar Element = function (combinator, value, index, currentFileInfo) {\n    this.combinator = combinator instanceof Combinator ?\n                      combinator : new Combinator(combinator);\n\n    if (typeof value === 'string') {\n        this.value = value.trim();\n    } else if (value) {\n        this.value = value;\n    } else {\n        this.value = \"\";\n    }\n    this.index = index;\n    this.currentFileInfo = currentFileInfo;\n};\nElement.prototype = new Node();\nElement.prototype.type = \"Element\";\nElement.prototype.accept = function (visitor) {\n    var value = this.value;\n    this.combinator = visitor.visit(this.combinator);\n    if (typeof value === \"object\") {\n        this.value = visitor.visit(value);\n    }\n};\nElement.prototype.eval = function (context) {\n    return new Element(this.combinator,\n                             this.value.eval ? this.value.eval(context) : this.value,\n                             this.index,\n                             this.currentFileInfo);\n};\nElement.prototype.genCSS = function (context, output) {\n    output.add(this.toCSS(context), this.currentFileInfo, this.index);\n};\nElement.prototype.toCSS = function (context) {\n    context = context || {};\n    var value = this.value, firstSelector = context.firstSelector;\n    if (value instanceof Paren) {\n        // selector in parens should not be affected by outer selector\n        // flags (breaks only interpolated selectors - see #1973)\n        context.firstSelector = true;\n    }\n    value = value.toCSS ? value.toCSS(context) : value;\n    context.firstSelector = firstSelector;\n    if (value === '' && this.combinator.value.charAt(0) === '&') {\n        return '';\n    } else {\n        return this.combinator.toCSS(context) + value;\n    }\n};\nmodule.exports = Element;\n\n},{\"./combinator\":49,\"./node\":68,\"./paren\":70}],57:[function(require,module,exports){\nvar Node = require(\"./node\"),\n    Paren = require(\"./paren\"),\n    Comment = require(\"./comment\");\n\nvar Expression = function (value) {\n    this.value = value;\n    if (!value) {\n        throw new Error(\"Expression requires an array parameter\");\n    }\n};\nExpression.prototype = new Node();\nExpression.prototype.type = \"Expression\";\nExpression.prototype.accept = function (visitor) {\n    this.value = visitor.visitArray(this.value);\n};\nExpression.prototype.eval = function (context) {\n    var returnValue,\n        inParenthesis = this.parens && !this.parensInOp,\n        doubleParen = false;\n    if (inParenthesis) {\n        context.inParenthesis();\n    }\n    if (this.value.length > 1) {\n        returnValue = new Expression(this.value.map(function (e) {\n            return e.eval(context);\n        }));\n    } else if (this.value.length === 1) {\n        if (this.value[0].parens && !this.value[0].parensInOp) {\n            doubleParen = true;\n        }\n        returnValue = this.value[0].eval(context);\n    } else {\n        returnValue = this;\n    }\n    if (inParenthesis) {\n        context.outOfParenthesis();\n    }\n    if (this.parens && this.parensInOp && !(context.isMathOn()) && !doubleParen) {\n        returnValue = new Paren(returnValue);\n    }\n    return returnValue;\n};\nExpression.prototype.genCSS = function (context, output) {\n    for (var i = 0; i < this.value.length; i++) {\n        this.value[i].genCSS(context, output);\n        if (i + 1 < this.value.length) {\n            output.add(\" \");\n        }\n    }\n};\nExpression.prototype.throwAwayComments = function () {\n    this.value = this.value.filter(function(v) {\n        return !(v instanceof Comment);\n    });\n};\nmodule.exports = Expression;\n\n},{\"./comment\":50,\"./node\":68,\"./paren\":70}],58:[function(require,module,exports){\nvar Node = require(\"./node\");\n\nvar Extend = function Extend(selector, option, index) {\n    this.selector = selector;\n    this.option = option;\n    this.index = index;\n    this.object_id = Extend.next_id++;\n    this.parent_ids = [this.object_id];\n\n    switch(option) {\n        case \"all\":\n            this.allowBefore = true;\n            this.allowAfter = true;\n            break;\n        default:\n            this.allowBefore = false;\n            this.allowAfter = false;\n            break;\n    }\n};\nExtend.next_id = 0;\n\nExtend.prototype = new Node();\nExtend.prototype.type = \"Extend\";\nExtend.prototype.accept = function (visitor) {\n    this.selector = visitor.visit(this.selector);\n};\nExtend.prototype.eval = function (context) {\n    return new Extend(this.selector.eval(context), this.option, this.index);\n};\nExtend.prototype.clone = function (context) {\n    return new Extend(this.selector, this.option, this.index);\n};\nExtend.prototype.findSelfSelectors = function (selectors) {\n    var selfElements = [],\n        i,\n        selectorElements;\n\n    for (i = 0; i < selectors.length; i++) {\n        selectorElements = selectors[i].elements;\n        // duplicate the logic in genCSS function inside the selector node.\n        // future TODO - move both logics into the selector joiner visitor\n        if (i > 0 && selectorElements.length && selectorElements[0].combinator.value === \"\") {\n            selectorElements[0].combinator.value = ' ';\n        }\n        selfElements = selfElements.concat(selectors[i].elements);\n    }\n\n    this.selfSelectors = [{ elements: selfElements }];\n};\nmodule.exports = Extend;\n\n},{\"./node\":68}],59:[function(require,module,exports){\nvar Node = require(\"./node\"),\n    Media = require(\"./media\"),\n    URL = require(\"./url\"),\n    Quoted = require(\"./quoted\"),\n    Ruleset = require(\"./ruleset\"),\n    Anonymous = require(\"./anonymous\");\n\n//\n// CSS @import node\n//\n// The general strategy here is that we don't want to wait\n// for the parsing to be completed, before we start importing\n// the file. That's because in the context of a browser,\n// most of the time will be spent waiting for the server to respond.\n//\n// On creation, we push the import path to our import queue, though\n// `import,push`, we also pass it a callback, which it'll call once\n// the file has been fetched, and parsed.\n//\nvar Import = function (path, features, options, index, currentFileInfo) {\n    this.options = options;\n    this.index = index;\n    this.path = path;\n    this.features = features;\n    this.currentFileInfo = currentFileInfo;\n\n    if (this.options.less !== undefined || this.options.inline) {\n        this.css = !this.options.less || this.options.inline;\n    } else {\n        var pathValue = this.getPath();\n        if (pathValue && /[#\\.\\&\\?\\/]css([\\?;].*)?$/.test(pathValue)) {\n            this.css = true;\n        }\n    }\n};\n\n//\n// The actual import node doesn't return anything, when converted to CSS.\n// The reason is that it's used at the evaluation stage, so that the rules\n// it imports can be treated like any other rules.\n//\n// In `eval`, we make sure all Import nodes get evaluated, recursively, so\n// we end up with a flat structure, which can easily be imported in the parent\n// ruleset.\n//\nImport.prototype = new Node();\nImport.prototype.type = \"Import\";\nImport.prototype.accept = function (visitor) {\n    if (this.features) {\n        this.features = visitor.visit(this.features);\n    }\n    this.path = visitor.visit(this.path);\n    if (!this.options.plugin && !this.options.inline && this.root) {\n        this.root = visitor.visit(this.root);\n    }\n};\nImport.prototype.genCSS = function (context, output) {\n    if (this.css && this.path.currentFileInfo.reference === undefined) {\n        output.add(\"@import \", this.currentFileInfo, this.index);\n        this.path.genCSS(context, output);\n        if (this.features) {\n            output.add(\" \");\n            this.features.genCSS(context, output);\n        }\n        output.add(';');\n    }\n};\nImport.prototype.getPath = function () {\n    return (this.path instanceof URL) ?\n        this.path.value.value : this.path.value;\n};\nImport.prototype.isVariableImport = function () {\n    var path = this.path;\n    if (path instanceof URL) {\n        path = path.value;\n    }\n    if (path instanceof Quoted) {\n        return path.containsVariables();\n    }\n\n    return true;\n};\nImport.prototype.evalForImport = function (context) {\n    var path = this.path;\n\n    if (path instanceof URL) {\n        path = path.value;\n    }\n\n    return new Import(path.eval(context), this.features, this.options, this.index, this.currentFileInfo);\n};\nImport.prototype.evalPath = function (context) {\n    var path = this.path.eval(context);\n    var rootpath = this.currentFileInfo && this.currentFileInfo.rootpath;\n\n    if (!(path instanceof URL)) {\n        if (rootpath) {\n            var pathValue = path.value;\n            // Add the base path if the import is relative\n            if (pathValue && context.isPathRelative(pathValue)) {\n                path.value = rootpath + pathValue;\n            }\n        }\n        path.value = context.normalizePath(path.value);\n    }\n\n    return path;\n};\nImport.prototype.eval = function (context) {\n    var ruleset, registry,\n        features = this.features && this.features.eval(context);\n\n    if (this.options.plugin) {\n        registry = context.frames[0] && context.frames[0].functionRegistry;\n        if ( registry && this.root && this.root.functions ) {\n            registry.addMultiple( this.root.functions );\n        }\n        return [];\n    }\n\n    if (this.skip) {\n        if (typeof this.skip === \"function\") {\n            this.skip = this.skip();\n        }\n        if (this.skip) {\n            return [];\n        }\n    }\n\n    if (this.options.inline) {\n        var contents = new Anonymous(this.root, 0, {filename: this.importedFilename}, true, true);\n        return this.features ? new Media([contents], this.features.value) : [contents];\n    } else if (this.css) {\n        var newImport = new Import(this.evalPath(context), features, this.options, this.index);\n        if (!newImport.css && this.error) {\n            throw this.error;\n        }\n        return newImport;\n    } else {\n        ruleset = new Ruleset(null, this.root.rules.slice(0));\n\n        ruleset.evalImports(context);\n\n        return this.features ? new Media(ruleset.rules, this.features.value) : ruleset.rules;\n    }\n};\nmodule.exports = Import;\n\n},{\"./anonymous\":44,\"./media\":64,\"./node\":68,\"./quoted\":71,\"./ruleset\":74,\"./url\":78}],60:[function(require,module,exports){\nvar tree = {};\n\ntree.Node = require('./node');\ntree.Alpha = require('./alpha');\ntree.Color = require('./color');\ntree.Directive = require('./directive');\ntree.DetachedRuleset = require('./detached-ruleset');\ntree.Operation = require('./operation');\ntree.Dimension = require('./dimension');\ntree.Unit = require('./unit');\ntree.Keyword = require('./keyword');\ntree.Variable = require('./variable');\ntree.Ruleset = require('./ruleset');\ntree.Element = require('./element');\ntree.Attribute = require('./attribute');\ntree.Combinator = require('./combinator');\ntree.Selector = require('./selector');\ntree.Quoted = require('./quoted');\ntree.Expression = require('./expression');\ntree.Rule = require('./rule');\ntree.Call = require('./call');\ntree.URL = require('./url');\ntree.Import = require('./import');\ntree.mixin = {\n    Call: require('./mixin-call'),\n    Definition: require('./mixin-definition')\n};\ntree.Comment = require('./comment');\ntree.Anonymous = require('./anonymous');\ntree.Value = require('./value');\ntree.JavaScript = require('./javascript');\ntree.Assignment = require('./assignment');\ntree.Condition = require('./condition');\ntree.Paren = require('./paren');\ntree.Media = require('./media');\ntree.UnicodeDescriptor = require('./unicode-descriptor');\ntree.Negative = require('./negative');\ntree.Extend = require('./extend');\ntree.RulesetCall = require('./ruleset-call');\n\nmodule.exports = tree;\n\n},{\"./alpha\":43,\"./anonymous\":44,\"./assignment\":45,\"./attribute\":46,\"./call\":47,\"./color\":48,\"./combinator\":49,\"./comment\":50,\"./condition\":51,\"./detached-ruleset\":53,\"./dimension\":54,\"./directive\":55,\"./element\":56,\"./expression\":57,\"./extend\":58,\"./import\":59,\"./javascript\":61,\"./keyword\":63,\"./media\":64,\"./mixin-call\":65,\"./mixin-definition\":66,\"./negative\":67,\"./node\":68,\"./operation\":69,\"./paren\":70,\"./quoted\":71,\"./rule\":72,\"./ruleset\":74,\"./ruleset-call\":73,\"./selector\":75,\"./unicode-descriptor\":76,\"./unit\":77,\"./url\":78,\"./value\":79,\"./variable\":80}],61:[function(require,module,exports){\nvar JsEvalNode = require(\"./js-eval-node\"),\n    Dimension = require(\"./dimension\"),\n    Quoted = require(\"./quoted\"),\n    Anonymous = require(\"./anonymous\");\n\nvar JavaScript = function (string, escaped, index, currentFileInfo) {\n    this.escaped = escaped;\n    this.expression = string;\n    this.index = index;\n    this.currentFileInfo = currentFileInfo;\n};\nJavaScript.prototype = new JsEvalNode();\nJavaScript.prototype.type = \"JavaScript\";\nJavaScript.prototype.eval = function(context) {\n    var result = this.evaluateJavaScript(this.expression, context);\n\n    if (typeof result === 'number') {\n        return new Dimension(result);\n    } else if (typeof result === 'string') {\n        return new Quoted('\"' + result + '\"', result, this.escaped, this.index);\n    } else if (Array.isArray(result)) {\n        return new Anonymous(result.join(', '));\n    } else {\n        return new Anonymous(result);\n    }\n};\n\nmodule.exports = JavaScript;\n\n},{\"./anonymous\":44,\"./dimension\":54,\"./js-eval-node\":62,\"./quoted\":71}],62:[function(require,module,exports){\nvar Node = require(\"./node\"),\n    Variable = require(\"./variable\");\n\nvar JsEvalNode = function() {\n};\nJsEvalNode.prototype = new Node();\n\nJsEvalNode.prototype.evaluateJavaScript = function (expression, context) {\n    var result,\n        that = this,\n        evalContext = {};\n\n    if (context.javascriptEnabled !== undefined && !context.javascriptEnabled) {\n        throw { message: \"You are using JavaScript, which has been disabled.\",\n            filename: this.currentFileInfo.filename,\n            index: this.index };\n    }\n\n    expression = expression.replace(/@\\{([\\w-]+)\\}/g, function (_, name) {\n        return that.jsify(new Variable('@' + name, that.index, that.currentFileInfo).eval(context));\n    });\n\n    try {\n        expression = new Function('return (' + expression + ')');\n    } catch (e) {\n        throw { message: \"JavaScript evaluation error: \" + e.message + \" from `\" + expression + \"`\" ,\n            filename: this.currentFileInfo.filename,\n            index: this.index };\n    }\n\n    var variables = context.frames[0].variables();\n    for (var k in variables) {\n        if (variables.hasOwnProperty(k)) {\n            /*jshint loopfunc:true */\n            evalContext[k.slice(1)] = {\n                value: variables[k].value,\n                toJS: function () {\n                    return this.value.eval(context).toCSS();\n                }\n            };\n        }\n    }\n\n    try {\n        result = expression.call(evalContext);\n    } catch (e) {\n        throw { message: \"JavaScript evaluation error: '\" + e.name + ': ' + e.message.replace(/[\"]/g, \"'\") + \"'\" ,\n            filename: this.currentFileInfo.filename,\n            index: this.index };\n    }\n    return result;\n};\nJsEvalNode.prototype.jsify = function (obj) {\n    if (Array.isArray(obj.value) && (obj.value.length > 1)) {\n        return '[' + obj.value.map(function (v) { return v.toCSS(); }).join(', ') + ']';\n    } else {\n        return obj.toCSS();\n    }\n};\n\nmodule.exports = JsEvalNode;\n\n},{\"./node\":68,\"./variable\":80}],63:[function(require,module,exports){\nvar Node = require(\"./node\");\n\nvar Keyword = function (value) { this.value = value; };\nKeyword.prototype = new Node();\nKeyword.prototype.type = \"Keyword\";\nKeyword.prototype.genCSS = function (context, output) {\n    if (this.value === '%') { throw { type: \"Syntax\", message: \"Invalid % without number\" }; }\n    output.add(this.value);\n};\n\nKeyword.True = new Keyword('true');\nKeyword.False = new Keyword('false');\n\nmodule.exports = Keyword;\n\n},{\"./node\":68}],64:[function(require,module,exports){\nvar Ruleset = require(\"./ruleset\"),\n    Value = require(\"./value\"),\n    Selector = require(\"./selector\"),\n    Anonymous = require(\"./anonymous\"),\n    Expression = require(\"./expression\"),\n    Directive = require(\"./directive\");\n\nvar Media = function (value, features, index, currentFileInfo) {\n    this.index = index;\n    this.currentFileInfo = currentFileInfo;\n\n    var selectors = (new Selector([], null, null, this.index, this.currentFileInfo)).createEmptySelectors();\n\n    this.features = new Value(features);\n    this.rules = [new Ruleset(selectors, value)];\n    this.rules[0].allowImports = true;\n};\nMedia.prototype = new Directive();\nMedia.prototype.type = \"Media\";\nMedia.prototype.isRulesetLike = true;\nMedia.prototype.accept = function (visitor) {\n    if (this.features) {\n        this.features = visitor.visit(this.features);\n    }\n    if (this.rules) {\n        this.rules = visitor.visitArray(this.rules);\n    }\n};\nMedia.prototype.genCSS = function (context, output) {\n    output.add('@media ', this.currentFileInfo, this.index);\n    this.features.genCSS(context, output);\n    this.outputRuleset(context, output, this.rules);\n};\nMedia.prototype.eval = function (context) {\n    if (!context.mediaBlocks) {\n        context.mediaBlocks = [];\n        context.mediaPath = [];\n    }\n\n    var media = new Media(null, [], this.index, this.currentFileInfo);\n    if (this.debugInfo) {\n        this.rules[0].debugInfo = this.debugInfo;\n        media.debugInfo = this.debugInfo;\n    }\n    var strictMathBypass = false;\n    if (!context.strictMath) {\n        strictMathBypass = true;\n        context.strictMath = true;\n    }\n    try {\n        media.features = this.features.eval(context);\n    }\n    finally {\n        if (strictMathBypass) {\n            context.strictMath = false;\n        }\n    }\n\n    context.mediaPath.push(media);\n    context.mediaBlocks.push(media);\n\n    this.rules[0].functionRegistry = context.frames[0].functionRegistry.inherit();\n    context.frames.unshift(this.rules[0]);\n    media.rules = [this.rules[0].eval(context)];\n    context.frames.shift();\n\n    context.mediaPath.pop();\n\n    return context.mediaPath.length === 0 ? media.evalTop(context) :\n                media.evalNested(context);\n};\nMedia.prototype.evalTop = function (context) {\n    var result = this;\n\n    // Render all dependent Media blocks.\n    if (context.mediaBlocks.length > 1) {\n        var selectors = (new Selector([], null, null, this.index, this.currentFileInfo)).createEmptySelectors();\n        result = new Ruleset(selectors, context.mediaBlocks);\n        result.multiMedia = true;\n    }\n\n    delete context.mediaBlocks;\n    delete context.mediaPath;\n\n    return result;\n};\nMedia.prototype.evalNested = function (context) {\n    var i, value,\n        path = context.mediaPath.concat([this]);\n\n    // Extract the media-query conditions separated with `,` (OR).\n    for (i = 0; i < path.length; i++) {\n        value = path[i].features instanceof Value ?\n                    path[i].features.value : path[i].features;\n        path[i] = Array.isArray(value) ? value : [value];\n    }\n\n    // Trace all permutations to generate the resulting media-query.\n    //\n    // (a, b and c) with nested (d, e) ->\n    //    a and d\n    //    a and e\n    //    b and c and d\n    //    b and c and e\n    this.features = new Value(this.permute(path).map(function (path) {\n        path = path.map(function (fragment) {\n            return fragment.toCSS ? fragment : new Anonymous(fragment);\n        });\n\n        for (i = path.length - 1; i > 0; i--) {\n            path.splice(i, 0, new Anonymous(\"and\"));\n        }\n\n        return new Expression(path);\n    }));\n\n    // Fake a tree-node that doesn't output anything.\n    return new Ruleset([], []);\n};\nMedia.prototype.permute = function (arr) {\n    if (arr.length === 0) {\n        return [];\n    } else if (arr.length === 1) {\n        return arr[0];\n    } else {\n        var result = [];\n        var rest = this.permute(arr.slice(1));\n        for (var i = 0; i < rest.length; i++) {\n            for (var j = 0; j < arr[0].length; j++) {\n                result.push([arr[0][j]].concat(rest[i]));\n            }\n        }\n        return result;\n    }\n};\nMedia.prototype.bubbleSelectors = function (selectors) {\n    if (!selectors) {\n        return;\n    }\n    this.rules = [new Ruleset(selectors.slice(0), [this.rules[0]])];\n};\nmodule.exports = Media;\n\n},{\"./anonymous\":44,\"./directive\":55,\"./expression\":57,\"./ruleset\":74,\"./selector\":75,\"./value\":79}],65:[function(require,module,exports){\nvar Node = require(\"./node\"),\n    Selector = require(\"./selector\"),\n    MixinDefinition = require(\"./mixin-definition\"),\n    defaultFunc = require(\"../functions/default\");\n\nvar MixinCall = function (elements, args, index, currentFileInfo, important) {\n    this.selector = new Selector(elements);\n    this.arguments = (args && args.length) ? args : null;\n    this.index = index;\n    this.currentFileInfo = currentFileInfo;\n    this.important = important;\n};\nMixinCall.prototype = new Node();\nMixinCall.prototype.type = \"MixinCall\";\nMixinCall.prototype.accept = function (visitor) {\n    if (this.selector) {\n        this.selector = visitor.visit(this.selector);\n    }\n    if (this.arguments) {\n        this.arguments = visitor.visitArray(this.arguments);\n    }\n};\nMixinCall.prototype.eval = function (context) {\n    var mixins, mixin, mixinPath, args, rules = [], match = false, i, m, f, isRecursive, isOneFound, rule,\n        candidates = [], candidate, conditionResult = [], defaultResult, defFalseEitherCase = -1,\n        defNone = 0, defTrue = 1, defFalse = 2, count, originalRuleset, noArgumentsFilter;\n\n    function calcDefGroup(mixin, mixinPath) {\n        var p, namespace;\n\n        for (f = 0; f < 2; f++) {\n            conditionResult[f] = true;\n            defaultFunc.value(f);\n            for (p = 0; p < mixinPath.length && conditionResult[f]; p++) {\n                namespace = mixinPath[p];\n                if (namespace.matchCondition) {\n                    conditionResult[f] = conditionResult[f] && namespace.matchCondition(null, context);\n                }\n            }\n            if (mixin.matchCondition) {\n                conditionResult[f] = conditionResult[f] && mixin.matchCondition(args, context);\n            }\n        }\n        if (conditionResult[0] || conditionResult[1]) {\n            if (conditionResult[0] != conditionResult[1]) {\n                return conditionResult[1] ?\n                    defTrue : defFalse;\n            }\n\n            return defNone;\n        }\n        return defFalseEitherCase;\n    }\n\n    args = this.arguments && this.arguments.map(function (a) {\n        return { name: a.name, value: a.value.eval(context) };\n    });\n\n    noArgumentsFilter = function(rule) {return rule.matchArgs(null, context);};\n\n    for (i = 0; i < context.frames.length; i++) {\n        if ((mixins = context.frames[i].find(this.selector, null, noArgumentsFilter)).length > 0) {\n            isOneFound = true;\n\n            // To make `default()` function independent of definition order we have two \"subpasses\" here.\n            // At first we evaluate each guard *twice* (with `default() == true` and `default() == false`),\n            // and build candidate list with corresponding flags. Then, when we know all possible matches,\n            // we make a final decision.\n\n            for (m = 0; m < mixins.length; m++) {\n                mixin = mixins[m].rule;\n                mixinPath = mixins[m].path;\n                isRecursive = false;\n                for (f = 0; f < context.frames.length; f++) {\n                    if ((!(mixin instanceof MixinDefinition)) && mixin === (context.frames[f].originalRuleset || context.frames[f])) {\n                        isRecursive = true;\n                        break;\n                    }\n                }\n                if (isRecursive) {\n                    continue;\n                }\n\n                if (mixin.matchArgs(args, context)) {\n                    candidate = {mixin: mixin, group: calcDefGroup(mixin, mixinPath)};\n\n                    if (candidate.group !== defFalseEitherCase) {\n                        candidates.push(candidate);\n                    }\n\n                    match = true;\n                }\n            }\n\n            defaultFunc.reset();\n\n            count = [0, 0, 0];\n            for (m = 0; m < candidates.length; m++) {\n                count[candidates[m].group]++;\n            }\n\n            if (count[defNone] > 0) {\n                defaultResult = defFalse;\n            } else {\n                defaultResult = defTrue;\n                if ((count[defTrue] + count[defFalse]) > 1) {\n                    throw { type: 'Runtime',\n                        message: 'Ambiguous use of `default()` found when matching for `' + this.format(args) + '`',\n                        index: this.index, filename: this.currentFileInfo.filename };\n                }\n            }\n\n            for (m = 0; m < candidates.length; m++) {\n                candidate = candidates[m].group;\n                if ((candidate === defNone) || (candidate === defaultResult)) {\n                    try {\n                        mixin = candidates[m].mixin;\n                        if (!(mixin instanceof MixinDefinition)) {\n                            originalRuleset = mixin.originalRuleset || mixin;\n                            mixin = new MixinDefinition(\"\", [], mixin.rules, null, false);\n                            mixin.originalRuleset = originalRuleset;\n                        }\n                        Array.prototype.push.apply(\n                            rules, mixin.evalCall(context, args, this.important).rules);\n                    } catch (e) {\n                        throw { message: e.message, index: this.index, filename: this.currentFileInfo.filename, stack: e.stack };\n                    }\n                }\n            }\n\n            if (match) {\n                if (!this.currentFileInfo || !this.currentFileInfo.reference) {\n                    for (i = 0; i < rules.length; i++) {\n                        rule = rules[i];\n                        if (rule.markReferenced) {\n                            rule.markReferenced();\n                        }\n                    }\n                }\n                return rules;\n            }\n        }\n    }\n    if (isOneFound) {\n        throw { type:    'Runtime',\n            message: 'No matching definition was found for `' + this.format(args) + '`',\n            index:   this.index, filename: this.currentFileInfo.filename };\n    } else {\n        throw { type:    'Name',\n            message: this.selector.toCSS().trim() + \" is undefined\",\n            index:   this.index, filename: this.currentFileInfo.filename };\n    }\n};\nMixinCall.prototype.format = function (args) {\n    return this.selector.toCSS().trim() + '(' +\n        (args ? args.map(function (a) {\n            var argValue = \"\";\n            if (a.name) {\n                argValue += a.name + \":\";\n            }\n            if (a.value.toCSS) {\n                argValue += a.value.toCSS();\n            } else {\n                argValue += \"???\";\n            }\n            return argValue;\n        }).join(', ') : \"\") + \")\";\n};\nmodule.exports = MixinCall;\n\n},{\"../functions/default\":19,\"./mixin-definition\":66,\"./node\":68,\"./selector\":75}],66:[function(require,module,exports){\nvar Selector = require(\"./selector\"),\n    Element = require(\"./element\"),\n    Ruleset = require(\"./ruleset\"),\n    Rule = require(\"./rule\"),\n    Expression = require(\"./expression\"),\n    contexts = require(\"../contexts\");\n\nvar Definition = function (name, params, rules, condition, variadic, frames) {\n    this.name = name;\n    this.selectors = [new Selector([new Element(null, name, this.index, this.currentFileInfo)])];\n    this.params = params;\n    this.condition = condition;\n    this.variadic = variadic;\n    this.arity = params.length;\n    this.rules = rules;\n    this._lookups = {};\n    this.required = params.reduce(function (count, p) {\n        if (!p.name || (p.name && !p.value)) {\n            return count + 1;\n        }\n        else {\n            return count;\n        }\n    }, 0);\n    this.frames = frames;\n};\nDefinition.prototype = new Ruleset();\nDefinition.prototype.type = \"MixinDefinition\";\nDefinition.prototype.evalFirst = true;\nDefinition.prototype.accept = function (visitor) {\n    if (this.params && this.params.length) {\n        this.params = visitor.visitArray(this.params);\n    }\n    this.rules = visitor.visitArray(this.rules);\n    if (this.condition) {\n        this.condition = visitor.visit(this.condition);\n    }\n};\nDefinition.prototype.evalParams = function (context, mixinEnv, args, evaldArguments) {\n    /*jshint boss:true */\n    var frame = new Ruleset(null, null),\n        varargs, arg,\n        params = this.params.slice(0),\n        i, j, val, name, isNamedFound, argIndex, argsLength = 0;\n\n    if (mixinEnv.frames && mixinEnv.frames[0] && mixinEnv.frames[0].functionRegistry) {\n        frame.functionRegistry = mixinEnv.frames[0].functionRegistry.inherit();\n    }\n    mixinEnv = new contexts.Eval(mixinEnv, [frame].concat(mixinEnv.frames));\n\n    if (args) {\n        args = args.slice(0);\n        argsLength = args.length;\n\n        for (i = 0; i < argsLength; i++) {\n            arg = args[i];\n            if (name = (arg && arg.name)) {\n                isNamedFound = false;\n                for (j = 0; j < params.length; j++) {\n                    if (!evaldArguments[j] && name === params[j].name) {\n                        evaldArguments[j] = arg.value.eval(context);\n                        frame.prependRule(new Rule(name, arg.value.eval(context)));\n                        isNamedFound = true;\n                        break;\n                    }\n                }\n                if (isNamedFound) {\n                    args.splice(i, 1);\n                    i--;\n                    continue;\n                } else {\n                    throw { type: 'Runtime', message: \"Named argument for \" + this.name +\n                        ' ' + args[i].name + ' not found' };\n                }\n            }\n        }\n    }\n    argIndex = 0;\n    for (i = 0; i < params.length; i++) {\n        if (evaldArguments[i]) { continue; }\n\n        arg = args && args[argIndex];\n\n        if (name = params[i].name) {\n            if (params[i].variadic) {\n                varargs = [];\n                for (j = argIndex; j < argsLength; j++) {\n                    varargs.push(args[j].value.eval(context));\n                }\n                frame.prependRule(new Rule(name, new Expression(varargs).eval(context)));\n            } else {\n                val = arg && arg.value;\n                if (val) {\n                    val = val.eval(context);\n                } else if (params[i].value) {\n                    val = params[i].value.eval(mixinEnv);\n                    frame.resetCache();\n                } else {\n                    throw { type: 'Runtime', message: \"wrong number of arguments for \" + this.name +\n                        ' (' + argsLength + ' for ' + this.arity + ')' };\n                }\n\n                frame.prependRule(new Rule(name, val));\n                evaldArguments[i] = val;\n            }\n        }\n\n        if (params[i].variadic && args) {\n            for (j = argIndex; j < argsLength; j++) {\n                evaldArguments[j] = args[j].value.eval(context);\n            }\n        }\n        argIndex++;\n    }\n\n    return frame;\n};\nDefinition.prototype.makeImportant = function() {\n    var rules = !this.rules ? this.rules : this.rules.map(function (r) {\n        if (r.makeImportant) {\n            return r.makeImportant(true);\n        } else {\n            return r;\n        }\n    });\n    var result = new Definition (this.name, this.params, rules, this.condition, this.variadic, this.frames);\n    return result;\n};\nDefinition.prototype.eval = function (context) {\n    return new Definition(this.name, this.params, this.rules, this.condition, this.variadic, this.frames || context.frames.slice(0));\n};\nDefinition.prototype.evalCall = function (context, args, important) {\n    var _arguments = [],\n        mixinFrames = this.frames ? this.frames.concat(context.frames) : context.frames,\n        frame = this.evalParams(context, new contexts.Eval(context, mixinFrames), args, _arguments),\n        rules, ruleset;\n\n    frame.prependRule(new Rule('@arguments', new Expression(_arguments).eval(context)));\n\n    rules = this.rules.slice(0);\n\n    ruleset = new Ruleset(null, rules);\n    ruleset.originalRuleset = this;\n    ruleset = ruleset.eval(new contexts.Eval(context, [this, frame].concat(mixinFrames)));\n    if (important) {\n        ruleset = ruleset.makeImportant();\n    }\n    return ruleset;\n};\nDefinition.prototype.matchCondition = function (args, context) {\n    if (this.condition && !this.condition.eval(\n        new contexts.Eval(context,\n            [this.evalParams(context, /* the parameter variables*/\n                new contexts.Eval(context, this.frames ? this.frames.concat(context.frames) : context.frames), args, [])]\n            .concat(this.frames || []) // the parent namespace/mixin frames\n            .concat(context.frames)))) { // the current environment frames\n        return false;\n    }\n    return true;\n};\nDefinition.prototype.matchArgs = function (args, context) {\n    var argsLength = (args && args.length) || 0, len;\n\n    if (! this.variadic) {\n        if (argsLength < this.required) {\n            return false;\n        }\n        if (argsLength > this.params.length) {\n            return false;\n        }\n    } else {\n        if (argsLength < (this.required - 1)) {\n            return false;\n        }\n    }\n\n    len = Math.min(argsLength, this.arity);\n\n    for (var i = 0; i < len; i++) {\n        if (!this.params[i].name && !this.params[i].variadic) {\n            if (args[i].value.eval(context).toCSS() != this.params[i].value.eval(context).toCSS()) {\n                return false;\n            }\n        }\n    }\n    return true;\n};\nmodule.exports = Definition;\n\n},{\"../contexts\":10,\"./element\":56,\"./expression\":57,\"./rule\":72,\"./ruleset\":74,\"./selector\":75}],67:[function(require,module,exports){\nvar Node = require(\"./node\"),\n    Operation = require(\"./operation\"),\n    Dimension = require(\"./dimension\");\n\nvar Negative = function (node) {\n    this.value = node;\n};\nNegative.prototype = new Node();\nNegative.prototype.type = \"Negative\";\nNegative.prototype.genCSS = function (context, output) {\n    output.add('-');\n    this.value.genCSS(context, output);\n};\nNegative.prototype.eval = function (context) {\n    if (context.isMathOn()) {\n        return (new Operation('*', [new Dimension(-1), this.value])).eval(context);\n    }\n    return new Negative(this.value.eval(context));\n};\nmodule.exports = Negative;\n\n},{\"./dimension\":54,\"./node\":68,\"./operation\":69}],68:[function(require,module,exports){\nvar Node = function() {\n};\nNode.prototype.toCSS = function (context) {\n    var strs = [];\n    this.genCSS(context, {\n        add: function(chunk, fileInfo, index) {\n            strs.push(chunk);\n        },\n        isEmpty: function () {\n            return strs.length === 0;\n        }\n    });\n    return strs.join('');\n};\nNode.prototype.genCSS = function (context, output) {\n    output.add(this.value);\n};\nNode.prototype.accept = function (visitor) {\n    this.value = visitor.visit(this.value);\n};\nNode.prototype.eval = function () { return this; };\nNode.prototype._operate = function (context, op, a, b) {\n    switch (op) {\n        case '+': return a + b;\n        case '-': return a - b;\n        case '*': return a * b;\n        case '/': return a / b;\n    }\n};\nNode.prototype.fround = function(context, value) {\n    var precision = context && context.numPrecision;\n    //add \"epsilon\" to ensure numbers like 1.000000005 (represented as 1.000000004999....) are properly rounded...\n    return (precision == null) ? value : Number((value + 2e-16).toFixed(precision));\n};\nNode.compare = function (a, b) {\n    /* returns:\n     -1: a < b\n     0: a = b\n     1: a > b\n     and *any* other value for a != b (e.g. undefined, NaN, -2 etc.) */\n\n    if ((a.compare) &&\n        // for \"symmetric results\" force toCSS-based comparison\n        // of Quoted or Anonymous if either value is one of those\n        !(b.type === \"Quoted\" || b.type === \"Anonymous\")) {\n        return a.compare(b);\n    } else if (b.compare) {\n        return -b.compare(a);\n    } else if (a.type !== b.type) {\n        return undefined;\n    }\n\n    a = a.value;\n    b = b.value;\n    if (!Array.isArray(a)) {\n        return a === b ? 0 : undefined;\n    }\n    if (a.length !== b.length) {\n        return undefined;\n    }\n    for (var i = 0; i < a.length; i++) {\n        if (Node.compare(a[i], b[i]) !== 0) {\n            return undefined;\n        }\n    }\n    return 0;\n};\n\nNode.numericCompare = function (a, b) {\n    return a  <  b ? -1\n        : a === b ?  0\n        : a  >  b ?  1 : undefined;\n};\nmodule.exports = Node;\n\n},{}],69:[function(require,module,exports){\nvar Node = require(\"./node\"),\n    Color = require(\"./color\"),\n    Dimension = require(\"./dimension\");\n\nvar Operation = function (op, operands, isSpaced) {\n    this.op = op.trim();\n    this.operands = operands;\n    this.isSpaced = isSpaced;\n};\nOperation.prototype = new Node();\nOperation.prototype.type = \"Operation\";\nOperation.prototype.accept = function (visitor) {\n    this.operands = visitor.visit(this.operands);\n};\nOperation.prototype.eval = function (context) {\n    var a = this.operands[0].eval(context),\n        b = this.operands[1].eval(context);\n\n    if (context.isMathOn()) {\n        if (a instanceof Dimension && b instanceof Color) {\n            a = a.toColor();\n        }\n        if (b instanceof Dimension && a instanceof Color) {\n            b = b.toColor();\n        }\n        if (!a.operate) {\n            throw { type: \"Operation\",\n                    message: \"Operation on an invalid type\" };\n        }\n\n        return a.operate(context, this.op, b);\n    } else {\n        return new Operation(this.op, [a, b], this.isSpaced);\n    }\n};\nOperation.prototype.genCSS = function (context, output) {\n    this.operands[0].genCSS(context, output);\n    if (this.isSpaced) {\n        output.add(\" \");\n    }\n    output.add(this.op);\n    if (this.isSpaced) {\n        output.add(\" \");\n    }\n    this.operands[1].genCSS(context, output);\n};\n\nmodule.exports = Operation;\n\n},{\"./color\":48,\"./dimension\":54,\"./node\":68}],70:[function(require,module,exports){\nvar Node = require(\"./node\");\n\nvar Paren = function (node) {\n    this.value = node;\n};\nParen.prototype = new Node();\nParen.prototype.type = \"Paren\";\nParen.prototype.genCSS = function (context, output) {\n    output.add('(');\n    this.value.genCSS(context, output);\n    output.add(')');\n};\nParen.prototype.eval = function (context) {\n    return new Paren(this.value.eval(context));\n};\nmodule.exports = Paren;\n\n},{\"./node\":68}],71:[function(require,module,exports){\nvar Node = require(\"./node\"),\n    JsEvalNode = require(\"./js-eval-node\"),\n    Variable = require(\"./variable\");\n\nvar Quoted = function (str, content, escaped, index, currentFileInfo) {\n    this.escaped = (escaped == null) ? true : escaped;\n    this.value = content || '';\n    this.quote = str.charAt(0);\n    this.index = index;\n    this.currentFileInfo = currentFileInfo;\n};\nQuoted.prototype = new JsEvalNode();\nQuoted.prototype.type = \"Quoted\";\nQuoted.prototype.genCSS = function (context, output) {\n    if (!this.escaped) {\n        output.add(this.quote, this.currentFileInfo, this.index);\n    }\n    output.add(this.value);\n    if (!this.escaped) {\n        output.add(this.quote);\n    }\n};\nQuoted.prototype.containsVariables = function() {\n    return this.value.match(/(`([^`]+)`)|@\\{([\\w-]+)\\}/);\n};\nQuoted.prototype.eval = function (context) {\n    var that = this, value = this.value;\n    var javascriptReplacement = function (_, exp) {\n        return String(that.evaluateJavaScript(exp, context));\n    };\n    var interpolationReplacement = function (_, name) {\n        var v = new Variable('@' + name, that.index, that.currentFileInfo).eval(context, true);\n        return (v instanceof Quoted) ? v.value : v.toCSS();\n    };\n    function iterativeReplace(value, regexp, replacementFnc) {\n        var evaluatedValue = value;\n        do {\n            value = evaluatedValue;\n            evaluatedValue = value.replace(regexp, replacementFnc);\n        } while (value !== evaluatedValue);\n        return evaluatedValue;\n    }\n    value = iterativeReplace(value, /`([^`]+)`/g, javascriptReplacement);\n    value = iterativeReplace(value, /@\\{([\\w-]+)\\}/g, interpolationReplacement);\n    return new Quoted(this.quote + value + this.quote, value, this.escaped, this.index, this.currentFileInfo);\n};\nQuoted.prototype.compare = function (other) {\n    // when comparing quoted strings allow the quote to differ\n    if (other.type === \"Quoted\" && !this.escaped && !other.escaped) {\n        return Node.numericCompare(this.value, other.value);\n    } else {\n        return other.toCSS && this.toCSS() === other.toCSS() ? 0 : undefined;\n    }\n};\nmodule.exports = Quoted;\n\n},{\"./js-eval-node\":62,\"./node\":68,\"./variable\":80}],72:[function(require,module,exports){\nvar Node = require(\"./node\"),\n    Value = require(\"./value\"),\n    Keyword = require(\"./keyword\");\n\nvar Rule = function (name, value, important, merge, index, currentFileInfo, inline, variable) {\n    this.name = name;\n    this.value = (value instanceof Node) ? value : new Value([value]); //value instanceof tree.Value || value instanceof tree.Ruleset ??\n    this.important = important ? ' ' + important.trim() : '';\n    this.merge = merge;\n    this.index = index;\n    this.currentFileInfo = currentFileInfo;\n    this.inline = inline || false;\n    this.variable = (variable !== undefined) ? variable\n        : (name.charAt && (name.charAt(0) === '@'));\n};\n\nfunction evalName(context, name) {\n    var value = \"\", i, n = name.length,\n        output = {add: function (s) {value += s;}};\n    for (i = 0; i < n; i++) {\n        name[i].eval(context).genCSS(context, output);\n    }\n    return value;\n}\n\nRule.prototype = new Node();\nRule.prototype.type = \"Rule\";\nRule.prototype.genCSS = function (context, output) {\n    output.add(this.name + (context.compress ? ':' : ': '), this.currentFileInfo, this.index);\n    try {\n        this.value.genCSS(context, output);\n    }\n    catch(e) {\n        e.index = this.index;\n        e.filename = this.currentFileInfo.filename;\n        throw e;\n    }\n    output.add(this.important + ((this.inline || (context.lastRule && context.compress)) ? \"\" : \";\"), this.currentFileInfo, this.index);\n};\nRule.prototype.eval = function (context) {\n    var strictMathBypass = false, name = this.name, evaldValue, variable = this.variable;\n    if (typeof name !== \"string\") {\n        // expand 'primitive' name directly to get\n        // things faster (~10% for benchmark.less):\n        name = (name.length === 1) && (name[0] instanceof Keyword) ?\n                name[0].value : evalName(context, name);\n        variable = false; // never treat expanded interpolation as new variable name\n    }\n    if (name === \"font\" && !context.strictMath) {\n        strictMathBypass = true;\n        context.strictMath = true;\n    }\n    try {\n        context.importantScope.push({});\n        evaldValue = this.value.eval(context);\n\n        if (!this.variable && evaldValue.type === \"DetachedRuleset\") {\n            throw { message: \"Rulesets cannot be evaluated on a property.\",\n                    index: this.index, filename: this.currentFileInfo.filename };\n        }\n        var important = this.important,\n            importantResult = context.importantScope.pop();\n        if (!important && importantResult.important) {\n            important = importantResult.important;\n        }\n\n        return new Rule(name,\n                          evaldValue,\n                          important,\n                          this.merge,\n                          this.index, this.currentFileInfo, this.inline,\n                              variable);\n    }\n    catch(e) {\n        if (typeof e.index !== 'number') {\n            e.index = this.index;\n            e.filename = this.currentFileInfo.filename;\n        }\n        throw e;\n    }\n    finally {\n        if (strictMathBypass) {\n            context.strictMath = false;\n        }\n    }\n};\nRule.prototype.makeImportant = function () {\n    return new Rule(this.name,\n                          this.value,\n                          \"!important\",\n                          this.merge,\n                          this.index, this.currentFileInfo, this.inline);\n};\n\nmodule.exports = Rule;\n\n},{\"./keyword\":63,\"./node\":68,\"./value\":79}],73:[function(require,module,exports){\nvar Node = require(\"./node\"),\n    Variable = require(\"./variable\");\n\nvar RulesetCall = function (variable) {\n    this.variable = variable;\n};\nRulesetCall.prototype = new Node();\nRulesetCall.prototype.type = \"RulesetCall\";\nRulesetCall.prototype.eval = function (context) {\n    var detachedRuleset = new Variable(this.variable).eval(context);\n    return detachedRuleset.callEval(context);\n};\nmodule.exports = RulesetCall;\n\n},{\"./node\":68,\"./variable\":80}],74:[function(require,module,exports){\nvar Node = require(\"./node\"),\n    Rule = require(\"./rule\"),\n    Selector = require(\"./selector\"),\n    Element = require(\"./element\"),\n    Paren = require(\"./paren\"),\n    contexts = require(\"../contexts\"),\n    globalFunctionRegistry = require(\"../functions/function-registry\"),\n    defaultFunc = require(\"../functions/default\"),\n    getDebugInfo = require(\"./debug-info\");\n\nvar Ruleset = function (selectors, rules, strictImports) {\n    this.selectors = selectors;\n    this.rules = rules;\n    this._lookups = {};\n    this.strictImports = strictImports;\n};\nRuleset.prototype = new Node();\nRuleset.prototype.type = \"Ruleset\";\nRuleset.prototype.isRuleset = true;\nRuleset.prototype.isRulesetLike = true;\nRuleset.prototype.accept = function (visitor) {\n    if (this.paths) {\n        visitor.visitArray(this.paths, true);\n    } else if (this.selectors) {\n        this.selectors = visitor.visitArray(this.selectors);\n    }\n    if (this.rules && this.rules.length) {\n        this.rules = visitor.visitArray(this.rules);\n    }\n};\nRuleset.prototype.eval = function (context) {\n    var thisSelectors = this.selectors, selectors,\n        selCnt, selector, i, hasOnePassingSelector = false;\n\n    if (thisSelectors && (selCnt = thisSelectors.length)) {\n        selectors = [];\n        defaultFunc.error({\n            type: \"Syntax\",\n            message: \"it is currently only allowed in parametric mixin guards,\"\n        });\n        for (i = 0; i < selCnt; i++) {\n            selector = thisSelectors[i].eval(context);\n            selectors.push(selector);\n            if (selector.evaldCondition) {\n                hasOnePassingSelector = true;\n            }\n        }\n        defaultFunc.reset();\n    } else {\n        hasOnePassingSelector = true;\n    }\n\n    var rules = this.rules ? this.rules.slice(0) : null,\n        ruleset = new Ruleset(selectors, rules, this.strictImports),\n        rule, subRule;\n\n    ruleset.originalRuleset = this;\n    ruleset.root = this.root;\n    ruleset.firstRoot = this.firstRoot;\n    ruleset.allowImports = this.allowImports;\n\n    if (this.debugInfo) {\n        ruleset.debugInfo = this.debugInfo;\n    }\n\n    if (!hasOnePassingSelector) {\n        rules.length = 0;\n    }\n\n    // inherit a function registry from the frames stack when possible;\n    // otherwise from the global registry\n    ruleset.functionRegistry = (function (frames) {\n        var i = 0,\n            n = frames.length,\n            found;\n        for ( ; i !== n ; ++i ) {\n            found = frames[ i ].functionRegistry;\n            if ( found ) { return found; }\n        }\n        return globalFunctionRegistry;\n    }(context.frames)).inherit();\n\n    // push the current ruleset to the frames stack\n    var ctxFrames = context.frames;\n    ctxFrames.unshift(ruleset);\n\n    // currrent selectors\n    var ctxSelectors = context.selectors;\n    if (!ctxSelectors) {\n        context.selectors = ctxSelectors = [];\n    }\n    ctxSelectors.unshift(this.selectors);\n\n    // Evaluate imports\n    if (ruleset.root || ruleset.allowImports || !ruleset.strictImports) {\n        ruleset.evalImports(context);\n    }\n\n    // Store the frames around mixin definitions,\n    // so they can be evaluated like closures when the time comes.\n    var rsRules = ruleset.rules, rsRuleCnt = rsRules ? rsRules.length : 0;\n    for (i = 0; i < rsRuleCnt; i++) {\n        if (rsRules[i].evalFirst) {\n            rsRules[i] = rsRules[i].eval(context);\n        }\n    }\n\n    var mediaBlockCount = (context.mediaBlocks && context.mediaBlocks.length) || 0;\n\n    // Evaluate mixin calls.\n    for (i = 0; i < rsRuleCnt; i++) {\n        if (rsRules[i].type === \"MixinCall\") {\n            /*jshint loopfunc:true */\n            rules = rsRules[i].eval(context).filter(function(r) {\n                if ((r instanceof Rule) && r.variable) {\n                    // do not pollute the scope if the variable is\n                    // already there. consider returning false here\n                    // but we need a way to \"return\" variable from mixins\n                    return !(ruleset.variable(r.name));\n                }\n                return true;\n            });\n            rsRules.splice.apply(rsRules, [i, 1].concat(rules));\n            rsRuleCnt += rules.length - 1;\n            i += rules.length - 1;\n            ruleset.resetCache();\n        } else if (rsRules[i].type === \"RulesetCall\") {\n            /*jshint loopfunc:true */\n            rules = rsRules[i].eval(context).rules.filter(function(r) {\n                if ((r instanceof Rule) && r.variable) {\n                    // do not pollute the scope at all\n                    return false;\n                }\n                return true;\n            });\n            rsRules.splice.apply(rsRules, [i, 1].concat(rules));\n            rsRuleCnt += rules.length - 1;\n            i += rules.length - 1;\n            ruleset.resetCache();\n        }\n    }\n\n    // Evaluate everything else\n    for (i = 0; i < rsRules.length; i++) {\n        rule = rsRules[i];\n        if (!rule.evalFirst) {\n            rsRules[i] = rule = rule.eval ? rule.eval(context) : rule;\n        }\n    }\n\n    // Evaluate everything else\n    for (i = 0; i < rsRules.length; i++) {\n        rule = rsRules[i];\n        // for rulesets, check if it is a css guard and can be removed\n        if (rule instanceof Ruleset && rule.selectors && rule.selectors.length === 1) {\n            // check if it can be folded in (e.g. & where)\n            if (rule.selectors[0].isJustParentSelector()) {\n                rsRules.splice(i--, 1);\n\n                for (var j = 0; j < rule.rules.length; j++) {\n                    subRule = rule.rules[j];\n                    if (!(subRule instanceof Rule) || !subRule.variable) {\n                        rsRules.splice(++i, 0, subRule);\n                    }\n                }\n            }\n        }\n    }\n\n    // Pop the stack\n    ctxFrames.shift();\n    ctxSelectors.shift();\n\n    if (context.mediaBlocks) {\n        for (i = mediaBlockCount; i < context.mediaBlocks.length; i++) {\n            context.mediaBlocks[i].bubbleSelectors(selectors);\n        }\n    }\n\n    return ruleset;\n};\nRuleset.prototype.evalImports = function(context) {\n    var rules = this.rules, i, importRules;\n    if (!rules) { return; }\n\n    for (i = 0; i < rules.length; i++) {\n        if (rules[i].type === \"Import\") {\n            importRules = rules[i].eval(context);\n            if (importRules && importRules.length) {\n                rules.splice.apply(rules, [i, 1].concat(importRules));\n                i+= importRules.length - 1;\n            } else {\n                rules.splice(i, 1, importRules);\n            }\n            this.resetCache();\n        }\n    }\n};\nRuleset.prototype.makeImportant = function() {\n    var result = new Ruleset(this.selectors, this.rules.map(function (r) {\n        if (r.makeImportant) {\n            return r.makeImportant();\n        } else {\n            return r;\n        }\n    }), this.strictImports);\n\n    return result;\n};\nRuleset.prototype.matchArgs = function (args) {\n    return !args || args.length === 0;\n};\n// lets you call a css selector with a guard\nRuleset.prototype.matchCondition = function (args, context) {\n    var lastSelector = this.selectors[this.selectors.length - 1];\n    if (!lastSelector.evaldCondition) {\n        return false;\n    }\n    if (lastSelector.condition &&\n        !lastSelector.condition.eval(\n            new contexts.Eval(context,\n                context.frames))) {\n        return false;\n    }\n    return true;\n};\nRuleset.prototype.resetCache = function () {\n    this._rulesets = null;\n    this._variables = null;\n    this._lookups = {};\n};\nRuleset.prototype.variables = function () {\n    if (!this._variables) {\n        this._variables = !this.rules ? {} : this.rules.reduce(function (hash, r) {\n            if (r instanceof Rule && r.variable === true) {\n                hash[r.name] = r;\n            }\n            // when evaluating variables in an import statement, imports have not been eval'd\n            // so we need to go inside import statements.\n            // guard against root being a string (in the case of inlined less)\n            if (r.type === \"Import\" && r.root && r.root.variables) {\n                var vars = r.root.variables();\n                for (var name in vars) {\n                    if (vars.hasOwnProperty(name)) {\n                        hash[name] = vars[name];\n                    }\n                }\n            }\n            return hash;\n        }, {});\n    }\n    return this._variables;\n};\nRuleset.prototype.variable = function (name) {\n    return this.variables()[name];\n};\nRuleset.prototype.rulesets = function () {\n    if (!this.rules) { return []; }\n\n    var filtRules = [], rules = this.rules, cnt = rules.length,\n        i, rule;\n\n    for (i = 0; i < cnt; i++) {\n        rule = rules[i];\n        if (rule.isRuleset) {\n            filtRules.push(rule);\n        }\n    }\n\n    return filtRules;\n};\nRuleset.prototype.prependRule = function (rule) {\n    var rules = this.rules;\n    if (rules) {\n        rules.unshift(rule);\n    } else {\n        this.rules = [ rule ];\n    }\n};\nRuleset.prototype.find = function (selector, self, filter) {\n    self = self || this;\n    var rules = [], match, foundMixins,\n        key = selector.toCSS();\n\n    if (key in this._lookups) { return this._lookups[key]; }\n\n    this.rulesets().forEach(function (rule) {\n        if (rule !== self) {\n            for (var j = 0; j < rule.selectors.length; j++) {\n                match = selector.match(rule.selectors[j]);\n                if (match) {\n                    if (selector.elements.length > match) {\n                        if (!filter || filter(rule)) {\n                            foundMixins = rule.find(new Selector(selector.elements.slice(match)), self, filter);\n                            for (var i = 0; i < foundMixins.length; ++i) {\n                                foundMixins[i].path.push(rule);\n                            }\n                            Array.prototype.push.apply(rules, foundMixins);\n                        }\n                    } else {\n                        rules.push({ rule: rule, path: []});\n                    }\n                    break;\n                }\n            }\n        }\n    });\n    this._lookups[key] = rules;\n    return rules;\n};\nRuleset.prototype.genCSS = function (context, output) {\n    var i, j,\n        charsetRuleNodes = [],\n        ruleNodes = [],\n        debugInfo,     // Line number debugging\n        rule,\n        path;\n\n    context.tabLevel = (context.tabLevel || 0);\n\n    if (!this.root) {\n        context.tabLevel++;\n    }\n\n    var tabRuleStr = context.compress ? '' : Array(context.tabLevel + 1).join(\"  \"),\n        tabSetStr = context.compress ? '' : Array(context.tabLevel).join(\"  \"),\n        sep;\n\n    function isRulesetLikeNode(rule) {\n        // if it has nested rules, then it should be treated like a ruleset\n        // medias and comments do not have nested rules, but should be treated like rulesets anyway\n        // some directives and anonymous nodes are ruleset like, others are not\n        if (typeof rule.isRulesetLike === \"boolean\") {\n            return rule.isRulesetLike;\n        } else if (typeof rule.isRulesetLike === \"function\") {\n            return rule.isRulesetLike();\n        }\n\n        //anything else is assumed to be a rule\n        return false;\n    }\n\n    var charsetNodeIndex = 0;\n    var importNodeIndex = 0;\n    for (i = 0; i < this.rules.length; i++) {\n        rule = this.rules[i];\n        if (rule.type === \"Comment\") {\n            if (importNodeIndex === i) {\n                importNodeIndex++;\n            }\n            ruleNodes.push(rule);\n        } else if (rule.isCharset && rule.isCharset()) {\n            ruleNodes.splice(charsetNodeIndex, 0, rule);\n            charsetNodeIndex++;\n            importNodeIndex++;\n        } else if (rule.type === \"Import\") {\n            ruleNodes.splice(importNodeIndex, 0, rule);\n            importNodeIndex++;\n        } else {\n            ruleNodes.push(rule);\n        }\n    }\n    ruleNodes = charsetRuleNodes.concat(ruleNodes);\n\n    // If this is the root node, we don't render\n    // a selector, or {}.\n    if (!this.root) {\n        debugInfo = getDebugInfo(context, this, tabSetStr);\n\n        if (debugInfo) {\n            output.add(debugInfo);\n            output.add(tabSetStr);\n        }\n\n        var paths = this.paths, pathCnt = paths.length,\n            pathSubCnt;\n\n        sep = context.compress ? ',' : (',\\n' + tabSetStr);\n\n        for (i = 0; i < pathCnt; i++) {\n            path = paths[i];\n            if (!(pathSubCnt = path.length)) { continue; }\n            if (i > 0) { output.add(sep); }\n\n            context.firstSelector = true;\n            path[0].genCSS(context, output);\n\n            context.firstSelector = false;\n            for (j = 1; j < pathSubCnt; j++) {\n                path[j].genCSS(context, output);\n            }\n        }\n\n        output.add((context.compress ? '{' : ' {\\n') + tabRuleStr);\n    }\n\n    // Compile rules and rulesets\n    for (i = 0; i < ruleNodes.length; i++) {\n        rule = ruleNodes[i];\n\n        if (i + 1 === ruleNodes.length) {\n            context.lastRule = true;\n        }\n\n        var currentLastRule = context.lastRule;\n        if (isRulesetLikeNode(rule)) {\n            context.lastRule = false;\n        }\n\n        if (rule.genCSS) {\n            rule.genCSS(context, output);\n        } else if (rule.value) {\n            output.add(rule.value.toString());\n        }\n\n        context.lastRule = currentLastRule;\n\n        if (!context.lastRule) {\n            output.add(context.compress ? '' : ('\\n' + tabRuleStr));\n        } else {\n            context.lastRule = false;\n        }\n    }\n\n    if (!this.root) {\n        output.add((context.compress ? '}' : '\\n' + tabSetStr + '}'));\n        context.tabLevel--;\n    }\n\n    if (!output.isEmpty() && !context.compress && this.firstRoot) {\n        output.add('\\n');\n    }\n};\nRuleset.prototype.markReferenced = function () {\n    var s;\n    if (this.selectors) {\n        for (s = 0; s < this.selectors.length; s++) {\n            this.selectors[s].markReferenced();\n        }\n    }\n\n    if (this.rules) {\n        for (s = 0; s < this.rules.length; s++) {\n            if (this.rules[s].markReferenced) {\n                this.rules[s].markReferenced();\n            }\n        }\n    }\n};\nRuleset.prototype.getIsReferenced = function() {\n    var i, j, path, selector;\n\n    if (this.paths) {\n        for (i = 0; i < this.paths.length; i++) {\n            path = this.paths[i];\n            for (j = 0; j < path.length; j++) {\n                if (path[j].getIsReferenced && path[j].getIsReferenced()) {\n                    return true;\n                }\n            }\n        }\n    }\n\n    if (this.selectors) {\n        for (i = 0; i < this.selectors.length; i++) {\n            selector = this.selectors[i];\n            if (selector.getIsReferenced && selector.getIsReferenced()) {\n                return true;\n            }\n        }\n    }\n    return false;\n};\n\nRuleset.prototype.joinSelectors = function (paths, context, selectors) {\n    for (var s = 0; s < selectors.length; s++) {\n        this.joinSelector(paths, context, selectors[s]);\n    }\n};\n\nRuleset.prototype.joinSelector = function (paths, context, selector) {\n\n    function createParenthesis(elementsToPak, originalElement) {\n        var replacementParen, j;\n        if (elementsToPak.length === 0) {\n            replacementParen = new Paren(elementsToPak[0]);\n        } else {\n            var insideParent = [];\n            for (j = 0; j < elementsToPak.length; j++) {\n                insideParent.push(new Element(null, elementsToPak[j], originalElement.index, originalElement.currentFileInfo));\n            }\n            replacementParen = new Paren(new Selector(insideParent));\n        }\n        return replacementParen;\n    }\n\n    function createSelector(containedElement, originalElement) {\n        var element, selector;\n        element = new Element(null, containedElement, originalElement.index, originalElement.currentFileInfo);\n        selector = new Selector([element]);\n        return selector;\n    }\n\n    // replace all parent selectors inside `inSelector` by content of `context` array\n    // resulting selectors are returned inside `paths` array\n    // returns true if `inSelector` contained at least one parent selector\n    function replaceParentSelector(paths, context, inSelector) {\n        // The paths are [[Selector]]\n        // The first list is a list of comma separated selectors\n        // The inner list is a list of inheritance separated selectors\n        // e.g.\n        // .a, .b {\n        //   .c {\n        //   }\n        // }\n        // == [[.a] [.c]] [[.b] [.c]]\n        //\n        var i, j, k, currentElements, newSelectors, selectorsMultiplied, sel, el, hadParentSelector = false, length, lastSelector;\n        function findNestedSelector(element) {\n            var maybeSelector;\n            if (element.value.type !== 'Paren') {\n                return null;\n            }\n\n            maybeSelector = element.value.value;\n            if (maybeSelector.type !== 'Selector') {\n                return null;\n            }\n\n            return maybeSelector;\n        }\n\n        // the elements from the current selector so far\n        currentElements = [];\n        // the current list of new selectors to add to the path.\n        // We will build it up. We initiate it with one empty selector as we \"multiply\" the new selectors\n        // by the parents\n        newSelectors = [\n            []\n        ];\n\n        for (i = 0; i < inSelector.elements.length; i++) {\n            el = inSelector.elements[i];\n            // non parent reference elements just get added\n            if (el.value !== \"&\") {\n                var nestedSelector = findNestedSelector(el);\n                if (nestedSelector != null) {\n                    // merge the current list of non parent selector elements\n                    // on to the current list of selectors to add\n                    mergeElementsOnToSelectors(currentElements, newSelectors);\n\n                    var nestedPaths = [], replaced, replacedNewSelectors = [];\n                    replaced = replaceParentSelector(nestedPaths, context, nestedSelector);\n                    hadParentSelector = hadParentSelector || replaced;\n                    //the nestedPaths array should have only one member - replaceParentSelector does not multiply selectors\n                    for (k = 0; k < nestedPaths.length; k++) {\n                        var replacementSelector = createSelector(createParenthesis(nestedPaths[k], el), el);\n                        addAllReplacementsIntoPath(newSelectors, [replacementSelector], el, inSelector, replacedNewSelectors);\n                    }\n                    newSelectors = replacedNewSelectors;\n                    currentElements = [];\n\n                } else {\n                    currentElements.push(el);\n                }\n\n            } else {\n                hadParentSelector = true;\n                // the new list of selectors to add\n                selectorsMultiplied = [];\n\n                // merge the current list of non parent selector elements\n                // on to the current list of selectors to add\n                mergeElementsOnToSelectors(currentElements, newSelectors);\n\n                // loop through our current selectors\n                for (j = 0; j < newSelectors.length; j++) {\n                    sel = newSelectors[j];\n                    // if we don't have any parent paths, the & might be in a mixin so that it can be used\n                    // whether there are parents or not\n                    if (context.length === 0) {\n                        // the combinator used on el should now be applied to the next element instead so that\n                        // it is not lost\n                        if (sel.length > 0) {\n                            sel[0].elements.push(new Element(el.combinator, '', el.index, el.currentFileInfo));\n                        }\n                        selectorsMultiplied.push(sel);\n                    }\n                    else {\n                        // and the parent selectors\n                        for (k = 0; k < context.length; k++) {\n                            // We need to put the current selectors\n                            // then join the last selector's elements on to the parents selectors\n                            var newSelectorPath = addReplacementIntoPath(sel, context[k], el, inSelector);\n                            // add that to our new set of selectors\n                            selectorsMultiplied.push(newSelectorPath);\n                        }\n                    }\n                }\n\n                // our new selectors has been multiplied, so reset the state\n                newSelectors = selectorsMultiplied;\n                currentElements = [];\n            }\n        }\n\n        // if we have any elements left over (e.g. .a& .b == .b)\n        // add them on to all the current selectors\n        mergeElementsOnToSelectors(currentElements, newSelectors);\n\n        for (i = 0; i < newSelectors.length; i++) {\n            length = newSelectors[i].length;\n            if (length > 0) {\n                paths.push(newSelectors[i]);\n                lastSelector = newSelectors[i][length - 1];\n                newSelectors[i][length - 1] = lastSelector.createDerived(lastSelector.elements, inSelector.extendList);\n            }\n        }\n\n        return hadParentSelector;\n    }\n\n    // joins selector path from `beginningPath` with selector path in `addPath`\n    // `replacedElement` contains element that is being replaced by `addPath`\n    // returns concatenated path\n    function addReplacementIntoPath(beginningPath, addPath, replacedElement, originalSelector) {\n        var newSelectorPath, lastSelector, newJoinedSelector;\n        // our new selector path\n        newSelectorPath = [];\n\n        //construct the joined selector - if & is the first thing this will be empty,\n        // if not newJoinedSelector will be the last set of elements in the selector\n        if (beginningPath.length > 0) {\n            newSelectorPath = beginningPath.slice(0);\n            lastSelector = newSelectorPath.pop();\n            newJoinedSelector = originalSelector.createDerived(lastSelector.elements.slice(0));\n        }\n        else {\n            newJoinedSelector = originalSelector.createDerived([]);\n        }\n\n        if (addPath.length > 0) {\n            // /deep/ is a combinator that is valid without anything in front of it\n            // so if the & does not have a combinator that is \"\" or \" \" then\n            // and there is a combinator on the parent, then grab that.\n            // this also allows + a { & .b { .a & { ... though not sure why you would want to do that\n            var combinator = replacedElement.combinator, parentEl = addPath[0].elements[0];\n            if (combinator.emptyOrWhitespace && !parentEl.combinator.emptyOrWhitespace) {\n                combinator = parentEl.combinator;\n            }\n            // join the elements so far with the first part of the parent\n            newJoinedSelector.elements.push(new Element(combinator, parentEl.value, replacedElement.index, replacedElement.currentFileInfo));\n            newJoinedSelector.elements = newJoinedSelector.elements.concat(addPath[0].elements.slice(1));\n        }\n\n        // now add the joined selector - but only if it is not empty\n        if (newJoinedSelector.elements.length !== 0) {\n            newSelectorPath.push(newJoinedSelector);\n        }\n\n        //put together the parent selectors after the join (e.g. the rest of the parent)\n        if (addPath.length > 1) {\n            newSelectorPath = newSelectorPath.concat(addPath.slice(1));\n        }\n        return newSelectorPath;\n    }\n\n    // joins selector path from `beginningPath` with every selector path in `addPaths` array\n    // `replacedElement` contains element that is being replaced by `addPath`\n    // returns array with all concatenated paths\n    function addAllReplacementsIntoPath( beginningPath, addPaths, replacedElement, originalSelector, result) {\n        var j;\n        for (j = 0; j < beginningPath.length; j++) {\n            var newSelectorPath = addReplacementIntoPath(beginningPath[j], addPaths, replacedElement, originalSelector);\n            result.push(newSelectorPath);\n        }\n        return result;\n    }\n\n    function mergeElementsOnToSelectors(elements, selectors) {\n        var i, sel;\n\n        if (elements.length === 0) {\n            return ;\n        }\n        if (selectors.length === 0) {\n            selectors.push([ new Selector(elements) ]);\n            return;\n        }\n\n        for (i = 0; i < selectors.length; i++) {\n            sel = selectors[i];\n\n            // if the previous thing in sel is a parent this needs to join on to it\n            if (sel.length > 0) {\n                sel[sel.length - 1] = sel[sel.length - 1].createDerived(sel[sel.length - 1].elements.concat(elements));\n            }\n            else {\n                sel.push(new Selector(elements));\n            }\n        }\n    }\n\n    // joinSelector code follows\n    var i, newPaths, hadParentSelector;\n\n    newPaths = [];\n    hadParentSelector = replaceParentSelector(newPaths, context, selector);\n\n    if (!hadParentSelector) {\n        if (context.length > 0) {\n            newPaths = [];\n            for (i = 0; i < context.length; i++) {\n                newPaths.push(context[i].concat(selector));\n            }\n        }\n        else {\n            newPaths = [[selector]];\n        }\n    }\n\n    for (i = 0; i < newPaths.length; i++) {\n        paths.push(newPaths[i]);\n    }\n\n};\nmodule.exports = Ruleset;\n\n},{\"../contexts\":10,\"../functions/default\":19,\"../functions/function-registry\":21,\"./debug-info\":52,\"./element\":56,\"./node\":68,\"./paren\":70,\"./rule\":72,\"./selector\":75}],75:[function(require,module,exports){\nvar Node = require(\"./node\"),\n    Element = require(\"./element\");\n\nvar Selector = function (elements, extendList, condition, index, currentFileInfo, isReferenced) {\n    this.elements = elements;\n    this.extendList = extendList;\n    this.condition = condition;\n    this.currentFileInfo = currentFileInfo || {};\n    this.isReferenced = isReferenced;\n    if (!condition) {\n        this.evaldCondition = true;\n    }\n};\nSelector.prototype = new Node();\nSelector.prototype.type = \"Selector\";\nSelector.prototype.accept = function (visitor) {\n    if (this.elements) {\n        this.elements = visitor.visitArray(this.elements);\n    }\n    if (this.extendList) {\n        this.extendList = visitor.visitArray(this.extendList);\n    }\n    if (this.condition) {\n        this.condition = visitor.visit(this.condition);\n    }\n};\nSelector.prototype.createDerived = function(elements, extendList, evaldCondition) {\n    evaldCondition = (evaldCondition != null) ? evaldCondition : this.evaldCondition;\n    var newSelector = new Selector(elements, extendList || this.extendList, null, this.index, this.currentFileInfo, this.isReferenced);\n    newSelector.evaldCondition = evaldCondition;\n    newSelector.mediaEmpty = this.mediaEmpty;\n    return newSelector;\n};\nSelector.prototype.createEmptySelectors = function() {\n    var el = new Element('', '&', this.index, this.currentFileInfo),\n        sels = [new Selector([el], null, null, this.index, this.currentFileInfo)];\n    sels[0].mediaEmpty = true;\n    return sels;\n};\nSelector.prototype.match = function (other) {\n    var elements = this.elements,\n        len = elements.length,\n        olen, i;\n\n    other.CacheElements();\n\n    olen = other._elements.length;\n    if (olen === 0 || len < olen) {\n        return 0;\n    } else {\n        for (i = 0; i < olen; i++) {\n            if (elements[i].value !== other._elements[i]) {\n                return 0;\n            }\n        }\n    }\n\n    return olen; // return number of matched elements\n};\nSelector.prototype.CacheElements = function() {\n    if (this._elements) {\n        return;\n    }\n\n    var elements = this.elements.map( function(v) {\n        return v.combinator.value + (v.value.value || v.value);\n    }).join(\"\").match(/[,&#\\*\\.\\w-]([\\w-]|(\\\\.))*/g);\n\n    if (elements) {\n        if (elements[0] === \"&\") {\n            elements.shift();\n        }\n    } else {\n        elements = [];\n    }\n\n    this._elements = elements;\n};\nSelector.prototype.isJustParentSelector = function() {\n    return !this.mediaEmpty &&\n        this.elements.length === 1 &&\n        this.elements[0].value === '&' &&\n        (this.elements[0].combinator.value === ' ' || this.elements[0].combinator.value === '');\n};\nSelector.prototype.eval = function (context) {\n    var evaldCondition = this.condition && this.condition.eval(context),\n        elements = this.elements, extendList = this.extendList;\n\n    elements = elements && elements.map(function (e) { return e.eval(context); });\n    extendList = extendList && extendList.map(function(extend) { return extend.eval(context); });\n\n    return this.createDerived(elements, extendList, evaldCondition);\n};\nSelector.prototype.genCSS = function (context, output) {\n    var i, element;\n    if ((!context || !context.firstSelector) && this.elements[0].combinator.value === \"\") {\n        output.add(' ', this.currentFileInfo, this.index);\n    }\n    if (!this._css) {\n        //TODO caching? speed comparison?\n        for (i = 0; i < this.elements.length; i++) {\n            element = this.elements[i];\n            element.genCSS(context, output);\n        }\n    }\n};\nSelector.prototype.markReferenced = function () {\n    this.isReferenced = true;\n};\nSelector.prototype.getIsReferenced = function() {\n    return !this.currentFileInfo.reference || this.isReferenced;\n};\nSelector.prototype.getIsOutput = function() {\n    return this.evaldCondition;\n};\nmodule.exports = Selector;\n\n},{\"./element\":56,\"./node\":68}],76:[function(require,module,exports){\nvar Node = require(\"./node\");\n\nvar UnicodeDescriptor = function (value) {\n    this.value = value;\n};\nUnicodeDescriptor.prototype = new Node();\nUnicodeDescriptor.prototype.type = \"UnicodeDescriptor\";\n\nmodule.exports = UnicodeDescriptor;\n\n},{\"./node\":68}],77:[function(require,module,exports){\nvar Node = require(\"./node\"),\n    unitConversions = require(\"../data/unit-conversions\");\n\nvar Unit = function (numerator, denominator, backupUnit) {\n    this.numerator = numerator ? numerator.slice(0).sort() : [];\n    this.denominator = denominator ? denominator.slice(0).sort() : [];\n    if (backupUnit) {\n        this.backupUnit = backupUnit;\n    } else if (numerator && numerator.length) {\n        this.backupUnit = numerator[0];\n    }\n};\n\nUnit.prototype = new Node();\nUnit.prototype.type = \"Unit\";\nUnit.prototype.clone = function () {\n    return new Unit(this.numerator.slice(0), this.denominator.slice(0), this.backupUnit);\n};\nUnit.prototype.genCSS = function (context, output) {\n    // Dimension checks the unit is singular and throws an error if in strict math mode.\n    var strictUnits = context && context.strictUnits;\n    if (this.numerator.length === 1) {\n        output.add(this.numerator[0]); // the ideal situation\n    } else if (!strictUnits && this.backupUnit) {\n        output.add(this.backupUnit);\n    } else if (!strictUnits && this.denominator.length) {\n        output.add(this.denominator[0]);\n    }\n};\nUnit.prototype.toString = function () {\n    var i, returnStr = this.numerator.join(\"*\");\n    for (i = 0; i < this.denominator.length; i++) {\n        returnStr += \"/\" + this.denominator[i];\n    }\n    return returnStr;\n};\nUnit.prototype.compare = function (other) {\n    return this.is(other.toString()) ? 0 : undefined;\n};\nUnit.prototype.is = function (unitString) {\n    return this.toString().toUpperCase() === unitString.toUpperCase();\n};\nUnit.prototype.isLength = function () {\n    return Boolean(this.toCSS().match(/px|em|%|in|cm|mm|pc|pt|ex/));\n};\nUnit.prototype.isEmpty = function () {\n    return this.numerator.length === 0 && this.denominator.length === 0;\n};\nUnit.prototype.isSingular = function() {\n    return this.numerator.length <= 1 && this.denominator.length === 0;\n};\nUnit.prototype.map = function(callback) {\n    var i;\n\n    for (i = 0; i < this.numerator.length; i++) {\n        this.numerator[i] = callback(this.numerator[i], false);\n    }\n\n    for (i = 0; i < this.denominator.length; i++) {\n        this.denominator[i] = callback(this.denominator[i], true);\n    }\n};\nUnit.prototype.usedUnits = function() {\n    var group, result = {}, mapUnit;\n\n    mapUnit = function (atomicUnit) {\n        /*jshint loopfunc:true */\n        if (group.hasOwnProperty(atomicUnit) && !result[groupName]) {\n            result[groupName] = atomicUnit;\n        }\n\n        return atomicUnit;\n    };\n\n    for (var groupName in unitConversions) {\n        if (unitConversions.hasOwnProperty(groupName)) {\n            group = unitConversions[groupName];\n\n            this.map(mapUnit);\n        }\n    }\n\n    return result;\n};\nUnit.prototype.cancel = function () {\n    var counter = {}, atomicUnit, i;\n\n    for (i = 0; i < this.numerator.length; i++) {\n        atomicUnit = this.numerator[i];\n        counter[atomicUnit] = (counter[atomicUnit] || 0) + 1;\n    }\n\n    for (i = 0; i < this.denominator.length; i++) {\n        atomicUnit = this.denominator[i];\n        counter[atomicUnit] = (counter[atomicUnit] || 0) - 1;\n    }\n\n    this.numerator = [];\n    this.denominator = [];\n\n    for (atomicUnit in counter) {\n        if (counter.hasOwnProperty(atomicUnit)) {\n            var count = counter[atomicUnit];\n\n            if (count > 0) {\n                for (i = 0; i < count; i++) {\n                    this.numerator.push(atomicUnit);\n                }\n            } else if (count < 0) {\n                for (i = 0; i < -count; i++) {\n                    this.denominator.push(atomicUnit);\n                }\n            }\n        }\n    }\n\n    this.numerator.sort();\n    this.denominator.sort();\n};\nmodule.exports = Unit;\n\n},{\"../data/unit-conversions\":13,\"./node\":68}],78:[function(require,module,exports){\nvar Node = require(\"./node\");\n\nvar URL = function (val, index, currentFileInfo, isEvald) {\n    this.value = val;\n    this.currentFileInfo = currentFileInfo;\n    this.index = index;\n    this.isEvald = isEvald;\n};\nURL.prototype = new Node();\nURL.prototype.type = \"Url\";\nURL.prototype.accept = function (visitor) {\n    this.value = visitor.visit(this.value);\n};\nURL.prototype.genCSS = function (context, output) {\n    output.add(\"url(\");\n    this.value.genCSS(context, output);\n    output.add(\")\");\n};\nURL.prototype.eval = function (context) {\n    var val = this.value.eval(context),\n        rootpath;\n\n    if (!this.isEvald) {\n        // Add the base path if the URL is relative\n        rootpath = this.currentFileInfo && this.currentFileInfo.rootpath;\n        if (rootpath &&\n            typeof val.value === \"string\" &&\n            context.isPathRelative(val.value)) {\n\n            if (!val.quote) {\n                rootpath = rootpath.replace(/[\\(\\)'\"\\s]/g, function(match) { return \"\\\\\" + match; });\n            }\n            val.value = rootpath + val.value;\n        }\n\n        val.value = context.normalizePath(val.value);\n\n        // Add url args if enabled\n        if (context.urlArgs) {\n            if (!val.value.match(/^\\s*data:/)) {\n                var delimiter = val.value.indexOf('?') === -1 ? '?' : '&';\n                var urlArgs = delimiter + context.urlArgs;\n                if (val.value.indexOf('#') !== -1) {\n                    val.value = val.value.replace('#', urlArgs + '#');\n                } else {\n                    val.value += urlArgs;\n                }\n            }\n        }\n    }\n\n    return new URL(val, this.index, this.currentFileInfo, true);\n};\nmodule.exports = URL;\n\n},{\"./node\":68}],79:[function(require,module,exports){\nvar Node = require(\"./node\");\n\nvar Value = function (value) {\n    this.value = value;\n    if (!value) {\n        throw new Error(\"Value requires an array argument\");\n    }\n};\nValue.prototype = new Node();\nValue.prototype.type = \"Value\";\nValue.prototype.accept = function (visitor) {\n    if (this.value) {\n        this.value = visitor.visitArray(this.value);\n    }\n};\nValue.prototype.eval = function (context) {\n    if (this.value.length === 1) {\n        return this.value[0].eval(context);\n    } else {\n        return new Value(this.value.map(function (v) {\n            return v.eval(context);\n        }));\n    }\n};\nValue.prototype.genCSS = function (context, output) {\n    var i;\n    for (i = 0; i < this.value.length; i++) {\n        this.value[i].genCSS(context, output);\n        if (i + 1 < this.value.length) {\n            output.add((context && context.compress) ? ',' : ', ');\n        }\n    }\n};\nmodule.exports = Value;\n\n},{\"./node\":68}],80:[function(require,module,exports){\nvar Node = require(\"./node\");\n\nvar Variable = function (name, index, currentFileInfo) {\n    this.name = name;\n    this.index = index;\n    this.currentFileInfo = currentFileInfo || {};\n};\nVariable.prototype = new Node();\nVariable.prototype.type = \"Variable\";\nVariable.prototype.eval = function (context) {\n    var variable, name = this.name;\n\n    if (name.indexOf('@@') === 0) {\n        name = '@' + new Variable(name.slice(1), this.index, this.currentFileInfo).eval(context).value;\n    }\n\n    if (this.evaluating) {\n        throw { type: 'Name',\n                message: \"Recursive variable definition for \" + name,\n                filename: this.currentFileInfo.filename,\n                index: this.index };\n    }\n\n    this.evaluating = true;\n\n    variable = this.find(context.frames, function (frame) {\n        var v = frame.variable(name);\n        if (v) {\n            if (v.important) {\n                var importantScope = context.importantScope[context.importantScope.length - 1];\n                importantScope.important = v.important;\n            }\n            return v.value.eval(context);\n        }\n    });\n    if (variable) {\n        this.evaluating = false;\n        return variable;\n    } else {\n        throw { type: 'Name',\n                message: \"variable \" + name + \" is undefined\",\n                filename: this.currentFileInfo.filename,\n                index: this.index };\n    }\n};\nVariable.prototype.find = function (obj, fun) {\n    for (var i = 0, r; i < obj.length; i++) {\n        r = fun.call(obj, obj[i]);\n        if (r) { return r; }\n    }\n    return null;\n};\nmodule.exports = Variable;\n\n},{\"./node\":68}],81:[function(require,module,exports){\nmodule.exports = {\n    getLocation: function(index, inputStream) {\n        var n = index + 1,\n            line = null,\n            column = -1;\n\n        while (--n >= 0 && inputStream.charAt(n) !== '\\n') {\n            column++;\n        }\n\n        if (typeof index === 'number') {\n            line = (inputStream.slice(0, index).match(/\\n/g) || \"\").length;\n        }\n\n        return {\n            line: line,\n            column: column\n        };\n    }\n};\n\n},{}],82:[function(require,module,exports){\nvar tree = require(\"../tree\"),\n    Visitor = require(\"./visitor\"),\n    logger = require(\"../logger\");\n\n/*jshint loopfunc:true */\n\nvar ExtendFinderVisitor = function() {\n    this._visitor = new Visitor(this);\n    this.contexts = [];\n    this.allExtendsStack = [[]];\n};\n\nExtendFinderVisitor.prototype = {\n    run: function (root) {\n        root = this._visitor.visit(root);\n        root.allExtends = this.allExtendsStack[0];\n        return root;\n    },\n    visitRule: function (ruleNode, visitArgs) {\n        visitArgs.visitDeeper = false;\n    },\n    visitMixinDefinition: function (mixinDefinitionNode, visitArgs) {\n        visitArgs.visitDeeper = false;\n    },\n    visitRuleset: function (rulesetNode, visitArgs) {\n        if (rulesetNode.root) {\n            return;\n        }\n\n        var i, j, extend, allSelectorsExtendList = [], extendList;\n\n        // get &:extend(.a); rules which apply to all selectors in this ruleset\n        var rules = rulesetNode.rules, ruleCnt = rules ? rules.length : 0;\n        for (i = 0; i < ruleCnt; i++) {\n            if (rulesetNode.rules[i] instanceof tree.Extend) {\n                allSelectorsExtendList.push(rules[i]);\n                rulesetNode.extendOnEveryPath = true;\n            }\n        }\n\n        // now find every selector and apply the extends that apply to all extends\n        // and the ones which apply to an individual extend\n        var paths = rulesetNode.paths;\n        for (i = 0; i < paths.length; i++) {\n            var selectorPath = paths[i],\n                selector = selectorPath[selectorPath.length - 1],\n                selExtendList = selector.extendList;\n\n            extendList = selExtendList ? selExtendList.slice(0).concat(allSelectorsExtendList)\n                                       : allSelectorsExtendList;\n\n            if (extendList) {\n                extendList = extendList.map(function(allSelectorsExtend) {\n                    return allSelectorsExtend.clone();\n                });\n            }\n\n            for (j = 0; j < extendList.length; j++) {\n                this.foundExtends = true;\n                extend = extendList[j];\n                extend.findSelfSelectors(selectorPath);\n                extend.ruleset = rulesetNode;\n                if (j === 0) { extend.firstExtendOnThisSelectorPath = true; }\n                this.allExtendsStack[this.allExtendsStack.length - 1].push(extend);\n            }\n        }\n\n        this.contexts.push(rulesetNode.selectors);\n    },\n    visitRulesetOut: function (rulesetNode) {\n        if (!rulesetNode.root) {\n            this.contexts.length = this.contexts.length - 1;\n        }\n    },\n    visitMedia: function (mediaNode, visitArgs) {\n        mediaNode.allExtends = [];\n        this.allExtendsStack.push(mediaNode.allExtends);\n    },\n    visitMediaOut: function (mediaNode) {\n        this.allExtendsStack.length = this.allExtendsStack.length - 1;\n    },\n    visitDirective: function (directiveNode, visitArgs) {\n        directiveNode.allExtends = [];\n        this.allExtendsStack.push(directiveNode.allExtends);\n    },\n    visitDirectiveOut: function (directiveNode) {\n        this.allExtendsStack.length = this.allExtendsStack.length - 1;\n    }\n};\n\nvar ProcessExtendsVisitor = function() {\n    this._visitor = new Visitor(this);\n};\n\nProcessExtendsVisitor.prototype = {\n    run: function(root) {\n        var extendFinder = new ExtendFinderVisitor();\n        this.extendIndicies = {};\n        extendFinder.run(root);\n        if (!extendFinder.foundExtends) { return root; }\n        root.allExtends = root.allExtends.concat(this.doExtendChaining(root.allExtends, root.allExtends));\n        this.allExtendsStack = [root.allExtends];\n        var newRoot = this._visitor.visit(root);\n        this.checkExtendsForNonMatched(root.allExtends);\n        return newRoot;\n    },\n    checkExtendsForNonMatched: function(extendList) {\n        var indicies = this.extendIndicies;\n        extendList.filter(function(extend) {\n            return !extend.hasFoundMatches && extend.parent_ids.length == 1;\n        }).forEach(function(extend) {\n                var selector = \"_unknown_\";\n                try {\n                    selector = extend.selector.toCSS({});\n                }\n                catch(_) {}\n\n                if (!indicies[extend.index + ' ' + selector]) {\n                    indicies[extend.index + ' ' + selector] = true;\n                    logger.warn(\"extend '\" + selector + \"' has no matches\");\n                }\n            });\n    },\n    doExtendChaining: function (extendsList, extendsListTarget, iterationCount) {\n        //\n        // chaining is different from normal extension.. if we extend an extend then we are not just copying, altering\n        // and pasting the selector we would do normally, but we are also adding an extend with the same target selector\n        // this means this new extend can then go and alter other extends\n        //\n        // this method deals with all the chaining work - without it, extend is flat and doesn't work on other extend selectors\n        // this is also the most expensive.. and a match on one selector can cause an extension of a selector we had already\n        // processed if we look at each selector at a time, as is done in visitRuleset\n\n        var extendIndex, targetExtendIndex, matches, extendsToAdd = [], newSelector, extendVisitor = this, selectorPath,\n            extend, targetExtend, newExtend;\n\n        iterationCount = iterationCount || 0;\n\n        //loop through comparing every extend with every target extend.\n        // a target extend is the one on the ruleset we are looking at copy/edit/pasting in place\n        // e.g.  .a:extend(.b) {}  and .b:extend(.c) {} then the first extend extends the second one\n        // and the second is the target.\n        // the seperation into two lists allows us to process a subset of chains with a bigger set, as is the\n        // case when processing media queries\n        for (extendIndex = 0; extendIndex < extendsList.length; extendIndex++) {\n            for (targetExtendIndex = 0; targetExtendIndex < extendsListTarget.length; targetExtendIndex++) {\n\n                extend = extendsList[extendIndex];\n                targetExtend = extendsListTarget[targetExtendIndex];\n\n                // look for circular references\n                if ( extend.parent_ids.indexOf( targetExtend.object_id ) >= 0 ) { continue; }\n\n                // find a match in the target extends self selector (the bit before :extend)\n                selectorPath = [targetExtend.selfSelectors[0]];\n                matches = extendVisitor.findMatch(extend, selectorPath);\n\n                if (matches.length) {\n\n                    extend.hasFoundMatches = true;\n\n                    // we found a match, so for each self selector..\n                    extend.selfSelectors.forEach(function(selfSelector) {\n\n                        // process the extend as usual\n                        newSelector = extendVisitor.extendSelector(matches, selectorPath, selfSelector);\n\n                        // but now we create a new extend from it\n                        newExtend = new(tree.Extend)(targetExtend.selector, targetExtend.option, 0);\n                        newExtend.selfSelectors = newSelector;\n\n                        // add the extend onto the list of extends for that selector\n                        newSelector[newSelector.length - 1].extendList = [newExtend];\n\n                        // record that we need to add it.\n                        extendsToAdd.push(newExtend);\n                        newExtend.ruleset = targetExtend.ruleset;\n\n                        //remember its parents for circular references\n                        newExtend.parent_ids = newExtend.parent_ids.concat(targetExtend.parent_ids, extend.parent_ids);\n\n                        // only process the selector once.. if we have :extend(.a,.b) then multiple\n                        // extends will look at the same selector path, so when extending\n                        // we know that any others will be duplicates in terms of what is added to the css\n                        if (targetExtend.firstExtendOnThisSelectorPath) {\n                            newExtend.firstExtendOnThisSelectorPath = true;\n                            targetExtend.ruleset.paths.push(newSelector);\n                        }\n                    });\n                }\n            }\n        }\n\n        if (extendsToAdd.length) {\n            // try to detect circular references to stop a stack overflow.\n            // may no longer be needed.\n            this.extendChainCount++;\n            if (iterationCount > 100) {\n                var selectorOne = \"{unable to calculate}\";\n                var selectorTwo = \"{unable to calculate}\";\n                try {\n                    selectorOne = extendsToAdd[0].selfSelectors[0].toCSS();\n                    selectorTwo = extendsToAdd[0].selector.toCSS();\n                }\n                catch(e) {}\n                throw { message: \"extend circular reference detected. One of the circular extends is currently:\" +\n                    selectorOne + \":extend(\" + selectorTwo + \")\"};\n            }\n\n            // now process the new extends on the existing rules so that we can handle a extending b extending c extending\n            // d extending e...\n            return extendsToAdd.concat(extendVisitor.doExtendChaining(extendsToAdd, extendsListTarget, iterationCount + 1));\n        } else {\n            return extendsToAdd;\n        }\n    },\n    visitRule: function (ruleNode, visitArgs) {\n        visitArgs.visitDeeper = false;\n    },\n    visitMixinDefinition: function (mixinDefinitionNode, visitArgs) {\n        visitArgs.visitDeeper = false;\n    },\n    visitSelector: function (selectorNode, visitArgs) {\n        visitArgs.visitDeeper = false;\n    },\n    visitRuleset: function (rulesetNode, visitArgs) {\n        if (rulesetNode.root) {\n            return;\n        }\n        var matches, pathIndex, extendIndex, allExtends = this.allExtendsStack[this.allExtendsStack.length - 1],\n            selectorsToAdd = [], extendVisitor = this, selectorPath;\n\n        // look at each selector path in the ruleset, find any extend matches and then copy, find and replace\n\n        for (extendIndex = 0; extendIndex < allExtends.length; extendIndex++) {\n            for (pathIndex = 0; pathIndex < rulesetNode.paths.length; pathIndex++) {\n                selectorPath = rulesetNode.paths[pathIndex];\n\n                // extending extends happens initially, before the main pass\n                if (rulesetNode.extendOnEveryPath) { continue; }\n                var extendList = selectorPath[selectorPath.length - 1].extendList;\n                if (extendList && extendList.length) { continue; }\n\n                matches = this.findMatch(allExtends[extendIndex], selectorPath);\n\n                if (matches.length) {\n                    allExtends[extendIndex].hasFoundMatches = true;\n\n                    allExtends[extendIndex].selfSelectors.forEach(function(selfSelector) {\n                        selectorsToAdd.push(extendVisitor.extendSelector(matches, selectorPath, selfSelector));\n                    });\n                }\n            }\n        }\n        rulesetNode.paths = rulesetNode.paths.concat(selectorsToAdd);\n    },\n    findMatch: function (extend, haystackSelectorPath) {\n        //\n        // look through the haystack selector path to try and find the needle - extend.selector\n        // returns an array of selector matches that can then be replaced\n        //\n        var haystackSelectorIndex, hackstackSelector, hackstackElementIndex, haystackElement,\n            targetCombinator, i,\n            extendVisitor = this,\n            needleElements = extend.selector.elements,\n            potentialMatches = [], potentialMatch, matches = [];\n\n        // loop through the haystack elements\n        for (haystackSelectorIndex = 0; haystackSelectorIndex < haystackSelectorPath.length; haystackSelectorIndex++) {\n            hackstackSelector = haystackSelectorPath[haystackSelectorIndex];\n\n            for (hackstackElementIndex = 0; hackstackElementIndex < hackstackSelector.elements.length; hackstackElementIndex++) {\n\n                haystackElement = hackstackSelector.elements[hackstackElementIndex];\n\n                // if we allow elements before our match we can add a potential match every time. otherwise only at the first element.\n                if (extend.allowBefore || (haystackSelectorIndex === 0 && hackstackElementIndex === 0)) {\n                    potentialMatches.push({pathIndex: haystackSelectorIndex, index: hackstackElementIndex, matched: 0,\n                        initialCombinator: haystackElement.combinator});\n                }\n\n                for (i = 0; i < potentialMatches.length; i++) {\n                    potentialMatch = potentialMatches[i];\n\n                    // selectors add \" \" onto the first element. When we use & it joins the selectors together, but if we don't\n                    // then each selector in haystackSelectorPath has a space before it added in the toCSS phase. so we need to\n                    // work out what the resulting combinator will be\n                    targetCombinator = haystackElement.combinator.value;\n                    if (targetCombinator === '' && hackstackElementIndex === 0) {\n                        targetCombinator = ' ';\n                    }\n\n                    // if we don't match, null our match to indicate failure\n                    if (!extendVisitor.isElementValuesEqual(needleElements[potentialMatch.matched].value, haystackElement.value) ||\n                        (potentialMatch.matched > 0 && needleElements[potentialMatch.matched].combinator.value !== targetCombinator)) {\n                        potentialMatch = null;\n                    } else {\n                        potentialMatch.matched++;\n                    }\n\n                    // if we are still valid and have finished, test whether we have elements after and whether these are allowed\n                    if (potentialMatch) {\n                        potentialMatch.finished = potentialMatch.matched === needleElements.length;\n                        if (potentialMatch.finished &&\n                            (!extend.allowAfter &&\n                                (hackstackElementIndex + 1 < hackstackSelector.elements.length || haystackSelectorIndex + 1 < haystackSelectorPath.length))) {\n                            potentialMatch = null;\n                        }\n                    }\n                    // if null we remove, if not, we are still valid, so either push as a valid match or continue\n                    if (potentialMatch) {\n                        if (potentialMatch.finished) {\n                            potentialMatch.length = needleElements.length;\n                            potentialMatch.endPathIndex = haystackSelectorIndex;\n                            potentialMatch.endPathElementIndex = hackstackElementIndex + 1; // index after end of match\n                            potentialMatches.length = 0; // we don't allow matches to overlap, so start matching again\n                            matches.push(potentialMatch);\n                        }\n                    } else {\n                        potentialMatches.splice(i, 1);\n                        i--;\n                    }\n                }\n            }\n        }\n        return matches;\n    },\n    isElementValuesEqual: function(elementValue1, elementValue2) {\n        if (typeof elementValue1 === \"string\" || typeof elementValue2 === \"string\") {\n            return elementValue1 === elementValue2;\n        }\n        if (elementValue1 instanceof tree.Attribute) {\n            if (elementValue1.op !== elementValue2.op || elementValue1.key !== elementValue2.key) {\n                return false;\n            }\n            if (!elementValue1.value || !elementValue2.value) {\n                if (elementValue1.value || elementValue2.value) {\n                    return false;\n                }\n                return true;\n            }\n            elementValue1 = elementValue1.value.value || elementValue1.value;\n            elementValue2 = elementValue2.value.value || elementValue2.value;\n            return elementValue1 === elementValue2;\n        }\n        elementValue1 = elementValue1.value;\n        elementValue2 = elementValue2.value;\n        if (elementValue1 instanceof tree.Selector) {\n            if (!(elementValue2 instanceof tree.Selector) || elementValue1.elements.length !== elementValue2.elements.length) {\n                return false;\n            }\n            for (var i = 0; i  < elementValue1.elements.length; i++) {\n                if (elementValue1.elements[i].combinator.value !== elementValue2.elements[i].combinator.value) {\n                    if (i !== 0 || (elementValue1.elements[i].combinator.value || ' ') !== (elementValue2.elements[i].combinator.value || ' ')) {\n                        return false;\n                    }\n                }\n                if (!this.isElementValuesEqual(elementValue1.elements[i].value, elementValue2.elements[i].value)) {\n                    return false;\n                }\n            }\n            return true;\n        }\n        return false;\n    },\n    extendSelector:function (matches, selectorPath, replacementSelector) {\n\n        //for a set of matches, replace each match with the replacement selector\n\n        var currentSelectorPathIndex = 0,\n            currentSelectorPathElementIndex = 0,\n            path = [],\n            matchIndex,\n            selector,\n            firstElement,\n            match,\n            newElements;\n\n        for (matchIndex = 0; matchIndex < matches.length; matchIndex++) {\n            match = matches[matchIndex];\n            selector = selectorPath[match.pathIndex];\n            firstElement = new tree.Element(\n                match.initialCombinator,\n                replacementSelector.elements[0].value,\n                replacementSelector.elements[0].index,\n                replacementSelector.elements[0].currentFileInfo\n            );\n\n            if (match.pathIndex > currentSelectorPathIndex && currentSelectorPathElementIndex > 0) {\n                path[path.length - 1].elements = path[path.length - 1]\n                    .elements.concat(selectorPath[currentSelectorPathIndex].elements.slice(currentSelectorPathElementIndex));\n                currentSelectorPathElementIndex = 0;\n                currentSelectorPathIndex++;\n            }\n\n            newElements = selector.elements\n                .slice(currentSelectorPathElementIndex, match.index)\n                .concat([firstElement])\n                .concat(replacementSelector.elements.slice(1));\n\n            if (currentSelectorPathIndex === match.pathIndex && matchIndex > 0) {\n                path[path.length - 1].elements =\n                    path[path.length - 1].elements.concat(newElements);\n            } else {\n                path = path.concat(selectorPath.slice(currentSelectorPathIndex, match.pathIndex));\n\n                path.push(new tree.Selector(\n                    newElements\n                ));\n            }\n            currentSelectorPathIndex = match.endPathIndex;\n            currentSelectorPathElementIndex = match.endPathElementIndex;\n            if (currentSelectorPathElementIndex >= selectorPath[currentSelectorPathIndex].elements.length) {\n                currentSelectorPathElementIndex = 0;\n                currentSelectorPathIndex++;\n            }\n        }\n\n        if (currentSelectorPathIndex < selectorPath.length && currentSelectorPathElementIndex > 0) {\n            path[path.length - 1].elements = path[path.length - 1]\n                .elements.concat(selectorPath[currentSelectorPathIndex].elements.slice(currentSelectorPathElementIndex));\n            currentSelectorPathIndex++;\n        }\n\n        path = path.concat(selectorPath.slice(currentSelectorPathIndex, selectorPath.length));\n\n        return path;\n    },\n    visitRulesetOut: function (rulesetNode) {\n    },\n    visitMedia: function (mediaNode, visitArgs) {\n        var newAllExtends = mediaNode.allExtends.concat(this.allExtendsStack[this.allExtendsStack.length - 1]);\n        newAllExtends = newAllExtends.concat(this.doExtendChaining(newAllExtends, mediaNode.allExtends));\n        this.allExtendsStack.push(newAllExtends);\n    },\n    visitMediaOut: function (mediaNode) {\n        var lastIndex = this.allExtendsStack.length - 1;\n        this.allExtendsStack.length = lastIndex;\n    },\n    visitDirective: function (directiveNode, visitArgs) {\n        var newAllExtends = directiveNode.allExtends.concat(this.allExtendsStack[this.allExtendsStack.length - 1]);\n        newAllExtends = newAllExtends.concat(this.doExtendChaining(newAllExtends, directiveNode.allExtends));\n        this.allExtendsStack.push(newAllExtends);\n    },\n    visitDirectiveOut: function (directiveNode) {\n        var lastIndex = this.allExtendsStack.length - 1;\n        this.allExtendsStack.length = lastIndex;\n    }\n};\n\nmodule.exports = ProcessExtendsVisitor;\n\n},{\"../logger\":31,\"../tree\":60,\"./visitor\":88}],83:[function(require,module,exports){\nfunction ImportSequencer(onSequencerEmpty) {\n    this.imports = [];\n    this.variableImports = [];\n    this._onSequencerEmpty = onSequencerEmpty;\n    this._currentDepth = 0;\n}\n\nImportSequencer.prototype.addImport = function(callback) {\n    var importSequencer = this,\n        importItem = {\n            callback: callback,\n            args: null,\n            isReady: false\n        };\n    this.imports.push(importItem);\n    return function() {\n        importItem.args = Array.prototype.slice.call(arguments, 0);\n        importItem.isReady = true;\n        importSequencer.tryRun();\n    };\n};\n\nImportSequencer.prototype.addVariableImport = function(callback) {\n    this.variableImports.push(callback);\n};\n\nImportSequencer.prototype.tryRun = function() {\n    this._currentDepth++;\n    try {\n        while (true) {\n            while (this.imports.length > 0) {\n                var importItem = this.imports[0];\n                if (!importItem.isReady) {\n                    return;\n                }\n                this.imports = this.imports.slice(1);\n                importItem.callback.apply(null, importItem.args);\n            }\n            if (this.variableImports.length === 0) {\n                break;\n            }\n            var variableImport = this.variableImports[0];\n            this.variableImports = this.variableImports.slice(1);\n            variableImport();\n        }\n    } finally {\n        this._currentDepth--;\n    }\n    if (this._currentDepth === 0 && this._onSequencerEmpty) {\n        this._onSequencerEmpty();\n    }\n};\n\nmodule.exports = ImportSequencer;\n\n},{}],84:[function(require,module,exports){\nvar contexts = require(\"../contexts\"),\n    Visitor = require(\"./visitor\"),\n    ImportSequencer = require(\"./import-sequencer\");\n\nvar ImportVisitor = function(importer, finish) {\n\n    this._visitor = new Visitor(this);\n    this._importer = importer;\n    this._finish = finish;\n    this.context = new contexts.Eval();\n    this.importCount = 0;\n    this.onceFileDetectionMap = {};\n    this.recursionDetector = {};\n    this._sequencer = new ImportSequencer(this._onSequencerEmpty.bind(this));\n};\n\nImportVisitor.prototype = {\n    isReplacing: false,\n    run: function (root) {\n        try {\n            // process the contents\n            this._visitor.visit(root);\n        }\n        catch(e) {\n            this.error = e;\n        }\n\n        this.isFinished = true;\n        this._sequencer.tryRun();\n    },\n    _onSequencerEmpty: function() {\n        if (!this.isFinished) {\n            return;\n        }\n        this._finish(this.error);\n    },\n    visitImport: function (importNode, visitArgs) {\n        var inlineCSS = importNode.options.inline;\n\n        if (!importNode.css || inlineCSS) {\n\n            var context = new contexts.Eval(this.context, this.context.frames.slice(0));\n            var importParent = context.frames[0];\n\n            this.importCount++;\n            if (importNode.isVariableImport()) {\n                this._sequencer.addVariableImport(this.processImportNode.bind(this, importNode, context, importParent));\n            } else {\n                this.processImportNode(importNode, context, importParent);\n            }\n        }\n        visitArgs.visitDeeper = false;\n    },\n    processImportNode: function(importNode, context, importParent) {\n        var evaldImportNode,\n            inlineCSS = importNode.options.inline;\n\n        try {\n            evaldImportNode = importNode.evalForImport(context);\n        } catch(e) {\n            if (!e.filename) { e.index = importNode.index; e.filename = importNode.currentFileInfo.filename; }\n            // attempt to eval properly and treat as css\n            importNode.css = true;\n            // if that fails, this error will be thrown\n            importNode.error = e;\n        }\n\n        if (evaldImportNode && (!evaldImportNode.css || inlineCSS)) {\n\n            if (evaldImportNode.options.multiple) {\n                context.importMultiple = true;\n            }\n\n            // try appending if we haven't determined if it is css or not\n            var tryAppendLessExtension = evaldImportNode.css === undefined;\n\n            for (var i = 0; i < importParent.rules.length; i++) {\n                if (importParent.rules[i] === importNode) {\n                    importParent.rules[i] = evaldImportNode;\n                    break;\n                }\n            }\n\n            var onImported = this.onImported.bind(this, evaldImportNode, context),\n                sequencedOnImported = this._sequencer.addImport(onImported);\n\n            this._importer.push(evaldImportNode.getPath(), tryAppendLessExtension, evaldImportNode.currentFileInfo,\n                evaldImportNode.options, sequencedOnImported);\n        } else {\n            this.importCount--;\n            if (this.isFinished) {\n                this._sequencer.tryRun();\n            }\n        }\n    },\n    onImported: function (importNode, context, e, root, importedAtRoot, fullPath) {\n        if (e) {\n            if (!e.filename) {\n                e.index = importNode.index; e.filename = importNode.currentFileInfo.filename;\n            }\n            this.error = e;\n        }\n\n        var importVisitor = this,\n            inlineCSS = importNode.options.inline,\n            isPlugin = importNode.options.plugin,\n            duplicateImport = importedAtRoot || fullPath in importVisitor.recursionDetector;\n\n        if (!context.importMultiple) {\n            if (duplicateImport) {\n                importNode.skip = true;\n            } else {\n                importNode.skip = function() {\n                    if (fullPath in importVisitor.onceFileDetectionMap) {\n                        return true;\n                    }\n                    importVisitor.onceFileDetectionMap[fullPath] = true;\n                    return false;\n                };\n            }\n        }\n\n        if (root) {\n            importNode.root = root;\n            importNode.importedFilename = fullPath;\n\n            if (!inlineCSS && !isPlugin && (context.importMultiple || !duplicateImport)) {\n                importVisitor.recursionDetector[fullPath] = true;\n\n                var oldContext = this.context;\n                this.context = context;\n                try {\n                    this._visitor.visit(root);\n                } catch (e) {\n                    this.error = e;\n                }\n                this.context = oldContext;\n            }\n        }\n\n        importVisitor.importCount--;\n\n        if (importVisitor.isFinished) {\n            importVisitor._sequencer.tryRun();\n        }\n    },\n    visitRule: function (ruleNode, visitArgs) {\n        if (ruleNode.value.type === \"DetachedRuleset\") {\n            this.context.frames.unshift(ruleNode);\n        } else {\n            visitArgs.visitDeeper = false;\n        }\n    },\n    visitRuleOut : function(ruleNode) {\n        if (ruleNode.value.type === \"DetachedRuleset\") {\n            this.context.frames.shift();\n        }\n    },\n    visitDirective: function (directiveNode, visitArgs) {\n        this.context.frames.unshift(directiveNode);\n    },\n    visitDirectiveOut: function (directiveNode) {\n        this.context.frames.shift();\n    },\n    visitMixinDefinition: function (mixinDefinitionNode, visitArgs) {\n        this.context.frames.unshift(mixinDefinitionNode);\n    },\n    visitMixinDefinitionOut: function (mixinDefinitionNode) {\n        this.context.frames.shift();\n    },\n    visitRuleset: function (rulesetNode, visitArgs) {\n        this.context.frames.unshift(rulesetNode);\n    },\n    visitRulesetOut: function (rulesetNode) {\n        this.context.frames.shift();\n    },\n    visitMedia: function (mediaNode, visitArgs) {\n        this.context.frames.unshift(mediaNode.rules[0]);\n    },\n    visitMediaOut: function (mediaNode) {\n        this.context.frames.shift();\n    }\n};\nmodule.exports = ImportVisitor;\n\n},{\"../contexts\":10,\"./import-sequencer\":83,\"./visitor\":88}],85:[function(require,module,exports){\nvar visitors = {\n    Visitor: require(\"./visitor\"),\n    ImportVisitor: require('./import-visitor'),\n    ExtendVisitor: require('./extend-visitor'),\n    JoinSelectorVisitor: require('./join-selector-visitor'),\n    ToCSSVisitor: require('./to-css-visitor')\n};\n\nmodule.exports = visitors;\n\n},{\"./extend-visitor\":82,\"./import-visitor\":84,\"./join-selector-visitor\":86,\"./to-css-visitor\":87,\"./visitor\":88}],86:[function(require,module,exports){\nvar Visitor = require(\"./visitor\");\n\nvar JoinSelectorVisitor = function() {\n    this.contexts = [[]];\n    this._visitor = new Visitor(this);\n};\n\nJoinSelectorVisitor.prototype = {\n    run: function (root) {\n        return this._visitor.visit(root);\n    },\n    visitRule: function (ruleNode, visitArgs) {\n        visitArgs.visitDeeper = false;\n    },\n    visitMixinDefinition: function (mixinDefinitionNode, visitArgs) {\n        visitArgs.visitDeeper = false;\n    },\n\n    visitRuleset: function (rulesetNode, visitArgs) {\n        var context = this.contexts[this.contexts.length - 1],\n            paths = [], selectors;\n\n        this.contexts.push(paths);\n\n        if (! rulesetNode.root) {\n            selectors = rulesetNode.selectors;\n            if (selectors) {\n                selectors = selectors.filter(function(selector) { return selector.getIsOutput(); });\n                rulesetNode.selectors = selectors.length ? selectors : (selectors = null);\n                if (selectors) { rulesetNode.joinSelectors(paths, context, selectors); }\n            }\n            if (!selectors) { rulesetNode.rules = null; }\n            rulesetNode.paths = paths;\n        }\n    },\n    visitRulesetOut: function (rulesetNode) {\n        this.contexts.length = this.contexts.length - 1;\n    },\n    visitMedia: function (mediaNode, visitArgs) {\n        var context = this.contexts[this.contexts.length - 1];\n        mediaNode.rules[0].root = (context.length === 0 || context[0].multiMedia);\n    },\n    visitDirective: function (directiveNode, visitArgs) {\n        var context = this.contexts[this.contexts.length - 1];\n        if (directiveNode.rules && directiveNode.rules.length) {\n            directiveNode.rules[0].root = (directiveNode.isRooted || context.length === 0 || null);\n        }\n    }\n};\n\nmodule.exports = JoinSelectorVisitor;\n\n},{\"./visitor\":88}],87:[function(require,module,exports){\nvar tree = require(\"../tree\"),\n    Visitor = require(\"./visitor\");\n\nvar ToCSSVisitor = function(context) {\n    this._visitor = new Visitor(this);\n    this._context = context;\n};\n\nToCSSVisitor.prototype = {\n    isReplacing: true,\n    run: function (root) {\n        return this._visitor.visit(root);\n    },\n\n    visitRule: function (ruleNode, visitArgs) {\n        if (ruleNode.variable) {\n            return;\n        }\n        return ruleNode;\n    },\n\n    visitMixinDefinition: function (mixinNode, visitArgs) {\n        // mixin definitions do not get eval'd - this means they keep state\n        // so we have to clear that state here so it isn't used if toCSS is called twice\n        mixinNode.frames = [];\n    },\n\n    visitExtend: function (extendNode, visitArgs) {\n    },\n\n    visitComment: function (commentNode, visitArgs) {\n        if (commentNode.isSilent(this._context)) {\n            return;\n        }\n        return commentNode;\n    },\n\n    visitMedia: function(mediaNode, visitArgs) {\n        mediaNode.accept(this._visitor);\n        visitArgs.visitDeeper = false;\n\n        if (!mediaNode.rules.length) {\n            return;\n        }\n        return mediaNode;\n    },\n\n    visitImport: function (importNode, visitArgs) {\n        if (importNode.path.currentFileInfo.reference !== undefined && importNode.css) {\n            return;\n        }\n        return importNode;\n    },\n\n    visitDirective: function(directiveNode, visitArgs) {\n        if (directiveNode.name === \"@charset\") {\n            if (!directiveNode.getIsReferenced()) {\n                return;\n            }\n            // Only output the debug info together with subsequent @charset definitions\n            // a comment (or @media statement) before the actual @charset directive would\n            // be considered illegal css as it has to be on the first line\n            if (this.charset) {\n                if (directiveNode.debugInfo) {\n                    var comment = new tree.Comment(\"/* \" + directiveNode.toCSS(this._context).replace(/\\n/g, \"\") + \" */\\n\");\n                    comment.debugInfo = directiveNode.debugInfo;\n                    return this._visitor.visit(comment);\n                }\n                return;\n            }\n            this.charset = true;\n        }\n        function hasVisibleChild(directiveNode) {\n            //prepare list of childs\n            var rule, bodyRules = directiveNode.rules;\n            //if there is only one nested ruleset and that one has no path, then it is\n            //just fake ruleset that got not replaced and we need to look inside it to\n            //get real childs\n            if (bodyRules.length === 1 && (!bodyRules[0].paths || bodyRules[0].paths.length === 0)) {\n                bodyRules = bodyRules[0].rules;\n            }\n            for (var r = 0; r < bodyRules.length; r++) {\n                rule = bodyRules[r];\n                if (rule.getIsReferenced && rule.getIsReferenced()) {\n                    //the directive contains something that was referenced (likely by extend)\n                    //therefore it needs to be shown in output too\n                    return true;\n                }\n            }\n            return false;\n        }\n\n        if (directiveNode.rules && directiveNode.rules.length) {\n            //it is still true that it is only one ruleset in array\n            //this is last such moment\n            this._mergeRules(directiveNode.rules[0].rules);\n            //process childs\n            directiveNode.accept(this._visitor);\n            visitArgs.visitDeeper = false;\n\n            // the directive was directly referenced and therefore needs to be shown in the output\n            if (directiveNode.getIsReferenced()) {\n                return directiveNode;\n            }\n\n            if (!directiveNode.rules || !directiveNode.rules.length) {\n                return ;\n            }\n\n            //the directive was not directly referenced - we need to check whether some of its childs\n            //was referenced\n            if (hasVisibleChild(directiveNode)) {\n                //marking as referenced in case the directive is stored inside another directive\n                directiveNode.markReferenced();\n                return directiveNode;\n            }\n\n            //The directive was not directly referenced and does not contain anything that\n            //was referenced. Therefore it must not be shown in output.\n            return ;\n        } else {\n            if (!directiveNode.getIsReferenced()) {\n                return;\n            }\n        }\n        return directiveNode;\n    },\n\n    checkPropertiesInRoot: function(rules) {\n        var ruleNode;\n        for (var i = 0; i < rules.length; i++) {\n            ruleNode = rules[i];\n            if (ruleNode instanceof tree.Rule && !ruleNode.variable) {\n                throw { message: \"properties must be inside selector blocks, they cannot be in the root.\",\n                    index: ruleNode.index, filename: ruleNode.currentFileInfo ? ruleNode.currentFileInfo.filename : null};\n            }\n        }\n    },\n\n    visitRuleset: function (rulesetNode, visitArgs) {\n        var rule, rulesets = [];\n        if (rulesetNode.firstRoot) {\n            this.checkPropertiesInRoot(rulesetNode.rules);\n        }\n        if (! rulesetNode.root) {\n            if (rulesetNode.paths) {\n                rulesetNode.paths = rulesetNode.paths\n                    .filter(function(p) {\n                        var i;\n                        if (p[0].elements[0].combinator.value === ' ') {\n                            p[0].elements[0].combinator = new(tree.Combinator)('');\n                        }\n                        for (i = 0; i < p.length; i++) {\n                            if (p[i].getIsReferenced() && p[i].getIsOutput()) {\n                                return true;\n                            }\n                        }\n                        return false;\n                    });\n            }\n\n            // Compile rules and rulesets\n            var nodeRules = rulesetNode.rules, nodeRuleCnt = nodeRules ? nodeRules.length : 0;\n            for (var i = 0; i < nodeRuleCnt; ) {\n                rule = nodeRules[i];\n                if (rule && rule.rules) {\n                    // visit because we are moving them out from being a child\n                    rulesets.push(this._visitor.visit(rule));\n                    nodeRules.splice(i, 1);\n                    nodeRuleCnt--;\n                    continue;\n                }\n                i++;\n            }\n            // accept the visitor to remove rules and refactor itself\n            // then we can decide now whether we want it or not\n            if (nodeRuleCnt > 0) {\n                rulesetNode.accept(this._visitor);\n            } else {\n                rulesetNode.rules = null;\n            }\n            visitArgs.visitDeeper = false;\n\n            nodeRules = rulesetNode.rules;\n            if (nodeRules) {\n                this._mergeRules(nodeRules);\n                nodeRules = rulesetNode.rules;\n            }\n            if (nodeRules) {\n                this._removeDuplicateRules(nodeRules);\n                nodeRules = rulesetNode.rules;\n            }\n\n            // now decide whether we keep the ruleset\n            if (nodeRules && nodeRules.length > 0 && rulesetNode.paths.length > 0) {\n                rulesets.splice(0, 0, rulesetNode);\n            }\n        } else {\n            rulesetNode.accept(this._visitor);\n            visitArgs.visitDeeper = false;\n            if (rulesetNode.firstRoot || (rulesetNode.rules && rulesetNode.rules.length > 0)) {\n                rulesets.splice(0, 0, rulesetNode);\n            }\n        }\n        if (rulesets.length === 1) {\n            return rulesets[0];\n        }\n        return rulesets;\n    },\n\n    _removeDuplicateRules: function(rules) {\n        if (!rules) { return; }\n\n        // remove duplicates\n        var ruleCache = {},\n            ruleList, rule, i;\n\n        for (i = rules.length - 1; i >= 0 ; i--) {\n            rule = rules[i];\n            if (rule instanceof tree.Rule) {\n                if (!ruleCache[rule.name]) {\n                    ruleCache[rule.name] = rule;\n                } else {\n                    ruleList = ruleCache[rule.name];\n                    if (ruleList instanceof tree.Rule) {\n                        ruleList = ruleCache[rule.name] = [ruleCache[rule.name].toCSS(this._context)];\n                    }\n                    var ruleCSS = rule.toCSS(this._context);\n                    if (ruleList.indexOf(ruleCSS) !== -1) {\n                        rules.splice(i, 1);\n                    } else {\n                        ruleList.push(ruleCSS);\n                    }\n                }\n            }\n        }\n    },\n\n    _mergeRules: function (rules) {\n        if (!rules) { return; }\n\n        var groups = {},\n            parts,\n            rule,\n            key;\n\n        for (var i = 0; i < rules.length; i++) {\n            rule = rules[i];\n\n            if ((rule instanceof tree.Rule) && rule.merge) {\n                key = [rule.name,\n                    rule.important ? \"!\" : \"\"].join(\",\");\n\n                if (!groups[key]) {\n                    groups[key] = [];\n                } else {\n                    rules.splice(i--, 1);\n                }\n\n                groups[key].push(rule);\n            }\n        }\n\n        Object.keys(groups).map(function (k) {\n\n            function toExpression(values) {\n                return new (tree.Expression)(values.map(function (p) {\n                    return p.value;\n                }));\n            }\n\n            function toValue(values) {\n                return new (tree.Value)(values.map(function (p) {\n                    return p;\n                }));\n            }\n\n            parts = groups[k];\n\n            if (parts.length > 1) {\n                rule = parts[0];\n                var spacedGroups = [];\n                var lastSpacedGroup = [];\n                parts.map(function (p) {\n                    if (p.merge === \"+\") {\n                        if (lastSpacedGroup.length > 0) {\n                            spacedGroups.push(toExpression(lastSpacedGroup));\n                        }\n                        lastSpacedGroup = [];\n                    }\n                    lastSpacedGroup.push(p);\n                });\n                spacedGroups.push(toExpression(lastSpacedGroup));\n                rule.value = toValue(spacedGroups);\n            }\n        });\n    }\n};\n\nmodule.exports = ToCSSVisitor;\n\n},{\"../tree\":60,\"./visitor\":88}],88:[function(require,module,exports){\nvar tree = require(\"../tree\");\n\nvar _visitArgs = { visitDeeper: true },\n    _hasIndexed = false;\n\nfunction _noop(node) {\n    return node;\n}\n\nfunction indexNodeTypes(parent, ticker) {\n    // add .typeIndex to tree node types for lookup table\n    var key, child;\n    for (key in parent) {\n        if (parent.hasOwnProperty(key)) {\n            child = parent[key];\n            switch (typeof child) {\n                case \"function\":\n                    // ignore bound functions directly on tree which do not have a prototype\n                    // or aren't nodes\n                    if (child.prototype && child.prototype.type) {\n                        child.prototype.typeIndex = ticker++;\n                    }\n                    break;\n                case \"object\":\n                    ticker = indexNodeTypes(child, ticker);\n                    break;\n            }\n        }\n    }\n    return ticker;\n}\n\nvar Visitor = function(implementation) {\n    this._implementation = implementation;\n    this._visitFnCache = [];\n\n    if (!_hasIndexed) {\n        indexNodeTypes(tree, 1);\n        _hasIndexed = true;\n    }\n};\n\nVisitor.prototype = {\n    visit: function(node) {\n        if (!node) {\n            return node;\n        }\n\n        var nodeTypeIndex = node.typeIndex;\n        if (!nodeTypeIndex) {\n            return node;\n        }\n\n        var visitFnCache = this._visitFnCache,\n            impl = this._implementation,\n            aryIndx = nodeTypeIndex << 1,\n            outAryIndex = aryIndx | 1,\n            func = visitFnCache[aryIndx],\n            funcOut = visitFnCache[outAryIndex],\n            visitArgs = _visitArgs,\n            fnName;\n\n        visitArgs.visitDeeper = true;\n\n        if (!func) {\n            fnName = \"visit\" + node.type;\n            func = impl[fnName] || _noop;\n            funcOut = impl[fnName + \"Out\"] || _noop;\n            visitFnCache[aryIndx] = func;\n            visitFnCache[outAryIndex] = funcOut;\n        }\n\n        if (func !== _noop) {\n            var newNode = func.call(impl, node, visitArgs);\n            if (impl.isReplacing) {\n                node = newNode;\n            }\n        }\n\n        if (visitArgs.visitDeeper && node && node.accept) {\n            node.accept(this);\n        }\n\n        if (funcOut != _noop) {\n            funcOut.call(impl, node);\n        }\n\n        return node;\n    },\n    visitArray: function(nodes, nonReplacing) {\n        if (!nodes) {\n            return nodes;\n        }\n\n        var cnt = nodes.length, i;\n\n        // Non-replacing\n        if (nonReplacing || !this._implementation.isReplacing) {\n            for (i = 0; i < cnt; i++) {\n                this.visit(nodes[i]);\n            }\n            return nodes;\n        }\n\n        // Replacing\n        var out = [];\n        for (i = 0; i < cnt; i++) {\n            var evald = this.visit(nodes[i]);\n            if (evald === undefined) { continue; }\n            if (!evald.splice) {\n                out.push(evald);\n            } else if (evald.length) {\n                this.flatten(evald, out);\n            }\n        }\n        return out;\n    },\n    flatten: function(arr, out) {\n        if (!out) {\n            out = [];\n        }\n\n        var cnt, i, item,\n            nestedCnt, j, nestedItem;\n\n        for (i = 0, cnt = arr.length; i < cnt; i++) {\n            item = arr[i];\n            if (item === undefined) {\n                continue;\n            }\n            if (!item.splice) {\n                out.push(item);\n                continue;\n            }\n\n            for (j = 0, nestedCnt = item.length; j < nestedCnt; j++) {\n                nestedItem = item[j];\n                if (nestedItem === undefined) {\n                    continue;\n                }\n                if (!nestedItem.splice) {\n                    out.push(nestedItem);\n                } else if (nestedItem.length) {\n                    this.flatten(nestedItem, out);\n                }\n            }\n        }\n\n        return out;\n    }\n};\nmodule.exports = Visitor;\n\n},{\"../tree\":60}],89:[function(require,module,exports){\n// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    draining = true;\n    var currentQueue;\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        var i = -1;\n        while (++i < len) {\n            currentQueue[i]();\n        }\n        len = queue.length;\n    }\n    draining = false;\n}\nprocess.nextTick = function (fun) {\n    queue.push(fun);\n    if (!draining) {\n        setTimeout(drainQueue, 0);\n    }\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\n// TODO(shtylman)\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n},{}],90:[function(require,module,exports){\n'use strict';\n\nvar asap = require('asap')\n\nmodule.exports = Promise;\nfunction Promise(fn) {\n  if (typeof this !== 'object') throw new TypeError('Promises must be constructed via new')\n  if (typeof fn !== 'function') throw new TypeError('not a function')\n  var state = null\n  var value = null\n  var deferreds = []\n  var self = this\n\n  this.then = function(onFulfilled, onRejected) {\n    return new self.constructor(function(resolve, reject) {\n      handle(new Handler(onFulfilled, onRejected, resolve, reject))\n    })\n  }\n\n  function handle(deferred) {\n    if (state === null) {\n      deferreds.push(deferred)\n      return\n    }\n    asap(function() {\n      var cb = state ? deferred.onFulfilled : deferred.onRejected\n      if (cb === null) {\n        (state ? deferred.resolve : deferred.reject)(value)\n        return\n      }\n      var ret\n      try {\n        ret = cb(value)\n      }\n      catch (e) {\n        deferred.reject(e)\n        return\n      }\n      deferred.resolve(ret)\n    })\n  }\n\n  function resolve(newValue) {\n    try { //Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n      if (newValue === self) throw new TypeError('A promise cannot be resolved with itself.')\n      if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {\n        var then = newValue.then\n        if (typeof then === 'function') {\n          doResolve(then.bind(newValue), resolve, reject)\n          return\n        }\n      }\n      state = true\n      value = newValue\n      finale()\n    } catch (e) { reject(e) }\n  }\n\n  function reject(newValue) {\n    state = false\n    value = newValue\n    finale()\n  }\n\n  function finale() {\n    for (var i = 0, len = deferreds.length; i < len; i++)\n      handle(deferreds[i])\n    deferreds = null\n  }\n\n  doResolve(fn, resolve, reject)\n}\n\n\nfunction Handler(onFulfilled, onRejected, resolve, reject){\n  this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null\n  this.onRejected = typeof onRejected === 'function' ? onRejected : null\n  this.resolve = resolve\n  this.reject = reject\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, onFulfilled, onRejected) {\n  var done = false;\n  try {\n    fn(function (value) {\n      if (done) return\n      done = true\n      onFulfilled(value)\n    }, function (reason) {\n      if (done) return\n      done = true\n      onRejected(reason)\n    })\n  } catch (ex) {\n    if (done) return\n    done = true\n    onRejected(ex)\n  }\n}\n\n},{\"asap\":92}],91:[function(require,module,exports){\n'use strict';\n\n//This file contains the ES6 extensions to the core Promises/A+ API\n\nvar Promise = require('./core.js')\nvar asap = require('asap')\n\nmodule.exports = Promise\n\n/* Static Functions */\n\nfunction ValuePromise(value) {\n  this.then = function (onFulfilled) {\n    if (typeof onFulfilled !== 'function') return this\n    return new Promise(function (resolve, reject) {\n      asap(function () {\n        try {\n          resolve(onFulfilled(value))\n        } catch (ex) {\n          reject(ex);\n        }\n      })\n    })\n  }\n}\nValuePromise.prototype = Promise.prototype\n\nvar TRUE = new ValuePromise(true)\nvar FALSE = new ValuePromise(false)\nvar NULL = new ValuePromise(null)\nvar UNDEFINED = new ValuePromise(undefined)\nvar ZERO = new ValuePromise(0)\nvar EMPTYSTRING = new ValuePromise('')\n\nPromise.resolve = function (value) {\n  if (value instanceof Promise) return value\n\n  if (value === null) return NULL\n  if (value === undefined) return UNDEFINED\n  if (value === true) return TRUE\n  if (value === false) return FALSE\n  if (value === 0) return ZERO\n  if (value === '') return EMPTYSTRING\n\n  if (typeof value === 'object' || typeof value === 'function') {\n    try {\n      var then = value.then\n      if (typeof then === 'function') {\n        return new Promise(then.bind(value))\n      }\n    } catch (ex) {\n      return new Promise(function (resolve, reject) {\n        reject(ex)\n      })\n    }\n  }\n\n  return new ValuePromise(value)\n}\n\nPromise.all = function (arr) {\n  var args = Array.prototype.slice.call(arr)\n\n  return new Promise(function (resolve, reject) {\n    if (args.length === 0) return resolve([])\n    var remaining = args.length\n    function res(i, val) {\n      try {\n        if (val && (typeof val === 'object' || typeof val === 'function')) {\n          var then = val.then\n          if (typeof then === 'function') {\n            then.call(val, function (val) { res(i, val) }, reject)\n            return\n          }\n        }\n        args[i] = val\n        if (--remaining === 0) {\n          resolve(args);\n        }\n      } catch (ex) {\n        reject(ex)\n      }\n    }\n    for (var i = 0; i < args.length; i++) {\n      res(i, args[i])\n    }\n  })\n}\n\nPromise.reject = function (value) {\n  return new Promise(function (resolve, reject) {\n    reject(value);\n  });\n}\n\nPromise.race = function (values) {\n  return new Promise(function (resolve, reject) {\n    values.forEach(function(value){\n      Promise.resolve(value).then(resolve, reject);\n    })\n  });\n}\n\n/* Prototype Methods */\n\nPromise.prototype['catch'] = function (onRejected) {\n  return this.then(null, onRejected);\n}\n\n},{\"./core.js\":90,\"asap\":92}],92:[function(require,module,exports){\n(function (process){\n\n// Use the fastest possible means to execute a task in a future turn\n// of the event loop.\n\n// linked list of tasks (single, with head node)\nvar head = {task: void 0, next: null};\nvar tail = head;\nvar flushing = false;\nvar requestFlush = void 0;\nvar isNodeJS = false;\n\nfunction flush() {\n    /* jshint loopfunc: true */\n\n    while (head.next) {\n        head = head.next;\n        var task = head.task;\n        head.task = void 0;\n        var domain = head.domain;\n\n        if (domain) {\n            head.domain = void 0;\n            domain.enter();\n        }\n\n        try {\n            task();\n\n        } catch (e) {\n            if (isNodeJS) {\n                // In node, uncaught exceptions are considered fatal errors.\n                // Re-throw them synchronously to interrupt flushing!\n\n                // Ensure continuation if the uncaught exception is suppressed\n                // listening \"uncaughtException\" events (as domains does).\n                // Continue in next event to avoid tick recursion.\n                if (domain) {\n                    domain.exit();\n                }\n                setTimeout(flush, 0);\n                if (domain) {\n                    domain.enter();\n                }\n\n                throw e;\n\n            } else {\n                // In browsers, uncaught exceptions are not fatal.\n                // Re-throw them asynchronously to avoid slow-downs.\n                setTimeout(function() {\n                   throw e;\n                }, 0);\n            }\n        }\n\n        if (domain) {\n            domain.exit();\n        }\n    }\n\n    flushing = false;\n}\n\nif (typeof process !== \"undefined\" && process.nextTick) {\n    // Node.js before 0.9. Note that some fake-Node environments, like the\n    // Mocha test runner, introduce a `process` global without a `nextTick`.\n    isNodeJS = true;\n\n    requestFlush = function () {\n        process.nextTick(flush);\n    };\n\n} else if (typeof setImmediate === \"function\") {\n    // In IE10, Node.js 0.9+, or https://github.com/NobleJS/setImmediate\n    if (typeof window !== \"undefined\") {\n        requestFlush = setImmediate.bind(window, flush);\n    } else {\n        requestFlush = function () {\n            setImmediate(flush);\n        };\n    }\n\n} else if (typeof MessageChannel !== \"undefined\") {\n    // modern browsers\n    // http://www.nonblocking.io/2011/06/windownexttick.html\n    var channel = new MessageChannel();\n    channel.port1.onmessage = flush;\n    requestFlush = function () {\n        channel.port2.postMessage(0);\n    };\n\n} else {\n    // old browsers\n    requestFlush = function () {\n        setTimeout(flush, 0);\n    };\n}\n\nfunction asap(task) {\n    tail = tail.next = {\n        task: task,\n        domain: isNodeJS && process.domain,\n        next: null\n    };\n\n    if (!flushing) {\n        flushing = true;\n        requestFlush();\n    }\n};\n\nmodule.exports = asap;\n\n\n}).call(this,require('_process'))\n},{\"_process\":89}],93:[function(require,module,exports){\n// should work in any browser without browserify\n\nif (typeof Promise.prototype.done !== 'function') {\n  Promise.prototype.done = function (onFulfilled, onRejected) {\n    var self = arguments.length ? this.then.apply(this, arguments) : this\n    self.then(null, function (err) {\n      setTimeout(function () {\n        throw err\n      }, 0)\n    })\n  }\n}\n},{}],94:[function(require,module,exports){\n// not \"use strict\" so we can declare global \"Promise\"\n\nvar asap = require('asap');\n\nif (typeof Promise === 'undefined') {\n  Promise = require('./lib/core.js')\n  require('./lib/es6-extensions.js')\n}\n\nrequire('./polyfill-done.js');\n\n},{\"./lib/core.js\":90,\"./lib/es6-extensions.js\":91,\"./polyfill-done.js\":93,\"asap\":92}]},{},[2])(2)\n});"
  },
  {
    "path": "server/files/javascript/library/serialize-object.js",
    "content": "/**\n * jQuery serializeObject\n * @copyright 2014, macek <paulmacek@gmail.com>\n * @link https://github.com/macek/jquery-serialize-object\n * @license BSD\n * @version 2.5.0\n */\n(function(root, factory) {\n\n  // AMD\n  if (typeof define === \"function\" && define.amd) {\n    define([\"exports\", \"jquery\"], function(exports, $) {\n      return factory(exports, $);\n    });\n  }\n\n  // CommonJS\n  else if (typeof exports !== \"undefined\") {\n    var $ = require(\"jquery\");\n    factory(exports, $);\n  }\n\n  // Browser\n  else {\n    factory(root, (root.jQuery || root.Zepto || root.ender || root.$));\n  }\n\n}(this, function(exports, $) {\n\n  var patterns = {\n    validate: /^[a-z_][a-z0-9_]*(?:\\[(?:\\d*|[a-z0-9_]+)\\])*$/i,\n    key:      /[a-z0-9_]+|(?=\\[\\])/gi,\n    push:     /^$/,\n    fixed:    /^\\d+$/,\n    named:    /^[a-z0-9_]+$/i\n  };\n\n  function FormSerializer(helper, $form) {\n\n    // private variables\n    var data     = {},\n        pushes   = {};\n\n    // private API\n    function build(base, key, value) {\n      base[key] = value;\n      return base;\n    }\n\n    function makeObject(root, value) {\n\n      var keys = root.match(patterns.key), k;\n\n      // nest, nest, ..., nest\n      while ((k = keys.pop()) !== undefined) {\n        // foo[]\n        if (patterns.push.test(k)) {\n          var idx = incrementPush(root.replace(/\\[\\]$/, ''));\n          value = build([], idx, value);\n        }\n\n        // foo[n]\n        else if (patterns.fixed.test(k)) {\n          value = build([], k, value);\n        }\n\n        // foo; foo[bar]\n        else if (patterns.named.test(k)) {\n          value = build({}, k, value);\n        }\n      }\n\n      return value;\n    }\n\n    function incrementPush(key) {\n      if (pushes[key] === undefined) {\n        pushes[key] = 0;\n      }\n      return pushes[key]++;\n    }\n\n    function encode(pair) {\n      switch ($('[name=\"' + pair.name + '\"]', $form).attr(\"type\")) {\n        case \"checkbox\":\n          return pair.value === \"on\" ? true : pair.value;\n        default:\n          return pair.value;\n      }\n    }\n\n    function addPair(pair) {\n      if (!patterns.validate.test(pair.name)) return this;\n      var obj = makeObject(pair.name, encode(pair));\n      data = helper.extend(true, data, obj);\n      return this;\n    }\n\n    function addPairs(pairs) {\n      if (!helper.isArray(pairs)) {\n        throw new Error(\"formSerializer.addPairs expects an Array\");\n      }\n      for (var i=0, len=pairs.length; i<len; i++) {\n        this.addPair(pairs[i]);\n      }\n      return this;\n    }\n\n    function serialize() {\n      return data;\n    }\n\n    function serializeJSON() {\n      return JSON.stringify(serialize());\n    }\n\n    // public API\n    this.addPair = addPair;\n    this.addPairs = addPairs;\n    this.serialize = serialize;\n    this.serializeJSON = serializeJSON;\n  }\n\n  FormSerializer.patterns = patterns;\n\n  FormSerializer.serializeObject = function serializeObject() {\n    return new FormSerializer($, this).\n      addPairs(this.serializeArray()).\n      serialize();\n  };\n\n  FormSerializer.serializeJSON = function serializeJSON() {\n    return new FormSerializer($, this).\n      addPairs(this.serializeArray()).\n      serializeJSON();\n  };\n\n  if (typeof $.fn !== \"undefined\") {\n    $.fn.serializeObject = FormSerializer.serializeObject;\n    $.fn.serializeJSON   = FormSerializer.serializeJSON;\n  }\n\n  exports.FormSerializer = FormSerializer;\n\n  return FormSerializer;\n}));\n"
  },
  {
    "path": "server/files/javascript/library/sinon.js",
    "content": "/**\n * Sinon.JS 1.10.3, 2014/07/11\n *\n * @author Christian Johansen (christian@cjohansen.no)\n * @author Contributors: https://github.com/cjohansen/Sinon.JS/blob/master/AUTHORS\n *\n * (The BSD License)\n *\n * Copyright (c) 2010-2014, Christian Johansen, christian@cjohansen.no\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n *\n *     * Redistributions of source code must retain the above copyright notice,\n *       this list of conditions and the following disclaimer.\n *     * Redistributions in binary form must reproduce the above copyright notice,\n *       this list of conditions and the following disclaimer in the documentation\n *       and/or other materials provided with the distribution.\n *     * Neither the name of Christian Johansen nor the names of his contributors\n *       may be used to endorse or promote products derived from this software\n *       without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nthis.sinon = (function () {\nvar samsam, formatio;\nfunction define(mod, deps, fn) { if (mod == \"samsam\") { samsam = deps(); } else if (typeof fn === \"function\") { formatio = fn(samsam); } }\ndefine.amd = {};\n((typeof define === \"function\" && define.amd && function (m) { define(\"samsam\", m); }) ||\n (typeof module === \"object\" &&\n      function (m) { module.exports = m(); }) || // Node\n function (m) { this.samsam = m(); } // Browser globals\n)(function () {\n    var o = Object.prototype;\n    var div = typeof document !== \"undefined\" && document.createElement(\"div\");\n\n    function isNaN(value) {\n        // Unlike global isNaN, this avoids type coercion\n        // typeof check avoids IE host object issues, hat tip to\n        // lodash\n        var val = value; // JsLint thinks value !== value is \"weird\"\n        return typeof value === \"number\" && value !== val;\n    }\n\n    function getClass(value) {\n        // Returns the internal [[Class]] by calling Object.prototype.toString\n        // with the provided value as this. Return value is a string, naming the\n        // internal class, e.g. \"Array\"\n        return o.toString.call(value).split(/[ \\]]/)[1];\n    }\n\n    /**\n     * @name samsam.isArguments\n     * @param Object object\n     *\n     * Returns ``true`` if ``object`` is an ``arguments`` object,\n     * ``false`` otherwise.\n     */\n    function isArguments(object) {\n        if (typeof object !== \"object\" || typeof object.length !== \"number\" ||\n                getClass(object) === \"Array\") {\n            return false;\n        }\n        if (typeof object.callee == \"function\") { return true; }\n        try {\n            object[object.length] = 6;\n            delete object[object.length];\n        } catch (e) {\n            return true;\n        }\n        return false;\n    }\n\n    /**\n     * @name samsam.isElement\n     * @param Object object\n     *\n     * Returns ``true`` if ``object`` is a DOM element node. Unlike\n     * Underscore.js/lodash, this function will return ``false`` if ``object``\n     * is an *element-like* object, i.e. a regular object with a ``nodeType``\n     * property that holds the value ``1``.\n     */\n    function isElement(object) {\n        if (!object || object.nodeType !== 1 || !div) { return false; }\n        try {\n            object.appendChild(div);\n            object.removeChild(div);\n        } catch (e) {\n            return false;\n        }\n        return true;\n    }\n\n    /**\n     * @name samsam.keys\n     * @param Object object\n     *\n     * Return an array of own property names.\n     */\n    function keys(object) {\n        var ks = [], prop;\n        for (prop in object) {\n            if (o.hasOwnProperty.call(object, prop)) { ks.push(prop); }\n        }\n        return ks;\n    }\n\n    /**\n     * @name samsam.isDate\n     * @param Object value\n     *\n     * Returns true if the object is a ``Date``, or *date-like*. Duck typing\n     * of date objects work by checking that the object has a ``getTime``\n     * function whose return value equals the return value from the object's\n     * ``valueOf``.\n     */\n    function isDate(value) {\n        return typeof value.getTime == \"function\" &&\n            value.getTime() == value.valueOf();\n    }\n\n    /**\n     * @name samsam.isNegZero\n     * @param Object value\n     *\n     * Returns ``true`` if ``value`` is ``-0``.\n     */\n    function isNegZero(value) {\n        return value === 0 && 1 / value === -Infinity;\n    }\n\n    /**\n     * @name samsam.equal\n     * @param Object obj1\n     * @param Object obj2\n     *\n     * Returns ``true`` if two objects are strictly equal. Compared to\n     * ``===`` there are two exceptions:\n     *\n     *   - NaN is considered equal to NaN\n     *   - -0 and +0 are not considered equal\n     */\n    function identical(obj1, obj2) {\n        if (obj1 === obj2 || (isNaN(obj1) && isNaN(obj2))) {\n            return obj1 !== 0 || isNegZero(obj1) === isNegZero(obj2);\n        }\n    }\n\n\n    /**\n     * @name samsam.deepEqual\n     * @param Object obj1\n     * @param Object obj2\n     *\n     * Deep equal comparison. Two values are \"deep equal\" if:\n     *\n     *   - They are equal, according to samsam.identical\n     *   - They are both date objects representing the same time\n     *   - They are both arrays containing elements that are all deepEqual\n     *   - They are objects with the same set of properties, and each property\n     *     in ``obj1`` is deepEqual to the corresponding property in ``obj2``\n     *\n     * Supports cyclic objects.\n     */\n    function deepEqualCyclic(obj1, obj2) {\n\n        // used for cyclic comparison\n        // contain already visited objects\n        var objects1 = [],\n            objects2 = [],\n        // contain pathes (position in the object structure)\n        // of the already visited objects\n        // indexes same as in objects arrays\n            paths1 = [],\n            paths2 = [],\n        // contains combinations of already compared objects\n        // in the manner: { \"$1['ref']$2['ref']\": true }\n            compared = {};\n\n        /**\n         * used to check, if the value of a property is an object\n         * (cyclic logic is only needed for objects)\n         * only needed for cyclic logic\n         */\n        function isObject(value) {\n\n            if (typeof value === 'object' && value !== null &&\n                    !(value instanceof Boolean) &&\n                    !(value instanceof Date)    &&\n                    !(value instanceof Number)  &&\n                    !(value instanceof RegExp)  &&\n                    !(value instanceof String)) {\n\n                return true;\n            }\n\n            return false;\n        }\n\n        /**\n         * returns the index of the given object in the\n         * given objects array, -1 if not contained\n         * only needed for cyclic logic\n         */\n        function getIndex(objects, obj) {\n\n            var i;\n            for (i = 0; i < objects.length; i++) {\n                if (objects[i] === obj) {\n                    return i;\n                }\n            }\n\n            return -1;\n        }\n\n        // does the recursion for the deep equal check\n        return (function deepEqual(obj1, obj2, path1, path2) {\n            var type1 = typeof obj1;\n            var type2 = typeof obj2;\n\n            // == null also matches undefined\n            if (obj1 === obj2 ||\n                    isNaN(obj1) || isNaN(obj2) ||\n                    obj1 == null || obj2 == null ||\n                    type1 !== \"object\" || type2 !== \"object\") {\n\n                return identical(obj1, obj2);\n            }\n\n            // Elements are only equal if identical(expected, actual)\n            if (isElement(obj1) || isElement(obj2)) { return false; }\n\n            var isDate1 = isDate(obj1), isDate2 = isDate(obj2);\n            if (isDate1 || isDate2) {\n                if (!isDate1 || !isDate2 || obj1.getTime() !== obj2.getTime()) {\n                    return false;\n                }\n            }\n\n            if (obj1 instanceof RegExp && obj2 instanceof RegExp) {\n                if (obj1.toString() !== obj2.toString()) { return false; }\n            }\n\n            var class1 = getClass(obj1);\n            var class2 = getClass(obj2);\n            var keys1 = keys(obj1);\n            var keys2 = keys(obj2);\n\n            if (isArguments(obj1) || isArguments(obj2)) {\n                if (obj1.length !== obj2.length) { return false; }\n            } else {\n                if (type1 !== type2 || class1 !== class2 ||\n                        keys1.length !== keys2.length) {\n                    return false;\n                }\n            }\n\n            var key, i, l,\n                // following vars are used for the cyclic logic\n                value1, value2,\n                isObject1, isObject2,\n                index1, index2,\n                newPath1, newPath2;\n\n            for (i = 0, l = keys1.length; i < l; i++) {\n                key = keys1[i];\n                if (!o.hasOwnProperty.call(obj2, key)) {\n                    return false;\n                }\n\n                // Start of the cyclic logic\n\n                value1 = obj1[key];\n                value2 = obj2[key];\n\n                isObject1 = isObject(value1);\n                isObject2 = isObject(value2);\n\n                // determine, if the objects were already visited\n                // (it's faster to check for isObject first, than to\n                // get -1 from getIndex for non objects)\n                index1 = isObject1 ? getIndex(objects1, value1) : -1;\n                index2 = isObject2 ? getIndex(objects2, value2) : -1;\n\n                // determine the new pathes of the objects\n                // - for non cyclic objects the current path will be extended\n                //   by current property name\n                // - for cyclic objects the stored path is taken\n                newPath1 = index1 !== -1\n                    ? paths1[index1]\n                    : path1 + '[' + JSON.stringify(key) + ']';\n                newPath2 = index2 !== -1\n                    ? paths2[index2]\n                    : path2 + '[' + JSON.stringify(key) + ']';\n\n                // stop recursion if current objects are already compared\n                if (compared[newPath1 + newPath2]) {\n                    return true;\n                }\n\n                // remember the current objects and their pathes\n                if (index1 === -1 && isObject1) {\n                    objects1.push(value1);\n                    paths1.push(newPath1);\n                }\n                if (index2 === -1 && isObject2) {\n                    objects2.push(value2);\n                    paths2.push(newPath2);\n                }\n\n                // remember that the current objects are already compared\n                if (isObject1 && isObject2) {\n                    compared[newPath1 + newPath2] = true;\n                }\n\n                // End of cyclic logic\n\n                // neither value1 nor value2 is a cycle\n                // continue with next level\n                if (!deepEqual(value1, value2, newPath1, newPath2)) {\n                    return false;\n                }\n            }\n\n            return true;\n\n        }(obj1, obj2, '$1', '$2'));\n    }\n\n    var match;\n\n    function arrayContains(array, subset) {\n        if (subset.length === 0) { return true; }\n        var i, l, j, k;\n        for (i = 0, l = array.length; i < l; ++i) {\n            if (match(array[i], subset[0])) {\n                for (j = 0, k = subset.length; j < k; ++j) {\n                    if (!match(array[i + j], subset[j])) { return false; }\n                }\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     * @name samsam.match\n     * @param Object object\n     * @param Object matcher\n     *\n     * Compare arbitrary value ``object`` with matcher.\n     */\n    match = function match(object, matcher) {\n        if (matcher && typeof matcher.test === \"function\") {\n            return matcher.test(object);\n        }\n\n        if (typeof matcher === \"function\") {\n            return matcher(object) === true;\n        }\n\n        if (typeof matcher === \"string\") {\n            matcher = matcher.toLowerCase();\n            var notNull = typeof object === \"string\" || !!object;\n            return notNull &&\n                (String(object)).toLowerCase().indexOf(matcher) >= 0;\n        }\n\n        if (typeof matcher === \"number\") {\n            return matcher === object;\n        }\n\n        if (typeof matcher === \"boolean\") {\n            return matcher === object;\n        }\n\n        if (getClass(object) === \"Array\" && getClass(matcher) === \"Array\") {\n            return arrayContains(object, matcher);\n        }\n\n        if (matcher && typeof matcher === \"object\") {\n            var prop;\n            for (prop in matcher) {\n                if (!match(object[prop], matcher[prop])) {\n                    return false;\n                }\n            }\n            return true;\n        }\n\n        throw new Error(\"Matcher was not a string, a number, a \" +\n                        \"function, a boolean or an object\");\n    };\n\n    return {\n        isArguments: isArguments,\n        isElement: isElement,\n        isDate: isDate,\n        isNegZero: isNegZero,\n        identical: identical,\n        deepEqual: deepEqualCyclic,\n        match: match,\n        keys: keys\n    };\n});\n((typeof define === \"function\" && define.amd && function (m) {\n    define(\"formatio\", [\"samsam\"], m);\n}) || (typeof module === \"object\" && function (m) {\n    module.exports = m(require(\"samsam\"));\n}) || function (m) { this.formatio = m(this.samsam); }\n)(function (samsam) {\n\n    var formatio = {\n        excludeConstructors: [\"Object\", /^.$/],\n        quoteStrings: true\n    };\n\n    var hasOwn = Object.prototype.hasOwnProperty;\n\n    var specialObjects = [];\n    if (typeof global !== \"undefined\") {\n        specialObjects.push({ object: global, value: \"[object global]\" });\n    }\n    if (typeof document !== \"undefined\") {\n        specialObjects.push({\n            object: document,\n            value: \"[object HTMLDocument]\"\n        });\n    }\n    if (typeof window !== \"undefined\") {\n        specialObjects.push({ object: window, value: \"[object Window]\" });\n    }\n\n    function functionName(func) {\n        if (!func) { return \"\"; }\n        if (func.displayName) { return func.displayName; }\n        if (func.name) { return func.name; }\n        var matches = func.toString().match(/function\\s+([^\\(]+)/m);\n        return (matches && matches[1]) || \"\";\n    }\n\n    function constructorName(f, object) {\n        var name = functionName(object && object.constructor);\n        var excludes = f.excludeConstructors ||\n                formatio.excludeConstructors || [];\n\n        var i, l;\n        for (i = 0, l = excludes.length; i < l; ++i) {\n            if (typeof excludes[i] === \"string\" && excludes[i] === name) {\n                return \"\";\n            } else if (excludes[i].test && excludes[i].test(name)) {\n                return \"\";\n            }\n        }\n\n        return name;\n    }\n\n    function isCircular(object, objects) {\n        if (typeof object !== \"object\") { return false; }\n        var i, l;\n        for (i = 0, l = objects.length; i < l; ++i) {\n            if (objects[i] === object) { return true; }\n        }\n        return false;\n    }\n\n    function ascii(f, object, processed, indent) {\n        if (typeof object === \"string\") {\n            var qs = f.quoteStrings;\n            var quote = typeof qs !== \"boolean\" || qs;\n            return processed || quote ? '\"' + object + '\"' : object;\n        }\n\n        if (typeof object === \"function\" && !(object instanceof RegExp)) {\n            return ascii.func(object);\n        }\n\n        processed = processed || [];\n\n        if (isCircular(object, processed)) { return \"[Circular]\"; }\n\n        if (Object.prototype.toString.call(object) === \"[object Array]\") {\n            return ascii.array.call(f, object, processed);\n        }\n\n        if (!object) { return String((1/object) === -Infinity ? \"-0\" : object); }\n        if (samsam.isElement(object)) { return ascii.element(object); }\n\n        if (typeof object.toString === \"function\" &&\n                object.toString !== Object.prototype.toString) {\n            return object.toString();\n        }\n\n        var i, l;\n        for (i = 0, l = specialObjects.length; i < l; i++) {\n            if (object === specialObjects[i].object) {\n                return specialObjects[i].value;\n            }\n        }\n\n        return ascii.object.call(f, object, processed, indent);\n    }\n\n    ascii.func = function (func) {\n        return \"function \" + functionName(func) + \"() {}\";\n    };\n\n    ascii.array = function (array, processed) {\n        processed = processed || [];\n        processed.push(array);\n        var i, l, pieces = [];\n        for (i = 0, l = array.length; i < l; ++i) {\n            pieces.push(ascii(this, array[i], processed));\n        }\n        return \"[\" + pieces.join(\", \") + \"]\";\n    };\n\n    ascii.object = function (object, processed, indent) {\n        processed = processed || [];\n        processed.push(object);\n        indent = indent || 0;\n        var pieces = [], properties = samsam.keys(object).sort();\n        var length = 3;\n        var prop, str, obj, i, l;\n\n        for (i = 0, l = properties.length; i < l; ++i) {\n            prop = properties[i];\n            obj = object[prop];\n\n            if (isCircular(obj, processed)) {\n                str = \"[Circular]\";\n            } else {\n                str = ascii(this, obj, processed, indent + 2);\n            }\n\n            str = (/\\s/.test(prop) ? '\"' + prop + '\"' : prop) + \": \" + str;\n            length += str.length;\n            pieces.push(str);\n        }\n\n        var cons = constructorName(this, object);\n        var prefix = cons ? \"[\" + cons + \"] \" : \"\";\n        var is = \"\";\n        for (i = 0, l = indent; i < l; ++i) { is += \" \"; }\n\n        if (length + indent > 80) {\n            return prefix + \"{\\n  \" + is + pieces.join(\",\\n  \" + is) + \"\\n\" +\n                is + \"}\";\n        }\n        return prefix + \"{ \" + pieces.join(\", \") + \" }\";\n    };\n\n    ascii.element = function (element) {\n        var tagName = element.tagName.toLowerCase();\n        var attrs = element.attributes, attr, pairs = [], attrName, i, l, val;\n\n        for (i = 0, l = attrs.length; i < l; ++i) {\n            attr = attrs.item(i);\n            attrName = attr.nodeName.toLowerCase().replace(\"html:\", \"\");\n            val = attr.nodeValue;\n            if (attrName !== \"contenteditable\" || val !== \"inherit\") {\n                if (!!val) { pairs.push(attrName + \"=\\\"\" + val + \"\\\"\"); }\n            }\n        }\n\n        var formatted = \"<\" + tagName + (pairs.length > 0 ? \" \" : \"\");\n        var content = element.innerHTML;\n\n        if (content.length > 20) {\n            content = content.substr(0, 20) + \"[...]\";\n        }\n\n        var res = formatted + pairs.join(\" \") + \">\" + content +\n                \"</\" + tagName + \">\";\n\n        return res.replace(/ contentEditable=\"inherit\"/, \"\");\n    };\n\n    function Formatio(options) {\n        for (var opt in options) {\n            this[opt] = options[opt];\n        }\n    }\n\n    Formatio.prototype = {\n        functionName: functionName,\n\n        configure: function (options) {\n            return new Formatio(options);\n        },\n\n        constructorName: function (object) {\n            return constructorName(this, object);\n        },\n\n        ascii: function (object, processed, indent) {\n            return ascii(this, object, processed, indent);\n        }\n    };\n\n    return Formatio.prototype;\n});\n/*jslint eqeqeq: false, onevar: false, forin: true, nomen: false, regexp: false, plusplus: false*/\n/*global module, require, __dirname, document*/\n/**\n * Sinon core utilities. For internal use only.\n *\n * @author Christian Johansen (christian@cjohansen.no)\n * @license BSD\n *\n * Copyright (c) 2010-2013 Christian Johansen\n */\n\nvar sinon = (function (formatio) {\n    var div = typeof document != \"undefined\" && document.createElement(\"div\");\n    var hasOwn = Object.prototype.hasOwnProperty;\n\n    function isDOMNode(obj) {\n        var success = false;\n\n        try {\n            obj.appendChild(div);\n            success = div.parentNode == obj;\n        } catch (e) {\n            return false;\n        } finally {\n            try {\n                obj.removeChild(div);\n            } catch (e) {\n                // Remove failed, not much we can do about that\n            }\n        }\n\n        return success;\n    }\n\n    function isElement(obj) {\n        return div && obj && obj.nodeType === 1 && isDOMNode(obj);\n    }\n\n    function isFunction(obj) {\n        return typeof obj === \"function\" || !!(obj && obj.constructor && obj.call && obj.apply);\n    }\n\n    function isReallyNaN(val) {\n        return typeof val === 'number' && isNaN(val);\n    }\n\n    function mirrorProperties(target, source) {\n        for (var prop in source) {\n            if (!hasOwn.call(target, prop)) {\n                target[prop] = source[prop];\n            }\n        }\n    }\n\n    function isRestorable (obj) {\n        return typeof obj === \"function\" && typeof obj.restore === \"function\" && obj.restore.sinon;\n    }\n\n    var sinon = {\n        wrapMethod: function wrapMethod(object, property, method) {\n            if (!object) {\n                throw new TypeError(\"Should wrap property of object\");\n            }\n\n            if (typeof method != \"function\") {\n                throw new TypeError(\"Method wrapper should be function\");\n            }\n\n            var wrappedMethod = object[property],\n                error;\n\n            if (!isFunction(wrappedMethod)) {\n                error = new TypeError(\"Attempted to wrap \" + (typeof wrappedMethod) + \" property \" +\n                                    property + \" as function\");\n            } else if (wrappedMethod.restore && wrappedMethod.restore.sinon) {\n                error = new TypeError(\"Attempted to wrap \" + property + \" which is already wrapped\");\n            } else if (wrappedMethod.calledBefore) {\n                var verb = !!wrappedMethod.returns ? \"stubbed\" : \"spied on\";\n                error = new TypeError(\"Attempted to wrap \" + property + \" which is already \" + verb);\n            }\n\n            if (error) {\n                if (wrappedMethod && wrappedMethod._stack) {\n                    error.stack += '\\n--------------\\n' + wrappedMethod._stack;\n                }\n                throw error;\n            }\n\n            // IE 8 does not support hasOwnProperty on the window object and Firefox has a problem\n            // when using hasOwn.call on objects from other frames.\n            var owned = object.hasOwnProperty ? object.hasOwnProperty(property) : hasOwn.call(object, property);\n            object[property] = method;\n            method.displayName = property;\n            // Set up a stack trace which can be used later to find what line of\n            // code the original method was created on.\n            method._stack = (new Error('Stack Trace for original')).stack;\n\n            method.restore = function () {\n                // For prototype properties try to reset by delete first.\n                // If this fails (ex: localStorage on mobile safari) then force a reset\n                // via direct assignment.\n                if (!owned) {\n                    delete object[property];\n                }\n                if (object[property] === method) {\n                    object[property] = wrappedMethod;\n                }\n            };\n\n            method.restore.sinon = true;\n            mirrorProperties(method, wrappedMethod);\n\n            return method;\n        },\n\n        extend: function extend(target) {\n            for (var i = 1, l = arguments.length; i < l; i += 1) {\n                for (var prop in arguments[i]) {\n                    if (arguments[i].hasOwnProperty(prop)) {\n                        target[prop] = arguments[i][prop];\n                    }\n\n                    // DONT ENUM bug, only care about toString\n                    if (arguments[i].hasOwnProperty(\"toString\") &&\n                        arguments[i].toString != target.toString) {\n                        target.toString = arguments[i].toString;\n                    }\n                }\n            }\n\n            return target;\n        },\n\n        create: function create(proto) {\n            var F = function () {};\n            F.prototype = proto;\n            return new F();\n        },\n\n        deepEqual: function deepEqual(a, b) {\n            if (sinon.match && sinon.match.isMatcher(a)) {\n                return a.test(b);\n            }\n\n            if (typeof a != 'object' || typeof b != 'object') {\n                if (isReallyNaN(a) && isReallyNaN(b)) {\n                    return true;\n                } else {\n                    return a === b;\n                }\n            }\n\n            if (isElement(a) || isElement(b)) {\n                return a === b;\n            }\n\n            if (a === b) {\n                return true;\n            }\n\n            if ((a === null && b !== null) || (a !== null && b === null)) {\n                return false;\n            }\n\n            if (a instanceof RegExp && b instanceof RegExp) {\n              return (a.source === b.source) && (a.global === b.global) &&\n                (a.ignoreCase === b.ignoreCase) && (a.multiline === b.multiline);\n            }\n\n            var aString = Object.prototype.toString.call(a);\n            if (aString != Object.prototype.toString.call(b)) {\n                return false;\n            }\n\n            if (aString == \"[object Date]\") {\n                return a.valueOf() === b.valueOf();\n            }\n\n            var prop, aLength = 0, bLength = 0;\n\n            if (aString == \"[object Array]\" && a.length !== b.length) {\n                return false;\n            }\n\n            for (prop in a) {\n                aLength += 1;\n\n                if (!(prop in b)) {\n                    return false;\n                }\n\n                if (!deepEqual(a[prop], b[prop])) {\n                    return false;\n                }\n            }\n\n            for (prop in b) {\n                bLength += 1;\n            }\n\n            return aLength == bLength;\n        },\n\n        functionName: function functionName(func) {\n            var name = func.displayName || func.name;\n\n            // Use function decomposition as a last resort to get function\n            // name. Does not rely on function decomposition to work - if it\n            // doesn't debugging will be slightly less informative\n            // (i.e. toString will say 'spy' rather than 'myFunc').\n            if (!name) {\n                var matches = func.toString().match(/function ([^\\s\\(]+)/);\n                name = matches && matches[1];\n            }\n\n            return name;\n        },\n\n        functionToString: function toString() {\n            if (this.getCall && this.callCount) {\n                var thisValue, prop, i = this.callCount;\n\n                while (i--) {\n                    thisValue = this.getCall(i).thisValue;\n\n                    for (prop in thisValue) {\n                        if (thisValue[prop] === this) {\n                            return prop;\n                        }\n                    }\n                }\n            }\n\n            return this.displayName || \"sinon fake\";\n        },\n\n        getConfig: function (custom) {\n            var config = {};\n            custom = custom || {};\n            var defaults = sinon.defaultConfig;\n\n            for (var prop in defaults) {\n                if (defaults.hasOwnProperty(prop)) {\n                    config[prop] = custom.hasOwnProperty(prop) ? custom[prop] : defaults[prop];\n                }\n            }\n\n            return config;\n        },\n\n        format: function (val) {\n            return \"\" + val;\n        },\n\n        defaultConfig: {\n            injectIntoThis: true,\n            injectInto: null,\n            properties: [\"spy\", \"stub\", \"mock\", \"clock\", \"server\", \"requests\"],\n            useFakeTimers: true,\n            useFakeServer: true\n        },\n\n        timesInWords: function timesInWords(count) {\n            return count == 1 && \"once\" ||\n                count == 2 && \"twice\" ||\n                count == 3 && \"thrice\" ||\n                (count || 0) + \" times\";\n        },\n\n        calledInOrder: function (spies) {\n            for (var i = 1, l = spies.length; i < l; i++) {\n                if (!spies[i - 1].calledBefore(spies[i]) || !spies[i].called) {\n                    return false;\n                }\n            }\n\n            return true;\n        },\n\n        orderByFirstCall: function (spies) {\n            return spies.sort(function (a, b) {\n                // uuid, won't ever be equal\n                var aCall = a.getCall(0);\n                var bCall = b.getCall(0);\n                var aId = aCall && aCall.callId || -1;\n                var bId = bCall && bCall.callId || -1;\n\n                return aId < bId ? -1 : 1;\n            });\n        },\n\n        log: function () {},\n\n        logError: function (label, err) {\n            var msg = label + \" threw exception: \";\n            sinon.log(msg + \"[\" + err.name + \"] \" + err.message);\n            if (err.stack) { sinon.log(err.stack); }\n\n            setTimeout(function () {\n                err.message = msg + err.message;\n                throw err;\n            }, 0);\n        },\n\n        typeOf: function (value) {\n            if (value === null) {\n                return \"null\";\n            }\n            else if (value === undefined) {\n                return \"undefined\";\n            }\n            var string = Object.prototype.toString.call(value);\n            return string.substring(8, string.length - 1).toLowerCase();\n        },\n\n        createStubInstance: function (constructor) {\n            if (typeof constructor !== \"function\") {\n                throw new TypeError(\"The constructor should be a function.\");\n            }\n            return sinon.stub(sinon.create(constructor.prototype));\n        },\n\n        restore: function (object) {\n            if (object !== null && typeof object === \"object\") {\n                for (var prop in object) {\n                    if (isRestorable(object[prop])) {\n                        object[prop].restore();\n                    }\n                }\n            }\n            else if (isRestorable(object)) {\n                object.restore();\n            }\n        }\n    };\n\n    var isNode = typeof module !== \"undefined\" && module.exports && typeof require == \"function\";\n    var isAMD = typeof define === 'function' && typeof define.amd === 'object' && define.amd;\n\n    function makePublicAPI(require, exports, module) {\n        module.exports = sinon;\n        sinon.spy = require(\"./sinon/spy\");\n        sinon.spyCall = require(\"./sinon/call\");\n        sinon.behavior = require(\"./sinon/behavior\");\n        sinon.stub = require(\"./sinon/stub\");\n        sinon.mock = require(\"./sinon/mock\");\n        sinon.collection = require(\"./sinon/collection\");\n        sinon.assert = require(\"./sinon/assert\");\n        sinon.sandbox = require(\"./sinon/sandbox\");\n        sinon.test = require(\"./sinon/test\");\n        sinon.testCase = require(\"./sinon/test_case\");\n        sinon.match = require(\"./sinon/match\");\n    }\n\n    if (isAMD) {\n        define(makePublicAPI);\n    } else if (isNode) {\n        try {\n            formatio = require(\"formatio\");\n        } catch (e) {}\n        makePublicAPI(require, exports, module);\n    }\n\n    if (formatio) {\n        var formatter = formatio.configure({ quoteStrings: false });\n        sinon.format = function () {\n            return formatter.ascii.apply(formatter, arguments);\n        };\n    } else if (isNode) {\n        try {\n            var util = require(\"util\");\n            sinon.format = function (value) {\n                return typeof value == \"object\" && value.toString === Object.prototype.toString ? util.inspect(value) : value;\n            };\n        } catch (e) {\n            /* Node, but no util module - would be very old, but better safe than\n             sorry */\n        }\n    }\n\n    return sinon;\n}(typeof formatio == \"object\" && formatio));\n\n/* @depend ../sinon.js */\n/*jslint eqeqeq: false, onevar: false, plusplus: false*/\n/*global module, require, sinon*/\n/**\n * Match functions\n *\n * @author Maximilian Antoni (mail@maxantoni.de)\n * @license BSD\n *\n * Copyright (c) 2012 Maximilian Antoni\n */\n\n(function (sinon) {\n    var commonJSModule = typeof module !== \"undefined\" && module.exports && typeof require == \"function\";\n\n    if (!sinon && commonJSModule) {\n        sinon = require(\"../sinon\");\n    }\n\n    if (!sinon) {\n        return;\n    }\n\n    function assertType(value, type, name) {\n        var actual = sinon.typeOf(value);\n        if (actual !== type) {\n            throw new TypeError(\"Expected type of \" + name + \" to be \" +\n                type + \", but was \" + actual);\n        }\n    }\n\n    var matcher = {\n        toString: function () {\n            return this.message;\n        }\n    };\n\n    function isMatcher(object) {\n        return matcher.isPrototypeOf(object);\n    }\n\n    function matchObject(expectation, actual) {\n        if (actual === null || actual === undefined) {\n            return false;\n        }\n        for (var key in expectation) {\n            if (expectation.hasOwnProperty(key)) {\n                var exp = expectation[key];\n                var act = actual[key];\n                if (match.isMatcher(exp)) {\n                    if (!exp.test(act)) {\n                        return false;\n                    }\n                } else if (sinon.typeOf(exp) === \"object\") {\n                    if (!matchObject(exp, act)) {\n                        return false;\n                    }\n                } else if (!sinon.deepEqual(exp, act)) {\n                    return false;\n                }\n            }\n        }\n        return true;\n    }\n\n    matcher.or = function (m2) {\n        if (!arguments.length) {\n            throw new TypeError(\"Matcher expected\");\n        } else if (!isMatcher(m2)) {\n            m2 = match(m2);\n        }\n        var m1 = this;\n        var or = sinon.create(matcher);\n        or.test = function (actual) {\n            return m1.test(actual) || m2.test(actual);\n        };\n        or.message = m1.message + \".or(\" + m2.message + \")\";\n        return or;\n    };\n\n    matcher.and = function (m2) {\n        if (!arguments.length) {\n            throw new TypeError(\"Matcher expected\");\n        } else if (!isMatcher(m2)) {\n            m2 = match(m2);\n        }\n        var m1 = this;\n        var and = sinon.create(matcher);\n        and.test = function (actual) {\n            return m1.test(actual) && m2.test(actual);\n        };\n        and.message = m1.message + \".and(\" + m2.message + \")\";\n        return and;\n    };\n\n    var match = function (expectation, message) {\n        var m = sinon.create(matcher);\n        var type = sinon.typeOf(expectation);\n        switch (type) {\n        case \"object\":\n            if (typeof expectation.test === \"function\") {\n                m.test = function (actual) {\n                    return expectation.test(actual) === true;\n                };\n                m.message = \"match(\" + sinon.functionName(expectation.test) + \")\";\n                return m;\n            }\n            var str = [];\n            for (var key in expectation) {\n                if (expectation.hasOwnProperty(key)) {\n                    str.push(key + \": \" + expectation[key]);\n                }\n            }\n            m.test = function (actual) {\n                return matchObject(expectation, actual);\n            };\n            m.message = \"match(\" + str.join(\", \") + \")\";\n            break;\n        case \"number\":\n            m.test = function (actual) {\n                return expectation == actual;\n            };\n            break;\n        case \"string\":\n            m.test = function (actual) {\n                if (typeof actual !== \"string\") {\n                    return false;\n                }\n                return actual.indexOf(expectation) !== -1;\n            };\n            m.message = \"match(\\\"\" + expectation + \"\\\")\";\n            break;\n        case \"regexp\":\n            m.test = function (actual) {\n                if (typeof actual !== \"string\") {\n                    return false;\n                }\n                return expectation.test(actual);\n            };\n            break;\n        case \"function\":\n            m.test = expectation;\n            if (message) {\n                m.message = message;\n            } else {\n                m.message = \"match(\" + sinon.functionName(expectation) + \")\";\n            }\n            break;\n        default:\n            m.test = function (actual) {\n              return sinon.deepEqual(expectation, actual);\n            };\n        }\n        if (!m.message) {\n            m.message = \"match(\" + expectation + \")\";\n        }\n        return m;\n    };\n\n    match.isMatcher = isMatcher;\n\n    match.any = match(function () {\n        return true;\n    }, \"any\");\n\n    match.defined = match(function (actual) {\n        return actual !== null && actual !== undefined;\n    }, \"defined\");\n\n    match.truthy = match(function (actual) {\n        return !!actual;\n    }, \"truthy\");\n\n    match.falsy = match(function (actual) {\n        return !actual;\n    }, \"falsy\");\n\n    match.same = function (expectation) {\n        return match(function (actual) {\n            return expectation === actual;\n        }, \"same(\" + expectation + \")\");\n    };\n\n    match.typeOf = function (type) {\n        assertType(type, \"string\", \"type\");\n        return match(function (actual) {\n            return sinon.typeOf(actual) === type;\n        }, \"typeOf(\\\"\" + type + \"\\\")\");\n    };\n\n    match.instanceOf = function (type) {\n        assertType(type, \"function\", \"type\");\n        return match(function (actual) {\n            return actual instanceof type;\n        }, \"instanceOf(\" + sinon.functionName(type) + \")\");\n    };\n\n    function createPropertyMatcher(propertyTest, messagePrefix) {\n        return function (property, value) {\n            assertType(property, \"string\", \"property\");\n            var onlyProperty = arguments.length === 1;\n            var message = messagePrefix + \"(\\\"\" + property + \"\\\"\";\n            if (!onlyProperty) {\n                message += \", \" + value;\n            }\n            message += \")\";\n            return match(function (actual) {\n                if (actual === undefined || actual === null ||\n                        !propertyTest(actual, property)) {\n                    return false;\n                }\n                return onlyProperty || sinon.deepEqual(value, actual[property]);\n            }, message);\n        };\n    }\n\n    match.has = createPropertyMatcher(function (actual, property) {\n        if (typeof actual === \"object\") {\n            return property in actual;\n        }\n        return actual[property] !== undefined;\n    }, \"has\");\n\n    match.hasOwn = createPropertyMatcher(function (actual, property) {\n        return actual.hasOwnProperty(property);\n    }, \"hasOwn\");\n\n    match.bool = match.typeOf(\"boolean\");\n    match.number = match.typeOf(\"number\");\n    match.string = match.typeOf(\"string\");\n    match.object = match.typeOf(\"object\");\n    match.func = match.typeOf(\"function\");\n    match.array = match.typeOf(\"array\");\n    match.regexp = match.typeOf(\"regexp\");\n    match.date = match.typeOf(\"date\");\n\n    sinon.match = match;\n\n    if (typeof define === \"function\" && define.amd) {\n        define([\"module\"], function(module) { module.exports = match; });\n    } else if (commonJSModule) {\n        module.exports = match;\n    }\n}(typeof sinon == \"object\" && sinon || null));\n\n/**\n  * @depend ../sinon.js\n  * @depend match.js\n  */\n/*jslint eqeqeq: false, onevar: false, plusplus: false*/\n/*global module, require, sinon*/\n/**\n  * Spy calls\n  *\n  * @author Christian Johansen (christian@cjohansen.no)\n  * @author Maximilian Antoni (mail@maxantoni.de)\n  * @license BSD\n  *\n  * Copyright (c) 2010-2013 Christian Johansen\n  * Copyright (c) 2013 Maximilian Antoni\n  */\n\n(function (sinon) {\n    var commonJSModule = typeof module !== \"undefined\" && module.exports && typeof require == \"function\";\n    if (!sinon && commonJSModule) {\n        sinon = require(\"../sinon\");\n    }\n\n    if (!sinon) {\n        return;\n    }\n\n    function throwYieldError(proxy, text, args) {\n        var msg = sinon.functionName(proxy) + text;\n        if (args.length) {\n            msg += \" Received [\" + slice.call(args).join(\", \") + \"]\";\n        }\n        throw new Error(msg);\n    }\n\n    var slice = Array.prototype.slice;\n\n    var callProto = {\n        calledOn: function calledOn(thisValue) {\n            if (sinon.match && sinon.match.isMatcher(thisValue)) {\n                return thisValue.test(this.thisValue);\n            }\n            return this.thisValue === thisValue;\n        },\n\n        calledWith: function calledWith() {\n            for (var i = 0, l = arguments.length; i < l; i += 1) {\n                if (!sinon.deepEqual(arguments[i], this.args[i])) {\n                    return false;\n                }\n            }\n\n            return true;\n        },\n\n        calledWithMatch: function calledWithMatch() {\n            for (var i = 0, l = arguments.length; i < l; i += 1) {\n                var actual = this.args[i];\n                var expectation = arguments[i];\n                if (!sinon.match || !sinon.match(expectation).test(actual)) {\n                    return false;\n                }\n            }\n            return true;\n        },\n\n        calledWithExactly: function calledWithExactly() {\n            return arguments.length == this.args.length &&\n                this.calledWith.apply(this, arguments);\n        },\n\n        notCalledWith: function notCalledWith() {\n            return !this.calledWith.apply(this, arguments);\n        },\n\n        notCalledWithMatch: function notCalledWithMatch() {\n            return !this.calledWithMatch.apply(this, arguments);\n        },\n\n        returned: function returned(value) {\n            return sinon.deepEqual(value, this.returnValue);\n        },\n\n        threw: function threw(error) {\n            if (typeof error === \"undefined\" || !this.exception) {\n                return !!this.exception;\n            }\n\n            return this.exception === error || this.exception.name === error;\n        },\n\n        calledWithNew: function calledWithNew() {\n            return this.proxy.prototype && this.thisValue instanceof this.proxy;\n        },\n\n        calledBefore: function (other) {\n            return this.callId < other.callId;\n        },\n\n        calledAfter: function (other) {\n            return this.callId > other.callId;\n        },\n\n        callArg: function (pos) {\n            this.args[pos]();\n        },\n\n        callArgOn: function (pos, thisValue) {\n            this.args[pos].apply(thisValue);\n        },\n\n        callArgWith: function (pos) {\n            this.callArgOnWith.apply(this, [pos, null].concat(slice.call(arguments, 1)));\n        },\n\n        callArgOnWith: function (pos, thisValue) {\n            var args = slice.call(arguments, 2);\n            this.args[pos].apply(thisValue, args);\n        },\n\n        \"yield\": function () {\n            this.yieldOn.apply(this, [null].concat(slice.call(arguments, 0)));\n        },\n\n        yieldOn: function (thisValue) {\n            var args = this.args;\n            for (var i = 0, l = args.length; i < l; ++i) {\n                if (typeof args[i] === \"function\") {\n                    args[i].apply(thisValue, slice.call(arguments, 1));\n                    return;\n                }\n            }\n            throwYieldError(this.proxy, \" cannot yield since no callback was passed.\", args);\n        },\n\n        yieldTo: function (prop) {\n            this.yieldToOn.apply(this, [prop, null].concat(slice.call(arguments, 1)));\n        },\n\n        yieldToOn: function (prop, thisValue) {\n            var args = this.args;\n            for (var i = 0, l = args.length; i < l; ++i) {\n                if (args[i] && typeof args[i][prop] === \"function\") {\n                    args[i][prop].apply(thisValue, slice.call(arguments, 2));\n                    return;\n                }\n            }\n            throwYieldError(this.proxy, \" cannot yield to '\" + prop +\n                \"' since no callback was passed.\", args);\n        },\n\n        toString: function () {\n            var callStr = this.proxy.toString() + \"(\";\n            var args = [];\n\n            for (var i = 0, l = this.args.length; i < l; ++i) {\n                args.push(sinon.format(this.args[i]));\n            }\n\n            callStr = callStr + args.join(\", \") + \")\";\n\n            if (typeof this.returnValue != \"undefined\") {\n                callStr += \" => \" + sinon.format(this.returnValue);\n            }\n\n            if (this.exception) {\n                callStr += \" !\" + this.exception.name;\n\n                if (this.exception.message) {\n                    callStr += \"(\" + this.exception.message + \")\";\n                }\n            }\n\n            return callStr;\n        }\n    };\n\n    callProto.invokeCallback = callProto.yield;\n\n    function createSpyCall(spy, thisValue, args, returnValue, exception, id) {\n        if (typeof id !== \"number\") {\n            throw new TypeError(\"Call id is not a number\");\n        }\n        var proxyCall = sinon.create(callProto);\n        proxyCall.proxy = spy;\n        proxyCall.thisValue = thisValue;\n        proxyCall.args = args;\n        proxyCall.returnValue = returnValue;\n        proxyCall.exception = exception;\n        proxyCall.callId = id;\n\n        return proxyCall;\n    }\n    createSpyCall.toString = callProto.toString; // used by mocks\n\n    sinon.spyCall = createSpyCall;\n\n    if (typeof define === \"function\" && define.amd) {\n        define([\"module\"], function(module) { module.exports = createSpyCall; });\n    } else if (commonJSModule) {\n        module.exports = createSpyCall;\n    }\n}(typeof sinon == \"object\" && sinon || null));\n\n\n/**\n  * @depend ../sinon.js\n  * @depend call.js\n  */\n/*jslint eqeqeq: false, onevar: false, plusplus: false*/\n/*global module, require, sinon*/\n/**\n  * Spy functions\n  *\n  * @author Christian Johansen (christian@cjohansen.no)\n  * @license BSD\n  *\n  * Copyright (c) 2010-2013 Christian Johansen\n  */\n\n(function (sinon) {\n    var commonJSModule = typeof module !== \"undefined\" && module.exports && typeof require == \"function\";\n    var push = Array.prototype.push;\n    var slice = Array.prototype.slice;\n    var callId = 0;\n\n    if (!sinon && commonJSModule) {\n        sinon = require(\"../sinon\");\n    }\n\n    if (!sinon) {\n        return;\n    }\n\n    function spy(object, property) {\n        if (!property && typeof object == \"function\") {\n            return spy.create(object);\n        }\n\n        if (!object && !property) {\n            return spy.create(function () { });\n        }\n\n        var method = object[property];\n        return sinon.wrapMethod(object, property, spy.create(method));\n    }\n\n    function matchingFake(fakes, args, strict) {\n        if (!fakes) {\n            return;\n        }\n\n        for (var i = 0, l = fakes.length; i < l; i++) {\n            if (fakes[i].matches(args, strict)) {\n                return fakes[i];\n            }\n        }\n    }\n\n    function incrementCallCount() {\n        this.called = true;\n        this.callCount += 1;\n        this.notCalled = false;\n        this.calledOnce = this.callCount == 1;\n        this.calledTwice = this.callCount == 2;\n        this.calledThrice = this.callCount == 3;\n    }\n\n    function createCallProperties() {\n        this.firstCall = this.getCall(0);\n        this.secondCall = this.getCall(1);\n        this.thirdCall = this.getCall(2);\n        this.lastCall = this.getCall(this.callCount - 1);\n    }\n\n    var vars = \"a,b,c,d,e,f,g,h,i,j,k,l\";\n    function createProxy(func) {\n        // Retain the function length:\n        var p;\n        if (func.length) {\n            eval(\"p = (function proxy(\" + vars.substring(0, func.length * 2 - 1) +\n                \") { return p.invoke(func, this, slice.call(arguments)); });\");\n        }\n        else {\n            p = function proxy() {\n                return p.invoke(func, this, slice.call(arguments));\n            };\n        }\n        return p;\n    }\n\n    var uuid = 0;\n\n    // Public API\n    var spyApi = {\n        reset: function () {\n            this.called = false;\n            this.notCalled = true;\n            this.calledOnce = false;\n            this.calledTwice = false;\n            this.calledThrice = false;\n            this.callCount = 0;\n            this.firstCall = null;\n            this.secondCall = null;\n            this.thirdCall = null;\n            this.lastCall = null;\n            this.args = [];\n            this.returnValues = [];\n            this.thisValues = [];\n            this.exceptions = [];\n            this.callIds = [];\n            if (this.fakes) {\n                for (var i = 0; i < this.fakes.length; i++) {\n                    this.fakes[i].reset();\n                }\n            }\n        },\n\n        create: function create(func) {\n            var name;\n\n            if (typeof func != \"function\") {\n                func = function () { };\n            } else {\n                name = sinon.functionName(func);\n            }\n\n            var proxy = createProxy(func);\n\n            sinon.extend(proxy, spy);\n            delete proxy.create;\n            sinon.extend(proxy, func);\n\n            proxy.reset();\n            proxy.prototype = func.prototype;\n            proxy.displayName = name || \"spy\";\n            proxy.toString = sinon.functionToString;\n            proxy._create = sinon.spy.create;\n            proxy.id = \"spy#\" + uuid++;\n\n            return proxy;\n        },\n\n        invoke: function invoke(func, thisValue, args) {\n            var matching = matchingFake(this.fakes, args);\n            var exception, returnValue;\n\n            incrementCallCount.call(this);\n            push.call(this.thisValues, thisValue);\n            push.call(this.args, args);\n            push.call(this.callIds, callId++);\n\n            // Make call properties available from within the spied function:\n            createCallProperties.call(this);\n\n            try {\n                if (matching) {\n                    returnValue = matching.invoke(func, thisValue, args);\n                } else {\n                    returnValue = (this.func || func).apply(thisValue, args);\n                }\n\n                var thisCall = this.getCall(this.callCount - 1);\n                if (thisCall.calledWithNew() && typeof returnValue !== 'object') {\n                    returnValue = thisValue;\n                }\n            } catch (e) {\n                exception = e;\n            }\n\n            push.call(this.exceptions, exception);\n            push.call(this.returnValues, returnValue);\n\n            // Make return value and exception available in the calls:\n            createCallProperties.call(this);\n\n            if (exception !== undefined) {\n                throw exception;\n            }\n\n            return returnValue;\n        },\n\n        named: function named(name) {\n            this.displayName = name;\n            return this;\n        },\n\n        getCall: function getCall(i) {\n            if (i < 0 || i >= this.callCount) {\n                return null;\n            }\n\n            return sinon.spyCall(this, this.thisValues[i], this.args[i],\n                                    this.returnValues[i], this.exceptions[i],\n                                    this.callIds[i]);\n        },\n\n        getCalls: function () {\n            var calls = [];\n            var i;\n\n            for (i = 0; i < this.callCount; i++) {\n                calls.push(this.getCall(i));\n            }\n\n            return calls;\n        },\n\n        calledBefore: function calledBefore(spyFn) {\n            if (!this.called) {\n                return false;\n            }\n\n            if (!spyFn.called) {\n                return true;\n            }\n\n            return this.callIds[0] < spyFn.callIds[spyFn.callIds.length - 1];\n        },\n\n        calledAfter: function calledAfter(spyFn) {\n            if (!this.called || !spyFn.called) {\n                return false;\n            }\n\n            return this.callIds[this.callCount - 1] > spyFn.callIds[spyFn.callCount - 1];\n        },\n\n        withArgs: function () {\n            var args = slice.call(arguments);\n\n            if (this.fakes) {\n                var match = matchingFake(this.fakes, args, true);\n\n                if (match) {\n                    return match;\n                }\n            } else {\n                this.fakes = [];\n            }\n\n            var original = this;\n            var fake = this._create();\n            fake.matchingAguments = args;\n            fake.parent = this;\n            push.call(this.fakes, fake);\n\n            fake.withArgs = function () {\n                return original.withArgs.apply(original, arguments);\n            };\n\n            for (var i = 0; i < this.args.length; i++) {\n                if (fake.matches(this.args[i])) {\n                    incrementCallCount.call(fake);\n                    push.call(fake.thisValues, this.thisValues[i]);\n                    push.call(fake.args, this.args[i]);\n                    push.call(fake.returnValues, this.returnValues[i]);\n                    push.call(fake.exceptions, this.exceptions[i]);\n                    push.call(fake.callIds, this.callIds[i]);\n                }\n            }\n            createCallProperties.call(fake);\n\n            return fake;\n        },\n\n        matches: function (args, strict) {\n            var margs = this.matchingAguments;\n\n            if (margs.length <= args.length &&\n                sinon.deepEqual(margs, args.slice(0, margs.length))) {\n                return !strict || margs.length == args.length;\n            }\n        },\n\n        printf: function (format) {\n            var spy = this;\n            var args = slice.call(arguments, 1);\n            var formatter;\n\n            return (format || \"\").replace(/%(.)/g, function (match, specifyer) {\n                formatter = spyApi.formatters[specifyer];\n\n                if (typeof formatter == \"function\") {\n                    return formatter.call(null, spy, args);\n                } else if (!isNaN(parseInt(specifyer, 10))) {\n                    return sinon.format(args[specifyer - 1]);\n                }\n\n                return \"%\" + specifyer;\n            });\n        }\n    };\n\n    function delegateToCalls(method, matchAny, actual, notCalled) {\n        spyApi[method] = function () {\n            if (!this.called) {\n                if (notCalled) {\n                    return notCalled.apply(this, arguments);\n                }\n                return false;\n            }\n\n            var currentCall;\n            var matches = 0;\n\n            for (var i = 0, l = this.callCount; i < l; i += 1) {\n                currentCall = this.getCall(i);\n\n                if (currentCall[actual || method].apply(currentCall, arguments)) {\n                    matches += 1;\n\n                    if (matchAny) {\n                        return true;\n                    }\n                }\n            }\n\n            return matches === this.callCount;\n        };\n    }\n\n    delegateToCalls(\"calledOn\", true);\n    delegateToCalls(\"alwaysCalledOn\", false, \"calledOn\");\n    delegateToCalls(\"calledWith\", true);\n    delegateToCalls(\"calledWithMatch\", true);\n    delegateToCalls(\"alwaysCalledWith\", false, \"calledWith\");\n    delegateToCalls(\"alwaysCalledWithMatch\", false, \"calledWithMatch\");\n    delegateToCalls(\"calledWithExactly\", true);\n    delegateToCalls(\"alwaysCalledWithExactly\", false, \"calledWithExactly\");\n    delegateToCalls(\"neverCalledWith\", false, \"notCalledWith\",\n        function () { return true; });\n    delegateToCalls(\"neverCalledWithMatch\", false, \"notCalledWithMatch\",\n        function () { return true; });\n    delegateToCalls(\"threw\", true);\n    delegateToCalls(\"alwaysThrew\", false, \"threw\");\n    delegateToCalls(\"returned\", true);\n    delegateToCalls(\"alwaysReturned\", false, \"returned\");\n    delegateToCalls(\"calledWithNew\", true);\n    delegateToCalls(\"alwaysCalledWithNew\", false, \"calledWithNew\");\n    delegateToCalls(\"callArg\", false, \"callArgWith\", function () {\n        throw new Error(this.toString() + \" cannot call arg since it was not yet invoked.\");\n    });\n    spyApi.callArgWith = spyApi.callArg;\n    delegateToCalls(\"callArgOn\", false, \"callArgOnWith\", function () {\n        throw new Error(this.toString() + \" cannot call arg since it was not yet invoked.\");\n    });\n    spyApi.callArgOnWith = spyApi.callArgOn;\n    delegateToCalls(\"yield\", false, \"yield\", function () {\n        throw new Error(this.toString() + \" cannot yield since it was not yet invoked.\");\n    });\n    // \"invokeCallback\" is an alias for \"yield\" since \"yield\" is invalid in strict mode.\n    spyApi.invokeCallback = spyApi.yield;\n    delegateToCalls(\"yieldOn\", false, \"yieldOn\", function () {\n        throw new Error(this.toString() + \" cannot yield since it was not yet invoked.\");\n    });\n    delegateToCalls(\"yieldTo\", false, \"yieldTo\", function (property) {\n        throw new Error(this.toString() + \" cannot yield to '\" + property +\n            \"' since it was not yet invoked.\");\n    });\n    delegateToCalls(\"yieldToOn\", false, \"yieldToOn\", function (property) {\n        throw new Error(this.toString() + \" cannot yield to '\" + property +\n            \"' since it was not yet invoked.\");\n    });\n\n    spyApi.formatters = {\n        \"c\": function (spy) {\n            return sinon.timesInWords(spy.callCount);\n        },\n\n        \"n\": function (spy) {\n            return spy.toString();\n        },\n\n        \"C\": function (spy) {\n            var calls = [];\n\n            for (var i = 0, l = spy.callCount; i < l; ++i) {\n                var stringifiedCall = \"    \" + spy.getCall(i).toString();\n                if (/\\n/.test(calls[i - 1])) {\n                    stringifiedCall = \"\\n\" + stringifiedCall;\n                }\n                push.call(calls, stringifiedCall);\n            }\n\n            return calls.length > 0 ? \"\\n\" + calls.join(\"\\n\") : \"\";\n        },\n\n        \"t\": function (spy) {\n            var objects = [];\n\n            for (var i = 0, l = spy.callCount; i < l; ++i) {\n                push.call(objects, sinon.format(spy.thisValues[i]));\n            }\n\n            return objects.join(\", \");\n        },\n\n        \"*\": function (spy, args) {\n            var formatted = [];\n\n            for (var i = 0, l = args.length; i < l; ++i) {\n                push.call(formatted, sinon.format(args[i]));\n            }\n\n            return formatted.join(\", \");\n        }\n    };\n\n    sinon.extend(spy, spyApi);\n\n    spy.spyCall = sinon.spyCall;\n    sinon.spy = spy;\n\n    if (typeof define === \"function\" && define.amd) {\n        define([\"module\"], function(module) { module.exports = spy; });\n    } else if (commonJSModule) {\n        module.exports = spy;\n    }\n}(typeof sinon == \"object\" && sinon || null));\n\n/**\n * @depend ../sinon.js\n */\n/*jslint eqeqeq: false, onevar: false*/\n/*global module, require, sinon, process, setImmediate, setTimeout*/\n/**\n * Stub behavior\n *\n * @author Christian Johansen (christian@cjohansen.no)\n * @author Tim Fischbach (mail@timfischbach.de)\n * @license BSD\n *\n * Copyright (c) 2010-2013 Christian Johansen\n */\n\n(function (sinon) {\n    var commonJSModule = typeof module !== \"undefined\" && module.exports && typeof require == \"function\";\n\n    if (!sinon && commonJSModule) {\n        sinon = require(\"../sinon\");\n    }\n\n    if (!sinon) {\n        return;\n    }\n\n    var slice = Array.prototype.slice;\n    var join = Array.prototype.join;\n    var proto;\n\n    var nextTick = (function () {\n        if (typeof process === \"object\" && typeof process.nextTick === \"function\") {\n            return process.nextTick;\n        } else if (typeof setImmediate === \"function\") {\n            return setImmediate;\n        } else {\n            return function (callback) {\n                setTimeout(callback, 0);\n            };\n        }\n    })();\n\n    function throwsException(error, message) {\n        if (typeof error == \"string\") {\n            this.exception = new Error(message || \"\");\n            this.exception.name = error;\n        } else if (!error) {\n            this.exception = new Error(\"Error\");\n        } else {\n            this.exception = error;\n        }\n\n        return this;\n    }\n\n    function getCallback(behavior, args) {\n        var callArgAt = behavior.callArgAt;\n\n        if (callArgAt < 0) {\n            var callArgProp = behavior.callArgProp;\n\n            for (var i = 0, l = args.length; i < l; ++i) {\n                if (!callArgProp && typeof args[i] == \"function\") {\n                    return args[i];\n                }\n\n                if (callArgProp && args[i] &&\n                    typeof args[i][callArgProp] == \"function\") {\n                    return args[i][callArgProp];\n                }\n            }\n\n            return null;\n        }\n\n        return args[callArgAt];\n    }\n\n    function getCallbackError(behavior, func, args) {\n        if (behavior.callArgAt < 0) {\n            var msg;\n\n            if (behavior.callArgProp) {\n                msg = sinon.functionName(behavior.stub) +\n                    \" expected to yield to '\" + behavior.callArgProp +\n                    \"', but no object with such a property was passed.\";\n            } else {\n                msg = sinon.functionName(behavior.stub) +\n                    \" expected to yield, but no callback was passed.\";\n            }\n\n            if (args.length > 0) {\n                msg += \" Received [\" + join.call(args, \", \") + \"]\";\n            }\n\n            return msg;\n        }\n\n        return \"argument at index \" + behavior.callArgAt + \" is not a function: \" + func;\n    }\n\n    function callCallback(behavior, args) {\n        if (typeof behavior.callArgAt == \"number\") {\n            var func = getCallback(behavior, args);\n\n            if (typeof func != \"function\") {\n                throw new TypeError(getCallbackError(behavior, func, args));\n            }\n\n            if (behavior.callbackAsync) {\n                nextTick(function() {\n                    func.apply(behavior.callbackContext, behavior.callbackArguments);\n                });\n            } else {\n                func.apply(behavior.callbackContext, behavior.callbackArguments);\n            }\n        }\n    }\n\n    proto = {\n        create: function(stub) {\n            var behavior = sinon.extend({}, sinon.behavior);\n            delete behavior.create;\n            behavior.stub = stub;\n\n            return behavior;\n        },\n\n        isPresent: function() {\n            return (typeof this.callArgAt == 'number' ||\n                    this.exception ||\n                    typeof this.returnArgAt == 'number' ||\n                    this.returnThis ||\n                    this.returnValueDefined);\n        },\n\n        invoke: function(context, args) {\n            callCallback(this, args);\n\n            if (this.exception) {\n                throw this.exception;\n            } else if (typeof this.returnArgAt == 'number') {\n                return args[this.returnArgAt];\n            } else if (this.returnThis) {\n                return context;\n            }\n\n            return this.returnValue;\n        },\n\n        onCall: function(index) {\n            return this.stub.onCall(index);\n        },\n\n        onFirstCall: function() {\n            return this.stub.onFirstCall();\n        },\n\n        onSecondCall: function() {\n            return this.stub.onSecondCall();\n        },\n\n        onThirdCall: function() {\n            return this.stub.onThirdCall();\n        },\n\n        withArgs: function(/* arguments */) {\n            throw new Error('Defining a stub by invoking \"stub.onCall(...).withArgs(...)\" is not supported. ' +\n                            'Use \"stub.withArgs(...).onCall(...)\" to define sequential behavior for calls with certain arguments.');\n        },\n\n        callsArg: function callsArg(pos) {\n            if (typeof pos != \"number\") {\n                throw new TypeError(\"argument index is not number\");\n            }\n\n            this.callArgAt = pos;\n            this.callbackArguments = [];\n            this.callbackContext = undefined;\n            this.callArgProp = undefined;\n            this.callbackAsync = false;\n\n            return this;\n        },\n\n        callsArgOn: function callsArgOn(pos, context) {\n            if (typeof pos != \"number\") {\n                throw new TypeError(\"argument index is not number\");\n            }\n            if (typeof context != \"object\") {\n                throw new TypeError(\"argument context is not an object\");\n            }\n\n            this.callArgAt = pos;\n            this.callbackArguments = [];\n            this.callbackContext = context;\n            this.callArgProp = undefined;\n            this.callbackAsync = false;\n\n            return this;\n        },\n\n        callsArgWith: function callsArgWith(pos) {\n            if (typeof pos != \"number\") {\n                throw new TypeError(\"argument index is not number\");\n            }\n\n            this.callArgAt = pos;\n            this.callbackArguments = slice.call(arguments, 1);\n            this.callbackContext = undefined;\n            this.callArgProp = undefined;\n            this.callbackAsync = false;\n\n            return this;\n        },\n\n        callsArgOnWith: function callsArgWith(pos, context) {\n            if (typeof pos != \"number\") {\n                throw new TypeError(\"argument index is not number\");\n            }\n            if (typeof context != \"object\") {\n                throw new TypeError(\"argument context is not an object\");\n            }\n\n            this.callArgAt = pos;\n            this.callbackArguments = slice.call(arguments, 2);\n            this.callbackContext = context;\n            this.callArgProp = undefined;\n            this.callbackAsync = false;\n\n            return this;\n        },\n\n        yields: function () {\n            this.callArgAt = -1;\n            this.callbackArguments = slice.call(arguments, 0);\n            this.callbackContext = undefined;\n            this.callArgProp = undefined;\n            this.callbackAsync = false;\n\n            return this;\n        },\n\n        yieldsOn: function (context) {\n            if (typeof context != \"object\") {\n                throw new TypeError(\"argument context is not an object\");\n            }\n\n            this.callArgAt = -1;\n            this.callbackArguments = slice.call(arguments, 1);\n            this.callbackContext = context;\n            this.callArgProp = undefined;\n            this.callbackAsync = false;\n\n            return this;\n        },\n\n        yieldsTo: function (prop) {\n            this.callArgAt = -1;\n            this.callbackArguments = slice.call(arguments, 1);\n            this.callbackContext = undefined;\n            this.callArgProp = prop;\n            this.callbackAsync = false;\n\n            return this;\n        },\n\n        yieldsToOn: function (prop, context) {\n            if (typeof context != \"object\") {\n                throw new TypeError(\"argument context is not an object\");\n            }\n\n            this.callArgAt = -1;\n            this.callbackArguments = slice.call(arguments, 2);\n            this.callbackContext = context;\n            this.callArgProp = prop;\n            this.callbackAsync = false;\n\n            return this;\n        },\n\n\n        \"throws\": throwsException,\n        throwsException: throwsException,\n\n        returns: function returns(value) {\n            this.returnValue = value;\n            this.returnValueDefined = true;\n\n            return this;\n        },\n\n        returnsArg: function returnsArg(pos) {\n            if (typeof pos != \"number\") {\n                throw new TypeError(\"argument index is not number\");\n            }\n\n            this.returnArgAt = pos;\n\n            return this;\n        },\n\n        returnsThis: function returnsThis() {\n            this.returnThis = true;\n\n            return this;\n        }\n    };\n\n    // create asynchronous versions of callsArg* and yields* methods\n    for (var method in proto) {\n        // need to avoid creating anotherasync versions of the newly added async methods\n        if (proto.hasOwnProperty(method) &&\n            method.match(/^(callsArg|yields)/) &&\n            !method.match(/Async/)) {\n            proto[method + 'Async'] = (function (syncFnName) {\n                return function () {\n                    var result = this[syncFnName].apply(this, arguments);\n                    this.callbackAsync = true;\n                    return result;\n                };\n            })(method);\n        }\n    }\n\n    sinon.behavior = proto;\n\n    if (typeof define === \"function\" && define.amd) {\n        define([\"module\"], function(module) { module.exports = proto; });\n    } else if (commonJSModule) {\n        module.exports = proto;\n    }\n}(typeof sinon == \"object\" && sinon || null));\n\n/**\n * @depend ../sinon.js\n * @depend spy.js\n * @depend behavior.js\n */\n/*jslint eqeqeq: false, onevar: false*/\n/*global module, require, sinon*/\n/**\n * Stub functions\n *\n * @author Christian Johansen (christian@cjohansen.no)\n * @license BSD\n *\n * Copyright (c) 2010-2013 Christian Johansen\n */\n\n(function (sinon) {\n    var commonJSModule = typeof module !== \"undefined\" && module.exports && typeof require == \"function\";\n\n    if (!sinon && commonJSModule) {\n        sinon = require(\"../sinon\");\n    }\n\n    if (!sinon) {\n        return;\n    }\n\n    function stub(object, property, func) {\n        if (!!func && typeof func != \"function\") {\n            throw new TypeError(\"Custom stub should be function\");\n        }\n\n        var wrapper;\n\n        if (func) {\n            wrapper = sinon.spy && sinon.spy.create ? sinon.spy.create(func) : func;\n        } else {\n            wrapper = stub.create();\n        }\n\n        if (!object && typeof property === \"undefined\") {\n            return sinon.stub.create();\n        }\n\n        if (typeof property === \"undefined\" && typeof object == \"object\") {\n            for (var prop in object) {\n                if (typeof object[prop] === \"function\") {\n                    stub(object, prop);\n                }\n            }\n\n            return object;\n        }\n\n        return sinon.wrapMethod(object, property, wrapper);\n    }\n\n    function getDefaultBehavior(stub) {\n        return stub.defaultBehavior || getParentBehaviour(stub) || sinon.behavior.create(stub);\n    }\n\n    function getParentBehaviour(stub) {\n        return (stub.parent && getCurrentBehavior(stub.parent));\n    }\n\n    function getCurrentBehavior(stub) {\n        var behavior = stub.behaviors[stub.callCount - 1];\n        return behavior && behavior.isPresent() ? behavior : getDefaultBehavior(stub);\n    }\n\n    var uuid = 0;\n\n    sinon.extend(stub, (function () {\n        var proto = {\n            create: function create() {\n                var functionStub = function () {\n                    return getCurrentBehavior(functionStub).invoke(this, arguments);\n                };\n\n                functionStub.id = \"stub#\" + uuid++;\n                var orig = functionStub;\n                functionStub = sinon.spy.create(functionStub);\n                functionStub.func = orig;\n\n                sinon.extend(functionStub, stub);\n                functionStub._create = sinon.stub.create;\n                functionStub.displayName = \"stub\";\n                functionStub.toString = sinon.functionToString;\n\n                functionStub.defaultBehavior = null;\n                functionStub.behaviors = [];\n\n                return functionStub;\n            },\n\n            resetBehavior: function () {\n                var i;\n\n                this.defaultBehavior = null;\n                this.behaviors = [];\n\n                delete this.returnValue;\n                delete this.returnArgAt;\n                this.returnThis = false;\n\n                if (this.fakes) {\n                    for (i = 0; i < this.fakes.length; i++) {\n                        this.fakes[i].resetBehavior();\n                    }\n                }\n            },\n\n            onCall: function(index) {\n                if (!this.behaviors[index]) {\n                    this.behaviors[index] = sinon.behavior.create(this);\n                }\n\n                return this.behaviors[index];\n            },\n\n            onFirstCall: function() {\n                return this.onCall(0);\n            },\n\n            onSecondCall: function() {\n                return this.onCall(1);\n            },\n\n            onThirdCall: function() {\n                return this.onCall(2);\n            }\n        };\n\n        for (var method in sinon.behavior) {\n            if (sinon.behavior.hasOwnProperty(method) &&\n                !proto.hasOwnProperty(method) &&\n                method != 'create' &&\n                method != 'withArgs' &&\n                method != 'invoke') {\n                proto[method] = (function(behaviorMethod) {\n                    return function() {\n                        this.defaultBehavior = this.defaultBehavior || sinon.behavior.create(this);\n                        this.defaultBehavior[behaviorMethod].apply(this.defaultBehavior, arguments);\n                        return this;\n                    };\n                }(method));\n            }\n        }\n\n        return proto;\n    }()));\n\n    sinon.stub = stub;\n\n    if (typeof define === \"function\" && define.amd) {\n        define([\"module\"], function(module) { module.exports = stub; });\n    } else if (commonJSModule) {\n        module.exports = stub;\n    }\n}(typeof sinon == \"object\" && sinon || null));\n\n/**\n * @depend ../sinon.js\n * @depend stub.js\n */\n/*jslint eqeqeq: false, onevar: false, nomen: false*/\n/*global module, require, sinon*/\n/**\n * Mock functions.\n *\n * @author Christian Johansen (christian@cjohansen.no)\n * @license BSD\n *\n * Copyright (c) 2010-2013 Christian Johansen\n */\n\n(function (sinon) {\n    var commonJSModule = typeof module !== \"undefined\" && module.exports && typeof require == \"function\";\n    var push = [].push;\n    var match;\n\n    if (!sinon && commonJSModule) {\n        sinon = require(\"../sinon\");\n    }\n\n    if (!sinon) {\n        return;\n    }\n\n    match = sinon.match;\n\n    if (!match && commonJSModule) {\n        match = require(\"./match\");\n    }\n\n    function mock(object) {\n        if (!object) {\n            return sinon.expectation.create(\"Anonymous mock\");\n        }\n\n        return mock.create(object);\n    }\n\n    sinon.mock = mock;\n\n    sinon.extend(mock, (function () {\n        function each(collection, callback) {\n            if (!collection) {\n                return;\n            }\n\n            for (var i = 0, l = collection.length; i < l; i += 1) {\n                callback(collection[i]);\n            }\n        }\n\n        return {\n            create: function create(object) {\n                if (!object) {\n                    throw new TypeError(\"object is null\");\n                }\n\n                var mockObject = sinon.extend({}, mock);\n                mockObject.object = object;\n                delete mockObject.create;\n\n                return mockObject;\n            },\n\n            expects: function expects(method) {\n                if (!method) {\n                    throw new TypeError(\"method is falsy\");\n                }\n\n                if (!this.expectations) {\n                    this.expectations = {};\n                    this.proxies = [];\n                }\n\n                if (!this.expectations[method]) {\n                    this.expectations[method] = [];\n                    var mockObject = this;\n\n                    sinon.wrapMethod(this.object, method, function () {\n                        return mockObject.invokeMethod(method, this, arguments);\n                    });\n\n                    push.call(this.proxies, method);\n                }\n\n                var expectation = sinon.expectation.create(method);\n                push.call(this.expectations[method], expectation);\n\n                return expectation;\n            },\n\n            restore: function restore() {\n                var object = this.object;\n\n                each(this.proxies, function (proxy) {\n                    if (typeof object[proxy].restore == \"function\") {\n                        object[proxy].restore();\n                    }\n                });\n            },\n\n            verify: function verify() {\n                var expectations = this.expectations || {};\n                var messages = [], met = [];\n\n                each(this.proxies, function (proxy) {\n                    each(expectations[proxy], function (expectation) {\n                        if (!expectation.met()) {\n                            push.call(messages, expectation.toString());\n                        } else {\n                            push.call(met, expectation.toString());\n                        }\n                    });\n                });\n\n                this.restore();\n\n                if (messages.length > 0) {\n                    sinon.expectation.fail(messages.concat(met).join(\"\\n\"));\n                } else {\n                    sinon.expectation.pass(messages.concat(met).join(\"\\n\"));\n                }\n\n                return true;\n            },\n\n            invokeMethod: function invokeMethod(method, thisValue, args) {\n                var expectations = this.expectations && this.expectations[method];\n                var length = expectations && expectations.length || 0, i;\n\n                for (i = 0; i < length; i += 1) {\n                    if (!expectations[i].met() &&\n                        expectations[i].allowsCall(thisValue, args)) {\n                        return expectations[i].apply(thisValue, args);\n                    }\n                }\n\n                var messages = [], available, exhausted = 0;\n\n                for (i = 0; i < length; i += 1) {\n                    if (expectations[i].allowsCall(thisValue, args)) {\n                        available = available || expectations[i];\n                    } else {\n                        exhausted += 1;\n                    }\n                    push.call(messages, \"    \" + expectations[i].toString());\n                }\n\n                if (exhausted === 0) {\n                    return available.apply(thisValue, args);\n                }\n\n                messages.unshift(\"Unexpected call: \" + sinon.spyCall.toString.call({\n                    proxy: method,\n                    args: args\n                }));\n\n                sinon.expectation.fail(messages.join(\"\\n\"));\n            }\n        };\n    }()));\n\n    var times = sinon.timesInWords;\n\n    sinon.expectation = (function () {\n        var slice = Array.prototype.slice;\n        var _invoke = sinon.spy.invoke;\n\n        function callCountInWords(callCount) {\n            if (callCount == 0) {\n                return \"never called\";\n            } else {\n                return \"called \" + times(callCount);\n            }\n        }\n\n        function expectedCallCountInWords(expectation) {\n            var min = expectation.minCalls;\n            var max = expectation.maxCalls;\n\n            if (typeof min == \"number\" && typeof max == \"number\") {\n                var str = times(min);\n\n                if (min != max) {\n                    str = \"at least \" + str + \" and at most \" + times(max);\n                }\n\n                return str;\n            }\n\n            if (typeof min == \"number\") {\n                return \"at least \" + times(min);\n            }\n\n            return \"at most \" + times(max);\n        }\n\n        function receivedMinCalls(expectation) {\n            var hasMinLimit = typeof expectation.minCalls == \"number\";\n            return !hasMinLimit || expectation.callCount >= expectation.minCalls;\n        }\n\n        function receivedMaxCalls(expectation) {\n            if (typeof expectation.maxCalls != \"number\") {\n                return false;\n            }\n\n            return expectation.callCount == expectation.maxCalls;\n        }\n\n        function verifyMatcher(possibleMatcher, arg){\n            if (match && match.isMatcher(possibleMatcher)) {\n                return possibleMatcher.test(arg);\n            } else {\n                return true;\n            }\n        }\n\n        return {\n            minCalls: 1,\n            maxCalls: 1,\n\n            create: function create(methodName) {\n                var expectation = sinon.extend(sinon.stub.create(), sinon.expectation);\n                delete expectation.create;\n                expectation.method = methodName;\n\n                return expectation;\n            },\n\n            invoke: function invoke(func, thisValue, args) {\n                this.verifyCallAllowed(thisValue, args);\n\n                return _invoke.apply(this, arguments);\n            },\n\n            atLeast: function atLeast(num) {\n                if (typeof num != \"number\") {\n                    throw new TypeError(\"'\" + num + \"' is not number\");\n                }\n\n                if (!this.limitsSet) {\n                    this.maxCalls = null;\n                    this.limitsSet = true;\n                }\n\n                this.minCalls = num;\n\n                return this;\n            },\n\n            atMost: function atMost(num) {\n                if (typeof num != \"number\") {\n                    throw new TypeError(\"'\" + num + \"' is not number\");\n                }\n\n                if (!this.limitsSet) {\n                    this.minCalls = null;\n                    this.limitsSet = true;\n                }\n\n                this.maxCalls = num;\n\n                return this;\n            },\n\n            never: function never() {\n                return this.exactly(0);\n            },\n\n            once: function once() {\n                return this.exactly(1);\n            },\n\n            twice: function twice() {\n                return this.exactly(2);\n            },\n\n            thrice: function thrice() {\n                return this.exactly(3);\n            },\n\n            exactly: function exactly(num) {\n                if (typeof num != \"number\") {\n                    throw new TypeError(\"'\" + num + \"' is not a number\");\n                }\n\n                this.atLeast(num);\n                return this.atMost(num);\n            },\n\n            met: function met() {\n                return !this.failed && receivedMinCalls(this);\n            },\n\n            verifyCallAllowed: function verifyCallAllowed(thisValue, args) {\n                if (receivedMaxCalls(this)) {\n                    this.failed = true;\n                    sinon.expectation.fail(this.method + \" already called \" + times(this.maxCalls));\n                }\n\n                if (\"expectedThis\" in this && this.expectedThis !== thisValue) {\n                    sinon.expectation.fail(this.method + \" called with \" + thisValue + \" as thisValue, expected \" +\n                        this.expectedThis);\n                }\n\n                if (!(\"expectedArguments\" in this)) {\n                    return;\n                }\n\n                if (!args) {\n                    sinon.expectation.fail(this.method + \" received no arguments, expected \" +\n                        sinon.format(this.expectedArguments));\n                }\n\n                if (args.length < this.expectedArguments.length) {\n                    sinon.expectation.fail(this.method + \" received too few arguments (\" + sinon.format(args) +\n                        \"), expected \" + sinon.format(this.expectedArguments));\n                }\n\n                if (this.expectsExactArgCount &&\n                    args.length != this.expectedArguments.length) {\n                    sinon.expectation.fail(this.method + \" received too many arguments (\" + sinon.format(args) +\n                        \"), expected \" + sinon.format(this.expectedArguments));\n                }\n\n                for (var i = 0, l = this.expectedArguments.length; i < l; i += 1) {\n\n                    if (!verifyMatcher(this.expectedArguments[i],args[i])) {\n                        sinon.expectation.fail(this.method + \" received wrong arguments \" + sinon.format(args) +\n                            \", didn't match \" + this.expectedArguments.toString());\n                    }\n\n                    if (!sinon.deepEqual(this.expectedArguments[i], args[i])) {\n                        sinon.expectation.fail(this.method + \" received wrong arguments \" + sinon.format(args) +\n                            \", expected \" + sinon.format(this.expectedArguments));\n                    }\n                }\n            },\n\n            allowsCall: function allowsCall(thisValue, args) {\n                if (this.met() && receivedMaxCalls(this)) {\n                    return false;\n                }\n\n                if (\"expectedThis\" in this && this.expectedThis !== thisValue) {\n                    return false;\n                }\n\n                if (!(\"expectedArguments\" in this)) {\n                    return true;\n                }\n\n                args = args || [];\n\n                if (args.length < this.expectedArguments.length) {\n                    return false;\n                }\n\n                if (this.expectsExactArgCount &&\n                    args.length != this.expectedArguments.length) {\n                    return false;\n                }\n\n                for (var i = 0, l = this.expectedArguments.length; i < l; i += 1) {\n                    if (!verifyMatcher(this.expectedArguments[i],args[i])) {\n                        return false;\n                    }\n\n                    if (!sinon.deepEqual(this.expectedArguments[i], args[i])) {\n                        return false;\n                    }\n                }\n\n                return true;\n            },\n\n            withArgs: function withArgs() {\n                this.expectedArguments = slice.call(arguments);\n                return this;\n            },\n\n            withExactArgs: function withExactArgs() {\n                this.withArgs.apply(this, arguments);\n                this.expectsExactArgCount = true;\n                return this;\n            },\n\n            on: function on(thisValue) {\n                this.expectedThis = thisValue;\n                return this;\n            },\n\n            toString: function () {\n                var args = (this.expectedArguments || []).slice();\n\n                if (!this.expectsExactArgCount) {\n                    push.call(args, \"[...]\");\n                }\n\n                var callStr = sinon.spyCall.toString.call({\n                    proxy: this.method || \"anonymous mock expectation\",\n                    args: args\n                });\n\n                var message = callStr.replace(\", [...\", \"[, ...\") + \" \" +\n                    expectedCallCountInWords(this);\n\n                if (this.met()) {\n                    return \"Expectation met: \" + message;\n                }\n\n                return \"Expected \" + message + \" (\" +\n                    callCountInWords(this.callCount) + \")\";\n            },\n\n            verify: function verify() {\n                if (!this.met()) {\n                    sinon.expectation.fail(this.toString());\n                } else {\n                    sinon.expectation.pass(this.toString());\n                }\n\n                return true;\n            },\n\n            pass: function(message) {\n              sinon.assert.pass(message);\n            },\n            fail: function (message) {\n                var exception = new Error(message);\n                exception.name = \"ExpectationError\";\n\n                throw exception;\n            }\n        };\n    }());\n\n    sinon.mock = mock;\n\n    if (typeof define === \"function\" && define.amd) {\n        define([\"module\"], function(module) { module.exports = mock; });\n    } else if (commonJSModule) {\n        module.exports = mock;\n    }\n}(typeof sinon == \"object\" && sinon || null));\n\n/**\n * @depend ../sinon.js\n * @depend stub.js\n * @depend mock.js\n */\n/*jslint eqeqeq: false, onevar: false, forin: true*/\n/*global module, require, sinon*/\n/**\n * Collections of stubs, spies and mocks.\n *\n * @author Christian Johansen (christian@cjohansen.no)\n * @license BSD\n *\n * Copyright (c) 2010-2013 Christian Johansen\n */\n\n(function (sinon) {\n    var commonJSModule = typeof module !== \"undefined\" && module.exports && typeof require == \"function\";\n    var push = [].push;\n    var hasOwnProperty = Object.prototype.hasOwnProperty;\n\n    if (!sinon && commonJSModule) {\n        sinon = require(\"../sinon\");\n    }\n\n    if (!sinon) {\n        return;\n    }\n\n    function getFakes(fakeCollection) {\n        if (!fakeCollection.fakes) {\n            fakeCollection.fakes = [];\n        }\n\n        return fakeCollection.fakes;\n    }\n\n    function each(fakeCollection, method) {\n        var fakes = getFakes(fakeCollection);\n\n        for (var i = 0, l = fakes.length; i < l; i += 1) {\n            if (typeof fakes[i][method] == \"function\") {\n                fakes[i][method]();\n            }\n        }\n    }\n\n    function compact(fakeCollection) {\n        var fakes = getFakes(fakeCollection);\n        var i = 0;\n        while (i < fakes.length) {\n          fakes.splice(i, 1);\n        }\n    }\n\n    var collection = {\n        verify: function resolve() {\n            each(this, \"verify\");\n        },\n\n        restore: function restore() {\n            each(this, \"restore\");\n            compact(this);\n        },\n\n        verifyAndRestore: function verifyAndRestore() {\n            var exception;\n\n            try {\n                this.verify();\n            } catch (e) {\n                exception = e;\n            }\n\n            this.restore();\n\n            if (exception) {\n                throw exception;\n            }\n        },\n\n        add: function add(fake) {\n            push.call(getFakes(this), fake);\n            return fake;\n        },\n\n        spy: function spy() {\n            return this.add(sinon.spy.apply(sinon, arguments));\n        },\n\n        stub: function stub(object, property, value) {\n            if (property) {\n                var original = object[property];\n\n                if (typeof original != \"function\") {\n                    if (!hasOwnProperty.call(object, property)) {\n                        throw new TypeError(\"Cannot stub non-existent own property \" + property);\n                    }\n\n                    object[property] = value;\n\n                    return this.add({\n                        restore: function () {\n                            object[property] = original;\n                        }\n                    });\n                }\n            }\n            if (!property && !!object && typeof object == \"object\") {\n                var stubbedObj = sinon.stub.apply(sinon, arguments);\n\n                for (var prop in stubbedObj) {\n                    if (typeof stubbedObj[prop] === \"function\") {\n                        this.add(stubbedObj[prop]);\n                    }\n                }\n\n                return stubbedObj;\n            }\n\n            return this.add(sinon.stub.apply(sinon, arguments));\n        },\n\n        mock: function mock() {\n            return this.add(sinon.mock.apply(sinon, arguments));\n        },\n\n        inject: function inject(obj) {\n            var col = this;\n\n            obj.spy = function () {\n                return col.spy.apply(col, arguments);\n            };\n\n            obj.stub = function () {\n                return col.stub.apply(col, arguments);\n            };\n\n            obj.mock = function () {\n                return col.mock.apply(col, arguments);\n            };\n\n            return obj;\n        }\n    };\n\n    sinon.collection = collection;\n\n    if (typeof define === \"function\" && define.amd) {\n        define([\"module\"], function(module) { module.exports = collection; });\n    } else if (commonJSModule) {\n        module.exports = collection;\n    }\n}(typeof sinon == \"object\" && sinon || null));\n\n/*jslint eqeqeq: false, plusplus: false, evil: true, onevar: false, browser: true, forin: false*/\n/*global module, require, window*/\n/**\n * Fake timer API\n * setTimeout\n * setInterval\n * clearTimeout\n * clearInterval\n * tick\n * reset\n * Date\n *\n * Inspired by jsUnitMockTimeOut from JsUnit\n *\n * @author Christian Johansen (christian@cjohansen.no)\n * @license BSD\n *\n * Copyright (c) 2010-2013 Christian Johansen\n */\n\nif (typeof sinon == \"undefined\") {\n    var sinon = {};\n}\n\n(function (global) {\n    // node expects setTimeout/setInterval to return a fn object w/ .ref()/.unref()\n    // browsers, a number.\n    // see https://github.com/cjohansen/Sinon.JS/pull/436\n    var timeoutResult = setTimeout(function() {}, 0);\n    var addTimerReturnsObject = typeof timeoutResult === 'object';\n    clearTimeout(timeoutResult);\n\n    var id = 1;\n\n    function addTimer(args, recurring) {\n        if (args.length === 0) {\n            throw new Error(\"Function requires at least 1 parameter\");\n        }\n\n        if (typeof args[0] === \"undefined\") {\n            throw new Error(\"Callback must be provided to timer calls\");\n        }\n\n        var toId = id++;\n        var delay = args[1] || 0;\n\n        if (!this.timeouts) {\n            this.timeouts = {};\n        }\n\n        this.timeouts[toId] = {\n            id: toId,\n            func: args[0],\n            callAt: this.now + delay,\n            invokeArgs: Array.prototype.slice.call(args, 2)\n        };\n\n        if (recurring === true) {\n            this.timeouts[toId].interval = delay;\n        }\n\n        if (addTimerReturnsObject) {\n            return {\n                id: toId,\n                ref: function() {},\n                unref: function() {}\n            };\n        }\n        else {\n            return toId;\n        }\n    }\n\n    function parseTime(str) {\n        if (!str) {\n            return 0;\n        }\n\n        var strings = str.split(\":\");\n        var l = strings.length, i = l;\n        var ms = 0, parsed;\n\n        if (l > 3 || !/^(\\d\\d:){0,2}\\d\\d?$/.test(str)) {\n            throw new Error(\"tick only understands numbers and 'h:m:s'\");\n        }\n\n        while (i--) {\n            parsed = parseInt(strings[i], 10);\n\n            if (parsed >= 60) {\n                throw new Error(\"Invalid time \" + str);\n            }\n\n            ms += parsed * Math.pow(60, (l - i - 1));\n        }\n\n        return ms * 1000;\n    }\n\n    function createObject(object) {\n        var newObject;\n\n        if (Object.create) {\n            newObject = Object.create(object);\n        } else {\n            var F = function () {};\n            F.prototype = object;\n            newObject = new F();\n        }\n\n        newObject.Date.clock = newObject;\n        return newObject;\n    }\n\n    sinon.clock = {\n        now: 0,\n\n        create: function create(now) {\n            var clock = createObject(this);\n\n            if (typeof now == \"number\") {\n                clock.now = now;\n            }\n\n            if (!!now && typeof now == \"object\") {\n                throw new TypeError(\"now should be milliseconds since UNIX epoch\");\n            }\n\n            return clock;\n        },\n\n        setTimeout: function setTimeout(callback, timeout) {\n            return addTimer.call(this, arguments, false);\n        },\n\n        clearTimeout: function clearTimeout(timerId) {\n            if (!timerId) {\n                // null appears to be allowed in most browsers, and appears to be relied upon by some libraries, like Bootstrap carousel\n                return;\n            }\n            if (!this.timeouts) {\n                this.timeouts = [];\n            }\n            // in Node, timerId is an object with .ref()/.unref(), and\n            // its .id field is the actual timer id.\n            if (typeof timerId === 'object') {\n              timerId = timerId.id\n            }\n            if (timerId in this.timeouts) {\n                delete this.timeouts[timerId];\n            }\n        },\n\n        setInterval: function setInterval(callback, timeout) {\n            return addTimer.call(this, arguments, true);\n        },\n\n        clearInterval: function clearInterval(timerId) {\n            this.clearTimeout(timerId);\n        },\n\n        setImmediate: function setImmediate(callback) {\n            var passThruArgs = Array.prototype.slice.call(arguments, 1);\n\n            return addTimer.call(this, [callback, 0].concat(passThruArgs), false);\n        },\n\n        clearImmediate: function clearImmediate(timerId) {\n            this.clearTimeout(timerId);\n        },\n\n        tick: function tick(ms) {\n            ms = typeof ms == \"number\" ? ms : parseTime(ms);\n            var tickFrom = this.now, tickTo = this.now + ms, previous = this.now;\n            var timer = this.firstTimerInRange(tickFrom, tickTo);\n\n            var firstException;\n            while (timer && tickFrom <= tickTo) {\n                if (this.timeouts[timer.id]) {\n                    tickFrom = this.now = timer.callAt;\n                    try {\n                      this.callTimer(timer);\n                    } catch (e) {\n                      firstException = firstException || e;\n                    }\n                }\n\n                timer = this.firstTimerInRange(previous, tickTo);\n                previous = tickFrom;\n            }\n\n            this.now = tickTo;\n\n            if (firstException) {\n              throw firstException;\n            }\n\n            return this.now;\n        },\n\n        firstTimerInRange: function (from, to) {\n            var timer, smallest = null, originalTimer;\n\n            for (var id in this.timeouts) {\n                if (this.timeouts.hasOwnProperty(id)) {\n                    if (this.timeouts[id].callAt < from || this.timeouts[id].callAt > to) {\n                        continue;\n                    }\n\n                    if (smallest === null || this.timeouts[id].callAt < smallest) {\n                        originalTimer = this.timeouts[id];\n                        smallest = this.timeouts[id].callAt;\n\n                        timer = {\n                            func: this.timeouts[id].func,\n                            callAt: this.timeouts[id].callAt,\n                            interval: this.timeouts[id].interval,\n                            id: this.timeouts[id].id,\n                            invokeArgs: this.timeouts[id].invokeArgs\n                        };\n                    }\n                }\n            }\n\n            return timer || null;\n        },\n\n        callTimer: function (timer) {\n            if (typeof timer.interval == \"number\") {\n                this.timeouts[timer.id].callAt += timer.interval;\n            } else {\n                delete this.timeouts[timer.id];\n            }\n\n            try {\n                if (typeof timer.func == \"function\") {\n                    timer.func.apply(null, timer.invokeArgs);\n                } else {\n                    eval(timer.func);\n                }\n            } catch (e) {\n              var exception = e;\n            }\n\n            if (!this.timeouts[timer.id]) {\n                if (exception) {\n                  throw exception;\n                }\n                return;\n            }\n\n            if (exception) {\n              throw exception;\n            }\n        },\n\n        reset: function reset() {\n            this.timeouts = {};\n        },\n\n        Date: (function () {\n            var NativeDate = Date;\n\n            function ClockDate(year, month, date, hour, minute, second, ms) {\n                // Defensive and verbose to avoid potential harm in passing\n                // explicit undefined when user does not pass argument\n                switch (arguments.length) {\n                case 0:\n                    return new NativeDate(ClockDate.clock.now);\n                case 1:\n                    return new NativeDate(year);\n                case 2:\n                    return new NativeDate(year, month);\n                case 3:\n                    return new NativeDate(year, month, date);\n                case 4:\n                    return new NativeDate(year, month, date, hour);\n                case 5:\n                    return new NativeDate(year, month, date, hour, minute);\n                case 6:\n                    return new NativeDate(year, month, date, hour, minute, second);\n                default:\n                    return new NativeDate(year, month, date, hour, minute, second, ms);\n                }\n            }\n\n            return mirrorDateProperties(ClockDate, NativeDate);\n        }())\n    };\n\n    function mirrorDateProperties(target, source) {\n        if (source.now) {\n            target.now = function now() {\n                return target.clock.now;\n            };\n        } else {\n            delete target.now;\n        }\n\n        if (source.toSource) {\n            target.toSource = function toSource() {\n                return source.toSource();\n            };\n        } else {\n            delete target.toSource;\n        }\n\n        target.toString = function toString() {\n            return source.toString();\n        };\n\n        target.prototype = source.prototype;\n        target.parse = source.parse;\n        target.UTC = source.UTC;\n        target.prototype.toUTCString = source.prototype.toUTCString;\n\n        for (var prop in source) {\n            if (source.hasOwnProperty(prop)) {\n                target[prop] = source[prop];\n            }\n        }\n\n        return target;\n    }\n\n    var methods = [\"Date\", \"setTimeout\", \"setInterval\",\n                   \"clearTimeout\", \"clearInterval\"];\n\n    if (typeof global.setImmediate !== \"undefined\") {\n        methods.push(\"setImmediate\");\n    }\n\n    if (typeof global.clearImmediate !== \"undefined\") {\n        methods.push(\"clearImmediate\");\n    }\n\n    function restore() {\n        var method;\n\n        for (var i = 0, l = this.methods.length; i < l; i++) {\n            method = this.methods[i];\n\n            if (global[method].hadOwnProperty) {\n                global[method] = this[\"_\" + method];\n            } else {\n                try {\n                    delete global[method];\n                } catch (e) {}\n            }\n        }\n\n        // Prevent multiple executions which will completely remove these props\n        this.methods = [];\n    }\n\n    function stubGlobal(method, clock) {\n        clock[method].hadOwnProperty = Object.prototype.hasOwnProperty.call(global, method);\n        clock[\"_\" + method] = global[method];\n\n        if (method == \"Date\") {\n            var date = mirrorDateProperties(clock[method], global[method]);\n            global[method] = date;\n        } else {\n            global[method] = function () {\n                return clock[method].apply(clock, arguments);\n            };\n\n            for (var prop in clock[method]) {\n                if (clock[method].hasOwnProperty(prop)) {\n                    global[method][prop] = clock[method][prop];\n                }\n            }\n        }\n\n        global[method].clock = clock;\n    }\n\n    sinon.useFakeTimers = function useFakeTimers(now) {\n        var clock = sinon.clock.create(now);\n        clock.restore = restore;\n        clock.methods = Array.prototype.slice.call(arguments,\n                                                   typeof now == \"number\" ? 1 : 0);\n\n        if (clock.methods.length === 0) {\n            clock.methods = methods;\n        }\n\n        for (var i = 0, l = clock.methods.length; i < l; i++) {\n            stubGlobal(clock.methods[i], clock);\n        }\n\n        return clock;\n    };\n}(typeof global != \"undefined\" && typeof global !== \"function\" ? global : this));\n\nsinon.timers = {\n    setTimeout: setTimeout,\n    clearTimeout: clearTimeout,\n    setImmediate: (typeof setImmediate !== \"undefined\" ? setImmediate : undefined),\n    clearImmediate: (typeof clearImmediate !== \"undefined\" ? clearImmediate: undefined),\n    setInterval: setInterval,\n    clearInterval: clearInterval,\n    Date: Date\n};\n\nif (typeof module !== 'undefined' && module.exports) {\n    module.exports = sinon;\n}\n\n/*jslint eqeqeq: false, onevar: false*/\n/*global sinon, module, require, ActiveXObject, XMLHttpRequest, DOMParser*/\n/**\n * Minimal Event interface implementation\n *\n * Original implementation by Sven Fuchs: https://gist.github.com/995028\n * Modifications and tests by Christian Johansen.\n *\n * @author Sven Fuchs (svenfuchs@artweb-design.de)\n * @author Christian Johansen (christian@cjohansen.no)\n * @license BSD\n *\n * Copyright (c) 2011 Sven Fuchs, Christian Johansen\n */\n\nif (typeof sinon == \"undefined\") {\n    this.sinon = {};\n}\n\n(function () {\n    var push = [].push;\n\n    sinon.Event = function Event(type, bubbles, cancelable, target) {\n        this.initEvent(type, bubbles, cancelable, target);\n    };\n\n    sinon.Event.prototype = {\n        initEvent: function(type, bubbles, cancelable, target) {\n            this.type = type;\n            this.bubbles = bubbles;\n            this.cancelable = cancelable;\n            this.target = target;\n        },\n\n        stopPropagation: function () {},\n\n        preventDefault: function () {\n            this.defaultPrevented = true;\n        }\n    };\n\n    sinon.ProgressEvent = function ProgressEvent(type, progressEventRaw, target) {\n        this.initEvent(type, false, false, target);\n        this.loaded = progressEventRaw.loaded || null;\n        this.total = progressEventRaw.total || null;\n    };\n\n    sinon.ProgressEvent.prototype = new sinon.Event();\n\n    sinon.ProgressEvent.prototype.constructor =  sinon.ProgressEvent;\n\n    sinon.CustomEvent = function CustomEvent(type, customData, target) {\n        this.initEvent(type, false, false, target);\n        this.detail = customData.detail || null;\n    };\n\n    sinon.CustomEvent.prototype = new sinon.Event();\n\n    sinon.CustomEvent.prototype.constructor =  sinon.CustomEvent;\n\n    sinon.EventTarget = {\n        addEventListener: function addEventListener(event, listener) {\n            this.eventListeners = this.eventListeners || {};\n            this.eventListeners[event] = this.eventListeners[event] || [];\n            push.call(this.eventListeners[event], listener);\n        },\n\n        removeEventListener: function removeEventListener(event, listener) {\n            var listeners = this.eventListeners && this.eventListeners[event] || [];\n\n            for (var i = 0, l = listeners.length; i < l; ++i) {\n                if (listeners[i] == listener) {\n                    return listeners.splice(i, 1);\n                }\n            }\n        },\n\n        dispatchEvent: function dispatchEvent(event) {\n            var type = event.type;\n            var listeners = this.eventListeners && this.eventListeners[type] || [];\n\n            for (var i = 0; i < listeners.length; i++) {\n                if (typeof listeners[i] == \"function\") {\n                    listeners[i].call(this, event);\n                } else {\n                    listeners[i].handleEvent(event);\n                }\n            }\n\n            return !!event.defaultPrevented;\n        }\n    };\n}());\n\n/**\n * @depend ../../sinon.js\n * @depend event.js\n */\n/*jslint eqeqeq: false, onevar: false*/\n/*global sinon, module, require, ActiveXObject, XMLHttpRequest, DOMParser*/\n/**\n * Fake XMLHttpRequest object\n *\n * @author Christian Johansen (christian@cjohansen.no)\n * @license BSD\n *\n * Copyright (c) 2010-2013 Christian Johansen\n */\n\n// wrapper for global\n(function(global) {\n    if (typeof sinon === \"undefined\") {\n        global.sinon = {};\n    }\n\n    var supportsProgress = typeof ProgressEvent !== \"undefined\";\n    var supportsCustomEvent = typeof CustomEvent !== \"undefined\";\n    sinon.xhr = { XMLHttpRequest: global.XMLHttpRequest };\n    var xhr = sinon.xhr;\n    xhr.GlobalXMLHttpRequest = global.XMLHttpRequest;\n    xhr.GlobalActiveXObject = global.ActiveXObject;\n    xhr.supportsActiveX = typeof xhr.GlobalActiveXObject != \"undefined\";\n    xhr.supportsXHR = typeof xhr.GlobalXMLHttpRequest != \"undefined\";\n    xhr.workingXHR = xhr.supportsXHR ? xhr.GlobalXMLHttpRequest : xhr.supportsActiveX\n                                     ? function() { return new xhr.GlobalActiveXObject(\"MSXML2.XMLHTTP.3.0\") } : false;\n    xhr.supportsCORS = xhr.supportsXHR && 'withCredentials' in (new sinon.xhr.GlobalXMLHttpRequest());\n\n    /*jsl:ignore*/\n    var unsafeHeaders = {\n        \"Accept-Charset\": true,\n        \"Accept-Encoding\": true,\n        \"Connection\": true,\n        \"Content-Length\": true,\n        \"Cookie\": true,\n        \"Cookie2\": true,\n        \"Content-Transfer-Encoding\": true,\n        \"Date\": true,\n        \"Expect\": true,\n        \"Host\": true,\n        \"Keep-Alive\": true,\n        \"Referer\": true,\n        \"TE\": true,\n        \"Trailer\": true,\n        \"Transfer-Encoding\": true,\n        \"Upgrade\": true,\n        \"User-Agent\": true,\n        \"Via\": true\n    };\n    /*jsl:end*/\n\n    function FakeXMLHttpRequest() {\n        this.readyState = FakeXMLHttpRequest.UNSENT;\n        this.requestHeaders = {};\n        this.requestBody = null;\n        this.status = 0;\n        this.statusText = \"\";\n        this.upload = new UploadProgress();\n        if (sinon.xhr.supportsCORS) {\n            this.withCredentials = false;\n        }\n\n\n        var xhr = this;\n        var events = [\"loadstart\", \"load\", \"abort\", \"loadend\"];\n\n        function addEventListener(eventName) {\n            xhr.addEventListener(eventName, function (event) {\n                var listener = xhr[\"on\" + eventName];\n\n                if (listener && typeof listener == \"function\") {\n                    listener.call(this, event);\n                }\n            });\n        }\n\n        for (var i = events.length - 1; i >= 0; i--) {\n            addEventListener(events[i]);\n        }\n\n        if (typeof FakeXMLHttpRequest.onCreate == \"function\") {\n            FakeXMLHttpRequest.onCreate(this);\n        }\n    }\n\n    // An upload object is created for each\n    // FakeXMLHttpRequest and allows upload\n    // events to be simulated using uploadProgress\n    // and uploadError.\n    function UploadProgress() {\n        this.eventListeners = {\n            \"progress\": [],\n            \"load\": [],\n            \"abort\": [],\n            \"error\": []\n        }\n    }\n\n    UploadProgress.prototype.addEventListener = function(event, listener) {\n        this.eventListeners[event].push(listener);\n    };\n\n    UploadProgress.prototype.removeEventListener = function(event, listener) {\n        var listeners = this.eventListeners[event] || [];\n\n        for (var i = 0, l = listeners.length; i < l; ++i) {\n            if (listeners[i] == listener) {\n                return listeners.splice(i, 1);\n            }\n        }\n    };\n\n    UploadProgress.prototype.dispatchEvent = function(event) {\n        var listeners = this.eventListeners[event.type] || [];\n\n        for (var i = 0, listener; (listener = listeners[i]) != null; i++) {\n            listener(event);\n        }\n    };\n\n    function verifyState(xhr) {\n        if (xhr.readyState !== FakeXMLHttpRequest.OPENED) {\n            throw new Error(\"INVALID_STATE_ERR\");\n        }\n\n        if (xhr.sendFlag) {\n            throw new Error(\"INVALID_STATE_ERR\");\n        }\n    }\n\n    // filtering to enable a white-list version of Sinon FakeXhr,\n    // where whitelisted requests are passed through to real XHR\n    function each(collection, callback) {\n        if (!collection) return;\n        for (var i = 0, l = collection.length; i < l; i += 1) {\n            callback(collection[i]);\n        }\n    }\n    function some(collection, callback) {\n        for (var index = 0; index < collection.length; index++) {\n            if(callback(collection[index]) === true) return true;\n        }\n        return false;\n    }\n    // largest arity in XHR is 5 - XHR#open\n    var apply = function(obj,method,args) {\n        switch(args.length) {\n        case 0: return obj[method]();\n        case 1: return obj[method](args[0]);\n        case 2: return obj[method](args[0],args[1]);\n        case 3: return obj[method](args[0],args[1],args[2]);\n        case 4: return obj[method](args[0],args[1],args[2],args[3]);\n        case 5: return obj[method](args[0],args[1],args[2],args[3],args[4]);\n        }\n    };\n\n    FakeXMLHttpRequest.filters = [];\n    FakeXMLHttpRequest.addFilter = function(fn) {\n        this.filters.push(fn)\n    };\n    var IE6Re = /MSIE 6/;\n    FakeXMLHttpRequest.defake = function(fakeXhr,xhrArgs) {\n        var xhr = new sinon.xhr.workingXHR();\n        each([\"open\",\"setRequestHeader\",\"send\",\"abort\",\"getResponseHeader\",\n              \"getAllResponseHeaders\",\"addEventListener\",\"overrideMimeType\",\"removeEventListener\"],\n             function(method) {\n                 fakeXhr[method] = function() {\n                   return apply(xhr,method,arguments);\n                 };\n             });\n\n        var copyAttrs = function(args) {\n            each(args, function(attr) {\n              try {\n                fakeXhr[attr] = xhr[attr]\n              } catch(e) {\n                if(!IE6Re.test(navigator.userAgent)) throw e;\n              }\n            });\n        };\n\n        var stateChange = function() {\n            fakeXhr.readyState = xhr.readyState;\n            if(xhr.readyState >= FakeXMLHttpRequest.HEADERS_RECEIVED) {\n                copyAttrs([\"status\",\"statusText\"]);\n            }\n            if(xhr.readyState >= FakeXMLHttpRequest.LOADING) {\n                copyAttrs([\"responseText\"]);\n            }\n            if(xhr.readyState === FakeXMLHttpRequest.DONE) {\n                copyAttrs([\"responseXML\"]);\n            }\n            if(fakeXhr.onreadystatechange) fakeXhr.onreadystatechange.call(fakeXhr, { target: fakeXhr });\n        };\n        if(xhr.addEventListener) {\n          for(var event in fakeXhr.eventListeners) {\n              if(fakeXhr.eventListeners.hasOwnProperty(event)) {\n                  each(fakeXhr.eventListeners[event],function(handler) {\n                      xhr.addEventListener(event, handler);\n                  });\n              }\n          }\n          xhr.addEventListener(\"readystatechange\",stateChange);\n        } else {\n          xhr.onreadystatechange = stateChange;\n        }\n        apply(xhr,\"open\",xhrArgs);\n    };\n    FakeXMLHttpRequest.useFilters = false;\n\n    function verifyRequestOpened(xhr) {\n        if (xhr.readyState != FakeXMLHttpRequest.OPENED) {\n            throw new Error(\"INVALID_STATE_ERR - \" + xhr.readyState);\n        }\n    }\n\n    function verifyRequestSent(xhr) {\n        if (xhr.readyState == FakeXMLHttpRequest.DONE) {\n            throw new Error(\"Request done\");\n        }\n    }\n\n    function verifyHeadersReceived(xhr) {\n        if (xhr.async && xhr.readyState != FakeXMLHttpRequest.HEADERS_RECEIVED) {\n            throw new Error(\"No headers received\");\n        }\n    }\n\n    function verifyResponseBodyType(body) {\n        if (typeof body != \"string\") {\n            var error = new Error(\"Attempted to respond to fake XMLHttpRequest with \" +\n                                 body + \", which is not a string.\");\n            error.name = \"InvalidBodyException\";\n            throw error;\n        }\n    }\n\n    sinon.extend(FakeXMLHttpRequest.prototype, sinon.EventTarget, {\n        async: true,\n\n        open: function open(method, url, async, username, password) {\n            this.method = method;\n            this.url = url;\n            this.async = typeof async == \"boolean\" ? async : true;\n            this.username = username;\n            this.password = password;\n            this.responseText = null;\n            this.responseXML = null;\n            this.requestHeaders = {};\n            this.sendFlag = false;\n            if(sinon.FakeXMLHttpRequest.useFilters === true) {\n                var xhrArgs = arguments;\n                var defake = some(FakeXMLHttpRequest.filters,function(filter) {\n                    return filter.apply(this,xhrArgs)\n                });\n                if (defake) {\n                  return sinon.FakeXMLHttpRequest.defake(this,arguments);\n                }\n            }\n            this.readyStateChange(FakeXMLHttpRequest.OPENED);\n        },\n\n        readyStateChange: function readyStateChange(state) {\n            this.readyState = state;\n\n            if (typeof this.onreadystatechange == \"function\") {\n                try {\n                    this.onreadystatechange();\n                } catch (e) {\n                    sinon.logError(\"Fake XHR onreadystatechange handler\", e);\n                }\n            }\n\n            this.dispatchEvent(new sinon.Event(\"readystatechange\"));\n\n            switch (this.readyState) {\n                case FakeXMLHttpRequest.DONE:\n                    this.dispatchEvent(new sinon.Event(\"load\", false, false, this));\n                    this.dispatchEvent(new sinon.Event(\"loadend\", false, false, this));\n                    this.upload.dispatchEvent(new sinon.Event(\"load\", false, false, this));\n                    if (supportsProgress) {\n                        this.upload.dispatchEvent(new sinon.ProgressEvent('progress', {loaded: 100, total: 100}));\n                    }\n                    break;\n            }\n        },\n\n        setRequestHeader: function setRequestHeader(header, value) {\n            verifyState(this);\n\n            if (unsafeHeaders[header] || /^(Sec-|Proxy-)/.test(header)) {\n                throw new Error(\"Refused to set unsafe header \\\"\" + header + \"\\\"\");\n            }\n\n            if (this.requestHeaders[header]) {\n                this.requestHeaders[header] += \",\" + value;\n            } else {\n                this.requestHeaders[header] = value;\n            }\n        },\n\n        // Helps testing\n        setResponseHeaders: function setResponseHeaders(headers) {\n            verifyRequestOpened(this);\n            this.responseHeaders = {};\n\n            for (var header in headers) {\n                if (headers.hasOwnProperty(header)) {\n                    this.responseHeaders[header] = headers[header];\n                }\n            }\n\n            if (this.async) {\n                this.readyStateChange(FakeXMLHttpRequest.HEADERS_RECEIVED);\n            } else {\n                this.readyState = FakeXMLHttpRequest.HEADERS_RECEIVED;\n            }\n        },\n\n        // Currently treats ALL data as a DOMString (i.e. no Document)\n        send: function send(data) {\n            verifyState(this);\n\n            if (!/^(get|head)$/i.test(this.method)) {\n                if (this.requestHeaders[\"Content-Type\"]) {\n                    var value = this.requestHeaders[\"Content-Type\"].split(\";\");\n                    this.requestHeaders[\"Content-Type\"] = value[0] + \";charset=utf-8\";\n                } else {\n                    this.requestHeaders[\"Content-Type\"] = \"text/plain;charset=utf-8\";\n                }\n\n                this.requestBody = data;\n            }\n\n            this.errorFlag = false;\n            this.sendFlag = this.async;\n            this.readyStateChange(FakeXMLHttpRequest.OPENED);\n\n            if (typeof this.onSend == \"function\") {\n                this.onSend(this);\n            }\n\n            this.dispatchEvent(new sinon.Event(\"loadstart\", false, false, this));\n        },\n\n        abort: function abort() {\n            this.aborted = true;\n            this.responseText = null;\n            this.errorFlag = true;\n            this.requestHeaders = {};\n\n            if (this.readyState > sinon.FakeXMLHttpRequest.UNSENT && this.sendFlag) {\n                this.readyStateChange(sinon.FakeXMLHttpRequest.DONE);\n                this.sendFlag = false;\n            }\n\n            this.readyState = sinon.FakeXMLHttpRequest.UNSENT;\n\n            this.dispatchEvent(new sinon.Event(\"abort\", false, false, this));\n\n            this.upload.dispatchEvent(new sinon.Event(\"abort\", false, false, this));\n\n            if (typeof this.onerror === \"function\") {\n                this.onerror();\n            }\n        },\n\n        getResponseHeader: function getResponseHeader(header) {\n            if (this.readyState < FakeXMLHttpRequest.HEADERS_RECEIVED) {\n                return null;\n            }\n\n            if (/^Set-Cookie2?$/i.test(header)) {\n                return null;\n            }\n\n            header = header.toLowerCase();\n\n            for (var h in this.responseHeaders) {\n                if (h.toLowerCase() == header) {\n                    return this.responseHeaders[h];\n                }\n            }\n\n            return null;\n        },\n\n        getAllResponseHeaders: function getAllResponseHeaders() {\n            if (this.readyState < FakeXMLHttpRequest.HEADERS_RECEIVED) {\n                return \"\";\n            }\n\n            var headers = \"\";\n\n            for (var header in this.responseHeaders) {\n                if (this.responseHeaders.hasOwnProperty(header) &&\n                    !/^Set-Cookie2?$/i.test(header)) {\n                    headers += header + \": \" + this.responseHeaders[header] + \"\\r\\n\";\n                }\n            }\n\n            return headers;\n        },\n\n        setResponseBody: function setResponseBody(body) {\n            verifyRequestSent(this);\n            verifyHeadersReceived(this);\n            verifyResponseBodyType(body);\n\n            var chunkSize = this.chunkSize || 10;\n            var index = 0;\n            this.responseText = \"\";\n\n            do {\n                if (this.async) {\n                    this.readyStateChange(FakeXMLHttpRequest.LOADING);\n                }\n\n                this.responseText += body.substring(index, index + chunkSize);\n                index += chunkSize;\n            } while (index < body.length);\n\n            var type = this.getResponseHeader(\"Content-Type\");\n\n            if (this.responseText &&\n                (!type || /(text\\/xml)|(application\\/xml)|(\\+xml)/.test(type))) {\n                try {\n                    this.responseXML = FakeXMLHttpRequest.parseXML(this.responseText);\n                } catch (e) {\n                    // Unable to parse XML - no biggie\n                }\n            }\n\n            if (this.async) {\n                this.readyStateChange(FakeXMLHttpRequest.DONE);\n            } else {\n                this.readyState = FakeXMLHttpRequest.DONE;\n            }\n        },\n\n        respond: function respond(status, headers, body) {\n            this.status = typeof status == \"number\" ? status : 200;\n            this.statusText = FakeXMLHttpRequest.statusCodes[this.status];\n            this.setResponseHeaders(headers || {});\n            this.setResponseBody(body || \"\");\n        },\n\n        uploadProgress: function uploadProgress(progressEventRaw) {\n            if (supportsProgress) {\n                this.upload.dispatchEvent(new sinon.ProgressEvent(\"progress\", progressEventRaw));\n            }\n        },\n\n        uploadError: function uploadError(error) {\n            if (supportsCustomEvent) {\n                this.upload.dispatchEvent(new sinon.CustomEvent(\"error\", {\"detail\": error}));\n            }\n        }\n    });\n\n    sinon.extend(FakeXMLHttpRequest, {\n        UNSENT: 0,\n        OPENED: 1,\n        HEADERS_RECEIVED: 2,\n        LOADING: 3,\n        DONE: 4\n    });\n\n    // Borrowed from JSpec\n    FakeXMLHttpRequest.parseXML = function parseXML(text) {\n        var xmlDoc;\n\n        if (typeof DOMParser != \"undefined\") {\n            var parser = new DOMParser();\n            xmlDoc = parser.parseFromString(text, \"text/xml\");\n        } else {\n            xmlDoc = new ActiveXObject(\"Microsoft.XMLDOM\");\n            xmlDoc.async = \"false\";\n            xmlDoc.loadXML(text);\n        }\n\n        return xmlDoc;\n    };\n\n    FakeXMLHttpRequest.statusCodes = {\n        100: \"Continue\",\n        101: \"Switching Protocols\",\n        200: \"OK\",\n        201: \"Created\",\n        202: \"Accepted\",\n        203: \"Non-Authoritative Information\",\n        204: \"No Content\",\n        205: \"Reset Content\",\n        206: \"Partial Content\",\n        300: \"Multiple Choice\",\n        301: \"Moved Permanently\",\n        302: \"Found\",\n        303: \"See Other\",\n        304: \"Not Modified\",\n        305: \"Use Proxy\",\n        307: \"Temporary Redirect\",\n        400: \"Bad Request\",\n        401: \"Unauthorized\",\n        402: \"Payment Required\",\n        403: \"Forbidden\",\n        404: \"Not Found\",\n        405: \"Method Not Allowed\",\n        406: \"Not Acceptable\",\n        407: \"Proxy Authentication Required\",\n        408: \"Request Timeout\",\n        409: \"Conflict\",\n        410: \"Gone\",\n        411: \"Length Required\",\n        412: \"Precondition Failed\",\n        413: \"Request Entity Too Large\",\n        414: \"Request-URI Too Long\",\n        415: \"Unsupported Media Type\",\n        416: \"Requested Range Not Satisfiable\",\n        417: \"Expectation Failed\",\n        422: \"Unprocessable Entity\",\n        500: \"Internal Server Error\",\n        501: \"Not Implemented\",\n        502: \"Bad Gateway\",\n        503: \"Service Unavailable\",\n        504: \"Gateway Timeout\",\n        505: \"HTTP Version Not Supported\"\n    };\n\n    sinon.useFakeXMLHttpRequest = function () {\n        sinon.FakeXMLHttpRequest.restore = function restore(keepOnCreate) {\n            if (xhr.supportsXHR) {\n                global.XMLHttpRequest = xhr.GlobalXMLHttpRequest;\n            }\n\n            if (xhr.supportsActiveX) {\n                global.ActiveXObject = xhr.GlobalActiveXObject;\n            }\n\n            delete sinon.FakeXMLHttpRequest.restore;\n\n            if (keepOnCreate !== true) {\n                delete sinon.FakeXMLHttpRequest.onCreate;\n            }\n        };\n        if (xhr.supportsXHR) {\n            global.XMLHttpRequest = sinon.FakeXMLHttpRequest;\n        }\n\n        if (xhr.supportsActiveX) {\n            global.ActiveXObject = function ActiveXObject(objId) {\n                if (objId == \"Microsoft.XMLHTTP\" || /^Msxml2\\.XMLHTTP/i.test(objId)) {\n\n                    return new sinon.FakeXMLHttpRequest();\n                }\n\n                return new xhr.GlobalActiveXObject(objId);\n            };\n        }\n\n        return sinon.FakeXMLHttpRequest;\n    };\n\n    sinon.FakeXMLHttpRequest = FakeXMLHttpRequest;\n\n})((function(){ return typeof global === \"object\" ? global : this; })());\n\nif (typeof module !== 'undefined' && module.exports) {\n    module.exports = sinon;\n}\n\n/**\n * @depend fake_xml_http_request.js\n */\n/*jslint eqeqeq: false, onevar: false, regexp: false, plusplus: false*/\n/*global module, require, window*/\n/**\n * The Sinon \"server\" mimics a web server that receives requests from\n * sinon.FakeXMLHttpRequest and provides an API to respond to those requests,\n * both synchronously and asynchronously. To respond synchronuously, canned\n * answers have to be provided upfront.\n *\n * @author Christian Johansen (christian@cjohansen.no)\n * @license BSD\n *\n * Copyright (c) 2010-2013 Christian Johansen\n */\n\nif (typeof sinon == \"undefined\") {\n    var sinon = {};\n}\n\nsinon.fakeServer = (function () {\n    var push = [].push;\n    function F() {}\n\n    function create(proto) {\n        F.prototype = proto;\n        return new F();\n    }\n\n    function responseArray(handler) {\n        var response = handler;\n\n        if (Object.prototype.toString.call(handler) != \"[object Array]\") {\n            response = [200, {}, handler];\n        }\n\n        if (typeof response[2] != \"string\") {\n            throw new TypeError(\"Fake server response body should be string, but was \" +\n                                typeof response[2]);\n        }\n\n        return response;\n    }\n\n    var wloc = typeof window !== \"undefined\" ? window.location : {};\n    var rCurrLoc = new RegExp(\"^\" + wloc.protocol + \"//\" + wloc.host);\n\n    function matchOne(response, reqMethod, reqUrl) {\n        var rmeth = response.method;\n        var matchMethod = !rmeth || rmeth.toLowerCase() == reqMethod.toLowerCase();\n        var url = response.url;\n        var matchUrl = !url || url == reqUrl || (typeof url.test == \"function\" && url.test(reqUrl));\n\n        return matchMethod && matchUrl;\n    }\n\n    function match(response, request) {\n        var requestUrl = request.url;\n\n        if (!/^https?:\\/\\//.test(requestUrl) || rCurrLoc.test(requestUrl)) {\n            requestUrl = requestUrl.replace(rCurrLoc, \"\");\n        }\n\n        if (matchOne(response, this.getHTTPMethod(request), requestUrl)) {\n            if (typeof response.response == \"function\") {\n                var ru = response.url;\n                var args = [request].concat(ru && typeof ru.exec == \"function\" ? ru.exec(requestUrl).slice(1) : []);\n                return response.response.apply(response, args);\n            }\n\n            return true;\n        }\n\n        return false;\n    }\n\n    return {\n        create: function () {\n            var server = create(this);\n            this.xhr = sinon.useFakeXMLHttpRequest();\n            server.requests = [];\n\n            this.xhr.onCreate = function (xhrObj) {\n                server.addRequest(xhrObj);\n            };\n\n            return server;\n        },\n\n        addRequest: function addRequest(xhrObj) {\n            var server = this;\n            push.call(this.requests, xhrObj);\n\n            xhrObj.onSend = function () {\n                server.handleRequest(this);\n\n                if (server.autoRespond && !server.responding) {\n                    setTimeout(function () {\n                        server.responding = false;\n                        server.respond();\n                    }, server.autoRespondAfter || 10);\n\n                    server.responding = true;\n                }\n            };\n        },\n\n        getHTTPMethod: function getHTTPMethod(request) {\n            if (this.fakeHTTPMethods && /post/i.test(request.method)) {\n                var matches = (request.requestBody || \"\").match(/_method=([^\\b;]+)/);\n                return !!matches ? matches[1] : request.method;\n            }\n\n            return request.method;\n        },\n\n        handleRequest: function handleRequest(xhr) {\n            if (xhr.async) {\n                if (!this.queue) {\n                    this.queue = [];\n                }\n\n                push.call(this.queue, xhr);\n            } else {\n                this.processRequest(xhr);\n            }\n        },\n\n        log: function(response, request) {\n            var str;\n\n            str =  \"Request:\\n\"  + sinon.format(request)  + \"\\n\\n\";\n            str += \"Response:\\n\" + sinon.format(response) + \"\\n\\n\";\n\n            sinon.log(str);\n        },\n\n        respondWith: function respondWith(method, url, body) {\n            if (arguments.length == 1 && typeof method != \"function\") {\n                this.response = responseArray(method);\n                return;\n            }\n\n            if (!this.responses) { this.responses = []; }\n\n            if (arguments.length == 1) {\n                body = method;\n                url = method = null;\n            }\n\n            if (arguments.length == 2) {\n                body = url;\n                url = method;\n                method = null;\n            }\n\n            push.call(this.responses, {\n                method: method,\n                url: url,\n                response: typeof body == \"function\" ? body : responseArray(body)\n            });\n        },\n\n        respond: function respond() {\n            if (arguments.length > 0) this.respondWith.apply(this, arguments);\n            var queue = this.queue || [];\n            var requests = queue.splice(0, queue.length);\n            var request;\n\n            while(request = requests.shift()) {\n                this.processRequest(request);\n            }\n        },\n\n        processRequest: function processRequest(request) {\n            try {\n                if (request.aborted) {\n                    return;\n                }\n\n                var response = this.response || [404, {}, \"\"];\n\n                if (this.responses) {\n                    for (var l = this.responses.length, i = l - 1; i >= 0; i--) {\n                        if (match.call(this, this.responses[i], request)) {\n                            response = this.responses[i].response;\n                            break;\n                        }\n                    }\n                }\n\n                if (request.readyState != 4) {\n                    sinon.fakeServer.log(response, request);\n\n                    request.respond(response[0], response[1], response[2]);\n                }\n            } catch (e) {\n                sinon.logError(\"Fake server request processing\", e);\n            }\n        },\n\n        restore: function restore() {\n            return this.xhr.restore && this.xhr.restore.apply(this.xhr, arguments);\n        }\n    };\n}());\n\nif (typeof module !== 'undefined' && module.exports) {\n    module.exports = sinon;\n}\n\n/**\n * @depend fake_server.js\n * @depend fake_timers.js\n */\n/*jslint browser: true, eqeqeq: false, onevar: false*/\n/*global sinon*/\n/**\n * Add-on for sinon.fakeServer that automatically handles a fake timer along with\n * the FakeXMLHttpRequest. The direct inspiration for this add-on is jQuery\n * 1.3.x, which does not use xhr object's onreadystatehandler at all - instead,\n * it polls the object for completion with setInterval. Dispite the direct\n * motivation, there is nothing jQuery-specific in this file, so it can be used\n * in any environment where the ajax implementation depends on setInterval or\n * setTimeout.\n *\n * @author Christian Johansen (christian@cjohansen.no)\n * @license BSD\n *\n * Copyright (c) 2010-2013 Christian Johansen\n */\n\n(function () {\n    function Server() {}\n    Server.prototype = sinon.fakeServer;\n\n    sinon.fakeServerWithClock = new Server();\n\n    sinon.fakeServerWithClock.addRequest = function addRequest(xhr) {\n        if (xhr.async) {\n            if (typeof setTimeout.clock == \"object\") {\n                this.clock = setTimeout.clock;\n            } else {\n                this.clock = sinon.useFakeTimers();\n                this.resetClock = true;\n            }\n\n            if (!this.longestTimeout) {\n                var clockSetTimeout = this.clock.setTimeout;\n                var clockSetInterval = this.clock.setInterval;\n                var server = this;\n\n                this.clock.setTimeout = function (fn, timeout) {\n                    server.longestTimeout = Math.max(timeout, server.longestTimeout || 0);\n\n                    return clockSetTimeout.apply(this, arguments);\n                };\n\n                this.clock.setInterval = function (fn, timeout) {\n                    server.longestTimeout = Math.max(timeout, server.longestTimeout || 0);\n\n                    return clockSetInterval.apply(this, arguments);\n                };\n            }\n        }\n\n        return sinon.fakeServer.addRequest.call(this, xhr);\n    };\n\n    sinon.fakeServerWithClock.respond = function respond() {\n        var returnVal = sinon.fakeServer.respond.apply(this, arguments);\n\n        if (this.clock) {\n            this.clock.tick(this.longestTimeout || 0);\n            this.longestTimeout = 0;\n\n            if (this.resetClock) {\n                this.clock.restore();\n                this.resetClock = false;\n            }\n        }\n\n        return returnVal;\n    };\n\n    sinon.fakeServerWithClock.restore = function restore() {\n        if (this.clock) {\n            this.clock.restore();\n        }\n\n        return sinon.fakeServer.restore.apply(this, arguments);\n    };\n}());\n\n/**\n * @depend ../sinon.js\n * @depend collection.js\n * @depend util/fake_timers.js\n * @depend util/fake_server_with_clock.js\n */\n/*jslint eqeqeq: false, onevar: false, plusplus: false*/\n/*global require, module*/\n/**\n * Manages fake collections as well as fake utilities such as Sinon's\n * timers and fake XHR implementation in one convenient object.\n *\n * @author Christian Johansen (christian@cjohansen.no)\n * @license BSD\n *\n * Copyright (c) 2010-2013 Christian Johansen\n */\n\nif (typeof module !== \"undefined\" && module.exports && typeof require == \"function\") {\n    var sinon = require(\"../sinon\");\n    sinon.extend(sinon, require(\"./util/fake_timers\"));\n}\n\n(function () {\n    var push = [].push;\n\n    function exposeValue(sandbox, config, key, value) {\n        if (!value) {\n            return;\n        }\n\n        if (config.injectInto && !(key in config.injectInto)) {\n            config.injectInto[key] = value;\n            sandbox.injectedKeys.push(key);\n        } else {\n            push.call(sandbox.args, value);\n        }\n    }\n\n    function prepareSandboxFromConfig(config) {\n        var sandbox = sinon.create(sinon.sandbox);\n\n        if (config.useFakeServer) {\n            if (typeof config.useFakeServer == \"object\") {\n                sandbox.serverPrototype = config.useFakeServer;\n            }\n\n            sandbox.useFakeServer();\n        }\n\n        if (config.useFakeTimers) {\n            if (typeof config.useFakeTimers == \"object\") {\n                sandbox.useFakeTimers.apply(sandbox, config.useFakeTimers);\n            } else {\n                sandbox.useFakeTimers();\n            }\n        }\n\n        return sandbox;\n    }\n\n    sinon.sandbox = sinon.extend(sinon.create(sinon.collection), {\n        useFakeTimers: function useFakeTimers() {\n            this.clock = sinon.useFakeTimers.apply(sinon, arguments);\n\n            return this.add(this.clock);\n        },\n\n        serverPrototype: sinon.fakeServer,\n\n        useFakeServer: function useFakeServer() {\n            var proto = this.serverPrototype || sinon.fakeServer;\n\n            if (!proto || !proto.create) {\n                return null;\n            }\n\n            this.server = proto.create();\n            return this.add(this.server);\n        },\n\n        inject: function (obj) {\n            sinon.collection.inject.call(this, obj);\n\n            if (this.clock) {\n                obj.clock = this.clock;\n            }\n\n            if (this.server) {\n                obj.server = this.server;\n                obj.requests = this.server.requests;\n            }\n\n            return obj;\n        },\n\n        restore: function () {\n            sinon.collection.restore.apply(this, arguments);\n            this.restoreContext();\n        },\n\n        restoreContext: function () {\n            if (this.injectedKeys) {\n                for (var i = 0, j = this.injectedKeys.length; i < j; i++) {\n                    delete this.injectInto[this.injectedKeys[i]];\n                }\n                this.injectedKeys = [];\n            }\n        },\n\n        create: function (config) {\n            if (!config) {\n                return sinon.create(sinon.sandbox);\n            }\n\n            var sandbox = prepareSandboxFromConfig(config);\n            sandbox.args = sandbox.args || [];\n            sandbox.injectedKeys = [];\n            sandbox.injectInto = config.injectInto;\n            var prop, value, exposed = sandbox.inject({});\n\n            if (config.properties) {\n                for (var i = 0, l = config.properties.length; i < l; i++) {\n                    prop = config.properties[i];\n                    value = exposed[prop] || prop == \"sandbox\" && sandbox;\n                    exposeValue(sandbox, config, prop, value);\n                }\n            } else {\n                exposeValue(sandbox, config, \"sandbox\", value);\n            }\n\n            return sandbox;\n        }\n    });\n\n    sinon.sandbox.useFakeXMLHttpRequest = sinon.sandbox.useFakeServer;\n\n    if (typeof define === \"function\" && define.amd) {\n        define([\"module\"], function(module) { module.exports = sinon.sandbox; });\n    } else if (typeof module !== 'undefined' && module.exports) {\n        module.exports = sinon.sandbox;\n    }\n}());\n\n/**\n * @depend ../sinon.js\n * @depend stub.js\n * @depend mock.js\n * @depend sandbox.js\n */\n/*jslint eqeqeq: false, onevar: false, forin: true, plusplus: false*/\n/*global module, require, sinon*/\n/**\n * Test function, sandboxes fakes\n *\n * @author Christian Johansen (christian@cjohansen.no)\n * @license BSD\n *\n * Copyright (c) 2010-2013 Christian Johansen\n */\n\n(function (sinon) {\n    var commonJSModule = typeof module !== \"undefined\" && module.exports && typeof require == \"function\";\n\n    if (!sinon && commonJSModule) {\n        sinon = require(\"../sinon\");\n    }\n\n    if (!sinon) {\n        return;\n    }\n\n    function test(callback) {\n        var type = typeof callback;\n\n        if (type != \"function\") {\n            throw new TypeError(\"sinon.test needs to wrap a test function, got \" + type);\n        }\n\n        function sinonSandboxedTest() {\n            var config = sinon.getConfig(sinon.config);\n            config.injectInto = config.injectIntoThis && this || config.injectInto;\n            var sandbox = sinon.sandbox.create(config);\n            var exception, result;\n            var args = Array.prototype.slice.call(arguments).concat(sandbox.args);\n\n            try {\n                result = callback.apply(this, args);\n            } catch (e) {\n                exception = e;\n            }\n\n            if (typeof exception !== \"undefined\") {\n                sandbox.restore();\n                throw exception;\n            }\n            else {\n                sandbox.verifyAndRestore();\n            }\n\n            return result;\n        };\n\n        if (callback.length) {\n            return function sinonAsyncSandboxedTest(callback) {\n                return sinonSandboxedTest.apply(this, arguments);\n            };\n        }\n\n        return sinonSandboxedTest;\n    }\n\n    test.config = {\n        injectIntoThis: true,\n        injectInto: null,\n        properties: [\"spy\", \"stub\", \"mock\", \"clock\", \"server\", \"requests\"],\n        useFakeTimers: true,\n        useFakeServer: true\n    };\n\n    sinon.test = test;\n\n    if (typeof define === \"function\" && define.amd) {\n        define([\"module\"], function(module) { module.exports = test; });\n    } else if (commonJSModule) {\n        module.exports = test;\n    }\n}(typeof sinon == \"object\" && sinon || null));\n\n/**\n * @depend ../sinon.js\n * @depend test.js\n */\n/*jslint eqeqeq: false, onevar: false, eqeqeq: false*/\n/*global module, require, sinon*/\n/**\n * Test case, sandboxes all test functions\n *\n * @author Christian Johansen (christian@cjohansen.no)\n * @license BSD\n *\n * Copyright (c) 2010-2013 Christian Johansen\n */\n\n(function (sinon) {\n    var commonJSModule = typeof module !== \"undefined\" && module.exports && typeof require == \"function\";\n\n    if (!sinon && commonJSModule) {\n        sinon = require(\"../sinon\");\n    }\n\n    if (!sinon || !Object.prototype.hasOwnProperty) {\n        return;\n    }\n\n    function createTest(property, setUp, tearDown) {\n        return function () {\n            if (setUp) {\n                setUp.apply(this, arguments);\n            }\n\n            var exception, result;\n\n            try {\n                result = property.apply(this, arguments);\n            } catch (e) {\n                exception = e;\n            }\n\n            if (tearDown) {\n                tearDown.apply(this, arguments);\n            }\n\n            if (exception) {\n                throw exception;\n            }\n\n            return result;\n        };\n    }\n\n    function testCase(tests, prefix) {\n        /*jsl:ignore*/\n        if (!tests || typeof tests != \"object\") {\n            throw new TypeError(\"sinon.testCase needs an object with test functions\");\n        }\n        /*jsl:end*/\n\n        prefix = prefix || \"test\";\n        var rPrefix = new RegExp(\"^\" + prefix);\n        var methods = {}, testName, property, method;\n        var setUp = tests.setUp;\n        var tearDown = tests.tearDown;\n\n        for (testName in tests) {\n            if (tests.hasOwnProperty(testName)) {\n                property = tests[testName];\n\n                if (/^(setUp|tearDown)$/.test(testName)) {\n                    continue;\n                }\n\n                if (typeof property == \"function\" && rPrefix.test(testName)) {\n                    method = property;\n\n                    if (setUp || tearDown) {\n                        method = createTest(property, setUp, tearDown);\n                    }\n\n                    methods[testName] = sinon.test(method);\n                } else {\n                    methods[testName] = tests[testName];\n                }\n            }\n        }\n\n        return methods;\n    }\n\n    sinon.testCase = testCase;\n\n    if (typeof define === \"function\" && define.amd) {\n        define([\"module\"], function(module) { module.exports = testCase; });\n    } else if (commonJSModule) {\n        module.exports = testCase;\n    }\n}(typeof sinon == \"object\" && sinon || null));\n\n/**\n * @depend ../sinon.js\n * @depend stub.js\n */\n/*jslint eqeqeq: false, onevar: false, nomen: false, plusplus: false*/\n/*global module, require, sinon*/\n/**\n * Assertions matching the test spy retrieval interface.\n *\n * @author Christian Johansen (christian@cjohansen.no)\n * @license BSD\n *\n * Copyright (c) 2010-2013 Christian Johansen\n */\n\n(function (sinon, global) {\n    var commonJSModule = typeof module !== \"undefined\" && module.exports && typeof require == \"function\";\n    var slice = Array.prototype.slice;\n    var assert;\n\n    if (!sinon && commonJSModule) {\n        sinon = require(\"../sinon\");\n    }\n\n    if (!sinon) {\n        return;\n    }\n\n    function verifyIsStub() {\n        var method;\n\n        for (var i = 0, l = arguments.length; i < l; ++i) {\n            method = arguments[i];\n\n            if (!method) {\n                assert.fail(\"fake is not a spy\");\n            }\n\n            if (typeof method != \"function\") {\n                assert.fail(method + \" is not a function\");\n            }\n\n            if (typeof method.getCall != \"function\") {\n                assert.fail(method + \" is not stubbed\");\n            }\n        }\n    }\n\n    function failAssertion(object, msg) {\n        object = object || global;\n        var failMethod = object.fail || assert.fail;\n        failMethod.call(object, msg);\n    }\n\n    function mirrorPropAsAssertion(name, method, message) {\n        if (arguments.length == 2) {\n            message = method;\n            method = name;\n        }\n\n        assert[name] = function (fake) {\n            verifyIsStub(fake);\n\n            var args = slice.call(arguments, 1);\n            var failed = false;\n\n            if (typeof method == \"function\") {\n                failed = !method(fake);\n            } else {\n                failed = typeof fake[method] == \"function\" ?\n                    !fake[method].apply(fake, args) : !fake[method];\n            }\n\n            if (failed) {\n                failAssertion(this, fake.printf.apply(fake, [message].concat(args)));\n            } else {\n                assert.pass(name);\n            }\n        };\n    }\n\n    function exposedName(prefix, prop) {\n        return !prefix || /^fail/.test(prop) ? prop :\n            prefix + prop.slice(0, 1).toUpperCase() + prop.slice(1);\n    }\n\n    assert = {\n        failException: \"AssertError\",\n\n        fail: function fail(message) {\n            var error = new Error(message);\n            error.name = this.failException || assert.failException;\n\n            throw error;\n        },\n\n        pass: function pass(assertion) {},\n\n        callOrder: function assertCallOrder() {\n            verifyIsStub.apply(null, arguments);\n            var expected = \"\", actual = \"\";\n\n            if (!sinon.calledInOrder(arguments)) {\n                try {\n                    expected = [].join.call(arguments, \", \");\n                    var calls = slice.call(arguments);\n                    var i = calls.length;\n                    while (i) {\n                        if (!calls[--i].called) {\n                            calls.splice(i, 1);\n                        }\n                    }\n                    actual = sinon.orderByFirstCall(calls).join(\", \");\n                } catch (e) {\n                    // If this fails, we'll just fall back to the blank string\n                }\n\n                failAssertion(this, \"expected \" + expected + \" to be \" +\n                              \"called in order but were called as \" + actual);\n            } else {\n                assert.pass(\"callOrder\");\n            }\n        },\n\n        callCount: function assertCallCount(method, count) {\n            verifyIsStub(method);\n\n            if (method.callCount != count) {\n                var msg = \"expected %n to be called \" + sinon.timesInWords(count) +\n                    \" but was called %c%C\";\n                failAssertion(this, method.printf(msg));\n            } else {\n                assert.pass(\"callCount\");\n            }\n        },\n\n        expose: function expose(target, options) {\n            if (!target) {\n                throw new TypeError(\"target is null or undefined\");\n            }\n\n            var o = options || {};\n            var prefix = typeof o.prefix == \"undefined\" && \"assert\" || o.prefix;\n            var includeFail = typeof o.includeFail == \"undefined\" || !!o.includeFail;\n\n            for (var method in this) {\n                if (method != \"export\" && (includeFail || !/^(fail)/.test(method))) {\n                    target[exposedName(prefix, method)] = this[method];\n                }\n            }\n\n            return target;\n        },\n\n        match: function match(actual, expectation) {\n            var matcher = sinon.match(expectation);\n            if (matcher.test(actual)) {\n                assert.pass(\"match\");\n            } else {\n                var formatted = [\n                    \"expected value to match\",\n                    \"    expected = \" + sinon.format(expectation),\n                    \"    actual = \" + sinon.format(actual)\n                ]\n                failAssertion(this, formatted.join(\"\\n\"));\n            }\n        }\n    };\n\n    mirrorPropAsAssertion(\"called\", \"expected %n to have been called at least once but was never called\");\n    mirrorPropAsAssertion(\"notCalled\", function (spy) { return !spy.called; },\n                          \"expected %n to not have been called but was called %c%C\");\n    mirrorPropAsAssertion(\"calledOnce\", \"expected %n to be called once but was called %c%C\");\n    mirrorPropAsAssertion(\"calledTwice\", \"expected %n to be called twice but was called %c%C\");\n    mirrorPropAsAssertion(\"calledThrice\", \"expected %n to be called thrice but was called %c%C\");\n    mirrorPropAsAssertion(\"calledOn\", \"expected %n to be called with %1 as this but was called with %t\");\n    mirrorPropAsAssertion(\"alwaysCalledOn\", \"expected %n to always be called with %1 as this but was called with %t\");\n    mirrorPropAsAssertion(\"calledWithNew\", \"expected %n to be called with new\");\n    mirrorPropAsAssertion(\"alwaysCalledWithNew\", \"expected %n to always be called with new\");\n    mirrorPropAsAssertion(\"calledWith\", \"expected %n to be called with arguments %*%C\");\n    mirrorPropAsAssertion(\"calledWithMatch\", \"expected %n to be called with match %*%C\");\n    mirrorPropAsAssertion(\"alwaysCalledWith\", \"expected %n to always be called with arguments %*%C\");\n    mirrorPropAsAssertion(\"alwaysCalledWithMatch\", \"expected %n to always be called with match %*%C\");\n    mirrorPropAsAssertion(\"calledWithExactly\", \"expected %n to be called with exact arguments %*%C\");\n    mirrorPropAsAssertion(\"alwaysCalledWithExactly\", \"expected %n to always be called with exact arguments %*%C\");\n    mirrorPropAsAssertion(\"neverCalledWith\", \"expected %n to never be called with arguments %*%C\");\n    mirrorPropAsAssertion(\"neverCalledWithMatch\", \"expected %n to never be called with match %*%C\");\n    mirrorPropAsAssertion(\"threw\", \"%n did not throw exception%C\");\n    mirrorPropAsAssertion(\"alwaysThrew\", \"%n did not always throw exception%C\");\n\n    sinon.assert = assert;\n\n    if (typeof define === \"function\" && define.amd) {\n        define([\"module\"], function(module) { module.exports = assert; });\n    } else if (commonJSModule) {\n        module.exports = assert;\n    }\n}(typeof sinon == \"object\" && sinon || null, typeof window != \"undefined\" ? window : (typeof self != \"undefined\") ? self : global));\n\n/**\n * @depend ../../sinon.js\n * @depend event.js\n */\n/*jslint eqeqeq: false, onevar: false*/\n/*global sinon, module, require, XDomainRequest*/\n/**\n * Fake XDomainRequest object\n */\n\nif (typeof sinon == \"undefined\") {\n    this.sinon = {};\n}\nsinon.xdr = { XDomainRequest: this.XDomainRequest };\n\n// wrapper for global\n(function (global) {\n    var xdr = sinon.xdr;\n    xdr.GlobalXDomainRequest = global.XDomainRequest;\n    xdr.supportsXDR = typeof xdr.GlobalXDomainRequest != \"undefined\";\n    xdr.workingXDR = xdr.supportsXDR ? xdr.GlobalXDomainRequest :  false;\n\n    function FakeXDomainRequest() {\n        this.readyState = FakeXDomainRequest.UNSENT;\n        this.requestBody = null;\n        this.requestHeaders = {};\n        this.status = 0;\n        this.timeout = null;\n\n        if (typeof FakeXDomainRequest.onCreate == \"function\") {\n            FakeXDomainRequest.onCreate(this);\n        }\n    }\n\n    function verifyState(xdr) {\n        if (xdr.readyState !== FakeXDomainRequest.OPENED) {\n            throw new Error(\"INVALID_STATE_ERR\");\n        }\n\n        if (xdr.sendFlag) {\n            throw new Error(\"INVALID_STATE_ERR\");\n        }\n    }\n\n    function verifyRequestSent(xdr) {\n        if (xdr.readyState == FakeXDomainRequest.UNSENT) {\n            throw new Error(\"Request not sent\");\n        }\n        if (xdr.readyState == FakeXDomainRequest.DONE) {\n            throw new Error(\"Request done\");\n        }\n    }\n\n    function verifyResponseBodyType(body) {\n        if (typeof body != \"string\") {\n            var error = new Error(\"Attempted to respond to fake XDomainRequest with \" +\n                                  body + \", which is not a string.\");\n            error.name = \"InvalidBodyException\";\n            throw error;\n        }\n    }\n\n    sinon.extend(FakeXDomainRequest.prototype, sinon.EventTarget, {\n        open: function open(method, url) {\n            this.method = method;\n            this.url = url;\n\n            this.responseText = null;\n            this.sendFlag = false;\n\n            this.readyStateChange(FakeXDomainRequest.OPENED);\n        },\n\n        readyStateChange: function readyStateChange(state) {\n            this.readyState = state;\n            var eventName = '';\n            switch (this.readyState) {\n            case FakeXDomainRequest.UNSENT:\n                break;\n            case FakeXDomainRequest.OPENED:\n                break;\n            case FakeXDomainRequest.LOADING:\n                if (this.sendFlag){\n                    //raise the progress event\n                    eventName = 'onprogress';\n                }\n                break;\n            case FakeXDomainRequest.DONE:\n                if (this.isTimeout){\n                    eventName = 'ontimeout'\n                }\n                else if (this.errorFlag || (this.status < 200 || this.status > 299)) {\n                    eventName = 'onerror';\n                }\n                else {\n                    eventName = 'onload'\n                }\n                break;\n            }\n\n            // raising event (if defined)\n            if (eventName) {\n                if (typeof this[eventName] == \"function\") {\n                    try {\n                        this[eventName]();\n                    } catch (e) {\n                        sinon.logError(\"Fake XHR \" + eventName + \" handler\", e);\n                    }\n                }\n            }\n        },\n\n        send: function send(data) {\n            verifyState(this);\n\n            if (!/^(get|head)$/i.test(this.method)) {\n                this.requestBody = data;\n            }\n            this.requestHeaders[\"Content-Type\"] = \"text/plain;charset=utf-8\";\n\n            this.errorFlag = false;\n            this.sendFlag = true;\n            this.readyStateChange(FakeXDomainRequest.OPENED);\n\n            if (typeof this.onSend == \"function\") {\n                this.onSend(this);\n            }\n        },\n\n        abort: function abort() {\n            this.aborted = true;\n            this.responseText = null;\n            this.errorFlag = true;\n\n            if (this.readyState > sinon.FakeXDomainRequest.UNSENT && this.sendFlag) {\n                this.readyStateChange(sinon.FakeXDomainRequest.DONE);\n                this.sendFlag = false;\n            }\n        },\n\n        setResponseBody: function setResponseBody(body) {\n            verifyRequestSent(this);\n            verifyResponseBodyType(body);\n\n            var chunkSize = this.chunkSize || 10;\n            var index = 0;\n            this.responseText = \"\";\n\n            do {\n                this.readyStateChange(FakeXDomainRequest.LOADING);\n                this.responseText += body.substring(index, index + chunkSize);\n                index += chunkSize;\n            } while (index < body.length);\n\n            this.readyStateChange(FakeXDomainRequest.DONE);\n        },\n\n        respond: function respond(status, contentType, body) {\n            // content-type ignored, since XDomainRequest does not carry this\n            // we keep the same syntax for respond(...) as for FakeXMLHttpRequest to ease\n            // test integration across browsers\n            this.status = typeof status == \"number\" ? status : 200;\n            this.setResponseBody(body || \"\");\n        },\n\n        simulatetimeout: function(){\n            this.status = 0;\n            this.isTimeout = true;\n            // Access to this should actually throw an error\n            this.responseText = undefined;\n            this.readyStateChange(FakeXDomainRequest.DONE);\n        }\n    });\n\n    sinon.extend(FakeXDomainRequest, {\n        UNSENT: 0,\n        OPENED: 1,\n        LOADING: 3,\n        DONE: 4\n    });\n\n    sinon.useFakeXDomainRequest = function () {\n        sinon.FakeXDomainRequest.restore = function restore(keepOnCreate) {\n            if (xdr.supportsXDR) {\n                global.XDomainRequest = xdr.GlobalXDomainRequest;\n            }\n\n            delete sinon.FakeXDomainRequest.restore;\n\n            if (keepOnCreate !== true) {\n                delete sinon.FakeXDomainRequest.onCreate;\n            }\n        };\n        if (xdr.supportsXDR) {\n            global.XDomainRequest = sinon.FakeXDomainRequest;\n        }\n        return sinon.FakeXDomainRequest;\n    };\n\n    sinon.FakeXDomainRequest = FakeXDomainRequest;\n})(this);\n\nif (typeof module == \"object\" && typeof require == \"function\") {\n    module.exports = sinon;\n}\n\nreturn sinon;}.call(typeof window != 'undefined' && window || {}));"
  },
  {
    "path": "server/files/javascript/library/state.js",
    "content": "/*!\n * # Semantic UI 2.2.14 - State\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n\n;(function ($, window, document, undefined) {\n\n\"use strict\";\n\nwindow = (typeof window != 'undefined' && window.Math == Math)\n  ? window\n  : (typeof self != 'undefined' && self.Math == Math)\n    ? self\n    : Function('return this')()\n;\n\n$.fn.state = function(parameters) {\n  var\n    $allModules     = $(this),\n\n    moduleSelector  = $allModules.selector || '',\n\n    hasTouch        = ('ontouchstart' in document.documentElement),\n    time            = new Date().getTime(),\n    performance     = [],\n\n    query           = arguments[0],\n    methodInvoked   = (typeof query == 'string'),\n    queryArguments  = [].slice.call(arguments, 1),\n\n    returnedValue\n  ;\n  $allModules\n    .each(function() {\n      var\n        settings          = ( $.isPlainObject(parameters) )\n          ? $.extend(true, {}, $.fn.state.settings, parameters)\n          : $.extend({}, $.fn.state.settings),\n\n        error           = settings.error,\n        metadata        = settings.metadata,\n        className       = settings.className,\n        namespace       = settings.namespace,\n        states          = settings.states,\n        text            = settings.text,\n\n        eventNamespace  = '.' + namespace,\n        moduleNamespace = namespace + '-module',\n\n        $module         = $(this),\n\n        element         = this,\n        instance        = $module.data(moduleNamespace),\n\n        module\n      ;\n      module = {\n\n        initialize: function() {\n          module.verbose('Initializing module');\n\n          // allow module to guess desired state based on element\n          if(settings.automatic) {\n            module.add.defaults();\n          }\n\n          // bind events with delegated events\n          if(settings.context && moduleSelector !== '') {\n            $(settings.context)\n              .on(moduleSelector, 'mouseenter' + eventNamespace, module.change.text)\n              .on(moduleSelector, 'mouseleave' + eventNamespace, module.reset.text)\n              .on(moduleSelector, 'click'      + eventNamespace, module.toggle.state)\n            ;\n          }\n          else {\n            $module\n              .on('mouseenter' + eventNamespace, module.change.text)\n              .on('mouseleave' + eventNamespace, module.reset.text)\n              .on('click'      + eventNamespace, module.toggle.state)\n            ;\n          }\n          module.instantiate();\n        },\n\n        instantiate: function() {\n          module.verbose('Storing instance of module', module);\n          instance = module;\n          $module\n            .data(moduleNamespace, module)\n          ;\n        },\n\n        destroy: function() {\n          module.verbose('Destroying previous module', instance);\n          $module\n            .off(eventNamespace)\n            .removeData(moduleNamespace)\n          ;\n        },\n\n        refresh: function() {\n          module.verbose('Refreshing selector cache');\n          $module = $(element);\n        },\n\n        add: {\n          defaults: function() {\n            var\n              userStates = parameters && $.isPlainObject(parameters.states)\n                ? parameters.states\n                : {}\n            ;\n            $.each(settings.defaults, function(type, typeStates) {\n              if( module.is[type] !== undefined && module.is[type]() ) {\n                module.verbose('Adding default states', type, element);\n                $.extend(settings.states, typeStates, userStates);\n              }\n            });\n          }\n        },\n\n        is: {\n\n          active: function() {\n            return $module.hasClass(className.active);\n          },\n          loading: function() {\n            return $module.hasClass(className.loading);\n          },\n          inactive: function() {\n            return !( $module.hasClass(className.active) );\n          },\n          state: function(state) {\n            if(className[state] === undefined) {\n              return false;\n            }\n            return $module.hasClass( className[state] );\n          },\n\n          enabled: function() {\n            return !( $module.is(settings.filter.active) );\n          },\n          disabled: function() {\n            return ( $module.is(settings.filter.active) );\n          },\n          textEnabled: function() {\n            return !( $module.is(settings.filter.text) );\n          },\n\n          // definitions for automatic type detection\n          button: function() {\n            return $module.is('.button:not(a, .submit)');\n          },\n          input: function() {\n            return $module.is('input');\n          },\n          progress: function() {\n            return $module.is('.ui.progress');\n          }\n        },\n\n        allow: function(state) {\n          module.debug('Now allowing state', state);\n          states[state] = true;\n        },\n        disallow: function(state) {\n          module.debug('No longer allowing', state);\n          states[state] = false;\n        },\n\n        allows: function(state) {\n          return states[state] || false;\n        },\n\n        enable: function() {\n          $module.removeClass(className.disabled);\n        },\n\n        disable: function() {\n          $module.addClass(className.disabled);\n        },\n\n        setState: function(state) {\n          if(module.allows(state)) {\n            $module.addClass( className[state] );\n          }\n        },\n\n        removeState: function(state) {\n          if(module.allows(state)) {\n            $module.removeClass( className[state] );\n          }\n        },\n\n        toggle: {\n          state: function() {\n            var\n              apiRequest,\n              requestCancelled\n            ;\n            if( module.allows('active') && module.is.enabled() ) {\n              module.refresh();\n              if($.fn.api !== undefined) {\n                apiRequest       = $module.api('get request');\n                requestCancelled = $module.api('was cancelled');\n                if( requestCancelled ) {\n                  module.debug('API Request cancelled by beforesend');\n                  settings.activateTest   = function(){ return false; };\n                  settings.deactivateTest = function(){ return false; };\n                }\n                else if(apiRequest) {\n                  module.listenTo(apiRequest);\n                  return;\n                }\n              }\n              module.change.state();\n            }\n          }\n        },\n\n        listenTo: function(apiRequest) {\n          module.debug('API request detected, waiting for state signal', apiRequest);\n          if(apiRequest) {\n            if(text.loading) {\n              module.update.text(text.loading);\n            }\n            $.when(apiRequest)\n              .then(function() {\n                if(apiRequest.state() == 'resolved') {\n                  module.debug('API request succeeded');\n                  settings.activateTest   = function(){ return true; };\n                  settings.deactivateTest = function(){ return true; };\n                }\n                else {\n                  module.debug('API request failed');\n                  settings.activateTest   = function(){ return false; };\n                  settings.deactivateTest = function(){ return false; };\n                }\n                module.change.state();\n              })\n            ;\n          }\n        },\n\n        // checks whether active/inactive state can be given\n        change: {\n\n          state: function() {\n            module.debug('Determining state change direction');\n            // inactive to active change\n            if( module.is.inactive() ) {\n              module.activate();\n            }\n            else {\n              module.deactivate();\n            }\n            if(settings.sync) {\n              module.sync();\n            }\n            settings.onChange.call(element);\n          },\n\n          text: function() {\n            if( module.is.textEnabled() ) {\n              if(module.is.disabled() ) {\n                module.verbose('Changing text to disabled text', text.hover);\n                module.update.text(text.disabled);\n              }\n              else if( module.is.active() ) {\n                if(text.hover) {\n                  module.verbose('Changing text to hover text', text.hover);\n                  module.update.text(text.hover);\n                }\n                else if(text.deactivate) {\n                  module.verbose('Changing text to deactivating text', text.deactivate);\n                  module.update.text(text.deactivate);\n                }\n              }\n              else {\n                if(text.hover) {\n                  module.verbose('Changing text to hover text', text.hover);\n                  module.update.text(text.hover);\n                }\n                else if(text.activate){\n                  module.verbose('Changing text to activating text', text.activate);\n                  module.update.text(text.activate);\n                }\n              }\n            }\n          }\n\n        },\n\n        activate: function() {\n          if( settings.activateTest.call(element) ) {\n            module.debug('Setting state to active');\n            $module\n              .addClass(className.active)\n            ;\n            module.update.text(text.active);\n            settings.onActivate.call(element);\n          }\n        },\n\n        deactivate: function() {\n          if( settings.deactivateTest.call(element) ) {\n            module.debug('Setting state to inactive');\n            $module\n              .removeClass(className.active)\n            ;\n            module.update.text(text.inactive);\n            settings.onDeactivate.call(element);\n          }\n        },\n\n        sync: function() {\n          module.verbose('Syncing other buttons to current state');\n          if( module.is.active() ) {\n            $allModules\n              .not($module)\n                .state('activate');\n          }\n          else {\n            $allModules\n              .not($module)\n                .state('deactivate')\n            ;\n          }\n        },\n\n        get: {\n          text: function() {\n            return (settings.selector.text)\n              ? $module.find(settings.selector.text).text()\n              : $module.html()\n            ;\n          },\n          textFor: function(state) {\n            return text[state] || false;\n          }\n        },\n\n        flash: {\n          text: function(text, duration, callback) {\n            var\n              previousText = module.get.text()\n            ;\n            module.debug('Flashing text message', text, duration);\n            text     = text     || settings.text.flash;\n            duration = duration || settings.flashDuration;\n            callback = callback || function() {};\n            module.update.text(text);\n            setTimeout(function(){\n              module.update.text(previousText);\n              callback.call(element);\n            }, duration);\n          }\n        },\n\n        reset: {\n          // on mouseout sets text to previous value\n          text: function() {\n            var\n              activeText   = text.active   || $module.data(metadata.storedText),\n              inactiveText = text.inactive || $module.data(metadata.storedText)\n            ;\n            if( module.is.textEnabled() ) {\n              if( module.is.active() && activeText) {\n                module.verbose('Resetting active text', activeText);\n                module.update.text(activeText);\n              }\n              else if(inactiveText) {\n                module.verbose('Resetting inactive text', activeText);\n                module.update.text(inactiveText);\n              }\n            }\n          }\n        },\n\n        update: {\n          text: function(text) {\n            var\n              currentText = module.get.text()\n            ;\n            if(text && text !== currentText) {\n              module.debug('Updating text', text);\n              if(settings.selector.text) {\n                $module\n                  .data(metadata.storedText, text)\n                  .find(settings.selector.text)\n                    .text(text)\n                ;\n              }\n              else {\n                $module\n                  .data(metadata.storedText, text)\n                  .html(text)\n                ;\n              }\n            }\n            else {\n              module.debug('Text is already set, ignoring update', text);\n            }\n          }\n        },\n\n        setting: function(name, value) {\n          module.debug('Changing setting', name, value);\n          if( $.isPlainObject(name) ) {\n            $.extend(true, settings, name);\n          }\n          else if(value !== undefined) {\n            if($.isPlainObject(settings[name])) {\n              $.extend(true, settings[name], value);\n            }\n            else {\n              settings[name] = value;\n            }\n          }\n          else {\n            return settings[name];\n          }\n        },\n        internal: function(name, value) {\n          if( $.isPlainObject(name) ) {\n            $.extend(true, module, name);\n          }\n          else if(value !== undefined) {\n            module[name] = value;\n          }\n          else {\n            return module[name];\n          }\n        },\n        debug: function() {\n          if(!settings.silent && settings.debug) {\n            if(settings.performance) {\n              module.performance.log(arguments);\n            }\n            else {\n              module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');\n              module.debug.apply(console, arguments);\n            }\n          }\n        },\n        verbose: function() {\n          if(!settings.silent && settings.verbose && settings.debug) {\n            if(settings.performance) {\n              module.performance.log(arguments);\n            }\n            else {\n              module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');\n              module.verbose.apply(console, arguments);\n            }\n          }\n        },\n        error: function() {\n          if(!settings.silent) {\n            module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');\n            module.error.apply(console, arguments);\n          }\n        },\n        performance: {\n          log: function(message) {\n            var\n              currentTime,\n              executionTime,\n              previousTime\n            ;\n            if(settings.performance) {\n              currentTime   = new Date().getTime();\n              previousTime  = time || currentTime;\n              executionTime = currentTime - previousTime;\n              time          = currentTime;\n              performance.push({\n                'Name'           : message[0],\n                'Arguments'      : [].slice.call(message, 1) || '',\n                'Element'        : element,\n                'Execution Time' : executionTime\n              });\n            }\n            clearTimeout(module.performance.timer);\n            module.performance.timer = setTimeout(module.performance.display, 500);\n          },\n          display: function() {\n            var\n              title = settings.name + ':',\n              totalTime = 0\n            ;\n            time = false;\n            clearTimeout(module.performance.timer);\n            $.each(performance, function(index, data) {\n              totalTime += data['Execution Time'];\n            });\n            title += ' ' + totalTime + 'ms';\n            if(moduleSelector) {\n              title += ' \\'' + moduleSelector + '\\'';\n            }\n            if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {\n              console.groupCollapsed(title);\n              if(console.table) {\n                console.table(performance);\n              }\n              else {\n                $.each(performance, function(index, data) {\n                  console.log(data['Name'] + ': ' + data['Execution Time']+'ms');\n                });\n              }\n              console.groupEnd();\n            }\n            performance = [];\n          }\n        },\n        invoke: function(query, passedArguments, context) {\n          var\n            object = instance,\n            maxDepth,\n            found,\n            response\n          ;\n          passedArguments = passedArguments || queryArguments;\n          context         = element         || context;\n          if(typeof query == 'string' && object !== undefined) {\n            query    = query.split(/[\\. ]/);\n            maxDepth = query.length - 1;\n            $.each(query, function(depth, value) {\n              var camelCaseValue = (depth != maxDepth)\n                ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)\n                : query\n              ;\n              if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {\n                object = object[camelCaseValue];\n              }\n              else if( object[camelCaseValue] !== undefined ) {\n                found = object[camelCaseValue];\n                return false;\n              }\n              else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {\n                object = object[value];\n              }\n              else if( object[value] !== undefined ) {\n                found = object[value];\n                return false;\n              }\n              else {\n                module.error(error.method, query);\n                return false;\n              }\n            });\n          }\n          if ( $.isFunction( found ) ) {\n            response = found.apply(context, passedArguments);\n          }\n          else if(found !== undefined) {\n            response = found;\n          }\n          if($.isArray(returnedValue)) {\n            returnedValue.push(response);\n          }\n          else if(returnedValue !== undefined) {\n            returnedValue = [returnedValue, response];\n          }\n          else if(response !== undefined) {\n            returnedValue = response;\n          }\n          return found;\n        }\n      };\n\n      if(methodInvoked) {\n        if(instance === undefined) {\n          module.initialize();\n        }\n        module.invoke(query);\n      }\n      else {\n        if(instance !== undefined) {\n          instance.invoke('destroy');\n        }\n        module.initialize();\n      }\n    })\n  ;\n\n  return (returnedValue !== undefined)\n    ? returnedValue\n    : this\n  ;\n};\n\n$.fn.state.settings = {\n\n  // module info\n  name           : 'State',\n\n  // debug output\n  debug          : false,\n\n  // verbose debug output\n  verbose        : false,\n\n  // namespace for events\n  namespace      : 'state',\n\n  // debug data includes performance\n  performance    : true,\n\n  // callback occurs on state change\n  onActivate     : function() {},\n  onDeactivate   : function() {},\n  onChange       : function() {},\n\n  // state test functions\n  activateTest   : function() { return true; },\n  deactivateTest : function() { return true; },\n\n  // whether to automatically map default states\n  automatic      : true,\n\n  // activate / deactivate changes all elements instantiated at same time\n  sync           : false,\n\n  // default flash text duration, used for temporarily changing text of an element\n  flashDuration  : 1000,\n\n  // selector filter\n  filter     : {\n    text   : '.loading, .disabled',\n    active : '.disabled'\n  },\n\n  context    : false,\n\n  // error\n  error: {\n    beforeSend : 'The before send function has cancelled state change',\n    method     : 'The method you called is not defined.'\n  },\n\n  // metadata\n  metadata: {\n    promise    : 'promise',\n    storedText : 'stored-text'\n  },\n\n  // change class on state\n  className: {\n    active   : 'active',\n    disabled : 'disabled',\n    error    : 'error',\n    loading  : 'loading',\n    success  : 'success',\n    warning  : 'warning'\n  },\n\n  selector: {\n    // selector for text node\n    text: false\n  },\n\n  defaults : {\n    input: {\n      disabled : true,\n      loading  : true,\n      active   : true\n    },\n    button: {\n      disabled : true,\n      loading  : true,\n      active   : true,\n    },\n    progress: {\n      active   : true,\n      success  : true,\n      warning  : true,\n      error    : true\n    }\n  },\n\n  states     : {\n    active   : true,\n    disabled : true,\n    error    : true,\n    loading  : true,\n    success  : true,\n    warning  : true\n  },\n\n  text     : {\n    disabled   : false,\n    flash      : false,\n    hover      : false,\n    active     : false,\n    inactive   : false,\n    activate   : false,\n    deactivate : false\n  }\n\n};\n\n\n\n})( jQuery, window, document );\n"
  },
  {
    "path": "server/files/javascript/library/tablesort.js",
    "content": "/*\n\tA simple, lightweight jQuery plugin for creating sortable tables.\n\thttps://github.com/kylefox/jquery-tablesort\n\tVersion 0.0.11\n*/\n\n(function($) {\n\t$.tablesort = function ($table, settings) {\n\t\tvar self = this;\n\t\tthis.$table = $table;\n\t\tthis.$thead = this.$table.find('thead');\n\t\tthis.settings = $.extend({}, $.tablesort.defaults, settings);\n\t\tthis.$sortCells = this.$thead.length > 0 ? this.$thead.find('th:not(.no-sort)') : this.$table.find('th:not(.no-sort)');\n\t\tthis.$sortCells.on('click.tablesort', function() {\n\t\t\tself.sort($(this));\n\t\t});\n\t\tthis.index = null;\n\t\tthis.$th = null;\n\t\tthis.direction = null;\n\t};\n\n\t$.tablesort.prototype = {\n\n\t\tsort: function(th, direction) {\n\t\t\tvar start = new Date(),\n\t\t\t\tself = this,\n\t\t\t\ttable = this.$table,\n\t\t\t\trowsContainer = table.find('tbody').length > 0 ? table.find('tbody') : table,\n\t\t\t\trows = rowsContainer.find('tr').has('td, th'),\n\t\t\t\tcells = rows.find(':nth-child(' + (th.index() + 1) + ')').filter('td, th'),\n\t\t\t\tsortBy = th.data().sortBy,\n\t\t\t\tsortedMap = [];\n\n\t\t\tvar unsortedValues = cells.map(function(idx, cell) {\n\t\t\t\tif (sortBy)\n\t\t\t\t\treturn (typeof sortBy === 'function') ? sortBy($(th), $(cell), self) : sortBy;\n\t\t\t\treturn ($(this).data().sortValue != null ? $(this).data().sortValue : $(this).text());\n\t\t\t});\n\t\t\tif (unsortedValues.length === 0) return;\n\n\t\t\t//click on a different column\n\t\t\tif (this.index !== th.index()) {\n\t\t\t\tthis.direction = 'asc';\n\t\t\t\tthis.index = th.index();\n\t\t\t}\n\t\t\telse if (direction !== 'asc' && direction !== 'desc')\n\t\t\t\tthis.direction = this.direction === 'asc' ? 'desc' : 'asc';\n\t\t\telse\n\t\t\t\tthis.direction = direction;\n\n\t\t\tdirection = this.direction == 'asc' ? 1 : -1;\n\n\t\t\tself.$table.trigger('tablesort:start', [self]);\n\t\t\tself.log(\"Sorting by \" + this.index + ' ' + this.direction);\n\n\t\t\t// Try to force a browser redraw\n\t\t\tself.$table.css(\"display\");\n\t\t\t// Run sorting asynchronously on a timeout to force browser redraw after\n\t\t\t// `tablesort:start` callback. Also avoids locking up the browser too much.\n\t\t\tsetTimeout(function() {\n\t\t\t\tself.$sortCells.removeClass(self.settings.asc + ' ' + self.settings.desc);\n\t\t\t\tfor (var i = 0, length = unsortedValues.length; i < length; i++)\n\t\t\t\t{\n\t\t\t\t\tsortedMap.push({\n\t\t\t\t\t\tindex: i,\n\t\t\t\t\t\tcell: cells[i],\n\t\t\t\t\t\trow: rows[i],\n\t\t\t\t\t\tvalue: unsortedValues[i]\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tsortedMap.sort(function(a, b) {\n\t\t\t\t\treturn self.settings.compare(a.value, b.value) * direction;\n\t\t\t\t});\n\n\t\t\t\t$.each(sortedMap, function(i, entry) {\n\t\t\t\t\trowsContainer.append(entry.row);\n\t\t\t\t});\n\n\t\t\t\tth.addClass(self.settings[self.direction]);\n\n\t\t\t\tself.log('Sort finished in ' + ((new Date()).getTime() - start.getTime()) + 'ms');\n\t\t\t\tself.$table.trigger('tablesort:complete', [self]);\n\t\t\t\t//Try to force a browser redraw\n\t\t\t\tself.$table.css(\"display\");\n\t\t\t}, unsortedValues.length > 2000 ? 200 : 10);\n\t\t},\n\n\t\tlog: function(msg) {\n\t\t\tif(($.tablesort.DEBUG || this.settings.debug) && console && console.log) {\n\t\t\t\tconsole.log('[tablesort] ' + msg);\n\t\t\t}\n\t\t},\n\n\t\tdestroy: function() {\n\t\t\tthis.$sortCells.off('click.tablesort');\n\t\t\tthis.$table.data('tablesort', null);\n\t\t\treturn null;\n\t\t}\n\n\t};\n\n\t$.tablesort.DEBUG = false;\n\n\t$.tablesort.defaults = {\n\t\tdebug: $.tablesort.DEBUG,\n\t\tasc: 'sorted ascending',\n\t\tdesc: 'sorted descending',\n\t\tcompare: function(a, b) {\n\t\t\tif (a > b) {\n\t\t\t\treturn 1;\n\t\t\t} else if (a < b) {\n\t\t\t\treturn -1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t};\n\n\t$.fn.tablesort = function(settings) {\n\t\tvar table, sortable, previous;\n\t\treturn this.each(function() {\n\t\t\ttable = $(this);\n\t\t\tprevious = table.data('tablesort');\n\t\t\tif(previous) {\n\t\t\t\tprevious.destroy();\n\t\t\t}\n\t\t\ttable.data('tablesort', new $.tablesort(table, settings));\n\t\t});\n\t};\n\n})(window.Zepto || window.jQuery);\n"
  },
  {
    "path": "server/files/javascript/library/typing.js",
    "content": "// The MIT License (MIT)\n\n// Typed.js | Copyright (c) 2014 Matt Boldt | www.mattboldt.com\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n\n!function($){\n\n    \"use strict\";\n\n    var Typed = function(el, options){\n\n        // chosen element to manipulate text\n        this.el = $(el);\n\n        // options\n        this.options = $.extend({}, $.fn.typed.defaults, options);\n\n        // text content of element\n        this.baseText = (this.options.baseText !== undefined) ? this.options.baseText : this.el.text() || this.el.attr('placeholder') || '';\n\n        // replace base text on first word\n        this.replaceBaseText = this.options.replaceBaseText;\n\n        // typing speed\n        this.typeSpeed = this.options.typeSpeed;\n\n        // add a delay before typing starts\n        this.startDelay = this.options.startDelay;\n\n        // backspacing speed\n        this.backSpeed = this.options.backSpeed;\n\n        // amount of time to wait before backspacing\n        this.backDelay = this.options.backDelay;\n\n        // input strings of text\n        this.strings = this.options.strings;\n\n        // character number position of current string\n        this.strPos = (this.replaceBaseText) ? this.baseText.length : 0;\n\n        // current array position\n        this.arrayPos = 0;\n\n        // number to stop backspacing on.\n        // default 0, can change depending on how many chars\n        // you want to remove at the time\n        this.stopNum = 0;\n\n        // Looping logic\n        this.loop = this.options.loop;\n        this.loopCount = this.options.loopCount;\n        this.curLoop = 0;\n\n        // for stopping\n        this.stop = false;\n\n        // show cursor\n        this.showCursor = this.isInput ? false : this.options.showCursor;\n\n        // custom cursor\n        this.cursorChar = this.options.cursorChar;\n\n        // attribute to type\n        this.isInput = this.el.is('input');\n        this.attr = this.options.attr || (this.isInput ? 'placeholder' : null);\n\n        // All systems go!\n        this.build();\n    };\n\n        Typed.prototype =  {\n\n            constructor: Typed\n\n            , init: function(){\n                // begin the loop w/ first current string (global self.string)\n                // current string will be passed as an argument each time after this\n                var self = this;\n                // Adds base text to strings array if user replace setting enabled\n                if(this.replaceBaseText) {\n                    this.strings.unshift(self.baseText);\n                }\n                self.timeout = setTimeout(function() {\n                    var currentWord = (self.arrayPos === 0 && self.replaceBaseText) ? (self.baseText) : self.strings[self.arrayPos];\n                    // Start typing\n                    self.typewrite(currentWord, self.strPos);\n                }, self.startDelay);\n            }\n\n            , build: function(){\n                // Insert cursor\n                if (this.showCursor === true){\n                  this.cursor = $(\"<span class=\\\"typed-cursor\\\">\" + this.cursorChar + \"</span>\");\n                  this.el.after(this.cursor);\n                }\n                this.init();\n            }\n\n            // pass current string state to each function, types 1 char per call\n            , typewrite: function(curString, curStrPos){\n                // exit when stopped\n                if(this.stop === true)\n                   return;\n\n                // varying values for setTimeout during typing\n                // can't be global since number changes each time loop is executed\n                var humanize = Math.round(Math.random() * (100 - 30)) + this.typeSpeed;\n                var self = this;\n\n                // ------------- optional ------------- //\n                // backpaces a certain string faster\n                // ------------------------------------ //\n                // if (self.arrayPos == 1){\n                //  self.backDelay = 50;\n                // }\n                // else{ self.backDelay = 500; }\n\n                // contain typing function in a timeout humanize'd delay\n                self.timeout = setTimeout(function() {\n                    // check for an escape character before a pause value\n                    // format: \\^\\d+ .. eg: ^1000 .. should be able to print the ^ too using ^^\n                    // single ^ are removed from string\n                    var charPause = 0;\n                    var substr = curString.substr(curStrPos);\n                    // console.log(curString, substr, curStrPos);\n                    if (substr.charAt(0) === '^') {\n                        var skip = 1;  // skip atleast 1\n                        if(/^\\^\\d+/.test(substr)) {\n                           substr = /\\d+/.exec(substr)[0];\n                           skip += substr.length;\n                           charPause = parseInt(substr);\n                        }\n\n                        // strip out the escape character and pause value so they're not printed\n                        curString = curString.substring(0,curStrPos)+curString.substring(curStrPos+skip);\n                    }\n\n                    // timeout for any pause after a character\n                    self.timeout = setTimeout(function() {\n                        if(curStrPos === curString.length) {\n                           // fires callback function\n                           self.options.onStringTyped(self.arrayPos);\n\n                            // is this the final string\n                           if(self.arrayPos === self.strings.length-1) {\n                              // animation that occurs on the last typed string\n                              self.options.callback();\n\n                              self.curLoop++;\n\n                              // quit if we wont loop back\n                              if(self.loop === false || self.curLoop === self.loopCount)\n                                 return;\n                           }\n\n                           self.timeout = setTimeout(function(){\n                              self.backspace(curString, curStrPos);\n                           }, self.backDelay);\n                        } else {\n\n                           /* call before functions if applicable */\n                           if(curStrPos === 0)\n                              self.options.preStringTyped(self.arrayPos);\n\n                           // start typing each new char into existing string\n                           // curString: arg, self.baseText: original text inside element\n                           var nextSubString = curString.substr(0, curStrPos+1);\n                           var nextString = (self.replaceBaseText) ? nextSubString : (self.baseText + nextSubString);\n                           if (self.attr) {\n                            self.el.attr(self.attr, nextString);\n                           } else {\n                            self.el.text(nextString);\n                           }\n\n                           // add characters one by one\n                           curStrPos++;\n                           // loop the function\n                           self.typewrite(curString, curStrPos);\n                        }\n                    // end of character pause\n                    }, charPause);\n\n                // humanized value for typing\n                }, humanize);\n\n            }\n\n            , backspace: function(curString, curStrPos){\n                // exit when stopped\n                if (this.stop === true) {\n                   return;\n                }\n\n                // varying values for setTimeout during typing\n                // can't be global since number changes each time loop is executed\n                var humanize = Math.round(Math.random() * (100 - 30)) + this.backSpeed;\n                var self = this;\n\n                self.timeout = setTimeout(function() {\n\n                    // ----- this part is optional ----- //\n                    // check string array position\n                    // on the first string, only delete one word\n                    // the stopNum actually represents the amount of chars to\n                    // keep in the current string. In my case it's 14.\n                    // if (self.arrayPos == 1){\n                    //  self.stopNum = 14;\n                    // }\n                    //every other time, delete the whole typed string\n                    // else{\n                    //  self.stopNum = 0;\n                    // }\n\n                    // ----- continue important stuff ----- //\n                    // replace text with base text + typed characters\n                    var curSubString = curString.substr(0, curStrPos+1);\n                    var nextString = (self.replaceBaseText) ? curSubString : (self.baseText + curSubString);\n                    if (self.attr) {\n                     self.el.attr(self.attr, nextString);\n                    } else {\n                     self.el.text(nextString);\n                    }\n\n                    // if the number (id of character in current string) is\n                    // less than the stop number, keep going\n                    if (curStrPos > self.stopNum){\n                        // subtract characters one by one\n                        curStrPos--;\n                        // loop the function\n                        self.backspace(curString, curStrPos);\n                    }\n                    // if the stop number has been reached, increase\n                    // array position to next string\n                    else if (curStrPos <= self.stopNum) {\n                        self.arrayPos++;\n\n                        if(self.arrayPos === self.strings.length) {\n                           self.arrayPos = 0;\n                           self.init();\n                        } else\n                            self.typewrite(self.strings[self.arrayPos], curStrPos);\n                    }\n\n                // humanized value for typing\n                }, humanize);\n\n            }\n\n            // Start & Stop currently not working\n\n            // , stop: function() {\n            //     var self = this;\n\n            //     self.stop = true;\n            //     clearInterval(self.timeout);\n            // }\n\n            // , start: function() {\n            //     var self = this;\n            //     if(self.stop === false)\n            //        return;\n\n            //     this.stop = false;\n            //     this.init();\n            // }\n\n            // Reset and rebuild the element\n            , reset: function(){\n                var self = this;\n                clearInterval(self.timeout);\n                var id = this.el.attr('id');\n                this.el.after('<span id=\"' + id + '\"/>')\n                this.el.remove();\n                this.cursor.remove();\n                // Send the callback\n                self.options.resetCallback();\n            }\n\n        };\n\n    $.fn.typed = function (option) {\n        return this.each(function () {\n          var $this = $(this)\n            , data = $this.data('typed')\n            , options = typeof option == 'object' && option;\n          if (!data) $this.data('typed', (data = new Typed(this, options)));\n          if (typeof option == 'string') data[option]();\n        });\n    };\n\n    $.fn.typed.defaults = {\n\n        // Typewrite away original text on start\n        replaceBaseText: false,\n\n        strings: [\"These are the default values...\", \"You know what you should do?\", \"Use your own!\", \"Have a great day!\"],\n        // typing speed\n        typeSpeed: 0,\n        // time before typing starts\n        startDelay: 0,\n        // backspacing speed\n        backSpeed: 0,\n        // time before backspacing\n        backDelay: 500,\n        // loop\n        loop: false,\n        // false = infinite\n        loopCount: false,\n        // show cursor\n        showCursor: true,\n        // character for cursor\n        cursorChar: \"|\",\n        // attribute to type (null == text)\n        attr: null,\n        // call when done callback function\n        callback: function() {},\n        // starting callback function before each string\n        preStringTyped: function() {},\n        //callback for every typed string\n        onStringTyped: function() {},\n        // callback for reset\n        resetCallback: function() {}\n    };\n\n\n}(window.jQuery);\n"
  },
  {
    "path": "server/files/javascript/library/underscore.js",
    "content": "//     Underscore.js 1.8.3\n//     http://underscorejs.org\n//     (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n//     Underscore may be freely distributed under the MIT license.\n\n(function() {\n\n  // Baseline setup\n  // --------------\n\n  // Establish the root object, `window` in the browser, or `exports` on the server.\n  var root = this;\n\n  // Save the previous value of the `_` variable.\n  var previousUnderscore = root._;\n\n  // Save bytes in the minified (but not gzipped) version:\n  var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;\n\n  // Create quick reference variables for speed access to core prototypes.\n  var\n    push             = ArrayProto.push,\n    slice            = ArrayProto.slice,\n    toString         = ObjProto.toString,\n    hasOwnProperty   = ObjProto.hasOwnProperty;\n\n  // All **ECMAScript 5** native function implementations that we hope to use\n  // are declared here.\n  var\n    nativeIsArray      = Array.isArray,\n    nativeKeys         = Object.keys,\n    nativeBind         = FuncProto.bind,\n    nativeCreate       = Object.create;\n\n  // Naked function reference for surrogate-prototype-swapping.\n  var Ctor = function(){};\n\n  // Create a safe reference to the Underscore object for use below.\n  var _ = function(obj) {\n    if (obj instanceof _) return obj;\n    if (!(this instanceof _)) return new _(obj);\n    this._wrapped = obj;\n  };\n\n  // Export the Underscore object for **Node.js**, with\n  // backwards-compatibility for the old `require()` API. If we're in\n  // the browser, add `_` as a global object.\n  if (typeof exports !== 'undefined') {\n    if (typeof module !== 'undefined' && module.exports) {\n      exports = module.exports = _;\n    }\n    exports._ = _;\n  } else {\n    root._ = _;\n  }\n\n  // Current version.\n  _.VERSION = '1.8.3';\n\n  // Internal function that returns an efficient (for current engines) version\n  // of the passed-in callback, to be repeatedly applied in other Underscore\n  // functions.\n  var optimizeCb = function(func, context, argCount) {\n    if (context === void 0) return func;\n    switch (argCount == null ? 3 : argCount) {\n      case 1: return function(value) {\n        return func.call(context, value);\n      };\n      case 2: return function(value, other) {\n        return func.call(context, value, other);\n      };\n      case 3: return function(value, index, collection) {\n        return func.call(context, value, index, collection);\n      };\n      case 4: return function(accumulator, value, index, collection) {\n        return func.call(context, accumulator, value, index, collection);\n      };\n    }\n    return function() {\n      return func.apply(context, arguments);\n    };\n  };\n\n  // A mostly-internal function to generate callbacks that can be applied\n  // to each element in a collection, returning the desired result — either\n  // identity, an arbitrary callback, a property matcher, or a property accessor.\n  var cb = function(value, context, argCount) {\n    if (value == null) return _.identity;\n    if (_.isFunction(value)) return optimizeCb(value, context, argCount);\n    if (_.isObject(value)) return _.matcher(value);\n    return _.property(value);\n  };\n  _.iteratee = function(value, context) {\n    return cb(value, context, Infinity);\n  };\n\n  // An internal function for creating assigner functions.\n  var createAssigner = function(keysFunc, undefinedOnly) {\n    return function(obj) {\n      var length = arguments.length;\n      if (length < 2 || obj == null) return obj;\n      for (var index = 1; index < length; index++) {\n        var source = arguments[index],\n            keys = keysFunc(source),\n            l = keys.length;\n        for (var i = 0; i < l; i++) {\n          var key = keys[i];\n          if (!undefinedOnly || obj[key] === void 0) obj[key] = source[key];\n        }\n      }\n      return obj;\n    };\n  };\n\n  // An internal function for creating a new object that inherits from another.\n  var baseCreate = function(prototype) {\n    if (!_.isObject(prototype)) return {};\n    if (nativeCreate) return nativeCreate(prototype);\n    Ctor.prototype = prototype;\n    var result = new Ctor;\n    Ctor.prototype = null;\n    return result;\n  };\n\n  var property = function(key) {\n    return function(obj) {\n      return obj == null ? void 0 : obj[key];\n    };\n  };\n\n  // Helper for collection methods to determine whether a collection\n  // should be iterated as an array or as an object\n  // Related: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n  // Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\n  var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n  var getLength = property('length');\n  var isArrayLike = function(collection) {\n    var length = getLength(collection);\n    return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX;\n  };\n\n  // Collection Functions\n  // --------------------\n\n  // The cornerstone, an `each` implementation, aka `forEach`.\n  // Handles raw objects in addition to array-likes. Treats all\n  // sparse array-likes as if they were dense.\n  _.each = _.forEach = function(obj, iteratee, context) {\n    iteratee = optimizeCb(iteratee, context);\n    var i, length;\n    if (isArrayLike(obj)) {\n      for (i = 0, length = obj.length; i < length; i++) {\n        iteratee(obj[i], i, obj);\n      }\n    } else {\n      var keys = _.keys(obj);\n      for (i = 0, length = keys.length; i < length; i++) {\n        iteratee(obj[keys[i]], keys[i], obj);\n      }\n    }\n    return obj;\n  };\n\n  // Return the results of applying the iteratee to each element.\n  _.map = _.collect = function(obj, iteratee, context) {\n    iteratee = cb(iteratee, context);\n    var keys = !isArrayLike(obj) && _.keys(obj),\n        length = (keys || obj).length,\n        results = Array(length);\n    for (var index = 0; index < length; index++) {\n      var currentKey = keys ? keys[index] : index;\n      results[index] = iteratee(obj[currentKey], currentKey, obj);\n    }\n    return results;\n  };\n\n  // Create a reducing function iterating left or right.\n  function createReduce(dir) {\n    // Optimized iterator function as using arguments.length\n    // in the main function will deoptimize the, see #1991.\n    function iterator(obj, iteratee, memo, keys, index, length) {\n      for (; index >= 0 && index < length; index += dir) {\n        var currentKey = keys ? keys[index] : index;\n        memo = iteratee(memo, obj[currentKey], currentKey, obj);\n      }\n      return memo;\n    }\n\n    return function(obj, iteratee, memo, context) {\n      iteratee = optimizeCb(iteratee, context, 4);\n      var keys = !isArrayLike(obj) && _.keys(obj),\n          length = (keys || obj).length,\n          index = dir > 0 ? 0 : length - 1;\n      // Determine the initial value if none is provided.\n      if (arguments.length < 3) {\n        memo = obj[keys ? keys[index] : index];\n        index += dir;\n      }\n      return iterator(obj, iteratee, memo, keys, index, length);\n    };\n  }\n\n  // **Reduce** builds up a single result from a list of values, aka `inject`,\n  // or `foldl`.\n  _.reduce = _.foldl = _.inject = createReduce(1);\n\n  // The right-associative version of reduce, also known as `foldr`.\n  _.reduceRight = _.foldr = createReduce(-1);\n\n  // Return the first value which passes a truth test. Aliased as `detect`.\n  _.find = _.detect = function(obj, predicate, context) {\n    var key;\n    if (isArrayLike(obj)) {\n      key = _.findIndex(obj, predicate, context);\n    } else {\n      key = _.findKey(obj, predicate, context);\n    }\n    if (key !== void 0 && key !== -1) return obj[key];\n  };\n\n  // Return all the elements that pass a truth test.\n  // Aliased as `select`.\n  _.filter = _.select = function(obj, predicate, context) {\n    var results = [];\n    predicate = cb(predicate, context);\n    _.each(obj, function(value, index, list) {\n      if (predicate(value, index, list)) results.push(value);\n    });\n    return results;\n  };\n\n  // Return all the elements for which a truth test fails.\n  _.reject = function(obj, predicate, context) {\n    return _.filter(obj, _.negate(cb(predicate)), context);\n  };\n\n  // Determine whether all of the elements match a truth test.\n  // Aliased as `all`.\n  _.every = _.all = function(obj, predicate, context) {\n    predicate = cb(predicate, context);\n    var keys = !isArrayLike(obj) && _.keys(obj),\n        length = (keys || obj).length;\n    for (var index = 0; index < length; index++) {\n      var currentKey = keys ? keys[index] : index;\n      if (!predicate(obj[currentKey], currentKey, obj)) return false;\n    }\n    return true;\n  };\n\n  // Determine if at least one element in the object matches a truth test.\n  // Aliased as `any`.\n  _.some = _.any = function(obj, predicate, context) {\n    predicate = cb(predicate, context);\n    var keys = !isArrayLike(obj) && _.keys(obj),\n        length = (keys || obj).length;\n    for (var index = 0; index < length; index++) {\n      var currentKey = keys ? keys[index] : index;\n      if (predicate(obj[currentKey], currentKey, obj)) return true;\n    }\n    return false;\n  };\n\n  // Determine if the array or object contains a given item (using `===`).\n  // Aliased as `includes` and `include`.\n  _.contains = _.includes = _.include = function(obj, item, fromIndex, guard) {\n    if (!isArrayLike(obj)) obj = _.values(obj);\n    if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n    return _.indexOf(obj, item, fromIndex) >= 0;\n  };\n\n  // Invoke a method (with arguments) on every item in a collection.\n  _.invoke = function(obj, method) {\n    var args = slice.call(arguments, 2);\n    var isFunc = _.isFunction(method);\n    return _.map(obj, function(value) {\n      var func = isFunc ? method : value[method];\n      return func == null ? func : func.apply(value, args);\n    });\n  };\n\n  // Convenience version of a common use case of `map`: fetching a property.\n  _.pluck = function(obj, key) {\n    return _.map(obj, _.property(key));\n  };\n\n  // Convenience version of a common use case of `filter`: selecting only objects\n  // containing specific `key:value` pairs.\n  _.where = function(obj, attrs) {\n    return _.filter(obj, _.matcher(attrs));\n  };\n\n  // Convenience version of a common use case of `find`: getting the first object\n  // containing specific `key:value` pairs.\n  _.findWhere = function(obj, attrs) {\n    return _.find(obj, _.matcher(attrs));\n  };\n\n  // Return the maximum element (or element-based computation).\n  _.max = function(obj, iteratee, context) {\n    var result = -Infinity, lastComputed = -Infinity,\n        value, computed;\n    if (iteratee == null && obj != null) {\n      obj = isArrayLike(obj) ? obj : _.values(obj);\n      for (var i = 0, length = obj.length; i < length; i++) {\n        value = obj[i];\n        if (value > result) {\n          result = value;\n        }\n      }\n    } else {\n      iteratee = cb(iteratee, context);\n      _.each(obj, function(value, index, list) {\n        computed = iteratee(value, index, list);\n        if (computed > lastComputed || computed === -Infinity && result === -Infinity) {\n          result = value;\n          lastComputed = computed;\n        }\n      });\n    }\n    return result;\n  };\n\n  // Return the minimum element (or element-based computation).\n  _.min = function(obj, iteratee, context) {\n    var result = Infinity, lastComputed = Infinity,\n        value, computed;\n    if (iteratee == null && obj != null) {\n      obj = isArrayLike(obj) ? obj : _.values(obj);\n      for (var i = 0, length = obj.length; i < length; i++) {\n        value = obj[i];\n        if (value < result) {\n          result = value;\n        }\n      }\n    } else {\n      iteratee = cb(iteratee, context);\n      _.each(obj, function(value, index, list) {\n        computed = iteratee(value, index, list);\n        if (computed < lastComputed || computed === Infinity && result === Infinity) {\n          result = value;\n          lastComputed = computed;\n        }\n      });\n    }\n    return result;\n  };\n\n  // Shuffle a collection, using the modern version of the\n  // [Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n  _.shuffle = function(obj) {\n    var set = isArrayLike(obj) ? obj : _.values(obj);\n    var length = set.length;\n    var shuffled = Array(length);\n    for (var index = 0, rand; index < length; index++) {\n      rand = _.random(0, index);\n      if (rand !== index) shuffled[index] = shuffled[rand];\n      shuffled[rand] = set[index];\n    }\n    return shuffled;\n  };\n\n  // Sample **n** random values from a collection.\n  // If **n** is not specified, returns a single random element.\n  // The internal `guard` argument allows it to work with `map`.\n  _.sample = function(obj, n, guard) {\n    if (n == null || guard) {\n      if (!isArrayLike(obj)) obj = _.values(obj);\n      return obj[_.random(obj.length - 1)];\n    }\n    return _.shuffle(obj).slice(0, Math.max(0, n));\n  };\n\n  // Sort the object's values by a criterion produced by an iteratee.\n  _.sortBy = function(obj, iteratee, context) {\n    iteratee = cb(iteratee, context);\n    return _.pluck(_.map(obj, function(value, index, list) {\n      return {\n        value: value,\n        index: index,\n        criteria: iteratee(value, index, list)\n      };\n    }).sort(function(left, right) {\n      var a = left.criteria;\n      var b = right.criteria;\n      if (a !== b) {\n        if (a > b || a === void 0) return 1;\n        if (a < b || b === void 0) return -1;\n      }\n      return left.index - right.index;\n    }), 'value');\n  };\n\n  // An internal function used for aggregate \"group by\" operations.\n  var group = function(behavior) {\n    return function(obj, iteratee, context) {\n      var result = {};\n      iteratee = cb(iteratee, context);\n      _.each(obj, function(value, index) {\n        var key = iteratee(value, index, obj);\n        behavior(result, value, key);\n      });\n      return result;\n    };\n  };\n\n  // Groups the object's values by a criterion. Pass either a string attribute\n  // to group by, or a function that returns the criterion.\n  _.groupBy = group(function(result, value, key) {\n    if (_.has(result, key)) result[key].push(value); else result[key] = [value];\n  });\n\n  // Indexes the object's values by a criterion, similar to `groupBy`, but for\n  // when you know that your index values will be unique.\n  _.indexBy = group(function(result, value, key) {\n    result[key] = value;\n  });\n\n  // Counts instances of an object that group by a certain criterion. Pass\n  // either a string attribute to count by, or a function that returns the\n  // criterion.\n  _.countBy = group(function(result, value, key) {\n    if (_.has(result, key)) result[key]++; else result[key] = 1;\n  });\n\n  // Safely create a real, live array from anything iterable.\n  _.toArray = function(obj) {\n    if (!obj) return [];\n    if (_.isArray(obj)) return slice.call(obj);\n    if (isArrayLike(obj)) return _.map(obj, _.identity);\n    return _.values(obj);\n  };\n\n  // Return the number of elements in an object.\n  _.size = function(obj) {\n    if (obj == null) return 0;\n    return isArrayLike(obj) ? obj.length : _.keys(obj).length;\n  };\n\n  // Split a collection into two arrays: one whose elements all satisfy the given\n  // predicate, and one whose elements all do not satisfy the predicate.\n  _.partition = function(obj, predicate, context) {\n    predicate = cb(predicate, context);\n    var pass = [], fail = [];\n    _.each(obj, function(value, key, obj) {\n      (predicate(value, key, obj) ? pass : fail).push(value);\n    });\n    return [pass, fail];\n  };\n\n  // Array Functions\n  // ---------------\n\n  // Get the first element of an array. Passing **n** will return the first N\n  // values in the array. Aliased as `head` and `take`. The **guard** check\n  // allows it to work with `_.map`.\n  _.first = _.head = _.take = function(array, n, guard) {\n    if (array == null) return void 0;\n    if (n == null || guard) return array[0];\n    return _.initial(array, array.length - n);\n  };\n\n  // Returns everything but the last entry of the array. Especially useful on\n  // the arguments object. Passing **n** will return all the values in\n  // the array, excluding the last N.\n  _.initial = function(array, n, guard) {\n    return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n  };\n\n  // Get the last element of an array. Passing **n** will return the last N\n  // values in the array.\n  _.last = function(array, n, guard) {\n    if (array == null) return void 0;\n    if (n == null || guard) return array[array.length - 1];\n    return _.rest(array, Math.max(0, array.length - n));\n  };\n\n  // Returns everything but the first entry of the array. Aliased as `tail` and `drop`.\n  // Especially useful on the arguments object. Passing an **n** will return\n  // the rest N values in the array.\n  _.rest = _.tail = _.drop = function(array, n, guard) {\n    return slice.call(array, n == null || guard ? 1 : n);\n  };\n\n  // Trim out all falsy values from an array.\n  _.compact = function(array) {\n    return _.filter(array, _.identity);\n  };\n\n  // Internal implementation of a recursive `flatten` function.\n  var flatten = function(input, shallow, strict, startIndex) {\n    var output = [], idx = 0;\n    for (var i = startIndex || 0, length = getLength(input); i < length; i++) {\n      var value = input[i];\n      if (isArrayLike(value) && (_.isArray(value) || _.isArguments(value))) {\n        //flatten current level of array or arguments object\n        if (!shallow) value = flatten(value, shallow, strict);\n        var j = 0, len = value.length;\n        output.length += len;\n        while (j < len) {\n          output[idx++] = value[j++];\n        }\n      } else if (!strict) {\n        output[idx++] = value;\n      }\n    }\n    return output;\n  };\n\n  // Flatten out an array, either recursively (by default), or just one level.\n  _.flatten = function(array, shallow) {\n    return flatten(array, shallow, false);\n  };\n\n  // Return a version of the array that does not contain the specified value(s).\n  _.without = function(array) {\n    return _.difference(array, slice.call(arguments, 1));\n  };\n\n  // Produce a duplicate-free version of the array. If the array has already\n  // been sorted, you have the option of using a faster algorithm.\n  // Aliased as `unique`.\n  _.uniq = _.unique = function(array, isSorted, iteratee, context) {\n    if (!_.isBoolean(isSorted)) {\n      context = iteratee;\n      iteratee = isSorted;\n      isSorted = false;\n    }\n    if (iteratee != null) iteratee = cb(iteratee, context);\n    var result = [];\n    var seen = [];\n    for (var i = 0, length = getLength(array); i < length; i++) {\n      var value = array[i],\n          computed = iteratee ? iteratee(value, i, array) : value;\n      if (isSorted) {\n        if (!i || seen !== computed) result.push(value);\n        seen = computed;\n      } else if (iteratee) {\n        if (!_.contains(seen, computed)) {\n          seen.push(computed);\n          result.push(value);\n        }\n      } else if (!_.contains(result, value)) {\n        result.push(value);\n      }\n    }\n    return result;\n  };\n\n  // Produce an array that contains the union: each distinct element from all of\n  // the passed-in arrays.\n  _.union = function() {\n    return _.uniq(flatten(arguments, true, true));\n  };\n\n  // Produce an array that contains every item shared between all the\n  // passed-in arrays.\n  _.intersection = function(array) {\n    var result = [];\n    var argsLength = arguments.length;\n    for (var i = 0, length = getLength(array); i < length; i++) {\n      var item = array[i];\n      if (_.contains(result, item)) continue;\n      for (var j = 1; j < argsLength; j++) {\n        if (!_.contains(arguments[j], item)) break;\n      }\n      if (j === argsLength) result.push(item);\n    }\n    return result;\n  };\n\n  // Take the difference between one array and a number of other arrays.\n  // Only the elements present in just the first array will remain.\n  _.difference = function(array) {\n    var rest = flatten(arguments, true, true, 1);\n    return _.filter(array, function(value){\n      return !_.contains(rest, value);\n    });\n  };\n\n  // Zip together multiple lists into a single array -- elements that share\n  // an index go together.\n  _.zip = function() {\n    return _.unzip(arguments);\n  };\n\n  // Complement of _.zip. Unzip accepts an array of arrays and groups\n  // each array's elements on shared indices\n  _.unzip = function(array) {\n    var length = array && _.max(array, getLength).length || 0;\n    var result = Array(length);\n\n    for (var index = 0; index < length; index++) {\n      result[index] = _.pluck(array, index);\n    }\n    return result;\n  };\n\n  // Converts lists into objects. Pass either a single array of `[key, value]`\n  // pairs, or two parallel arrays of the same length -- one of keys, and one of\n  // the corresponding values.\n  _.object = function(list, values) {\n    var result = {};\n    for (var i = 0, length = getLength(list); i < length; i++) {\n      if (values) {\n        result[list[i]] = values[i];\n      } else {\n        result[list[i][0]] = list[i][1];\n      }\n    }\n    return result;\n  };\n\n  // Generator function to create the findIndex and findLastIndex functions\n  function createPredicateIndexFinder(dir) {\n    return function(array, predicate, context) {\n      predicate = cb(predicate, context);\n      var length = getLength(array);\n      var index = dir > 0 ? 0 : length - 1;\n      for (; index >= 0 && index < length; index += dir) {\n        if (predicate(array[index], index, array)) return index;\n      }\n      return -1;\n    };\n  }\n\n  // Returns the first index on an array-like that passes a predicate test\n  _.findIndex = createPredicateIndexFinder(1);\n  _.findLastIndex = createPredicateIndexFinder(-1);\n\n  // Use a comparator function to figure out the smallest index at which\n  // an object should be inserted so as to maintain order. Uses binary search.\n  _.sortedIndex = function(array, obj, iteratee, context) {\n    iteratee = cb(iteratee, context, 1);\n    var value = iteratee(obj);\n    var low = 0, high = getLength(array);\n    while (low < high) {\n      var mid = Math.floor((low + high) / 2);\n      if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n    }\n    return low;\n  };\n\n  // Generator function to create the indexOf and lastIndexOf functions\n  function createIndexFinder(dir, predicateFind, sortedIndex) {\n    return function(array, item, idx) {\n      var i = 0, length = getLength(array);\n      if (typeof idx == 'number') {\n        if (dir > 0) {\n            i = idx >= 0 ? idx : Math.max(idx + length, i);\n        } else {\n            length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n        }\n      } else if (sortedIndex && idx && length) {\n        idx = sortedIndex(array, item);\n        return array[idx] === item ? idx : -1;\n      }\n      if (item !== item) {\n        idx = predicateFind(slice.call(array, i, length), _.isNaN);\n        return idx >= 0 ? idx + i : -1;\n      }\n      for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n        if (array[idx] === item) return idx;\n      }\n      return -1;\n    };\n  }\n\n  // Return the position of the first occurrence of an item in an array,\n  // or -1 if the item is not included in the array.\n  // If the array is large and already in sort order, pass `true`\n  // for **isSorted** to use binary search.\n  _.indexOf = createIndexFinder(1, _.findIndex, _.sortedIndex);\n  _.lastIndexOf = createIndexFinder(-1, _.findLastIndex);\n\n  // Generate an integer Array containing an arithmetic progression. A port of\n  // the native Python `range()` function. See\n  // [the Python documentation](http://docs.python.org/library/functions.html#range).\n  _.range = function(start, stop, step) {\n    if (stop == null) {\n      stop = start || 0;\n      start = 0;\n    }\n    step = step || 1;\n\n    var length = Math.max(Math.ceil((stop - start) / step), 0);\n    var range = Array(length);\n\n    for (var idx = 0; idx < length; idx++, start += step) {\n      range[idx] = start;\n    }\n\n    return range;\n  };\n\n  // Function (ahem) Functions\n  // ------------------\n\n  // Determines whether to execute a function as a constructor\n  // or a normal function with the provided arguments\n  var executeBound = function(sourceFunc, boundFunc, context, callingContext, args) {\n    if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n    var self = baseCreate(sourceFunc.prototype);\n    var result = sourceFunc.apply(self, args);\n    if (_.isObject(result)) return result;\n    return self;\n  };\n\n  // Create a function bound to a given object (assigning `this`, and arguments,\n  // optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if\n  // available.\n  _.bind = function(func, context) {\n    if (nativeBind && func.bind === nativeBind) return nativeBind.apply(func, slice.call(arguments, 1));\n    if (!_.isFunction(func)) throw new TypeError('Bind must be called on a function');\n    var args = slice.call(arguments, 2);\n    var bound = function() {\n      return executeBound(func, bound, context, this, args.concat(slice.call(arguments)));\n    };\n    return bound;\n  };\n\n  // Partially apply a function by creating a version that has had some of its\n  // arguments pre-filled, without changing its dynamic `this` context. _ acts\n  // as a placeholder, allowing any combination of arguments to be pre-filled.\n  _.partial = function(func) {\n    var boundArgs = slice.call(arguments, 1);\n    var bound = function() {\n      var position = 0, length = boundArgs.length;\n      var args = Array(length);\n      for (var i = 0; i < length; i++) {\n        args[i] = boundArgs[i] === _ ? arguments[position++] : boundArgs[i];\n      }\n      while (position < arguments.length) args.push(arguments[position++]);\n      return executeBound(func, bound, this, this, args);\n    };\n    return bound;\n  };\n\n  // Bind a number of an object's methods to that object. Remaining arguments\n  // are the method names to be bound. Useful for ensuring that all callbacks\n  // defined on an object belong to it.\n  _.bindAll = function(obj) {\n    var i, length = arguments.length, key;\n    if (length <= 1) throw new Error('bindAll must be passed function names');\n    for (i = 1; i < length; i++) {\n      key = arguments[i];\n      obj[key] = _.bind(obj[key], obj);\n    }\n    return obj;\n  };\n\n  // Memoize an expensive function by storing its results.\n  _.memoize = function(func, hasher) {\n    var memoize = function(key) {\n      var cache = memoize.cache;\n      var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n      if (!_.has(cache, address)) cache[address] = func.apply(this, arguments);\n      return cache[address];\n    };\n    memoize.cache = {};\n    return memoize;\n  };\n\n  // Delays a function for the given number of milliseconds, and then calls\n  // it with the arguments supplied.\n  _.delay = function(func, wait) {\n    var args = slice.call(arguments, 2);\n    return setTimeout(function(){\n      return func.apply(null, args);\n    }, wait);\n  };\n\n  // Defers a function, scheduling it to run after the current call stack has\n  // cleared.\n  _.defer = _.partial(_.delay, _, 1);\n\n  // Returns a function, that, when invoked, will only be triggered at most once\n  // during a given window of time. Normally, the throttled function will run\n  // as much as it can, without ever going more than once per `wait` duration;\n  // but if you'd like to disable the execution on the leading edge, pass\n  // `{leading: false}`. To disable execution on the trailing edge, ditto.\n  _.throttle = function(func, wait, options) {\n    var context, args, result;\n    var timeout = null;\n    var previous = 0;\n    if (!options) options = {};\n    var later = function() {\n      previous = options.leading === false ? 0 : _.now();\n      timeout = null;\n      result = func.apply(context, args);\n      if (!timeout) context = args = null;\n    };\n    return function() {\n      var now = _.now();\n      if (!previous && options.leading === false) previous = now;\n      var remaining = wait - (now - previous);\n      context = this;\n      args = arguments;\n      if (remaining <= 0 || remaining > wait) {\n        if (timeout) {\n          clearTimeout(timeout);\n          timeout = null;\n        }\n        previous = now;\n        result = func.apply(context, args);\n        if (!timeout) context = args = null;\n      } else if (!timeout && options.trailing !== false) {\n        timeout = setTimeout(later, remaining);\n      }\n      return result;\n    };\n  };\n\n  // Returns a function, that, as long as it continues to be invoked, will not\n  // be triggered. The function will be called after it stops being called for\n  // N milliseconds. If `immediate` is passed, trigger the function on the\n  // leading edge, instead of the trailing.\n  _.debounce = function(func, wait, immediate) {\n    var timeout, args, context, timestamp, result;\n\n    var later = function() {\n      var last = _.now() - timestamp;\n\n      if (last < wait && last >= 0) {\n        timeout = setTimeout(later, wait - last);\n      } else {\n        timeout = null;\n        if (!immediate) {\n          result = func.apply(context, args);\n          if (!timeout) context = args = null;\n        }\n      }\n    };\n\n    return function() {\n      context = this;\n      args = arguments;\n      timestamp = _.now();\n      var callNow = immediate && !timeout;\n      if (!timeout) timeout = setTimeout(later, wait);\n      if (callNow) {\n        result = func.apply(context, args);\n        context = args = null;\n      }\n\n      return result;\n    };\n  };\n\n  // Returns the first function passed as an argument to the second,\n  // allowing you to adjust arguments, run code before and after, and\n  // conditionally execute the original function.\n  _.wrap = function(func, wrapper) {\n    return _.partial(wrapper, func);\n  };\n\n  // Returns a negated version of the passed-in predicate.\n  _.negate = function(predicate) {\n    return function() {\n      return !predicate.apply(this, arguments);\n    };\n  };\n\n  // Returns a function that is the composition of a list of functions, each\n  // consuming the return value of the function that follows.\n  _.compose = function() {\n    var args = arguments;\n    var start = args.length - 1;\n    return function() {\n      var i = start;\n      var result = args[start].apply(this, arguments);\n      while (i--) result = args[i].call(this, result);\n      return result;\n    };\n  };\n\n  // Returns a function that will only be executed on and after the Nth call.\n  _.after = function(times, func) {\n    return function() {\n      if (--times < 1) {\n        return func.apply(this, arguments);\n      }\n    };\n  };\n\n  // Returns a function that will only be executed up to (but not including) the Nth call.\n  _.before = function(times, func) {\n    var memo;\n    return function() {\n      if (--times > 0) {\n        memo = func.apply(this, arguments);\n      }\n      if (times <= 1) func = null;\n      return memo;\n    };\n  };\n\n  // Returns a function that will be executed at most one time, no matter how\n  // often you call it. Useful for lazy initialization.\n  _.once = _.partial(_.before, 2);\n\n  // Object Functions\n  // ----------------\n\n  // Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\n  var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\n  var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n                      'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n  function collectNonEnumProps(obj, keys) {\n    var nonEnumIdx = nonEnumerableProps.length;\n    var constructor = obj.constructor;\n    var proto = (_.isFunction(constructor) && constructor.prototype) || ObjProto;\n\n    // Constructor is a special case.\n    var prop = 'constructor';\n    if (_.has(obj, prop) && !_.contains(keys, prop)) keys.push(prop);\n\n    while (nonEnumIdx--) {\n      prop = nonEnumerableProps[nonEnumIdx];\n      if (prop in obj && obj[prop] !== proto[prop] && !_.contains(keys, prop)) {\n        keys.push(prop);\n      }\n    }\n  }\n\n  // Retrieve the names of an object's own properties.\n  // Delegates to **ECMAScript 5**'s native `Object.keys`\n  _.keys = function(obj) {\n    if (!_.isObject(obj)) return [];\n    if (nativeKeys) return nativeKeys(obj);\n    var keys = [];\n    for (var key in obj) if (_.has(obj, key)) keys.push(key);\n    // Ahem, IE < 9.\n    if (hasEnumBug) collectNonEnumProps(obj, keys);\n    return keys;\n  };\n\n  // Retrieve all the property names of an object.\n  _.allKeys = function(obj) {\n    if (!_.isObject(obj)) return [];\n    var keys = [];\n    for (var key in obj) keys.push(key);\n    // Ahem, IE < 9.\n    if (hasEnumBug) collectNonEnumProps(obj, keys);\n    return keys;\n  };\n\n  // Retrieve the values of an object's properties.\n  _.values = function(obj) {\n    var keys = _.keys(obj);\n    var length = keys.length;\n    var values = Array(length);\n    for (var i = 0; i < length; i++) {\n      values[i] = obj[keys[i]];\n    }\n    return values;\n  };\n\n  // Returns the results of applying the iteratee to each element of the object\n  // In contrast to _.map it returns an object\n  _.mapObject = function(obj, iteratee, context) {\n    iteratee = cb(iteratee, context);\n    var keys =  _.keys(obj),\n          length = keys.length,\n          results = {},\n          currentKey;\n      for (var index = 0; index < length; index++) {\n        currentKey = keys[index];\n        results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n      }\n      return results;\n  };\n\n  // Convert an object into a list of `[key, value]` pairs.\n  _.pairs = function(obj) {\n    var keys = _.keys(obj);\n    var length = keys.length;\n    var pairs = Array(length);\n    for (var i = 0; i < length; i++) {\n      pairs[i] = [keys[i], obj[keys[i]]];\n    }\n    return pairs;\n  };\n\n  // Invert the keys and values of an object. The values must be serializable.\n  _.invert = function(obj) {\n    var result = {};\n    var keys = _.keys(obj);\n    for (var i = 0, length = keys.length; i < length; i++) {\n      result[obj[keys[i]]] = keys[i];\n    }\n    return result;\n  };\n\n  // Return a sorted list of the function names available on the object.\n  // Aliased as `methods`\n  _.functions = _.methods = function(obj) {\n    var names = [];\n    for (var key in obj) {\n      if (_.isFunction(obj[key])) names.push(key);\n    }\n    return names.sort();\n  };\n\n  // Extend a given object with all the properties in passed-in object(s).\n  _.extend = createAssigner(_.allKeys);\n\n  // Assigns a given object with all the own properties in the passed-in object(s)\n  // (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\n  _.extendOwn = _.assign = createAssigner(_.keys);\n\n  // Returns the first key on an object that passes a predicate test\n  _.findKey = function(obj, predicate, context) {\n    predicate = cb(predicate, context);\n    var keys = _.keys(obj), key;\n    for (var i = 0, length = keys.length; i < length; i++) {\n      key = keys[i];\n      if (predicate(obj[key], key, obj)) return key;\n    }\n  };\n\n  // Return a copy of the object only containing the whitelisted properties.\n  _.pick = function(object, oiteratee, context) {\n    var result = {}, obj = object, iteratee, keys;\n    if (obj == null) return result;\n    if (_.isFunction(oiteratee)) {\n      keys = _.allKeys(obj);\n      iteratee = optimizeCb(oiteratee, context);\n    } else {\n      keys = flatten(arguments, false, false, 1);\n      iteratee = function(value, key, obj) { return key in obj; };\n      obj = Object(obj);\n    }\n    for (var i = 0, length = keys.length; i < length; i++) {\n      var key = keys[i];\n      var value = obj[key];\n      if (iteratee(value, key, obj)) result[key] = value;\n    }\n    return result;\n  };\n\n   // Return a copy of the object without the blacklisted properties.\n  _.omit = function(obj, iteratee, context) {\n    if (_.isFunction(iteratee)) {\n      iteratee = _.negate(iteratee);\n    } else {\n      var keys = _.map(flatten(arguments, false, false, 1), String);\n      iteratee = function(value, key) {\n        return !_.contains(keys, key);\n      };\n    }\n    return _.pick(obj, iteratee, context);\n  };\n\n  // Fill in a given object with default properties.\n  _.defaults = createAssigner(_.allKeys, true);\n\n  // Creates an object that inherits from the given prototype object.\n  // If additional properties are provided then they will be added to the\n  // created object.\n  _.create = function(prototype, props) {\n    var result = baseCreate(prototype);\n    if (props) _.extendOwn(result, props);\n    return result;\n  };\n\n  // Create a (shallow-cloned) duplicate of an object.\n  _.clone = function(obj) {\n    if (!_.isObject(obj)) return obj;\n    return _.isArray(obj) ? obj.slice() : _.extend({}, obj);\n  };\n\n  // Invokes interceptor with the obj, and then returns obj.\n  // The primary purpose of this method is to \"tap into\" a method chain, in\n  // order to perform operations on intermediate results within the chain.\n  _.tap = function(obj, interceptor) {\n    interceptor(obj);\n    return obj;\n  };\n\n  // Returns whether an object has a given set of `key:value` pairs.\n  _.isMatch = function(object, attrs) {\n    var keys = _.keys(attrs), length = keys.length;\n    if (object == null) return !length;\n    var obj = Object(object);\n    for (var i = 0; i < length; i++) {\n      var key = keys[i];\n      if (attrs[key] !== obj[key] || !(key in obj)) return false;\n    }\n    return true;\n  };\n\n\n  // Internal recursive comparison function for `isEqual`.\n  var eq = function(a, b, aStack, bStack) {\n    // Identical objects are equal. `0 === -0`, but they aren't identical.\n    // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n    if (a === b) return a !== 0 || 1 / a === 1 / b;\n    // A strict comparison is necessary because `null == undefined`.\n    if (a == null || b == null) return a === b;\n    // Unwrap any wrapped objects.\n    if (a instanceof _) a = a._wrapped;\n    if (b instanceof _) b = b._wrapped;\n    // Compare `[[Class]]` names.\n    var className = toString.call(a);\n    if (className !== toString.call(b)) return false;\n    switch (className) {\n      // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n      case '[object RegExp]':\n      // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n      case '[object String]':\n        // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n        // equivalent to `new String(\"5\")`.\n        return '' + a === '' + b;\n      case '[object Number]':\n        // `NaN`s are equivalent, but non-reflexive.\n        // Object(NaN) is equivalent to NaN\n        if (+a !== +a) return +b !== +b;\n        // An `egal` comparison is performed for other numeric values.\n        return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n      case '[object Date]':\n      case '[object Boolean]':\n        // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n        // millisecond representations. Note that invalid dates with millisecond representations\n        // of `NaN` are not equivalent.\n        return +a === +b;\n    }\n\n    var areArrays = className === '[object Array]';\n    if (!areArrays) {\n      if (typeof a != 'object' || typeof b != 'object') return false;\n\n      // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n      // from different frames are.\n      var aCtor = a.constructor, bCtor = b.constructor;\n      if (aCtor !== bCtor && !(_.isFunction(aCtor) && aCtor instanceof aCtor &&\n                               _.isFunction(bCtor) && bCtor instanceof bCtor)\n                          && ('constructor' in a && 'constructor' in b)) {\n        return false;\n      }\n    }\n    // Assume equality for cyclic structures. The algorithm for detecting cyclic\n    // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n    // Initializing stack of traversed objects.\n    // It's done here since we only need them for objects and arrays comparison.\n    aStack = aStack || [];\n    bStack = bStack || [];\n    var length = aStack.length;\n    while (length--) {\n      // Linear search. Performance is inversely proportional to the number of\n      // unique nested structures.\n      if (aStack[length] === a) return bStack[length] === b;\n    }\n\n    // Add the first object to the stack of traversed objects.\n    aStack.push(a);\n    bStack.push(b);\n\n    // Recursively compare objects and arrays.\n    if (areArrays) {\n      // Compare array lengths to determine if a deep comparison is necessary.\n      length = a.length;\n      if (length !== b.length) return false;\n      // Deep compare the contents, ignoring non-numeric properties.\n      while (length--) {\n        if (!eq(a[length], b[length], aStack, bStack)) return false;\n      }\n    } else {\n      // Deep compare objects.\n      var keys = _.keys(a), key;\n      length = keys.length;\n      // Ensure that both objects contain the same number of properties before comparing deep equality.\n      if (_.keys(b).length !== length) return false;\n      while (length--) {\n        // Deep compare each member\n        key = keys[length];\n        if (!(_.has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n      }\n    }\n    // Remove the first object from the stack of traversed objects.\n    aStack.pop();\n    bStack.pop();\n    return true;\n  };\n\n  // Perform a deep comparison to check if two objects are equal.\n  _.isEqual = function(a, b) {\n    return eq(a, b);\n  };\n\n  // Is a given array, string, or object empty?\n  // An \"empty\" object has no enumerable own-properties.\n  _.isEmpty = function(obj) {\n    if (obj == null) return true;\n    if (isArrayLike(obj) && (_.isArray(obj) || _.isString(obj) || _.isArguments(obj))) return obj.length === 0;\n    return _.keys(obj).length === 0;\n  };\n\n  // Is a given value a DOM element?\n  _.isElement = function(obj) {\n    return !!(obj && obj.nodeType === 1);\n  };\n\n  // Is a given value an array?\n  // Delegates to ECMA5's native Array.isArray\n  _.isArray = nativeIsArray || function(obj) {\n    return toString.call(obj) === '[object Array]';\n  };\n\n  // Is a given variable an object?\n  _.isObject = function(obj) {\n    var type = typeof obj;\n    return type === 'function' || type === 'object' && !!obj;\n  };\n\n  // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError.\n  _.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error'], function(name) {\n    _['is' + name] = function(obj) {\n      return toString.call(obj) === '[object ' + name + ']';\n    };\n  });\n\n  // Define a fallback version of the method in browsers (ahem, IE < 9), where\n  // there isn't any inspectable \"Arguments\" type.\n  if (!_.isArguments(arguments)) {\n    _.isArguments = function(obj) {\n      return _.has(obj, 'callee');\n    };\n  }\n\n  // Optimize `isFunction` if appropriate. Work around some typeof bugs in old v8,\n  // IE 11 (#1621), and in Safari 8 (#1929).\n  if (typeof /./ != 'function' && typeof Int8Array != 'object') {\n    _.isFunction = function(obj) {\n      return typeof obj == 'function' || false;\n    };\n  }\n\n  // Is a given object a finite number?\n  _.isFinite = function(obj) {\n    return isFinite(obj) && !isNaN(parseFloat(obj));\n  };\n\n  // Is the given value `NaN`? (NaN is the only number which does not equal itself).\n  _.isNaN = function(obj) {\n    return _.isNumber(obj) && obj !== +obj;\n  };\n\n  // Is a given value a boolean?\n  _.isBoolean = function(obj) {\n    return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n  };\n\n  // Is a given value equal to null?\n  _.isNull = function(obj) {\n    return obj === null;\n  };\n\n  // Is a given variable undefined?\n  _.isUndefined = function(obj) {\n    return obj === void 0;\n  };\n\n  // Shortcut function for checking if an object has a given property directly\n  // on itself (in other words, not on a prototype).\n  _.has = function(obj, key) {\n    return obj != null && hasOwnProperty.call(obj, key);\n  };\n\n  // Utility Functions\n  // -----------------\n\n  // Run Underscore.js in *noConflict* mode, returning the `_` variable to its\n  // previous owner. Returns a reference to the Underscore object.\n  _.noConflict = function() {\n    root._ = previousUnderscore;\n    return this;\n  };\n\n  // Keep the identity function around for default iteratees.\n  _.identity = function(value) {\n    return value;\n  };\n\n  // Predicate-generating functions. Often useful outside of Underscore.\n  _.constant = function(value) {\n    return function() {\n      return value;\n    };\n  };\n\n  _.noop = function(){};\n\n  _.property = property;\n\n  // Generates a function for a given object that returns a given property.\n  _.propertyOf = function(obj) {\n    return obj == null ? function(){} : function(key) {\n      return obj[key];\n    };\n  };\n\n  // Returns a predicate for checking whether an object has a given set of\n  // `key:value` pairs.\n  _.matcher = _.matches = function(attrs) {\n    attrs = _.extendOwn({}, attrs);\n    return function(obj) {\n      return _.isMatch(obj, attrs);\n    };\n  };\n\n  // Run a function **n** times.\n  _.times = function(n, iteratee, context) {\n    var accum = Array(Math.max(0, n));\n    iteratee = optimizeCb(iteratee, context, 1);\n    for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n    return accum;\n  };\n\n  // Return a random integer between min and max (inclusive).\n  _.random = function(min, max) {\n    if (max == null) {\n      max = min;\n      min = 0;\n    }\n    return min + Math.floor(Math.random() * (max - min + 1));\n  };\n\n  // A (possibly faster) way to get the current timestamp as an integer.\n  _.now = Date.now || function() {\n    return new Date().getTime();\n  };\n\n   // List of HTML entities for escaping.\n  var escapeMap = {\n    '&': '&amp;',\n    '<': '&lt;',\n    '>': '&gt;',\n    '\"': '&quot;',\n    \"'\": '&#x27;',\n    '`': '&#x60;'\n  };\n  var unescapeMap = _.invert(escapeMap);\n\n  // Functions for escaping and unescaping strings to/from HTML interpolation.\n  var createEscaper = function(map) {\n    var escaper = function(match) {\n      return map[match];\n    };\n    // Regexes for identifying a key that needs to be escaped\n    var source = '(?:' + _.keys(map).join('|') + ')';\n    var testRegexp = RegExp(source);\n    var replaceRegexp = RegExp(source, 'g');\n    return function(string) {\n      string = string == null ? '' : '' + string;\n      return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n    };\n  };\n  _.escape = createEscaper(escapeMap);\n  _.unescape = createEscaper(unescapeMap);\n\n  // If the value of the named `property` is a function then invoke it with the\n  // `object` as context; otherwise, return it.\n  _.result = function(object, property, fallback) {\n    var value = object == null ? void 0 : object[property];\n    if (value === void 0) {\n      value = fallback;\n    }\n    return _.isFunction(value) ? value.call(object) : value;\n  };\n\n  // Generate a unique integer id (unique within the entire client session).\n  // Useful for temporary DOM ids.\n  var idCounter = 0;\n  _.uniqueId = function(prefix) {\n    var id = ++idCounter + '';\n    return prefix ? prefix + id : id;\n  };\n\n  // By default, Underscore uses ERB-style template delimiters, change the\n  // following template settings to use alternative delimiters.\n  _.templateSettings = {\n    evaluate    : /<%([\\s\\S]+?)%>/g,\n    interpolate : /<%=([\\s\\S]+?)%>/g,\n    escape      : /<%-([\\s\\S]+?)%>/g\n  };\n\n  // When customizing `templateSettings`, if you don't want to define an\n  // interpolation, evaluation or escaping regex, we need one that is\n  // guaranteed not to match.\n  var noMatch = /(.)^/;\n\n  // Certain characters need to be escaped so that they can be put into a\n  // string literal.\n  var escapes = {\n    \"'\":      \"'\",\n    '\\\\':     '\\\\',\n    '\\r':     'r',\n    '\\n':     'n',\n    '\\u2028': 'u2028',\n    '\\u2029': 'u2029'\n  };\n\n  var escaper = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\n  var escapeChar = function(match) {\n    return '\\\\' + escapes[match];\n  };\n\n  // JavaScript micro-templating, similar to John Resig's implementation.\n  // Underscore templating handles arbitrary delimiters, preserves whitespace,\n  // and correctly escapes quotes within interpolated code.\n  // NB: `oldSettings` only exists for backwards compatibility.\n  _.template = function(text, settings, oldSettings) {\n    if (!settings && oldSettings) settings = oldSettings;\n    settings = _.defaults({}, settings, _.templateSettings);\n\n    // Combine delimiters into one regular expression via alternation.\n    var matcher = RegExp([\n      (settings.escape || noMatch).source,\n      (settings.interpolate || noMatch).source,\n      (settings.evaluate || noMatch).source\n    ].join('|') + '|$', 'g');\n\n    // Compile the template source, escaping string literals appropriately.\n    var index = 0;\n    var source = \"__p+='\";\n    text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n      source += text.slice(index, offset).replace(escaper, escapeChar);\n      index = offset + match.length;\n\n      if (escape) {\n        source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n      } else if (interpolate) {\n        source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n      } else if (evaluate) {\n        source += \"';\\n\" + evaluate + \"\\n__p+='\";\n      }\n\n      // Adobe VMs need the match returned to produce the correct offest.\n      return match;\n    });\n    source += \"';\\n\";\n\n    // If a variable is not specified, place data values in local scope.\n    if (!settings.variable) source = 'with(obj||{}){\\n' + source + '}\\n';\n\n    source = \"var __t,__p='',__j=Array.prototype.join,\" +\n      \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n      source + 'return __p;\\n';\n\n    try {\n      var render = new Function(settings.variable || 'obj', '_', source);\n    } catch (e) {\n      e.source = source;\n      throw e;\n    }\n\n    var template = function(data) {\n      return render.call(this, data, _);\n    };\n\n    // Provide the compiled source as a convenience for precompilation.\n    var argument = settings.variable || 'obj';\n    template.source = 'function(' + argument + '){\\n' + source + '}';\n\n    return template;\n  };\n\n  // Add a \"chain\" function. Start chaining a wrapped Underscore object.\n  _.chain = function(obj) {\n    var instance = _(obj);\n    instance._chain = true;\n    return instance;\n  };\n\n  // OOP\n  // ---------------\n  // If Underscore is called as a function, it returns a wrapped object that\n  // can be used OO-style. This wrapper holds altered versions of all the\n  // underscore functions. Wrapped objects may be chained.\n\n  // Helper function to continue chaining intermediate results.\n  var result = function(instance, obj) {\n    return instance._chain ? _(obj).chain() : obj;\n  };\n\n  // Add your own custom functions to the Underscore object.\n  _.mixin = function(obj) {\n    _.each(_.functions(obj), function(name) {\n      var func = _[name] = obj[name];\n      _.prototype[name] = function() {\n        var args = [this._wrapped];\n        push.apply(args, arguments);\n        return result(this, func.apply(_, args));\n      };\n    });\n  };\n\n  // Add all of the Underscore functions to the wrapper object.\n  _.mixin(_);\n\n  // Add all mutator Array functions to the wrapper.\n  _.each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n    var method = ArrayProto[name];\n    _.prototype[name] = function() {\n      var obj = this._wrapped;\n      method.apply(obj, arguments);\n      if ((name === 'shift' || name === 'splice') && obj.length === 0) delete obj[0];\n      return result(this, obj);\n    };\n  });\n\n  // Add all accessor Array functions to the wrapper.\n  _.each(['concat', 'join', 'slice'], function(name) {\n    var method = ArrayProto[name];\n    _.prototype[name] = function() {\n      return result(this, method.apply(this._wrapped, arguments));\n    };\n  });\n\n  // Extracts the result from a wrapped and chained object.\n  _.prototype.value = function() {\n    return this._wrapped;\n  };\n\n  // Provide unwrapping proxy for some methods used in engine operations\n  // such as arithmetic and JSON stringification.\n  _.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n  _.prototype.toString = function() {\n    return '' + this._wrapped;\n  };\n\n  // AMD registration happens at the end for compatibility with AMD loaders\n  // that may not enforce next-turn semantics on modules. Even though general\n  // practice for AMD registration is to be anonymous, underscore registers\n  // as a named module because, like jQuery, it is a base library that is\n  // popular enough to be bundled in a third party lib, but not be part of\n  // an AMD load request. Those cases could generate an error when an\n  // anonymous define() is called outside of a loader request.\n  if (typeof define === 'function' && define.amd) {\n    define('underscore', [], function() {\n      return _;\n    });\n  }\n}.call(this));\n"
  },
  {
    "path": "server/files/javascript/loader.js",
    "content": "semantic.loader = {};\n\n// ready event\nsemantic.loader.ready = function() {\n\n  // selector cache\n  var\n    $examples           = $('.example'),\n    $contentExample     = $examples.filter('.content'),\n    $contentCards       = $contentExample.find('.ui.cards'),\n    $contentLoadingCard = $contentExample.find('.cards .card'),\n    $contentFinalCard   = $contentExample.find('.ignored.card'),\n    // alias\n    handler\n  ;\n\n  // event handlers\n  handler = {\n\n  };\n\n  $contentExample\n    .find('.ui.button')\n      .on('click', function() {\n        var $button = $(this);\n        var loadingHTML = $contentLoadingCard.get(0).outerHTML;\n        var finalHTML = $contentFinalCard.get(0).outerHTML;\n\n        if($button.hasClass('loading')) {\n          return;\n        }\n        $button.addClass('loading');\n\n        var names = ['lena', 'patrick', 'molly', 'kristy', 'mark', 'cassie', 'eve', 'lindsay', 'rachel', 'matthew', 'elyse'];\n\n\n        var randomName = function() {\n          var randomIndex = Math.floor(Math.random()*names.length);\n          var name = names[randomIndex];\n          names.splice(randomIndex, 1);\n          return name;\n        };\n\n        $contentCards\n          .empty()\n          .append(loadingHTML)\n          .append(loadingHTML)\n          .append(loadingHTML)\n        ;\n        setTimeout(function() {\n          var name = randomName();\n          var $final = $(finalHTML)\n            .removeClass('ignored')\n            .find('.header').text(name[0].toUpperCase() + name.substr(1)).end()\n            .find('img').attr('src', '/images/avatar2/large/' + name + '.png').end()\n          ;\n          $contentCards\n            .children().eq(0)\n            .replaceWith($final)\n          ;\n          $final.transition('fade in');\n        }, 500);\n        setTimeout(function() {\n          var name = randomName();\n          var $final = $(finalHTML)\n            .removeClass('ignored')\n            .find('.header').text(name[0].toUpperCase() + name.substr(1)).end()\n            .find('img').attr('src', '/images/avatar2/large/' + name + '.png').end()\n          ;\n          $contentCards\n            .children().eq(1)\n            .replaceWith($final)\n          ;\n          $final.transition('fade in');\n        }, 800);\n        setTimeout(function() {\n          var name = randomName();\n          var $final = $(finalHTML)\n            .removeClass('ignored')\n            .find('.header').text(name[0].toUpperCase() + name.substr(1)).end()\n            .find('img').attr('src', '/images/avatar2/large/' + name + '.png').end()\n          ;\n          $contentCards\n            .children().eq(2)\n            .replaceWith($final)\n          ;\n          $final.transition('fade in');\n          $button.removeClass('loading');\n        }, 1200);\n      })\n  ;\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.loader.ready)\n;\n"
  },
  {
    "path": "server/files/javascript/menu.js",
    "content": "semantic.menu = {};\n\n// ready event\nsemantic.menu.ready = function() {\n\n  // selector cache\n  var\n    $dropdownItem = $('.main.container .menu .dropdown .item'),\n    $popupItem    = $('.main.container .popup.example .browse.item'),\n    $menuItem     = $('.main.container .menu a.item, .menu .link.item').not($dropdownItem),\n    $dropdown     = $('.main.container .menu .ui.dropdown'),\n    // alias\n    handler = {\n\n      activate: function() {\n        if(!$(this).hasClass('dropdown browse')) {\n          $(this)\n            .addClass('active')\n            .closest('.ui.menu')\n            .find('.item')\n              .not($(this))\n              .removeClass('active')\n          ;\n        }\n      }\n\n    }\n  ;\n\n  $dropdown\n    .dropdown({\n      on: 'hover'\n    })\n  ;\n\n  $('.main.container .ui.search')\n    .search({\n      type: 'category',\n      apiSettings: {\n        action: 'categorySearch'\n      }\n    })\n  ;\n\n  $('.school.example .browse.item')\n    .popup({\n      popup     : '.admission.popup',\n      hoverable : true,\n      position  : 'bottom left',\n      delay     : {\n        show: 300,\n        hide: 800\n      }\n    })\n  ;\n\n  $popupItem\n    .popup({\n      inline   : true,\n      hoverable: true,\n      popup    : '.fluid.popup',\n      position : 'bottom left',\n      delay: {\n        show: 300,\n        hide: 800\n      }\n    })\n  ;\n\n  $menuItem\n    .on('click', handler.activate)\n  ;\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.menu.ready)\n;"
  },
  {
    "path": "server/files/javascript/message.js",
    "content": "semantic.message = {};\n\n// ready event\nsemantic.message.ready = function() {\n\n\n  $('.message .close').on('click', function() {\n    $(this).closest('.message').transition('fade');\n  });\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.message.ready)\n;"
  },
  {
    "path": "server/files/javascript/modal.js",
    "content": "semantic.modal = {};\n\n// ready event\nsemantic.modal.ready = function() {\n\n  // selector cache\n  var\n    // alias\n    handler\n  ;\n\n  // event handlers\n  handler = {\n\n  };\n\n    $('.animation.dropdown')\n      .dropdown({\n        onChange: function(value) {\n          $('.standard.test.modal')\n            .modal('setting', 'transition', value)\n            .modal('show')\n          ;\n        }\n      })\n    ;\n    $('.ui.checkbox')\n      .checkbox()\n    ;\n\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.modal.ready)\n;"
  },
  {
    "path": "server/files/javascript/new.js",
    "content": "semantic.new = {};\n\n// ready event\nsemantic.new.ready = function() {\n\n  // selector cache\n  var handler = {\n\n    activate: function() {\n      if(!$(this).hasClass('dropdown browse')) {\n        $(this)\n          .addClass('active')\n          .closest('.ui.menu')\n          .find('.item')\n            .not($(this))\n            .removeClass('active')\n        ;\n      }\n    }\n\n  };\n\n  //2.4\n  $('.clearable.example .ui.selection.dropdown')\n    .dropdown({\n      clearable: true,\n      placeholder: 'Select country...'\n    })\n  ;\n  $('.clearable.example .ui.inline.dropdown')\n    .dropdown({\n      clearable: true,\n      placeholder: 'any'\n    })\n  ;\n\n  $('.bug.accordion')\n    .accordion()\n  ;\n\n  // tab refresh\n  $('.masthead.tab.segment .stackable.menu .item')\n    .tab('setting', 'onLoad', function() {\n      semantic.handler.refreshSticky();\n      $(this).find('.memory.example .demo').visibility('refresh');\n      $(this).find('.overlay')\n        .visibility('refresh')\n      ;\n    })\n  ;\n\n  // 2.2\n  $('.faster.example .ui.multiple.dropdown')\n    .dropdown({\n      debug: true,\n      verbose: true,\n      allowAdditions: true,\n      onChange: function() {\n        console.log('onChange');\n      }\n    })\n  ;\n\n  // form\n  $('.depends.example .ui.checkbox')\n    .checkbox()\n  ;\n\n\n  // 2.1\n\n  $('.mapping.example .ui.search')\n    .search({\n      apiSettings: {\n        url: '//api.github.com/search/repositories?q={query}',\n        cache: true\n      },\n      fields: {\n        results : 'items',\n        title   : 'name',\n        url     : 'html_url'\n      }\n    })\n  ;\n\n  $('.fields.example .ui.search')\n    .search({\n      source: [\n      {\n        mustard: 'Title #1',\n        pickle: 'thing'\n      },\n      {\n        mustard: 'Title #2',\n        pickle: 'another thing'\n      },\n      {\n        mustard: 'Title #3',\n        pickle: 'thing 100'\n      }\n    ],\n    fields: {\n      title   : 'mustard'\n    },\n    searchFields: ['pickle']\n    })\n  ;\n\n  $('.validation.example')\n    .form({\n      inline: true,\n      fields: {\n        firstName: {\n          identifier  : 'first-name',\n          rules: [\n            {\n              type   : 'empty',\n              prompt : 'Please enter your first name'\n            }\n          ]\n        },\n        lastName: {\n          identifier  : 'last-name',\n          rules: [\n            {\n              type   : 'empty',\n              prompt : 'Please enter your last name'\n            }\n          ]\n        },\n        terms: {\n          identifier : 'terms',\n          rules: [\n            {\n              type   : 'checked',\n              prompt : 'You must agree to the terms and conditions'\n            }\n          ]\n        }\n      }\n    })\n  ;\n\n\n\n  /// 2.0\n\n  // form\n  $('.form.example .ui.dropdown')\n    .dropdown()\n  ;\n  // form\n  $('.form.example')\n    .form({\n      inline: true,\n      fields: {\n        firstName: {\n          identifier : 'shipping[first-name]',\n          rules: [\n            {\n              type   : 'isExactly[Suzy]',\n              prompt : 'Your name must be \"Suzy\"'\n            }\n          ]\n        }\n      }\n    })\n  ;\n\n  // dimmer\n  $('.blurring.example .card .dimmer')\n    .dimmer({\n      on: 'hover'\n    })\n    .find('.button')\n      .state({\n        text: {\n          active : 'Sent!'\n        }\n      })\n  ;\n\n  // checkbox\n  $('.indeterminate.example .master.checkbox')\n    .checkbox({\n      onChecked: function() {\n        var\n          $childCheckbox  = $(this).closest('.checkbox').siblings('.list').find('.checkbox')\n        ;\n        $childCheckbox.checkbox('check');\n      },\n      onUnchecked: function() {\n        var\n          $childCheckbox  = $(this).closest('.checkbox').siblings('.list').find('.checkbox')\n        ;\n        $childCheckbox.checkbox('uncheck');\n      }\n    })\n  ;\n  $('.indeterminate.example .child.checkbox')\n    .checkbox({\n      fireOnInit : true,\n      onChange   : function() {\n        var\n          $listGroup      = $(this).closest('.list'),\n          $parentCheckbox = $listGroup.closest('.item').children('.checkbox'),\n          $checkbox       = $listGroup.find('.checkbox'),\n          allChecked      = true,\n          allUnchecked    = true\n        ;\n        $checkbox.each(function() {\n          if( $(this).checkbox('is checked') ) {\n            allUnchecked = false;\n          }\n          else {\n            allChecked = false;\n          }\n        });\n        if(allChecked) {\n          $parentCheckbox.checkbox('set checked');\n        }\n        else if(allUnchecked) {\n          $parentCheckbox.checkbox('set unchecked');\n        }\n        else {\n          $parentCheckbox.checkbox('set indeterminate');\n        }\n      }\n    })\n  ;\n\n  // api\n  $('.mock.example .button')\n    .api({\n      loadingDuration: 500,\n      // lets just pretend this always works\n      mockResponse: {\n        success: true\n      }\n    })\n    .state({\n      text: {\n        inactive   : 'Off',\n        active     : 'On'\n      }\n    })\n  ;\n\n  $('.async.example .button')\n    .api({\n      // lets wait a half second then try your luck\n      mockResponseAsync: function(settings, callback) {\n        var\n          luckyPerson = (Math.random() < 0.5),\n          response    = (luckyPerson)\n            ? { success: true }\n            : { success: false, message: 'You are not lucky' }\n        ;\n        setTimeout(function() {\n          callback(response);\n        }, 500);\n      },\n      successTest: function(response) {\n        return response && response.success;\n      },\n      onFailure: function (response) {\n        alert(response.message);\n      }\n    })\n    .state({\n      text: {\n        inactive : 'Off',\n        active   : 'On'\n      }\n    })\n  ;\n\n\n  $('.external.example .ui.search')\n    .search({\n      type          : 'category',\n      minCharacters : 3,\n      apiSettings   : {\n        onFailure: function() {\n          $(this).search('display message', '<b>Hold off a few minutes</b> <div class=\"ui divider\"></div> GitHub rate limit exceeded for anonymous search.');\n        },\n        onResponse: function(githubResponse) {\n          var\n            response = {\n              results : {}\n            }\n          ;\n          if(githubResponse.items.length === 0) {\n            // no results\n            return response;\n          }\n          $.each(githubResponse.items, function(index, item) {\n            var\n              language  = item.language || 'Unknown',\n              maxLength = 200,\n              description\n            ;\n            if(index >= 8) {\n              // only show 8 results\n              return false;\n            }\n            // Create new language category\n            if(response.results[language] === undefined) {\n              response.results[language] = {\n                name    : language,\n                results : []\n              };\n            }\n            description = (item.description < maxLength)\n                ? item.description\n                : item.description.substr(0, maxLength) + '...'\n            ;\n            description = $.fn.search.settings.templates.escape(description);\n            // Add result to category\n            response.results[language].results.push({\n              title       : item.name,\n              description : description,\n              url         : item.html_url\n            });\n          });\n          return response;\n        },\n        url: '//api.github.com/search/repositories?q={query}'\n      }\n    })\n  ;\n\n  // visiblity\n  $('.visibility.example .overlay')\n    .visibility({\n      silent : true,\n      type   : 'fixed',\n      offset : 15 // give some space from top of screen\n    })\n  ;\n\n\n  // menu\n  $('.main.container .menu a.item, .main.container .menu .link.item').not('.dropdown.item')\n    .on('click', handler.activate)\n  ;\n\n  $('.ui.menu .browse.item')\n    .popup({\n      popup     : '.classes.popup',\n      hoverable : true,\n      position  : 'bottom left',\n      delay     : {\n        show: 300,\n        hide: 800\n      }\n    })\n  ;\n  $('.main.container .ui.menu .ui.search')\n    .search({\n      type: 'category',\n      apiSettings: {\n        action: 'categorySearch'\n      }\n    })\n  ;\n\n  // dropdowns\n  $('.dropdown.example .ui.dropdown').dropdown();\n  $('.user.example .ui.dropdown').dropdown({\n    allowAdditions: true\n  });\n\n  $('.remote.example .ui.dropdown')\n    .dropdown({\n      apiSettings: {\n        url: '//api.semantic-ui.com/tags/{query}'\n      }\n    })\n  ;\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.new.ready)\n;\n"
  },
  {
    "path": "server/files/javascript/playground.js",
    "content": "semantic.playground = {};\n\nwindow.ui = {};\n\n$.api.settings.api = {\n  'getSpecification': 'spec/{$type}.json'\n};\n\n$.fn.dropdown.settings.animation.hide = 'none';\n\n$.fn.dropdown.debug = false;\n$.fn.checkbox.debug = false;\n$.fn.api.debug = false;\n$.fn.popup.debug = false;\n\n// ready event\nsemantic.playground.ready = function() {\n\n  // selector cache\n  var\n    $uiMenu          = $('.ui.menu'),\n    $elements        = $('.element.menu'),\n    $elementChoice   = $elements.find('.selection.dropdown'),\n\n    $variations      = $('.variation.menu'),\n    $variationForm   = $variations.find('.form'),\n    $variationChoice = $variations.find('.selection'),\n\n    $types           = $('.type.menu'),\n    $typeForm        = $types.find('.form'),\n    $typeChoice      = $types.find('.selection'),\n\n    $preview         = $('.preview.segment'),\n    $text            = $('.text'),\n\n    $page            = $('.page.column'),\n\n    $view            = $('.view.buttons .button'),\n    $previewView     = $view.filter('.preview'),\n    $htmlView        = $view.filter('.html'),\n\n    $download        = $('.download.button'),\n\n    $addElement      = $('.add.button'),\n\n    template = {},\n\n\n    // alias\n    handler = {\n\n      initialize: function() {\n\n        template.select   = handler.template.compile('select'),\n        template.checkbox = handler.template.compile('checkbox'),\n\n        handler.interface.get('button');\n        handler.attachEvents();\n      },\n\n      attachEvents: function() {\n        $elementChoice\n          .dropdown({\n            action   : 'form',\n            onChange : function(type) {\n              $.proxy(handler.interface.setExclusive, this)();\n              handler.interface.get(type);\n            }\n          })\n        ;\n        $addElement\n          .on('click', handler.preview.add)\n        ;\n        $previewView\n          .on('click', handler.view.preview)\n        ;\n        $htmlView\n          .on('click', handler.view.html)\n        ;\n      },\n\n      preview: {\n\n        add: function() {\n          handler.item.insert( $preview.html() );\n        },\n\n        get: function() {\n          console.log('Making preview');\n          var\n            koan =$typeForm.find('.dropdown:not(.default) input').val() || false,\n            classNames,\n            $element,\n            dummyText = ['Submit', 'Add', 'Create']\n          ;\n          classNames = handler.interface.getValues($variationForm);\n          if(koan) {\n            $element = $\n              .zc(koan)\n              .addClass(classNames.join(' '))\n            ;\n            handler.preview.addText($element);\n            $preview\n              .empty()\n              .append($element)\n            ;\n          }\n\n          // add class names\n        },\n\n        addText: function($element) {\n          var\n            $parts = $element.children()\n          ;\n          if($parts.length === 0) {\n            $element.text('Example');\n          }\n          else {\n            $parts\n              .each(function() {\n                handler.preview.preview.addText($(this));\n              })\n            ;\n          }\n        },\n\n        update: function() {\n          $preview.html( handler.preview.get() );\n        }\n\n      },\n\n      types: {\n        create: function(type) {\n          var\n            html = '',\n            ui = window.ui[type] || false,\n            format = (ui)\n              ? ui['Types']\n              : {}\n          ;\n          handler.interface.addForm($typeForm, format);\n          $typeForm\n            .find('.dropdown')\n              .dropdown('setting', 'onChange', handler.interface.setExclusive)\n          ;\n        },\n        toggle: function() {\n\n        }\n      },\n\n      variations: {\n\n        create: function(type) {\n          var\n            html = '',\n            ui = window.ui[type] || false,\n            format = (ui)\n              ? ui['Variations']\n              : {}\n          ;\n          handler.interface.addForm($variationForm, format);\n        },\n\n        toggle: function() {\n\n        }\n\n      },\n\n      interface: {\n        addForm: function($element, list) {\n          var\n            html = ''\n          ;\n          $.each(list, function(name, variation) {\n            // complex variation\n            if( $.isPlainObject(variation) && variation.selector !== undefined) {\n\n            }\n            // select box\n            else if( $.isArray(variation) || $.isPlainObject(variation) ) {\n              html += template.select({\n                name   : name,\n                values : variation\n              });\n            }\n            // checkbox\n            else if( typeof variation == 'string') {\n              html += template.checkbox({\n                value: variation\n              });\n            }\n          });\n          $(html)\n            .appendTo($element)\n          ;\n          $element\n            .find('.dropdown')\n              .dropdown({\n                action   : 'form',\n                onChange : handler.preview.update\n              })\n              .end()\n            .find('.checkbox')\n              .checkbox({\n                onChange: handler.preview.update\n              })\n          ;\n          return $element;\n        },\n        getValues: function($form) {\n          var\n            $inputs    = $form.find('input'),\n            classNames = []\n          ;\n          $inputs\n            .each(function() {\n              var\n                type  = $(this).attr('type'),\n                value = $(this).val()\n              ;\n              if( type == 'hidden' && value != 'none') {\n                classNames.push(value);\n              }\n              else if( type == 'checkbox' && $(this).is(':checked') ) {\n                classNames.push(value);\n              }\n            })\n          ;\n          console.log(classNames);\n          return classNames;\n        },\n        setExclusive: function() {\n          $(this)\n            .removeClass('default')\n            .closest('.item').find('.dropdown')\n              .not( $(this) )\n              .addClass('default')\n              .find('.text')\n                .html('---')\n                .end()\n              .find('input')\n                .val('')\n          ;\n        },\n        clear: function() {\n          $typeForm.empty();\n          $variationForm.empty();\n        },\n        update: function(type) {\n          handler.types.create(type);\n          handler.variations.create(type);\n        },\n        get: function(type) {\n          if(type !== undefined) {\n            if(window.ui[type] === undefined) {\n              $.api({\n                action: 'getSpecification',\n                urlData: {\n                  type: type\n                },\n                success: function(json) {\n                  window.ui[type] = json;\n                  handler.interface.update(type);\n                },\n                failure: function() {\n                  window.ui[type] = {};\n                  handler.interface.clear();\n                }\n              });\n            }\n            else {\n              handler.interface.update(type);\n            }\n          }\n        }\n      },\n\n      item: {\n        update: function(type) {\n        },\n        change: function(type) {\n        },\n        highlight: function() {\n\n        },\n        insert: function(html) {\n          if( $page.hasClass('default') ) {\n            $page\n              .removeClass('default')\n              .empty()\n            ;\n          }\n          $(html)\n            .appendTo($page)\n          ;\n        },\n        remove: function() {\n\n        }\n\n      },\n\n      template: {\n        compile: function(name) {\n          var template = Handlebars.compile($('script.'+name).html());\n          return ($.isFunction(template))\n            ? template\n            : false\n          ;\n        }\n      },\n\n      view: {\n        preview: function() {\n          $(this)\n            .addClass('active')\n            .siblings()\n              .removeClass('active')\n          ;\n        },\n        html: function() {\n          $(this)\n            .addClass('active')\n            .siblings()\n              .removeClass('active')\n          ;\n        }\n      },\n\n      components: {\n\n        add: function() {\n\n        },\n        remove: function() {\n\n        }\n      },\n\n      activate: function(value) {\n        if(!$(this).hasClass('dropdown')) {\n          $(this)\n            .addClass('active')\n            .closest('.ui.playground')\n            .find('.item')\n              .not($(this))\n              .removeClass('active')\n          ;\n        }\n      }\n\n    }\n  ;\n\n  handler.initialize();\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.playground.ready)\n;\n"
  },
  {
    "path": "server/files/javascript/popup.js",
    "content": "semantic.popup = {};\n\n// ready event\nsemantic.popup.ready = function() {\n\n  // selector cache\n  var\n    $popup = $('.main .ui[data-content], .main .ui[data-html], .main i[title], .main i[data-content], .main i[data-html]'),\n    // alias\n    handler\n  ;\n  $popup\n    .popup({\n      className: {\n        popup: 'ignored ui popup'\n      }\n    })\n  ;\n\n  $('.fluid.example > .button')\n    .popup({\n      hoverable: true,\n      delay: {\n        show: 100,\n        hide: 500\n      }\n    })\n  ;\n  $('.fitted.example > .button')\n    .popup({\n      hoverable: true,\n      delay: {\n        show: 100,\n        hide: 500\n      }\n    })\n  ;\n  $('.example:not(.no')\n    .popup('destroy')\n  ;\n\n  $('.existing.example .rating')\n    .rating()\n  ;\n\n  $('.existing.example .card')\n    .popup({\n      className: {\n        popup: 'ignored ui popup'\n      }\n    })\n  ;\n\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.popup.ready)\n;"
  },
  {
    "path": "server/files/javascript/progress.js",
    "content": "semantic.progress = {};\n\n// ready event\nsemantic.progress.ready = function() {\n\n  var\n    $progress         = $('.definition  .ui.progress').not('.success, .error, .warning, .indicating'),\n    $indicating       = $('.definition .ui.indicating.progress'),\n    $buttons          = $('.example .increment.button, .example .decrement.button'),\n    $stateProgress    = $('.definition .ui.success.progress, .ui.warning.progress, .ui.error.progress')\n  ;\n\n  setTimeout(function() {\n\n    $buttons\n      .on('click', function() {\n        var\n          $progress = $(this).closest('.example').find('.ui.progress')\n        ;\n        if( $(this).hasClass('increment') ) {\n          $progress.progress('increment');\n        }\n        else {\n          $progress.progress('decrement');\n        }\n      })\n    ;\n\n    $indicating\n      .progress({\n        label   : false,\n        total   : 10,\n        value   : Math.floor(Math.random() * 5) + 1,\n        text    : {\n          active  : '{percent}% Funded',\n          success : 'Project Funded!'\n        }\n      })\n    ;\n\n    $progress\n      .each(function() {\n        $(this)\n          .progress({\n            showActivity : false,\n            random       : {\n              min : 5,\n              max : 15\n            },\n            percent      : Math.floor(Math.random() * 60) + 5\n          })\n        ;\n      })\n    ;\n\n    $stateProgress\n      .progress('set progress', 100)\n    ;\n\n  }, 300);\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.progress.ready)\n;"
  },
  {
    "path": "server/files/javascript/rating.js",
    "content": "semantic.rating = {};\n\n// ready event\nsemantic.rating.ready = function() {\n  $('.ui.rating')\n    .each(function() {\n      if( $(this).closest('.code').length === 0) {\n        $(this)\n          .rating({\n            initialRating: 3\n          })\n        ;\n      }\n    })\n  ;\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.rating.ready)\n;\n"
  },
  {
    "path": "server/files/javascript/search.js",
    "content": "semantic.search = {};\n\n// ready event\nsemantic.search.ready = function() {\n\n  // selector cache\n  var\n    $local         = $('.local .ui.search'),\n    $localCategory = $('.local-category .ui.search'),\n    $external      = $('.external.example .ui.search'),\n    $mapping       = $('.mapping .ui.search'),\n    $standard      = $('.standard .ui.search'),\n    $category      = $('.category .ui.search'),\n\n    content,\n    categoryContent,\n    // alias\n    handler\n  ;\n\n  content = [\n    { title: 'Andorra' },\n    { title: 'United Arab Emirates' },\n    { title: 'Afghanistan' },\n    { title: 'Antigua' },\n    { title: 'Anguilla' },\n    { title: 'Albania' },\n    { title: 'Armenia' },\n    { title: 'Netherlands Antilles' },\n    { title: 'Angola' },\n    { title: 'Argentina' },\n    { title: 'American Samoa' },\n    { title: 'Austria' },\n    { title: 'Australia' },\n    { title: 'Aruba' },\n    { title: 'Aland Islands' },\n    { title: 'Azerbaijan' },\n    { title: 'Bosnia' },\n    { title: 'Barbados' },\n    { title: 'Bangladesh' },\n    { title: 'Belgium' },\n    { title: 'Burkina Faso' },\n    { title: 'Bulgaria' },\n    { title: 'Bahrain' },\n    { title: 'Burundi' },\n    { title: 'Benin' },\n    { title: 'Bermuda' },\n    { title: 'Brunei' },\n    { title: 'Bolivia' },\n    { title: 'Brazil' },\n    { title: 'Bahamas' },\n    { title: 'Bhutan' },\n    { title: 'Bouvet Island' },\n    { title: 'Botswana' },\n    { title: 'Belarus' },\n    { title: 'Belize' },\n    { title: 'Canada' },\n    { title: 'Cocos Islands' },\n    { title: 'Congo' },\n    { title: 'Central African Republic' },\n    { title: 'Congo Brazzaville' },\n    { title: 'Switzerland' },\n    { title: 'Cote Divoire' },\n    { title: 'Cook Islands' },\n    { title: 'Chile' },\n    { title: 'Cameroon' },\n    { title: 'China' },\n    { title: 'Colombia' },\n    { title: 'Costa Rica' },\n    { title: 'Serbia' },\n    { title: 'Cuba' },\n    { title: 'Cape Verde' },\n    { title: 'Christmas Island' },\n    { title: 'Cyprus' },\n    { title: 'Czech Republic' },\n    { title: 'Germany' },\n    { title: 'Djibouti' },\n    { title: 'Denmark' },\n    { title: 'Dominica' },\n    { title: 'Dominican Republic' },\n    { title: 'Algeria' },\n    { title: 'Ecuador' },\n    { title: 'Estonia' },\n    { title: 'Egypt' },\n    { title: 'Western Sahara' },\n    { title: 'Eritrea' },\n    { title: 'Spain' },\n    { title: 'Ethiopia' },\n    { title: 'European Union' },\n    { title: 'Finland' },\n    { title: 'Fiji' },\n    { title: 'Falkland Islands' },\n    { title: 'Micronesia' },\n    { title: 'Faroe Islands' },\n    { title: 'France' },\n    { title: 'Gabon' },\n    { title: 'England' },\n    { title: 'Grenada' },\n    { title: 'Georgia' },\n    { title: 'French Guiana' },\n    { title: 'Ghana' },\n    { title: 'Gibraltar' },\n    { title: 'Greenland' },\n    { title: 'Gambia' },\n    { title: 'Guinea' },\n    { title: 'Guadeloupe' },\n    { title: 'Equatorial Guinea' },\n    { title: 'Greece' },\n    { title: 'Sandwich Islands' },\n    { title: 'Guatemala' },\n    { title: 'Guam' },\n    { title: 'Guinea-Bissau' },\n    { title: 'Guyana' },\n    { title: 'Hong Kong' },\n    { title: 'Heard Island' },\n    { title: 'Honduras' },\n    { title: 'Croatia' },\n    { title: 'Haiti' },\n    { title: 'Hungary' },\n    { title: 'Indonesia' },\n    { title: 'Ireland' },\n    { title: 'Israel' },\n    { title: 'India' },\n    { title: 'Indian Ocean Territory' },\n    { title: 'Iraq' },\n    { title: 'Iran' },\n    { title: 'Iceland' },\n    { title: 'Italy' },\n    { title: 'Jamaica' },\n    { title: 'Jordan' },\n    { title: 'Japan' },\n    { title: 'Kenya' },\n    { title: 'Kyrgyzstan' },\n    { title: 'Cambodia' },\n    { title: 'Kiribati' },\n    { title: 'Comoros' },\n    { title: 'Saint Kitts and Nevis' },\n    { title: 'North Korea' },\n    { title: 'South Korea' },\n    { title: 'Kuwait' },\n    { title: 'Cayman Islands' },\n    { title: 'Kazakhstan' },\n    { title: 'Laos' },\n    { title: 'Lebanon' },\n    { title: 'Saint Lucia' },\n    { title: 'Liechtenstein' },\n    { title: 'Sri Lanka' },\n    { title: 'Liberia' },\n    { title: 'Lesotho' },\n    { title: 'Lithuania' },\n    { title: 'Luxembourg' },\n    { title: 'Latvia' },\n    { title: 'Libya' },\n    { title: 'Morocco' },\n    { title: 'Monaco' },\n    { title: 'Moldova' },\n    { title: 'Montenegro' },\n    { title: 'Madagascar' },\n    { title: 'Marshall Islands' },\n    { title: 'MacEdonia' },\n    { title: 'Mali' },\n    { title: 'Burma' },\n    { title: 'Mongolia' },\n    { title: 'MacAu' },\n    { title: 'Northern Mariana Islands' },\n    { title: 'Martinique' },\n    { title: 'Mauritania' },\n    { title: 'Montserrat' },\n    { title: 'Malta' },\n    { title: 'Mauritius' },\n    { title: 'Maldives' },\n    { title: 'Malawi' },\n    { title: 'Mexico' },\n    { title: 'Malaysia' },\n    { title: 'Mozambique' },\n    { title: 'Namibia' },\n    { title: 'New Caledonia' },\n    { title: 'Niger' },\n    { title: 'Norfolk Island' },\n    { title: 'Nigeria' },\n    { title: 'Nicaragua' },\n    { title: 'Netherlands' },\n    { title: 'Norway' },\n    { title: 'Nepal' },\n    { title: 'Nauru' },\n    { title: 'Niue' },\n    { title: 'New Zealand' },\n    { title: 'Oman' },\n    { title: 'Panama' },\n    { title: 'Peru' },\n    { title: 'French Polynesia' },\n    { title: 'New Guinea' },\n    { title: 'Philippines' },\n    { title: 'Pakistan' },\n    { title: 'Poland' },\n    { title: 'Saint Pierre' },\n    { title: 'Pitcairn Islands' },\n    { title: 'Puerto Rico' },\n    { title: 'Palestine' },\n    { title: 'Portugal' },\n    { title: 'Palau' },\n    { title: 'Paraguay' },\n    { title: 'Qatar' },\n    { title: 'Reunion' },\n    { title: 'Romania' },\n    { title: 'Serbia' },\n    { title: 'Russia' },\n    { title: 'Rwanda' },\n    { title: 'Saudi Arabia' },\n    { title: 'Solomon Islands' },\n    { title: 'Seychelles' },\n    { title: 'Sudan' },\n    { title: 'Sweden' },\n    { title: 'Singapore' },\n    { title: 'Saint Helena' },\n    { title: 'Slovenia' },\n    { title: 'Svalbard, I Flag Jan Mayen' },\n    { title: 'Slovakia' },\n    { title: 'Sierra Leone' },\n    { title: 'San Marino' },\n    { title: 'Senegal' },\n    { title: 'Somalia' },\n    { title: 'Suriname' },\n    { title: 'Sao Tome' },\n    { title: 'El Salvador' },\n    { title: 'Syria' },\n    { title: 'Swaziland' },\n    { title: 'Caicos Islands' },\n    { title: 'Chad' },\n    { title: 'French Territories' },\n    { title: 'Togo' },\n    { title: 'Thailand' },\n    { title: 'Tajikistan' },\n    { title: 'Tokelau' },\n    { title: 'Timorleste' },\n    { title: 'Turkmenistan' },\n    { title: 'Tunisia' },\n    { title: 'Tonga' },\n    { title: 'Turkey' },\n    { title: 'Trinidad' },\n    { title: 'Tuvalu' },\n    { title: 'Taiwan' },\n    { title: 'Tanzania' },\n    { title: 'Ukraine' },\n    { title: 'Uganda' },\n    { title: 'Us Minor Islands' },\n    { title: 'United States' },\n    { title: 'Uruguay' },\n    { title: 'Uzbekistan' },\n    { title: 'Vatican City' },\n    { title: 'Saint Vincent' },\n    { title: 'Venezuela' },\n    { title: 'British Virgin Islands' },\n    { title: 'Us Virgin Islands' },\n    { title: 'Vietnam' },\n    { title: 'Vanuatu' },\n    { title: 'Wallis and Futuna' },\n    { title: 'Samoa' },\n    { title: 'Yemen' },\n    { title: 'Mayotte' },\n    { title: 'South Africa' },\n    { title: 'Zambia' },\n    { title: 'Zimbabwe' }\n  ];\n\n\n  categoryContent = [\n    { category: 'South America', title: 'Brazil' },\n    { category: 'South America', title: 'Peru' },\n    { category: 'North America', title: 'Canada' },\n    { category: 'Asia', title: 'South Korea' },\n    { category: 'Asia', title: 'Japan' },\n    { category: 'Asia', title: 'China' },\n    { category: 'Europe', title: 'Denmark' },\n    { category: 'Europe', title: 'England' },\n    { category: 'Europe', title: 'France' },\n    { category: 'Europe', title: 'Germany' },\n    { category: 'Africa', title: 'Ethiopia' },\n    { category: 'Africa', title: 'Nigeria' },\n    { category: 'Africa', title: 'Zimbabwe' },\n  ];\n\n  $local\n    .search({\n      searchFields: ['title'],\n      source: content\n    })\n  ;\n\n  $localCategory\n    .search({\n      type: 'category',\n      searchFields: ['title'],\n      source: categoryContent\n    })\n  ;\n\n  $standard\n    .search()\n  ;\n\n  $category\n    .search({\n      type: 'category',\n      apiSettings: {\n        action: 'categorySearch'\n      }\n    })\n  ;\n\n  // mapping example\n  $mapping\n    .search({\n      apiSettings: {\n        url: '//api.github.com/search/repositories?q={query}',\n        cache: true\n      },\n      fields: {\n        results : 'items',\n        title   : 'name',\n        url     : 'html_url'\n      },\n      minCharacters : 3\n    })\n  ;\n\n  // api mod\n  $external\n    .search({\n      type          : 'category',\n      minCharacters : 3,\n      apiSettings   : {\n        onFailure: function() {\n          $(this).search('display message', '<b>Hold off a few minutes</b> <div class=\"ui divider\"></div> GitHub rate limit exceeded for anonymous search.');\n        },\n        onResponse: function(githubResponse) {\n          var\n            response = {\n              results : {}\n            }\n          ;\n          if(githubResponse.items.length === 0) {\n            // no results\n            return response;\n          }\n          $.each(githubResponse.items, function(index, item) {\n            var\n              language  = item.language || 'Unknown',\n              maxLength = 200,\n              description\n            ;\n            if(index >= 8) {\n              // only show 8 results\n              return false;\n            }\n            // Create new language category\n            if(response.results[language] === undefined) {\n              response.results[language] = {\n                name    : language,\n                results : []\n              };\n            }\n            description = (item.description < maxLength)\n                ? item.description\n                : item.description.substr(0, maxLength) + '...'\n            ;\n            description = $.fn.search.settings.templates.escape(description);\n            // Add result to category\n            response.results[language].results.push({\n              title       : item.name,\n              description : description,\n              url         : item.html_url\n            });\n          });\n          return response;\n        },\n        url: '//api.github.com/search/repositories?q={query}'\n      }\n    })\n  ;\n\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.search.ready)\n;\n"
  },
  {
    "path": "server/files/javascript/shape.js",
    "content": "semantic.shape = {};\n\n// ready event\nsemantic.shape.ready = function() {\n\n  // selector cache\n  var\n    $demo            = $('.demo'),\n    $dogDemo         = $('.dog.shape'),\n    $directionButton = $('.direction .button'),\n    $shapeButton     = $('.type.buttons .button'),\n    // alias\n    handler\n  ;\n\n  // event handlers\n  handler = {\n    rotate: function() {\n      var\n        $shape    = $(this).closest('.example').find('.ui.shape'),\n        direction = $(this).data('direction') || false,\n        animation = $(this).data('animation') || false\n      ;\n      if(direction && animation) {\n        $shape\n          .shape(animation + '.' + direction)\n        ;\n      }\n    },\n\n    removeShape: function(){\n      var\n        shape = $(this).data('shape') || false\n      ;\n      if(shape) {\n        $demo\n          .removeClass(shape)\n        ;\n      }\n    },\n\n    changeShape: function() {\n      var\n        $shape       = $(this),\n        $otherShapes = $shape.siblings(),\n        shape        = $shape.data('shape')\n      ;\n      $shape\n        .addClass('active')\n      ;\n      $otherShapes\n        .removeClass('active')\n        .each(handler.removeShape)\n      ;\n      $demo\n        .removeAttr('style')\n        .addClass(shape)\n      ;\n    }\n  };\n\n  // attach events\n  $demo\n    .shape()\n  ;\n  $directionButton\n    .on('click', handler.rotate)\n    .popup({\n      delay     : 0,\n      position  : 'bottom center'\n    })\n  ;\n  $shapeButton\n    .on('click', handler.changeShape)\n  ;\n\n  $dogDemo\n    .shape()\n  ;\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.shape.ready)\n;"
  },
  {
    "path": "server/files/javascript/sidebar.js",
    "content": "semantic.sidebar = {};\n\n// ready event\nsemantic.sidebar.ready = function() {\n\n  // selector cache\n  var\n    // alias\n    handler\n  ;\n\n  $('.ui.sidebar .ui.dropdown')\n    .dropdown({\n      on: 'hover'\n    })\n  ;\n\n  $('.help.icon')\n    .popup()\n  ;\n\n  $('.demo.sidebar')\n    .sidebar()\n  ;\n\n  $('.main.container .checkbox')\n    .checkbox()\n  ;\n\n  $('.left.example')\n    .find('.button')\n      .on('click', function() {\n        var\n          transition = $(this).data('transition')\n        ;\n        $('.left.demo.sidebar')\n          .not('.styled')\n          .sidebar('setting', {\n            transition       : transition,\n            mobileTransition : transition\n          })\n        ;\n        $('.left.demo.sidebar').not('.styled').sidebar('toggle');\n      })\n  ;\n\n  $('.direction.example')\n    .find('.buttons .button')\n      .on('click', function() {\n        var\n          direction = $(this).data('direction')\n        ;\n        $(this).addClass('active').siblings().removeClass('active');\n        if(direction === 'top' || direction === 'bottom') {\n          $('.horizontal.button').addClass('disabled');\n        }\n        else {\n          $('.horizontal.button').removeClass('disabled');\n        }\n      })\n      .end()\n      .children('.button')\n      .on('click', function() {\n        var\n          transition = $(this).data('transition'),\n          direction  = $('.direction.example .buttons .button.active').data('direction'),\n          dimPage    = $('.direction.example .dim').checkbox('is checked')\n        ;\n        if( $(this).filter('.disabled').length === 0) {\n          $('.' + direction + '.demo.sidebar')\n            .not('.styled')\n            .sidebar('setting', {\n              dimPage          : dimPage,\n              transition       : transition,\n              mobileTransition : transition\n            })\n          ;\n          $('.' + direction + '.demo.sidebar').not('.styled').sidebar('toggle');\n        }\n\n      })\n  ;\n\n\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.sidebar.ready)\n;\n"
  },
  {
    "path": "server/files/javascript/slider.js",
    "content": "semantic.dropdown = {};\n\n// ready event\nsemantic.dropdown.ready = function() {\n\n  // selector cache\n  var\n    $slider       = $('.example').find('.ui.slider'),\n    // alias\n    handler\n  ;\n\n  // event handlers\n  handler = {\n\n  };\n\n  $slider\n    .slider()\n  ;\n\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.dropdown.ready)\n;"
  },
  {
    "path": "server/files/javascript/started.js",
    "content": "semantic.started = {};\n\n// ready event\nsemantic.started.ready = function() {\n\n  // selector cache\n  var handler = {\n\n  };\n\n  $('.main .secondary.menu .item')\n    .tab({\n      context: 'parent',\n      onFirstLoad: function() {\n        semantic.handler.makeCode();\n      }\n    })\n  ;\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.started.ready)\n;"
  },
  {
    "path": "server/files/javascript/sticky.js",
    "content": "semantic.sticky = {};\n\n// ready event\nsemantic.sticky.ready = function() {\n\n  // selector cache\n  var\n    // alias\n    handler\n  ;\n\n  // event handlers\n  handler = {\n\n  };\n\n\n  $('.main.container .pushing.example')\n    .each(function() {\n      var\n        $sticky      = $(this).find('.ui.sticky').not('.segment > .sticky'),\n        $context     = $(this).find('.segment')\n      ;\n      $sticky\n        .sticky({\n          context: $context,\n          offset: 15,\n          pushing: true\n        })\n      ;\n    })\n  ;\n\n  $('.main.container .inline.example')\n    .each(function() {\n      var\n        $inlineSticky = $(this).find('.segment .ui.sticky'),\n        $context      = $(this).find('.segment')\n      ;\n      if($inlineSticky.length > 0) {\n        $inlineSticky\n          .sticky({\n            context: $context,\n            offset: 15\n          })\n        ;\n      }\n    })\n  ;\n\n  $('.main.container .sticky.example')\n    .each(function() {\n      var\n        $sticky      = $(this).find('.ui.sticky').not('.segment > .sticky'),\n        $context     = $(this).find('.segment')\n      ;\n      $sticky\n        .sticky({\n          context: $context,\n          offset: 15\n        })\n      ;\n    })\n  ;\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.sticky.ready)\n;\n\n$(window).load(function() {\n  $('.main.container .sticky.example .sticky').sticky('refresh');\n  $('.main.container .pushing.example .sticky').sticky('refresh');\n});\n"
  },
  {
    "path": "server/files/javascript/tab.js",
    "content": "semantic.dropdown = {};\n\n// ready event\nsemantic.dropdown.ready = function() {\n\n\n  $.fn.api.settings.mockResponse = function(settings) {\n    var response = {\n      first  : '<h3 class=\"ui header\">AJAX Tab One</h3><img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\"><img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">',\n      second : '<h3 class=\"ui header\">AJAX Tab Two</h3><img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\"><img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">',\n      third  : '<h3 class=\"ui header\">AJAX Tab Three</h3><img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\"><img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">'\n    };\n    return response[settings.urlData.tab];\n  };\n\n  $('.first.example .menu .item')\n    .tab({\n      context: '.first.example'\n    })\n  ;\n\n  $('.history.example .menu .item')\n    .tab({\n      context : '.history.example',\n      history : true,\n      path    : '/modules/tab.html'\n    })\n  ;\n\n  $('.paths.example .menu .item')\n    .tab({\n      context: '.paths.example'\n    })\n  ;\n\n  $('.context.example #context1 .menu .item')\n    .tab({\n      context: $('.context.example #context1')\n    })\n  ;\n  $('.context.example #context2 .menu .item')\n    .tab({\n      // special keyword works same as above\n      context: 'parent'\n    })\n  ;\n\n  $('.dynamic.example .menu .item')\n    .tab({\n      apiSettings: {\n        loadingDuration: 300\n      },\n      cache   : false,\n      context : 'parent',\n      auto    : true,\n      history : false,\n      path    : '/'\n    })\n  ;\n\n  $('.eval.example .menu .item')\n    .tab({\n      // faking api request\n      apiSettings: {\n        mockResponse    : function(settings) {\n          var response = {\n            first  : '<script>alert(\"JS Fired Once\");</script>AJAX Tab One',\n            second : '<script>alert(\"JS Fired Once\");</script>AJAX Tab Two',\n            third  : '<script>alert(\"JS Fired Once\");</script>AJAX Tab Three'\n          };\n          return response[settings.urlData.tab];\n        }\n      },\n      context : 'parent',\n      auto    : true,\n      path    : '/'\n    })\n  ;\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.dropdown.ready)\n;\n"
  },
  {
    "path": "server/files/javascript/table.js",
    "content": "semantic.table = {};\n\n// ready event\nsemantic.table.ready = function() {\n\n  // selector cache\n  var\n    // alias\n    handler\n  ;\n\n  $('.ui.checkbox').checkbox({\n    onChecked: function() {\n      $(this).closest('.table').find('.button').removeClass('disabled');\n    }\n  });\n\n  $('.ui.rating')\n    .rating({\n      interactive: false\n    })\n  ;\n\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.table.ready)\n;"
  },
  {
    "path": "server/files/javascript/theming.js",
    "content": "semantic.theming = {};\n\n// ready event\nsemantic.theming.ready = function() {\n\n  var\n    $defaultTheme = $('.variable.grid .code')\n  ;\n\n  // selector cache\n  var handler = {\n\n  };\n\n  $('.main .ui.checkbox')\n    .checkbox()\n  ;\n\n  $('.load.button')\n    .dropdown({\n      fireOnInit: true,\n      onChange: function(theme) {\n        $(this)\n          .api({\n            on        : 'now',\n            dataType  : 'text',\n            action    : 'getVariables',\n            urlData   : {\n              theme: theme\n            },\n            onSuccess : function(response) {\n              if(theme == 'default') {\n                $defaultTheme\n                  .html(response)\n                ;\n                $.proxy(semantic.handler.createCode, $defaultTheme);\n              }\n            }\n          })\n        ;\n      }\n    })\n  ;\n\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.theming.ready)\n;"
  },
  {
    "path": "server/files/javascript/transition.js",
    "content": "semantic.transition = {};\n\n// ready event\nsemantic.transition.ready = function() {\n\n  // selector cache\n  var\n    $tab = $('.main.container .secondary.menu .item'),\n    handler\n  ;\n\n  // event handlers\n  handler = {\n\n  };\n\n\n  $tab\n    .tab({\n      context: 'parent'\n    })\n  ;\n\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.transition.ready)\n;"
  },
  {
    "path": "server/files/javascript/validate-form.js",
    "content": "semantic.validateForm = {};\n\n// ready event\nsemantic.validateForm.ready = function() {\n\n  // selector cache\n  var\n    $dogForm      = $('.dog.example .ui.form'),\n    $matchingForm = $('.matching.example .ui.form'),\n    $autoForm     = $('.auto.example .ui.form'),\n    $colorForm    = $('.color.example .ui.form'),\n    $promptForm   = $('.prompt.example .ui.form'),\n    $ruleForm     = $('.custom.rule.example .ui.form'),\n    $dropdownForm = $('.dropdown.example .ui.form'),\n    $optionalForm = $('.optional.example .ui.form'),\n    $dependsForm  = $('.depends.example .ui.form'),\n    $inlineForm   = $('.inline.example .ui.form'),\n    $addForm      = $('.add.example .ui.form'),\n    $form         = $('.ui.form').not($dogForm).not($inlineForm).not($dropdownForm).not($optionalForm).not($promptForm),\n    $checkbox     = $('.main.container .ui.checkbox'),\n    $dropdown     = $('.main.container .ui.dropdown'),\n    // alias\n    handler\n  ;\n\n  // event handlers\n  handler = {\n\n  };\n  $checkbox\n    .checkbox()\n  ;\n  $dropdown\n    .dropdown()\n  ;\n\n  $.fn.form.settings.onSuccess = function() {\n    // alert('Valid form!');\n    return false;\n  };\n\n\n\n  $.fn.form.settings.defaults = {\n    firstName: {\n      identifier  : 'first-name',\n      rules: [\n        {\n          type   : 'empty',\n          prompt : 'Please enter your first name'\n        }\n      ]\n    },\n    skills: {\n      identifier  : 'skills',\n      rules: [\n        {\n          type   : 'minCount[2]',\n          prompt : 'Please select at least two skills'\n        }\n      ]\n    },\n    name: {\n      identifier  : 'name',\n      rules: [\n        {\n          type   : 'empty',\n          prompt : 'Please enter your name'\n        }\n      ]\n    },\n    gender: {\n      identifier  : 'gender',\n      rules: [\n        {\n          type   : 'empty',\n          prompt : 'Please select a gender'\n        }\n      ]\n    },\n    lastName: {\n      identifier  : 'last-name',\n      rules: [\n        {\n          type   : 'empty',\n          prompt : 'Please enter your last name'\n        }\n      ]\n    },\n    username: {\n      identifier : 'username',\n      rules: [\n        {\n          type   : 'empty',\n          prompt : 'Please enter a username'\n        },\n        {\n          type   : 'length[5]',\n          prompt : 'Your username must be at least 5 characters'\n        }\n      ]\n    },\n    email: {\n      identifier : 'email',\n      rules: [\n        {\n          type   : 'email',\n          prompt : 'Please enter a valid e-mail'\n        }\n      ]\n    },\n    password: {\n      identifier : 'password',\n      rules: [\n        {\n          type   : 'empty',\n          prompt : 'Please enter a password'\n        },\n        {\n          type   : 'length[6]',\n          prompt : 'Your password must be at least 6 characters'\n        }\n      ]\n    },\n    passwordConfirm: {\n      identifier : 'password-confirm',\n      rules: [\n        {\n          type   : 'empty',\n          prompt : 'Please confirm your password'\n        },\n        {\n          identifier : 'password-confirm',\n          type       : 'match[password]',\n          prompt     : 'Please verify password matches'\n        }\n      ]\n    },\n    terms: {\n      identifier : 'terms',\n      rules: [\n        {\n          type   : 'checked',\n          prompt : 'You must agree to the terms and conditions'\n        }\n      ]\n    }\n  };\n\n  $form\n    .form()\n  ;\n\n  $matchingForm\n    .form({\n      fields: {\n        name: {\n          identifier : 'special-name',\n          rules: [\n            {\n              type   : 'empty'\n            }\n          ]\n        }\n      }\n    })\n  ;\n\n  $inlineForm\n    .form({\n      inline : true,\n      on: 'blur'\n    })\n  ;\n\n  $dropdownForm\n    .form({\n      fields: {\n        gender: {\n          identifier  : 'gender',\n          rules: [\n            {\n              type   : 'empty',\n              prompt : 'Please enter a gender'\n            }\n          ]\n        },\n        name: {\n          identifier  : 'name',\n          rules: [\n            {\n              type   : 'empty',\n              prompt : 'Please enter your name'\n            }\n          ]\n        }\n      }\n    })\n    .find('.dropdown')\n      .dropdown()\n  ;\n\n/*  $autoForm\n    .form({\n      fields: {\n        name     : 'empty',\n        gender   : 'empty',\n        username : 'empty',\n        password : ['minLength[6]', 'empty'],\n        skills   : ['minCount[2]', 'empty'],\n        terms    : 'checked'\n      }\n    })\n  ;\n*/\n\n  $colorForm.form({\n    fields: {\n      color: {\n        identifier: 'color',\n        rules: [{\n          type: 'regExp',\n          value: /rgb\\((\\d{1,3}), (\\d{1,3}), (\\d{1,3})\\)/i,\n        }]\n      }\n    }\n  });\n\n\n  $promptForm\n    .form({\n      fields: {\n        field1: {\n          rules: [\n            {\n              type   : 'empty'\n            }\n          ]\n        },\n        field2: {\n          rules: [\n            {\n              type   : 'isExactly[dog]',\n              prompt : '{name} is set to \"{value}\" that is totally wrong. It should be {ruleValue}'\n            }\n          ]\n        },\n        field3: {\n          rules: [\n            {\n              type   : 'isExactly[cat]',\n              prompt : function(value) {\n                if(value == 'dog') {\n                  return 'I told you to put cat, not dog!';\n                }\n                return 'That is not cat';\n              }\n            }\n          ]\n        },\n      }\n    })\n  ;\n\n  $dependsForm\n    .form({\n      fields: {\n        yearsPracticed: {\n          identifier : 'yearsPracticed',\n          depends    : 'isDoctor',\n          rules      : [\n            {\n              type   : 'empty',\n              prompt : 'Please enter the number of years you have been a doctor'\n            }\n          ]\n        }\n      }\n    })\n  ;\n\n  $optionalForm\n    .form({\n      fields: {\n        email: {\n          identifier : 'email',\n          rules: [\n            {\n              type   : 'email',\n              prompt : 'Please enter a valid e-mail'\n            }\n          ]\n        },\n        ccEmail: {\n          identifier : 'cc-email',\n          optional   : true,\n          rules: [\n            {\n              type   : 'email',\n              prompt : 'Please enter a valid second e-mail'\n            }\n          ]\n        }\n      }\n    })\n  ;\n\n  // no need to actually do this\n  $.fn.form.settings.rules.adminLevel = function(value, adminLevel) {\n    window.user && window.user.adminLevel >= adminLevel;\n  };\n  $ruleForm\n    .form({\n      fields: {\n        dog: {\n          identifier: 'dog',\n          rules: [\n            {\n              type: 'adminLevel[2]',\n              prompt: 'You must be at least a level-2 admin to add a dog'\n            }\n          ]\n        }\n      }\n    })\n  ;\n\n  $dogForm\n    .form({\n      fields: {\n        dog: {\n          rules: [\n            {\n              type: 'empty',\n              prompt: 'You must have a dog to add'\n            },\n            {\n              type: 'contains[fluffy]',\n              prompt: 'I only want you to add fluffy dogs!'\n            },\n            {\n              type: 'not[mean]',\n              prompt: 'Why would you add a mean dog to the list?'\n            }\n          ]\n        }\n      }\n    })\n  ;\n\n  $addForm\n    .form('remove fields', ['password', 'gender'])\n  ;\n};\n\n\n// attach ready event\n$(document)\n  .ready(semantic.validateForm.ready)\n;\n"
  },
  {
    "path": "server/files/javascript/visibility.js",
    "content": "semantic.visiblity = {};\n\n// ready event\nsemantic.visiblity.ready = function() {\n\n  // selector cache\n  var\n    $pageTabs           = $('.masthead.tab.segment .stackable.menu .item'),\n    $firstColumn        = $('.first.example .main.column'),\n    $firstSegment       = $('.first.example .demo.segment'),\n    $firstSticky        = $('.first.example .grid .sticky'),\n\n    $secondColumn       = $('.second.example .main.column'),\n    $secondSegment      = $('.second.example .demo.segment'),\n    $secondSticky       = $('.second.example .grid .sticky'),\n    $settingsCheckboxes = $('.second.example .checkbox'),\n    $log                = $('.second.example .console'),\n    $clearButton        = $('.second.example .clear.button'),\n\n    handler\n  ;\n\n  // event handlers\n  handler = {\n    clearConsole: function() {\n      $log.empty();\n    },\n    updateTable: function(calculations) {\n      $.each(calculations, function(name, value) {\n        var\n          value = (typeof value == 'integer')\n            ? parseInt(value, 10)\n            : value.toString(),\n          $td\n        ;\n        if(name == 'pixelsPassed' || name == 'width' || name == 'height') {\n          value = parseInt(value, 10) + 'px';\n        }\n        else if(name == 'percentagePassed') {\n          value = parseInt(value * 100, 10) + '%';\n        }\n        $td = $('.first.example .grid .sticky tr.'+ name +' td:last-child');\n        if($td.html() !== value) {\n          if(value == 'true' || value == 'false') {\n            $td.removeClass('highlight').addClass('highlight');\n            setTimeout(function(){ $td.removeClass('highlight'); }, 2000);\n          }\n          $td.html(value);\n        }\n      });\n    }\n  };\n\n  $pageTabs.tab('setting', 'onLoad', function() {\n    $('.ui.sticky')\n      .sticky('refresh')\n    ;\n    $(this).find('.visibility.example .overlay, .visibility.example .demo.segment, .visibility.example .items img')\n      .visibility('refresh')\n    ;\n  });\n\n  $firstSticky\n    .sticky({\n      observeChanges : false,\n      pushing        : true,\n      context        : $firstColumn,\n      offset         : 60\n    })\n  ;\n\n  $clearButton\n    .on('click', handler.clearConsole)\n  ;\n\n  $firstSegment\n    .visibility({\n      once           : false,\n      continuous     : true,\n      observeChanges : false,\n      onUpdate       : handler.updateTable\n    })\n  ;\n\n  $secondSegment\n    .visibility({\n      onOnScreen: function() {\n        $log.append('<div class=\"highlight\">onOnScreen fired</div>');\n        $log.scrollTop(999999);\n      },\n      onOffScreen: function() {\n        $log.append('<div class=\"highlight\">onOffScreen fired</div>');\n        $log.scrollTop(999999);\n      },\n      onTopVisible: function() {\n        $log.append('<div class=\"highlight\">onTopVisible fired</div>');\n        $log.scrollTop(999999);\n      },\n      onBottomVisible: function() {\n        $log.append('<div class=\"highlight\">onBottomVisible fired</div>');\n        $log.scrollTop(999999);\n      },\n      onPassing: function() {\n        $log.append('<div class=\"highlight\">onPassing fired</div>');\n        $log.scrollTop(999999);\n      },\n      onTopPassed: function() {\n        $log.append('<div class=\"highlight\">onTopPassed fired</div>');\n        $log.scrollTop(999999);\n      },\n      onBottomPassed: function() {\n        $log.append('<div class=\"highlight\">onBottomPassed fired</div>');\n        $log.scrollTop(999999);\n      },\n      onTopVisibleReverse: function() {\n        $log.append('<div class=\"highlight\">onTopVisibleReverse fired</div>');\n        $log.scrollTop(999999);\n      },\n      onBottomVisibleReverse: function() {\n        $log.append('<div class=\"highlight\">onBottomVisibleReverse fired</div>');\n        $log.scrollTop(999999);\n      },\n      onPassingReverse: function() {\n        $log.append('<div class=\"highlight\">onPassingReverse fired</div>');\n        $log.scrollTop(999999);\n      },\n      onTopPassedReverse: function() {\n        $log.append('<div class=\"highlight\">onTopPassedReverse fired</div>');\n        $log.scrollTop(999999);\n      },\n      onBottomPassedReverse: function() {\n        $log.append('<div class=\"highlight\">onBottomPassedReverse fired</div>');\n        $log.scrollTop(999999);\n      }\n    })\n  ;\n\n  $settingsCheckboxes\n    .checkbox({\n      onChecked: function() {\n        var setting = $(this).attr('name');\n        $secondSegment.visibility('setting', setting, true);\n      },\n      onUnchecked: function() {\n        var setting = $(this).attr('name');\n        $secondSegment.visibility('setting', setting, false);\n      }\n    })\n  ;\n\n  $secondSticky\n    .sticky({\n      observeChanges : false,\n      pushing        : true,\n      context        : $secondColumn,\n      offset         : 60\n    })\n  ;\n\n};\n\nvar count = 1;\nwindow.loadFakeContent = function() {\n  // load fake content\n  var\n    $segment = $('.infinite .demo.segment'),\n    $loader  = $segment.find('.inline.loader'),\n    $content = $('<h3 class=\"ui header\">Loaded Content #' + count + '</h3><img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\"><img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\"><img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">')\n  ;\n  if(count <= 5) {\n    $loader.addClass('active');\n    setTimeout(function() {\n      $loader\n        .removeClass('active')\n        .before($content)\n      ;\n      $('.ui.sticky')\n        .sticky('refresh')\n      ;\n      $('.visibility.example > .overlay, .visibility.example > .demo.segment, .visibility.example .items img')\n        .visibility('refresh')\n      ;\n    }, 1000);\n  }\n  count++;\n}\n\n// attach ready event\n$(document)\n  .ready(semantic.visiblity.ready)\n;"
  },
  {
    "path": "server/files/stylesheets/customize.css",
    "content": "/*******************************\n          Customizer\n*******************************/\n\n#example.custom .accordion .title + .content {\n  padding: 0em;\n}\n#example.custom .download.list {\n  margin: 0em;\n}\n#example.custom .header {\n  position: relative;\n}\n#example.custom .header .all {\n  position: absolute;\n  right: 1em;\n}\n#example.custom .download.list .checkbox + .content {\n  opacity: 0.6;\n  transition: opacity 0.3s ease;\n}\n#example.custom .download.list .checkbox + .content .header {\n  transition: color 0.3s ease;\n  font-weight: normal;\n}\n#example.custom .download.list .content .description {\n  color: rgba(0, 0, 0, 0.6);\n  font-size: 0.9em;\n}\n\n#example.custom .main.container > h2:first-child {\n  margin-top: 0em;\n}\n#example.custom .download.list .checkbox.checked + .content {\n  opacity: 1;\n}\n#example.custom .download.list .checkbox.checked + .content .header {\n  color: #000000;\n  font-weight: bold;\n}\n\n/* Element Lists */\n#example.custom .download.list .item > .checkbox {\n  display: block;\n  float: left;\n  margin-top: 0.75em;\n  margin-left: 0.5em;\n}\n#example.custom .download.list .item > .content {\n  margin-left: 3em;\n}\n#example.custom .download.list .item .icon.button {\n  opacity: 0;\n  margin: 0.3em 0.3em 0em 0em;\n  transition: opacity 0.5s ease;\n}\n#example.custom .download.list .item:hover .icon.button {\n  opacity: 1;\n}"
  },
  {
    "path": "server/files/stylesheets/docs.css",
    "content": "\n/*******************************\n             Global\n*******************************/\n\n/* Regular */\n@font-face {\n  font-family: 'Lato';\n  src:\n    url(/fonts/lato/Lato-Regular.woff2) format('woff2')\n  ;\n  font-style: normal;\n  font-weight: normal;\n}\n@font-face {\n  font-family: 'Lato';\n  src:\n    url(/fonts/lato/Lato-Italic.woff2) format('woff2')\n  ;\n  font-style: italic;\n  font-weight: normal;\n}\n\n/* Bold */\n@font-face {\n  font-family: 'Lato';\n  src:\n    url(/fonts/lato/Lato-Bold.woff2) format('woff2')\n  ;\n  font-style: normal;\n  font-weight: 700;\n}\n@font-face {\n  font-family: 'Lato';\n  src:\n    url(/fonts/lato/Lato-BoldItalic.woff2) format('woff2')\n  ;\n  font-style: italic;\n  font-weight: 700;\n}\n\n\n/*--------------\n     Page\n---------------*/\n\nul.list {\n  list-style-type: disc;\n}\nul.list li {\n  list-style-position: outside;\n}\n\np {\n  margin: 1em 0em;\n}\np:first-child {\n  margin-top: 0em;\n}\np:last-child {\n  margin-bottom: 0em;\n}\n\n\n/*----------------\n      Footer\n-----------------*/\n\n#example > .pusher > .footer {\n  margin: 0em;\n  border-radius: 0em;\n  padding: 4em 0em 4em 0em;\n}\n\n/*--------------\n     Code\n---------------*/\n\n/* Inline Code */\npre {\n  white-space: pre-wrap;\n  white-space: -moz-pre-wrap;\n  white-space: -pre-wrap;\n  white-space: -o-pre-wrap;\n  word-wrap: break-word;\n}\npre {\n  background-color: #FFFFFF;\n  text-align: left;\n}\n\n\n/*rtl:ignore*/\npre.console {\n  background-color: transparent;\n  line-height: 1.6;\n  font-family:  'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;\n  height: 300px;\n  overflow: auto;\n  direction:ltr;\n}\ncode {\n  background-color: rgba(0, 0, 0, 0.08);\n  border-radius: 3px;\n  display: inline-block;\n  font-family: \"Monaco\",\"Menlo\",\"Ubuntu Mono\",\"Consolas\",\"source-code-pro\",monospace;\n  font-size: 0.875em;\n  font-weight: bold;\n  padding: 1px 6px;\n  vertical-align: baseline;\n}\npre code {\n  border: none;\n  padding: 0px;\n  font-size: 1em;\n}\n\nblockquote {\n  border-left: 4px solid #777777;\n  font-size: 16px;\n  line-height: 1.5;\n  padding: 0em 2em;\n  margin: 1em 0em 2em;\n}\nblockquote p {\n  line-height: inherit;\n}\nblockquote .author {\n  display: block;\n  margin: 1em 0em 0em;\n  font-weight: bold;\n}\n\n/* Code Inside Message */\n.ui.message > p > code,\n.ui.message > code {\n  background-color: rgba(0, 0, 0, 0.06);\n  line-height: 1;\n  padding: 3px 4px;\n}\n\n\n/*--------------\n    Docs Icon\n---------------*/\n\n\n/* Replace Code Icon */\n@font-face {\n  font-family: 'Docs Code';\n  src:\n    url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMggi/LYAAAC8AAAAYGNtYXAaVcxXAAABHAAAAExnYXNwAAAAEAAAAWgAAAAIZ2x5Zl4DICgAAAFwAAAAeGhlYWQCOGXvAAAB6AAAADZoaGVhA6IB5gAAAiAAAAAkaG10eALAAAAAAAJEAAAAFGxvY2EAKABQAAACWAAAAAxtYXhwAAgAEAAAAmQAAAAgbmFtZVcZpu4AAAKEAAABRXBvc3QAAwAAAAADzAAAACAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADmAAHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIOYA//3//wAAAAAAIOYA//3//wAB/+MaBAADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAgAAAEABwAGAAAYADQAAAQcXBxc3JyMHFzcnNycBMDBwcDCQkKCQkDBwcDABgDBwcDCgoKCgMHBwMAAAAQAAAAEAAH1wL6hfDzz1AAsCAAAAAADQrRK5AAAAANCtErkAAAAAAcABgAAAAAgAAgAAAAAAAAABAAAB4P/gAAACAAAAAAABwAABAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAEAAAABwAAAAAAAAAAKABQAHgA8AAEAAAAFAA4AAgAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAOAAAAAQAAAAAAAgAOAEcAAQAAAAAAAwAOACQAAQAAAAAABAAOAFUAAQAAAAAABQAWAA4AAQAAAAAABgAHADIAAQAAAAAACgA0AGMAAwABBAkAAQAOAAAAAwABBAkAAgAOAEcAAwABBAkAAwAOACQAAwABBAkABAAOAFUAAwABBAkABQAWAA4AAwABBAkABgAOADkAAwABBAkACgA0AGMAaQBjAG8AbQBvAG8AbgBWAGUAcgBzAGkAbwBuACAAMQAuADAAaQBjAG8AbQBvAG8Abmljb21vb24AaQBjAG8AbQBvAG8AbgBSAGUAZwB1AGwAYQByAGkAYwBvAG0AbwBvAG4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=) format('truetype'),\n    url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAAQ4AAsAAAAAA+wAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABCAAAAGAAAABgCCL8tmNtYXAAAAFoAAAATAAAAEwaVcxXZ2FzcAAAAbQAAAAIAAAACAAAABBnbHlmAAABvAAAAHgAAAB4XgMgKGhlYWQAAAI0AAAANgAAADYCOGXvaGhlYQAAAmwAAAAkAAAAJAOiAeZobXR4AAACkAAAABQAAAAUAsAAAGxvY2EAAAKkAAAADAAAAAwAKABQbWF4cAAAArAAAAAgAAAAIAAIABBuYW1lAAAC0AAAAUUAAAFFVxmm7nBvc3QAAAQYAAAAIAAAACAAAwAAAAMCAAGQAAUAAAFMAWYAAABHAUwBZgAAAPUAGQCEAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA5gAB4P/g/+AB4AAgAAAAAQAAAAAAAAAAAAAAIAAAAAAAAgAAAAMAAAAUAAMAAQAAABQABAA4AAAACgAIAAIAAgABACDmAP/9//8AAAAAACDmAP/9//8AAf/jGgQAAwABAAAAAAAAAAAAAAABAAH//wAPAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAIAAABAAcABgAAGAA0AAAEHFwcXNycjBxc3JzcnATAwcHAwkJCgkJAwcHAwAYAwcHAwoKCgoDBwcDAAAAEAAAABAAB9cC+oXw889QALAgAAAAAA0K0SuQAAAADQrRK5AAAAAAHAAYAAAAAIAAIAAAAAAAAAAQAAAeD/4AAAAgAAAAAAAcAAAQAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAABAAAAAcAAAAAAAAAACgAUAB4APAABAAAABQAOAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADgAAAAEAAAAAAAIADgBHAAEAAAAAAAMADgAkAAEAAAAAAAQADgBVAAEAAAAAAAUAFgAOAAEAAAAAAAYABwAyAAEAAAAAAAoANABjAAMAAQQJAAEADgAAAAMAAQQJAAIADgBHAAMAAQQJAAMADgAkAAMAAQQJAAQADgBVAAMAAQQJAAUAFgAOAAMAAQQJAAYADgA5AAMAAQQJAAoANABjAGkAYwBvAG0AbwBvAG4AVgBlAHIAcwBpAG8AbgAgADEALgAwAGkAYwBvAG0AbwBvAG5pY29tb29uAGkAYwBvAG0AbwBvAG4AUgBlAGcAdQBsAGEAcgBpAGMAbwBtAG8AbwBuAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('woff');\n  font-weight: normal;\n  font-style: normal;\n}\n\n#example .example i.code.icon:before {\n  font-family: 'Docs Code';\n  content: \"\\e600\";\n  vertical-align: top;\n}\n\n\n/*--------------\n     Sidebar\n---------------*/\n\n\n#example .ui.sidebar.menu .item {\n  will-change: transform;\n}\n\n#example .sidebar.menu .logo.image,\n#example .ui.menu .logo.image {\n  width: 35px;\n  margin-right: 1em;\n}\n\n#example #toc > * {\n  will-change: transform;\n}\n#example #toc > :last-child {\n  padding-bottom: 2em;\n}\n\n\n#example #toc > .ui.menu {\n  max-height: 100%;\n  overflow: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n/* Incomplete Label */\n#example #toc .item .circular.label {\n  position: absolute;\n  top: 0.75rem;\n  right: 1em;\n  opacity: 0.2;\n  transition: background 0.3s ease;\n}\n#example #toc .item.active > .circular.label,\n#example #toc .item:hover > .circular.label {\n  opacity: 0.8;\n}\n\n/* Hidden Items */\n#example #toc .hide.item {\n  display: none;\n}\n\n/* Sidebar Header */\n#example #toc .inverted.header {\n  font-size: 1em;\n  font-weight: normal;\n  color: rgba(255, 255, 255, 0.8);\n  margin-bottom: 0.5em;\n}\n#example #toc a.inverted.header.active,\n#example #toc a.inverted.header:hover {\n  color: rgba(255, 255, 255, 1);\n}\n#example #toc .menu .active.item {\n  color: #FFF;\n}\n\n/*--------------\n   Page Headers\n---------------*/\n\n#example .masthead.segment {\n  position: relative;\n  z-index: 3;\n  margin: 0em;\n  min-height: 185px;\n  padding: 3em 0em;\n  background-color: #FFFFFF;\n  border-bottom: 1px solid #DDDDDD;\n  box-shadow: none;\n}\n\n#example .masthead .introduction {\n  display: block;\n}\n#example .masthead .introduction:after {\n  content: \".\";\n  display: block;\n  height: 0;\n  clear: both;\n  visibility: hidden;\n}\n\n#example .masthead.segment h1 {\n  margin: 0em;\n}\n\n#example .masthead iframe.github {\n  width: 101px !important;\n}\n#example .masthead iframe {\n  margin-left: 5px;\n  float: right;\n}\n\n/* Align with buttons */\n#example .masthead .main.menu {\n  margin-top: -2px;\n  min-height: 0em;\n}\n#example .masthead .main.menu > .item {\n  padding-top: 0.785714em;\n  padding-bottom: 0.785714em;\n}\n\n/*--------------\n    Languages\n---------------*/\n\n#example .language.dropdown.button {\n  margin-top: 0.3em;\n}\n#example .language.dropdown > .text .description {\n  color: rgba(255, 255, 255, 0.4);\n}\n#example .language.dropdown > .menu {\n  width: 280px;\n}\n\n/*--------------\n    Page Tabs\n---------------*/\n\n#example .tab.masthead.segment {\n  display: block;\n  padding-bottom: 0em;\n  box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.1) inset;\n}\n#example .tab.masthead.segment .vertical.menu {\n  display: none;\n  margin: 2rem 0em 1rem;\n}\n#example .tab.masthead.segment .tabular.menu {\n  margin: 3rem 0px 0em;\n  border-bottom: none;\n}\n#example .tab.masthead.segment .tabular.menu .active.item {\n  background-color: #F7F7F7;\n}\n\n/*--------------\n    Ad Beg\n---------------*/\n\n#example .beg.segment {\n  background-color: #F9F5F5;\n  padding: 2em 3em;\n}\n#example .beg.segment .delete.icon {\n  position: absolute;\n  top: 1.5em;\n  right: 1.5em;\n}\n#example .beg.segment .ui.header {\n  margin: 0 !important;\n}\n\n/*--------------\n    Download\n---------------*/\n\n/* Download Popup */\n#example .masthead.segment .download.popup {\n  width: 400px;\n}\n#example .masthead.segment .download.popup .check.icon {\n  margin-left: -1em;\n}\n#example .masthead.segment .download.popup .framework.grid,\n#example .masthead.segment .download.popup .standalone.grid,\n#example .masthead.segment .download.popup .integration.grid,\n#example .masthead.segment .download.popup .link.grid {\n  display: none;\n}\n\n\n/* lists */\n#example .features {\n  list-style-position: inside;\n  margin: 10px 0px 0px;\n  padding: 0px;\n}\n#example .features li {\n  list-style-type: disc;\n  margin: 0px 0px 10px;\n  font-weight: bold;\n}\n\n\n#example .main.container a.anchor {\n  height: 1px;\n  position: absolute;\n  right: 100%;\n  top: -2.5em;\n  width: 1px;\n}\n\n\n/*--------------\n  Fixed Columns\n---------------*/\n\n#example .fixed.column {\n  position: absolute;\n  right: -0.5em;\n  top: 0px;\n  width: 250px;\n  padding-top: 2em;\n}\n#example .fixed.column + .examples {\n  margin-right: 280px;\n}\n\n#example .tab.masthead .item.menu {\n  margin: 3rem 0rem 2rem;\n}\n\n#example .tab.masthead.segment .fixed .tabular.menu {\n  position: fixed;\n  top: 50px;\n}\n#example .fixed .launch {\n  display: none;\n}\n#example .fixed.column .sticky {\n  margin-top: 0em;\n}\n\n/*--------------\n   Fixed Menu\n---------------*/\n\n#example .main.menu .title.item b {\n  margin-right: 0.5em;\n}\n#example .fixed.main.menu .launch.item {\n  display: block;\n}\n#example .fixed.main.menu .search .icon {\n  opacity: 0.9;\n}\n\n\n/*--------------\n  Sidebar Button\n---------------*/\n\n#example .fixed.launch.button {\n  display: none;\n  position: fixed;\n  top: 2.5em;\n  left: 0px;\n\n  width: 55px;\n  height: auto;\n  white-space: nowrap;\n  overflow: hidden;\n  -webkit-transition:\n    0.3s width ease,\n    0.5s transform ease\n  ;\n  -moz-transition:\n    0.3s width ease,\n    0.5s transform ease\n  ;\n  -o-transition:\n    0.3s width ease,\n    0.5s transform ease\n  ;\n  -ms-transition:\n    0.3s width ease,\n    0.5s transform ease\n  ;\n  transition:\n    0.3s width ease,\n    0.5s transform ease\n  ;\n}\n#example .launch.button .icon {\n  margin-left: 0px;\n}\n\n\n#example .fixed.launch.button .text {\n  position: absolute;\n  white-space: nowrap;\n  top: auto;\n  left: 54px;\n  opacity: 0;\n  -webkit-transition:\n    0.3s opacity 0.3s\n  ;\n  -moz-transition:\n    0.3s opacity 0.3s\n  ;\n  -o-transition:\n    0.3s opacity 0.3s\n  ;\n  -ms-transition:\n    0.3s opacity 0.3s\n  ;\n  transition:\n    0.3s opacity 0.3s\n  ;\n}\n#example .fixed.launch.button:hover {\n  width: 130px;\n}\n#example .fixed.launch.button:hover .text {\n  opacity: 1;\n}\n\n/* Position Change */\n#example.pushable.left.overlay .fixed.launch.button {\n  transform: translate3d(0, 0, 0);\n}\n#example.pushable.overlay.left.pushed .fixed.launch.button {\n  transform: translate3d(260px, 0, 0);\n}\n\n\n/*******************************\n        Alternate Layouts\n*******************************/\n\n/*----------------\n   Wide Layout\n-----------------*/\n\n#example.wide .main.container {\n  max-width: 1200px !important;\n}\n\n/*----------------\n   Basic Layout\n-----------------*/\n\n#example.basic .fixed.menu > .container,\n#example.basic .main.container,\n#example.basic .masthead > .container {\n  position: relative;\n  width: 700px !important;\n  left: 0px;\n  margin-right: 4em !important;\n}\n\n#example.basic .main.container > .rail,\n#example.basic .main.container > .tab > .rail {\n  display: none !important;\n}\n#example .main.container .introduction p,\n#example .main.container .tab > p,\n#example .main.container .example > p,\n#example .main.container > p {\n  font-size: 16px;\n  line-height: 1.5;\n  color: rgba(0, 0, 0, 0.8);\n}\n\n/* Link Styles */\n#example .main.container > p a,\n#example .main.container > .tab > p a,\n#example .main.container .example > .ignored a,\n#example .main.container .example > p a  {\n  display: inline-block;\n  position: relative;\n  overflow: hidden;\n  vertical-align: top;\n  z-index: 0;\n  -webkit-transition: color 0.2s;\n  transition: color 0.2s;\n  outline: none;\n}\n#example .main.container > p a > code,\n#example .main.container > .tab > p a > code,\n#example .main.container .example > .ignored a > code,\n#example .main.container .example > p a > code {\n  background-color: rgba(0, 50, 100, 0.08);\n}\n#example .main.container > p a:before,\n#example .main.container > .tab > p a:before,\n#example .main.container .example > .ignored a:before,\n#example .main.container .example > p a:before,\n#example .main.container .code .value a:before {\n  position: absolute;\n  top: auto;\n  bottom: 1px;\n  left: 0;\n  width: 100%;\n  height: 1px;\n  background-color: #4183C4;\n  content: '';\n  -webkit-transition: all 0.2s;\n  -webkit-backface-visibility: hidden;\n  transition: all 0.2s;\n  backface-visibility: hidden;\n  -webkit-transform: scaleX(0);\n  transform: scaleX(0);\n}\n\n/* Not on UI */\n#example .main.container .example > .ignored a.ui:before {\n  display: none;\n}\n\n/* Hover */\n#example .main.container > p a:hover > code,\n#example .main.container > .tab > p a:hover > code,\n#example .main.container .example > .ignored a:hover > code,\n#example .main.container .example > p a:hover > code {\n  background-color: rgba(0, 50, 100, 0.12);\n}\n#example .main.container > p a:hover:before,\n#example .main.container > p a:focus:before,\n#example .main.container > .tab > p a:hover:before,\n#example .main.container > .tab > p a:focus:before,\n#example .main.container .example > .ignored a:hover:before,\n#example .main.container .example > .ignored a:focus:before,\n#example .main.container .example > p a:hover:before,\n#example .main.container .example > p a:focus:before,\n#example .main.container .code .value a:hover:before  {\n  background-color: #2C76BF;\n  -webkit-transform: scaleX(1);\n  transform: scaleX(1);\n}\n\n#example .ui.ad {\n  max-width: 100%;\n}\n\n/*----------------\n   Minimal Layout\n-----------------*/\n\n\n/* Always Hidden Sidebar */\n#example.minimal.basic > .launch.button {\n  display: block;\n}\n#example.minimal.basic .full.height > .toc {\n  display: none;\n}\n#example.minimal.basic .full.height > .article {\n  margin-left: 0px;\n}\n#example.minimal.basic .fixed.menu > .container,\n#example.minimal.basic .main.container,\n#example.minimal.basic .masthead > .container,\n#example.minimal.basic .footer > .container {\n  position: relative;\n  width: 700px !important;\n  left: 0px;\n  margin-left: auto !important;\n  margin-right: auto !important;\n}\n#example.minimal > .pusher > .footer {\n  padding-left: 0 !important;\n  padding-right: 0 !important;\n}\n\n@media only screen and (max-width: 820px) {\n\n  #example.minimal.basic .fixed.menu > .container,\n  #example.minimal.basic .main.container,\n  #example.minimal.basic .masthead > .container,\n  #example.minimal.basic .footer > .container {\n    width: auto !important;\n    margin-left: 1em !important;\n    margin-right: 1em !important;\n  }\n}\n\n\n\n/*----------------\n  Settings Table\n-----------------*/\n\n#example .settings.table {\n  margin-bottom: 20px;\n}\n#example .settings.table td:first-child {\n  font-weight: bold;\n}\n#example .settings.table td:nth-child(2n) {\n  width: 100px;\n}\n\n/*----------------\n   Code Samples\n-----------------*/\n\n#example .segment pre {\n  background-color: transparent;\n  margin: 0em;\n  padding: 0em;\n}\n#example .segment pre .code {\n  margin: 0em;\n  padding: 0em;\n  max-height: 610px;\n  font-weight: normal;\n  transform: rotateZ(0deg);\n  -ms-transform: none !important;\n  font-family:  'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;\n}\n\n#example table .instructive.segment {\n  background-color: transparent;\n  border: 0px;\n  box-shadow: none;\n  padding: 0em;\n}\n\n#example .ui.label + .instructive.segment {\n  margin-top: 0em;\n}\n#example .instructive.segment:after {\n  display: none;\n}\n#example .existing.segment em,\n#example .instructive.segment em {\n  font-style: normal;\n  color: rgba(0, 0, 0, 0.4);\n}\n#example .existing.segment .title + em,\n#example .instructive.segment .title + em {\n  position: absolute;\n  right: 1em;\n}\n#example .label + .code {\n  margin-top: 1.5em;\n}\n\n/*----------------\n     Examples\n-----------------*/\n\n#example .example {\n  margin: 2em 0em;\n  padding: 2em 0em;\n  position: relative;\n  -webkit-tap-highlight-color: transparent;\n}\n#example .example > .ignored.message,\n#example .example > .ignore.message,\n#example .example > p {\n  max-width: 700px;\n}\n\n#example .example:last-child {\n  margin-bottom: none;\n}\n\n/* Header */\n#example .example > h4:first-child {\n  font-size: 18px;\n  margin: 0em 0em 0em;\n}\n\n/* Wireframe Image */\n#example .example .wireframe.image {\n  opacity: 0.5;\n}\n#example .example .accordion .content > .wireframe.image {\n  opacity: 0.5 !important;\n}\n#example .example :not(.images) > .wireframe.image {\n  margin-top: 1rem;\n  margin-bottom: 1rem;\n}\n#example .example :not(.images) > .wireframe.image:first-child {\n  margin-top: 0em;\n}\n#example .example :not(.images) > .wireframe.image:last-child {\n  margin-bottom: 0em;\n}\n\n/* Description */\n#example .example .anchor + p {\n  margin-top: 0;\n  padding-bottom: 1em;\n}\n#example .no.example .anchor + p {\n  margin: 0em 0px 1em;\n  padding-bottom: 0em;\n}\n#example .example > p {\n  color: rgba(0, 0, 0, 0.8);\n}\n\n/* Message */\n#example .example .anchor + p + .ignored.message:not(.attached),\n#example .example .anchor + p + .ignored.message + .ignored.message:not(.attached) {\n  margin: 0em 0 2em;\n}\n\n#example .pushing.example .rail .sticky {\n  margin: 2em 0em;\n}\n\n#example .inline.example > .segment > .sticky.fixed {\n  background-color: #FFFFFF;\n}\n#example .inline.example > .segment > .sticky.fixed + * {\n  margin-top: 39px;\n}\n\n\n/* Another */\n#example .another.example {\n  margin-top: 0em;\n  padding-top: 2em;\n}\n\n/* Spaced */\n#example .spaced.example .buttons,\n#example .spaced.example .button {\n  margin-bottom: 0.75em;\n}\n#example .spaced.example .buttons .button {\n  margin-bottom: 0em;\n}\n#example .example .toggle.button {\n  min-width: 100px;\n}\n\n/* Examples Tab */\n#example .tab[data-tab*=\"examples\"] .example > p,\n#example .examples.tab .example > p {\n  margin: 1em 0em;\n}\n#example .tab[data-tab*=\"examples\"] .example .anchor + p,\n#example .examples.tab .example .anchor + p {\n  padding: 0em;\n}\n\n/* Intro Tab */\n#example .intro > h3.ui.header {\n  margin-top: 4em;\n}\n#example .intro .example .anchor + p {\n  margin-top: 0.5em;\n}\n#example .intro .example > p {\n  color: rgba(0, 0, 0, 0.8);\n}\n\n\n#example .existing.segment:after,\n#example .instructive.segment:after {\n  display: none;\n}\n\n/*----------------\n  Example Types\n-----------------*/\n\n/* No Example */\n#example .no.example i.code {\n  display: none;\n}\n\n#example .fixed.example iframe {\n  border: none;\n  width: 100%;\n  height: 350px;\n}\n/* Stretched Example */\n\n#example .stretched.example .column img {\n  /* This is only necessary for IE which doesnt respect img intrinsic aspect ratios */\n  max-height: 225px;\n}\n\n#example .clear.dropdown .dropdown {\n  vertical-align: middle;\n}\n\n\n/* Requires Clear */\n#example .clearing.example {\n  overflow: hidden;\n  clear: both;\n  padding-left: 1px;\n  padding-right: 1px;\n  padding-bottom: 1px;\n}\n#example .piled.example {\n  position: relative;\n  z-index: 1;\n}\n#example .main.container:after {\n  content: '';\n  display: block;\n  height: 0px;\n  clear: both;\n  visibility: hidden;\n}\n#example .example-group {\n  position: relative;\n}\n#example .main.container > .tab {\n  position: relative;\n}\n\n#example .main.container .examples > h2,\n#example .main.container > h2,\n#example .main.container > .tab > h2{\n  position: relative;\n  margin: 5rem 0rem 3rem;\n}\n#example .main.container .examples > h3,\n#example .main.container > h3,\n#example .main.container > .tab > h3{\n  position: relative;\n  margin: 3rem 0rem 2rem;\n}\n#example .main.container .examples > .rail + h2,\n#example .main.container > .rail + h2,\n#example .main.container > .tab > .rail + h2,\n#example .main.container .examples > h2:first-child,\n#example .main.container > h2:first-child,\n#example .main.container > .tab > h2:first-child {\n  margin-top: 0em;\n}\n\n/* After Section Header */\n#example .example:first-child,\n#example h2 + .example,\n#example h3 + .example,\n#example h4 + .example {\n  margin-top: 0px;\n}\n#example .example:first-child i.code,\n#example h2 + .example i.code,\n#example h3 + .example i.code,\n#example h4 + .example i.code {\n  top: 0.75em;\n}\n#example .another.example i.code {\n  top: -0.5em;\n}\n\n/* Spaced */\n#example .spaced.example .buttons,\n#example .spaced.example .button {\n  margin-bottom: 0.75em;\n}\n#example .spaced.example .buttons .button {\n  margin-bottom: 0em;\n}\n#example .example .toggle.button {\n  min-width: 200px;\n}\n\n/* Code Language */\n#example .example .language.label {\n  margin: 1em 0em 0.75em;\n}\n\n\n/*--------------\n   Code Button\n---------------*/\n\n#example .example i.code {\n  cursor: pointer;\n  position: absolute;\n\n  top: 2rem;\n  right: 0rem;\n  margin: 0;\n  opacity: 0.5;\n\n  font-size: 20px;\n  color: #000000;\n\n  -webkit-transition: opacity 0.3s ease-out;\n  -moz-transition: opacity 0.3s ease-out;\n  -o-transition: opacity 0.3s ease-out;\n  -ms-transition: opacity 0.3s ease-out;\n  transition: opacity 0.3s ease-out;\n}\n\n/*#example .example i.code:before {*/\n  /*font-family: 'Docs';*/\n  /*content: \"\\e600\";*/\n/*}*/\n#example .example:hover i.code {\n  opacity: 0.85;\n}\n#example .example:hover i.code:hover {\n  opacity: 1;\n}\n#example .example .grid i.code {\n  right: 25%;\n}\n\n#example .pointing.label + .existing.segment {\n  margin-top: 0em;\n}\n#example .existing.code {\n  display: none;\n}\n\n/* Code Annotation */\n#example .example .annotation {\n  margin: 0em;\n}\n#example .annotation pre code {\n  min-width: 500px;\n  overflow: auto;\n  -webkit-overflow-scrolling: touch;\n}\n\n\n#example .transition.example .ui.button {\n  margin-bottom: 0.5em;\n}\n\n/* HTML Wrapper */\n#example .example > .html {\n  padding: 0em;\n  transition:\n    box-shadow 0.2s ease,\n    padding 0.2s ease\n  ;\n  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0);\n}\n#example .example > .html > .top.attached.label {\n  -moz-user-select: none;\n  -webkit-user-select: none;\n  user-select: none;\n  display: none;\n  background-color: #F8F8F8;\n  box-shadow: 0px 0px 0px 1px #DDDDDD;\n}\n#example .example > .html > .top.attached.label .copy {\n  position: absolute;\n  top: 9px;\n  right: 8px;\n  color: #AAAAAA;\n}\n#example .example > .html > .top.attached.label .copy:hover {\n  color: #666666;\n}\n#example .example > .empty.html.segment {\n  padding: 1.15em 1em 1em;\n}\n#example .example > .html.segment:after {\n  content: '';\n  display: block;\n  height: 0;\n  clear: both;\n  visibility: hidden;\n}\n#example .example > .html.segment > .attached.label {\n  display: block;\n}\n#example .example > .html.segment > .attached.label .copy {\n  float: right;\n}\n#example .example > .html.segment {\n  padding: 3.5em 1em 1em;\n}\n#example .example .instructive.segment {\n  margin-top: -1px;\n}\n\n/* Fixes for UI */\n#example .segment > .dimmer {\n  z-index: 800;\n}\n#example .code .active.ui.modal {\n  display: none !important;\n}\n#example .example .circular.segment {\n  width: 175px;\n  height: 175px;\n}\n#example .example .annotation.visible + .icon.buttons {\n  margin-top: 1rem;\n}\n\n\n/*******************************\n           UI Pages\n*******************************/\n\n\n/*----------------\n  Getting Started\n-----------------*/\n\n#example.started .tab.segment > .example:first-child {\n  margin-top: 0em;\n  padding-top: 0em;\n}\n#example.started .tab.segment > .example:last-child {\n  margin-bottom: 0em;\n  padding-bottom: 0em;\n}\n\n/*----------------\n     Theming\n-----------------*/\n\n#example.theming .main.container .button {\n  margin-bottom: 0.4em;\n}\n#example.theming .variable.grid .segment {\n  display: block;\n  width: 100%;\n  height: 500px;\n  overflow: auto;\n}\n\n/*--------------\n  Content Loader\n---------------*/\n#example .content.example .ignored.card {\n  display: none;\n}\n#example .content.example .card .image + .content {\n  min-height: 94px;\n}\n\n/*--------------\n    Colored\n---------------*/\n\n#example .colored.example .label,\n#example .colored.example .button,\n#example .colored.example .menu {\n  margin-bottom: 0.5em;\n}\n#example .colored.example .menu {\n  margin-right: 0.5em;\n}\n#example .colored.example .attached.label {\n  margin-bottom: 0em;\n}\n\n/*--------------\n    Callback\n---------------*/\n\n#example .callback.example .console {\n  height: 350px;\n  overflow: auto;\n}\n\n/*--------------\n    Fitted\n---------------*/\n\n#example .fitted.example .segment {\n  line-height: 1;\n}\n\n/*--------------\n      Grid\n---------------*/\n\n#example .highlighted.example .grid {\n  position: relative;\n}\n#example .highlighted.example .grid:before {\n  position: absolute;\n  top: 1rem;\n  left: 1rem;\n  background-color: #FAFAFA;\n  content: '';\n  width: calc(100% - 2rem);\n  height: calc(100% - 2rem);\n  box-shadow: 0px 0px 0px 1px #DDDDDD inset;\n}\n#example .highlighted.example .relaxed.grid:before {\n  width: calc(100% - 3rem);\n  left: 1.5em;\n}\n/* Consecutive */\n#example .highlighted.example > .grid + .grid {\n  margin-top: 1rem;\n}\n\n#example .highlighted.example .grid .grid:before {\n  background-color: #F0F0F0;\n}\n#example .highlighted.example .row {\n  position: relative;\n}\n\n#example .highlighted.example .grid > .column {\n  position: relative;\n  z-index: 11;\n}\n#example .highlighted.example .grid .column:not(.row):not(.grid):after {\n  background-color: rgba(86, 61, 124, .1);\n  -webkit-box-shadow: 0px 0px 0px 1px rgba(86, 61, 124, 0.2) inset;\n  box-shadow: 0px 0px 0px 1px rgba(86, 61, 124, 0.2) inset;\n  content: \"\";\n  display: block;\n  min-height: 50px;\n}\n#example .highlighted.example .grid .column:not(.grid):first-child,\n#example .ui.type.cards .image .grid .column:not(.grid):first-child {\n  box-shadow: none;\n}\n#example .highlighted.example .grid .column:not(.grid),\n#example .ui.type.cards .image .grid .column:not(.grid) {\n  min-height: 50px;\n}\n#example .highlighted.example .grid .segment,\n#example .ui.type.cards .image .grid .segment {\n  border-radius: 0px;\n  box-shadow: 0 0 0 1px #D4D4D4;\n}\n#example .negative.example > .button {\n  position: relative;\n  z-index: 100;\n  margin: 0px 1px;\n}\n\n/* Nested Grid Example */\n#example .highlighted.special.example .ui.grid > .column:first-child:after,\n#example .highlighted.special.example .ui.grid > .column:last-child:after {\n  display: none;\n}\n#example .highlighted.special.example .ui.grid .grid .column:not(.row):not(.grid):after {\n  display: block;\n  background-color: rgba(186, 61, 84, 0.1);\n  -webkit-box-shadow: 0 0 0 1px rgba(186, 61, 84, 0.2) inset;\n  box-shadow: 0 0 0 1px rgba(186, 61, 84, 0.2) inset;\n}\n\n\n#example.animated .negative.example > .grid {\n  margin: -1rem !important;\n  background-color: #FFEEEE;\n}\n\n#example .colored.example .column {\n  padding-top: 2em;\n  padding-bottom: 2em;\n}\n\n/* Animation */\n#example.animated .highlighted.example .html > .grid,\n#example.animated .animated.example .html > .grid,\n#example.animated .highlighted.example > .grid,\n#example.animated .animated.example > .grid {\n  margin: -1rem auto;\n  -webkit-animation: grid 7s ease infinite;\n  -moz-animation: grid 7s ease infinite;\n  animation: grid 7s ease infinite;\n}\n#example.animated .negative.example .html > .grid,\n#example.animated .negative.example > .grid {\n  -webkit-animation: none;\n  -moz-animation: none;\n  -ms-animation: none;\n  animation: none;\n}\n/* Grid Inside Grid */\n#example.animated .highlighted.example .grid .grid,\n#example.animated .animated.example .grid .grid {\n  -webkit-animation: none;\n  -moz-animation: none;\n  -ms-animation: none;\n  animation: none;\n}\n\n#example .ui.table .help.icon {\n  float: right;\n}\n\n#example.site .colors.example .column {\n  padding: 50px 0px;\n  text-align: center;\n  color: #FFFFFF;\n  font-weight: bold;\n}\n\n@-webkit-keyframes grid {\n  0% {\n    width: 100%;\n  }\n  45% {\n    width: 90%;\n  }\n  55% {\n    width: 90%;\n  }\n  100% {\n    width: 100%;\n  }\n}\n@-moz-keyframes grid {\n  0% {\n    width: 100%;\n  }\n  45% {\n    width: 90%;\n  }\n  55% {\n    width: 90%;\n  }\n  100% {\n    width: 100%;\n  }\n}\n@keyframes grid {\n  0% {\n    width: 100%;\n  }\n  45% {\n    width: 90%;\n  }\n  55% {\n    width: 90%;\n  }\n  100% {\n    width: 100%;\n  }\n}\n\n#example .layered.example {\n  z-index: 1;\n}\n\n/*--------------\n      Demo\n---------------*/\n\n#example .demo.container .button.demo > .buttons,\n#example .demo.container .button.demo > .button,\n#example .demo.container .button.demo > .segment > .button {\n  margin-bottom: 0.5em;\n}\n#example .demo.container h4:first-child {\n  font-weight: bold !important;\n  margin: 0em 0em 1em !important;\n  font-size: 18px;\n}\n#example .demo.container .example:first-child {\n  margin-top: 0;\n  padding-top: 0;\n}\n#example .demo.container .segment.example {\n  z-index: 1;\n}\n#example .demo.container > .ui.label:not(.empty) {\n  margin-bottom: 1em;\n}\n#example .demo.container .segment .ui.label {\n  margin-bottom: 0em;\n}\n\n/*--------------\n    New\n---------------*/\n\n.complex-popup.example #one {\n  display: block;\n  position: relative;\n  padding: 50px 100px;\n  background-color: #F0F0F0;\n}\n.complex-popup.example #two {\n  display: block;\n  background-color: #E2EAE4;\n  position: relative;\n  top: 10px;\n  padding: 50px 8px;\n}\n\n\n/*--------------\n   Visibility\n---------------*/\n\n/* static */\n.visibility.example .overlay {\n  padding: 0em;\n  box-shadow: 0px 0px 0px rgba(0, 0, 0, 0);\n  transition:\n    padding 0.5s ease\n  ;\n  background: transparent;\n}\n.visibility.example .overlay.fixed + .placeholder {\n  display: none;\n}\n/* fixed */\n.visibility.example .overlay.fixed {\n  position: fixed;\n  background-color: #FFFFFF;\n  padding: 1em;\n  box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2);\n  z-index: 10;\n}\n.visibility.example .overlay.fixed + .placeholder {\n  display: block;\n  height: 28px;\n}\n\n/* Flash Animation */\n.main.container .highlight {\n  -moz-animation: highlight 2s ease-out;\n    -moz-animation-iteration-count: 1;\n    -webkit-animation: highlight 2s ease-out;\n    -webkit-animation-iteration-count: 1;\n    -ms-animation: highlight 2s ease-out;\n    -ms-animation-iteration-count: 1;\n    animation: highlight 2s ease-out;\n    animation-iteration-count: 1;\n}\n\n@-webkit-keyframes highlight {\n    0% {\n      background-color: none;\n    }\n    30% {\n      background-color: #ffff00;\n    }\n    100% {\n      background-color: none;\n    }\n}\n\n@-moz-keyframes highlight {\n    0% {\n      background-color: none;\n    }\n    30% {\n      background-color: #ffff00;\n    }\n    100% {\n      background-color: none;\n    }\n}\n\n@-ms-keyframes highlight {\n    0% {\n      background-color: none;\n    }\n    30% {\n      background-color: #ffff00;\n    }\n    100% {\n      background-color: none;\n    }\n}\n\n\n/*--------------\n   Progress\n---------------*/\n\n\nbody.progress.animated .ui.progress .bar {\n  -webkit-animation: finish 10s ease-in-out infinite;\n  -moz-animation: finish 10s ease-in-out infinite;\n  -ms-animation: finish 10s ease-in-out infinite;\n  animation: finish 10s ease-in-out infinite;\n}\n\n/*--------------\n    Divider\n---------------*/\n\n#example.divider .ui.grid {\n  position: relative;\n}\n\n/*--------------\n      Header\n---------------*/\n\n#example.header .wireframe.image {\n  max-width: 500px;\n}\n\n/*--------------\n      Modal\n---------------*/\n\n#example.modal-page .main.container {\n  z-index: auto;\n}\n\n/*--------------\n      Popup\n---------------*/\n\n#example.popup .inline.example .popup {\n  color: #FF0000;\n}\n#example .position.example .icon {\n  position: absolute;\n  margin: 0em;\n  width: auto;\n  font-size: 1.5em;\n  height: auto;\n  padding: 0.5em !important;\n}\n#example .position.example .segment:not(.instructive) {\n  width: 250px;\n  height: 250px;\n}\n#example .position.example .segment .icon:nth-of-type(1) {\n  top: 0em;\n  left: 0em;\n}\n#example .position.example .segment .icon:nth-of-type(2) {\n  top: 0em;\n  left: 50%;\n  margin-left: -1em;\n}\n#example .position.example .segment .icon:nth-of-type(3) {\n  top: 0em;\n  right: 0em;\n}\n#example .position.example .segment .icon:nth-of-type(4) {\n  top: 50%;\n  margin-top: -1em;\n  right: 0em;\n}\n#example .position.example .segment .icon:nth-of-type(5) {\n  bottom: 0em;\n  right: 0em;\n}\n#example .position.example .segment .icon:nth-of-type(6) {\n  bottom: 0em;\n  left: 50%;\n  margin-left: -1em;\n}\n#example .position.example .segment .icon:nth-of-type(7) {\n  bottom: 0em;\n  left: 0em;\n}\n#example .position.example .segment .icon:nth-of-type(8) {\n  top: 50%;\n  margin-top: -1em;\n  left: 0em;\n}\n\n#example .main.ui.grid {\n  position: relative;\n}\n\n/*--------------\n      Icon\n---------------*/\n\n#example iconSearch.ui.search {\n  float: right;\n  position: relative;\n  z-index: 3;\n}\n#example iconSearch .result i.icon {\n  font-size: 20px;\n  float: right;\n  margin-top: -5px;\n  margin-left: 11px;\n  color: #000000;\n}\n\n\n#example .icon.example .grid {\n  text-align: left;\n}\n#example .icon.example .grid .code {\n  position: static;\n}\n#example .icon.example .grid > .column {\n  opacity: 0.8;\n  text-align: center;\n  color: transparent;\n\n  -moz-align-items: center;\n  -ms-align-items: center;\n  align-items: center;\n\n  -webkit-transition:\n    color 0.3s ease,\n    opacity 0.3s ease\n  ;\n  -moz-transition:\n    color 0.3s ease,\n    opacity 0.3s ease\n  ;\n  -o-transition:\n    color 0.3s ease,\n    opacity 0.3s ease\n  ;\n  -ms-transition:\n    color 0.3s ease,\n    opacity 0.3s ease\n  ;\n  transition:\n    color 0.3s ease,\n    opacity 0.3s ease\n  ;\n}\n#example .icon.example .attached.segment .grid > .row > .column  {\n  color: #555555;\n}\n#example .icon.example .column .icon {\n  opacity: 1;\n  height: 1em;\n  color: #333333;\n  display: block;\n  margin: 0em auto 0.25em;\n  font-size: 2em;\n\n  -webkit-transition:\n    color 0.6s ease,\n    transform 0.2s ease\n  ;\n  -moz-transition:\n    color 0.6s ease,\n    transform 0.2s ease\n  ;\n  -o-transition:\n    color 0.6s ease,\n    transform 0.2s ease\n  ;\n  -ms-transition:\n    color 0.6s ease,\n    transform 0.2s ease\n  ;\n  transition:\n    color 0.6s ease,\n    transform 0.2s ease\n  ;\n}\n#example .icon.example .html.segment .grid .column,\n#example .icon.example .grid:hover .column {\n  color: #777777;\n}\n#example .icon.example .grid:hover .column .icon {\n  color: #333333;\n}\n\n#example .icon.example .grid .column:hover .icon {\n  color: #000000;\n  -webkit-transform: scale(1.5);\n  -moz-transform: scale(1.5);\n  -o-transform: scale(1.5);\n  -ms-transform: scale(1.5);\n  transform: scale(1.5);\n}\n#example .icon.example .grid .column:hover {\n  opacity: 1;\n  color: #444444;\n}\n#example .another.icon.example {\n  border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\n#example .another.example i.code ~ .ignored.message {\n  margin: 0em 0em 2em;\n}\n\n/*--------------\n    List Page\n---------------*/\n\n#example .element.cards .image {\n  overflow: hidden;\n  min-height: 100px;\n}\n#example .collection.cards {\n  min-height: 350px;\n}\n#example .ui.type.cards > .item {\n  min-height: 255px;\n}\n\n#example .ui.type.cards > .item > .image {\n  padding: 1em;\n  height: 165px;\n  vertical-align: middle;\n}\n/*--------------\n      Header\n---------------*/\n\n#example.header .sizer {\n  padding: 1rem 0em;\n}\n\n/*--------------\n      Flag\n---------------*/\n\n#example.flag .basic.table tbody td:first-child {\n  width: 20px;\n}\n\n/*--------------\n      Feed\n---------------*/\n\n#example.feed .example .segment {\n  max-width: 800px;\n}\n\n\n/*--------------\n      Search\n---------------*/\n\n.fixed.menu .right.searching.menu .borderless.item,\n.fixed.menu .right.searching.menu .popup.item,\n.fixed.menu .right.searching.menu .language.item {\n  display: none;\n}\n\n#search input {\n  color: white;\n  width: 146px;\n  text-align: right;\n}\n#search.hidden input {\n  padding: 0 0.8em 0 0 !important;\n  width: 0;\n}\n#search .results {\n  margin-top: 1em;\n  border-radius: 0px 0px 3px 3px;\n}\n#search.ui.input input::-webkit-input-placeholder {\n  color: rgba(255, 255, 255, 0.75);\n}\n#search.ui.input input::-moz-placeholder {\n  color: rgba(255, 255, 255, 0.75);\n}\n\n#shortcuts.ui.modal .actions {\n    padding: 0;\n    border: none;\n    background: none;\n}\n\n/*******************************\n         Code Samples\n*******************************/\n\n\ncode.code {\n  display: block;\n  overflow-x: auto;\n  padding: 0em;\n  color: #666;\n  background-color: transparent;\n  -webkit-text-size-adjust: none;\n}\n\n/*--------------\n   Hover Only\n---------------*/\n\ncode.code,\ncode.code span {\n  -moz-transition: 0.5s color ease;\n  -webkit-transition: 0.5s color ease;\n  -ms-transition: 0.5s color ease;\n  transition: 0.5s color ease;\n}\ncode.code {\n  color: #333333;\n}\n\ncode.code.xml {\n  color: #555555;\n}\ncode.code.xml:hover {\n  color: #333333;\n}\n\n/* Class Name */\ncode .string,\ncode .tag .value,\ncode .phpdoc,\ncode .dartdoc,\ncode .tex .formula {\n  color: #008C79;\n}\ncode:hover .string,\ncode:hover .tag .value,\ncode:hover .phpdoc,\ncode:hover .dartdoc,\ncode:hover .tex .formula {\n  color: #007b6b;\n}\n\n/* Comment */\ncode .comment,\ncode .template_comment,\ncode .diff .header,\ncode .javadoc {\n  color: #AAAAAA;\n  font-style: italic;\n}\n\n\n/* Properties */\ncode .tag,\ncode .rules .property,\ncode .django .tag .keyword {\n  color: #858188;\n  font-weight: normal;\n}\n\ncode:hover .tag,\ncode:hover .rules .property,\ncode:hover .django .tag .keyword {\n  color: #892A6F;\n  font-weight: normal;\n}\n\n/* HTML Tag */\ncode .tag .title {\n  color: #858188;\n  font-weight: normal;\n}\ncode:hover .tag .title {\n  color: #892A6F;\n}\n\n/* Attribute */\ncode .attribute,\ncode .variable,\ncode .lisp .body {\n  color: #8D8A8A;\n  transition: color 0.3s;\n}\ncode:hover .attribute,\ncode:hover .variable,\ncode:hover .lisp .body {\n  color: #934E4E;\n}\n\n/* CSS ID */\ncode .title,\ncode .id,\ncode .scss .preprocessor {\n  color: #9C989F;\n  font-weight: bold;\n}\n\n/* CSS Attribute */\ncode .rule .attribute {\n  color: #892A6F;\n}\ncode:hover .rule .attribute {\n  color: #892A6F;\n}\n\n/* CSS Value */\ncode .number,\ncode .hexcolor,\ncode .ruby .constant {\n  color: #666666;\n}\n\ncode:hover .number,\ncode:hover .hexcolor,\ncode:hover .ruby .constant {\n  color: #333333;\n}\n\n/* LESS */\ncode.less .number,\ncode.less .hexcolor,\ncode.less .ruby .constant {\n  color: #005FAA;\n}\ncode.less:hover .number,\ncode.less:hover .hexcolor,\ncode.less:hover .ruby .constant {\n  color: #005FAA;\n}\n/* LESS Variable */\ncode.less .attribute,\ncode.less .variable,\ncode.less .lisp .body {\n  color: #333333;\n  transition: color 0.3s;\n}\ncode.less:hover .attribute,\ncode.less:hover .variable,\ncode.less:hover .lisp .body {\n  color: #333333;\n}\n\n/* Emphasized Value */\ncode.code .class {\n  color: #008C79;\n}\ncode.code .class b {\n  font-weight: normal;\n  background-color: rgba(90, 90, 90, 0);\n  border-radius: 5px;\n  line-height: 1;\n  vertical-align: baseline;\n  display: inline-block;\n  -webkit-transition: all 0.3s ease;\n  transition: all 0.3s ease;\n  margin: 0px -4px;\n  padding: 1px 4px;\n}\ncode.code .class b {\n  background-color: rgba(218, 189, 40, 0.15);\n  color: #9E6C00;\n}\n\n/*\ncode.code:hover .class.string b,\ncode.code:hover .class.value b {\n  background-color: rgba(218, 189, 40, 0.1);\n  color: inherit;\n}\n*/\n\n\n/* Linked UI */\ncode .tag .value a {\n  position: relative;\n  border-radius: 5px;\n  line-height: 1;\n  color: inherit;\n  margin: 0px -2px;\n  padding: 1px 4px;\n  background-color: rgba(150, 150, 150, 0.1);\n  -webkit-transition: all 0.3s ease;\n  transition: all 0.3s ease;\n}\ncode .tag .value a b {\n  border-radius: 0px;\n}\ncode .tag .value a:hover {\n  background-color: rgba(40, 150, 218, 0.2);\n  color: #00689E;\n}\ncode .tag .value a:hover b {\n  background-color: transparent;\n  color: inherit;\n}\n\n\n\n/*--------------\n      Normal\n---------------*/\n\ncode .keyword,\ncode .css .rule .keyword,\ncode .winutils,\ncode .javascript .title,\ncode .nginx .title,\ncode .subst,\ncode .request,\ncode .status {\n  color: #333;\n  font-weight: bold;\n}\n\ncode .javascript .title,\ncode .list .keyword,\ncode .subst {\n  font-weight: normal;\n}\n\ncode .class .title,\ncode .type,\ncode .vhdl .literal,\ncode .tex .command {\n  color: #458;\n  font-weight: bold;\n}\n\n\ncode .regexp {\n  color: #009926;\n}\n\ncode .built_in {\n  color: #0086b3;\n}\n\ncode .preprocessor,\ncode .pragma,\ncode .pi,\ncode .doctype,\ncode .shebang,\ncode .cdata {\n  color: #999;\n  font-weight: bold;\n}\n\ncode .deletion {\n  background: #fdd;\n}\n\ncode .addition {\n  background: #dfd;\n}\n\ncode .diff .change {\n  background: #0086b3;\n}\n\ncode .chunk {\n  color: #aaa;\n}\n\n\n/*******************************\n         Sidebar Layout\n*******************************/\n\n#example > .pusher > .full.height {\n  display: -webkit-box;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-flex-direction: row;\n      -ms-flex-direction: row;\n          flex-direction: row;\n}\n#example:not(.site) > .pusher > .full.height {\n  background-color: #FFFFFF;\n}\n\n/* page layout */\n#example .full.height > .toc {\n  position: fixed;\n  z-index: 1;\n  background-color: #1b1c1d;\n  width: 250px;\n  -webkit-box-flex: 0;\n  -webkit-flex: 0 0 auto;\n      -ms-flex: 0 0 auto;\n          flex: 0 0 auto;\n}\n#example .full.height > .toc .ui.menu {\n  border-radius: 0;\n  border-width: 0 1px 0 0;\n  box-shadow: none;\n  margin: 0;\n  width: inherit;\n  overflow: hidden;\n  will-change: transform;\n  max-height: 100vh;\n  overflow: auto;\n  -webkit-overflow-scrolling: touch;\n}\n#example .article {\n  -webkit-box-flex: 1;\n  -webkit-flex: 1 1 auto;\n      -ms-flex: 1 1 auto;\n          flex: 1 1 auto;\n  min-width: 0px;\n  margin-left: 250px;\n}\n\n#example .full.height > .toc .ui.menu::-webkit-scrollbar {\n  -webkit-appearance: none;\n}\n#example .full.height > .toc .ui.menu::-webkit-scrollbar-track {\n  background-color: rgba(255, 255, 255, 0);\n}\n#example .full.height > .toc .ui.menu::-webkit-scrollbar-thumb {\n  background-color: rgba(255, 255, 255, 0);\n}\n\n#example .full.height > .toc .ui.menu:hover::-webkit-scrollbar-track {\n  background-color: rgba(255, 255, 255, 0.1);\n}\n#example .full.height > .toc .ui.menu:hover::-webkit-scrollbar-thumb {\n  background-color: rgba(255, 255, 255, 0.25);\n}\n\n#example > .pusher > .footer,\n#example .article > .footer {\n  border-top: 1px solid #DDDDDD;\n  box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.08) inset;\n  background-color: #FAFAFA;\n  padding-top: 2em;\n}\n\n/*******************************\n      Definition Container\n*******************************/\n\n#example > .pusher > .footer {\n  clear: both;\n}\n\n#example .fixed.menu > .container,\n#example .main.container,\n#example .masthead > .container,\n#example .footer > .container {\n  position: relative;\n}\n\n#example .main.container {\n  padding: 2em 0em 7em;\n}\n#example .wide.main.container {\n  width: 80%;\n  margin: 0 auto;\n  max-width: 1140px;\n}\n\n#example .main.container > .right.rail .sticky,\n#example .main.container > .tab > .examples > .right.rail .sticky,\n#example .main.container > .tab > .right.rail .sticky {\n  padding-bottom: 2em;\n}\n\n#example .following.menu .menu .active.item {\n  font-weight: bold;\n}\n\n/*******************************\n           Advert\n*******************************/\n\n/*----------------\n  Style Overrides\n-----------------*/\n\n#example .masthead .advertisement {\n  width: 285px;\n  height: 130px;\n}\n#example .masthead .advertisement #carbonads {\n  width: 100%;\n  height: 130px;\n}\n#example .advertisement #carbonads {\n  position: relative;\n  display: block;\n  margin: 0 auto;\n  background-color: #F5F5F5;\n  border: 1px solid #CCCCCC;\n  box-shadow: 0 2px 3px rgba(0, 0, 0, 0.08) inset;\n  padding: 1em;\n  font-family: \"Helvetica Neue\", Arial, sans-serif;\n  overflow: hidden;\n  -moz-border-radius: 5px;\n  -webkit-border-radius: 5px;\n  border-radius: 5px;\n}\n#example .advertisement #carbonads:hover {\n  background-color: #F0F8F9;\n  border: 1px solid #87C7D0;\n}\n#example .advertisement .carbon-wrap {\n  display: -webkit-box;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n}\n#example .advertisement .carbon-img {\n  width: 130px;\n  margin-right: 0.75em;\n  -webkit-box-flex: 1;\n  -webkit-flex: 1 0 auto;\n      -ms-flex: 1 0 auto;\n          flex: 1 0 auto;\n}\n#example .advertisement .carbon-img img {\n  display: block;\n  border: 1px solid #DDDDDD;\n}\n#example .advertisement .carbon-text {\n  font-size: 13px;\n  line-height: 16px;\n  padding-bottom: 1.5em;\n  height: auto;\n  min-width: 145px;\n  color: rgba(20, 50, 50, 0.8);\n}\n#example .advertisement .carbon-text:hover {\n  color: rgba(0, 30, 30, 0.8);\n}\n#example .carbon-poweredby {\n  position: absolute;\n  left: 130px;\n  margin-left: 2em;\n  bottom: 1em;\n  color: #bbb;\n  font-size: 11px;\n  color: rgba(0, 0, 0, 0.3);\n  text-align: left;\n}\n\n\n/*******************************\n        Advertisements\n*******************************/\n\n/* Rail Ad */\n#example .rail .advertisement {\n  display: block;\n  float: none;\n  margin: 1em 0;\n  padding-left: 0;\n}\n#example .rail .advertisement #carbonads {\n  display: block;\n  margin: 0 -1.5em;\n  width: auto;\n}\n\n#semantic-sponsor {\n  min-height: 40px;\n  border-bottom: solid 1px #dddddd;\n}\n\n\n.native-link {\n  display: block;\n  width: 100%;\n  background-color: #F5F5F5;\n  padding: 5px 3em;\n  color: #415a5a;\n}\n.native-link:hover {\n  color: #000000;\n  background-color: #F0F8F9;\n}\n\n.native-link,\n.native-ad {\n  text-decoration: none;\n}\n.native-ad {\n  position: absolute;\n  right: 1rem;\n}\n\n.native-inline,\n.native-link {\n  display: flex;\n  align-items: center;\n}\n\n.native-img {\n  margin-right: 10px;\n  display: block;\n  padding: 5px;\n  height: 30px;\n  flex: 0 0 auto;\n  width: 30px;\n  border-radius: 50%;\n}\n\n.native-text {\n  margin-right: 38px;\n}\n\n.native-ad {\n  padding: 4px 7px 4px;\n  line-height: 1;\n  border-radius: 3px;\n  background-color: #848484;\n  color: #fff;\n  font-size: 10px;\n}\n\n.native-ad:hover {\n  color: #fff;\n}\n\n\n/*******************************\n          Responsive\n*******************************/\n\n/* Defaults */\n#example .masthead > .container,\n#example .main.container,\n#example .fixed.menu > .container {\n  margin-left: 3em !important;\n  margin-right: 3em !important;\n  width: auto !important;\n  max-width: 960px !important;\n}\n#example .masthead > .container {\n  margin-right: 387px !important;\n}\n#example .main.container {\n  margin-right: 387px !important;\n}\n\n/* Rail Default */\n#example .main.container > .right.rail,\n#example .main.container > .tab > .examples > .right.rail,\n#example .main.container > .tab > .right.rail {\n  margin-left: 3em;\n  padding-top: 2em;\n  width: 319px;\n}\n\n#example .masthead .advertisement {\n  margin-left: 3em;\n  padding: 0em 1.25em;\n  width: 342px;\n}\n\n/* Absolute Ad */\n#example .masthead .introduction {\n  display: block;\n}\n#example .masthead .advertisement {\n  position: absolute;\n  left: 100%;\n  bottom: -2px;\n}\n\n/* Remove Overview from pages with Examples */\n@media only screen and (max-width: 1500px) {\n\n  #example .fixed.column {\n    right: auto;\n    left: 100%;\n    margin-left: 4.5em;\n    width: 300px;\n  }\n  #example .fixed.column + .examples {\n    margin-right: 0px;\n  }\n  #example .fixed.column + .examples .right.rail {\n    display: none;\n  }\n\n}\n\n\n/* Table Ad */\n@media only screen and (max-width: 1272px) {\n\n  #example .masthead > .container:first-child {\n    display: flex;\n    flex-direction: row;\n  }\n  #example .masthead > .container {\n    margin-right: 2em !important;\n    max-width: none !important;\n  }\n  #example .masthead .introduction {\n    vertical-align: top;\n    flex: 1 0 auto;\n  }\n  #example .masthead .advertisement {\n    position: static;\n    float: none;\n    flex: 0 1 auto;\n    vertical-align: bottom;\n    padding-left: 0em;\n    margin-left: 2rem;\n    margin-top: -0.5rem;\n    padding-right: 0em;\n  }\n  #example .bsa-cpc ._default_ {\n    margin-right: 0px;\n  }\n}\n\n/* Squish Content (Just For Small Computers) */\n@media only screen and (max-width: 1272px) {\n\n  /* Resize TOC  */\n  #example .full.height > .toc {\n    width: 200px;\n  }\n  #example .article {\n    margin-left: 200px;\n  }\n  #example .masthead > .container,\n  #example .main.container,\n  #example .fixed.menu > .container {\n    margin-left: 2rem !important;\n    margin-right: 2rem !important;\n  }\n  /* Resize Main Container */\n  #example .main.container {\n    margin-right: 318px !important;\n  }\n\n  .native-link {\n    padding-left: 2rem;\n    padding-right: 2rem;\n  }\n  .native-ad {\n    right: 2rem;\n  }\n\n  /* Resize Rail */\n  #example .main.container > .right.rail,\n  #example .main.container > .tab > .examples > .right.rail,\n  #example .main.container > .tab > .right.rail {\n    padding-left: 1.5em;\n    width: 260px;\n  }\n\n  #example .fixed.column {\n    width: 250px;\n    margin-left: 2.5em;\n  }\n\n}\n\n/* Hide Top Bar */\n@media only screen and (min-width: 1145px) {\n  #example .fixed.main.menu {\n    display: none;\n  }\n}\n\n/* Remove Fixed Sidebar /  Show Top Bar */\n@media only screen and (max-width: 1144px) {\n\n  /* Hide Fixed Sidebar */\n  #example .full.height > .toc {\n    display: none;\n  }\n  #example .full.height > .article {\n    margin-left: 0px;\n  }\n\n  /* Hide Fixed Launch Button */\n  #example .fixed.launch.button {\n    display: none !important;\n  }\n\n  /* Additional Padding for Fixed Menu */\n  #example .masthead.segment {\n    padding-top: 5em;\n  }\n\n  /* Hide GitHub Stars in Intro */\n  #example .masthead iframe {\n    display: none;\n  }\n\n  /* Less Left Padding */\n  #example .masthead > .container,\n  #example .main.container,\n  #example .fixed.menu > .container {\n    margin-left: 2em !important;\n  }\n\n  /* Padding Above Rail */\n  #example .main.container > .right.rail .sticky,\n  #example .main.container > .tab > .examples > .right.rail .sticky,\n  #example .main.container > .tab > .right.rail .sticky {\n    padding-top: 2.5em;\n  }\n\n  /* 100% Menu Width */\n  #example .fixed.menu > .container {\n    margin-left: 0em !important;\n    margin-right: 0em !important;\n    width: 100% !important;\n    max-width: none !important;\n  }\n\n  /* Remove Bug Reports */\n  #example .main.menu .bug.item {\n    display: none;\n  }\n\n  /* Hide Music *]/\n  #example .main.menu .music.item {\n    display: none;\n  }\n\n  /* Space For Header Over Examples */\n  #example .fixed.column .sticky {\n    padding-top: 2em;\n  }\n\n}\n\n/* Remove Rail */\n@media only screen and (max-width: 992px) {\n\n  /* Remove Rail */\n  #example .main.container > .right.rail,\n  #example .main.container > .tab > .examples > .right.rail,\n  #example .main.container > .tab > .right.rail {\n    display: none;\n  }\n\n  /* Fluid Containers */\n  #example .masthead > .container,\n  #example .main.container,\n  #example .fixed.menu > .container {\n    margin-left: 1em !important;\n    margin-right: 1em !important;\n    max-width: none !important;\n  }\n\n  /* Still 100% Fixed Menu */\n  #example .fixed.menu > .container {\n    margin-left: 0em !important;\n    margin-right: 0em !important;\n    width: 100% !important;\n    max-width: none !important;\n  }\n\n  /* Remove Padding on Ad */\n  #example .masthead .advertisement {\n    padding-right: 0em !important;\n  }\n\n\n}\n\n\n@media only screen and (max-width: 820px) {\n\n  /* Ad Takes Full Width */\n  #example .masthead .introduction {\n    display: block;\n  }\n  #example .masthead .advertisement {\n    display: block;\n    float: none;\n    margin: 2em 0em 0em;\n    padding-left: 0em;\n    width: auto;\n  }\n  #example .masthead .advertisement #carbonads > span {\n    position: relative;\n    display: block;\n    max-width: 300px;\n  }\n\n}\n\n@media only screen and (max-width: 768px) {\n\n  #example .masthead > .container:first-child {\n    flex-direction: column;\n  }\n  #example .masthead .advertisement #carbonads {\n    height: auto;\n  }\n  #example .masthead .advertisement {\n    height: auto;\n    margin: 1rem 0rem;\n  }\n  /* Hide Some Fixed Menu Content (Pagination, Search) */\n  #example .fixed.menu > .container > .section.item {\n    display: none;\n  }\n  #example .masthead.segment {\n    padding-bottom: 0em;\n  }\n\n  #example.button-page .example > .button,\n  #example.button-page .example .html > .button {\n    margin-bottom: 8px;\n  }\n  #example .stackable.grid .ui.vertical.divider {\n    display: none;\n  }\n\n  /* Add Sticky Footers */\n  body.pushable > .pusher {\n    display: -webkit-box;\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n  -webkit-flex-direction: column;\n      -ms-flex-direction: column;\n          flex-direction: column;\n  }\n  body.pushable > .pusher > .full.height {\n  -webkit-box-flex: 1;\n  -webkit-flex: 1 0 auto;\n      -ms-flex: 1 0 auto;\n          flex: 1 0 auto;\n  }\n\n  /* Ad Label */\n  #example .bsa-cpc ._default_ {\n    padding-left: 1em;\n    padding-right: 1em;\n  }\n\n  /* Let Buttons Vertically Stack */\n  #example .masthead .button {\n    margin-bottom: 0.75em;\n  }\n\n  #example .masthead .main.menu {\n    display: none;\n  }\n  #example .masthead .main.menu + .main.menu {\n    display: -webkit-box;\n    display: -webkit-flex;\n    display: -ms-flexbox;\n    display: flex;\n  }\n\n  /* No Download Button */\n  #example .masthead .download.button {\n    display: none;\n  }\n\n  /* Hide Sitemap */\n  #example .pusher > .footer .grid .three.column {\n    display: none !important;\n  }\n}\n\n/* Small Phone */\n@media only screen and (max-width: 500px) {\n\n  /* Stack Advert */\n  #example .masthead .advertisement #carbonads > span {\n    max-width: none;\n  }\n  #example .advertisement .carbon-wrap {\n  -webkit-flex-direction: column-reverse;\n      -ms-flex-direction: column-reverse;\n          flex-direction: column-reverse;\n\n    text-align: center;\n    align-items: center;\n  }\n  #example .carbon-poweredby {\n    display: none;\n  }\n\n}\n"
  },
  {
    "path": "server/files/stylesheets/home.css",
    "content": "/*******************************\n            Homepage\n*******************************/\n\n#example.index .pusher > .page {\n  background-color: #FFFFFF;\n}\n\n@media only screen and (max-width: 992px) {\n  html {\n    overflow-x: visible;\n    -webkit-overflow-scrolling: auto;\n  }\n}\n#example > .pusher {\n  display: block;\n  min-height: 0px;\n  flex-direction: initial;\n}\n#example > .pusher > .full.height {\n  display: block;\n  flex: none !important;\n}\n\n/*--------------\n    Masthead\n---------------*/\n\n#example.index .masthead.segment.zoomed h1 {\n  text-shadow: 0px 0px 4px rgba(0, 0, 0, 0);\n  color: rgba(255, 255, 255, 1);\n}\n#example.index .masthead.zoomed:after {\n  opacity: 0;\n}\n#example.index .masthead.zoomed {\n  background-color: #25282A;\n}\n\n#example.index .masthead {\n  position: relative;\n  overflow: hidden;\n  text-align: center;\n  padding: 0em;\n  color: rgba(255, 255, 255, 0.9);\n  margin-bottom: 0px;\n  border-bottom: none;\n\n  background-color: #000000;\n  background-position: 50% 50%;\n  -webkit-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n}\n#example.index .masthead:after {\n  position: absolute;\n  top: 0px;\n  left: 0px;\n  z-index: -1;\n  width: 100%;\n  height: 100%;\n  content: '';\n  background-size: cover;\n\n  opacity: 0.45;\n}\n#example.index .masthead.bg1:after {\n  background-image: url(\"/images/backgrounds/1.jpg\");\n}\n#example.index .masthead.bg2:after {\n  background-image: url(\"/images/backgrounds/2.jpg\");\n}\n#example.index .masthead.bg3:after {\n  background-image: url(\"/images/backgrounds/3.jpg\");\n}\n#example.index .masthead.bg4:after {\n  background-image: url(\"/images/backgrounds/4.jpg\");\n}\n#example.index .masthead.bg5:after {\n  background-image: url(\"/images/backgrounds/5.jpg\");\n}\n#example.index .masthead.bg6:after {\n  background-image: url(\"/images/backgrounds/6.jpg\");\n}\n#example.index .masthead.bg7:after {\n  background-image: url(\"/images/backgrounds/7.jpg\");\n}\n#example.index .masthead.bg8:after {\n  background-image: url(\"/images/backgrounds/8.jpg\");\n}\n#example.index .masthead.bg9:after {\n  background-image: url(\"/images/backgrounds/9.jpg\");\n}\n#example.index .masthead.bg10:after {\n  background-image: url(\"/images/backgrounds/10.jpg\");\n}\n#example.index .masthead.bg11:after {\n  background-image: url(\"/images/backgrounds/11.jpg\");\n}\n#example.index .masthead.bg12:after {\n  background-image: url(\"/images/backgrounds/12.jpg\");\n}\n#example.index .masthead.bg13:after {\n  background-image: url(\"/images/backgrounds/13.jpg\");\n}\n#example.index .masthead.bg14:after {\n  background-image: url(\"/images/backgrounds/14.jpg\");\n}\n\n\n#example.index .masthead,\n#example.index .masthead:after {\n  -ms-transition:\n    background 6s cubic-bezier(0.680, -0.550, 0.265, 1.4) 0s,\n    opacity 6s cubic-bezier(0.680, -0.550, 0.265, 1.4) 0s\n  ;\n  -moz-transition:\n    background 6s cubic-bezier(0.680, -0.550, 0.265, 1.4) 0s,\n    opacity 6s cubic-bezier(0.680, -0.550, 0.265, 1.4) 0s\n  ;\n  -webkit-transition:\n    background 6s cubic-bezier(0.680, -0.550, 0.265, 1.4) 0s,\n    opacity 6s cubic-bezier(0.680, -0.550, 0.265, 1.4) 0s\n  ;\n  transition:\n    background 6s cubic-bezier(0.680, -0.550, 0.265, 1.4) 0s,\n    opacity 6s cubic-bezier(0.680, -0.550, 0.265, 1.4) 0s\n  ;\n}\n#example.index .masthead .container {\n  height: 55vh;\n  margin-left: auto !important;\n  margin-right: auto !important;\n  min-height: 600px;\n\n  -webkit-box-align: center;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  display: -webkit-box;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-box-pack: center;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n}\n#example .masthead .container {\n  padding: 15rem 0em;\n}\n#example.index .following.bar iframe.github {\n  margin-top: 0px;\n}\n#example.index .following.bar .menu .item {\n  display: block;\n}\n#example.index.pushed .masthead,\n#example.index.pushed .following.bar {\n  -webkit-transform: translate3d(0, 0, 0);\n  -moz-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n}\n\n#example.index > .pusher > .footer {\n  padding-left: 0em;\n}\n\n#example.index .light.following.bar {\n  padding: 0em 0em;\n  background-color: #FFFFFF;\n  border-bottom: 1px solid #DDDDDD;\n  box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.04);\n}\n\n#example.index .masthead.segment .typed-cursor {\n  position: relative;\n  top: -0.05em;\n  left: -0.25em;\n  visibility: hidden;\n  opacity: 1;\n  -webkit-animation: blink 0.7s infinite;\n  -moz-animation: blink 0.7s infinite;\n  animation: blink 0.7s infinite;\n  -webkit-transition: opacity 0.7s ease;\n  -moz-transition: opacity 0.7s ease;\n  transition: opacity 0.7s ease;\n}\n#example.index .masthead.segment .typed-cursor.stop {\n  opacity: 0;\n  -moz-animation-duration: 0s;\n  -webkit-animation-duration: 0s;\n  animation-duration: 0s;\n}\n@keyframes blink {\n  0% { opacity:1; }\n  50% { opacity:0; }\n  100% { opacity:1; }\n}\n@-webkit-keyframes blink {\n  0% { opacity:1; }\n  50% { opacity:0; }\n  100% { opacity:1; }\n}\n@-moz-keyframes blink {\n  0% { opacity:1; }\n  50% { opacity:0; }\n  100% { opacity:1; }\n}\n\n#example.index .vertical.segment {\n  box-shadow: none;\n}\n\n#example.index .masthead.segment h1 {\n  font-size: 3em;\n  color: rgba(255, 255, 255, 1);\n  line-height: 1.2;\n  margin: 0px 0px 0px;\n  padding-bottom: 0px;\n  -moz-perspective: 500px;\n  -webkit-perspective: 500px;\n  perspective: 500px;\n\n  text-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);\n\n  -moz-transform-style: preserve-3d;\n  -webkit-transform-style: preserve-3d;\n  transform-style: preserve-3d;\n}\n#example.index .masthead.segment h1 .tagline {\n  font-size: 0.75em;\n}\n#example.index .masthead.segment h1 > .library {\n  display: block;\n  font-size: 1.75em;\n  font-weight: bold;\n}\n#example.index .masthead.segment h1 b {\n  display: inline-block;\n  font-weight: 500;\n}\n#example.index .masthead.segment h1 .text {\n  display: inline-block;\n  font-weight: 300;\n  margin-left: -0.4em;\n}\n#example.index .masthead h2 {\n  font-weight: normal;\n  margin: 0px 0 16px 0px;\n  font-size: 1.75em;\n  border-bottom: none;\n  line-height: 1;\n}\n#example.index .masthead p {\n  font-size: 1.5em;\n  margin: 1em 0em 1.5em;\n  padding: 0px;\n}\n#example.index .ui.header {\n  font-weight: normal;\n}\n#example.index .footer .ui.header {\n  font-weight: bold;\n}\n\n#example.index .introduction {\n  position: relative;\n  clear: both;\n  display: block;\n  text-align: center;\n}\n#example.index .introduction .buttons {\n  margin-top: 3em;\n}\n\n\n#example.index .advertisement {\n  display: none !important;\n  padding-left: 0;\n  position: absolute;\n  left: auto;\n  right: 6em;\n  top: 50%;\n  transform: translateY(-50%);\n  vertical-align: top;\n}\n#example.index .fixed.launch.button {\n  display: none;\n  top: 100px;\n}\n#example.index .main.menu {\n  top: 0px;\n}\n#example.index pre.console {\n  height: 120px;\n}\n\n/*--------------\n    Intro\n---------------*/\n\n#example .intro.segment h1 + p {\n  font-size: 22px;\n}\n\n/*--------------\n    Demo\n---------------*/\n\n#example .demo.row .example > .ui.label:not(.empty) {\n  margin-bottom: 1em;\n}\n#example .demo.row .ui.progress {\n  margin-bottom: 2.5em;\n}\n#example .demo.row h4 {\n  font-weight: bold !important;\n  margin: 0em 0em 1em !important;\n}\n#example .demo.row .example {\n  clear: both;\n  padding-top: 3em;\n  margin-top: 3em;\n}\n#example .demo.row .ui.menu,\n#example .demo.row .ui.card {\n  width: 100%;\n}\n#example .demo.row .ui.card {\n  width: 100%;\n  max-width: 400px;\n}\n\n/*--------------\n    Features\n---------------*/\n\n#example.index .hidden.code {\n  visibility: hidden;\n}\n\n#example.index .demo.row .example {\n  clear: both;\n  padding-top: 1.5em;\n  margin-top: 1.5em;\n}\n#example.index .demo.row .example:first-child {\n  margin-top: 0;\n  padding-top: 0;\n}\n#example.index .demo.row .example:last-child {\n  margin-bottom: 0em;\n}\n\n/*--------------\n    Following\n---------------*/\n\n#example.index .following.bar {\n  position: fixed;\n  top: 0px;\n  z-index: 900;\n  left: 0%;\n  padding: 2em 0em;\n  width: 100%;\n  box-shadow: 0px 0px 0px 0px transparent;\n  border-bottom: 1px solid transparent;\n  transition:\n    padding 0.5s ease,\n    background 0.5s ease,\n    box-shadow 0.5s ease,\n    border 0.5s ease\n  ;\n}\n#example.index .following.bar > .menu .item {\n  transition: all 0.5s ease;\n}\n#example.index.pushed .following.bar .menu .item,\n#example.index.pushed .following.bar {\n  transition: none;\n}\n#example.index .following.bar .additional.item[data-site=\"learn\"]:hover {\n  color: #D9499A;\n}\n#example.index .following.bar span.additional.item {\n  cursor: default;\n  color: rgba(0, 0, 0, 0.2);\n}\n#example.index .following.bar .inverted span.additional.item {\n  color: rgba(255, 255, 255, 0.2);\n}\n#example.index .following.bar .column > .menu {\n  margin-top: 0px;\n  height: 35px;\n}\n#example.index .following.bar .network.menu .item {\n  font-weight: bold;\n}\n#example.index .following.bar .item iframe {\n  margin-left: 10px;\n}\n#example.index .following.bar .network.menu .view-ui {\n  margin-right: 1em;\n}\n#example.index .light.following.bar .network.menu .view-ui {\n  color: #00B5AD;\n}\n#example.index .light.following.bar .inverted.network.menu .view-ui {\n  color: #6DFFFF;\n}\n#example.index .following .logo {\n  float: left;\n  width: 35px;\n  margin-right: 1em;\n}\n#example.index .following .logo .side {\n  width: 35px;\n}\n#example .masthead .version.label:after {\n  background-color: #000000 !important;\n}\n#example.index .following .version.label {\n  margin: 0.25em 0px 0px 1em;\n}\n\n\n/*--------------\n     Stripes\n---------------*/\n\n#example.index .stripe .grid .row {\n  margin: 2rem 0rem;\n}\n#example.index .feature.stripe .grid .row {\n  margin: 0rem;\n}\n#example.index .feature.stripe .column {\n  display: flex;\n  -ms-flex-direction: column;\n  -webkit-flex-direction: column;\n  -moz-flex-direction: column;\n  flex-direction: column;\n}\n#example.index .feature.stripe p {\n  -webkit-flex: 1 0 auto;\n  -moz-flex: 1 0 auto;\n  -ms-flex: 1 0 auto;\n  flex: 1 0 auto;\n  margin: 0.5em 0em 2em;\n}\n#example .stripe .ui.vertical.divider {\n  font-size: 1rem;\n}\n#example.index .feature.stripe .icon.header .icon.image {\n  width: auto;\n  height: 65px;\n  margin-bottom: 20px;\n}\n#example.index .stripe .icon.header .icon.image {\n  height: 65px;\n  margin-bottom: 20px;\n}\n#example.index .community.stripe {\n  box-shadow: 0 -1px 0 0 rgba(0, 0, 0, 0.1);\n  padding: 4em 0;\n}\n#example.index .stripe .icon.header i.icon {\n  font-size: 2em;\n}\n\n\n/* Final */\n#example.index .final.stripe {\n  border-top: 1px solid #DDDDDD;\n  background-color: #F8F8F8;\n}\n\n/* Alternate */\n#example .alternate.stripe {\n  background-color: #F2F3F5;\n}\n\n/* Inverted */\n#example.index .inverted.stripe {\n  background-color: #1B1C1D;\n}\n#example.index .inverted.stripe p {\n  color: #FFFFFF;\n}\n\n\n/*--------------\n    Legacy?\n---------------*/\n\n/* content */\n#example .solid,\n#example .stripe {\n  background-color: #FFFFFF;\n  padding: 10em 0px;\n  border-radius: 0em;\n  margin: 0em;\n  -webkit-transform: translate3d(0, 0, 0);\n  transform: translate3d(0, 0, 0);\n}\n#example .theming.stripe {\n  -webkit-transform: none;\n  transform: none;\n}\n\n#example .stripe h1 {\n  font-size: 40px;\n}\n#example .stripe h2 {\n  font-size: 26px;\n}\n#example .stripe h3 {\n  font-size: 20px;\n}\n#example .feature.stripe {\n  padding: 3em 0em;\n}\n#example .theming.stripe .left.aligned.column {\n  padding-top: 8em;\n}\n#example .theming.stripe .hljs.code {\n  height: 483px;\n  max-height: 483px;\n}\n#example .theming .source.grid {\n  display: none !important;\n  margin: 2rem 2rem -4rem;\n}\n#example .theming .source.grid.visible {\n  display: block;\n  display: flex !important;\n}\n\n#example .theming.stripe .buttons {\n  vertical-align: top;\n}\n#example .theming.stripe .button {\n  margin-bottom: 0.5em;\n}\n#example .stripe .column > p {\n  font-size: 16px;\n  line-height: 1.6;\n  margin: 1em 0em;\n}\n\n#example .dark.stripe {\n  background-color: #333333;\n  background: url(/images/dark-bg.png) repeat;\n  color: #FFFFFF;\n}\n#example .stripe .column > .label {\n  margin-bottom: 1em;\n}\n\n#example .solid {\n  background-color: #FFFFFF;\n  -webkit-box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.1);\n  -moz-box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.1);\n  box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.1);\n}\n#example .solid .column {\n  color: #555555;\n}\n#example .solid .column p b {\n  color: rgba(0, 0, 0, 0.9);\n}\n#example .solid .column p {\n  color: rgba(0, 0, 0, 0.5);\n}\n\n/*--------------\n    Promo\n---------------*/\n\n#example.index .promo.stripe {\n  padding: 3em 0em;\n}\n\n\n/*--------------\n    Newsletter\n---------------*/\n\n#example.index .email.stripe {\n  padding: 5em 0em;\n}\n#example.index .email.stripe p {\n  margin: -0.5em 0em 1em;\n}\n#example.index .email.stripe .input {\n  width: 450px;\n}\n#example.index .email.stripe .submit.button {\n  margin-left: 1em;\n}\n\n\n@media only screen and (max-width : 400px) {\n  #example.index .advertisement {\n    display: none;\n    margin-left: -130px !important;\n  }\n  #example.index .carbonad {\n    width: 260px !important;\n  }\n  #example.index .masthead.segment h1  {\n    font-size: 1.75em !important;\n  }\n  #example.index .feature.stripe {\n    padding: 1em;\n  }\n}\n\n\n\n@media only screen and (max-width : 600px) {\n  #example.index .solid,\n  #example.index .stripe {\n    padding: 4em 0em;\n  }\n  #example.index .masthead.segment h1 .text {\n    margin-left: 0em;\n  }\n  #example.index .following.bar {\n    display: none;\n  }\n  #example.index .masthead:before {\n    display: none;\n  }\n  #example.index .following.bar .column {\n    text-align: center;\n  }\n  #example.index .following .logo {\n    float: none;\n  }\n  #example.index .codebase.stripe {\n    display: none;\n  }\n  #example.index .following .version.label {\n    vertical-align: top;\n    margin-top: 0em;\n  }\n  #example .masthead .container {\n    padding: 6rem 0rem;\n  }\n  #example.index .masthead.segment h1 {\n    font-size: 2.25em;\n  }\n  #example.index .email.stripe .input {\n    width: 100%;\n  }\n  #example.index .following .secondary.menu {\n    display: none;\n  }\n  #example.index .email.stripe .submit.button {\n    margin-top: 0.5em;\n  }\n  #example.index .stripe .icon.header .icon.image {\n    height: 50px;\n  }\n  #example.index .stripe {\n    padding: 2em 0em !important;\n  }\n}\n\n@media only screen and (max-width : 650px) {\n  #example.index .fixed.launch.button {\n    display: none;\n  }\n  #example .stripe h1 {\n    font-size: 32px;\n  }\n}\n@media only screen and (min-width : 601px) {\n  #example .theming .source.button {\n    display: none;\n  }\n  #example.index .main.menu {\n    display: none;\n  }\n\n  #example.index .fixed.launch.button {\n    display: none;\n  }\n}\n\n\n\n/* Homepage */\n@media only screen and (max-width : 810px) {\n  #example.index .masthead.segment h1 > .library {\n    font-size: 1.75em;\n  }\n  #example.index .feature.stripe p {\n    height: auto;\n    min-height: 0px;\n  }\n  #example.index .container {\n    margin-left: 0em;\n    margin-right: 0em;\n  }\n  #example .solid, #example .stripe {\n    padding: 6em 0em;\n  }\n  #example.index .masthead .container {\n    margin-top: 50px;\n  }\n  #example.index .following.bar span.additional.item {\n    display: none;\n    visibility: hidden !important;\n  }\n  #example.index .following.bar .network.menu .view-ui {\n    margin-right: 0.75em;\n  }\n  #example.index .masthead .container {\n    min-height: 350px;\n    height: auto;\n  }\n}\n\n\n@media only screen and (max-width : 1040px) {\n  #example.index .following.bar .network.menu .view-ui {\n    margin-right: 0.5em;\n  }\n}\n\n\n@media only screen and (max-width: 1300px) {\n  #example.index .advertisement {\n    position: absolute;\n    top: auto;\n    left: 50%;\n    bottom: 2rem;\n    margin-left: -175px;\n    -webkit-transform: none;\n    -moz-transform: none;\n    -ms-transform: none;\n    transform: none;\n  }\n  #example.index .inverted.advertisement .carbonad-img {\n    margin-top: 0px;\n  }\n  #example.index #carbonads-container {\n    float: none;\n  }\n  #example.index .carbonad {\n    width: 340px;\n  }\n  #example.index .carbonad-text,\n  #example.index .carbonad-tag {\n    float: none;\n    display: block;\n    text-align: left;\n    margin-left: 160px;\n    width: 170px;\n  }\n}\n"
  },
  {
    "path": "server/files/stylesheets/library/basic.icon.css",
    "content": "/*\n * # Semantic - Icon\n * http://github.com/jlukic/semantic-ui/\n *\n *\n * Copyright 2013 Contributors\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n\n@font-face {\n  font-family: 'Basic Icons';\n  src: url(\"fonts/icons.eot\");\n  src: url(\"fonts/icons.eot?#iefix\") format('embedded-opentype'), url(\"fonts/icons.svg#icons\") format('svg'), url(\"fonts/icons.woff\") format('woff'), url(\"fonts/icons.ttf\") format('truetype');\n  font-style: normal;\n  font-weight: normal;\n  font-variant: normal;\n  text-decoration: inherit;\n  text-transform: none;\n}\n\ni.icon {\n  display: inline-block;\n  opacity: 0.75;\n  margin: 0em 0.25em 0em 0em;\n  width: 1.23em;\n  height: 1em;\n  font-family: 'Basic Icons';\n  font-style: normal;\n  line-height: 1;\n  font-weight: normal;\n  text-decoration: inherit;\n  text-align: center;\n  speak: none;\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n  font-smoothing: antialiased;\n}\n\n/*******************************\n             Types\n*******************************/\n\n/*--------------\n    Loading\n---------------*/\n\ni.icon.loading {\n  -webkit-animation: icon-loading 2s linear infinite;\n  animation: icon-loading 2s linear infinite;\n}\n\n@-webkit-keyframes icon-loading {\n  from {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n\n  to {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n\n@keyframes icon-loading {\n  from {\n    -webkit-transform: rotate(0deg);\n    -ms-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n\n  to {\n    -webkit-transform: rotate(360deg);\n    -ms-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n\n/*******************************\n             States\n*******************************/\n\ni.icon.hover {\n  opacity: 1;\n}\n\ni.icon.active {\n  opacity: 1;\n}\n\ni.emphasized.icon {\n  opacity: 1;\n}\n\ni.icon.disabled {\n  opacity: 0.3;\n}\n\n/*******************************\n           Variations\n*******************************/\n\n/*-------------------\n         Link\n--------------------*/\n\ni.link.icon {\n  cursor: pointer;\n  opacity: 0.75;\n  -webkit-transition: opacity 0.25s ease;\n  transition: opacity 0.25s ease;\n}\n\ni.link.icon:hover {\n  opacity: 1 !important;\n}\n\n/*-------------------\n      Circular\n--------------------*/\n\ni.circular.icon {\n  border-radius: 500em !important;\n  padding: 0.5em 0.35em !important;\n  -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;\n  box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;\n  line-height: 1 !important;\n  width: 2em !important;\n  height: 2em !important;\n}\n\ni.circular.inverted.icon {\n  border: none;\n  -webkit-box-shadow: none;\n  box-shadow: none;\n}\n\n/*-------------------\n      Flipped\n--------------------*/\n\ni.flipped.icon,\ni.horizontally.flipped.icon {\n  -webkit-transform: scale(-1, 1);\n  -ms-transform: scale(-1, 1);\n  transform: scale(-1, 1);\n}\n\ni.vertically.flipped.icon {\n  -webkit-transform: scale(1, -1);\n  -ms-transform: scale(1, -1);\n  transform: scale(1, -1);\n}\n\n/*-------------------\n      Rotated\n--------------------*/\n\ni.rotated.icon,\ni.right.rotated.icon,\ni.clockwise.rotated.icon {\n  -webkit-transform: rotate(90deg);\n  -ms-transform: rotate(90deg);\n  transform: rotate(90deg);\n}\n\ni.left.rotated.icon,\ni.counterclockwise.rotated.icon {\n  -webkit-transform: rotate(-90deg);\n  -ms-transform: rotate(-90deg);\n  transform: rotate(-90deg);\n}\n\n/*-------------------\n        Square\n--------------------*/\n\ni.square.icon {\n  width: 2em;\n  height: 2em;\n  padding: 2em !important;\n  -webkit-box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;\n  box-shadow: 0em 0em 0em 0.1em rgba(0, 0, 0, 0.1) inset;\n  vertical-align: baseline;\n}\n\ni.square.inverted.icon {\n  border: none;\n  -webkit-box-shadow: none;\n  box-shadow: none;\n}\n\n/*-------------------\n      Inverted\n--------------------*/\n\ni.inverted.icon {\n  background-color: #222222;\n  color: #FFFFFF;\n}\n\n/*-------------------\n       Colors\n--------------------*/\n\ni.black.icon {\n  color: #555555 !important;\n}\n\ni.blue.icon {\n  color: #6ecff5 !important;\n}\n\ni.green.icon {\n  color: #5bbd72 !important;\n}\n\ni.orange.icon {\n  color: #e96633 !important;\n}\n\ni.pink.icon {\n  color: #d9499a !important;\n}\n\ni.purple.icon {\n  color: #564f8a !important;\n}\n\ni.red.icon {\n  color: #d95c5c !important;\n}\n\ni.teal.icon {\n  color: #00b5ad !important;\n}\n\ni.yellow.icon {\n  color: #ffcb08 !important;\n}\n\n/*-------------------\n   Inverted Colors\n--------------------*/\n\ni.inverted.black.icon {\n  background-color: #555555 !important;\n  color: #FFFFFF !important;\n}\n\ni.inverted.blue.icon {\n  background-color: #6ecff5 !important;\n  color: #FFFFFF !important;\n}\n\ni.inverted.green.icon {\n  background-color: #5bbd72 !important;\n  color: #FFFFFF !important;\n}\n\ni.inverted.orange.icon {\n  background-color: #e96633 !important;\n  color: #FFFFFF !important;\n}\n\ni.inverted.pink.icon {\n  background-color: #d9499a !important;\n  color: #FFFFFF !important;\n}\n\ni.inverted.purple.icon {\n  background-color: #564f8a !important;\n  color: #FFFFFF !important;\n}\n\ni.inverted.red.icon {\n  background-color: #d95c5c !important;\n  color: #FFFFFF !important;\n}\n\ni.inverted.teal.icon {\n  background-color: #00b5ad !important;\n  color: #FFFFFF !important;\n}\n\ni.inverted.yellow.icon {\n  background-color: #ffcb08 !important;\n  color: #FFFFFF !important;\n}\n\n/*-------------------\n        Sizes\n--------------------*/\n\ni.small.icon {\n  font-size: 0.875em;\n}\n\ni.icon {\n  font-size: 1em;\n}\n\ni.large.icon {\n  font-size: 1.5em;\n  vertical-align: middle;\n}\n\ni.big.icon {\n  font-size: 2em;\n  vertical-align: middle;\n}\n\ni.huge.icon {\n  font-size: 4em;\n  vertical-align: middle;\n}\n\ni.massive.icon {\n  font-size: 8em;\n  vertical-align: middle;\n}\n\n/* basic.icons available */\n\ni.basic.icon.circle.attention:before {\n  content: '\\2757';\n}\n\n/* '❗' */\n\ni.basic.icon.circle.help:before {\n  content: '\\e704';\n}\n\n/* '' */\n\ni.basic.icon.circle.info:before {\n  content: '\\e705';\n}\n\n/* '' */\n\ni.basic.icon.add:before {\n  content: '\\2795';\n}\n\n/* '➕' */\n\ni.basic.icon.chart:before {\n  content: '📈';\n}\n\n/* '\\1f4c8' */\n\ni.basic.icon.chart.bar:before {\n  content: '📊';\n}\n\n/* '\\1f4ca' */\n\ni.basic.icon.chart.pie:before {\n  content: '\\e7a2';\n}\n\n/* '' */\n\ni.basic.icon.resize.full:before {\n  content: '\\e744';\n}\n\n/* '' */\n\ni.basic.icon.resize.horizontal:before {\n  content: '\\2b0d';\n}\n\n/* '⬍' */\n\ni.basic.icon.resize.small:before {\n  content: '\\e746';\n}\n\n/* '' */\n\ni.basic.icon.resize.vertical:before {\n  content: '\\2b0c';\n}\n\n/* '⬌' */\n\ni.basic.icon.down:before {\n  content: '\\2193';\n}\n\n/* '↓' */\n\ni.basic.icon.down.triangle:before {\n  content: '\\25be';\n}\n\n/* '▾' */\n\ni.basic.icon.down.arrow:before {\n  content: '\\e75c';\n}\n\n/* '' */\n\ni.basic.icon.left:before {\n  content: '\\2190';\n}\n\n/* '←' */\n\ni.basic.icon.left.triangle:before {\n  content: '\\25c2';\n}\n\n/* '◂' */\n\ni.basic.icon.left.arrow:before {\n  content: '\\e75d';\n}\n\n/* '' */\n\ni.basic.icon.right:before {\n  content: '\\2192';\n}\n\n/* '→' */\n\ni.basic.icon.right.triangle:before {\n  content: '\\25b8';\n}\n\n/* '▸' */\n\ni.basic.icon.right.arrow:before {\n  content: '\\e75e';\n}\n\n/* '' */\n\ni.basic.icon.up:before {\n  content: '\\2191';\n}\n\n/* '↑' */\n\ni.basic.icon.up.triangle:before {\n  content: '\\25b4';\n}\n\n/* '▴' */\n\ni.basic.icon.up.arrow:before {\n  content: '\\e75f';\n}\n\n/* '' */\n\ni.basic.icon.folder:before {\n  content: '\\e810';\n}\n\n/* '' */\n\ni.basic.icon.open.folder:before {\n  content: '📂';\n}\n\n/* '\\1f4c2' */\n\ni.basic.icon.globe:before {\n  content: '𝌍';\n}\n\n/* '\\1d30d' */\n\ni.basic.icon.desk.globe:before {\n  content: '🌐';\n}\n\n/* '\\1f310' */\n\ni.basic.icon.star:before {\n  content: '\\e801';\n}\n\n/* '' */\n\ni.basic.icon.star.empty:before {\n  content: '\\e800';\n}\n\n/* '' */\n\ni.basic.icon.star.half:before {\n  content: '\\e701';\n}\n\n/* '' */\n\ni.basic.icon.lock:before {\n  content: '🔒';\n}\n\n/* '\\1f512' */\n\ni.basic.icon.unlock:before {\n  content: '🔓';\n}\n\n/* '\\1f513' */\n\ni.basic.icon.layout.grid:before {\n  content: '\\e80c';\n}\n\n/* '' */\n\ni.basic.icon.layout.block:before {\n  content: '\\e708';\n}\n\n/* '' */\n\ni.basic.icon.layout.list:before {\n  content: '\\e80b';\n}\n\n/* '' */\n\ni.basic.icon.heart.empty:before {\n  content: '\\2661';\n}\n\n/* '♡' */\n\ni.basic.icon.heart:before {\n  content: '\\2665';\n}\n\n/* '♥' */\n\ni.basic.icon.asterisk:before {\n  content: '\\2731';\n}\n\n/* '✱' */\n\ni.basic.icon.attachment:before {\n  content: '📎';\n}\n\n/* '\\1f4ce' */\n\ni.basic.icon.attention:before {\n  content: '\\26a0';\n}\n\n/* '⚠' */\n\ni.basic.icon.trophy:before {\n  content: '🏉';\n}\n\n/* '\\1f3c9' */\n\ni.basic.icon.barcode:before {\n  content: '\\e792';\n}\n\n/* '' */\n\ni.basic.icon.cart:before {\n  content: '\\e813';\n}\n\n/* '' */\n\ni.basic.icon.block:before {\n  content: '🚫';\n}\n\n/* '\\1f6ab' */\n\ni.basic.icon.book:before {\n  content: '📖';\n}\n\ni.basic.icon.bookmark:before {\n  content: '🔖';\n}\n\n/* '\\1f516' */\n\ni.basic.icon.calendar:before {\n  content: '📅';\n}\n\n/* '\\1f4c5' */\n\ni.basic.icon.cancel:before {\n  content: '\\2716';\n}\n\n/* '✖' */\n\ni.basic.icon.close:before {\n  content: '\\e80d';\n}\n\n/* '' */\n\ni.basic.icon.color:before {\n  content: '\\e794';\n}\n\n/* '' */\n\ni.basic.icon.chat:before {\n  content: '\\e720';\n}\n\n/* '' */\n\ni.basic.icon.check:before {\n  content: '\\2611';\n}\n\n/* '☑' */\n\ni.basic.icon.time:before {\n  content: '🕔';\n}\n\n/* '\\1f554' */\n\ni.basic.icon.cloud:before {\n  content: '\\2601';\n}\n\n/* '☁' */\n\ni.basic.icon.code:before {\n  content: '\\e714';\n}\n\n/* '' */\n\ni.basic.icon.email:before {\n  content: '\\40';\n}\n\n/* '@' */\n\ni.basic.icon.settings:before {\n  content: '\\26ef';\n}\n\n/* '⛯' */\n\ni.basic.icon.setting:before {\n  content: '\\2699';\n}\n\n/* '⚙' */\n\ni.basic.icon.comment:before {\n  content: '\\e802';\n}\n\n/* '' */\n\ni.basic.icon.clockwise.counter:before {\n  content: '\\27f2';\n}\n\n/* '⟲' */\n\ni.basic.icon.clockwise:before {\n  content: '\\27f3';\n}\n\n/* '⟳' */\n\ni.basic.icon.cube:before {\n  content: '\\e807';\n}\n\n/* '' */\n\ni.basic.icon.direction:before {\n  content: '\\27a2';\n}\n\n/* '➢' */\n\ni.basic.icon.doc:before {\n  content: '📄';\n}\n\n/* '\\1f4c4' */\n\ni.basic.icon.docs:before {\n  content: '\\e736';\n}\n\n/* '' */\n\ni.basic.icon.dollar:before {\n  content: '💵';\n}\n\n/* '\\1f4b5' */\n\ni.basic.icon.paint:before {\n  content: '\\e7b5';\n}\n\n/* '' */\n\ni.basic.icon.edit:before {\n  content: '\\270d';\n}\n\n/* '✍' */\n\ni.basic.icon.eject:before {\n  content: '\\2ecf';\n}\n\n/* '⻏' */\n\ni.basic.icon.export:before {\n  content: '\\e715';\n}\n\n/* '' */\n\ni.basic.icon.hide:before {\n  content: '\\e70b';\n}\n\n/* '' */\n\ni.basic.icon.unhide:before {\n  content: '\\e80f';\n}\n\n/* '' */\n\ni.basic.icon.facebook:before {\n  content: '\\f301';\n}\n\n/* '' */\n\ni.basic.icon.fast-forward:before {\n  content: '\\e804';\n}\n\n/* '' */\n\ni.basic.icon.fire:before {\n  content: '🔥';\n}\n\n/* '\\1f525' */\n\ni.basic.icon.flag:before {\n  content: '\\2691';\n}\n\n/* '⚑' */\n\ni.basic.icon.lightning:before {\n  content: '\\26a1';\n}\n\n/* '⚡' */\n\ni.basic.icon.lab:before {\n  content: '\\68';\n}\n\n/* 'h' */\n\ni.basic.icon.flight:before {\n  content: '\\2708';\n}\n\n/* '✈' */\n\ni.basic.icon.forward:before {\n  content: '\\27a6';\n}\n\n/* '➦' */\n\ni.basic.icon.gift:before {\n  content: '🎁';\n}\n\n/* '\\1f381' */\n\ni.basic.icon.github:before {\n  content: '\\f308';\n}\n\n/* '' */\n\ni.basic.icon.globe:before {\n  content: '\\e817';\n}\n\n/* '' */\n\ni.basic.icon.headphones:before {\n  content: '🎧';\n}\n\n/* '\\1f3a7' */\n\ni.basic.icon.question:before {\n  content: '\\2753';\n}\n\n/* '❓' */\n\ni.basic.icon.home:before {\n  content: '\\2302';\n}\n\n/* '⌂' */\n\ni.basic.icon.i:before {\n  content: '\\2139';\n}\n\n/* 'ℹ' */\n\ni.basic.icon.idea:before {\n  content: '💡';\n}\n\n/* '\\1f4a1' */\n\ni.basic.icon.open:before {\n  content: '🔗';\n}\n\n/* '\\1f517' */\n\ni.basic.icon.content:before {\n  content: '\\e782';\n}\n\n/* '' */\n\ni.basic.icon.location:before {\n  content: '\\e724';\n}\n\n/* '' */\n\ni.basic.icon.mail:before {\n  content: '\\2709';\n}\n\n/* '✉' */\n\ni.basic.icon.mic:before {\n  content: '🎤';\n}\n\n/* '\\1f3a4' */\n\ni.basic.icon.minus:before {\n  content: '\\2d';\n}\n\n/* '-' */\n\ni.basic.icon.money:before {\n  content: '💰';\n}\n\n/* '\\1f4b0' */\n\ni.basic.icon.off:before {\n  content: '\\e78e';\n}\n\n/* '' */\n\ni.basic.icon.pause:before {\n  content: '\\e808';\n}\n\n/* '' */\n\ni.basic.icon.photos:before {\n  content: '\\e812';\n}\n\n/* '' */\n\ni.basic.icon.photo:before {\n  content: '🌄';\n}\n\n/* '\\1f304' */\n\ni.basic.icon.pin:before {\n  content: '📌';\n}\n\n/* '\\1f4cc' */\n\ni.basic.icon.play:before {\n  content: '\\e809';\n}\n\n/* '' */\n\ni.basic.icon.plus:before {\n  content: '\\2b';\n}\n\n/* '+' */\n\ni.basic.icon.print:before {\n  content: '\\e716';\n}\n\n/* '' */\n\ni.basic.icon.rss:before {\n  content: '\\e73a';\n}\n\n/* '' */\n\ni.basic.icon.search:before {\n  content: '🔍';\n}\n\n/* '\\1f50d' */\n\ni.basic.icon.shuffle:before {\n  content: '\\e803';\n}\n\n/* '' */\n\ni.basic.icon.tag:before {\n  content: '\\e80a';\n}\n\n/* '' */\n\ni.basic.icon.tags:before {\n  content: '\\e70d';\n}\n\n/* '' */\n\ni.basic.icon.terminal:before {\n  content: '\\e7ac';\n}\n\n/* '' */\n\ni.basic.icon.thumbs.down:before {\n  content: '👎';\n}\n\n/* '\\1f44e' */\n\ni.basic.icon.thumbs.up:before {\n  content: '👍';\n}\n\n/* '\\1f44d' */\n\ni.basic.icon.to-end:before {\n  content: '\\e806';\n}\n\n/* '' */\n\ni.basic.icon.to-start:before {\n  content: '\\e805';\n}\n\n/* '' */\n\ni.basic.icon.top.list:before {\n  content: '🏆';\n}\n\n/* '\\1f3c6' */\n\ni.basic.icon.trash:before {\n  content: '\\e729';\n}\n\n/* '' */\n\ni.basic.icon.twitter:before {\n  content: '\\f303';\n}\n\n/* '' */\n\ni.basic.icon.upload:before {\n  content: '\\e711';\n}\n\n/* '' */\n\ni.basic.icon.user.add:before {\n  content: '\\e700';\n}\n\n/* '' */\n\ni.basic.icon.user:before {\n  content: '👤';\n}\n\n/* '\\1f464' */\n\ni.basic.icon.community:before {\n  content: '\\e814';\n}\n\n/* '' */\n\ni.basic.icon.users:before {\n  content: '👥';\n}\n\n/* '\\1f465' */\n\ni.basic.icon.id:before {\n  content: '\\e722';\n}\n\n/* '' */\n\ni.basic.icon.url:before {\n  content: '🔗';\n}\n\n/* '\\1f517' */\n\ni.basic.icon.zoom.in:before {\n  content: '\\e750';\n}\n\n/* '' */\n\ni.basic.icon.zoom.out:before {\n  content: '\\e751';\n}\n\n/* '' */\n\n/*--------------\n   Spacing Fix\n---------------*/\n\n/* dropdown arrows are to the right */\n\ni.dropdown.basic.icon {\n  margin: 0em 0em 0em 0.5em;\n}\n\n/* stars are usually consecutive */\n\ni.basic.icon.star {\n  width: auto;\n  margin: 0em;\n}\n\n/* left side basic.icons */\n\ni.basic.icon.left {\n  width: auto;\n  margin: 0em 0.5em 0em 0em;\n}\n\n/* right side basic.icons */\n\ni.basic.icon.search,\ni.basic.icon.up,\ni.basic.icon.down,\ni.basic.icon.right {\n  width: auto;\n  margin: 0em 0em 0em 0.5em;\n}\n\n/*--------------\n     Aliases\n---------------*/\n\n/* aliases for convenience */\n\ni.basic.icon.delete:before {\n  content: '\\e80d';\n}\n\n/* '' */\n\ni.basic.icon.dropdown:before {\n  content: '\\25be';\n}\n\n/* '▾' */\n\ni.basic.icon.help:before {\n  content: '\\e704';\n}\n\n/* '' */\n\ni.basic.icon.info:before {\n  content: '\\e705';\n}\n\n/* '' */\n\ni.basic.icon.error:before {\n  content: '\\e80d';\n}\n\n/* '' */\n\ni.basic.icon.dislike:before {\n  content: '\\2661';\n}\n\n/* '♡' */\n\ni.basic.icon.like:before {\n  content: '\\2665';\n}\n\n/* '♥' */\n\ni.basic.icon.eye:before {\n  content: '\\e80f';\n}\n\n/* '' */\n\ni.basic.icon.eye.hidden:before {\n  content: '\\e70b';\n}\n\n/* '' */\n\ni.basic.icon.date:before {\n  content: '📅';\n}\n\n/* '\\1f4c5' */\n\n/*******************************\n           Overrides\n*******************************/\n"
  },
  {
    "path": "server/files/stylesheets/library/docco.css",
    "content": "/*--------------------- Typography ----------------------------*/\n\n@font-face {\n  font-family: 'Neutraface';\n  src:\n    url(\"../fonts/neutraface-book.otf\") format('opentype')\n  ;\n  font-weight: normal;\n  font-style: normal;\n  font-size-adjust: 0.448;\n}\n@font-face {\n  font-family: 'Neutraface';\n  src:\n    url(\"../fonts/neutraface-bold.otf\") format('opentype')\n  ;\n  font-weight: bold;\n  font-style: normal;\n  font-size-adjust: 0.448;\n}\n\n\n/*--------------------- Layout ----------------------------*/\nhtml { height: 100%; }\nbody {\n  font-family: \"Neutraface\", \"Helvetica Neue\", \"Arial\", sans-serif;\n  font-size: 14px;\n  line-height: 18px;\n  color: #30404f;\n  margin: 0; padding: 0;\n  height:100%;\n}\n#container { min-height: 100%; }\n\na {\n  color: #000;\n}\n\nb, strong {\n  font-weight: normal;\n}\n\np, ul, ol {\n  margin: 15px 0 0px;\n}\n\nh1, h2, h3, h4, h5, h6 {\n  color: #112233;\n  font-family: \"Neutraface\", \"Helvetica Neue\", \"Arial\", sans-serif;\n  line-height: 1em;\n  text-transform: none;\n  margin: 30px 0 15px 0;\n}\nh1 {\n  margin: 0px 0px 20px;\n  font-size: 38px;\n  color: #00B4AC;\n}\nh2 {\n  margin: 0px 0px 20px;\n  font-size: 28px;\n  color: #6E4889;\n}\nh3 {\n  margin: 0px 0px 20px;\n  font-size: 22px;\n}\nh4 {\n  margin: 0px 0px 10px;\n  font-size: 18px;\n  color: #555555;\n}\nh5 {\n  margin: 0px 0px 10px;\n  font-size: 16px;\n  color: #555555;\n}\na {\n  font-weight: bold;\n  color: #009FDA;\n  text-decoration: none;\n}\na:hover {\n  color: #00BAFF;\n}\n\nhr {\n  border: 0;\n  background: 1px solid #ddd;\n  height: 1px;\n  margin: 20px 0;\n}\n\npre, tt, code {\n  font-size: 12px; line-height: 16px;\n  font-family: Menlo, Monaco, Consolas, \"Lucida Console\", monospace;\n  margin: 0; padding: 0;\n}\n  .annotation pre {\n    display: block;\n    margin: 0;\n    padding: 7px 10px;\n    background: #fcfcfc;\n    -moz-box-shadow:    inset 0 0 10px rgba(0,0,0,0.1);\n    -webkit-box-shadow: inset 0 0 10px rgba(0,0,0,0.1);\n    box-shadow:         inset 0 0 10px rgba(0,0,0,0.1);\n    overflow-x: auto;\n  }\n    .annotation pre code {\n      border: 0;\n      padding: 0;\n      background: transparent;\n    }\n\n\nblockquote {\n  border-left: 5px solid #ccc;\n  margin: 0;\n  padding: 1px 0 1px 1em;\n}\n  .sections blockquote p {\n    font-family: Menlo, Consolas, Monaco, monospace;\n    font-size: 12px; line-height: 16px;\n    color: #999;\n    margin: 10px 0 0;\n    white-space: pre-wrap;\n  }\n\nul.sections {\n  list-style: none;\n  padding:0 0 5px 0;;\n  margin:0;\n}\n\n/*\n  Force border-box so that % widths fit the parent\n  container without overlap because of margin/padding.\n\n  More Info : http://www.quirksmode.org/css/box.html\n*/\nul.sections > li > div {\n  -moz-box-sizing: border-box;    /* firefox */\n  -ms-box-sizing: border-box;     /* ie */\n  -webkit-box-sizing: border-box; /* webkit */\n  -khtml-box-sizing: border-box;  /* konqueror */\n  box-sizing: border-box;         /* css3 */\n}\n\n\n/*---------------------- Jump Page -----------------------------*/\n#jump_to, #jump_page {\n  margin: 0;\n  background: white;\n  -webkit-box-shadow: 0 0 25px #777; -moz-box-shadow: 0 0 25px #777;\n  -webkit-border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px;\n  font: 16px Arial;\n  cursor: pointer;\n  text-align: right;\n  list-style: none;\n}\n\n#jump_to a {\n  text-decoration: none;\n}\n\n#jump_to a.large {\n  display: none;\n}\n#jump_to a.small {\n  font-size: 22px;\n  font-weight: bold;\n  color: #676767;\n}\n\n#jump_to, #jump_wrapper {\n  position: fixed;\n  right: 0; top: 0;\n  padding: 10px 15px;\n  margin:0;\n}\n\n#jump_wrapper {\n  display: none;\n  padding:0;\n}\n\n#jump_to:hover #jump_wrapper {\n  display: block;\n}\n\n#jump_page {\n  padding: 5px 0 3px;\n  margin: 0 0 25px 25px;\n}\n\n#jump_page .source {\n  display: block;\n  padding: 15px;\n  text-decoration: none;\n  border-top: 1px solid #eee;\n}\n\n#jump_page .source:hover {\n  background: #f5f5ff;\n}\n\n#jump_page .source:first-child {\n}\n\n/*---------------------- Low resolutions (> 320px) ---------------------*/\n@media only screen and (min-width: 320px) {\n  .pilwrap { display: none; }\n\n  ul.sections > li > div {\n    display: block;\n    padding:5px 10px 0 10px;\n  }\n\n  ul.sections > li > div.annotation ul, ul.sections > li > div.annotation ol {\n    padding-left: 30px;\n  }\n\n  ul.sections > li > div.content {\n    background: #f5f5ff;\n    overflow-x:auto;\n    -webkit-box-shadow: inset 0 0 5px #e5e5ee;\n    box-shadow: inset 0 0 5px #e5e5ee;\n    border: 1px solid #dedede;\n    margin:5px 10px 5px 10px;\n    padding-bottom: 5px;\n  }\n\n  ul.sections > li > div.annotation pre {\n    margin: 7px 0 7px;\n    padding-left: 15px;\n  }\n\n  ul.sections > li > div.annotation p tt, .annotation code {\n    display: inline-block;\n    padding: 3px 10px;\n    font-size: 14px;\n    margin-top: 10px;\n    background: #f8f8ff;\n    border: 1px solid #dedede;\n  }\n}\n\n/*----------------------  (> 481px) ---------------------*/\n@media only screen and (min-width: 481px) {\n  #container {\n    position: relative;\n  }\n  body {\n    background-color: #F5F5FF;\n    font-size: 15px;\n    line-height: 21px;\n  }\n  pre, tt, code {\n    line-height: 18px;\n  }\n  p, ul, ol {\n    margin: 0 0 15px;\n  }\n\n\n  #jump_to {\n    padding: 5px 10px;\n  }\n  #jump_wrapper {\n    padding: 0;\n  }\n  #jump_to, #jump_page {\n    font: 10px Arial;\n    text-transform: uppercase;\n  }\n  #jump_page .source {\n    padding: 5px 10px;\n  }\n  #jump_to a.large {\n    display: inline-block;\n  }\n  #jump_to a.small {\n    display: none;\n  }\n\n\n  #background {\n    position: absolute;\n    top: 0; bottom: 0;\n    width: 350px;\n    border-right: 1px solid #e5e5ee;\n    z-index: -1;\n    background: #FCFCFC url(../images/bg.jpg) repeat;\n\n  }\n\n  ul.sections > li > div.annotation ul, ul.sections > li > div.annotation ol {\n    padding-left: 40px;\n  }\n\n  ul.sections > li {\n    white-space: nowrap;\n  }\n\n  ul.sections > li > div {\n    display: inline-block;\n  }\n\n  ul.sections > li > div.annotation {\n    max-width: 350px;\n    min-width: 350px;\n    min-height: 5px;\n    padding: 13px;\n    overflow-x: hidden;\n    white-space: normal;\n    vertical-align: top;\n    text-align: left;\n  }\n  ul.sections > li > div.annotation pre {\n    margin: 15px 0 15px;\n    padding-left: 15px;\n  }\n\n  ul.sections > li > div.content {\n    padding: 13px;\n    vertical-align: top;\n    background: #f5f5ff;\n    border: none;\n    -webkit-box-shadow: none;\n    box-shadow: none;\n  }\n\n  .pilwrap {\n    position: relative;\n    display: inline;\n  }\n\n  .pilcrow {\n    font: 12px Arial;\n    text-decoration: none;\n    color: #454545;\n    position: absolute;\n    top: 3px; left: -20px;\n    padding: 1px 2px;\n    opacity: 0;\n    -webkit-transition: opacity 0.2s linear;\n  }\n    .for-h1 .pilcrow {\n      top: 47px;\n    }\n    .for-h2 .pilcrow, .for-h3 .pilcrow, .for-h4 .pilcrow {\n      top: 35px;\n    }\n\n  ul.sections > li > div.annotation:hover .pilcrow {\n    opacity: 1;\n  }\n}\n\n/*---------------------- (> 1025px) ---------------------*/\n@media only screen and (min-width: 1025px) {\n\n  body {\n    font-size: 16px;\n    line-height: 24px;\n  }\n\n  #background {\n    width: 525px;\n  }\n  ul.sections {\n    padding-top: 50px;\n  }\n  ul.sections > li > div.annotation {\n    max-width: 525px;\n    min-width: 525px;\n    padding: 10px 25px 1px 50px;\n  }\n  ul.sections > li > div.content {\n    padding: 9px 15px 16px 25px;\n  }\n\n  ul.sections p {\n    font-size: 16px;\n    line-height: 1.33;\n  }\n}\n\n/*---------------------- Syntax Highlighting -----------------------------*/\n\ntd.linenos { background-color: #f0f0f0; padding-right: 10px; }\nspan.lineno { background-color: #f0f0f0; padding: 0 5px 0 5px; }\n/*\n\ngithub.com style (c) Vasily Polovnyov <vast@whiteants.net>\n\n*/\n\npre code {\n  display: block; padding: 0.5em;\n  color: #000;\n  background: #f8f8ff\n}\n\npre .comment,\npre .template_comment,\npre .diff .header,\npre .javadoc {\n  color: #408080;\n  font-style: italic\n}\n\npre .keyword,\npre .assignment,\npre .literal,\npre .css .rule .keyword,\npre .winutils,\npre .javascript .title,\npre .lisp .title,\npre .subst {\n  color: #954121;\n  /*font-weight: bold*/\n}\n\npre .number,\npre .hexcolor {\n  color: #40a070\n}\n\npre .string,\npre .tag .value,\npre .phpdoc,\npre .tex .formula {\n  color: #219161;\n}\n\npre .title,\npre .id {\n  color: #19469D;\n}\npre .params {\n  color: #00F;\n}\n\npre .javascript .title,\npre .lisp .title,\npre .subst {\n  font-weight: normal\n}\n\npre .class .title,\npre .haskell .label,\npre .tex .command {\n  color: #458;\n  font-weight: bold\n}\n\npre .tag,\npre .tag .title,\npre .rules .property,\npre .django .tag .keyword {\n  color: #000080;\n  font-weight: normal\n}\n\npre .attribute,\npre .variable,\npre .instancevar,\npre .lisp .body {\n  color: #008080\n}\n\npre .regexp {\n  color: #B68\n}\n\npre .class {\n  color: #458;\n  font-weight: bold\n}\n\npre .symbol,\npre .ruby .symbol .string,\npre .ruby .symbol .keyword,\npre .ruby .symbol .keymethods,\npre .lisp .keyword,\npre .tex .special,\npre .input_number {\n  color: #990073\n}\n\npre .builtin,\npre .constructor,\npre .built_in,\npre .lisp .title {\n  color: #0086b3\n}\n\npre .preprocessor,\npre .pi,\npre .doctype,\npre .shebang,\npre .cdata {\n  color: #999;\n  font-weight: bold\n}\n\npre .deletion {\n  background: #fdd\n}\n\npre .addition {\n  background: #dfd\n}\n\npre .diff .change {\n  background: #0086b3\n}\n\npre .chunk {\n  color: #aaa\n}\n\npre .tex .formula {\n  opacity: 0.5;\n}\n"
  },
  {
    "path": "server/files/stylesheets/library/sidr.css",
    "content": ".sidr{display:none;position:absolute;position:fixed;top:0;height:100%;z-index:999999;width:260px;overflow-x:none;overflow-y:auto;font-family:\"lucida grande\",tahoma,verdana,arial,sans-serif;font-size:15px;background:#f8f8f8;color:#333;-webkit-box-shadow:inset 0 0 5px 5px #ebebeb;-moz-box-shadow:inset 0 0 5px 5px #ebebeb;box-shadow:inset 0 0 5px 5px #ebebeb}.sidr .sidr-inner{padding:0 0 15px}.sidr .sidr-inner>p{margin-left:15px;margin-right:15px}.sidr.right{left:auto;right:-260px}.sidr.left{left:-260px;right:auto}.sidr h1,.sidr h2,.sidr h3,.sidr h4,.sidr h5,.sidr h6{font-size:11px;font-weight:normal;padding:0 15px;margin:0 0 5px;color:#333;line-height:24px;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(100%, #dfdfdf));background-image:-webkit-linear-gradient(#ffffff,#dfdfdf);background-image:-moz-linear-gradient(#ffffff,#dfdfdf);background-image:-o-linear-gradient(#ffffff,#dfdfdf);background-image:linear-gradient(#ffffff,#dfdfdf);-webkit-box-shadow:0 5px 5px 3px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 5px 3px rgba(0,0,0,0.2);box-shadow:0 5px 5px 3px rgba(0,0,0,0.2)}.sidr p{font-size:13px;margin:0 0 12px}.sidr p a{color:rgba(51,51,51,0.9)}.sidr>p{margin-left:15px;margin-right:15px}.sidr ul{display:block;margin:0 0 15px;padding:0;border-top:1px solid #dfdfdf;border-bottom:1px solid #fff}.sidr ul li{display:block;margin:0;line-height:48px;border-top:1px solid #fff;border-bottom:1px solid #dfdfdf}.sidr ul li:hover,.sidr ul li.active,.sidr ul li.sidr-class-active{border-top:none;line-height:49px}.sidr ul li:hover>a,.sidr ul li:hover>span,.sidr ul li.active>a,.sidr ul li.active>span,.sidr ul li.sidr-class-active>a,.sidr ul li.sidr-class-active>span{-webkit-box-shadow:inset 0 0 15px 3px #ebebeb;-moz-box-shadow:inset 0 0 15px 3px #ebebeb;box-shadow:inset 0 0 15px 3px #ebebeb}.sidr ul li a,.sidr ul li span{padding:0 15px;display:block;text-decoration:none;color:#333}.sidr ul li ul{border-bottom:none;margin:0}.sidr ul li ul li{line-height:40px;font-size:13px}.sidr ul li ul li:last-child{border-bottom:none}.sidr ul li ul li:hover,.sidr ul li ul li.active,.sidr ul li ul li.sidr-class-active{border-top:none;line-height:41px}.sidr ul li ul li:hover>a,.sidr ul li ul li:hover>span,.sidr ul li ul li.active>a,.sidr ul li ul li.active>span,.sidr ul li ul li.sidr-class-active>a,.sidr ul li ul li.sidr-class-active>span{-webkit-box-shadow:inset 0 0 15px 3px #ebebeb;-moz-box-shadow:inset 0 0 15px 3px #ebebeb;box-shadow:inset 0 0 15px 3px #ebebeb}.sidr ul li ul li a,.sidr ul li ul li span{color:rgba(51,51,51,0.8);padding-left:30px}.sidr form{margin:0 15px}.sidr label{font-size:13px}.sidr input[type=\"text\"],.sidr input[type=\"password\"],.sidr input[type=\"date\"],.sidr input[type=\"datetime\"],.sidr input[type=\"email\"],.sidr input[type=\"number\"],.sidr input[type=\"search\"],.sidr input[type=\"tel\"],.sidr input[type=\"time\"],.sidr input[type=\"url\"],.sidr textarea,.sidr select{width:100%;font-size:13px;padding:5px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0 0 10px;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;border:none;background:rgba(0,0,0,0.1);color:rgba(51,51,51,0.6);display:block;clear:both}.sidr input[type=checkbox]{width:auto;display:inline;clear:none}.sidr input[type=button],.sidr input[type=submit]{color:#f8f8f8;background:#333}.sidr input[type=button]:hover,.sidr input[type=submit]:hover{background:rgba(51,51,51,0.9)}\n"
  },
  {
    "path": "server/files/stylesheets/library/snap.css",
    "content": "html, body {\n  font-family: sans-serif;\n  margin: 0;\n  padding: 0;\n  width: 100%;\n  height: 100%;\n  overflow: hidden;\n}\n\nbody > .content > .page,\nbody > .content  {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  width: auto;\n  height: auto;\n  z-index: 2;\n  -webkit-overflow-scrolling: touch;\n\n  -webkit-transition:\n    all 0.2s ease\n  ;\n  -moz-transition:\n    all 0.2s ease\n  ;\n  -o-transition:\n    all 0.2s ease\n  ;\n  -ms-transition:\n    all 0.2s ease\n  ;\n  transition:\n    all 0.2s ease\n  ;\n\n  backface-visibility:hidden;\n  -webkit-backface-visibility:hidden; /* Chrome and Safari */\n  -moz-backface-visibility:hidden; /* Firefox */\n  -ms-backface-visibility:hidden; /* Internet Explorer 10+ */\n\n  -webkit-transform: translate3d(0, 0, 0);\n     -moz-transform: translate3d(0, 0, 0);\n      -ms-transform: translate3d(0, 0, 0);\n       -o-transform: translate3d(0, 0, 0);\n          transform: translate3d(0, 0, 0);\n}\nbody > .content > .page {\n  overflow: auto;\n}\n\nbody > .content.drag {\n  -webkit-transition: none;\n  -moz-transition: none;\n  -o-transition: none;\n  -ms-transition: none;\n  transition: none;\n}\n\n.drawers {\n  position: absolute;\n  background-color: #2D2D2D;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  width: auto;\n  height: auto;\n\n}\n\n.drawer {\n  position: absolute;\n  top: 0;\n  right: auto;\n  bottom: 0;\n  left: auto;\n  width: 275px;\n  height: auto;\n  overflow: auto;\n  \n  -webkit-touch-callout: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n\n  -webkit-overflow-scrolling: touch;\n  -webkit-transition: width 0.3s ease;\n     -moz-transition: width 0.3s ease;\n      -ms-transition: width 0.3s ease;\n       -o-transition: width 0.3s ease;\n          transition: width 0.3s ease;\n}\n\n.drawer.left {\n  left: 0;\n  z-index: 1;\n}\n\n.drawer.right {\n  right: 0;\n  z-index: 1;\n}\n"
  },
  {
    "path": "server/files/stylesheets/reset.css",
    "content": "/*! normalize.css v2.1.3 | MIT License | git.io/normalize */\n\n/* ==========================================================================\n   HTML5 display definitions\n   ========================================================================== */\n\n/**\n * Correct `block` display not defined in IE 8/9.\n */\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nnav,\nsection,\nsummary {\n    display: block;\n}\n\n/**\n * Correct `inline-block` display not defined in IE 8/9.\n */\n\naudio,\ncanvas,\nvideo {\n    display: inline-block;\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\n\naudio:not([controls]) {\n    display: none;\n    height: 0;\n}\n\n/**\n * Address `[hidden]` styling not present in IE 8/9.\n * Hide the `template` element in IE, Safari, and Firefox < 22.\n */\n\n[hidden],\ntemplate {\n    display: none;\n}\n\n/* ==========================================================================\n   Base\n   ========================================================================== */\n\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS text size adjust after orientation change, without disabling\n *    user zoom.\n */\n\nhtml {\n    font-family: sans-serif; /* 1 */\n    -ms-text-size-adjust: 100%; /* 2 */\n    -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/**\n * Remove default margin.\n */\n\nbody {\n    margin: 0;\n}\n\n/* ==========================================================================\n   Links\n   ========================================================================== */\n\n/**\n * Remove the gray background color from active links in IE 10.\n */\n\na {\n    background: transparent;\n}\n\n/**\n * Address `outline` inconsistency between Chrome and other browsers.\n */\n\na:focus {\n    outline: thin dotted;\n}\n\n/**\n * Improve readability when focused and also mouse hovered in all browsers.\n */\n\na:active,\na:hover {\n    outline: 0;\n}\n\n/* ==========================================================================\n   Typography\n   ========================================================================== */\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari 5, and Chrome.\n */\n\nh1 {\n    font-size: 2em;\n    margin: 0.67em 0;\n}\n\n/**\n * Address styling not present in IE 8/9, Safari 5, and Chrome.\n */\n\nabbr[title] {\n    border-bottom: 1px dotted;\n}\n\n/**\n * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.\n */\n\nb,\nstrong {\n    font-weight: bold;\n}\n\n/**\n * Address styling not present in Safari 5 and Chrome.\n */\n\ndfn {\n    font-style: italic;\n}\n\n/**\n * Address differences between Firefox and other browsers.\n */\n\nhr {\n    -moz-box-sizing: content-box;\n    box-sizing: content-box;\n    height: 0;\n}\n\n/**\n * Address styling not present in IE 8/9.\n */\n\nmark {\n    background: #ff0;\n    color: #000;\n}\n\n/**\n * Correct font family set oddly in Safari 5 and Chrome.\n */\n\ncode,\nkbd,\npre,\nsamp {\n    font-family: monospace, serif;\n    font-size: 1em;\n}\n\n/**\n * Improve readability of pre-formatted text in all browsers.\n */\n\npre {\n    white-space: pre-wrap;\n}\n\n/**\n * Set consistent quote types.\n */\n\nq {\n    quotes: \"\\201C\" \"\\201D\" \"\\2018\" \"\\2019\";\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\n\nsmall {\n    font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\n\nsub,\nsup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n}\n\nsup {\n    top: -0.5em;\n}\n\nsub {\n    bottom: -0.25em;\n}\n\n/* ==========================================================================\n   Embedded content\n   ========================================================================== */\n\n/**\n * Remove border when inside `a` element in IE 8/9.\n */\n\nimg {\n    border: 0;\n}\n\n/**\n * Correct overflow displayed oddly in IE 9.\n */\n\nsvg:not(:root) {\n    overflow: hidden;\n}\n\n/* ==========================================================================\n   Figures\n   ========================================================================== */\n\n/**\n * Address margin not present in IE 8/9 and Safari 5.\n */\n\nfigure {\n    margin: 0;\n}\n\n/* ==========================================================================\n   Forms\n   ========================================================================== */\n\n/**\n * Define consistent border, margin, and padding.\n */\n\nfieldset {\n    border: 1px solid #c0c0c0;\n    margin: 0 2px;\n    padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\n\nlegend {\n    border: 0; /* 1 */\n    padding: 0; /* 2 */\n}\n\n/**\n * 1. Correct font family not being inherited in all browsers.\n * 2. Correct font size not being inherited in all browsers.\n * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.\n */\n\nbutton,\ninput,\nselect,\ntextarea {\n    font-family: inherit; /* 1 */\n    font-size: 100%; /* 2 */\n    margin: 0; /* 3 */\n}\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\n\nbutton,\ninput {\n    line-height: normal;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.\n * Correct `select` style inheritance in Firefox 4+ and Opera.\n */\n\nbutton,\nselect {\n    text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n *    and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n *    `input` and others.\n */\n\nbutton,\nhtml input[type=\"button\"], /* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n    -webkit-appearance: button; /* 2 */\n    cursor: pointer; /* 3 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\n\nbutton[disabled],\nhtml input[disabled] {\n    cursor: default;\n}\n\n/**\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n    box-sizing: border-box; /* 1 */\n    padding: 0; /* 2 */\n}\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome\n *    (include `-moz` to future-proof).\n */\n\ninput[type=\"search\"] {\n    -webkit-appearance: textfield; /* 1 */\n    -moz-box-sizing: content-box;\n    -webkit-box-sizing: content-box; /* 2 */\n    box-sizing: content-box;\n}\n\n/**\n * Remove inner padding and search cancel button in Safari 5 and Chrome\n * on OS X.\n */\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n    -webkit-appearance: none;\n}\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n    border: 0;\n    padding: 0;\n}\n\n/**\n * 1. Remove default vertical scrollbar in IE 8/9.\n * 2. Improve readability and alignment in all browsers.\n */\n\ntextarea {\n    overflow: auto; /* 1 */\n    vertical-align: top; /* 2 */\n}\n\n/* ==========================================================================\n   Tables\n   ========================================================================== */\n\n/**\n * Remove most spacing between table cells.\n */\n\ntable {\n    border-collapse: collapse;\n    border-spacing: 0;\n}"
  },
  {
    "path": "server/files/stylesheets/rtl.css",
    "content": "/*******************************\n       Right-To-Left\n     (Arabic / Persian)\n*******************************/\n\n\nhtml[lang=\"fa\"],\nhtml[lang=\"ar\"] {\n  direction: rtl;\n}"
  },
  {
    "path": "server/files/stylesheets/shape.css",
    "content": "\n/*******************************\n        Shapes Example\n*******************************/\n\n\n#example.shape .ui.header {\n  clear: both;\n  margin-top: 1rem;\n}\n\n#example .dog.shape {\n  margin: 0em 0em 3em;\n}\n\n#example .dog.shape .side .item {\n  margin: 0em;\n  min-height: 400px;\n}\n#example .dog.two.shape .side {\n  width: 315px;\n}\n#example .dog.two.shape .side:nth-child(n+1),\n#example .dog.two.shape .side:nth-child(n+1) .item {\n  width: 315px;\n}\n#example .dog.two.shape .side:nth-child(n+2),\n#example .dog.two.shape .side:nth-child(n+2) .item {\n  width: 150px;\n}\n#example .dog.two.shape .side:nth-child(n+3),\n#example .dog.two.shape .side:nth-child(n+3) .item {\n  width: 200px;\n}\n\n#example .dog.three.shape .side:nth-child(n+1),\n#example .dog.three.shape .side:nth-child(n+1) .item {\n  width: 215px;\n}\n#example .dog.three.shape .side:nth-child(n+2),\n#example .dog.three.shape .side:nth-child(n+2) .item {\n  width: 350px;\n}\n#example .dog.three.shape .side:nth-child(n+3),\n#example .dog.three.shape .side:nth-child(n+3) .item {\n  width: 140px;\n}\n\n\n#example .demo.shape .side {\n  width: 250px;\n  height: 250px;\n}\n\n#example .demo.shape .side img {\n  display: block;\n  margin: 0px auto;\n  max-width: 100%;\n  max-height: 100%;\n}\n\n#example .demo.shape .first.side {\n  background-color: #EEE0D8;\n}\n#example .demo.shape .second.side {\n  background-color: #EEE6D8;\n}\n#example .demo.shape .third.side {\n  background-color: #D8EED8;\n}\n\n#example .demo.shape .side b {\n  display: block;\n  position: absolute;\n  top: 50%;\n  width: 100%;\n  font-size: 80px;\n  margin-top: -48px;\n  text-align: center;\n}\n\n#example .demo.auto.shape .side {\n  width: auto;\n  height: auto;\n}\n\n#example .irregular.shape .first.side {\n  width: 200px;\n  height: 200px;\n}\n#example .irregular.shape .second.side {\n  width: 300px;\n  height: 300px;\n}\n#example .irregular.shape .third.side {\n  width: 500px;\n  height: 300px;\n}"
  },
  {
    "path": "server/layouts/basic.html.eco",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n\n  <!-- Standard Meta -->\n  <meta charset=\"utf-8\" />\n  <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\" />\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\">\n\n  <link rel=\"image_src\" type=\"image/jpeg\" href=\"images/share.png\" />\n\n  <!-- Site Properties -->\n  <%- @getBlock('meta').toHTML() %>\n  <title><%= @getPreparedTitle() %></title>\n\n  <meta name=\"description\" content=\"<%= @getPreparedDescription() %>\" />\n  <meta name=\"keywords\" content=\"<%= @getPreparedKeywords() %>\" />\n\n  <% if 'development' in @getEnvironments(): %>\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/reset.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/site.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/icon.css\">\n\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/button.css\">\n\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/divider.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/flag.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/header.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/image.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/input.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/label.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/list.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/loader.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/rail.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/reveal.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/segment.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/step.css\">\n\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/breadcrumb.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/form.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/grid.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/menu.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/message.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/table.css\">\n\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/card.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/comment.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/feed.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/item.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/statistic.css\">\n\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/modal.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/accordion.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/dropdown.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/nag.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/popup.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/progress.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/rating.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/sidebar.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/search.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/shape.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/sticky.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/tab.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/checkbox.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/dimmer.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/transition.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/video.css\">\n  <% else: %>\n  <link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/semantic.min.css\">\n  <% end %>\n\n  <link rel=\"stylesheet\" type=\"text/css\" href=\"/stylesheets/doc-icon.css\">\n  <link rel=\"stylesheet\" type=\"text/css\" href=\"/stylesheets/semantic.css\">\n\n  <% if 'development' in @getEnvironments(): %>\n  <script>\n  (function () {\n    var\n      eventSupport = ('querySelector' in document && 'addEventListener' in window)\n      jsonSupport  = (typeof JSON !== 'undefined'),\n      jQuery       = (eventSupport && jsonSupport)\n        ? '/javascript/library/jquery.js'\n        : '/javascript/library/jquery.legacy.js'\n    ;\n    document.write('<script src=\"' + jQuery + '\"><\\/script>');\n  }());\n  </script>\n  <% else: %>\n  <script>\n  (function () {\n    var\n      eventSupport = ('querySelector' in document && 'addEventListener' in window)\n      jsonSupport  = (typeof JSON !== 'undefined'),\n      jQuery       = (eventSupport && jsonSupport)\n        ? '/javascript/library/jquery.min.js'\n        : '/javascript/library/jquery.legacy.min.js'\n    ;\n    document.write('<script src=\"' + jQuery + '\"><\\/script>');\n  }());\n  </script>\n  <% end %>\n  <script src=\"/javascript/library/history.js\"></script>\n  <script src=\"/javascript/library/easing.js\"></script>\n  <script src=\"/javascript/library/ace/ace.js\"></script>\n  <script src=\"/javascript/library/tablesort.js\"></script>\n  <script src=\"/javascript/library/typing.js\"></script>\n\n  <% if 'development' in @getEnvironments(): %>\n  <script src=\"/dist/components/site.js\"></script>\n  <script src=\"/dist/components/behaviors/api.js\"></script>\n  <script src=\"/dist/components/behaviors/visibility.js\"></script>\n  <script src=\"/dist/components/behaviors/state.js\"></script>\n  <script src=\"/dist/components/accordion.js\"></script>\n  <script src=\"/dist/components/checkbox.js\"></script>\n  <script src=\"/dist/components/dimmer.js\"></script>\n  <script src=\"/dist/components/dropdown.js\"></script>\n  <script src=\"/dist/components/modal.js\"></script>\n  <script src=\"/dist/components/nag.js\"></script>\n  <script src=\"/dist/components/popup.js\"></script>\n  <script src=\"/dist/components/progress.js\"></script>\n  <script src=\"/dist/components/rating.js\"></script>\n  <script src=\"/dist/components/search.js\"></script>\n  <script src=\"/dist/components/shape.js\"></script>\n  <script src=\"/dist/components/sidebar.js\"></script>\n  <script src=\"/dist/components/sticky.js\"></script>\n  <script src=\"/dist/components/tab.js\"></script>\n  <script src=\"/dist/components/transition.js\"></script>\n  <script src=\"/dist/components/video.js\"></script>\n  <% else: %>\n  <script src=\"/dist/definitions/javascript/semantic.min.js\"></script>\n  <% end %>\n\n  <script src=\"/javascript/semantic.js\"></script>\n  <script>\n    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),\n    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n\n    ga('create', 'UA-44039803-2', 'auto');\n    ga('send', 'pageview');\n\n  </script>\n  <script type=\"text/javascript\">\n    window.liveSettings = {\n      api_key    : '9ede3015b9f84c1aabc81ab839c55d74',\n      parse_attr : [\n        'data-title',\n        'data-content'\n      ],\n      detectlang   : true,\n      autocollect  : true,\n      ignore_tags  : ['i'],\n      parse_attr   : ['data-title', 'data-content', 'data-text'],\n      ignore_class : [\"code\", \"ace_editor\"]\n    };\n  </script>\n  <script type=\"text/javascript\" src=\"http://cdn.transifex.com/live.js\"></script>\n</head>\n<body id=\"example\" class=\"pushable <%= @document.css %>\" ontouchstart=\"\">\n  <%- @content %>\n  <script src=\"/javascript/library/less.js\"></script>\n</body>\n\n</html>"
  },
  {
    "path": "server/layouts/blank.html.eco",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <%- @partial('meta') %>\n  <%- @partial('library-javascript') %>\n  <%- @partial('ui-javascript') %>\n  <%- @partial('ui-css') %>\n</head>\n<body class=\"<%= @document.css %>\" ontouchstart=\"\">\n  <%- @content %>\n</body>\n</html>"
  },
  {
    "path": "server/layouts/default.html.eco",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <%- @partial('meta') %>\n  <%- @partial('javascript') %>\n  <%- @partial('css') %>\n  <%- @partial('tracking') %>\n  <%- @partial('site-ads') %>\n  <%- @partial('transifex') %>\n</head>\n<body id=\"example\" class=\"<%= @document.css %>\" ontouchstart=\"\">\n  <% if @document.element is 'sidebar': %>\n  <%- @partial('demo-sidebar') %>\n  <% end %>\n  <%- @partial('sidebar') %>\n  <%- @partial('fixed-menu') %>\n  <div class=\"pusher\">\n    <div class=\"full height\">\n      <div class=\"toc\">\n        <div class=\"ui vertical inverted menu\">\n          <%- @partial('site-menu') %>\n        </div>\n      </div>\n      <div class=\"article\">\n        <%- @content %>\n        <%- @partial('footer') %>\n      </div>\n    </div>\n  </div>\n  <%- @partial('language-modal') %>\n  <%- @partial('dimmer-demo') %>\n  <%- @partial('less') %>\n</body>\n</html>\n"
  },
  {
    "path": "server/layouts/homepage.html.eco",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n  <%- @partial('meta') %>\n  <%- @partial('css') %>\n\n  <link rel=\"stylesheet\" type=\"text/css\" href=\"/stylesheets/home.css\">\n  <link rel=\"stylesheet/less\" type=\"text/css\" href=\"/src/definitions/elements/button.less\" />\n\n  <%- @partial('tracking') %>\n</head>\n<body id=\"example\" class=\"<%= @document.css %>\" ontouchstart=\"\">\n\n  <%- @partial('sidebar') %>\n  <%- @partial('fixed-menu') %>\n\n  <div class=\"pusher\">\n    <div class=\"full height\">\n      <%- @content %>\n    </div>\n    <%- @partial('footer') %>\n  </div>\n\n  <%- @partial('language-modal') %>\n\n  <% if 'development' in @getEnvironments(): %>\n  <script>\n  (function () {\n    var\n      eventSupport = ('querySelector' in document && 'addEventListener' in window)\n      jsonSupport  = (typeof JSON !== 'undefined'),\n      jQuery       = (eventSupport && jsonSupport)\n        ? '/javascript/library/jquery.js'\n        : '/javascript/library/jquery.legacy.js'\n    ;\n    document.write('<script src=\"' + jQuery + '\"><\\/script>');\n  }());\n  </script>\n  <% else: %>\n  <script>\n  (function () {\n    var\n      eventSupport = ('querySelector' in document && 'addEventListener' in window)\n      jsonSupport  = (typeof JSON !== 'undefined'),\n      jQuery       = (eventSupport && jsonSupport)\n        ? '/javascript/library/jquery.min.js'\n        : '/javascript/library/jquery.legacy.min.js'\n    ;\n    document.write('<script src=\"' + jQuery + '\"><\\/script>');\n  }());\n  </script>\n  <% end %>\n\n  <%- @partial('transifex') %>\n  <script src=\"/javascript/library/highlight.min.js\"></script>\n  <script src=\"/javascript/library/easing.min.js\"></script>\n  <%- @partial('ui-javascript') %>\n  <script src=\"/javascript/docs.js\"></script>\n  <script src=\"/javascript/home.js\"></script>\n  <%- @partial('less') %>\n</body>\n\n</html>"
  },
  {
    "path": "server/layouts/none.html.eco",
    "content": "\n  <%- @content %>"
  },
  {
    "path": "server/partials/css.html.eco",
    "content": "<%- @partial('ui-css') %>\n<%- @partial('docs-css') %>\n\n"
  },
  {
    "path": "server/partials/demo-sidebar.html",
    "content": "<div class=\"ui simple sidebar inverted vertical menu\">\n  <a class=\"item\">\n    1\n  </a>\n  <a class=\"item\">\n    2\n  </a>\n  <a class=\"item\">\n    3\n  </a>\n</div>\n\n<div class=\"ui left demo vertical inverted labeled icon sidebar menu\">\n  <a class=\"item\">\n    <i class=\"home icon\"></i>\n    Home\n  </a>\n  <a class=\"item\">\n    <i class=\"block layout icon\"></i>\n    Topics\n  </a>\n  <a class=\"item\">\n    <i class=\"smile icon\"></i>\n    Friends\n  </a>\n</div>\n\n<div class=\"ui right demo sidebar vertical inverted menu\">\n  <a class=\"header item\">File Permissions</a>\n  <a class=\"item\">Share on Social</a>\n  <a class=\"item\">Share by E-mail</a>\n  <a class=\"item\">Edit Permissions</a>\n  <a class=\"item\">Delete Permanently</a>\n</div>\n\n<div class=\"ui top demo sidebar ui segment\">\n  <div class=\"ui center aligned page grid\">\n    <div class=\"one column row\">\n      <div class=\"sixteen wide column\">\n        <h3 class=\"ui header\">New Content Awaits</h3>\n      </div>\n    </div>\n    <div class=\"three column divided row\">\n      <div class=\"column\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/media-paragraph.png\">\n      </div>\n      <div class=\"column\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/media-paragraph.png\">\n      </div>\n      <div class=\"column\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/media-paragraph.png\">\n      </div>\n    </div>\n  </div>\n</div>\n\n<div class=\"ui bottom demo inverted nine item labeled icon sidebar menu\">\n  <a class=\"item\">\n    <i class=\"home icon\"></i>\n    Home\n  </a>\n  <a class=\"item\">\n    <i class=\"block layout icon\"></i>\n    Topics\n  </a>\n  <a class=\"item\">\n    <i class=\"smile icon\"></i>\n    Friends\n  </a>\n  <a class=\"item\">\n    <i class=\"calendar icon\"></i>\n    History\n  </a>\n  <a class=\"item\">\n    <i class=\"mail icon\"></i>\n    Messages\n  </a>\n  <a class=\"item\">\n    <i class=\"chat icon\"></i>\n    Discussions\n  </a>\n  <a class=\"item\">\n    <i class=\"trophy icon\"></i>\n    Achievements\n  </a>\n  <a class=\"item\">\n    <i class=\"shop icon\"></i>\n    Store\n  </a>\n  <a class=\"item\">\n    <i class=\"settings icon\"></i>\n    Settings\n  </a>\n</div>\n"
  },
  {
    "path": "server/partials/dimmer-demo.html",
    "content": "<div class=\"ui demo page dimmer\">\n  <div class=\"content\">\n    <div class=\"center\">\n      <h2 class=\"ui inverted icon header\">\n        <i class=\"mail icon\"></i>\n        Dimmer Message\n        <div class=\"sub header\">Dimmer sub-header</div>\n      </h2>\n    </div>\n  </div>\n</div>"
  },
  {
    "path": "server/partials/docs-css.html.eco",
    "content": "<% if 'development' in @getEnvironments(): %>\n\n<link rel=\"stylesheet\" type=\"text/css\" href=\"/stylesheets/docs.css\">\n<link rel=\"stylesheet\" type=\"text/css\" href=\"/stylesheets/rtl.css\">\n\n<% else: %>\n\n<link rel=\"stylesheet\" type=\"text/css\" href=\"/stylesheets/docs.css\">\n<link rel=\"stylesheet\" type=\"text/css\" href=\"/stylesheets/rtl.css\">\n\n<% end %>\n"
  },
  {
    "path": "server/partials/examples/accordion.html",
    "content": "<div class=\"ui vertical accordion menu\">\n  <div class=\"item\">\n    <a class=\"active title\">\n      <i class=\"dropdown icon\"></i>\n      Menu Item\n    </a>\n    <div class=\"active content\">\n      <div class=\"ui form\">\n        <div class=\"grouped fields\">\n          <div class=\"field\">\n            <div class=\"ui radio checkbox\">\n              <input type=\"radio\" value=\"small\">\n              <label>Choice 1</label>\n            </div>\n          </div>\n          <div class=\"field\">\n            <div class=\"ui radio checkbox\">\n              <input type=\"radio\" value=\"medium\">\n              <label>Choice 2</label>\n            </div>\n          </div>\n          <div class=\"field\">\n            <div class=\"ui radio checkbox\">\n              <input type=\"radio\" value=\"large\">\n              <label>Choice 3</label>\n            </div>\n          </div>\n          <div class=\"field\">\n            <div class=\"ui radio checkbox\">\n              <input type=\"radio\" value=\"x-large\">\n              <label>Choice 4</label>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"item\">\n    <a class=\"title\">\n      <i class=\"dropdown icon\"></i>\n      Menu Item\n    </a>\n    <div class=\"content\">\n      <div class=\"ui form\">\n        <div class=\"grouped fields\">\n          <div class=\"field\">\n            <div class=\"ui radio checkbox\">\n              <input type=\"radio\" value=\"small\">\n              <label>Choice A</label>\n            </div>\n          </div>\n          <div class=\"field\">\n            <div class=\"ui radio checkbox\">\n              <input type=\"radio\" value=\"medium\">\n              <label>Choice B</label>\n            </div>\n          </div>\n          <div class=\"field\">\n            <div class=\"ui radio checkbox\">\n              <input type=\"radio\" value=\"large\">\n              <label>Choice C</label>\n            </div>\n          </div>\n          <div class=\"field\">\n            <div class=\"ui radio checkbox\">\n              <input type=\"radio\" value=\"x-large\">\n              <label>Choice D</label>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n\n<div class=\"ui divider\"></div>\n\n<div class=\"ui accordion\">\n  <div class=\"active ui header title\">\n    <i class=\"dropdown icon\"></i>\n    FAQ Question 1?\n  </div>\n  <div class=\"active content\">\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n  </div>\n  <div class=\"ui header title\">\n    <i class=\"dropdown icon\"></i>\n    FAQ Question 2?\n  </div>\n  <div class=\"content\">\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n  </div>\n  <div class=\"ui header title\">\n    <i class=\"dropdown icon\"></i>\n    FAQ Question 3?\n  </div>\n  <div class=\"content\">\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n  </div>\n</div>\n\n<div class=\"ui divider\"></div>\n\n<div class=\"ui styled accordion\">\n  <div class=\"active title\">\n    <i class=\"dropdown icon\"></i>\n    Title\n  </div>\n  <div class=\"active content\">\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n  </div>\n  <div class=\"title\">\n    <i class=\"dropdown icon\"></i>\n    Title\n  </div>\n  <div class=\"content\">\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n  </div>\n  <div class=\"title\">\n    <i class=\"dropdown icon\"></i>\n    Title\n  </div>\n  <div class=\"content\">\n    <img class=\"ui wireframe image\" src=\"/images/wireframe/paragraph.png\">\n  </div>\n</div>\n\n<script type=\"text/javascript\">\n$(document)\n  .ready(function(){\n    $('.demo .example .ui.accordion')\n      .accordion()\n    ;\n  })\n;\n</script>"
  },
  {
    "path": "server/partials/examples/breadcrumb.html",
    "content": "<div class=\"ui large breadcrumb\">\n  <a class=\"section\">Home</a>\n  <div class=\"divider\"> / </div>\n  <a class=\"section\">Store</a>\n  <div class=\"divider\"> / </div>\n  <div class=\"active section\">T-Shirt</div>\n</div>\n<div class=\"ui hidden divider\"></div>\n<div class=\"ui large breadcrumb\">\n  <a class=\"section\">Home</a>\n  <i class=\"right chevron icon divider\"></i>\n  <a class=\"section\">Registration</a>\n  <i class=\"right chevron icon divider\"></i>\n  <div class=\"active section\">Personal Information</div>\n</div>"
  },
  {
    "path": "server/partials/examples/button.html",
    "content": "<div class=\"button demo\">\n  <div class=\"ui button\">\n    View\n  </div>\n  <div class=\"ui primary button\">\n    <i class=\"shop icon\"></i> Add to Cart\n  </div>\n  <div class=\"ui secondary button\">\n    <i class=\"save icon\"></i> Save for Later\n  </div>\n  <div class=\"ui labeled icon button\">\n    <i class=\"star icon\"></i>\n    Rate\n  </div>\n  <div class=\"ui basic button\">Basic</div>\n\n  <div class=\"ui hidden divider\"></div>\n\n  <div class=\"ui animated button\">\n    <div class=\"visible content\">Horizontal</div>\n    <div class=\"hidden content\">\n      Hidden\n    </div>\n  </div>\n  <div class=\"ui vertical animated button\">\n    <div class=\"visible content\">Vertical</div>\n    <div class=\"hidden content\">\n      Hidden\n    </div>\n  </div>\n  <div class=\"ui animated fade button\">\n    <div class=\"visible content\">Fade In</div>\n    <div class=\"hidden content\">\n      Hidden\n    </div>\n  </div>\n\n  <div class=\"ui hidden divider\"></div>\n\n  <div class=\"ui facebook button\">\n    <i class=\"facebook icon\"></i>\n    Facebook\n  </div>\n  <div class=\"ui twitter button\">\n    <i class=\"twitter icon\"></i>\n    Twitter\n  </div>\n  <div class=\"ui google plus button\">\n    <i class=\"google plus icon\"></i>\n    Google Plus\n  </div>\n\n  <div class=\"ui hidden divider\"></div>\n  <div class=\"ui buttons\">\n    <div class=\"ui button\">1</div>\n    <div class=\"ui button\">2</div>\n    <div class=\"ui button\">3</div>\n  </div>\n\n\n  <div class=\"ui buttons\">\n    <div class=\"ui button\">Cancel</div>\n    <div class=\"or\"></div>\n    <div class=\"ui positive button\">Save</div>\n  </div>\n\n  <div class=\"ui icon buttons\">\n    <div class=\"ui button\"><i class=\"align left icon\"></i></div>\n    <div class=\"ui button\"><i class=\"align center icon\"></i></div>\n    <div class=\"ui button\"><i class=\"align right icon\"></i></div>\n    <div class=\"ui button\"><i class=\"align justify icon\"></i></div>\n  </div>\n  <div class=\"ui hidden divider\"></div>\n  <div class=\"ui blue button\">Blue</div>\n  <div class=\"ui red button\">Red</div>\n  <div class=\"ui teal button\">Teal</div>\n  <div class=\"ui blue basic button\">Blue</div>\n  <div class=\"ui red basic button\">Red</div>\n  <div class=\"ui teal basic button\">Teal</div>\n\n  <div class=\"ui inverted segment\">\n    <div class=\"ui inverted button\">Inverted</div>\n    <div class=\"ui inverted blue button\">Blue</div>\n    <div class=\"ui inverted red button\">Red</div>\n    <div class=\"ui inverted basic button\">Basic</div>\n    <div class=\"ui inverted blue basic button\">Blue</div>\n    <div class=\"ui inverted red basic button\">Red</div>\n  </div>\n\n  <div class=\"ui hidden divider\"></div>\n\n  <div class=\"ui vertical buttons\">\n    <div class=\"ui button\">Feed</div>\n    <div class=\"ui button\">Messages</div>\n    <div class=\"ui button\">Events</div>\n    <div class=\"ui button\">Photos</div>\n  </div>\n\n  <div class=\"ui vertical buttons\">\n    <div class=\"ui button\">1</div>\n    <div class=\"ui button\">2</div>\n    <div class=\"ui button\">3</div>\n  </div>\n\n  <div class=\"ui vertical icon buttons\">\n    <div class=\"ui button\"><i class=\"align left icon\"></i></div>\n    <div class=\"ui button\"><i class=\"align center icon\"></i></div>\n    <div class=\"ui button\"><i class=\"align right icon\"></i></div>\n    <div class=\"ui button\"><i class=\"align justify icon\"></i></div>\n  </div>\n\n</div>\n<script type=\"text/javascript\">\n$('.button.demo .follow')\n  .state({\n    text: {\n      inactive : 'Follow',\n      active   : 'Following'\n    }\n  })\n;\n</script>"
  },
  {
    "path": "server/partials/examples/card.html",
    "content": "<div class=\"ui card\">\n  <div class=\"image\">\n    <div class=\"ui dimmer\">\n      <div class=\"content\">\n        <div class=\"center\">\n          <div class=\"ui inverted button\">Add Friend</div>\n        </div>\n      </div>\n    </div>\n    <img src=\"/images/wireframe/image.png\">\n  </div>\n  <div class=\"content\">\n    <div class=\"header\">Title</div>\n    <div class=\"meta\">\n      <a class=\"group\">Meta</a>\n    </div>\n    <div class=\"description\">One or two sentence description that may go to several lines</div>\n  </div>\n  <div class=\"extra content\">\n    <a class=\"right floated created\">Arbitrary</a>\n    <a class=\"friends\">\n      Arbitrary</a>\n  </div>\n</div>\n<div class=\"ui card\">\n  <div class=\"content\">\n    <div class=\"header\">\n      <img src=\"/images/wireframe/square-image.png\" class=\"ui avatar image\">\n      Abbreviated Header\n    </div>\n    <div class=\"description\">\n      Short Description\n    </div>\n  </div>\n  <div class=\"ui two bottom attached buttons\">\n    <div class=\"ui button\">\n      Action 1\n    </div>\n    <div class=\"ui button\">\n      Action 2\n    </div>\n  </div>\n</div>\n<div class=\"ui four cards\">\n  <div class=\"card\">\n    <div class=\"image\">\n      <a class=\"ui corner red label\"><i class=\"heart icon\"></i></a>\n      <img src=\"/images/wireframe/white-image.png\">\n    </div>\n  </div>\n  <div class=\"card\">\n    <div class=\"image\">\n      <a class=\"ui corner red label\"><i class=\"heart icon\"></i></a>\n      <img src=\"/images/wireframe/white-image.png\">\n    </div>\n  </div>\n  <div class=\"card\">\n    <div class=\"image\">\n      <a class=\"ui corner red label\"><i class=\"heart icon\"></i></a>\n      <img src=\"/images/wireframe/white-image.png\">\n    </div>\n  </div>\n  <div class=\"card\">\n    <div class=\"image\">\n      <a class=\"ui corner red label\"><i class=\"heart icon\"></i></a>\n      <img src=\"/images/wireframe/white-image.png\">\n    </div>\n  </div>\n</div>\n<div class=\"ui four cards\">\n  <div class=\"card\">\n    <div class=\"image\">\n      <img src=\"/images/wireframe/image.png\">\n    </div>\n    <div class=\"extra\">\n      <div data-rating=\"4\" class=\"ui star rating\"></div>\n    </div>\n  </div>\n  <div class=\"card\">\n    <div class=\"image\">\n      <img src=\"/images/wireframe/image.png\">\n    </div>\n    <div class=\"extra\">\n      <div data-rating=\"2\" class=\"ui star rating\"></div>\n    </div>\n  </div>\n  <div class=\"card\">\n    <div class=\"image\">\n      <img src=\"/images/wireframe/image.png\">\n    </div>\n    <div class=\"extra\">\n      <div data-rating=\"3\" class=\"ui star rating\"></div>\n    </div>\n  </div>\n  <div class=\"card\">\n    <div class=\"image\">\n      <img src=\"/images/wireframe/image.png\">\n    </div>\n    <div class=\"extra\">\n      <div data-rating=\"4\" class=\"ui star rating\"></div>\n    </div>\n  </div>\n</div>\n\n<script type=\"text/javascript\">\n$(document)\n  .ready(function(){\n    $('.demo .star.rating')\n      .rating()\n    ;\n    $('.demo .card .dimmer')\n      .dimmer({\n        on: 'hover'\n      })\n    ;\n  })\n;\n</script>\n"
  },
  {
    "path": "server/partials/examples/checkbox.html",
    "content": "<div class=\"ui checkbox\">\n  <input type=\"checkbox\" name=\"fun\">\n  <label>Checkbox</label>\n</div>\n\n<div class=\"ui hidden divider\"></div>\n<div class=\"ui form\">\n  <div class=\"inline fields\">\n    <div class=\"field\">\n      <div class=\"ui radio checkbox\">\n        <input type=\"radio\" name=\"fruit\" checked=\"checked\" />\n        <label>A</label>\n      </div>\n    </div>\n    <div class=\"field\">\n      <div class=\"ui radio checkbox\">\n        <input type=\"radio\" name=\"fruit\" />\n        <label>B</label>\n      </div>\n    </div>\n    <div class=\"field\">\n      <div class=\"ui radio checkbox\">\n        <input type=\"radio\" name=\"fruit\" />\n        <label>C</label>\n      </div>\n    </div>\n    <div class=\"field\">\n      <div class=\"ui radio checkbox\">\n        <input type=\"radio\" name=\"fruit\" />\n        <label>D</label>\n      </div>\n    </div>\n  </div>\n</div>\n\n<div class=\"ui hidden divider\"></div>\n<div class=\"ui slider checkbox\">\n  <input type=\"checkbox\" name=\"newsletter\">\n  <label>Slider</label>\n</div>\n\n<div class=\"ui hidden divider\"></div>\n<div class=\"ui toggle checkbox\">\n  <input type=\"checkbox\" name=\"public\">\n  <label>Toggle</label>\n</div>\n\n<script type=\"text/javascript\">\n$(document)\n  .ready(function(){\n    $('.demo .ui.checkbox')\n      .checkbox()\n    ;\n  })\n;\n</script>"
  },
  {
    "path": "server/partials/examples/content-loader.html",
    "content": "\n    <div class=\"ui primary ignored button\">Simulate Loading</div>\n    <div class=\"ui ignored divider\"></div>\n    <div class=\"ui three doubling stackable cards\">\n      <div class=\"ui card\">\n        <div class=\"image\">\n          <div class=\"ui placeholder\">\n            <div class=\"square image\"></div>\n          </div>\n        </div>\n        <div class=\"content\">\n          <div class=\"ui placeholder\">\n            <div class=\"header\">\n              <div class=\"very short line\"></div>\n              <div class=\"medium line\"></div>\n            </div>\n            <div class=\"paragraph\">\n              <div class=\"short line\"></div>\n            </div>\n          </div>\n        </div>\n        <div class=\"extra content\">\n          <div class=\"ui disabled primary button\">Add</div>\n          <div class=\"ui disabled button\">Delete</div>\n        </div>\n      </div>\n    </div>\n    <div class=\"ui ignored card\">\n      <div class=\"image\">\n        <img src=\"/images/avatar2/large/lindsay.png\">\n      </div>\n      <div class=\"content\">\n        <a class=\"header\">Lindsay</a>\n        <div class=\"meta\">\n          <span class=\"date\">Joined in 2013</span>\n        </div>\n        <div class=\"description\">\n          Primary Contact\n        </div>\n      </div>\n      <div class=\"extra content\">\n        <div class=\"ui primary button\">Add</div>\n        <div class=\"ui button\">Delete</div>\n      </div>\n    </div>\n"
  },
  {
    "path": "server/partials/examples/dimmer.html",
    "content": "<div class=\"dimmer demo\">\n  <div class=\"ui segment\">\n    <h3 class=\"ui header\">\n      Dimmable Section\n    </h3>\n    <div class=\"ui small images\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n    </div>\n    <img class=\"ui medium wireframe image\" src=\"/images/wireframe/media-paragraph.png\">\n    <div class=\"ui dimmer\"></div>\n  </div>\n  <div class=\"ui ignored ignored icon buttons\">\n    <div class=\"ui show button\"><i class=\"plus icon\"></i></div>\n    <div class=\"ui hide button\"><i class=\"minus icon\"></i></div>\n  </div>\n</div>\n<div class=\"dimmer demo\">\n  <div class=\"ui segment\">\n    <h3 class=\"ui header\">\n      Inverted Dimmer\n    </h3>\n    <div class=\"ui small images\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n    </div>\n    <img class=\"ui medium wireframe image\" src=\"/images/wireframe/media-paragraph.png\">\n    <div class=\"ui inverted dimmer\"></div>\n  </div>\n  <div class=\"ui ignored ignored icon buttons\">\n    <div class=\"ui show button\"><i class=\"plus icon\"></i></div>\n    <div class=\"ui hide button\"><i class=\"minus icon\"></i></div>\n  </div>\n</div>\n<div class=\"dimmer demo\">\n  <div class=\"ui segment\">\n    <h3 class=\"ui header\">\n      Dimmer With Content\n    </h3>\n    <div class=\"ui small images\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n      <img class=\"ui wireframe image\" src=\"/images/wireframe/image.png\">\n    </div>\n    <img class=\"ui medium wireframe image\" src=\"/images/wireframe/media-paragraph.png\">\n    <div class=\"ui dimmer\">\n      <div class=\"content\">\n        <div class=\"center\">\n          <h2 class=\"ui inverted icon header\">\n            <i class=\"heart icon\"></i>\n            Dimmed Message!\n          </h2>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"ui ignored ignored icon buttons\">\n    <div class=\"ui show button\"><i class=\"plus icon\"></i></div>\n    <div class=\"ui hide button\"><i class=\"minus icon\"></i></div>\n  </div>\n</div>\n<div class=\"dimmer demo\">\n  <div class=\"ui page button\">\n    <i class=\"plus icon\"></i> Page Dimmer\n  </div>\n</div>\n\n<style type=\"text/css\">\n  .dimmer.demo:not(.page) {\n    margin: 2em 0em;\n  }\n  h4 + .dimmer.demo {\n    margin-top: 0em;\n  }\n</style>\n<script type=\"text/javascript\">\n$(document)\n  .ready(function() {\n\n    // selector cache\n    var\n      $pageDimmer = $('.demo.page.dimmer'),\n      $demo       = $('.dimmer.demo'),\n      $showButton = $demo.find('.show.button'),\n      $pageButton = $demo.find('.page.button'),\n      $hideButton = $demo.find('.hide.button'),\n      // alias\n      handler\n    ;\n\n    // event handlers\n    handler = {\n      show: function() {\n        $(this)\n          .closest('.demo')\n            .find('.segment')\n              .dimmer('show')\n        ;\n      },\n      hide: function() {\n        $(this)\n          .closest('.demo')\n            .find('.segment')\n              .dimmer('hide')\n        ;\n      },\n      page: function() {\n        $('body > .demo.page.dimmer')\n          .dimmer('show')\n        ;\n      }\n    };\n\n    $pageDimmer\n      .dimmer()\n    ;\n\n    $pageButton\n      .on('click', handler.page)\n    ;\n    $showButton\n      .on('click', handler.show)\n    ;\n    $hideButton\n      .on('click', handler.hide)\n    ;\n\n  })\n;\n</script>"
  },
  {
    "path": "server/partials/examples/divider.html",
    "content": "<div class=\"ui center aligned segment\">\n  <div class=\"ui button\">A</div>\n  <div class=\"ui horizontal divider\">and</div>\n  <div class=\"teal ui button\">B</div>\n</div>\n\n<div class=\"ui two column stackable center aligned grid segment\">\n  <div class=\"column\">\n    <div class=\"ui button\">A</div>\n  </div>\n  <div class=\"ui vertical divider\">or</div>\n  <div class=\"column\">\n    <div class=\"teal ui button\">B</div>\n  </div>\n</div>\n\n<div class=\"ui horizontal divider\">\n  <i class=\"heart icon\"></i>\n</div>\n\n<h5 class=\"ui horizontal header divider\">\n  <i class=\"bar chart icon\"></i>\n  Specifications\n</h5>\n\n<div class=\"ui inverted segment\">\n  <p>A</p>\n  <div class=\"ui inverted divider\"></div>\n  <p>B</p>\n</div>"
  },
  {
    "path": "server/partials/examples/dropdown.html",
    "content": "<div class=\"ui floating dropdown labeled search icon button\">\n  <i class=\"world icon\"></i>\n  <span class=\"text\">Select Language</span>\n  <div class=\"menu\">\n    <div class=\"item\">Arabic</div>\n    <div class=\"item\">Chinese</div>\n    <div class=\"item\">Danish</div>\n    <div class=\"item\">Dutch</div>\n    <div class=\"item\">English</div>\n    <div class=\"item\">French</div>\n    <div class=\"item\">German</div>\n    <div class=\"item\">Greek</div>\n    <div class=\"item\">Hungarian</div>\n    <div class=\"item\">Italian</div>\n    <div class=\"item\">Japanese</div>\n    <div class=\"item\">Korean</div>\n    <div class=\"item\">Lithuanian</div>\n    <div class=\"item\">Persian</div>\n    <div class=\"item\">Polish</div>\n    <div class=\"item\">Portuguese</div>\n    <div class=\"item\">Russian</div>\n    <div class=\"item\">Spanish</div>\n    <div class=\"item\">Swedish</div>\n    <div class=\"item\">Turkish</div>\n    <div class=\"item\">Vietnamese</div>\n  </div>\n</div>\n<div class=\"ui search selection dropdown\">\n  <input type=\"hidden\" name=\"country\">\n  <i class=\"dropdown icon\"></i>\n  <div class=\"default text\">Select Country</div>\n  <div class=\"menu\">\n    <div data-value=\"ad\" class=\"item\"><i class=\"ad flag\"></i>Andorra</div>\n    <div data-value=\"ae\" class=\"item\"><i class=\"ae flag\"></i>U.A.E</div>\n    <div data-value=\"af\" class=\"item\"><i class=\"af flag\"></i>Afghanistan</div>\n    <div data-value=\"ag\" class=\"item\"><i class=\"ag flag\"></i>Antigua</div>\n    <div data-value=\"ai\" class=\"item\"><i class=\"ai flag\"></i>Anguilla</div>\n    <div data-value=\"al\" class=\"item\"><i class=\"al flag\"></i>Albania</div>\n    <div data-value=\"am\" class=\"item\"><i class=\"am flag\"></i>Armenia</div>\n    <div data-value=\"an\" class=\"item\"><i class=\"an flag\"></i>Netherlands Antilles</div>\n    <div data-value=\"ao\" class=\"item\"><i class=\"ao flag\"></i>Angola</div>\n    <div data-value=\"ar\" class=\"item\"><i class=\"ar flag\"></i>Argentina</div>\n    <div data-value=\"as\" class=\"item\"><i class=\"as flag\"></i>American Samoa</div>\n    <div data-value=\"at\" class=\"item\"><i class=\"at flag\"></i>Austria</div>\n    <div data-value=\"au\" class=\"item\"><i class=\"au flag\"></i>Australia</div>\n    <div data-value=\"aw\" class=\"item\"><i class=\"aw flag\"></i>Aruba</div>\n    <div data-value=\"ax\" class=\"item\"><i class=\"ax flag\"></i>Aland Islands</div>\n    <div data-value=\"az\" class=\"item\"><i class=\"az flag\"></i>Azerbaijan</div>\n    <div data-value=\"ba\" class=\"item\"><i class=\"ba flag\"></i>Bosnia</div>\n    <div data-value=\"bb\" class=\"item\"><i class=\"bb flag\"></i>Barbados</div>\n    <div data-value=\"bd\" class=\"item\"><i class=\"bd flag\"></i>Bangladesh</div>\n    <div data-value=\"be\" class=\"item\"><i class=\"be flag\"></i>Belgium</div>\n    <div data-value=\"bf\" class=\"item\"><i class=\"bf flag\"></i>Burkina Faso</div>\n    <div data-value=\"bg\" class=\"item\"><i class=\"bg flag\"></i>Bulgaria</div>\n    <div data-value=\"bh\" class=\"item\"><i class=\"bh flag\"></i>Bahrain</div>\n    <div data-value=\"bi\" class=\"item\"><i class=\"bi flag\"></i>Burundi</div>\n    <div data-value=\"bj\" class=\"item\"><i class=\"bj flag\"></i>Benin</div>\n    <div data-value=\"bm\" class=\"item\"><i class=\"bm flag\"></i>Bermuda</div>\n    <div data-value=\"bn\" class=\"item\"><i class=\"bn flag\"></i>Brunei</div>\n    <div data-value=\"bo\" class=\"item\"><i class=\"bo flag\"></i>Bolivia</div>\n    <div data-value=\"br\" class=\"item\"><i class=\"br flag\"></i>Brazil</div>\n    <div data-value=\"bs\" class=\"item\"><i class=\"bs flag\"></i>Bahamas</div>\n    <div data-value=\"bt\" class=\"item\"><i class=\"bt flag\"></i>Bhutan</div>\n    <div data-value=\"bv\" class=\"item\"><i class=\"bv flag\"></i>Bouvet Island</div>\n    <div data-value=\"bw\" class=\"item\"><i class=\"bw flag\"></i>Botswana</div>\n    <div data-value=\"by\" class=\"item\"><i class=\"by flag\"></i>Belarus</div>\n    <div data-value=\"bz\" class=\"item\"><i class=\"bz flag\"></i>Belize</div>\n    <div data-value=\"ca\" class=\"item\"><i class=\"ca flag\"></i>Canada</div>\n    <div data-value=\"cc\" class=\"item\"><i class=\"cc flag\"></i>Cocos Islands</div>\n    <div data-value=\"cd\" class=\"item\"><i class=\"cd flag\"></i>Congo</div>\n    <div data-value=\"cf\" class=\"item\"><i class=\"cf flag\"></i>Central African Republic</div>\n    <div data-value=\"cg\" class=\"item\"><i class=\"cg flag\"></i>Congo Brazzaville</div>\n    <div data-value=\"ch\" class=\"item\"><i class=\"ch flag\"></i>Switzerland</div>\n    <div data-value=\"ci\" class=\"item\"><i class=\"ci flag\"></i>Cote Divoire</div>\n    <div data-value=\"ck\" class=\"item\"><i class=\"ck flag\"></i>Cook Islands</div>\n    <div data-value=\"cl\" class=\"item\"><i class=\"cl flag\"></i>Chile</div>\n    <div data-value=\"cm\" class=\"item\"><i class=\"cm flag\"></i>Cameroon</div>\n    <div data-value=\"cn\" class=\"item\"><i class=\"cn flag\"></i>China</div>\n    <div data-value=\"co\" class=\"item\"><i class=\"co flag\"></i>Colombia</div>\n    <div data-value=\"cr\" class=\"item\"><i class=\"cr flag\"></i>Costa Rica</div>\n    <div data-value=\"cs\" class=\"item\"><i class=\"cs flag\"></i>Serbia</div>\n    <div data-value=\"cu\" class=\"item\"><i class=\"cu flag\"></i>Cuba</div>\n    <div data-value=\"cv\" class=\"item\"><i class=\"cv flag\"></i>Cape Verde</div>\n    <div data-value=\"cx\" class=\"item\"><i class=\"cx flag\"></i>Christmas Island</div>\n    <div data-value=\"cy\" class=\"item\"><i class=\"cy flag\"></i>Cyprus</div>\n    <div data-value=\"cz\" class=\"item\"><i class=\"cz flag\"></i>Czech Republic</div>\n    <div data-value=\"de\" class=\"item\"><i class=\"de flag\"></i>Germany</div>\n    <div data-value=\"dj\" class=\"item\"><i class=\"dj flag\"></i>Djibouti</div>\n    <div data-value=\"dk\" class=\"item\"><i class=\"dk flag\"></i>Denmark</div>\n    <div data-value=\"dm\" class=\"item\"><i class=\"dm flag\"></i>Dominica</div>\n    <div data-value=\"do\" class=\"item\"><i class=\"do flag\"></i>Dominican Republic</div>\n    <div data-value=\"dz\" class=\"item\"><i class=\"dz flag\"></i>Algeria</div>\n    <div data-value=\"ec\" class=\"item\"><i class=\"ec flag\"></i>Ecuador</div>\n    <div data-value=\"ee\" class=\"item\"><i class=\"ee flag\"></i>Estonia</div>\n    <div data-value=\"eg\" class=\"item\"><i class=\"eg flag\"></i>Egypt</div>\n    <div data-value=\"eh\" class=\"item\"><i class=\"eh flag\"></i>Western Sahara</div>\n    <div data-value=\"er\" class=\"item\"><i class=\"er flag\"></i>Eritrea</div>\n    <div data-value=\"es\" class=\"item\"><i class=\"es flag\"></i>Spain</div>\n    <div data-value=\"et\" class=\"item\"><i class=\"et flag\"></i>Ethiopia</div>\n    <div data-value=\"eu\" class=\"item\"><i class=\"eu flag\"></i>European Union</div>\n    <div data-value=\"fi\" class=\"item\"><i class=\"fi flag\"></i>Finland</div>\n    <div data-value=\"fj\" class=\"item\"><i class=\"fj flag\"></i>Fiji</div>\n    <div data-value=\"fk\" class=\"item\"><i class=\"fk flag\"></i>Falkland Islands</div>\n    <div data-value=\"fm\" class=\"item\"><i class=\"fm flag\"></i>Micronesia</div>\n    <div data-value=\"fo\" class=\"item\"><i class=\"fo flag\"></i>Faroe Islands</div>\n    <div data-value=\"fr\" class=\"item\"><i class=\"fr flag\"></i>France</div>\n    <div data-value=\"ga\" class=\"item\"><i class=\"ga flag\"></i>Gabon</div>\n    <div data-value=\"gb\" class=\"item\"><i class=\"gb flag\"></i>United Kingdom</div>\n    <div data-value=\"gd\" class=\"item\"><i class=\"gd flag\"></i>Grenada</div>\n    <div data-value=\"ge\" class=\"item\"><i class=\"ge flag\"></i>Georgia</div>\n    <div data-value=\"gf\" class=\"item\"><i class=\"gf flag\"></i>French Guiana</div>\n    <div data-value=\"gh\" class=\"item\"><i class=\"gh flag\"></i>Ghana</div>\n    <div data-value=\"gi\" class=\"item\"><i class=\"gi flag\"></i>Gibraltar</div>\n    <div data-value=\"gl\" class=\"item\"><i class=\"gl flag\"></i>Greenland</div>\n    <div data-value=\"gm\" class=\"item\"><i class=\"gm flag\"></i>Gambia</div>\n    <div data-value=\"gn\" class=\"item\"><i class=\"gn flag\"></i>Guinea</div>\n    <div data-value=\"gp\" class=\"item\"><i class=\"gp flag\"></i>Guadeloupe</div>\n    <div data-value=\"gq\" class=\"item\"><i class=\"gq flag\"></i>Equatorial Guinea</div>\n    <div data-value=\"gr\" class=\"item\"><i class=\"gr flag\"></i>Greece</div>\n    <div data-value=\"gs\" class=\"item\"><i class=\"gs flag\"></i>Sandwich Islands</div>\n    <div data-value=\"gt\" class=\"item\"><i class=\"gt flag\"></i>Guatemala</div>\n    <div data-value=\"gu\" class=\"item\"><i class=\"gu flag\"></i>Guam</div>\n    <div data-value=\"gw\" class=\"item\"><i class=\"gw flag\"></i>Guinea-Bissau</div>\n    <div data-value=\"gy\" class=\"item\"><i class=\"gy flag\"></i>Guyana</div>\n    <div data-value=\"hk\" class=\"item\"><i class=\"hk flag\"></i>Hong Kong</div>\n    <div data-value=\"hm\" class=\"item\"><i class=\"hm flag\"></i>Heard Island</div>\n    <div data-value=\"hn\" class=\"item\"><i class=\"hn flag\"></i>Honduras</div>\n    <div data-value=\"hr\" class=\"item\"><i class=\"hr flag\"></i>Croatia</div>\n    <div data-value=\"ht\" class=\"item\"><i class=\"ht flag\"></i>Haiti</div>\n    <div data-value=\"hu\" class=\"item\"><i class=\"hu flag\"></i>Hungary</div>\n    <div data-value=\"id\" class=\"item\"><i class=\"id flag\"></i>Indonesia</div>\n    <div data-value=\"ie\" class=\"item\"><i class=\"ie flag\"></i>Ireland</div>\n    <div data-value=\"il\" class=\"item\"><i class=\"il flag\"></i>Israel</div>\n    <div data-value=\"in\" class=\"item\"><i class=\"in flag\"></i>India</div>\n    <div data-value=\"io\" class=\"item\"><i class=\"io flag\"></i>Indian Ocean Territory</div>\n    <div data-value=\"iq\" class=\"item\"><i class=\"iq flag\"></i>Iraq</div>\n    <div data-value=\"ir\" class=\"item\"><i class=\"ir flag\"></i>Iran</div>\n    <div data-value=\"is\" class=\"item\"><i class=\"is flag\"></i>Iceland</div>\n    <div data-value=\"it\" class=\"item\"><i class=\"it flag\"></i>Italy</div>\n    <div data-value=\"jm\" class=\"item\"><i class=\"jm flag\"></i>Jamaica</div>\n    <div data-value=\"jo\" class=\"item\"><i class=\"jo flag\"></i>Jordan</div>\n    <div data-value=\"jp\" class=\"item\"><i class=\"jp flag\"></i>Japan</div>\n    <div data-value=\"ke\" class=\"item\"><i class=\"ke flag\"></i>Kenya</div>\n    <div data-value=\"kg\" class=\"item\"><i class=\"kg flag\"></i>Kyrgyzstan</div>\n    <div data-value=\"kh\" class=\"item\"><i class=\"kh flag\"></i>Cambodia</div>\n    <div data-value=\"ki\" class=\"item\"><i class=\"ki flag\"></i>Kiribati</div>\n    <div data-value=\"km\" class=\"item\"><i class=\"km flag\"></i>Comoros</div>\n    <div data-value=\"kn\" class=\"item\"><i class=\"kn flag\"></i>Saint Kitts and Nevis</div>\n    <div data-value=\"kp\" class=\"item\"><i class=\"kp flag\"></i>North Korea</div>\n    <div data-value=\"kr\" class=\"item\"><i class=\"kr flag\"></i>South Korea</div>\n    <div data-value=\"kw\" class=\"item\"><i class=\"kw flag\"></i>Kuwait</div>\n    <div data-value=\"ky\" class=\"item\"><i class=\"ky flag\"></i>Cayman Islands</div>\n    <div data-value=\"kz\" class=\"item\"><i class=\"kz flag\"></i>Kazakhstan</div>\n    <div data-value=\"la\" class=\"item\"><i class=\"la flag\"></i>Laos</div>\n    <div data-value=\"lb\" class=\"item\"><i class=\"lb flag\"></i>Lebanon</div>\n    <div data-value=\"lc\" class=\"item\"><i class=\"lc flag\"></i>Saint Lucia</div>\n    <div data-value=\"li\" class=\"item\"><i class=\"li flag\"></i>Liechtenstein</div>\n    <div data-value=\"lk\" class=\"item\"><i class=\"lk flag\"></i>Sri Lanka</div>\n    <div data-value=\"lr\" class=\"item\"><i class=\"lr flag\"></i>Liberia</div>\n    <div data-value=\"ls\" class=\"item\"><i class=\"ls flag\"></i>Lesotho</div>\n    <div data-value=\"lt\" class=\"item\"><i class=\"lt flag\"></i>Lithuania</div>\n    <div data-value=\"lu\" class=\"item\"><i class=\"lu flag\"></i>Luxembourg</div>\n    <div data-value=\"lv\" class=\"item\"><i class=\"lv flag\"></i>Latvia</div>\n    <div data-value=\"ly\" class=\"item\"><i class=\"ly flag\"></i>Libya</div>\n    <div data-value=\"ma\" class=\"item\"><i class=\"ma flag\"></i>Morocco</div>\n    <div data-value=\"mc\" class=\"item\"><i class=\"mc flag\"></i>Monaco</div>\n    <div data-value=\"md\" class=\"item\"><i class=\"md flag\"></i>Moldova</div>\n    <div data-value=\"me\" class=\"item\"><i class=\"me flag\"></i>Montenegro</div>\n    <div data-value=\"mg\" class=\"item\"><i class=\"mg flag\"></i>Madagascar</div>\n    <div data-value=\"mh\" class=\"item\"><i class=\"mh flag\"></i>Marshall Islands</div>\n    <div data-value=\"mk\" class=\"item\"><i class=\"mk flag\"></i>MacEdonia</div>\n    <div data-value=\"ml\" class=\"item\"><i class=\"ml flag\"></i>Mali</div>\n    <div data-value=\"ar\" class=\"item\"><i class=\"ar flag\"></i>Burma</div>\n    <div data-value=\"mn\" class=\"item\"><i class=\"mn flag\"></i>Mongolia</div>\n    <div data-value=\"mo\" class=\"item\"><i class=\"mo flag\"></i>MacAu</div>\n    <div data-value=\"mp\" class=\"item\"><i class=\"mp flag\"></i>Northern Mariana Islands</div>\n    <div data-value=\"mq\" class=\"item\"><i class=\"mq flag\"></i>Martinique</div>\n    <div data-value=\"mr\" class=\"item\"><i class=\"mr flag\"></i>Mauritania</div>\n    <div data-value=\"ms\" class=\"item\"><i class=\"ms flag\"></i>Montserrat</div>\n    <div data-value=\"mt\" class=\"item\"><i class=\"mt flag\"></i>Malta</div>\n    <div data-value=\"mu\" class=\"item\"><i class=\"mu flag\"></i>Mauritius</div>\n    <div data-value=\"mv\" class=\"item\"><i class=\"mv flag\"></i>Maldives</div>\n    <div data-value=\"mw\" class=\"item\"><i class=\"mw flag\"></i>Malawi</div>\n    <div data-value=\"mx\" class=\"item\"><i class=\"mx flag\"></i>Mexico</div>\n    <div data-value=\"my\" class=\"item\"><i class=\"my flag\"></i>Malaysia</div>\n    <div data-value=\"mz\" class=\"item\"><i class=\"mz flag\"></i>Mozambique</div>\n    <div data-value=\"na\" class=\"item\"><i class=\"na flag\"></i>Namibia</div>\n    <div data-value=\"nc\" class=\"item\"><i class=\"nc flag\"></i>New Caledonia</div>\n    <div data-value=\"ne\" class=\"item\"><i class=\"ne flag\"></i>Niger</div>\n    <div data-value=\"nf\" class=\"item\"><i class=\"nf flag\"></i>Norfolk Island</div>\n    <div data-value=\"ng\" class=\"item\"><i class=\"ng flag\"></i>Nigeria</div>\n    <div data-value=\"ni\" class=\"item\"><i class=\"ni flag\"></i>Nicaragua</div>\n    <div data-value=\"nl\" class=\"item\"><i class=\"nl flag\"></i>Netherlands</div>\n    <div data-value=\"no\" class=\"item\"><i class=\"no flag\"></i>Norway</div>\n    <div data-value=\"np\" class=\"item\"><i class=\"np flag\"></i>Nepal</div>\n    <div data-value=\"nr\" class=\"item\"><i class=\"nr flag\"></i>Nauru</div>\n    <div data-value=\"nu\" class=\"item\"><i class=\"nu flag\"></i>Niue</div>\n    <div data-value=\"nz\" class=\"item\"><i class=\"nz flag\"></i>New Zealand</div>\n    <div data-value=\"om\" class=\"item\"><i class=\"om flag\"></i>Oman</div>\n    <div data-value=\"pa\" class=\"item\"><i class=\"pa flag\"></i>Panama</div>\n    <div data-value=\"pe\" class=\"item\"><i class=\"pe flag\"></i>Peru</div>\n    <div data-value=\"pf\" class=\"item\"><i class=\"pf flag\"></i>French Polynesia</div>\n    <div data-value=\"pg\" class=\"item\"><i class=\"pg flag\"></i>New Guinea</div>\n    <div data-value=\"ph\" class=\"item\"><i class=\"ph flag\"></i>Philippines</div>\n    <div data-value=\"pk\" class=\"item\"><i class=\"pk flag\"></i>Pakistan</div>\n    <div data-value=\"pl\" class=\"item\"><i class=\"pl flag\"></i>Poland</div>\n    <div data-value=\"pm\" class=\"item\"><i class=\"pm flag\"></i>Saint Pierre</div>\n    <div data-value=\"pn\" class=\"item\"><i class=\"pn flag\"></i>Pitcairn Islands</div>\n    <div data-value=\"pr\" class=\"item\"><i class=\"pr flag\"></i>Puerto Rico</div>\n    <div data-value=\"ps\" class=\"item\"><i class=\"ps flag\"></i>Palestine</div>\n    <div data-value=\"pt\" class=\"item\"><i class=\"pt flag\"></i>Portugal</div>\n    <div data-value=\"pw\" class=\"item\"><i class=\"pw flag\"></i>Palau</div>\n    <div data-value=\"py\" class=\"item\"><i class=\"py flag\"></i>Paraguay</div>\n    <div data-value=\"qa\" class=\"item\"><i class=\"qa flag\"></i>Qatar</div>\n    <div data-value=\"re\" class=\"item\"><i class=\"re flag\"></i>Reunion</div>\n    <div data-value=\"ro\" class=\"item\"><i class=\"ro flag\"></i>Romania</div>\n    <div data-value=\"rs\" class=\"item\"><i class=\"rs flag\"></i>Serbia</div>\n    <div data-value=\"ru\" class=\"item\"><i class=\"ru flag\"></i>Russia</div>\n    <div data-value=\"rw\" class=\"item\"><i class=\"rw flag\"></i>Rwanda</div>\n    <div data-value=\"sa\" class=\"item\"><i class=\"sa flag\"></i>Saudi Arabia</div>\n    <div data-value=\"sb\" class=\"item\"><i class=\"sb flag\"></i>Solomon Islands</div>\n    <div data-value=\"sc\" class=\"item\"><i class=\"sc flag\"></i>Seychelles</div>\n    <div data-value=\"sd\" class=\"item\"><i class=\"sd flag\"></i>Sudan</div>\n    <div data-value=\"se\" class=\"item\"><i class=\"se flag\"></i>Sweden</div>\n    <div data-value=\"sg\" class=\"item\"><i class=\"sg flag\"></i>Singapore</div>\n    <div data-value=\"sh\" class=\"item\"><i class=\"sh flag\"></i>Saint Helena</div>\n    <div data-value=\"si\" class=\"item\"><i class=\"si flag\"></i>Slovenia</div>\n    <div data-value=\"sj\" class=\"item\"><i class=\"sj flag\"></i>Svalbard, I Flag Jan Mayen</div>\n    <div data-value=\"sk\" class=\"item\"><i class=\"sk flag\"></i>Slovakia</div>\n    <div data-value=\"sl\" class=\"item\"><i class=\"sl flag\"></i>Sierra Leone</div>\n    <div data-value=\"sm\" class=\"item\"><i class=\"sm flag\"></i>San Marino</div>\n    <div data-value=\"sn\" class=\"item\"><i class=\"sn flag\"></i>Senegal</div>\n    <div data-value=\"so\" class=\"item\"><i class=\"so flag\"></i>Somalia</div>\n    <div data-value=\"sr\" class=\"item\"><i class=\"sr flag\"></i>Suriname</div>\n    <div data-value=\"st\" class=\"item\"><i class=\"st flag\"></i>Sao Tome</div>\n    <div data-value=\"sv\" class=\"item\"><i class=\"sv flag\"></i>El Salvador</div>\n    <div data-value=\"sy\" class=\"item\"><i class=\"sy flag\"></i>Syria</div>\n    <div data-value=\"sz\" class=\"item\"><i class=\"sz flag\"></i>Swaziland</div>\n    <div data-value=\"tc\" class=\"item\"><i class=\"tc flag\"></i>Caicos Islands</div>\n    <div data-value=\"td\" class=\"item\"><i class=\"td flag\"></i>Chad</div>\n    <div data-value=\"tf\" class=\"item\"><i class=\"tf flag\"></i>French Territories</div>\n    <div data-value=\"tg\" class=\"item\"><i class=\"tg flag\"></i>Togo</div>\n    <div data-value=\"th\" class=\"item\"><i class=\"th flag\"></i>Thailand</div>\n    <div data-value=\"tj\" class=\"item\"><i class=\"tj flag\"></i>Tajikistan</div>\n    <div data-value=\"tk\" class=\"item\"><i class=\"tk flag\"></i>Tokelau</div>\n    <div data-value=\"tl\" class=\"item\"><i class=\"tl flag\"></i>Timorleste</div>\n    <div data-value=\"tm\" class=\"item\"><i class=\"tm flag\"></i>Turkmenistan</div>\n    <div data-value=\"tn\" class=\"item\"><i class=\"tn flag\"></i>Tunisia</div>\n    <div data-value=\"to\" class=\"item\"><i class=\"to flag\"></i>Tonga</div>\n    <div data-value=\"tr\" class=\"item\"><i class=\"tr flag\"></i>Turkey</div>\n    <div data-value=\"tt\" class=\"item\"><i class=\"tt flag\"></i>Trinidad</div>\n    <div data-value=\"tv\" class=\"item\"><i class=\"tv flag\"></i>Tuvalu</div>\n    <div data-value=\"tw\" class=\"item\"><i class=\"tw flag\"></i>Taiwan</div>\n    <div data-value=\"tz\" class=\"item\"><i class=\"tz flag\"></i>Tanzania</div>\n    <div data-value=\"ua\" class=\"item\"><i class=\"ua flag\"></i>Ukraine</div>\n    <div data-value=\"ug\" class=\"item\"><i class=\"ug flag\"></i>Uganda</div>\n    <div data-value=\"um\" class=\"item\"><i class=\"um flag\"></i>Us Minor Islands</div>\n    <div data-value=\"us\" class=\"item\"><i class=\"us flag\"></i>United States</div>\n    <div data-value=\"uy\" class=\"item\"><i class=\"uy flag\"></i>Uruguay</div>\n    <div data-value=\"uz\" class=\"item\"><i class=\"uz flag\"></i>Uzbekistan</div>\n    <div data-value=\"va\" class=\"item\"><i class=\"va flag\"></i>Vatican City</div>\n    <div data-value=\"vc\" class=\"item\"><i class=\"vc flag\"></i>Saint Vincent</div>\n    <div data-value=\"ve\" class=\"item\"><i class=\"ve flag\"></i>Venezuela</div>\n    <div data-value=\"vg\" class=\"item\"><i class=\"vg flag\"></i>British Virgin Islands</div>\n    <div data-value=\"vi\" class=\"item\"><i class=\"vi flag\"></i>Us Virgin Islands</div>\n    <div data-value=\"vn\" class=\"item\"><i class=\"vn flag\"></i>Vietnam</div>\n    <div data-value=\"vu\" class=\"item\"><i class=\"vu flag\"></i>Vanuatu</div>\n    <div data-value=\"wf\" class=\"item\"><i class=\"wf flag\"></i>Wallis and Futuna</div>\n    <div data-value=\"ws\" class=\"item\"><i class=\"ws flag\"></i>Samoa</div>\n    <div data-value=\"ye\" class=\"item\"><i class=\"ye flag\"></i>Yemen</div>\n    <div data-value=\"yt\" class=\"item\"><i class=\"yt flag\"></i>Mayotte</div>\n    <div data-value=\"za\" class=\"item\"><i class=\"za flag\"></i>South Africa</div>\n    <div data-value=\"zm\" class=\"item\"><i class=\"zm flag\"></i>Zambia</div>\n    <div data-value=\"zw\" class=\"item\"><i class=\"zw flag\"></i>Zimbabwe</div>\n  </div>\n</div>\n\n<div class=\"ui hidden divider\"></div>\n\n<div class=\"ui searchable floating dropdown labeled icon button\">\n  <i class=\"filter icon\"></i>\n  <span class=\"text\">Filter Posts</span>\n  <div class=\"menu\">\n    <div class=\"header\">\n      Filter\n    </div>\n    <div class=\"item\">\n      <div class=\"ui red empty circular label\"></div>\n      Tag A\n    </div>\n    <div class=\"item\">\n      <div class=\"ui blue empty circular label\"></div>\n      Tag B\n    </div>\n    <div class=\"item\">\n      <div class=\"ui black empty circular label\"></div>\n      Tag C\n    </div>\n    <div class=\"item\">\n      <div class=\"ui green empty circular label\"></div>\n      Tag D\n    </div>\n  </div>\n</div>\n\n<div class=\"ui hidden divider\"></div>\n\nShow me posts trending\n<div class=\"ui inline dropdown\">\n    <div class=\"text\">today</div>\n    <i class=\"dropdown icon\"></i>\n    <div class=\"menu\">\n      <div class=\"item\" data-text=\"today\">Today</div>\n      <div class=\"item\" data-text=\"this week\">This Week</div>\n      <div class=\"item\" data-text=\"this month\">This Month</div>\n    </div>\n</div>\n\n<div class=\"ui hidden divider\"></div>\n\n<div class=\"ui left pointing dropdown icon button\">\n  <i class=\"settings icon\"></i>\n  <div class=\"menu\">\n    <div class=\"ui transparent left icon input\">\n      <i class=\"search icon\"></i>\n      <input name=\"search\" placeholder=\"Search issues...\" type=\"text\">\n    </div>\n    <div class=\"divider\"></div>\n    <div class=\"header\">\n      <i class=\"tags icon\"></i>\n      Filter by tag\n    </div>\n    <div class=\"item\">\n      <div class=\"ui red empty circular label\"></div>\n      Important\n    </div>\n    <div class=\"item\">\n      <div class=\"ui blue empty circular label\"></div>\n      Announcement\n    </div>\n    <div class=\"item\">\n      <div class=\"ui black empty circular label\"></div>\n      Discussion\n    </div>\n  </div>\n</div>\n\n<div class=\"ui hidden divider\"></div>\n\n<div class=\"ui menu\">\n  <a class=\"item\">\n    Home\n  </a>\n  <div class=\"ui dropdown item\">\n    <span class=\"text\">Shopping</span>\n    <i class=\"dropdown icon\"></i>\n    <div class=\"menu\">\n      <div class=\"header\">Categories</div>\n      <div class=\"item\">\n        <i class=\"dropdown icon\"></i>\n        <span class=\"text\">Clothing</span>\n        <div class=\"menu\">\n          <div class=\"header\">Mens</div>\n          <div class=\"item\">Shirts</div>\n          <div class=\"item\">Pants</div>\n          <div class=\"item\">Jeans</div>\n          <div class=\"item\">Shoes</div>\n          <div class=\"divider\"></div>\n          <div class=\"header\">Womens</div>\n          <div class=\"item\">Dresses</div>\n          <div class=\"item\">Shoes</div>\n          <div class=\"item\">Bags</div>\n        </div>\n      </div>\n      <div class=\"item\">Home Goods</div>\n      <div class=\"item\">Bedroom</div>\n      <div class=\"divider\"></div>\n      <div class=\"header\">Order</div>\n      <div class=\"item\">Status</div>\n      <div class=\"item\">Cancellations</div>\n    </div>\n  </div>\n  <a class=\"item\">\n    Forums\n  </a>\n  <a class=\"item\">\n    Contact Us\n  </a>\n</div>\n\n<div class=\"ui hidden divider\"></div>\n\n<div class=\"ui vertical menu\">\n  <a class=\"item\">\n    Home\n  </a>\n  <div class=\"ui left pointing dropdown item\">\n    <i class=\"dropdown icon\"></i>\n    Messages\n    <div class=\"menu\">\n      <div class=\"item\">Inbox</div>\n      <div class=\"item\">Starred</div>\n      <div class=\"item\">Sent Mail</div>\n      <div class=\"item\">Drafts (143)</div>\n      <div class=\"divider\"></div>\n      <div class=\"item\">Spam (1009)</div>\n      <div class=\"item\">Trash</div>\n    </div>\n  </div>\n  <a class=\"item\">\n    Browse\n  </a>\n  <a class=\"item\">\n    Help\n  </a>\n</div>\n\n<div class=\"ui hidden divider\"></div>\n\n<div class=\"ui icon buttons\">\n  <div class=\"ui top left pointing dropdown button\">\n    <i class=\"user icon\"></i>\n    <div class=\"menu\">\n      <div class=\"item\"><i class=\"edit icon\"></i>Edit User</div>\n      <div class=\"item\"><i class=\"delete icon\"></i>Remove User</div>\n      <div class=\"item\"><i class=\"hide icon\"></i>Make Invisible</div>\n    </div>\n  </div>\n  <div class=\"ui top left pointing dropdown button\">\n    <i class=\"users icon\"></i>\n    <div class=\"menu\">\n      <div class=\"item\"><i class=\"edit icon\"></i>Edit Group</div>\n      <div class=\"item\"><i class=\"delete icon\"></i>Remove Group</div>\n      <div class=\"item\"><i class=\"hide icon\"></i>Hide from Group</div>\n    </div>\n  </div>\n  <div class=\"ui top right pointing dropdown button\">\n    <i class=\"settings icon\"></i>\n    <div class=\"menu\">\n      <div class=\"item\"><i class=\"edit icon\"></i> Edit</div>\n      <div class=\"item\"><i class=\"delete icon\"></i> Remove</div>\n      <div class=\"item\"><i class=\"hide icon\"></i> Hide</div>\n    </div>\n  </div>\n</div>\n\n<script type=\"text/javascript\">\n$(document)\n  .ready(function(){\n    $('.demo .ui.dropdown')\n      .dropdown()\n    ;\n    $('.demo .ui.menu .dropdown')\n      .dropdown({\n        on: 'hover'\n      })\n    ;\n  })\n;\n</script>\n"
  },
  {
    "path": "server/partials/examples/feed.html",
    "content": "<div class=\"ui two column stackable grid\">\n  <div class=\"column\">\n    <div class=\"ui feed\">\n      <div class=\"event\">\n        <div class=\"label\">\n          <img src=\"/images/wireframe/square-image.png\">\n        </div>\n        <div class=\"content\">\n          <div class=\"summary\">\n            <a class=\"user\">\n              Username\n            </a> added you as a friend\n          </div>\n        </div>\n      </div>\n      <div class=\"event\">\n        <div class=\"label\">\n          <img src=\"/images/wireframe/square-image.png\">\n        </div>\n        <div class=\"content\">\n          You added Username to the group <a>Group Name</a>\n        </div>\n      </div>\n      <div class=\"event\">\n        <div class=\"label\">\n          <img src=\"/images/wireframe/square-image.png\">\n        </div>\n        <div class=\"content\">\n          <div class=\"date\">\n            Time period ago\n          </div>\n          <div class=\"summary\">\n            <a>Username</a> added <a>new photos</a>\n          </div>\n          <div class=\"extra images\">\n            <a><img src=\"/images/wireframe/image.png\"></a>\n          </div>\n          <div class=\"meta\">\n            <a class=\"like\">\n              <i class=\"like icon\"></i> 1 Like\n            </a>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"column\">\n    <div class=\"ui feed\">\n      <div class=\"event\">\n        <div class=\"label\">\n          <i class=\"pencil icon\"></i>\n        </div>\n        <div class=\"content\">\n          <div class=\"summary\">\n            You wrote something\n            <div class=\"date\">\n              Time period ago\n            </div>\n          </div>\n          <div class=\"extra text\">\n            Blockquote\n          </div>\n          <div class=\"meta\">\n            <a>Metadata</a>\n            <a>Metadata</a>\n          </div>\n        </div>\n      </div>\n      <div class=\"event\">\n        <div class=\"label\">\n          <i class=\"photo icon\"></i>\n        </div>\n        <div class=\"content\">\n          <div class=\"summary\">\n            You uploaded a photo\n            <div class=\"date\">\n              Time period ago\n            </div>\n          </div>\n          <div class=\"meta\">\n            <a>Metadata</a>\n            <a>Metadata</a>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"ui hidden divider\"></div>\n    <div class=\"ui feed\">\n      <div class=\"event\">\n        <div class=\"content\">\n          <div class=\"summary\">\n             <a>Elliot Fu</a> added <a>Jenny Hess</a> as a friend\n          </div>\n        </div>\n      </div>\n      <div class=\"event\">\n        <div class=\"content\">\n          <div class=\"summary\">\n             <a>Stevie Feliciano</a> added <a>Elliot Fu</a> as a friend\n          </div>\n        </div>\n      </div>\n      <div class=\"event\">\n        <div class=\"content\">\n          <div class=\"summary\">\n             <a>Helen Troy</a> added <a>Christian Rocha</a> as a friend\n          </div>\n        </div>\n      </div>\n      <div class=\"event\">\n        <div class=\"content\">\n          <div class=\"summary\">\n             <a>Christian Rocha</a> signed up for the site.\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>"
  },
  {
    "path": "server/partials/examples/flag.html",
    "content": "<i class=\"andorra flag\"></i>\n<i class=\"uae flag\"></i>\n<i class=\"afghanistan flag\"></i>\n<i class=\"antigua flag\"></i>\n<i class=\"anguilla flag\"></i>\n<i class=\"albania flag\"></i>\n<i class=\"armenia flag\"></i>\n<i class=\"netherlands antilles flag\"></i>\n<i class=\"angola flag\"></i>\n<i class=\"argentina flag\"></i>\n<i class=\"american samoa flag\"></i>\n<i class=\"austria flag\"></i>\n<i class=\"australia flag\"></i>\n<i class=\"aruba flag\"></i>\n<i class=\"aland islands flag\"></i>\n<i class=\"azerbaijan flag\"></i>\n<i class=\"bosnia flag\"></i>\n<i class=\"barbados flag\"></i>\n<i class=\"bangladesh flag\"></i>\n<i class=\"belgium flag\"></i>\n<i class=\"burkina faso flag\"></i>\n<i class=\"bulgaria flag\"></i>\n<i class=\"bahrain flag\"></i>\n<i class=\"burundi flag\"></i>\n<i class=\"benin flag\"></i>\n<i class=\"bermuda flag\"></i>\n<i class=\"brunei flag\"></i>\n<i class=\"bolivia flag\"></i>\n<i class=\"brazil flag\"></i>\n<i class=\"bahamas flag\"></i>\n<i class=\"bhutan flag\"></i>\n<i class=\"bouvet island flag\"></i>\n<i class=\"botswana flag\"></i>\n<i class=\"belarus flag\"></i>\n<i class=\"belize flag\"></i>\n<i class=\"canada flag\"></i>\n<i class=\"cocos islands flag\"></i>\n<i class=\"congo flag\"></i>\n<i class=\"central african republic flag\"></i>\n<i class=\"congo brazzaville flag\"></i>\n<i class=\"switzerland flag\"></i>\n<i class=\"cote divoire flag\"></i>\n<i class=\"cook islands flag\"></i>\n<i class=\"chile flag\"></i>\n<i class=\"cameroon flag\"></i>\n<i class=\"china flag\"></i>\n<i class=\"colombia flag\"></i>\n<i class=\"costa rica flag\"></i>\n<i class=\"serbia flag\"></i>\n<i class=\"cuba flag\"></i>\n<i class=\"cape verde flag\"></i>\n<i class=\"christmas island flag\"></i>\n<i class=\"cyprus flag\"></i>\n<i class=\"czech republic flag\"></i>\n<i class=\"germany flag\"></i>\n<i class=\"djibouti flag\"></i>\n<i class=\"denmark flag\"></i>\n<i class=\"dominica flag\"></i>\n<i class=\"dominican republic flag\"></i>\n<i class=\"algeria flag\"></i>\n<i class=\"ecuador flag\"></i>\n<i class=\"estonia flag\"></i>\n<i class=\"egypt flag\"></i>\n<i class=\"western sahara flag\"></i>\n<i class=\"eritrea flag\"></i>\n<i class=\"spain flag\"></i>\n<i class=\"ethiopia flag\"></i>\n<i class=\"european union flag\"></i>\n<i class=\"finland flag\"></i>\n<i class=\"fiji flag\"></i>\n<i class=\"falkland islands flag\"></i>\n<i class=\"micronesia flag\"></i>\n<i class=\"faroe islands flag\"></i>\n<i class=\"france flag\"></i>\n<i class=\"gabon flag\"></i>\n<i class=\"united kingdom flag\"></i>\n<i class=\"grenada flag\"></i>\n<i class=\"georgia flag\"></i>\n<i class=\"french guiana flag\"></i>\n<i class=\"ghana flag\"></i>\n<i class=\"gibraltar flag\"></i>\n<i class=\"greenland flag\"></i>\n<i class=\"gambia flag\"></i>\n<i class=\"guinea flag\"></i>\n<i class=\"guadeloupe flag\"></i>\n<i class=\"equatorial guinea flag\"></i>\n<i class=\"greece flag\"></i>\n<i class=\"sandwich islands flag\"></i>\n<i class=\"guatemala flag\"></i>\n<i class=\"guam flag\"></i>\n<i class=\"guinea-bissau flag\"></i>\n<i class=\"guyana flag\"></i>\n<i class=\"hong kong flag\"></i>\n<i class=\"heard island flag\"></i>\n<i class=\"honduras flag\"></i>\n<i class=\"croatia flag\"></i>\n<i class=\"haiti flag\"></i>\n<i class=\"hungary flag\"></i>\n<i class=\"indonesia flag\"></i>\n<i class=\"ireland flag\"></i>\n<i class=\"israel flag\"></i>\n<i class=\"india flag\"></i>\n<i class=\"indian ocean territory flag\"></i>\n<i class=\"iraq flag\"></i>\n<i class=\"iran flag\"></i>\n<i class=\"iceland flag\"></i>\n<i class=\"italy flag\"></i>\n<i class=\"jamaica flag\"></i>\n<i class=\"jordan flag\"></i>\n<i class=\"japan flag\"></i>\n<i class=\"kenya flag\"></i>\n<i class=\"kyrgyzstan flag\"></i>\n<i class=\"cambodia flag\"></i>\n<i class=\"kiribati flag\"></i>\n<i class=\"comoros flag\"></i>\n<i class=\"saint kitts and nevis flag\"></i>\n<i class=\"north korea flag\"></i>\n<i class=\"south korea flag\"></i>\n<i class=\"kuwait flag\"></i>\n<i class=\"cayman islands flag\"></i>\n<i class=\"kazakhstan flag\"></i>\n<i class=\"laos flag\"></i>\n<i class=\"lebanon flag\"></i>\n<i class=\"saint lucia flag\"></i>\n<i class=\"liechtenstein flag\"></i>\n<i class=\"sri lanka flag\"></i>\n<i class=\"liberia flag\"></i>\n<i class=\"lesotho flag\"></i>\n<i class=\"lithuania flag\"></i>\n<i class=\"luxembourg flag\"></i>\n<i class=\"latvia flag\"></i>\n<i class=\"libya flag\"></i>\n<i class=\"morocco flag\"></i>\n<i class=\"monaco flag\"></i>\n<i class=\"moldova flag\"></i>\n<i class=\"montenegro flag\"></i>\n<i class=\"madagascar flag\"></i>\n<i class=\"marshall islands flag\"></i>\n<i class=\"macedonia flag\"></i>\n<i class=\"mali flag\"></i>\n<i class=\"burma flag\"></i>\n<i class=\"mongolia flag\"></i>\n<i class=\"macau flag\"></i>\n<i class=\"northern mariana islands flag\"></i>\n<i class=\"martinique flag\"></i>\n<i class=\"mauritania flag\"></i>\n<i class=\"montserrat flag\"></i>\n<i class=\"malta flag\"></i>\n<i class=\"mauritius flag\"></i>\n<i class=\"maldives flag\"></i>\n<i class=\"malawi flag\"></i>\n<i class=\"mexico flag\"></i>\n<i class=\"malaysia flag\"></i>\n<i class=\"mozambique flag\"></i>\n<i class=\"namibia flag\"></i>\n<i class=\"new caledonia flag\"></i>\n<i class=\"niger flag\"></i>\n<i class=\"norfolk island flag\"></i>\n<i class=\"nigeria flag\"></i>\n<i class=\"nicaragua flag\"></i>\n<i class=\"netherlands flag\"></i>\n<i class=\"norway flag\"></i>\n<i class=\"nepal flag\"></i>\n<i class=\"nauru flag\"></i>\n<i class=\"niue flag\"></i>\n<i class=\"new zealand flag\"></i>\n<i class=\"oman flag\"></i>\n<i class=\"panama flag\"></i>\n<i class=\"peru flag\"></i>\n<i class=\"french polynesia flag\"></i>\n<i class=\"new guinea flag\"></i>\n<i class=\"philippines flag\"></i>\n<i class=\"pakistan flag\"></i>\n<i class=\"poland flag\"></i>\n<i class=\"saint pierre flag\"></i>\n<i class=\"pitcairn islands flag\"></i>\n<i class=\"puerto rico flag\"></i>\n<i class=\"palestine flag\"></i>\n<i class=\"portugal flag\"></i>\n<i class=\"palau flag\"></i>\n<i class=\"paraguay flag\"></i>\n<i class=\"qatar flag\"></i>\n<i class=\"reunion flag\"></i>\n<i class=\"romania flag\"></i>\n<i class=\"serbia flag\"></i>\n<i class=\"russia flag\"></i>\n<i class=\"rwanda flag\"></i>\n<i class=\"saudi arabia flag\"></i>\n<i class=\"solomon islands flag\"></i>\n<i class=\"seychelles flag\"></i>\n<i class=\"sudan flag\"></i>\n<i class=\"sweden flag\"></i>\n<i class=\"singapore flag\"></i>\n<i class=\"saint helena flag\"></i>\n<i class=\"slovenia flag\"></i>\n<i class=\"jan mayen flag\"></i>\n<i class=\"slovakia flag\"></i>\n<i class=\"sierra leone flag\"></i>\n<i class=\"san marino flag\"></i>\n<i class=\"senegal flag\"></i>\n<i class=\"somalia flag\"></i>\n<i class=\"suriname flag\"></i>\n<i class=\"sao tome flag\"></i>\n<i class=\"el salvador flag\"></i>\n<i class=\"syria flag\"></i>\n<i class=\"swaziland flag\"></i>\n<i class=\"caicos islands flag\"></i>\n<i class=\"chad flag\"></i>\n<i class=\"french territories flag\"></i>\n<i class=\"togo flag\"></i>\n<i class=\"thailand flag\"></i>\n<i class=\"tajikistan flag\"></i>\n<i class=\"tokelau flag\"></i>\n<i class=\"timorleste flag\"></i>\n<i class=\"turkmenistan flag\"></i>\n<i class=\"tunisia flag\"></i>\n<i class=\"tonga flag\"></i>\n<i class=\"turkey flag\"></i>\n<i class=\"trinidad flag\"></i>\n<i class=\"tuvalu flag\"></i>\n<i class=\"taiwan flag\"></i>\n<i class=\"tanzania flag\"></i>\n<i class=\"ukraine flag\"></i>\n<i class=\"uganda flag\"></i>\n<i class=\"us minor islands flag\"></i>\n<i class=\"united states flag\"></i>\n<i class=\"uruguay flag\"></i>\n<i class=\"uzbekistan flag\"></i>\n<i class=\"vatican city flag\"></i>\n<i class=\"saint vincent flag\"></i>\n<i class=\"venezuela flag\"></i>\n<i class=\"british virgin islands flag\"></i>\n<i class=\"us virgin islands flag\"></i>\n<i class=\"vietnam flag\"></i>\n<i class=\"vanuatu flag\"></i>\n<i class=\"wallis and futuna flag\"></i>\n<i class=\"samoa flag\"></i>\n<i class=\"yemen flag\"></i>\n<i class=\"mayotte flag\"></i>\n<i class=\"south africa flag\"></i>\n<i class=\"zambia flag\"></i>\n<i class=\"zimbabwe flag\"></i>"
  },
  {
    "path": "server/partials/examples/form.html",
    "content": "<div class=\"ui form segment\">\n  <div class=\"two fields\">\n    <div class=\"field\">\n      <label>Selection Dropdown</label>\n      <div class=\"ui selection dropdown\">\n        <div class=\"default text\">Select</div>\n        <i class=\"dropdown icon\"></i>\n        <input name=\"hidden-field\" type=\"hidden\">\n        <div class=\"menu\">\n          <div class=\"item\" data-value=\"1\">Choice 1</div>\n          <div class=\"item\" data-value=\"2\">Choice 2</div>\n        </div>\n      </div>\n    </div>\n    <div class=\"field\">\n      <label>HTML Select</label>\n      <select>\n        <option value=\"\">Select</option>\n        <option value=\"1\">1</option>\n        <option value=\"2\">2</option>\n      </select>\n    </div>\n  </div>\n  <div class=\"field\">\n    <label>Text Area</label>\n    <textarea></textarea>\n  </div>\n  <div class=\"three required fields\">\n    <div class=\"field\">\n      <label>Required Input</label>\n      <input placeholder=\"Text Input\" type=\"text\">\n    </div>\n    <div class=\"field\">\n      <label>Required Input</label>\n      <input placeholder=\"Text Input\" type=\"text\">\n    </div>\n    <div class=\"disabled field\">\n      <label>Disabled Input</label>\n      <input placeholder=\"Text Input\" disabled=\"disabled\" type=\"text\">\n    </div>\n  </div>\n  <div class=\"grouped fields\">\n    <label>Radio Selection</label>\n    <div class=\"field\">\n      <div class=\"ui radio checkbox\">\n        <input type=\"radio\" name=\"fruit\" checked=\"checked\" />\n        <label>Radio Option</label>\n      </div>\n    </div>\n    <div class=\"field\">\n      <div class=\"ui radio checkbox\">\n        <input type=\"radio\" name=\"fruit\" />\n        <label>Radio Option</label>\n      </div>\n    </div>\n    <div class=\"field\">\n      <div class=\"ui radio checkbox\">\n        <input type=\"radio\" name=\"fruit\" />\n        <label>Radio Option</label>\n      </div>\n    </div>\n    <div class=\"field\">\n      <div class=\"ui radio checkbox\">\n        <input type=\"radio\" name=\"fruit\" />\n        <label>Radio Option</label>\n      </div>\n    </div>\n  </div>\n  <div class=\"field\">\n    <label>Password</label>\n    <div class=\"ui left icon input\">\n      <i class=\"lock icon\"></i>\n      <input type=\"password\">\n    </div>\n  </div>\n  <div class=\"inline field\">\n    <div class=\"ui checkbox\">\n      <input type=\"checkbox\">\n      <label>Checkbox</label>\n    </div>\n  </div>\n  <div class=\"grouped inline fields\">\n    <label>Inline Radio Selection</label>\n    <div class=\"field\">\n      <div class=\"ui radio checkbox\">\n        <input type=\"radio\" name=\"fruit\" checked=\"checked\" />\n        <label>Radio Option</label>\n      </div>\n    </div>\n    <div class=\"field\">\n      <div class=\"ui radio checkbox\">\n        <input type=\"radio\" name=\"fruit\" />\n        <label>Radio Option</label>\n      </div>\n    </div>\n    <div class=\"field\">\n      <div class=\"ui radio checkbox\">\n        <input type=\"radio\" name=\"fruit\" />\n        <label>Radio Option</label>\n      </div>\n    </div>\n    <div class=\"field\">\n      <div class=\"ui radio checkbox\">\n        <input type=\"radio\" name=\"fruit\" />\n        <label>Radio Option</label>\n      </div>\n    </div>\n  </div>\n  <div class=\"inline fields\">\n    <div class=\"field\">\n      <label>Multiple Inline Fields</label>\n      <input placeholder=\"(xxx)\" type=\"text\">\n    </div>\n    <div class=\"field\">\n      <input placeholder=\"xxx\" type=\"text\">\n    </div>\n    <div class=\"field\">\n      <input placeholder=\"xxxx\" type=\"text\">\n    </div>\n  </div>\n  <div class=\"inline field\">\n    <label>Inline Field</label>\n    <input placeholder=\"Text Input\" type=\"text\">\n  </div>\n  <h4 class=\"ui header\">Sub-header</h4>\n  <div class=\"field\">\n    <div class=\"ui toggle checkbox\">\n      <input name=\"privacy\" type=\"radio\">\n      <label>Toggle</label>\n    </div>\n  </div>\n  <div class=\"field\">\n    <div class=\"ui slider checkbox\">\n      <input name=\"top-posts\" type=\"checkbox\">\n      <label>Option</label>\n    </div>\n  </div>\n  <div class=\"ui submit button\">Submit</div>\n</div>\n\n<div class=\"ui warning form segment\">\n  <div class=\"ui warning message\">\n    <div class=\"header\">Warning Message</div>\n    <ul class=\"list\">\n      <li>Problem #1</li>\n      <li>Problem #2</li>\n    </ul>\n  </div>\n  <div class=\"two fields\">\n    <div class=\"field\">\n      <label>Input</label>\n      <input placeholder=\"Text Input\" type=\"text\">\n    </div>\n    <div class=\"field\">\n      <label>Input</label>\n      <input placeholder=\"Text Input\" type=\"text\">\n    </div>\n  </div>\n  <div class=\"ui submit button\">Submit</div>\n</div>\n<div class=\"ui error form segment\">\n  <div class=\"ui error message\">\n    <div class=\"header\">Error Message</div>\n    <p>Error message long description</p>\n  </div>\n  <div class=\"two fields\">\n    <div class=\"field error\">\n      <label>Errored Input</label>\n      <input placeholder=\"Text Input\" type=\"text\">\n    </div>\n    <div class=\"field error\">\n      <label>Errored Input</label>\n      <input placeholder=\"Text Input\" type=\"text\">\n    </div>\n  </div>\n  <div class=\"ui submit button\">Submit</div>\n</div>"
  },
  {
    "path": "server/partials/examples/grid.html",
    "content": "\n<div class=\"shaded grid examples\">\n\n<div class=\"ui grid\">\n  <div class=\"sixteen column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"fifteen column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"fourteen column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"thirteen column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"twelve column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"eleven column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"ten column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"nine column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"eight column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"seven column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"six column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"five column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"four column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"three column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"two column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"one column row\">\n    <div class=\"column\"></div>\n  </div>\n</div>\n\n<div class=\"ui grid\">\n  <div class=\"row\">\n    <div class=\"one wide column\"></div>\n    <div class=\"fifteen wide column\"></div>\n  </div>\n  <div class=\"row\">\n    <div class=\"two wide column\"></div>\n    <div class=\"fourteen wide column\"></div>\n  </div>\n  <div class=\"row\">\n    <div class=\"three wide column\"></div>\n    <div class=\"thirteen wide column\"></div>\n  </div>\n  <div class=\"row\">\n    <div class=\"four wide column\"></div>\n    <div class=\"twelve wide column\"></div>\n  </div>\n  <div class=\"row\">\n    <div class=\"five wide column\"></div>\n    <div class=\"eleven wide column\"></div>\n  </div>\n  <div class=\"row\">\n    <div class=\"six wide column\"></div>\n    <div class=\"ten wide column\"></div>\n  </div>\n  <div class=\"row\">\n    <div class=\"seven wide column\"></div>\n    <div class=\"nine wide column\"></div>\n  </div>\n  <div class=\"row\">\n    <div class=\"eight wide column\"></div>\n    <div class=\"eight wide column\"></div>\n  </div>\n  <div class=\"row\">\n    <div class=\"nine wide column\"></div>\n    <div class=\"seven wide column\"></div>\n  </div>\n  <div class=\"row\">\n    <div class=\"ten wide column\"></div>\n    <div class=\"six wide column\"></div>\n  </div>\n  <div class=\"row\">\n    <div class=\"eleven wide column\"></div>\n    <div class=\"five wide column\"></div>\n  </div>\n  <div class=\"row\">\n    <div class=\"twelve wide column\"></div>\n    <div class=\"four wide column\"></div>\n  </div>\n  <div class=\"row\">\n    <div class=\"thirteen wide column\"></div>\n    <div class=\"three wide column\"></div>\n  </div>\n  <div class=\"row\">\n    <div class=\"fourteen wide column\"></div>\n    <div class=\"two wide column\"></div>\n  </div>\n  <div class=\"row\">\n    <div class=\"fifteen wide column\"></div>\n    <div class=\"one wide column\"></div>\n  </div>\n</div>\n\n<div class=\"ui relaxed grid\">\n  <div class=\"eight column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"seven column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"six column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"five column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"four column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"three column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"two column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"one column row\">\n    <div class=\"column\"></div>\n  </div>\n</div>\n\n<div class=\"ui very relaxed grid\">\n  <div class=\"eight column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"seven column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"six column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"five column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"four column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"three column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"two column row\">\n    <div class=\"column\"></div>\n    <div class=\"column\"></div>\n  </div>\n  <div class=\"one column row\">\n    <div class=\"column\"></div>\n  </div>\n</div>\n\n</div>\n\n<div class=\"ui clearing section divider\"></div>\n\n<div class=\"nested grid examples\">\n\n<div class=\"ui padded grid\">\n  <div class=\"two column row\">\n    <div class=\"column\">\n      <div class=\"ui two column grid\">\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n      </div>\n    </div>\n    <div class=\"column\">\n      <div class=\"ui two column grid\">\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n      </div>\n    </div>\n  </div>\n  <div class=\"three column row\">\n    <div class=\"column\">\n      <div class=\"ui two column grid\">\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n      </div>\n    </div>\n    <div class=\"column\">\n      <div class=\"ui two column grid\">\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n      </div>\n    </div>\n    <div class=\"column\">\n      <div class=\"ui two column grid\">\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n      </div>\n    </div>\n  </div>\n  <div class=\"four column row\">\n    <div class=\"column\">\n      <div class=\"ui two column grid\">\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n      </div>\n    </div>\n    <div class=\"column\">\n      <div class=\"ui two column grid\">\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n      </div>\n    </div>\n    <div class=\"column\">\n      <div class=\"ui two column grid\">\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n      </div>\n    </div>\n    <div class=\"column\">\n      <div class=\"ui two column grid\">\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n      </div>\n    </div>\n  </div>\n  <div class=\"five column row\">\n    <div class=\"column\">\n      <div class=\"ui two column grid\">\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n      </div>\n    </div>\n    <div class=\"column\">\n      <div class=\"ui two column grid\">\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n      </div>\n    </div>\n    <div class=\"column\">\n      <div class=\"ui two column grid\">\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n      </div>\n    </div>\n    <div class=\"column\">\n      <div class=\"ui two column grid\">\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n      </div>\n    </div>\n    <div class=\"column\">\n      <div class=\"ui two column grid\">\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n      </div>\n    </div>\n  </div>\n  <div class=\"six column row\">\n    <div class=\"column\">\n      <div class=\"ui two column grid\">\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n      </div>\n    </div>\n    <div class=\"column\">\n      <div class=\"ui two column grid\">\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n      </div>\n    </div>\n    <div class=\"column\">\n      <div class=\"ui two column grid\">\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n      </div>\n    </div>\n    <div class=\"column\">\n      <div class=\"ui two column grid\">\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n      </div>\n    </div>\n    <div class=\"column\">\n      <div class=\"ui two column grid\">\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n      </div>\n    </div>\n    <div class=\"column\">\n      <div class=\"ui two column grid\">\n        <div class=\"column\"></div>\n        <div class=\"column\"></div>\n      </div>\n    </div>\n  </div>\n</div>\n\n</div>\n\n<style type=\"text/css\">\n\n/* Shaded */\n.demo .grid.shaded.examples .row {\n  position: relative;\n}\n.demo .grid.shaded.examples .grid > .column {\n  position: relative;\n  z-index: 11;\n}\n.demo .grid.shaded.examples .grid .column:not(.row):after {\n  background-color: #AAAAAA;\n  content: \"\";\n  display: block;\n  min-height: 1em;\n}\n\n.demo .grid.divided.examples .grid .column:not(.row):after {\n  background-color: rgba(0, 0, 0, 0.1);\n  content: \"\";\n  display: block;\n  min-height: 1em;\n}\n\n.demo .grid.nested.examples .grid .grid {\n  box-shadow: 0px 0px 0px 1px #F0F0F0 inset;\n}\n.demo .grid.nested.examples .grid .grid .column:after {\n  background-color: #AAAAAA;\n  content: \"\";\n  display: block;\n  min-height: 1em;\n}\n\n.demo .grid.simple.examples .grid .column:not(.row):not(.grid):after {\n  content: \"\";\n  display: block;\n  min-height: 50px;\n}\n\n\n/* Animation */\n.demo .grid.examples {\n  margin: 0em !important;\n  padding: 0em !important;\n}\n\n</style>"
  },
  {
    "path": "server/partials/examples/header.html",
    "content": "<div class=\"ui two column grid\">\n\n  <div class=\"column\">\n    <h1 class=\"ui header\">H1</h1>\n    <h2 class=\"ui header\">H2</h2>\n    <h3 class=\"ui header\">H3</h3>\n    <h4 class=\"ui header\">H4</h4>\n    <h5 class=\"ui header\">H5</h5>\n\n    <div class=\"ui icon header\">\n      <i class=\"settings icon\"></i>\n      <div class=\"content\">\n        Icon Header\n        <div class=\"sub header\">Sub-header</div>\n      </div>\n    </div>\n\n    <div class=\"ui header\">\n      <i class=\"settings icon\"></i>\n      <div class=\"content\">\n        Header\n        <div class=\"sub header\">Sub-header</div>\n      </div>\n    </div>\n  </div>\n  <div class=\"column\">\n    <div class=\"ui block header\">\n      <i class=\"settings icon\"></i>\n      <div class=\"content\">\n        Block\n        <div class=\"sub header\">Sub-header</div>\n      </div>\n    </div>\n\n    <div class=\"ui dividing header\">\n      <i class=\"settings icon\"></i>\n      <div class=\"content\">\n        Dividing\n        <div class=\"sub header\">Sub-header</div>\n      </div>\n    </div>\n\n    <div class=\"ui teal dividing header\">\n      <i class=\"settings icon\"></i>\n      <div class=\"content\">\n        Color\n        <div class=\"sub header\">Sub-header</div>\n      </div>\n    </div>\n\n    <div class=\"ui top attached header\">Attached</div>\n    <div class=\"ui attached segment\"></div>\n    <div class=\"ui bottom attached header\">Attached</div>\n  </div>\n</div>"
  },
  {
    "path": "server/partials/examples/icon.html",
    "content": "<div class=\"demo icons\">\n  <i class=\"search icon\"></i>\n  <i class=\"mail outline icon\"></i>\n  <i class=\"external icon\"></i>\n  <i class=\"wifi icon\"></i>\n  <i class=\"setting icon\"></i>\n  <i class=\"home icon\"></i>\n  <i class=\"inbox icon\"></i>\n  <i class=\"browser icon\"></i>\n  <i class=\"tag icon\"></i>\n  <i class=\"tags icon\"></i>\n  <i class=\"calendar icon\"></i>\n  <i class=\"comment icon\"></i>\n  <i class=\"comments icon\"></i>\n  <i class=\"shop icon\"></i>\n  <i class=\"privacy icon\"></i>\n  <i class=\"settings icon\"></i>\n  <i class=\"trophy icon\"></i>\n  <i class=\"payment icon\"></i>\n  <i class=\"feed icon\"></i>\n  <i class=\"alarm outline icon\"></i>\n  <i class=\"tasks icon\"></i>\n  <i class=\"cloud icon\"></i>\n  <i class=\"lab icon\"></i>\n  <i class=\"mail icon\"></i>\n  <i class=\"idea icon\"></i>\n  <i class=\"dashboard icon\"></i>\n  <i class=\"sitemap icon\"></i>\n  <i class=\"alarm icon\"></i>\n  <i class=\"terminal icon\"></i>\n  <i class=\"code icon\"></i>\n  <i class=\"protect icon\"></i>\n  <i class=\"calendar outline icon\"></i>\n  <i class=\"ticket icon\"></i>\n  <i class=\"external square icon\"></i>\n  <i class=\"map icon\"></i>\n  <i class=\"bug icon\"></i>\n  <i class=\"mail square icon\"></i>\n  <i class=\"history icon\"></i>\n  <i class=\"options icon\"></i>\n  <i class=\"comment outline icon\"></i>\n  <i class=\"comments outline icon\"></i>\n  <i class=\"download icon\"></i>\n  <i class=\"repeat icon\"></i>\n  <i class=\"refresh icon\"></i>\n  <i class=\"lock icon\"></i>\n  <i class=\"bookmark icon\"></i>\n  <i class=\"print icon\"></i>\n  <i class=\"write icon\"></i>\n  <i class=\"theme icon\"></i>\n  <i class=\"adjust icon\"></i>\n  <i class=\"edit icon\"></i>\n  <i class=\"external share icon\"></i>\n  <i class=\"ban icon\"></i>\n  <i class=\"mail forward icon\"></i>\n  <i class=\"share icon\"></i>\n  <i class=\"expand icon\"></i>\n  <i class=\"compress icon\"></i>\n  <i class=\"unhide icon\"></i>\n  <i class=\"hide icon\"></i>\n  <i class=\"random icon\"></i>\n  <i class=\"retweet icon\"></i>\n  <i class=\"sign out icon\"></i>\n  <i class=\"pin icon\"></i>\n  <i class=\"sign in icon\"></i>\n  <i class=\"upload icon\"></i>\n  <i class=\"call icon\"></i>\n  <i class=\"call square icon\"></i>\n  <i class=\"remove bookmark icon\"></i>\n  <i class=\"unlock icon\"></i>\n  <i class=\"configure icon\"></i>\n  <i class=\"filter icon\"></i>\n  <i class=\"wizard icon\"></i>\n  <i class=\"undo icon\"></i>\n  <i class=\"exchange icon\"></i>\n  <i class=\"cloud download icon\"></i>\n  <i class=\"cloud upload icon\"></i>\n  <i class=\"reply icon\"></i>\n  <i class=\"reply all icon\"></i>\n  <i class=\"erase icon\"></i>\n  <i class=\"unlock alternate icon\"></i>\n  <i class=\"archive icon\"></i>\n  <i class=\"translate icon\"></i>\n  <i class=\"recycle icon\"></i>\n  <i class=\"send icon\"></i>\n  <i class=\"send outline icon\"></i>\n  <i class=\"share alternate icon\"></i>\n  <i class=\"share alternate square icon\"></i>\n  <i class=\"wait icon\"></i>\n  <i class=\"write square icon\"></i>\n  <i class=\"share square icon\"></i>\n  <i class=\"help circle icon\"></i>\n  <i class=\"info circle icon\"></i>\n  <i class=\"warning icon\"></i>\n  <i class=\"warning circle icon\"></i>\n  <i class=\"warning sign icon\"></i>\n  <i class=\"help icon\"></i>\n  <i class=\"info icon\"></i>\n  <i class=\"announcement icon\"></i>\n  <i class=\"users icon\"></i>\n  <i class=\"doctor icon\"></i>\n  <i class=\"female icon\"></i>\n  <i class=\"male icon\"></i>\n  <i class=\"child icon\"></i>\n  <i class=\"user icon\"></i>\n  <i class=\"handicap icon\"></i>\n  <i class=\"student icon\"></i>\n  <i class=\"grid layout icon\"></i>\n  <i class=\"list layout icon\"></i>\n  <i class=\"block layout icon\"></i>\n  <i class=\"zoom icon\"></i>\n  <i class=\"zoom out icon\"></i>\n  <i class=\"resize vertical icon\"></i>\n  <i class=\"resize horizontal icon\"></i>\n  <i class=\"maximize icon\"></i>\n  <i class=\"crop icon\"></i>\n  <i class=\"cocktail icon\"></i>\n  <i class=\"road icon\"></i>\n  <i class=\"flag icon\"></i>\n  <i class=\"book icon\"></i>\n  <i class=\"gift icon\"></i>\n  <i class=\"leaf icon\"></i>\n  <i class=\"fire icon\"></i>\n  <i class=\"plane icon\"></i>\n  <i class=\"magnet icon\"></i>\n  <i class=\"legal icon\"></i>\n  <i class=\"lemon icon\"></i>\n  <i class=\"world icon\"></i>\n  <i class=\"travel icon\"></i>\n  <i class=\"shipping icon\"></i>\n  <i class=\"money icon\"></i>\n  <i class=\"lightning icon\"></i>\n  <i class=\"rain icon\"></i>\n  <i class=\"treatment icon\"></i>\n  <i class=\"suitcase icon\"></i>\n  <i class=\"bar icon\"></i>\n  <i class=\"flag outline icon\"></i>\n  <i class=\"flag checkered icon\"></i>\n  <i class=\"puzzle icon\"></i>\n  <i class=\"fire extinguisher icon\"></i>\n  <i class=\"rocket icon\"></i>\n  <i class=\"anchor icon\"></i>\n  <i class=\"bullseye icon\"></i>\n  <i class=\"sun icon\"></i>\n  <i class=\"moon icon\"></i>\n  <i class=\"fax icon\"></i>\n  <i class=\"life ring icon\"></i>\n  <i class=\"bomb icon\"></i>\n  <i class=\"crosshairs icon\"></i>\n  <i class=\"asterisk icon\"></i>\n  <i class=\"certificate icon\"></i>\n  <i class=\"circle icon\"></i>\n  <i class=\"quote left icon\"></i>\n  <i class=\"quote right icon\"></i>\n  <i class=\"ellipsis horizontal icon\"></i>\n  <i class=\"ellipsis vertical icon\"></i>\n  <i class=\"cube icon\"></i>\n  <i class=\"cubes icon\"></i>\n  <i class=\"circle notched icon\"></i>\n  <i class=\"circle thin icon\"></i>\n  <i class=\"checkmark icon\"></i>\n  <i class=\"remove icon\"></i>\n  <i class=\"checkmark box icon\"></i>\n  <i class=\"move icon\"></i>\n  <i class=\"add circle icon\"></i>\n  <i class=\"minus circle icon\"></i>\n  <i class=\"remove circle icon\"></i>\n  <i class=\"check circle icon\"></i>\n  <i class=\"remove circle outline icon\"></i>\n  <i class=\"check circle outline icon\"></i>\n  <i class=\"plus icon\"></i>\n  <i class=\"minus icon\"></i>\n  <i class=\"add square icon\"></i>\n  <i class=\"radio icon\"></i>\n  <i class=\"selected radio icon\"></i>\n  <i class=\"minus square icon\"></i>\n  <i class=\"minus square outline icon\"></i>\n  <i class=\"check square icon\"></i>\n  <i class=\"plus square outline icon\"></i>\n  <i class=\"film icon\"></i>\n  <i class=\"sound icon\"></i>\n  <i class=\"photo icon\"></i>\n  <i class=\"bar chart icon\"></i>\n  <i class=\"camera retro icon\"></i>\n  <i class=\"arrow circle outline down icon\"></i>\n  <i class=\"arrow circle outline up icon\"></i>\n  <i class=\"chevron left icon\"></i>\n  <i class=\"chevron right icon\"></i>\n  <i class=\"arrow left icon\"></i>\n  <i class=\"arrow right icon\"></i>\n  <i class=\"arrow up icon\"></i>\n  <i class=\"arrow down icon\"></i>\n  <i class=\"chevron up icon\"></i>\n  <i class=\"chevron down icon\"></i>\n  <i class=\"pointing right icon\"></i>\n  <i class=\"pointing left icon\"></i>\n  <i class=\"pointing up icon\"></i>\n  <i class=\"pointing down icon\"></i>\n  <i class=\"arrow circle left icon\"></i>\n  <i class=\"arrow circle right icon\"></i>\n  <i class=\"arrow circle up icon\"></i>\n  <i class=\"arrow circle down icon\"></i>\n  <i class=\"caret down icon\"></i>\n  <i class=\"caret up icon\"></i>\n  <i class=\"caret left icon\"></i>\n  <i class=\"caret right icon\"></i>\n  <i class=\"angle double left icon\"></i>\n  <i class=\"angle double right icon\"></i>\n  <i class=\"angle double up icon\"></i>\n  <i class=\"angle double down icon\"></i>\n  <i class=\"angle left icon\"></i>\n  <i class=\"angle right icon\"></i>\n  <i class=\"angle up icon\"></i>\n  <i class=\"angle down icon\"></i>\n  <i class=\"chevron circle left icon\"></i>\n  <i class=\"chevron circle right icon\"></i>\n  <i class=\"chevron circle up icon\"></i>\n  <i class=\"chevron circle down icon\"></i>\n  <i class=\"toggle down icon\"></i>\n  <i class=\"toggle up icon\"></i>\n  <i class=\"toggle right icon\"></i>\n  <i class=\"long arrow down icon\"></i>\n  <i class=\"long arrow up icon\"></i>\n  <i class=\"long arrow left icon\"></i>\n  <i class=\"long arrow right icon\"></i>\n  <i class=\"arrow circle outline right icon\"></i>\n  <i class=\"arrow circle outline left icon\"></i>\n  <i class=\"toggle left icon\"></i>\n  <i class=\"power icon\"></i>\n  <i class=\"trash icon\"></i>\n  <i class=\"disk outline icon\"></i>\n  <i class=\"desktop icon\"></i>\n  <i class=\"laptop icon\"></i>\n  <i class=\"tablet icon\"></i>\n  <i class=\"mobile icon\"></i>\n  <i class=\"game icon\"></i>\n  <i class=\"keyboard icon\"></i>\n  <i class=\"folder icon\"></i>\n  <i class=\"folder open icon\"></i>\n  <i class=\"level up icon\"></i>\n  <i class=\"level down icon\"></i>\n  <i class=\"file icon\"></i>\n  <i class=\"file outline icon\"></i>\n  <i class=\"file text icon\"></i>\n  <i class=\"file text outline icon\"></i>\n  <i class=\"folder outline icon\"></i>\n  <i class=\"folder open outline icon\"></i>\n  <i class=\"file pdf outline icon\"></i>\n  <i class=\"file word outline icon\"></i>\n  <i class=\"file excel outline icon\"></i>\n  <i class=\"file powerpoint outline icon\"></i>\n  <i class=\"file image outline icon\"></i>\n  <i class=\"file archive outline icon\"></i>\n  <i class=\"file audio outline icon\"></i>\n  <i class=\"file video outline icon\"></i>\n  <i class=\"file code outline icon\"></i>\n  <i class=\"barcode icon\"></i>\n  <i class=\"qrcode icon\"></i>\n  <i class=\"fork icon\"></i>\n  <i class=\"html5 icon\"></i>\n  <i class=\"css3 icon\"></i>\n  <i class=\"rss square icon\"></i>\n  <i class=\"openid icon\"></i>\n  <i class=\"database icon\"></i>\n  <i class=\"heart icon\"></i>\n  <i class=\"star icon\"></i>\n  <i class=\"empty star icon\"></i>\n  <i class=\"thumbs outline up icon\"></i>\n  <i class=\"thumbs outline down icon\"></i>\n  <i class=\"star half icon\"></i>\n  <i class=\"empty heart icon\"></i>\n  <i class=\"smile icon\"></i>\n  <i class=\"frown icon\"></i>\n  <i class=\"meh icon\"></i>\n  <i class=\"star half empty icon\"></i>\n  <i class=\"thumbs up icon\"></i>\n  <i class=\"thumbs down icon\"></i>\n  <i class=\"music icon\"></i>\n  <i class=\"video play outline icon\"></i>\n  <i class=\"volume off icon\"></i>\n  <i class=\"volume down icon\"></i>\n  <i class=\"volume up icon\"></i>\n  <i class=\"record icon\"></i>\n  <i class=\"step backward icon\"></i>\n  <i class=\"fast backward icon\"></i>\n  <i class=\"backward icon\"></i>\n  <i class=\"play icon\"></i>\n  <i class=\"pause icon\"></i>\n  <i class=\"stop icon\"></i>\n  <i class=\"forward icon\"></i>\n  <i class=\"fast forward icon\"></i>\n  <i class=\"step forward icon\"></i>\n  <i class=\"eject icon\"></i>\n  <i class=\"unmute icon\"></i>\n  <i class=\"mute icon\"></i>\n  <i class=\"video play icon\"></i>\n  <i class=\"marker icon\"></i>\n  <i class=\"coffee icon\"></i>\n  <i class=\"food icon\"></i>\n  <i class=\"building outline icon\"></i>\n  <i class=\"hospital icon\"></i>\n  <i class=\"emergency icon\"></i>\n  <i class=\"first aid icon\"></i>\n  <i class=\"military icon\"></i>\n  <i class=\"h icon\"></i>\n  <i class=\"location arrow icon\"></i>\n  <i class=\"space shuttle icon\"></i>\n  <i class=\"university icon\"></i>\n  <i class=\"building icon\"></i>\n  <i class=\"paw icon\"></i>\n  <i class=\"spoon icon\"></i>\n  <i class=\"car icon\"></i>\n  <i class=\"taxi icon\"></i>\n  <i class=\"tree icon\"></i>\n  <i class=\"table icon\"></i>\n  <i class=\"columns icon\"></i>\n  <i class=\"sort icon\"></i>\n  <i class=\"sort ascending icon\"></i>\n  <i class=\"sort descending icon\"></i>\n  <i class=\"sort alphabet ascending icon\"></i>\n  <i class=\"sort alphabet descending icon\"></i>\n  <i class=\"sort content ascending icon\"></i>\n  <i class=\"sort content descending icon\"></i>\n  <i class=\"sort numeric ascending icon\"></i>\n  <i class=\"sort numeric descending icon\"></i>\n  <i class=\"font icon\"></i>\n  <i class=\"bold icon\"></i>\n  <i class=\"italic icon\"></i>\n  <i class=\"text height icon\"></i>\n  <i class=\"text width icon\"></i>\n  <i class=\"align left icon\"></i>\n  <i class=\"align center icon\"></i>\n  <i class=\"align right icon\"></i>\n  <i class=\"align justify icon\"></i>\n  <i class=\"list icon\"></i>\n  <i class=\"outdent icon\"></i>\n  <i class=\"indent icon\"></i>\n  <i class=\"linkify icon\"></i>\n  <i class=\"cut icon\"></i>\n  <i class=\"copy icon\"></i>\n  <i class=\"attach icon\"></i>\n  <i class=\"save icon\"></i>\n  <i class=\"content icon\"></i>\n  <i class=\"unordered list icon\"></i>\n  <i class=\"ordered list icon\"></i>\n  <i class=\"strikethrough icon\"></i>\n  <i class=\"underline icon\"></i>\n  <i class=\"paste icon\"></i>\n  <i class=\"unlink icon\"></i>\n  <i class=\"superscript icon\"></i>\n  <i class=\"subscript icon\"></i>\n  <i class=\"header icon\"></i>\n  <i class=\"paragraph icon\"></i>\n  <i class=\"euro icon\"></i>\n  <i class=\"pound icon\"></i>\n  <i class=\"dollar icon\"></i>\n  <i class=\"rupee icon\"></i>\n  <i class=\"yen icon\"></i>\n  <i class=\"ruble icon\"></i>\n  <i class=\"won icon\"></i>\n  <i class=\"lira icon\"></i>\n  <i class=\"twitter square icon\"></i>\n  <i class=\"facebook square icon\"></i>\n  <i class=\"linkedin square icon\"></i>\n  <i class=\"github square icon\"></i>\n  <i class=\"twitter icon\"></i>\n  <i class=\"facebook icon\"></i>\n  <i class=\"github icon\"></i>\n  <i class=\"pinterest icon\"></i>\n  <i class=\"pinterest square icon\"></i>\n  <i class=\"google plus square icon\"></i>\n  <i class=\"google plus icon\"></i>\n  <i class=\"linkedin icon\"></i>\n  <i class=\"github alternate icon\"></i>\n  <i class=\"maxcdn icon\"></i>\n  <i class=\"bitcoin icon\"></i>\n  <i class=\"youtube square icon\"></i>\n  <i class=\"youtube icon\"></i>\n  <i class=\"xing icon\"></i>\n  <i class=\"xing square icon\"></i>\n  <i class=\"youtube play icon\"></i>\n  <i class=\"dropbox icon\"></i>\n  <i class=\"stack overflow icon\"></i>\n  <i class=\"instagram icon\"></i>\n  <i class=\"flickr icon\"></i>\n  <i class=\"adn icon\"></i>\n  <i class=\"bitbucket icon\"></i>\n  <i class=\"bitbucket square icon\"></i>\n  <i class=\"tumblr icon\"></i>\n  <i class=\"tumblr square icon\"></i>\n  <i class=\"apple icon\"></i>\n  <i class=\"windows icon\"></i>\n  <i class=\"android icon\"></i>\n  <i class=\"linux icon\"></i>\n  <i class=\"dribbble icon\"></i>\n  <i class=\"skype icon\"></i>\n  <i class=\"foursquare icon\"></i>\n  <i class=\"trello icon\"></i>\n  <i class=\"gittip icon\"></i>\n  <i class=\"vk icon\"></i>\n  <i class=\"weibo icon\"></i>\n  <i class=\"renren icon\"></i>\n  <i class=\"pagelines icon\"></i>\n  <i class=\"stack exchange icon\"></i>\n  <i class=\"vimeo icon\"></i>\n  <i class=\"slack icon\"></i>\n  <i class=\"wordpress icon\"></i>\n  <i class=\"yahoo icon\"></i>\n  <i class=\"google icon\"></i>\n  <i class=\"reddit icon\"></i>\n  <i class=\"reddit square icon\"></i>\n  <i class=\"stumbleupon circle icon\"></i>\n  <i class=\"stumbleupon icon\"></i>\n  <i class=\"delicious icon\"></i>\n  <i class=\"digg icon\"></i>\n  <i class=\"pied piper icon\"></i>\n  <i class=\"pied piper alternate icon\"></i>\n  <i class=\"drupal icon\"></i>\n  <i class=\"joomla icon\"></i>\n  <i class=\"behance icon\"></i>\n  <i class=\"behance square icon\"></i>\n  <i class=\"steam icon\"></i>\n  <i class=\"steam square icon\"></i>\n  <i class=\"spotify icon\"></i>\n  <i class=\"deviantart icon\"></i>\n  <i class=\"soundcloud icon\"></i>\n  <i class=\"vine icon\"></i>\n  <i class=\"codepen icon\"></i>\n  <i class=\"jsfiddle icon\"></i>\n  <i class=\"rebel icon\"></i>\n  <i class=\"empire icon\"></i>\n  <i class=\"git square icon\"></i>\n  <i class=\"git icon\"></i>\n  <i class=\"hacker news icon\"></i>\n  <i class=\"tencent weibo icon\"></i>\n  <i class=\"qq icon\"></i>\n  <i class=\"wechat icon\"></i>\n  <i class=\"like icon\"></i>\n  <i class=\"favorite icon\"></i>\n  <i class=\"video icon\"></i>\n  <i class=\"check icon\"></i>\n  <i class=\"remove icon\"></i>\n  <i class=\"close icon\"></i>\n  <i class=\"cancel icon\"></i>\n  <i class=\"delete icon\"></i>\n  <i class=\"x icon\"></i>\n  <i class=\"zoom in icon\"></i>\n  <i class=\"magnify icon\"></i>\n  <i class=\"shutdown icon\"></i>\n  <i class=\"signal icon\"></i>\n  <i class=\"clock icon\"></i>\n  <i class=\"time icon\"></i>\n  <i class=\"play circle outline icon\"></i>\n  <i class=\"clockwise icon\"></i>\n  <i class=\"headphone icon\"></i>\n  <i class=\"volume off icon\"></i>\n  <i class=\"camera icon\"></i>\n  <i class=\"video camera icon\"></i>\n  <i class=\"picture icon\"></i>\n  <i class=\"pencil icon\"></i>\n  <i class=\"compose icon\"></i>\n  <i class=\"point icon\"></i>\n  <i class=\"tint icon\"></i>\n  <i class=\"signup icon\"></i>\n  <i class=\"plus circle icon\"></i>\n  <i class=\"minus circle icon\"></i>\n  <i class=\"dont icon\"></i>\n  <i class=\"minimize icon\"></i>\n  <i class=\"add icon\"></i>\n  <i class=\"eye icon\"></i>\n  <i class=\"attention icon\"></i>\n  <i class=\"cart icon\"></i>\n  <i class=\"plane icon\"></i>\n  <i class=\"shuffle icon\"></i>\n  <i class=\"talk icon\"></i>\n  <i class=\"chat icon\"></i>\n  <i class=\"shopping cart icon\"></i>\n  <i class=\"bar graph icon\"></i>\n  <i class=\"key icon\"></i>\n  <i class=\"privacy icon\"></i>\n  <i class=\"cogs icon\"></i>\n  <i class=\"discussions icon\"></i>\n  <i class=\"like outline icon\"></i>\n  <i class=\"dislike outline icon\"></i>\n  <i class=\"heart outline icon\"></i>\n  <i class=\"log out icon\"></i>\n  <i class=\"thumb tack icon\"></i>\n  <i class=\"winner icon\"></i>\n  <i class=\"bookmark outline icon\"></i>\n  <i class=\"phone square icon\"></i>\n  <i class=\"phone square icon\"></i>\n  <i class=\"credit card icon\"></i>\n  <i class=\"rss icon\"></i>\n  <i class=\"hdd outline icon\"></i>\n  <i class=\"bullhorn icon\"></i>\n  <i class=\"bell icon\"></i>\n  <i class=\"hand outline right icon\"></i>\n  <i class=\"hand outline left icon\"></i>\n  <i class=\"hand outline up icon\"></i>\n  <i class=\"hand outline down icon\"></i>\n  <i class=\"globe icon\"></i>\n  <i class=\"wrench icon\"></i>\n  <i class=\"briefcase icon\"></i>\n  <i class=\"group icon\"></i>\n  <i class=\"flask icon\"></i>\n  <i class=\"sidebar icon\"></i>\n  <i class=\"bars icon\"></i>\n  <i class=\"list ul icon\"></i>\n  <i class=\"list ol icon\"></i>\n  <i class=\"numbered list icon\"></i>\n  <i class=\"magic icon\"></i>\n  <i class=\"truck icon\"></i>\n  <i class=\"currency icon\"></i>\n  <i class=\"triangle down icon\"></i>\n  <i class=\"dropdown icon\"></i>\n  <i class=\"triangle up icon\"></i>\n  <i class=\"triangle left icon\"></i>\n  <i class=\"triangle right icon\"></i>\n  <i class=\"envelope icon\"></i>\n  <i class=\"conversation icon\"></i>\n  <i class=\"lightning icon\"></i>\n  <i class=\"umbrella icon\"></i>\n  <i class=\"lightbulb icon\"></i>\n  <i class=\"suitcase icon\"></i>\n  <i class=\"bell outline icon\"></i>\n  <i class=\"ambulance icon\"></i>\n  <i class=\"medkit icon\"></i>\n  <i class=\"fighter jet icon\"></i>\n  <i class=\"beer icon\"></i>\n  <i class=\"plus square icon\"></i>\n  <i class=\"computer icon\"></i>\n  <i class=\"circle outline icon\"></i>\n  <i class=\"spinner icon\"></i>\n  <i class=\"gamepad icon\"></i>\n  <i class=\"star half full icon\"></i>\n  <i class=\"remove link icon\"></i>\n  <i class=\"question icon\"></i>\n  <i class=\"attention icon\"></i>\n  <i class=\"eraser icon\"></i>\n  <i class=\"microphone icon\"></i>\n  <i class=\"microphone slash icon\"></i>\n  <i class=\"shield icon\"></i>\n  <i class=\"target icon\"></i>\n  <i class=\"play circle icon\"></i>\n  <i class=\"pencil square icon\"></i>\n  <i class=\"compass icon\"></i>\n  <i class=\"eur icon\"></i>\n  <i class=\"gbp icon\"></i>\n  <i class=\"usd icon\"></i>\n  <i class=\"inr icon\"></i>\n  <i class=\"jpy icon\"></i>\n  <i class=\"rub icon\"></i>\n  <i class=\"krw icon\"></i>\n  <i class=\"btc icon\"></i>\n  <i class=\"try icon\"></i>\n  <i class=\"zip icon\"></i>\n  <i class=\"dot circle outline icon\"></i>\n  <i class=\"sliders icon\"></i>\n  <i class=\"graduation icon\"></i>\n  <i class=\"weixin icon\"></i>\n</div>\n\n<div class=\"ui divider\"></div>\n\n<i class=\"circular users icon\"></i>\n<i class=\"circular inverted users icon\"></i>\n<i class=\"circular settings icon\"></i>\n<i class=\"circular settings icon\"></i>\n<i class=\"bordered users icon\"></i>\n<i class=\"bordered inverted black users icon\"></i>\n<i class=\"spinner loading icon\"></i>\n<i class=\"notched circle loading icon\"></i>\n<i class=\"circular teal users icon\"></i>\n<i class=\"circular inverted teal users icon\"></i>\n<i class=\"bordered teal users icon\"></i>\n<i class=\"bordered inverted teal users icon\"></i>\n<i class=\"small settings icon\"></i>\n<i class=\"settings icon\"></i>\n<i class=\"large settings icon\"></i>\n<i class=\"big settings icon\"></i>\n<i class=\"huge settings icon\"></i>\n<i class=\"massive settings icon\"></i>\n\n<style type=\"text/css\">\n.demo.icons .icon {\n  font-size: 16px;\n  margin: 0em 4px 8px;\n}\n</style>"
  },
  {
    "path": "server/partials/examples/image.html",
    "content": "<img class=\"ui avatar image\" src=\"/images/wireframe/square-image.png\"> User Avatar\n<div class=\"ui ignored hidden divider\"></div>\n<div class=\"ui small images\">\n  <img class=\"ui image\" src=\"/images/wireframe/image.png\">\n  <img class=\"ui image\" src=\"/images/wireframe/image.png\">\n  <img class=\"ui image\" src=\"/images/wireframe/image.png\">\n  <img class=\"ui image\" src=\"/images/wireframe/image.png\">\n</div>\n<div class=\"ui ignored hidden divider\"></div>\n<img class=\"ui small circular image\" src=\"/images/wireframe/square-image.png\">"
  },
  {
    "path": "server/partials/examples/input.html",
    "content": "<div class=\"ui action left icon input\">\n  <i class=\"search icon\"></i>\n  <input type=\"text\" placeholder=\"Search...\">\n  <div class=\"ui teal button\">Search</div>\n</div>\n\n<div class=\"ui hidden divider\"></div>\n<div class=\"ui corner labeled input\">\n  <input type=\"text\" placeholder=\"Required Field\">\n  <div class=\"ui corner label\">\n    <i class=\"asterisk icon\"></i>\n  </div>\n</div>\n\n<div class=\"ui hidden divider\"></div>\n<div class=\"ui labeled right icon input\">\n  <div class=\"ui label\">\n    http://\n  </div>\n  <input type=\"text\" placeholder=\"domain.com\">\n  <i class=\"add circle link icon\"></i>\n</div>\n\n<div class=\"ui hidden divider\"></div>\n<div class=\"ui labeled input\">\n  <a class=\"ui label\">\n    Label\n  </a>\n  <input type=\"text\" placeholder=\"Placeholder...\">\n</div>\n<div class=\"ui hidden divider\"></div>\n<div class=\"ui right labeled input\">\n  <input type=\"text\" placeholder=\"Placeholder...\">\n  <a class=\"ui label\">\n    Label\n  </a>\n</div>"
  },
  {
    "path": "server/partials/examples/item.html",
    "content": "<div class=\"ui relaxed divided items\">\n  <div class=\"item\">\n    <div class=\"ui small image\">\n      <img src=\"/images/wireframe/image.png\">\n    </div>\n    <div class=\"content\">\n      <a class=\"header\">Content Header</a>\n      <div class=\"meta\">\n        <a>Date</a>\n        <a>Category</a>\n      </div>\n      <div class=\"description\">\n        A description which may flow for several lines and give context to the content.\n      </div>\n      <div class=\"extra\">\n        <img src=\"/images/wireframe/square-image.png\" class=\"ui circular avatar image\"> Username\n      </div>\n    </div>\n  </div>\n  <div class=\"item\">\n    <div class=\"ui small image\">\n      <img src=\"/images/wireframe/image.png\">\n    </div>\n    <div class=\"content\">\n      <a class=\"header\">Content Header</a>\n      <div class=\"meta\">\n        <a>Date</a>\n        <a>Category</a>\n      </div>\n      <div class=\"description\">\n        A description which may flow for several lines and give context to the content.\n      </div>\n      <div class=\"extra\">\n        <div class=\"ui right floated primary button\">\n          Primary\n          <i class=\"right chevron icon\"></i>\n        </div>\n        <div class=\"ui label\">Limited</div>\n      </div>\n    </div>\n  </div>\n  <div class=\"item\">\n    <div class=\"ui small image\">\n      <img src=\"/images/wireframe/image.png\">\n    </div>\n    <div class=\"content\">\n      <a class=\"header\">Content Header</a>\n      <div class=\"meta\">\n        <a>Date</a>\n        <a>Category</a>\n      </div>\n      <div class=\"description\">\n        A description which may flow for several lines and give context to the content.\n      </div>\n      <div class=\"extra\">\n        <div class=\"ui right floated primary button\">\n          Primary\n          <i class=\"right chevron icon\"></i>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n\n<div class=\"ui hidden divider\"></div>\n\n<div class=\"ui divided items\">\n  <div class=\"link item\">\n    <div class=\"ui tiny image\">\n      <img src=\"/images/wireframe/image.png\">\n    </div>\n    <div class=\"content\">\n      <a class=\"header\">Content Header</a>\n      <div class=\"description\">\n        A description which may flow for several lines and give context to the content.\n      </div>\n    </div>\n  </div>\n  <div class=\"link item\">\n    <div class=\"ui tiny image\">\n      <img src=\"/images/wireframe/image.png\">\n    </div>\n    <div class=\"content\">\n      <a class=\"header\">Content Header</a>\n      <div class=\"description\">\n        A description which may flow for several lines and give context to the content.\n      </div>\n    </div>\n  </div>\n  <div class=\"link item\">\n    <div class=\"ui tiny image\">\n      <img src=\"/images/wireframe/image.png\">\n    </div>\n    <div class=\"content\">\n      <a class=\"header\">Content Header</a>\n      <div class=\"description\">\n        A description which may flow for several lines and give context to the content.\n      </div>\n    </div>\n  </div>\n</div>"
  },
  {
    "path": "server/partials/examples/label.html",
    "content": "<div class=\"ui image label\">\n  <img src=\"/images/avatar/small/justen.jpg\">\n  email@address.com\n  <i class=\"delete icon\"></i>\n</div>\n<a class=\"ui teal image label\">\n  Some Name\n  <span class=\"detail\">Group</span>\n</a>\n<a class=\"ui label\">\n  <i class=\"mail icon\"></i> Icon\n</a>\n<a class=\"ui tag label\">Tag</a>\n<div class=\"ui empty circular label\"></div>\n<div class=\"ui black empty circular label\"></div>\n<div class=\"ui teal empty circular label\"></div>\n\n\n<form class=\"ui fluid form\">\n  <div class=\"two fields\">\n    <div class=\"field\">\n      <input placeholder=\"First name\" type=\"text\">\n      <div class=\"ui pointing label\">\n        Pointing Label\n      </div>\n    </div>\n    <div class=\"field\" placeholder=\"Last Name\">\n      <div class=\"ui pointing below label\">\n        Pointing below label\n      </div>\n      <input type=\"text\">\n    </div>\n  </div>\n</form>\n\n<div class=\"ui hidden divider\"></div>\n<div class=\"ui two item menu\">\n  <a class=\"item\">\n    Item\n  </a>\n  <a class=\"item\">\n    Item\n    <div class=\"floating ui teal label\">141</div>\n  </a>\n</div>\n\n<div class=\"ui hidden divider\"></div>\n<div class=\"ui left floated tiny image\">\n  <a class=\"ui left red corner label\">\n    <i class=\"heart icon\"></i>\n  </a>\n  <img src=\"/images/wireframe/square-image.png\">\n</div>\n<div class=\"ui left floated tiny image\">\n  <a class=\"ui left yellow corner label\">\n    <i class=\"star icon\"></i>\n  </a>\n  <img src=\"/images/wireframe/square-image.png\">\n</div>\n<div class=\"ui left floated tiny image\">\n  <a class=\"ui right corner label\">\n    <i class=\"close icon\"></i>\n  </a>\n  <img src=\"/images/wireframe/square-image.png\">\n</div>\n\n<div class=\"ui hidden clearing divider\"></div>\n<div style=\"min-height: 8rem;\" class=\"ui segment\">\n  <div class=\"ui top attached label\">Top Labeled</div>\n  <div class=\"ui bottom attached label\">Bottom Labeled</div>\n</div>\n<div style=\"min-height: 8rem;\" class=\"ui segment\">\n  <div class=\"ui top left attached label\">Top Left</div>\n  <div class=\"ui top right attached label\">Top Right</div>\n  <div class=\"ui bottom left attached label\">Bottom Left</div>\n  <div class=\"ui bottom right attached label\">Bottom Right</div>\n</div>\n<div class=\"ui segment\" style=\"min-height: 8rem;\">\n  <a class=\"ui ribbon label\">Ribbon</a>\n</div>"
  },
  {
    "path": "server/partials/examples/list.html",
    "content": "<div class=\"ui two column relaxed stackable grid\">\n  <div class=\"column\">\n    <div class=\"ui list\">\n      <div class=\"item\">\n        <div class=\"ui top aligned avatar image\">\n          <img src=\"/images/wireframe/square-image.png\">\n        </div>\n        <div class=\"content\">\n          <div class=\"header\">Header</div>\n          Description\n          <div class=\"list\">\n            <div class=\"item\">\n              <i class=\"right triangle icon\"></i>\n              <div class=\"content\">\n                <a class=\"header\">Sub Header</a>\n                <div class=\"description\">Sub Description</div>\n              </div>\n            </div>\n            <div class=\"item\">\n              <i class=\"right triangle icon\"></i>\n              <div class=\"content\">\n                <a class=\"header\">Sub Header</a>\n                <div class=\"description\">Sub Description</div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"ui top aligned avatar image\">\n          <img src=\"/images/wireframe/square-image.png\">\n        </div>\n        <div class=\"content\">\n          <div class=\"header\">Header</div>\n          Description\n          <div class=\"list\">\n            <div class=\"item\">\n              <i class=\"right triangle icon\"></i>\n              <div class=\"content\">\n                <a class=\"header\">Sub Header</a>\n                <div class=\"description\">Sub Description</div>\n              </div>\n            </div>\n            <div class=\"item\">\n              <i class=\"right triangle icon\"></i>\n              <div class=\"content\">\n                <a class=\"header\">Sub Header</a>\n                <div class=\"description\">Sub Description</div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"ui divided very relaxed list\">\n      <div class=\"item\">\n        <i class=\"star icon\"></i>\n        <div class=\"content\">\n          <div class=\"header\">Header</div>\n          Description\n        </div>\n      </div>\n      <div class=\"item\">\n        <i class=\"star icon\"></i>\n        <div class=\"content\">\n          <div class=\"header\">Header</div>\n          Description\n        </div>\n      </div>\n      <div class=\"item\">\n        <i class=\"star icon\"></i>\n        <div class=\"content\">\n          <div class=\"header\">Header</div>\n          Description\n        </div>\n      </div>\n    </div>\n\n    <div class=\"ui divided very relaxed animated list\">\n      <div class=\"item\">\n        <div class=\"ui top aligned avatar image\">\n          <img src=\"/images/wireframe/square-image.png\">\n        </div>\n        <div class=\"content\">\n          <div class=\"header\">Header</div>\n          Description\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"ui top aligned avatar image\">\n          <img src=\"/images/wireframe/square-image.png\">\n        </div>\n        <div class=\"content\">\n          <div class=\"header\">Header</div>\n          Description\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"ui top aligned avatar image\">\n          <img src=\"/images/wireframe/square-image.png\">\n        </div>\n        <div class=\"content\">\n          <div class=\"header\">Header</div>\n          Description\n        </div>\n      </div>\n    </div>\n\n  </div>\n\n  <div class=\"column\">\n    <div class=\"ui bulleted link list\">\n      <a class=\"item\">Link</a>\n      <a class=\"item\">Link</a>\n      <a class=\"item\">Link</a>\n      <a class=\"item\">Link</a>\n      <a class=\"item\">Link</a>\n    </div>\n\n    <div class=\"ui selection list\">\n      <a class=\"item\">Selection</a>\n      <a class=\"item\">Selection</a>\n      <a class=\"item\">Selection</a>\n      <a class=\"item\">Selection</a>\n      <a class=\"item\">Selection</a>\n    </div>\n\n    <div class=\"ui bulleted list\">\n      <div class=\"item\">\n        <div class=\"content\">\n          <div class=\"header\">Header</div>\n          Description\n        </div>\n        <div class=\"list\">\n          <div class=\"item\">\n            Sub-header\n          </div>\n          <div class=\"item\">\n            Sub-header\n          </div>\n          <div class=\"item\">\n            Sub-header\n          </div>\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"content\">\n          <div class=\"header\">Header</div>\n          Description\n        </div>\n      </div>\n      <div class=\"item\">\n        <div class=\"content\">\n          <div class=\"header\">Header</div>\n          Description\n        </div>\n      </div>\n    </div>\n\n    <div class=\"ui ordered list\">\n      <a class=\"item\">Getting Started</a>\n      <a class=\"item\">Introduction</a>\n      <div class=\"item\">\n        <a>Languages</a>\n        <div class=\"list\">\n          <a class=\"item\">HTML</a>\n          <a class=\"item\">Javascript</a>\n          <a class=\"item\">CSS</a>\n        </div>\n      </div>\n      <a class=\"item\">Review</a>\n    </div>\n  </div>\n</div>\n\n<div class=\"ui hidden divider\"></div>\n\n<div class=\"ui horizontal list\">\n  <div class=\"item\">\n    <div class=\"ui top aligned avatar image\">\n      <img src=\"/images/wireframe/square-image.png\">\n    </div>\n    <div class=\"content\">\n      <div class=\"header\">Header</div>\n      Description\n    </div>\n  </div>\n  <div class=\"item\">\n    <div class=\"ui top aligned avatar image\">\n      <img src=\"/images/wireframe/square-image.png\">\n    </div>\n    <div class=\"content\">\n      <div class=\"header\">Header</div>\n      Description\n    </div>\n  </div>\n  <div class=\"item\">\n    <div class=\"ui top aligned avatar image\">\n      <img src=\"/images/wireframe/square-image.png\">\n    </div>\n    <div class=\"content\">\n      <div class=\"header\">Header</div>\n      Description\n    </div>\n  </div>\n</div>\n\n<div class=\"ui hidden divider\"></div>\n\n<div class=\"ui divided relaxed horizontal list\">\n  <div class=\"item\">\n    <div class=\"ui top aligned avatar image\">\n      <img src=\"/images/wireframe/square-image.png\">\n    </div>\n    <div class=\"content\">\n      <div class=\"header\">Header</div>\n      Description\n    </div>\n  </div>\n  <div class=\"item\">\n    <div class=\"ui top aligned avatar image\">\n      <img src=\"/images/wireframe/square-image.png\">\n    </div>\n    <div class=\"content\">\n      <div class=\"header\">Header</div>\n      Description\n    </div>\n  </div>\n  <div class=\"item\">\n    <div class=\"ui top aligned avatar image\">\n      <img src=\"/images/wireframe/square-image.png\">\n    </div>\n    <div class=\"content\">\n      <div class=\"header\">Header</div>\n      Description\n    </div>\n  </div>\n</div>\n\n<div class=\"ui hidden divider\"></div>\n\n<div class=\"ui ordered horizontal list\">\n  <div class=\"item\">\n    <img class=\"ui avatar image\" src=\"/images/wireframe/square-image.png\">\n    <div class=\"content\">\n      <div class=\"header\">Steve Jobes</div>\n      50 Points\n    </div>\n  </div>\n  <div class=\"item\">\n    <img class=\"ui avatar image\" src=\"/images/wireframe/square-image.png\">\n    <div class=\"content\">\n      <div class=\"header\">Stevie Feliciano</div>\n      44 Points\n    </div>\n  </div>\n  <div class=\"item\">\n    <img class=\"ui avatar image\" src=\"/images/wireframe/square-image.png\">\n    <div class=\"content\">\n      <div class=\"header\">Jenny Hess</div>\n      11 Points\n    </div>\n  </div>\n</div>"
  },
  {
    "path": "server/partials/examples/loader.html",
    "content": "<div class=\"ui four column stackable doubling grid\">\n  <div class=\"column\">\n    <div class=\"ui segment\">\n      <div class=\"ui active dimmer\">\n        <div class=\"ui mini loader\"></div>\n      </div>\n      <br><br>\n      <br><br>\n      <br><br>\n    </div>\n  </div>\n  <div class=\"column\">\n    <div class=\"ui segment\">\n      <div class=\"ui active dimmer\">\n        <div class=\"ui small loader\"></div>\n      </div>\n      <br><br>\n      <br><br>\n      <br><br>\n    </div>\n  </div>\n  <div class=\"column\">\n    <div class=\"ui segment\">\n      <div class=\"ui active dimmer\">\n        <div class=\"ui loader\"></div>\n      </div>\n      <br><br>\n      <br><br>\n      <br><br>\n    </div>\n  </div>\n  <div class=\"column\">\n    <div class=\"ui segment\">\n      <div class=\"ui active dimmer\">\n        <div class=\"ui large loader\"></div>\n      </div>\n      <br><br>\n      <br><br>\n      <br><br>\n    </div>\n  </div>\n</div>\n<div class=\"ui four column stackable doubling grid\">\n  <div class=\"column\">\n    <div class=\"ui segment\">\n      <div class=\"ui active inverted dimmer\">\n        <div class=\"ui mini text loader\">\n          Loading\n        </div>\n      </div>\n      <br><br>\n      <br><br>\n      <br><br>\n    </div>\n  </div>\n  <div class=\"column\">\n    <div class=\"ui segment\">\n      <div class=\"ui active inverted dimmer\">\n        <div class=\"ui small text loader\">\n          Loading\n        </div>\n      </div>\n      <br><br>\n      <br><br>\n      <br><br>\n    </div>\n  </div>\n  <div class=\"column\">\n    <div class=\"ui segment\">\n      <div class=\"ui active inverted dimmer\">\n        <div class=\"ui text loader\">\n          Loading\n        </div>\n      </div>\n      <br><br>\n      <br><br>\n      <br><br>\n    </div>\n  </div>\n  <div class=\"column\">\n    <div class=\"ui segment\">\n      <div class=\"ui active inverted dimmer\">\n        <div class=\"ui large text loader\">\n          Loading\n        </div>\n      </div>\n      <br><br>\n      <br><br>\n      <br><br>\n    </div>\n  </div>\n</div>\n<div class=\"ui four column stackable doubling grid\">\n  <div class=\"column\">\n    <div class=\"ui segment\">\n      <div class=\"ui active dimmer\">\n        <div class=\"ui mini loader\"></div>\n      </div>\n      <br><br>\n      <br><br>\n      <br><br>\n    </div>\n  </div>\n  <div class=\"column\">\n    <div class=\"ui segment\">\n      <div class=\"ui active dimmer\">\n        <div class=\"ui small loader\"></div>\n      </div>\n      <br><br>\n      <br><br>\n      <br><br>\n    </div>\n  </div>\n  <div class=\"column\">\n    <div class=\"ui segment\">\n      <div class=\"ui active dimmer\">\n        <div class=\"ui loader\"></div>\n      </div>\n      <br><br>\n      <br><br>\n      <br><br>\n    </div>\n  </div>\n  <div class=\"column\">\n    <div class=\"ui segment\">\n      <div class=\"ui active dimmer\">\n        <div class=\"ui large loader\"></div>\n      </div>\n      <br><br>\n      <br><br>\n      <br><br>\n    </div>\n  </div>\n</div>\n<div class=\"ui four column stackable doubling grid\">\n  <div class=\"column\">\n    <div class=\"ui segment\">\n      <div class=\"ui active inverted dimmer\">\n        <div class=\"ui mini text loader\">\n          Loading\n        </div>\n      </div>\n      <br><br>\n      <br><br>\n      <br><br>\n    </div>\n  </div>\n  <div class=\"column\">\n    <div class=\"ui segment\">\n      <div class=\"ui active inverted dimmer\">\n        <div class=\"ui small text loader\">\n          Loading\n        </div>\n      </div>\n      <br><br>\n      <br><br>\n      <br><br>\n    </div>\n  </div>\n  <div class=\"column\">\n    <div class=\"ui segment\">\n      <div class=\"ui active inverted dimmer\">\n        <div class=\"ui text loader\">\n          Loading\n        </div>\n      </div>\n      <br><br>\n      <br><br>\n      <br><br>\n    </div>\n  </div>\n  <div class=\"column\">\n    <div class=\"ui segment\">\n      <div class=\"ui active inverted dimmer\">\n        <div class=\"ui large text loader\">\n          Loading\n        </div>\n      </div>\n      <br><br>\n      <br><br>\n      <br><br>\n    </div>\n  </div>\n</div>\n\n<div class=\"ui hidden clearing divider\"></div>\n\n<div class=\"ui segment\">\n  <div class=\"ui active inverted dimmer\">\n    <div class=\"ui indeterminate text active loader\">\n      Preparing...\n    </div>\n  </div>\n  <br><br>\n  <br><br>\n  <br><br>\n</div>\n\n<div class=\"ui segment\">\n  <div class=\"ui active dimmer\">\n    <div class=\"ui indeterminate active loader\"></div>\n  </div>\n  <br><br>\n  <br><br>\n  <br><br>\n</div>\n"
  },
  {
    "path": "server/partials/examples/menu.html",
    "content": "<div class=\"ui three item menu\">\n  <a class=\"active item\">\n    A\n  </a>\n  <a class=\"item\">\n    B\n  </a>\n  <a class=\"item\">\n    C\n  </a>\n</div>\n<div class=\"ui vertical demo menu\">\n  <a class=\"active item\">\n    A\n  </a>\n  <a class=\"item\">\n    B\n    <div class=\"ui label\">1</div>\n  </a>\n  <div class=\"item\">\n  <div class=\"ui transparent icon input\">\n      <input type=\"text\" placeholder=\"Search...\">\n      <i class=\"search icon\"></i>\n    </div>\n  </div>\n</div>\n<div class=\"ui tabular menu\">\n  <a class=\"active item\">\n    Tab\n  </a>\n  <a class=\"item\">\n    Tab\n  </a>\n</div>\n<div class=\"ui text demo menu\">\n  <a class=\"active item\">\n    A\n  </a>\n  <a class=\"item\">\n    B\n  </a>\n  <a class=\"item\">\n    C\n  </a>\n</div>\n<div class=\"ui secondary demo menu\">\n  <a class=\"active item\">\n    A\n  </a>\n  <a class=\"item\">\n    B\n  </a>\n  <a class=\"item\">\n    C\n  </a>\n</div>\n<div class=\"ui secondary pointing three item demo menu\">\n  <a class=\"active item\">\n    A\n  </a>\n  <a class=\"item\">\n    B\n  </a>\n  <a class=\"item\">\n    C\n  </a>\n</div>\n<div class=\"ui secondary vertical demo menu\">\n  <a class=\"active item\">\n    A\n  </a>\n  <a class=\"item\">\n    B\n  </a>\n  <a class=\"item\">\n    C\n  </a>\n</div>\n<div class=\"ui secondary pointing vertical demo menu\">\n  <a class=\"active item\">\n    A\n  </a>\n  <a class=\"item\">\n    B\n  </a>\n  <a class=\"item\">\n    C\n  </a>\n</div>\n\n<script type=\"text/javascript\">\n$(document)\n  .ready(function(){\n    $('.demo .example .menu a.item')\n      .on('click', function() {\n        if(!$(this).hasClass('dropdown')) {\n          $(this)\n            .addClass('active')\n            .closest('.ui.menu')\n            .find('.item')\n              .not($(this))\n              .removeClass('active')\n          ;\n        }\n      })\n    ;\n  })\n;\n</script>"
  },
  {
    "path": "server/partials/examples/message.html",
    "content": "<div class=\"ui message\">\n  <i class=\"close icon\"></i>\n  Closable message\n</div>\n<div class=\"ui warning icon message\">\n  <div class=\"content\">\n  <div class=\"header\">Warning Message</div>\n    <ul class=\"list\">\n      <li>List item</li>\n      <li>List item</li>\n    </ul>\n  </div>\n</div>\n<div class=\"ui message\">\n  <div class=\"header\">\n    List Message\n  </div>\n  <ul class=\"list\">\n    <li>List item 1</li>\n    <li>List item 2</li>\n    <li>List item 3</li>\n  </ul>\n</div>\n<div class=\"ui info message\">\n  <div class=\"header\">Info Message</div>\n  <p>Example description</p>\n</div>\n<div class=\"ui success message\">\n  <div class=\"content\">\n    <div class=\"header\">Positive Message</div>\n    <p>Example description</p>\n  </div>\n</div>\n<div class=\"ui icon error message\">\n  <i class=\"attention circle icon\"></i>\n  <div class=\"content\">\n    <div class=\"header\">Negative Message</div>\n    <p>Example description</p>\n  </div>\n</div>\n<div class=\"ui top attached message\">\n  Top attached\n</div>\n<div class=\"ui bottom attached message\">\n  Bottom attached\n</div>\n\n<script type=\"text/javascript\">\n$(document)\n  .ready(function(){\n    $('.example .message .close')\n      .on('click', function() {\n        $(this).closest('.message').transition('scale out');\n      })\n    ;\n\n  })\n;\n</script>"
  },
  {
    "path": "server/partials/examples/modal.html",
    "content": "<div class=\"ui standard demo button\">Standard Modal</div>\n<div class=\"ui minimal demo button\">Basic Modal</div>\n<div class=\"ui fullscreen demo button\">Full-Screen Modal</div>\n\n<div class=\"ui standard demo modal\">\n  <i class=\"close icon\"></i>\n  <div class=\"header\">\n    Profile Picture\n  </div>\n  <div class=\"image content\">\n    <div class=\"ui medium image\">\n      <img src=\"/images/avatar/large/chris.jpg\">\n    </div>\n    <div class=\"description\">\n      <div class=\"ui header\">We've auto-chosen a profile image for you.</div>\n      <p>We've grabbed the following image from the <a href=\"https://www.gravatar.com\" target=\"_blank\">gravatar</a> image associated with your registered e-mail address.</p>\n      <p>Is it okay to use this photo?</p>\n    </div>\n  </div>\n  <div class=\"actions\">\n    <div class=\"ui black button\">\n      Nope\n    </div>\n    <div class=\"ui positive right labeled icon button\">\n      Yep, that's me\n      <i class=\"checkmark icon\"></i>\n    </div>\n  </div>\n</div>\n\n<div class=\"ui basic demo modal\">\n  <div class=\"header\">\n    Archive Old Messages\n  </div>\n  <div class=\"image content\">\n    <div class=\"image\">\n      <i class=\"archive icon\"></i>\n    </div>\n    <div class=\"description\">\n      <p>Your inbox is getting full, would you like us to enable automatic archiving of old messages?</p>\n    </div>\n  </div>\n  <div class=\"actions\">\n    <div class=\"two fluid ui inverted buttons\">\n      <div class=\"ui red basic cancel inverted button\">\n        <i class=\"remove icon\"></i>\n        No\n      </div>\n      <div class=\"ui green ok basic inverted button\">\n        <i class=\"checkmark icon\"></i>\n        Yes\n      </div>\n    </div>\n  </div>\n</div>\n\n<div class=\"ui fullscreen demo modal\">\n  <i class=\"close icon\"></i>\n  <div class=\"header\">\n    Update Your Settings\n  </div>\n  <div class=\"content\">\n    <div class=\"ui form\">\n      <h4 class=\"ui dividing header\">Give us your feedback</h4>\n      <div class=\"field\">\n        <label>Feedback</label>\n        <textarea></textarea>\n      </div>\n      <div class=\"field\">\n        <div class=\"ui checkbox\">\n          <input type=\"checkbox\" checked=\"checked\" name=\"contact-me\">\n          <label>It's okay to contact me.</label>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"actions\">\n    <div class=\"ui button\">Cancel</div>\n    <div class=\"ui green button\">Send</div>\n  </div>\n</div>\n\n\n<script type=\"text/javascript\">\n$(document)\n  .ready(function() {\n    $('.demo.modal')\n      .modal()\n    ;\n    $('.standard.demo.modal')\n      .modal('attach events', '.standard.demo.button')\n    ;\n    $('.basic.demo.modal')\n      .modal('attach events', '.minimal.demo.button')\n    ;\n    $('.fullscreen.demo.modal')\n      .modal('attach events', '.fullscreen.demo.button')\n    ;\n  })\n;\n</script>"
  },
  {
    "path": "server/partials/examples/popup.html",
    "content": "<div class=\"popup demos\">\n  <img src=\"/images/avatar/small/elliot.jpg\" data-title=\"Elliot Fu\" data-content=\"Elliot has been a member since July 2012\" class=\"ui avatar image\">\n  <img src=\"/images/avatar/small/stevie.jpg\" data-title=\"Stevie Feliciano\" data-content=\"Stevie has been a member since August 2013\" class=\"ui avatar image\">\n  <img src=\"/images/avatar/small/matt.jpg\" data-title=\"Matt\" data-content=\"Matt has been a member since July 2014\" class=\"ui avatar image\">\n\n  <div class=\"ui button\">Fluid Popup</div>\n  <div class=\"ui fluid popup\">\n    <div class=\"ui four column divided center aligned grid\">\n      <div class=\"column\">1</div>\n      <div class=\"column\">2</div>\n      <div class=\"column\">3</div>\n      <div class=\"column\">4</div>\n    </div>\n  </div>\n\n  <div class=\"ui button\" data-html=\"<div class='header'>User Rating</div><div class='content'><div class='ui star rating'><i class='active icon'></i><i class='active icon'></i><i class='active icon'></i><i class='icon'></i><i class='icon'></i></div></div>\">HTML Content</div>\n  <div class=\"ui button\">Basic Popup</div>\n  <div class=\"ui basic popup\">\n    Basic pop-up\n  </div>\n  <div class=\"ui button\">Small</div>\n  <div class=\"ui small popup\">\n    Small pop-up\n  </div>\n  <div class=\"ui button\">Large</div>\n  <div class=\"ui large popup\">\n    Large pop-up\n  </div>\n  <div class=\"ui button\" data-variation=\"inverted\" data-content=\"Inverted pop-up\">\n    Inverted\n  </div>\n  <div class=\"ui menu\">\n    <a class=\"active item\">\n      Link\n    </a>\n    <a class=\"browse item\">\n      <i class=\"dropdown icon\"></i>\n      Popup Link\n    </a>\n    <div class=\"ui flowing popup\">\n      <div class=\"ui four column relaxed equal height divided grid\">\n        <div class=\"ui column\">\n          <h3 class=\"ui header\">Fabrics</h3>\n          <div class=\"ui link list\">\n            <a class=\"item\">Cashmere</a>\n            <a class=\"item\">Linen</a>\n            <a class=\"item\">Cotton</a>\n            <a class=\"item\">Viscose</a>\n          </div>\n        </div>\n        <div class=\"ui column\">\n          <h3 class=\"ui header\">Sizes</h3>\n          <div class=\"ui link list\">\n            <a class=\"item\">Small</a>\n            <a class=\"item\">Medium</a>\n            <a class=\"item\">Large</a>\n            <a class=\"item\">Plus Sizes</a>\n          </div>\n        </div>\n        <div class=\"ui column\">\n          <h3 class=\"ui header\">Colors</h3>\n          <div class=\"ui link list\">\n            <a class=\"item\">Neutrals</a>\n            <a class=\"item\">Brights</a>\n            <a class=\"item\">Pastels</a>\n          </div>\n        </div>\n        <div class=\"ui column\">\n          <h3 class=\"ui header\">Types</h3>\n          <div class=\"ui link list\">\n            <a class=\"item\">Knitwear</a>\n            <a class=\"item\">Outerwear</a>\n            <a class=\"item\">Pants</a>\n            <a class=\"item\">Shoes</a>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"position no example\">\n    <div class=\"ui segment\">\n      <i class=\"square inverted red heart icon link\" data-content=\"Top Left\" data-position=\"top left\"></i>\n      <i class=\"square inverted red heart icon link\" data-content=\"Top Center\" data-position=\"top center\"></i>\n      <i class=\"square inverted red heart icon link\" data-content=\"Top Right\" data-position=\"top right\"></i>\n      <i class=\"square inverted red heart icon link\" data-content=\"Right Center\" data-position=\"right center\"></i>\n      <i class=\"square inverted red heart icon link\" data-content=\"Bottom Right\" data-position=\"bottom right\"></i>\n      <i class=\"square inverted red heart icon link\" data-content=\"Bottom Center\" data-position=\"bottom center\"></i>\n      <i class=\"square inverted red heart icon link\" data-content=\"Bottom Left\" data-position=\"bottom left\"></i>\n      <i class=\"square inverted red heart icon link\" data-content=\"Left Center\" data-position=\"left center\"></i>\n    </div>\n  </div>\n\n</div>\n\n<script type=\"text/javascript\">\n$(document)\n  .ready(function() {\n    $('.popup.demos .position .icon')\n      .popup()\n    ;\n    $('.popup.demos .avatar')\n      .popup()\n    ;\n    $('.popup.demos .button')\n      .popup()\n    ;\n    $('.popup.demos .menu .browse')\n      .popup({\n        inline   : true,\n        hoverable: true,\n        position : 'bottom left',\n        delay: {\n          show: 300,\n          hide: 800\n        }\n      })\n    ;\n  })\n;\n</script>"
  },
  {
    "path": "server/partials/examples/progress.html",
    "content": "<div class=\"ui basic demo progress\">\n  <div class=\"bar\">\n    <div class=\"progress\"></div>\n  </div>\n  <div class=\"label\">Uploading Files</div>\n</div>\n\n\n<div class=\"ui indicating demo progress\">\n  <div class=\"bar\"></div>\n  <div class=\"label\">Funding</div>\n</div>\n\n<div class=\"ui teal file demo progress\" data-value=\"6\" data-total=\"20\">\n  <div class=\"bar\">\n    <div class=\"progress\"></div>\n  </div>\n  <div class=\"label\"></div>\n</div>\n\n<div class=\"ui top attached indicating demo progress\">\n  <div class=\"bar\"></div>\n</div>\n<div class=\"ui attached segment\">\n</div>\n<div class=\"ui bottom attached demo progress\">\n  <div class=\"bar\"></div>\n</div>\n\n<script type=\"text/javascript\">\n$(document)\n  .ready(function() {\n    $('.attached.progress.demo')\n      .progress({\n        label   : false,\n        value   : Math.floor(Math.random() * 5) + 1\n      })\n    ;\n    $('.basic.progress.demo')\n      .progress({\n        label   : false,\n        value   : Math.floor(Math.random() * 5) + 1,\n        text    : {\n          active  : '{percent}% Complete',\n          success : 'Done!'\n        }\n      })\n    ;\n    $('.indicating.progress.demo')\n      .progress({\n        label   : true,\n        total   : 10,\n        value   : Math.floor(Math.random() * 5) + 1,\n        text    : {\n          active  : '{percent}% Done',\n          success : 'Completed!'\n        }\n      })\n    ;\n    $('.file.progress.demo')\n      .progress({\n        label: false,\n        text: {\n          active  : 'Uploading {value} of {total}',\n          success : '{total} Files Uploaded!'\n        }\n      })\n    ;\n    var progress = function() {\n      $('.demo.progress').progress('increment');\n      setTimeout(progress, (Math.random() * 2000) + 300);\n    };\n    setTimeout(progress, 1000);\n\n    setInterval(function() {\n      $('.demo.progress').progress('reset');\n    }, 30000);\n\n  })\n;\n</script>"
  },
  {
    "path": "server/partials/examples/rating.html",
    "content": "<div class=\"rating demos\">\n  <div class=\"ui relaxed divided items\">\n    <div class=\"item\">\n      <div class=\"content\">\n        <div class=\"ui large star rating\" data-rating=\"2\" data-max-rating=\"4\"></div>\n        <div class=\"header\">\n          <img src=\"/images/wireframe/square-image.png\" class=\"ui avatar image\">\n          Choice #1\n        </div>\n      </div>\n    </div>\n    <div class=\"item\">\n      <div class=\"content\">\n        <div class=\"ui large star rating\" data-rating=\"3\" data-max-rating=\"4\"></div>\n        <div class=\"header\">\n          <img src=\"/images/wireframe/square-image.png\" class=\"ui avatar image\">\n          Choice #2\n        </div>\n      </div>\n    </div>\n    <div class=\"item\">\n      <div class=\"content\">\n        <div class=\"ui large star rating\" data-rating=\"4\" data-max-rating=\"4\"></div>\n        <div class=\"header\">\n          <img src=\"/images/wireframe/square-image.png\" class=\"ui avatar image\">\n          Choice #3\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"ui divider\"></div>\n\n  <div class=\"ui relaxed divided items\">\n    <div class=\"item\">\n      <div class=\"ui tiny image\">\n        <img src=\"/images/wireframe/image.png\">\n      </div>\n      <div class=\"content\">\n        <a class=\"header\">Content Header</a>\n        <div class=\"description\">\n          A description which may flow for several lines and give context to the content.\n        </div>\n        <div class=\"extra\">\n          11 <div class=\"ui heart rating\" data-rating=\"0\" data-max-rating=\"1\"></div>\n        </div>\n      </div>\n    </div>\n    <div class=\"item\">\n      <div class=\"ui tiny image\">\n        <img src=\"/images/wireframe/image.png\">\n      </div>\n      <div class=\"content\">\n        <a class=\"header\">Content Header</a>\n        <div class=\"description\">\n          A description which may flow for several lines and give context to the content.\n        </div>\n        <div class=\"extra\">\n          42 <div class=\"ui heart rating\" data-rating=\"0\" data-max-rating=\"1\"></div>\n        </div>\n      </div>\n    </div>\n    <div class=\"item\">\n      <div class=\"ui tiny image\">\n        <img src=\"/images/wireframe/image.png\">\n      </div>\n      <div class=\"content\">\n        <a class=\"header\">Content Header</a>\n        <div class=\"description\">\n          A description which may flow for several lines and give context to the content.\n        </div>\n        <div class=\"extra\">\n          16 <div class=\"ui heart rating\" data-rating=\"0\" data-max-rating=\"1\"></div>\n        </div>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"ui hidden divider\"></div>\n\n  <div class=\"ui horizontal divided relaxed list\">\n    <div class=\"item\">\n      <div class=\"ui heart rating\" data-rating=\"0\" data-max-rating=\"1\"></div>\n    </div>\n    <div class=\"item\">\n      <div class=\"ui star rating\" data-rating=\"0\" data-max-rating=\"1\"></div>\n    </div>\n    <div class=\"item\">\n      <div class=\"ui heart rating\" data-rating=\"0\" data-max-rating=\"1\"></div>\n    </div>\n    <div class=\"item\">\n      <div class=\"ui star rating\" data-rating=\"0\" data-max-rating=\"1\"></div>\n    </div>\n    <div class=\"item\">\n      <div class=\"ui heart rating\" data-rating=\"0\" data-max-rating=\"1\"></div>\n    </div>\n    <div class=\"item\">\n      <div class=\"ui star rating\" data-rating=\"0\" data-max-rating=\"1\"></div>\n    </div>\n    <div class=\"item\">\n      <div class=\"ui heart rating\" data-rating=\"0\" data-max-rating=\"1\"></div>\n    </div>\n    <div class=\"item\">\n      <div class=\"ui star rating\" data-rating=\"0\" data-max-rating=\"1\"></div>\n    </div>\n    <div class=\"item\">\n      <div class=\"ui heart rating\" data-rating=\"0\" data-max-rating=\"1\"></div>\n    </div>\n  </div>\n</div>\n\n\n<script type=\"text/javascript\">\n$(document)\n  .ready(function() {\n    $('.rating.demos .items .ui.rating')\n      .rating()\n    ;\n    $('.rating.demos .list .ui.rating')\n      .rating({\n        clearable: true\n      })\n    ;\n  })\n;\n</script>"
  },
  {
    "path": "server/partials/examples/reveal.html",
    "content": "\n<div class=\"ui slide down instant reveal\">\n  <div class=\"visible content\">\n    <img src=\"/images/wireframe/white-image.png\" class=\"ui small bordered image\">\n  </div>\n  <div class=\"hidden content\">\n    <img src=\"/images/avatar/large/ade.jpg\" class=\"ui small bordered image\">\n  </div>\n</div>\n<div class=\"ui slide up instant reveal\">\n  <div class=\"visible content\">\n    <img src=\"/images/wireframe/white-image.png\" class=\"ui small bordered image\">\n  </div>\n  <div class=\"hidden content\">\n    <img src=\"/images/avatar/large/chris.jpg\" class=\"ui small bordered image\">\n  </div>\n</div>\n<div class=\"ui slide left instant reveal\">\n  <div class=\"visible content\">\n    <img src=\"/images/wireframe/white-image.png\" class=\"ui small bordered image\">\n  </div>\n  <div class=\"hidden content\">\n    <img src=\"/images/avatar/large/christian.jpg\" class=\"ui small bordered image\">\n  </div>\n</div>\n<div class=\"ui slide right instant reveal\">\n  <div class=\"visible content\">\n    <img src=\"/images/wireframe/white-image.png\" class=\"ui small bordered image\">\n  </div>\n  <div class=\"hidden content\">\n    <img src=\"/images/avatar/large/daniel.jpg\" class=\"ui small bordered image\">\n  </div>\n</div>\n\n<div class=\"ui move down masked instant reveal\">\n  <div class=\"visible content\">\n    <img src=\"/images/wireframe/white-image.png\" class=\"ui small bordered image\">\n  </div>\n  <div class=\"hidden content\">\n    <img src=\"/images/avatar/large/elliot.jpg\" class=\"ui small bordered image\">\n  </div>\n</div>\n<div class=\"ui move up masked instant reveal\">\n  <div class=\"visible content\">\n    <img src=\"/images/wireframe/white-image.png\" class=\"ui small bordered image\">\n  </div>\n  <div class=\"hidden content\">\n    <img src=\"/images/avatar/large/helen.jpg\" class=\"ui small bordered image\">\n  </div>\n</div>\n<div class=\"ui move left masked instant reveal\">\n  <div class=\"visible content\">\n    <img src=\"/images/wireframe/white-image.png\" class=\"ui small bordered image\">\n  </div>\n  <div class=\"hidden content\">\n    <img src=\"/images/avatar/large/jenny.jpg\" class=\"ui small bordered image\">\n  </div>\n</div>\n<div class=\"ui move right masked instant reveal\">\n  <div class=\"visible content\">\n    <img src=\"/images/wireframe/white-image.png\" class=\"ui small bordered image\">\n  </div>\n  <div class=\"hidden content\">\n    <img src=\"/images/avatar/large/joe.jpg\" class=\"ui small bordered image\">\n  </div>\n</div>\n\n<div class=\"ui rotate left reveal\">\n  <div class=\"visible content\">\n    <img src=\"/images/wireframe/white-image.png\" class=\"ui small bordered circular image\">\n  </div>\n  <div class=\"hidden content\">\n    <img src=\"/images/avatar/large/justen.jpg\" class=\"ui small bordered circular image\">\n  </div>\n</div>\n<div class=\"ui rotate reveal\">\n  <div class=\"visible content\">\n    <img src=\"/images/wireframe/white-image.png\" class=\"ui small bordered circular image\">\n  </div>\n  <div class=\"hidden content\">\n    <img src=\"/images/avatar/large/laura.jpg\" class=\"ui small bordered circular image\">\n  </div>\n</div>\n"
  },
  {
    "path": "server/partials/examples/search.html",
    "content": "<div class=\"search demo\">\n\n  <div class=\"ui remote search\">\n    <div class=\"ui icon input\">\n      <input class=\"prompt\" type=\"text\" placeholder=\"Remote search...\">\n      <i class=\"search icon\"></i>\n    </div>\n    <div class=\"results\"></div>\n  </div>\n\n  <div class=\"ui hidden divider\"></div>\n\n  <div class=\"ui category search\">\n    <div class=\"ui left icon input\">\n      <i class=\"search icon\"></i>\n      <input class=\"prompt\" type=\"text\" placeholder=\"Category search...\">\n    </div>\n    <div class=\"results\"></div>\n  </div>\n\n  <div class=\"ui hidden divider\"></div>\n\n  <div class=\"ui local search\">\n    <div class=\"ui left icon input\">\n      <i class=\"world icon\"></i>\n      <input class=\"prompt\" type=\"text\" placeholder=\"Local search...\">\n    </div>\n    <div class=\"results\"></div>\n  </div>\n\n</div>\n\n<script type=\"text/javascript\">\n$(document)\n  .ready(function() {\n    var content = [\n      { title: 'Andorrs' },\n      { title: 'United Arab Emirates' },\n      { title: 'Afghanistas' },\n      { title: 'Antigus' },\n      { title: 'Anguills' },\n      { title: 'Albanis' },\n      { title: 'Armenis' },\n      { title: 'Netherlands Antilles' },\n      { title: 'Angols' },\n      { title: 'Argentins' },\n      { title: 'American Samos' },\n      { title: 'Austris' },\n      { title: 'Australis' },\n      { title: 'Arubs' },\n      { title: 'Aland Islands' },\n      { title: 'Azerbaijas' },\n      { title: 'Bosnis' },\n      { title: 'Barbados' },\n      { title: 'Bangladess' },\n      { title: 'Belgius' },\n      { title: 'Burkina Fass' },\n      { title: 'Bulgaris' },\n      { title: 'Bahrais' },\n      { title: 'Burunds' },\n      { title: 'Benis' },\n      { title: 'Bermuds' },\n      { title: 'Brunes' },\n      { title: 'Bolivis' },\n      { title: 'Brazis' },\n      { title: 'Bahamas' },\n      { title: 'Bhutas' },\n      { title: 'Bouvet Islans' },\n      { title: 'Botswans' },\n      { title: 'Belarus' },\n      { title: 'Belizs' },\n      { title: 'Canads' },\n      { title: 'Cocos Islands' },\n      { title: 'Congs' },\n      { title: 'Central African Republis' },\n      { title: 'Congo Brazzavills' },\n      { title: 'Switzerlans' },\n      { title: 'Cote Divoirs' },\n      { title: 'Cook Islands' },\n      { title: 'Chils' },\n      { title: 'Cameroos' },\n      { title: 'Chins' },\n      { title: 'Colombis' },\n      { title: 'Costa Rics' },\n      { title: 'Serbis' },\n      { title: 'Cubs' },\n      { title: 'Cape Verds' },\n      { title: 'Christmas Islans' },\n      { title: 'Cyprus' },\n      { title: 'Czech Republis' },\n      { title: 'Germans' },\n      { title: 'Djibouts' },\n      { title: 'Denmars' },\n      { title: 'Dominics' },\n      { title: 'Dominican Republis' },\n      { title: 'Algeris' },\n      { title: 'Ecuados' },\n      { title: 'Estonis' },\n      { title: 'Egyps' },\n      { title: 'Western Sahars' },\n      { title: 'Eritres' },\n      { title: 'Spais' },\n      { title: 'Ethiopis' },\n      { title: 'European Unios' },\n      { title: 'Finlans' },\n      { title: 'Fijs' },\n      { title: 'Falkland Islands' },\n      { title: 'Micronesis' },\n      { title: 'Faroe Islands' },\n      { title: 'Francs' },\n      { title: 'Gabos' },\n      { title: 'Englans' },\n      { title: 'Grenads' },\n      { title: 'Georgis' },\n      { title: 'French Guians' },\n      { title: 'Ghans' },\n      { title: 'Gibraltas' },\n      { title: 'Greenlans' },\n      { title: 'Gambis' },\n      { title: 'Guines' },\n      { title: 'Guadeloups' },\n      { title: 'Equatorial Guines' },\n      { title: 'Greecs' },\n      { title: 'Sandwich Islands' },\n      { title: 'Guatemals' },\n      { title: 'Guas' },\n      { title: 'Guinea-Bissas' },\n      { title: 'Guyans' },\n      { title: 'Hong Kons' },\n      { title: 'Heard Islans' },\n      { title: 'Honduras' },\n      { title: 'Croatis' },\n      { title: 'Haits' },\n      { title: 'Hungars' },\n      { title: 'Indonesis' },\n      { title: 'Irelans' },\n      { title: 'Israes' },\n      { title: 'Indis' },\n      { title: 'Indian Ocean Territors' },\n      { title: 'Iras' },\n      { title: 'Iras' },\n      { title: 'Icelans' },\n      { title: 'Itals' },\n      { title: 'Jamaics' },\n      { title: 'Jordas' },\n      { title: 'Japas' },\n      { title: 'Kenys' },\n      { title: 'Kyrgyzstas' },\n      { title: 'Cambodis' },\n      { title: 'Kiribats' },\n      { title: 'Comoros' },\n      { title: 'Saint Kitts and Nevis' },\n      { title: 'North Kores' },\n      { title: 'South Kores' },\n      { title: 'Kuwais' },\n      { title: 'Cayman Islands' },\n      { title: 'Kazakhstas' },\n      { title: 'Laos' },\n      { title: 'Lebanos' },\n      { title: 'Saint Lucis' },\n      { title: 'Liechtensteis' },\n      { title: 'Sri Lanks' },\n      { title: 'Liberis' },\n      { title: 'Lesoths' },\n      { title: 'Lithuanis' },\n      { title: 'Luxembours' },\n      { title: 'Latvis' },\n      { title: 'Libys' },\n      { title: 'Moroccs' },\n      { title: 'Monacs' },\n      { title: 'Moldovs' },\n      { title: 'Montenegrs' },\n      { title: 'Madagascas' },\n      { title: 'Marshall Islands' },\n      { title: 'MacEdonis' },\n      { title: 'Mals' },\n      { title: 'Burms' },\n      { title: 'Mongolis' },\n      { title: 'MacAs' },\n      { title: 'Northern Mariana Islands' },\n      { title: 'Martiniqus' },\n      { title: 'Mauritanis' },\n      { title: 'Montserras' },\n      { title: 'Malts' },\n      { title: 'Mauritius' },\n      { title: 'Maldives' },\n      { title: 'Malaws' },\n      { title: 'Mexics' },\n      { title: 'Malaysis' },\n      { title: 'Mozambiqus' },\n      { title: 'Namibis' },\n      { title: 'New Caledonis' },\n      { title: 'Niges' },\n      { title: 'Norfolk Islans' },\n      { title: 'Nigeris' },\n      { title: 'Nicaragus' },\n      { title: 'Netherlands' },\n      { title: 'Norwas' },\n      { title: 'Nepas' },\n      { title: 'Naurs' },\n      { title: 'Nius' },\n      { title: 'New Zealans' },\n      { title: 'Omas' },\n      { title: 'Panams' },\n      { title: 'Pers' },\n      { title: 'French Polynesis' },\n      { title: 'New Guines' },\n      { title: 'Philippines' },\n      { title: 'Pakistas' },\n      { title: 'Polans' },\n      { title: 'Saint Pierrs' },\n      { title: 'Pitcairn Islands' },\n      { title: 'Puerto Rics' },\n      { title: 'Palestins' },\n      { title: 'Portugas' },\n      { title: 'Palas' },\n      { title: 'Paraguas' },\n      { title: 'Qatas' },\n      { title: 'Reunios' },\n      { title: 'Romanis' },\n      { title: 'Serbis' },\n      { title: 'Russis' },\n      { title: 'Rwands' },\n      { title: 'Saudi Arabis' },\n      { title: 'Solomon Islands' },\n      { title: 'Seychelles' },\n      { title: 'Sudas' },\n      { title: 'Swedes' },\n      { title: 'Singapors' },\n      { title: 'Saint Helens' },\n      { title: 'Slovenis' },\n      { title: 'Svalbard, I Flag Jan Mayes' },\n      { title: 'Slovakis' },\n      { title: 'Sierra Leons' },\n      { title: 'San Marins' },\n      { title: 'Senegas' },\n      { title: 'Somalis' },\n      { title: 'Surinams' },\n      { title: 'Sao Toms' },\n      { title: 'El Salvados' },\n      { title: 'Syris' },\n      { title: 'Swazilans' },\n      { title: 'Caicos Islands' },\n      { title: 'Chas' },\n      { title: 'French Territories' },\n      { title: 'Togs' },\n      { title: 'Thailans' },\n      { title: 'Tajikistas' },\n      { title: 'Tokelas' },\n      { title: 'Timorlests' },\n      { title: 'Turkmenistas' },\n      { title: 'Tunisis' },\n      { title: 'Tongs' },\n      { title: 'Turkes' },\n      { title: 'Trinidas' },\n      { title: 'Tuvals' },\n      { title: 'Taiwas' },\n      { title: 'Tanzanis' },\n      { title: 'Ukrains' },\n      { title: 'Ugands' },\n      { title: 'Us Minor Islands' },\n      { title: 'United States' },\n      { title: 'Uruguas' },\n      { title: 'Uzbekistas' },\n      { title: 'Vatican Cits' },\n      { title: 'Saint Vincens' },\n      { title: 'Venezuels' },\n      { title: 'British Virgin Islands' },\n      { title: 'Us Virgin Islands' },\n      { title: 'Vietnas' },\n      { title: 'Vanuats' },\n      { title: 'Wallis and Futuns' },\n      { title: 'Samos' },\n      { title: 'Yemes' },\n      { title: 'Mayotts' },\n      { title: 'South Africs' },\n      { title: 'Zambis' },\n      { title: 'Zimbabws' }\n    ];\n    $('.search.demo .local')\n      .search({\n        source: content\n      })\n    ;\n    $('.search.demo .remote')\n      .search({\n        apiSettings: {\n          action: 'search'\n        }\n      })\n    ;\n    $('.search.demo .category')\n      .search({\n        type: 'category',\n        apiSettings: {\n          action: 'categorySearch'\n        }\n      })\n    ;\n  })\n;\n</script>"
  },
  {
    "path": "server/partials/examples/segment.html",
    "content": "<div class=\"ui piled segment\"></div>\n<div class=\"ui stacked segment\"></div>\n<div class=\"ui raised segment\"></div>\n<div class=\"ui secondary segment\"></div>\n<div class=\"ui tertiary segment\"></div>\n<div class=\"ui compact stacked segment\"></div>\n<div class=\"ui top attached segment\"></div>\n<div class=\"ui attached segment\"></div>\n<div class=\"ui bottom attached segment\"></div>"
  },
  {
    "path": "server/partials/examples/shape.html",
    "content": "<div class=\"shape demos\">\n\n  <div class=\"ui two column center aligned stackable doubling grid\">\n    <div class=\"column\">\n      <div class=\"ui shape\">\n        <div class=\"sides\">\n          <div class=\"active side\">\n            <img src=\"/images/wireframe/image.png\" class=\"ui medium image\">\n          </div>\n          <div class=\"side\">\n            <img src=\"/images/wireframe/image-text.png\" class=\"ui medium image\">\n          </div>\n        </div>\n      </div>\n\n      <div class=\"ui ignored hidden divider\"></div>\n\n      <div class=\"ui ignored icon direction buttons\">\n        <div class=\"ui button\" data-animation=\"flip\" title=\"Flip Left\" data-direction=\"left\"><i class=\"left long arrow icon\"></i></div>\n        <div class=\"ui button\" data-animation=\"flip\" title=\"Flip Up\" data-direction=\"up\"><i class=\"up long arrow icon\"></i></div>\n        <div class=\"ui icon button\" data-animation=\"flip\" title=\"Flip Down\" data-direction=\"down\"><i class=\"down long arrow icon\"></i></div>\n        <div class=\"ui icon button\" data-animation=\"flip\" title=\"Flip Right\" data-direction=\"right\"><i class=\"right long arrow icon\"></i></div>\n      </div>\n\n      <div class=\"ui ignored icon direction buttons\">\n        <div class=\"ui button\" title=\"Flip Over\" data-animation=\"flip\" data-direction=\"over\"><i class=\"retweet icon\"></i></div>\n        <div class=\"ui button\" title=\"Flip Back\" data-animation=\"flip\" data-direction=\"back\"><i class=\"flipped retweet icon\"></i></div>\n      </div>\n    </div>\n    <div class=\"column\">\n      <div class=\"ui cube shape\">\n        <div class=\"sides\">\n          <div class=\"active side\">\n            <div class=\"content\">\n              <div class=\"center\">\n                1\n              </div>\n            </div>\n          </div>\n          <div class=\"side\">\n            <div class=\"content\">\n              <div class=\"center\">\n                2\n              </div>\n            </div>\n          </div>\n          <div class=\"side\">\n            <div class=\"content\">\n              <div class=\"center\">\n                3\n              </div>\n            </div>\n          </div>\n          <div class=\"side\">\n            <div class=\"content\">\n              <div class=\"center\">\n                4\n              </div>\n            </div>\n          </div>\n          <div class=\"side\">\n            <div class=\"content\">\n              <div class=\"center\">\n                5\n              </div>\n            </div>\n          </div>\n          <div class=\"side\">\n            <div class=\"content\">\n              <div class=\"center\">\n                6\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n\n      <div class=\"ui ignored hidden divider\"></div>\n\n      <div class=\"ui ignored icon direction buttons\">\n        <div class=\"ui button\" data-animation=\"flip\" title=\"Flip Left\" data-direction=\"left\"><i class=\"left long arrow icon\"></i></div>\n        <div class=\"ui button\" data-animation=\"flip\" title=\"Flip Up\" data-direction=\"up\"><i class=\"up long arrow icon\"></i></div>\n        <div class=\"ui icon button\" data-animation=\"flip\" title=\"Flip Down\" data-direction=\"down\"><i class=\"down long arrow icon\"></i></div>\n        <div class=\"ui icon button\" data-animation=\"flip\" title=\"Flip Right\" data-direction=\"right\"><i class=\"right long arrow icon\"></i></div>\n      </div>\n      <div class=\"ui ignored icon direction buttons\">\n        <div class=\"ui button\" title=\"Flip Over\" data-animation=\"flip\" data-direction=\"over\"><i class=\"retweet icon\"></i></div>\n        <div class=\"ui button\" title=\"Flip Back\" data-animation=\"flip\" data-direction=\"back\"><i class=\"flipped retweet icon\"></i></div>\n      </div>\n    </div>\n    <div class=\"sixteen wide left aligned column\">\n      <div class=\"ui text shape\">\n        <div class=\"sides\">\n          <div class=\"active ui header side\">Did you know? This side starts visible.</div>\n          <div class=\"ui header side\">Help, its another side!</div>\n          <div class=\"ui header side\">This is the last side</div>\n        </div>\n      </div>\n\n      <div class=\"ui ignored hidden divider\"></div>\n\n      <div class=\"ui ignored icon direction buttons\">\n        <div class=\"ui button\" data-animation=\"flip\" title=\"Flip Left\" data-direction=\"left\"><i class=\"left long arrow icon\"></i></div>\n        <div class=\"ui button\" data-animation=\"flip\" title=\"Flip Up\" data-direction=\"up\"><i class=\"up long arrow icon\"></i></div>\n        <div class=\"ui icon button\" data-animation=\"flip\" title=\"Flip Down\" data-direction=\"down\"><i class=\"down long arrow icon\"></i></div>\n        <div class=\"ui icon button\" data-animation=\"flip\" title=\"Flip Right\" data-direction=\"right\"><i class=\"right long arrow icon\"></i></div>\n      </div>\n      <div class=\"ui ignored icon direction buttons\">\n        <div class=\"ui button\" title=\"Flip Over\" data-animation=\"flip\" data-direction=\"over\"><i class=\"retweet icon\"></i></div>\n        <div class=\"ui button\" title=\"Flip Back\" data-animation=\"flip\" data-direction=\"back\"><i class=\"flipped retweet icon\"></i></div>\n      </div>\n\n    </div>\n  </div>\n</div>\n\n\n<script type=\"text/javascript\">\n$(document)\n  .ready(function() {\n\n    var\n      $demo            = $('.shape.demos .ui.shape'),\n      $directionButton = $('.shape.demos .direction .button'),\n      handler\n    ;\n\n    // event handlers\n    handler = {\n      rotate: function() {\n        var\n          $shape    = $(this).closest('.buttons').prevAll('.ui.shape').eq(0),\n          direction = $(this).data('direction') || false,\n          animation = $(this).data('animation') || false\n        ;\n        if(direction && animation) {\n          $shape\n            .shape(animation + '.' + direction)\n          ;\n        }\n      }\n    };\n\n    // attach events\n    $demo\n      .shape()\n    ;\n    $directionButton\n      .on('click', handler.rotate)\n      .popup({\n        position  : 'bottom center'\n      })\n    ;\n  })\n;\n</script>"
  },
  {
    "path": "server/partials/examples/sidebar.html",
    "content": "<div class=\"sidebar direction demo\">\n\n  <div class=\"ui toggle dim checkbox\">\n    <input type=\"checkbox\" name=\"dim\" />\n    <label>Dim Page</label>\n  </div>\n\n  <div class=\"ui hidden divider\"></div>\n\n  <div class=\"ui buttons\">\n    <div class=\"ui button\" data-direction=\"left\">\n      Left\n    </div>\n    <div class=\"ui active button\" data-direction=\"right\">\n      Right\n    </div>\n    <div class=\"ui button\" data-direction=\"top\">\n      Top\n    </div>\n    <div class=\"ui button\" data-direction=\"bottom\">\n      Bottom\n    </div>\n  </div>\n\n  <div class=\"ui hidden divider\"></div>\n\n  <h5 class=\"ui header\">Animation</h5>\n  <div class=\"ui button\" data-transition=\"overlay\">\n    Overlay\n  </div>\n  <div class=\"ui button\" data-transition=\"push\">\n    Push\n  </div>\n  <div class=\"ui button\" data-transition=\"scale down\">\n    Scale Down\n  </div>\n\n  <h5 class=\"ui header\">Horizontal-Only Animation</h5>\n  <div class=\"ui button\" data-transition=\"uncover\">\n    Uncover\n  </div>\n  <div class=\"ui button\" data-transition=\"slide along\">\n    Slide Along\n  </div>\n  <div class=\"ui button\" data-transition=\"slide out\">\n    Slide Out\n  </div>\n</div>\n\n\n<div class=\"ui right demo sidebar vertical inverted menu\">\n  <a class=\"header item\">File Permissions</a>\n  <a class=\"item\">Share on Social</a>\n  <a class=\"item\">Share by E-mail</a>\n  <a class=\"item\">Edit Permissions</a>\n  <a class=\"item\">Delete Permanently</a>\n</div>\n\n<div class=\"ui left demo vertical inverted labeled icon sidebar menu\">\n  <a class=\"item\">\n    <i class=\"home icon\"></i>\n    Home\n  </a>\n  <a class=\"item\">\n    <i class=\"block layout icon\"></i>\n    Topics\n  </a>\n  <a class=\"item\">\n    <i class=\"smile icon\"></i>\n    Friends\n  </a>\n  <a class=\"item\">\n    <i class=\"calendar icon\"></i>\n    History\n  </a>\n  <a class=\"item\">\n    <i class=\"mail icon\"></i>\n    Messages\n  </a>\n  <a class=\"item\">\n    <i class=\"chat icon\"></i>\n    Discussions\n  </a>\n  <a class=\"item\">\n    <i class=\"trophy icon\"></i>\n    Achievements\n  </a>\n  <a class=\"item\">\n    <i class=\"shop icon\"></i>\n    Store\n  </a>\n  <a class=\"item\">\n    <i class=\"settings icon\"></i>\n    Settings\n  </a>\n</div>\n\n<div class=\"ui top demo sidebar ui segment\">\n  <div class=\"ui center aligned page grid\">\n    <div class=\"one column row\">\n      <div class=\"sixteen wide column\">\n        <h3 class=\"ui header\">New Content Awaits</h3>\n      </div>\n    </div>\n    <div class=\"three column divided row\">\n      <div class=\"column\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/media-paragraph.png\">\n      </div>\n      <div class=\"column\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/media-paragraph.png\">\n      </div>\n      <div class=\"column\">\n        <img class=\"ui wireframe image\" src=\"/images/wireframe/media-paragraph.png\">\n      </div>\n    </div>\n  </div>\n</div>\n\n<div class=\"ui bottom demo inverted nine item labeled icon sidebar menu\">\n  <a class=\"item\">\n    <i class=\"home icon\"></i>\n    Home\n  </a>\n  <a class=\"item\">\n    <i class=\"block layout icon\"></i>\n    Topics\n  </a>\n  <a class=\"item\">\n    <i class=\"smile icon\"></i>\n    Friends\n  </a>\n  <a class=\"item\">\n    <i class=\"calendar icon\"></i>\n    History\n  </a>\n  <a class=\"item\">\n    <i class=\"mail icon\"></i>\n    Messages\n  </a>\n  <a class=\"item\">\n    <i class=\"chat icon\"></i>\n    Discussions\n  </a>\n  <a class=\"item\">\n    <i class=\"trophy icon\"></i>\n    Achievements\n  </a>\n  <a class=\"item\">\n    <i class=\"shop icon\"></i>\n    Store\n  </a>\n  <a class=\"item\">\n    <i class=\"settings icon\"></i>\n    Settings\n  </a>\n</div>\n\n\n\n<script type=\"text/javascript\">\n$(document)\n  .ready(function() {\n\n    $('.sidebar.direction.demo')\n      .find('.buttons .button')\n        .on('click', function() {\n          var\n            direction = $(this).data('direction')\n          ;\n          $(this).addClass('active').siblings().removeClass('active');\n          if(direction === 'top' || direction === 'bottom') {\n            $('.horizontal.button').addClass('disabled');\n          }\n          else {\n            $('.horizontal.button').removeClass('disabled');\n          }\n        })\n        .end()\n        .children('.button')\n        .on('click', function() {\n          var\n            transition = $(this).data('transition'),\n            direction  = $('.sidebar.direction.demo .buttons .button.active').data('direction'),\n            dimPage    = $('.sidebar.direction.demo .dim').checkbox('is checked')\n          ;\n          if( $(this).filter('.disabled').size() === 0) {\n            $('.' + direction + '.demo.sidebar')\n              .not('.styled')\n              .sidebar('setting', {\n                dimPage          : dimPage,\n                transition       : transition,\n                mobileTransition : transition\n              })\n            ;\n            $('.' + direction + '.demo.sidebar').not('.styled').sidebar('toggle');\n          }\n\n        })\n    ;\n  })\n;\n</script>"
  },
  {
    "path": "server/partials/examples/single/flag-menu.html",
    "content": "<div class=\"menu\">\n        <div class=\"item\" data-value=\"af\"><i class=\"af flag\"></i>Afghanistan</div>\n        <div class=\"item\" data-value=\"ax\"><i class=\"ax flag\"></i>Aland Islands</div>\n        <div class=\"item\" data-value=\"al\"><i class=\"al flag\"></i>Albania</div>\n        <div class=\"item\" data-value=\"dz\"><i class=\"dz flag\"></i>Algeria</div>\n        <div class=\"item\" data-value=\"as\"><i class=\"as flag\"></i>American Samoa</div>\n        <div class=\"item\" data-value=\"ad\"><i class=\"ad flag\"></i>Andorra</div>\n        <div class=\"item\" data-value=\"ao\"><i class=\"ao flag\"></i>Angola</div>\n        <div class=\"item\" data-value=\"ai\"><i class=\"ai flag\"></i>Anguilla</div>\n        <div class=\"item\" data-value=\"ag\"><i class=\"ag flag\"></i>Antigua</div>\n        <div class=\"item\" data-value=\"ar\"><i class=\"ar flag\"></i>Argentina</div>\n        <div class=\"item\" data-value=\"am\"><i class=\"am flag\"></i>Armenia</div>\n        <div class=\"item\" data-value=\"aw\"><i class=\"aw flag\"></i>Aruba</div>\n        <div class=\"item\" data-value=\"au\"><i class=\"au flag\"></i>Australia</div>\n        <div class=\"item\" data-value=\"at\"><i class=\"at flag\"></i>Austria</div>\n        <div class=\"item\" data-value=\"az\"><i class=\"az flag\"></i>Azerbaijan</div>\n        <div class=\"item\" data-value=\"bs\"><i class=\"bs flag\"></i>Bahamas</div>\n        <div class=\"item\" data-value=\"bh\"><i class=\"bh flag\"></i>Bahrain</div>\n        <div class=\"item\" data-value=\"bd\"><i class=\"bd flag\"></i>Bangladesh</div>\n        <div class=\"item\" data-value=\"bb\"><i class=\"bb flag\"></i>Barbados</div>\n        <div class=\"item\" data-value=\"by\"><i class=\"by flag\"></i>Belarus</div>\n        <div class=\"item\" data-value=\"be\"><i class=\"be flag\"></i>Belgium</div>\n        <div class=\"item\" data-value=\"bz\"><i class=\"bz flag\"></i>Belize</div>\n        <div class=\"item\" data-value=\"bj\"><i class=\"bj flag\"></i>Benin</div>\n        <div class=\"item\" data-value=\"bm\"><i class=\"bm flag\"></i>Bermuda</div>\n        <div class=\"item\" data-value=\"bt\"><i class=\"bt flag\"></i>Bhutan</div>\n        <div class=\"item\" data-value=\"bo\"><i class=\"bo flag\"></i>Bolivia</div>\n        <div class=\"item\" data-value=\"ba\"><i class=\"ba flag\"></i>Bosnia</div>\n        <div class=\"item\" data-value=\"bw\"><i class=\"bw flag\"></i>Botswana</div>\n        <div class=\"item\" data-value=\"bv\"><i class=\"bv flag\"></i>Bouvet Island</div>\n        <div class=\"item\" data-value=\"br\"><i class=\"br flag\"></i>Brazil</div>\n        <div class=\"item\" data-value=\"vg\"><i class=\"vg flag\"></i>British Virgin Islands</div>\n        <div class=\"item\" data-value=\"bn\"><i class=\"bn flag\"></i>Brunei</div>\n        <div class=\"item\" data-value=\"bg\"><i class=\"bg flag\"></i>Bulgaria</div>\n        <div class=\"item\" data-value=\"bf\"><i class=\"bf flag\"></i>Burkina Faso</div>\n        <div class=\"item\" data-value=\"mm\"><i class=\"mm flag\"></i>Burma</div>\n        <div class=\"item\" data-value=\"bi\"><i class=\"bi flag\"></i>Burundi</div>\n        <div class=\"item\" data-value=\"tc\"><i class=\"tc flag\"></i>Caicos Islands</div>\n        <div class=\"item\" data-value=\"kh\"><i class=\"kh flag\"></i>Cambodia</div>\n        <div class=\"item\" data-value=\"cm\"><i class=\"cm flag\"></i>Cameroon</div>\n        <div class=\"item\" data-value=\"ca\"><i class=\"ca flag\"></i>Canada</div>\n        <div class=\"item\" data-value=\"cv\"><i class=\"cv flag\"></i>Cape Verde</div>\n        <div class=\"item\" data-value=\"ky\"><i class=\"ky flag\"></i>Cayman Islands</div>\n        <div class=\"item\" data-value=\"cf\"><i class=\"cf flag\"></i>Central African Republic</div>\n        <div class=\"item\" data-value=\"td\"><i class=\"td flag\"></i>Chad</div>\n        <div class=\"item\" data-value=\"cl\"><i class=\"cl flag\"></i>Chile</div>\n        <div class=\"item\" data-value=\"cn\"><i class=\"cn flag\"></i>China</div>\n        <div class=\"item\" data-value=\"cx\"><i class=\"cx flag\"></i>Christmas Island</div>\n        <div class=\"item\" data-value=\"cc\"><i class=\"cc flag\"></i>Cocos Islands</div>\n        <div class=\"item\" data-value=\"co\"><i class=\"co flag\"></i>Colombia</div>\n        <div class=\"item\" data-value=\"km\"><i class=\"km flag\"></i>Comoros</div>\n        <div class=\"item\" data-value=\"cg\"><i class=\"cg flag\"></i>Congo Brazzaville</div>\n        <div class=\"item\" data-value=\"cd\"><i class=\"cd flag\"></i>Congo</div>\n        <div class=\"item\" data-value=\"ck\"><i class=\"ck flag\"></i>Cook Islands</div>\n        <div class=\"item\" data-value=\"cr\"><i class=\"cr flag\"></i>Costa Rica</div>\n        <div class=\"item\" data-value=\"ci\"><i class=\"ci flag\"></i>Cote Divoire</div>\n        <div class=\"item\" data-value=\"hr\"><i class=\"hr flag\"></i>Croatia</div>\n        <div class=\"item\" data-value=\"cu\"><i class=\"cu flag\"></i>Cuba</div>\n        <div class=\"item\" data-value=\"cy\"><i class=\"cy flag\"></i>Cyprus</div>\n        <div class=\"item\" data-value=\"cz\"><i class=\"cz flag\"></i>Czech Republic</div>\n        <div class=\"item\" data-value=\"dk\"><i class=\"dk flag\"></i>Denmark</div>\n        <div class=\"item\" data-value=\"dj\"><i class=\"dj flag\"></i>Djibouti</div>\n        <div class=\"item\" data-value=\"dm\"><i class=\"dm flag\"></i>Dominica</div>\n        <div class=\"item\" data-value=\"do\"><i class=\"do flag\"></i>Dominican Republic</div>\n        <div class=\"item\" data-value=\"ec\"><i class=\"ec flag\"></i>Ecuador</div>\n        <div class=\"item\" data-value=\"eg\"><i class=\"eg flag\"></i>Egypt</div>\n        <div class=\"item\" data-value=\"sv\"><i class=\"sv flag\"></i>El Salvador</div>\n        <div class=\"item\" data-value=\"gb\"><i class=\"gb flag\"></i>England</div>\n        <div class=\"item\" data-value=\"gq\"><i class=\"gq flag\"></i>Equatorial Guinea</div>\n        <div class=\"item\" data-value=\"er\"><i class=\"er flag\"></i>Eritrea</div>\n        <div class=\"item\" data-value=\"ee\"><i class=\"ee flag\"></i>Estonia</div>\n        <div class=\"item\" data-value=\"et\"><i class=\"et flag\"></i>Ethiopia</div>\n        <div class=\"item\" data-value=\"eu\"><i class=\"eu flag\"></i>European Union</div>\n        <div class=\"item\" data-value=\"fk\"><i class=\"fk flag\"></i>Falkland Islands</div>\n        <div class=\"item\" data-value=\"fo\"><i class=\"fo flag\"></i>Faroe Islands</div>\n        <div class=\"item\" data-value=\"fj\"><i class=\"fj flag\"></i>Fiji</div>\n        <div class=\"item\" data-value=\"fi\"><i class=\"fi flag\"></i>Finland</div>\n        <div class=\"item\" data-value=\"fr\"><i class=\"fr flag\"></i>France</div>\n        <div class=\"item\" data-value=\"gf\"><i class=\"gf flag\"></i>French Guiana</div>\n        <div class=\"item\" data-value=\"pf\"><i class=\"pf flag\"></i>French Polynesia</div>\n        <div class=\"item\" data-value=\"tf\"><i class=\"tf flag\"></i>French Territories</div>\n        <div class=\"item\" data-value=\"ga\"><i class=\"ga flag\"></i>Gabon</div>\n        <div class=\"item\" data-value=\"gm\"><i class=\"gm flag\"></i>Gambia</div>\n        <div class=\"item\" data-value=\"ge\"><i class=\"ge flag\"></i>Georgia</div>\n        <div class=\"item\" data-value=\"de\"><i class=\"de flag\"></i>Germany</div>\n        <div class=\"item\" data-value=\"gh\"><i class=\"gh flag\"></i>Ghana</div>\n        <div class=\"item\" data-value=\"gi\"><i class=\"gi flag\"></i>Gibraltar</div>\n        <div class=\"item\" data-value=\"gr\"><i class=\"gr flag\"></i>Greece</div>\n        <div class=\"item\" data-value=\"gl\"><i class=\"gl flag\"></i>Greenland</div>\n        <div class=\"item\" data-value=\"gd\"><i class=\"gd flag\"></i>Grenada</div>\n        <div class=\"item\" data-value=\"gp\"><i class=\"gp flag\"></i>Guadeloupe</div>\n        <div class=\"item\" data-value=\"gu\"><i class=\"gu flag\"></i>Guam</div>\n        <div class=\"item\" data-value=\"gt\"><i class=\"gt flag\"></i>Guatemala</div>\n        <div class=\"item\" data-value=\"gw\"><i class=\"gw flag\"></i>Guinea-Bissau</div>\n        <div class=\"item\" data-value=\"gn\"><i class=\"gn flag\"></i>Guinea</div>\n        <div class=\"item\" data-value=\"gy\"><i class=\"gy flag\"></i>Guyana</div>\n        <div class=\"item\" data-value=\"ht\"><i class=\"ht flag\"></i>Haiti</div>\n        <div class=\"item\" data-value=\"hm\"><i class=\"hm flag\"></i>Heard Island</div>\n        <div class=\"item\" data-value=\"hn\"><i class=\"hn flag\"></i>Honduras</div>\n        <div class=\"item\" data-value=\"hk\"><i class=\"hk flag\"></i>Hong Kong</div>\n        <div class=\"item\" data-value=\"hu\"><i class=\"hu flag\"></i>Hungary</div>\n        <div class=\"item\" data-value=\"is\"><i class=\"is flag\"></i>Iceland</div>\n        <div class=\"item\" data-value=\"in\"><i class=\"in flag\"></i>India</div>\n        <div class=\"item\" data-value=\"io\"><i class=\"io flag\"></i>Indian Ocean Territory</div>\n        <div class=\"item\" data-value=\"id\"><i class=\"id flag\"></i>Indonesia</div>\n        <div class=\"item\" data-value=\"ir\"><i class=\"ir flag\"></i>Iran</div>\n        <div class=\"item\" data-value=\"iq\"><i class=\"iq flag\"></i>Iraq</div>\n        <div class=\"item\" data-value=\"ie\"><i class=\"ie flag\"></i>Ireland</div>\n        <div class=\"item\" data-value=\"il\"><i class=\"il flag\"></i>Israel</div>\n        <div class=\"item\" data-value=\"it\"><i class=\"it flag\"></i>Italy</div>\n        <div class=\"item\" data-value=\"jm\"><i class=\"jm flag\"></i>Jamaica</div>\n        <div class=\"item\" data-value=\"jp\"><i class=\"jp flag\"></i>Japan</div>\n        <div class=\"item\" data-value=\"jo\"><i class=\"jo flag\"></i>Jordan</div>\n        <div class=\"item\" data-value=\"kz\"><i class=\"kz flag\"></i>Kazakhstan</div>\n        <div class=\"item\" data-value=\"ke\"><i class=\"ke flag\"></i>Kenya</div>\n        <div class=\"item\" data-value=\"ki\"><i class=\"ki flag\"></i>Kiribati</div>\n        <div class=\"item\" data-value=\"kw\"><i class=\"kw flag\"></i>Kuwait</div>\n        <div class=\"item\" data-value=\"kg\"><i class=\"kg flag\"></i>Kyrgyzstan</div>\n        <div class=\"item\" data-value=\"la\"><i class=\"la flag\"></i>Laos</div>\n        <div class=\"item\" data-value=\"lv\"><i class=\"lv flag\"></i>Latvia</div>\n        <div class=\"item\" data-value=\"lb\"><i class=\"lb flag\"></i>Lebanon</div>\n        <div class=\"item\" data-value=\"ls\"><i class=\"ls flag\"></i>Lesotho</div>\n        <div class=\"item\" data-value=\"lr\"><i class=\"lr flag\"></i>Liberia</div>\n        <div class=\"item\" data-value=\"ly\"><i class=\"ly flag\"></i>Libya</div>\n        <div class=\"item\" data-value=\"li\"><i class=\"li flag\"></i>Liechtenstein</div>\n        <div class=\"item\" data-value=\"lt\"><i class=\"lt flag\"></i>Lithuania</div>\n        <div class=\"item\" data-value=\"lu\"><i class=\"lu flag\"></i>Luxembourg</div>\n        <div class=\"item\" data-value=\"mo\"><i class=\"mo flag\"></i>Macau</div>\n        <div class=\"item\" data-value=\"mk\"><i class=\"mk flag\"></i>Macedonia</div>\n        <div class=\"item\" data-value=\"mg\"><i class=\"mg flag\"></i>Madagascar</div>\n        <div class=\"item\" data-value=\"mw\"><i class=\"mw flag\"></i>Malawi</div>\n        <div class=\"item\" data-value=\"my\"><i class=\"my flag\"></i>Malaysia</div>\n        <div class=\"item\" data-value=\"mv\"><i class=\"mv flag\"></i>Maldives</div>\n        <div class=\"item\" data-value=\"ml\"><i class=\"ml flag\"></i>Mali</div>\n        <div class=\"item\" data-value=\"mt\"><i class=\"mt flag\"></i>Malta</div>\n        <div class=\"item\" data-value=\"mh\"><i class=\"mh flag\"></i>Marshall Islands</div>\n        <div class=\"item\" data-value=\"mq\"><i class=\"mq flag\"></i>Martinique</div>\n        <div class=\"item\" data-value=\"mr\"><i class=\"mr flag\"></i>Mauritania</div>\n        <div class=\"item\" data-value=\"mu\"><i class=\"mu flag\"></i>Mauritius</div>\n        <div class=\"item\" data-value=\"yt\"><i class=\"yt flag\"></i>Mayotte</div>\n        <div class=\"item\" data-value=\"mx\"><i class=\"mx flag\"></i>Mexico</div>\n        <div class=\"item\" data-value=\"fm\"><i class=\"fm flag\"></i>Micronesia</div>\n        <div class=\"item\" data-value=\"md\"><i class=\"md flag\"></i>Moldova</div>\n        <div class=\"item\" data-value=\"mc\"><i class=\"mc flag\"></i>Monaco</div>\n        <div class=\"item\" data-value=\"mn\"><i class=\"mn flag\"></i>Mongolia</div>\n        <div class=\"item\" data-value=\"me\"><i class=\"me flag\"></i>Montenegro</div>\n        <div class=\"item\" data-value=\"ms\"><i class=\"ms flag\"></i>Montserrat</div>\n        <div class=\"item\" data-value=\"ma\"><i class=\"ma flag\"></i>Morocco</div>\n        <div class=\"item\" data-value=\"mz\"><i class=\"mz flag\"></i>Mozambique</div>\n        <div class=\"item\" data-value=\"na\"><i class=\"na flag\"></i>Namibia</div>\n        <div class=\"item\" data-value=\"nr\"><i class=\"nr flag\"></i>Nauru</div>\n        <div class=\"item\" data-value=\"np\"><i class=\"np flag\"></i>Nepal</div>\n        <div class=\"item\" data-value=\"an\"><i class=\"an flag\"></i>Netherlands Antilles</div>\n        <div class=\"item\" data-value=\"nl\"><i class=\"nl flag\"></i>Netherlands</div>\n        <div class=\"item\" data-value=\"nc\"><i class=\"nc flag\"></i>New Caledonia</div>\n        <div class=\"item\" data-value=\"pg\"><i class=\"pg flag\"></i>New Guinea</div>\n        <div class=\"item\" data-value=\"nz\"><i class=\"nz flag\"></i>New Zealand</div>\n        <div class=\"item\" data-value=\"ni\"><i class=\"ni flag\"></i>Nicaragua</div>\n        <div class=\"item\" data-value=\"ne\"><i class=\"ne flag\"></i>Niger</div>\n        <div class=\"item\" data-value=\"ng\"><i class=\"ng flag\"></i>Nigeria</div>\n        <div class=\"item\" data-value=\"nu\"><i class=\"nu flag\"></i>Niue</div>\n        <div class=\"item\" data-value=\"nf\"><i class=\"nf flag\"></i>Norfolk Island</div>\n        <div class=\"item\" data-value=\"kp\"><i class=\"kp flag\"></i>North Korea</div>\n        <div class=\"item\" data-value=\"mp\"><i class=\"mp flag\"></i>Northern Mariana Islands</div>\n        <div class=\"item\" data-value=\"no\"><i class=\"no flag\"></i>Norway</div>\n        <div class=\"item\" data-value=\"om\"><i class=\"om flag\"></i>Oman</div>\n        <div class=\"item\" data-value=\"pk\"><i class=\"pk flag\"></i>Pakistan</div>\n        <div class=\"item\" data-value=\"pw\"><i class=\"pw flag\"></i>Palau</div>\n        <div class=\"item\" data-value=\"ps\"><i class=\"ps flag\"></i>Palestine</div>\n        <div class=\"item\" data-value=\"pa\"><i class=\"pa flag\"></i>Panama</div>\n        <div class=\"item\" data-value=\"py\"><i class=\"py flag\"></i>Paraguay</div>\n        <div class=\"item\" data-value=\"pe\"><i class=\"pe flag\"></i>Peru</div>\n        <div class=\"item\" data-value=\"ph\"><i class=\"ph flag\"></i>Philippines</div>\n        <div class=\"item\" data-value=\"pn\"><i class=\"pn flag\"></i>Pitcairn Islands</div>\n        <div class=\"item\" data-value=\"pl\"><i class=\"pl flag\"></i>Poland</div>\n        <div class=\"item\" data-value=\"pt\"><i class=\"pt flag\"></i>Portugal</div>\n        <div class=\"item\" data-value=\"pr\"><i class=\"pr flag\"></i>Puerto Rico</div>\n        <div class=\"item\" data-value=\"qa\"><i class=\"qa flag\"></i>Qatar</div>\n        <div class=\"item\" data-value=\"re\"><i class=\"re flag\"></i>Reunion</div>\n        <div class=\"item\" data-value=\"ro\"><i class=\"ro flag\"></i>Romania</div>\n        <div class=\"item\" data-value=\"ru\"><i class=\"ru flag\"></i>Russia</div>\n        <div class=\"item\" data-value=\"rw\"><i class=\"rw flag\"></i>Rwanda</div>\n        <div class=\"item\" data-value=\"sh\"><i class=\"sh flag\"></i>Saint Helena</div>\n        <div class=\"item\" data-value=\"kn\"><i class=\"kn flag\"></i>Saint Kitts and Nevis</div>\n        <div class=\"item\" data-value=\"lc\"><i class=\"lc flag\"></i>Saint Lucia</div>\n        <div class=\"item\" data-value=\"pm\"><i class=\"pm flag\"></i>Saint Pierre</div>\n        <div class=\"item\" data-value=\"vc\"><i class=\"vc flag\"></i>Saint Vincent</div>\n        <div class=\"item\" data-value=\"ws\"><i class=\"ws flag\"></i>Samoa</div>\n        <div class=\"item\" data-value=\"sm\"><i class=\"sm flag\"></i>San Marino</div>\n        <div class=\"item\" data-value=\"gs\"><i class=\"gs flag\"></i>Sandwich Islands</div>\n        <div class=\"item\" data-value=\"st\"><i class=\"st flag\"></i>Sao Tome</div>\n        <div class=\"item\" data-value=\"sa\"><i class=\"sa flag\"></i>Saudi Arabia</div>\n        <div class=\"item\" data-value=\"sn\"><i class=\"sn flag\"></i>Senegal</div>\n        <div class=\"item\" data-value=\"cs\"><i class=\"cs flag\"></i>Serbia</div>\n        <div class=\"item\" data-value=\"rs\"><i class=\"rs flag\"></i>Serbia</div>\n        <div class=\"item\" data-value=\"sc\"><i class=\"sc flag\"></i>Seychelles</div>\n        <div class=\"item\" data-value=\"sl\"><i class=\"sl flag\"></i>Sierra Leone</div>\n        <div class=\"item\" data-value=\"sg\"><i class=\"sg flag\"></i>Singapore</div>\n        <div class=\"item\" data-value=\"sk\"><i class=\"sk flag\"></i>Slovakia</div>\n        <div class=\"item\" data-value=\"si\"><i class=\"si flag\"></i>Slovenia</div>\n        <div class=\"item\" data-value=\"sb\"><i class=\"sb flag\"></i>Solomon Islands</div>\n        <div class=\"item\" data-value=\"so\"><i class=\"so flag\"></i>Somalia</div>\n        <div class=\"item\" data-value=\"za\"><i class=\"za flag\"></i>South Africa</div>\n        <div class=\"item\" data-value=\"kr\"><i class=\"kr flag\"></i>South Korea</div>\n        <div class=\"item\" data-value=\"es\"><i class=\"es flag\"></i>Spain</div>\n        <div class=\"item\" data-value=\"lk\"><i class=\"lk flag\"></i>Sri Lanka</div>\n        <div class=\"item\" data-value=\"sd\"><i class=\"sd flag\"></i>Sudan</div>\n        <div class=\"item\" data-value=\"sr\"><i class=\"sr flag\"></i>Suriname</div>\n        <div class=\"item\" data-value=\"sj\"><i class=\"sj flag\"></i>Svalbard</div>\n        <div class=\"item\" data-value=\"sz\"><i class=\"sz flag\"></i>Swaziland</div>\n        <div class=\"item\" data-value=\"se\"><i class=\"se flag\"></i>Sweden</div>\n        <div class=\"item\" data-value=\"ch\"><i class=\"ch flag\"></i>Switzerland</div>\n        <div class=\"item\" data-value=\"sy\"><i class=\"sy flag\"></i>Syria</div>\n        <div class=\"item\" data-value=\"tw\"><i class=\"tw flag\"></i>Taiwan</div>\n        <div class=\"item\" data-value=\"tj\"><i class=\"tj flag\"></i>Tajikistan</div>\n        <div class=\"item\" data-value=\"tz\"><i class=\"tz flag\"></i>Tanzania</div>\n        <div class=\"item\" data-value=\"th\"><i class=\"th flag\"></i>Thailand</div>\n        <div class=\"item\" data-value=\"tl\"><i class=\"tl flag\"></i>Timorleste</div>\n        <div class=\"item\" data-value=\"tg\"><i class=\"tg flag\"></i>Togo</div>\n        <div class=\"item\" data-value=\"tk\"><i class=\"tk flag\"></i>Tokelau</div>\n        <div class=\"item\" data-value=\"to\"><i class=\"to flag\"></i>Tonga</div>\n        <div class=\"item\" data-value=\"tt\"><i class=\"tt flag\"></i>Trinidad</div>\n        <div class=\"item\" data-value=\"tn\"><i class=\"tn flag\"></i>Tunisia</div>\n        <div class=\"item\" data-value=\"tr\"><i class=\"tr flag\"></i>Turkey</div>\n        <div class=\"item\" data-value=\"tm\"><i class=\"tm flag\"></i>Turkmenistan</div>\n        <div class=\"item\" data-value=\"tv\"><i class=\"tv flag\"></i>Tuvalu</div>\n        <div class=\"item\" data-value=\"ug\"><i class=\"ug flag\"></i>Uganda</div>\n        <div class=\"item\" data-value=\"ua\"><i class=\"ua flag\"></i>Ukraine</div>\n        <div class=\"item\" data-value=\"ae\"><i class=\"ae flag\"></i>United Arab Emirates</div>\n        <div class=\"item\" data-value=\"us\"><i class=\"us flag\"></i>United States</div>\n        <div class=\"item\" data-value=\"uy\"><i class=\"uy flag\"></i>Uruguay</div>\n        <div class=\"item\" data-value=\"um\"><i class=\"um flag\"></i>Us Minor Islands</div>\n        <div class=\"item\" data-value=\"vi\"><i class=\"vi flag\"></i>Us Virgin Islands</div>\n        <div class=\"item\" data-value=\"uz\"><i class=\"uz flag\"></i>Uzbekistan</div>\n        <div class=\"item\" data-value=\"vu\"><i class=\"vu flag\"></i>Vanuatu</div>\n        <div class=\"item\" data-value=\"va\"><i class=\"va flag\"></i>Vatican City</div>\n        <div class=\"item\" data-value=\"ve\"><i class=\"ve flag\"></i>Venezuela</div>\n        <div class=\"item\" data-value=\"vn\"><i class=\"vn flag\"></i>Vietnam</div>\n        <div class=\"item\" data-value=\"wf\"><i class=\"wf flag\"></i>Wallis and Futuna</div>\n        <div class=\"item\" data-value=\"eh\"><i class=\"eh flag\"></i>Western Sahara</div>\n        <div class=\"item\" data-value=\"ye\"><i class=\"ye flag\"></i>Yemen</div>\n        <div class=\"item\" data-value=\"zm\"><i class=\"zm flag\"></i>Zambia</div>\n        <div class=\"item\" data-value=\"zw\"><i class=\"zw flag\"></i>Zimbabwe</div>\n      </div>\n"
  },
  {
    "path": "server/partials/examples/single/preset-menu.html",
    "content": "<div class=\"item\" data-value=\"angular\">Angular</div>\n<div class=\"item\" data-value=\"css\">CSS</div>\n<div class=\"item\" data-value=\"design\">Graphic Design</div>\n<div class=\"item\" data-value=\"ember\">Ember</div>\n<div class=\"item\" data-value=\"html\">HTML</div>\n<div class=\"item\" data-value=\"ia\">Information Architecture</div>\n<div class=\"item\" data-value=\"javascript\">Javascript</div>\n<div class=\"item\" data-value=\"mech\">Mechanical Engineering</div>\n<div class=\"item\" data-value=\"meteor\">Meteor</div>\n<div class=\"item\" data-value=\"node\">NodeJS</div>\n<div class=\"item\" data-value=\"plumbing\">Plumbing</div>\n<div class=\"item\" data-value=\"python\">Python</div>\n<div class=\"item\" data-value=\"rails\">Rails</div>\n<div class=\"item\" data-value=\"react\">React</div>\n<div class=\"item\" data-value=\"repair\">Kitchen Repair</div>\n<div class=\"item\" data-value=\"ruby\">Ruby</div>\n<div class=\"item\" data-value=\"ui\">UI Design</div>\n<div class=\"item\" data-value=\"ux\">User Experience</div>"
  },
  {
    "path": "server/partials/examples/single/skill-menu.html",
    "content": "<option value=\"\">Skills</option>\n<option value=\"angular\">Angular</option>\n<option value=\"css\">CSS</option>\n<option value=\"design\">Graphic Design</option>\n<option value=\"ember\">Ember</option>\n<option value=\"html\">HTML</option>\n<option value=\"ia\">Information Architecture</option>\n<option value=\"javascript\">Javascript</option>\n<option value=\"mech\">Mechanical Engineering</option>\n<option value=\"meteor\">Meteor</option>\n<option value=\"node\">NodeJS</option>\n<option value=\"plumbing\">Plumbing</option>\n<option value=\"python\">Python</option>\n<option value=\"rails\">Rails</option>\n<option value=\"react\">React</option>\n<option value=\"repair\">Kitchen Repair</option>\n<option value=\"ruby\">Ruby</option>\n<option value=\"ui\">UI Design</option>\n<option value=\"ux\">User Experience</option>"
  },
  {
    "path": "server/partials/examples/single/state-options.html",
    "content": "<option value=\"\">State</option>\n        <option value=\"AL\">Alabama</option>\n        <option value=\"AK\">Alaska</option>\n        <option value=\"AZ\">Arizona</option>\n        <option value=\"AR\">Arkansas</option>\n        <option value=\"CA\">California</option>\n        <option value=\"CO\">Colorado</option>\n        <option value=\"CT\">Connecticut</option>\n        <option value=\"DE\">Delaware</option>\n        <option value=\"DC\">District Of Columbia</option>\n        <option value=\"FL\">Florida</option>\n        <option value=\"GA\">Georgia</option>\n        <option value=\"HI\">Hawaii</option>\n        <option value=\"ID\">Idaho</option>\n        <option value=\"IL\">Illinois</option>\n        <option value=\"IN\">Indiana</option>\n        <option value=\"IA\">Iowa</option>\n        <option value=\"KS\">Kansas</option>\n        <option value=\"KY\">Kentucky</option>\n        <option value=\"LA\">Louisiana</option>\n        <option value=\"ME\">Maine</option>\n        <option value=\"MD\">Maryland</option>\n        <option value=\"MA\">Massachusetts</option>\n        <option value=\"MI\">Michigan</option>\n        <option value=\"MN\">Minnesota</option>\n        <option value=\"MS\">Mississippi</option>\n        <option value=\"MO\">Missouri</option>\n        <option value=\"MT\">Montana</option>\n        <option value=\"NE\">Nebraska</option>\n        <option value=\"NV\">Nevada</option>\n        <option value=\"NH\">New Hampshire</option>\n        <option value=\"NJ\">New Jersey</option>\n        <option value=\"NM\">New Mexico</option>\n        <option value=\"NY\">New York</option>\n        <option value=\"NC\">North Carolina</option>\n        <option value=\"ND\">North Dakota</option>\n        <option value=\"OH\">Ohio</option>\n        <option value=\"OK\">Oklahoma</option>\n        <option value=\"OR\">Oregon</option>\n        <option value=\"PA\">Pennsylvania</option>\n        <option value=\"RI\">Rhode Island</option>\n        <option value=\"SC\">South Carolina</option>\n        <option value=\"SD\">South Dakota</option>\n        <option value=\"TN\">Tennessee</option>\n        <option value=\"TX\">Texas</option>\n        <option value=\"UT\">Utah</option>\n        <option value=\"VT\">Vermont</option>\n        <option value=\"VA\">Virginia</option>\n        <option value=\"WA\">Washington</option>\n        <option value=\"WV\">West Virginia</option>\n        <option value=\"WI\">Wisconsin</option>\n        <option value=\"WY\">Wyoming</option>"
  },
  {
    "path": "server/partials/examples/statistic.html",
    "content": "<div class=\"ui statistic\">\n  <div class=\"label\">\n    Top Label\n  </div>\n  <div class=\"value\">\n    4:05\n  </div>\n</div>\n\n<div class=\"ui divider\"></div>\n\n<div class=\"ui statistic\">\n  <div class=\"value\">\n    22\n  </div>\n  <div class=\"label\">\n    Bottom Label\n  </div>\n</div>\n\n<div class=\"ui divider\"></div>\n\n<div class=\"ui statistic\">\n  <div class=\"text value\">\n    Eighty<br>\n    Two\n  </div>\n  <div class=\"label\">\n    Text\n  </div>\n</div>\n<div class=\"ui statistic\">\n  <div class=\"value\">\n    <i class=\"ticket icon\"></i> 5\n  </div>\n  <div class=\"label\">\n    Labeled Icon\n  </div>\n</div>\n\n<div class=\"ui divider\"></div>\n\n<div class=\"ui horizontal statistics\">\n  <div class=\"statistic\">\n    <div class=\"value\">\n      <i class=\"trophy icon\"></i>\n      22\n    </div>\n    <div class=\"label\">\n      Horizontal Label\n    </div>\n  </div>\n  <div class=\"statistic\">\n    <div class=\"value\">\n      <i class=\"ticket icon\"></i>\n      51\n    </div>\n    <div class=\"label\">\n      Horizontal Label\n    </div>\n  </div>\n  <div class=\"statistic\">\n    <div class=\"value\">\n      <i class=\"protect icon\"></i>\n      81\n    </div>\n    <div class=\"label\">\n      Horizontal Label\n    </div>\n  </div>\n</div>\n"
  },
  {
    "path": "server/partials/examples/step.html",
    "content": "<div class=\"ui steps\">\n  <a class=\"step\">\n    <div class=\"content\">\n      <div class=\"title\">Step</div>\n      <div class=\"description\">Description</div>\n    </div>\n  </a>\n  <a class=\"active step\">\n    <div class=\"content\">\n      <div class=\"title\">Step</div>\n      <div class=\"description\">Description</div>\n    </div>\n  </a>\n</div>\n<div class=\"ui hidden divider\"></div>\n<div class=\"ui ordered vertical steps\">\n  <a class=\"step\">\n    <div class=\"content\">\n      <div class=\"title\">Previous Step</div>\n      <div class=\"description\">Description</div>\n    </div>\n  </a>\n  <a class=\"active step\">\n    <div class=\"content\">\n      <div class=\"title\">Active Step</div>\n      <div class=\"description\">Description</div>\n    </div>\n  </a>\n  <a class=\"disabled step\">\n    <div class=\"content\">\n      <div class=\"title\">Disabled Step</div>\n      <div class=\"description\">Description</div>\n    </div>\n  </a>\n</div>\n\n<div class=\"ui hidden divider\"></div>\n\n<div class=\"ui vertical steps\">\n  <a class=\"completed step\">\n    <i class=\"truck icon\"></i>\n    <div class=\"content\">\n      <div class=\"title\">Previous Step</div>\n      <div class=\"description\">Description</div>\n    </div>\n  </a>\n  <a class=\"active step\">\n    <i class=\"payment icon\"></i>\n    <div class=\"content\">\n      <div class=\"title\">Active Step</div>\n      <div class=\"description\">Description</div>\n    </div>\n  </a>\n  <a class=\"disabled step\">\n    <i class=\"info icon\"></i>\n    <div class=\"content\">\n      <div class=\"title\">Disabled Step</div>\n      <div class=\"description\">Description</div>\n    </div>\n  </a>\n</div>"
  },
  {
    "path": "server/partials/examples/tab.html",
    "content": "<div class=\"tab demo\">\n  <div class=\"ui secondary menu\">\n    <a class=\"item\" data-tab=\"first\">First</a>\n    <a class=\"item active\" data-tab=\"second\">Second</a>\n    <a class=\"item\" data-tab=\"third\">Third</a>\n  </div>\n  <div class=\"ui tab segment\" data-tab=\"first\">\n    <div class=\"ui top attached tabular menu\">\n      <a class=\"active item\" data-tab=\"first/a\">1A</a>\n      <a class=\"item\" data-tab=\"first/b\">1B</a>\n      <a class=\"item\" data-tab=\"first/c\">1C</a>\n    </div>\n    <div class=\"ui bottom attached active tab segment\" data-tab=\"first/a\">1A</div>\n    <div class=\"ui bottom attached tab segment\" data-tab=\"first/b\">1B</div>\n    <div class=\"ui bottom attached tab segment\" data-tab=\"first/c\">1C</div>\n  </div>\n  <div class=\"ui tab segment active\" data-tab=\"second\">\n    <div class=\"ui top attached tabular menu\">\n      <a class=\"item\" data-tab=\"second/a\">2A</a>\n      <a class=\"item\" data-tab=\"second/b\">2B</a>\n      <a class=\"item active\" data-tab=\"second/c\">2C</a>\n    </div>\n    <div class=\"ui bottom attached tab segment\" data-tab=\"second/a\">2A</div>\n    <div class=\"ui bottom attached tab segment\" data-tab=\"second/b\">2B</div>\n    <div class=\"ui bottom attached tab segment active\" data-tab=\"second/c\">2C</div>\n  </div>\n  <div class=\"ui tab segment\" data-tab=\"third\">\n    <div class=\"ui top attached tabular menu\">\n      <a class=\"item\" data-tab=\"third/a\">3A</a>\n      <a class=\"item\" data-tab=\"third/b\">3B</a>\n      <a class=\"item\" data-tab=\"third/c\">3C</a>\n    </div>\n    <div class=\"ui bottom attached tab segment\" data-tab=\"third/a\">3A</div>\n    <div class=\"ui bottom attached tab segment\" data-tab=\"third/b\">3B</div>\n    <div class=\"ui bottom attached tab segment\" data-tab=\"third/c\">3C</div>\n  </div>\n</div>\n\n\n<script type=\"text/javascript\">\n$(document)\n  .ready(function(){\n    $('.tab.demo .menu .item')\n      .tab({\n        history: true,\n        context: $('.tab.demo')\n      })\n    ;\n  })\n;\n</script>"
  },
  {
    "path": "server/partials/examples/table.html",
    "content": "<table class=\"ui celled striped table\">\n  <thead>\n    <th colspan=\"3\">\n      Files\n    </th>\n  <tbody>\n    <tr>\n      <td class=\"disabled\">\n        <i class=\"folder icon\"></i> folder\n      </td>\n      <td>Comment</td>\n      <td class=\"right aligned collapsing\">10 hours ago</td>\n    </tr>\n    <tr>\n      <td>\n        <i class=\"folder icon\"></i> folder2\n      </td>\n      <td>Comment</td>\n      <td class=\"right aligned\">10 hours ago</td>\n    </tr>\n    <tr>\n      <td>\n        <i class=\"folder icon\"></i> folder3\n      </td>\n      <td>Comment</td>\n      <td class=\"right aligned\">10 hours ago</td>\n    </tr>\n    <tr>\n      <td class=\"collapsing\">\n        <i class=\"file outline icon\"></i> package.json\n      </td>\n      <td>Comment</td>\n      <td class=\"right aligned\">10 hours ago</td>\n    </tr>\n    <tr>\n      <td>\n        <i class=\"file outline icon\"></i> Gruntfile.js\n      </td>\n      <td>Comment</td>\n      <td class=\"right aligned\">10 hours ago</td>\n    </tr>\n  </tbody>\n</table>\n\n<table class=\"ui definition table\">\n  <thead>\n    <th></th>\n    <th>Header 1</th>\n    <th>Header 2</th>\n  </thead>\n  <tbody>\n    <tr>\n      <td>Definition</td>\n      <td>1A</td>\n      <td>1B</td>\n    </tr>\n    <tr>\n      <td>Definition</td>\n      <td>2A</td>\n      <td>2B</td>\n    </tr>\n  </tbody>\n</table>\n\n<table class=\"ui compact celled definition table\">\n  <thead>\n    <tr>\n      <th></th>\n      <th>Name</th>\n      <th>Registration Date</th>\n      <th>E-mail address</th>\n      <th>Premium Plan</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td class=\"collapsing\">\n        <div class=\"ui fitted slider checkbox\">\n          <input type=\"checkbox\"> <label></label>\n        </div>\n      </td>\n      <td></td>\n      <td></td>\n      <td></td>\n      <td></td>\n    </tr>\n    <tr>\n      <td class=\"collapsing\">\n        <div class=\"ui fitted slider checkbox\">\n          <input type=\"checkbox\"> <label></label>\n        </div>\n      </td>\n      <td></td>\n      <td></td>\n      <td></td>\n      <td></td>\n    </tr>\n    <tr>\n      <td class=\"collapsing\">\n        <div class=\"ui fitted slider checkbox\">\n          <input type=\"checkbox\"> <label></label>\n        </div>\n      </td>\n      <td></td>\n      <td></td>\n      <td></td>\n      <td></td>\n    </tr>\n  </tbody>\n  <tfoot class=\"full-width\">\n    <tr>\n      <th></th>\n      <th colspan=\"4\">\n        <div class=\"ui right floated small primary labeled icon button\">\n          <i class=\"user icon\"></i> Primary\n        </div>\n        <div class=\"ui small button\">\n          Button\n        </div>\n        <div class=\"ui small disabled button\">\n          Disabled\n        </div>\n      </th>\n    </tr>\n  </tfoot>\n</table>\n\n<table class=\"ui celled table\">\n  <thead>\n    <tr>\n      <th>Name</th>\n      <th>Status</th>\n      <th>Notes</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td>User 1</td>\n      <td>Value</td>\n      <td>Comment</td>\n    </tr>\n    <tr class=\"active\">\n      <td>User 1</td>\n      <td>Selected</td>\n      <td>Data</td>\n    </tr>\n    <tr class=\"disabled\">\n      <td>User 1</td>\n      <td>Value</td>\n      <td>Comment</td>\n    </tr>\n    <tr>\n      <td class=\"active\">User 2</td>\n      <td>Value</td>\n      <td>Data</td>\n    </tr>\n    <tr>\n      <td>User 1</td>\n      <td>Value</td>\n      <td class=\"warning\">\n        <i class=\"attention icon\"></i>\n        Warning\n      </td>\n    </tr>\n    <tr>\n      <td>User 3</td>\n      <td>Value</td>\n      <td class=\"negative\">Data</td>\n    </tr>\n    <tr>\n      <td>User 1</td>\n      <td>Value</td>\n      <td class=\"positive\">\n        <i class=\"icon close\"></i> Positive\n      </td>\n    </tr>\n    <tr class=\"warning\">\n      <td>User 2</td>\n      <td>\n        <i class=\"attention icon\"></i>\n        Warning\n      </td>\n      <td>Data</td>\n    </tr>\n    <tr class=\"positive\">\n      <td>User 2</td>\n      <td><i class=\"icon checkmark\"></i> Positive</td>\n      <td>Data</td>\n    </tr>\n    <tr class=\"negative\">\n      <td>User 2</td>\n      <td>Value</td>\n      <td>Data</td>\n    </tr>\n  </tbody>\n</table>\n\n<table class=\"ui inverted teal celled striped table\">\n  <thead>\n    <tr>\n      <th>Name</th>\n      <th>Status</th>\n      <th>Notes</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <td>User 1</td>\n      <td>Data</td>\n      <td>Data</td>\n    </tr>\n    <tr>\n      <td>User 3</td>\n      <td>Data</td>\n      <td>Data</td>\n    </tr>\n    <tr>\n      <td>User 2</td>\n      <td>Denied</td>\n      <td>Data</td>\n    </tr>\n  </tbody>\n  <tfoot>\n    <tr>\n      <th>Footer</th>\n      <th>Footer</th>\n      <th></th>\n    </tr>\n  </tfoot>\n</table>"
  },
  {
    "path": "server/partials/examples/transition.html",
    "content": "<div class=\"transition demo\">\n\n  <div class=\"ui small images\">\n    <img class=\"ui image\" src=\"/images/leaves/14.png\">\n    <img class=\"ui image\" src=\"/images/leaves/20.png\">\n    <img class=\"ui image\" src=\"/images/leaves/12.png\">\n    <img class=\"ui image\" src=\"/images/leaves/9.png\">\n    <img class=\"ui image\" src=\"/images/leaves/13.png\">\n  </div>\n\n  <div class=\"ui button\">Flash</div>\n  <div class=\"ui button\">Shake</div>\n  <div class=\"ui button\">Pulse</div>\n  <div class=\"ui button\">Tada</div>\n  <div class=\"ui button\">Bounce</div>\n  <div class=\"ui button\">Drop</div>\n  <div class=\"ui button\">Browse</div>\n  <div class=\"ui button\">Horizontal Flip</div>\n  <div class=\"ui button\">Vertical Flip</div>\n  <div class=\"ui button\">Fade</div>\n  <div class=\"ui button\">Fade Up</div>\n  <div class=\"ui button\">Fade Down</div>\n  <div class=\"ui button\">Scale</div>\n  <div class=\"ui button\">Slide Down</div>\n  <div class=\"ui button\">Slide Up</div>\n\n</div>\n<style type=\"text/css\">\n.transition.demo .button {\n  margin-bottom: 0.5em;\n}\n/* Dont hide on hide */\n.transition.demo .ui.hidden.image {\n  display: inline-block !important;\n}\n</style>\n<script type=\"text/javascript\">\n$(document)\n  .ready(function(){\n    $('.transition.demo .button')\n      .on('click', function() {\n        var animation = $(this).text();\n        if(typeof animation == 'string') {\n          animation = animation.toLowerCase();\n        }\n        $('.transition.demo .image')\n          .transition({\n            animation: animation,\n            interval: 200\n          })\n        ;\n      })\n    ;\n  })\n;\n</script>"
  },
  {
    "path": "server/partials/fixed-menu.html.eco",
    "content": "<% currentCollection = @getCollection(\"documents\").findAll({type: $in: [@document.type]},[{title: 1}]).toJSON() %>\n<% pageCount         = @pageCount(currentCollection) %>\n<% pageNumber        = @getPage(currentCollection, @document.id) %>\n<% pageCollection    = @getPageCollection(currentCollection, @document.id) %>\n\n<div class=\"ui fixed inverted main menu\">\n  <div class=\"ui container\">\n    <a class=\"launch icon item\">\n      <i class=\"content icon\"></i>\n    </a>\n    <% if @document.title: %>\n      <div class=\"item\">\n        <%= @document.title %>\n      </div>\n    <% end %>\n    <div class=\"right menu\">\n      <% if 'development' in @getEnvironments(): %>\n      <% else: %>\n      <div class=\"vertically fitted borderless item\">\n        <iframe class=\"github\" src=\"//ghbtns.com/github-btn.html?user=semantic-org&amp;repo=semantic-ui&amp;type=watch&amp;count=true\" allowtransparency=\"true\" frameborder=\"0\" scrolling=\"0\" width=\"100\" height=\"20\"></iframe>\n      </div>\n      <% end %>\n      <!--\n      <div class=\"item\">\n        <div class=\"ui hidden right aligned search input\" id=\"search\">\n          <div class=\"ui transparent icon input\">\n            <input class=\"prompt\" type=\"text\" placeholder=\"Search...\">\n            <i class=\"inverted search link icon\" data-content=\"Search UI\"></i>\n          </div>\n          <div class=\"results\"></div>\n        </div>\n      </div>\n      -->\n    </div>\n  </div>\n</div>\n"
  },
  {
    "path": "server/partials/footer.html",
    "content": "<div class=\"ui  vertical footer segment\">\n  <div class=\"ui center aligned container\">\n    <div class=\"ui stackable grid\">\n      <div class=\"three wide column\">\n        <h4 class=\"ui header\">Community</h4>\n        <div class=\"ui link list\">\n          <a class=\"item\" href=\"https://www.transifex.com/organization/semantic-org/\" target=\"_blank\">Help Translate</a>\n          <a class=\"item\" href=\"https://github.com/Semantic-Org/Semantic-UI/issues\" target=\"_blank\">Submit an Issue</a>\n          <a class=\"item\" href=\"https://gitter.im/Semantic-Org/Semantic-UI\" target=\"_blank\">Join our Chat</a>\n          <a class=\"item\" href=\"/cla.html\" target=\"_blank\">CLA</a>\n        </div>\n      </div>\n      <div class=\"three wide column\">\n        <h4 class=\"ui header\">Network</h4>\n        <div class=\"ui link list\">\n          <a class=\"item\" href=\"https://github.com/Semantic-Org/Semantic-UI\" target=\"_blank\">GitHub Repo</a>\n          <a class=\"item\" href=\"http://forums.semantic-ui.com\" target=\"_blank\">User Forums</a>\n          <a class=\"item\" href=\"http://1.semantic-ui.com\">1.x Docs</a>\n          <a class=\"item\" href=\"http://legacy.semantic-ui.com\">0.x Docs</a>\n        </div>\n      </div>\n      <div class=\"seven wide right floated column\">\n        <h4 class=\"ui header\">Help Preserve This Project</h4>\n        <p> Support for the continued development of Semantic UI comes directly from the community.</p>\n        <form action=\"https://www.paypal.com/cgi-bin/webscr\" method=\"post\" target=\"_top\">\n          <input type=\"hidden\" name=\"cmd\" value=\"_s-xclick\">\n          <input type=\"hidden\" name=\"hosted_button_id\" value=\"7ZAF2Q8DBZAQL\">\n          <button type=\"submit\" class=\"ui large teal button\">Donate Today</button>\n        </form>\n      </div>\n    </div>\n    <div class=\"ui section divider\"></div>\n    <img src=\"/images/logo.png\" class=\"ui centered mini image\">\n    <div class=\"ui horizontal small divided link list\">\n      <a class=\"item\" href=\"http://semantic-ui.mit-license.org/\" target=\"_blank\">Free & Open Source (MIT)</a>\n    </div>\n  </div>\n</div>\n"
  },
  {
    "path": "server/partials/header.html.eco",
    "content": "\n<% @tabs = {  definition: 'Definition', examples: 'Examples', usage: 'Usage', settings: 'Settings' } if @tabs == 'module' %>\n<% @tabs = {  overview: 'Overview', usage: 'Usage', examples: 'Examples', settings: 'Settings' } if @tabs == 'behavior' %>\n<div class=\"ui masthead vertical<% if @tabs?: %> tab<% end %> segment\">\n  <div class=\"ui container\">\n    <div class=\"introduction\">\n\n      <h1 class=\"ui header\">\n        <%=@document.title %>\n        <% if @document.status?: %><span class=\"ui red label\"><%= @document.status %></span><% end %>\n        <div class=\"sub header\">\n          <% if 'development' in @getEnvironments(): %>\n          <% else: %>\n          <a class=\"twitter-share-button twitter\"\n            href=\"http://twitter.com/share\"\n            data-text=\"Semantic UI is a next generation UI framework\"\n            data-url=\"http://semantic-ui.com\"\n            data-via=\"semanticui\">\n          </a>\n          <script type=\"text/javascript\">\n          window.twttr=(function(d,s,id){var t,js,fjs=d.getElementsByTagName(s)[0];if(d.getElementById(id)){return}js=d.createElement(s);js.id=id;js.src=\"https://platform.twitter.com/widgets.js\";fjs.parentNode.insertBefore(js,fjs);return window.twttr||(t={_e:[],ready:function(f){t._e.push(f)}})}(document,\"script\",\"twitter-wjs\"));\n          </script>\n          <iframe class=\"github\" src=\"//ghbtns.com/github-btn.html?user=semantic-org&amp;repo=semantic-ui&amp;type=star&amp;count=true&amp;\" allowtransparency=\"true\" frameborder=\"0\" scrolling=\"0\" width=\"100\" height=\"20\"></iframe>\n          <% end %>\n          <%=@document.description %>\n        </div>\n      </h1>\n\n      <div class=\"ui hidden divider\"></div>\n\n      <div class=\"ui right floated main menu\">\n        <a class=\"bug popup icon item\" data-content=\"Edit This Page\" href=\"https://github.com/Semantic-Org/Semantic-UI-Docs/edit/<%= @getBranch() %>/server/documents/<%= @document.relativePath %>\">\n          <i class=\"edit icon\"></i>\n        </a>\n        <% if @document.type is 'UI Element' or @document.type is 'UI View' or @document.type is 'UI Collection' or @document.type is 'UI Module': %>\n        <a class=\"bug popup icon item\" data-content=\"Submit Bug Report\" href=\"https://github.com/Semantic-Org/Semantic-UI/issues/new?title=[<%= @document.title %>] - Your Bug Name&body=**Steps to Reproduce**%0A1. Do something%0A2. Do something else.%0A3. Do one last thing.%0A%0A**Expected**%0AThe <%= @document.title %> should do this%0A%0A**Result**%0AThe <%= @document.title %> does not do this%0A%0A**Testcase**%0A(fork this to get started)%0Ahttp://jsfiddle.net/rduvhn8u/1/\">\n          <i class=\"bug icon\"></i>\n        </a>\n        <% end %>\n        <a class=\"github popup icon item\" data-content=\"View project on GitHub\" href=\"https://github.com/Semantic-Org/Semantic-UI\">\n          <i class=\"alternate github icon\"></i>\n        </a>\n      </div>\n      <div class=\"ui right floated main menu\">\n        <a class=\"music popup icon item\" data-content=\"Play Music\">\n          <i class=\"music icon\"></i>\n        </a>\n        <div class=\"ui language dropdown right floating icon item\" id=\"languages\" data-content=\"Select Language\">\n          <i class=\"world icon\"></i>\n          <div class=\"menu\">\n            <div class=\"header\">Select Language</div>\n            <div class=\"ui icon search input\">\n              <i class=\"search icon\"></i>\n              <input type=\"text\" placeholder=\"Search languages...\">\n            </div>\n            <%- @partial('languages') %>\n          </div>\n        </div>\n      </div>\n\n      <% if @document.type is 'UI Module': %>\n<!--       <a href=\"/module.html\" class=\"ui right floated basic right labeled icon button\">\n        Learn about Modules\n        <i class=\"help icon\" data-title=\"What are Modules?\" data-content=\"Modules are UI elements that include behaviors as part of their definition. Modules require some knowledge of Javascript to use.\"></i>\n      </a> -->\n      <% end %>\n      <% if @document.themes? && @document.themes.length > 1: %>\n      <div class=\"ui floating <% if @document.themes.length > 4: %>scrolling <% end %>dropdown theme basic button\" data-element=\"<%= @document.element %>\" data-type=\"<%= @document.elementType %>\">\n        <span class=\"text\"><%= @document.themes.length %> Themes</span>\n        <div class=\"menu transition hidden\">\n          <% for id, name of @document.themes: %>\n            <div class=\"item\" data-value=\"<%= name %>\" data-text=\"<%= name %> Theme\"><%= (name.charAt(0).toUpperCase() + name.slice(1)) %></div>\n          <% end %>\n        </div>\n      </div>\n      <% end %>\n      <% if @document.type is 'UI Element' or @document.type is 'UI View' or @document.type is 'UI Collection' or @document.type is 'UI Module': %>\n      <div class=\"ui download primary button\">\n        Download\n      </div>\n      <div class=\"ui flowing download basic popup\">\n        <div class=\"ui divided equal width relaxed center aligned choice grid\">\n          <div class=\"framework column\">\n            <h4 class=\"ui center aligned header\">UI Framework</h4>\n            <div class=\"ui list\">\n              <div class=\"item\"><i class=\"green check icon\"></i> Themable</div>\n              <div class=\"item\"><i class=\"green check icon\"></i> Build Tools</div>\n            </div>\n            <div class=\"ui primary fluid button\">Choose</div>\n          </div>\n          <div class=\"standalone column\">\n            <h4 class=\"ui center aligned header\">Standalone</h4>\n            <div class=\"ui list\">\n              <div class=\"item\">Default Theme</div>\n              <div class=\"item\">Precompiled</div>\n            </div>\n            <div class=\"ui fluid button basic\">Choose</div>\n          </div>\n        </div>\n        <div class=\"ui divided equal height relaxed center aligned framework grid\">\n          <div class=\"column\">\n            <div class=\"ui header\">Semantic UI</div>\n            <a class=\"ui primary button\" href=\"https://github.com/Semantic-Org/Semantic-UI/archive/master.zip\">\n              Download ZIP\n            </a>\n            <a class=\"ui button\" href=\"/introduction/getting-started.html\">Getting Started</a>\n            <h4 class=\"ui header\">Package Managers</h4>\n            <div class=\"ui form\">\n              <div class=\"field\">\n                <label>NPM</label>\n                <div class=\"ui fluid input\">\n                  <input type=\"text\" readonly=\"readonly\" placeholder=\"Copy Link\" value=\"npm install semantic-ui\">\n                </div>\n              </div>\n              <div class=\"field\">\n                <label>Git</label>\n                <div class=\"ui fluid input\">\n                  <input type=\"text\" readonly=\"readonly\" placeholder=\"Copy Link\" value=\"https://github.com/Semantic-Org/Semantic-UI.git\">\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n        <div class=\"ui divided equal height relaxed center aligned standalone grid\">\n          <div class=\"column\">\n            <div class=\"ui header\">Standalone <%=@document.title %></div>\n            <a class=\"ui primary button\" href=\"https://github.com/Semantic-Org/UI-<%=@document.title %>/archive/master.zip\">\n              Download ZIP\n            </a>\n            <a class=\"ui button\" href=\"https://github.com/Semantic-Org/UI-<%=@document.title %>/\">\n              View GitHub\n            </a>\n            <h4 class=\"ui header\">Package Managers</h4>\n            <div class=\"ui form\">\n              <div class=\"field\">\n                <label>Bower</label>\n                <div class=\"ui fluid input\">\n                  <input type=\"text\" readonly=\"readonly\" placeholder=\"Copy Link\" value=\"bower install semantic-ui-<%=@document.element %>\">\n                </div>\n              </div>\n              <div class=\"field\">\n                <label>NPM</label>\n                <div class=\"ui fluid input\">\n                  <input type=\"text\" readonly=\"readonly\" placeholder=\"Copy Link\" value=\"npm install semantic-ui-<%=@document.element %>\">\n                </div>\n              </div>\n              <div class=\"field\">\n                <label>Git</label>\n                <div class=\"ui fluid input\">\n                  <input type=\"text\" readonly=\"readonly\" placeholder=\"Copy Link\" value=\"https://github.com/Semantic-Org/UI-<%=@document.title %>.git\">\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n      <% end %>\n    </div>\n    <div class=\"advertisement\">\n      <% unless 'development' in @getEnvironments(): %>\n      <script async type=\"text/javascript\" src=\"//cdn.carbonads.com/carbon.js?zoneid=1673&serve=C6AILKT&placement=semanticuicom\" id=\"_carbonads_js\"></script>\n      <% end %>\n    </div>\n    <% if @tabs?: %>\n    <% index = 0 %>\n    <% tabCount = 0 %>\n    <% numbers = ['', '', 'two item', 'three item', 'four item', 'five item', 'six item'] %>\n    <% colors = ['red', 'teal', 'blue', 'purple', 'black', 'orange'] %>\n      <% for id, name of @tabs: %>\n        <% tabCount++ %>\n      <% end %>\n      <div class=\"ui <%= numbers[tabCount] %> stackable tabs menu\">\n        <% for id, name of @tabs: %>\n          <a class=\"<%= if index == 0 then 'active ' %>item\" data-tab=\"<%= id %>\"><%= name %></a>\n          <% index++ %>\n        <% end %>\n      </div>\n    <% end %>\n  </div>\n</div>\n<% if 'development' in @getEnvironments(): %>\n<% else: %>\n  <div id=\"semantic-sponsor\"></div>\n  <script>\n  _bsa.init('custom', 'CVAIKK7I', 'placement:semanticuicom',\n      {\n        target: '#semantic-sponsor',\n        template: `\n  <div class=\"native-inline\">\n    <a href=\"##link##\" class=\"native-link\">\n      <img src=\"##image##\" style=\"background-color: ##backgroundColor##\" class=\"native-img\">\n      <div class=\"native-text\">##company## — ##description##</div>\n    </a>\n    <a href=\"##adViaLink##\" class=\"native-ad\">AD</a>\n  </div>\n  `\n      }\n    );\n  </script>\n  <div class=\"ui vertical beg transition hidden segment\">\n    <i class=\"large red delete link icon\"></i>\n    <div class=\"ui red header\">\n      <i class=\"disabled warning sign icon\"></i>\n      <div class=\"content\">\n        Want to Support Open Source? Whitelist Your Ad-Blocker.\n        <div class=\"sub header\">\n          We promise to not show more than one small ad per page. Dont worry, hiding this message will make sure you won't get nagged again.\n        </div>\n      </div>\n    </div>\n  </div>\n<% end %>\n"
  },
  {
    "path": "server/partials/javascript.html.eco",
    "content": "<%- @partial('library-javascript') %>\n<%- @partial('ui-javascript') %>\n<script src=\"/javascript/docs.js\"></script>\n"
  },
  {
    "path": "server/partials/language-modal.html",
    "content": "<div class=\"ui basic language modal\">\n  <i class=\"close icon\"></i>\n  <div class=\"header\">The <span class=\"name\"></span> Translation Needs Your Help</div>\n  <div class=\"image content\">\n    <div class=\"middle aligned image\">\n      <i class=\"world icon\"></i>\n    </div>\n    <div class=\"description\">\n      <p>This translation is only <b><span class=\"complete\"></span>%</b> complete!</p>\n      <div class=\"ui inverted indicating progress\">\n        <div class=\"bar\"></div>\n      </div>\n      <p>We need your help to make Semantic available to  people who speak your language.</p>\n      <p>Our translation tools are easy to use and allow you to translate text without having to leave the site.\n      </p>\n    </div>\n  </div>\n  <div class=\"actions\">\n    <div class=\"ui inverted cancel button\">No Thanks</div>\n    <a href=\"https://github.com/Semantic-Org/Semantic-UI/wiki/Translating-Semantic-UI-Docs\" target=\"_blank\" class=\"ui inverted approve teal button\">\n      <i class=\"mail icon\"></i>\n      Help Translate\n    </a>\n  </div>\n</div>\n\n<div class=\"ui basic chinese modal\">\n  <i class=\"close icon\"></i>\n  <div class=\"header\">Would you like to visit the mirror site?</div>\n  <div class=\"image content\">\n    <div class=\"middle aligned image\">\n      <i class=\"question icon\"></i>\n    </div>\n    <div class=\"description\">\n      <p>Semantic is available at <a href=\"http://www.semantic-ui.cn\">semantic-ui.cn</a> a mirror site hosted inside China. This should make browsing much faster for those visiting from mainland China.\n      </p>\n    </div>\n  </div>\n  <div class=\"actions\">\n    <div class=\"ui inverted red cancel button\">No Thanks</div>\n    <a href=\"http://www.semantic-ui.cn\" class=\"ui inverted green approve button\">\n      <i class=\"mail icon\"></i>\n      Yes, take me to the mirror\n    </a>\n  </div>\n</div>"
  },
  {
    "path": "server/partials/languages.html",
    "content": "<div class=\"scrolling menu\">\n  <div class=\"item\" data-percent=\"100\" data-value=\"en\" data-english=\"English\">\n    <span class=\"description\">English</span>\n    English\n  </div>\n  <div class=\"item\" data-percent=\"94\" data-value=\"da\" data-english=\"Danish\">\n    <span class=\"description\">dansk</span>\n    Danish\n  </div>\n  <div class=\"item\" data-percent=\"94\" data-value=\"es\" data-english=\"Spanish\">\n    <span class=\"description\">Español</span>\n    Spanish\n  </div>\n  <div class=\"item\" data-percent=\"34\" data-value=\"zh\" data-english=\"Chinese\">\n    <span class=\"description\">简体中文</span>\n    Chinese\n  </div>\n  <div class=\"item\" data-percent=\"54\" data-value=\"zh_TW\" data-english=\"Chinese (Taiwan)\">\n    <span class=\"description\">中文 (臺灣)</span>\n    Chinese (Taiwan)\n  </div>\n  <div class=\"item\" data-percent=\"79\" data-value=\"fa\" data-english=\"Persian\">\n    <span class=\"description\">پارسی</span>\n    Persian\n  </div>\n  <div class=\"item\" data-percent=\"41\" data-value=\"fr\" data-english=\"French\">\n    <span class=\"description\">Français</span>\n    French\n  </div>\n  <div class=\"item\" data-percent=\"37\" data-value=\"el\" data-english=\"Greek\">\n    <span class=\"description\">ελληνικά</span>\n    Greek\n  </div>\n  <div class=\"item\" data-percent=\"37\" data-value=\"ru\" data-english=\"Russian\">\n    <span class=\"description\">Русский</span>\n    Russian\n  </div>\n  <div class=\"item\" data-percent=\"36\" data-value=\"de\" data-english=\"German\">\n    <span class=\"description\">Deutsch</span>\n    German\n  </div>\n  <div class=\"item\" data-percent=\"23\" data-value=\"it\" data-english=\"Italian\">\n    <span class=\"description\">Italiano</span>\n    Italian\n  </div>\n  <div class=\"item\" data-percent=\"21\" data-value=\"nl\" data-english=\"Dutch\">\n    <span class=\"description\">Nederlands</span>\n    Dutch\n  </div>\n  <div class=\"item\" data-percent=\"19\" data-value=\"pt_BR\" data-english=\"Portuguese\">\n    <span class=\"description\">Português(BR)</span>\n    Portuguese\n  </div>\n  <div class=\"item\" data-percent=\"17\" data-value=\"id\" data-english=\"Indonesian\">\n    <span class=\"description\">Indonesian</span>\n    Indonesian\n  </div>\n  <div class=\"item\" data-percent=\"12\" data-value=\"lt\" data-english=\"Lithuanian\">\n    <span class=\"description\">Lietuvių</span>\n    Lithuanian\n  </div>\n  <div class=\"item\" data-percent=\"11\" data-value=\"tr\" data-english=\"Turkish\">\n    <span class=\"description\">Türkçe</span>\n    Turkish\n  </div>\n  <div class=\"item\" data-percent=\"10\" data-value=\"ko\" data-english=\"Korean\">\n    <span class=\"description\">한국어</span>\n    Korean\n  </div>\n  <div class=\"item\" data-percent=\"7\"  data-value=\"ar\" data-english=\"Arabic\">\n    <span class=\"description\">العربية</span>\n    Arabic\n  </div>\n  <div class=\"item\" data-percent=\"6\"  data-value=\"hu\" data-english=\"Hungarian\">\n    <span class=\"description\">Magyar</span>\n    Hungarian\n  </div>\n  <div class=\"item\" data-percent=\"6\"  data-value=\"vi\" data-english=\"Vietnamese\">\n    <span class=\"description\">tiếng Việt</span>\n    Vietnamese\n  </div>\n  <div class=\"item\" data-percent=\"5\"  data-value=\"sv\" data-english=\"Swedish\">\n    <span class=\"description\">svenska</span>\n    Swedish\n  </div>\n  <div class=\"item\" data-precent=\"4\"  data-value=\"pl\" data-english=\"Polish\">\n    <span class=\"description\">polski</span>\n    Polish\n  </div>\n  <div class=\"item\" data-percent=\"6\"  data-value=\"ja\" data-english=\"Japanese\">\n    <span class=\"description\">日本語</span>\n    Japanese\n  </div>\n  <div class=\"item\" data-percent=\"0\"  data-value=\"ro\" data-english=\"Romanian\">\n    <span class=\"description\">românește</span>\n    Romanian\n  </div>\n</div>\n"
  },
  {
    "path": "server/partials/less.html.eco",
    "content": "<script>\nwindow.less = {\n  async        : true,\n  environment  : 'production',\n  fileAsync    : false,\n  onReady      : false,\n  useFileCache : true\n};\n</script>\n<% if 'development' in @getEnvironments(): %>\n<script src=\"/javascript/library/less.js\"></script>\n<% else: %>\n<script src=\"/javascript/library/less.min.js\"></script>\n<% end %>\n"
  },
  {
    "path": "server/partials/library-javascript.html.eco",
    "content": "<% if 'development' in @getEnvironments(): %>\n  <script src=\"/javascript/library/jquery.js\"></script>\n  <script src=\"/javascript/library/detect.js\"></script>\n  <script src=\"/javascript/library/clipboard.js\"></script>\n  <script src=\"/javascript/library/cookie.js\"></script>\n  <script src=\"/javascript/library/easing.js\"></script>\n  <script src=\"/javascript/library/highlight.min.js\"></script>\n  <script src=\"/javascript/library/history.js\"></script>\n  <script src=\"/javascript/library/state.js\"></script>\n  <script src=\"/javascript/library/tablesort.js\"></script>\n  <script src=\"/javascript/library/underscore.js\"></script>\n<% else: %>\n  <script src=\"/javascript/library/detect.min.js\"></script>\n  <script src=\"/javascript/library/jquery.min.js\"></script>\n  <script src=\"/javascript/library/clipboard.min.js\"></script>\n  <script src=\"/javascript/library/cookie.min.js\"></script>\n  <script src=\"/javascript/library/easing.min.js\"></script>\n  <script src=\"/javascript/library/highlight.min.js\"></script>\n  <script src=\"/javascript/library/history.min.js\"></script>\n  <script src=\"/javascript/library/state.js\"></script>\n  <script src=\"/javascript/library/tablesort.min.js\"></script>\n  <script src=\"/javascript/library/underscore.min.js\"></script>\n<% end %>\n\n"
  },
  {
    "path": "server/partials/meta.html.eco",
    "content": "<!-- Standard Meta -->\n<meta charset=\"utf-8\" />\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1\">\n\n<link rel=\"image_src\" type=\"image/jpeg\" href=\"/images/logo.png\" />\n\n<!-- Site Properities -->\n<%- @getBlock('meta').toHTML() %>\n<title><%= @getPreparedTitle() %></title>\n\n<meta name=\"description\" content=\"<%= @getPreparedDescription() %>\" />\n<meta name=\"keywords\" content=\"<%= @getPreparedKeywords() %>\" />"
  },
  {
    "path": "server/partials/sidebar.html.eco",
    "content": "<div class=\"ui vertical inverted sidebar menu\" id=\"toc\">\n  <%- @partial('site-menu') %>\n</div>\n\n<div class=\"ui black big launch right attached fixed button\">\n  <i class=\"content icon\"></i>\n  <span class=\"text\">Menu</span>\n</div>"
  },
  {
    "path": "server/partials/site-ads.html.eco",
    "content": "<% if ('development' in @getEnvironments()): %>\n<% else: %>\n  <script src=\"//m.servedby-buysellads.com/monetization.js\" type=\"text/javascript\"></script>\n<% end %>\n"
  },
  {
    "path": "server/partials/site-menu.html.eco",
    "content": "<% introduction      = @getCollection(\"documents\").findAll({type: $in: ['Introduction']},[{order: 1}]).toJSON() %>\n<% usage             = @getCollection(\"documents\").findAll({type: $in: ['Usage']},[{order: 1}]).toJSON() %>\n<% uiGlobals         = @getCollection(\"documents\").findAll({type: $in: ['UI Global']},[{title: 1}]).toJSON() %>\n<% uiElements        = @getCollection(\"documents\").findAll({type: $in: ['UI Element']},[{title: 1}]).toJSON() %>\n<% uiCollections     = @getCollection(\"documents\").findAll({type: $in: ['UI Collection']},[{title: 1}]).toJSON() %>\n<% uiViews           = @getCollection(\"documents\").findAll({type: $in: ['UI View']},[{title: 1}]).toJSON() %>\n<% uiModules         = @getCollection(\"documents\").findAll({type: $in: ['UI Module']},[{title: 1}]).toJSON() %>\n<% uiBehavior        = @getCollection(\"documents\").findAll({type: $in: ['UI Behavior']},[{title: 1}]).toJSON() %>\n\n<div class=\"item\">\n  <a class=\"ui logo icon image\" href=\"/\">\n    <img src=\"/images/logo.png\">\n  </a>\n  <a href=\"/\"><b>UI Docs</b></a>\n</div>\n<a class=\"item\" href=\"/introduction/getting-started.html\">\n  <b>Getting Started</b>\n</a>\n<a class=\"item\" href=\"/introduction/new.html\">\n  <b>New in 2.4</b>\n</a>\n<div class=\"item\">\n  <div class=\"<%= if @document.elementType is 'introduction' then 'active ' %>header\">Introduction</div>\n  <div class=\"menu\">\n    <% for element in introduction: %>\n      <a class=\"<%= if element.id is @document.id then 'active ' %>item\" href=\"<%= element.url %>\">\n        <%= element.title %>\n      </a>\n    <% end %>\n  </div>\n</div>\n<div class=\"item\">\n  <div class=\"<%= if @document.elementType is 'usage' then 'active ' %>header\">Usage</div>\n  <div class=\"menu\">\n    <% for element in usage: %>\n      <a class=\"<%= if element.id is @document.id then 'active ' %>item\" href=\"<%= element.url %>\">\n        <%= element.title %>\n      </a>\n    <% end %>\n  </div>\n</div>\n<div class=\"item\">\n  <div class=\"<%= if @document.elementType is 'global' then 'active ' %> header\">Globals</div>\n  <div class=\"menu\">\n    <% for element in uiGlobals: %>\n      <a class=\"<%= if element.id is @document.id then 'active ' %>item\" href=\"<%= element.url %>\">\n        <%= element.title %>\n        <% if element.status?: %>\n        <span class=\"ui mini empty yellow circular ui label\"></span>\n        <% end %>\n      </a>\n    <% end %>\n  </div>\n</div>\n<div class=\"item\">\n  <div class=\"<%= if @document.elementType is 'element' then 'active ' %> header\">Elements</div>\n  <div class=\"menu\">\n    <% for element in uiElements: %>\n      <a class=\"<%= if element.id is @document.id then 'active ' %>item\" href=\"<%= element.url %>\">\n        <%= element.title %>\n        <% if element.status?: %>\n        <span class=\"ui mini empty yellow circular ui label\"></span>\n        <% end %>\n      </a>\n    <% end %>\n  </div>\n</div>\n<div class=\"item\">\n  <div class=\"<%= if @document.elementType is 'collection' then 'active ' %> header\">Collections</div>\n  <div class=\"menu\">\n    <% for element in uiCollections: %>\n      <a class=\"<%= if element.id is @document.id then 'active ' %>item\" href=\"<%= element.url %>\">\n        <%= element.title %>\n        <% if element.status?: %>\n        <span class=\"ui mini empty yellow circular ui label\"></span>\n        <% end %>\n      </a>\n    <% end %>\n  </div>\n</div>\n<div class=\"item\">\n  <div class=\"<%= if @document.elementType is 'view' then 'active ' %> header\">Views</div>\n  <div class=\"menu\">\n    <% for element in uiViews: %>\n      <a class=\"<%= if element.id is @document.id then 'active ' %>item\" href=\"<%= element.url %>\">\n        <%= element.title %>\n        <% if element.status?: %>\n        <span class=\"ui mini empty yellow circular ui label\"></span>\n        <% end %>\n      </a>\n    <% end %>\n  </div>\n</div>\n<div class=\"item\">\n  <div class=\"<%= if @document.elementType is 'module' then 'active ' %> header\">Modules</div>\n  <div class=\"menu\">\n    <% for element in uiModules: %>\n      <a class=\"<%= if element.id is @document.id then 'active ' %>item\" href=\"<%= element.url %>\">\n        <%= element.title %>\n        <% if element.status?: %>\n        <span class=\"ui mini empty yellow circular ui label\"></span>\n        <% end %>\n      </a>\n  <% end %>\n  </div>\n</div>\n<div class=\"item\">\n  <div class=\"<%= if @document.elementType is 'behavior' then 'active ' %> header\">Behaviors</div>\n  <div class=\"menu\">\n    <% for element in uiBehavior: %>\n      <a class=\"<%= if element.id is @document.id then 'active ' %>item\" href=\"<%= element.url %>\">\n        <%= element.title %>\n        <% if element.status?: %>\n        <span class=\"ui mini empty yellow circular ui label\"></span>\n        <% end %>\n      </a>\n    <% end %>\n  </div>\n</div>\n"
  },
  {
    "path": "server/partials/tab-header.html.eco",
    "content": "<div class=\"tab segment\">\n  <div class=\"container\">\n    <div class=\"introduction\">\n      <h1 class=\"ui dividing header\">\n        <%=@document.title %>\n        <% if @document.status?: %><span class=\"ui label\"><%= @document.status %></span><% end %>\n      </h1>\n      <p><%=@document.description %></p>\n      <% if @document.type is 'UI Element' or @document.type is 'UI View' or @document.type is 'UI Collection' or @document.type is 'UI Module': %>\n      <div class=\"ui basic labeled icon toggle overview button\">\n        Definition\n        <i class=\"book icon\"></i>\n      </div>\n      <% end %>\n    </div>\n    <div class=\"advertisement\">\n      <div id=\"carbonads-container\"><div class=\"carbonad\"><div id=\"azcarbon\"></div><script type=\"text/javascript\">var z = document.createElement(\"script\"); z.type = \"text/javascript\"; z.async = true; z.src = \"//engine.carbonads.com/z/51619/azcarbon_2_1_0_HORIZ\"; var s = document.getElementsByTagName(\"script\")[0]; s.parentNode.insertBefore(z, s);</script></div></div>\n    </div>\n  </div>\n</div>\n"
  },
  {
    "path": "server/partials/tracking.html.eco",
    "content": "<% if ('development' in @getEnvironments()): %>\n<% else: %>\n<script>\n  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),\n  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n\n  ga('create', 'UA-44039803-2', 'auto');\n  ga('send', 'pageview');\n</script>\n<% end %>"
  },
  {
    "path": "server/partials/transifex.html.eco",
    "content": "<% if ('development' in @getEnvironments()) or (@document.title? and @document.title is 'Page Not Found'): %>\n<% else: %>\n<script type=\"text/javascript\">\n  window.liveSettings = {\n    api_key    : '9ede3015b9f84c1aabc81ab839c55d74',\n    parse_attr : [\n      'data-title',\n      'data-content'\n    ],\n    detectlang   : false,\n    autocollect  : true,\n    ignore_tags  : ['i', 'code', 'pre'],\n    parse_attr   : ['data-title', 'data-content', 'data-text'],\n    ignore_class : ['code', 'anchor']\n  };\n</script>\n<script type=\"text/javascript\" src=\"//cdn.transifex.com/live.js\"></script>\n<% end %>\n"
  },
  {
    "path": "server/partials/ui-css.html.eco",
    "content": "<% if 'development' in @getEnvironments(): %>\n\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/icon.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/reset.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/site.css\">\n\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/button.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/container.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/divider.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/flag.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/header.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/image.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/input.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/label.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/list.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/loader.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/placeholder.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/rail.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/reveal.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/segment.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/step.css\">\n\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/breadcrumb.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/form.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/grid.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/menu.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/message.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/table.css\">\n\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/ad.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/card.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/comment.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/feed.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/item.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/statistic.css\">\n\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/accordion.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/checkbox.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/dimmer.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/dropdown.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/embed.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/modal.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/nag.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/popup.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/progress.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/rating.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/search.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/shape.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/sidebar.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/sticky.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/tab.css\">\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/components/transition.css\">\n<% else: %>\n<link rel=\"stylesheet\" type=\"text/css\" class=\"ui\" href=\"/dist/semantic.min.css\">\n<% end %>\n"
  },
  {
    "path": "server/partials/ui-javascript.html.eco",
    "content": "<% if 'development' in @getEnvironments(): %>\n\n<script src=\"/dist/components/accordion.js\"></script>\n<script src=\"/dist/components/api.js\"></script>\n<script src=\"/dist/components/checkbox.js\"></script>\n<script src=\"/dist/components/dimmer.js\"></script>\n<script src=\"/dist/components/dropdown.js\"></script>\n<script src=\"/dist/components/embed.js\"></script>\n<script src=\"/dist/components/form.js\"></script>\n<script src=\"/dist/components/modal.js\"></script>\n<script src=\"/dist/components/nag.js\"></script>\n<script src=\"/dist/components/popup.js\"></script>\n<script src=\"/dist/components/progress.js\"></script>\n<script src=\"/dist/components/rating.js\"></script>\n<script src=\"/dist/components/search.js\"></script>\n<script src=\"/dist/components/shape.js\"></script>\n<script src=\"/dist/components/sidebar.js\"></script>\n<script src=\"/dist/components/site.js\"></script>\n<script src=\"/dist/components/sticky.js\"></script>\n<script src=\"/dist/components/tab.js\"></script>\n<script src=\"/dist/components/transition.js\"></script>\n<script src=\"/dist/components/visibility.js\"></script>\n\n<% else: %>\n\n<script src=\"/dist/semantic.min.js\"></script>\n\n<% end %>\n"
  },
  {
    "path": "server/raw/.htaccess",
    "content": "# Apache configuration file\n# httpd.apache.org/docs/2.2/mod/quickreference.html\n\n# Note .htaccess files are an overhead, this logic should be in your Apache\n# config if possible: httpd.apache.org/docs/2.2/howto/htaccess.html\n\n# Techniques in here adapted from all over, including:\n#   Kroc Camen: camendesign.com/.htaccess\n#   perishablepress.com/press/2006/01/10/stupid-htaccess-tricks/\n#   Sample .htaccess file of CMS MODx: modxcms.com\n\n\n# ----------------------------------------------------------------------\n# Better website experience for IE users\n# ----------------------------------------------------------------------\n\n# Force the latest IE version, in various cases when it may fall back to IE7 mode\n#  github.com/rails/rails/commit/123eb25#commitcomment-118920\n# Use ChromeFrame if it's installed for a better experience for the poor IE folk\n\n<IfModule mod_headers.c>\n  Header set X-UA-Compatible \"IE=Edge,chrome=1\"\n  # mod_headers can't match by content-type, but we don't want to send this header on *everything*...\n  <FilesMatch \"\\.(js|css|gif|png|jpe?g|pdf|xml|oga|ogg|m4a|ogv|mp4|m4v|webm|svg|svgz|eot|ttf|otf|woff|ico|webp|appcache|manifest|htc|crx|oex|xpi|safariextz|vcf)$\" >\n    Header unset X-UA-Compatible\n  </FilesMatch>\n</IfModule>\n\n\n# ----------------------------------------------------------------------\n# Cross-domain AJAX requests\n# ----------------------------------------------------------------------\n\n# Serve cross-domain Ajax requests, disabled by default.\n# enable-cors.org\n# code.google.com/p/html5security/wiki/CrossOriginRequestSecurity\n\n#  <IfModule mod_headers.c>\n#    Header set Access-Control-Allow-Origin \"*\"\n#  </IfModule>\n\n\n# ----------------------------------------------------------------------\n# CORS-enabled images (@crossorigin)\n# ----------------------------------------------------------------------\n\n# Send CORS headers if browsers request them; enabled by default for images.\n# developer.mozilla.org/en/CORS_Enabled_Image\n# blog.chromium.org/2011/07/using-cross-domain-images-in-webgl-and.html\n# hacks.mozilla.org/2011/11/using-cors-to-load-webgl-textures-from-cross-domain-images/\n# wiki.mozilla.org/Security/Reviews/crossoriginAttribute\n\n<IfModule mod_setenvif.c>\n  <IfModule mod_headers.c>\n    # mod_headers, y u no match by Content-Type?!\n    <FilesMatch \"\\.(gif|png|jpe?g|svg|svgz|ico|webp)$\">\n      SetEnvIf Origin \":\" IS_CORS\n      Header set Access-Control-Allow-Origin \"*\" env=IS_CORS\n    </FilesMatch>\n  </IfModule>\n</IfModule>\n\n\n# ----------------------------------------------------------------------\n# Webfont access\n# ----------------------------------------------------------------------\n\n# Allow access from all domains for webfonts.\n# Alternatively you could only whitelist your\n# subdomains like \"subdomain.example.com\".\n\n<IfModule mod_headers.c>\n  <FilesMatch \"\\.(ttf|ttc|otf|eot|woff|font.css)$\">\n    Header set Access-Control-Allow-Origin \"*\"\n  </FilesMatch>\n</IfModule>\n\n\n# ----------------------------------------------------------------------\n# Proper MIME type for all files\n# ----------------------------------------------------------------------\n\n# JavaScript\n#   Normalize to standard type (it's sniffed in IE anyways)\n#   tools.ietf.org/html/rfc4329#section-7.2\nAddType application/javascript         js jsonp\nAddType application/json               json\n\n# Audio\nAddType audio/ogg                      oga ogg\nAddType audio/mp4                      m4a f4a f4b\n\n# Video\nAddType video/ogg                      ogv\nAddType video/mp4                      mp4 m4v f4v f4p\nAddType video/webm                     webm\nAddType video/x-flv                    flv\n\n# SVG\n#   Required for svg webfonts on iPad\n#   twitter.com/FontSquirrel/status/14855840545\nAddType     image/svg+xml              svg svgz\nAddEncoding gzip                       svgz\n\n# Webfonts\nAddType application/vnd.ms-fontobject  eot\nAddType application/x-font-ttf         ttf ttc\nAddType font/opentype                  otf\nAddType application/x-font-woff        woff\n\n# Assorted types\nAddType image/x-icon                        ico\nAddType image/webp                          webp\nAddType text/cache-manifest                 appcache manifest\nAddType text/x-component                    htc\nAddType application/xml                     rss atom xml rdf\nAddType application/x-chrome-extension      crx\nAddType application/x-opera-extension       oex\nAddType application/x-xpinstall             xpi\nAddType application/octet-stream            safariextz\nAddType application/x-web-app-manifest+json webapp\nAddType text/x-vcard                        vcf\nAddType application/x-shockwave-flash       swf\nAddType text/vtt                            vtt\n\n\n# ----------------------------------------------------------------------\n# Allow concatenation from within specific js and css files\n# ----------------------------------------------------------------------\n\n# e.g. Inside of script.combined.js you could have\n#   <!--#include file=\"libs/jquery-1.5.0.min.js\" -->\n#   <!--#include file=\"plugins/jquery.idletimer.js\" -->\n# and they would be included into this single file.\n\n# This is not in use in the boilerplate as it stands. You may\n# choose to use this technique if you do not have a build process.\n\n#<FilesMatch \"\\.combined\\.js$\">\n#  Options +Includes\n#  AddOutputFilterByType INCLUDES application/javascript application/json\n#  SetOutputFilter INCLUDES\n#</FilesMatch>\n\n#<FilesMatch \"\\.combined\\.css$\">\n#  Options +Includes\n#  AddOutputFilterByType INCLUDES text/css\n#  SetOutputFilter INCLUDES\n#</FilesMatch>\n\n\n# ----------------------------------------------------------------------\n# Gzip compression\n# ----------------------------------------------------------------------\n\n<IfModule mod_deflate.c>\n\n  # Force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/\n  <IfModule mod_setenvif.c>\n    <IfModule mod_headers.c>\n      SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\\s*,?\\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding\n      RequestHeader append Accept-Encoding \"gzip,deflate\" env=HAVE_Accept-Encoding\n    </IfModule>\n  </IfModule>\n\n  # Compress all output labeled with one of the following MIME-types\n  <IfModule mod_filter.c>\n    AddOutputFilterByType DEFLATE application/atom+xml \\\n                                  application/javascript \\\n                                  application/json \\\n                                  application/rss+xml \\\n                                  application/vnd.ms-fontobject \\\n                                  application/x-font-ttf \\\n                                  application/xhtml+xml \\\n                                  application/xml \\\n                                  font/opentype \\\n                                  image/svg+xml \\\n                                  image/x-icon \\\n                                  text/css \\\n                                  text/html \\\n                                  text/plain \\\n                                  text/x-component \\\n                                  text/xml\n  </IfModule>\n\n</IfModule>\n\n\n# ----------------------------------------------------------------------\n# Expires headers (for better cache control)\n# ----------------------------------------------------------------------\n\n# These are pretty far-future expires headers.\n# They assume you control versioning with filename-based cache busting\n# Additionally, consider that outdated proxies may miscache\n#   www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/\n\n# If you don't use filenames to version, lower the CSS and JS to something like\n# \"access plus 1 week\".\n\n<IfModule mod_expires.c>\n  ExpiresActive on\n\n# Perhaps better to whitelist expires rules? Perhaps.\n  ExpiresDefault                          \"access plus 1 month\"\n\n# cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5)\n  ExpiresByType text/cache-manifest       \"access plus 0 seconds\"\n\n# Your document html\n  ExpiresByType text/html                 \"access plus 0 seconds\"\n\n# Data\n  ExpiresByType text/xml                  \"access plus 0 seconds\"\n  ExpiresByType application/xml           \"access plus 0 seconds\"\n  ExpiresByType application/json          \"access plus 0 seconds\"\n\n# Feed\n  ExpiresByType application/rss+xml       \"access plus 1 hour\"\n  ExpiresByType application/atom+xml      \"access plus 1 hour\"\n\n# Favicon (cannot be renamed)\n  ExpiresByType image/x-icon              \"access plus 1 week\"\n\n# Media: images, video, audio\n  ExpiresByType image/gif                 \"access plus 1 month\"\n  ExpiresByType image/png                 \"access plus 1 month\"\n  ExpiresByType image/jpeg                \"access plus 1 month\"\n  ExpiresByType video/ogg                 \"access plus 1 month\"\n  ExpiresByType audio/ogg                 \"access plus 1 month\"\n  ExpiresByType video/mp4                 \"access plus 1 month\"\n  ExpiresByType video/webm                \"access plus 1 month\"\n\n# HTC files  (css3pie)\n  ExpiresByType text/x-component          \"access plus 1 month\"\n\n# Webfonts\n  ExpiresByType application/x-font-ttf    \"access plus 1 month\"\n  ExpiresByType font/opentype             \"access plus 1 month\"\n  ExpiresByType application/x-font-woff   \"access plus 1 month\"\n  ExpiresByType image/svg+xml             \"access plus 1 month\"\n  ExpiresByType application/vnd.ms-fontobject \"access plus 1 month\"\n\n# CSS and JavaScript\n  ExpiresByType text/css                  \"access plus 1 year\"\n  ExpiresByType application/javascript    \"access plus 1 year\"\n\n</IfModule>\n\n\n# ----------------------------------------------------------------------\n# Prevent mobile network providers from modifying your site\n# ----------------------------------------------------------------------\n\n# The following header prevents modification of your code over 3G on some\n# European providers.\n# This is the official 'bypass' suggested by O2 in the UK.\n\n# <IfModule mod_headers.c>\n# Header set Cache-Control \"no-transform\"\n# </IfModule>\n\n\n# ----------------------------------------------------------------------\n# ETag removal\n# ----------------------------------------------------------------------\n\n# FileETag None is not enough for every server.\n<IfModule mod_headers.c>\n  Header unset ETag\n</IfModule>\n\n# Since we're sending far-future expires, we don't need ETags for\n# static content.\n#   developer.yahoo.com/performance/rules.html#etags\nFileETag None\n\n\n# ----------------------------------------------------------------------\n# Stop screen flicker in IE on CSS rollovers\n# ----------------------------------------------------------------------\n\n# The following directives stop screen flicker in IE on CSS rollovers - in\n# combination with the \"ExpiresByType\" rules for images (see above).\n\n# BrowserMatch \"MSIE\" brokenvary=1\n# BrowserMatch \"Mozilla/4.[0-9]{2}\" brokenvary=1\n# BrowserMatch \"Opera\" !brokenvary\n# SetEnvIf brokenvary 1 force-no-vary\n\n\n# ----------------------------------------------------------------------\n# Set Keep-Alive Header\n# ----------------------------------------------------------------------\n\n# Keep-Alive allows the server to send multiple requests through one\n# TCP-connection. Be aware of possible disadvantages of this setting. Turn on\n# if you serve a lot of static content.\n\n# <IfModule mod_headers.c>\n#   Header set Connection Keep-Alive\n# </IfModule>\n\n\n# ----------------------------------------------------------------------\n# Cookie setting from iframes\n# ----------------------------------------------------------------------\n\n# Allow cookies to be set from iframes (for IE only)\n# If needed, specify a path or regex in the Location directive.\n\n# <IfModule mod_headers.c>\n#   Header set P3P \"policyref=\\\"/w3c/p3p.xml\\\", CP=\\\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\\\"\"\n# </IfModule>\n\n\n# ----------------------------------------------------------------------\n# Start rewrite engine\n# ----------------------------------------------------------------------\n\n# Turning on the rewrite engine is necessary for the following rules and\n# features. FollowSymLinks must be enabled for this to work.\n\n# Some cloud hosting services require RewriteBase to be set: goo.gl/HOcPN\n# If using the h5bp in a subdirectory, use `RewriteBase /foo` instead where\n# 'foo' is your directory.\n\n# If your web host doesn't allow the FollowSymlinks option, you may need to\n# comment it out and use `Options +SymLinksOfOwnerMatch`, but be aware of the\n# performance impact: http://goo.gl/Mluzd\n\n<IfModule mod_rewrite.c>\n  Options +FollowSymlinks\n# Options +SymLinksIfOwnerMatch\n  RewriteEngine On\n# RewriteBase /\n</IfModule>\n\n\n# ----------------------------------------------------------------------\n# Suppress or force the \"www.\" at the beginning of URLs\n# ----------------------------------------------------------------------\n\n# The same content should never be available under two different URLs -\n# especially not with and without \"www.\" at the beginning, since this can cause\n# SEO problems (duplicate content). That's why you should choose one of the\n# alternatives and redirect the other one.\n\n# By default option 1 (no \"www.\") is activated.\n# no-www.org/faq.php?q=class_b\n\n# If you'd prefer to use option 2, just comment out all option 1 lines\n# and uncomment option 2.\n\n# IMPORTANT: NEVER USE BOTH RULES AT THE SAME TIME!\n\n# ----------------------------------------------------------------------\n\n# Option 1:\n# Rewrite \"www.example.com -> example.com\".\n\n<IfModule mod_rewrite.c>\n  RewriteCond %{HTTPS} !=on\n  RewriteCond %{HTTP_HOST} ^www\\.(.+)$ [NC]\n  RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]\n</IfModule>\n\n# ----------------------------------------------------------------------\n\n# Option 2:\n# Rewrite \"example.com -> www.example.com\".\n# Be aware that the following rule might not be a good idea if you use \"real\"\n# subdomains for certain parts of your website.\n\n# <IfModule mod_rewrite.c>\n#   RewriteCond %{HTTPS} !=on\n#   RewriteCond %{HTTP_HOST} !^www\\..+$ [NC]\n#   RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]\n# </IfModule>\n\n\n# ----------------------------------------------------------------------\n# Built-in filename-based cache busting\n# ----------------------------------------------------------------------\n\n# If you're not using the build script to manage your filename version revving,\n# you might want to consider enabling this, which will route requests for\n# /css/style.20110203.css to /css/style.css\n\n# To understand why this is important and a better idea than all.css?v1231,\n# read: github.com/h5bp/html5-boilerplate/wiki/cachebusting\n\n# <IfModule mod_rewrite.c>\n#   RewriteCond %{REQUEST_FILENAME} !-f\n#   RewriteCond %{REQUEST_FILENAME} !-d\n#   RewriteRule ^(.+)\\.(\\d+)\\.(js|css|png|jpg|gif)$ $1.$3 [L]\n# </IfModule>\n\n\n# ----------------------------------------------------------------------\n# Prevent SSL cert warnings\n# ----------------------------------------------------------------------\n\n# Rewrite secure requests properly to prevent SSL cert warnings, e.g. prevent\n# https://www.example.com when your cert only allows https://secure.example.com\n\n# <IfModule mod_rewrite.c>\n#   RewriteCond %{SERVER_PORT} !^443\n#   RewriteRule ^ https://example-domain-please-change-me.com%{REQUEST_URI} [R=301,L]\n# </IfModule>\n\n\n# ----------------------------------------------------------------------\n# Prevent 404 errors for non-existing redirected folders\n# ----------------------------------------------------------------------\n\n# without -MultiViews, Apache will give a 404 for a rewrite if a folder of the\n# same name does not exist.\n# webmasterworld.com/apache/3808792.htm\n\nOptions -MultiViews\n\n\n# ----------------------------------------------------------------------\n# Custom 404 page\n# ----------------------------------------------------------------------\n\n# You can add custom pages to handle 500 or 403 pretty easily, if you like.\n# If you are hosting your site in subdirectory, adjust this accordingly\n#    e.g. ErrorDocument 404 /subdir/404.html\nErrorDocument 404 /404.html\n\n\n# ----------------------------------------------------------------------\n# UTF-8 encoding\n# ----------------------------------------------------------------------\n\n# Use UTF-8 encoding for anything served text/plain or text/html\nAddDefaultCharset utf-8\n\n# Force UTF-8 for a number of file formats\nAddCharset utf-8 .atom .css .js .json .rss .vtt .xml\n\n\n# ----------------------------------------------------------------------\n# A little more security\n# ----------------------------------------------------------------------\n\n# To avoid displaying the exact version number of Apache being used, add the\n# following to httpd.conf (it will not work in .htaccess):\n# ServerTokens Prod\n\n# \"-Indexes\" will have Apache block users from browsing folders without a\n# default document Usually you should leave this activated, because you\n# shouldn't allow everybody to surf through every folder on your server (which\n# includes rather private places like CMS system folders).\n<IfModule mod_autoindex.c>\n  Options -Indexes\n</IfModule>\n\n# Block access to \"hidden\" directories or files whose names begin with a\n# period. This includes directories used by version control systems such as\n# Subversion or Git.\n<IfModule mod_rewrite.c>\n  RewriteCond %{SCRIPT_FILENAME} -d [OR]\n  RewriteCond %{SCRIPT_FILENAME} -f\n  RewriteRule \"(^|/)\\.\" - [F]\n</IfModule>\n\n# Block access to backup and source files. These files may be left by some\n# text/html editors and pose a great security danger, when anyone can access\n# them.\n<FilesMatch \"(\\.(bak|config|sql|fla|psd|ini|log|sh|inc|swp|dist)|~)$\">\n  Order allow,deny\n  Deny from all\n  Satisfy All\n</FilesMatch>\n\n# If your server is not already configured as such, the following directive\n# should be uncommented in order to set PHP's register_globals option to OFF.\n# This closes a major security hole that is abused by most XSS (cross-site\n# scripting) attacks. For more information: http://php.net/register_globals\n#\n# IF REGISTER_GLOBALS DIRECTIVE CAUSES 500 INTERNAL SERVER ERRORS:\n#\n# Your server does not allow PHP directives to be set via .htaccess. In that\n# case you must make this change in your php.ini file instead. If you are\n# using a commercial web host, contact the administrators for assistance in\n# doing this. Not all servers allow local php.ini files, and they should\n# include all PHP configurations (not just this one), or you will effectively\n# reset everything to PHP defaults. Consult www.php.net for more detailed\n# information about setting PHP directives.\n\n# php_flag register_globals Off\n\n# Rename session cookie to something else, than PHPSESSID\n# php_value session.name sid\n\n# Disable magic quotes (This feature has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 5.4.0.)\n# php_flag magic_quotes_gpc Off\n\n# Do not show you are using PHP\n# Note: Move this line to php.ini since it won't work in .htaccess\n# php_flag expose_php Off\n\n# Level of log detail - log all errors\n# php_value error_reporting -1\n\n# Write errors to log file\n# php_flag log_errors On\n\n# Do not display errors in browser (production - Off, development - On)\n# php_flag display_errors Off\n\n# Do not display startup errors (production - Off, development - On)\n# php_flag display_startup_errors Off\n\n# Format errors in plain text\n# Note: Leave this setting 'On' for xdebug's var_dump() output\n# php_flag html_errors Off\n\n# Show multiple occurrence of error\n# php_flag ignore_repeated_errors Off\n\n# Show same errors from different sources\n# php_flag ignore_repeated_source Off\n\n# Size limit for error messages\n# php_value log_errors_max_len 1024\n\n# Don't precede error with string (doesn't accept empty string, use whitespace if you need)\n# php_value error_prepend_string \" \"\n\n# Don't prepend to error (doesn't accept empty string, use whitespace if you need)\n# php_value error_append_string \" \"\n\n# Increase cookie security\n<IfModule php5_module>\n  php_value session.cookie_httponly true\n</IfModule>\n"
  },
  {
    "path": "server/raw/CNAME",
    "content": "semantic-ui.com"
  },
  {
    "path": "server/raw/api.json",
    "content": "{\n  \"success\": true\n}"
  },
  {
    "path": "server/raw/crossdomain.xml",
    "content": "<?xml version=\"1.0\"?>\n<!DOCTYPE cross-domain-policy SYSTEM \"http://www.adobe.com/xml/dtds/cross-domain-policy.dtd\">\n<cross-domain-policy>\n    <!-- Read this: www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html -->\n\n    <!-- Most restrictive policy: -->\n    <site-control permitted-cross-domain-policies=\"none\"/>\n\n    <!-- Least restrictive policy: -->\n    <!--\n    <site-control permitted-cross-domain-policies=\"all\"/>\n    <allow-access-from domain=\"*\" to-ports=\"*\" secure=\"false\"/>\n    <allow-http-request-headers-from domain=\"*\" headers=\"*\" secure=\"false\"/>\n    -->\n</cross-domain-policy>\n"
  },
  {
    "path": "server/raw/draft/carousel.js",
    "content": "/*  ******************************\n  Semantic Module: Carousel\n  Author: Jack Lukic\n  Notes: First Commit May 28, 2013\n\n  A carousel alternates between\n  several pieces of content in sequence.\n\n******************************  */\n\n;(function ( $, window, document, undefined ) {\n\n$.fn.carousel = function(parameters) {\n  var\n    $allModules     = $(this),\n\n    settings        = $.extend(true, {}, $.fn.carousel.settings, parameters),\n\n    eventNamespace  = '.' + settings.namespace,\n    moduleNamespace = 'module-' + settings.namespace,\n    moduleSelector  = $allModules.selector || '',\n\n    time            = new Date().getTime(),\n    performance     = [],\n\n    query           = arguments[0],\n    methodInvoked   = (typeof query == 'string'),\n    queryArguments  = [].slice.call(arguments, 1),\n    returnedValue\n  ;\n\n  $allModules\n    .each(function() {\n      var\n        $module     = $(this),\n        $arrows     = $(settings.selector.arrows),\n        $leftArrow  = $(settings.selector.leftArrow),\n        $rightArrow = $(settings.selector.rightArrow),\n        $content    = $(settings.selector.content),\n        $navigation = $(settings.selector.navigation),\n        $navItem    = $(settings.selector.navItem),\n\n        selector    = $module.selector || '',\n        element     = this,\n        instance    = $module.data('module-' + settings.namespace),\n\n        className   = settings.className,\n        namespace   = settings.namespace,\n        errors      = settings.errors,\n        module\n      ;\n\n      module      = {\n\n        initialize: function() {\n          module.openingAnimation();\n          module.marquee.autoAdvance();\n          $leftArrow\n            .on('click', module.marquee.left)\n          ;\n          $rightArrow\n            .on('click', module.marquee.right)\n          ;\n          $navItem\n            .on('click', module.marquee.change)\n          ;\n        },\n\n        destroy: function() {\n          module.verbose('Destroying previous module for', $module);\n          $module\n            .off(eventNamespace)\n          ;\n        },\n\n        left: function() {\n          var\n            $activeContent = $content.filter('.' + className.active),\n            currentIndex   = $content.index($activeContent),\n            imageCount     = $content.size(),\n            newIndex       = (currentIndex - 1 != -1)\n              ? (currentIndex - 1)\n              : (imageCount - 1)\n          ;\n          $navItem\n            .eq(newIndex)\n              .trigger('click')\n          ;\n        },\n\n        right: function() {\n          var\n            $activeContent = $content.filter('.' + className.active),\n            currentIndex   = $content.index($activeContent),\n            imageCount     = $content.size(),\n            newIndex       = (currentIndex + 1 != imageCount)\n              ? (currentIndex + 1)\n              : 0\n          ;\n          $navItem\n            .eq(newIndex)\n              .trigger('click')\n          ;\n        },\n\n        change: function() {\n          var\n            $selected      = $(this),\n            selectedIndex  = $navItem.index($selected),\n            $selectedImage = $content.eq(selectedIndex)\n          ;\n          module.marquee.autoAdvance();\n          $selected\n            .addClass('active')\n            .siblings()\n              .removeClass('active')\n          ;\n          $selectedImage\n            .addClass('active animated fadeIn')\n            .siblings('.' + className.active)\n              .removeClass('animated fadeIn scaleIn')\n              .animate({\n                opacity: 0\n              }, 500, function(){\n                $(this)\n                  .removeClass('active')\n                  .removeAttr('style')\n                ;\n              })\n          ;\n        },\n\n        autoAdvance: function() {\n          clearInterval(module.timer);\n          module.timer = setInterval(module.marquee.right, settings.duration);\n        },\n\n        setting: function(name, value) {\n          if(value !== undefined) {\n            if( $.isPlainObject(name) ) {\n              module.verbose('Modifying settings object', name, value);\n              $.extend(true, settings, name);\n            }\n            else {\n              module.verbose('Modifying setting', name, value);\n              settings[name] = value;\n            }\n          }\n          else {\n            return settings[name];\n          }\n        },\n        internal: function(name, value) {\n          if(value !== undefined) {\n            if( $.isPlainObject(name) ) {\n              module.verbose('Modifying internal property', name, value);\n              $.extend(true, module, name);\n            }\n            else {\n              module.verbose('Changing internal method to', value);\n              module[name] = value;\n            }\n          }\n          else {\n            return module[name];\n          }\n        },\n        debug: function() {\n          if(settings.debug) {\n            if(settings.performance) {\n              module.performance.log(arguments);\n            }\n            else {\n              module.debug = Function.prototype.bind.call(console.info, console, settings.moduleName + ':');\n              module.debug.apply(console, arguments);\n            }\n          }\n        },\n        verbose: function() {\n          if(settings.verbose && settings.debug) {\n            if(settings.performance) {\n              module.performance.log(arguments);\n            }\n            else {\n              module.verbose = Function.prototype.bind.call(console.info, console, settings.moduleName + ':');\n              module.verbose.apply(console, arguments);\n            }\n          }\n        },\n        error: function() {\n          module.error = Function.prototype.bind.call(console.error, console, settings.moduleName + ':');\n          module.error.apply(console, arguments);\n        },\n        performance: {\n          log: function(message) {\n            var\n              currentTime,\n              executionTime,\n              previousTime\n            ;\n            if(settings.performance) {\n              currentTime   = new Date().getTime();\n              previousTime  = time || currentTime;\n              executionTime = currentTime - previousTime;\n              time          = currentTime;\n              performance.push({\n                'Element'        : element,\n                'Name'           : message[0],\n                'Arguments'      : message[1] || 'None',\n                'Execution Time' : executionTime\n              });\n              clearTimeout(module.performance.timer);\n              module.performance.timer = setTimeout(module.performance.display, 100);\n            }\n          },\n          display: function() {\n            var\n              title              = settings.moduleName,\n              caption            = settings.moduleName + ': ' + moduleSelector + '(' + $allModules.size() + ' elements)',\n              totalExecutionTime = 0\n            ;\n            if(moduleSelector) {\n              title += ' Performance (' + moduleSelector + ')';\n            }\n            if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {\n              console.groupCollapsed(title);\n              if(console.table) {\n                $.each(performance, function(index, data) {\n                  totalExecutionTime += data['Execution Time'];\n                });\n                console.table(performance);\n              }\n              else {\n                $.each(performance, function(index, data) {\n                  totalExecutionTime += data['Execution Time'];\n                  console.log(data['Name'] + ': ' + data['Execution Time']+'ms');\n                });\n              }\n              console.log('Total Execution Time:', totalExecutionTime +'ms');\n              console.groupEnd();\n              performance = [];\n              time        = false;\n            }\n          }\n        },\n        invoke: function(query, passedArguments, context) {\n          var\n            maxDepth,\n            found\n          ;\n          passedArguments = passedArguments || queryArguments;\n          context         = element         || context;\n          if(typeof query == 'string' && instance !== undefined) {\n            query    = query.split(/[\\. ]/);\n            maxDepth = query.length - 1;\n            $.each(query, function(depth, value) {\n              if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) {\n                instance = instance[value];\n                return true;\n              }\n              else if( instance[value] !== undefined ) {\n                found = instance[value];\n                return true;\n              }\n              module.error(errors.method);\n              return false;\n            });\n          }\n          if ( $.isFunction( found ) ) {\n            return found.apply(context, passedArguments);\n          }\n          return found || false;\n        }\n      };\n\n      if(methodInvoked) {\n        if(instance === undefined) {\n          module.initialize();\n        }\n        module.invoke(query);\n      }\n      else {\n        if(instance !== undefined) {\n          module.destroy();\n        }\n        module.initialize();\n      }\n    })\n  ;\n  return (returnedValue !== undefined)\n    ? returnedValue\n    : this\n  ;\n};\n\n$.fn.carousel.settings = {\n\n  name  : 'Carousel',\n  namespace   : 'carousel',\n\n  verbose     : true,\n  debug       : true,\n  performance : true,\n\n  // delegated event context\n  duration: 5000,\n\n  errors     : {\n    method   : 'The method you called is not defined.'\n  },\n\n  selector : {\n    arrows     : '.arrow',\n    leftArrow  : '.left.arrow',\n    rightArrow : '.right.arrow',\n    content    : '.content',\n    navigation : '.navigation',\n    navItem    : '.navigation .icon'\n  },\n\n  className : {\n    active : 'active'\n  }\n\n};\n\n})( jQuery, window , document );"
  },
  {
    "path": "server/raw/draft/carousel.less",
    "content": "/*\n * # Semantic Carousel\n * http://github.com/quirkyinc/semantic\n *\n *\n * Copyright 2013 Contributors\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n * Released: June 03, 2013\n */\n\n\n/*******************************\n            Carousel\n*******************************/\n\n.ui.carousel {\n  position: relative;\n  overflow: hidden;\n}\n.ui.carousel .arrow {\n  position: absolute;\n  font-size: 1.5em;\n  top: 50%;\n  left: 0%;\n  margin-top: -0.5em;\n  z-index: 10;\n}\n.ui.carousel .right.arrow {\n  left: auto;\n  right: 0%;\n}\n\n.ui.carousel .slides {\n  position: relative;\n  width: 200%;\n  width: 9999px;\n  overflow: hidden;\n  font-size: 0em;\n}\n.ui.carousel .slides .slide {\n  display: inline-block;\n  height: 100%;\n  font-size: 1rem;\n}\n.ui.carousel .slides .slide > img {\n  display: block;\n  width: 100%;\n}\n\n\n/*--------------------\n     Loading State\n---------------------*/\n\n/* On Form */\n.ui.carousel.loading {\n  position: relative;\n}\n.ui.carousel.loading:after {\n  position: absolute;\n  top: 0%;\n  left: 0%;\n  content: '';\n\n  width: 100%;\n  height: 100%;\n  background: rgba(255, 255, 255, 0.8) url(../images/loader-large.gif) no-repeat 50% 50%;\n  visibility: visible;\n}"
  },
  {
    "path": "server/raw/draft/extra.transitions.less",
    "content": "/*******************************\n  Semantic Module: Transition\n  Author: Jack Lukic\n  Notes: First Commit March 25, 2013\n\n  CSS animation definitions for\n  transition module\n\n*******************************/\n\n/*\n  Some transitions adapted from Animate CSS\n  https://github.com/daneden/animate.css\n*/\n\n\n.ui.transition {\n  -webkit-backface-visibility: hidden;\n  -moz-backface-visibility: hidden;\n  -ms-backface-visibility: hidden;\n  -o-backface-visibility: hidden;\n  backface-visibility: hidden;\n\n  -webkit-animation-iteration-count: 1;\n  -moz-animation-iteration-count: 1;\n  -ms-animation-iteration-count: 1;\n  -o-animation-iteration-count: 1;\n  animation-iteration-count: 1;\n\n  -webkit-animation-duration: 1s;\n  -moz-animation-duration: 1s;\n  -ms-animation-duration: 1s;\n  -o-animation-duration: 1s;\n  animation-duration: 1s;\n\n  animation-timing-function: ease;\n  -webkit-animation-timing-function: ease;\n\n  -webkit-animation-fill-mode: both;\n  -moz-animation-fill-mode: both;\n  -ms-animation-fill-mode: both;\n  -o-animation-fill-mode: both;\n  animation-fill-mode: both;\n\n  -webkit-transform: translateZ(0);\n  -moz-transform: translateZ(0);\n  -ms-transform: translateZ(0);\n  -o-transform: translateZ(0);\n  transform: translateZ(0);\n}\n\n/*******************************\n       States\n*******************************/\n\n/* Loading */\n.ui.loading.transition {\n  position: absolute;\n  top: -999999px;\n  left: -99999px;\n}\n\n/* Hidden */\n.ui.hidden.transition {\n  display: none;\n}\n\n/* Visible */\n.ui.visible.transition {\n  display: block;\n  visibility: visible;\n}\n\n\n/* Direction */\n.ui.out.transition {\n  -webkit-animation-direction: reverse;\n  -moz-animation-direction: reverse;\n  -o-animation-direction: reverse;\n  animation-direction: reverse;\n}\n\n/* Disabled */\n.ui.disabled.transition {\n  -webkit-animation-play-state: paused;\n  -moz-animation-play-state: paused;\n  -ms-animation-play-state: paused;\n  -o-animation-play-state: paused;\n  animation-play-state: paused;\n}\n\n/*******************************\n          Variations\n*******************************/\n\n.ui.looping.transition {\n  -webkit-animation-iteration-count: infinite;\n  -moz-animation-iteration-count: infinite;\n  -ms-animation-iteration-count: infinite;\n  -o-animation-iteration-count: infinite;\n  animation-iteration-count: infinite;\n}\n\n/*******************************\n             Types\n*******************************/\n\n/*--------------\n     Moving\n---------------*/\n\n.ui.move.down.transition.in,\n.ui.move.down.transition.out {\n  animation-name: moveDown;\n  -webkit-animation-name: moveDown;\n\n  animation-duration: 1s;\n  -webkit-animation-duration: 1s;\n\n  animation-timing-function: ease;\n  -webkit-animation-timing-function: ease;\n}\n\n@keyframes moveDown {\n  0% {\n    transform: translateY(-100%);\n  }\n  50%{\n    transform: translateY(8%);\n  }\n  65%{\n    transform: translateY(-4%);\n  }\n  80%{\n    transform: translateY(4%);\n  }\n  95%{\n    transform: translateY(-2%);\n  }\n  100% {\n    transform: translateY(0%);\n  }\n}\n\n@-webkit-keyframes moveDown {\n  0% {\n    -webkit-transform: translateY(-100%);\n  }\n  50%{\n    -webkit-transform: translateY(8%);\n  }\n  65%{\n    -webkit-transform: translateY(-4%);\n  }\n  80%{\n    -webkit-transform: translateY(4%);\n  }\n  95%{\n    -webkit-transform: translateY(-2%);\n  }\n  100% {\n    -webkit-transform: translateY(0%);\n  }\n}\n\n.ui.move.up.transition.in,\n.ui.move.up.transition.out {\n  animation-name: moveUp;\n  -webkit-animation-name: moveUp;\n\n  animation-duration: 1s;\n  -webkit-animation-duration: 1s;\n\n  animation-timing-function: ease;\n  -webkit-animation-timing-function: ease;\n}\n\n@keyframes moveUp {\n  0% {\n    transform: translateY(100%);\n  }\n  50%{\n    transform: translateY(-8%);\n  }\n  65%{\n    transform: translateY(4%);\n  }\n  80%{\n    transform: translateY(-4%);\n  }\n  95%{\n    transform: translateY(2%);\n  }\n  100% {\n    transform: translateY(0%);\n  }\n}\n\n@-webkit-keyframes moveUp {\n  0% {\n    -webkit-transform: translateY(100%);\n  }\n  50%{\n    -webkit-transform: translateY(-8%);\n  }\n  65%{\n    -webkit-transform: translateY(4%);\n  }\n  80%{\n    -webkit-transform: translateY(-4%);\n  }\n  95%{\n    -webkit-transform: translateY(2%);\n  }\n  100% {\n    -webkit-transform: translateY(0%);\n  }\n}\n\n\n.ui.move.left.transition.in,\n.ui.move.left.transition.out {\n  animation-name: moveLeft;\n  -webkit-animation-name: moveLeft;\n\n  animation-duration: 1s;\n  -webkit-animation-duration: 1s;\n\n  animation-timing-function: ease-in-out;\n  -webkit-animation-timing-function: ease-in-out;\n\n  visibility: visible !important;\n}\n\n@keyframes moveLeft {\n  0% {\n    transform: translateX(150%);\n  }\n  50%{\n    ransform: translateX(-8%);\n  }\n  65%{\n    transform: translateX(4%);\n  }\n  80%{\n    transform: translateX(-4%);\n  }\n  95%{\n    transform: translateX(2%);\n  }\n  100% {\n    transform: translateX(0%);\n  }\n}\n\n@-webkit-keyframes moveLeft {\n  0% {\n    -webkit-transform: translateX(150%);\n  }\n  50%{\n    -webkit-transform: translateX(-8%);\n  }\n  65%{\n    -webkit-transform: translateX(4%);\n  }\n  80%{\n    -webkit-transform: translateX(-4%);\n  }\n  95%{\n    -webkit-transform: translateX(2%);\n  }\n  100% {\n    -webkit-transform: translateX(0%);\n  }\n}\n\n\n.ui.move.right.transition.in,\n.ui.move.right.transition.out {\n  animation-name: moveRight;\n  -webkit-animation-name: moveRight;\n\n  animation-duration: 1s;\n  -webkit-animation-duration: 1s;\n\n  animation-timing-function: ease-in-out;\n  -webkit-animation-timing-function: ease-in-out;\n\n  visibility: visible !important;\n}\n\n@keyframes moveRight {\n  0% {\n    transform: translateX(-150%);\n  }\n  50%{\n    transform: translateX(8%);\n  }\n  65%{\n    transform: translateX(-4%);\n  }\n  80%{\n    transform: translateX(4%);\n  }\n  95%{\n    transform: translateX(-2%);\n  }\n  100% {\n    transform: translateX(0%);\n  }\n}\n\n@-webkit-keyframes moveRight {\n  0% {\n    -webkit-transform: translateX(-150%);\n  }\n  50%{\n    -webkit-transform: translateX(8%);\n  }\n  65%{\n    -webkit-transform: translateX(-4%);\n  }\n  80%{\n    -webkit-transform: translateX(4%);\n  }\n  95%{\n    -webkit-transform: translateX(-2%);\n  }\n  100% {\n    -webkit-transform: translateX(0%);\n  }\n}\n\n/*\n==============================================\nslideExpandUp\n==============================================\n*/\n\n\n.slideExpandUp{\n  animation-name: slideExpandUp;\n  -webkit-animation-name: slideExpandUp;\n\n  animation-duration: 1.6s;\n  -webkit-animation-duration: 1.6s;\n\n  animation-timing-function: ease-out;\n  -webkit-animation-timing-function: ease -out;\n\n  visibility: visible !important;\n}\n\n@keyframes slideExpandUp {\n  0% {\n    transform: translateY(100%) scaleX(0.5);\n  }\n  30%{\n    transform: translateY(-8%) scaleX(0.5);\n  }\n  40%{\n    transform: translateY(2%) scaleX(0.5);\n  }\n  50%{\n    transform: translateY(0%) scaleX(1.1);\n  }\n  60%{\n    transform: translateY(0%) scaleX(0.9);\n  }\n  70% {\n    transform: translateY(0%) scaleX(1.05);\n  }\n  80%{\n    transform: translateY(0%) scaleX(0.95);\n  }\n  90% {\n    transform: translateY(0%) scaleX(1.02);\n  }\n  100%{\n    transform: translateY(0%) scaleX(1);\n  }\n}\n\n@-webkit-keyframes slideExpandUp {\n  0% {\n    -webkit-transform: translateY(100%) scaleX(0.5);\n  }\n  30%{\n    -webkit-transform: translateY(-8%) scaleX(0.5);\n  }\n  40%{\n    -webkit-transform: translateY(2%) scaleX(0.5);\n  }\n  50%{\n    -webkit-transform: translateY(0%) scaleX(1.1);\n  }\n  60%{\n    -webkit-transform: translateY(0%) scaleX(0.9);\n  }\n  70% {\n    -webkit-transform: translateY(0%) scaleX(1.05);\n  }\n  80%{\n    -webkit-transform: translateY(0%) scaleX(0.95);\n  }\n  90% {\n    -webkit-transform: translateY(0%) scaleX(1.02);\n  }\n  100%{\n    -webkit-transform: translateY(0%) scaleX(1);\n  }\n}\n\n/*\n==============================================\nexpandUp\n==============================================\n*/\n\n\n.expandUp{\n  animation-name: expandUp;\n  -webkit-animation-name: expandUp;\n\n  animation-duration: 0.7s;\n  -webkit-animation-duration: 0.7s;\n\n  animation-timing-function: ease;\n  -webkit-animation-timing-function: ease;\n\n  visibility: visible !important;\n}\n\n@keyframes expandUp {\n  0% {\n    transform: translateY(100%) scale(0.6) scaleY(0.5);\n  }\n  60%{\n    transform: translateY(-7%) scaleY(1.12);\n  }\n  75%{\n    transform: translateY(3%);\n  }\n  100% {\n    transform: translateY(0%) scale(1) scaleY(1);\n  }\n}\n\n@-webkit-keyframes expandUp {\n  0% {\n    -webkit-transform: translateY(100%) scale(0.6) scaleY(0.5);\n  }\n  60%{\n    -webkit-transform: translateY(-7%) scaleY(1.12);\n  }\n  75%{\n    -webkit-transform: translateY(3%);\n  }\n  100% {\n    -webkit-transform: translateY(0%) scale(1) scaleY(1);\n  }\n}\n\n/*\n==============================================\nfadeIn\n==============================================\n*/\n\n.fadeIn{\n  animation-name: fadeIn;\n  -webkit-animation-name: fadeIn;\n\n  animation-duration: 1.5s;\n  -webkit-animation-duration: 1.5s;\n\n  animation-timing-function: ease-in-out;\n  -webkit-animation-timing-function: ease-in-out;\n\n  visibility: visible !important;\n}\n\n@keyframes fadeIn {\n  0% {\n    transform: scale(0);\n    opacity: 0.0;\n  }\n  60% {\n    transform: scale(1.1);\n  }\n  80% {\n    transform: scale(0.9);\n    opacity: 1;\n  }\n  100% {\n    transform: scale(1);\n    opacity: 1;\n  }\n}\n\n@-webkit-keyframes fadeIn {\n  0% {\n    -webkit-transform: scale(0);\n    opacity: 0.0;\n  }\n  60% {\n    -webkit-transform: scale(1.1);\n  }\n  80% {\n    -webkit-transform: scale(0.9);\n    opacity: 1;\n  }\n  100% {\n    -webkit-transform: scale(1);\n    opacity: 1;\n  }\n}\n\n/*\n==============================================\nexpandOpen\n==============================================\n*/\n\n\n.expandOpen{\n  animation-name: expandOpen;\n  -webkit-animation-name: expandOpen;\n\n  animation-duration: 1.2s;\n  -webkit-animation-duration: 1.2s;\n\n  animation-timing-function: ease-out;\n  -webkit-animation-timing-function: ease-out;\n\n  visibility: visible !important;\n}\n\n@keyframes expandOpen {\n  0% {\n    transform: scale(1.8);\n  }\n  50% {\n    transform: scale(0.95);\n  }\n  80% {\n    transform: scale(1.05);\n  }\n  90% {\n    transform: scale(0.98);\n  }\n  100% {\n    transform: scale(1);\n  }\n}\n\n@-webkit-keyframes expandOpen {\n  0% {\n    -webkit-transform: scale(1.8);\n  }\n  50% {\n    -webkit-transform: scale(0.95);\n  }\n  80% {\n    -webkit-transform: scale(1.05);\n  }\n  90% {\n    -webkit-transform: scale(0.98);\n  }\n  100% {\n    -webkit-transform: scale(1);\n  }\n}\n\n/*\n==============================================\nbigEntrance\n==============================================\n*/\n\n\n.bigEntrance{\n  animation-name: bigEntrance;\n  -webkit-animation-name: bigEntrance;\n\n  animation-duration: 1.6s;\n  -webkit-animation-duration: 1.6s;\n\n  animation-timing-function: ease-out;\n  -webkit-animation-timing-function: ease-out;\n\n  visibility: visible !important;\n}\n\n@keyframes bigEntrance {\n  0% {\n    transform: scale(0.3) rotate(6deg) translateX(-30%) translateY(30%);\n    opacity: 0.2;\n  }\n  30% {\n    transform: scale(1.03) rotate(-2deg) translateX(2%) translateY(-2%);\n    opacity: 1;\n  }\n  45% {\n    transform: scale(0.98) rotate(1deg) translateX(0%) translateY(0%);\n    opacity: 1;\n  }\n  60% {\n    transform: scale(1.01) rotate(-1deg) translateX(0%) translateY(0%);\n    opacity: 1;\n  }\n  75% {\n    transform: scale(0.99) rotate(1deg) translateX(0%) translateY(0%);\n    opacity: 1;\n  }\n  90% {\n    transform: scale(1.01) rotate(0deg) translateX(0%) translateY(0%);\n    opacity: 1;\n  }\n  100% {\n    transform: scale(1) rotate(0deg) translateX(0%) translateY(0%);\n    opacity: 1;\n  }\n}\n\n@-webkit-keyframes bigEntrance {\n  0% {\n    -webkit-transform: scale(0.3) rotate(6deg) translateX(-30%) translateY(30%);\n    opacity: 0.2;\n  }\n  30% {\n    -webkit-transform: scale(1.03) rotate(-2deg) translateX(2%) translateY(-2%);\n    opacity: 1;\n  }\n  45% {\n    -webkit-transform: scale(0.98) rotate(1deg) translateX(0%) translateY(0%);\n    opacity: 1;\n  }\n  60% {\n    -webkit-transform: scale(1.01) rotate(-1deg) translateX(0%) translateY(0%);\n    opacity: 1;\n  }\n  75% {\n    -webkit-transform: scale(0.99) rotate(1deg) translateX(0%) translateY(0%);\n    opacity: 1;\n  }\n  90% {\n    -webkit-transform: scale(1.01) rotate(0deg) translateX(0%) translateY(0%);\n    opacity: 1;\n  }\n  100% {\n    -webkit-transform: scale(1) rotate(0deg) translateX(0%) translateY(0%);\n    opacity: 1;\n  }\n}\n\n/*\n==============================================\nhatch\n==============================================\n*/\n\n.hatch{\n  animation-name: hatch;\n  -webkit-animation-name: hatch;\n\n  animation-duration: 2s;\n  -webkit-animation-duration: 2s;\n\n  animation-timing-function: ease-in-out;\n  -webkit-animation-timing-function: ease-in-out;\n\n  transform-origin: 50% 100%;\n  -ms-transform-origin: 50% 100%;\n  -webkit-transform-origin: 50% 100%;\n\n  visibility: visible !important;\n}\n\n@keyframes hatch {\n  0% {\n    transform: rotate(0deg) scaleY(0.6);\n  }\n  20% {\n    transform: rotate(-2deg) scaleY(1.05);\n  }\n  35% {\n    transform: rotate(2deg) scaleY(1);\n  }\n  50% {\n    transform: rotate(-2deg);\n  }\n  65% {\n    transform: rotate(1deg);\n  }\n  80% {\n    transform: rotate(-1deg);\n  }\n  100% {\n    transform: rotate(0deg);\n  }\n}\n\n@-webkit-keyframes hatch {\n  0% {\n    -webkit-transform: rotate(0deg) scaleY(0.6);\n  }\n  20% {\n    -webkit-transform: rotate(-2deg) scaleY(1.05);\n  }\n  35% {\n    -webkit-transform: rotate(2deg) scaleY(1);\n  }\n  50% {\n    -webkit-transform: rotate(-2deg);\n  }\n  65% {\n    -webkit-transform: rotate(1deg);\n  }\n  80% {\n    -webkit-transform: rotate(-1deg);\n  }\n  100% {\n    -webkit-transform: rotate(0deg);\n  }\n}\n\n\n/*\n==============================================\nbounce\n==============================================\n*/\n\n\n.bounce{\n  animation-name: bounce;\n  -webkit-animation-name: bounce;\n\n  animation-duration: 1.6s;\n  -webkit-animation-duration: 1.6s;\n\n  animation-timing-function: ease;\n  -webkit-animation-timing-function: ease;\n\n  transform-origin: 50% 100%;\n  -ms-transform-origin: 50% 100%;\n  -webkit-transform-origin: 50% 100%;\n}\n\n@keyframes bounce {\n  0% {\n    transform: translateY(0%) scaleY(0.6);\n  }\n  60%{\n    transform: translateY(-100%) scaleY(1.1);\n  }\n  70%{\n    transform: translateY(0%) scaleY(0.95) scaleX(1.05);\n  }\n  80%{\n    transform: translateY(0%) scaleY(1.05) scaleX(1);\n  }\n  90%{\n    transform: translateY(0%) scaleY(0.95) scaleX(1);\n  }\n  100%{\n    transform: translateY(0%) scaleY(1) scaleX(1);\n  }\n}\n\n@-webkit-keyframes bounce {\n  0% {\n    -webkit-transform: translateY(0%) scaleY(0.6);\n  }\n  60%{\n    -webkit-transform: translateY(-100%) scaleY(1.1);\n  }\n  70%{\n    -webkit-transform: translateY(0%) scaleY(0.95) scaleX(1.05);\n  }\n  80%{\n    -webkit-transform: translateY(0%) scaleY(1.05) scaleX(1);\n  }\n  90%{\n    -webkit-transform: translateY(0%) scaleY(0.95) scaleX(1);\n  }\n  100%{\n    -webkit-transform: translateY(0%) scaleY(1) scaleX(1);\n  }\n}\n\n\n/*\n==============================================\npulse\n==============================================\n*/\n\n.pulse{\n  animation-name: pulse;\n  -webkit-animation-name: pulse;\n\n  animation-duration: 1.5s;\n  -webkit-animation-duration: 1.5s;\n\n  animation-iteration-count: infinite;\n  -webkit-animation-iteration-count: infinite;\n}\n\n@keyframes pulse {\n  0% {\n    transform: scale(0.9);\n    opacity: 0.7;\n  }\n  50% {\n    ransform: scale(1);\n    opacity: 1;\n  }\n  100% {\n    transform: scale(0.9);\n    opacity: 0.7;\n  }\n}\n\n@-webkit-keyframes pulse {\n  0% {\n    -webkit-transform: scale(0.95);\n    opacity: 0.7;\n  }\n  50% {\n    -webkit-transform: scale(1);\n    opacity: 1;\n  }\n  100% {\n    -webkit-transform: scale(0.95);\n    opacity: 0.7;\n  }\n}\n\n/*\n==============================================\nfloating\n==============================================\n*/\n\n.floating{\n  animation-name: floating;\n  -webkit-animation-name: floating;\n\n  animation-duration: 1.5s;\n  -webkit-animation-duration: 1.5s;\n\n  animation-iteration-count: infinite;\n  -webkit-animation-iteration-count: infinite;\n}\n\n@keyframes floating {\n  0% {\n    transform: translateY(0%);\n  }\n  50% {\n    transform: translateY(8%);\n  }\n  100% {\n    transform: translateY(0%);\n  }\n}\n\n@-webkit-keyframes floating {\n  0% {\n    -webkit-transform: translateY(0%);\n  }\n  50% {\n    -webkit-transform: translateY(8%);\n  }\n  100% {\n    -webkit-transform: translateY(0%);\n  }\n}\n\n/*\n==============================================\ntossing\n==============================================\n*/\n\n.tossing{\n  animation-name: tossing;\n  -webkit-animation-name: tossing;\n\n  animation-duration: 2.5s;\n  -webkit-animation-duration: 2.5s;\n\n  animation-iteration-count: infinite;\n  -webkit-animation-iteration-count: infinite;\n}\n\n@keyframes tossing {\n  0% {\n    transform: rotate(-4deg);\n  }\n  50% {\n    transform: rotate(4deg);\n  }\n  100% {\n    transform: rotate(-4deg);\n  }\n}\n\n@-webkit-keyframes tossing {\n  0% {\n    -webkit-transform: rotate(-4deg);\n  }\n  50% {\n    -webkit-transform: rotate(4deg);\n  }\n  100% {\n    -webkit-transform: rotate(-4deg);\n  }\n}\n\n/*\n==============================================\npullUp\n==============================================\n*/\n\n.pullUp{\n  animation-name: pullUp;\n  -webkit-animation-name: pullUp;\n\n  animation-duration: 1.1s;\n  -webkit-animation-duration: 1.1s;\n\n  animation-timing-function: ease-out;\n  -webkit-animation-timing-function: ease-out;\n\n  transform-origin: 50% 100%;\n  -ms-transform-origin: 50% 100%;\n  -webkit-transform-origin: 50% 100%;\n}\n\n@keyframes pullUp {\n  0% {\n    transform: scaleY(0.1);\n  }\n  40% {\n    transform: scaleY(1.02);\n  }\n  60% {\n    transform: scaleY(0.98);\n  }\n  80% {\n    transform: scaleY(1.01);\n  }\n  100% {\n    transform: scaleY(0.98);\n  }\n  80% {\n    transform: scaleY(1.01);\n  }\n  100% {\n    transform: scaleY(1);\n  }\n}\n\n@-webkit-keyframes pullUp {\n  0% {\n    -webkit-transform: scaleY(0.1);\n  }\n  40% {\n    -webkit-transform: scaleY(1.02);\n  }\n  60% {\n    -webkit-transform: scaleY(0.98);\n  }\n  80% {\n    -webkit-transform: scaleY(1.01);\n  }\n  100% {\n    -webkit-transform: scaleY(0.98);\n  }\n  80% {\n    -webkit-transform: scaleY(1.01);\n  }\n  100% {\n    -webkit-transform: scaleY(1);\n  }\n}\n\n/*\n==============================================\npullDown\n==============================================\n*/\n\n.pullDown{\n  animation-name: pullDown;\n  -webkit-animation-name: pullDown;\n\n  animation-duration: 1.1s;\n  -webkit-animation-duration: 1.1s;\n\n  animation-timing-function: ease-out;\n  -webkit-animation-timing-function: ease-out;\n\n  transform-origin: 50% 0%;\n  -ms-transform-origin: 50% 0%;\n  -webkit-transform-origin: 50% 0%;\n}\n\n@keyframes pullDown {\n  0% {\n    transform: scaleY(0.1);\n  }\n  40% {\n    transform: scaleY(1.02);\n  }\n  60% {\n    transform: scaleY(0.98);\n  }\n  80% {\n    transform: scaleY(1.01);\n  }\n  100% {\n    transform: scaleY(0.98);\n  }\n  80% {\n    transform: scaleY(1.01);\n  }\n  100% {\n    transform: scaleY(1);\n  }\n}\n\n@-webkit-keyframes pullDown {\n  0% {\n    -webkit-transform: scaleY(0.1);\n  }\n  40% {\n    -webkit-transform: scaleY(1.02);\n  }\n  60% {\n    -webkit-transform: scaleY(0.98);\n  }\n  80% {\n    -webkit-transform: scaleY(1.01);\n  }\n  100% {\n    -webkit-transform: scaleY(0.98);\n  }\n  80% {\n    -webkit-transform: scaleY(1.01);\n  }\n  100% {\n    -webkit-transform: scaleY(1);\n  }\n}\n\n/*\n==============================================\nstretchLeft\n==============================================\n*/\n\n.stretchLeft{\n  animation-name: stretchLeft;\n  -webkit-animation-name: stretchLeft;\n\n  animation-duration: 1.5s;\n  -webkit-animation-duration: 1.5s;\n\n  animation-timing-function: ease-out;\n  -webkit-animation-timing-function: ease-out;\n\n  transform-origin: 100% 0%;\n  -ms-transform-origin: 100% 0%;\n  -webkit-transform-origin: 100% 0%;\n}\n\n@keyframes stretchLeft {\n  0% {\n    transform: scaleX(0.3);\n  }\n  40% {\n    transform: scaleX(1.02);\n  }\n  60% {\n    transform: scaleX(0.98);\n  }\n  80% {\n    transform: scaleX(1.01);\n  }\n  100% {\n    transform: scaleX(0.98);\n  }\n  80% {\n    transform: scaleX(1.01);\n  }\n  100% {\n    transform: scaleX(1);\n  }\n}\n\n@-webkit-keyframes stretchLeft {\n  0% {\n    -webkit-transform: scaleX(0.3);\n  }\n  40% {\n    -webkit-transform: scaleX(1.02);\n  }\n  60% {\n    -webkit-transform: scaleX(0.98);\n  }\n  80% {\n    -webkit-transform: scaleX(1.01);\n  }\n  100% {\n    -webkit-transform: scaleX(0.98);\n  }\n  80% {\n    -webkit-transform: scaleX(1.01);\n  }\n  100% {\n    -webkit-transform: scaleX(1);\n  }\n}\n\n/*\n==============================================\nstretchRight\n==============================================\n*/\n\n.stretchRight{\n  animation-name: stretchRight;\n  -webkit-animation-name: stretchRight;\n\n  animation-duration: 1.5s;\n  -webkit-animation-duration: 1.5s;\n\n  animation-timing-function: ease-out;\n  -webkit-animation-timing-function: ease-out;\n\n  transform-origin: 0% 0%;\n  -ms-transform-origin: 0% 0%;\n  -webkit-transform-origin: 0% 0%;\n}\n\n@keyframes stretchRight {\n  0% {\n    transform: scaleX(0.3);\n  }\n  40% {\n    transform: scaleX(1.02);\n  }\n  60% {\n    transform: scaleX(0.98);\n  }\n  80% {\n    transform: scaleX(1.01);\n  }\n  100% {\n    transform: scaleX(0.98);\n  }\n  80% {\n    transform: scaleX(1.01);\n  }\n  100% {\n    transform: scaleX(1);\n  }\n}\n\n@-webkit-keyframes stretchRight {\n  0% {\n    -webkit-transform: scaleX(0.3);\n  }\n  40% {\n    -webkit-transform: scaleX(1.02);\n  }\n  60% {\n    -webkit-transform: scaleX(0.98);\n  }\n  80% {\n    -webkit-transform: scaleX(1.01);\n  }\n  100% {\n    -webkit-transform: scaleX(0.98);\n  }\n  80% {\n    -webkit-transform: scaleX(1.01);\n  }\n  100% {\n    -webkit-transform: scaleX(1);\n  }\n}"
  },
  {
    "path": "server/raw/draft/sitemap.less",
    "content": "/*\n * # Sitemap\n *\n *\n * Copyright 2013 Contributors\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n * Released: April 17 2013\n */\n\n/*******************************\n           Sitemap\n*******************************/\n\n.ui.sitemap {\n  margin: 0 -3rem;\n  font-size: 0rem;\n  text-align: left;\n}\n\n\n/*--------------\n     Elements\n---------------*/\n\n.ui.sitemap > .section {\n  display: inline-block;\n  vertical-align: top;\n\n  margin: 0em 3rem;\n\n  font-size: 1rem;\n}\n\n.ui.sitemap > .section > .header {\n  font-size: 1.125em;\n  color: rgba(0, 0, 0, 0.8);\n  padding-bottom: 0.5em;\n}\n\n.ui.sitemap > .section > a {\n  display: block;\n  padding: 0.25em 0em;\n}\n\n"
  },
  {
    "path": "server/raw/humans.txt",
    "content": "# humanstxt.org/\n# The humans responsible & technology colophon\n\n# TEAM\n\n    jack Lukic - Developer\n\n# THANKS\n\n   Quirky Inc\n\n# TECHNOLOGY COLOPHON\n\n    HTML5, CSS3\n    jQuery\n"
  },
  {
    "path": "server/raw/robots.txt",
    "content": "# robotstxt.org/\n\nUser-agent: *\n"
  }
]