Full Code of pubnub/paper-chat for AI

gh-pages 7e6601ddb6c0 cached
254 files
1.7 MB
581.1k tokens
1583 symbols
1 requests
Download .txt
Showing preview only (1,821K chars total). Download the full file or copy to clipboard to get everything.
Repository: pubnub/paper-chat
Branch: gh-pages
Commit: 7e6601ddb6c0
Files: 254
Total size: 1.7 MB

Directory structure:
gitextract_ygpo5qtv/

├── .gitignore
├── LICENSE
├── README.md
├── bower.json
├── bower_components/
│   ├── core-component-page/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-component-page.html
│   │   ├── demo.html
│   │   └── index.html
│   ├── core-drawer-panel/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-drawer-panel.css
│   │   ├── core-drawer-panel.html
│   │   ├── demo.html
│   │   ├── index.html
│   │   └── metadata.html
│   ├── core-focusable/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-focusable.html
│   │   ├── core-focusable.js
│   │   ├── demo.html
│   │   └── polymer-mixin.js
│   ├── core-header-panel/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-header-panel.css
│   │   ├── core-header-panel.html
│   │   ├── demo.html
│   │   ├── index.html
│   │   └── metadata.html
│   ├── core-icon/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-icon.css
│   │   ├── core-icon.html
│   │   ├── demo.html
│   │   ├── index.html
│   │   └── metadata.html
│   ├── core-icon-button/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-icon-button.css
│   │   ├── core-icon-button.html
│   │   ├── demo.html
│   │   ├── index.html
│   │   └── metadata.html
│   ├── core-icons/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── av-icons.html
│   │   ├── bower.json
│   │   ├── communication-icons.html
│   │   ├── core-icons.html
│   │   ├── demo.html
│   │   ├── device-icons.html
│   │   ├── editor-icons.html
│   │   ├── hardware-icons.html
│   │   ├── image-icons.html
│   │   ├── index.html
│   │   ├── maps-icons.html
│   │   ├── notification-icons.html
│   │   ├── png-icons.html
│   │   └── social-icons.html
│   ├── core-iconset/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-iconset.html
│   │   ├── demo.html
│   │   └── index.html
│   ├── core-iconset-svg/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-iconset-svg.html
│   │   ├── demo.html
│   │   ├── index.html
│   │   └── svg-sample-icons.html
│   ├── core-input/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-input.css
│   │   ├── core-input.html
│   │   ├── demo.html
│   │   ├── index.html
│   │   ├── metadata.html
│   │   └── test/
│   │       ├── a11y.html
│   │       ├── basic.html
│   │       └── index.html
│   ├── core-item/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-item.css
│   │   ├── core-item.html
│   │   ├── demo.html
│   │   ├── index.html
│   │   └── metadata.html
│   ├── core-media-query/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-media-query.html
│   │   ├── demo.html
│   │   └── index.html
│   ├── core-meta/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-meta.html
│   │   ├── demo.html
│   │   └── index.html
│   ├── core-scaffold/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-scaffold.html
│   │   ├── demo.html
│   │   ├── index.html
│   │   └── metadata.html
│   ├── core-selection/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-selection.html
│   │   ├── demo.html
│   │   ├── index.html
│   │   └── test/
│   │       ├── basic.html
│   │       ├── index.html
│   │       └── multi.html
│   ├── core-selector/
│   │   ├── .bower.json
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-selector.html
│   │   ├── demo.html
│   │   ├── index.html
│   │   ├── metadata.html
│   │   └── test/
│   │       ├── activate-event.html
│   │       ├── basic.html
│   │       ├── content.html
│   │       ├── index.html
│   │       ├── multi.html
│   │       ├── next-previous.html
│   │       ├── selected-attr-prop.html
│   │       └── template-repeat.html
│   ├── core-style/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-style.html
│   │   ├── demo.html
│   │   ├── elements.html
│   │   ├── index.html
│   │   └── my-theme.html
│   ├── core-toolbar/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-toolbar.css
│   │   ├── core-toolbar.html
│   │   ├── demo.html
│   │   ├── index.html
│   │   ├── metadata.html
│   │   └── test/
│   │       ├── basic.html
│   │       └── index.html
│   ├── font-roboto/
│   │   ├── .bower.json
│   │   └── roboto.html
│   ├── paper-button/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── demo.html
│   │   ├── index.html
│   │   ├── metadata.html
│   │   ├── paper-button-base.html
│   │   ├── paper-button.html
│   │   └── test/
│   │       ├── a11y.html
│   │       ├── basic.html
│   │       └── index.html
│   ├── paper-fab/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── demo.html
│   │   ├── index.html
│   │   ├── metadata.html
│   │   ├── paper-fab.html
│   │   └── test/
│   │       ├── a11y.html
│   │       ├── basic.html
│   │       └── index.html
│   ├── paper-input/
│   │   ├── .bower.json
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── demo.html
│   │   ├── index.html
│   │   ├── metadata.html
│   │   ├── paper-autogrow-textarea.html
│   │   ├── paper-input-decorator.css
│   │   ├── paper-input-decorator.html
│   │   ├── paper-input.html
│   │   └── test/
│   │       ├── a11y.html
│   │       ├── autogrow.html
│   │       ├── decorator.html
│   │       └── index.html
│   ├── paper-ripple/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── demo.html
│   │   ├── index.html
│   │   ├── metadata.html
│   │   ├── paper-ripple.html
│   │   └── test/
│   │       ├── index.html
│   │       └── position.html
│   ├── paper-shadow/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── demo.html
│   │   ├── index.html
│   │   ├── metadata.html
│   │   ├── paper-shadow.css
│   │   ├── paper-shadow.html
│   │   └── test/
│   │       ├── basic.html
│   │       └── index.html
│   ├── platform/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── build.log
│   │   └── platform.js
│   ├── polymer/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── build.log
│   │   ├── layout.html
│   │   ├── polymer.html
│   │   └── polymer.js
│   ├── pubnub-polymer/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── demo-element.html
│   │   ├── demo.html
│   │   ├── index.html
│   │   └── pubnub-element.html
│   ├── time-elements/
│   │   ├── .bower.json
│   │   ├── LICENSE
│   │   ├── bower.json
│   │   └── time-elements.js
│   └── webcomponentsjs/
│       ├── .bower.json
│       ├── CustomElements.js
│       ├── HTMLImports.js
│       ├── README.md
│       ├── ShadowDOM.js
│       ├── bower.json
│       ├── build.log
│       ├── package.json
│       ├── webcomponents-lite.js
│       └── webcomponents.js
├── css/
│   └── style.css
├── index.html
├── js/
│   └── app.js
├── lite.html
└── x-chat-list.html

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

================================================
FILE: .gitignore
================================================
.DS_Store
node_modules

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

Copyright (c) 2014 PubNub

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

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

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


================================================
FILE: README.md
================================================
*Note: I decided to separate a repo for the new Polymer 1.x Paper Chat, and it is available on [github.com/pubnub/polymer-cat-chat-v1](https://github.com/pubnub/polymer-cat-chat-v1). A huge thanks to [Whyser](https://github.com/Whyser) for the Polymer 1.0 migration help!!!*

*Tomomi*

![Material Design and Polymer](http://pubnub.com/blog/wp-content/uploads/2015/01/paper-chat-cover.png "Material Design and Polymer")

# Paper Chat Demo

A simple chat room in Material Design build with Polymer 0.5.x.

This demo is written for a tutorial to show how to create a simple chat app using [PubNub][pubnub] data stream JavaScript API for [Polymer][polymer], and Polymer's Paper elements to achieve [Material Design][md] user-experiences.

This is not currently compatible with the new Polymer 1.0.
If you build this app by yourself, make sure to use the appropriate version of Polymer and all other components, including `pubnub-element` v3.6.7.
See the [bower.json](https://github.com/pubnub/paper-chat/blob/gh-pages/bower.json) for the working versions for all dependencies. 

## Live Demo

[Try this on multiple browsers including mobile](http://pubnub.github.io/paper-chat/index.html)

## Tutorial

[Creating a Polymer Chat App with Material Design][blog]

### Photo & Graphic Credits

The flat phone image that I used to create the banner on this ReadMe and Blog is create by [Andrew Beckwith](https://dribbble.com/shots/1093397-Flat-Phones-PSD-Freebie?list=users&offset=13)

I used these photos as avatars:

- Bengal: Tyler T CC BY-SA 3.0
- Siamese: Karin Langner-Bahmann CC BY-SA 3.0
- Sphinx: Christopher Voelker CC-BY-3.0
- Ragdoll: Simone Johnsson CC BY-SA 2.0
- Persian: UnionMaminia CC BY-SA 3.0
- Korat: Heikkisiltala CC BY-SA 3.0
- Japanese Bobtail: ようてい  CC BY-SA 3.0
- Abyssinian: Karin Langner-Bahmann CC BY-SA 3.0
- Scottish Fold: Vladimir Chubarov CC BY-SA 3.0

Othwewise CC0. Tabby is my cat, Jamie :-)

Thank you <3



[polymer]: https://www.polymer-project.org
[md]: http://www.google.com/design/spec/material-design/introduction.html
[pubnub]: http://www.pubnub.com/docs/javascript/javascript-sdk.html

[blog]: http://www.pubnub.com/blog/creating-a-polymer-chat-app-with-material-design/

---
## Polymer 1.x Support

Since Polymer 0.5x (used in this app) and the new Polymer 1.x are incompatible, I decided to create a new repo for the updated Kitteh Anonymous. 

However, if you wish to try, the gh-pages is available on [http://pubnub.github.io/paper-chat-v1](http://pubnub.github.io/paper-chat-v1).
The repo is still in private, but I will make it avalable sometimes.

And a huge thank you to [Whyser](https://github.com/Whyser), who migrated the app to Polymer 1.0 and sent me the pull request. I am so sorry that I have not got a chance to work on it.

I promise I will finish it up and write the tutorial!


================================================
FILE: bower.json
================================================
{
  "name": "paper-chat",
  "version": "0.0.1",
  "authors": [
    "Tomomi Imura <tomomi@pubnub.com>"
  ],
  "description": "A simple chat demo in Material Design",
  "keywords": [
    "polymer",
    "material",
    "design",
    "pubnub",
    "chat"
  ],
  "license": "MIT",
  "homepage": "pubnub.com",
  "private": true,
  "ignore": [
    "**/.*",
    "node_modules",
    "bower_components",
    "test",
    "tests"
  ],
  "dependencies": {
    "polymer": "Polymer/polymer#0.5.2",
    "core-scaffold": "Polymer/core-scaffold#0.5.2",
    "paper-input": "Polymer/paper-input#0.5.2",
    "paper-fab": "Polymer/paper-fab#0.5.2",
    "core-item": "Polymer/core-item#0.5.2",
    "pubnub-element": "3.6.7",
    "time-elements": "0.4.0"
  }
}


================================================
FILE: bower_components/core-component-page/.bower.json
================================================
{
  "name": "core-component-page",
  "private": true,
  "dependencies": {
    "webcomponentsjs": "Polymer/webcomponentsjs#^0.5.0",
    "polymer": "Polymer/polymer#^0.5.0"
  },
  "version": "0.5.2",
  "homepage": "https://github.com/Polymer/core-component-page",
  "_release": "0.5.2",
  "_resolution": {
    "type": "version",
    "tag": "0.5.2",
    "commit": "443d8dcbcb1b203ed88c6af64c98f76e6434ba53"
  },
  "_source": "git://github.com/Polymer/core-component-page.git",
  "_target": "^0.5.0",
  "_originalSource": "Polymer/core-component-page"
}

================================================
FILE: bower_components/core-component-page/README.md
================================================
core-component-page
===================

See the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-component-page) for more information.

Note: this is the vulcanized version of [`core-component-page-dev`](https://github.com/Polymer/core-component-page-dev) (the source).


================================================
FILE: bower_components/core-component-page/bower.json
================================================
{
  "name": "core-component-page",
  "private": true,
  "dependencies": {
    "webcomponentsjs": "Polymer/webcomponentsjs#^0.5.0",
    "polymer": "Polymer/polymer#^0.5.0"
  },
  "version": "0.5.2"
}

================================================
FILE: bower_components/core-component-page/core-component-page.html
================================================
<!--
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->

<style>body{margin:0}</style>

<div hidden><link rel="import" href="../polymer/polymer.html"><polymer-element name="core-meta" attributes="label type" hidden assetpath="../core-meta/"><script>(function(){var SKIP_ID="meta";var metaData={},metaArray={};Polymer("core-meta",{type:"default",alwaysPrepare:true,ready:function(){this.register(this.id)},get metaArray(){var t=this.type;if(!metaArray[t]){metaArray[t]=[]}return metaArray[t]},get metaData(){var t=this.type;if(!metaData[t]){metaData[t]={}}return metaData[t]},register:function(id,old){if(id&&id!==SKIP_ID){this.unregister(this,old);this.metaData[id]=this;this.metaArray.push(this)}},unregister:function(meta,id){delete this.metaData[id||meta.id];var i=this.metaArray.indexOf(meta);if(i>=0){this.metaArray.splice(i,1)}},get list(){return this.metaArray},byId:function(id){return this.metaData[id]}})})();</script></polymer-element><polymer-element name="core-iconset" extends="core-meta" attributes="src width icons iconSize" assetpath="../core-iconset/"><script>Polymer("core-iconset",{src:"",width:0,icons:"",iconSize:24,offsetX:0,offsetY:0,type:"iconset",created:function(){this.iconMap={};this.iconNames=[];this.themes={}},ready:function(){if(this.src&&this.ownerDocument!==document){this.src=this.resolvePath(this.src,this.ownerDocument.baseURI)}this.super();this.updateThemes()},iconsChanged:function(){var ox=this.offsetX;var oy=this.offsetY;this.icons&&this.icons.split(/\s+/g).forEach(function(name,i){this.iconNames.push(name);this.iconMap[name]={offsetX:ox,offsetY:oy};if(ox+this.iconSize<this.width){ox+=this.iconSize}else{ox=this.offsetX;oy+=this.iconSize}},this)},updateThemes:function(){var ts=this.querySelectorAll("property[theme]");ts&&ts.array().forEach(function(t){this.themes[t.getAttribute("theme")]={offsetX:parseInt(t.getAttribute("offsetX"))||0,offsetY:parseInt(t.getAttribute("offsetY"))||0}},this)},getOffset:function(icon,theme){var i=this.iconMap[icon];if(!i){var n=this.iconNames[Number(icon)];i=this.iconMap[n]}var t=this.themes[theme];if(i&&t){return{offsetX:i.offsetX+t.offsetX,offsetY:i.offsetY+t.offsetY}}return i},applyIcon:function(element,icon,scale){var offset=this.getOffset(icon);scale=scale||1;if(element&&offset){var icon=element._icon||document.createElement("div");var style=icon.style;style.backgroundImage="url("+this.src+")";style.backgroundPosition=-offset.offsetX*scale+"px"+" "+(-offset.offsetY*scale+"px");style.backgroundSize=scale===1?"auto":this.width*scale+"px";if(icon.parentNode!==element){element.appendChild(icon)}return icon}}});</script></polymer-element><style shim-shadowdom="">html /deep/ core-icon{display:inline-block;vertical-align:middle;background-repeat:no-repeat;fill:currentcolor;position:relative;height:24px;width:24px}</style><polymer-element name="core-icon" attributes="src icon alt" assetpath="../core-icon/"><script>(function(){var meta;Polymer("core-icon",{src:"",icon:"",alt:null,observe:{icon:"updateIcon",alt:"updateAlt"},defaultIconset:"icons",ready:function(){if(!meta){meta=document.createElement("core-iconset")}if(this.hasAttribute("aria-label")){if(!this.hasAttribute("role")){this.setAttribute("role","img")}return}this.updateAlt()},srcChanged:function(){var icon=this._icon||document.createElement("div");icon.textContent="";icon.setAttribute("fit","");icon.style.backgroundImage="url("+this.src+")";icon.style.backgroundPosition="center";icon.style.backgroundSize="100%";if(!icon.parentNode){this.appendChild(icon)}this._icon=icon},getIconset:function(name){return meta.byId(name||this.defaultIconset)},updateIcon:function(oldVal,newVal){if(!this.icon){this.updateAlt();return}var parts=String(this.icon).split(":");var icon=parts.pop();if(icon){var set=this.getIconset(parts.pop());if(set){this._icon=set.applyIcon(this,icon);if(this._icon){this._icon.setAttribute("fit","")}}}if(oldVal){if(oldVal.split(":").pop()==this.getAttribute("aria-label")){this.updateAlt()}}},updateAlt:function(){if(this.getAttribute("aria-hidden")){return}if(this.alt===""){this.setAttribute("aria-hidden","true");if(this.hasAttribute("role")){this.removeAttribute("role")}if(this.hasAttribute("aria-label")){this.removeAttribute("aria-label")}}else{this.setAttribute("aria-label",this.alt||this.icon.split(":").pop());if(!this.hasAttribute("role")){this.setAttribute("role","img")}if(this.hasAttribute("aria-hidden")){this.removeAttribute("aria-hidden")}}}})})();</script></polymer-element><polymer-element name="core-iconset-svg" extends="core-meta" attributes="iconSize" assetpath="../core-iconset-svg/"><script>Polymer("core-iconset-svg",{iconSize:24,type:"iconset",created:function(){this._icons={}},ready:function(){this.super();this.updateIcons()},iconById:function(id){return this._icons[id]||(this._icons[id]=this.querySelector("#"+id))},cloneIcon:function(id){var icon=this.iconById(id);if(icon){var content=icon.cloneNode(true);content.removeAttribute("id");var svg=document.createElementNS("http://www.w3.org/2000/svg","svg");svg.setAttribute("viewBox","0 0 "+this.iconSize+" "+this.iconSize);svg.style.pointerEvents="none";svg.appendChild(content);return svg}},get iconNames(){if(!this._iconNames){this._iconNames=this.findIconNames()}return this._iconNames},findIconNames:function(){var icons=this.querySelectorAll("[id]").array();if(icons.length){return icons.map(function(n){return n.id})}},applyIcon:function(element,icon){var root=element;var old=root.querySelector("svg");if(old){old.remove()}var svg=this.cloneIcon(icon);if(!svg){return}svg.setAttribute("height","100%");svg.setAttribute("width","100%");svg.setAttribute("preserveAspectRatio","xMidYMid meet");svg.style.display="block";root.insertBefore(svg,root.firstElementChild);return svg},updateIcons:function(selector,method){selector=selector||"[icon]";method=method||"updateIcon";var deep=window.ShadowDOMPolyfill?"":"html /deep/ ";var i$=document.querySelectorAll(deep+selector);for(var i=0,e;e=i$[i];i++){if(e[method]){e[method].call(e)}}}});</script></polymer-element><core-iconset-svg id="icons" iconsize="24"><svg><defs><g id="accessibility"><path d="M12 2c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm9 7h-6v13h-2v-6h-2v6h-2v-13h-6v-2h18v2z"/></g><g id="account-balance"><path d="M4 10v7h3v-7h-3zm6 0v7h3v-7h-3zm-8 12h19v-3h-19v3zm14-12v7h3v-7h-3zm-4.5-9l-9.5 5v2h19v-2l-9.5-5z"/></g><g id="account-balance-wallet"><path d="M21 18v1c0 1.1-.9 2-2 2h-14c-1.11 0-2-.9-2-2v-14c0-1.1.89-2 2-2h14c1.1 0 2 .9 2 2v1h-9c-1.11 0-2 .9-2 2v8c0 1.1.89 2 2 2h9zm-9-2h10v-8h-10v8zm4-2.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/></g><g id="account-box"><path d="M3 5v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2h-14c-1.11 0-2 .9-2 2zm12 4c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3zm-9 8c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1h-12v-1z"/></g><g id="account-child"><path d="M16.5 12c1.38 0 2.49-1.12 2.49-2.5s-1.11-2.5-2.49-2.5c-1.38 0-2.5 1.12-2.5 2.5s1.12 2.5 2.5 2.5zm-7.5-1c1.66 0 2.99-1.34 2.99-3s-1.33-3-2.99-3c-1.66 0-3 1.34-3 3s1.34 3 3 3zm7.5 3c-1.83 0-5.5.92-5.5 2.75v2.25h11v-2.25c0-1.83-3.67-2.75-5.5-2.75zm-7.5-1c-2.33 0-7 1.17-7 3.5v2.5h7v-2.25c0-.85.33-2.34 2.37-3.47-.87-.18-1.71-.28-2.37-.28z"/></g><g id="account-circle"><path d="M12 2c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2c-2.5 0-4.71-1.28-6-3.22.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08-1.29 1.94-3.5 3.22-6 3.22z"/></g><g id="add-box"><path d="M19 3h-14c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2zm-2 10h-4v4h-2v-4h-4v-2h4v-4h2v4h4v2z"/></g><g id="add-circle-outline"><path d="M13 7h-2v4h-4v2h4v4h2v-4h4v-2h-4v-4zm-1-5c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></g><g id="add-circle"><path d="M12 2c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm5 11h-4v4h-2v-4h-4v-2h4v-4h2v4h4v2z"/></g><g id="add"><path d="M19 13h-6v6h-2v-6h-6v-2h6v-6h2v6h6v2z"/></g><g id="add-shopping-cart"><path d="M11 9h2v-3h3v-2h-3v-3h-2v3h-3v2h3v3zm-4 9c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2zm10 0c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2zm-9.83-3.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.86-7.01-1.74-.96h-.01l-1.1 2-2.76 5h-7.02l-.13-.27-2.24-4.73-.95-2-.94-2h-3.27v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2h-11.58c-.13 0-.25-.11-.25-.25z"/></g><g id="alarm-add"><path d="M7.88 3.39l-1.28-1.53-4.6 3.85 1.29 1.53 4.59-3.85zm14.12 2.33l-4.6-3.86-1.29 1.53 4.6 3.86 1.29-1.53zm-10-1.72c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm1-11h-2v3h-3v2h3v3h2v-3h3v-2h-3v-3z"/></g><g id="alarm-off"><path d="M12 6c3.87 0 7 3.13 7 7 0 .84-.16 1.65-.43 2.4l1.52 1.52c.58-1.19.91-2.51.91-3.92 0-4.97-4.03-9-9-9-1.41 0-2.73.33-3.92.91l1.52 1.52c.75-.27 1.56-.43 2.4-.43zm10-.28l-4.6-3.86-1.29 1.53 4.6 3.86 1.29-1.53zm-19.08-3.43l-1.27 1.28 1.33 1.33-1.11.93 1.42 1.42 1.11-.94.8.8c-1.37 1.58-2.2 3.64-2.2 5.89 0 4.97 4.02 9 9 9 2.25 0 4.31-.83 5.89-2.2l2.2 2.2 1.27-1.27-17.47-17.46-.97-.98zm13.55 16.1c-1.21 1-2.77 1.61-4.47 1.61-3.87 0-7-3.13-7-7 0-1.7.61-3.26 1.61-4.47l9.86 9.86zm-8.45-15.11l-1.42-1.42-.86.71 1.42 1.42.86-.71z"/></g><g id="alarm-on"><path d="M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86 1.29-1.53zm-14.12-2.33l-1.28-1.53-4.6 3.85 1.29 1.53 4.59-3.85zm4.12.61c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm-1.46-5.47l-2.13-2.13-1.06 1.06 3.18 3.18 6-6-1.06-1.06-4.93 4.95z"/></g><g id="alarm"><path d="M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86 1.29-1.53zm-14.12-2.33l-1.28-1.53-4.6 3.85 1.29 1.53 4.59-3.85zm4.62 4.61h-1.5v6l4.75 2.85.75-1.23-4-2.37v-5.25zm-.5-4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/></g><g id="android"><path d="M6 18c0 .55.45 1 1 1h1v3.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5v-3.5h2v3.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5v-3.5h1c.55 0 1-.45 1-1v-10h-12v10zm-2.5-10c-.83 0-1.5.67-1.5 1.5v7c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5v-7c0-.83-.67-1.5-1.5-1.5zm17 0c-.83 0-1.5.67-1.5 1.5v7c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5v-7c0-.83-.67-1.5-1.5-1.5zm-4.97-5.84l1.3-1.3c.2-.2.2-.51 0-.71-.2-.2-.51-.2-.71 0l-1.48 1.48c-.79-.4-1.69-.63-2.64-.63-.96 0-1.86.23-2.66.63l-1.49-1.48c-.2-.2-.51-.2-.71 0-.2.2-.2.51 0 .71l1.31 1.31c-1.48 1.09-2.45 2.84-2.45 4.83h12c0-1.99-.97-3.75-2.47-4.84zm-5.53 2.84h-1v-1h1v1zm5 0h-1v-1h1v1z"/></g><g id="announcement"><path d="M20 2h-16c-1.1 0-1.99.9-1.99 2l-.01 18 4-4h14c1.1 0 2-.9 2-2v-12c0-1.1-.9-2-2-2zm-7 9h-2v-6h2v6zm0 4h-2v-2h2v2z"/></g><g id="apps"><path d="M4 8h4v-4h-4v4zm6 12h4v-4h-4v4zm-6 0h4v-4h-4v4zm0-6h4v-4h-4v4zm6 0h4v-4h-4v4zm6-10v4h4v-4h-4zm-6 4h4v-4h-4v4zm6 6h4v-4h-4v4zm0 6h4v-4h-4v4z"/></g><g id="archive"><path d="M20.54 5.23l-1.39-1.68c-.27-.34-.68-.55-1.15-.55h-12c-.47 0-.88.21-1.16.55l-1.38 1.68c-.29.34-.46.79-.46 1.27v12.5c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-12.5c0-.48-.17-.93-.46-1.27zm-8.54 12.27l-5.5-5.5h3.5v-2h4v2h3.5l-5.5 5.5zm-6.88-12.5l.81-1h12l.94 1h-13.75z"/></g><g id="arrow-back"><path d="M20 11h-12.17l5.59-5.59-1.42-1.41-8 8 8 8 1.41-1.41-5.58-5.59h12.17v-2z"/></g><g id="arrow-drop-down-circle"><path d="M12 2c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm0 12l-4-4h8l-4 4z"/></g><g id="arrow-drop-down"><path d="M7 10l5 5 5-5z"/></g><g id="arrow-drop-up"><path d="M7 14l5-5 5 5z"/></g><g id="arrow-forward"><path d="M12 4l-1.41 1.41 5.58 5.59h-12.17v2h12.17l-5.58 5.59 1.41 1.41 8-8z"/></g><g id="aspect-ratio"><path d="M19 12h-2v3h-3v2h5v-5zm-12-3h3v-2h-5v5h2v-3zm14-6h-18c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2zm0 16.01h-18v-14.02h18v14.02z"/></g><g id="assessment"><path d="M19 3h-14c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2zm-10 14h-2v-7h2v7zm4 0h-2v-10h2v10zm4 0h-2v-4h2v4z"/></g><g id="assignment-ind"><path d="M19 3h-4.18c-.42-1.16-1.52-2-2.82-2-1.3 0-2.4.84-2.82 2h-4.18c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 4c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm6 12h-12v-1.4c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1.4z"/></g><g id="assignment-late"><path d="M19 3h-4.18c-.42-1.16-1.52-2-2.82-2-1.3 0-2.4.84-2.82 2h-4.18c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2zm-6 15h-2v-2h2v2zm0-4h-2v-6h2v6zm-1-9c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"/></g><g id="assignment"><path d="M19 3h-4.18c-.42-1.16-1.52-2-2.82-2-1.3 0-2.4.84-2.82 2h-4.18c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2 14h-7v-2h7v2zm3-4h-10v-2h10v2zm0-4h-10v-2h10v2z"/></g><g id="assignment-returned"><path d="M19 3h-4.18c-.42-1.16-1.52-2-2.82-2-1.3 0-2.4.84-2.82 2h-4.18c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 15l-5-5h3v-4h4v4h3l-5 5z"/></g><g id="assignment-return"><path d="M19 3h-4.18c-.42-1.16-1.52-2-2.82-2-1.3 0-2.4.84-2.82 2h-4.18c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm4 12h-4v3l-5-5 5-5v3h4v4z"/></g><g id="assignment-turned-in"><path d="M19 3h-4.18c-.42-1.16-1.52-2-2.82-2-1.3 0-2.4.84-2.82 2h-4.18c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-2 14l-4-4 1.41-1.41 2.59 2.58 6.59-6.59 1.41 1.42-8 8z"/></g><g id="attachment"><path d="M7.5 18c-3.04 0-5.5-2.46-5.5-5.5s2.46-5.5 5.5-5.5h10.5c2.21 0 4 1.79 4 4s-1.79 4-4 4h-8.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5h7.5v1.5h-7.5c-.55 0-1 .45-1 1s.45 1 1 1h8.5c1.38 0 2.5-1.12 2.5-2.5s-1.12-2.5-2.5-2.5h-10.5c-2.21 0-4 1.79-4 4s1.79 4 4 4h9.5v1.5h-9.5z"/></g><g id="autorenew"><path d="M12 6v3l4-4-4-4v3c-4.42 0-8 3.58-8 8 0 1.57.46 3.03 1.24 4.26l1.46-1.46c-.45-.83-.7-1.79-.7-2.8 0-3.31 2.69-6 6-6zm6.76 1.74l-1.46 1.46c.44.84.7 1.79.7 2.8 0 3.31-2.69 6-6 6v-3l-4 4 4 4v-3c4.42 0 8-3.58 8-8 0-1.57-.46-3.03-1.24-4.26z"/></g><g id="backspace"><path d="M22 3h-15c-.69 0-1.23.35-1.59.88l-5.41 8.12 5.41 8.11c.36.53.9.89 1.59.89h15c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2zm-3 12.59l-1.41 1.41-3.59-3.59-3.59 3.59-1.41-1.41 3.59-3.59-3.59-3.59 1.41-1.41 3.59 3.59 3.59-3.59 1.41 1.41-3.59 3.59 3.59 3.59z"/></g><g id="backup"><path d="M19.35 10.04c-.68-3.45-3.71-6.04-7.35-6.04-2.89 0-5.4 1.64-6.65 4.04-3.01.32-5.35 2.87-5.35 5.96 0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zm-5.35 2.96v4h-4v-4h-3l5-5 5 5h-3z"/></g><g id="block"><path d="M12 2c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm-8 10c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69l-11.21 11.21c-1.06-1.35-1.69-3.05-1.69-4.9zm8 8c-1.85 0-3.55-.63-4.9-1.69l11.21-11.21c1.06 1.35 1.69 3.05 1.69 4.9 0 4.42-3.58 8-8 8z"/></g><g id="bookmark-outline"><path d="M17 3h-10c-1.1 0-1.99.9-1.99 2l-.01 16 7-3 7 3v-16c0-1.1-.9-2-2-2zm0 15l-5-2.18-5 2.18v-13h10v13z"/></g><g id="bookmark"><path d="M17 3h-10c-1.1 0-1.99.9-1.99 2l-.01 16 7-3 7 3v-16c0-1.1-.9-2-2-2z"/></g><g id="book"><path d="M18 2h-12c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-16c0-1.1-.9-2-2-2zm-12 2h5v8l-2.5-1.5-2.5 1.5v-8z"/></g><g id="bug-report"><path d="M20 8h-2.81c-.45-.78-1.07-1.45-1.82-1.96l1.63-1.63-1.41-1.41-2.17 2.17c-.46-.11-.93-.17-1.42-.17-.49 0-.96.06-1.41.17l-2.18-2.17-1.41 1.41 1.62 1.63c-.74.51-1.36 1.18-1.81 1.96h-2.81v2h2.09c-.05.33-.09.66-.09 1v1h-2v2h2v1c0 .34.04.67.09 1h-2.09v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3h2.81v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1h2.09v-2zm-6 8h-4v-2h4v2zm0-4h-4v-2h4v2z"/></g><g id="cached"><path d="M19 8l-4 4h3c0 3.31-2.69 6-6 6-1.01 0-1.97-.25-2.8-.7l-1.46 1.46c1.23.78 2.69 1.24 4.26 1.24 4.42 0 8-3.58 8-8h3l-4-4zm-13 4c0-3.31 2.69-6 6-6 1.01 0 1.97.25 2.8.7l1.46-1.46c-1.23-.78-2.69-1.24-4.26-1.24-4.42 0-8 3.58-8 8h-3l4 4 4-4h-3z"/></g><g id="cancel"><path d="M12 2c-5.53 0-10 4.47-10 10s4.47 10 10 10 10-4.47 10-10-4.47-10-10-10zm5 13.59l-1.41 1.41-3.59-3.59-3.59 3.59-1.41-1.41 3.59-3.59-3.59-3.59 1.41-1.41 3.59 3.59 3.59-3.59 1.41 1.41-3.59 3.59 3.59 3.59z"/></g><g id="check-box-outline-blank"><path d="M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/></g><g id="check-box"><path d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></g><g id="check"><path d="M9 16.17l-4.17-4.17-1.42 1.41 5.59 5.59 12-12-1.41-1.41z"/></g><g id="chevron-left"><path d="M15.41 7.41l-1.41-1.41-6 6 6 6 1.41-1.41-4.58-4.59z"/></g><g id="chevron-right"><path d="M10 6l-1.41 1.41 4.58 4.59-4.58 4.59 1.41 1.41 6-6z"/></g><g id="class"><path d="M18 2h-12c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-16c0-1.1-.9-2-2-2zm-12 2h5v8l-2.5-1.5-2.5 1.5v-8z"/></g><g id="clear"><path d="M19 6.41l-1.41-1.41-5.59 5.59-5.59-5.59-1.41 1.41 5.59 5.59-5.59 5.59 1.41 1.41 5.59-5.59 5.59 5.59 1.41-1.41-5.59-5.59z"/></g><g id="close"><path d="M19 6.41l-1.41-1.41-5.59 5.59-5.59-5.59-1.41 1.41 5.59 5.59-5.59 5.59 1.41 1.41 5.59-5.59 5.59 5.59 1.41-1.41-5.59-5.59z"/></g><g id="cloud-circle"><path d="M12 2c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm4.5 14h-8.5c-1.66 0-3-1.34-3-3s1.34-3 3-3l.14.01c.44-1.73 1.99-3.01 3.86-3.01 2.21 0 4 1.79 4 4h.5c1.38 0 2.5 1.12 2.5 2.5s-1.12 2.5-2.5 2.5z"/></g><g id="cloud-done"><path d="M19.35 10.04c-.68-3.45-3.71-6.04-7.35-6.04-2.89 0-5.4 1.64-6.65 4.04-3.01.32-5.35 2.87-5.35 5.96 0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zm-9.35 6.96l-3.5-3.5 1.41-1.41 2.09 2.08 5.18-5.17 1.41 1.41-6.59 6.59z"/></g><g id="cloud-download"><path d="M19.35 10.04c-.68-3.45-3.71-6.04-7.35-6.04-2.89 0-5.4 1.64-6.65 4.04-3.01.32-5.35 2.87-5.35 5.96 0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zm-2.35 2.96l-5 5-5-5h3v-4h4v4h3z"/></g><g id="cloud-off"><path d="M19.35 10.04c-.68-3.45-3.71-6.04-7.35-6.04-1.48 0-2.85.43-4.01 1.17l1.46 1.46c.76-.4 1.63-.63 2.55-.63 3.04 0 5.5 2.46 5.5 5.5v.5h1.5c1.66 0 3 1.34 3 3 0 1.13-.64 2.11-1.56 2.62l1.45 1.45c1.27-.91 2.11-2.39 2.11-4.07 0-2.64-2.05-4.78-4.65-4.96zm-16.35-4.77l2.75 2.74c-3.19.14-5.75 2.76-5.75 5.99 0 3.31 2.69 6 6 6h11.73l2 2 1.27-1.27-16.73-16.73-1.27 1.27zm4.73 4.73l8 8h-9.73c-2.21 0-4-1.79-4-4s1.79-4 4-4h1.73z"/></g><g id="cloud"><path d="M19.35 10.04c-.68-3.45-3.71-6.04-7.35-6.04-2.89 0-5.4 1.64-6.65 4.04-3.01.32-5.35 2.87-5.35 5.96 0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96z"/></g><g id="cloud-queue"><path d="M19.35 10.04c-.68-3.45-3.71-6.04-7.35-6.04-2.89 0-5.4 1.64-6.65 4.04-3.01.32-5.35 2.87-5.35 5.96 0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zm-.35 7.96h-13c-2.21 0-4-1.79-4-4s1.79-4 4-4h.71c.66-2.31 2.77-4 5.29-4 3.04 0 5.5 2.46 5.5 5.5v.5h1.5c1.66 0 3 1.34 3 3s-1.34 3-3 3z"/></g><g id="cloud-upload"><path d="M19.35 10.04c-.68-3.45-3.71-6.04-7.35-6.04-2.89 0-5.4 1.64-6.65 4.04-3.01.32-5.35 2.87-5.35 5.96 0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zm-5.35 2.96v4h-4v-4h-3l5-5 5 5h-3z"/></g><g id="content-copy"><path d="M16 1h-12c-1.1 0-2 .9-2 2v14h2v-14h12v-2zm3 4h-11c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2zm0 16h-11v-14h11v14z"/></g><g id="content-cut"><path d="M9.64 7.64c.23-.5.36-1.05.36-1.64 0-2.21-1.79-4-4-4s-4 1.79-4 4 1.79 4 4 4c.59 0 1.14-.13 1.64-.36l2.36 2.36-2.36 2.36c-.5-.23-1.05-.36-1.64-.36-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4c0-.59-.13-1.14-.36-1.64l2.36-2.36 7 7h3v-1l-12.36-12.36zm-3.64.36c-1.1 0-2-.89-2-2s.9-2 2-2 2 .89 2 2-.9 2-2 2zm0 12c-1.1 0-2-.89-2-2s.9-2 2-2 2 .89 2 2-.9 2-2 2zm6-7.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5.5.22.5.5-.22.5-.5.5zm7-9.5l-6 6 2 2 7-7v-1z"/></g><g id="content-paste"><path d="M19 2h-4.18c-.42-1.16-1.52-2-2.82-2-1.3 0-2.4.84-2.82 2h-4.18c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-16c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm7 18h-14v-16h2v3h10v-3h2v16z"/></g><g id="create"><path d="M3 17.25v3.75h3.75l11.06-11.06-3.75-3.75-11.06 11.06zm17.71-10.21c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"/></g><g id="credit-card"><path d="M4 12h16v6h-16z"/><path d="M20 4h-16c-1.11 0-1.99.89-1.99 2l-.01 12c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2v-12c0-1.11-.89-2-2-2zm0 14h-16v-6h16v6zm0-10h-16v-2h16v2z"/></g><g id="dashboard"><path d="M3 13h8v-10h-8v10zm0 8h8v-6h-8v6zm10 0h8v-10h-8v10zm0-18v6h8v-6h-8z"/></g><g id="delete"><path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2v-12h-12v12zm13-15h-3.5l-1-1h-5l-1 1h-3.5v2h14v-2z"/></g><g id="description"><path d="M14 2h-8c-1.1 0-1.99.9-1.99 2l-.01 16c0 1.1.89 2 1.99 2h12.01c1.1 0 2-.9 2-2v-12l-6-6zm2 16h-8v-2h8v2zm0-4h-8v-2h8v2zm-3-5v-5.5l5.5 5.5h-5.5z"/></g><g id="developer-mode-tv"><path d="M4 5h16v2h2v-2c0-1.1-.9-2-2-2h-16c-1.1 0-2 .9-2 2v2h2v-2zm3.55 8.83l-2.83-2.83 2.83-2.83-1.41-1.41-4.25 4.24 4.24 4.24 1.42-1.41zm12.45 3.17h-16v-2h-2v2c0 1.1.9 2 2 2h4v2h8v-2h4c1.1 0 1.99-.9 1.99-2v-2h-1.99v2zm2-6.01l-4.24-4.24-1.41 1.41 2.82 2.84-2.83 2.83 1.41 1.41 4.25-4.23v-.02z"/></g><g id="dns"><path d="M20 13h-16c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zm-13 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm13-16h-16c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zm-13 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></g><g id="done-all"><path d="M18 7l-1.41-1.41-6.34 6.34 1.41 1.41 6.34-6.34zm4.24-1.41l-10.58 10.58-4.18-4.17-1.41 1.41 5.59 5.59 12-12-1.42-1.41zm-21.83 7.82l5.59 5.59 1.41-1.41-5.58-5.59-1.42 1.41z"/></g><g id="done"><path d="M9 16.17l-4.17-4.17-1.42 1.41 5.59 5.59 12-12-1.41-1.41z"/></g><g id="drafts"><path d="M21.99 8c0-.72-.37-1.35-.94-1.7l-9.05-5.3-9.05 5.3c-.57.35-.95.98-.95 1.7v10c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2l-.01-10zm-9.99 5l-8.26-5.16 8.26-4.84 8.26 4.84-8.26 5.16z"/></g><g id="drawer"><path d="M20,4H4C2.8,4,2,4.8,2,6v12c0,1.2,0.8,2,2,2h16c1,0,2-0.8,2-2V6C22,4.8,21,4,20,4z M20,18h-6V6h6V18z"/></g><g id="error"><path d="M12 2c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm1 15h-2v-2h2v2zm0-4h-2v-6h2v6z"/></g><g id="event"><path d="M17 12h-5v5h5v-5zm-1-11v2h-8v-2h-2v2h-1c-1.11 0-1.99.9-1.99 2l-.01 14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2h-1v-2h-2zm3 18h-14v-11h14v11z"/></g><g id="exit-to-app"><path d="M10.09 15.59l1.41 1.41 5-5-5-5-1.41 1.41 2.58 2.59h-9.67v2h9.67l-2.58 2.59zm8.91-12.59h-14c-1.11 0-2 .9-2 2v4h2v-4h14v14h-14v-4h-2v4c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2z"/></g><g id="expand-less"><path d="M12 8l-6 6 1.41 1.41 4.59-4.58 4.59 4.58 1.41-1.41z"/></g><g id="expand-more"><path d="M16.59 8.59l-4.59 4.58-4.59-4.58-1.41 1.41 6 6 6-6z"/></g><g id="explore"><path d="M12 10.9c-.61 0-1.1.49-1.1 1.1s.49 1.1 1.1 1.1c.61 0 1.1-.49 1.1-1.1s-.49-1.1-1.1-1.1zm0-8.9c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm2.19 12.19l-8.19 3.81 3.81-8.19 8.19-3.81-3.81 8.19z"/></g><g id="extension"><path d="M20.5 11h-1.5v-4c0-1.1-.9-2-2-2h-4v-1.5c0-1.38-1.12-2.5-2.5-2.5s-2.5 1.12-2.5 2.5v1.5h-4c-1.1 0-1.99.9-1.99 2v3.8h1.49c1.49 0 2.7 1.21 2.7 2.7s-1.21 2.7-2.7 2.7h-1.5v3.8c0 1.1.9 2 2 2h3.8v-1.5c0-1.49 1.21-2.7 2.7-2.7 1.49 0 2.7 1.21 2.7 2.7v1.5h3.8c1.1 0 2-.9 2-2v-4h1.5c1.38 0 2.5-1.12 2.5-2.5s-1.12-2.5-2.5-2.5z"/></g><g id="face-unlock"><path d="M14.69 17.1c-.74.58-1.7.9-2.69.9s-1.95-.32-2.69-.9c-.22-.17-.53-.13-.7.09-.17.22-.13.53.09.7.91.72 2.09 1.11 3.3 1.11s2.39-.39 3.31-1.1c.22-.17.26-.48.09-.7-.17-.23-.49-.26-.71-.1z"/><circle cx="8.5" cy="12.5" r="1"/><path d="M12 0c-6.63 0-12 5.37-12 12s5.37 12 12 12 12-5.37 12-12-5.37-12-12-12zm7.96 14.82c-1.09 3.74-4.27 6.46-8.04 6.46-3.78 0-6.96-2.72-8.04-6.47-1.19-.11-2.13-1.18-2.13-2.52 0-1.27.85-2.31 1.97-2.5 2.09-1.46 3.8-3.49 4.09-5.05v-.01c1.35 2.63 6.3 5.19 11.83 5.06l.3-.03c1.28 0 2.31 1.14 2.31 2.54 0 1.38-1.02 2.51-2.29 2.52z"/><circle cx="15.5" cy="12.5" r="1"/></g><g id="favorite-outline"><path d="M16.5 3c-1.74 0-3.41.81-4.5 2.09-1.09-1.28-2.76-2.09-4.5-2.09-3.08 0-5.5 2.42-5.5 5.5 0 3.78 3.4 6.86 8.55 11.54l1.45 1.31 1.45-1.32c5.15-4.67 8.55-7.75 8.55-11.53 0-3.08-2.42-5.5-5.5-5.5zm-4.4 15.55l-.1.1-.1-.1c-4.76-4.31-7.9-7.16-7.9-10.05 0-2 1.5-3.5 3.5-3.5 1.54 0 3.04.99 3.57 2.36h1.87c.52-1.37 2.02-2.36 3.56-2.36 2 0 3.5 1.5 3.5 3.5 0 2.89-3.14 5.74-7.9 10.05z"/></g><g id="favorite"><path d="M12 21.35l-1.45-1.32c-5.15-4.67-8.55-7.75-8.55-11.53 0-3.08 2.42-5.5 5.5-5.5 1.74 0 3.41.81 4.5 2.09 1.09-1.28 2.76-2.09 4.5-2.09 3.08 0 5.5 2.42 5.5 5.5 0 3.78-3.4 6.86-8.55 11.54l-1.45 1.31z"/></g><g id="file-download"><path d="M19 9h-4v-6h-6v6h-4l7 7 7-7zm-14 9v2h14v-2h-14z"/></g><g id="file-map"><path d="M12 6.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm7-5.5h-14c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2zm-6.5 16h-1c-.95-4.09-3.99-5.84-3.99-9 0-2.49 2-4.5 4.49-4.5s4.51 2.01 4.51 4.5c0 3.16-3.06 4.91-4.01 9z"/></g><g id="file-upload"><path d="M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2h-14z"/></g><g id="filter-list"><path d="M10 18h4v-2h-4v2zm-7-12v2h18v-2h-18zm3 7h12v-2h-12v2z"/></g><g id="find-in-page"><path d="M20 19.59v-11.59l-6-6h-8c-1.1 0-1.99.9-1.99 2l-.01 16c0 1.1.89 2 1.99 2h12.01c.45 0 .85-.15 1.19-.4l-4.43-4.43c-.8.52-1.74.83-2.76.83-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5c0 1.02-.31 1.96-.83 2.75l3.83 3.84zm-11-6.59c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3z"/></g><g id="find-replace"><path d="M11 6c1.38 0 2.63.56 3.54 1.46l-2.54 2.54h6v-6l-2.05 2.05c-1.27-1.27-3.02-2.05-4.95-2.05-3.53 0-6.43 2.61-6.92 6h2.02c.46-2.28 2.48-4 4.9-4zm5.64 9.14c.66-.9 1.12-1.97 1.28-3.14h-2.02c-.46 2.28-2.48 4-4.9 4-1.38 0-2.63-.56-3.54-1.46l2.54-2.54h-6v6l2.05-2.05c1.27 1.27 3.02 2.05 4.95 2.05 1.55 0 2.98-.51 4.14-1.36l4.86 4.85 1.49-1.49-4.85-4.86z"/></g><g id="flag"><path d="M14.4 6l-.4-2h-9v17h2v-7h5.6l.4 2h7v-10z"/></g><g id="flip-to-back"><path d="M9 7h-2v2h2v-2zm0 4h-2v2h2v-2zm0-8c-1.11 0-2 .9-2 2h2v-2zm4 12h-2v2h2v-2zm6-12v2h2c0-1.1-.9-2-2-2zm-6 0h-2v2h2v-2zm-4 14v-2h-2c0 1.1.89 2 2 2zm10-4h2v-2h-2v2zm0-4h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zm-14-10h-2v12c0 1.1.89 2 2 2h12v-2h-12v-12zm10-2h2v-2h-2v2zm0 12h2v-2h-2v2z"/></g><g id="flip-to-front"><path d="M3 13h2v-2h-2v2zm0 4h2v-2h-2v2zm2 4v-2h-2c0 1.1.89 2 2 2zm-2-12h2v-2h-2v2zm12 12h2v-2h-2v2zm4-18h-10c-1.11 0-2 .9-2 2v10c0 1.1.89 2 2 2h10c1.1 0 2-.9 2-2v-10c0-1.1-.9-2-2-2zm0 12h-10v-10h10v10zm-8 6h2v-2h-2v2zm-4 0h2v-2h-2v2z"/></g><g id="folder-open"><path d="M20 6h-8l-2-2h-6c-1.1 0-1.99.9-1.99 2l-.01 12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-10c0-1.1-.9-2-2-2zm0 12h-16v-10h16v10z"/></g><g id="folder"><path d="M10 4h-6c-1.1 0-1.99.9-1.99 2l-.01 12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-10c0-1.1-.9-2-2-2h-8l-2-2z"/></g><g id="folder-shared"><path d="M20 6h-8l-2-2h-6c-1.1 0-1.99.9-1.99 2l-.01 12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-10c0-1.1-.9-2-2-2zm-5 3c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm4 8h-8v-1c0-1.33 2.67-2 4-2s4 .67 4 2v1z"/></g><g id="forward"><path d="M12 8v-4l8 8-8 8v-4h-8v-8z"/></g><g id="fullscreen-exit"><path d="M5 16h3v3h2v-5h-5v2zm3-8h-3v2h5v-5h-2v3zm6 11h2v-3h3v-2h-5v5zm2-11v-3h-2v5h5v-2h-3z"/></g><g id="fullscreen"><path d="M7 14h-2v5h5v-2h-3v-3zm-2-4h2v-3h3v-2h-5v5zm12 7h-3v2h5v-5h-2v3zm-3-12v2h3v3h2v-5h-5z"/></g><g id="gesture"><path d="M4.59 6.89c.7-.71 1.4-1.35 1.71-1.22.5.2 0 1.03-.3 1.52-.25.42-2.86 3.89-2.86 6.31 0 1.28.48 2.34 1.34 2.98.75.56 1.74.73 2.64.46 1.07-.31 1.95-1.4 3.06-2.77 1.21-1.49 2.83-3.44 4.08-3.44 1.63 0 1.65 1.01 1.76 1.79-3.78.64-5.38 3.67-5.38 5.37 0 1.7 1.44 3.09 3.21 3.09 1.63 0 4.29-1.33 4.69-6.1h2.46v-2.5h-2.47c-.15-1.65-1.09-4.2-4.03-4.2-2.25 0-4.18 1.91-4.94 2.84-.58.73-2.06 2.48-2.29 2.72-.25.3-.68.84-1.11.84-.45 0-.72-.83-.36-1.92.35-1.09 1.4-2.86 1.85-3.52.78-1.14 1.3-1.92 1.3-3.28 0-2.17-1.64-2.86-2.51-2.86-1.32 0-2.47 1-2.72 1.25-.36.36-.66.66-.88.93l1.75 1.71zm9.29 11.66c-.31 0-.74-.26-.74-.72 0-.6.73-2.2 2.87-2.76-.3 2.69-1.43 3.48-2.13 3.48z"/></g><g id="get-app"><path d="M19 9h-4v-6h-6v6h-4l7 7 7-7zm-14 9v2h14v-2h-14z"/></g><g id="grade"><path d="M12 17.27l6.18 3.73-1.64-7.03 5.46-4.73-7.19-.61-2.81-6.63-2.81 6.63-7.19.61 5.46 4.73-1.64 7.03z"/></g><g id="group-work"><path d="M12 2c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm-4 15.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5zm1.5-9.5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5-2.5-1.12-2.5-2.5zm6.5 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"/></g><g id="help"><path d="M12 2c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92c-.72.73-1.17 1.33-1.17 2.83h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2h-2c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"/></g><g id="highlight-remove"><path d="M14.59 8l-2.59 2.59-2.59-2.59-1.41 1.41 2.59 2.59-2.59 2.59 1.41 1.41 2.59-2.59 2.59 2.59 1.41-1.41-2.59-2.59 2.59-2.59-1.41-1.41zm-2.59-6c-5.53 0-10 4.47-10 10s4.47 10 10 10 10-4.47 10-10-4.47-10-10-10zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></g><g id="history"><path opacity=".9" d="M13 3c-4.97 0-9 4.03-9 9h-3l3.89 3.89.07.14 4.04-4.03h-3c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42c1.63 1.63 3.87 2.64 6.36 2.64 4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08v-4.25h-1.5z"/></g><g id="home"><path d="M10 20v-6h4v6h5v-8h3l-10-9-10 9h3v8z"/></g><g id="https"><path d="M18 8h-1v-2c0-2.76-2.24-5-5-5s-5 2.24-5 5v2h-1c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9h-6.2v-2c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"/></g><g id="inbox"><path d="M19 3h-14.01c-1.1 0-1.98.9-1.98 2l-.01 14c0 1.1.89 2 1.99 2h14.01c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2zm0 12h-4c0 1.66-1.34 3-3 3s-3-1.34-3-3h-4.01v-10h14.01v10zm-3-5h-2v-3h-4v3h-2l4 4 4-4z"/></g><g id="info-outline"><path d="M11 17h2v-6h-2v6zm1-15c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-1-11h2v-2h-2v2z"/></g><g id="info"><path d="M12 2c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm1 15h-2v-6h2v6zm0-8h-2v-2h2v2z"/></g><g id="input"><path d="M21 3.01h-18c-1.1 0-2 .9-2 2v3.99h2v-4.01h18v14.03h-18v-4.02h-2v4.01c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98v-14c0-1.11-.9-2-2-2zm-10 12.99l4-4-4-4v3h-10v2h10v3z"/></g><g id="invert-colors"><path d="M17.66 7.93l-5.66-5.66-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31 1.56 1.56 3.61 2.34 5.66 2.34 2.05 0 4.1-.78 5.66-2.34 3.12-3.12 3.12-8.19 0-11.31zm-5.66 11.66c-1.6 0-3.11-.62-4.24-1.76-1.14-1.14-1.76-2.64-1.76-4.24s.62-3.11 1.76-4.24l4.24-4.25v14.49z"/></g><g id="label-outline"><path d="M17.63 5.84c-.36-.51-.96-.84-1.63-.84l-11 .01c-1.1 0-2 .89-2 1.99v10c0 1.1.9 1.99 2 1.99l11 .01c.67 0 1.27-.33 1.63-.84l4.37-6.16-4.37-6.16zm-1.63 11.16h-11v-10h11l3.55 5-3.55 5z"/></g><g id="label"><path d="M17.63 5.84c-.36-.51-.96-.84-1.63-.84l-11 .01c-1.1 0-2 .89-2 1.99v10c0 1.1.9 1.99 2 1.99l11 .01c.67 0 1.27-.33 1.63-.84l4.37-6.16-4.37-6.16z"/></g><g id="language"><path d="M11.99 2c-5.52 0-9.99 4.48-9.99 10s4.47 10 9.99 10c5.53 0 10.01-4.48 10.01-10s-4.48-10-10.01-10zm6.93 6h-2.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56zm-6.92-3.96c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zm-7.74 9.96c-.16-.64-.26-1.31-.26-2s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2 0 .68.06 1.34.14 2h-3.38zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56zm2.95-8h-2.95c.96-1.66 2.49-2.93 4.33-3.56-.6 1.11-1.06 2.31-1.38 3.56zm3.97 11.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zm2.34-5.96h-4.68c-.09-.66-.16-1.32-.16-2 0-.68.07-1.35.16-2h4.68c.09.65.16 1.32.16 2 0 .68-.07 1.34-.16 2zm.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56zm1.77-5.56c.08-.66.14-1.32.14-2 0-.68-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2h-3.38z"/></g><g id="launch"><path d="M19 19h-14v-14h7v-2h-7c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zm-5-16v2h3.59l-9.83 9.83 1.41 1.41 9.83-9.83v3.59h2v-7h-7z"/></g><g id="link"><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4v-1.9h-4c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9h-4c-1.71 0-3.1-1.39-3.1-3.1zm4.1 1h8v-2h-8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4v1.9h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/></g><g id="list"><path d="M3 13h2v-2h-2v2zm0 4h2v-2h-2v2zm0-8h2v-2h-2v2zm4 4h14v-2h-14v2zm0 4h14v-2h-14v2zm0-10v2h14v-2h-14z"/></g><g id="lock-open"><path d="M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1v-2c0-2.76-2.24-5-5-5s-5 2.24-5 5h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2h-9.1c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-10c0-1.1-.9-2-2-2zm0 12h-12v-10h12v10z"/></g><g id="lock-outline"><path d="M18 8h-1v-2c0-2.76-2.24-5-5-5s-5 2.24-5 5v2h-1c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-10c0-1.1-.9-2-2-2zm-6-5.1c1.71 0 3.1 1.39 3.1 3.1v2h-6.1v-2h-.1c0-1.71 1.39-3.1 3.1-3.1zm6 17.1h-12v-10h12v10zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z"/></g><g id="lock"><path d="M18 8h-1v-2c0-2.76-2.24-5-5-5s-5 2.24-5 5v2h-1c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9h-6.2v-2c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"/></g><g id="loyalty"><path d="M21.41 11.58l-9-9c-.36-.36-.86-.58-1.41-.58h-7c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zm-15.91-4.58c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm11.77 8.27l-4.27 4.27-4.27-4.27c-.45-.46-.73-1.08-.73-1.77 0-1.38 1.12-2.5 2.5-2.5.69 0 1.32.28 1.77.74l.73.72.73-.73c.45-.45 1.08-.73 1.77-.73 1.38 0 2.5 1.12 2.5 2.5 0 .69-.28 1.32-.73 1.77z"/></g><g id="mail"><path d="M20 4h-16c-1.1 0-1.99.9-1.99 2l-.01 12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-12c0-1.1-.9-2-2-2zm0 4l-8 5-8-5v-2l8 5 8-5v2z"/></g><g id="markunread-mailbox"><path d="M20 6h-10v6h-2v-8h6v-4h-8v6h-2c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-12c0-1.1-.9-2-2-2z"/></g><g id="markunread"><path d="M20 4h-16c-1.1 0-1.99.9-1.99 2l-.01 12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-12c0-1.1-.9-2-2-2zm0 4l-8 5-8-5v-2l8 5 8-5v2z"/></g><g id="menu"><path d="M3 18h18v-2h-18v2zm0-5h18v-2h-18v2zm0-7v2h18v-2h-18z"/></g><g id="more-horiz"><path d="M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></g><g id="more-vert"><path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></g><g id="note-add"><path d="M14 2h-8c-1.1 0-1.99.9-1.99 2l-.01 16c0 1.1.89 2 1.99 2h12.01c1.1 0 2-.9 2-2v-12l-6-6zm2 14h-3v3h-2v-3h-3v-2h3v-3h2v3h3v2zm-3-7v-5.5l5.5 5.5h-5.5z"/></g><g id="open-in-browser"><path d="M19 4h-14c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h4v-2h-4v-10h14v10h-4v2h4c1.1 0 2-.9 2-2v-12c0-1.1-.89-2-2-2zm-7 6l-4 4h3v6h2v-6h3l-4-4z"/></g><g id="open-in-new"><path d="M19 19h-14v-14h7v-2h-7c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zm-5-16v2h3.59l-9.83 9.83 1.41 1.41 9.83-9.83v3.59h2v-7h-7z"/></g><g id="open-with"><path d="M10 9h4v-3h3l-5-5-5 5h3v3zm-1 1h-3v-3l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3h-3l5 5 5-5h-3v-3z"/></g><g id="pageview"><path d="M11 8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm8-5h-14c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2zm-1.41 16l-3.83-3.83c-.8.52-1.74.83-2.76.83-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5c0 1.02-.31 1.96-.83 2.75l3.83 3.84-1.41 1.41z"/></g><g id="payment"><path d="M20 4h-16c-1.11 0-1.99.89-1.99 2l-.01 12c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2v-12c0-1.11-.89-2-2-2zm0 14h-16v-6h16v6zm0-10h-16v-2h16v2z"/></g><g id="perm-camera-mic"><path d="M20 5h-3.17l-1.83-2h-6l-1.83 2h-3.17c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h7v-2.09c-2.83-.48-5-2.94-5-5.91h2c0 2.21 1.79 4 4 4s4-1.79 4-4h2c0 2.97-2.17 5.43-5 5.91v2.09h7c1.1 0 2-.9 2-2v-12c0-1.1-.9-2-2-2zm-6 8c0 1.1-.9 2-2 2s-2-.9-2-2v-4c0-1.1.9-2 2-2s2 .9 2 2v4z"/></g><g id="perm-contact-cal"><path d="M19 3h-1v-2h-2v2h-8v-2h-2v2h-1c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2zm-7 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm6 12h-12v-1c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1z"/></g><g id="perm-data-setting"><path d="M18.99 11.5c.34 0 .67.03 1 .07l.01-11.57-20 20h11.56c-.04-.33-.07-.66-.07-1 0-4.14 3.36-7.5 7.5-7.5zm3.71 7.99c.02-.16.04-.32.04-.49 0-.17-.01-.33-.04-.49l1.06-.83c.09-.08.12-.21.06-.32l-1-1.73c-.06-.11-.19-.15-.31-.11l-1.24.5c-.26-.2-.54-.37-.85-.49l-.19-1.32c-.01-.12-.12-.21-.24-.21h-2c-.12 0-.23.09-.25.21l-.19 1.32c-.3.13-.59.29-.85.49l-1.24-.5c-.11-.04-.24 0-.31.11l-1 1.73c-.06.11-.04.24.06.32l1.06.83c-.02.16-.03.32-.03.49 0 .17.01.33.03.49l-1.06.83c-.09.08-.12.21-.06.32l1 1.73c.06.11.19.15.31.11l1.24-.5c.26.2.54.37.85.49l.19 1.32c.02.12.12.21.25.21h2c.12 0 .23-.09.25-.21l.19-1.32c.3-.13.59-.29.84-.49l1.25.5c.11.04.24 0 .31-.11l1-1.73c.06-.11.03-.24-.06-.32l-1.07-.83zm-3.71 1.01c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/></g><g id="perm-device-info"><path d="M13 7h-2v2h2v-2zm0 4h-2v6h2v-6zm4-9.99l-10-.01c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2v-18c0-1.1-.9-1.99-2-1.99zm0 17.99h-10v-14h10v14z"/></g><g id="perm-identity"><path d="M12 5.9c1.16 0 2.1.94 2.1 2.1s-.94 2.1-2.1 2.1-2.1-.94-2.1-2.1.94-2.1 2.1-2.1m0 9c2.97 0 6.1 1.46 6.1 2.1v1.1h-12.2v-1.1c0-.64 3.13-2.1 6.1-2.1m0-10.9c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 9c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4z"/></g><g id="perm-media"><path d="M2 6h-2v5h.01l-.01 9c0 1.1.9 2 2 2h18v-2h-18v-14zm20-2h-8l-2-2h-6c-1.1 0-1.99.9-1.99 2l-.01 12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-10c0-1.1-.9-2-2-2zm-15 11l4.5-6 3.5 4.51 2.5-3.01 3.5 4.5h-14z"/></g><g id="perm-phone-msg"><path d="M20 15.5c-1.25 0-2.45-.2-3.57-.57-.35-.11-.74-.03-1.02.24l-2.2 2.2c-2.83-1.44-5.15-3.75-6.59-6.58l2.2-2.21c.28-.27.36-.66.25-1.01-.37-1.12-.57-2.32-.57-3.57 0-.55-.45-1-1-1h-3.5c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zm-8-12.5v10l3-3h6v-7h-9z"/></g><g id="perm-scan-wifi"><path d="M12 3c-5.05 0-8.85 1.85-12 4.23l12 14.77 12-14.75c-3.15-2.38-6.95-4.25-12-4.25zm1 13h-2v-6h2v6zm-2-8v-2h2v2h-2z"/></g><g id="picture-in-picture"><path d="M19 7h-8v6h8v-6zm2-4h-18c-1.1 0-2 .9-2 2v14c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98v-14c0-1.1-.9-2-2-2zm0 16.01h-18v-14.03h18v14.03z"/></g><g id="polymer"><path d="M19 4h-4l-7.89 12.63-2.61-4.63 4.5-8h-4l-4.5 8 4.5 8h4l7.89-12.63 2.61 4.63-4.5 8h4l4.5-8z"/></g><g id="print"><path d="M19 8h-14c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11h-8v-5h8v5zm3-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9h-12v4h12v-4z"/></g><g id="query-builder"><path d="M11.99 2c-5.52 0-9.99 4.48-9.99 10s4.47 10 9.99 10c5.53 0 10.01-4.48 10.01-10s-4.48-10-10.01-10zm.01 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/><path d="M12.5 7h-1.5v6l5.25 3.15.75-1.23-4.5-2.67z"/></g><g id="question-answer"><path d="M21 6h-2v9h-13v2c0 .55.45 1 1 1h11l4 4v-15c0-.55-.45-1-1-1zm-4 6v-9c0-.55-.45-1-1-1h-13c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1z"/></g><g id="radio-button-off"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></g><g id="radio-button-on"><path d="M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/></g><g id="receipt"><path d="M18 17h-12v-2h12v2zm0-4h-12v-2h12v2zm0-4h-12v-2h12v2zm-15 13l1.5-1.5 1.5 1.5 1.5-1.5 1.5 1.5 1.5-1.5 1.5 1.5 1.5-1.5 1.5 1.5 1.5-1.5 1.5 1.5 1.5-1.5 1.5 1.5v-20l-1.5 1.5-1.5-1.5-1.5 1.5-1.5-1.5-1.5 1.5-1.5-1.5-1.5 1.5-1.5-1.5-1.5 1.5-1.5-1.5-1.5 1.5-1.5-1.5v20z"/></g><g id="redeem"><path d="M20 6h-2.18c.11-.31.18-.65.18-1 0-1.66-1.34-3-3-3-1.05 0-1.96.54-2.5 1.35l-.5.67-.5-.68c-.54-.8-1.45-1.34-2.5-1.34-1.66 0-3 1.34-3 3 0 .35.07.69.18 1h-2.18c-1.11 0-1.99.89-1.99 2l-.01 11c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2v-11c0-1.11-.89-2-2-2zm-5-2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-6 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm11 15h-16v-2h16v2zm0-5h-16v-6h5.08l-2.08 2.83 1.62 1.17 2.38-3.24 1-1.36 1 1.36 2.38 3.24 1.62-1.17-2.08-2.83h5.08v6z"/></g><g id="redo"><path d="M18.4 10.6c-1.85-1.61-4.25-2.6-6.9-2.6-4.65 0-8.58 3.03-9.96 7.22l2.36.78c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88l-3.62 3.62h9v-9l-3.6 3.6z"/></g><g id="refresh"><path d="M17.65 6.35c-1.45-1.45-3.44-2.35-5.65-2.35-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78l-3.22 3.22h7v-7l-2.35 2.35z"/></g><g id="remove-circle-outline"><path d="M7 11v2h10v-2h-10zm5-9c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></g><g id="remove-circle"><path d="M12 2c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm5 11h-10v-2h10v2z"/></g><g id="remove"><path d="M19 13h-14v-2h14v2z"/></g><g id="reorder"><path d="M3,15h18v-2H3V15z M3,19h18v-2H3V19z M3,11h18V9H3V11z M3,5v2h18V5H3z"/></g><g id="reply-all"><path d="M7 8v-3l-7 7 7 7v-3l-4-4 4-4zm6 1v-4l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z"/></g><g id="reply"><path d="M10 9v-4l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z"/></g><g id="report"><path d="M15.73 3h-7.46l-5.27 5.27v7.46l5.27 5.27h7.46l5.27-5.27v-7.46l-5.27-5.27zm-3.73 14.3c-.72 0-1.3-.58-1.3-1.3 0-.72.58-1.3 1.3-1.3.72 0 1.3.58 1.3 1.3 0 .72-.58 1.3-1.3 1.3zm1-4.3h-2v-6h2v6z"/></g><g id="report-problem"><path d="M1 21h22l-11-19-11 19zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"/></g><g id="restore"><path d="M13 3c-4.97 0-9 4.03-9 9h-3l3.89 3.89.07.14 4.04-4.03h-3c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42c1.63 1.63 3.87 2.64 6.36 2.64 4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08v-4.25h-1.5z"/></g><g id="room"><path d="M12 2c-3.87 0-7 3.13-7 7 0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"/></g><g id="rotation-3d"><path d="M7.52 21.48c-3.27-1.54-5.61-4.72-5.97-8.48h-1.5c.51 6.16 5.66 11 11.95 11l.66-.03-3.81-3.81-1.33 1.32zm.89-6.52c-.19 0-.37-.03-.52-.08-.16-.06-.29-.13-.4-.24-.11-.1-.2-.22-.26-.37-.06-.14-.09-.3-.09-.47h-1.3c0 .36.07.68.21.95.14.27.33.5.56.69.24.18.51.32.82.41.3.1.62.15.96.15.37 0 .72-.05 1.03-.15.32-.1.6-.25.83-.44s.42-.43.55-.72c.13-.29.2-.61.2-.97 0-.19-.02-.38-.07-.56-.05-.18-.12-.35-.23-.51-.1-.16-.24-.3-.4-.43-.17-.13-.37-.23-.61-.31.2-.09.37-.2.52-.33.15-.13.27-.27.37-.42.1-.15.17-.3.22-.46.05-.16.07-.32.07-.48 0-.36-.06-.68-.18-.96-.12-.28-.29-.51-.51-.69-.2-.19-.47-.33-.77-.43-.31-.09-.65-.14-1.02-.14-.36 0-.69.05-1 .16-.3.11-.57.26-.79.45-.21.19-.38.41-.51.67-.12.26-.18.54-.18.85h1.3c0-.17.03-.32.09-.45s.14-.25.25-.34c.11-.09.23-.17.38-.22.15-.05.3-.08.48-.08.4 0 .7.1.89.31.19.2.29.49.29.86 0 .18-.03.34-.08.49-.05.15-.14.27-.25.37-.11.1-.25.18-.41.24-.16.06-.36.09-.58.09h-.77v1.03h.77c.22 0 .42.02.6.07s.33.13.45.23c.12.11.22.24.29.4.07.16.1.35.1.57 0 .41-.12.72-.35.93-.23.23-.55.33-.95.33zm8.55-5.92c-.32-.33-.7-.59-1.14-.77-.43-.18-.92-.27-1.46-.27h-2.36v8h2.3c.55 0 1.06-.09 1.51-.27.45-.18.84-.43 1.16-.76.32-.33.57-.73.74-1.19.17-.47.26-.99.26-1.57v-.4c0-.58-.09-1.1-.26-1.57-.18-.47-.43-.87-.75-1.2zm-.39 3.16c0 .42-.05.79-.14 1.13-.1.33-.24.62-.43.85-.19.23-.43.41-.71.53-.29.12-.62.18-.99.18h-.91v-5.77h.97c.72 0 1.27.23 1.64.69.38.46.57 1.12.57 1.99v.4zm-4.57-12.2l-.66.03 3.81 3.81 1.33-1.33c3.27 1.55 5.61 4.72 5.96 8.48h1.5c-.5-6.15-5.65-10.99-11.94-10.99z"/></g><g id="save"><path d="M17 3h-12c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-12l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10h-10v-4h10v4z"/></g><g id="schedule"><path fill-opacity=".9" d="M11.99 2c-5.52 0-9.99 4.48-9.99 10s4.47 10 9.99 10c5.53 0 10.01-4.48 10.01-10s-4.48-10-10.01-10zm.01 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/><path fill-opacity=".9" d="M12.5 7h-1.5v6l5.25 3.15.75-1.23-4.5-2.67z"/></g><g id="search"><path d="M15.5 14h-.79l-.28-.27c.98-1.14 1.57-2.62 1.57-4.23 0-3.59-2.91-6.5-6.5-6.5s-6.5 2.91-6.5 6.5 2.91 6.5 6.5 6.5c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99 1.49-1.49-4.99-5zm-6 0c-2.49 0-4.5-2.01-4.5-4.5s2.01-4.5 4.5-4.5 4.5 2.01 4.5 4.5-2.01 4.5-4.5 4.5z"/></g><g id="select-all"><path d="M3 5h2v-2c-1.1 0-2 .9-2 2zm0 8h2v-2h-2v2zm4 8h2v-2h-2v2zm-4-12h2v-2h-2v2zm10-6h-2v2h2v-2zm6 0v2h2c0-1.1-.9-2-2-2zm-14 18v-2h-2c0 1.1.9 2 2 2zm-2-4h2v-2h-2v2zm6-14h-2v2h2v-2zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zm0-12h2v-2h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2v-2h-2v2zm-8 12h10v-10h-10v10zm2-8h6v6h-6v-6z"/></g><g id="send-money"><path d="M2 12c0-2.61 1.67-4.83 4-5.65v-2.09c-3.45.89-6 4.01-6 7.74s2.55 6.85 6 7.74v-2.09c-2.33-.82-4-3.04-4-5.65zm22 0l-4-4v3h-7v2h7v3l4-4zm-10 6c-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.16.67 4.24 1.76l1.42-1.41c-1.45-1.45-3.45-2.35-5.66-2.35-4.42 0-8 3.58-8 8s3.58 8 8 8c2.21 0 4.21-.9 5.66-2.34l-1.42-1.41c-1.08 1.08-2.58 1.75-4.24 1.75z"/></g><g id="send"><path d="M2.01 21l20.99-9-20.99-9-.01 7 15 2-15 2z"/></g><g id="settings-applications"><path d="M12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm7-7h-14c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2v-14c0-1.1-.89-2-2-2zm-1.75 9c0 .23-.02.46-.05.68l1.48 1.16c.13.11.17.3.08.45l-1.4 2.42c-.09.15-.27.21-.43.15l-1.74-.7c-.36.28-.76.51-1.18.69l-.26 1.85c-.03.17-.18.3-.35.3h-2.8c-.17 0-.32-.13-.35-.29l-.26-1.85c-.43-.18-.82-.41-1.18-.69l-1.74.7c-.16.06-.34 0-.43-.15l-1.4-2.42c-.09-.15-.05-.34.08-.45l1.48-1.16c-.03-.23-.05-.46-.05-.69 0-.23.02-.46.05-.68l-1.48-1.16c-.13-.11-.17-.3-.08-.45l1.4-2.42c.09-.15.27-.21.43-.15l1.74.7c.36-.28.76-.51 1.18-.69l.26-1.85c.03-.17.18-.3.35-.3h2.8c.17 0 .32.13.35.29l.26 1.85c.43.18.82.41 1.18.69l1.74-.7c.16-.06.34 0 .43.15l1.4 2.42c.09.15.05.34-.08.45l-1.48 1.16c.03.23.05.46.05.69z"/></g><g id="settings-backup-restore"><path d="M14 12c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2zm-2-9c-4.97 0-9 4.03-9 9h-3l4 4 4-4h-3c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.51 0-2.91-.49-4.06-1.3l-1.42 1.44c1.52 1.16 3.42 1.86 5.48 1.86 4.97 0 9-4.03 9-9s-4.03-9-9-9z"/></g><g id="settings-bluetooth"><path d="M11 24h2v-2h-2v2zm-4 0h2v-2h-2v2zm8 0h2v-2h-2v2zm2.71-18.29l-5.71-5.71h-1v7.59l-4.59-4.59-1.41 1.41 5.59 5.59-5.59 5.59 1.41 1.41 4.59-4.59v7.59h1l5.71-5.71-4.3-4.29 4.3-4.29zm-4.71-1.88l1.88 1.88-1.88 1.88v-3.76zm1.88 10.46l-1.88 1.88v-3.76l1.88 1.88z"/></g><g id="settings-cell"><path d="M7 24h2v-2h-2v2zm4 0h2v-2h-2v2zm4 0h2v-2h-2v2zm1-23.99l-8-.01c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2v-16c0-1.1-.9-1.99-2-1.99zm0 15.99h-8v-12h8v12z"/></g><g id="settings-display"><path d="M21 3h-18c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2zm0 16.01h-18v-14.02h18v14.02zm-13-3.01h2.5l1.5 1.5 1.5-1.5h2.5v-2.5l1.5-1.5-1.5-1.5v-2.5h-2.5l-1.5-1.5-1.5 1.5h-2.5v2.5l-1.5 1.5 1.5 1.5v2.5zm4-7c1.66 0 3 1.34 3 3s-1.34 3-3 3v-6z"/></g><g id="settings-ethernet"><path d="M7.77 6.76l-1.54-1.28-5.41 6.52 5.41 6.52 1.54-1.28-4.35-5.24 4.35-5.24zm-.77 6.24h2v-2h-2v2zm10-2h-2v2h2v-2zm-6 2h2v-2h-2v2zm6.77-7.52l-1.54 1.28 4.35 5.24-4.35 5.24 1.54 1.28 5.41-6.52-5.41-6.52z"/></g><g id="settings-input-antenna"><path d="M12 5c-3.87 0-7 3.13-7 7h2c0-2.76 2.24-5 5-5s5 2.24 5 5h2c0-3.87-3.13-7-7-7zm1 9.29c.88-.39 1.5-1.26 1.5-2.29 0-1.38-1.12-2.5-2.5-2.5s-2.5 1.12-2.5 2.5c0 1.02.62 1.9 1.5 2.29v3.3l-3.41 3.41 1.41 1.41 3-3 3 3 1.41-1.41-3.41-3.41v-3.3zm-1-13.29c-6.07 0-11 4.93-11 11h2c0-4.97 4.03-9 9-9s9 4.03 9 9h2c0-6.07-4.93-11-11-11z"/></g><g id="settings-input-component"><path d="M5 2c0-.55-.45-1-1-1s-1 .45-1 1v4h-2v6h6v-6h-2v-4zm4 14c0 1.3.84 2.4 2 2.82v4.18h2v-4.18c1.16-.41 2-1.51 2-2.82v-2h-6v2zm-8 0c0 1.3.84 2.4 2 2.82v4.18h2v-4.18c1.16-.42 2-1.52 2-2.82v-2h-6v2zm20-10v-4c0-.55-.45-1-1-1s-1 .45-1 1v4h-2v6h6v-6h-2zm-8-4c0-.55-.45-1-1-1s-1 .45-1 1v4h-2v6h6v-6h-2v-4zm4 14c0 1.3.84 2.4 2 2.82v4.18h2v-4.18c1.16-.41 2-1.51 2-2.82v-2h-6v2z"/></g><g id="settings-input-composite"><path d="M5 2c0-.55-.45-1-1-1s-1 .45-1 1v4h-2v6h6v-6h-2v-4zm4 14c0 1.3.84 2.4 2 2.82v4.18h2v-4.18c1.16-.41 2-1.51 2-2.82v-2h-6v2zm-8 0c0 1.3.84 2.4 2 2.82v4.18h2v-4.18c1.16-.42 2-1.52 2-2.82v-2h-6v2zm20-10v-4c0-.55-.45-1-1-1s-1 .45-1 1v4h-2v6h6v-6h-2zm-8-4c0-.55-.45-1-1-1s-1 .45-1 1v4h-2v6h6v-6h-2v-4zm4 14c0 1.3.84 2.4 2 2.82v4.18h2v-4.18c1.16-.41 2-1.51 2-2.82v-2h-6v2z"/></g><g id="settings-input-hdmi"><path d="M18 7v-3c0-1.1-.9-2-2-2h-8c-1.1 0-2 .9-2 2v3h-1v6l3 6v3h8v-3l3-6v-6h-1zm-10-3h8v3h-2v-2h-1v2h-2v-2h-1v2h-2v-3z"/></g><g id="settings-input-svideo"><path d="M8 11.5c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5.67 1.5 1.5 1.5 1.5-.67 1.5-1.5zm7-5c0-.83-.67-1.5-1.5-1.5h-3c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5h3c.83 0 1.5-.67 1.5-1.5zm-6.5 8.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm3.5-14c-6.07 0-11 4.93-11 11s4.93 11 11 11 11-4.93 11-11-4.93-11-11-11zm0 20c-4.96 0-9-4.04-9-9s4.04-9 9-9 9 4.04 9 9-4.04 9-9 9zm5.5-11c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm-2 5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z"/></g><g id="settings-overscan"><path d="M12.01 5.5l-2.01 2.5h4l-1.99-2.5zm5.99 4.5v4l2.5-1.99-2.5-2.01zm-12 0l-2.5 2.01 2.5 1.99v-4zm8 6h-4l2.01 2.5 1.99-2.5zm7-13h-18c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2zm0 16.01h-18v-14.02h18v14.02z"/></g><g id="settings"><path d="M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65c-.03-.24-.24-.42-.49-.42h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zm-7.43 2.52c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z"/></g><g id="settings-phone"><path d="M13 9h-2v2h2v-2zm4 0h-2v2h2v-2zm3 6.5c-1.25 0-2.45-.2-3.57-.57-.35-.11-.74-.03-1.02.24l-2.2 2.2c-2.83-1.44-5.15-3.75-6.59-6.58l2.2-2.21c.28-.27.36-.66.25-1.01-.37-1.12-.57-2.32-.57-3.57 0-.55-.45-1-1-1h-3.5c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zm-1-6.5v2h2v-2h-2z"/></g><g id="settings-power"><path d="M7 24h2v-2h-2v2zm4 0h2v-2h-2v2zm2-22h-2v10h2v-10zm3.56 2.44l-1.45 1.45c1.73 1.05 2.89 2.94 2.89 5.11 0 3.31-2.69 6-6 6s-6-2.69-6-6c0-2.17 1.16-4.06 2.88-5.12l-1.44-1.44c-2.08 1.44-3.44 3.84-3.44 6.56 0 4.42 3.58 8 8 8s8-3.58 8-8c0-2.72-1.36-5.12-3.44-6.56zm-1.56 19.56h2v-2h-2v2z"/></g><g id="settings-remote"><path d="M15 9h-6c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-12c0-.55-.45-1-1-1zm-3 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm-4.95-8.95l1.41 1.41c.91-.9 2.16-1.46 3.54-1.46s2.63.56 3.54 1.46l1.41-1.41c-1.27-1.27-3.02-2.05-4.95-2.05s-3.68.78-4.95 2.05zm4.95-6.05c-3.04 0-5.79 1.23-7.78 3.22l1.41 1.41c1.63-1.62 3.88-2.63 6.37-2.63s4.74 1.01 6.36 2.64l1.41-1.41c-1.98-2-4.73-3.23-7.77-3.23z"/></g><g id="settings-voice"><path d="M7 24h2v-2h-2v2zm5-11c1.66 0 2.99-1.34 2.99-3l.01-6c0-1.66-1.34-3-3-3s-3 1.34-3 3v6c0 1.66 1.34 3 3 3zm-1 11h2v-2h-2v2zm4 0h2v-2h-2v2zm4-14h-1.7c0 3-2.54 5.1-5.3 5.1s-5.3-2.1-5.3-5.1h-1.7c0 3.41 2.72 6.23 6 6.72v3.28h2v-3.28c3.28-.49 6-3.31 6-6.72z"/></g><g id="shop"><path d="M16 6v-2c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2h-6v13c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2v-13h-6zm-6-2h4v2h-4v-2zm-1 14v-9l7.5 4-7.5 5z"/></g><g id="shopping-basket"><path d="M17.21 9l-4.38-6.56c-.19-.28-.51-.42-.83-.42-.32 0-.64.14-.83.43l-4.38 6.55h-4.79c-.55 0-1 .45-1 1 0 .09.01.18.04.27l2.54 9.27c.23.84 1 1.46 1.92 1.46h13c.92 0 1.69-.62 1.93-1.46l2.54-9.27.03-.27c0-.55-.45-1-1-1h-4.79zm-8.21 0l3-4.4 3 4.4h-6zm3 8c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></g><g id="shopping-cart"><path d="M7 18c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2zm-6-16v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2h-11.58c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1h-14.79l-.94-2h-3.27zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z"/></g><g id="shop-two"><path d="M3 9h-2v11c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2h-16v-11zm15-4v-2c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2h-5v11c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2v-11h-5zm-6-2h4v2h-4v-2zm0 12v-7l5.5 3-5.5 4z"/></g><g id="sort"><path d="M3 18h6v-2h-6v2zm0-12v2h18v-2h-18zm0 7h12v-2h-12v2z"/></g><g id="speaker-notes"><path d="M20 2h-16c-1.1 0-1.99.9-1.99 2l-.01 18 4-4h14c1.1 0 2-.9 2-2v-12c0-1.1-.9-2-2-2zm-12 12h-2v-2h2v2zm0-3h-2v-2h2v2zm0-3h-2v-2h2v2zm7 6h-5v-2h5v2zm3-3h-8v-2h8v2zm0-3h-8v-2h8v2z"/></g><g id="spellcheck"><path d="M12.45 16h2.09l-5.11-13h-1.86l-5.11 13h2.09l1.12-3h5.64l1.14 3zm-6.02-5l2.07-5.52 2.07 5.52h-4.14zm15.16.59l-8.09 8.09-3.67-3.68-1.41 1.41 5.09 5.09 9.49-9.5-1.41-1.41z"/></g><g id="star-half"><path d="M22 9.74l-7.19-.62L12 2.5 9.19 9.13 2 9.74l5.46 4.73-1.64 7.03L12 17.77l6.18 3.73-1.63-7.03L22 9.74zM12 15.9V6.6l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.9z"/></g><g id="star-outline"><path d="M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"/></g><g id="star"><path d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"/></g><g id="star-rate"><path d="M12 14.3l3.71 2.7-1.42-4.36 3.71-2.64h-4.55l-1.45-4.5-1.45 4.5h-4.55l3.71 2.64-1.42 4.36z"/></g><g id="stars"><path d="M11.99 2c-5.52 0-9.99 4.48-9.99 10s4.47 10 9.99 10c5.53 0 10.01-4.48 10.01-10s-4.48-10-10.01-10zm4.24 16l-4.23-2.55-4.23 2.55 1.12-4.81-3.73-3.23 4.92-.42 1.92-4.54 1.92 4.53 4.92.42-3.73 3.23 1.12 4.82z"/></g><g id="store"><path d="M20 4h-16v2h16v-2zm1 10v-2l-1-5h-16l-1 5v2h1v6h10v-6h4v6h2v-6h1zm-9 4h-6v-4h6v4z"/></g><g id="subject"><path d="M14 17h-10v2h10v-2zm6-8h-16v2h16v-2zm-16 6h16v-2h-16v2zm0-10v2h16v-2h-16z"/></g><g id="supervisor-account"><circle cx="12" cy="13.49" r="1.5"/><path d="M12 2c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm0 2.5c1.24 0 2.25 1.01 2.25 2.25s-1.01 2.25-2.25 2.25-2.25-1.01-2.25-2.25 1.01-2.25 2.25-2.25zm5 10.56v2.5c-.45.41-.96.77-1.5 1.05v-.68c0-.34-.17-.65-.46-.92-.65-.62-1.89-1.02-3.04-1.02-.96 0-1.96.28-2.65.73l-.17.12-.21.17c.78.47 1.63.72 2.54.82l1.33.15c.37.04.66.36.66.75 0 .29-.16.53-.4.66-.28.15-.64.09-.95.09-.35 0-.69-.01-1.03-.05-.5-.06-.99-.17-1.46-.33-.49-.16-.97-.38-1.42-.64-.22-.13-.44-.27-.65-.43l-.31-.24c-.04-.02-.28-.18-.28-.23v-4.28c0-1.58 2.63-2.78 5-2.78s5 1.2 5 2.78v1.78z"/></g><g id="swap-horiz"><path d="M6.99 11l-3.99 4 3.99 4v-3h7.01v-2h-7.01v-3zm14.01-2l-3.99-4v3h-7.01v2h7.01v3l3.99-4z"/></g><g id="swap-vert-circle"><path d="M12 2c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm-5.5 7l3.5-3.5 3.5 3.5h-2.5v4h-2v-4h-2.5zm11 6l-3.5 3.5-3.5-3.5h2.5v-4h2v4h2.5z"/></g><g id="swap-vert"><path d="M16 17.01v-7.01h-2v7.01h-3l4 3.99 4-3.99h-3zm-7-14.01l-4 3.99h3v7.01h2v-7.01h3l-4-3.99z"/></g><g id="system-update-tv"><path d="M12 16.5l4-4h-3v-9h-2v9h-3l4 4zm9-13h-6v1.99h6v14.03h-18v-14.03h6v-1.99h-6c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2z"/></g><g id="tab"><path d="M21 3h-18c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2zm0 16h-18v-14h10v4h8v10z"/></g><g id="tab-unselected"><path d="M1 9h2v-2h-2v2zm0 4h2v-2h-2v2zm0-8h2v-2c-1.1 0-2 .9-2 2zm8 16h2v-2h-2v2zm-8-4h2v-2h-2v2zm2 4v-2h-2c0 1.1.9 2 2 2zm18-18h-8v6h10v-4c0-1.1-.9-2-2-2zm0 14h2v-2h-2v2zm-12-12h2v-2h-2v2zm-4 16h2v-2h-2v2zm0-16h2v-2h-2v2zm16 16c1.1 0 2-.9 2-2h-2v2zm0-8h2v-2h-2v2zm-8 8h2v-2h-2v2zm4 0h2v-2h-2v2z"/></g><g id="text-format"><path d="M5 17v2h14v-2h-14zm4.5-4.2h5l.9 2.2h2.1l-4.75-11h-1.5l-4.75 11h2.1l.9-2.2zm2.5-6.82l1.87 5.02h-3.74l1.87-5.02z"/></g><g id="theaters"><path d="M18 3v2h-2v-2h-8v2h-2v-2h-2v18h2v-2h2v2h8v-2h2v2h2v-18h-2zm-10 14h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2v-2h2v2zm10 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2v-2h2v2z"/></g><g id="thumb-down"><path d="M15 3h-9c-.83 0-1.54.5-1.84 1.22l-3.02 7.05c-.09.23-.14.47-.14.73v1.91l.01.01-.01.08c0 1.1.9 2 2 2h6.31l-.95 4.57-.03.32c0 .41.17.79.44 1.06l1.06 1.05 6.59-6.59c.36-.36.58-.86.58-1.41v-10c0-1.1-.9-2-2-2zm4 0v12h4v-12h-4z"/></g><g id="thumbs-up-down"><path d="M12 6c0-.55-.45-1-1-1h-5.18l.66-3.18.02-.23c0-.31-.13-.59-.33-.8l-.79-.79-4.94 4.94c-.27.27-.44.65-.44 1.06v6.5c0 .83.67 1.5 1.5 1.5h6.75c.62 0 1.15-.38 1.38-.91l2.26-5.29c.07-.17.11-.36.11-.55v-1.25zm10.5 4h-6.75c-.62 0-1.15.38-1.38.91l-2.26 5.29c-.07.17-.11.36-.11.55v1.25c0 .55.45 1 1 1h5.18l-.66 3.18-.02.24c0 .31.13.59.33.8l.79.78 4.94-4.94c.27-.27.44-.65.44-1.06v-6.5c0-.83-.67-1.5-1.5-1.5z"/></g><g id="thumb-up"><path d="M1 21h4v-12h-4v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06l-1.06-1.05-6.58 6.59c-.37.36-.59.86-.59 1.41v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1.91l-.01-.01.01-.08z"/></g><g id="toc"><path d="M3 9h14v-2h-14v2zm0 4h14v-2h-14v2zm0 4h14v-2h-14v2zm16 0h2v-2h-2v2zm0-10v2h2v-2h-2zm0 6h2v-2h-2v2z"/></g><g id="today"><path d="M19 3h-1v-2h-2v2h-8v-2h-2v2h-1c-1.11 0-1.99.9-1.99 2l-.01 14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2zm0 16h-14v-11h14v11zm-12-9h5v5h-5z"/></g><g id="track-changes"><path d="M19.07 4.93l-1.41 1.41c1.44 1.45 2.34 3.45 2.34 5.66 0 4.42-3.58 8-8 8s-8-3.58-8-8c0-4.08 3.05-7.44 7-7.93v2.02c-2.84.48-5 2.94-5 5.91 0 3.31 2.69 6 6 6s6-2.69 6-6c0-1.66-.67-3.16-1.76-4.24l-1.41 1.41c.72.73 1.17 1.73 1.17 2.83 0 2.21-1.79 4-4 4s-4-1.79-4-4c0-1.86 1.28-3.41 3-3.86v2.14c-.6.35-1 .98-1 1.72 0 1.1.9 2 2 2s2-.9 2-2c0-.74-.4-1.38-1-1.72v-8.28h-1c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10c0-2.76-1.12-5.26-2.93-7.07z"/></g><g id="translate"><path d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53h2.93v-2h-7v-2h-2v2h-7v1.99h11.17c-.67 1.93-1.73 3.76-3.17 5.36-.93-1.03-1.7-2.16-2.31-3.35h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02 1.42 1.42 5-5 3.11 3.11.76-2.04zm5.63-5.07h-2l-4.5 12h2l1.12-3h4.75l1.13 3h2l-4.5-12zm-2.62 7l1.62-4.33 1.62 4.33h-3.24z"/></g><g id="trending-down"><path d="M16 18l2.29-2.29-4.88-4.88-4 4-7.41-7.42 1.41-1.41 6 6 4-4 6.3 6.29 2.29-2.29v6z"/></g><g id="trending-neutral"><path d="M22 12l-4-4v3h-15v2h15v3z"/></g><g id="trending-up"><path d="M16 6l2.29 2.29-4.88 4.88-4-4-7.41 7.42 1.41 1.41 6-6 4 4 6.3-6.29 2.29 2.29v-6z"/></g><g id="turned-in-not"><path d="M17 3h-10c-1.1 0-1.99.9-1.99 2l-.01 16 7-3 7 3v-16c0-1.1-.9-2-2-2zm0 15l-5-2.18-5 2.18v-13h10v13z"/></g><g id="turned-in"><path d="M17 3h-10c-1.1 0-1.99.9-1.99 2l-.01 16 7-3 7 3v-16c0-1.1-.9-2-2-2z"/></g><g id="undo"><path d="M12.5 8c-2.65 0-5.05.99-6.9 2.6l-3.6-3.6v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78c-1.39-4.19-5.32-7.22-9.97-7.22z"/></g><g id="unfold-less"><path d="M7.41 18.59l1.42 1.41 3.17-3.17 3.17 3.17 1.41-1.41-4.58-4.59-4.59 4.59zm9.18-13.18l-1.42-1.41-3.17 3.17-3.17-3.17-1.42 1.41 4.59 4.59 4.59-4.59z"/></g><g id="unfold-more"><path d="M12 5.83l3.17 3.17 1.41-1.41-4.58-4.59-4.59 4.59 1.42 1.41 3.17-3.17zm0 12.34l-3.17-3.17-1.41 1.41 4.58 4.59 4.59-4.59-1.42-1.41-3.17 3.17z"/></g><g id="verified-user"><path d="M12 1l-9 4v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12v-6l-9-4zm-2 16l-4-4 1.41-1.41 2.59 2.58 6.59-6.59 1.41 1.42-8 8z"/></g><g id="view-agenda"><path d="M20 13h-17c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zm0-10h-17c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1z"/></g><g id="view-array"><path d="M4 18h3v-13h-3v13zm14-13v13h3v-13h-3zm-10 13h9v-13h-9v13z"/></g><g id="view-carousel"><path d="M7 19h10v-15h-10v15zm-5-2h4v-11h-4v11zm16-11v11h4v-11h-4z"/></g><g id="view-column"><path d="M10 18h5v-13h-5v13zm-6 0h5v-13h-5v13zm12-13v13h5v-13h-5z"/></g><g id="view-day"><path d="M2 21h19v-3h-19v3zm18-13h-17c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zm-18-5v3h19v-3h-19z"/></g><g id="view-headline"><path d="M4 15h17v-2h-17v2zm0 4h17v-2h-17v2zm0-8h17v-2h-17v2zm0-6v2h17v-2h-17z"/></g><g id="view-list"><path d="M4 14h4v-4h-4v4zm0 5h4v-4h-4v4zm0-10h4v-4h-4v4zm5 5h12v-4h-12v4zm0 5h12v-4h-12v4zm0-14v4h12v-4h-12z"/></g><g id="view-module"><path d="M4 11h5v-6h-5v6zm0 7h5v-6h-5v6zm6 0h5v-6h-5v6zm6 0h5v-6h-5v6zm-6-7h5v-6h-5v6zm6-6v6h5v-6h-5z"/></g><g id="view-quilt"><path d="M10 18h5v-6h-5v6zm-6 0h5v-13h-5v13zm12 0h5v-6h-5v6zm-6-13v6h11v-6h-11z"/></g><g id="view-stream"><path d="M4 18h17v-6h-17v6zm0-13v6h17v-6h-17z"/></g><g id="view-week"><path d="M6 5h-3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-12c0-.55-.45-1-1-1zm14 0h-3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-12c0-.55-.45-1-1-1zm-7 0h-3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-12c0-.55-.45-1-1-1z"/></g><g id="visibility-off"><path d="M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16c.57-.23 1.18-.36 1.83-.36zm-10-2.73l2.28 2.28.46.46c-1.66 1.29-2.96 3.01-3.74 4.99 1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42 2.93 2.92 1.27-1.27-17.73-17.73-1.27 1.27zm5.53 5.53l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"/></g><g id="visibility"><path d="M12 4.5c-5 0-9.27 3.11-11 7.5 1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zm0 12.5c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"/></g><g id="wallet-giftcard"><path d="M20 6h-2.18c.11-.31.18-.65.18-1 0-1.66-1.34-3-3-3-1.05 0-1.96.54-2.5 1.35l-.5.67-.5-.68c-.54-.8-1.45-1.34-2.5-1.34-1.66 0-3 1.34-3 3 0 .35.07.69.18 1h-2.18c-1.11 0-1.99.89-1.99 2l-.01 11c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2v-11c0-1.11-.89-2-2-2zm-5-2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-6 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm11 15h-16v-2h16v2zm0-5h-16v-6h5.08l-2.08 2.83 1.62 1.17 2.38-3.24 1-1.36 1 1.36 2.38 3.24 1.62-1.17-2.08-2.83h5.08v6z"/></g><g id="wallet-membership"><path d="M20 2h-16c-1.11 0-2 .89-2 2v11c0 1.11.89 2 2 2h4v5l4-2 4 2v-5h4c1.11 0 2-.89 2-2v-11c0-1.11-.89-2-2-2zm0 13h-16v-2h16v2zm0-5h-16v-6h16v6z"/></g><g id="wallet-travel"><path d="M20 6h-3v-2c0-1.11-.89-2-2-2h-6c-1.11 0-2 .89-2 2v2h-3c-1.11 0-2 .89-2 2v11c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2v-11c0-1.11-.89-2-2-2zm-11-2h6v2h-6v-2zm11 15h-16v-2h16v2zm0-5h-16v-6h3v2h2v-2h6v2h2v-2h3v6z"/></g><g id="warning"><path d="M1 21h22l-11-19-11 19zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"/></g><g id="work"><path d="M24 0v24h-24v-24h24m1-1h-26v26h26v-26z"/><path d="M20 6h-4v-2c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2h-4c-1.11 0-1.99.89-1.99 2l-.01 11c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2v-11c0-1.11-.89-2-2-2zm-6 0h-4v-2h4v2z"/></g></defs></svg></core-iconset-svg><polymer-element name="core-icon-button" attributes="src icon active" assetpath="../core-icon-button/"><template><style>:host{display:inline-block;box-sizing:border-box;-moz-box-sizing:border-box;user-select:none;-moz-user-select:none;-webkit-user-select:none;border-radius:2px;padding:7px;margin:2px;vertical-align:middle;font-size:1rem;cursor:pointer}:host([disabled]){opacity:.6;pointer-events:none}:host(.outline){box-shadow:0 0 0 1px rgba(0,0,0,.1)}:host(:hover:not([disabled])){box-shadow:0 1px 0 0 rgba(0,0,0,.12),0 0 0 1px rgba(0,0,0,.1)}:host(.selected:not([disabled])){background-color:rgba(0,0,0,.05);box-shadow:inset 0 1px 0 0 rgba(0,0,0,.05),0 0 0 1px rgba(0,0,0,.12)}:host(:active:not([disabled]),.selected:active:not([disabled])){background-color:rgba(0,0,0,.05);box-shadow:inset 0 1px 0 0 rgba(0,0,0,.1),0 0 0 1px rgba(0,0,0,.12)}:host(.core-dark-theme.outline){background-color:rgba(200,200,200,.05);box-shadow:0 0 0 1px rgba(200,200,200,.1)}:host(.core-dark-theme:hover){background-color:rgba(200,200,200,.05);box-shadow:0 1px 0 0 rgba(200,200,200,.12),0 0 0 1px rgba(200,200,200,.1)}:host(.core-dark-theme.selected){background-color:rgba(220,220,220,.05);box-shadow:inset 0 1px 0 0 rgba(200,200,200,.05),0 0 0 1px rgba(200,200,200,.12)}:host(.core-dark-theme:active,.core-dark-theme.selected:active){background-color:rgba(200,200,200,.05);box-shadow:inset 0 1px 0 0 rgba(200,200,200,.1),0 0 0 1px rgba(200,200,200,.12)}core-icon{pointer-events:none}:host ::content>:not(core-icon){margin-left:4px}</style><core-icon src="{{src}}" icon="{{icon}}"></core-icon><content></content></template><script>Polymer("core-icon-button",{src:"",active:false,icon:"",activeChanged:function(){this.classList.toggle("selected",this.active)}});</script></polymer-element><polymer-element name="core-toolbar" attributes="justify middleJustify bottomJustify" assetpath="../core-toolbar/"><template><style>:host{display:block;position:relative;box-sizing:border-box;-moz-box-sizing:border-box;height:64px;font-size:1.3em;background-color:#CFD8DC}:host(.animate){transition:height .18s ease-in}:host(.medium-tall){height:128px}:host(.tall){height:192px}.toolbar-tools{position:relative;height:64px;padding:0 8px;pointer-events:none}:host(.core-narrow),:host-context(.core-narrow){height:56px}polyfill-next-selector{content:':host.core-narrow.medium-tall, .core-narrow :host.medium-tall'}:host(.core-narrow.medium-tall),:host-context(.core-narrow):host(.medium-tall){height:112px}polyfill-next-selector{content:':host.core-narrow.tall, .core-narrow :host.tall'}:host(.core-narrow.tall),:host-context(.core-narrow):host(.tall){height:168px}polyfill-next-selector{content:':host.core-narrow .toolbar-tools, .core-narrow :host .toolbar-tools'}:host(.core-narrow) .toolbar-tools,:host-context(.core-narrow) .toolbar-tools{height:56px;padding:0}#middleBar{position:absolute;top:0;right:0;left:0}:host(.tall,.medium-tall) #middleBar{-webkit-transform:translateY(100%);transform:translateY(100%)}#bottomBar{position:absolute;right:0;bottom:0;left:0}polyfill-next-selector{content:'.toolbar-tools > *'}::content>*{pointer-events:auto}polyfill-next-selector{content:'.toolbar-tools > *'}::content>*{margin:0 8px}polyfill-next-selector{content:'.toolbar-tools > .fit'}::content>.fit{position:absolute;top:auto;right:0;bottom:0;left:0;width:auto;margin:0}polyfill-next-selector{content:':host .indent'}::content>.indent{margin-left:60px}</style><div id="bottomBar" class="toolbar-tools" center="" horizontal="" layout=""><content select=".bottom"></content></div><div id="middleBar" class="toolbar-tools" center="" horizontal="" layout=""><content select=".middle"></content></div><div id="topBar" class="toolbar-tools" center="" horizontal="" layout=""><content></content></div></template><script>(function(){Polymer("core-toolbar",{justify:"",middleJustify:"",bottomJustify:"",justifyChanged:function(old){this.updateBarJustify(this.$.topBar,this.justify,old)},middleJustifyChanged:function(old){this.updateBarJustify(this.$.middleBar,this.middleJustify,old)},bottomJustifyChanged:function(old){this.updateBarJustify(this.$.bottomBar,this.bottomJustify,old)},updateBarJustify:function(bar,justify,old){if(old){bar.removeAttribute(this.toLayoutAttrName(old))}if(this.justify){bar.setAttribute(this.toLayoutAttrName(justify),"")}},toLayoutAttrName:function(value){return value==="between"?"justified":value+"-justified"}})})();</script></polymer-element><polymer-element name="core-header-panel" assetpath="../core-header-panel/"><template><style>:host{display:block;position:relative}#outerContainer{position:absolute;top:0;right:0;bottom:0;left:0}#mainPanel{position:relative}#mainContainer{position:relative;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}#dropShadow{position:absolute;top:0;left:0;right:0;height:6px;box-shadow:inset 0 5px 6px -3px rgba(0,0,0,.4)}#dropShadow.hidden{display:none}:host([mode=scroll]) #mainContainer{overflow:visible}:host([mode=scroll]) #outerContainer{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}:host([mode=cover]) #mainPanel{position:static}:host([mode=cover]) #mainContainer{position:absolute;top:0;right:0;bottom:0;left:0}:host([mode=cover]) #dropShadow{position:static;width:100%}</style><div id="outerContainer" vertical="" layout=""><content id="headerContent" select="core-toolbar, .core-header"></content><div id="mainPanel" flex="" vertical="" layout=""><div id="mainContainer" flex?="{{mode !== 'cover'}}"><content id="mainContent" select="*"></content></div><div id="dropShadow"></div></div></div></template><script>Polymer("core-header-panel",{publish:{mode:{value:"",reflect:true},tallClass:"tall",shadow:false},animateDuration:200,modeConfigs:{shadowMode:{waterfall:1,"waterfall-tall":1},noShadow:{seamed:1,cover:1,scroll:1},tallMode:{"waterfall-tall":1},outerScroll:{scroll:1}},ready:function(){this.scrollHandler=this.scroll.bind(this);this.addListener()},detached:function(){this.removeListener(this.mode)},addListener:function(){this.scroller.addEventListener("scroll",this.scrollHandler)},removeListener:function(mode){var s=this.getScrollerForMode(mode);s.removeEventListener("scroll",this.scrollHandler)},domReady:function(){this.async("scroll")},modeChanged:function(old){var header=this.header;if(header){var configs=this.modeConfigs;if(configs.tallMode[old]&&!configs.tallMode[this.mode]){header.classList.remove(this.tallClass);this.async(function(){header.classList.remove("animate")},null,this.animateDuration)}else{header.classList.toggle("animate",configs.tallMode[this.mode])}}if(configs&&(configs.outerScroll[this.mode]||configs.outerScroll[old])){this.removeListener(old);this.addListener()}this.scroll()},get header(){return this.$.headerContent.getDistributedNodes()[0]},getScrollerForMode:function(mode){return this.modeConfigs.outerScroll[mode]?this.$.outerContainer:this.$.mainContainer},get scroller(){return this.getScrollerForMode(this.mode)},scroll:function(){var configs=this.modeConfigs;var main=this.$.mainContainer;var header=this.header;var sTop=main.scrollTop;var atTop=sTop===0;this.$.dropShadow.classList.toggle("hidden",!this.shadow&&(atTop&&configs.shadowMode[this.mode]||configs.noShadow[this.mode]));if(header&&configs.tallMode[this.mode]){header.classList.toggle(this.tallClass,atTop||header.classList.contains(this.tallClass)&&main.scrollHeight<this.$.outerContainer.offsetHeight)}this.fire("scroll",{target:this.scroller},this,false)}});</script></polymer-element><script>(function(){var block={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/,def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/};block.bullet=/(?:[*+-]|\d+\.)/;block.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;block.item=replace(block.item,"gm")(/bull/g,block.bullet)();block.list=replace(block.list)(/bull/g,block.bullet)("hr","\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))")("def","\\n+(?="+block.def.source+")")();block.blockquote=replace(block.blockquote)("def",block.def)();block._tag="(?!(?:"+"a|em|strong|small|s|cite|q|dfn|abbr|data|time|code"+"|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo"+"|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b";block.html=replace(block.html)("comment",/<!--[\s\S]*?-->/)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)(/tag/g,block._tag)();block.paragraph=replace(block.paragraph)("hr",block.hr)("heading",block.heading)("lheading",block.lheading)("blockquote",block.blockquote)("tag","<"+block._tag)("def",block.def)();block.normal=merge({},block);block.gfm=merge({},block.normal,{fences:/^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,paragraph:/^/});block.gfm.paragraph=replace(block.paragraph)("(?!","(?!"+block.gfm.fences.source.replace("\\1","\\2")+"|"+block.list.source.replace("\\1","\\3")+"|")();block.tables=merge({},block.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/});function Lexer(options){this.tokens=[];this.tokens.links={};this.options=options||marked.defaults;this.rules=block.normal;if(this.options.gfm){if(this.options.tables){this.rules=block.tables}else{this.rules=block.gfm}}}Lexer.rules=block;Lexer.lex=function(src,options){var lexer=new Lexer(options);return lexer.lex(src)};Lexer.prototype.lex=function(src){src=src.replace(/\r\n|\r/g,"\n").replace(/\t/g,"    ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n");return this.token(src,true)};Lexer.prototype.token=function(src,top,bq){var src=src.replace(/^ +$/gm,""),next,loose,cap,bull,b,item,space,i,l;while(src){if(cap=this.rules.newline.exec(src)){src=src.substring(cap[0].length);if(cap[0].length>1){this.tokens.push({type:"space"})}}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);cap=cap[0].replace(/^ {4}/gm,"");this.tokens.push({type:"code",text:!this.options.pedantic?cap.replace(/\n+$/,""):cap});continue}if(cap=this.rules.fences.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"code",lang:cap[2],text:cap[3]});continue}if(cap=this.rules.heading.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"heading",depth:cap[1].length,text:cap[2]});continue}if(top&&(cap=this.rules.nptable.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/\n$/,"").split("\n")};for(i=0;i<item.align.length;i++){if(/^ *-+: *$/.test(item.align[i])){item.align[i]="right"}else if(/^ *:-+: *$/.test(item.align[i])){item.align[i]="center"}else if(/^ *:-+ *$/.test(item.align[i])){item.align[i]="left"}else{item.align[i]=null}}for(i=0;i<item.cells.length;i++){item.cells[i]=item.cells[i].split(/ *\| */)}this.tokens.push(item);continue}if(cap=this.rules.lheading.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"heading",depth:cap[2]==="="?1:2,text:cap[1]});continue}if(cap=this.rules.hr.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"hr"});continue}if(cap=this.rules.blockquote.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"blockquote_start"});cap=cap[0].replace(/^ *> ?/gm,"");this.token(cap,top,true);this.tokens.push({type:"blockquote_end"});continue}if(cap=this.rules.list.exec(src)){src=src.substring(cap[0].length);bull=cap[2];this.tokens.push({type:"list_start",ordered:bull.length>1});cap=cap[0].match(this.rules.item);next=false;l=cap.length;i=0;for(;i<l;i++){item=cap[i];space=item.length;item=item.replace(/^ *([*+-]|\d+\.) +/,"");if(~item.indexOf("\n ")){space-=item.length;item=!this.options.pedantic?item.replace(new RegExp("^ {1,"+space+"}","gm"),""):item.replace(/^ {1,4}/gm,"")}if(this.options.smartLists&&i!==l-1){b=block.bullet.exec(cap[i+1])[0];if(bull!==b&&!(bull.length>1&&b.length>1)){src=cap.slice(i+1).join("\n")+src;i=l-1}}loose=next||/\n\n(?!\s*$)/.test(item);if(i!==l-1){next=item.charAt(item.length-1)==="\n";if(!loose)loose=next}this.tokens.push({type:loose?"loose_item_start":"list_item_start"});this.token(item,false,bq);this.tokens.push({type:"list_item_end"})}this.tokens.push({type:"list_end"});continue}if(cap=this.rules.html.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:cap[1]==="pre"||cap[1]==="script"||cap[1]==="style",text:cap[0]});continue}if(!bq&&top&&(cap=this.rules.def.exec(src))){src=src.substring(cap[0].length);this.tokens.links[cap[1].toLowerCase()]={href:cap[2],title:cap[3]};continue}if(top&&(cap=this.rules.table.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/(?: *\| *)?\n$/,"").split("\n")};for(i=0;i<item.align.length;i++){if(/^ *-+: *$/.test(item.align[i])){item.align[i]="right"}else if(/^ *:-+: *$/.test(item.align[i])){item.align[i]="center"}else if(/^ *:-+ *$/.test(item.align[i])){item.align[i]="left"}else{item.align[i]=null}}for(i=0;i<item.cells.length;i++){item.cells[i]=item.cells[i].replace(/^ *\| *| *\| *$/g,"").split(/ *\| */)}this.tokens.push(item);continue}if(top&&(cap=this.rules.paragraph.exec(src))){src=src.substring(cap[0].length);this.tokens.push({type:"paragraph",text:cap[1].charAt(cap[1].length-1)==="\n"?cap[1].slice(0,-1):cap[1]});continue}if(cap=this.rules.text.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"text",text:cap[0]});continue}if(src){throw new Error("Infinite loop on byte: "+src.charCodeAt(0))}}return this.tokens};var inline={escape:/^\\([\\`*{}\[\]()#+\-.!_>])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:noop,tag:/^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:noop,text:/^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/};inline._inside=/(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/;inline._href=/\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/;inline.link=replace(inline.link)("inside",inline._inside)("href",inline._href)();inline.reflink=replace(inline.reflink)("inside",inline._inside)();inline.normal=merge({},inline);inline.pedantic=merge({},inline.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/});inline.gfm=merge({},inline.normal,{escape:replace(inline.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:replace(inline.text)("]|","~]|")("|","|https?://|")()});inline.breaks=merge({},inline.gfm,{br:replace(inline.br)("{2,}","*")(),text:replace(inline.gfm.text)("{2,}","*")()});function InlineLexer(links,options){this.options=options||marked.defaults;this.links=links;this.rules=inline.normal;this.renderer=this.options.renderer||new Renderer;this.renderer.options=this.options;if(!this.links){throw new Error("Tokens array requires a `links` property.")}if(this.options.gfm){if(this.options.breaks){this.rules=inline.breaks}else{this.rules=inline.gfm}}else if(this.options.pedantic){this.rules=inline.pedantic}}InlineLexer.rules=inline;InlineLexer.output=function(src,links,options){var inline=new InlineLexer(links,options);return inline.output(src)};InlineLexer.prototype.output=function(src){var out="",link,text,href,cap;while(src){if(cap=this.rules.escape.exec(src)){src=src.substring(cap[0].length);out+=cap[1];continue}if(cap=this.rules.autolink.exec(src)){src=src.substring(cap[0].length);if(cap[2]==="@"){text=cap[1].charAt(6)===":"?this.mangle(cap[1].substring(7)):this.mangle(cap[1]);href=this.mangle("mailto:")+text}else{text=escape(cap[1]);href=text}out+=this.renderer.link(href,null,text);continue}if(!this.inLink&&(cap=this.rules.url.exec(src))){src=src.substring(cap[0].length);text=escape(cap[1]);href=text;out+=this.renderer.link(href,null,text);continue}if(cap=this.rules.tag.exec(src)){if(!this.inLink&&/^<a /i.test(cap[0])){this.inLink=true}else if(this.inLink&&/^<\/a>/i.test(cap[0])){this.inLink=false}src=src.substring(cap[0].length);out+=this.options.sanitize?escape(cap[0]):cap[0];continue}if(cap=this.rules.link.exec(src)){src=src.substring(cap[0].length);this.inLink=true;out+=this.outputLink(cap,{href:cap[2],title:cap[3]});this.inLink=false;continue}if((cap=this.rules.reflink.exec(src))||(cap=this.rules.nolink.exec(src))){src=src.substring(cap[0].length);link=(cap[2]||cap[1]).replace(/\s+/g," ");link=this.links[link.toLowerCase()];if(!link||!link.href){out+=cap[0].charAt(0);src=cap[0].substring(1)+src;continue}this.inLink=true;out+=this.outputLink(cap,link);this.inLink=false;continue}if(cap=this.rules.strong.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.strong(this.output(cap[2]||cap[1]));continue}if(cap=this.rules.em.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.em(this.output(cap[2]||cap[1]));continue}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.codespan(escape(cap[2],true));continue}if(cap=this.rules.br.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.br();continue}if(cap=this.rules.del.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.del(this.output(cap[1]));continue}if(cap=this.rules.text.exec(src)){src=src.substring(cap[0].length);out+=escape(this.smartypants(cap[0]));continue}if(src){throw new Error("Infinite loop on byte: "+src.charCodeAt(0))}}return out};InlineLexer.prototype.outputLink=function(cap,link){var href=escape(link.href),title=link.title?escape(link.title):null;return cap[0].charAt(0)!=="!"?this.renderer.link(href,title,this.output(cap[1])):this.renderer.image(href,title,escape(cap[1]))};InlineLexer.prototype.smartypants=function(text){if(!this.options.smartypants)return text;return text.replace(/--/g,"—").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…")};InlineLexer.prototype.mangle=function(text){var out="",l=text.length,i=0,ch;for(;i<l;i++){ch=text.charCodeAt(i);if(Math.random()>.5){ch="x"+ch.toString(16)}out+="&#"+ch+";"}return out};function Renderer(options){this.options=options||{}}Renderer.prototype.code=function(code,lang,escaped){if(this.options.highlight){var out=this.options.highlight(code,lang);if(out!=null&&out!==code){escaped=true;code=out}}if(!lang){return"<pre><code>"+(escaped?code:escape(code,true))+"\n</code></pre>"}return'<pre><code class="'+this.options.langPrefix+escape(lang,true)+'">'+(escaped?code:escape(code,true))+"\n</code></pre>\n"};Renderer.prototype.blockquote=function(quote){return"<blockquote>\n"+quote+"</blockquote>\n"};Renderer.prototype.html=function(html){return html};Renderer.prototype.heading=function(text,level,raw){return"<h"+level+' id="'+this.options.headerPrefix+raw.toLowerCase().replace(/[^\w]+/g,"-")+'">'+text+"</h"+level+">\n"};Renderer.prototype.hr=function(){return this.options.xhtml?"<hr/>\n":"<hr>\n"};Renderer.prototype.list=function(body,ordered){var type=ordered?"ol":"ul";return"<"+type+">\n"+body+"</"+type+">\n"};Renderer.prototype.listitem=function(text){return"<li>"+text+"</li>\n"};Renderer.prototype.paragraph=function(text){return"<p>"+text+"</p>\n"};Renderer.prototype.table=function(header,body){return"<table>\n"+"<thead>\n"+header+"</thead>\n"+"<tbody>\n"+body+"</tbody>\n"+"</table>\n"};Renderer.prototype.tablerow=function(content){return"<tr>\n"+content+"</tr>\n"};Renderer.prototype.tablecell=function(content,flags){var type=flags.header?"th":"td";var tag=flags.align?"<"+type+' style="text-align:'+flags.align+'">':"<"+type+">";return tag+content+"</"+type+">\n"};Renderer.prototype.strong=function(text){return"<strong>"+text+"</strong>"};Renderer.prototype.em=function(text){return"<em>"+text+"</em>"};Renderer.prototype.codespan=function(text){return"<code>"+text+"</code>"};Renderer.prototype.br=function(){return this.options.xhtml?"<br/>":"<br>"};Renderer.prototype.del=function(text){return"<del>"+text+"</del>"};Renderer.prototype.link=function(href,title,text){if(this.options.sanitize){try{var prot=decodeURIComponent(unescape(href)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return""}if(prot.indexOf("javascript:")===0){return""}}var out='<a href="'+href+'"';if(title){out+=' title="'+title+'"'}out+=">"+text+"</a>";return out};Renderer.prototype.image=function(href,title,text){var out='<img src="'+href+'" alt="'+text+'"';if(title){out+=' title="'+title+'"'}out+=this.options.xhtml?"/>":">";return out};function Parser(options){this.tokens=[];this.token=null;this.options=options||marked.defaults;this.options.renderer=this.options.renderer||new Renderer;this.renderer=this.options.renderer;this.renderer.options=this.options}Parser.parse=function(src,options,renderer){var parser=new Parser(options,renderer);return parser.parse(src)};Parser.prototype.parse=function(src){this.inline=new InlineLexer(src.links,this.options,this.renderer);this.tokens=src.reverse();var out="";while(this.next()){out+=this.tok()}return out};Parser.prototype.next=function(){return this.token=this.tokens.pop()};Parser.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0};Parser.prototype.parseText=function(){var body=this.token.text;while(this.peek().type==="text"){body+="\n"+this.next().text}return this.inline.output(body)};Parser.prototype.tok=function(){switch(this.token.type){case"space":{return""}case"hr":{return this.renderer.hr()}case"heading":{return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text)}case"code":{return this.renderer.code(this.token.text,this.token.lang,this.token.escaped)}case"table":{var header="",body="",i,row,cell,flags,j;cell="";for(i=0;i<this.token.header.length;i++){flags={header:true,align:this.token.align[i]};cell+=this.renderer.tablecell(this.inline.output(this.token.header[i]),{header:true,align:this.token.align[i]})}header+=this.renderer.tablerow(cell);for(i=0;i<this.token.cells.length;i++){row=this.token.cells[i];cell="";for(j=0;j<row.length;j++){cell+=this.renderer.tablecell(this.inline.output(row[j]),{header:false,align:this.token.align[j]})}body+=this.renderer.tablerow(cell)}return this.renderer.table(header,body)}case"blockquote_start":{var body="";while(this.next().type!=="blockquote_end"){body+=this.tok()}return this.renderer.blockquote(body)}case"list_start":{var body="",ordered=this.token.ordered;while(this.next().type!=="list_end"){body+=this.tok()}return this.renderer.list(body,ordered)}case"list_item_start":{var body="";while(this.next().type!=="list_item_end"){body+=this.token.type==="text"?this.parseText():this.tok()}return this.renderer.listitem(body)}case"loose_item_start":{var body="";while(this.next().type!=="list_item_end"){body+=this.tok()}return this.renderer.listitem(body)}case"html":{var html=!this.token.pre&&!this.options.pedantic?this.inline.output(this.token.text):this.token.text;return this.renderer.html(html)}case"paragraph":{return this.renderer.paragraph(this.inline.output(this.token.text))}case"text":{return this.renderer.paragraph(this.parseText())}}};function escape(html,encode){return html.replace(!encode?/&(?!#?\w+;)/g:/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function unescape(html){return html.replace(/&([#\w]+);/g,function(_,n){n=n.toLowerCase();if(n==="colon")return":";if(n.charAt(0)==="#"){return n.charAt(1)==="x"?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1))}return""})}function replace(regex,opt){regex=regex.source;opt=opt||"";return function self(name,val){if(!name)return new RegExp(regex,opt);val=val.source||val;val=val.replace(/(^|[^\[])\^/g,"$1");regex=regex.replace(name,val);return self}}function noop(){}noop.exec=noop;function merge(obj){var i=1,target,key;for(;i<arguments.length;i++){target=arguments[i];for(key in target){if(Object.prototype.hasOwnProperty.call(target,key)){obj[key]=target[key]}}}return obj}function marked(src,opt,callback){if(callback||typeof opt==="function"){if(!callback){callback=opt;opt=null}opt=merge({},marked.defaults,opt||{});var highlight=opt.highlight,tokens,pending,i=0;try{tokens=Lexer.lex(src,opt)}catch(e){return callback(e)}pending=tokens.length;var done=function(){var out,err;try{out=Parser.parse(tokens,opt)}catch(e){err=e}opt.highlight=highlight;return err?callback(err):callback(null,out)};if(!highlight||highlight.length<3){return done()}delete opt.highlight;if(!pending)return done();for(;i<tokens.length;i++){(function(token){if(token.type!=="code"){return--pending||done()}return highlight(token.text,token.lang,function(err,code){if(code==null||code===token.text){return--pending||done()}token.text=code;token.escaped=true;--pending||done()})})(tokens[i])}return}try{if(opt)opt=merge({},marked.defaults,opt);return Parser.parse(Lexer.lex(src,opt),opt)}catch(e){e.message+="\nPlease report this to https://github.com/chjj/marked.";if((opt||marked.defaults).silent){return"<p>An error occured:</p><pre>"+escape(e.message+"",true)+"</pre>"}throw e}}marked.options=marked.setOptions=function(opt){merge(marked.defaults,opt);return marked};marked.defaults={gfm:true,tables:true,breaks:false,pedantic:false,sanitize:false,smartLists:false,silent:false,highlight:null,langPrefix:"lang-",smartypants:false,headerPrefix:"",renderer:new Renderer,xhtml:false};marked.Parser=Parser;marked.parser=Parser.parse;marked.Renderer=Renderer;marked.Lexer=Lexer;marked.lexer=Lexer.lex;marked.InlineLexer=InlineLexer;marked.inlineLexer=InlineLexer.output;marked.parse=marked;if(typeof exports==="object"){module.exports=marked}else if(typeof define==="function"&&define.amd){define(function(){return marked})}else{this.marked=marked}}).call(function(){return this||(typeof window!=="undefined"?window:global)}());</script><polymer-element name="marked-element" attributes="text" assetpath="../marked-element/"><script>Polymer("marked-element",{text:"",attached:function(){marked.setOptions({highlight:this.highlight.bind(this)});if(!this.text){this.text=this.innerHTML}},textChanged:function(oldVal,newVal){if(newVal){this.innerHTML=marked(this.text)}},highlight:function(code,lang){var event=this.fire("marked-js-highlight",{code:code,lang:lang});return event.detail.code||code}});</script></polymer-element><script>var IN_GLOBAL_SCOPE=true;window["PR_SHOULD_USE_CONTINUATION"]=true;var prettyPrintOne;var prettyPrint;(function(){var win=window;var FLOW_CONTROL_KEYWORDS=["break,continue,do,else,for,if,return,while"];var C_KEYWORDS=[FLOW_CONTROL_KEYWORDS,"auto,case,char,const,default,"+"double,enum,extern,float,goto,inline,int,long,register,short,signed,"+"sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var COMMON_KEYWORDS=[C_KEYWORDS,"catch,class,delete,false,import,"+"new,operator,private,protected,public,this,throw,true,try,typeof"];var CPP_KEYWORDS=[COMMON_KEYWORDS,"alignof,align_union,asm,axiom,bool,"+"concept,concept_map,const_cast,constexpr,decltype,delegate,"+"dynamic_cast,explicit,export,friend,generic,late_check,"+"mutable,namespace,nullptr,property,reinterpret_cast,static_assert,"+"static_cast,template,typeid,typename,using,virtual,where"];var JAVA_KEYWORDS=[COMMON_KEYWORDS,"abstract,assert,boolean,byte,extends,final,finally,implements,import,"+"instanceof,interface,null,native,package,strictfp,super,synchronized,"+"throws,transient"];var CSHARP_KEYWORDS=[JAVA_KEYWORDS,"as,base,by,checked,decimal,delegate,descending,dynamic,event,"+"fixed,foreach,from,group,implicit,in,internal,into,is,let,"+"lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,"+"sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,"+"var,virtual,where"];var COFFEE_KEYWORDS="all,and,by,catch,class,else,extends,false,finally,"+"for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,"+"throw,true,try,unless,until,when,while,yes";var JSCRIPT_KEYWORDS=[COMMON_KEYWORDS,"debugger,eval,export,function,get,null,set,undefined,var,with,"+"Infinity,NaN"];var PERL_KEYWORDS="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,"+"goto,if,import,last,local,my,next,no,our,print,package,redo,require,"+"sub,undef,unless,until,use,wantarray,while,BEGIN,END";var PYTHON_KEYWORDS=[FLOW_CONTROL_KEYWORDS,"and,as,assert,class,def,del,"+"elif,except,exec,finally,from,global,import,in,is,lambda,"+"nonlocal,not,or,pass,print,raise,try,with,yield,"+"False,True,None"];var RUBY_KEYWORDS=[FLOW_CONTROL_KEYWORDS,"alias,and,begin,case,class,"+"def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,"+"rescue,retry,self,super,then,true,undef,unless,until,when,yield,"+"BEGIN,END"];var RUST_KEYWORDS=[FLOW_CONTROL_KEYWORDS,"as,assert,const,copy,drop,"+"enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv,"+"pub,pure,ref,self,static,struct,true,trait,type,unsafe,use"];var SH_KEYWORDS=[FLOW_CONTROL_KEYWORDS,"case,done,elif,esac,eval,fi,"+"function,in,local,set,then,until"];var ALL_KEYWORDS=[CPP_KEYWORDS,CSHARP_KEYWORDS,JSCRIPT_KEYWORDS,PERL_KEYWORDS,PYTHON_KEYWORDS,RUBY_KEYWORDS,SH_KEYWORDS];var C_TYPES=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/;var PR_STRING="str";var PR_KEYWORD="kwd";var PR_COMMENT="com";var PR_TYPE="typ";var PR_LITERAL="lit";var PR_PUNCTUATION="pun";var PR_PLAIN="pln";var PR_TAG="tag";var PR_DECLARATION="dec";var PR_SOURCE="src";var PR_ATTRIB_NAME="atn";var PR_ATTRIB_VALUE="atv";var PR_NOCODE="nocode";var REGEXP_PRECEDER_PATTERN="(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<<?=?|>>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function combinePrefixPatterns(regexs){var capturedGroupIndex=0;var needToFoldCase=false;var ignoreCase=false;for(var i=0,n=regexs.length;i<n;++i){var regex=regexs[i];if(regex.ignoreCase){ignoreCase=true}else if(/[a-z]/i.test(regex.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){needToFoldCase=true;ignoreCase=false;break}}var escapeCharToCodeUnit={b:8,t:9,n:10,v:11,f:12,r:13};function decodeEscape(charsetPart){var cc0=charsetPart.charCodeAt(0);if(cc0!==92){return cc0}var c1=charsetPart.charAt(1);cc0=escapeCharToCodeUnit[c1];if(cc0){return cc0}else if("0"<=c1&&c1<="7"){return parseInt(charsetPart.substring(1),8)}else if(c1==="u"||c1==="x"){return parseInt(charsetPart.substring(2),16)}else{return charsetPart.charCodeAt(1)}}function encodeEscape(charCode){if(charCode<32){return(charCode<16?"\\x0":"\\x")+charCode.toString(16)}var ch=String.fromCharCode(charCode);return ch==="\\"||ch==="-"||ch==="]"||ch==="^"?"\\"+ch:ch}function caseFoldCharset(charSet){var charsetParts=charSet.substring(1,charSet.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}"+"|\\\\x[0-9A-Fa-f]{2}"+"|\\\\[0-3][0-7]{0,2}"+"|\\\\[0-7]{1,2}"+"|\\\\[\\s\\S]"+"|-"+"|[^-\\\\]","g"));var ranges=[];var inverse=charsetParts[0]==="^";var out=["["];if(inverse){out.push("^")}for(var i=inverse?1:0,n=charsetParts.length;i<n;++i){var p=charsetParts[i];if(/\\[bdsw]/i.test(p)){out.push(p)}else{var start=decodeEscape(p);var end;if(i+2<n&&"-"===charsetParts[i+1]){end=decodeEscape(charsetParts[i+2]);i+=2}else{end=start}ranges.push([start,end]);if(!(end<65||start>122)){if(!(end<65||start>90)){ranges.push([Math.max(65,start)|32,Math.min(end,90)|32])}if(!(end<97||start>122)){ranges.push([Math.max(97,start)&~32,Math.min(end,122)&~32])}}}}ranges.sort(function(a,b){return a[0]-b[0]||b[1]-a[1]});var consolidatedRanges=[];var lastRange=[];for(var i=0;i<ranges.length;++i){var range=ranges[i];if(range[0]<=lastRange[1]+1){lastRange[1]=Math.max(lastRange[1],range[1])}else{consolidatedRanges.push(lastRange=range)}}for(var i=0;i<consolidatedRanges.length;++i){var range=consolidatedRanges[i];out.push(encodeEscape(range[0]));if(range[1]>range[0]){if(range[1]+1>range[0]){out.push("-")}out.push(encodeEscape(range[1]))}}out.push("]");return out.join("")}function allowAnywhereFoldCaseAndRenumberGroups(regex){var parts=regex.source.match(new RegExp("(?:"+"\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]"+"|\\\\u[A-Fa-f0-9]{4}"+"|\\\\x[A-Fa-f0-9]{2}"+"|\\\\[0-9]+"+"|\\\\[^ux0-9]"+"|\\(\\?[:!=]"+"|[\\(\\)\\^]"+"|[^\\x5B\\x5C\\(\\)\\^]+"+")","g"));var n=parts.length;var capturedGroups=[];for(var i=0,groupIndex=0;i<n;++i){var p=parts[i];if(p==="("){++groupIndex}else if("\\"===p.charAt(0)){var decimalValue=+p.substring(1);if(decimalValue){if(decimalValue<=groupIndex){capturedGroups[decimalValue]=-1}else{parts[i]=encodeEscape(decimalValue)}}}}for(var i=1;i<capturedGroups.length;++i){if(-1===capturedGroups[i]){capturedGroups[i]=++capturedGroupIndex}}for(var i=0,groupIndex=0;i<n;++i){var p=parts[i];if(p==="("){++groupIndex;if(!capturedGroups[groupIndex]){parts[i]="(?:"}}else if("\\"===p.charAt(0)){var decimalValue=+p.substring(1);if(decimalValue&&decimalValue<=groupIndex){parts[i]="\\"+capturedGroups[decimalValue]}}}for(var i=0;i<n;++i){if("^"===parts[i]&&"^"!==parts[i+1]){parts[i]=""}}if(regex.ignoreCase&&needToFoldCase){for(var i=0;i<n;++i){var p=parts[i];var ch0=p.charAt(0);if(p.length>=2&&ch0==="["){parts[i]=caseFoldCharset(p)}else if(ch0!=="\\"){parts[i]=p.replace(/[a-zA-Z]/g,function(ch){var cc=ch.charCodeAt(0);return"["+String.fromCharCode(cc&~32,cc|32)+"]"})}}}return parts.join("")}var rewritten=[];for(var i=0,n=regexs.length;i<n;++i){var regex=regexs[i];if(regex.global||regex.multiline){throw new Error(""+regex)}rewritten.push("(?:"+allowAnywhereFoldCaseAndRenumberGroups(regex)+")")}return new RegExp(rewritten.join("|"),ignoreCase?"gi":"g")}function extractSourceSpans(node,isPreformatted){var nocode=/(?:^|\s)nocode(?:\s|$)/;var chunks=[];var length=0;var spans=[];var k=0;function walk(node){var type=node.nodeType;if(type==1){if(nocode.test(node.className)){return}for(var child=node.firstChild;child;child=child.nextSibling){walk(child)}var nodeName=node.nodeName.toLowerCase();if("br"===nodeName||"li"===nodeName){chunks[k]="\n";spans[k<<1]=length++;spans[k++<<1|1]=node}}else if(type==3||type==4){var text=node.nodeValue;if(text.length){if(!isPreformatted){text=text.replace(/[ \t\r\n]+/g," ")}else{text=text.replace(/\r\n?/g,"\n")}chunks[k]=text;spans[k<<1]=length;length+=text.length;spans[k++<<1|1]=node}}}walk(node);return{sourceCode:chunks.join("").replace(/\n$/,""),spans:spans}}function appendDecorations(basePos,sourceCode,langHandler,out){if(!sourceCode){return}var job={sourceCode:sourceCode,basePos:basePos};langHandler(job);out.push.apply(out,job.decorations)}var notWs=/\S/;function childContentWrapper(element){var wrapper=undefined;for(var c=element.firstChild;c;c=c.nextSibling){var type=c.nodeType;wrapper=type===1?wrapper?element:c:type===3?notWs.test(c.nodeValue)?element:wrapper:wrapper}return wrapper===element?undefined:wrapper}function createSimpleLexer(shortcutStylePatterns,fallthroughStylePatterns){var shortcuts={};var tokenizer;(function(){var allPatterns=shortcutStylePatterns.concat(fallthroughStylePatterns);var allRegexs=[];var regexKeys={};for(var i=0,n=allPatterns.length;i<n;++i){var patternParts=allPatterns[i];var shortcutChars=patternParts[3];if(shortcutChars){for(var c=shortcutChars.length;--c>=0;){shortcuts[shortcutChars.charAt(c)]=patternParts}}var regex=patternParts[1];var k=""+regex;if(!regexKeys.hasOwnProperty(k)){allRegexs.push(regex);regexKeys[k]=null}}allRegexs.push(/[\0-\uffff]/);tokenizer=combinePrefixPatterns(allRegexs)})();var nPatterns=fallthroughStylePatterns.length;var decorate=function(job){var sourceCode=job.sourceCode,basePos=job.basePos;var decorations=[basePos,PR_PLAIN];var pos=0;var tokens=sourceCode.match(tokenizer)||[];var styleCache={};for(var ti=0,nTokens=tokens.length;ti<nTokens;++ti){var token=tokens[ti];var style=styleCache[token];var match=void 0;var isEmbedded;if(typeof style==="string"){isEmbedded=false}else{var patternParts=shortcuts[token.charAt(0)];if(patternParts){match=token.match(patternParts[1]);style=patternParts[0]}else{for(var i=0;i<nPatterns;++i){patternParts=fallthroughStylePatterns[i];match=token.match(patternParts[1]);if(match){style=patternParts[0];break}}if(!match){style=PR_PLAIN}}isEmbedded=style.length>=5&&"lang-"===style.substring(0,5);if(isEmbedded&&!(match&&typeof match[1]==="string")){isEmbedded=false;style=PR_SOURCE}if(!isEmbedded){styleCache[token]=style}}var tokenStart=pos;pos+=token.length;if(!isEmbedded){decorations.push(basePos+tokenStart,style)}else{var embeddedSource=match[1];var embeddedSourceStart=token.indexOf(embeddedSource);var embeddedSourceEnd=embeddedSourceStart+embeddedSource.length;if(match[2]){embeddedSourceEnd=token.length-match[2].length;embeddedSourceStart=embeddedSourceEnd-embeddedSource.length}var lang=style.substring(5);appendDecorations(basePos+tokenStart,token.substring(0,embeddedSourceStart),decorate,decorations);appendDecorations(basePos+tokenStart+embeddedSourceStart,embeddedSource,langHandlerForExtension(lang,embeddedSource),decorations);appendDecorations(basePos+tokenStart+embeddedSourceEnd,token.substring(embeddedSourceEnd),decorate,decorations)}}job.decorations=decorations};return decorate}function sourceDecorator(options){var shortcutStylePatterns=[],fallthroughStylePatterns=[];if(options["tripleQuotedStrings"]){shortcutStylePatterns.push([PR_STRING,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else if(options["multiLineStrings"]){shortcutStylePatterns.push([PR_STRING,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{shortcutStylePatterns.push([PR_STRING,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}if(options["verbatimStrings"]){fallthroughStylePatterns.push([PR_STRING,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var hc=options["hashComments"];if(hc){if(options["cStyleComments"]){if(hc>1){shortcutStylePatterns.push([PR_COMMENT,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{shortcutStylePatterns.push([PR_COMMENT,/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}fallthroughStylePatterns.push([PR_STRING,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,null])}else{shortcutStylePatterns.push([PR_COMMENT,/^#[^\r\n]*/,null,"#"])}}if(options["cStyleComments"]){fallthroughStylePatterns.push([PR_COMMENT,/^\/\/[^\r\n]*/,null]);fallthroughStylePatterns.push([PR_COMMENT,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}var regexLiterals=options["regexLiterals"];if(regexLiterals){var regexExcls=regexLiterals>1?"":"\n\r";var regexAny=regexExcls?".":"[\\S\\s]";var REGEX_LITERAL="/(?=[^/*"+regexExcls+"])"+"(?:[^/\\x5B\\x5C"+regexExcls+"]"+"|\\x5C"+regexAny+"|\\x5B(?:[^\\x5C\\x5D"+regexExcls+"]"+"|\\x5C"+regexAny+")*(?:\\x5D|$))+"+"/";fallthroughStylePatterns.push(["lang-regex",RegExp("^"+REGEXP_PRECEDER_PATTERN+"("+REGEX_LITERAL+")")])}var types=options["types"];if(types){fallthroughStylePatterns.push([PR_TYPE,types])}var keywords=(""+options["keywords"]).replace(/^ | $/g,"");if(keywords.length){fallthroughStylePatterns.push([PR_KEYWORD,new RegExp("^(?:"+keywords.replace(/[\s,]+/g,"|")+")\\b"),null])}shortcutStylePatterns.push([PR_PLAIN,/^\s+/,null," \r\n	 "]);var punctuation="^.[^\\s\\w.$@'\"`/\\\\]*";if(options["regexLiterals"]){punctuation+="(?!s*/)"}fallthroughStylePatterns.push([PR_LITERAL,/^@[a-z_$][a-z_$@0-9]*/i,null],[PR_TYPE,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[PR_PLAIN,/^[a-z_$][a-z_$@0-9]*/i,null],[PR_LITERAL,new RegExp("^(?:"+"0x[a-f0-9]+"+"|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)"+"(?:e[+\\-]?\\d+)?"+")"+"[a-z]*","i"),null,"0123456789"],[PR_PLAIN,/^\\[\s\S]?/,null],[PR_PUNCTUATION,new RegExp(punctuation),null]);return createSimpleLexer(shortcutStylePatterns,fallthroughStylePatterns)}var decorateSource=sourceDecorator({keywords:ALL_KEYWORDS,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function numberLines(node,opt_startLineNum,isPreformatted){var nocode=/(?:^|\s)nocode(?:\s|$)/;var lineBreak=/\r\n?|\n/;var document=node.ownerDocument;var li=document.createElement("li");while(node.firstChild){li.appendChild(node.firstChild)}var listItems=[li];function walk(node){var type=node.nodeType;if(type==1&&!nocode.test(node.className)){if("br"===node.nodeName){breakAfter(node);if(node.parentNode){node.parentNode.removeChild(node)}}else{for(var child=node.firstChild;child;child=child.nextSibling){walk(child)}}}else if((type==3||type==4)&&isPreformatted){var text=node.nodeValue;var match=text.match(lineBreak);if(match){var firstLine=text.substring(0,match.index);node.nodeValue=firstLine;var tail=text.substring(match.index+match[0].length);if(tail){var parent=node.parentNode;parent.insertBefore(document.createTextNode(tail),node.nextSibling)}breakAfter(node);if(!firstLine){node.parentNode.removeChild(node)}}}}function breakAfter(lineEndNode){while(!lineEndNode.nextSibling){lineEndNode=lineEndNode.parentNode;if(!lineEndNode){return}}function breakLeftOf(limit,copy){var rightSide=copy?limit.cloneNode(false):limit;var parent=limit.parentNode;if(parent){var parentClone=breakLeftOf(parent,1);var next=limit.nextSibling;parentClone.appendChild(rightSide);for(var sibling=next;sibling;sibling=next){next=sibling.nextSibling;parentClone.appendChild(sibling)}}return rightSide}var copiedListItem=breakLeftOf(lineEndNode.nextSibling,0);for(var parent;(parent=copiedListItem.parentNode)&&parent.nodeType===1;){copiedListItem=parent}listItems.push(copiedListItem)}for(var i=0;i<listItems.length;++i){walk(listItems[i])}if(opt_startLineNum===(opt_startLineNum|0)){listItems[0].setAttribute("value",opt_startLineNum)}var ol=document.createElement("ol");ol.className="linenums";var offset=Math.max(0,opt_startLineNum-1|0)||0;for(var i=0,n=listItems.length;i<n;++i){li=listItems[i];li.className="L"+(i+offset)%10;if(!li.firstChild){li.appendChild(document.createTextNode(" "))}ol.appendChild(li)}node.appendChild(ol)}function recombineTagsAndDecorations(job){var isIE8OrEarlier=/\bMSIE\s(\d+)/.exec(navigator.userAgent);isIE8OrEarlier=isIE8OrEarlier&&+isIE8OrEarlier[1]<=8;var newlineRe=/\n/g;var source=job.sourceCode;var sourceLength=source.length;var sourceIndex=0;var spans=job.spans;var nSpans=spans.length;var spanIndex=0;var decorations=job.decorations;var nDecorations=decorations.length;var decorationIndex=0;decorations[nDecorations]=sourceLength;var decPos,i;for(i=decPos=0;i<nDecorations;){if(decorations[i]!==decorations[i+2]){decorations[decPos++]=decorations[i++];decorations[decPos++]=decorations[i++]}else{i+=2}}nDecorations=decPos;for(i=decPos=0;i<nDecorations;){var startPos=decorations[i];var startDec=decorations[i+1];var end=i+2;while(end+2<=nDecorations&&decorations[end+1]===startDec){end+=2}decorations[decPos++]=startPos;decorations[decPos++]=startDec;i=end}nDecorations=decorations.length=decPos;var sourceNode=job.sourceNode;var oldDisplay;if(sourceNode){oldDisplay=sourceNode.style.display;sourceNode.style.display="none"}try{var decoration=null;while(spanIndex<nSpans){var spanStart=spans[spanIndex];var spanEnd=spans[spanIndex+2]||sourceLength;var decEnd=decorations[decorationIndex+2]||sourceLength;var end=Math.min(spanEnd,decEnd);var textNode=spans[spanIndex+1];var styledText;if(textNode.nodeType!==1&&(styledText=source.substring(sourceIndex,end))){if(isIE8OrEarlier){styledText=styledText.replace(newlineRe,"\r")}textNode.nodeValue=styledText;var document=textNode.ownerDocument;var span=document.createElement("span");span.className=decorations[decorationIndex+1];var parentNode=textNode.parentNode;parentNode.replaceChild(span,textNode);span.appendChild(textNode);if(sourceIndex<spanEnd){spans[spanIndex+1]=textNode=document.createTextNode(source.substring(end,spanEnd));parentNode.insertBefore(textNode,span.nextSibling)}}sourceIndex=end;if(sourceIndex>=spanEnd){spanIndex+=2}if(sourceIndex>=decEnd){decorationIndex+=2}}}finally{if(sourceNode){sourceNode.style.display=oldDisplay}}}var langHandlerRegistry={};function registerLangHandler(handler,fileExtensions){for(var i=fileExtensions.length;--i>=0;){var ext=fileExtensions[i];if(!langHandlerRegistry.hasOwnProperty(ext)){langHandlerRegistry[ext]=handler}else if(win["console"]){console["warn"]("cannot override language handler %s",ext)}}}function langHandlerForExtension(extension,source){if(!(extension&&langHandlerRegistry.hasOwnProperty(extension))){extension=/^\s*</.test(source)?"default-markup":"default-code"}return langHandlerRegistry[extension]}registerLangHandler(decorateSource,["default-code"]);registerLangHandler(createSimpleLexer([],[[PR_PLAIN,/^[^<?]+/],[PR_DECLARATION,/^<!\w[^>]*(?:>|$)/],[PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);registerLangHandler(createSimpleLexer([[PR_PLAIN,/^[\s]+/,null," 	\r\n"],[PR_ATTRIB_VALUE,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[PR_TAG,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[PR_ATTRIB_NAME,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[PR_PUNCTUATION,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);registerLangHandler(createSimpleLexer([],[[PR_ATTRIB_VALUE,/^[\s\S]+/]]),["uq.val"]);registerLangHandler(sourceDecorator({keywords:CPP_KEYWORDS,hashComments:true,cStyleComments:true,types:C_TYPES}),["c","cc","cpp","cxx","cyc","m"]);registerLangHandler(sourceDecorator({keywords:"null,true,false"}),["json"]);registerLangHandler(sourceDecorator({keywords:CSHARP_KEYWORDS,hashComments:true,cStyleComments:true,verbatimStrings:true,types:C_TYPES}),["cs"]);registerLangHandler(sourceDecorator({keywords:JAVA_KEYWORDS,cStyleComments:true}),["java"]);registerLangHandler(sourceDecorator({keywords:SH_KEYWORDS,hashComments:true,multiLineStrings:true}),["bash","bsh","csh","sh"]);registerLangHandler(sourceDecorator({keywords:PYTHON_KEYWORDS,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py","python"]);registerLangHandler(sourceDecorator({keywords:PERL_KEYWORDS,hashComments:true,multiLineStrings:true,regexLiterals:2}),["perl","pl","pm"]);registerLangHandler(sourceDecorator({keywords:RUBY_KEYWORDS,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb","ruby"]);registerLangHandler(sourceDecorator({keywords:JSCRIPT_KEYWORDS,cStyleComments:true,regexLiterals:true}),["javascript","js"]);registerLangHandler(sourceDecorator({keywords:COFFEE_KEYWORDS,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);registerLangHandler(sourceDecorator({keywords:RUST_KEYWORDS,cStyleComments:true,multilineStrings:true}),["rc","rs","rust"]);registerLangHandler(createSimpleLexer([],[[PR_STRING,/^[\s\S]+/]]),["regex"]);function applyDecorator(job){var opt_langExtension=job.langExtension;try{var sourceAndSpans=extractSourceSpans(job.sourceNode,job.pre);var source=sourceAndSpans.sourceCode;job.sourceCode=source;job.spans=sourceAndSpans.spans;job.basePos=0;langHandlerForExtension(opt_langExtension,source)(job);recombineTagsAndDecorations(job)}catch(e){if(win["console"]){console["log"](e&&e["stack"]||e)}}}function $prettyPrintOne(sourceCodeHtml,opt_langExtension,opt_numberLines){var container=document.createElement("div");container.innerHTML="<pre>"+sourceCodeHtml+"</pre>";container=container.firstChild;if(opt_numberLines){numberLines(container,opt_numberLines,true)}var job={langExtension:opt_langExtension,numberLines:opt_numberLines,sourceNode:container,pre:1};applyDecorator(job);return container.innerHTML}function $prettyPrint(opt_whenDone,opt_root){var root=opt_root||document.body;var doc=root.ownerDocument||document;function byTagName(tn){return root.getElementsByTagName(tn)}var codeSegments=[byTagName("pre"),byTagName("code"),byTagName("xmp")];var elements=[];for(var i=0;i<codeSegments.length;++i){for(var j=0,n=codeSegments[i].length;j<n;++j){elements.push(codeSegments[i][j])}}codeSegments=null;var clock=Date;if(!clock["now"]){clock={now:function(){return+new Date}}}var k=0;var prettyPrintingJob;var langExtensionRe=/\blang(?:uage)?-([\w.]+)(?!\S)/;var prettyPrintRe=/\bprettyprint\b/;var prettyPrintedRe=/\bprettyprinted\b/;var preformattedTagNameRe=/pre|xmp/i;var codeRe=/^code$/i;var preCodeXmpRe=/^(?:pre|code|xmp)$/i;var EMPTY={};function doWork(){var endTime=win["PR_SHOULD_USE_CONTINUATION"]?clock["now"]()+250:Infinity;for(;k<elements.length&&clock["now"]()<endTime;k++){var cs=elements[k];var attrs=EMPTY;{for(var preceder=cs;preceder=preceder.previousSibling;){var nt=preceder.nodeType;var value=(nt===7||nt===8)&&preceder.nodeValue;if(value?!/^\??prettify\b/.test(value):nt!==3||/\S/.test(preceder.nodeValue)){break}if(value){attrs={};value.replace(/\b(\w+)=([\w:.%+-]+)/g,function(_,name,value){attrs[name]=value});break}}}var className=cs.className;if((attrs!==EMPTY||prettyPrintRe.test(className))&&!prettyPrintedRe.test(className)){var nested=false;for(var p=cs.parentNode;p;p=p.parentNode){var tn=p.tagName;if(preCodeXmpRe.test(tn)&&p.className&&prettyPrintRe.test(p.className)){nested=true;break}}if(!nested){cs.className+=" prettyprinted";var langExtension=attrs["lang"];if(!langExtension){langExtension=className.match(langExtensionRe);var wrapper;if(!langExtension&&(wrapper=childContentWrapper(cs))&&codeRe.test(wrapper.tagName)){langExtension=wrapper.className.match(langExtensionRe)}if(langExtension){langExtension=langExtension[1]}}var preformatted;if(preformattedTagNameRe.test(cs.tagName)){preformatted=1}else{var currentStyle=cs["currentStyle"];var defaultView=doc.defaultView;var whitespace=currentStyle?currentStyle["whiteSpace"]:defaultView&&defaultView.getComputedStyle?defaultView.getComputedStyle(cs,null).getPropertyValue("white-space"):0;preformatted=whitespace&&"pre"===whitespace.substring(0,3)}var lineNums=attrs["linenums"];if(!(lineNums=lineNums==="true"||+lineNums)){lineNums=className.match(/\blinenums\b(?::(\d+))?/);lineNums=lineNums?lineNums[1]&&lineNums[1].length?+lineNums[1]:true:false}if(lineNums){numberLines(cs,lineNums,preformatted)}prettyPrintingJob={langExtension:langExtension,sourceNode:cs,numberLines:lineNums,pre:preformatted};applyDecorator(prettyPrintingJob)}}}if(k<elements.length){setTimeout(doWork,250)}else if("function"===typeof opt_whenDone){opt_whenDone()}}doWork()}var PR=win["PR"]={createSimpleLexer:createSimpleLexer,registerLangHandler:registerLangHandler,sourceDecorator:sourceDecorator,PR_ATTRIB_NAME:PR_ATTRIB_NAME,PR_ATTRIB_VALUE:PR_ATTRIB_VALUE,PR_COMMENT:PR_COMMENT,PR_DECLARATION:PR_DECLARATION,PR_KEYWORD:PR_KEYWORD,PR_LITERAL:PR_LITERAL,PR_NOCODE:PR_NOCODE,PR_PLAIN:PR_PLAIN,PR_PUNCTUATION:PR_PUNCTUATION,PR_SOURCE:PR_SOURCE,PR_STRING:PR_STRING,PR_TAG:PR_TAG,PR_TYPE:PR_TYPE,prettyPrintOne:IN_GLOBAL_SCOPE?win["prettyPrintOne"]=$prettyPrintOne:prettyPrintOne=$prettyPrintOne,prettyPrint:prettyPrint=IN_GLOBAL_SCOPE?win["prettyPrint"]=$prettyPrint:prettyPrint=$prettyPrint};if(typeof define==="function"&&define["amd"]){define("google-code-prettify",[],function(){return PR})}})();</script><script>(function(scope){var ContextFreeParser={parse:function(text){var top={};var entities=[];var current=top;var subCurrent={};var scriptDocCommentClause="\\/\\*\\*([\\s\\S]*?)\\*\\/";var htmlDocCommentClause="<!--([\\s\\S]*?)-->";var docCommentRegex=new RegExp(scriptDocCommentClause+"|"+htmlDocCommentClause,"g");var docComments=text.match(docCommentRegex)||[];docComments.forEach(function(m){var lines=m.replace(/\r\n/g,"\n").replace(/^\s*\/\*\*|^\s*\*\/|^\s*\* ?|^\s*\<\!-\-|^s*\-\-\>/gm,"").split("\n");var pragmas=[];lines=lines.filter(function(l){var m=l.match(/\s*@([\w-]*) (.*)/);if(!m){return true}pragmas.push(m)});var code=lines.join("\n");pragmas.forEach(function(m){var pragma=m[1],content=m[2];switch(pragma){case"class":case"element":current={name:content,description:code};entities.push(current);break;case"attribute":case"property":case"method":case"event":subCurrent={name:content,description:code};var label=pragma=="property"?"properties":pragma+"s";makePragma(current,label,subCurrent);break;case"default":case"type":subCurrent[pragma]=content;break;case"param":var eventParmsRe=/\{(.+)\}\s+(\w+[.\w+]+)\s+(.*)$/;var params=content.match(eventParmsRe);if(params){var subEventObj={type:params[1],name:params[2],description:params[3]};makePragma(subCurrent,pragma+"s",subEventObj)}break;default:current[pragma]=content;break}});function makePragma(object,pragma,content){var p$=object;var p=p$[pragma];if(!p){p$[pragma]=p=[]}p.push(content)}});if(entities.length===0){entities.push({name:"Entity",description:"**Undocumented**"})}return entities}};if(typeof module!=="undefined"&&module.exports){module.exports=ContextFreeParser}else{scope.ContextFreeParser=ContextFreeParser}})(this);</script><polymer-element name="core-xhr" hidden assetpath="../core-ajax/"><script>Polymer("core-xhr",{request:function(options){var xhr=new XMLHttpRequest;var url=options.url;var method=options.method||"GET";var async=!options.sync;var params=this.toQueryString(options.params);if(params&&method=="GET"){url+=(url.indexOf("?")>0?"&":"?")+params}var xhrParams=this.isBodyMethod(method)?options.body||params:null;xhr.open(method,url,async);if(options.responseType){xhr.responseType=options.responseType}if(options.withCredentials){xhr.withCredentials=true}this.makeReadyStateHandler(xhr,options.callback);this.setRequestHeaders(xhr,options.headers);xhr.send(xhrParams);if(!async){xhr.onreadystatechange(xhr)}return xhr},toQueryString:function(params){var r=[];for(var n in params){var v=params[n];n=encodeURIComponent(n);r.push(v==null?n:n+"="+encodeURIComponent(v))}return r.join("&")},isBodyMethod:function(method){return this.bodyMethods[(method||"").toUpperCase()]},bodyMethods:{POST:1,PUT:1,DELETE:1},makeReadyStateHandler:function(xhr,callback){xhr.onreadystatechange=function(){if(xhr.readyState==4){callback&&callback.call(null,xhr.response,xhr)}}},setRequestHeaders:function(xhr,headers){if(headers){for(var name in headers){xhr.setRequestHeader(name,headers[name])}}}});</script></polymer-element><polymer-element name="core-ajax" hidden attributes="url handleAs auto params response error method headers body contentType withCredentials" assetpath="../core-ajax/"><script>Polymer("core-ajax",{url:"",handleAs:"",auto:false,params:"",response:null,error:null,method:"",headers:null,body:null,contentType:"application/x-www-form-urlencoded",withCredentials:false,xhrArgs:null,ready:function(){this.xhr=document.createElement("core-xhr")},receive:function(response,xhr){if(this.isSuccess(xhr)){this.processResponse(xhr)}else{this.processError(xhr)}this.complete(xhr)},isSuccess:function(xhr){var status=xhr.status||0;return!status||status>=200&&status<300},processResponse:function(xhr){var response=this.evalResponse(xhr);if(xhr===this.activeRequest){this.response=response}this.fire("core-response",{response:response,xhr:xhr})},processError:function(xhr){var response=xhr.status+": "+xhr.responseText;if(xhr===this.activeRequest){this.error=response}this.fire("core-error",{response:response,xhr:xhr})},complete:function(xhr){this.fire("core-complete",{response:xhr.status,xhr:xhr})},evalResponse:function(xhr){return this[(this.handleAs||"text")+"Handler"](xhr)},xmlHandler:function(xhr){return xhr.responseXML},textHandler:function(xhr){return xhr.responseText},jsonHandler:function(xhr){var r=xhr.responseText;try{return JSON.parse(r)}catch(x){console.warn("core-ajax caught an exception trying to parse response as JSON:");console.warn("url:",this.url);console.warn(x);return r}},documentHandler:function(xhr){return xhr.response},blobHandler:function(xhr){return xhr.response},arraybufferHandler:function(xhr){return xhr.response},urlChanged:function(){if(!this.handleAs){var ext=String(this.url).split(".").pop();switch(ext){case"json":this.handleAs="json";break}}this.autoGo()},paramsChanged:function(){this.autoGo()},autoChanged:function(){this.autoGo()},autoGo:function(){if(this.auto){this.goJob=this.job(this.goJob,this.go,0)}},go:function(){var args=this.xhrArgs||{};args.body=this.body||args.body;args.params=this.params||args.params;if(args.params&&typeof args.params=="string"){args.params=JSON.parse(args.params)}args.headers=this.headers||args.headers||{};if(args.headers&&typeof args.headers=="string"){args.headers=JSON.parse(args.headers)}var hasContentType=Object.keys(args.headers).some(function(header){return header.toLowerCase()==="content-type"});if(!hasContentType&&this.contentType){args.headers["Content-Type"]=this.contentType}if(this.handleAs==="arraybuffer"||this.handleAs==="blob"||this.handleAs==="document"){args.responseType=this.handleAs}args.withCredentials=this.withCredentials;args.callback=this.receive.bind(this);args.url=this.url;args.method=this.method;this.response=this.error=null;this.activeRequest=args.url&&this.xhr.request(args);return this.activeRequest}});</script></polymer-element><polymer-element name="context-free-parser" attributes="url text data" assetpath="../context-free-parser/"><template><core-ajax url="{{url}}" response="{{text}}" auto=""></core-ajax></template><script>Polymer("context-free-parser",{text:null,textChanged:function(){if(this.text){var entities=ContextFreeParser.parse(this.text);if(!entities||entities.length===0){entities=[{name:this.url.split("/").pop(),description:"**Undocumented**"}]}this.data={classes:entities}}},dataChanged:function(){this.fire("data-ready")}});</script></polymer-element><polymer-element name="core-doc-page" attributes="data" relative="" assetpath="../core-doc-viewer/elements/"><template><style>:host{display:block}#info>*{margin-right:20px}core-icon{margin-right:5px}.main{padding:0 72px;max-width:832px;margin:0 auto}marked-element{display:block}h1{color:#E91E63;font-size:52px;line-height:60px;font-weight:inherit}.box{margin-bottom:40px}.box:not(.top) .details{padding:16px}.box:not(.top) .details .params{margin-top:40px}.box:not(.top) h3{padding:16px;color:#fff;font-weight:inherit;font-size:20px;line-height:48px;margin:0}.box:not(.top) pre{padding:initial;background-color:transparent;margin:initial;font-size:12px}.box code{color:currentcolor;font-weight:500}.top pre{background-color:#fafafa;padding:16px}pre{max-width:832px;white-space:pre-wrap;overflow:hidden;border:none}.attribute-box .details{background-color:#ffcbbb;border-bottom:1px solid rgba(255,86,33,.5)}.attribute-box h3{background-color:#ff5621}.property-box .details{background-color:#fbe7b1;border-bottom:1px solid rgba(243,179,0,.5)}.property-box h3{background-color:#f3b300}.method-box .details{background-color:#a6ffea;border-bottom:1px solid rgba(0,190,164,.5)}.method-box h3{background-color:#00bea4}.event-box .details{background-color:#c5d9fb;border-bottom:1px solid rgba(65,132,243,.5)}.event-box h3{background-color:#4184f3}.badge{color:currentcolor}code,pre{color:#9f499b;font-family:"Source Code Pro",Monaco,Menlo,Consolas,"Courier New",monospace}pre .typ,pre .inline,.prettyprint .typ,.prettyprint .inline{color:#6b499f}pre .pun,.prettyprint .pun{color:#5c6bc0}pre .str,pre .string,.prettyprint .str,.prettyprint .string{color:#ff4081}pre .pln,.prettyprint .pln{color:#7986cb}pre .kwd,.prettyprint .kwd{color:#d61a7f}pre .atn,pre .attribute-name,.prettyprint .atn,.prettyprint .attribute-name{color:#6b499f}pre .atv,pre .attribute-value,.prettyprint .atv,.prettyprint .attribute-value{color:#7986cb}pre .com,pre .comment,.prettyprint .com,.prettyprint .comment{color:#8a8a8a}</style><core-header-panel id="panel" mode="waterfall" fit=""><div class="main" on-marked-js-highlight="{{hilight}}"><h1>{{data.name}}</h1><p id="info" layout="" horizontal="" center=""><span layout="" horizontal="" center=""><core-icon icon="home"></core-icon><a href="{{data | homepageFilter}}">Home Page</a></span><span layout="" horizontal="" center="" hidden?="{{!data.version}}"><core-icon icon="info-outline"></core-icon>Version: {{data.version}}</span></p><template if="{{data.extends}}"><section class="top"><h3 id="{{data.name}}.extends">Extends: <a href="#{{data.extends}}">{{data.extends}}</a></h3></section></template><template if="{{data.description}}"><section class="box top"><h3 id="{{data.name}}.summary">Summary</h3><marked-element text="{{data.description}}"></marked-element></section></template><template if="{{data.attributes.length}}"><section class="box attribute-box"><h3 id="{{data.name}}.attributes">Attributes</h3><template repeat="{{attribute in data.attributes}}"><div class="details" horizontal="" layout=""><div class="details-name" flex="" id="{{data.name}}.attributes.{{attribute.name}}"><p><code>{{attribute.name}}</code></p></div><div class="details-info" flex="" three=""><p layout="" horizontal="" center="" justified=""><code>&lt;<em>{{attribute.type}}</em>&gt;</code><span class="default" hidden?="{{!attribute.default}}">default: <code>{{attribute.default}}</code></span></p><marked-element text="{{attribute.description}}"></marked-element></div></div></template></section></template><template if="{{data.properties.length}}"><section class="box property-box"><h3 id="{{data.name}}.properties">Properties</h3><template repeat="{{property in data.properties}}"><div class="details" horizontal="" layout=""><div class="details-name" flex="" id="{{data.name}}.properties.{{property.name}}"><p><code>{{property.name}}</code></p></div><div class="details-info" flex="" three=""><p layout="" horizontal="" center="" justified=""><code>&lt;<em>{{property.type}}</em>&gt;</code><span class="default" hidden?="{{!property.default}}">default: <code>{{property.default}}</code></span></p><marked-element text="{{property.description}}"></marked-element></div></div></template></section></template><template if="{{data.events.length}}"><section class="box event-box"><h3 id="{{data.name}}.events">Events</h3><template repeat="{{event in data.events}}"><div class="details" horizontal="" layout=""><div class="details-name" flex="" id="{{data.name}}.events.{{event.name}}"><p><code>{{event.name}}</code></p></div><div class="details-info" flex="" three=""><marked-element text="{{event.description}}"></marked-element><template if="{{event.params.length}}"><div class="params"><p>Event details:</p><template repeat="{{param in event.params}}"><p><code>&lt;<em>{{param.type}}</em>&gt; {{param.name}}</code></p><p><span>{{param.description}}</span></p></template></div></template></div></div></template></section></template><template if="{{data.methods.length}}"><section class="box method-box"><h3 id="{{data.name}}.methods">Methods</h3><template repeat="{{method in data.methods}}"><div class="details" horizontal="" layout=""><div class="details-name" flex="" id="{{data.name}}.methods.{{method.name}}"><p><code>{{method.name}}</code></p></div><div class="details-info" flex="" three=""><marked-element text="{{method.description}}"></marked-element><template if="{{method.params.length}}"><div class="params"><p>Method parameters:</p><template repeat="{{param in method.params}}"><p><code>&lt;<em>{{param.type}}</em>&gt; {{param.name}}</code></p><p><span>{{param.description}}</span></p></template></div></template></div></div></template></section></template></div></core-header-panel></template><script>Polymer("core-doc-page",{hilight:function(event,detail,sender){detail.code=prettyPrintOne((detail.code||"").replace(/</g,"&lt;").replace(/>/g,"&gt;"))},homepageFilter:function(data){if(!data){return""}if(!data.homepage||data.homepage==="github.io"){return"//polymer.github.io/"+data.name}else{return data.homepage}},dataChanged:function(){this.async(function(){var elementToFocus=this.shadowRoot.getElementById(window.location.hash.slice(1));if(elementToFocus){elementToFocus.scrollIntoView()}})}});</script></polymer-element><polymer-element name="core-selection" attributes="multi" hidden assetpath="../core-selection/"><script>Polymer("core-selection",{multi:false,ready:function(){this.clear()},clear:function(){this.selection=[]},getSelection:function(){return this.multi?this.selection:this.selection[0]},isSelected:function(item){return this.selection.indexOf(item)>=0},setItemSelected:function(item,isSelected){if(item!==undefined&&item!==null){if(isSelected){this.selection.push(item)}else{var i=this.selection.indexOf(item);if(i>=0){this.selection.splice(i,1)}}this.fire("core-select",{isSelected:isSelected,item:item})}},select:function(item){if(this.multi){this.toggle(item)}else if(this.getSelection()!==item){this.setItemSelected(this.getSelection(),false);this.setItemSelected(item,true)}},toggle:function(item){this.setItemSelected(item,!this.isSelected(item))}});</script></polymer-element><polymer-element name="core-selector" attributes="selected multi valueattr selectedClass selectedProperty selectedAttribute selectedItem selectedModel selectedIndex notap excludedLocalNames target itemsSelector activateEvent" assetpath="../core-selector/"><template><core-selection id="selection" multi="{{multi}}" on-core-select="{{selectionSelect}}"></core-selection><content id="items" select="*"></content></template><script>Polymer("core-selector",{selected:null,multi:false,valueattr:"name",selectedClass:"core-selected",selectedProperty:"",selectedAttribute:"active",selectedItem:null,selectedModel:null,selectedIndex:-1,excludedLocalNames:"",target:null,itemsSelector:"",activateEvent:"tap",notap:false,defaultExcludedLocalNames:"template",observe:{"selected multi":"selectedChanged"},ready:function(){this.activateListener=this.activateHandler.bind(this);this.itemFilter=this.filterItem.bind(this);this.excludedLocalNamesChanged();this.observer=new MutationObserver(this.updateSelected.bind(this));if(!this.target){this.target=this}},get items(){if(!this.target){return[]}var nodes=this.target!==this?this.itemsSelector?this.target.querySelectorAll(this.itemsSelector):this.target.children:this.$.items.getDistributedNodes();return Array.prototype.filter.call(nodes,this.itemFilter)},filterItem:function(node){return!this._excludedNames[node.localName]},excludedLocalNamesChanged:function(){this._excludedNames={};var s=this.defaultExcludedLocalNames;if(this.excludedLocalNames){s+=" "+this.excludedLocalNames}s.split(/\s+/g).forEach(function(n){this._excludedNames[n]=1},this)},targetChanged:function(old){if(old){this.removeListener(old);this.observer.disconnect();this.clearSelection()}if(this.target){this.addListener(this.target);this.observer.observe(this.target,{childList:true});this.updateSelected()}},addListener:function(node){Polymer.addEventListener(node,this.activateEvent,this.activateListener)},removeListener:function(node){Polymer.removeEventListener(node,this.activateEvent,this.activateListener)},get selection(){return this.$.selection.getSelection()},selectedChanged:function(){if(arguments.length===1){this.processSplices(arguments[0])}else{this.updateSelected()}},updateSelected:function(){this.validateSelected();if(this.multi){this.clearSelection(this.selected);this.selected&&this.selected.forEach(function(s){this.setValueSelected(s,true)},this)}else{this.valueToSelection(this.selected)}},validateSelected:function(){if(this.multi&&!Array.isArray(this.selected)&&this.selected!=null){this.selected=[this.selected]}else if(!this.multi&&Array.isArray(this.selected)){var s=this.selected[0];this.clearSelection([s]);this.selected=s}},processSplices:function(splices){for(var i=0,splice;splice=splices[i];i++){for(var j=0;j<splice.removed.length;j++){this.setValueSelected(splice.removed[j],false)}for(var j=0;j<splice.addedCount;j++){this.setValueSelected(this.selected[splice.index+j],true)}}},clearSelection:function(excludes){this.$.selection.selection.slice().forEach(function(item){var v=this.valueForNode(item)||this.items.indexOf(item);if(!excludes||excludes.indexOf(v)<0){this.$.selection.setItemSelected(item,false)}},this)},valueToSelection:function(value){var item=this.valueToItem(value);this.$.selection.select(item)},setValueSelected:function(value,isSelected){var item=this.valueToItem(value);if(isSelected^this.$.selection.isSelected(item)){this.$.selection.setItemSelected(item,isSelected)}},updateSelectedItem:function(){this.selectedItem=this.selection},selectedItemChanged:function(){if(this.selectedItem){var t=this.selectedItem.templateInstance;this.selectedModel=t?t.model:undefined}else{this.selectedModel=null}this.selectedIndex=this.selectedItem?parseInt(this.valueToIndex(this.selected)):-1},valueToItem:function(value){return value===null||value===undefined?null:this.items[this.valueToIndex(value)]},valueToIndex:function(value){for(var i=0,items=this.items,c;c=items[i];i++){if(this.valueForNode(c)==value){return i}}return value},valueForNode:function(node){return node[this.valueattr]||node.getAttribute(this.valueattr)},selectionSelect:function(e,detail){this.updateSelectedItem();if(detail.item){this.applySelection(detail.item,detail.isSelected)}},applySelection:function(item,isSelected){if(this.selectedClass){item.classList.toggle(this.selectedClass,isSelected)}if(this.selectedProperty){item[this.selectedProperty]=isSelected}if(this.selectedAttribute&&item.setAttribute){if(isSelected){item.setAttribute(this.selectedAttribute,"")}else{item.removeAttribute(this.selectedAttribute)}}},activateHandler:function(e){if(!this.notap){var i=this.findDistributedTarget(e.target,this.items);if(i>=0){var item=this.items[i];var s=this.valueForNode(item)||i;if(this.multi){if(this.selected){this.addRemoveSelected(s)}else{this.selected=[s]}}else{this.selected=s}this.asyncFire("core-activate",{item:item})}}},addRemoveSelected:function(value){var i=this.selected.indexOf(value);if(i>=0){this.selected.splice(i,1)}else{this.selected.push(value)}},findDistributedTarget:function(target,nodes){while(target&&target!=this){var i=Array.prototype.indexOf.call(nodes,target);if(i>=0){return i}target=target.parentNode}},selectIndex:function(index){var item=this.items[index];if(item){this.selected=this.valueForNode(item)||index;return item}},selectPrevious:function(wrapped){var i=wrapped&&!this.selectedIndex?this.items.length-1:this.selectedIndex-1;return this.selectIndex(i)},selectNext:function(wrapped){var i=wrapped&&this.selectedIndex>=this.items.length-1?0:this.selectedIndex+1;return this.selectIndex(i)}});</script></polymer-element><polymer-element name="core-menu" extends="core-selector" assetpath="../core-menu/"><template><style>:host{display:block;margin:12px}polyfill-next-selector{content:':host > core-item'}::content>core-item{cursor:default}</style><shadow></shadow></template><script>Polymer("core-menu");</script></polymer-element><polymer-element name="core-item" attributes="label icon src" horizontal="" center="" layout="" assetpath="../core-item/"><template><style>:host{display:block;position:relative;min-height:40px;white-space:nowrap}:host(.font-scalable){min-height:2.5em}:host(.core-selected){font-weight:700}#icon{margin:0 16px 0 4px}:host(.font-scalable) #icon{margin:0 1em 0 .25em;height:1.5em;width:1.5em}polyfill-next-selector{content:':host > a'}::content>a{position:absolute;top:0;right:0;bottom:0;left:0;background-color:rgba(0,0,0,.000001)}</style><template if="{{icon || src}}"><core-icon src="{{src}}" id="icon" icon="{{icon}}" hidden?="{{!src && !icon}}"></core-icon></template><div id="label">{{label}}</div><content></content></template><script>Polymer("core-item",{});</script></polymer-element><polymer-element name="core-doc-toc" attributes="data selected" assetpath="../core-doc-viewer/elements/"><template><style>:host{display:block;position:relative;border-right:1px solid silver}core-header-panel{position:absolute;top:0;left:0;height:100%;width:100%}core-toolbar{background-color:#eee}</style><core-header-panel mode="waterfall"><core-menu selected="{{selected}}"><template repeat="{{data}}"><core-item><a href="#{{name}}">{{name}}</a></core-item></template></core-menu></core-header-panel></template><script>Polymer("core-doc-toc",{searchAction:function(){this.$.searchBar.style.opacity=1;this.$.searchBar.style.display=""},closeSearchAction:function(){this.$.searchBar.style.opacity=0;this.$.searchBar.style.display="none"}});</script></polymer-element><polymer-element name="core-doc-viewer" attributes="sources route url" horizontal="" layout="" assetpath="../core-doc-viewer/"><template><style>core-doc-toc{display:none;width:332px;overflow-x:hidden}</style><context-free-parser url="{{url}}" on-data-ready="{{parserDataReady}}"></context-free-parser><template repeat="{{sources}}"><context-free-parser url="{{}}" on-data-ready="{{parserDataReady}}"></context-free-parser></template><core-doc-toc id="toc" data="{{classes}}" selected="{{selected}}"></core-doc-toc><core-doc-page flex="" data="{{data}}"></core-doc-page></template><script>Polymer("core-doc-viewer",{classes:[],sources:[],ready:function(){window.addEventListener("hashchange",this.parseLocationHash.bind(this));this.parseLocationHash()},parseLocationHash:function(){this.route=window.location.hash.slice(1)},routeChanged:function(){this.validateRoute()},validateRoute:function(){if(this.route){this.classes.some(function(c){if(c.name===this.route.split(".")[0]){this.data=c;this.route="";return}},this)}},selectedChanged:function(){this.data=this.classes[this.selected]},parserDataReady:function(event,detail,sender){var path="";if(this.sources.length){var path=event.target.templateInstance.model;var idx=path.lastIndexOf("/");path=idx!=-1?path.substr(0,idx):"."}else{var parts=location.pathname.split("/");parts.pop();path=parts.join("/")}var data=event.target.data;var xhr=new XMLHttpRequest;xhr.open("GET",path+"/bower.json");xhr.onerror=function(e){this.assimilateData(data)}.bind(this);xhr.onloadend=function(e){if(e.target.status==200){var version=JSON.parse(e.target.response).version;for(var i=0,c;c=data.classes[i];++i){c.version=version}}this.assimilateData(data)}.bind(this);xhr.send()},assimilateData:function(data){this.classes=this.classes.concat(data.classes);this.classes.sort(function(a,b){var na=a&&a.name.toLowerCase(),nb=b&&b.name.toLowerCase();return na<nb?-1:na==nb?0:1});if(!this.data&&!this.route&&this.classes.length){this.data=this.classes[0]}if(this.classes.length>1){this.$.toc.style.display="block"}this.validateRoute()}});</script></polymer-element></div>
<div hidden>undefined</div>

<!--

Implements the default landing page for Polymer components.

`<core-component-page>` can render an information page for any component.
Polymer components use this component in `index.html` to provide the standard landing page.

`<core-component-page>` is _vulcanized_, which means it contains all it's dependencies baked in.
Therefore, this component is intended to be used only by itself in a page.

This *-dev package contains the raw source and the dependency manifest necessary
to reconstruct `core-component-page/core-component-page.html` via vulcanize. To vulcanize,
check out the core-component-page repo alongside this repo and run build.sh. This will
drop the vulcanize output into `core-component-page/core-component-page.html`.

Note: `<core-component-page>` sets the page title automatically.

@group Polymer Core Elements
@element core-component-page

-->

<polymer-element name="core-component-page" attributes="moduleName sources" layout="" vertical="" assetpath="../core-component-page-dev/"><template><style>:host{font-family:Arial,sans-serif;height:100vh}h2{display:inline-block;margin:8px 6px;vertical-align:middle}.choiceB,.choiceC,.choiceD{color:#fff;font-size:12px;font-weight:700;text-decoration:none;background-color:#4285F4;box-shadow:0 1px 2px 0 rgba(0,0,0,.1);box-shadow:0 0 1px 0 rgba(0,0,0,.1);border-radius:2px;cursor:pointer;display:inline-block;padding:4px 12px 5px 12px;margin:4px 0}.appbar{background-color:#E91E63;color:#fff}</style><core-toolbar class="appbar"><span>{{moduleName}}</span><a class="choiceC" target="_blank" href="../{{moduleName}}/demo.html">demo</a></core-toolbar><core-doc-viewer flex="" url="{{url}}" sources="{{sources}}"></core-doc-viewer></template><script>Polymer("core-component-page",{moduleName:"",sources:[],ready:function(){this.moduleName=this.moduleName||this.findModuleName()},moduleNameChanged:function(){document.title=this.moduleName;this.url=!this.sources.length&&this.moduleName?this.moduleName+".html":""},findModuleName:function(){var path=location.pathname.split("/");var name=path.pop()||path.pop();if(name.indexOf(".html")>=0){name=path.pop()}return name||""}});</script></polymer-element>


================================================
FILE: bower_components/core-component-page/demo.html
================================================
<!doctype html>
<!--
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE
The complete set of authors may be found at http://polymer.github.io/AUTHORS
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS
-->
<html>
<head>

  <script src="../webcomponentsjs/webcomponents.js"></script>
  <link rel="import" href="../polymer/polymer.html">
  <link rel="import" href="core-component-page.html">

</head>
<body unresolved>

  <core-component-page></core-component-page>

</body>
</html>


================================================
FILE: bower_components/core-component-page/index.html
================================================
<!doctype html>
<!--
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE
The complete set of authors may be found at http://polymer.github.io/AUTHORS
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS
-->
<html>
<head>

  <script src="../webcomponentsjs/webcomponents.js"></script>
  <link rel="import" href="../core-component-page/core-component-page.html">

</head>
<body unresolved>

  <core-component-page></core-component-page>

</body>
</html>


================================================
FILE: bower_components/core-drawer-panel/.bower.json
================================================
{
  "name": "core-drawer-panel",
  "private": true,
  "dependencies": {
    "core-selector": "Polymer/core-selector#^0.5.0",
    "core-media-query": "Polymer/core-media-query#^0.5.0"
  },
  "version": "0.5.2",
  "homepage": "https://github.com/Polymer/core-drawer-panel",
  "_release": "0.5.2",
  "_resolution": {
    "type": "version",
    "tag": "0.5.2",
    "commit": "5fdc586af1e062530ee9aa5a22bd251cf48944a5"
  },
  "_source": "git://github.com/Polymer/core-drawer-panel.git",
  "_target": "^0.5.0",
  "_originalSource": "Polymer/core-drawer-panel"
}

================================================
FILE: bower_components/core-drawer-panel/README.md
================================================
core-drawer-panel
==================

See the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-drawer-panel) for more information.


================================================
FILE: bower_components/core-drawer-panel/bower.json
================================================
{
  "name": "core-drawer-panel",
  "private": true,
  "dependencies": {
    "core-selector": "Polymer/core-selector#^0.5.0",
    "core-media-query": "Polymer/core-media-query#^0.5.0"
  },
  "version": "0.5.2"
}

================================================
FILE: bower_components/core-drawer-panel/core-drawer-panel.css
================================================
/*
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
*/

:host {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

core-selector > #drawer {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  will-change: transform;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
}

.transition > #drawer {
  transition: -webkit-transform ease-in-out 0.3s, width ease-in-out 0.3s;
  transition: transform ease-in-out 0.3s, width ease-in-out 0.3s;
}

/*
right-drawer: make drawer on the right side
*/
.right-drawer > #drawer {
  left: auto;
  right: 0;
}

.right-drawer.transition > #drawer {
  transition: -webkit-transform ease-in-out 0.3s, width ease-in-out 0.3s;
  transition: transform ease-in-out 0.3s, width ease-in-out 0.3s;
}

polyfill-next-selector { content: ':host [drawer]'; }
::content[select="[drawer]"] > * {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
}

core-selector > #main {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
}

.transition > #main {
  transition: left ease-in-out 0.3s, padding ease-in-out 0.3s;
}

.right-drawer > #main {
  left: 0;
}

.right-drawer.transition > #main {
  transition: right ease-in-out 0.3s, padding ease-in-out 0.3s;
}

polyfill-next-selector { content: '#main > [main]'; }
::content[select="[main]"] > * {
  height: 100%;
}

#scrim {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: rgba(0, 0, 0, 0.3);
  visibility: hidden;
  opacity: 0;
  transition: opacity ease-in-out 0.38s, visibility ease-in-out 0.38s;
}

/*
narrow layout
*/
.narrow-layout > #drawer.core-selected {
  box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.15);
}

.right-drawer.narrow-layout > #drawer.core-selected {
  box-shadow: -2px 2px 4px rgba(0, 0, 0, 0.15);
}

polyfill-next-selector { content: ':host .narrow-layout > #drawer > [drawer]'; }
.narrow-layout > #drawer > ::content[select="[drawer]"] > * {
  border: 0;
}

.narrow-layout > #drawer:not(.core-selected) {
  -webkit-transform: translateX(-100%);
  transform: translateX(-100%);
}

.right-drawer.narrow-layout > #drawer:not(.core-selected) {
  left: auto;
  -webkit-transform: translateX(100%);
  transform: translateX(100%);
}

.narrow-layout > #main {
  left: 0 !important;
  padding: 0;
}

.right-drawer.narrow-layout > #main {
  left: 0;
  right: 0;
  padding: 0;
}

.narrow-layout > #main:not(.core-selected) > #scrim,
.dragging #scrim {
  visibility: visible;
  opacity: 1;
}

polyfill-next-selector { content: ':host .narrow-layout > #main > [main]'; }
.narrow-layout > #main > ::content[select="[main]"] > * {
  margin: 0;
  min-height: 100%;
  left: 0;
  right: 0;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
}

polyfill-next-selector { content: 'core-selector:not(.narrow-layout) [core-drawer-toggle]'; }
core-selector:not(.narrow-layout) ::content [core-drawer-toggle] {
  display: none;
}


================================================
FILE: bower_components/core-drawer-panel/core-drawer-panel.html
================================================
<!--
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->

<!--
`core-drawer-panel` contains a drawer panel and a main panel.  The drawer
and the main panel are side-by-side with drawer on the left.  When the browser
window size is smaller than the `responsiveWidth`, `core-drawer-panel`
changes to narrow layout.  In narrow layout, the drawer will be stacked on top
of the main panel.  The drawer will slide in/out to hide/reveal the main
panel.

Use the attribute `drawer` to indicate that the element is the drawer panel and
`main` to indicate that the element is the main panel.

Example:

    <core-drawer-panel>
      <div drawer> Drawer panel... </div>
      <div main> Main panel... </div>
    </core-drawer-panel>

The drawer and the main panels are not scrollable.  You can set CSS overflow
property on the elements to make them scrollable or use `core-header-panel`.

Example:

    <core-drawer-panel>
      <core-header-panel drawer>
        <core-toolbar></core-toolbar>
        <div> Drawer content... </div>
      </core-header-panel>
      <core-header-panel main>
        <core-toolbar></core-toolbar>
        <div> Main content... </div>
      </core-header-panel>
    </core-drawer-panel>

An element that should toggle the drawer will automatically do so if it's 
given the `core-drawer-toggle` attribute.  Also this element will automatically
be hidden in wide layout.

Example:

    <core-drawer-panel>
      <core-header-panel drawer>
        <core-toolbar>
          <div>Application</div>
        </core-toolbar>
        <div> Drawer content... </div>
      </core-header-panel>
      <core-header-panel main>
        <core-toolbar>
          <core-icon-button icon="menu" core-drawer-toggle></core-icon-button>
          <div>Title</div>
        </core-toolbar>
        <div> Main content... </div>
      </core-header-panel>
    </core-drawer-panel>

To position the drawer to the right, add `rightDrawer` attribute.

    <core-drawer-panel rightDrawer>
      <div drawer> Drawer panel... </div>
      <div main> Main panel... </div>
    </core-drawer-panel>

@group Polymer Core Elements
@element core-drawer-panel
@homepage github.io
-->

<link rel="import" href="../core-media-query/core-media-query.html">
<link rel="import" href="../core-selector/core-selector.html">

<polymer-element name="core-drawer-panel" touch-action="auto">
<template>

  <link rel="stylesheet" href="core-drawer-panel.css">

  <core-media-query query="max-width: {{forceNarrow ? '' : responsiveWidth}}" queryMatches="{{queryMatches}}"></core-media-query>

  <core-selector class="{{ {'narrow-layout' : narrow, transition : transition, dragging : dragging, 'right-drawer': rightDrawer} | tokenList }}" valueattr="id" selected="{{selected}}">

    <div id="main" _style="left: {{ narrow || rightDrawer ? '0' : drawerWidth }}; right: {{ rightDrawer ? (narrow ? '' : drawerWidth) : '' }};">
      <content select="[main]"></content>
      <div id="scrim" on-tap="{{togglePanel}}"></div>
    </div>

    <div id="drawer" _style="width: {{ drawerWidth }}">
      <content select="[drawer]"></content>
    </div>

  </core-selector>

</template>
<script>

  Polymer('core-drawer-panel', {

    /**
     * Fired when the narrow layout changes.
     *
     * @event core-responsive-change
     * @param {Object} detail
     * @param {boolean} detail.narrow true if the panel is in narrow layout.
     */
     
    /**
     * Fired when the selected panel changes.
     * 
     * Listening for this event is an alternative to observing changes in the `selected` attribute.
     * This event is fired both when a panel is selected and deselected.
     * The `isSelected` detail property contains the selection state.
     * 
     * @event core-select
     * @param {Object} detail
     * @param {boolean} detail.isSelected true for selection and false for deselection
     * @param {Object} detail.item the panel that the event refers to
     */

    publish: {

      /**
       * Width of the drawer panel.
       *
       * @attribute drawerWidth
       * @type string
       * @default '256px'
       */
      drawerWidth: '256px',

      /**
       * Max-width when the panel changes to narrow layout.
       *
       * @attribute responsiveWidth
       * @type string
       * @default '640px'
       */
      responsiveWidth: '640px',

      /**
       * The panel that is being selected. `drawer` for the drawer panel and
       * `main` for the main panel.
       *
       * @attribute selected
       * @type string
       * @default null
       */
      selected: {value: null, reflect: true},

      /**
       * The panel to be selected when `core-drawer-panel` changes to narrow
       * layout.
       *
       * @attribute defaultSelected
       * @type string
       * @default 'main'
       */
      defaultSelected: 'main',

      /**
       * Returns true if the panel is in narrow layout.  This is useful if you
       * need to show/hide elements based on the layout.
       *
       * @attribute narrow
       * @type boolean
       * @default false
       */
      narrow: {value: false, reflect: true},

      /**
       * If true, position the drawer to the right.
       *
       * @attribute rightDrawer
       * @type boolean
       * @default false
       */
      rightDrawer: false,

      /**
       * If true, swipe to open/close the drawer is disabled.
       *
       * @attribute disableSwipe
       * @type boolean
       * @default false
       */
      disableSwipe: false,
      
      /**
       * If true, ignore `responsiveWidth` setting and force the narrow layout.
       *
       * @attribute forceNarrow
       * @type boolean
       * @default false
       */
      forceNarrow: false
    },

    eventDelegates: {
      trackstart: 'trackStart',
      trackx: 'trackx',
      trackend: 'trackEnd',
      down: 'downHandler',
      up: 'upHandler',
      tap: 'tapHandler'
    },

    // Whether the transition is enabled.
    transition: false,

    // How many pixels on the side of the screen are sensitive to edge swipes and peek.
    edgeSwipeSensitivity: 15,

    // Whether the drawer is peeking out from the edge.
    peeking: false,

    // Whether the user is dragging the drawer interactively.
    dragging: false,

    // Whether the browser has support for the transform CSS property.
    hasTransform: true,

    // Whether the browser has support for the will-change CSS property.
    hasWillChange: true,
    
    // The attribute on elements that should toggle the drawer on tap, also 
    // elements will automatically be hidden in wide layout.
    toggleAttribute: 'core-drawer-toggle',

    created: function() {
      this.hasTransform = 'transform' in this.style;
      this.hasWillChange = 'willChange' in this.style;
    },

    domReady: function() {
      // to avoid transition at the beginning e.g. page loads
      // NOTE: domReady is already raf delayed and delaying another frame
      // ensures a layout has occurred.
      this.async(function() {
        this.transition = true;
      });
    },

    /**
     * Toggles the panel open and closed.
     *
     * @method togglePanel
     */
    togglePanel: function() {
      this.selected = this.isMainSelected() ? 'drawer' : 'main';
    },

    /**
     * Opens the drawer.
     *
     * @method openDrawer
     */
    openDrawer: function() {
      this.selected = 'drawer';
    },

    /**
     * Closes the drawer.
     *
     * @method closeDrawer
     */
    closeDrawer: function() {
      this.selected = 'main';
    },

    queryMatchesChanged: function() {
      this.narrow = this.queryMatches || this.forceNarrow;
      if (this.narrow) {
        this.selected = this.defaultSelected;
      }
      this.setAttribute('touch-action', this.swipeAllowed() ? 'pan-y' : '');
      this.fire('core-responsive-change', {narrow: this.narrow});
    },
    
    forceNarrowChanged: function() {
      this.queryMatchesChanged();
    },

    swipeAllowed: function() {
      return this.narrow && !this.disableSwipe;
    },
    
    isMainSelected: function() {
      return this.selected === 'main';
    },

    startEdgePeek: function() {
      this.width = this.$.drawer.offsetWidth;
      this.moveDrawer(this.translateXForDeltaX(this.rightDrawer ?
          -this.edgeSwipeSensitivity : this.edgeSwipeSensitivity));
      this.peeking = true;
    },

    stopEdgePeak: function() {
      if (this.peeking) {
        this.peeking = false;
        this.moveDrawer(null);
      }
    },

    downHandler: function(e) {
      if (!this.dragging && this.isMainSelected() && this.isEdgeTouch(e)) {
        this.startEdgePeek();
      }
    },

    upHandler: function(e) {
      this.stopEdgePeak();
    },
    
    tapHandler: function(e) {
      if (e.target && this.toggleAttribute && 
          e.target.hasAttribute(this.toggleAttribute)) {
        this.togglePanel();
      }
    },

    isEdgeTouch: function(e) {
      return this.swipeAllowed() && (this.rightDrawer ?
        e.pageX >= this.offsetWidth - this.edgeSwipeSensitivity :
        e.pageX <= this.edgeSwipeSensitivity);
    },

    trackStart : function(e) {
      if (this.swipeAllowed()) {
        this.dragging = true;

        if (this.isMainSelected()) {
          this.dragging = this.peeking || this.isEdgeTouch(e);
        }

        if (this.dragging) {
          this.width = this.$.drawer.offsetWidth;
          this.transition = false;
          e.preventTap();
        }
      }
    },

    translateXForDeltaX: function(deltaX) {
      var isMain = this.isMainSelected();
      if (this.rightDrawer) {
        return Math.max(0, isMain ? this.width + deltaX : deltaX);
      } else {
        return Math.min(0, isMain ? deltaX - this.width : deltaX);
      }
    },

    trackx : function(e) {
      if (this.dragging) {
        if (this.peeking) {
          if (Math.abs(e.dx) <= this.edgeSwipeSensitivity) {
            return; // Ignore trackx until we move past the edge peek.
          }
          this.peeking = false;
        }
        this.moveDrawer(this.translateXForDeltaX(e.dx));
      }
    },

    trackEnd : function(e) {
      if (this.dragging) {
        this.dragging = false;
        this.transition = true;
        this.moveDrawer(null);

        if (this.rightDrawer) {
          this.selected = e.xDirection > 0 ? 'main' : 'drawer';
        } else {
          this.selected = e.xDirection > 0 ? 'drawer' : 'main';
        }
      }
    },

    transformForTranslateX: function(translateX) {
      if (translateX === null) {
        return '';
      }
      return this.hasWillChange ? 'translateX(' + translateX + 'px)' : 
          'translate3d(' + translateX + 'px, 0, 0)';
    },

    moveDrawer: function(translateX) {
      var s = this.$.drawer.style;

      if (this.hasTransform) {
        s.transform = this.transformForTranslateX(translateX);
      } else {
        s.webkitTransform = this.transformForTranslateX(translateX);
      }
    }

  });

</script>
</polymer-element>


================================================
FILE: bower_components/core-drawer-panel/demo.html
================================================
<!doctype html>
<!--
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->
<html>
  <head>
    <title>core-drawer-panel</title>
    
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
    <meta name="mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-capable" content="yes">
    
    <script src="../webcomponentsjs/webcomponents.js"></script>
    
    <link rel="import" href="core-drawer-panel.html">
    
    <style>

      html, body {
        height: 100%;
      }
    
      body {
        font-family: sans-serif;
        color: #FFF;
        margin: 0;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
        -webkit-tap-highlight-color: rgba(0,0,0,0);
      }
      
      [drawer] {
        background-color: #B99588;
        border-right: 1px solid #ccc;
      }
      
      [main] {
        background-color: #4F7DC9;
      }
      
      button {
        width: 160px;
        height: 40px;
        font-size: 16px;
        margin: 8px;
      }
      
    </style>
    
  </head>
  
  <body unresolved>
  
    <core-drawer-panel>
    
      <div drawer></div>
        
      <div main>
        <button core-drawer-toggle>toggle drawer</button>
      </div>
      
    </core-drawer-panel>
    
  </body>
</html>


================================================
FILE: bower_components/core-drawer-panel/index.html
================================================
<!doctype html>
<!--
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE
The complete set of authors may be found at http://polymer.github.io/AUTHORS
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS
-->
<html>
<head>

  <script src="../webcomponentsjs/webcomponents.js"></script>
  <link rel="import" href="../core-component-page/core-component-page.html">

</head>
<body unresolved>

  <core-component-page></core-component-page>

</body>
</html>


================================================
FILE: bower_components/core-drawer-panel/metadata.html
================================================
<!--
    @license
    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->
<x-meta id="section" label="Section" isContainer group="Core">

  <template>

    <section style="width: 200px; height: 300px;" layout vertical></section>

  </template>

</x-meta>

<x-meta id="core-drawer-panel" label="Drawer Panel" isContainer group="Core">

  <template>

    <core-drawer-panel style="position: absolute; top: 0; right: 0; bottom: 0; left: 0;">
      <section drawer style="background-color: #fafafa; box-shadow: rgba(0, 0, 0, 0.098) 0px 2px 4px, rgba(0, 0, 0, 0.098) 0px 0px 3px;"></section>
      <section main style="height: 100%; box-sizing: border-box; background-color: #ddd"></section>
    </core-drawer-panel>

  </template>

  <template id="imports">

    <link rel="import" href="core-drawer-panel.html">

  </template>

</x-meta>


================================================
FILE: bower_components/core-focusable/.bower.json
================================================
{
  "name": "core-focusable",
  "private": false,
  "dependencies": {
    "polymer": "Polymer/polymer#^0.5.0"
  },
  "version": "0.5.2",
  "homepage": "https://github.com/Polymer/core-focusable",
  "_release": "0.5.2",
  "_resolution": {
    "type": "version",
    "tag": "0.5.2",
    "commit": "54fda73ce01c1e68041a3e89d2d0656a8f9f8543"
  },
  "_source": "git://github.com/Polymer/core-focusable.git",
  "_target": "^0.5.0",
  "_originalSource": "Polymer/core-focusable"
}

================================================
FILE: bower_components/core-focusable/README.md
================================================
core-focusable
==============

owner: @morethanreal

See the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-focusable) for more information.


================================================
FILE: bower_components/core-focusable/bower.json
================================================
{
  "name": "core-focusable",
  "private": false,
  "dependencies": {
    "polymer": "Polymer/polymer#^0.5.0"
  },
  "version": "0.5.2"
}

================================================
FILE: bower_components/core-focusable/core-focusable.html
================================================
<link href="../polymer/polymer.html" rel="import">

<script src="polymer-mixin.js"></script>
<script src="core-focusable.js"></script>


================================================
FILE: bower_components/core-focusable/core-focusable.js
================================================
/**
 * @group Polymer Mixins
 *
 * `Polymer.CoreFocusable` is a mixin for elements that the user can interact with.
 * Elements using this mixin will receive attributes reflecting the focus, pressed
 * and disabled states.
 *
 * @element Polymer.CoreFocusable
 * @status unstable
 */

Polymer.CoreFocusable = {

  mixinPublish: {

    /**
     * If true, the element is currently active either because the
     * user is touching it, or the button is a toggle
     * and is currently in the active state.
     *
     * @attribute active
     * @type boolean
     * @default false
     */
    active: {value: false, reflect: true},

    /**
     * If true, the element currently has focus due to keyboard
     * navigation.
     *
     * @attribute focused
     * @type boolean
     * @default false
     */
    focused: {value: false, reflect: true},

    /**
     * If true, the user is currently holding down the button.
     *
     * @attribute pressed
     * @type boolean
     * @default false
     */
    pressed: {value: false, reflect: true},

    /**
     * If true, the user cannot interact with this element.
     *
     * @attribute disabled
     * @type boolean
     * @default false
     */
    disabled: {value: false, reflect: true},

    /**
     * If true, the button toggles the active state with each tap.
     * Otherwise, the button becomes active when the user is holding
     * it down.
     *
     * @attribute toggle
     * @type boolean
     * @default false
     */
    toggle: false

  },

  mixinDelegates: {
    contextMenu: '_contextMenuAction',
    down: '_downAction',
    up: '_upAction',
    focus: '_focusAction',
    blur: '_blurAction'
  },

  mixinObserve: {
    disabled: '_disabledChanged'
  },

  _disabledChanged: function() {
    if (this.disabled) {
      this.style.pointerEvents = 'none';
      this.removeAttribute('tabindex');
      this.setAttribute('aria-disabled', '');
    } else {
      this.style.pointerEvents = '';
      this.setAttribute('tabindex', 0);
      this.removeAttribute('aria-disabled');
    }
  },

  _downAction: function() {
    this.pressed = true;

    if (this.toggle) {
      this.active = !this.active;
    } else {
      this.active = true;
    }
  },

  // Pulling up the context menu for an item should focus it; but we need to
  // be careful about how we deal with down/up events surrounding context
  // menus. The up event typically does not fire until the context menu
  // closes: so we focus immediately.
  //
  // This fires _after_ downAction.
  _contextMenuAction: function(e) {
    // Note that upAction may fire _again_ on the actual up event.
    this._upAction(e);
    this._focusAction();
  },

  _upAction: function() {
    this.pressed = false;

    if (!this.toggle) {
      this.active = false;
    }
  },

  _focusAction: function() {
    if (!this.pressed) {
      // Only render the "focused" state if the element gains focus due to
      // keyboard navigation.
      this.focused = true;
    }
  },

  _blurAction: function() {
    this.focused = false;
  }

}


================================================
FILE: bower_components/core-focusable/demo.html
================================================
<!doctype html>
<!--
Copyright 2013 The Polymer Authors. All rights reserved.
Use of this source code is governed by a BSD-style
license that can be found in the LICENSE file.
-->
<html>
<head>

  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">

  <title>core-focusable</title>

  <script src="../webcomponentsjs/webcomponents.js"></script>

  <link href="core-focusable.html" rel="import">

  <style shim-shadowdom>
    body {
      font-family: RobotoDraft, 'Helvetica Neue', Helvetica, Arial;
      font-size: 14px;
      margin: 0;
      padding: 24px;
      -webkit-tap-highlight-color: rgba(0,0,0,0);
      -webkit-touch-callout: none;
    }

    section {
      padding: 20px 0;
    }

    section > div {
      padding: 14px;
      font-size: 16px;
    }

    focusable-button {
      display: inline-block;
      padding: 0.5em 1em;
      border-radius: 3px;
      outline: none;
    }

    focusable-button[disabled] {
      background: #e0e0e0;
    }

    focusable-button[active] {
      background: #000;
      color: #fff;
    }

    focusable-button[pressed] {
      background: #ffb74d;
      color: #000;
    }

    focusable-button[focused] {
      border: 1px solid #4fc3f7;
    }

  </style>
</head>
<body unresolved>

  <polymer-element name="focusable-button" tabindex="0">
  <script>
    (function() {
      var p = {

        eventDelegates: {
          down: 'downAction',
          up: 'upAction'
        },

        downAction: function() {
          // call overriden event delegate
          this._downAction();
          console.log('down');
        },

        upAction: function() {
          // call overriden event delegate
          this._upAction();
          console.log('up');
        }

      };

      Polymer.mixin2(p, Polymer.CoreFocusable);
      Polymer(p);
    })();
  </script>
  </polymer-element>

  <section>

    <focusable-button>button</focusable-button>

    <focusable-button toggle>toggle</focusable-button>

    <focusable-button disabled>disabled</focusable-button>

  </section>

</body>
</html>


================================================
FILE: bower_components/core-focusable/polymer-mixin.js
================================================
Polymer.mixin2 = function(prototype, mixin) {

  // adds a single mixin to prototype

  if (mixin.mixinPublish) {
    prototype.publish = prototype.publish || {};
    Polymer.mixin(prototype.publish, mixin.mixinPublish);
  }

  if (mixin.mixinDelegates) {
    prototype.eventDelegates = prototype.eventDelegates || {};
    for (var e in mixin.mixinDelegates) {
      if (!prototype.eventDelegates[e]) {
        prototype.eventDelegates[e] = mixin.mixinDelegates[e];
      }
    }
  }

  if (mixin.mixinObserve) {
    prototype.observe = prototype.observe || {};
    for (var o in mixin.mixinObserve) {
      if (!prototype.observe[o] && !prototype[o + 'Changed']) {
        prototype.observe[o] = mixin.mixinObserve[o];
      }
    }
  }

  Polymer.mixin(prototype, mixin);

  delete prototype.mixinPublish;
  delete prototype.mixinDelegates;
  delete prototype.mixinObserve;

  return prototype;
};

================================================
FILE: bower_components/core-header-panel/.bower.json
================================================
{
  "name": "core-header-panel",
  "private": true,
  "dependencies": {
    "polymer": "Polymer/polymer#^0.5.0"
  },
  "version": "0.5.2",
  "homepage": "https://github.com/Polymer/core-header-panel",
  "_release": "0.5.2",
  "_resolution": {
    "type": "version",
    "tag": "0.5.2",
    "commit": "4bf5782279fd9cb1ba5c25dc69438357583e4e42"
  },
  "_source": "git://github.com/Polymer/core-header-panel.git",
  "_target": "^0.5.0",
  "_originalSource": "Polymer/core-header-panel"
}

================================================
FILE: bower_components/core-header-panel/README.md
================================================
core-header-panel
===================

See the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-header-panel) for more information.


================================================
FILE: bower_components/core-header-panel/bower.json
================================================
{
  "name": "core-header-panel",
  "private": true,
  "dependencies": {
    "polymer": "Polymer/polymer#^0.5.0"
  },
  "version": "0.5.2"
}

================================================
FILE: bower_components/core-header-panel/core-header-panel.css
================================================
/*
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
*/

:host {
  display: block;
  position: relative;
}

#outerContainer {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

#mainPanel {
  position: relative;
}

#mainContainer {
  position: relative;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}

#dropShadow {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 6px;
  box-shadow: inset 0px 5px 6px -3px rgba(0, 0, 0, 0.4);
}

#dropShadow.hidden {
  display: none;
}

/* 
mode: scroll 
*/
:host([mode=scroll]) #mainContainer {
  overflow: visible;
}

:host([mode=scroll]) #outerContainer {
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}

/*
mode: cover
*/
:host([mode=cover]) #mainPanel {
  position: static;
}

:host([mode=cover]) #mainContainer {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

:host([mode=cover]) #dropShadow {
  position: static;
  width: 100%;
}


================================================
FILE: bower_components/core-header-panel/core-header-panel.html
================================================
<!--
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->

<!--
`core-header-panel` contains a header section and a content panel section.

__Important:__ The `core-header-panel` will not display if its parent does not have a height.

Using [layout attributes](http://www.polymer-project.org/docs/polymer/layout-attrs.html), you can easily make the `core-header-panel` fill the screen

    <body fullbleed layout vertical>
      <core-header-panel flex>
        <core-toolbar>
          <div>Hello World!</div>
        </core-toolbar>
      </core-header-panel>
    </body>

or, if you would prefer to do it in CSS, just give `html`, `body`, and `core-header-panel` a height of 100%:

    html, body {
      height: 100%;
      margin: 0;
    }
    core-header-panel {
      height: 100%;
    }

Special support is provided for scrolling modes when one uses a core-toolbar or equivalent
for the header section.

Example:

    <core-header-panel>
      <core-toolbar>Header</core-toolbar>
      <div>Content goes here...</div>
    </core-header-panel>

If you want to use other than `core-toolbar` for the header, add
`core-header` class to that element.

Example:

    <core-header-panel>
      <div class="core-header">Header</div>
      <div>Content goes here...</div>
    </core-header-panel>

To have the content fits to the main area, use `fit` attribute.

    <core-header-panel>
      <div class="core-header">standard</div>
      <div class="content" fit>content fits 100% below the header</div>
    </core-header-panel>

Use `mode` to control the header and scrolling behavior.

@group Polymer Core Elements
@element core-header-panel
@homepage github.io
-->

<link rel="import" href="../polymer/polymer.html">

<polymer-element name="core-header-panel">
<template>

  <link rel="stylesheet" href="core-header-panel.css">

  <div id="outerContainer" vertical layout>

    <content id="headerContent" select="core-toolbar, .core-header"></content>

    <div id="mainPanel" flex vertical layout>

      <div id="mainContainer" flex?="{{mode !== 'cover'}}">
        <content id="mainContent" select="*"></content>
      </div>

      <div id="dropShadow"></div>

    </div>

  </div>

</template>
<script>

  Polymer({

    /**
     * Fired when the content has been scrolled.  `event.detail.target` returns
     * the scrollable element which you can use to access scroll info such as
     * `scrollTop`.
     *
     *     <core-header-panel on-scroll="{{scrollHandler}}">
     *       ...
     *     </core-header-panel>
     *
     *
     *     scrollHandler: function(event) {
     *       var scroller = event.detail.target;
     *       console.log(scroller.scrollTop);
     *     }
     *
     * @event scroll
     */

    publish: {
      /**
       * Controls header and scrolling behavior. Options are
       * `standard`, `seamed`, `waterfall`, `waterfall-tall`, `scroll` and 
       * `cover`. Default is `standard`.
       *
       * `standard`: The header is a step above the panel. The header will consume the
       * panel at the point of entry, preventing it from passing through to the
       * opposite side.
       *
       * `seamed`: The header is presented as seamed with the panel.
       *
       * `waterfall`: Similar to standard mode, but header is initially presented as
       * seamed with panel, but then separates to form the step.
       *
       * `waterfall-tall`: The header is initially taller (`tall` class is added to
       * the header).  As the user scrolls, the header separates (forming an edge)
       * while condensing (`tall` class is removed from the header).
       *
       * `scroll`: The header keeps its seam with the panel, and is pushed off screen.
       *
       * `cover`: The panel covers the whole `core-header-panel` including the
       * header. This allows user to style the panel in such a way that the panel is
       * partially covering the header.
       *
       *     <style>
       *       core-header-panel[mode=cover]::shadow #mainContainer {
       *         left: 80px;
       *       }
       *       .content {
       *         margin: 60px 60px 60px 0;
       *       }
       *     </style>
       *
       *     <core-header-panel mode="cover">
       *       <core-toolbar class="tall">
       *         <core-icon-button icon="menu"></core-icon-button>
       *       </core-toolbar>
       *       <div class="content"></div>
       *     </core-header-panel>
       *
       * @attribute mode
       * @type string
       * @default ''
       */
      mode: {value: '', reflect: true},

      /**
       * The class used in waterfall-tall mode.  Change this if the header
       * accepts a different class for toggling height, e.g. "medium-tall"
       *
       * @attribute tallClass
       * @type string
       * @default 'tall'
       */
      tallClass: 'tall',

      /**
       * If true, the drop-shadow is always shown no matter what mode is set to.
       *
       * @attribute shadow
       * @type boolean
       * @default false
       */
      shadow: false
    },

    animateDuration: 200,

    modeConfigs: {
      shadowMode: {'waterfall': 1, 'waterfall-tall': 1},
      noShadow: {'seamed': 1, 'cover': 1, 'scroll': 1},
      tallMode: {'waterfall-tall': 1},
      outerScroll: {'scroll': 1}
    },
    
    ready: function() {
      this.scrollHandler = this.scroll.bind(this);
      this.addListener();
    },
    
    detached: function() {
      this.removeListener(this.mode);
    },
    
    addListener: function() {
      this.scroller.addEventListener('scroll', this.scrollHandler);
    },
    
    removeListener: function(mode) {
      var s = this.getScrollerForMode(mode);
      s.removeEventListener('scroll', this.scrollHandler);
    },

    domReady: function() {
      this.async('scroll');
    },

    modeChanged: function(old) {
      var configs = this.modeConfigs;
      var header = this.header;
      if (header) {
        // in tallMode it may add tallClass to the header; so do the cleanup
        // when mode is changed from tallMode to not tallMode
        if (configs.tallMode[old] && !configs.tallMode[this.mode]) {
          header.classList.remove(this.tallClass);
          this.async(function() {
            header.classList.remove('animate');
          }, null, this.animateDuration);
        } else {
          header.classList.toggle('animate', configs.tallMode[this.mode]);
        }
      }
      if (configs && (configs.outerScroll[this.mode] || configs.outerScroll[old])) {
        this.removeListener(old);
        this.addListener();
      }
      this.scroll();
    },

    get header() {
      return this.$.headerContent.getDistributedNodes()[0];
    },
    
    getScrollerForMode: function(mode) {
      return this.modeConfigs.outerScroll[mode] ?
          this.$.outerContainer : this.$.mainContainer;
    },

    /**
     * Returns the scrollable element.
     *
     * @property scroller
     * @type Object
     */
    get scroller() {
      return this.getScrollerForMode(this.mode);
    },

    scroll: function() {
      var configs = this.modeConfigs;
      var main = this.$.mainContainer;
      var header = this.header;

      var sTop = main.scrollTop;
      var atTop = sTop === 0;

      this.$.dropShadow.classList.toggle('hidden', !this.shadow &&
          (atTop && configs.shadowMode[this.mode] || configs.noShadow[this.mode]));

      if (header && configs.tallMode[this.mode]) {
        header.classList.toggle(this.tallClass, atTop ||
            header.classList.contains(this.tallClass) &&
            main.scrollHeight < this.$.outerContainer.offsetHeight);
      }

      this.fire('scroll', {target: this.scroller}, this, false);
    }

  });

</script>
</polymer-element>


================================================
FILE: bower_components/core-header-panel/demo.html
================================================
<!doctype html>
<!--
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->
<html>
<head>
  <title>core-header-panel</title>

  <script src="../webcomponentsjs/webcomponents.js"></script>
  
  <link rel="import" href="core-header-panel.html">

  <style shim-shadowdom>

    body {
      font-family: sans-serif;
    }

    core-header-panel {
      float: left;
      width: 360px;
      height: 400px;
      margin: 5px;
    }
    
    core-header-panel[mode=cover]::shadow #mainContainer {
      left: 70px;
    }

    .core-header {
      height: 60px;
      line-height: 60px;
      font-size: 18px;
      padding: 0 10px;
      background-color: #4F7DC9;
      color: #FFF;
      transition: height 0.2s;
    }
    
    .core-header.tall {
      height: 180px;
    }
    
    .core-header.medium-tall {
      height: 120px;
    }

    .content {
      height: 2000px;
      background: linear-gradient(rgb(214, 227, 231), lightblue);
    }

  </style>

</head>

<body unresolved>

  <core-header-panel>
    <div class="core-header">standard</div>
    <div class="content"></div>
  </core-header-panel>
  
  <core-header-panel mode="seamed">
    <div class="core-header">seamed</div>
    <div class="content"></div>
  </core-header-panel>

  <core-header-panel mode="waterfall">
    <div class="core-header">waterfall</div>
    <div class="content"></div>
  </core-header-panel>

  <core-header-panel mode="waterfall-tall">
    <div class="core-header">waterfall-tall</div>
    <div class="content"></div>
  </core-header-panel>
  
  <core-header-panel mode="waterfall-tall" tallClass="medium-tall">
    <div class="core-header">waterfall-tall (tallClass: medium-tall)</div>
    <div class="content"></div>
  </core-header-panel>

  <core-header-panel mode="scroll">
    <div class="core-header">scroll</div>
    <div class="content"></div>
  </core-header-panel>
  
  <core-header-panel mode="cover">
    <div class="core-header tall">cover</div>
    <div class="content" style="margin: 60px 60px 60px 0;"></div>
  </core-header-panel>
  
</body>
</html>


================================================
FILE: bower_components/core-header-panel/index.html
================================================
<!doctype html>
<!--
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE
The complete set of authors may be found at http://polymer.github.io/AUTHORS
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS
-->
<html>
<head>

  <script src="../webcomponentsjs/webcomponents.js"></script>
  <link rel="import" href="../polymer/polymer.html">
  <link rel="import" href="../core-component-page/core-component-page.html">

</head>
<body unresolved>

  <core-component-page></core-component-page>

</body>
</html>


================================================
FILE: bower_components/core-header-panel/metadata.html
================================================
<!--
    @license
    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
    This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
    The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
    The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
    Code distributed by Google as part of the polymer project is also
    subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->
<x-meta id="core-header-panel" label="Header Panel" isContainer group="Core">

  <property name="mode" kind="select" options="standard, waterfall, waterfall-tall, scroll, cover"></property>
  
  <template>
  
    <core-header-panel mode="standard" style="width: 300px; height: 400px;">
    
      <core-toolbar style="background-color: #4F7DC9; color: #FFF;">
        <core-icon-button icon="menu"></core-icon-button>
        <div>Header</div>
      </core-toolbar>
      
      <section style="height: 1000px; background: linear-gradient(rgb(214, 227, 231), lightblue);"></section>
      
    </core-header-panel>
    
  </template>

  <template id="imports">
  
    <link rel="import" href="../core-icon-button/core-icon-button.html">
    <link rel="import" href="../core-toolbar/core-toolbar.html">
    <link rel="import" href="core-header-panel.html">
    
  </template>

</x-meta>


================================================
FILE: bower_components/core-icon/.bower.json
================================================
{
  "name": "core-icon",
  "private": true,
  "dependencies": {
    "core-iconset": "Polymer/core-iconset#^0.5.0",
    "core-icons": "Polymer/core-icons#^0.5.0"
  },
  "version": "0.5.2",
  "homepage": "https://github.com/Polymer/core-icon",
  "_release": "0.5.2",
  "_resolution": {
    "type": "version",
    "tag": "0.5.2",
    "commit": "4b6ec20167ad5c176c403ee4ca2387f73dd11532"
  },
  "_source": "git://github.com/Polymer/core-icon.git",
  "_target": "^0.5.0",
  "_originalSource": "Polymer/core-icon"
}

================================================
FILE: bower_components/core-icon/README.md
================================================
core-icon
=========

See the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-icon) for more information.


================================================
FILE: bower_components/core-icon/bower.json
================================================
{
  "name": "core-icon",
  "private": true,
  "dependencies": {
    "core-iconset": "Polymer/core-iconset#^0.5.0",
    "core-icons": "Polymer/core-icons#^0.5.0"
  },
  "version": "0.5.2"
}

================================================
FILE: bower_components/core-icon/core-icon.css
================================================
/* Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt */

html /deep/ core-icon {
  display: inline-block;
  vertical-align: middle;
  background-repeat: no-repeat;
  fill: currentcolor;
  position: relative;
  height: 24px;
  width: 24px;
}

================================================
FILE: bower_components/core-icon/core-icon.html
================================================
<!--
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->
<!--

The `core-icon` element displays an icon. By default an icon renders as a 24px square.

Example using src:

    <core-icon src="star.png"></core-icon>

Example setting size to 32px x 32px:

    <core-icon class="big" src="big_star.png"></core-icon>

    <style>
      .big {
        height: 32px;
        width: 32px;
      }
    </style>

The core elements include several sets of icons. 
To use the default set of icons, import  `core-icons.html` and use the `icon` attribute to specify an icon:

    &lt;!-- import default iconset and core-icon --&gt;
    <link rel="import" href="/components/core-icons/core-icons.html">

    <core-icon icon="menu"></core-icon>
    
To use a different built-in set of icons, import  `core-icons/<iconset>-icons.html`, and
specify the icon as `<iconset>:<icon>`. For example:

    &lt;!-- import communication iconset and core-icon --&gt;
    <link rel="import" href="/components/core-icons/communication-icons.html">

    <core-icon icon="communication:email"></core-icon>
    
You can also create custom icon sets of bitmap or SVG icons. 

Example of using an icon named `cherry` from a custom iconset with the ID `fruit`:

    <core-icon icon="fruit:cherry"></core-icon>

See [core-iconset](#core-iconset) and [core-iconset-svg](#core-iconset-svg) for more information about
how to create a custom iconset.

See [core-icons](http://www.polymer-project.org/components/core-icons/demo.html) for the default set of icons.

@group Polymer Core Elements
@element core-icon
@homepage polymer.github.io
-->
<link rel="impor
Download .txt
gitextract_ygpo5qtv/

├── .gitignore
├── LICENSE
├── README.md
├── bower.json
├── bower_components/
│   ├── core-component-page/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-component-page.html
│   │   ├── demo.html
│   │   └── index.html
│   ├── core-drawer-panel/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-drawer-panel.css
│   │   ├── core-drawer-panel.html
│   │   ├── demo.html
│   │   ├── index.html
│   │   └── metadata.html
│   ├── core-focusable/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-focusable.html
│   │   ├── core-focusable.js
│   │   ├── demo.html
│   │   └── polymer-mixin.js
│   ├── core-header-panel/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-header-panel.css
│   │   ├── core-header-panel.html
│   │   ├── demo.html
│   │   ├── index.html
│   │   └── metadata.html
│   ├── core-icon/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-icon.css
│   │   ├── core-icon.html
│   │   ├── demo.html
│   │   ├── index.html
│   │   └── metadata.html
│   ├── core-icon-button/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-icon-button.css
│   │   ├── core-icon-button.html
│   │   ├── demo.html
│   │   ├── index.html
│   │   └── metadata.html
│   ├── core-icons/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── av-icons.html
│   │   ├── bower.json
│   │   ├── communication-icons.html
│   │   ├── core-icons.html
│   │   ├── demo.html
│   │   ├── device-icons.html
│   │   ├── editor-icons.html
│   │   ├── hardware-icons.html
│   │   ├── image-icons.html
│   │   ├── index.html
│   │   ├── maps-icons.html
│   │   ├── notification-icons.html
│   │   ├── png-icons.html
│   │   └── social-icons.html
│   ├── core-iconset/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-iconset.html
│   │   ├── demo.html
│   │   └── index.html
│   ├── core-iconset-svg/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-iconset-svg.html
│   │   ├── demo.html
│   │   ├── index.html
│   │   └── svg-sample-icons.html
│   ├── core-input/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-input.css
│   │   ├── core-input.html
│   │   ├── demo.html
│   │   ├── index.html
│   │   ├── metadata.html
│   │   └── test/
│   │       ├── a11y.html
│   │       ├── basic.html
│   │       └── index.html
│   ├── core-item/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-item.css
│   │   ├── core-item.html
│   │   ├── demo.html
│   │   ├── index.html
│   │   └── metadata.html
│   ├── core-media-query/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-media-query.html
│   │   ├── demo.html
│   │   └── index.html
│   ├── core-meta/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-meta.html
│   │   ├── demo.html
│   │   └── index.html
│   ├── core-scaffold/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-scaffold.html
│   │   ├── demo.html
│   │   ├── index.html
│   │   └── metadata.html
│   ├── core-selection/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-selection.html
│   │   ├── demo.html
│   │   ├── index.html
│   │   └── test/
│   │       ├── basic.html
│   │       ├── index.html
│   │       └── multi.html
│   ├── core-selector/
│   │   ├── .bower.json
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-selector.html
│   │   ├── demo.html
│   │   ├── index.html
│   │   ├── metadata.html
│   │   └── test/
│   │       ├── activate-event.html
│   │       ├── basic.html
│   │       ├── content.html
│   │       ├── index.html
│   │       ├── multi.html
│   │       ├── next-previous.html
│   │       ├── selected-attr-prop.html
│   │       └── template-repeat.html
│   ├── core-style/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-style.html
│   │   ├── demo.html
│   │   ├── elements.html
│   │   ├── index.html
│   │   └── my-theme.html
│   ├── core-toolbar/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── core-toolbar.css
│   │   ├── core-toolbar.html
│   │   ├── demo.html
│   │   ├── index.html
│   │   ├── metadata.html
│   │   └── test/
│   │       ├── basic.html
│   │       └── index.html
│   ├── font-roboto/
│   │   ├── .bower.json
│   │   └── roboto.html
│   ├── paper-button/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── demo.html
│   │   ├── index.html
│   │   ├── metadata.html
│   │   ├── paper-button-base.html
│   │   ├── paper-button.html
│   │   └── test/
│   │       ├── a11y.html
│   │       ├── basic.html
│   │       └── index.html
│   ├── paper-fab/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── demo.html
│   │   ├── index.html
│   │   ├── metadata.html
│   │   ├── paper-fab.html
│   │   └── test/
│   │       ├── a11y.html
│   │       ├── basic.html
│   │       └── index.html
│   ├── paper-input/
│   │   ├── .bower.json
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── demo.html
│   │   ├── index.html
│   │   ├── metadata.html
│   │   ├── paper-autogrow-textarea.html
│   │   ├── paper-input-decorator.css
│   │   ├── paper-input-decorator.html
│   │   ├── paper-input.html
│   │   └── test/
│   │       ├── a11y.html
│   │       ├── autogrow.html
│   │       ├── decorator.html
│   │       └── index.html
│   ├── paper-ripple/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── demo.html
│   │   ├── index.html
│   │   ├── metadata.html
│   │   ├── paper-ripple.html
│   │   └── test/
│   │       ├── index.html
│   │       └── position.html
│   ├── paper-shadow/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── demo.html
│   │   ├── index.html
│   │   ├── metadata.html
│   │   ├── paper-shadow.css
│   │   ├── paper-shadow.html
│   │   └── test/
│   │       ├── basic.html
│   │       └── index.html
│   ├── platform/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── build.log
│   │   └── platform.js
│   ├── polymer/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── build.log
│   │   ├── layout.html
│   │   ├── polymer.html
│   │   └── polymer.js
│   ├── pubnub-polymer/
│   │   ├── .bower.json
│   │   ├── README.md
│   │   ├── bower.json
│   │   ├── demo-element.html
│   │   ├── demo.html
│   │   ├── index.html
│   │   └── pubnub-element.html
│   ├── time-elements/
│   │   ├── .bower.json
│   │   ├── LICENSE
│   │   ├── bower.json
│   │   └── time-elements.js
│   └── webcomponentsjs/
│       ├── .bower.json
│       ├── CustomElements.js
│       ├── HTMLImports.js
│       ├── README.md
│       ├── ShadowDOM.js
│       ├── bower.json
│       ├── build.log
│       ├── package.json
│       ├── webcomponents-lite.js
│       └── webcomponents.js
├── css/
│   └── style.css
├── index.html
├── js/
│   └── app.js
├── lite.html
└── x-chat-list.html
Download .txt
SYMBOL INDEX (1583 symbols across 9 files)

FILE: bower_components/platform/platform.js
  function b (line 12) | function b(){function a(a){b=a}if("function"!=typeof Object.observe||"fu...
  function c (line 12) | function c(){if("undefined"!=typeof chrome&&chrome.app&&chrome.app.runti...
  function d (line 12) | function d(a){return+a===a>>>0&&""!==a}
  function e (line 12) | function e(a){return+a}
  function f (line 12) | function f(a){return a===Object(a)}
  function g (line 12) | function g(a,b){return a===b?0!==a||1/a===1/b:R(a)&&R(b)?!0:a!==a&&b!==b}
  function h (line 12) | function h(a){if(void 0===a)return"eof";var b=a.charCodeAt(0);switch(b){...
  function i (line 12) | function i(){}
  function j (line 12) | function j(a){function b(){if(!(m>=a.length)){var b=a[m+1];return"inSing...
  function k (line 12) | function k(a){return V.test(a)}
  function l (line 12) | function l(a,b){if(b!==X)throw Error("Use Path.get to retrieve path obje...
  function m (line 12) | function m(a){if(a instanceof l)return a;if((null==a||0==a.length)&&(a="...
  function n (line 12) | function n(a){return d(a)?"["+a+"]":'["'+a.replace(/"/g,'\\"')+'"]'}
  function o (line 12) | function o(b){for(var c=0;_>c&&b.check_();)c++;return O&&(a.dirtyCheckCy...
  function p (line 12) | function p(a){for(var b in a)return!1;return!0}
  function q (line 12) | function q(a){return p(a.added)&&p(a.removed)&&p(a.changed)}
  function r (line 12) | function r(a,b){var c={},d={},e={};for(var f in b){var g=a[f];(void 0===...
  function s (line 12) | function s(){if(!ab.length)return!1;for(var a=0;a<ab.length;a++)ab[a]();...
  function t (line 12) | function t(){function a(a){b&&b.state_===fb&&!d&&b.check_(a)}var b,c,d=!...
  function u (line 12) | function u(a,b,c){var d=cb.pop()||t();return d.open(a),d.observe(b,c),d}
  function v (line 12) | function v(){function a(b,f){b&&(b===d&&(e[f]=!0),h.indexOf(b)<0&&(h.pus...
  function w (line 12) | function w(a,b){return $&&$.object===b||($=db.pop()||v(),$.object=b),$.o...
  function x (line 12) | function x(){this.state_=eb,this.callback_=void 0,this.target_=void 0,th...
  function y (line 12) | function y(a){x._allObserversCount++,kb&&jb.push(a)}
  function z (line 12) | function z(){x._allObserversCount--}
  function A (line 12) | function A(a){x.call(this),this.value_=a,this.oldObject_=void 0}
  function B (line 12) | function B(a){if(!Array.isArray(a))throw Error("Provided object is not a...
  function C (line 12) | function C(a,b){x.call(this),this.object_=a,this.path_=m(b),this.directO...
  function D (line 12) | function D(a){x.call(this),this.reportChangesOnOpen_=a,this.value_=[],th...
  function E (line 12) | function E(a){return a}
  function F (line 12) | function F(a,b,c,d){this.callback_=void 0,this.target_=void 0,this.value...
  function G (line 12) | function G(a,b,c){for(var d={},e={},f=0;f<b.length;f++){var g=b[f];nb[g....
  function H (line 12) | function H(a,b,c){return{index:a,removed:b,addedCount:c}}
  function I (line 12) | function I(){}
  function J (line 12) | function J(a,b,c,d,e,f){return sb.calcSplices(a,b,c,d,e,f)}
  function K (line 12) | function K(a,b,c,d){return c>b||a>d?-1:b==c||d==a?0:c>a?d>b?b-c:d-c:b>d?...
  function L (line 12) | function L(a,b,c,d){for(var e=H(b,c,d),f=!1,g=0,h=0;h<a.length;h++){var ...
  function M (line 12) | function M(a,b){for(var c=[],f=0;f<b.length;f++){var g=b[f];switch(g.typ...
  function N (line 12) | function N(a,b){var c=[];return M(a,b).forEach(function(b){return 1==b.a...
  method path (line 12) | get path(){return this.path_}
  function b (line 12) | function b(){if("undefined"!=typeof chrome&&chrome.app&&chrome.app.runti...
  function c (line 12) | function c(a){if(!a)throw new Error("Assertion failed")}
  function d (line 12) | function d(a,b){for(var c=N(b),d=0;d<c.length;d++){var e=c[d];M(a,e,O(b,...
  function e (line 12) | function e(a,b){for(var c=N(b),d=0;d<c.length;d++){var e=c[d];switch(e){...
  function f (line 12) | function f(a,b){for(var c=0;c<b.length;c++)if(b[c]in a)return b[c]}
  function g (line 12) | function g(a,b,c){P.value=c,M(a,b,P)}
  function h (line 12) | function h(a){var b=a.__proto__||Object.getPrototypeOf(a),c=I.get(b);if(...
  function i (line 12) | function i(a,b){q(a,b,!0)}
  function j (line 12) | function j(a,b){q(b,a,!1)}
  function k (line 12) | function k(a){return/^on[a-z]+$/.test(a)}
  function l (line 12) | function l(a){return/^\w[a-zA-Z_0-9]*$/.test(a)}
  function m (line 12) | function m(a){return L&&l(a)?new Function("return this.__impl4cf1e782hg_...
  function n (line 12) | function n(a){return L&&l(a)?new Function("v","this.__impl4cf1e782hg__."...
  function o (line 12) | function o(a){return L&&l(a)?new Function("return this.__impl4cf1e782hg_...
  function p (line 12) | function p(a,b){try{return Object.getOwnPropertyDescriptor(a,b)}catch(c)...
  function q (line 12) | function q(b,c,d){for(var e=N(b),f=0;f<e.length;f++){var g=e[f];if("poly...
  function r (line 12) | function r(a,b,c){var d=a.prototype;s(d,b,c),e(b,a)}
  function s (line 12) | function s(a,b,d){var e=b.prototype;c(void 0===I.get(a)),I.set(a,b),J.se...
  function t (line 12) | function t(a,b){return I.get(b.prototype)===a}
  function u (line 12) | function u(a){var b=Object.getPrototypeOf(a),c=h(b),d=v(c);return s(b,d,...
  function v (line 12) | function v(a){function b(b){a.call(this,b)}var c=Object.create(a.prototy...
  function w (line 12) | function w(a){return a&&a.__impl4cf1e782hg__}
  function x (line 12) | function x(a){return!w(a)}
  function y (line 12) | function y(a){return null===a?null:(c(x(a)),a.__wrapper8e3dd93a60__||(a....
  function z (line 12) | function z(a){return null===a?null:(c(w(a)),a.__impl4cf1e782hg__)}
  function A (line 12) | function A(a){return a.__impl4cf1e782hg__}
  function B (line 12) | function B(a,b){b.__impl4cf1e782hg__=a,a.__wrapper8e3dd93a60__=b}
  function C (line 12) | function C(a){return a&&w(a)?z(a):a}
  function D (line 12) | function D(a){return a&&!w(a)?y(a):a}
  function E (line 12) | function E(a,b){null!==b&&(c(x(a)),c(void 0===b||w(b)),a.__wrapper8e3dd9...
  function F (line 12) | function F(a,b,c){T.get=c,M(a.prototype,b,T)}
  function G (line 12) | function G(a,b){F(a,b,function(){return y(this.__impl4cf1e782hg__[b])})}
  function H (line 12) | function H(a,b){a.forEach(function(a){b.forEach(function(b){a.prototype[...
  function b (line 12) | function b(){g=!1;var a=f.slice(0);f=[];for(var b=0;b<a.length;b++)a[b]()}
  function c (line 12) | function c(a){f.push(a),g||(g=!0,d(b,0))}
  function b (line 12) | function b(a){a.scheduled_||(a.scheduled_=!0,o.push(a),p||(k(c),p=!0))}
  function c (line 12) | function c(){for(p=!1;o.length;){var a=o;o=[],a.sort(function(a,b){retur...
  function d (line 12) | function d(a,b){this.type=a,this.target=b,this.addedNodes=new m.NodeList...
  function e (line 12) | function e(a,b){for(;a;a=a.parentNode){var c=n.get(a);if(c)for(var d=0;d...
  function f (line 12) | function f(a){for(var b=0;b<a.nodes_.length;b++){var c=a.nodes_[b],d=n.g...
  function g (line 12) | function g(a,c,e){for(var f=Object.create(null),g=Object.create(null),h=...
  function h (line 12) | function h(a){if(this.childList=!!a.childList,this.subtree=!!a.subtree,t...
  function i (line 12) | function i(a){this.callback_=a,this.nodes_=[],this.records_=[],this.uid_...
  function j (line 12) | function j(a,b,c){this.observer=a,this.target=b,this.options=c,this.tran...
  function b (line 12) | function b(a,b){this.root=a,this.parent=b}
  function c (line 12) | function c(a,b){if(a.treeScope_!==b){a.treeScope_=b;for(var d=a.shadowRo...
  function d (line 12) | function d(c){if(c instanceof a.wrappers.Window,c.treeScope_)return c.tr...
  method renderer (line 12) | get renderer(){return this.root instanceof a.wrappers.ShadowRoot?a.getRe...
  function b (line 12) | function b(a){return a instanceof T.ShadowRoot}
  function c (line 12) | function c(a){return M(a).root}
  function d (line 12) | function d(a,d){var h=[],i=a;for(h.push(i);i;){var j=g(i);if(j&&j.length...
  function e (line 12) | function e(a){if(!a)return!1;switch(a.type){case"abort":case"error":case...
  function f (line 12) | function f(a){return a instanceof HTMLShadowElement}
  function g (line 12) | function g(b){return a.getDestinationInsertionPoints(b)}
  function h (line 12) | function h(a,b){if(0===a.length)return b;b instanceof T.Window&&(b=b.doc...
  function i (line 12) | function i(a){for(var b=[];a;a=a.parent)b.push(a);return b}
  function j (line 12) | function j(a,b){for(var c=i(a),d=i(b),e=null;c.length>0&&d.length>0;){va...
  function k (line 12) | function k(a,b,c){b instanceof T.Window&&(b=b.document);var e,f=M(b),g=M...
  function l (line 12) | function l(a,b){return M(a)===M(b)}
  function m (line 12) | function m(a){if(!V.get(a)&&(V.set(a,!0),o(S(a),S(a.target)),K)){var b=K...
  function n (line 12) | function n(a){switch(a.type){case"load":case"beforeunload":case"unload":...
  function o (line 12) | function o(b,c){if(W.get(b))throw new Error("InvalidStateError");W.set(b...
  function p (line 12) | function p(a,b,c,d){var e=eb;if(c&&!s(c,a,e,b,d))return!1;for(var f=b.le...
  function q (line 12) | function q(a,b,c,d){var e=fb,f=b[0]||c;return s(f,a,e,b,d)}
  function r (line 12) | function r(a,b,c,d){for(var e=gb,f=1;f<b.length;f++)if(!s(b[f],a,e,b,d))...
  function s (line 12) | function s(a,b,c,d,e){var f=U.get(a);if(!f)return!0;var g=e||h(d,a);if(g...
  function t (line 12) | function t(a,b,c){this.type=a,this.handler=b,this.capture=Boolean(c)}
  function u (line 12) | function u(a,b){if(!(a instanceof hb))return S(y(hb,"Event",a,b));var c=...
  function v (line 12) | function v(a){return a&&a.relatedTarget?Object.create(a,{relatedTarget:{...
  function w (line 12) | function w(a,b,c){var d=window[a],e=function(b,c){return b instanceof d?...
  function x (line 12) | function x(a,b){return function(){arguments[b]=R(arguments[b]);var c=R(t...
  function y (line 12) | function y(a,b,c,d){if(qb)return new a(c,v(d));var e=R(document.createEv...
  function z (line 12) | function z(a){u.call(this,a)}
  function A (line 12) | function A(a){return"function"==typeof a?!0:a&&a.handleEvent}
  function B (line 12) | function B(a){switch(a){case"DOMAttrModified":case"DOMAttributeNameChang...
  function C (line 12) | function C(a){P(a,this)}
  function D (line 12) | function D(a){return a instanceof T.ShadowRoot&&(a=a.host),R(a)}
  function E (line 12) | function E(a,b){var c=U.get(a);if(c)for(var d=0;d<c.length;d++)if(!c[d]....
  function F (line 12) | function F(a,b){for(var c=R(a);c;c=c.parentNode)if(E(S(c),b))return!0;re...
  function G (line 12) | function G(a){L(a,ub)}
  function H (line 12) | function H(b,c,e,f){a.renderAllPending();var g=S(vb.call(Q(c),e,f));if(!...
  function I (line 12) | function I(a){return function(){var b=bb.get(this);
  function J (line 13) | function J(a){var b=a.slice(2);return function(c){var d=bb.get(this);d||...
  method removed (line 13) | get removed(){return null===this.handler}
  method target (line 13) | get target(){return X.get(this)}
  method currentTarget (line 13) | get currentTarget(){return Y.get(this)}
  method eventPhase (line 13) | get eventPhase(){return $.get(this)}
  method path (line 13) | get path(){var a=cb.get(this);return a?a.slice():[]}
  method relatedTarget (line 13) | get relatedTarget(){var a=Z.get(this);return void 0!==a?a:S(R(this).rela...
  method returnValue (line 13) | get returnValue(){return Q(this).returnValue}
  method returnValue (line 13) | set returnValue(a){Q(this).returnValue=a}
  function b (line 13) | function b(a,b){Object.defineProperty(a,b,p)}
  function c (line 13) | function c(a){j(a,this)}
  function d (line 13) | function d(){this.length=0,b(this,"length")}
  function e (line 13) | function e(a){for(var b=new d,e=0;e<a.length;e++)b[e]=new c(a[e]);return...
  function f (line 13) | function f(a){g.call(this,a)}
  method target (line 13) | get target(){return l(k(this).target)}
  method touches (line 13) | get touches(){return e(k(this).touches)}
  method targetTouches (line 13) | get targetTouches(){return e(k(this).targetTouches)}
  method changedTouches (line 13) | get changedTouches(){return e(k(this).changedTouches)}
  function b (line 13) | function b(a,b){Object.defineProperty(a,b,h)}
  function c (line 13) | function c(){this.length=0,b(this,"length")}
  function d (line 13) | function d(a){if(null==a)return a;for(var b=new c,d=0,e=a.length;e>d;d++...
  function e (line 13) | function e(a,b){a.prototype[b]=function(){return d(f(this)[b].apply(f(th...
  function b (line 13) | function b(a){A(a instanceof w)}
  function c (line 13) | function c(a){var b=new y;return b[0]=a,b.length=1,b}
  function d (line 13) | function d(a,b,c){C(b,"childList",{removedNodes:c,previousSibling:a.prev...
  function e (line 13) | function e(a,b){C(a,"childList",{removedNodes:b})}
  function f (line 13) | function f(a,b,d,e){if(a instanceof DocumentFragment){var f=h(a);P=!0;fo...
  function g (line 13) | function g(a){if(a instanceof DocumentFragment)return h(a);var b=c(a),e=...
  function h (line 13) | function h(a){for(var b=new y,c=0,d=a.firstChild;d;d=d.nextSibling)b[c++...
  function i (line 13) | function i(a){return a}
  function j (line 13) | function j(a,b){I(a,b),a.nodeIsInserted_()}
  function k (line 13) | function k(a,b){for(var c=D(b),d=0;d<a.length;d++)j(a[d],c)}
  function l (line 13) | function l(a){I(a,new z(a,null))}
  function m (line 13) | function m(a){for(var b=0;b<a.length;b++)l(a[b])}
  function n (line 13) | function n(a,b){var c=a.nodeType===w.DOCUMENT_NODE?a:a.ownerDocument;c!=...
  function o (line 13) | function o(b,c){if(c.length){var d=b.ownerDocument;if(d!==c[0].ownerDocu...
  function p (line 13) | function p(a,b){o(a,b);var c=b.length;if(1===c)return K(b[0]);for(var d=...
  function q (line 13) | function q(a){if(void 0!==a.firstChild_)for(var b=a.firstChild_;b;){var ...
  function r (line 13) | function r(a){if(a.invalidateShadowRenderer()){for(var b=a.firstChild;b;...
  function s (line 13) | function s(a){var b=a.parentNode;return b&&b.invalidateShadowRenderer()}
  function t (line 13) | function t(a){for(var b,c=0;c<a.length;c++)b=a[c],b.parentNode.removeChi...
  function u (line 13) | function u(a,b,c){var d;if(d=M(c?Q.call(c,J(a),!1):R.call(J(a),!1)),b){f...
  function v (line 13) | function v(a,b){if(!b||D(a)!==D(b))return!1;for(var c=b;c;c=c.parentNode...
  function w (line 13) | function w(a){A(a instanceof S),x.call(this,a),this.parentNode_=void 0,t...
  method parentNode (line 13) | get parentNode(){return void 0!==this.parentNode_?this.parentNode_:M(J(t...
  method firstChild (line 13) | get firstChild(){return void 0!==this.firstChild_?this.firstChild_:M(J(t...
  method lastChild (line 13) | get lastChild(){return void 0!==this.lastChild_?this.lastChild_:M(J(this...
  method nextSibling (line 13) | get nextSibling(){return void 0!==this.nextSibling_?this.nextSibling_:M(...
  method previousSibling (line 13) | get previousSibling(){return void 0!==this.previousSibling_?this.previou...
  method parentElement (line 13) | get parentElement(){for(var a=this.parentNode;a&&a.nodeType!==w.ELEMENT_...
  method textContent (line 13) | get textContent(){for(var a="",b=this.firstChild;b;b=b.nextSibling)b.nod...
  method textContent (line 13) | set textContent(a){var b=i(this.childNodes);if(this.invalidateShadowRend...
  method childNodes (line 13) | get childNodes(){for(var a=new y,b=0,c=this.firstChild;c;c=c.nextSibling...
  function b (line 13) | function b(b,c,d,e){for(var f=null,g=null,h=0,i=b.length;i>h;h++)f=s(b[h...
  function c (line 13) | function c(a){return String(a).replace(/\/deep\//g," ")}
  function d (line 13) | function d(a,b){for(var c,e=a.firstElementChild;e;){if(e.matches(b))retu...
  function e (line 13) | function e(a,b){return a.matches(b)}
  function f (line 13) | function f(a,b,c){var d=a.localName;return d===b||d===c&&a.namespaceURI=...
  function g (line 13) | function g(){return!0}
  function h (line 13) | function h(a,b,c){return a.localName===c}
  function i (line 13) | function i(a,b){return a.namespaceURI===b}
  function j (line 13) | function j(a,b,c){return a.namespaceURI===b&&a.localName===c}
  function k (line 13) | function k(a,b,c,d,e,f){for(var g=a.firstElementChild;g;)d(g,e,f)&&(c[b+...
  function l (line 13) | function l(c,d,e,f,g){var h,i=r(this),j=q(this).root;if(j instanceof a.w...
  function m (line 13) | function m(c,d,e,f,g){var h,i=r(this),j=q(this).root;if(j instanceof a.w...
  function n (line 13) | function n(c,d,e,f,g){var h,i=r(this),j=q(this).root;if(j instanceof a.w...
  function b (line 13) | function b(a){for(;a&&a.nodeType!==Node.ELEMENT_NODE;)a=a.nextSibling;re...
  function c (line 13) | function c(a){for(;a&&a.nodeType!==Node.ELEMENT_NODE;)a=a.previousSiblin...
  method firstElementChild (line 13) | get firstElementChild(){return b(this.firstChild)}
  method lastElementChild (line 13) | get lastElementChild(){return c(this.lastChild)}
  method childElementCount (line 13) | get childElementCount(){for(var a=0,b=this.firstElementChild;b;b=b.nextE...
  method children (line 13) | get children(){for(var a=new d,b=0,c=this.firstElementChild;c;c=c.nextEl...
  method nextElementSibling (line 13) | get nextElementSibling(){return b(this.nextSibling)}
  method previousElementSibling (line 13) | get previousElementSibling(){return c(this.previousSibling)}
  function b (line 13) | function b(a){d.call(this,a)}
  method textContent (line 13) | get textContent(){return this.data}
  method textContent (line 13) | set textContent(a){this.data=a}
  method data (line 13) | get data(){return h(this).data}
  method data (line 13) | set data(a){var b=h(this).data;e(this,"characterData",{oldValue:b}),h(th...
  function b (line 13) | function b(a){return a>>>0}
  function c (line 13) | function c(a){d.call(this,a)}
  function b (line 13) | function b(b){a.invalidateRendererBasedOnAttribute(b,"class")}
  function c (line 13) | function c(a,b){d(a,this),this.ownerElement_=b}
  method length (line 13) | get length(){return e(this).length}
  function b (line 13) | function b(b,c){var d=b.parentNode;if(d&&d.shadowRoot){var e=a.getRender...
  function c (line 13) | function c(a,b,c){k(a,"attributes",{name:b,namespace:null,oldValue:c})}
  function d (line 13) | function d(a){g.call(this,a)}
  method shadowRoot (line 13) | get shadowRoot(){return n(this).polymerShadowRoot_||null}
  method classList (line 13) | get classList(){var a=t.get(this);return a||t.set(this,a=new h(n(this).c...
  method className (line 13) | get className(){return n(this).className}
  method className (line 13) | set className(a){this.setAttribute("class",a)}
  method id (line 13) | get id(){return n(this).id}
  method id (line 13) | set id(a){this.setAttribute("id",a)}
  function b (line 13) | function b(a){switch(a){case"&":return"&amp;";case"<":return"&lt;";case"...
  function c (line 13) | function c(a){return a.replace(A,b)}
  function d (line 13) | function d(a){return a.replace(B,b)}
  function e (line 13) | function e(a){for(var b={},c=0;c<a.length;c++)b[a[c]]=!0;return b}
  function f (line 13) | function f(a,b){switch(a.nodeType){case Node.ELEMENT_NODE:for(var e,f=a....
  function g (line 13) | function g(a){a instanceof z.HTMLTemplateElement&&(a=a.content);for(var ...
  function h (line 13) | function h(a,b,c){var d=c||"div";a.textContent="";var e=x(a.ownerDocumen...
  function i (line 13) | function i(a){o.call(this,a)}
  function j (line 13) | function j(a,b){var c=x(a.cloneNode(!1));c.innerHTML=b;for(var d,e=x(doc...
  function k (line 13) | function k(b){return function(){return a.renderAllPending(),w(this)[b]}}
  function l (line 13) | function l(a){p(i,a,k(a))}
  function m (line 13) | function m(b){Object.defineProperty(i.prototype,b,{get:k(b),set:function...
  function n (line 13) | function n(b){Object.defineProperty(i.prototype,b,{value:function(){retu...
  method innerHTML (line 13) | get innerHTML(){return g(this)}
  method innerHTML (line 13) | set innerHTML(a){if(E&&D[this.localName])return void(this.textContent=a)...
  method outerHTML (line 13) | get outerHTML(){return f(this,this.parentNode)}
  method outerHTML (line 13) | set outerHTML(a){var b=this.parentNode;if(b){b.invalidateShadowRenderer(...
  method hidden (line 13) | get hidden(){return this.hasAttribute("hidden")}
  method hidden (line 13) | set hidden(a){a?this.setAttribute("hidden",""):this.removeAttribute("hid...
  function b (line 13) | function b(a){c.call(this,a)}
  function b (line 13) | function b(a){c.call(this,a)}
  method select (line 13) | get select(){return this.getAttribute("select")}
  method select (line 13) | set select(a){this.setAttribute("select",a)}
  function b (line 13) | function b(a){c.call(this,a)}
  method elements (line 13) | get elements(){return f(g(this).elements)}
  function b (line 13) | function b(a){d.call(this,a)}
  function c (line 13) | function c(a,b){if(!(this instanceof c))throw new TypeError("DOM object ...
  function b (line 13) | function b(a){c.call(this,a)}
  function b (line 13) | function b(a){if(!a.defaultView)return a;var b=l.get(a);if(!b){for(b=a.i...
  function c (line 13) | function c(a){for(var c,d=b(a.ownerDocument),e=i(d.createDocumentFragmen...
  function d (line 13) | function d(a){if(e.call(this,a),!m){var b=c(a);k.set(this,j(b))}}
  method content (line 13) | get content(){return m?j(h(this).content):k.get(this)}
  function b (line 13) | function b(a){c.call(this,a)}
  function b (line 13) | function b(a){d.call(this,a)}
  function c (line 13) | function c(a){if(!(this instanceof c))throw new TypeError("DOM object co...
  function b (line 13) | function b(a){return a.replace(/\s+/g," ").trim()}
  function c (line 13) | function c(a){e.call(this,a)}
  function d (line 13) | function d(a,b,c,f){if(!(this instanceof d))throw new TypeError("DOM obj...
  method text (line 13) | get text(){return b(this.textContent)}
  method text (line 13) | set text(a){this.textContent=b(String(a))}
  method form (line 13) | get form(){return j(i(this).form)}
  function b (line 13) | function b(a){c.call(this,a)}
  method form (line 13) | get form(){return g(f(this).form)}
  function b (line 13) | function b(a){c.call(this,a)}
  method caption (line 13) | get caption(){return g(f(this).caption)}
  method tHead (line 13) | get tHead(){return g(f(this).tHead)}
  method tFoot (line 13) | get tFoot(){return g(f(this).tFoot)}
  method tBodies (line 13) | get tBodies(){return h(f(this).tBodies)}
  method rows (line 13) | get rows(){return h(f(this).rows)}
  function b (line 13) | function b(a){c.call(this,a)}
  method rows (line 13) | get rows(){return f(g(this).rows)}
  function b (line 13) | function b(a){c.call(this,a)}
  method cells (line 13) | get cells(){return f(g(this).cells)}
  function b (line 13) | function b(a){switch(a.localName){case"content":return new c(a);case"sha...
  function b (line 13) | function b(a){m.call(this,a)}
  method instanceRoot (line 13) | get instanceRoot(){return f(e(this).instanceRoot)}
  method animatedInstanceRoot (line 13) | get animatedInstanceRoot(){return f(e(this).animatedInstanceRoot)}
  function b (line 13) | function b(a){c.call(this,a)}
  method correspondingElement (line 13) | get correspondingElement(){return g(f(this).correspondingElement)
  method correspondingUseElement (line 14) | get correspondingUseElement(){return g(f(this).correspondingUseElement)}
  method parentNode (line 14) | get parentNode(){return g(f(this).parentNode)}
  method childNodes (line 14) | get childNodes(){throw new Error("Not implemented")}
  method firstChild (line 14) | get firstChild(){return g(f(this).firstChild)}
  method lastChild (line 14) | get lastChild(){return g(f(this).lastChild)}
  method previousSibling (line 14) | get previousSibling(){return g(f(this).previousSibling)}
  method nextSibling (line 14) | get nextSibling(){return g(f(this).nextSibling)}
  function b (line 14) | function b(a){e(a,this)}
  method canvas (line 14) | get canvas(){return i(f(this).canvas)}
  function b (line 14) | function b(a){e(a,this)}
  method canvas (line 14) | get canvas(){return h(f(this).canvas)}
  function b (line 14) | function b(a){d(a,this)}
  method startContainer (line 14) | get startContainer(){return h(e(this).startContainer)}
  method endContainer (line 14) | get endContainer(){return h(e(this).endContainer)}
  method commonAncestorContainer (line 14) | get commonAncestorContainer(){return h(e(this).commonAncestorContainer)}
  function b (line 14) | function b(a){var b=l(k(a).ownerDocument.createDocumentFragment());c.cal...
  method innerHTML (line 14) | get innerHTML(){return f(this)}
  method innerHTML (line 14) | set innerHTML(a){j(this,a),this.invalidateShadowRenderer()}
  method olderShadowRoot (line 14) | get olderShadowRoot(){return n.get(this)||null}
  method host (line 14) | get host(){return m.get(this)||null}
  function b (line 14) | function b(a){a.previousSibling_=a.previousSibling,a.nextSibling_=a.next...
  function c (line 14) | function c(c,e,f){var g=H(c),h=H(e),i=f?H(f):null;if(d(e),b(e),f)c.first...
  function d (line 14) | function d(c){var d=H(c),e=d.parentNode;if(e){var f=I(e);b(c),c.previous...
  function e (line 14) | function e(a){J.set(a,[])}
  function f (line 14) | function f(a){var b=J.get(a);return b||J.set(a,b=[]),b}
  function g (line 14) | function g(a){for(var b=[],c=0,d=a.firstChild;d;d=d.nextSibling)b[c++]=d...
  function h (line 14) | function h(){for(var a=0;a<N.length;a++){var b=N[a],c=b.parentRenderer;c...
  function i (line 14) | function i(){y=null,h()}
  function j (line 14) | function j(a){var b=L.get(a);return b||(b=new n(a),L.set(a,b)),b}
  function k (line 14) | function k(a){var b=E(a).root;return b instanceof D?b:null}
  function l (line 14) | function l(a){return j(a.host)}
  function m (line 14) | function m(a){this.skip=!1,this.node=a,this.childNodes=[]}
  function n (line 14) | function n(a){this.host=a,this.dirty=!1,this.invalidateAttributes(),this...
  function o (line 14) | function o(a){for(var b=[],c=a.firstChild;c;c=c.nextSibling)v(c)?b.push....
  function p (line 14) | function p(a){if(a instanceof B)return a;if(a instanceof A)return null;f...
  function q (line 14) | function q(a,b){f(b).push(a);var c=K.get(a);c?c.push(b):K.set(a,[b])}
  function r (line 14) | function r(a){return K.get(a)}
  function s (line 14) | function s(a){K.set(a,void 0)}
  function t (line 14) | function t(a,b){var c=b.getAttribute("select");if(!c)return!0;if(c=c.tri...
  function u (line 14) | function u(a,b){var c=r(b);return c&&c[c.length-1]===a}
  function v (line 14) | function v(a){return a instanceof A||a instanceof B}
  function w (line 14) | function w(a){return a.shadowRoot}
  function x (line 14) | function x(a){for(var b=[],c=a.shadowRoot;c;c=c.olderShadowRoot)b.push(c...
  method parentRenderer (line 14) | get parentRenderer(){return E(this.host).renderer}
  function b (line 14) | function b(b){if(window[b]){d(!a.wrappers[b]);var i=function(a){c.call(t...
  function b (line 14) | function b(a){d(a,this)}
  method anchorNode (line 14) | get anchorNode(){return h(e(this).anchorNode)}
  method focusNode (line 14) | get focusNode(){return h(e(this).focusNode)}
  function b (line 14) | function b(a){k.call(this,a),this.treeScope_=new p(this,null)}
  function c (line 14) | function c(a){var c=document[a];b.prototype[a]=function(){return C(c.app...
  function d (line 14) | function d(a,b){F.call(A(b),B(a)),e(a,b)}
  function e (line 14) | function e(a,b){a.shadowRoot&&b.adoptNode(a.shadowRoot),a instanceof o&&...
  function f (line 14) | function f(a,b){var c=a.olderShadowRoot;c&&b.adoptNode(c)}
  function g (line 14) | function g(a){z(a,this)}
  function h (line 14) | function h(a,b){var c=document.implementation[b];a.prototype[b]=function...
  function i (line 14) | function i(a,b){var c=document.implementation[b];a.prototype[b]=function...
  function d (line 14) | function d(a){return a?void z(a,this):f?document.createElement(f,b):docu...
  method implementation (line 14) | get implementation(){var a=E.get(this);return a?a:(a=new g(B(this).imple...
  method defaultView (line 14) | get defaultView(){return C(B(this).defaultView)}
  function b (line 14) | function b(a){c.call(this,a)}
  method document (line 14) | get document(){return j(h(this).document)}
  function b (line 14) | function b(a){var b;b=a instanceof f?a:new f(a&&e(a)),d(b,this)}
  function b (line 14) | function b(a){var b=c[a],d=window[b];if(d){var e=document.createElement(...
  function b (line 14) | function b(a,c){var d,e,f,g,h=a.firstElementChild;for(e=[],f=a.shadowRoo...
  function c (line 14) | function c(a,b,d){var e,f,g,h,i,j=a.firstElementChild;for(g=[],f=a.shado...
  function b (line 14) | function b(a,b){var c="";return Array.prototype.forEach.call(a,function(...
  function c (line 14) | function c(a){var b=document.createElement("style");return b.textContent...
  function d (line 14) | function d(a){var b=c(a);document.head.appendChild(b);var d=[];if(b.shee...
  function e (line 14) | function e(){v.initialized=!0,document.body.appendChild(v);var a=v.conte...
  function f (line 14) | function f(a){v.initialized||e(),document.body.appendChild(v),a(v.conten...
  function g (line 14) | function g(a,b){if(b){var e;if(a.match("@import")&&x){var g=c(a);f(funct...
  function h (line 14) | function h(a){a&&j().appendChild(document.createTextNode(a))}
  function i (line 14) | function i(a,b){var d=c(a);d.setAttribute(b,""),d.setAttribute(z,""),doc...
  function j (line 14) | function j(){return w||(w=document.createElement("style"),w.setAttribute...
  function b (line 14) | function b(a){return void 0!==m[a]}
  function c (line 14) | function c(){h.call(this),this._isInvalid=!0}
  function d (line 14) | function d(a){return""==a&&c.call(this),a.toLowerCase()}
  function e (line 14) | function e(a){var b=a.charCodeAt(0);return b>32&&127>b&&-1==[34,35,60,62...
  function f (line 14) | function f(a){var b=a.charCodeAt(0);return b>32&&127>b&&-1==[34,35,60,62...
  function g (line 14) | function g(a,g,h){function i(a){t.push(a)}var j=g||"scheme start",k=0,l=...
  function h (line 15) | function h(){this._scheme="",this._schemeData="",this._username="",this....
  function i (line 15) | function i(a,b){void 0===b||b instanceof i||(b=new i(String(b))),this._u...
  method href (line 15) | get href(){if(this._isInvalid)return this._url;var a="";return(""!=this....
  method href (line 15) | set href(a){h.call(this),g.call(this,a)}
  method protocol (line 15) | get protocol(){return this._scheme+":"}
  method protocol (line 15) | set protocol(a){this._isInvalid||g.call(this,a+":","scheme start")}
  method host (line 15) | get host(){return this._isInvalid?"":this._port?this._host+":"+this._por...
  method host (line 15) | set host(a){!this._isInvalid&&this._isRelative&&g.call(this,a,"host")}
  method hostname (line 15) | get hostname(){return this._host}
  method hostname (line 15) | set hostname(a){!this._isInvalid&&this._isRelative&&g.call(this,a,"hostn...
  method port (line 15) | get port(){return this._port}
  method port (line 15) | set port(a){!this._isInvalid&&this._isRelative&&g.call(this,a,"port")}
  method pathname (line 15) | get pathname(){return this._isInvalid?"":this._isRelative?"/"+this._path...
  method pathname (line 15) | set pathname(a){!this._isInvalid&&this._isRelative&&(this._path=[],g.cal...
  method search (line 15) | get search(){return this._isInvalid||!this._query||"?"==this._query?"":t...
  method search (line 15) | set search(a){!this._isInvalid&&this._isRelative&&(this._query="?","?"==...
  method hash (line 15) | get hash(){return this._isInvalid||!this._fragment||"#"==this._fragment?...
  method hash (line 15) | set hash(a){this._isInvalid||(this._fragment="#","#"==a[0]&&(a=a.slice(1...
  method origin (line 15) | get origin(){var a;if(this._isInvalid||!this._scheme)return"";switch(thi...
  function b (line 15) | function b(a){u.push(a),t||(t=!0,q(d))}
  function c (line 15) | function c(a){return window.ShadowDOMPolyfill&&window.ShadowDOMPolyfill....
  function d (line 15) | function d(){t=!1;var a=u;u=[],a.sort(function(a,b){return a.uid_-b.uid_...
  function e (line 15) | function e(a){a.nodes_.forEach(function(b){var c=p.get(b);c&&c.forEach(f...
  function f (line 15) | function f(a,b){for(var c=a;c;c=c.parentNode){var d=p.get(c);if(d)for(va...
  function g (line 15) | function g(a){this.callback_=a,this.nodes_=[],this.records_=[],this.uid_...
  function h (line 15) | function h(a,b){this.type=a,this.target=b,this.addedNodes=[],this.remove...
  function i (line 15) | function i(a){var b=new h(a.type,a.target);return b.addedNodes=a.addedNo...
  function j (line 15) | function j(a,b){return w=new h(a,b)}
  function k (line 15) | function k(a){return x?x:(x=i(w),x.oldValue=a,x)}
  function l (line 15) | function l(){w=x=void 0}
  function m (line 15) | function m(a){return a===x||a===w}
  function n (line 15) | function n(a,b){return a===b?a:x&&m(a)?x:null}
  function o (line 15) | function o(a,b,c){this.observer=a,this.target=b,this.options=c,this.tran...
  function b (line 15) | function b(a,b){b=b||q,d(function(){f(a,b)},b)}
  function c (line 15) | function c(a){return"complete"===a.readyState||a.readyState===s}
  function d (line 15) | function d(a,b){if(c(b))a&&a();else{var e=function(){("complete"===b.rea...
  function e (line 15) | function e(a){a.target.__loaded=!0}
  function f (line 15) | function f(a,b){function c(){h==i&&a&&a()}function d(a){e(a),h++,c()}var...
  function g (line 15) | function g(a){return m?a.__loaded||a.import&&"loading"!==a.import.readyS...
  function h (line 15) | function h(a){for(var b,c=0,d=a.length;d>c&&(b=a[c]);c++)i(b)&&j(b)}
  function i (line 15) | function i(a){return"link"===a.localName&&"import"===a.rel}
  function j (line 15) | function j(a){var b=a.import;b?e({target:a}):(a.addEventListener("load",...
  function b (line 15) | function b(a){return"link"===a.localName&&a.rel===j}
  function c (line 15) | function c(a){var b=d(a);return"data:text/javascript;charset=utf-8,"+enc...
  function d (line 15) | function d(a){return a.textContent+e(a)}
  function e (line 15) | function e(a){var b=a.__nodeUrl;if(!b){b=a.ownerDocument.baseURI;var c="...
  function f (line 15) | function f(a){var b=a.ownerDocument.createElement("style");return b.text...
  function b (line 15) | function b(a){return c(a,g)}
  function c (line 15) | function c(a,b){return"link"===a.localName&&a.getAttribute("rel")===b}
  function d (line 15) | function d(a,b){var c=a;c instanceof Document||(c=document.implementatio...
  function b (line 15) | function b(a){for(var b,d=0,e=a.length;e>d&&(b=a[d]);d++)"childList"===b...
  function c (line 15) | function c(a){for(var b,f,i,j,k=0,l=a.length;l>k&&(i=a[k]);k++)b||(b=i.o...
  function d (line 15) | function d(a){return 1===a.nodeType&&i.call(a,g.loadSelectorsForNode(a))}
  function e (line 15) | function e(a){return 1===a.nodeType&&i.call(a,h.parseSelectorsForNode(a))}
  function f (line 15) | function f(a){j.observe(a,{childList:!0,subtree:!0})}
  function a (line 15) | function a(){HTMLImports.importer.bootDocument(b)}
  function b (line 15) | function b(a,c,d){var e=a.firstElementChild;if(!e)for(e=a.firstChild;e&&...
  function c (line 15) | function c(a,b){for(var c=a.shadowRoot;c;)d(c,b),c=c.olderShadowRoot}
  function d (line 15) | function d(a,d){b(a,function(a){return d(a)?!0:void c(a,d)}),c(a,d)}
  function e (line 15) | function e(a){return h(a)?(i(a),!0):void l(a)}
  function f (line 15) | function f(a){d(a,function(a){return e(a)?!0:void 0})}
  function g (line 15) | function g(a){return e(a)||f(a)}
  function h (line 15) | function h(b){if(!b.__upgraded__&&b.nodeType===Node.ELEMENT_NODE){var c=...
  function i (line 15) | function i(a){l(a),r(a)&&d(a,function(a){l(a)})}
  function j (line 15) | function j(a){if(G.push(a),!F){F=!0;var b=window.Platform&&window.Platfo...
  function k (line 15) | function k(){F=!1;for(var a,b=G,c=0,d=b.length;d>c&&(a=b[c]);c++)a();G=[]}
  function l (line 15) | function l(a){D?j(function(){m(a)}):m(a)}
  function m (line 15) | function m(a){(a.attachedCallback||a.detachedCallback||a.__upgraded__&&B...
  function n (line 15) | function n(a){o(a),d(a,function(a){o(a)})}
  function o (line 15) | function o(a){D?j(function(){p(a)}):p(a)}
  function p (line 15) | function p(a){(a.attachedCallback||a.detachedCallback||a.__upgraded__&&B...
  function q (line 15) | function q(a){return window.ShadowDOMPolyfill?ShadowDOMPolyfill.wrapIfNe...
  function r (line 15) | function r(a){for(var b=a,c=q(document);b;){if(b==c)return!0;b=b.parentN...
  function s (line 15) | function s(a){if(a.shadowRoot&&!a.shadowRoot.__watched){B.dom&&console.l...
  function t (line 15) | function t(a){w(a)}
  function u (line 15) | function u(a){if(B.dom){var b=a[0];if(b&&"childList"===b.type&&b.addedNo...
  function v (line 15) | function v(a){for(a||(a=q(document));a.parentNode;)a=a.parentNode;var b=...
  function w (line 15) | function w(a){if(!a.__observer){var b=new MutationObserver(u);b.observe(...
  function x (line 15) | function x(a){w(a)}
  function y (line 15) | function y(a){B.dom&&console.group("upgradeDocument: ",a.baseURI.split("...
  function z (line 15) | function z(a){E=[],A(a),E=null}
  function A (line 15) | function A(a){if(a=q(a),!(E.indexOf(a)>=0)){E.push(a);for(var b,c=a.quer...
  function b (line 15) | function b(b,g){var h=g||{};if(!b)throw new Error("document.registerElem...
  function c (line 15) | function c(a){for(var b=0;b<y.length;b++)if(a===y[b])return!0}
  function d (line 15) | function d(a){var b=n(a);return b?d(b.extends).concat([b]):[]}
  function e (line 15) | function e(a){for(var b,c=a.extends,d=0;b=a.ancestry[d];d++)c=b.is&&b.ta...
  function f (line 15) | function f(a){if(!Object.__proto__){var b=HTMLElement.prototype;if(a.is)...
  function g (line 15) | function g(a){return h(B(a.tag),a)}
  function h (line 15) | function h(b,c){return c.is&&b.setAttribute("is",c.is),i(b,c),b.__upgrad...
  function i (line 15) | function i(a,b){Object.__proto__?a.__proto__=b.prototype:(j(a,b.prototyp...
  function j (line 15) | function j(a,b,c){for(var d={},e=b;e!==c&&e!==HTMLElement.prototype;){fo...
  function k (line 15) | function k(a){a.createdCallback&&a.createdCallback()}
  function l (line 15) | function l(a){if(!a.setAttribute._polyfilled){var b=a.setAttribute;a.set...
  function m (line 15) | function m(a,b,c){a=a.toLowerCase();var d=this.getAttribute(a);c.apply(t...
  function n (line 15) | function n(a){return a?z[a.toLowerCase()]:void 0}
  function o (line 15) | function o(a,b){z[a]=b}
  function p (line 15) | function p(a){return function(){return g(a)}}
  function q (line 15) | function q(a,b,c){return a===A?r(b,c):C(a,b)}
  function r (line 15) | function r(a,b){var c=n(b||a);if(c){if(a==c.tag&&b==c.is)return new c.ct...
  function s (line 15) | function s(a){if(!a.__upgraded__&&a.nodeType===Node.ELEMENT_NODE){var b=...
  function t (line 15) | function t(b){var c=D.call(this,b);return a.upgradeAll(c),c}
  function b (line 15) | function b(a){return"link"===a.localName&&a.getAttribute("rel")===c}
  function b (line 15) | function b(){CustomElements.parser.parse(document),CustomElements.upgrad...
  function b (line 15) | function b(){window.Polymer===e&&(window.Polymer=function(){throw new Er...
  function b (line 16) | function b(a,b){return b=b||[],b.map||(b=[b]),a.apply(this,b.map(d))}
  function c (line 16) | function c(a,c,d){var e;switch(arguments.length){case 0:return;case 1:e=...
  function d (line 16) | function d(a){return f[a]}
  function e (line 16) | function e(a,c){HTMLImports.whenImportsReady(function(){b(c,a)})}

FILE: bower_components/polymer/polymer.js
  function shadowSelector (line 250) | function shadowSelector(v) {
  function selector (line 253) | function selector(v) {
  function rule (line 256) | function rule(v) {
  function PointerMap (line 423) | function PointerMap() {
  function assert (line 2247) | function assert(condition, message) {
  function isDecimalDigit (line 2253) | function isDecimalDigit(ch) {
  function isWhiteSpace (line 2260) | function isWhiteSpace(ch) {
  function isLineTerminator (line 2271) | function isLineTerminator(ch) {
  function isIdentifierStart (line 2277) | function isIdentifierStart(ch) {
  function isIdentifierPart (line 2283) | function isIdentifierPart(ch) {
  function isKeyword (line 2292) | function isKeyword(id) {
  function skipWhitespace (line 2298) | function skipWhitespace() {
  function getIdentifier (line 2304) | function getIdentifier() {
  function scanIdentifier (line 2320) | function scanIdentifier() {
  function scanPunctuator (line 2351) | function scanPunctuator() {
  function scanNumericLiteral (line 2449) | function scanNumericLiteral() {
  function scanStringLiteral (line 2514) | function scanStringLiteral() {
  function isIdentifierName (line 2581) | function isIdentifierName(token) {
  function advance (line 2588) | function advance() {
  function lex (line 2632) | function lex() {
  function peek (line 2645) | function peek() {
  function throwError (line 2655) | function throwError(token, messageFormat) {
  function throwUnexpected (line 2674) | function throwUnexpected(token) {
  function expect (line 2681) | function expect(value) {
  function match (line 2690) | function match(value) {
  function matchKeyword (line 2696) | function matchKeyword(keyword) {
  function consumeSemicolon (line 2700) | function consumeSemicolon() {
  function parseArrayInitialiser (line 2721) | function parseArrayInitialiser() {
  function parseObjectPropertyKey (line 2746) | function parseObjectPropertyKey() {
  function parseObjectProperty (line 2761) | function parseObjectProperty() {
  function parseObjectInitialiser (line 2776) | function parseObjectInitialiser() {
  function parseGroupExpression (line 2796) | function parseGroupExpression() {
  function parsePrimaryExpression (line 2811) | function parsePrimaryExpression() {
  function parseArguments (line 2852) | function parseArguments() {
  function parseNonComputedProperty (line 2872) | function parseNonComputedProperty() {
  function parseNonComputedMember (line 2884) | function parseNonComputedMember() {
  function parseComputedMember (line 2890) | function parseComputedMember() {
  function parseLeftHandSideExpression (line 2902) | function parseLeftHandSideExpression() {
  function parseUnaryExpression (line 2931) | function parseUnaryExpression() {
  function binaryPrecedence (line 2949) | function binaryPrecedence(token) {
  function parseBinaryExpression (line 3010) | function parseBinaryExpression() {
  function parseConditionalExpression (line 3060) | function parseConditionalExpression() {
  function parseFilter (line 3087) | function parseFilter() {
  function parseFilters (line 3105) | function parseFilters() {
  function parseTopLevel (line 3129) | function parseTopLevel() {
  function parseAsExpression (line 3153) | function parseAsExpression(expr) {
  function parseInExpression (line 3159) | function parseInExpression(identifier) {
  function parse (line 3174) | function parse(code, inDelegate) {
  function prepareBinding (line 3202) | function prepareBinding(expressionText, name, node, filterRegistry) {
  function getExpression (line 3232) | function getExpression(expressionText) {
  function Literal (line 3243) | function Literal(value) {
  function IdentPath (line 3261) | function IdentPath(name) {
  function MemberExpression (line 3290) | function MemberExpression(object, property, accessor) {
  method fullPath (line 3308) | get fullPath() {
  function Filter (line 3375) | function Filter(name, args) {
  function notImplemented (line 3421) | function notImplemented() { throw Error('Not Implemented'); }
  function getFn (line 3447) | function getFn(arg) {
  function ASTDelegate (line 3451) | function ASTDelegate() {
  function ConstantObservable (line 3597) | function ConstantObservable(value) {
  function Expression (line 3608) | function Expression(delegate) {
  function valueFn (line 3633) | function valueFn() {
  function setValueFn (line 3652) | function setValueFn(newValue) {
  function convertStylePropertyName (line 3686) | function convertStylePropertyName(name) {
  function findScope (line 3697) | function findScope(model, prop) {
  function isLiteralExpression (line 3706) | function isLiteralExpression(pathString) {
  function PolymerExpressions (line 3723) | function PolymerExpressions() {}
  function withDependencies (line 3829) | function withDependencies(task, depends) {
  function module (line 3837) | function module(name, dependsOrFactory, moduleFactory) {
  function marshal (line 3857) | function marshal(name) {
  function using (line 3863) | function using(depends, task) {
  function whenReady (line 3991) | function whenReady(callback, doc) {
  function isDocumentReady (line 4002) | function isDocumentReady(doc) {
  function whenDocumentReady (line 4008) | function whenDocumentReady(callback, doc) {
  function markTargetLoaded (line 4023) | function markTargetLoaded(event) {
  function watchImportsLoad (line 4028) | function watchImportsLoad(callback, doc) {
  function isImportLoaded (line 4061) | function isImportLoaded(link) {
  function handleImports (line 4087) | function handleImports(nodes) {
  function isImport (line 4095) | function isImport(element) {
  function handleImport (line 4099) | function handleImport(element) {
  function detectObjectObserve (line 4178) | function detectObjectObserve() {
  function detectEval (line 4220) | function detectEval() {
  function isIndex (line 4244) | function isIndex(s) {
  function toNumber (line 4248) | function toNumber(s) {
  function isObject (line 4252) | function isObject(obj) {
  function areSameValue (line 4260) | function areSameValue(left, right) {
  function getPathCharType (line 4287) | function getPathCharType(char) {
  function noop (line 4396) | function noop() {}
  function parsePath (line 4398) | function parsePath(path) {
  function isIdent (line 4461) | function isIdent(s) {
  function Path (line 4467) | function Path(parts, privateToken) {
  function getPath (line 4483) | function getPath(pathString) {
  function formatAccessor (line 4514) | function formatAccessor(key) {
  function dirtyCheck (line 4603) | function dirtyCheck(observer) {
  function objectIsEmpty (line 4614) | function objectIsEmpty(object) {
  function diffIsEmpty (line 4620) | function diffIsEmpty(diff) {
  function diffObjectFromOldObject (line 4626) | function diffObjectFromOldObject(object, oldObject) {
  function runEOMTasks (line 4664) | function runEOMTasks() {
  function newObservedObject (line 4688) | function newObservedObject() {
  function getObservedObject (line 4752) | function getObservedObject(observer, object, arrayObserve) {
  function newObservedSet (line 4761) | function newObservedSet() {
  function getObservedSet (line 4853) | function getObservedSet(observer, obj) {
  function Observer (line 4869) | function Observer() {
  function addToAll (line 4934) | function addToAll(observer) {
  function removeFromAll (line 4942) | function removeFromAll(observer) {
  function ObjectObserver (line 4994) | function ObjectObserver(object) {
  function ArrayObserver (line 5087) | function ArrayObserver(array) {
  function PathObserver (line 5138) | function PathObserver(object, path) {
  method path (line 5149) | get path() {
  function CompoundObserver (line 5189) | function CompoundObserver(reportChangesOnOpen) {
  function identFn (line 5323) | function identFn(value) { return value; }
  function ObserverTransform (line 5325) | function ObserverTransform(observable, getValueFn, setValueFn,
  function diffObjectFromChangeRecords (line 5389) | function diffObjectFromChangeRecords(object, changeRecords, oldValues) {
  function newSplice (line 5448) | function newSplice(index, removed, addedCount) {
  function ArraySplice (line 5461) | function ArraySplice() {}
  function calcSplices (line 5695) | function calcSplices(current, currentStart, currentEnd,
  function intersect (line 5701) | function intersect(start1, end1, start2, end2) {
  function mergeSplice (line 5725) | function mergeSplice(splices, index, removed, addedCount) {
  function createInitialSplices (line 5798) | function createInitialSplices(array, changeRecords) {
  function projectArraySplices (line 5826) | function projectArraySplices(array, changeRecords) {
  function getTreeScope (line 5887) | function getTreeScope(node) {
  function updateBindings (line 5901) | function updateBindings(node, name, binding) {
  function returnBinding (line 5912) | function returnBinding(node, name, binding) {
  function sanitizeValue (line 5916) | function sanitizeValue(value) {
  function updateText (line 5920) | function updateText(node, value) {
  function textBinding (line 5924) | function textBinding(node) {
  function updateAttribute (line 5955) | function updateAttribute(el, name, conditional, value) {
  function attributeBinding (line 5967) | function attributeBinding(el, name, conditional) {
  function getEventForInputType (line 6018) | function getEventForInputType(element) {
  function updateInput (line 6034) | function updateInput(input, property, value, santizeFn) {
  function inputBinding (line 6038) | function inputBinding(input, property, santizeFn) {
  function noop (line 6044) | function noop() {}
  function bindInputEvent (line 6046) | function bindInputEvent(input, property, observable, postEventFn) {
  function booleanSanitize (line 6067) | function booleanSanitize(value) {
  function getAssociatedRadioButtons (line 6080) | function getAssociatedRadioButtons(element) {
  function checkedPostEvent (line 6100) | function checkedPostEvent(input) {
  function updateOption (line 6154) | function updateOption(option, value) {
  function optionBinding (line 6176) | function optionBinding(option) {
  function assert (line 6229) | function assert(v) {
  function getFragmentRoot (line 6236) | function getFragmentRoot(node) {
  function searchRefId (line 6245) | function searchRefId(node, id) {
  function getInstanceRoot (line 6268) | function getInstanceRoot(node) {
  function isSVGTemplate (line 6394) | function isSVGTemplate(el) {
  function isHTMLTemplate (line 6399) | function isHTMLTemplate(el) {
  function isAttributeTemplate (line 6404) | function isAttributeTemplate(el) {
  function isTemplate (line 6409) | function isTemplate(el) {
  function forAllTemplatesFrom (line 6425) | function forAllTemplatesFrom(node, fn) {
  function bootstrapTemplatesRecursivelyFrom (line 6433) | function bootstrapTemplatesRecursivelyFrom(node) {
  function mixin (line 6455) | function mixin(to, from) {
  function getOrCreateTemplateContentsOwner (line 6463) | function getOrCreateTemplateContentsOwner(template) {
  function getTemplateStagingDocument (line 6480) | function getTemplateStagingDocument(template) {
  function extractTemplateFromAttributeTemplate (line 6515) | function extractTemplateFromAttributeTemplate(el) {
  function extractTemplateFromSVGTemplate (line 6533) | function extractTemplateFromSVGTemplate(el) {
  function liftNonNativeTemplateChildrenIntoContent (line 6549) | function liftNonNativeTemplateChildrenIntoContent(template, el, useRoot) {
  function fixTemplateElementPrototype (line 6650) | function fixTemplateElementPrototype(el) {
  function ensureSetModelScheduled (line 6657) | function ensureSetModelScheduled(template) {
  method model (line 6777) | get model() {
  method model (line 6781) | set model(model) {
  method bindingDelegate (line 6786) | get bindingDelegate() {
  function delegateFn (line 6825) | function delegateFn(name) {
  method bindingDelegate (line 6845) | set bindingDelegate(bindingDelegate) {
  method ref_ (line 6854) | get ref_() {
  function parseMustaches (line 6870) | function parseMustaches(s, name, node, prepareBindingFn) {
  function processOneTimeBinding (line 6943) | function processOneTimeBinding(name, tokens, node, model) {
  function processSinglePathBinding (line 6961) | function processSinglePathBinding(name, tokens, node, model) {
  function processBinding (line 6970) | function processBinding(name, tokens, node, model) {
  function processBindings (line 7002) | function processBindings(node, bindings, model, instanceBindings) {
  function parseWithDefault (line 7022) | function parseWithDefault(el, name, prepareBindingFn) {
  function parseAttributeBindings (line 7027) | function parseAttributeBindings(element, prepareBindingFn) {
  function getBindings (line 7074) | function getBindings(node, prepareBindingFn) {
  function cloneAndBindInstance (line 7088) | function cloneAndBindInstance(node, parent, stagingDocument, bindings, m...
  function createInstanceBindingMap (line 7113) | function createInstanceBindingMap(node, prepareBindingFn) {
  function getContentUid (line 7128) | function getContentUid(content) {
  function getInstanceBindingMap (line 7142) | function getInstanceBindingMap(content, delegate_) {
  function TemplateIterator (line 7173) | function TemplateIterator(templateElement) {
  function isRelativeScheme (line 7536) | function isRelativeScheme(scheme) {
  function invalid (line 7540) | function invalid() {
  function IDNAToASCII (line 7545) | function IDNAToASCII(h) {
  function percentEscape (line 7553) | function percentEscape(c) {
  function percentEscapeQuery (line 7565) | function percentEscapeQuery(c) {
  function parse (line 7584) | function parse(input, stateOverride, base) {
  function clear (line 7941) | function clear() {
  function jURL (line 7957) | function jURL(url, base /* , encoding */) {
  method href (line 7971) | get href() {
  method href (line 7985) | set href(href) {
  method protocol (line 7990) | get protocol() {
  method protocol (line 7993) | set protocol(protocol) {
  method host (line 7999) | get host() {
  method host (line 8003) | set host(host) {
  method hostname (line 8009) | get hostname() {
  method hostname (line 8012) | set hostname(hostname) {
  method port (line 8018) | get port() {
  method port (line 8021) | set port(port) {
  method pathname (line 8027) | get pathname() {
  method pathname (line 8031) | set pathname(pathname) {
  method search (line 8038) | get search() {
  method search (line 8042) | set search(search) {
  method hash (line 8051) | get hash() {
  method hash (line 8055) | set hash(hash) {
  method origin (line 8064) | get origin() {
  function endOfMicrotask (line 8112) | function endOfMicrotask(callback) {
  function atEndOfMicrotask (line 8117) | function atEndOfMicrotask() {
  function flush (line 8168) | function flush() {
  function baseUrl (line 8297) | function baseUrl(node) {
  function replaceUrlsInCssText (line 8304) | function replaceUrlsInCssText(cssText, baseUrl, keepAbsolute, regexp) {
  function resolveRelativeUrl (line 8312) | function resolveRelativeUrl(baseUrl, url, keepAbsolute) {
  function makeDocumentRelPath (line 8321) | function makeDocumentRelPath(url) {
  function makeRelPath (line 8333) | function makeRelPath(sourceUrl, targetUrl) {
  function Loader (line 8359) | function Loader(regex) {
  function StyleResolver (line 8466) | function StyleResolver() {
  function loadedStyle (line 8505) | function loadedStyle(style) {
  function extend (line 8527) | function extend(prototype, api) {
  function mixin (line 8551) | function mixin(inObj/*, inProps, inMoreProps, ...*/) {
  function copyProperty (line 8566) | function copyProperty(inName, inSource, inTarget) {
  function getPropertyDescriptor (line 8573) | function getPropertyDescriptor(inObject, inName) {
  function job (line 8635) | function job(job, callback, wait) {
  function createDOM (line 8718) | function createDOM(inTagOrNode, inHTML, inAttrs) {
  function $super (line 8752) | function $super(arrayOfArgs) {
  function nameInThis (line 8792) | function nameInThis(value) {
  function memoizeSuper (line 8807) | function memoizeSuper(method, name, proto) {
  function nextSuper (line 8820) | function nextSuper(proto, name, caller) {
  function getPrototypeOf (line 8838) | function getPrototypeOf(prototype) {
  function hintSuper (line 8844) | function hintSuper(prototype) {
  function noopHandler (line 8863) | function noopHandler(value) {
  function deserializeValue (line 8911) | function deserializeValue(value, currentValue) {
  function areSameValue (line 9302) | function areSameValue(left, right) {
  function resolveBindingValue (line 9312) | function resolveBindingValue(oldValue, value) {
  function updateValue (line 9471) | function updateValue(value, oldValue) {
  function unbindNodeTree (line 9707) | function unbindNodeTree(node) {
  function _nodeUnbindAll (line 9711) | function _nodeUnbindAll(node) {
  function forNodeTree (line 9715) | function forNodeTree(node, callback) {
  function isBase (line 10116) | function isBase(object) {
  function PolymerBase (line 10128) | function PolymerBase() {}
  function getPrototypeOf (line 10229) | function getPrototypeOf(prototype) {
  function shimCssText (line 10233) | function shimCssText(cssText, host) {
  function element (line 10259) | function element(name, prototype) {
  function waitingForPrototype (line 10280) | function waitingForPrototype(name, client) {
  function notifyPrototype (line 10286) | function notifyPrototype(name) {
  function registerPrototype (line 10305) | function registerPrototype(name, prototype) {
  function getRegisteredPrototype (line 10309) | function getRegisteredPrototype(name) {
  function instanceOfType (line 10313) | function instanceOfType(element, type) {
  function importRuleForSheet (line 10579) | function importRuleForSheet(sheet, baseUrl) {
  function applyStyleToScope (line 10584) | function applyStyleToScope(style, scope) {
  function createStyleElement (line 10616) | function createStyleElement(cssText, scope) {
  function cssTextFromSheet (line 10624) | function cssTextFromSheet(sheet) {
  function matchesSelector (line 10628) | function matchesSelector(node, inSelector) {
  function bindingValue (line 10730) | function bindingValue() {
  function ensurePrototypeTraversal (line 11334) | function ensurePrototypeTraversal(prototype) {
  function queueForElement (line 11530) | function queueForElement(element) {
  function nextQueued (line 11534) | function nextQueued() {
  function whenReady (line 11538) | function whenReady(callback) {
  function forceReady (line 11554) | function forceReady(timeout) {
  function isRegistered (line 11682) | function isRegistered(name) {
  function isCustomTag (line 11686) | function isCustomTag(name) {
  function importElements (line 11732) | function importElements(node, callback) {
  function _import (line 11755) | function _import(urls, callback) {

FILE: bower_components/time-elements/time-elements.js
  function pad (line 8) | function pad(num) {
  function strftime (line 12) | function strftime(time, formatString) {
  function RelativeTime (line 87) | function RelativeTime(date) {
  function isDayFirst (line 192) | function isDayFirst() {
  function isYearSeparator (line 214) | function isYearSeparator() {
  function isThisYear (line 237) | function isThisYear(date) {
  function updateNowElements (line 269) | function updateNowElements() {
  function formatDate (line 428) | function formatDate(el) {
  function formatTime (line 469) | function formatTime(el) {

FILE: bower_components/webcomponentsjs/CustomElements.js
  function scheduleCallback (line 73) | function scheduleCallback(observer) {
  function wrapIfNeeded (line 80) | function wrapIfNeeded(node) {
  function dispatchCallbacks (line 83) | function dispatchCallbacks() {
  function removeTransientObserversFor (line 101) | function removeTransientObserversFor(observer) {
  function forEachAncestorAndObserverEnqueueRecord (line 110) | function forEachAncestorAndObserverEnqueueRecord(target, callback) {
  function JsMutationObserver (line 125) | function JsMutationObserver(callback) {
  function MutationRecord (line 175) | function MutationRecord(type, target) {
  function copyMutationRecord (line 186) | function copyMutationRecord(original) {
  function getRecord (line 198) | function getRecord(type, target) {
  function getRecordWithOldValue (line 201) | function getRecordWithOldValue(oldValue) {
  function clearRecords (line 207) | function clearRecords() {
  function recordRepresentsCurrentMutation (line 210) | function recordRepresentsCurrentMutation(record) {
  function selectRecord (line 213) | function selectRecord(lastRecord, newRecord) {
  function Registration (line 218) | function Registration(observer, target, options) {
  function forSubtree (line 370) | function forSubtree(node, cb) {
  function findAllElements (line 379) | function findAllElements(node, find, data) {
  function forRoots (line 395) | function forRoots(node, cb) {
  function forDocumentTree (line 403) | function forDocumentTree(doc, cb) {
  function _forDocumentTree (line 408) | function _forDocumentTree(doc, cb) {
  function addedNode (line 430) | function addedNode(node) {
  function added (line 433) | function added(node) {
  function addedSubtree (line 439) | function addedSubtree(node) {
  function attachedNode (line 446) | function attachedNode(node) {
  function deferMutation (line 458) | function deferMutation(fn) {
  function takeMutations (line 465) | function takeMutations() {
  function attached (line 473) | function attached(element) {
  function _attached (line 482) | function _attached(element) {
  function detachedNode (line 492) | function detachedNode(node) {
  function detached (line 498) | function detached(element) {
  function _detached (line 507) | function _detached(element) {
  function inDocument (line 517) | function inDocument(element) {
  function watchShadow (line 527) | function watchShadow(node) {
  function handler (line 537) | function handler(mutations) {
  function takeRecords (line 570) | function takeRecords(node) {
  function observe (line 585) | function observe(inRoot) {
  function upgradeDocument (line 596) | function upgradeDocument(doc) {
  function upgradeDocumentTree (line 603) | function upgradeDocumentTree(doc) {
  function upgrade (line 622) | function upgrade(node) {
  function upgradeWithDefinition (line 635) | function upgradeWithDefinition(element, definition) {
  function implementPrototype (line 648) | function implementPrototype(element, definition) {
  function customMixin (line 656) | function customMixin(inTarget, inSrc, inNative) {
  function created (line 670) | function created(element) {
  function register (line 686) | function register(name, options) {
  function overrideAttributeApi (line 718) | function overrideAttributeApi(prototype) {
  function changeAttribute (line 732) | function changeAttribute(name, value, operation) {
  function isReservedTag (line 741) | function isReservedTag(name) {
  function ancestry (line 749) | function ancestry(extnds) {
  function resolveTagName (line 756) | function resolveTagName(definition) {
  function resolvePrototypeChain (line 766) | function resolvePrototypeChain(definition) {
  function instantiate (line 785) | function instantiate(definition) {
  function getRegisteredDefinition (line 789) | function getRegisteredDefinition(name) {
  function registerDefinition (line 794) | function registerDefinition(name, definition) {
  function generateConstructor (line 797) | function generateConstructor(definition) {
  function createElementNS (line 803) | function createElementNS(namespace, tag, typeExtension) {
  function createElement (line 810) | function createElement(tag, typeExtension) {
  function cloneNode (line 832) | function cloneNode(deep) {
  function bootstrap (line 897) | function bootstrap() {

FILE: bower_components/webcomponentsjs/HTMLImports.js
  function scheduleCallback (line 73) | function scheduleCallback(observer) {
  function wrapIfNeeded (line 80) | function wrapIfNeeded(node) {
  function dispatchCallbacks (line 83) | function dispatchCallbacks() {
  function removeTransientObserversFor (line 101) | function removeTransientObserversFor(observer) {
  function forEachAncestorAndObserverEnqueueRecord (line 110) | function forEachAncestorAndObserverEnqueueRecord(target, callback) {
  function JsMutationObserver (line 125) | function JsMutationObserver(callback) {
  function MutationRecord (line 175) | function MutationRecord(type, target) {
  function copyMutationRecord (line 186) | function copyMutationRecord(original) {
  function getRecord (line 198) | function getRecord(type, target) {
  function getRecordWithOldValue (line 201) | function getRecordWithOldValue(oldValue) {
  function clearRecords (line 207) | function clearRecords() {
  function recordRepresentsCurrentMutation (line 210) | function recordRepresentsCurrentMutation(record) {
  function selectRecord (line 213) | function selectRecord(lastRecord, newRecord) {
  function Registration (line 218) | function Registration(observer, target, options) {
  function whenReady (line 369) | function whenReady(callback, doc) {
  function isDocumentReady (line 377) | function isDocumentReady(doc) {
  function whenDocumentReady (line 380) | function whenDocumentReady(callback, doc) {
  function markTargetLoaded (line 393) | function markTargetLoaded(event) {
  function watchImportsLoad (line 396) | function watchImportsLoad(callback, doc) {
  function isImportLoaded (line 424) | function isImportLoaded(link) {
  function handleImports (line 437) | function handleImports(nodes) {
  function isImport (line 444) | function isImport(element) {
  function handleImport (line 447) | function handleImport(element) {
  function nodeIsImport (line 875) | function nodeIsImport(elt) {
  function generateScriptDataUrl (line 878) | function generateScriptDataUrl(script) {
  function generateScriptContent (line 882) | function generateScriptContent(script) {
  function generateSourceMapHint (line 885) | function generateSourceMapHint(script) {
  function cloneStyle (line 893) | function cloneStyle(style) {
  function isImportLink (line 958) | function isImportLink(elt) {
  function isLinkRel (line 961) | function isLinkRel(elt, rel) {
  function makeDocument (line 964) | function makeDocument(resource, url) {
  function bootstrap (line 1047) | function bootstrap() {

FILE: bower_components/webcomponentsjs/ShadowDOM.js
  function detectEval (line 54) | function detectEval() {
  function assert (line 69) | function assert(b) {
  function mixin (line 75) | function mixin(to, from) {
  function mixinStatics (line 83) | function mixinStatics(to, from) {
  function oneOf (line 100) | function oneOf(object, propertyNames) {
  function defineNonEnumerableDataProperty (line 111) | function defineNonEnumerableDataProperty(object, name, value) {
  function getWrapperConstructor (line 116) | function getWrapperConstructor(node) {
  function addForwardingProperties (line 125) | function addForwardingProperties(nativePrototype, wrapperPrototype) {
  function registerInstanceProperties (line 128) | function registerInstanceProperties(wrapperPrototype, instanceObject) {
  function isEventHandlerName (line 138) | function isEventHandlerName(name) {
  function isIdentifierName (line 141) | function isIdentifierName(name) {
  function getGetter (line 144) | function getGetter(name) {
  function getSetter (line 149) | function getSetter(name) {
  function getMethod (line 154) | function getMethod(name) {
  function getDescriptor (line 159) | function getDescriptor(source, name) {
  function installProperty (line 170) | function installProperty(source, target, allowMethod, opt_blacklist) {
  function register (line 199) | function register(nativeConstructor, wrapperConstructor, opt_instance) {
  function registerInternal (line 204) | function registerInternal(nativePrototype, wrapperConstructor, opt_insta...
  function isWrapperFor (line 214) | function isWrapperFor(wrapperConstructor, nativeConstructor) {
  function registerObject (line 217) | function registerObject(object) {
  function createWrapperConstructor (line 224) | function createWrapperConstructor(superWrapperConstructor) {
  function isWrapper (line 233) | function isWrapper(object) {
  function isNative (line 236) | function isNative(object) {
  function wrap (line 239) | function wrap(impl) {
  function unwrap (line 244) | function unwrap(wrapper) {
  function unsafeUnwrap (line 249) | function unsafeUnwrap(wrapper) {
  function setWrapper (line 252) | function setWrapper(impl, wrapper) {
  function unwrapIfNeeded (line 256) | function unwrapIfNeeded(object) {
  function wrapIfNeeded (line 259) | function wrapIfNeeded(object) {
  function rewrap (line 262) | function rewrap(node, wrapper) {
  function defineGetter (line 273) | function defineGetter(constructor, name, getter) {
  function defineWrapGetter (line 277) | function defineWrapGetter(constructor, name) {
  function forwardMethodsToWrapper (line 282) | function forwardMethodsToWrapper(constructors, names) {
  function newSplice (line 316) | function newSplice(index, removed, addedCount) {
  function ArraySplice (line 327) | function ArraySplice() {}
  function handle (line 477) | function handle() {
  function setEndOfMicrotask (line 499) | function setEndOfMicrotask(func) {
  function scheduleCallback (line 516) | function scheduleCallback(observer) {
  function notifyObservers (line 524) | function notifyObservers() {
  function MutationRecord (line 543) | function MutationRecord(type, target) {
  function registerTransientObservers (line 554) | function registerTransientObservers(ancestor, node) {
  function removeTransientObserversFor (line 564) | function removeTransientObserversFor(observer) {
  function enqueueMutation (line 575) | function enqueueMutation(target, type, data) {
  function MutationObserverOptions (line 615) | function MutationObserverOptions(options) {
  function MutationObserver (line 640) | function MutationObserver(callback) {
  function Registration (line 687) | function Registration(observer, target, options) {
  function TreeScope (line 725) | function TreeScope(root, parent) {
  method renderer (line 730) | get renderer() {
  function setTreeScope (line 743) | function setTreeScope(node, treeScope) {
  function getTreeScope (line 754) | function getTreeScope(node) {
  function isShadowRoot (line 792) | function isShadowRoot(node) {
  function rootOfNode (line 795) | function rootOfNode(node) {
  function getEventPath (line 798) | function getEventPath(node, event) {
  function eventMustBeStopped (line 830) | function eventMustBeStopped(event) {
  function isShadowInsertionPoint (line 846) | function isShadowInsertionPoint(node) {
  function getDestinationInsertionPoints (line 849) | function getDestinationInsertionPoints(node) {
  function eventRetargetting (line 852) | function eventRetargetting(path, currentTarget) {
  function getTreeScopeAncestors (line 865) | function getTreeScopeAncestors(treeScope) {
  function lowestCommonInclusiveAncestor (line 872) | function lowestCommonInclusiveAncestor(tsA, tsB) {
  function getTreeScopeRoot (line 883) | function getTreeScopeRoot(ts) {
  function relatedTargetResolution (line 887) | function relatedTargetResolution(event, currentTarget, relatedTarget) {
  function inSameTree (line 904) | function inSameTree(a, b) {
  function dispatchOriginalEvent (line 912) | function dispatchOriginalEvent(originalEvent) {
  function isLoadLikeEvent (line 922) | function isLoadLikeEvent(event) {
  function dispatchEvent (line 931) | function dispatchEvent(event, originalWrapperTarget) {
  function dispatchCapturing (line 968) | function dispatchCapturing(event, eventPath, win, overrideTarget) {
  function dispatchAtTarget (line 978) | function dispatchAtTarget(event, eventPath, win, overrideTarget) {
  function dispatchBubbling (line 983) | function dispatchBubbling(event, eventPath, win, overrideTarget) {
  function invoke (line 992) | function invoke(currentTarget, event, phase, eventPath, overrideTarget) {
  function Listener (line 1048) | function Listener(type, handler, capture) {
  method removed (line 1057) | get removed() {
  function Event (line 1069) | function Event(type, options) {
  method target (line 1081) | get target() {
  method currentTarget (line 1084) | get currentTarget() {
  method eventPhase (line 1087) | get eventPhase() {
  method path (line 1090) | get path() {
  function unwrapOptions (line 1104) | function unwrapOptions(options) {
  function registerGenericEvent (line 1112) | function registerGenericEvent(name, SuperEvent, prototype) {
  method relatedTarget (line 1131) | get relatedTarget() {
  function getInitFunction (line 1137) | function getInitFunction(name, relatedTargetIndex) {
  function constructEvent (line 1161) | function constructEvent(OriginalEvent, name, type, options) {
  function BeforeUnloadEvent (line 1210) | function BeforeUnloadEvent(impl) {
  method returnValue (line 1215) | get returnValue() {
  method returnValue (line 1218) | set returnValue(v) {
  function isValidListener (line 1223) | function isValidListener(fun) {
  function isMutationEvent (line 1227) | function isMutationEvent(type) {
  function EventTarget (line 1243) | function EventTarget(impl) {
  function getTargetToListenAt (line 1255) | function getTargetToListenAt(wrapper) {
  function hasListener (line 1313) | function hasListener(node, type) {
  function hasListenerInAncestors (line 1322) | function hasListenerInAncestors(target, type) {
  function wrapEventTargetMethods (line 1329) | function wrapEventTargetMethods(constructors) {
  function elementFromPoint (line 1333) | function elementFromPoint(self, document, x, y) {
  function getEventHandlerGetter (line 1342) | function getEventHandlerGetter(name) {
  function getEventHandlerSetter (line 1348) | function getEventHandlerSetter(name) {
  function nonEnum (line 1403) | function nonEnum(obj, prop) {
  function Touch (line 1406) | function Touch(impl) {
  method target (line 1410) | get target() {
  function TouchList (line 1425) | function TouchList() {
  function wrapTouchList (line 1434) | function wrapTouchList(nativeTouchList) {
  function TouchEvent (line 1442) | function TouchEvent(impl) {
  method touches (line 1447) | get touches() {
  method targetTouches (line 1450) | get targetTouches() {
  method changedTouches (line 1453) | get changedTouches() {
  function nonEnum (line 1473) | function nonEnum(obj, prop) {
  function NodeList (line 1476) | function NodeList() {
  function wrapNodeList (line 1486) | function wrapNodeList(list) {
  function addWrapNodeListMethod (line 1495) | function addWrapNodeListMethod(wrapperConstructor, name) {
  function assertIsNodeWrapper (line 1531) | function assertIsNodeWrapper(node) {
  function createOneElementNodeList (line 1534) | function createOneElementNodeList(node) {
  function enqueueRemovalForInsertedNodes (line 1541) | function enqueueRemovalForInsertedNodes(node, parent, nodes) {
  function enqueueRemovalForInsertedDocumentFragment (line 1548) | function enqueueRemovalForInsertedDocumentFragment(df, nodes) {
  function collectNodes (line 1553) | function collectNodes(node, parentNode, previousNode, nextNode) {
  function collectNodesNative (line 1582) | function collectNodesNative(node) {
  function collectNodesForDocumentFragment (line 1589) | function collectNodesForDocumentFragment(node) {
  function snapshotNodeList (line 1599) | function snapshotNodeList(nodeList) {
  function nodeWasAdded (line 1602) | function nodeWasAdded(node, treeScope) {
  function nodesWereAdded (line 1606) | function nodesWereAdded(nodes, parent) {
  function nodeWasRemoved (line 1612) | function nodeWasRemoved(node) {
  function nodesWereRemoved (line 1615) | function nodesWereRemoved(nodes) {
  function ensureSameOwnerDocument (line 1620) | function ensureSameOwnerDocument(parent, child) {
  function adoptNodesIfNeeded (line 1624) | function adoptNodesIfNeeded(owner, nodes) {
  function unwrapNodesForInsertion (line 1632) | function unwrapNodesForInsertion(owner, nodes) {
  function clearChildNodes (line 1642) | function clearChildNodes(wrapper) {
  function removeAllChildNodes (line 1653) | function removeAllChildNodes(wrapper) {
  function invalidateParent (line 1677) | function invalidateParent(node) {
  function cleanupNodes (line 1681) | function cleanupNodes(nodes) {
  function cloneNode (line 1689) | function cloneNode(node, deep, opt_doc) {
  function contains (line 1705) | function contains(self, child) {
  function Node (line 1713) | function Node(original) {
  method parentNode (line 1884) | get parentNode() {
  method firstChild (line 1887) | get firstChild() {
  method lastChild (line 1890) | get lastChild() {
  method nextSibling (line 1893) | get nextSibling() {
  method previousSibling (line 1896) | get previousSibling() {
  method parentElement (line 1899) | get parentElement() {
  method textContent (line 1906) | get textContent() {
  method textContent (line 1915) | set textContent(textContent) {
  method childNodes (line 1936) | get childNodes() {
  function filterNodeList (line 2016) | function filterNodeList(list, index, result, deep) {
  function shimSelector (line 2030) | function shimSelector(selector) {
  function findOne (line 2033) | function findOne(node, selector) {
  function matchesSelector (line 2043) | function matchesSelector(el, selector) {
  function matchesTagName (line 2047) | function matchesTagName(el, localName, localNameLowerCase) {
  function matchesEveryThing (line 2051) | function matchesEveryThing() {
  function matchesLocalNameOnly (line 2054) | function matchesLocalNameOnly(el, ns, localName) {
  function matchesNameSpace (line 2057) | function matchesNameSpace(el, ns) {
  function matchesLocalNameNS (line 2060) | function matchesLocalNameNS(el, ns, localName) {
  function findElements (line 2063) | function findElements(node, index, result, p, arg0, arg1) {
  function querySelectorAllFiltered (line 2072) | function querySelectorAllFiltered(p, index, result, selector, deep) {
  function getElementsByTagNameFiltered (line 2122) | function getElementsByTagNameFiltered(p, index, result, localName, lower...
  function getElementsByTagNameNSFiltered (line 2137) | function getElementsByTagNameNSFiltered(p, index, result, ns, localName) {
  function forwardElement (line 2181) | function forwardElement(node) {
  function backwardsElement (line 2187) | function backwardsElement(node) {
  method firstElementChild (line 2194) | get firstElementChild() {
  method lastElementChild (line 2197) | get lastElementChild() {
  method childElementCount (line 2200) | get childElementCount() {
  method children (line 2207) | get children() {
  method nextElementSibling (line 2222) | get nextElementSibling() {
  method previousElementSibling (line 2225) | get previousElementSibling() {
  function CharacterData (line 2242) | function CharacterData(node) {
  method textContent (line 2247) | get textContent() {
  method textContent (line 2250) | set textContent(value) {
  method data (line 2253) | get data() {
  method data (line 2256) | set data(value) {
  function toUInt32 (line 2275) | function toUInt32(x) {
  function Text (line 2279) | function Text(node) {
  function invalidateClass (line 2304) | function invalidateClass(el) {
  function DOMTokenList (line 2307) | function DOMTokenList(impl, ownerElement) {
  method length (line 2313) | get length() {
  function invalidateRendererBasedOnAttribute (line 2363) | function invalidateRendererBasedOnAttribute(element, name) {
  function enqueAttributeChange (line 2369) | function enqueAttributeChange(element, name, oldValue) {
  function Element (line 2377) | function Element(node) {
  method shadowRoot (line 2389) | get shadowRoot() {
  method classList (line 2407) | get classList() {
  method className (line 2414) | get className() {
  method className (line 2417) | set className(v) {
  method id (line 2420) | get id() {
  method id (line 2423) | set id(v) {
  function escapeReplace (line 2463) | function escapeReplace(c) {
  function escapeAttr (line 2481) | function escapeAttr(s) {
  function escapeData (line 2484) | function escapeData(s) {
  function makeSet (line 2487) | function makeSet(arr) {
  function getOuterHTML (line 2496) | function getOuterHTML(node, parentNode) {
  function getInnerHTML (line 2522) | function getInnerHTML(node) {
  function setInnerHTML (line 2530) | function setInnerHTML(node, value, opt_tagName) {
  function HTMLElement (line 2543) | function HTMLElement(node) {
  method innerHTML (line 2548) | get innerHTML() {
  method innerHTML (line 2551) | set innerHTML(value) {
  method outerHTML (line 2572) | get outerHTML() {
  method outerHTML (line 2575) | set outerHTML(value) {
  method hidden (line 2612) | get hidden() {
  method hidden (line 2615) | set hidden(v) {
  function frag (line 2623) | function frag(contextElement, html) {
  function getter (line 2633) | function getter(name) {
  function getterRequiresRendering (line 2639) | function getterRequiresRendering(name) {
  function getterAndSetterRequiresRendering (line 2643) | function getterAndSetterRequiresRendering(name) {
  function methodRequiresRendering (line 2655) | function methodRequiresRendering(name) {
  function HTMLCanvasElement (line 2680) | function HTMLCanvasElement(node) {
  function HTMLContentElement (line 2700) | function HTMLContentElement(node) {
  method select (line 2706) | get select() {
  method select (line 2709) | set select(value) {
  function HTMLFormElement (line 2729) | function HTMLFormElement(node) {
  method elements (line 2734) | get elements() {
  function HTMLImageElement (line 2749) | function HTMLImageElement(node) {
  function Image (line 2754) | function Image(width, height) {
  function HTMLShadowElement (line 2776) | function HTMLShadowElement(node) {
  function getTemplateContentsOwner (line 2795) | function getTemplateContentsOwner(doc) {
  function extractContent (line 2807) | function extractContent(templateElement) {
  function HTMLTemplateElement (line 2817) | function HTMLTemplateElement(node) {
  method content (line 2827) | get content() {
  function HTMLMediaElement (line 2842) | function HTMLMediaElement(node) {
  function HTMLAudioElement (line 2858) | function HTMLAudioElement(node) {
  function Audio (line 2863) | function Audio(src) {
  function trimText (line 2887) | function trimText(s) {
  function HTMLOptionElement (line 2890) | function HTMLOptionElement(node) {
  method text (line 2895) | get text() {
  method text (line 2898) | set text(value) {
  method form (line 2901) | get form() {
  function Option (line 2906) | function Option(text, value, defaultSelected, selected) {
  function HTMLSelectElement (line 2931) | function HTMLSelectElement(node) {
  method form (line 2948) | get form() {
  function HTMLTableElement (line 2965) | function HTMLTableElement(node) {
  method caption (line 2970) | get caption() {
  method tHead (line 2976) | get tHead() {
  method tFoot (line 2985) | get tFoot() {
  method tBodies (line 2988) | get tBodies() {
  method rows (line 2994) | get rows() {
  function HTMLTableSectionElement (line 3014) | function HTMLTableSectionElement(node) {
  method rows (line 3020) | get rows() {
  function HTMLTableRowElement (line 3040) | function HTMLTableRowElement(node) {
  method cells (line 3045) | get cells() {
  function HTMLUnknownElement (line 3065) | function HTMLUnknownElement(node) {
  function SVGUseElement (line 3113) | function SVGUseElement(impl) {
  method instanceRoot (line 3119) | get instanceRoot() {
  method animatedInstanceRoot (line 3122) | get animatedInstanceRoot() {
  function SVGElementInstance (line 3140) | function SVGElementInstance(impl) {
  method correspondingElement (line 3145) | get correspondingElement() {
  method correspondingUseElement (line 3148) | get correspondingUseElement() {
  method parentNode (line 3151) | get parentNode() {
  method childNodes (line 3154) | get childNodes() {
  method firstChild (line 3157) | get firstChild() {
  method lastChild (line 3160) | get lastChild() {
  method previousSibling (line 3163) | get previousSibling() {
  method nextSibling (line 3166) | get nextSibling() {
  function CanvasRenderingContext2D (line 3184) | function CanvasRenderingContext2D(impl) {
  method canvas (line 3188) | get canvas() {
  function WebGLRenderingContext (line 3214) | function WebGLRenderingContext(impl) {
  method canvas (line 3218) | get canvas() {
  function Range (line 3247) | function Range(impl) {
  method startContainer (line 3251) | get startContainer() {
  method endContainer (line 3254) | get endContainer() {
  method commonAncestorContainer (line 3257) | get commonAncestorContainer() {
  function ShadowRoot (line 3355) | function ShadowRoot(hostWrapper) {
  method innerHTML (line 3367) | get innerHTML() {
  method innerHTML (line 3370) | set innerHTML(value) {
  method olderShadowRoot (line 3374) | get olderShadowRoot() {
  method host (line 3377) | get host() {
  function updateWrapperUpAndSideways (line 3409) | function updateWrapperUpAndSideways(wrapper) {
  function updateWrapperDown (line 3414) | function updateWrapperDown(wrapper) {
  function updateAllChildNodes (line 3418) | function updateAllChildNodes(parentNodeWrapper) {
  function insertBefore (line 3425) | function insertBefore(parentNodeWrapper, newChildWrapper, refChildWrappe...
  function remove (line 3442) | function remove(nodeWrapper) {
  function resetDistributedNodes (line 3457) | function resetDistributedNodes(insertionPoint) {
  function getDistributedNodes (line 3460) | function getDistributedNodes(insertionPoint) {
  function getChildNodesSnapshot (line 3465) | function getChildNodesSnapshot(node) {
  function renderAllPending (line 3475) | function renderAllPending() {
  function handleRequestAnimationFrame (line 3484) | function handleRequestAnimationFrame() {
  function getRendererForHost (line 3488) | function getRendererForHost(host) {
  function getShadowRootAncestor (line 3496) | function getShadowRootAncestor(node) {
  function getRendererForShadowRoot (line 3501) | function getRendererForShadowRoot(shadowRoot) {
  function RenderNode (line 3508) | function RenderNode(node) {
  function ShadowRenderer (line 3555) | function ShadowRenderer(host) {
  method parentRenderer (line 3573) | get parentRenderer() {
  function poolPopulation (line 3702) | function poolPopulation(node) {
  function getShadowInsertionPoint (line 3713) | function getShadowInsertionPoint(node) {
  function destributeNodeInto (line 3722) | function destributeNodeInto(child, insertionPoint) {
  function getDestinationInsertionPoints (line 3727) | function getDestinationInsertionPoints(node) {
  function resetDestinationInsertionPoints (line 3730) | function resetDestinationInsertionPoints(node) {
  function matches (line 3734) | function matches(node, contentElement) {
  function isFinalDestination (line 3747) | function isFinalDestination(insertionPoint, node) {
  function isInsertionPoint (line 3751) | function isInsertionPoint(node) {
  function isShadowHost (line 3754) | function isShadowHost(shadowHost) {
  function getShadowTrees (line 3757) | function getShadowTrees(host) {
  function render (line 3764) | function render(host) {
  function createWrapperConstructor (line 3810) | function createWrapperConstructor(name) {
  function Selection (line 3837) | function Selection(impl) {
  method anchorNode (line 3841) | get anchorNode() {
  method focusNode (line 3844) | get focusNode() {
  function Document (line 3901) | function Document(node) {
  function wrapMethod (line 3909) | function wrapMethod(name) {
  function adoptNodeNoRemove (line 3917) | function adoptNodeNoRemove(node, doc) {
  function adoptSubtree (line 3921) | function adoptSubtree(node, doc) {
  function adoptOlderShadowRoots (line 3928) | function adoptOlderShadowRoots(shadowRoot, doc) {
  function CustomElementConstructor (line 3995) | function CustomElementConstructor(node) {
  method implementation (line 4020) | get implementation() {
  method defaultView (line 4027) | get defaultView() {
  function DOMImplementation (line 4034) | function DOMImplementation(impl) {
  function wrapImplMethod (line 4037) | function wrapImplMethod(constructor, name) {
  function forwardImplMethod (line 4043) | function forwardImplMethod(constructor, name) {
  function Window (line 4074) | function Window(impl) {
  method document (line 4108) | get document() {
  function FormData (line 4141) | function FormData(formElement) {
  function overrideConstructor (line 4236) | function overrideConstructor(tagName) {

FILE: bower_components/webcomponentsjs/webcomponents-lite.js
  function scheduleCallback (line 117) | function scheduleCallback(observer) {
  function wrapIfNeeded (line 124) | function wrapIfNeeded(node) {
  function dispatchCallbacks (line 127) | function dispatchCallbacks() {
  function removeTransientObserversFor (line 145) | function removeTransientObserversFor(observer) {
  function forEachAncestorAndObserverEnqueueRecord (line 154) | function forEachAncestorAndObserverEnqueueRecord(target, callback) {
  function JsMutationObserver (line 169) | function JsMutationObserver(callback) {
  function MutationRecord (line 219) | function MutationRecord(type, target) {
  function copyMutationRecord (line 230) | function copyMutationRecord(original) {
  function getRecord (line 242) | function getRecord(type, target) {
  function getRecordWithOldValue (line 245) | function getRecordWithOldValue(oldValue) {
  function clearRecords (line 251) | function clearRecords() {
  function recordRepresentsCurrentMutation (line 254) | function recordRepresentsCurrentMutation(record) {
  function selectRecord (line 257) | function selectRecord(lastRecord, newRecord) {
  function Registration (line 262) | function Registration(observer, target, options) {
  function whenReady (line 413) | function whenReady(callback, doc) {
  function isDocumentReady (line 421) | function isDocumentReady(doc) {
  function whenDocumentReady (line 424) | function whenDocumentReady(callback, doc) {
  function markTargetLoaded (line 437) | function markTargetLoaded(event) {
  function watchImportsLoad (line 440) | function watchImportsLoad(callback, doc) {
  function isImportLoaded (line 468) | function isImportLoaded(link) {
  function handleImports (line 481) | function handleImports(nodes) {
  function isImport (line 488) | function isImport(element) {
  function handleImport (line 491) | function handleImport(element) {
  function nodeIsImport (line 919) | function nodeIsImport(elt) {
  function generateScriptDataUrl (line 922) | function generateScriptDataUrl(script) {
  function generateScriptContent (line 926) | function generateScriptContent(script) {
  function generateSourceMapHint (line 929) | function generateSourceMapHint(script) {
  function cloneStyle (line 937) | function cloneStyle(style) {
  function isImportLink (line 1002) | function isImportLink(elt) {
  function isLinkRel (line 1005) | function isLinkRel(elt, rel) {
  function makeDocument (line 1008) | function makeDocument(resource, url) {
  function bootstrap (line 1091) | function bootstrap() {
  function forSubtree (line 1124) | function forSubtree(node, cb) {
  function findAllElements (line 1133) | function findAllElements(node, find, data) {
  function forRoots (line 1149) | function forRoots(node, cb) {
  function forDocumentTree (line 1157) | function forDocumentTree(doc, cb) {
  function _forDocumentTree (line 1162) | function _forDocumentTree(doc, cb) {
  function addedNode (line 1184) | function addedNode(node) {
  function added (line 1187) | function added(node) {
  function addedSubtree (line 1193) | function addedSubtree(node) {
  function attachedNode (line 1200) | function attachedNode(node) {
  function deferMutation (line 1212) | function deferMutation(fn) {
  function takeMutations (line 1219) | function takeMutations() {
  function attached (line 1227) | function attached(element) {
  function _attached (line 1236) | function _attached(element) {
  function detachedNode (line 1246) | function detachedNode(node) {
  function detached (line 1252) | function detached(element) {
  function _detached (line 1261) | function _detached(element) {
  function inDocument (line 1271) | function inDocument(element) {
  function watchShadow (line 1281) | function watchShadow(node) {
  function handler (line 1291) | function handler(mutations) {
  function takeRecords (line 1324) | function takeRecords(node) {
  function observe (line 1339) | function observe(inRoot) {
  function upgradeDocument (line 1350) | function upgradeDocument(doc) {
  function upgradeDocumentTree (line 1357) | function upgradeDocumentTree(doc) {
  function upgrade (line 1376) | function upgrade(node) {
  function upgradeWithDefinition (line 1389) | function upgradeWithDefinition(element, definition) {
  function implementPrototype (line 1402) | function implementPrototype(element, definition) {
  function customMixin (line 1410) | function customMixin(inTarget, inSrc, inNative) {
  function created (line 1424) | function created(element) {
  function register (line 1440) | function register(name, options) {
  function overrideAttributeApi (line 1472) | function overrideAttributeApi(prototype) {
  function changeAttribute (line 1486) | function changeAttribute(name, value, operation) {
  function isReservedTag (line 1495) | function isReservedTag(name) {
  function ancestry (line 1503) | function ancestry(extnds) {
  function resolveTagName (line 1510) | function resolveTagName(definition) {
  function resolvePrototypeChain (line 1520) | function resolvePrototypeChain(definition) {
  function instantiate (line 1539) | function instantiate(definition) {
  function getRegisteredDefinition (line 1543) | function getRegisteredDefinition(name) {
  function registerDefinition (line 1548) | function registerDefinition(name, definition) {
  function generateConstructor (line 1551) | function generateConstructor(definition) {
  function createElementNS (line 1557) | function createElementNS(namespace, tag, typeExtension) {
  function createElement (line 1564) | function createElement(tag, typeExtension) {
  function cloneNode (line 1586) | function cloneNode(deep) {
  function bootstrap (line 1651) | function bootstrap() {

FILE: bower_components/webcomponentsjs/webcomponents.js
  function detectEval (line 97) | function detectEval() {
  function assert (line 112) | function assert(b) {
  function mixin (line 118) | function mixin(to, from) {
  function mixinStatics (line 126) | function mixinStatics(to, from) {
  function oneOf (line 143) | function oneOf(object, propertyNames) {
  function defineNonEnumerableDataProperty (line 154) | function defineNonEnumerableDataProperty(object, name, value) {
  function getWrapperConstructor (line 159) | function getWrapperConstructor(node) {
  function addForwardingProperties (line 168) | function addForwardingProperties(nativePrototype, wrapperPrototype) {
  function registerInstanceProperties (line 171) | function registerInstanceProperties(wrapperPrototype, instanceObject) {
  function isEventHandlerName (line 181) | function isEventHandlerName(name) {
  function isIdentifierName (line 184) | function isIdentifierName(name) {
  function getGetter (line 187) | function getGetter(name) {
  function getSetter (line 192) | function getSetter(name) {
  function getMethod (line 197) | function getMethod(name) {
  function getDescriptor (line 202) | function getDescriptor(source, name) {
  function installProperty (line 213) | function installProperty(source, target, allowMethod, opt_blacklist) {
  function register (line 242) | function register(nativeConstructor, wrapperConstructor, opt_instance) {
  function registerInternal (line 247) | function registerInternal(nativePrototype, wrapperConstructor, opt_insta...
  function isWrapperFor (line 257) | function isWrapperFor(wrapperConstructor, nativeConstructor) {
  function registerObject (line 260) | function registerObject(object) {
  function createWrapperConstructor (line 267) | function createWrapperConstructor(superWrapperConstructor) {
  function isWrapper (line 276) | function isWrapper(object) {
  function isNative (line 279) | function isNative(object) {
  function wrap (line 282) | function wrap(impl) {
  function unwrap (line 287) | function unwrap(wrapper) {
  function unsafeUnwrap (line 292) | function unsafeUnwrap(wrapper) {
  function setWrapper (line 295) | function setWrapper(impl, wrapper) {
  function unwrapIfNeeded (line 299) | function unwrapIfNeeded(object) {
  function wrapIfNeeded (line 302) | function wrapIfNeeded(object) {
  function rewrap (line 305) | function rewrap(node, wrapper) {
  function defineGetter (line 316) | function defineGetter(constructor, name, getter) {
  function defineWrapGetter (line 320) | function defineWrapGetter(constructor, name) {
  function forwardMethodsToWrapper (line 325) | function forwardMethodsToWrapper(constructors, names) {
  function newSplice (line 358) | function newSplice(index, removed, addedCount) {
  function ArraySplice (line 369) | function ArraySplice() {}
  function handle (line 518) | function handle() {
  function setEndOfMicrotask (line 540) | function setEndOfMicrotask(func) {
  function scheduleCallback (line 556) | function scheduleCallback(observer) {
  function notifyObservers (line 564) | function notifyObservers() {
  function MutationRecord (line 583) | function MutationRecord(type, target) {
  function registerTransientObservers (line 594) | function registerTransientObservers(ancestor, node) {
  function removeTransientObserversFor (line 604) | function removeTransientObserversFor(observer) {
  function enqueueMutation (line 615) | function enqueueMutation(target, type, data) {
  function MutationObserverOptions (line 655) | function MutationObserverOptions(options) {
  function MutationObserver (line 680) | function MutationObserver(callback) {
  function Registration (line 727) | function Registration(observer, target, options) {
  function TreeScope (line 764) | function TreeScope(root, parent) {
  method renderer (line 769) | get renderer() {
  function setTreeScope (line 782) | function setTreeScope(node, treeScope) {
  function getTreeScope (line 793) | function getTreeScope(node) {
  function isShadowRoot (line 830) | function isShadowRoot(node) {
  function rootOfNode (line 833) | function rootOfNode(node) {
  function getEventPath (line 836) | function getEventPath(node, event) {
  function eventMustBeStopped (line 868) | function eventMustBeStopped(event) {
  function isShadowInsertionPoint (line 884) | function isShadowInsertionPoint(node) {
  function getDestinationInsertionPoints (line 887) | function getDestinationInsertionPoints(node) {
  function eventRetargetting (line 890) | function eventRetargetting(path, currentTarget) {
  function getTreeScopeAncestors (line 903) | function getTreeScopeAncestors(treeScope) {
  function lowestCommonInclusiveAncestor (line 910) | function lowestCommonInclusiveAncestor(tsA, tsB) {
  function getTreeScopeRoot (line 921) | function getTreeScopeRoot(ts) {
  function relatedTargetResolution (line 925) | function relatedTargetResolution(event, currentTarget, relatedTarget) {
  function inSameTree (line 942) | function inSameTree(a, b) {
  function dispatchOriginalEvent (line 950) | function dispatchOriginalEvent(originalEvent) {
  function isLoadLikeEvent (line 960) | function isLoadLikeEvent(event) {
  function dispatchEvent (line 969) | function dispatchEvent(event, originalWrapperTarget) {
  function dispatchCapturing (line 1006) | function dispatchCapturing(event, eventPath, win, overrideTarget) {
  function dispatchAtTarget (line 1016) | function dispatchAtTarget(event, eventPath, win, overrideTarget) {
  function dispatchBubbling (line 1021) | function dispatchBubbling(event, eventPath, win, overrideTarget) {
  function invoke (line 1030) | function invoke(currentTarget, event, phase, eventPath, overrideTarget) {
  function Listener (line 1086) | function Listener(type, handler, capture) {
  method removed (line 1095) | get removed() {
  function Event (line 1107) | function Event(type, options) {
  method target (line 1119) | get target() {
  method currentTarget (line 1122) | get currentTarget() {
  method eventPhase (line 1125) | get eventPhase() {
  method path (line 1128) | get path() {
  function unwrapOptions (line 1142) | function unwrapOptions(options) {
  function registerGenericEvent (line 1150) | function registerGenericEvent(name, SuperEvent, prototype) {
  method relatedTarget (line 1169) | get relatedTarget() {
  function getInitFunction (line 1175) | function getInitFunction(name, relatedTargetIndex) {
  function constructEvent (line 1199) | function constructEvent(OriginalEvent, name, type, options) {
  function BeforeUnloadEvent (line 1248) | function BeforeUnloadEvent(impl) {
  method returnValue (line 1253) | get returnValue() {
  method returnValue (line 1256) | set returnValue(v) {
  function isValidListener (line 1261) | function isValidListener(fun) {
  function isMutationEvent (line 1265) | function isMutationEvent(type) {
  function EventTarget (line 1281) | function EventTarget(impl) {
  function getTargetToListenAt (line 1293) | function getTargetToListenAt(wrapper) {
  function hasListener (line 1351) | function hasListener(node, type) {
  function hasListenerInAncestors (line 1360) | function hasListenerInAncestors(target, type) {
  function wrapEventTargetMethods (line 1367) | function wrapEventTargetMethods(constructors) {
  function elementFromPoint (line 1371) | function elementFromPoint(self, document, x, y) {
  function getEventHandlerGetter (line 1380) | function getEventHandlerGetter(name) {
  function getEventHandlerSetter (line 1386) | function getEventHandlerSetter(name) {
  function nonEnum (line 1440) | function nonEnum(obj, prop) {
  function Touch (line 1443) | function Touch(impl) {
  method target (line 1447) | get target() {
  function TouchList (line 1462) | function TouchList() {
  function wrapTouchList (line 1471) | function wrapTouchList(nativeTouchList) {
  function TouchEvent (line 1479) | function TouchEvent(impl) {
  method touches (line 1484) | get touches() {
  method targetTouches (line 1487) | get targetTouches() {
  method changedTouches (line 1490) | get changedTouches() {
  function nonEnum (line 1509) | function nonEnum(obj, prop) {
  function NodeList (line 1512) | function NodeList() {
  function wrapNodeList (line 1522) | function wrapNodeList(list) {
  function addWrapNodeListMethod (line 1531) | function addWrapNodeListMethod(wrapperConstructor, name) {
  function assertIsNodeWrapper (line 1565) | function assertIsNodeWrapper(node) {
  function createOneElementNodeList (line 1568) | function createOneElementNodeList(node) {
  function enqueueRemovalForInsertedNodes (line 1575) | function enqueueRemovalForInsertedNodes(node, parent, nodes) {
  function enqueueRemovalForInsertedDocumentFragment (line 1582) | function enqueueRemovalForInsertedDocumentFragment(df, nodes) {
  function collectNodes (line 1587) | function collectNodes(node, parentNode, previousNode, nextNode) {
  function collectNodesNative (line 1616) | function collectNodesNative(node) {
  function collectNodesForDocumentFragment (line 1623) | function collectNodesForDocumentFragment(node) {
  function snapshotNodeList (line 1633) | function snapshotNodeList(nodeList) {
  function nodeWasAdded (line 1636) | function nodeWasAdded(node, treeScope) {
  function nodesWereAdded (line 1640) | function nodesWereAdded(nodes, parent) {
  function nodeWasRemoved (line 1646) | function nodeWasRemoved(node) {
  function nodesWereRemoved (line 1649) | function nodesWereRemoved(nodes) {
  function ensureSameOwnerDocument (line 1654) | function ensureSameOwnerDocument(parent, child) {
  function adoptNodesIfNeeded (line 1658) | function adoptNodesIfNeeded(owner, nodes) {
  function unwrapNodesForInsertion (line 1666) | function unwrapNodesForInsertion(owner, nodes) {
  function clearChildNodes (line 1676) | function clearChildNodes(wrapper) {
  function removeAllChildNodes (line 1687) | function removeAllChildNodes(wrapper) {
  function invalidateParent (line 1711) | function invalidateParent(node) {
  function cleanupNodes (line 1715) | function cleanupNodes(nodes) {
  function cloneNode (line 1723) | function cloneNode(node, deep, opt_doc) {
  function contains (line 1739) | function contains(self, child) {
  function Node (line 1747) | function Node(original) {
  method parentNode (line 1918) | get parentNode() {
  method firstChild (line 1921) | get firstChild() {
  method lastChild (line 1924) | get lastChild() {
  method nextSibling (line 1927) | get nextSibling() {
  method previousSibling (line 1930) | get previousSibling() {
  method parentElement (line 1933) | get parentElement() {
  method textContent (line 1940) | get textContent() {
  method textContent (line 1949) | set textContent(textContent) {
  method childNodes (line 1970) | get childNodes() {
  function filterNodeList (line 2049) | function filterNodeList(list, index, result, deep) {
  function shimSelector (line 2063) | function shimSelector(selector) {
  function findOne (line 2066) | function findOne(node, selector) {
  function matchesSelector (line 2076) | function matchesSelector(el, selector) {
  function matchesTagName (line 2080) | function matchesTagName(el, localName, localNameLowerCase) {
  function matchesEveryThing (line 2084) | function matchesEveryThing() {
  function matchesLocalNameOnly (line 2087) | function matchesLocalNameOnly(el, ns, localName) {
  function matchesNameSpace (line 2090) | function matchesNameSpace(el, ns) {
  function matchesLocalNameNS (line 2093) | function matchesLocalNameNS(el, ns, localName) {
  function findElements (line 2096) | function findElements(node, index, result, p, arg0, arg1) {
  function querySelectorAllFiltered (line 2105) | function querySelectorAllFiltered(p, index, result, selector, deep) {
  function getElementsByTagNameFiltered (line 2155) | function getElementsByTagNameFiltered(p, index, result, localName, lower...
  function getElementsByTagNameNSFiltered (line 2170) | function getElementsByTagNameNSFiltered(p, index, result, ns, localName) {
  function forwardElement (line 2213) | function forwardElement(node) {
  function backwardsElement (line 2219) | function backwardsElement(node) {
  method firstElementChild (line 2226) | get firstElementChild() {
  method lastElementChild (line 2229) | get lastElementChild() {
  method childElementCount (line 2232) | get childElementCount() {
  method children (line 2239) | get children() {
  method nextElementSibling (line 2254) | get nextElementSibling() {
  method previousElementSibling (line 2257) | get previousElementSibling() {
  function CharacterData (line 2273) | function CharacterData(node) {
  method textContent (line 2278) | get textContent() {
  method textContent (line 2281) | set textContent(value) {
  method data (line 2284) | get data() {
  method data (line 2287) | set data(value) {
  function toUInt32 (line 2305) | function toUInt32(x) {
  function Text (line 2309) | function Text(node) {
  function invalidateClass (line 2333) | function invalidateClass(el) {
  function DOMTokenList (line 2336) | function DOMTokenList(impl, ownerElement) {
  method length (line 2342) | get length() {
  function invalidateRendererBasedOnAttribute (line 2391) | function invalidateRendererBasedOnAttribute(element, name) {
  function enqueAttributeChange (line 2397) | function enqueAttributeChange(element, name, oldValue) {
  function Element (line 2405) | function Element(node) {
  method shadowRoot (line 2417) | get shadowRoot() {
  method classList (line 2435) | get classList() {
  method className (line 2442) | get className() {
  method className (line 2445) | set className(v) {
  method id (line 2448) | get id() {
  method id (line 2451) | set id(v) {
  function escapeReplace (line 2490) | function escapeReplace(c) {
  function escapeAttr (line 2508) | function escapeAttr(s) {
  function escapeData (line 2511) | function escapeData(s) {
  function makeSet (line 2514) | function makeSet(arr) {
  function getOuterHTML (line 2523) | function getOuterHTML(node, parentNode) {
  function getInnerHTML (line 2549) | function getInnerHTML(node) {
  function setInnerHTML (line 2557) | function setInnerHTML(node, value, opt_tagName) {
  function HTMLElement (line 2570) | function HTMLElement(node) {
  method innerHTML (line 2575) | get innerHTML() {
  method innerHTML (line 2578) | set innerHTML(value) {
  method outerHTML (line 2599) | get outerHTML() {
  method outerHTML (line 2602) | set outerHTML(value) {
  method hidden (line 2639) | get hidden() {
  method hidden (line 2642) | set hidden(v) {
  function frag (line 2650) | function frag(contextElement, html) {
  function getter (line 2660) | function getter(name) {
  function getterRequiresRendering (line 2666) | function getterRequiresRendering(name) {
  function getterAndSetterRequiresRendering (line 2670) | function getterAndSetterRequiresRendering(name) {
  function methodRequiresRendering (line 2682) | function methodRequiresRendering(name) {
  function HTMLCanvasElement (line 2706) | function HTMLCanvasElement(node) {
  function HTMLContentElement (line 2725) | function HTMLContentElement(node) {
  method select (line 2731) | get select() {
  method select (line 2734) | set select(value) {
  function HTMLFormElement (line 2753) | function HTMLFormElement(node) {
  method elements (line 2758) | get elements() {
  function HTMLImageElement (line 2772) | function HTMLImageElement(node) {
  function Image (line 2777) | function Image(width, height) {
  function HTMLShadowElement (line 2798) | function HTMLShadowElement(node) {
  function getTemplateContentsOwner (line 2816) | function getTemplateContentsOwner(doc) {
  function extractContent (line 2828) | function extractContent(templateElement) {
  function HTMLTemplateElement (line 2838) | function HTMLTemplateElement(node) {
  method content (line 2848) | get content() {
  function HTMLMediaElement (line 2862) | function HTMLMediaElement(node) {
  function HTMLAudioElement (line 2877) | function HTMLAudioElement(node) {
  function Audio (line 2882) | function Audio(src) {
  function trimText (line 2905) | function trimText(s) {
  function HTMLOptionElement (line 2908) | function HTMLOptionElement(node) {
  method text (line 2913) | get text() {
  method text (line 2916) | set text(value) {
  method form (line 2919) | get form() {
  function Option (line 2924) | function Option(text, value, defaultSelected, selected) {
  function HTMLSelectElement (line 2948) | function HTMLSelectElement(node) {
  method form (line 2965) | get form() {
  function HTMLTableElement (line 2981) | function HTMLTableElement(node) {
  method caption (line 2986) | get caption() {
  method tHead (line 2992) | get tHead() {
  method tFoot (line 3001) | get tFoot() {
  method tBodies (line 3004) | get tBodies() {
  method rows (line 3010) | get rows() {
  function HTMLTableSectionElement (line 3029) | function HTMLTableSectionElement(node) {
  method rows (line 3035) | get rows() {
  function HTMLTableRowElement (line 3054) | function HTMLTableRowElement(node) {
  method cells (line 3059) | get cells() {
  function HTMLUnknownElement (line 3078) | function HTMLUnknownElement(node) {
  function SVGUseElement (line 3124) | function SVGUseElement(impl) {
  method instanceRoot (line 3130) | get instanceRoot() {
  method animatedInstanceRoot (line 3133) | get animatedInstanceRoot() {
  function SVGElementInstance (line 3150) | function SVGElementInstance(impl) {
  method correspondingElement (line 3155) | get correspondingElement() {
  method correspondingUseElement (line 3158) | get correspondingUseElement() {
  method parentNode (line 3161) | get parentNode() {
  method childNodes (line 3164) | get childNodes() {
  method firstChild (line 3167) | get firstChild() {
  method lastChild (line 3170) | get lastChild() {
  method previousSibling (line 3173) | get previousSibling() {
  method nextSibling (line 3176) | get nextSibling() {
  function CanvasRenderingContext2D (line 3193) | function CanvasRenderingContext2D(impl) {
  method canvas (line 3197) | get canvas() {
  function WebGLRenderingContext (line 3222) | function WebGLRenderingContext(impl) {
  method canvas (line 3226) | get canvas() {
  function Range (line 3254) | function Range(impl) {
  method startContainer (line 3258) | get startContainer() {
  method endContainer (line 3261) | get endContainer() {
  method commonAncestorContainer (line 3264) | get commonAncestorContainer() {
  function ShadowRoot (line 3360) | function ShadowRoot(hostWrapper) {
  method innerHTML (line 3372) | get innerHTML() {
  method innerHTML (line 3375) | set innerHTML(value) {
  method olderShadowRoot (line 3379) | get olderShadowRoot() {
  method host (line 3382) | get host() {
  function updateWrapperUpAndSideways (line 3413) | function updateWrapperUpAndSideways(wrapper) {
  function updateWrapperDown (line 3418) | function updateWrapperDown(wrapper) {
  function updateAllChildNodes (line 3422) | function updateAllChildNodes(parentNodeWrapper) {
  function insertBefore (line 3429) | function insertBefore(parentNodeWrapper, newChildWrapper, refChildWrappe...
  function remove (line 3446) | function remove(nodeWrapper) {
  function resetDistributedNodes (line 3461) | function resetDistributedNodes(insertionPoint) {
  function getDistributedNodes (line 3464) | function getDistributedNodes(insertionPoint) {
  function getChildNodesSnapshot (line 3469) | function getChildNodesSnapshot(node) {
  function renderAllPending (line 3479) | function renderAllPending() {
  function handleRequestAnimationFrame (line 3488) | function handleRequestAnimationFrame() {
  function getRendererForHost (line 3492) | function getRendererForHost(host) {
  function getShadowRootAncestor (line 3500) | function getShadowRootAncestor(node) {
  function getRendererForShadowRoot (line 3505) | function getRendererForShadowRoot(shadowRoot) {
  function RenderNode (line 3512) | function RenderNode(node) {
  function ShadowRenderer (line 3559) | function ShadowRenderer(host) {
  method parentRenderer (line 3577) | get parentRenderer() {
  function poolPopulation (line 3706) | function poolPopulation(node) {
  function getShadowInsertionPoint (line 3717) | function getShadowInsertionPoint(node) {
  function destributeNodeInto (line 3726) | function destributeNodeInto(child, insertionPoint) {
  function getDestinationInsertionPoints (line 3731) | function getDestinationInsertionPoints(node) {
  function resetDestinationInsertionPoints (line 3734) | function resetDestinationInsertionPoints(node) {
  function matches (line 3738) | function matches(node, contentElement) {
  function isFinalDestination (line 3751) | function isFinalDestination(insertionPoint, node) {
  function isInsertionPoint (line 3755) | function isInsertionPoint(node) {
  function isShadowHost (line 3758) | function isShadowHost(shadowHost) {
  function getShadowTrees (line 3761) | function getShadowTrees(host) {
  function render (line 3768) | function render(host) {
  function createWrapperConstructor (line 3813) | function createWrapperConstructor(name) {
  function Selection (line 3839) | function Selection(impl) {
  method anchorNode (line 3843) | get anchorNode() {
  method focusNode (line 3846) | get focusNode() {
  function Document (line 3902) | function Document(node) {
  function wrapMethod (line 3910) | function wrapMethod(name) {
  function adoptNodeNoRemove (line 3918) | function adoptNodeNoRemove(node, doc) {
  function adoptSubtree (line 3922) | function adoptSubtree(node, doc) {
  function adoptOlderShadowRoots (line 3929) | function adoptOlderShadowRoots(shadowRoot, doc) {
  function CustomElementConstructor (line 3996) | function CustomElementConstructor(node) {
  method implementation (line 4021) | get implementation() {
  method defaultView (line 4028) | get defaultView() {
  function DOMImplementation (line 4035) | function DOMImplementation(impl) {
  function wrapImplMethod (line 4038) | function wrapImplMethod(constructor, name) {
  function forwardImplMethod (line 4044) | function forwardImplMethod(constructor, name) {
  function Window (line 4074) | function Window(impl) {
  method document (line 4108) | get document() {
  function FormData (line 4139) | function FormData(formElement) {
  function overrideConstructor (line 4232) | function overrideConstructor(tagName) {
  function stylesToCssText (line 4532) | function stylesToCssText(styles, preserveComments) {
  function cssTextToStyle (line 4542) | function cssTextToStyle(cssText) {
  function cssToRules (line 4547) | function cssToRules(cssText) {
  function initFrame (line 4563) | function initFrame() {
  function inFrame (line 4571) | function inFrame(fn) {
  function withCssRules (line 4580) | function withCssRules(cssText, callback) {
  function rulesToCss (line 4597) | function rulesToCss(cssRules) {
  function addCssToDocument (line 4603) | function addCssToDocument(cssText) {
  function addOwnSheet (line 4608) | function addOwnSheet(cssText, name) {
  function getSheet (line 4618) | function getSheet() {
  function scheduleCallback (line 4721) | function scheduleCallback(observer) {
  function wrapIfNeeded (line 4728) | function wrapIfNeeded(node) {
  function dispatchCallbacks (line 4731) | function dispatchCallbacks() {
  function removeTransientObserversFor (line 4749) | function removeTransientObserversFor(observer) {
  function forEachAncestorAndObserverEnqueueRecord (line 4758) | function forEachAncestorAndObserverEnqueueRecord(target, callback) {
  function JsMutationObserver (line 4773) | function JsMutationObserver(callback) {
  function MutationRecord (line 4823) | function MutationRecord(type, target) {
  function copyMutationRecord (line 4834) | function copyMutationRecord(original) {
  function getRecord (line 4846) | function getRecord(type, target) {
  function getRecordWithOldValue (line 4849) | function getRecordWithOldValue(oldValue) {
  function clearRecords (line 4855) | function clearRecords() {
  function recordRepresentsCurrentMutation (line 4858) | function recordRepresentsCurrentMutation(record) {
  function selectRecord (line 4861) | function selectRecord(lastRecord, newRecord) {
  function Registration (line 4866) | function Registration(observer, target, options) {
  function whenReady (line 5017) | function whenReady(callback, doc) {
  function isDocumentReady (line 5025) | function isDocumentReady(doc) {
  function whenDocumentReady (line 5028) | function whenDocumentReady(callback, doc) {
  function markTargetLoaded (line 5041) | function markTargetLoaded(event) {
  function watchImportsLoad (line 5044) | function watchImportsLoad(callback, doc) {
  function isImportLoaded (line 5072) | function isImportLoaded(link) {
  function handleImports (line 5085) | function handleImports(nodes) {
  function isImport (line 5092) | function isImport(element) {
  function handleImport (line 5095) | function handleImport(element) {
  function nodeIsImport (line 5523) | function nodeIsImport(elt) {
  function generateScriptDataUrl (line 5526) | function generateScriptDataUrl(script) {
  function generateScriptContent (line 5530) | function generateScriptContent(script) {
  function generateSourceMapHint (line 5533) | function generateSourceMapHint(script) {
  function cloneStyle (line 5541) | function cloneStyle(style) {
  function isImportLink (line 5606) | function isImportLink(elt) {
  function isLinkRel (line 5609) | function isLinkRel(elt, rel) {
  function makeDocument (line 5612) | function makeDocument(resource, url) {
  function bootstrap (line 5695) | function bootstrap() {
  function forSubtree (line 5728) | function forSubtree(node, cb) {
  function findAllElements (line 5737) | function findAllElements(node, find, data) {
  function forRoots (line 5753) | function forRoots(node, cb) {
  function forDocumentTree (line 5761) | function forDocumentTree(doc, cb) {
  function _forDocumentTree (line 5766) | function _forDocumentTree(doc, cb) {
  function addedNode (line 5788) | function addedNode(node) {
  function added (line 5791) | function added(node) {
  function addedSubtree (line 5797) | function addedSubtree(node) {
  function attachedNode (line 5804) | function attachedNode(node) {
  function deferMutation (line 5816) | function deferMutation(fn) {
  function takeMutations (line 5823) | function takeMutations() {
  function attached (line 5831) | function attached(element) {
  function _attached (line 5840) | function _attached(element) {
  function detachedNode (line 5850) | function detachedNode(node) {
  function detached (line 5856) | function detached(element) {
  function _detached (line 5865) | function _detached(element) {
  function inDocument (line 5875) | function inDocument(element) {
  function watchShadow (line 5885) | function watchShadow(node) {
  function handler (line 5895) | function handler(mutations) {
  function takeRecords (line 5928) | function takeRecords(node) {
  function observe (line 5943) | function observe(inRoot) {
  function upgradeDocument (line 5954) | function upgradeDocument(doc) {
  function upgradeDocumentTree (line 5961) | function upgradeDocumentTree(doc) {
  function upgrade (line 5980) | function upgrade(node) {
  function upgradeWithDefinition (line 5993) | function upgradeWithDefinition(element, definition) {
  function implementPrototype (line 6006) | function implementPrototype(element, definition) {
  function customMixin (line 6014) | function customMixin(inTarget, inSrc, inNative) {
  function created (line 6028) | function created(element) {
  function register (line 6044) | function register(name, options) {
  function overrideAttributeApi (line 6076) | function overrideAttributeApi(prototype) {
  function changeAttribute (line 6090) | function changeAttribute(name, value, operation) {
  function isReservedTag (line 6099) | function isReservedTag(name) {
  function ancestry (line 6107) | function ancestry(extnds) {
  function resolveTagName (line 6114) | function resolveTagName(definition) {
  function resolvePrototypeChain (line 6124) | function resolvePrototypeChain(definition) {
  function instantiate (line 6143) | function instantiate(definition) {
  function getRegisteredDefinition (line 6147) | function getRegisteredDefinition(name) {
  function registerDefinition (line 6152) | function registerDefinition(name, definition) {
  function generateConstructor (line 6155) | function generateConstructor(definition) {
  function createElementNS (line 6161) | function createElementNS(namespace, tag, typeExtension) {
  function createElement (line 6168) | function createElement(tag, typeExtension) {
  function cloneNode (line 6190) | function cloneNode(deep) {
  function bootstrap (line 6255) | function bootstrap() {
  function installPolymerWarning (line 6352) | function installPolymerWarning() {

FILE: js/app.js
  function showNewest (line 22) | function showNewest() {
Condensed preview — 254 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,854K chars).
[
  {
    "path": ".gitignore",
    "chars": 22,
    "preview": ".DS_Store\nnode_modules"
  },
  {
    "path": "LICENSE",
    "chars": 1073,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2014 PubNub\n\nPermission is hereby granted, free of charge, to any person obtaining "
  },
  {
    "path": "README.md",
    "chars": 2831,
    "preview": "*Note: I decided to separate a repo for the new Polymer 1.x Paper Chat, and it is available on [github.com/pubnub/polyme"
  },
  {
    "path": "bower.json",
    "chars": 737,
    "preview": "{\n  \"name\": \"paper-chat\",\n  \"version\": \"0.0.1\",\n  \"authors\": [\n    \"Tomomi Imura <tomomi@pubnub.com>\"\n  ],\n  \"descriptio"
  },
  {
    "path": "bower_components/core-component-page/.bower.json",
    "chars": 549,
    "preview": "{\n  \"name\": \"core-component-page\",\n  \"private\": true,\n  \"dependencies\": {\n    \"webcomponentsjs\": \"Polymer/webcomponentsj"
  },
  {
    "path": "bower_components/core-component-page/README.md",
    "chars": 304,
    "preview": "core-component-page\n===================\n\nSee the [component page](http://polymer-project.org/docs/elements/core-elements"
  },
  {
    "path": "bower_components/core-component-page/bower.json",
    "chars": 198,
    "preview": "{\n  \"name\": \"core-component-page\",\n  \"private\": true,\n  \"dependencies\": {\n    \"webcomponentsjs\": \"Polymer/webcomponentsj"
  },
  {
    "path": "bower_components/core-component-page/core-component-page.html",
    "chars": 141501,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/core-component-page/demo.html",
    "chars": 802,
    "preview": "<!doctype html>\r\n<!--\r\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\r\nThis code may only be used "
  },
  {
    "path": "bower_components/core-component-page/index.html",
    "chars": 749,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-drawer-panel/.bower.json",
    "chars": 555,
    "preview": "{\n  \"name\": \"core-drawer-panel\",\n  \"private\": true,\n  \"dependencies\": {\n    \"core-selector\": \"Polymer/core-selector#^0.5"
  },
  {
    "path": "bower_components/core-drawer-panel/README.md",
    "chars": 164,
    "preview": "core-drawer-panel\n==================\n\nSee the [component page](http://polymer-project.org/docs/elements/core-elements.ht"
  },
  {
    "path": "bower_components/core-drawer-panel/bower.json",
    "chars": 210,
    "preview": "{\n  \"name\": \"core-drawer-panel\",\n  \"private\": true,\n  \"dependencies\": {\n    \"core-selector\": \"Polymer/core-selector#^0.5"
  },
  {
    "path": "bower_components/core-drawer-panel/core-drawer-panel.css",
    "chars": 3445,
    "preview": "/*\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style l"
  },
  {
    "path": "bower_components/core-drawer-panel/core-drawer-panel.html",
    "chars": 11471,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/core-drawer-panel/demo.html",
    "chars": 1816,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-drawer-panel/index.html",
    "chars": 749,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-drawer-panel/metadata.html",
    "chars": 1302,
    "preview": "<!--\n    @license\n    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n    This code may only be use"
  },
  {
    "path": "bower_components/core-focusable/.bower.json",
    "chars": 473,
    "preview": "{\n  \"name\": \"core-focusable\",\n  \"private\": false,\n  \"dependencies\": {\n    \"polymer\": \"Polymer/polymer#^0.5.0\"\n  },\n  \"ve"
  },
  {
    "path": "bower_components/core-focusable/README.md",
    "chars": 176,
    "preview": "core-focusable\n==============\n\nowner: @morethanreal\n\nSee the [component page](http://polymer-project.org/docs/elements/c"
  },
  {
    "path": "bower_components/core-focusable/bower.json",
    "chars": 137,
    "preview": "{\n  \"name\": \"core-focusable\",\n  \"private\": false,\n  \"dependencies\": {\n    \"polymer\": \"Polymer/polymer#^0.5.0\"\n  },\n  \"ve"
  },
  {
    "path": "bower_components/core-focusable/core-focusable.html",
    "chars": 135,
    "preview": "<link href=\"../polymer/polymer.html\" rel=\"import\">\n\n<script src=\"polymer-mixin.js\"></script>\n<script src=\"core-focusable"
  },
  {
    "path": "bower_components/core-focusable/core-focusable.js",
    "chars": 3066,
    "preview": "/**\n * @group Polymer Mixins\n *\n * `Polymer.CoreFocusable` is a mixin for elements that the user can interact with.\n * E"
  },
  {
    "path": "bower_components/core-focusable/demo.html",
    "chars": 2203,
    "preview": "<!doctype html>\n<!--\nCopyright 2013 The Polymer Authors. All rights reserved.\nUse of this source code is governed by a B"
  },
  {
    "path": "bower_components/core-focusable/polymer-mixin.js",
    "chars": 899,
    "preview": "Polymer.mixin2 = function(prototype, mixin) {\n\n  // adds a single mixin to prototype\n\n  if (mixin.mixinPublish) {\n    pr"
  },
  {
    "path": "bower_components/core-header-panel/.bower.json",
    "chars": 484,
    "preview": "{\n  \"name\": \"core-header-panel\",\n  \"private\": true,\n  \"dependencies\": {\n    \"polymer\": \"Polymer/polymer#^0.5.0\"\n  },\n  \""
  },
  {
    "path": "bower_components/core-header-panel/README.md",
    "chars": 165,
    "preview": "core-header-panel\n===================\n\nSee the [component page](http://polymer-project.org/docs/elements/core-elements.h"
  },
  {
    "path": "bower_components/core-header-panel/bower.json",
    "chars": 139,
    "preview": "{\n  \"name\": \"core-header-panel\",\n  \"private\": true,\n  \"dependencies\": {\n    \"polymer\": \"Polymer/polymer#^0.5.0\"\n  },\n  \""
  },
  {
    "path": "bower_components/core-header-panel/core-header-panel.css",
    "chars": 1443,
    "preview": "/*\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style l"
  },
  {
    "path": "bower_components/core-header-panel/core-header-panel.html",
    "chars": 8210,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/core-header-panel/demo.html",
    "chars": 2504,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-header-panel/index.html",
    "chars": 802,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-header-panel/metadata.html",
    "chars": 1427,
    "preview": "<!--\n    @license\n    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n    This code may only be use"
  },
  {
    "path": "bower_components/core-icon/.bower.json",
    "chars": 509,
    "preview": "{\n  \"name\": \"core-icon\",\n  \"private\": true,\n  \"dependencies\": {\n    \"core-iconset\": \"Polymer/core-iconset#^0.5.0\",\n    \""
  },
  {
    "path": "bower_components/core-icon/README.md",
    "chars": 139,
    "preview": "core-icon\n=========\n\nSee the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-icon) for"
  },
  {
    "path": "bower_components/core-icon/bower.json",
    "chars": 188,
    "preview": "{\n  \"name\": \"core-icon\",\n  \"private\": true,\n  \"dependencies\": {\n    \"core-iconset\": \"Polymer/core-iconset#^0.5.0\",\n    \""
  },
  {
    "path": "bower_components/core-icon/core-icon.css",
    "chars": 685,
    "preview": "/* Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style l"
  },
  {
    "path": "bower_components/core-icon/core-icon.html",
    "chars": 6022,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/core-icon/demo.html",
    "chars": 1328,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-icon/index.html",
    "chars": 749,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-icon/metadata.html",
    "chars": 832,
    "preview": "<!--\n    @license\n    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n    This code may only be use"
  },
  {
    "path": "bower_components/core-icon-button/.bower.json",
    "chars": 486,
    "preview": "{\n  \"name\": \"core-icon-button\",\n  \"private\": true,\n  \"dependencies\": {\n    \"core-icons\": \"Polymer/core-icons#^0.5.0\"\n  }"
  },
  {
    "path": "bower_components/core-icon-button/README.md",
    "chars": 160,
    "preview": "core-icon-button\n================\n\nSee the [component page](http://polymer-project.org/docs/elements/core-elements.html#"
  },
  {
    "path": "bower_components/core-icon-button/bower.json",
    "chars": 144,
    "preview": "{\n  \"name\": \"core-icon-button\",\n  \"private\": true,\n  \"dependencies\": {\n    \"core-icons\": \"Polymer/core-icons#^0.5.0\"\n  }"
  },
  {
    "path": "bower_components/core-icon-button/core-icon-button.css",
    "chars": 2198,
    "preview": "/*\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style l"
  },
  {
    "path": "bower_components/core-icon-button/core-icon-button.html",
    "chars": 2225,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/core-icon-button/demo.html",
    "chars": 1066,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-icon-button/index.html",
    "chars": 749,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-icon-button/metadata.html",
    "chars": 817,
    "preview": "<!--\n    @license\n    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n    This code may only be use"
  },
  {
    "path": "bower_components/core-icons/.bower.json",
    "chars": 560,
    "preview": "{\n  \"name\": \"core-icons\",\n  \"private\": true,\n  \"dependencies\": {\n    \"core-icon\": \"Polymer/core-icon#^0.5.0\",\n    \"core-"
  },
  {
    "path": "bower_components/core-icons/README.md",
    "chars": 141,
    "preview": "core-icons\n=========\n\nSee the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-icons) f"
  },
  {
    "path": "bower_components/core-icons/av-icons.html",
    "chars": 12326,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/core-icons/bower.json",
    "chars": 236,
    "preview": "{\n  \"name\": \"core-icons\",\n  \"private\": true,\n  \"dependencies\": {\n    \"core-icon\": \"Polymer/core-icon#^0.5.0\",\n    \"core-"
  },
  {
    "path": "bower_components/core-icons/communication-icons.html",
    "chars": 11193,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/core-icons/core-icons.html",
    "chars": 59301,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/core-icons/demo.html",
    "chars": 2530,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-icons/device-icons.html",
    "chars": 24429,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/core-icons/editor-icons.html",
    "chars": 10994,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/core-icons/hardware-icons.html",
    "chars": 8964,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/core-icons/image-icons.html",
    "chars": 44501,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/core-icons/index.html",
    "chars": 749,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-icons/maps-icons.html",
    "chars": 16674,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/core-icons/notification-icons.html",
    "chars": 10947,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/core-icons/png-icons.html",
    "chars": 1117,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/core-icons/social-icons.html",
    "chars": 13293,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/core-iconset/.bower.json",
    "chars": 554,
    "preview": "{\n  \"name\": \"core-iconset\",\n  \"private\": true,\n  \"dependencies\": {\n    \"polymer\": \"Polymer/polymer#^0.5.0\",\n    \"core-me"
  },
  {
    "path": "bower_components/core-iconset/README.md",
    "chars": 148,
    "preview": "core-iconset\n============\n\nSee the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-ico"
  },
  {
    "path": "bower_components/core-iconset/bower.json",
    "chars": 224,
    "preview": "{\n  \"name\": \"core-iconset\",\n  \"private\": true,\n  \"dependencies\": {\n    \"polymer\": \"Polymer/polymer#^0.5.0\",\n    \"core-me"
  },
  {
    "path": "bower_components/core-iconset/core-iconset.html",
    "chars": 8364,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/core-iconset/demo.html",
    "chars": 2206,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-iconset/index.html",
    "chars": 749,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-iconset-svg/.bower.json",
    "chars": 531,
    "preview": "{\n  \"name\": \"core-iconset-svg\",\n  \"private\": true,\n  \"dependencies\": {\n    \"polymer\": \"Polymer/polymer#^0.5.0\",\n    \"cor"
  },
  {
    "path": "bower_components/core-iconset-svg/README.md",
    "chars": 153,
    "preview": "core-iconset-svg\n=========\n\nSee the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-ic"
  },
  {
    "path": "bower_components/core-iconset-svg/bower.json",
    "chars": 189,
    "preview": "{\n  \"name\": \"core-iconset-svg\",\n  \"private\": true,\n  \"dependencies\": {\n    \"polymer\": \"Polymer/polymer#^0.5.0\",\n    \"cor"
  },
  {
    "path": "bower_components/core-iconset-svg/core-iconset-svg.html",
    "chars": 5309,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/core-iconset-svg/demo.html",
    "chars": 1782,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-iconset-svg/index.html",
    "chars": 749,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-iconset-svg/svg-sample-icons.html",
    "chars": 5607,
    "preview": "\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD styl"
  },
  {
    "path": "bower_components/core-input/.bower.json",
    "chars": 531,
    "preview": "{\n  \"name\": \"core-input\",\n  \"dependencies\": {\n    \"polymer\": \"Polymer/polymer#^0.5.0\"\n  },\n  \"devDependencies\": {\n    \"w"
  },
  {
    "path": "bower_components/core-input/README.md",
    "chars": 22,
    "preview": "core-input\n==========\n"
  },
  {
    "path": "bower_components/core-input/bower.json",
    "chars": 207,
    "preview": "{\n  \"name\": \"core-input\",\n  \"dependencies\": {\n    \"polymer\": \"Polymer/polymer#^0.5.0\"\n  },\n  \"devDependencies\": {\n    \"w"
  },
  {
    "path": "bower_components/core-input/core-input.css",
    "chars": 909,
    "preview": "/*\n * @license\n * Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n * This code may only be used und"
  },
  {
    "path": "bower_components/core-input/core-input.html",
    "chars": 3548,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/core-input/demo.html",
    "chars": 1711,
    "preview": "<!--\n    @license\n    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n    This code may only be use"
  },
  {
    "path": "bower_components/core-input/index.html",
    "chars": 749,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-input/metadata.html",
    "chars": 893,
    "preview": "<!--\n    @license\n    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n    This code may only be use"
  },
  {
    "path": "bower_components/core-input/test/a11y.html",
    "chars": 1828,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-input/test/basic.html",
    "chars": 1740,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-input/test/index.html",
    "chars": 889,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-item/.bower.json",
    "chars": 522,
    "preview": "{\n  \"name\": \"core-item\",\n  \"private\": true,\n  \"dependencies\": {\n    \"core-icon\": \"Polymer/core-icon#^0.5.0\",\n    \"core-i"
  },
  {
    "path": "bower_components/core-item/README.md",
    "chars": 139,
    "preview": "core-item\n=========\n\nSee the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-item) for"
  },
  {
    "path": "bower_components/core-item/bower.json",
    "chars": 182,
    "preview": "{\n  \"name\": \"core-item\",\n  \"private\": true,\n  \"dependencies\": {\n    \"core-icon\": \"Polymer/core-icon#^0.5.0\",\n    \"core-i"
  },
  {
    "path": "bower_components/core-item/core-item.css",
    "chars": 1145,
    "preview": "/*\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style l"
  },
  {
    "path": "bower_components/core-item/core-item.html",
    "chars": 1820,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/core-item/demo.html",
    "chars": 2574,
    "preview": "<!--\n    @license\n    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n    This code may only be use"
  },
  {
    "path": "bower_components/core-item/index.html",
    "chars": 749,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-item/metadata.html",
    "chars": 794,
    "preview": "<!--\n    @license\n    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n    This code may only be use"
  },
  {
    "path": "bower_components/core-media-query/.bower.json",
    "chars": 480,
    "preview": "{\n  \"name\": \"core-media-query\",\n  \"private\": true,\n  \"dependencies\": {\n    \"polymer\": \"Polymer/polymer#^0.5.0\"\n  },\n  \"v"
  },
  {
    "path": "bower_components/core-media-query/README.md",
    "chars": 160,
    "preview": "core-media-query\n================\n\nSee the [component page](http://polymer-project.org/docs/elements/core-elements.html#"
  },
  {
    "path": "bower_components/core-media-query/bower.json",
    "chars": 138,
    "preview": "{\n  \"name\": \"core-media-query\",\n  \"private\": true,\n  \"dependencies\": {\n    \"polymer\": \"Polymer/polymer#^0.5.0\"\n  },\n  \"v"
  },
  {
    "path": "bower_components/core-media-query/core-media-query.html",
    "chars": 2499,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/core-media-query/demo.html",
    "chars": 1595,
    "preview": "<!DOCTYPE html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-media-query/index.html",
    "chars": 749,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-meta/.bower.json",
    "chars": 452,
    "preview": "{\n  \"name\": \"core-meta\",\n  \"private\": true,\n  \"dependencies\": {\n    \"polymer\": \"Polymer/polymer#^0.5.0\"\n  },\n  \"version\""
  },
  {
    "path": "bower_components/core-meta/README.md",
    "chars": 139,
    "preview": "core-meta\n=========\n\nSee the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-meta) for"
  },
  {
    "path": "bower_components/core-meta/bower.json",
    "chars": 131,
    "preview": "{\n  \"name\": \"core-meta\",\n  \"private\": true,\n  \"dependencies\": {\n    \"polymer\": \"Polymer/polymer#^0.5.0\"\n  },\n  \"version\""
  },
  {
    "path": "bower_components/core-meta/core-meta.html",
    "chars": 3826,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/core-meta/demo.html",
    "chars": 1739,
    "preview": "<!DOCTYPE html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-meta/index.html",
    "chars": 749,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-scaffold/.bower.json",
    "chars": 678,
    "preview": "{\n  \"name\": \"core-scaffold\",\n  \"private\": true,\n  \"dependencies\": {\n    \"core-drawer-panel\": \"Polymer/core-drawer-panel#"
  },
  {
    "path": "bower_components/core-scaffold/README.md",
    "chars": 151,
    "preview": "core-scaffold\n=============\n\nSee the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-s"
  },
  {
    "path": "bower_components/core-scaffold/bower.json",
    "chars": 326,
    "preview": "{\n  \"name\": \"core-scaffold\",\n  \"private\": true,\n  \"dependencies\": {\n    \"core-drawer-panel\": \"Polymer/core-drawer-panel#"
  },
  {
    "path": "bower_components/core-scaffold/core-scaffold.html",
    "chars": 7055,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/core-scaffold/demo.html",
    "chars": 2210,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-scaffold/index.html",
    "chars": 749,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-scaffold/metadata.html",
    "chars": 1889,
    "preview": "<!--\n    @license\n    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n    This code may only be use"
  },
  {
    "path": "bower_components/core-selection/.bower.json",
    "chars": 566,
    "preview": "{\n  \"name\": \"core-selection\",\n  \"private\": true,\n  \"dependencies\": {\n    \"polymer\": \"Polymer/polymer#^0.5.0\"\n  },\n  \"dev"
  },
  {
    "path": "bower_components/core-selection/README.md",
    "chars": 154,
    "preview": "core-selection\n==============\n\nSee the [component page](http://polymer-project.org/docs/elements/core-elements.html#core"
  },
  {
    "path": "bower_components/core-selection/bower.json",
    "chars": 230,
    "preview": "{\n  \"name\": \"core-selection\",\n  \"private\": true,\n  \"dependencies\": {\n    \"polymer\": \"Polymer/polymer#^0.5.0\"\n  },\n  \"dev"
  },
  {
    "path": "bower_components/core-selection/core-selection.html",
    "chars": 4962,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/core-selection/demo.html",
    "chars": 1699,
    "preview": "<!DOCTYPE html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-selection/index.html",
    "chars": 749,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-selection/test/basic.html",
    "chars": 1952,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-selection/test/index.html",
    "chars": 879,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-selection/test/multi.html",
    "chars": 2000,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-selector/.bower.json",
    "chars": 617,
    "preview": "{\n  \"name\": \"core-selector\",\n  \"private\": true,\n  \"dependencies\": {\n    \"polymer\": \"Polymer/polymer#^0.5.0\",\n    \"core-s"
  },
  {
    "path": "bower_components/core-selector/.gitignore",
    "chars": 25,
    "preview": "/node_modules/\n.DS_Store\n"
  },
  {
    "path": "bower_components/core-selector/README.md",
    "chars": 152,
    "preview": "core-selector\n==============\n\nSee the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-"
  },
  {
    "path": "bower_components/core-selector/bower.json",
    "chars": 284,
    "preview": "{\n  \"name\": \"core-selector\",\n  \"private\": true,\n  \"dependencies\": {\n    \"polymer\": \"Polymer/polymer#^0.5.0\",\n    \"core-s"
  },
  {
    "path": "bower_components/core-selector/core-selector.html",
    "chars": 16763,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/core-selector/demo.html",
    "chars": 3081,
    "preview": "<!DOCTYPE html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-selector/index.html",
    "chars": 749,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-selector/metadata.html",
    "chars": 809,
    "preview": "<!--\n    @license\n    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n    This code may only be use"
  },
  {
    "path": "bower_components/core-selector/test/activate-event.html",
    "chars": 1638,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-selector/test/basic.html",
    "chars": 3762,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-selector/test/content.html",
    "chars": 2975,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-selector/test/index.html",
    "chars": 1021,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-selector/test/multi.html",
    "chars": 3603,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-selector/test/next-previous.html",
    "chars": 3179,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-selector/test/selected-attr-prop.html",
    "chars": 1831,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-selector/test/template-repeat.html",
    "chars": 1863,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-style/.bower.json",
    "chars": 456,
    "preview": "{\n  \"name\": \"core-style\",\n  \"private\": true,\n  \"dependencies\": {\n    \"polymer\": \"Polymer/polymer#^0.5.0\"\n  },\n  \"version"
  },
  {
    "path": "bower_components/core-style/README.md",
    "chars": 142,
    "preview": "core-style\n==========\n\nSee the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-style) "
  },
  {
    "path": "bower_components/core-style/bower.json",
    "chars": 132,
    "preview": "{\n  \"name\": \"core-style\",\n  \"private\": true,\n  \"dependencies\": {\n    \"polymer\": \"Polymer/polymer#^0.5.0\"\n  },\n  \"version"
  },
  {
    "path": "bower_components/core-style/core-style.html",
    "chars": 10938,
    "preview": "<!--\r\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\r\nThis code may only be used under the BSD sty"
  },
  {
    "path": "bower_components/core-style/demo.html",
    "chars": 1394,
    "preview": "<!DOCTYPE html>\n<!--\nCopyright 2013 The Polymer Authors. All rights reserved.\nUse of this source code is governed by a B"
  },
  {
    "path": "bower_components/core-style/elements.html",
    "chars": 1475,
    "preview": "<!--\n    @license\n    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n    This code may only be use"
  },
  {
    "path": "bower_components/core-style/index.html",
    "chars": 749,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-style/my-theme.html",
    "chars": 1965,
    "preview": "<!--\n    @license\n    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n    This code may only be use"
  },
  {
    "path": "bower_components/core-toolbar/.bower.json",
    "chars": 541,
    "preview": "{\n  \"name\": \"core-toolbar\",\n  \"private\": true,\n  \"dependencies\": {\n    \"core-icon-button\": \"Polymer/core-icon-button#^0."
  },
  {
    "path": "bower_components/core-toolbar/README.md",
    "chars": 152,
    "preview": "core-toolbar\r\n============\r\n\r\nSee the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-"
  },
  {
    "path": "bower_components/core-toolbar/bower.json",
    "chars": 211,
    "preview": "{\n  \"name\": \"core-toolbar\",\n  \"private\": true,\n  \"dependencies\": {\n    \"core-icon-button\": \"Polymer/core-icon-button#^0."
  },
  {
    "path": "bower_components/core-toolbar/core-toolbar.css",
    "chars": 2592,
    "preview": "/*\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style l"
  },
  {
    "path": "bower_components/core-toolbar/core-toolbar.html",
    "chars": 4704,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/core-toolbar/demo.html",
    "chars": 3717,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-toolbar/index.html",
    "chars": 749,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-toolbar/metadata.html",
    "chars": 1035,
    "preview": "<!--\n    @license\n    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n    This code may only be use"
  },
  {
    "path": "bower_components/core-toolbar/test/basic.html",
    "chars": 2664,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/core-toolbar/test/index.html",
    "chars": 859,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/font-roboto/.bower.json",
    "chars": 376,
    "preview": "{\n  \"name\": \"font-roboto\",\n  \"homepage\": \"https://github.com/Polymer/font-roboto\",\n  \"version\": \"0.5.2\",\n  \"_release\": \""
  },
  {
    "path": "bower_components/font-roboto/roboto.html",
    "chars": 664,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/paper-button/.bower.json",
    "chars": 760,
    "preview": "{\n  \"name\": \"paper-button\",\n  \"private\": true,\n  \"dependencies\": {\n    \"polymer\": \"Polymer/polymer#^0.5.0\",\n    \"core-fo"
  },
  {
    "path": "bower_components/paper-button/README.md",
    "chars": 160,
    "preview": "paper-button\n===================\n\nSee the [component page](http://www.polymer-project.org/docs/elements/paper-elements.h"
  },
  {
    "path": "bower_components/paper-button/bower.json",
    "chars": 430,
    "preview": "{\n  \"name\": \"paper-button\",\n  \"private\": true,\n  \"dependencies\": {\n    \"polymer\": \"Polymer/polymer#^0.5.0\",\n    \"core-fo"
  },
  {
    "path": "bower_components/paper-button/demo.html",
    "chars": 2963,
    "preview": "<!doctype html>\n<!--\nCopyright 2013 The Polymer Authors. All rights reserved.\nUse of this source code is governed by a B"
  },
  {
    "path": "bower_components/paper-button/index.html",
    "chars": 806,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/paper-button/metadata.html",
    "chars": 775,
    "preview": "<!--\n    @license\n    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n    This code may only be use"
  },
  {
    "path": "bower_components/paper-button/paper-button-base.html",
    "chars": 3251,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/paper-button/paper-button.html",
    "chars": 4548,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/paper-button/test/a11y.html",
    "chars": 1425,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/paper-button/test/basic.html",
    "chars": 1420,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/paper-button/test/index.html",
    "chars": 891,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/paper-fab/.bower.json",
    "chars": 810,
    "preview": "{\n  \"name\": \"paper-fab\",\n  \"private\": true,\n  \"dependencies\": {\n    \"polymer\": \"Polymer/polymer#^0.5.0\",\n    \"core-icon\""
  },
  {
    "path": "bower_components/paper-fab/README.md",
    "chars": 154,
    "preview": "paper-fab\n===================\n\nSee the [component page](http://www.polymer-project.org/docs/elements/paper-elements.html"
  },
  {
    "path": "bower_components/paper-fab/bower.json",
    "chars": 470,
    "preview": "{\n  \"name\": \"paper-fab\",\n  \"private\": true,\n  \"dependencies\": {\n    \"polymer\": \"Polymer/polymer#^0.5.0\",\n    \"core-icon\""
  },
  {
    "path": "bower_components/paper-fab/demo.html",
    "chars": 1814,
    "preview": "<!doctype html>\n<!--\nCopyright 2013 The Polymer Authors. All rights reserved.\nUse of this source code is governed by a B"
  },
  {
    "path": "bower_components/paper-fab/index.html",
    "chars": 749,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/paper-fab/metadata.html",
    "chars": 1251,
    "preview": "<!--\n    @license\n    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n    This code may only be use"
  },
  {
    "path": "bower_components/paper-fab/paper-fab.html",
    "chars": 4922,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/paper-fab/test/a11y.html",
    "chars": 2080,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/paper-fab/test/basic.html",
    "chars": 1438,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/paper-fab/test/index.html",
    "chars": 888,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/paper-input/.bower.json",
    "chars": 759,
    "preview": "{\n  \"name\": \"paper-input\",\n  \"private\": true,\n  \"dependencies\": {\n    \"polymer\": \"Polymer/polymer#^0.5.0\",\n    \"core-ico"
  },
  {
    "path": "bower_components/paper-input/.gitignore",
    "chars": 16,
    "preview": "vulcanized.html\n"
  },
  {
    "path": "bower_components/paper-input/README.md",
    "chars": 158,
    "preview": "paper-input\n===================\n\nSee the [component page](http://www.polymer-project.org/docs/elements/paper-elements.ht"
  },
  {
    "path": "bower_components/paper-input/bower.json",
    "chars": 413,
    "preview": "{\n  \"name\": \"paper-input\",\n  \"private\": true,\n  \"dependencies\": {\n    \"polymer\": \"Polymer/polymer#^0.5.0\",\n    \"core-ico"
  },
  {
    "path": "bower_components/paper-input/demo.html",
    "chars": 4173,
    "preview": "<!--\n    @license\n    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n    This code may only be use"
  },
  {
    "path": "bower_components/paper-input/index.html",
    "chars": 841,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/paper-input/metadata.html",
    "chars": 790,
    "preview": "<!--\n    @license\n    Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n    This code may only be use"
  },
  {
    "path": "bower_components/paper-input/paper-autogrow-textarea.html",
    "chars": 4148,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/paper-input/paper-input-decorator.css",
    "chars": 2600,
    "preview": "/*\n * @license\n * Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n * This code may only be used und"
  },
  {
    "path": "bower_components/paper-input/paper-input-decorator.html",
    "chars": 15241,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/paper-input/paper-input.html",
    "chars": 3698,
    "preview": "<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style"
  },
  {
    "path": "bower_components/paper-input/test/a11y.html",
    "chars": 1496,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/paper-input/test/autogrow.html",
    "chars": 3351,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/paper-input/test/decorator.html",
    "chars": 4494,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/paper-input/test/index.html",
    "chars": 905,
    "preview": "<!doctype html>\n<!--\nCopyright (c) 2014 The Polymer Project Authors. All rights reserved.\nThis code may only be used und"
  },
  {
    "path": "bower_components/paper-ripple/.bower.json",
    "chars": 658,
    "preview": "{\n  \"name\": \"paper-ripple\",\n  \"private\": true,\n  \"dependencies\": {\n    \"core-icon\": \"Polymer/core-icon#^0.5.0\",\n    \"cor"
  },
  {
    "path": "bower_components/paper-ripple/README.md",
    "chars": 153,
    "preview": "paper-ripple\n============\n\nSee the [component page](http://www.polymer-project.org/docs/elements/paper-elements.html#pap"
  },
  {
    "path": "bower_components/paper-ripple/bower.json",
    "chars": 328,
    "preview": "{\n  \"name\": \"paper-ripple\",\n  \"private\": true,\n  \"dependencies\": {\n    \"core-icon\": \"Polymer/core-icon#^0.5.0\",\n    \"cor"
  }
]

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

About this extraction

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

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

Copied to clipboard!